DejaGnu: The GNU Testing Framework
<<< Previous | Customizing DejaGnu | Next >>>

# Board Config File

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 Adding A New Board chapter.

An example board config 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 in square brackets [] are helper procedures. 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.

Example 5. Board Config 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 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

There are five helper procedures used in this example. The first one, `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. The next helper procedures are `libgloss_include_flags` & `libgloss_link_flags`. These return the proper flags to compiler and link an executable image using Libgloss, the GNU BSP (Board Support Package). The final procedures are `newlib_include_flag` & `newlib_include_flag`. These find the Newlib C library, which is a reentrant standard C library for embedded systems comprising of non GPL'd code.

<<< Previous | Home | Next >>>
Global Config File | Up | Remote Host Testing