This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
IA64: short data segment overflowed issue
- From: Karel Gardas <gardask at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Cc: slyich at gmail dot com, karel dot gardas at centrum dot cz
- Date: Thu, 6 Jan 2011 10:17:43 +0100
- Subject: IA64: short data segment overflowed issue
Hello,
I'm using GCC 4.3.2 (debian provided) on IA64 machine and I'm starting
to be hit by while building GHC (Haskell compiler) HEAD:
/usr/bin/ld: XXXX: short data segment overflowed (0x434a58 >= 0x400000)
/usr/bin/ld: can't relax section: No such file or directory
linker messages. In the past (with previous GHC releases) it used -G0
to workaround this issue, but it looks like this does not work
anymore. I've also verified that current gcc 4.3.2 (debian), gcc 4.4.4
and gcc 4.5.3 (both gentoo's) are not passing test described in the
original bug report back in 2001 here:
https://bugzilla.redhat.com/show_bug.cgi?id=33354
The bugreports' test result is:
kgardas@Babe:/tmp$ ./genstring
kgardas@Babe:/tmp$ gcc -G0 -c main.c f*.c
kgardas@Babe:/tmp$ gcc -G0 -o main main.o f*.o
/usr/bin/ld: main: short data segment overflowed (0x400080 >= 0x400000)
/usr/bin/ld: can't relax section: File format not recognized
collect2: ld returned 1 exit status
kgardas@Babe:/tmp$
BTW: This is on GCC Compile Farm IA64 machine. Now my question is: how
to solve this issue? Does GCC already support something Intel
discusses in 2008 here:
http://software.intel.com/en-us/articles/short-data-segment-overflow-error-on-linux-64-on-itaniumr-architecture/
-- i.e. using huge memory model for static data? If so, what is the
proper way of using it? I.e. what command-line option should I use?
Thanks a lot,
Karel