config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun May 27 20:29:22 2007 +0000 (2007-05-27)
changeset 138 dc4ce917245f
parent 136 22b5ef41df97
child 144 27a0abfd46d1
permissions -rw-r--r--
No longer mark NPTL as being EXPERIMENTAL.
But mark build a native gdb as being EXPERIMENTAL.
     1 # Target definition: architecture, optimisations, etc...
     2 
     3 menu "Target options"
     4 
     5 comment "General target options"
     6 
     7 config ARCH
     8     string
     9     default "arm"     if ARCH_ARM
    10     default "mips"    if ARCH_MIPS
    11     default "x86"     if ARCH_x86
    12     default "x86_64"  if ARCH_x86_64
    13 
    14 choice
    15     bool
    16     prompt "Target architecture:"
    17     default ARCH_x86
    18 
    19 config ARCH_ARM
    20     bool
    21     prompt "arm"
    22     select ARCH_SUPPORTS_BOTH_ENDIAN
    23     select ARCH_SUPPORTS_LIBFLOAT
    24 
    25 config ARCH_MIPS
    26     bool
    27     prompt "mips"
    28     select ARCH_SUPPORTS_BOTH_ENDIAN
    29 
    30 config ARCH_x86
    31     bool
    32     prompt "x86"
    33     select ARCH_SUPPORTS_LIBFLOAT
    34 
    35 config ARCH_x86_64
    36     bool
    37     prompt "x86_64"
    38 
    39 endchoice
    40 
    41 config ARCH_SUPPORTS_BOTH_ENDIAN
    42     bool
    43     default n
    44 
    45 choice
    46     bool
    47     prompt "Endianness:"
    48     depends on ARCH_SUPPORTS_BOTH_ENDIAN
    49 
    50 config ARCH_BE
    51     bool
    52     prompt "Big endian"
    53 
    54 config ARCH_LE
    55     bool
    56     prompt "Little endian"
    57 
    58 endchoice
    59 
    60 choice
    61     bool
    62     prompt "Threading implentation to use:"
    63     default THREADS_NPTL           if LIBC_SUPPORT_NPTL
    64     default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    65     default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
    66 
    67 config THREADS_NPTL
    68     bool
    69     prompt "nptl"
    70     depends on LIBC_SUPPORT_NPTL
    71 
    72 config THREADS_LINUXTHREADS
    73     bool
    74     prompt "linuxthreads"
    75     depends on LIBC_SUPPORT_LINUXTHREADS
    76 
    77 config THREADS_NONE
    78     bool
    79     prompt "none"
    80 
    81 endchoice
    82 
    83 config THREADS
    84     string
    85     default "nptl"          if THREADS_NPTL
    86     default "linuxthreads"  if THREADS_LINUXTHREADS
    87     default "none"          if THREADS_NONE
    88 
    89 comment "Target optimisations"
    90 
    91 config ARCH_ARCH
    92     string
    93     prompt "Achitecture level"
    94     default ""
    95     help
    96       GCC uses this name to determine what kind of instructions it can emit
    97       when generating assembly code. This option can be used in conjunction
    98       with or instead of the ARCH_CPU option (above), or a (command-line)
    99       -mcpu= option.
   100       
   101       This is the configuration flag --with-arch=XXXX, and the runtime flag
   102       -march=XXX.
   103       
   104       Pick a value from the gcc manual for your choosen gcc version and your
   105       target CPU.
   106       
   107       Leave blank if you don't know, or if your target architecture does not
   108       offer this option.
   109 
   110 config ARCH_ABI
   111     string
   112     prompt "Generate code for the specific ABI"
   113     default ""
   114     help
   115       Generate code for the given ABI.
   116 
   117       This is the configuration flag --with-abi=XXXX, and the runtime flag
   118       -mabi=XXX.
   119 
   120       Pick a value from the gcc manual for your choosen gcc version and your
   121       target CPU.
   122 
   123       Leave blank if you don't know, or if your target architecutre does not
   124       offer this option.
   125 
   126 config ARCH_CPU
   127     string
   128     prompt "Emit assembly for CPU"
   129     default ""
   130     help
   131       This specifies the name of the target ARM processor. GCC uses this name
   132       to determine what kind of instructions it can emit when generating
   133       assembly code.
   134       
   135       This is the configuration flag --with-cpu=XXXX, and the runtime flag
   136       -mcpu=XXX.
   137 
   138       Pick a value from the gcc manual for your choosen gcc version and your
   139       target CPU.
   140       
   141       Leave blank if you don't know, or if your target architecture does not
   142       offer this option.
   143 
   144 config ARCH_TUNE
   145     string
   146     prompt "Tune for CPU"
   147     default ""
   148     help
   149       This option is very similar to the ARCH_CPU option (above), except
   150       that instead of specifying the actual target processor type, and hence
   151       restricting which instructions can be used, it specifies that GCC should
   152       tune the performance of the code as if the target were of the type
   153       specified in this option, but still choosing the instructions that it
   154       will generate based on the cpu specified by the ARCH_CPU option
   155       (above), or a (command-line) -mcpu= option.
   156       
   157       This is the configuration flag --with-tune=XXXX, and the runtime flag
   158       -mtune=XXX.
   159       
   160       Pick a value from the gcc manual for your choosen gcc version and your
   161       target CPU.
   162       
   163       Leave blank if you don't know, or if your target architecture does not
   164       offer this option.
   165 
   166 config ARCH_FPU
   167     string
   168     prompt "Use specific FPU"
   169     default ""
   170     help
   171       On some targets (eg. ARM), you can specify the kind of FPU to emit
   172       code for.
   173 
   174       This is the configuration flag --with-fpu=XXX, and the runtime flag
   175       -mfpu=XXX.
   176       
   177       See below wether to actually emit FP opcodes, or to emulate them.
   178       
   179       Pick a value from the gcc manual for your choosen gcc version and your
   180       target CPU.
   181       
   182       Leave blank if you don't know, or if your target architecture does not
   183       offer this option.
   184 
   185 choice
   186     bool
   187     prompt "Floating point:"
   188 
   189 config ARCH_FLOAT_HW
   190     bool
   191     prompt "hardware (FPU)"
   192     help
   193       Emit hardware floating point opcodes.
   194       
   195       If you've got a processor with a FPU, then you want that.
   196       If your hardware has no FPU, you still can use HW floating point, but
   197       need to compile support for FPU emulation in your kernel. Needless to
   198       say that emulating the FPU is /slooowwwww/...
   199       
   200       One situation you'd want HW floating point without a FPU is if you get
   201       binary blobs from different vendors that are compiling this way and
   202       can't (don't wan't to) change.
   203 
   204 config ARCH_FLOAT_SW
   205     bool
   206     prompt "software"
   207     help
   208       Do not emit any hardware floating point opcode.
   209       
   210       If your processor has no FPU, then you most probably want this, as it
   211       is faster than emulating the FPU in the kernel.
   212 
   213 endchoice
   214 
   215 config ARCH_SUPPORTS_LIBFLOAT
   216     bool
   217     default n
   218 
   219 config ARCH_FLOAT_SW_LIBFLOAT
   220     bool
   221     prompt "Use libfloat"
   222     default n
   223     depends on ARCH_FLOAT_SW && ARCH_SUPPORTS_LIBFLOAT
   224     help
   225       For those targets upporting it, you can use libfloat for the software
   226       floating point emulation.
   227       
   228       Note that some versions of gcc have support code that supersedes libfloat,
   229       while others don't. Known version of gcc that don't have support code are
   230       versions prior to 3.0, and version above 4.0.
   231       
   232       You should check gcc before deciding to use libfloat.
   233 
   234 config LIBFLOAT_VERSION
   235     string
   236     default "990616.orig"
   237     depends on ARCH_FLOAT_SW_LIBFLOAT
   238 
   239 config TARGET_CFLAGS
   240     string
   241     prompt "Target CFLAGS"
   242     default ""
   243     help
   244       Used to add specific options when compiling libraries of the toolchain,
   245       that will run on the target (eg. libc.so).
   246       
   247       Note that the options above for CPU, tune, arch and FPU will be
   248       automaticaly used. You don't need to specify them here.
   249       
   250       Leave blank if you don't know better.
   251 
   252 endmenu