Closed github-actions[bot] closed 3 months ago
fedora-rawhide-aarch64
llvm
on fedora-rawhide-aarch64
(see build log, contribute to log-detective)
RPM build errors
in the log file, you'll find them here.
```
```
### Errors to look into
If we have found the term error:
(case insentitive) in the build log,
you'll find all occurrences here together with the preceding lines.
```
/builddir/build/BUILD/llvm-20.0.0_pre20240813.gb1edac0496f473-build/llvm-project-b1edac0496f47374c9780f3f83c6773eed73a66e/llvm/redhat-linux-build/./bin/clang++ --target=aarch64-redhat-linux-gnu -DHAVE_RPC_XDR_H=0 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/builddir/build/BUILD/llvm-20.0.0_pre20240813.gb1edac0496f473-build/llvm-project-b1edac0496f47374c9780f3f83c6773eed73a66e/compiler-rt/lib/sanitizer_common/.. -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -mbranch-protection=standard -fasynchronous-unwind-tables -D_DEFAULT_SOURCE -Dasm=__asm__ -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 -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Wno-unused-parameter -O2 -g -DNDEBUG -std=c++17 -march=armv8-a -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -nostdinc++ -Wno-format -fno-rtti -Wframe-larger-than=570 -Wglobal-constructors -MD -MT compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux.cpp.o -MF compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux.cpp.o.d -o compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux.cpp.o -c /builddir/build/BUILD/llvm-20.0.0_pre20240813.gb1edac0496f473-build/llvm-project-b1edac0496f47374c9780f3f83c6773eed73a66e/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
/builddir/build/BUILD/llvm-20.0.0_pre20240813.gb1edac0496f473-build/llvm-project-b1edac0496f47374c9780f3f83c6773eed73a66e/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:487:27: error: use of undeclared identifier '__NR_fstat'
--
error: Bad exit status from /var/tmp/rpm-tmp.bX1ynP (%build)
--
INFO: /var/lib/mock/fedora-rawhide-aarch64-1723514324.436050/root/var/log/dnf5.log
ERROR: Exception(/var/lib/copr-rpmbuild/results/llvm-20.0.0~pre20240813.gb1edac0496f473-1.fc41.src.rpm) Config(fedora-rawhide-aarch64) 156 minutes 48 seconds
--
Finish: clean chroot
ERROR: Command failed:
--
Copr build error: Build failed
```
RHEL 8 aarch64 tmt fails with:
******************** TEST 'LLVM regression suite :: lto_and_cross_dso_cfi.c' FAILED ********************
Exit Code: 1
Command Output (stderr):
--
RUN: at line 2: rm -rf /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir
+ rm -rf /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir
RUN: at line 3: mkdir /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir
+ mkdir /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir
RUN: at line 4: /usr/bin/clang -UMAIN -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -fvisibility=default -fuse-ld=lld /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/tests/lto_and_cross_dso_cfi.c -shared -o /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir/liblocalcrossdso.so
+ /usr/bin/clang -UMAIN -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -fvisibility=default -fuse-ld=lld /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/tests/lto_and_cross_dso_cfi.c -shared -o /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir/liblocalcrossdso.so
RUN: at line 5: /usr/bin/clang -DMAIN -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -fvisibility=default -fuse-ld=lld /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/tests/lto_and_cross_dso_cfi.c -o /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp -L/tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir -llocalcrossdso
+ /usr/bin/clang -DMAIN -flto -fsanitize=cfi -fsanitize-cfi-cross-dso -fvisibility=default -fuse-ld=lld /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/tests/lto_and_cross_dso_cfi.c -o /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp -L/tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir -llocalcrossdso
RUN: at line 6: LD_LIBRARY_PATH=/tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp
+ LD_LIBRARY_PATH=/tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp.dir
+ /tmp/tmp.ZWblntBCCg/llvm-toolchain-integration-test-suite/_build/tests/Output/lto_and_cross_dso_cfi.c.tmp
CFI: CHECK failed: cfi.cpp:199 "((4096)) == ((GetPageSizeCached()))" (0x1000, 0x10000) (tid=15648)
RHEL 8 uses 64K pages on aarch64, so this failure looks legitimate. @jchecahi Any idea why we don't usually see this as a gating failure?
RHEL 8 uses 64K pages on aarch64, so this failure looks legitimate. @jchecahi Any idea why we don't usually see this as a gating failure?
@nikic I have no idea, honestly. It definitely seems a genuine issue in libclang_rt.cfi.a
but I don't see why we don't see it in older LLVM releases. I did some checks to at least make sure that the one to blame is the static library:
cmake .. -DENABLE_LIBCXX=OFF -DENABLE_STATIC_LIBCXX=OFF -DENABLE_LIBUNWIND=OFF
# rpm -q compiler-rt
compiler-rt-17.0.6-1.module+el8.10.0+20808+e12784c0.aarch64
# lit -v --filter lto_and_cross tests
-- Testing: 1 of 51 tests, 1 workers --
PASS: LLVM regression suite :: lto_and_cross_dso_cfi.c (1 of 1)
Testing Time: 0.45s Excluded: 50 Passed : 1
5. Enable this copr (` dnf copr enable @fedora-llvm-team/llvm-snapshots-big-merge-20240813 rhel-8-aarch64`) and update to LLVM20 (`dnf update clang llvm compiler-rt`)
7. Run the test again -> It fails:
compiler-rt-20.0.0~pre20240813.gb1edac0496f473-1.el8.aarch64
-- Testing: 1 of 51 tests, 1 workers -- FAIL: LLVM regression suite :: lto_and_cross_dso_cfi.c (1 of 1) [[ cut output, no need to show it again :) ]]
Failed Tests (1): LLVM regression suite :: lto_and_cross_dso_cfi.c
Testing Time: 0.76s Excluded: 50 Failed : 1
To verify that the issue is in fact is `libclang_rt.cfi.a`, I downloaded the rpms for compiler-rt 17 and 20, extracted the files and replaced the library, and the test again passes:
mv: overwrite '/usr/lib/clang/20/lib/aarch64-redhat-linux-gnu/libclang_rt.cfi.a'? y
-- Testing: 1 of 51 tests, 1 workers -- PASS: LLVM regression suite :: lto_and_cross_dso_cfi.c (1 of 1)
Testing Time: 0.42s Excluded: 50 Passed : 1
Doing it the other way around (putting compiler-rt-20 library into an LLVM 17 installation) makes the test fail.
The reason why it works turned out to be very simple: We have a RHEL 8 only patch for this: https://gitlab.com/redhat/centos-stream/rpms/compiler-rt/-/blob/stream-llvm-toolset-rhel-next-rhel-8.10.0/0001-Fix-page-size-constant-on-aarch64-and-ppc64le.patch?ref_type=heads
Confirmed fixed in https://github.com/fedora-llvm-team/llvm-snapshots/issues/646.
This issue exists to let you know that we are about to monitor the builds of the LLVM (v20.0.0, llvm/llvm-project@ b1edac0) snapshot for 20240813.
- Log analysis
- For example if a build of the
- Use of labels
- Let's assume a unit test test in upstream LLVM was broken.
We will then add these labels to this issue:
At certain intervals the CI system will update this very comment over time to reflect the progress of builds.
llvm
project fails on thefedora-rawhide-x86_64
platform, we'll analyze the build log (if any) to identify the cause of the failure. The cause can be any of['srpm_build_issue', 'copr_timeout', 'network_issue', 'dependency_issue', 'test', 'downstream_patch_application', 'rpm__installed_but_unpackaged_files_found', 'rpm__directory_not_found', 'rpm__file_not_found', 'cmake_error', 'unknown']
. For each cause we will list the packages and the relevant log excerpts.error/test
,build_failed_on/fedora-rawhide-x86_64
,project/llvm
. If you manually restart a build in Copr and can bring it to a successful state, we will automatically remove the aforementioned labels.Last updated: 2024-08-15T23:21:14.877944
Build Matrix
| |llvm| |:---|:---:| |fedora-39-aarch64:white_check_mark: tests passed|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903492)| |fedora-39-i386|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903493)| |fedora-39-ppc64le
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903494)| |fedora-39-s390x
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903495)| |fedora-39-x86_64
:white_check_mark: tests passed|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903496)| |fedora-40-aarch64
:white_check_mark: tests passed|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903497)| |fedora-40-i386|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903498)| |fedora-40-ppc64le
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903499)| |fedora-40-s390x
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903500)| |fedora-40-x86_64
:white_check_mark: tests passed|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903501)| |fedora-rawhide-aarch64
:x: Copr build(s) failed|[:x:](https://copr.fedorainfracloud.org/coprs/build/7903502)| |fedora-rawhide-i386|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903503)| |fedora-rawhide-ppc64le
:warning: pipeline error|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903504)| |fedora-rawhide-s390x
:warning: pipeline error|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903505)| |fedora-rawhide-x86_64
:white_check_mark: tests passed|[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903506)| |rhel-8-aarch64
:x: tests failed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903507)| |rhel-8-s390x
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903508)| |rhel-8-x86_64
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903509)| |rhel-9-aarch64
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903510)| |rhel-9-s390x
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903511)| |rhel-9-x86_64
:white_check_mark: tests passed :lock: |[:white_check_mark:](https://copr.fedorainfracloud.org/coprs/build/7903512)|
Build status legend