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:

kgar...@babe:/tmp$ ./genstring
kgar...@babe:/tmp$ gcc -G0 -c main.c f*.c
kgar...@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
kgar...@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

Reply via email to