Skip to content

[liboffload] Runtime SEGFAULT when linking static archives #147788

@mjklemm

Description

@mjklemm

Clang and Flang fail to link code that is contained in static archives and to properly initialize the offload runtime:

Clang:

> ./build-c.sh && ./num_devices-c.exe
+ rm -f NumberOfDevices_Function-c.o num_devices-c.o libnum_devices-c.a libnum_devices-c.a num_devices-c.exe
+ clang -fopenmp --offload-arch=gfx1030 -c NumberOfDevices_Function.c -o NumberOfDevices_Function-c.o
+ ar r libnum_devices-c.a NumberOfDevices_Function-c.o
ar: creating libnum_devices-c.a
+ clang -fopenmp --offload-arch=gfx1030 -c num_devices.c -o num_devices-c.o
+ ar r libmain-c.a num_devices-c.o
+ clang -fopenmp --offload-arch=gfx1030 -o num_devices-c.exe libmain-c.a libnum_devices-c.a
[1]    3688277 segmentation fault (core dumped)  ./num_devices-c.exe

Flang:

> ./build-ftn.sh && ./num_devices-ftn.exe                               [ROCm 6.4.1] [llvm-project:dev]
+ rm -f NumberOfDevices_Function-ftn.o num_devices-ftn.o libnum_devices-ftn.a libnum_devices-ftn.a num_devices-ftn.exe numberofdevices_function.mod
+ flang -fopenmp --offload-arch=gfx1030 -cpp -c NumberOfDevices_Function.f90 -o NumberOfDevices_Function-ftn.o
+ ar r libnum_devices-ftn.a NumberOfDevices_Function-ftn.o
ar: creating libnum_devices-ftn.a
+ flang -fopenmp --offload-arch=gfx1030 -c num_devices.f90 -o num_devices-ftn.o
+ ar r libmain-ftn.a num_devices-ftn.o
+ flang -fopenmp --offload-arch=gfx1030 -o num_devices-ftn.exe libmain-ftn.a libnum_devices-ftn.a
./build-ftn.sh  0.70s user 0.44s system 97% cpu 1.168 total
[1]    3688606 segmentation fault (core dumped)  ./num_devices-ftn.exe

reproducer.tar.gz

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions