change in `ld's functioning on multiple defitions in .a's?

Nick Clifton nickc@cygnus.com
Wed May 24 11:16:00 GMT 2000


Hi David,

: By chance does anyone remember a change to `ld' that would cause the
: following errors when the 2.9.1 `ld' had no problems compiling this code?
: I'm trying to track down if FreeBSD has been doing things wrong, or if I
: have messed up somewhere in the FreeBSD configuration of 2.10 `ld'.

  It may be related to these changes:

1999-12-14  Nick Clifton  <nickc@cygnus.com>

	* elflink.h (is_global_symbol_definition): New Function: Return
	true iff the symbol is being given a global definition in this
	bfd. 
	(elf_link_is_defined_archive_symbol): Do not bother processing
	symbols for an archive element that has already been included
	in the link.
	Use is_global_symbol_definition().
	
1999-12-13  Nick Clifton  <nickc@cygnus.com>

	* elflink.h (elf_link_is_defined_archive_symbol): Check to see
	if the symbol is in the common section.

1999-12-10  Nick Clifton  <nickc@cygnus.com>

	* elflink.h (elf_link_is_defined_archive_symbol): New
	function: Decide if a symbol, in an archive map is there
	because it is defined in the archive element, or because it is
	just another common declaration of it.
	(elf_link_add_archive_symbols): Use
	elf_link_is_defined_archive_symbol to decide if an archive
	element contain a reference to a common symbol should be
	linked in or not.


  This was a change in the way that common symbols are handled in
  order for ld to be compatable with the way that other linkers work.
  (Specifically in this case the Solaris linker).

Cheers
	Nick


More information about the Binutils mailing list