Log: https://pkg-status.freebsd.org/ampere1/data/131arm64-quarterly/34e963521193/logs/qmc2-0.243_1.log
fatal error: error in backend: Cannot select: intrinsic %llvm.aarch64.crc32b PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump: 0. Program arguments: cc -c -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DUSE_FILE32API -O2 -w -pthread -fPIC -DQMC2_ARCADE_RELEASE -DQMC2_ARCADE_BUNDLED_MINIZIP -DQMC2_ARCADE_BUNDLED_ZLIB -DQMC2_ARCADE -DHAVE_ZLIB -DZLIB_COMPAT -D_7ZIP_PPMD_SUPPORT -D_7ZIP_ST -DQMC2_ARCADE_VERSION=0.243 -DQMC2_ARCADE_MAIN_UI_VERSION=0.243 -DQMC2_ARCADE_ENABLE_JOYSTICK -DQMC2_ARCADE_QML_IMPORT_PATH=imports -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR=\"/wrkdirs/usr/ports/emulators/qmc2/work/qmc2-mame-fe-0.243/src/arcade\" -I. -I../lzma -I../minizip -I../zlib -I/usr/local/include/SDL2 -I/usr/local/include -I/usr/local/include/qt5 -I/usr/local/include/qt5/QtSvg -I/usr/local/include/qt5/QtOpenGL -I/usr/local/include/qt5/QtWidgets -I/usr/local/include/qt5/QtQuick -I/usr/local/include/qt5/QtGui -I/usr/local/include/qt5/QtSql -I/usr/local/include/qt5/QtQmlModels -I/usr/local/include/qt5/QtQml -I/usr/local/include/qt5/QtNetwork -I/usr/local/include/qt5/QtTest -I/usr/local/include/qt5/QtCore -I. -I/usr/local/include -I/usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-clang -o 7zCrc.o ../lzma/7zCrc.c 1. <eof> parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module '../lzma/7zCrc.c'. 4. Running pass 'AArch64 Instruction Selection' on function '@CrcUpdateT0_32' c++ -c -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DUSE_FILE32API -O2 -w -pthread -fPIC -DQCHDMAN_RELEASE -DQCHDMAN_VERSION=0.243 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SCRIPT_LIB -DQT_SCRIPTTOOLS_LIB -DQT_CORE_LIB -I. -I/usr/local/include/qt5 -I/usr/local/include/qt5/QtWidgets -I/usr/local/include/qt5/QtGui -I/usr/local/include/qt5/QtScript -I/usr/local/include/qt5/QtScriptTools -I/usr/local/include/qt5/QtCore -I. -I/usr/local/include -I. -I/usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-clang -o settings.o ../../settings.cpp #0 0x0000000004112678 (/usr/bin/cc+0x4112678) #1 0x0000000004110abc (/usr/bin/cc+0x4110abc) #2 0x00000000040b4d30 (/usr/bin/cc+0x40b4d30) #3 0x00000000040b4cb8 (/usr/bin/cc+0x40b4cb8) #4 0x000000000410b2e0 (/usr/bin/cc+0x410b2e0) #5 0x0000000001e09414 (/usr/bin/cc+0x1e09414) #6 0x00000000040bb874 (/usr/bin/cc+0x40bb874) #7 0x00000000040bb964 (/usr/bin/cc+0x40bb964) #8 0x000000000436e290 (/usr/bin/cc+0x436e290) #9 0x000000000436d964 (/usr/bin/cc+0x436d964) #10 0x00000000044e2de0 (/usr/bin/cc+0x44e2de0) #11 0x0000000004367e24 (/usr/bin/cc+0x4367e24) #12 0x0000000004367690 (/usr/bin/cc+0x4367690) #13 0x0000000004366d44 (/usr/bin/cc+0x4366d44) #14 0x0000000004364fd0 (/usr/bin/cc+0x4364fd0) #15 0x0000000003a94ce8 (/usr/bin/cc+0x3a94ce8) #16 0x0000000003e04a94 (/usr/bin/cc+0x3e04a94) #17 0x0000000003e0a214 (/usr/bin/cc+0x3e0a214) #18 0x0000000003e04fa0 (/usr/bin/cc+0x3e04fa0) #19 0x00000000024ac818 (/usr/bin/cc+0x24ac818) #20 0x00000000024a8a1c (/usr/bin/cc+0x24a8a1c) #21 0x00000000026faf98 (/usr/bin/cc+0x26faf98) #22 0x0000000002b0cf44 (/usr/bin/cc+0x2b0cf44) #23 0x0000000002660b98 (/usr/bin/cc+0x2660b98) #24 0x0000000002604c9c (/usr/bin/cc+0x2604c9c) #25 0x00000000026f6534 (/usr/bin/cc+0x26f6534) #26 0x0000000001e09180 (/usr/bin/cc+0x1e09180) #27 0x0000000001e14478 (/usr/bin/cc+0x1e14478) #28 0x00000000025093f8 (/usr/bin/cc+0x25093f8) #29 0x00000000040b4c8c (/usr/bin/cc+0x40b4c8c) #30 0x000000000250905c (/usr/bin/cc+0x250905c) #31 0x00000000024e3548 (/usr/bin/cc+0x24e3548) #32 0x00000000024e38f0 (/usr/bin/cc+0x24e38f0) #33 0x00000000024f36c4 (/usr/bin/cc+0x24f36c4) cc: error: clang frontend command failed with exit code 70 (use -v to see invocation) FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303) Target: aarch64-unknown-freebsd13.1 Thread model: posix InstalledDir: /usr/bin cc: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: cc: note: diagnostic msg: /tmp/7zCrc-bf1673.c cc: note: diagnostic msg: /tmp/7zCrc-bf1673.sh cc: note: diagnostic msg:
Log for 12.4: https://pkg-status.freebsd.org/ampere1/data/124arm64-quarterly/34e963521193/logs/qmc2-0.243_1.log Same "fatal error: error in backend: Cannot select: intrinsic %llvm.aarch64.crc32b"
Can somebody lift out the /tmp/7zCrc-bf1673.c and /tmp/7zCrc-bf1673.sh files, and post them here?
(In reply to Dimitry Andric from comment #3) Never mind, this is https://github.com/llvm/llvm-project/issues/57802 which is only in clang 16. I will see about patching it into main and MFC'ing it. As a temporary workaround, the __builtin_arm_crc32b() function could be avoided on arm CPUs that do not support it.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=8792c03886d9e6df10fbac825819603dc059c7ea commit 8792c03886d9e6df10fbac825819603dc059c7ea Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-05-29 14:27:58 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-05-29 14:28:18 +0000 Apply clang fixes for crashes compiling ARM/AArch64 CRC intrinsics Merge commit 069ecd0c6e2c from llvm-project (by Fangrui Song): [ARM] Check target feature support for __builtin_arm_crc* `__builtin_arm_crc*` requires the target feature crc which is available on armv8 and above. Calling the fuctions for armv7 leads to a SelectionDAG crash. ``` % clang -c --target=armv7-unknown-linux-gnueabi -c a.c fatal error: error in backend: Cannot select: intrinsic %llvm.arm.crc32b PLEASE submit a bug report to ... ``` Add `TARGET_BUILTIN` and define required features for these builtins to report an error in `CodeGenFunction::checkTargetFeatures`. The problem is quite widespread. I will add `TARGET_BUILTIN` for more builtins later. Fix https://github.com/llvm/llvm-project/issues/57802 Differential Revision: https://reviews.llvm.org/D134127 Merge commit b2d7a0dcf1ff from llvm-project (by Fangrui Song): [AArch64] Check target feature support for __builtin_arm_crc* This is the AArch64 counterpart of D134127. Daniel Kiss will change more `BUILTIN` to `TARGET_BUILTIN`. Fix #57802 Note that programs attempting to use ARM/AArch64 CRC intrinsics, when they are not supported by the targeted CPU, will still receive a regular compilation error (instead of a fatal backend error) similar to: 7zCrc.c:4:10: error: '__builtin_arm_crc32b' needs target feature crc return __builtin_arm_crc32b(a, b); ^ Reported by: Alastair Hogge <agh@riseup.net> PR: 271624 MFC after: 3 days .../clang/include/clang/Basic/BuiltinsAArch64.def | 20 ++++++++++++-------- .../clang/include/clang/Basic/BuiltinsARM.def | 20 ++++++++++++-------- .../llvm-project/clang/lib/Basic/Targets/AArch64.cpp | 2 ++ contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp | 2 ++ 4 files changed, 28 insertions(+), 16 deletions(-)
Wow, that was quick. Ta very much, Dimitry.
A commit in branch stable/13 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=3cc4f10db0feca9d54bbfc615328b317a5c6b4c8 commit 3cc4f10db0feca9d54bbfc615328b317a5c6b4c8 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-05-29 14:27:58 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-06-01 19:15:31 +0000 Apply clang fixes for crashes compiling ARM/AArch64 CRC intrinsics Merge commit 069ecd0c6e2c from llvm-project (by Fangrui Song): [ARM] Check target feature support for __builtin_arm_crc* `__builtin_arm_crc*` requires the target feature crc which is available on armv8 and above. Calling the fuctions for armv7 leads to a SelectionDAG crash. ``` % clang -c --target=armv7-unknown-linux-gnueabi -c a.c fatal error: error in backend: Cannot select: intrinsic %llvm.arm.crc32b PLEASE submit a bug report to ... ``` Add `TARGET_BUILTIN` and define required features for these builtins to report an error in `CodeGenFunction::checkTargetFeatures`. The problem is quite widespread. I will add `TARGET_BUILTIN` for more builtins later. Fix https://github.com/llvm/llvm-project/issues/57802 Differential Revision: https://reviews.llvm.org/D134127 Merge commit b2d7a0dcf1ff from llvm-project (by Fangrui Song): [AArch64] Check target feature support for __builtin_arm_crc* This is the AArch64 counterpart of D134127. Daniel Kiss will change more `BUILTIN` to `TARGET_BUILTIN`. Fix #57802 Note that programs attempting to use ARM/AArch64 CRC intrinsics, when they are not supported by the targeted CPU, will still receive a regular compilation error (instead of a fatal backend error) similar to: 7zCrc.c:4:10: error: '__builtin_arm_crc32b' needs target feature crc return __builtin_arm_crc32b(a, b); ^ Reported by: Alastair Hogge <agh@riseup.net> PR: 271624 MFC after: 3 days (cherry picked from commit 8792c03886d9e6df10fbac825819603dc059c7ea) .../clang/include/clang/Basic/BuiltinsAArch64.def | 20 ++++++++++++-------- .../clang/include/clang/Basic/BuiltinsARM.def | 20 ++++++++++++-------- .../llvm-project/clang/lib/Basic/Targets/AArch64.cpp | 2 ++ contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp | 2 ++ 4 files changed, 28 insertions(+), 16 deletions(-)
A commit in branch stable/12 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=dbbac83e39faca07c6081cd549128c253861cdac commit dbbac83e39faca07c6081cd549128c253861cdac Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-05-29 14:27:58 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-06-01 19:16:11 +0000 Apply clang fixes for crashes compiling ARM/AArch64 CRC intrinsics Merge commit 069ecd0c6e2c from llvm-project (by Fangrui Song): [ARM] Check target feature support for __builtin_arm_crc* `__builtin_arm_crc*` requires the target feature crc which is available on armv8 and above. Calling the fuctions for armv7 leads to a SelectionDAG crash. ``` % clang -c --target=armv7-unknown-linux-gnueabi -c a.c fatal error: error in backend: Cannot select: intrinsic %llvm.arm.crc32b PLEASE submit a bug report to ... ``` Add `TARGET_BUILTIN` and define required features for these builtins to report an error in `CodeGenFunction::checkTargetFeatures`. The problem is quite widespread. I will add `TARGET_BUILTIN` for more builtins later. Fix https://github.com/llvm/llvm-project/issues/57802 Differential Revision: https://reviews.llvm.org/D134127 Merge commit b2d7a0dcf1ff from llvm-project (by Fangrui Song): [AArch64] Check target feature support for __builtin_arm_crc* This is the AArch64 counterpart of D134127. Daniel Kiss will change more `BUILTIN` to `TARGET_BUILTIN`. Fix #57802 Note that programs attempting to use ARM/AArch64 CRC intrinsics, when they are not supported by the targeted CPU, will still receive a regular compilation error (instead of a fatal backend error) similar to: 7zCrc.c:4:10: error: '__builtin_arm_crc32b' needs target feature crc return __builtin_arm_crc32b(a, b); ^ Reported by: Alastair Hogge <agh@riseup.net> PR: 271624 MFC after: 3 days (cherry picked from commit 8792c03886d9e6df10fbac825819603dc059c7ea) .../clang/include/clang/Basic/BuiltinsAArch64.def | 20 ++++++++++++-------- .../clang/include/clang/Basic/BuiltinsARM.def | 20 ++++++++++++-------- .../llvm-project/clang/lib/Basic/Targets/AArch64.cpp | 2 ++ contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp | 2 ++ 4 files changed, 28 insertions(+), 16 deletions(-)
From pkg-fallout: 12.4: https://pkg-status.freebsd.org/ampere1/data/124arm64-quarterly/15aa9ea6ac29/logs/qmc2-0.243_1.log 13.1: https://pkg-status.freebsd.org/ampere1/data/131arm64-quarterly/15aa9ea6ac29/logs/qmc2-0.243_1.log See bug #271987
(In reply to Alastair Hogge from comment #9) No commit to releng/13.1 was made but 131arm64-quarterly runs builds via a releng/13.1 world. Updating the build servers for this would require a 13.1-RELEASE-p9 be created and released first. (The recent -p8 did not include such a change.) A similar point goes for releng/12.4 and 124arm64-quarterly.
(In reply to Mark Millard from comment #10) It looks like the timing worked out such that the point will also apply to releng/13.2 needing a 13.2-RELEASE-p2 : 13.2-RELEASE(-p0) predates the fixes and the recent 13.2-RELEASE-p1 did not include the fixes.
(In reply to Mark Millard from comment #10) (In reply to Mark Millard from comment #11) Hi Mark, Thank you for explaining that for me, fuz@ has implemented the fix in bug #271987 too.
(In reply to Alastair Hogge from comment #12) As I understand, emulators/qmc2 was changed such that it avoids hitting the compiler crash. The compiler in use for the likes of quarterly 131arm64 still has its original problem(s).
Whoops. Keep this open.
(In reply to Alastair Hogge from comment #14) Is there anything further that needs to be done here?
(In reply to Mark Linimon from comment #15) I suspect not, both 12.4 and 13.1 are no longer supported.