Patchwork Backtrace library [1/3]

login
register
mail settings
Submitter Gerald Pfeifer
Date Sept. 17, 2012, 9 p.m.
Message ID <alpine.LNX.2.00.1209171646410.1675@tuna.site>
Download mbox | patch
Permalink /patch/184543/
State New
Headers show

Comments

Gerald Pfeifer - Sept. 17, 2012, 9 p.m.
On Mon, 17 Sep 2012, Ian Lance Taylor wrote:
> Please let me know about any build problems.

i386-unknown-freebsd10.0 now fails as follows.  Others presumably
have not run into this since "This source file is compiled if the
unwind library is not available".

/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/nounwind.c:48: warning: no previous prototype for 'backtrace'
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/nounwind.c:59: error: conflicting types for 'backtrace_simple'
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.h:130: error: previous declaration of 'backtrace_simple' was here
gmake[4]: *** [nounwind.lo] Error 1
gmake[4]: Leaving directory 
`/scratch2/tmp/gerald/OBJ-0917-1906/libbacktrace'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory 
`/scratch2/tmp/gerald/OBJ-0917-1906/libbacktrace'
gmake[2]: *** [all-stage1-libbacktrace] Error 2 
gmake[2]: Leaving directory `/scratch2/tmp/gerald/OBJ-0917-1906' 
gmake[1]: *** [stage1-bubble] Error 2 
gmake[1]: Leaving directory `/scratch2/tmp/gerald/OBJ-0917-1906'
gmake: *** [bootstrap-lean] Error 2


Tracked as http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54611 .


There are two different issues breaking the build here.

The following patch, which I committed as obvious, addresses the second.
Tested by ensuring the bootstrap on this platform is now only breaking
due to the first item.

2012-09-17  Gerald Pfeifer  <gerald@pfeifer.com>

        PR bootstrap/54611
        * nounwind.c (backtrace_simple): Add state parameter.



I'm running out of time now, but will check again later today or
tomorrow for the other item (hoping it'll been magically gone ;-).

Gerald
Ian Taylor - Sept. 17, 2012, 9:15 p.m.
On Mon, Sep 17, 2012 at 2:00 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> On Mon, 17 Sep 2012, Ian Lance Taylor wrote:
>> Please let me know about any build problems.
>
> i386-unknown-freebsd10.0 now fails as follows.  Others presumably
> have not run into this since "This source file is compiled if the
> unwind library is not available".
>
> /scratch2/tmp/gerald/gcc-HEAD/libbacktrace/nounwind.c:48: warning: no previous prototype for 'backtrace'
> /scratch2/tmp/gerald/gcc-HEAD/libbacktrace/nounwind.c:59: error: conflicting types for 'backtrace_simple'
> /scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.h:130: error: previous declaration of 'backtrace_simple' was here
> gmake[4]: *** [nounwind.lo] Error 1
> gmake[4]: Leaving directory
> `/scratch2/tmp/gerald/OBJ-0917-1906/libbacktrace'
> gmake[3]: *** [all] Error 2
> gmake[3]: Leaving directory
> `/scratch2/tmp/gerald/OBJ-0917-1906/libbacktrace'
> gmake[2]: *** [all-stage1-libbacktrace] Error 2
> gmake[2]: Leaving directory `/scratch2/tmp/gerald/OBJ-0917-1906'
> gmake[1]: *** [stage1-bubble] Error 2
> gmake[1]: Leaving directory `/scratch2/tmp/gerald/OBJ-0917-1906'
> gmake: *** [bootstrap-lean] Error 2
>
>
> Tracked as http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54611 .
>
>
> There are two different issues breaking the build here.
>
> The following patch, which I committed as obvious, addresses the second.
> Tested by ensuring the bootstrap on this platform is now only breaking
> due to the first item.

Sorry about that.  Fixed like so.  Committed to mainline.

Ian

2012-09-17  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54611
	* nounwind.c (backtrace_full): Rename from backtrace.  Add state
	parameter.
Ian Taylor - Sept. 17, 2012, 9:19 p.m.
On Mon, Sep 17, 2012 at 2:00 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> On Mon, 17 Sep 2012, Ian Lance Taylor wrote:
>> Please let me know about any build problems.
>
> i386-unknown-freebsd10.0 now fails as follows.  Others presumably
> have not run into this since "This source file is compiled if the
> unwind library is not available".

While this should be fixed now, note that it should only arise if
i386-unknown-freebsd10.0 does not use ELF.  If this is an ELF based
system, then we need to discover why it was not recognized as such.
What is the output of

awk -f SRCDIR/libbacktrace/filetype.awk foo.o

for some ELF foo.o file?

Ian
Gerald Pfeifer - Sept. 19, 2012, 4:04 a.m.
On Mon, 17 Sep 2012, Ian Lance Taylor wrote:
> While this should be fixed now, note that it should only arise if
> i386-unknown-freebsd10.0 does not use ELF.  If this is an ELF based
> system, then we need to discover why it was not recognized as such.
> What is the output of
> 
> awk -f SRCDIR/libbacktrace/filetype.awk foo.o
> 
> for some ELF foo.o file?

Thanks for addressing the other half of the bootstrap failure, Ian.

You are right, FreeBSD definitely is an ELF system and

  % awk -f $GCC_SOURCE/libbacktrace/filetype.awk foo.o

gives me elf32 on i386-unknown-freebsd10.0.

Gerald
Gerald Pfeifer - Sept. 19, 2012, 4:11 a.m.
It turns out "make bootstrap" work now, but "make install" is still
broken on i386-unknown-freebsd10.0:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/scratch2/tmp/gerald/gcc-HEAD/libbacktrace -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wcast-qual -Werror -I /scratch2/tmp/gerald/gcc-HEAD/libbacktrace/../include -I ../libgcc -g -O2 -MT backtrace.lo -MD -MP -MF .deps/backtrace.Tpo -c /scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c -o backtrace.o
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:35:20: error: unwind.h: No such file or directory
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:62: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unwind'
cc1: warnings being treated as errors
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c: In function 'backtrace_full':
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:106: warning: implicit declaration of function '_Unwind_Backtrace'
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:106: error: 'unwind' undeclared (first use in this function)
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:106: error: (Each undeclared identifier is reported only once
/scratch2/tmp/gerald/gcc-HEAD/libbacktrace/backtrace.c:106: error: for each function it appears in.)
gmake[2]: *** [backtrace.lo] Error 1
gmake[2]: Leaving directory `/scratch2/tmp/gerald/OBJ-0919-0258/libbacktrace'   
gmake[1]: *** [install-libbacktrace] Error 2
gmake[1]: Leaving directory `/scratch2/tmp/gerald/OBJ-0919-0258'
gmake: *** [install] Error 2

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54623

The line in question reads
  #include "unwind.h"
yet this is nowhere in the source tree, though it's in the build tree
at $BUILD/./gcc/include/unwind.h and 
$BUILD./i386-unknown-freebsd10.0/libgcc/unwind.h .

Gerald

Patch

Index: nounwind.c
===================================================================
--- nounwind.c	(revision 191404)
+++ nounwind.c	(working copy)
@@ -53,7 +53,8 @@ 
 }
 
 int
-backtrace_simple (int skip ATTRIBUTE_UNUSED,
+backtrace_simple (struct backtrace_state *state ATTRIBUTE_UNUSED,
+		  int skip ATTRIBUTE_UNUSED,
 		  backtrace_simple_callback callback ATTRIBUTE_UNUSED,
 		  backtrace_error_callback error_callback, void *data)
 {