Bugs in recent snapshots on Solaris

Richard Henderson rth@cygnus.com
Fri Mar 20 02:30:00 GMT 1998


> -      /* If this symbol is not defined in a regular file, and we are
> -	 not generating a shared library, then set the symbol to this
> -	 location in the .plt.  This is required to make function
> -	 pointers compare as equal between the normal executable and
> -	 the shared library.  */
> -      if (! info->shared
> -	  && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)
> -	{
> -	  h->root.u.def.section = s;
> -	  h->root.u.def.value = s->_raw_size;
> -	}
> +      /* Set the symbol to this location in the .plt.  This is
> +	 required to make function pointers compare as equal between
> +	 the normal executable and the shared library.  */
> +      h->root.u.def.section = s;
> +      h->root.u.def.value = s->_raw_size;

This was the offending bit.  The other part is righteous.
Somewhere I got a bit overeager.

Sorry about that.


r~



More information about the Bfd mailing list