Next: Remote host testing, Previous: Local configuration file, Up: Customizing DejaGnu [Contents][Index]
The board configuration file is where board-specific configuration details are stored. A board configuration file contains all the higher-level configuration settings. There is a rough inheritance scheme, where it is possible to derive a new board description file from an existing one. There are also collections of custom procedures for common environments. For more information on adding a new board config file, see Adding a new board.
An example board configuration file for a GNU simulator is as follows.
set_board_info
is a procedure that sets the field name to the
specified value. The procedures mentioned in brackets are
helper procedures. These are used to find parts of a toolchain
required to build an executable image that may reside in various
locations. This is mostly of use when the startup code, the standard
C libraries, or the toolchain itself is part of your build tree.
Example file
# 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 status 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
There are five helper procedures used in this example:
find_gcc
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. DejaGnu will use this procedure to locate a
compiler if the compiler
field is not set.
libgloss_include_flags
returns the flags to compile using
libgloss, the GNU board support package (BSP).
libgloss_link_flags
returns the flags to link an executable
using libgloss.
newlib_include_flags
returns the flags to compile using
newlib, a re-entrant standard C
library for embedded systems comprising of non-GPL’d code
newlib_link_flags
returns the flags to link an executable with
newlib.
Next: Remote host testing, Previous: Local configuration file, Up: Customizing DejaGnu [Contents][Index]