<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >Board Config File</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.64 "><LINK REL="HOME" TITLE="DejaGnu" HREF="book1.html"><LINK REL="UP" TITLE="Customizing DejaGnu" HREF="customizing.html"><LINK REL="PREVIOUS" TITLE="Global Config File" HREF="global.html"><LINK REL="NEXT" TITLE="Remote Host Testing" HREF="releng.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >DejaGnu: The GNU Testing Framework</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="global.html" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Customizing DejaGnu</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="releng.html" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="BOARDCONFIG" >Board Config File</A ></H1 ><P >The board config file is where board specfic config data is stored. A board config file contains all the higher-level configuration settings. There is a rough inheritance scheme, where it is possible to base a new board description file on an existing one. There are also collections of custom procedures for common environments. For more information on adding a new board config file, go to the <A HREF="addboard.html" >Adding A New Board</A > chapter. </P ><P >An example board config file for a GNU simulator is as follows. <TT CLASS="FUNCTION" >set_board_info</TT > is a procedure that sets the field name to the specified value. The procedures in square brackets <I CLASS="EMPHASIS" >[]</I > are <I CLASS="EMPHASIS" >helper procedures</I >. Thes are used to find parts of a tool chain required to build an executable image that may reside in various locations. This is mostly of use for when the startup code, the standard C lobraries, or the tool chain itself is part of your build tree.</P ><DIV CLASS="EXAMPLE" ><A NAME="AEN943" ></A ><P ><B >Example 5. Board Config File</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" > # This is a list of toolchains that are supported on this board. set_board_info target_install {sparc64-elf} # Load the generic configuration for this board. This will define any # routines needed by the tool to communicate with the board. load_generic_config "sim" # We need this for find_gcc and *_include_flags/*_link_flags. load_base_board_description "basic-sim" # Use long64 by default. process_multilib_options "long64" setup_sim sparc64 # We only support newlib on this target. We assume that all multilib # options have been specified before we get here. set_board_info compiler "[find_gcc]" set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]" set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]" # No linker script. set_board_info ldscript ""; # Used by a few gcc.c-torture testcases to delimit how large the # stack can be. set_board_info gcc,stack_size 16384 # The simulator doesn't return exit statuses and we need to indicate this # the standard GCC wrapper will work with this target. set_board_info needs_status_wrapper 1 # We can't pass arguments to programs. set_board_info noargs 1 </PRE ></TD ></TR ></TABLE ></DIV ><P >There are five helper procedures used in this example. The first one, <TT CLASS="FUNCTION" >find gcc</TT > looks for a copy of the GNU compiler in your build tree, or it uses the one in your path. This will also return the proper transformed name for a cross compiler if you whole build tree is configured for one. The next helper procedures are <TT CLASS="FUNCTION" >libgloss_include_flags</TT > & <TT CLASS="FUNCTION" >libgloss_link_flags</TT >. These return the proper flags to compiler and link an executable image using <A HREF="builtins.html#LIBGLOSS" >Libgloss</A >, the GNU BSP (Board Support Package). The final procedures are <TT CLASS="FUNCTION" >newlib_include_flag</TT > & <TT CLASS="FUNCTION" >newlib_include_flag</TT >. These find the Newlib C library, which is a reentrant standard C library for embedded systems comprising of non GPL'd code.</P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="global.html" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="releng.html" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Global Config File</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="customizing.html" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Remote Host Testing</TD ></TR ></TABLE ></DIV ></BODY ></HTML >