Date: Tue, 24 Dec 2002 08:07:48 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Richard Dawe cc: DJGPP workers Subject: Re: ld crash when building emu387.dxe In-Reply-To: <3E075A0F.5C476C7A@phekda.freeserve.co.uk> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Mon, 23 Dec 2002, Richard Dawe wrote: > Please note that I also get this crash in another tree, which is built with > stock versions from Simtel.NET. Both trees have been built with -g with gcc > 3.2.1 - DWARF-2 debugging information. I'd suspect ld, not GCC. So perhaps try with an older version of Binutils (I seem to recall other complaints about the stability of the latest Binutils release). > Page fault at eip=000438d0, error=0006 This means the program crashed trying to write (assign a value) to a bad address. > Program received signal SIGSEGV, Segmentation fault. > mark_relocs (finfo=0xfdcb0, input_bfd=0x113870) at ../../bfd/cofflink.c:1349 > 1349 finfo->sym_indices[ irel->r_symndx ] = -1; Since this is an assignment, I'm guessing that irel->r_symndx has a garbled value which causes the code to write past the end of the sym_indices array. Alternatively, finfo->sym_indices could itself be a bad address. So please print the values of the variables involved in this expression and try to figure out which one is garbled and why.