config/arch/mips.in.2
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
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@2118
     1
# MIPS specific config options
yann@2118
     2
yann@2118
     3
choice
yann@2118
     4
    bool
yann@2118
     5
    prompt "ABI"
yann@2118
     6
yann@2118
     7
config ARCH_mips_o32
yann@2118
     8
    bool
yann@2118
     9
    prompt "o32"
yann@2118
    10
    depends on ARCH_32
yann@2118
    11
    help
yann@2118
    12
      This is the -mabi=32 gcc option.
yann@2118
    13
yann@2118
    14
config ARCH_mips_n32
yann@2118
    15
    bool
yann@2118
    16
    prompt "n32"
yann@2118
    17
    depends on ARCH_64
yann@2118
    18
    help
yann@2118
    19
      This is the -mabi=n32 gcc option.
yann@2118
    20
yann@2118
    21
config ARCH_mips_n64
yann@2118
    22
    bool
yann@2118
    23
    prompt "n64"
yann@2118
    24
    depends on ARCH_64
yann@2118
    25
    help
yann@2118
    26
      This is the -mabi=64 gcc option.
yann@2118
    27
yann@2118
    28
# Not supported on Linux:
yann@2118
    29
# o64   : seems related to *BSD
yann@2118
    30
# eabi  : seems related to bare-metal
yann@2118
    31
yann@2118
    32
endchoice
yann@2118
    33
yann@2118
    34
config ARCH_mips_ABI
yann@2118
    35
    string
yann@2118
    36
    default "32"    if ARCH_mips_o32
yann@2118
    37
    default "n32"   if ARCH_mips_n32
yann@2118
    38
    default "64"    if ARCH_mips_n64