config/libc/uClibc.in
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
parent 3100 bd4af15b7c75
child 3131 bd172b161ff8
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
yann@448
     1
# uClibc options
yann@448
     2
diorcet@3112
     3
## depends on ! WINDOWS && ! BARE_METAL
yann@2444
     4
##
yann@2444
     5
## select LIBC_SUPPORT_LINUXTHREADS
yann@2444
     6
## select LIBC_SUPPORT_THREADS_NONE
yann@2444
     7
##
yann@2444
     8
## help The de-facto standard for embeded linux systems.
yann@2444
     9
## help
yann@2444
    10
## help Highly configurable, thus as feature-rich as you
yann@2444
    11
## help need, without compromising for size.
yann@852
    12
yann@2761
    13
if ARCH_FLOAT_SOFTFP
yann@2761
    14
comment "'softfp' ABI and uClibc is not entirely tested in crosstool-NG"
yann@2761
    15
comment "You may experience issues, although it should work just fine"
yann@2761
    16
endif # ARCH_FLOAT_SOFTFP
yann@2761
    17
yann@448
    18
choice
yann@448
    19
    bool
yann@448
    20
    prompt "uClibc version"
yann@1535
    21
# Don't remove next line
yann@1535
    22
# CT_INSERT_VERSION_BELOW
yann@448
    23
yann@2990
    24
config LIBC_UCLIBC_V_0_9_33_2
yann@2990
    25
    bool
yann@2990
    26
    prompt "0.9.33.2"
yann@2990
    27
    select LIBC_UCLIBC_0_9_32_or_later
yann@2990
    28
yann@2945
    29
config LIBC_UCLIBC_V_0_9_33_1
yann@2945
    30
    bool
yann@2945
    31
    prompt "0.9.33.1"
yann@2945
    32
    select LIBC_UCLIBC_0_9_32_or_later
yann@2945
    33
js@2866
    34
config LIBC_UCLIBC_V_0_9_33
js@2866
    35
    bool
js@2866
    36
    prompt "0.9.33"
js@2866
    37
    select LIBC_UCLIBC_0_9_32_or_later
js@2866
    38
yann@2813
    39
config LIBC_UCLIBC_V_0_9_32_1
yann@2813
    40
    bool
yann@2813
    41
    prompt "0.9.32.1"
yann@2813
    42
    select LIBC_UCLIBC_0_9_32_or_later
yann@2813
    43
yann@2518
    44
config LIBC_UCLIBC_V_0_9_32
yann@2518
    45
    bool
yann@2518
    46
    prompt "0.9.32"
yann@2666
    47
    select LIBC_UCLIBC_0_9_32_or_later
yann@2518
    48
lacombar@1882
    49
config LIBC_UCLIBC_V_0_9_31
lacombar@1882
    50
    bool
lacombar@1882
    51
    prompt "0.9.31 (EXPERIMENTAL)"
lacombar@1882
    52
    depends on EXPERIMENTAL
lacombar@1882
    53
    select LIBC_UCLIBC_0_9_30_or_later
lacombar@1882
    54
lacombar@2064
    55
config LIBC_UCLIBC_V_0_9_30_3
lacombar@2064
    56
    bool
lacombar@2064
    57
    prompt "0.9.30.3"
lacombar@2064
    58
    select LIBC_UCLIBC_0_9_30_or_later
lacombar@2064
    59
yann@1735
    60
config LIBC_UCLIBC_V_0_9_30_2
yann@1735
    61
    bool
yann@1787
    62
    prompt "0.9.30.2"
yann@1735
    63
    select LIBC_UCLIBC_0_9_30_or_later
yann@1735
    64
bryanhundven@2238
    65
config LIBC_UCLIBC_V_0_9_30_1
yann@448
    66
    bool
yann@1534
    67
    prompt "0.9.30.1"
yann@1534
    68
    select LIBC_UCLIBC_0_9_30_or_later
yann@1534
    69
bryanhundven@2238
    70
config LIBC_UCLIBC_V_0_9_30
yann@1534
    71
    bool
yann@1534
    72
    prompt "0.9.30"
yann@1534
    73
    select LIBC_UCLIBC_0_9_30_or_later
yann@1534
    74
bryanhundven@2238
    75
config LIBC_UCLIBC_V_0_9_29
yann@1534
    76
    bool
yann@1615
    77
    prompt "0.9.29 (OBSOLETE)"
yann@1615
    78
    depends on OBSOLETE
yann@1534
    79
bryanhundven@2238
    80
config LIBC_UCLIBC_V_0_9_28_3
yann@1534
    81
    bool
yann@1615
    82
    prompt "0.9.28.3 (OBSOLETE)"
yann@1615
    83
    depends on OBSOLETE
yann@1534
    84
david@3099
    85
config LIBC_UCLIBC_CUSTOM
david@3099
    86
    bool
david@3099
    87
    prompt "Custom uClibc"
david@3099
    88
    depends on EXPERIMENTAL
david@3099
    89
    select LIBC_SUPPORT_NPTL
david@3099
    90
    select LIBC_UCLIBC_0_9_30_or_later
david@3099
    91
yann@448
    92
endchoice
yann@448
    93
david@3099
    94
if LIBC_UCLIBC_CUSTOM
david@3099
    95
david@3099
    96
config LIBC_UCLIBC_CUSTOM_LOCATION
david@3099
    97
    string
david@3099
    98
    prompt "Full path to custom uClibc source"
david@3099
    99
    default ""
david@3099
   100
    help
david@3099
   101
      Enter the path to the directory (or tarball) of your source for uClibc,
