patches/uClibc/0.9.29/120-fix-internal_function-definition.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Dec 13 23:32:39 2011 +0100 (2011-12-13)
changeset 2807 4193d6e6a174
parent 281 7039139a912a
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>
yann@281
     1
Index: uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
yann@281
     2
===================================================================
yann@281
     3
--- uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h	(revision 18898)
yann@281
     4
+++ uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h	(working copy)
yann@281
     5
@@ -42,6 +42,8 @@
yann@281
     6
 /* define if target supports IEEE signed zero floats */
yann@281
     7
 #define __UCLIBC_HAVE_SIGNED_ZERO__
yann@281
     8
 
yann@281
     9
+#if defined _LIBC
yann@281
    10
 #define internal_function __attribute__ ((regparm (3), stdcall))
yann@281
    11
+#endif
yann@281
    12
 
yann@281
    13
 #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
yann@281
    14
Index: uClibc/include/libc-symbols.h
yann@281
    15
===================================================================
yann@281
    16
--- uClibc/include/libc-symbols.h	(revision 18898)
yann@281
    17
+++ uClibc/include/libc-symbols.h	(working copy)
yann@281
    18
@@ -22,6 +22,16 @@
yann@281
    19
 #ifndef _LIBC_SYMBOLS_H
yann@281
    20
 #define _LIBC_SYMBOLS_H	1
yann@281
    21
 
yann@281
    22
+/* This is defined for the compilation of all C library code.  features.h
yann@281
    23
+   tests this to avoid inclusion of stubs.h while compiling the library,
yann@281
    24
+   before stubs.h has been generated.  Some library code that is shared
yann@281
    25
+   with other packages also tests this symbol to see if it is being
yann@281
    26
+   compiled as part of the C library.  We must define this before including
yann@281
    27
+   config.h, because it makes some definitions conditional on whether libc
yann@281
    28
+   itself is being compiled, or just some generator program.  */
yann@281
    29
+#define _LIBC	1
yann@281
    30
+
yann@281
    31
+
yann@281
    32
 /* This file's macros are included implicitly in the compilation of every
yann@281
    33
    file in the C library by -imacros.
yann@281
    34
 
yann@281
    35
@@ -40,16 +50,6 @@
yann@281
    36
 
yann@281
    37
 #include <bits/uClibc_arch_features.h>
yann@281
    38
 
yann@281
    39
-
yann@281
    40
-/* This is defined for the compilation of all C library code.  features.h
yann@281
    41
-   tests this to avoid inclusion of stubs.h while compiling the library,
yann@281
    42
-   before stubs.h has been generated.  Some library code that is shared
yann@281
    43
-   with other packages also tests this symbol to see if it is being
yann@281
    44
-   compiled as part of the C library.  We must define this before including
yann@281
    45
-   config.h, because it makes some definitions conditional on whether libc
yann@281
    46
-   itself is being compiled, or just some generator program.  */
yann@281
    47
-#define _LIBC	1
yann@281
    48
-
yann@281
    49
 /* Enable declarations of GNU extensions, since we are compiling them.  */
yann@281
    50
 #define _GNU_SOURCE	1
yann@281
    51