Bug 2298822

Summary: chromium build failed with clang++: error: missing sanitizer ignorelist
Product: [Fedora] Fedora Reporter: Than Ngo <than>
Component: compiler-rtAssignee: Tom Stellard <tstellar>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: 40CC: airlied, fedora-llvm-team, jchecahi, kkleine, npopov, sergesanspaille, siddharth.kde, suraj.ghimire7, tstellar, tuliom
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
URL: https://kojipkgs.fedoraproject.org//work/tasks/1710/120691710/build.log
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-07-21 19:02:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Than Ngo 2024-07-19 08:25:07 UTC
chromium build failed on ppc64le (f40 and rawhide) with following errors:

clang++ -MD -MF obj/buildtools/third_party/libc++abi/libc++abi/abort_message.o.d -DLIBCXXABI_SILENT_TERMINATE -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=e3b94d0e5b86883fd77696bf10dc33ba250ba99b -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_LIBCPP_BUILDING_LIBRARY -I../../third_party/libc++/src/src -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector-strong -ftrivial-auto-var-init=zero -fwrapv -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -mllvm -split-threshold-for-reg-with-hint=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -ffile-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -fstrict-aliasing -fPIC -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -std=c++20 -Wno-trigraphs -gsimple-template-names -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -Wenum-compare-conditional -Wno-c++11-narrowing-const-reference -fexceptions -frtti -std=c++20  -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes -Wno-unknown-pragmas -c ../../third_party/libc++abi/src/src/abort_message.cpp -o obj/buildtools/third_party/libc++abi/libc++abi/abort_message.o
clang++: error: missing sanitizer ignorelist: '/usr/bin/../lib/clang/18/share/cfi_ignorelist.txt'
[chrome:121/59718] CXX obj/buildtools/third_party/libc++abi/libc++abi/cxa_default_handlers.o
FAILED: obj/buildtools/third_party/libc++abi/libc++abi/cxa_default_handlers.o 

Reproducible: Always

Steps to Reproduce:
build latest chromium in rawhide or f40
Actual Results:  
the chromium build failed with above errors.

Expected Results:  
chromium should be built without this error

on aarch64 and x86_64 the /usr/lib/clang/18/share/cfi_ignorelist.txt is included in rpm, but this file is missing for ppc64le

Comment 1 Nikita Popov 2024-07-19 08:39:21 UTC
cfi_ignorelist.txt is not shipped on ppc64le because cfi is not supported for that architecture, see https://github.com/llvm/llvm-project/blob/270f5e42b8daab586ffcd2b46ff41486199f6626/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake#L81-L82 for a list of currently supported architectures. Out of arches relevant for Fedora/RHEL, i686, x86_64 and aarch64 are supported, while ppc64le and s390x are not.

I'd expect there is some build option for chromium that needs to be set to disable use of cfi on ppc64le.

Comment 2 Than Ngo 2024-07-19 09:04:34 UTC
I am not aware that it is not supported for ppc64le. Thanks for your info, i will disable cfi in chromium on ppc64le.

Feel free to close this bug