patches/binutils/2.16.1a/160-i386-no-divide-comment.patch
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 866 5fec4dba671e
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 diff -durN binutils-2.16.1.orig/gas/config/tc-i386.c binutils-2.16.1/gas/config/tc-i386.c
     2 --- binutils-2.16.1.orig/gas/config/tc-i386.c	2005-04-13 19:58:42.000000000 +0200
     3 +++ binutils-2.16.1/gas/config/tc-i386.c	2008-09-22 09:00:09.000000000 +0200
     4 @@ -192,16 +192,10 @@
     5  #endif
     6  	;
     7  
     8 -#if (defined (TE_I386AIX)				\
     9 -     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
    10 -	 && !defined (TE_LINUX)				\
    11 - 	 && !defined (TE_NETWARE)			\
    12 -	 && !defined (TE_FreeBSD)			\
    13 -	 && !defined (TE_NetBSD)))
    14  /* This array holds the chars that always start a comment.  If the
    15     pre-processor is disabled, these aren't very useful.  */
    16 -const char comment_chars[] = "#/";
    17 -#define PREFIX_SEPARATOR '\\'
    18 +const char comment_chars[] = "#";
    19 +#define PREFIX_SEPARATOR '/'
    20  
    21  /* This array holds the chars that only start a comment at the beginning of
    22     a line.  If the line seems to have the form '# 123 filename'
    23 @@ -211,16 +205,7 @@
    24     #NO_APP at the beginning of its output.
    25     Also note that comments started like this one will always work if
    26     '/' isn't otherwise defined.  */
    27 -const char line_comment_chars[] = "#";
    28 -
    29 -#else
    30 -/* Putting '/' here makes it impossible to use the divide operator.
    31 -   However, we need it for compatibility with SVR4 systems.  */
    32 -const char comment_chars[] = "#";
    33 -#define PREFIX_SEPARATOR '/'
    34 -
    35 -const char line_comment_chars[] = "/#";
    36 -#endif
    37 +const char line_comment_chars[] = "#/";
    38  
    39  const char line_separator_chars[] = ";";
    40