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>