| Issue |
181599
|
| Summary |
Link error occurs when building an AArch64 cross-compiler: libomptest.so fails to link
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
makatsuka
|
```
LLVM version: 22.1.0-rc1 / AArch64
```
Description:
When building an AArch64 cross-compiler on an x86_64 host system, a link error occurs while building openmp/tools/omptest/libomptest.so.
Error message:
```
FAILED: openmp/tools/omptest/libomptest.so
: && <...>/llvmorg-22.1.0-rc1/build/./bin/clang++ --target=aarch64-unknown-linux-gnu -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -fcolor-diagnostics -Wcast-qual -Wformat-pedantic -Wimplicit-fallthrough -Wsign-compare -Wno-extra -Wno-pedantic -fno-semantic-interposition -fdata-sections -O3 -DNDEBUG -Wl,-z,defs -Wl,-z,nodelete -shared -Wl,-soname,libomptest.so -o openmp/tools/omptest/libomptest.so openmp/tools/omptest/CMakeFiles/omptest.dir/src/InternalEvent.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/InternalEventOperators.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/Logging.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/OmptAsserter.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/OmptAssertEvent.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/OmptCallbackHandler.cpp.o openmp/tools/omptest/CMakeFiles/omptest.dir/src/OmptTester.cpp.o -Wl,--whole-archive <...>/llvmorg-22.1.0-rc1/build/lib/libllvm_gtest.a -Wl,--no-whole-archive <...>/lll
vmorg-22.1.0-rc1/build/lib/libLLVMSupport.a -lrt -ldl -lpthread -lm /usr/lib64/libz.so /usr/lib64/libzstd.so <...>/llvmorg-22.1.0-rc1/build/lib/libLLVMDemangle.a -lpthread && :
/usr/lib64/libz.so: error adding symbols: File in wrong format
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```
After checking, I found that x86_64 libraries and AArch64 object files are mixed.
Host(x86_64) libraries:
```
/usr/lib64/libz.so
/usr/lib64/libzstd.so
```
Target(AArch64) objects:
```
<...>/build/runtimes/runtimes-bins/openmp/tools/omptest/CMakeFiles/omptest.dir/src/*.o
```
CMake options used:
```
-DLLVM_TARGETS_TO_BUILD="AArch64" \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;mlir;polly;flang" \
-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx;compiler-rt;openmp;flang-rt" \
-DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-unknown-linux-gnu" \
-DCMAKE_CROSSCOMPILING=True \
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs