config/cc/gcc.in.mips
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
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@2523
     1
# MIPS specific options for gcc
yann@2523
     2
yann@2523
     3
config CC_GCC_HAS_ARCH_OPTIONS
yann@2523
     4
    default y
yann@2523
     5
yann@2523
     6
config CC_GCC_mips_llsc
yann@2523
     7
    tristate
yann@2523
     8
    prompt "Use llsc"
yann@2523
     9
    default m
yann@2523
    10
    help
yann@2523
    11
      This configures how gcc will emit load-link, store-conditional and
yann@2523
    12
      sync opcodes. Normally, you'd set this to 'M', and configure will do
yann@2523
    13
      the correct thing (ie. enable llsc for Linux-based targets, disable
yann@2523
    14
      for others). If you know better, you can force either using llsc or
yann@2523
    15
      not using it (resp. 'Y' or 'N').
yann@2523
    16
yann@2523
    17
config CC_GCC_mips_synci
yann@2523
    18
    tristate
yann@2523
    19
    prompt "Use synci"
yann@2523
    20
    default m
yann@2523
    21
    help
yann@2523
    22
      This configures how gcc will emit the synci opcode. Normally, you'd
yann@2523
    23
      set this to 'M', and configure will do the correct thing (ie. disable).
yann@2523
    24
      If you know better, you can force using synci (say 'Y'), or not using
yann@2523
    25
      it (say 'N').
yann@2523
    26
yann@2523
    27
config CC_GCC_mips_plt
yann@2523
    28
    bool
yann@2523
    29
    prompt "Use copy relocations & PLTs"
yann@2523
    30
    help
yann@2523
    31
      This configures gcc to use copy relocations & PLTs. These are
yann@2523
    32
      extensions to the traditional SVR4-based MIPS ABIs and require
yann@2523
    33
      support from GNU binutils and the runtime C library.
yann@2523
    34
      Say 'N' to keep the default and not use them, say 'Y' to use them.