Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 May 2003 22:44:41 +0200
From:      Tilman Linneweh <arved@FreeBSD.org>
To:        Michael Nottebrock <michaelnottebrock@gmx.net>
Cc:        freebsd-alpha@FreeBSD.org
Subject:   Re: [kde-freebsd] kde 3.1.1 broken on alpha
Message-ID:  <20030508204436.GA34946@huckfinn.arved.de>
In-Reply-To: <200305080942.19974.michaelnottebrock@gmx.net>
References:  <20030426002502.GA83427@rot13.obsecurity.org> <200305080942.19974.michaelnottebrock@gmx.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--oLBj+sq0vYjzfsbl
Content-Type: multipart/mixed; boundary="yrj/dFKFPuw6o+aM"
Content-Disposition: inline


--yrj/dFKFPuw6o+aM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

[ Added freebsd-alpha to the CC list ]

* Michael Nottebrock [Do, 08 Mai 2003 at 09:42 GMT]:
>>
>> kdegames is still broken.  Who is going to fix it for 5.1?
>=20
> GCC bug. I recommend to not mark it broken though because it would remain=
=3D20
> marked broken longer than necessary, given the heavy use of KDE on alpha =
;)=3D
>=3D2E=3D20
> Let's wait for gcc 3.3 and keep our fingers crossed.

According to my Google research it looks more like a bug in binutils.

The attached patch from Richard Henderson claims to fix that.
(http://sources.redhat.com/ml/binutils/2003-04/msg00241.html and GCC PR 103=
26)

"This is caused by a long-standing bug in the GNU Linux-Alpha toolchain.=20
Certain symbols (such as switch-related jump tables in inline C/C++ functio=
ns)=20
cause gcc to emit object relocations leading to removed ELF sections."

Perhaps someone with an alpha likes to test it..

regards
tilman

--yrj/dFKFPuw6o+aM
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="binutils-2.13.2.1-gprel32.patch"
Content-Transfer-Encoding: quoted-printable

diff -Naur binutils-2.13.2.1/bfd/elf64-alpha.c binutils-2.13.2.1-gprel32/bf=
d/elf64-alpha.c
--- binutils-2.13.2.1/bfd/elf64-alpha.c	2002-10-28 10:21:44.000000000 -0600
+++ binutils-2.13.2.1-gprel32/bfd/elf64-alpha.c	2003-04-11 18:25:22.0000000=
00 -0500
@@ -4490,8 +4490,20 @@
 	  value -=3D gp;
 	  goto default_reloc;
=20
-	case R_ALPHA_GPREL16:
 	case R_ALPHA_GPREL32:
+	  /* If the target section was a removed linkonce section,
+	     r_symndx will be zero.  In this case, assume that the
+	     switch will not be used, so don't fill it in.  If we
+	     do nothing here, we'll get relocation truncated messages,
+	     due to the placement of the application above 4GB.  */
+	  if (r_symndx =3D=3D 0)
+	    {
+	      r =3D bfd_reloc_ok;
+	      break;
+	    }
+	  /* FALLTHRU */
+
+	case R_ALPHA_GPREL16:
 	case R_ALPHA_GPRELLOW:
 	  if (dynamic_symbol_p)
             {

--yrj/dFKFPuw6o+aM--

--oLBj+sq0vYjzfsbl
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)

iD8DBQE+usGyfCLDn4B6xToRAie1AKCMWzzNiwVJjL8KiUu5uITzaqyo2QCdH6iA
Tuy3HPCo0a810Y44+GbfDsI=
=M6GE
-----END PGP SIGNATURE-----

--oLBj+sq0vYjzfsbl--



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