This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: genattr Error code 139
- To: Dax Kelson <dkelson at inconnect dot com>
- Subject: Re: genattr Error code 139
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 03 Dec 1997 21:32:07 -0700
- cc: egcs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <Pine.GSO.3.96.971203172507.458C-100000@brookie>you write:
>
> Solaris 2.6 x86
>
> I'm trying to build egcs-1.0 w/ gcc version egcs-2.90.10p 970924 (which
> succesfully compiled)
>
> ./configure --enable-haifa
>
> It dies at this point:
>
> stage1/xgcc -Bstage1/ -DIN_GCC -O2 -g -O2 -DHAVE_CONFIG_H -DHAIFA -o
> genattr \
> genattr.o rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case
> "alloca.o" in ?*) echo alloca.o ;; esac ` ` case "" in ?*) echo ;; esac `
>
> ./genattr ./config/i386/i386.md > tmp-attr.h
> *** Error code 139
Hmm, this sounds similar to a x86-solaris2.5 problem that some folks
have had. I believe the problem had something to do with inproper
padding of the .init/.fini sections by either the assembler or linker.
I don't think we ever got a resolution of this problem. I do not the
following in i386/sol2.h:
/* The Solaris 2.0 x86 linker botches alignment of code sections.
It tries to align to a 16 byte boundary by padding with 0x00000090
ints, rather than 0x90 bytes (nop). This generates trash in the
".init" section since the contribution from crtbegin.o is only 7
bytes. The linker pads it to 16 bytes with a single 0x90 byte, and
two 0x00000090 ints, which generates a segmentation violation when
executed. This macro forces the assembler to do the padding, since
it knows what it is doing. */
I wonder if we're missing a FORCE_INIT_SECTION_ALIGN or FORCE_FINI_SECTION_ALIGN
somewhere.
Can you send us I disassembly dump for the .init section and the .fini
section?
jeff