[PATCH, alpha]: Fix PR/47230 [4.6/4.7 Regression] gcc fails to bootstrap on alpha in stage2 with "relocation truncated to fit: GPREL16 against ..."

Uros Bizjak ubizjak@gmail.com
Wed Feb 25 19:18:00 GMT 2015


On Mon, Jul 28, 2014 at 7:02 PM, Richard Henderson <rth@redhat.com> wrote:
> On 07/26/2014 05:35 AM, Uros Bizjak wrote:
>> On Mon, May 2, 2011 at 9:21 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>
>>> It looks that GP relative relocations do not fit anymore into GPREL16
>>> reloc, so bootstrap on alpha hosts fail in stage2 with  "relocation
>>> truncated to fit: GPREL16 against ...". I found no other solution but
>>> to pass --no-relax to linker in order to finish the bootstrap.

[...]

> FYI, this was a bug in ld that I fixed "recently", i.e. after the current 2.24
> release.  It's an ok workaround for release branches, but I'd like it not to be
> committed to mainline please.

Attached patch reverts PR47230 workaround on mainline SVN. In addition
to the revert, the patch also documents that binutils 2.25 or newer
are required.

/

2015-02-25  Uros Bizjak  <ubizjak@gmail.com>

    Revert:
    2014-07-26  Uros Bizjak  <ubizjak@gmail.com>

    PR target/47230
    * configure.ac (alpha*-*-linux*): Use mh-alpha-linux.
    * configure: Regenerate.

/config

2015-02-25  Uros Bizjak  <ubizjak@gmail.com>

    Revert:
    2014-07-26  Uros Bizjak  <ubizjak@gmail.com>

    PR target/47230
    * mh-alpha-linux: New file.

/gcc

2015-02-25  Uros Bizjak  <ubizjak@gmail.com>

    PR target/47230
    * doc/install.texi (Specific, alpha*-*-*): Document that binutils 2.25
    or newer are required.

The patch was tested on alpha-linux-gnu and alphaev68-linux-gnu for
all default languages plus obj-c++ and go.

OK for mainline?

Uros.
-------------- next part --------------
Index: config/mh-alpha-linux
===================================================================
--- config/mh-alpha-linux	(revision 220920)
+++ config/mh-alpha-linux	(working copy)
@@ -1,3 +0,0 @@
-# Prevent GPREL16 relocation truncation
-LDFLAGS += -Wl,--no-relax
-BOOT_LDFLAGS += -Wl,--no-relax
Index: configure
===================================================================
--- configure	(revision 220920)
+++ configure	(working copy)
@@ -3944,9 +3944,6 @@
   *-mingw*)
     host_makefile_frag="config/mh-mingw"
     ;;
-  alpha*-*-linux*)
-    host_makefile_frag="config/mh-alpha-linux"
-    ;;
   hppa*-hp-hpux10*)
     host_makefile_frag="config/mh-pa-hpux10"
     ;;
Index: configure.ac
===================================================================
--- configure.ac	(revision 220920)
+++ configure.ac	(working copy)
@@ -1275,9 +1275,6 @@
   *-mingw*)
     host_makefile_frag="config/mh-mingw"
     ;;
-  alpha*-*-linux*)
-    host_makefile_frag="config/mh-alpha-linux"
-    ;;
   hppa*-hp-hpux10*)
     host_makefile_frag="config/mh-pa-hpux10"
     ;;
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 220920)
+++ gcc/doc/install.texi	(working copy)
@@ -3416,10 +3416,11 @@
 DEC OSF/1, Digital UNIX and Tru64 UNIX)@.  In addition to reading this
 section, please read all other sections that match your target.
 
-We require binutils 2.11.2 or newer.
-Previous binutils releases had a number of problems with DWARF 2
-debugging information, not the least of which is incorrect linking of
-shared libraries.
+Binutils 2.25 or newer are required.
+Versions prior to 2.25 have faulty relaxation pass that may result in
+GPREL16 relocation truncation errors.  Versions prior to 2.11.2 had a
+number of problems with DWARF 2 debugging information, not the least of
+which is incorrect linking of shared libraries.
 
 @html
 <hr />


More information about the Gcc-patches mailing list