This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/30774] New: [4.1 regression] ld: fatal: too many symbols require `small' PIC references
- From: "ghazi at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Feb 2007 14:37:05 -0000
- Subject: [Bug middle-end/30774] New: [4.1 regression] ld: fatal: too many symbols require `small' PIC references
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Several testsuite failures have arisen on solaris2.10 when using -fpic (not
-fPIC). The problem has gotten worse over time and I don't believe the
testcases are changing, so GCC has gotten worse for some reason. The logfiles
look like this:
ld: fatal: too many symbols require `small' PIC references:
have 2144, maximum 2048 -- recompile some modules -K PIC.
collect2: ld returned 1 exit status
compiler exited with status 1
There are several failures on 4.1 and all later branches of this form. Here
are the 4.1 failures on sparc32 that receive this message:
FAIL: tmpdir-gcc.dg-struct-layout-1/t002 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-g++.dg-struct-layout-1/t002 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: gfortran.dg/cray_pointers_2.f90 -O0 (test for excess errors)
on sparc64, in addition to the above errors I also get these:
FAIL: tmpdir-gcc.dg-struct-layout-1/t001 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t003 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t024 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t025 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t027 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-gcc.dg-struct-layout-1/t028 c_compat_x_tst.o-c_compat_y_tst.o link
FAIL: tmpdir-g++.dg-struct-layout-1/t001 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: tmpdir-g++.dg-struct-layout-1/t003 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: tmpdir-g++.dg-struct-layout-1/t024 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: tmpdir-g++.dg-struct-layout-1/t025 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: tmpdir-g++.dg-struct-layout-1/t026 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: tmpdir-g++.dg-struct-layout-1/t027 cp_compat_x_tst.o-cp_compat_y_tst.o
link
FAIL: gfortran.dg/cray_pointers_2.f90 -O1 (test for excess errors)
FAIL: gfortran.dg/cray_pointers_2.f90 -Os (test for excess errors)
Since it happens across multiple languages, I'm guessing it's something in the
middle or backend.
--
Summary: [4.1 regression] ld: fatal: too many symbols require
`small' PIC references
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Keywords: link-failure
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ghazi at gcc dot gnu dot org
GCC target triplet: sparc-sun-solaris2.10
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30774