[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