| Issue |
182567
|
| Summary |
Segfault in llvm-objdump --offloading with LLVM 21.1
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
cgmb
|
[LLVM 21.1.0](https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.0/LLVM-21.1.0-Linux-X64.tar.xz) and [LLVM 21.1.8](https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.8/LLVM-21.1.8-Linux-X64.tar.xz) segfault when I attempt to extract the offload sections from an object file, [rocsparse_axpyi.cpp.o.gz](https://github.com/user-attachments/files/25449568/rocsparse_axpyi.cpp.o.gz). The object file has been compressed with gzip for upload to GitHub.
```
# /root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o
./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o: file format elf64-x86-64
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o
#0 0x0000556b9493f175 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) Signals.cpp:0:0
#1 0x0000556b9493fa9f SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007fe4ce645f30 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x45f30)
#3 0x00007fe4ce797222 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x197222)
#4 0x0000556b9434d65e llvm::dumpOffloadBinary(llvm::object::ObjectFile const&, llvm::StringRef) (/root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump+0x199365e)
#5 0x0000556b942cddb3 dumpObject(llvm::object::ObjectFile*, llvm::object::Archive const*, llvm::object::Archive::Child const*) llvm-objdump.cpp:0:0
#6 0x0000556b941f2104 llvm_objdump_main(int, char**, llvm::ToolContext const&) (/root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump+0x1838104)
#7 0x0000556b941ec562 main (/root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump+0x1832562)
#8 0x00007fe4ce62a575 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2a575)
#9 0x00007fe4ce62a628 __libc_start_main (/usr/lib/x86_64-linux-gnu/libc.so.6+0x2a628)
#10 0x0000556b9420b895 _start (/root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump+0x1851895)
Segmentation fault /root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o
```
It may or may not be unrelated, but it also fails to extract the offload sections from a shared object library, but emits a different error:
```
# /root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0
./obj-x86_64-linux-gnu/library/librocsparse.so.1.0: file format elf64-x86-64
/root/LLVM-21.1.8-Linux-X64/bin/llvm-objdump: error: './obj-x86_64-linux-gnu/library/librocsparse.so.1.0': while extracting offload FatBin bundles: Failed to decompress input: Could not decompress embedded file contents: Src size is incorrect
```
This problem does not occur with [LLVM 22.1.0-rc3](https://github.com/llvm/llvm-project/releases/download/llvmorg-22.1.0-rc3/LLVM-22.1.0-rc3-Linux-X64.tar.xz):
```
# /root/LLVM-22.1.0-rc3-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o
./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o: file format elf64-x86-64
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.host-x86_64-unknown-linux-gnu-
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx1010
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx1030
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx1100
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx1101
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx1102
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx803
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx900
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx906
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx908
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/CMakeFiles/rocsparse.dir/src/level1/rocsparse_axpyi.cpp.o.0.hipv4-amdgcn-amd-amdhsa--gfx90a
```
```
# /root/LLVM-22.1.0-rc3-Linux-X64/bin/llvm-objdump --offloading ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0
./obj-x86_64-linux-gnu/library/librocsparse.so.1.0: file format elf64-x86-64
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0.0.host-x86_64-unknown-linux-gnu-
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0.0.hipv4-amdgcn-amd-amdhsa--gfx1010
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0.0.hipv4-amdgcn-amd-amdhsa--gfx1030
Extracting offload bundle: ./obj-x86_64-linux-gnu/library/librocsparse.so.1.0.0.hipv4-amdgcn-amd-amdhsa--gfx1100
<...>
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs