svn commit: r217433 - projects/binutils-2.17/contrib/binutils/bfd

Dimitry Andric dim at FreeBSD.org
Sat Jan 15 00:12:52 UTC 2011


Author: dim
Date: Sat Jan 15 00:12:51 2011
New Revision: 217433
URL: http://svn.freebsd.org/changeset/base/217433

Log:
  Backport the second part of the fix for binutils PR ld/4424, which fixes
  an error in elf_i386_relocate_section, when building the VirtualBox port
  on i386.  The port now builds to completion on i386.
  
  A similar amd64 error was already fixed in r217232, but the port does
  not build to completion there yet, because of another issue.

Modified:
  projects/binutils-2.17/contrib/binutils/bfd/elflink.c

Modified: projects/binutils-2.17/contrib/binutils/bfd/elflink.c
==============================================================================
--- projects/binutils-2.17/contrib/binutils/bfd/elflink.c	Fri Jan 14 23:30:35 2011	(r217432)
+++ projects/binutils-2.17/contrib/binutils/bfd/elflink.c	Sat Jan 15 00:12:51 2011	(r217433)
@@ -858,9 +858,11 @@ _bfd_elf_merge_symbol (bfd *abfd,
     return FALSE;
   *sym_hash = h;
 
+  bed = get_elf_backend_data (abfd);
+
   /* This code is for coping with dynamic objects, and is only useful
      if we are doing an ELF link.  */
-  if (info->hash->creator != abfd->xvec)
+  if (!(*bed->relocs_compatible) (abfd->xvec, info->hash->creator))
     return TRUE;
 
   /* For merging, we only care about real symbols.  */
@@ -947,7 +949,6 @@ _bfd_elf_merge_symbol (bfd *abfd,
 	    && h->root.type != bfd_link_hash_undefweak
 	    && h->root.type != bfd_link_hash_common);
 
-  bed = get_elf_backend_data (abfd);
   /* When we try to create a default indirect symbol from the dynamic
      definition with the default version, we skip it if its type and
      the type of existing regular definition mismatch.  We only do it


More information about the svn-src-projects mailing list