config/kernel.in
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
parent 2017 f637b6c2162b
child 3112 6cb56b3f2d34
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)
yann@1
     1
# Kernel options
yann@1
     2
yann@861
     3
menu "Operating System"
yann@861
     4
yann@883
     5
# Config option used throughout the config and code to determine wether
yann@1337
     6
# we have a kernel or not (there might be different bare metal stuff)...
yann@883
     7
config BARE_METAL
yann@883
     8
    bool
yann@883
     9
bartvdrmeulen@2017
    10
config MINGW32
bartvdrmeulen@2017
    11
    bool
bartvdrmeulen@2017
    12
yann@1499
    13
# Each target OS (aka kernel) that support shared libraries can select
yann@1499
    14
# this, so the user can decide whether or not to build a shared library
yann@1499
    15
# enabled toolchain
yann@1499
    16
config KERNEL_SUPPORTS_SHARED_LIBS
yann@1499
    17
    bool
yann@1499
    18
yann@847
    19
config KERNEL
yann@847
    20
    string
yann@847
    21
yann@861
    22
config KERNEL_VERSION
yann@861
    23
    string
yann@850
    24
yann@1870
    25
source "config.gen/kernel.in"
yann@854
    26
yann@1502
    27
comment "Common kernel options"
yann@1502
    28
yann@1502
    29
config SHARED_LIBS
yann@1502
    30
    bool
yann@1502
    31
    prompt "Build shared libraries"
yann@1502
    32
    depends on KERNEL_SUPPORTS_SHARED_LIBS
yann@1502
    33
    default y
yann@1502
    34
    help
yann@1502
    35
      Say 'y' here, unless you don't want shared libraries.
yann@1502
    36
      
yann@1502
    37
      You might not want shared libraries if you're building for a target that
yann@1502
    38
      don't support it (maybe some nommu targets, for example, or bare metal).
yann@1502
    39
yann@1976
    40
source "config.gen/kernel.in.2"
yann@1976
    41
yann@1
    42
endmenu