Skip to content

Compilation fails: relocation truncated to fit: R_X86_64_32S against symbol... #16

Description

@devreal

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions