config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 14 18:09:36 2008 +0000 (2008-09-14)
changeset 852 c17bb66e2aa5
parent 791 78b6d5e1213d
child 854 f347a40db591
permissions -rw-r--r--
Enhance setting the minimum kernel version glibc will run against.
Ideally, eglibc should also benefit for that, but the current code does not set it.

/trunk/scripts/build/libc/glibc.sh | 38 33 5 0 +++++++++++++++---
/trunk/config/libc/glibc.in | 4 2 2 0 +-
/trunk/config/libc/uClibc.in | 2 2 0 0 +
/trunk/config/libc/eglibc.in | 4 2 2 0 +-
/trunk/config/libc/glibc-eglibc-common.in | 80 68 12 0 +++++++++++++++++++++++++++++++------
/trunk/config/libc.in | 69 38 31 0 ++++++++++++++++++--------------
6 files changed, 145 insertions(+), 52 deletions(-)
yann@1
     1
# Target definition: architecture, optimisations, etc...
yann@1
     2
yann@1
     3
menu "Target options"
yann@1
     4
yann@47
     5
config ARCH
yann@47
     6
    string
yann@628
     7
yann@628
     8
# Pre-declare target optimisation variables
yann@631
     9
config ARCH_SUPPORT_ARCH
yann@631
    10
config ARCH_SUPPORT_ABI
yann@631
    11
config ARCH_SUPPORT_CPU
yann@631
    12
config ARCH_SUPPORT_TUNE
yann@631
    13
config ARCH_SUPPORT_FPU
yann@628
    14
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@628
    15
config ARCH_DEFAULT_BE
yann@628
    16
config ARCH_DEFAULT_LE
yann@633
    17
config ARCH_ARCH
yann@633
    18
config ARCH_ABI
yann@633
    19
config ARCH_CPU
yann@633
    20
config ARCH_TUNE
yann@633
    21
config ARCH_FPU
yann@633
    22
config ARCH_BE
yann@633
    23
config ARCH_LE
yann@628
    24
config ARCH_FLOAT_HW
yann@628
    25
config ARCH_FLOAT_SW
yann@628
    26
config TARGET_CFLAGS
yann@791
    27
config TARGET_LDFLAGS
yann@628
    28
yann@628
    29
comment "General target options"
yann@47
    30
yann@850
    31
config BARE_METAL
yann@850
    32
    bool
yann@850
    33
    prompt "Bare metal (EXPERIMENTAL)"
yann@850
    34
    default n
yann@850
    35
    depends on EXPERIMENTAL
yann@850
    36
    help
yann@850
    37
      Say 'y' here if you want a simple C compiler with no C library.
yann@850
    38
yann@850
    39
      You probably want to say 'y' here if you plan to use your compiler
yann@850
    40
      to build only kernels or bootloaders
yann@850
    41
yann@850
    42
      'Bare metal' also refer to those programs that run without any kernel.
yann@850
    43
yann@1
    44
choice
yann@1
    45
    bool
yann@1
    46
    prompt "Target architecture:"
yann@1
    47
yann@628
    48
source config.gen/arch.in
yann@1
    49
yann@1
    50
endchoice
yann@1
    51
yann@136
    52
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@35
    53
    bool
yann@35
    54
    default n
yann@35
    55
yann@347
    56
config ARCH_DEFAULT_BE
yann@347
    57
    bool
yann@347
    58
    default n
yann@347
    59
yann@347
    60
config ARCH_DEFAULT_LE
yann@347
    61
    bool
yann@347
    62
    default n
yann@347
    63
yann@1
    64
choice
yann@1
    65
    bool
yann@1
    66
    prompt "Endianness:"
yann@136
    67
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@347
    68
    default ARCH_BE if ARCH_DEFAULT_BE
yann@347
    69
    default ARCH_LE if ARCH_DEFAULT_LE
yann@1
    70
yann@1
    71
config ARCH_BE
yann@1
    72
    bool
yann@1
    73
    prompt "Big endian"
yann@1
    74
yann@1
    75
config ARCH_LE
yann@1
    76
    bool
yann@1
    77
    prompt "Little endian"
yann@1
    78
yann@1
    79
endchoice
yann@1
    80
yann@1
    81
comment "Target optimisations"
yann@1
    82
yann@631
    83
config ARCH_SUPPORT_ARCH
yann@631
    84
    bool
yann@631
    85
    default n
yann@631
    86
yann@631
    87
config ARCH_SUPPORT_ABI
yann@631
    88
    bool
yann@631
    89
    default n
yann@631
    90
yann@631
    91
config ARCH_SUPPORT_CPU
yann@631
    92
    bool
yann@631
    93
    default n
yann@631
    94
yann@631
    95
config ARCH_SUPPORT_TUNE
yann@631
    96
    bool
yann@631
    97
    default n
yann@631
    98
yann@631
    99
config ARCH_SUPPORT_FPU
yann@631
   100
    bool
yann@631
   101
    default n
yann@631
   102
yann@47
   103
config ARCH_ARCH
yann@47
   104
    string
yann@425
   105
    prompt "Architecture level"
yann@631
   106
    depends on ARCH_SUPPORT_ARCH
yann@47
   107
    default ""
yann@47
   108
    help
yann@47
   109
      GCC uses this name to determine what kind of instructions it can emit
yann@47
   110
      when generating assembly code. This option can be used in conjunction
yann@47
   111
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@47
   112
      -mcpu= option.
yann@47
   113
      
yann@47
   114
      This is the configuration flag --with-arch=XXXX, and the runtime flag
yann@47
   115
      -march=XXX.
yann@47
   116
      
yann@47
   117
      Pick a value from the gcc manual for your choosen gcc version and your
yann@47
   118
      target CPU.
yann@47
   119
      
yann@47
   120
      Leave blank if you don't know, or if your target architecture does not
yann@47
   121
      offer this option.
yann@47
   122
yann@45
   123
config ARCH_ABI
yann@45
   124
    string
yann@45
   125
    prompt "Generate code for the specific ABI"
yann@631
   126
    depends on ARCH_SUPPORT_ABI
yann@45
   127
    default ""
yann@45
   128
    help
yann@45
   129
      Generate code for the given ABI.
yann@45
   130
yann@47
   131
      This is the configuration flag --with-abi=XXXX, and the runtime flag
yann@47
   132
      -mabi=XXX.
yann@47
   133
yann@45
   134
      Pick a value from the gcc manual for your choosen gcc version and your
yann@45
   135
      target CPU.
yann@45
   136
yann@45
   137
      Leave blank if you don't know, or if your target architecutre does not
yann@45
   138
      offer this option.
yann@45
   139
yann@1
   140
config ARCH_CPU
yann@1
   141
    string
yann@1
   142
    prompt "Emit assembly for CPU"
yann@631
   143
    depends on ARCH_SUPPORT_CPU
yann@1
   144
    default ""
yann@1
   145
    help
yann@283
   146
      This specifies the name of the target processor. GCC uses this name
yann@1
   147
      to determine what kind of instructions it can emit when generating
yann@1
   148
      assembly code.
yann@1
   149
      
yann@47
   150
      This is the configuration flag --with-cpu=XXXX, and the runtime flag
yann@47
   151
      -mcpu=XXX.
yann@47
   152
yann@1
   153
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   154
      target CPU.
yann@1
   155
      
yann@1
   156
      Leave blank if you don't know, or if your target architecture does not
yann@1
   157
      offer this option.
yann@1
   158
yann@1
   159
config ARCH_TUNE
yann@1
   160
    string
yann@1
   161
    prompt "Tune for CPU"
yann@631
   162
    depends on ARCH_SUPPORT_TUNE
yann@1
   163
    default ""
yann@1
   164
    help
yann@1
   165
      This option is very similar to the ARCH_CPU option (above), except
yann@1
   166
      that instead of specifying the actual target processor type, and hence
yann@1
   167
      restricting which instructions can be used, it specifies that GCC should
yann@1
   168
      tune the performance of the code as if the target were of the type
yann@1
   169
      specified in this option, but still choosing the instructions that it
yann@1
   170
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
   171
      (above), or a (command-line) -mcpu= option.
yann@1
   172
      
yann@47
   173
      This is the configuration flag --with-tune=XXXX, and the runtime flag
yann@47
   174
      -mtune=XXX.
yann@1
   175
      
yann@1
   176
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   177
      target CPU.
yann@1
   178
      
yann@1
   179
      Leave blank if you don't know, or if your target architecture does not
yann@1
   180
      offer this option.
yann@1
   181
yann@1
   182
config ARCH_FPU
yann@1
   183
    string
yann@47
   184
    prompt "Use specific FPU"
yann@631
   185
    depends on ARCH_SUPPORT_FPU
yann@1
   186
    default ""
yann@1
   187
    help
yann@1
   188
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   189
      code for.
yann@47
   190
yann@47
   191
      This is the configuration flag --with-fpu=XXX, and the runtime flag
yann@47
   192
      -mfpu=XXX.
yann@1
   193
      
yann@1
   194
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   195
      
yann@1
   196
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   197
      target CPU.
yann@1
   198
      
yann@1
   199
      Leave blank if you don't know, or if your target architecture does not
yann@1
   200
      offer this option.
yann@1
   201
yann@1
   202
choice
yann@1
   203
    bool
yann@1
   204
    prompt "Floating point:"
yann@1
   205
yann@1
   206
config ARCH_FLOAT_HW
yann@1
   207
    bool
yann@1
   208
    prompt "hardware (FPU)"
yann@1
   209
    help
yann@1
   210
      Emit hardware floating point opcodes.
yann@1
   211
      
yann@1
   212
      If you've got a processor with a FPU, then you want that.
yann@1
   213
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   214
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   215
      say that emulating the FPU is /slooowwwww/...
yann@1
   216
      
yann@1
   217
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   218
      binary blobs from different vendors that are compiling this way and
yann@1
   219
      can't (don't wan't to) change.
yann@1
   220
yann@1
   221
config ARCH_FLOAT_SW
yann@1
   222
    bool
yann@1
   223
    prompt "software"
yann@1
   224
    help
yann@1
   225
      Do not emit any hardware floating point opcode.
yann@1
   226
      
yann@1
   227
      If your processor has no FPU, then you most probably want this, as it
yann@1
   228
      is faster than emulating the FPU in the kernel.
yann@1
   229
yann@1
   230
endchoice
yann@1
   231
yann@1
   232
config TARGET_CFLAGS
yann@1
   233
    string
yann@41
   234
    prompt "Target CFLAGS"
yann@1
   235
    default ""
yann@1
   236
    help
yann@1
   237
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   238
      that will run on the target (eg. libc.so).
yann@1
   239
      
yann@531
   240
      Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
yann@1
   241
      automaticaly used. You don't need to specify them here.
yann@1
   242
      
yann@1
   243
      Leave blank if you don't know better.
yann@1
   244
yann@767
   245
config TARGET_LDFLAGS
yann@767
   246
    string
yann@767
   247
    prompt "Target LDFLAGS"
yann@767
   248
    default ""
yann@767
   249
    help
yann@767
   250
      Used to add specific options when linking libraries of the toolchain,
yann@767
   251
      that will run on your target.
yann@767
   252
      
yann@767
   253
      Leave blank if you don't know better.
yann@767
   254
yann@1
   255
endmenu