config/libc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 14 16:21:07 2008 +0000 (2008-09-14)
changeset 850 ef8549b58b6f
parent 815 6236ce3be104
child 852 c17bb66e2aa5
permissions -rw-r--r--
Introduce a new EXPERIMENTAL feature: BARE_METAL.
This should ultimately llow to build bare-metal compilers, for targets that have no kernel and no C library.
Move the C library build script to their own sub-directory; introduce an empty build script for bare-metal.
Move the compiler build script to its own sub-directory.
Move the kernel build script to its own sub-directory; introduce an empty build script for bare-metal.
Update the ARM target tuples to enable bare-metal targets.
Add two ARM bare-metal samples.
Add latest Linux kernel versions.

/trunk/scripts/build/kernel/none.sh | 77 6 71 0 +----
/trunk/scripts/build/cc/gcc.sh | 58 41 17 0 ++-
/trunk/scripts/build/libc/none.sh | 513 9 504 0 +-----------------------------
/trunk/scripts/crosstool.sh | 17 9 8 0 +
/trunk/scripts/functions | 6 4 2 0 +
/trunk/scripts/showSamples.sh | 6 3 3 0
/trunk/samples/arm-unknown-elf/crosstool.config | 225 225 0 0 +++++++++++++
/trunk/samples/arm-unknown-eabi/crosstool.config | 223 223 0 0 +++++++++++++
/trunk/config/kernel/linux_headers_install.in | 64 27 37 0 ++--
/trunk/config/kernel.in | 9 8 1 0 +
/trunk/config/toolchain.in | 1 1 0 0 +
/trunk/config/cc/gcc.in | 3 3 0 0 +
/trunk/config/debug/dmalloc.in | 1 1 0 0 +
/trunk/config/debug/gdb.in | 4 3 1 0 +
/trunk/config/debug/strace.in | 1 1 0 0 +
/trunk/config/debug/duma.in | 1 1 0 0 +
/trunk/config/cc.in | 8 8 0 0 +
/trunk/config/target.in | 13 13 0 0 +
/trunk/config/binutils.in | 1 1 0 0 +
/trunk/config/gmp_mpfr.in | 1 1 0 0 +
/trunk/config/libc.in | 17 11 6 0 +
/trunk/arch/arm/functions | 3 1 2 0 -
22 files changed, 600 insertions(+), 652 deletions(-)
yann@1
     1
# C library options
yann@1
     2
yann@850
     3
config LIBC
yann@850
     4
    string
yann@850
     5
    default "none"   if BARE_METAL
yann@850
     6
    default "glibc"  if LIBC_GLIBC
yann@850
     7
    default "eglibc" if LIBC_EGLIBC
yann@850
     8
    default "uClibc" if LIBC_UCLIBC
yann@850
     9
yann@850
    10
if ! BARE_METAL
yann@850
    11
yann@1
    12
menu "C-library"
yann@1
    13
yann@1
    14
choice
yann@1
    15
    bool
yann@1
    16
    prompt "C-library to use:"
yann@1
    17
    default LIBC_GLIBC
yann@1
    18
yann@1
    19
config LIBC_GLIBC
yann@1
    20
    bool
yann@1
    21
    prompt "glibc"
yann@95
    22
    select LIBC_SUPPORT_NPTL
yann@95
    23
    select LIBC_SUPPORT_LINUXTHREADS
yann@1
    24
yann@802
    25
if LIBC_GLIBC
yann@802
    26
source config/libc/glibc.in
yann@802
    27
endif
yann@802
    28
yann@787
    29
config LIBC_EGLIBC
yann@787
    30
    bool
yann@787
    31
    prompt "eglibc (EXPERIMENTAL)"
yann@787
    32
    select LIBC_SUPPORT_NPTL
yann@787
    33
    select LIBC_SUPPORT_LINUXTHREADS
yann@787
    34
    depends on EXPERIMENTAL
yann@815
    35
    help
yann@815
    36
      EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
yann@815
    37
      that is designed to work well on embedded systems.  EGLIBC strives
yann@815
    38
      to be source and binary compatible with GLIBC.  Its goals include
yann@815
    39
      a reduced footprint, configurable components, and improved
yann@815
    40
      cross-compilation support.  EGLIBC also includes some embedded ports
yann@815
    41
      (such as e500/spe) that are normally separate add-ons of GLIBC.
yann@787
    42
yann@802
    43
if LIBC_EGLIBC
yann@802
    44
source config/libc/eglibc.in
yann@802
    45
endif
yann@802
    46
yann@1
    47
config LIBC_UCLIBC
yann@1
    48
    bool
yann@1
    49
    prompt "uClibc"
yann@95
    50
    select LIBC_SUPPORT_LINUXTHREADS
yann@1
    51
yann@802
    52
if LIBC_UCLIBC
yann@802
    53
source config/libc/uClibc.in
yann@802
    54
endif
yann@802
    55
yann@1
    56
endchoice
yann@1
    57
yann@1
    58
config LIBC_VERSION
yann@1
    59
    string
yann@1
    60
yann@95
    61
config LIBC_SUPPORT_NPTL
yann@95
    62
    bool
yann@95
    63
    default n
yann@95
    64
yann@95
    65
config LIBC_SUPPORT_LINUXTHREADS
yann@95
    66
    bool
yann@95
    67
    default n
yann@95
    68
yann@802
    69
choice
yann@802
    70
    bool
yann@802
    71
    prompt "Threading implementation to use:"
yann@802
    72
    default THREADS_NPTL           if LIBC_SUPPORT_NPTL
yann@802
    73
    default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@802
    74
    default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@1
    75
yann@802
    76
config THREADS_NPTL
yann@802
    77
    bool
yann@802
    78
    prompt "nptl"
yann@802
    79
    depends on LIBC_SUPPORT_NPTL
yann@787
    80
yann@802
    81
config THREADS_LINUXTHREADS
yann@802
    82
    bool
yann@802
    83
    prompt "linuxthreads"
yann@802
    84
    depends on LIBC_SUPPORT_LINUXTHREADS
yann@802
    85
yann@802
    86
config THREADS_NONE
yann@802
    87
    bool
yann@802
    88
    prompt "none"
yann@802
    89
yann@802
    90
endchoice
yann@802
    91
yann@802
    92
config THREADS
yann@802
    93
    string
yann@802
    94
    default "nptl"          if THREADS_NPTL
yann@802
    95
    default "linuxthreads"  if THREADS_LINUXTHREADS
yann@802
    96
    default "none"          if THREADS_NONE
yann@1
    97
yann@710
    98
config LIBC_VERSION
yann@710
    99
    help
yann@710
   100
      Enter the date of the snapshot you want to use in the form: YYYYMMDD
yann@710
   101
      where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
yann@710
   102
      day in the month.
yann@710
   103
      
yann@710
   104
      Please note:
yann@710
   105
      - glibc has snapshots done every monday, and only the last ten are kept.
yann@710
   106
      - uClibc has daily snapshots, and only the last 30-or-so are kept.
yann@710
   107
      
yann@710
   108
      So if you want to be able to re-build your toolchain later, you will
yann@793
   109
      have to save your C library tarball by yourself.
yann@710
   110
yann@1
   111
endmenu
yann@850
   112
yann@850
   113
endif # ! BARE_METAL