config/libc/uClibc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jun 13 23:45:29 2010 +0200 (2010-06-13)
changeset 1982 63cee3d5ab85
child 2009 7e19c1de65cd
permissions -rw-r--r--
libc/newlib: build in the 'start files' pass

A few facts:
- building the C library requires a proper core compiler
- core compiler is issued from one of the core passes
- the C library is required to build libstdc++
- newlib is only built for baremetal
- in bare metal, the final compiler is issued from one of the core passes

So we need to build the C library between core pass 1 and core pass 2.
The only place is eithe libc_headers() or libc_start_files(). The most
pertinent seems to be libc_start_files().

So we build newlib from libc_start_files(), and leave libc() empty.
yann@1977
     1
# uClibc second-part option
yann@1977
     2
yann@1977
     3
if THREADS_LINUXTHREADS
yann@1977
     4
yann@1977
     5
choice
yann@1977
     6
    bool
yann@1977
     7
    prompt "Linuxthread implementation: "
yann@1977
     8
    default LIBC_UCLIBC_LNXTHRD_OLD
yann@1977
     9
yann@1977
    10
config LIBC_UCLIBC_LNXTHRD_OLD
yann@1977
    11
    bool
yann@1977
    12
    prompt "old/stable"
yann@1977
    13
    help
yann@1977
    14
      From the uClibc config option help:
yann@1977
    15
        There are two versions of linuxthreads.  The older (stable) version
yann@1977
    16
        has been in uClibc for quite a long time but hasn't seen too many
yann@1977
    17
        updates other than bugfixes.
yann@1977
    18
yann@1977
    19
config LIBC_UCLIBC_LNXTHRD_NEW
yann@1977
    20
    bool
yann@1977
    21
    prompt "new"
yann@1977
    22
    help
yann@1977
    23
      From the uClibc config option help:
yann@1977
    24
        The new version has not been tested much, and lacks ports for arches
yann@1977
    25
        which glibc does not support (like bfin/frv/etc...), but is based on
yann@1977
    26
        the latest code from glibc, so it may be the only choice for the
yann@1977
    27
        newer ports (like alpha/amd64/64bit arches and hppa).
yann@1977
    28
yann@1977
    29
endchoice
yann@1977
    30
yann@1977
    31
config LIBC_UCLIBC_LNXTHRD
yann@1977
    32
    string
yann@1977
    33
    default "old"   if LIBC_UCLIBC_LNXTHRD_OLD
yann@1977
    34
    default "new"   if LIBC_UCLIBC_LNXTHRD_NEW
yann@1977
    35
yann@1977
    36
endif # THREADS_LINUXTHREADS