config/cc/gcc.in.mips
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Dec 13 23:32:39 2011 +0100 (2011-12-13)
branch1.13
changeset 2847 c0bf2319af08
permissions -rw-r--r--
scripts: fix dumping execution backtrace

Dumping the backtrace has been broken since changeset #652e56d6d35a:
scripts: execute each steps in a subshell

We can spawn sub-sub-shells in some cases.

The way the fault handler works is to dump the backtrace, but to avoid
printing it once for every sub-shell (which could get quite confusing),
it simply exits when it detects that it is being run in a sub-shell,
leaving to the top-level shell the work to dump the backtrace.

Because each step is executed in its own sub-shell, the variable arrays
that contain the step name, the source file and line number, are lost
when exiting the per-step sub-shell.

Hence, the backtrace is currently limited to printing only the top-level
main procedure of the shell.

Fix this thus:
- when dumping the bckatraces for the steps & the functions, remember
it was dumped, and only dump it if it was not already dumped
- at the top-level shell, print the hints

Also, rename the top-level step label.

Reported-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
(transplanted from 4193d6e6a17430a177fa88c287879c2c35e319f3)
     1 # MIPS specific options for gcc
     2 
     3 config CC_GCC_HAS_ARCH_OPTIONS
     4     default y
     5 
     6 config CC_GCC_mips_llsc
     7     tristate
     8     prompt "Use llsc"
     9     default m
    10     help
    11       This configures how gcc will emit load-link, store-conditional and
    12       sync opcodes. Normally, you'd set this to 'M', and configure will do
    13       the correct thing (ie. enable llsc for Linux-based targets, disable
    14       for others). If you know better, you can force either using llsc or
    15       not using it (resp. 'Y' or 'N').
    16 
    17 config CC_GCC_mips_synci
    18     tristate
    19     prompt "Use synci"
    20     default m
    21     help
    22       This configures how gcc will emit the synci opcode. Normally, you'd
    23       set this to 'M', and configure will do the correct thing (ie. disable).
    24       If you know better, you can force using synci (say 'Y'), or not using
    25       it (say 'N').
    26 
    27 config CC_GCC_mips_plt
    28     bool
    29     prompt "Use copy relocations & PLTs"
    30     help
    31       This configures gcc to use copy relocations & PLTs. These are
    32       extensions to the traditional SVR4-based MIPS ABIs and require
    33       support from GNU binutils and the runtime C library.
    34       Say 'N' to keep the default and not use them, say 'Y' to use them.