config/libc/uClibc.in.2
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
parent 2039 c5a2e4ee7fb8
child 3276 22239d19ad65
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 # uClibc second-part option
     2 
     3 if THREADS_LINUXTHREADS
     4 
     5 choice
     6     bool
     7     prompt "Linuxthread implementation: "
     8     default LIBC_UCLIBC_LNXTHRD_OLD
     9 
    10 config LIBC_UCLIBC_LNXTHRD_OLD
    11     bool
    12     prompt "old/stable"
    13     help
    14       From the uClibc config option help:
    15         There are two versions of linuxthreads.  The older (stable) version
    16         has been in uClibc for quite a long time but hasn't seen too many
    17         updates other than bugfixes.
    18 
    19 config LIBC_UCLIBC_LNXTHRD_NEW
    20     bool
    21     prompt "new"
    22     help
    23       From the uClibc config option help:
    24         The new version has not been tested much, and lacks ports for arches
    25         which glibc does not support (like bfin/frv/etc...), but is based on
    26         the latest code from glibc, so it may be the only choice for the
    27         newer ports (like alpha/amd64/64bit arches and hppa).
    28 
    29 endchoice
    30 
    31 endif # THREADS_LINUXTHREADS
    32 
    33 config LIBC_UCLIBC_LNXTHRD
    34     string
    35     default ""      if THREADS_NONE
    36     default ""      if THREADS_NPTL
    37     default "old"   if LIBC_UCLIBC_LNXTHRD_OLD
    38     default "new"   if LIBC_UCLIBC_LNXTHRD_NEW
    39 
    40 config LIBC_UCLIBC_LOCALES
    41     bool
    42     select LIBC_UCLIBC_WCHAR
    43     prompt "Add support for locales"
    44     help
    45       Say y if you want uClibc to support localisation.
    46 
    47       Note that seems to be broken on recent uClibc releases.
    48 
    49 config LIBC_UCLIBC_LOCALES_PREGEN_DATA
    50     bool
    51     prompt "Use pregen locales"
    52     depends on LIBC_UCLIBC_LOCALES
    53     default y
    54     help
    55       If you see issues with using pre-generated locales data,
    56       you can try switching this off.
    57 
    58       If so, please report the issue, so we can default this
    59       to off if too many people complain.
    60 
    61 config LIBC_UCLIBC_WCHAR
    62     bool
    63     prompt "Add support for WCHAR"
    64     help
    65       Say y if you want uClibc to support WCHAR.
    66 
    67       Maybe this is needed, if you're building a C++-Compiler