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