| <!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.76b+ |
| "><LINK |
| REL="HOME" |
| TITLE="DejaGnu" |
| HREF="book1.html"><LINK |
| REL="UP" |
| TITLE="Customizing DejaGnu" |
| HREF="c848.html"><LINK |
| REL="PREVIOUS" |
| TITLE="Global Config File" |
| HREF="x916.html"><LINK |
| REL="NEXT" |
| TITLE="Remote Host Testing" |
| HREF="x953.html"></HEAD |
| ><BODY |
| CLASS="SECT1" |
| BGCOLOR="#FFFFFF" |
| TEXT="#000000" |
| LINK="#0000FF" |
| VLINK="#840084" |
| ALINK="#0000FF" |
| ><DIV |
| CLASS="NAVHEADER" |
| ><TABLE |
| SUMMARY="Header navigation 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="x916.html" |
| ACCESSKEY="P" |
| ><<< Previous</A |
| ></TD |
| ><TD |
| WIDTH="80%" |
| ALIGN="center" |
| VALIGN="bottom" |
| >Customizing DejaGnu</TD |
| ><TD |
| WIDTH="10%" |
| ALIGN="right" |
| VALIGN="bottom" |
| ><A |
| HREF="x953.html" |
| ACCESSKEY="N" |
| >Next >>></A |
| ></TD |
| ></TR |
| ></TABLE |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"></DIV |
| ><DIV |
| CLASS="SECT1" |
| ><H1 |
| CLASS="SECT1" |
| ><A |
| NAME="BOARDCONFIG" |
| ></A |
| >Board Config File</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="x1214.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="x1655.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 |
| SUMMARY="Footer navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| ><A |
| HREF="x916.html" |
| ACCESSKEY="P" |
| ><<< Previous</A |
| ></TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="book1.html" |
| ACCESSKEY="H" |
| >Home</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| ><A |
| HREF="x953.html" |
| ACCESSKEY="N" |
| >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="c848.html" |
| ACCESSKEY="U" |
| >Up</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| >Remote Host Testing</TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></BODY |
| ></HTML |
| > |