Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jan 2006 07:50:06 GMT
From:      Andrew Belashov <bel@orel.ru>
To:        freebsd-sparc64@FreeBSD.org
Subject:   Re: sparc64/89486: firefox and thunderbird is broken on sparc64
Message-ID:  <200601130750.k0D7o6Gk062806@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR sparc64/89486; it has been noted by GNATS.

From: Andrew Belashov <bel@orel.ru>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: sparc64/89486: firefox and thunderbird is broken on sparc64
Date: Fri, 13 Jan 2006 10:45:59 +0300

 This is a multi-part message in MIME format.
 --------------060008010808050904090302
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 
 
 I have fully working firefox, built from ports.
 
 How-To-Fix:
 
 Save attached patch or get it from NetBSD:
 http://cvsweb.netbsd.org/bsdweb.cgi/src/gnu/dist/binutils/bfd/elf64-sparc.c.diff?r1=1.3&r2=1.4&f=h&f=u
 
 Apply the patch.
 
 # cd /usr/src
 # patch -p0 < /path/to/patch
 
 Recompile your binutils.
 
 # cd /usr/src/gnu/usr.bin/binutils
 # make obj && make depend && make && make install
 
 Now we have fixed ld(1).
 
 Recompile firefox from ports.
 
 # cd /usr/ports/www/firefox
 # make clean
 # make
 # make deinstall
 # make install
 # make package
 
 I have tested firefox and gnome2 on FreeBSD-6.0-RELEASE/sparc64/SMP with
 libthr. No problems found. For switching to libthr, add following
 lines to /etc/libmap.conf:
 
 libc_r.so.6             libthr.so.2
 libc_r.so               libthr.so
 
 --------------060008010808050904090302
 Content-Type: text/plain;
  name="elf64-sparc.c.patch"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="elf64-sparc.c.patch"
 
 --- contrib/binutils/bfd/elf64-sparc.c.orig	Thu Aug  5 08:31:26 2004
 +++ contrib/binutils/bfd/elf64-sparc.c	Sun Jan  1 19:00:33 2006
 @@ -1638,7 +1638,11 @@ sparc64_elf_adjust_dynamic_symbol (info,
  	      || h->root.type == bfd_link_hash_defweak)
  	  && (h->root.u.def.section->flags & SEC_CODE) != 0))
      {
 -      if (! elf_hash_table (info)->dynamic_sections_created)
 +      if (! info->shared
 +	  && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
 +	  && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
 +	  && h->root.type != bfd_link_hash_undefweak
 +	  && h->root.type != bfd_link_hash_undefined)
  	{
  	  /* This case can occur if we saw a WPLT30 reloc in an input
               file, but none of the input files were dynamic objects.
 
 --------------060008010808050904090302--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601130750.k0D7o6Gk062806>