This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


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

Re: Zero valued N_FUN stabs in shared objects: Why?


   Date: Fri, 10 Sep 1999 15:18:13 -0700
   From: Kevin Buettner <kevinb@cygnus.com>

       Why do shared objects on Solaris and Linux have zero-valued
       N_FUN stabs?

Good question.  It doesn't happen with binutils 2.9.1, but it does
happen in the current development sources.

It's because of this bit of code in elf_i386_relocate_section in
bfd/elf32-i386.c:

			  /* DWARF will emit R_386_32 relocations in its
			     sections against symbols defined externally
			     in shared libraries.  We can't do anything
			     with them here.  */
			  || (input_section->flags & SEC_DEBUGGING) != 0)))

If I remove that, N_FUN stabs are no longer zero.

Ulrich Drepper checked the patch into the Cygnus sources, before the
sourceware repository was created, with this ChangeLog entry:

1998-12-10  Richard Henderson  <rth@cygnus.com>

	* elf32-i386.c (elf_i386_relocate_section): Don't fail relocations
	in debug sections for symbol defined externally.

Ulrich, Richard, you may recall that I complained about this at the
time.  As far as I can recall, and based on my mail logs, we never
resolved that issue.  We were left with the above patch, which breaks
things.

At the time I asked for a test case showing the problem, but I never
got one.

My inclination is to simply revert the patch until I find out why it
is needed.  Any other suggestions?

Ian

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