config/binutils/elf2flt.in
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
parent 2467 200836977ce6
child 3090 a221c86d9b33
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>
     1 # elf2flt options
     2 
     3 if ARCH_BINFMT_FLAT
     4 
     5 comment "elf2flt"
     6 
     7 choice
     8     bool
     9     prompt "elf2flt version"
    10 # Don't remove next line
    11 # CT_INSERT_VERSION_BELOW
    12 
    13 config ELF2FLT_CVSHEAD
    14     bool
    15     prompt "CVS Head"
    16     help
    17       Grab the latest version of elf2flt from the CVS repository
    18 
    19 config ELF2FLT_CVS_SNAPSHOT
    20     bool
    21     prompt "CVS Snapshot"
    22 
    23 endchoice
    24 
    25 config ELF2FLT_CVS_SNAPSHOT_SPEC
    26     string
    27     depends on ELF2FLT_CVS_SNAPSHOT
    28     default ""
    29     prompt "CVS refspec for elf2flt"
    30     help
    31        What you enter here will be passed verbatim to the cvs checkout command
    32        so be careful!
    33 
    34 config ELF2FLT_VERSION
    35     string
    36     default "head" if ELF2FLT_CVSHEAD
    37 # Don't remove next line
    38 # CT_INSERT_VERSION_STRING_BELOW
    39 
    40 config ELF2FLT_EXTRA_CONFIG_ARRAY
    41     string
    42     prompt "elf2flt extra config"
    43     default ""
    44     help
    45       Extra flags passed onto ./configure when configuring
    46       
    47       You can enter multiple arguments here, and arguments can contain spaces
    48       if they are properly quoted (or escaped, but prefer quotes). Eg.:
    49           --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
    50 
    51 endif