config/global/ct-behave.in
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
parent 2227 5158aa602e58
child 3083 3a7b2eee9dcd
permissions -rw-r--r--
glibc: Refactor startfiles/headers into do_libc_backend()

Refactor the contents of 'do_libc_start_files()' and 'do_libc()' into a
parameterized 'do_libc_backend()'. 'do_libc_start_files()' and 'do_libc()'
call 'do_libc_backend()' with either 'libc_mode=startfiles' or
'libc_mode=final' (respectively) so that the startfiles/headers and
the final libc builds are configured and built with the same options.

One example of where this is needed is when building a mips toolchain.
Previously, if you were building an n32 toolchain, you wouldn't have
noticed an issue, because if '-mabi' is not in CFLAGS, n32 is the
default:

http://sourceware.org/git/?p=glibc-ports.git;a=blob;f=sysdeps/mips/preconfigure;hb=HEAD

But when trying to build an o32 or n64 toolchain the build would
have failed. This is because (e)glibc expects "-mabi={o32,n32,n64}" to be
in CFLAGS, but was not previously provided in 'do_libc_start_files()'.
The build failure would happen in the shared-core gcc when it tries to
configure an n64 or o32 gcc with an n32 libc.

A simpler solution would have been to just add TARGET_CFLAGS to configure
in 'do_libc_start_files()', but this way makes configure and make
consistent for both steps.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
yann@445
     1
# Options specific to crosstool-NG overall behavior
yann@1
     2
yann@197
     3
comment "crosstool-NG behavior"
yann@121
     4
yann@244
     5
config OBSOLETE
yann@244
     6
    bool
yann@244
     7
    prompt "Use obsolete features"
yann@244
     8
    help
yann@244
     9
      If you set this to Y, you will be able to select obsolete features.
yann@1300
    10
      
yann@1300
    11
      Such obsolete features are the use of old kernel headers, old gcc
yann@1300
    12
      versions, etc... for which maintaining support in crosstool-NG
yann@1300
    13
      would be very costly.
yann@1300
    14
      
yann@1300
    15
      It does not however mean that the specific feature or version has been
yann@1300
    16
      marked obsolete by the upstream team.
yann@244
    17
yann@41
    18
config EXPERIMENTAL
yann@41
    19
    bool
yann@41
    20
    prompt "Try features marked as EXPERIMENTAL"
yann@41
    21
    help
yann@41
    22
      If you set this to Y, then you will be able to try very experimental
yann@41
    23
      features.
yann@1300
    24
      
yann@41
    25
      Experimental features can be one of:
yann@41
    26
        - working, in which case you should tell me it is!
yann@41
    27
        - buggy, in which case you could try patching and send me the result
yann@41
    28
        - unfinished, in which case you could try hacking it and send me the result
yann@384
    29
        - non-existant, in which case you could also try hacking it in and send me
yann@384
    30
          the result
yann@41
    31
yann@121
    32
config DEBUG_CT
yann@121
    33
    bool
yann@121
    34
    prompt "Debug crosstool-NG"
yann@1867
    35
    depends on ! BACKEND
yann@121
    36
    help
yann@1300
    37
      Say 'y' here to get some options regarding debugging crosstool-NG.
yann@121
    38
yann@121
    39
if DEBUG_CT
yann@121
    40
yann@725
    41
config DEBUG_PAUSE_STEPS
yann@121
    42
    bool
yann@121
    43
    prompt "Pause between every steps"
yann@121
    44
    help
yann@121
    45
      Say 'y' if you intend to attend the build, and want to investigate
yann@121
    46
      the result of each steps before running the next one.
yann@121
    47
yann@121
    48
config DEBUG_CT_SAVE_STEPS
yann@121
    49
    bool
yann@121
    50
    prompt "Save intermediate steps"
yann@121
    51
    help
yann@121
    52
      If you say 'y' here, then you will be able to restart crosstool-NG at
yann@168
    53
      any step.
yann@1300
    54
      
yann@1300
    55
      It is not currently possible to restart at any of the debug facilities.
yann@168
    56
      They are treated as a whole.
yann@1300
    57
      
yann@2227
    58
      To get the full list os steps, run: ct-ng list-steps
yann@121
    59
yann@121
    60
config DEBUG_CT_SAVE_STEPS_GZIP
yann@121
    61
    bool
yann@121
    62
    prompt "gzip saved states"
yann@121
    63
    default y
yann@121
    64
    depends on DEBUG_CT_SAVE_STEPS
yann@121
    65
    help
yann@121
    66
      If you are tight on space, then you can ask to gzip the saved states
yann@121
    67
      tarballs. On the other hand, this takes some longer time...
yann@1300
    68
      
yann@121
    69
      To lose as less time as possible, the gzip process is done with a low
yann@121
    70
      compression ratio (-3), which gives roughly 70% gain in size. Going
yann@121
    71
      further doesn't gain much, and takes far more time (believe me, I've
yann@121
    72
      got figures here! :-) ).
yann@121
    73
yann@1064
    74
config NO_OVERIDE_LC_MESSAGES
yann@1064
    75
    bool
yann@1064
    76
    prompt "Do *not* overide LC_MESSAGES (EXPERIMENTAL)"
yann@1064
    77
    depends on EXPERIMENTAL
yann@1064
    78
    help
yann@1064
    79
      By default, crosstool-NG sets and exports LC_ALL=C so that the
yann@1064
    80
      build.log file contains english messages, that can be read by
yann@1064
    81
      people most likely to help interpret the logs. If you say N here,
yann@1064
    82
      and your locale is not an english language, then dissecting your
yann@1064
    83
      log file will be difficult for most people but you.
yann@1064
    84
      
yann@1064
    85
      If you say Y here, then your current locale settings will be used
yann@1064
    86
      to print messages, instead of plain english.
yann@1064
    87
      
yann@1064
    88
      Say N, please.
yann@1064
    89
yann@121
    90
endif