config/debug/gdb.in.cross
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
parent 2484 d1a8c2ae7946
child 2526 e5fb003a354c
permissions -rw-r--r--
glibc: Refactor startfiles/headers into do_libc_backend()

Refactor the contents of 'do_libc_start_files()' and 'do_libc()' into a
parameterized 'do_libc_backend()'. 'do_libc_start_files()' and 'do_libc()'
call 'do_libc_backend()' with either 'libc_mode=startfiles' or
'libc_mode=final' (respectively) so that the startfiles/headers and
the final libc builds are configured and built with the same options.

One example of where this is needed is when building a mips toolchain.
Previously, if you were building an n32 toolchain, you wouldn't have
noticed an issue, because if '-mabi' is not in CFLAGS, n32 is the
default:

http://sourceware.org/git/?p=glibc-ports.git;a=blob;f=sysdeps/mips/preconfigure;hb=HEAD

But when trying to build an o32 or n64 toolchain the build would
have failed. This is because (e)glibc expects "-mabi={o32,n32,n64}" to be
in CFLAGS, but was not previously provided in 'do_libc_start_files()'.
The build failure would happen in the shared-core gcc when it tries to
configure an n64 or o32 gcc with an n32 libc.

A simpler solution would have been to just add TARGET_CFLAGS to configure
in 'do_libc_start_files()', but this way makes configure and make
consistent for both steps.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
yann@1849
     1
# Menu for the cross GDB
yann@96
     2
yann@2209
     3
config STATIC_TOOLCHAIN
yann@2209
     4
    select GDB_CROSS_STATIC if GDB_CROSS
yann@2209
     5
benoit@2508
     6
comment "Cross-gdb - disabled (requires expat; re-run ./configure to enable)"
benoit@2508
     7
    depends on !CONFIGURE_has_expat
benoit@2508
     8
benoit@2508
     9
comment "Static cross-gdb - disabled (requires static expat; re-run ./configure to enable)"
benoit@2508
    10
    depends on STATIC_TOOLCHAIN && !CONFIGURE_has_static_expat
benoit@2508
    11
yann@96
    12
config GDB_CROSS
yann@96
    13
    bool
yann@96
    14
    prompt "Cross-gdb"
yann@96
    15
    default y
benoit@2508
    16
    depends on CONFIGURE_has_expat
benoit@2508
    17
    depends on !STATIC_TOOLCHAIN || CONFIGURE_has_static_expat
yann@850
    18
    select GDB_GDBSERVER if ! BARE_METAL
yann@96
    19
    help
yann@583
    20
      Build and install a cross-gdb for the target, to run on host.
yann@96
    21
yann@1849
    22
if GDB_CROSS
yann@1849
    23
yann@1915
    24
config GDB_CROSS_STATIC
yann@1915
    25
    bool
yann@1915
    26
    prompt "Build a static cross gdb"
benoit@2508
    27
    depends on CONFIGURE_has_static_expat
yann@1915
    28
    help
yann@1915
    29
      A static cross gdb can be usefull if you debug on a machine that is
yann@1915
    30
      not the one that is used to compile the toolchain.
yann@1915
    31
      
yann@1915
    32
      That way, you can share the cross-gdb without installing a toolchain
yann@1915
    33
      on every machine that will be used to debug target programs.
yann@1915
    34
yann@1849
    35
endif # GDB_CROSS