Date: 01 Feb 2002 23:40:59 +0100 From: Dag-Erling Smorgrav <des@ofug.org> To: John Hay <jhay@icomtek.csir.co.za> Cc: obrien@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/contrib/binutils Message-ID: <xzpd6zo25c4.fsf@flood.ping.uio.no> In-Reply-To: <200202011843.g11Ihsj66783@zibbi.icomtek.csir.co.za> References: <200202011843.g11Ihsj66783@zibbi.icomtek.csir.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
John Hay <jhay@icomtek.csir.co.za> writes: > #0 0x2805353a in reloc_non_plt (obj=0x0, obj_rtld=0x0) > at /home/src/libexec/rtld-elf/i386/reloc.c:196 > 196 *where += (Elf_Addr) obj->relocbase; > [...] > It seems as if the stack or something gets clobbered in reloc_non_plt() > because obj has been used earlier in the function and didn't cause a bus > error then. No. The problem isn't obj, the problem is where, which is computed a few lines earlier, right before the switch: Elf_Addr *where = (Elf_Addr *) (obj->relocbase + rel->r_offset); Try (gdb) p where (gdb) p *obj (gdb) p *rel where is probably way off in never-never land, which is possibly the result of a bug in binutils, and possibly the result of a bug in rtld-elf. JDP should be able to help, given a proper backtrace. I'll try to reproduce the problem and produce one. DES (who builds world with DEBUG_FLAGS=-g and STRIP="") -- Dag-Erling Smorgrav - des@ofug.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpd6zo25c4.fsf>