david@3099
   102
      or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/uClibc
david@3099
   103
david@3099
   104
endif # LIBC_UCLIBC_CUSTOM
david@3099
   105
yann@448
   106
config LIBC_VERSION
yann@448
   107
    string
yann@1535
   108
# Don't remove next line
yann@1535
   109
# CT_INSERT_VERSION_STRING_BELOW
yann@2990
   110
    default "0.9.33.2" if LIBC_UCLIBC_V_0_9_33_2
yann@2945
   111
    default "0.9.33.1" if LIBC_UCLIBC_V_0_9_33_1
js@2866
   112
    default "0.9.33" if LIBC_UCLIBC_V_0_9_33
yann@2813
   113
    default "0.9.32.1" if LIBC_UCLIBC_V_0_9_32_1
yann@2518
   114
    default "0.9.32" if LIBC_UCLIBC_V_0_9_32
lacombar@1882
   115
    default "0.9.31" if LIBC_UCLIBC_V_0_9_31
lacombar@2064
   116
    default "0.9.30.3" if LIBC_UCLIBC_V_0_9_30_3
yann@1735
   117
    default "0.9.30.2" if LIBC_UCLIBC_V_0_9_30_2
bryanhundven@2238
   118
    default "0.9.30.1" if LIBC_UCLIBC_V_0_9_30_1
bryanhundven@2238
   119
    default "0.9.30" if LIBC_UCLIBC_V_0_9_30
bryanhundven@2238
   120
    default "0.9.29" if LIBC_UCLIBC_V_0_9_29
bryanhundven@2238
   121
    default "0.9.28.3" if LIBC_UCLIBC_V_0_9_28_3
david@3099
   122
    default "custom" if LIBC_UCLIBC_CUSTOM
yann@448
   123
yann@2666
   124
config LIBC_UCLIBC_0_9_32_or_later
yann@2666
   125
    bool
yann@2666
   126
    select LIBC_SUPPORT_NPTL
yann@2666
   127
    select LIBC_UCLIBC_0_9_30_or_later
yann@2666
   128
yann@1326
   129
config LIBC_UCLIBC_0_9_30_or_later
yann@1326
   130
    bool
yann@1326
   131
    select LIBC_UCLIBC_PARALLEL
yann@1326
   132
yann@1029
   133
config LIBC_UCLIBC_PARALLEL
yann@1029
   134
    bool
yann@1029
   135
yann@448
   136
choice
yann@448
   137
    bool
yann@500
   138
    prompt "uClibc verbosity:"
yann@504
   139
    default LIBC_UCLIBC_VERBOSITY_0
yann@500
   140
yann@500
   141
config LIBC_UCLIBC_VERBOSITY_0
yann@500
   142
    bool
js@2030
   143
    prompt "Quiet build"
js@2030
   144
    help
js@2030
   145
      Print terse command indications.
js@2030
   146
js@2030
   147
config LIBC_UCLIBC_VERBOSITY_1
js@2030
   148
    bool
js@2030
   149
    prompt "Brief build (show defines, ld flags)"
yann@500
   150
    help
yann@500
   151
      Print simplified command lines.
yann@500
   152
js@2030
   153
config LIBC_UCLIBC_VERBOSITY_2
yann@500
   154
    bool
js@2030
   155
    prompt "Very verbose build"
yann@500
   156
    help
yann@500
   157
      Print full command lines.
yann@500
   158
yann@500
   159
endchoice
yann@500
   160
yann@500
   161
config LIBC_UCLIBC_VERBOSITY
yann@500
   162
    string
yann@500
   163
    default ""      if LIBC_UCLIBC_VERBOSITY_0
yann@500
   164
    default "V=1"   if LIBC_UCLIBC_VERBOSITY_1
js@2030
   165
    default "V=2"   if LIBC_UCLIBC_VERBOSITY_2
yann@500
   166
yann@500
   167
choice
yann@500
   168
    bool
yann@448
   169
    prompt "Debug level"
yann@448
   170
    default LIBC_UCLIBC_DEBUG_LEVEL_0
yann@448
   171
yann@448
   172
config LIBC_UCLIBC_DEBUG_LEVEL_0
yann@448
   173
    bool
yann@448
   174
    prompt "none"
yann@448
   175
yann@448
   176
config LIBC_UCLIBC_DEBUG_LEVEL_1
yann@448
   177
    bool
yann@448
   178
    prompt "minimal"
yann@448
   179
yann@448
   180
config LIBC_UCLIBC_DEBUG_LEVEL_2
yann@448
   181
    bool
js@2951
   182
    prompt "normal"
js@2951
   183
js@2951
   184
config LIBC_UCLIBC_DEBUG_LEVEL_3
js@2951
   185
    bool
yann@448
   186
    prompt "all"
yann@448
   187
yann@448
   188
endchoice
yann@448
   189
yann@448
   190
config LIBC_UCLIBC_DEBUG_LEVEL
yann@448
   191
    int
yann@448
   192
    default 0 if LIBC_UCLIBC_DEBUG_LEVEL_0
yann@448
   193
    default 1 if LIBC_UCLIBC_DEBUG_LEVEL_1
yann@448
   194
    default 2 if LIBC_UCLIBC_DEBUG_LEVEL_2
yann@448
   195
yann@448
   196
config LIBC_UCLIBC_CONFIG_FILE
yann@448
   197
    string
yann@448
   198
    prompt "Configuration file"
yann@448
   199
    default ""
yann@448
   200
    help
yann@448
   201
      Path to the configuration file.
yann@448
   202
      
yann@448
   203
      You _must_ provide one (for now).