ISx
ISx copied to clipboard
Compilation fails: relocation truncated to fit: R_X86_64_32S against symbol...
I am having problems trying to build the SHMEM port of the ISx benchmark on our Cray XC40 using PrgEnv-gnu (GCC 6.3.0). The error I get is:
$ make
cc -Wall -Wextra -std=c99 -D SCALING_OPTION=1 -c isx.c -o obj/isx.o_s
cc -Wall -Wextra -std=c99 -D SCALING_OPTION=1 -c pcg_basic.c -o obj/pcg_basic.o_s
cc -Wall -Wextra -std=c99 -D SCALING_OPTION=1 -c timer.c -o obj/timer.o_s
cc obj/isx.o_s obj/pcg_basic.o_s obj/timer.o_s -o bin/isx.strong -lrt -lm
obj/isx.o_s: In function `verify_results':
isx.c:(.text+0xd34): relocation truncated to fit: R_X86_64_32S against symbol `llWrk' defined in COMMON section in obj/isx.o_s
obj/isx.o_s: In function `log_times':
isx.c:(.text+0xe00): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0xe23): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0xe3e): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0xe61): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
obj/isx.o_s: In function `print_timer_names':
isx.c:(.text+0x10b2): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0x10f2): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
obj/isx.o_s: In function `print_timer_values':
isx.c:(.text+0x125b): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0x127d): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0x12c3): relocation truncated to fit: R_X86_64_32S against symbol `timers' defined in COMMON section in obj/timer.o_s
isx.c:(.text+0x12e5): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make: *** [isx.strong] Error 1
I assume this is due to the large static array my_bucket_keys defined in isx.c so I tried to compile with -mcmodel=large, which only shifts the problem to some PMI function, so compilation still fails.
The MPI version of ISx builds just fine. Is this a known problem? Could it be a system configuration issue? Any help is much appreciated.
Known issue. I have seen this once upon a time when i was experimenting with using static vs dynamic arrays. It happened when i tried to run isx with a very large number of keys, and is the reason for my latest pull request (which im assuming you are not using).
Until my pull request is approved, i have the unofficial fix in a branch of my fork: https://github.com/ireed/ISx/branches ('pull-request' branch).
Let me know if that helps.
Who are you waiting on to approve the pull request? I'm not sure who is responsible for ISx curation.
Jeff Hammond [email protected] http://jeffhammond.github.io/
Fix should be merged. Let me know if it works.