Summary: | www-client/chromium-108.0.5359.94 failed to emerge (error: inlining failed in call to ‘always_inline’ ‘vdotq_u32’: target specific option mismatch) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Leonid Kopylov <leonchik1976> |
Component: | Current packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | chromium |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log.xz |
Description
Leonid Kopylov
2022-12-06 07:13:24 UTC
Created attachment 840365 [details]
build.log.xz
[31mFAILED: [0mobj/third_party/libvpx/libvpx/sad4d_neon.o aarch64-unknown-linux-gnu-gcc -MMD -MF obj/third_party/libvpx/libvpx/sad4d_neon.o.d -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 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../third_party/libvpx/source/config -I../../third_party/libvpx/source/config/linux/arm64 -I../../third_party/libvpx/source/libvpx -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -fno-omit-frame-pointer -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wno-unused-function -Wno-sign-compare -std=gnu11 -march=native -O2 -pipe -c ../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c -o obj/third_party/libvpx/libvpx/sad4d_neon.o In file included from ../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c:11: /usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/arm_neon.h: In function ‘sad16_neon’: /usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/arm_neon.h:29513:1: error: inlining failed in call to ‘always_inline’ ‘vdotq_u32’: target specific option mismatch 29513 | vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b) | ^~~~~~~~~ ../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c:247:10: note: called from here 247 | *sum = vdotq_u32(*sum, diff, vdupq_n_u8(1)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/arm_neon.h:29513:1: error: inlining failed in call to ‘always_inline’ ‘vdotq_u32’: target specific option mismatch 29513 | vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b) | ^~~~~~~~~ ../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sad4d_neon.c:247:10: note: called from here 247 | *sum = vdotq_u32(*sum, diff, vdupq_n_u8(1)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [3282/26770] aarch64-unknown-linux-gnu-gcc -MMD -MF obj/th Can you expand -march=native? (In reply to Stephan Hartmann from comment #3) > Can you expand -march=native? can you explain how to do it? (In reply to Leonid Kopylov from comment #4) > (In reply to Stephan Hartmann from comment #3) > > Can you expand -march=native? > > can you explain how to do it? aarch64-unknown-linux-gnu-gcc -march=native -Q --help=target Maybe add -v for more info. # aarch64-unknown-linux-gnu-gcc -march=native -Q -v Using built-in specs. COLLECT_GCC=aarch64-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/12/lto-wrapper Target: aarch64-unknown-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/configure --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/12 --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12 --mandir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/man --infodir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/info --with-gxx-include-dir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/g++-v12 --with-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/12/python --enable-languages=c,c++,go,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 12.2.1_p20221008 p1' --with-gcc-major-version-only --disable-esp --enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --with-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.2.1 20221008 (Gentoo 12.2.1_p20221008 p1) (In reply to Leonid Kopylov from comment #6) > # aarch64-unknown-linux-gnu-gcc -march=native -Q -v > Using built-in specs. > COLLECT_GCC=aarch64-unknown-linux-gnu-gcc > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/12/lto-wrapper > Target: aarch64-unknown-linux-gnu > Configured with: > /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/ > configure --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu > --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/12 > --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include > --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12 > --mandir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/man > --infodir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/info > --with-gxx-include-dir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/g++- > v12 --with-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/12/python > --enable-languages=c,c++,go,fortran --enable-obsolete --enable-secureplt > --disable-werror --with-system-zlib --enable-nls --without-included-gettext > --disable-libunwind-exceptions --enable-checking=release > --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo > 12.2.1_p20221008 p1' --with-gcc-major-version-only --disable-esp > --enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared > --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu > --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp > --disable-libada --disable-cet --disable-systemtap > --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv > --with-zstd --enable-lto --with-isl --disable-isl-version-check > --enable-default-pie --enable-default-ssp > Thread model: posix > Supported LTO compression algorithms: zlib zstd > gcc version 12.2.1 20221008 (Gentoo 12.2.1_p20221008 p1) You forgot to add --help=target ;) (In reply to Stephan Hartmann from comment #7) > (In reply to Leonid Kopylov from comment #6) > > # aarch64-unknown-linux-gnu-gcc -march=native -Q -v > > Using built-in specs. > > COLLECT_GCC=aarch64-unknown-linux-gnu-gcc > > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/12/lto-wrapper > > Target: aarch64-unknown-linux-gnu > > Configured with: > > /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/ > > configure --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu > > --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/12 > > --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include > > --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12 > > --mandir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/man > > --infodir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/info > > --with-gxx-include-dir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/g++- > > v12 --with-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/12/python > > --enable-languages=c,c++,go,fortran --enable-obsolete --enable-secureplt > > --disable-werror --with-system-zlib --enable-nls --without-included-gettext > > --disable-libunwind-exceptions --enable-checking=release > > --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo > > 12.2.1_p20221008 p1' --with-gcc-major-version-only --disable-esp > > --enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared > > --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu > > --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp > > --disable-libada --disable-cet --disable-systemtap > > --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv > > --with-zstd --enable-lto --with-isl --disable-isl-version-check > > --enable-default-pie --enable-default-ssp > > Thread model: posix > > Supported LTO compression algorithms: zlib zstd > > gcc version 12.2.1 20221008 (Gentoo 12.2.1_p20221008 p1) > > You forgot to add --help=target ;) # aarch64-unknown-linux-gnu-gcc -march=native -Q -v --help=target Using built-in specs. COLLECT_GCC=aarch64-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/12/lto-wrapper Target: aarch64-unknown-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/configure --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/12 --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12 --mandir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/man --infodir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/12/info --with-gxx-include-dir=/usr/lib/gcc/aarch64-unknown-linux-gnu/12/include/g++-v12 --with-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/12/python --enable-languages=c,c++,go,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 12.2.1_p20221008 p1' --with-gcc-major-version-only --disable-esp --enable-libstdcxx-time --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --with-zstd --enable-lto --with-isl --disable-isl-version-check --enable-default-pie --enable-default-ssp Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.2.1 20221008 (Gentoo 12.2.1_p20221008 p1) COLLECT_GCC_OPTIONS= '-Q' '-v' '--help=target' '-mlittle-endian' '-mabi=lp64' '-march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth' '-dumpdir' 'a-' /usr/libexec/gcc/aarch64-unknown-linux-gnu/12/cc1 -v help-dummy -dumpdir a- -dumpbase help-dummy -mlittle-endian -mabi=lp64 -march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth -version --help=target -o /tmp/ccrAvvxu.s The following options are target specific: -mabi= lp64 -march= armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth -mbig-endian [disabled] -mbionic [disabled] -mbranch-protection= -mcmodel= small -mcpu= generic -mfix-cortex-a53-835769 [enabled] -mfix-cortex-a53-843419 [enabled] -mgeneral-regs-only [disabled] -mglibc [enabled] -mharden-sls= -mlittle-endian [enabled] -mlow-precision-div [disabled] -mlow-precision-recip-sqrt [disabled] -mlow-precision-sqrt [disabled] -mmusl [disabled] -momit-leaf-frame-pointer [enabled] -moutline-atomics [enabled] -moverride=<string> -mpc-relative-literal-loads [enabled] -msign-return-address= none -mstack-protector-guard-offset= -mstack-protector-guard-reg= -mstack-protector-guard= global -mstrict-align [disabled] -msve-vector-bits=<number> scalable -mtls-dialect= desc -mtls-size= 24 -mtrack-speculation [disabled] -mtune= generic -muclibc [disabled] -mverbose-cost-dump [disabled] Known AArch64 ABIs (for use with the -mabi= option): ilp32 lp64 Supported AArch64 return address signing scope (for use with -msign-return-address= option): all non-leaf none The code model option names for -mcmodel: large small tiny Valid arguments to -mstack-protector-guard=: global sysreg The possible SVE vector lengths: 1024 128 2048 256 512 scalable The possible TLS dialects: desc trad GNU C17 (Gentoo 12.2.1_p20221008 p1) version 12.2.1 20221008 (aarch64-unknown-linux-gnu) compiled by GNU C version 12.2.1 20221008, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 COLLECT_GCC_OPTIONS= '-Q' '-v' '--help=target' '-mlittle-endian' '-mabi=lp64' '-march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth' '-dumpdir' 'a-' /usr/lib/gcc/aarch64-unknown-linux-gnu/12/../../../../aarch64-unknown-linux-gnu/bin/as -v -EL -march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth -mabi=lp64 -o /tmp/ccuKcxO1.o /tmp/ccrAvvxu.s GNU assembler version 2.39.0 (aarch64-unknown-linux-gnu) using BFD version (Gentoo 2.39 p5) 2.39.0 I think this is a toolchain bug. The code expects at least -march=armv8.2-a for dotprod extensions. But your CPU is armv8-a. The code here is responsible (part of GCC): https://github.com/gcc-mirror/gcc/blob/master/gcc/config/arm/arm_neon.h#L18187 may be related? https://bugs.gentoo.org/884497 i reinstalled the whole system, setting: -march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+fp16fml+sb+ssbs+flagm+pauth in make.conf i was also able to install (during initial install) latest gcc: sys-devel/gcc-12.2.1_p20221210 (https://bugs.gentoo.org/884497). And now i have a different "-march" (if i change to the new - a lot of packages does not build): # gcc -march=native -E -v - </dev/null 2>&1 | grep cc1 /usr/libexec/gcc/aarch64-unknown-linux-gnu/12/cc1 -E -quiet -v - -mlittle-endian -mabi=lp64 -march=armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+sha3+fp16fml+sb+ssbs+flagm+pauth -dumpbase - # aarch64-unknown-linux-gnu-gcc -march=native -Q --help=target The following options are target specific: -mabi= lp64 -march= armv8-a+crypto+crc+lse+rcpc+rdma+dotprod+sha3+fp16fml+sb+ssbs+flagm+pauth -mbig-endian [disabled] -mbionic [disabled] -mbranch-protection= -mcmodel= small -mcpu= generic -mfix-cortex-a53-835769 [enabled] -mfix-cortex-a53-843419 [enabled] -mgeneral-regs-only [disabled] -mglibc [enabled] -mharden-sls= -mlittle-endian [enabled] -mlow-precision-div [disabled] -mlow-precision-recip-sqrt [disabled] -mlow-precision-sqrt [disabled] -mmusl [disabled] -momit-leaf-frame-pointer [enabled] -moutline-atomics [enabled] -moverride=<string> -mpc-relative-literal-loads [enabled] -msign-return-address= none -mstack-protector-guard-offset= -mstack-protector-guard-reg= -mstack-protector-guard= global -mstrict-align [disabled] -msve-vector-bits=<number> scalable -mtls-dialect= desc -mtls-size= 24 -mtrack-speculation [disabled] -mtune= generic -muclibc [disabled] -mverbose-cost-dump [disabled] Known AArch64 ABIs (for use with the -mabi= option): ilp32 lp64 Supported AArch64 return address signing scope (for use with -msign-return-address= option): all non-leaf none The code model option names for -mcmodel: large small tiny Valid arguments to -mstack-protector-guard=: global sysreg The possible SVE vector lengths: 1024 128 2048 256 512 scalable The possible TLS dialects: desc trad The problem is that gcc detects armv8-a, but minimum is armv8.2-a for dotprod extension. Clang seems to automatically "fix" this. The detection code either looks for information in /proc/cpuinfo or uses a file from GCC_CPUINFO environment variable. Can you share the content of /proc/cpuinfo for one core? (In reply to Stephan Hartmann from comment #12) > The problem is that gcc detects armv8-a, but minimum is armv8.2-a for > dotprod extension. Clang seems to automatically "fix" this. > The detection code either looks for information in /proc/cpuinfo or uses a > file from GCC_CPUINFO environment variable. > > Can you share the content of /proc/cpuinfo for one core? # cat /proc/cpuinfo processor : 0 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb paca pacg dcpodp flagm2 frint CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0x000 CPU revision : 0 |