This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: genattr Error code 139



  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]