View previous topic :: View next topic |
Author |
Message |
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Thu Oct 12, 2023 1:06 am Post subject: unable to compile chromium on rpi4 |
|
|
Running Gentoo on a RPI4, running into a problem compiling chromium. Hoping someone can help
here's the last bit of the build.log file starting at where I find the first FAILED warning:
Code: |
FAILED: obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
aarch64-unknown-linux-gnu-gcc -MMD -MF obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.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/libaom/source/config -I../../third_party/libaom/source/config/linux/arm64-cpu-detect -I../../third_party/libaom/source/libaom -march=armv8.2-a+dotprod -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 -std=gnu11 -O2 -pipe -march=native -c ../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c -o obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_2d_horiz_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
97 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: note: each undeclared identifier is reported only once for each function it appears in
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_dist_wtd_avg_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:350:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
350 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_avg_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:473:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
473 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:593:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
593 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
* ERROR: www-client/chromium-117.0.5938.149::gentoo failed (compile phase):
* ninja -v -j1 -l0 -C out/Release chrome chromedriver failed
*
* Call stack:
* ebuild.sh, line 136: Called src_compile
* environment, line 5090: Called chromium_compile
* environment, line 2148: Called eninja '-C' 'out/Release' 'chrome' 'chromedriver'
* environment, line 2719: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
*
* If you need support, post the output of `emerge --info '=www-client/chromium-117.0.5938.149::gentoo'`,
* the complete build log and the output of `emerge -pqv '=www-client/chromium-117.0.5938.149::gentoo'`.
*
* MemTotal: 7998656 kB
* SwapTotal: 16777212 kB
*
* The complete build log is located at '/var/tmp/portage/www-client/chromium-117.0.5938.149/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/www-client/chromium-117.0.5938.149/temp/environment'.
* Working directory: '/var/tmp/portage/www-client/chromium-117.0.5938.149/work/chromium-117.0.5938.149'
* S: '/var/tmp/portage/www-client/chromium-117.0.5938.149/work/chromium-117.0.5938.149'
|
|
|
Back to top |
|
|
Hund Apprentice
Joined: 18 Jul 2016 Posts: 218 Location: Sweden
|
Posted: Thu Oct 12, 2023 4:14 pm Post subject: |
|
|
Considering that you need a beast of a computer with a bunch of RAM, to compile something massive as Chromium, I don't think it's a realistic thing to do on weak hardware like a Raspberry Pi. Even if it worked, it take forever, probably weeks.
Can't you use something like Firefox-bin instead? Or are you locked in with Chromium? _________________ Collect memories, not things. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Thu Oct 12, 2023 5:45 pm Post subject: Re: unable to compile chromium on rpi4 |
|
|
JumboAg wrote: | Running Gentoo on a RPI4, running into a problem compiling chromium. Hoping someone can help
here's the last bit of the build.log file starting at where I find the first FAILED warning:
Code: |
FAILED: obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
aarch64-unknown-linux-gnu-gcc -MMD -MF obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.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/libaom/source/config -I../../third_party/libaom/source/config/linux/arm64-cpu-detect -I../../third_party/libaom/source/libaom -march=armv8.2-a+dotprod -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 -std=gnu11 -O2 -pipe -march=native -c ../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c -o obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_2d_horiz_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function) |
|
Something strange about your platform detection. Can you confirm you are building using Portage/emerge?
If you are using emerge can you share Code: | emerge --info www-client/chromium | I like to learn the build environment for why your compiler have flag -march=armv8.2-a+dotprod
RPI 4 is armv8-a so giving compiler armv8.2 will generate wrong CPU instruction. |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Thu Oct 12, 2023 6:06 pm Post subject: Re: unable to compile chromium on rpi4 |
|
|
pingtoo wrote: | JumboAg wrote: | Running Gentoo on a RPI4, running into a problem compiling chromium. Hoping someone can help
here's the last bit of the build.log file starting at where I find the first FAILED warning:
Code: |
FAILED: obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
aarch64-unknown-linux-gnu-gcc -MMD -MF obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.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/libaom/source/config -I../../third_party/libaom/source/config/linux/arm64-cpu-detect -I../../third_party/libaom/source/libaom -march=armv8.2-a+dotprod -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 -std=gnu11 -O2 -pipe -march=native -c ../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c -o obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_2d_horiz_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function) |
|
Something strange about your platform detection. Can you confirm you are building using Portage/emerge?
If you are using emerge can you share Code: | emerge --info www-client/chromium | I like to learn the build environment for why your compiler have flag -march=armv8.2-a+dotprod
RPI 4 is armv8-a so giving compiler armv8.2 will generate wrong CPU instruction. |
yep. Portage/emerge.
Code: | $ emerge --info www-client/chromium
Portage 3.0.51 (python 3.11.5-final-0, default/linux/arm64/17.0/desktop, gcc-13, glibc-2.37-r7, 6.1.54-v8+ aarch64)
=================================================================
System Settings
=================================================================
System uname: Linux-6.1.54-v8+-aarch64-with-glibc2.37
KiB Mem: 7998656 total, 863132 free
KiB Swap: 16777212 total, 16773884 free
Timestamp of repository gentoo: Tue, 10 Oct 2023 21:00:01 +0000
Head commit of repository gentoo: 1916496268c6596bf43733a9494861e5b33c2e4c
sh bash 5.1_p16-r6
ld GNU ld (Gentoo 2.40 p5) 2.40.0
app-misc/pax-utils: 1.3.7::gentoo
app-shells/bash: 5.1_p16-r6::gentoo
dev-lang/perl: 5.38.0-r1::gentoo
dev-lang/python: 3.11.5::gentoo
dev-lang/rust-bin: 1.71.1::gentoo
dev-util/cmake: 3.26.5-r2::gentoo
dev-util/meson: 1.2.1-r1::gentoo
sys-apps/baselayout: 2.14::gentoo
sys-apps/openrc: 0.48::gentoo
sys-apps/sandbox: 2.38::gentoo
sys-devel/autoconf: 2.71-r6::gentoo
sys-devel/automake: 1.16.5::gentoo
sys-devel/binutils: 2.40-r5::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/gcc: 13.2.1_p20230826::gentoo
sys-devel/gcc-config: 2.11::gentoo
sys-devel/libtool: 2.4.7-r1::gentoo
sys-devel/llvm: 16.0.6::gentoo
sys-devel/make: 4.4.1-r1::gentoo
sys-kernel/linux-headers: 6.1::gentoo (virtual/os-headers)
sys-libs/glibc: 2.37-r7::gentoo
Repositories:
gentoo
location: /var/db/repos/gentoo
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
volatile: False
sync-rsync-verify-metamanifest: yes
sync-rsync-verify-jobs: 1
sync-rsync-verify-max-age: 24
sync-rsync-extra-opts:
Binary Repositories:
gentoobinhost
priority: 1
sync-uri: https://gentoo.osuosl.org/releases/arm64/binpackages/17.0/arm64
ACCEPT_KEYWORDS="arm64"
ACCEPT_LICENSE="@FREE"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-O2 -pipe -march=native"
CHOST="aarch64-unknown-linux-gnu"
CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe -march=native"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=native"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j1"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi alsa arm64 bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus dri dts dvdr elogind encode exif flac fortran gdbm gif gpm gtk gui iconv icu ipv6 jpeg lcms libnotify libtirpc mad mng mp3 mp4 mpeg ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 readline sdl seccomp sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wxwidgets x264 xattr xcb xft xml xv xvid zlib" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_ARM="crc32 edsp v8 vfp vfp-d32 vfpv3 vfpv4" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="vc4 v3d" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
|
8GB RPI4 w/ a 16Gb swap partition, so its not a running out of ram situation (though just to be on the safe side, I did temporarily drop my MAKEOPTS flag down to 1 (usually set to 4) until I figure this one out). |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Thu Oct 12, 2023 6:16 pm Post subject: |
|
|
JumboAg,
Did you cut off the later part of emerge info output? The portion with "Package Setting"? I just want to make sure you don't have per package setting that interfering Globe setting.
If you don't have per package setting than we need to dig deep to understand why the build system add -march=armv8.2-a+dotprod
Please also share output of Code: | gcc -### -E - -march=native 2>&1 | sed -r '/cc1/!d;s/(")|(^.* - )|( -mno-[^\ ]+)//g' |
|
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Thu Oct 12, 2023 6:20 pm Post subject: |
|
|
nothing per package to my knowledge.
Code: |
-mlittle-endian -mabi=lp64 -mcpu=cortex-a72+crc -dumpbase -
|
|
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Thu Oct 12, 2023 6:45 pm Post subject: |
|
|
JumboAg wrote: | Code: |
-mlittle-endian -mabi=lp64 -mcpu=cortex-a72+crc -dumpbase -
|
|
I wonder if this gcc version thingy, the "-march=native" on my machine produce Code: | -mlittle-endian -mabi=lp64 -march=armv8-a+crc | , Only -mtune or -mcpu will produce your version.
Were you able to successful build chromium with older version of gcc previously?
I am still checking code to see why armv8.2+dotprod |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Thu Oct 12, 2023 6:49 pm Post subject: |
|
|
I have build chromium successfully in the past on this RPI4 running gentoo. I have not done so on this particular sd card running a fresh install of gentoo. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Thu Oct 12, 2023 8:04 pm Post subject: |
|
|
JumboAg,
I could not get heads and tail from chromium source code. Too many codes are generated.
I suggest you either use per package flag or change in make.conf set Code: | CFLAGS="-mtune=cortex-a72 -march=armv8-a+crc -O2 -pipe" |
I think gcc *should* override the -march flag since it appear later in command line but may be this is new feature for gcc 13. |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Fri Oct 13, 2023 4:38 pm Post subject: |
|
|
Assuming I did the per package config right, still running into problems
Code: |
~ # cat /etc/portage/package.env
www-client/chromium march.conf
~ # cat /etc/portage/env/march.conf
CFLAGS="-mtune=cortex-a72 -march=armv8-a+crc -O2 -pipe"
|
build.log
Code: |
FAILED: obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
aarch64-unknown-linux-gnu-gcc -MMD -MF obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.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/libaom/source/config -I../../third_party/libaom/source/config/linux/arm64-cpu-detect -I../../third_party/libaom/source/libaom -march=armv8.2-a+dotprod -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 -std=gnu11 -mtune=cortex-a72 -march=armv8-a+crc -O2 -pipe -c ../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c -o obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_2d_horiz_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
97 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:97:45: note: each undeclared identifier is reported only once for each function it appears in
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_dist_wtd_avg_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:350:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
350 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_avg_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:473:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
473 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c: In function ‘dist_wtd_convolve_x_neon_dotprod’:
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:593:45: error: ‘dot_prod_permute_tbl’ undeclared (first use in this function)
593 | const uint8x16_t permute_tbl = vld1q_u8(dot_prod_permute_tbl);
| ^~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
* ERROR: www-client/chromium-117.0.5938.149::gentoo failed (compile phase):
* ninja -v -j1 -l0 -C out/Release chrome chromedriver failed
*
* Call stack:
* ebuild.sh, line 136: Called src_compile
* environment, line 5098: Called chromium_compile
* environment, line 2156: Called eninja '-C' 'out/Release' 'chrome' 'chromedriver'
* environment, line 2727: Called die
* The specific snippet of code:
* "$@" || die -n "${*} failed"
*
* If you need support, post the output of `emerge --info '=www-client/chromium-117.0.5938.149::gentoo'`,
* the complete build log and the output of `emerge -pqv '=www-client/chromium-117.0.5938.149::gentoo'`.
*
* MemTotal: 7998656 kB
* SwapTotal: 16777212 kB
*
* The complete build log is located at '/var/tmp/portage/www-client/chromium-117.0.5938.149/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/www-client/chromium-117.0.5938.149/temp/environment'.
* Working directory: '/var/tmp/portage/www-client/chromium-117.0.5938.149/work/chromium-117.0.5938.149'
* S: '/var/tmp/portage/www-client/chromium-117.0.5938.149/work/chromium-117.0.5938.149'
|
|
|
Back to top |
|
|
CooSee Veteran
Joined: 20 Nov 2004 Posts: 1468 Location: Earth
|
Posted: Fri Oct 13, 2023 5:12 pm Post subject: |
|
|
please show the info of eix -I media-libs/libaom
have you re-emerged above mentioned ebuild with new cflags ?
_________________ " Die Realität ist eine Illusion, die durch Mangel an ehrlicher Kommunikation entsteht "
---
" Der Mensch ist von Natur aus neugierig, was am Ende übrig bleibt ist die Gier " |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Fri Oct 13, 2023 5:37 pm Post subject: |
|
|
Code: | # eix -I media-libs/libaom
[I] media-libs/libaom
Available versions: 3.4.0(0/3)^t 3.5.0(0/3)^t ~3.6.0(0/3)^t 3.6.1(0/3)^t ~3.7.0(0/3)^t ~3.7.0-r1(0/3)^t **9999(0/3)*l^t {doc +examples test ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32" CPU_FLAGS_ARM="neon" CPU_FLAGS_X86="avx avx2 mmx sse sse2 sse3 sse4_1 sse4_2 ssse3"}
Installed versions: 3.6.1(0/3)^t(04:57:19 PM 10/10/2023)(examples -doc -test ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="-32 -64 -x32" CPU_FLAGS_ARM="-neon" CPU_FLAGS_X86="-avx -avx2 -mmx -sse -sse2 -sse3 -sse4_1 -sse4_2 -ssse3")
Homepage: https://aomedia.org https://aomedia.googlesource.com/aom/
Description: Alliance for Open Media AV1 Codec SDK
|
So far, I haven't done anything with libaom. The only package I changed CFLAGS on so far was chromium |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Fri Oct 13, 2023 5:49 pm Post subject: |
|
|
JumboAg,
It builds for me but I have never tried on the Pi4 itself.
Code: | Pi4_GCC-13 ~ # grep "obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod" /var/log/portage/www-client\:chromium-11*
/var/log/portage/www-client:chromium-117.0.5938.88:20230923-210452.log:[6522/56919] aarch64-unknown-linux-gnu-clang -MMD -MF obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.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 -D_GNU_SOURCE -D_LIBCPP_ENABLE_ASSERTIONS=1 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=84fb809dd6dae36d556dc0bb702c6cc2ce9d4b80 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/libaom/source/config -I../../third_party/libaom/source/config/linux/arm64-cpu-detect -I../../third_party/libaom/source/libaom -march=armv8.2-a+dotprod -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -mno-outline -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -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 -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -std=c11 -mcpu=cortex-a72+crc -mtune=cortex-a72 -O2 -pipe -flto -Wno-unknown-warning-option -c ../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c -o obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
|
That's from my Pi4 build host.
Ahhh. You have aarch64-unknown-linux-gnu-gcc, I use aarch64-unknown-linux-gnu-clang.
Code: | [ebuild U ] www-client/chromium-118.0.5993.54:0/beta::gentoo [118.0.5993.32:0/beta::gentoo] USE="X cups hangouts libcxx lto official proprietary-codecs qt5 system-harfbuzz system-icu system-png system-zstd widevine -custom-cflags -debug -gtk4 (-headless) -kerberos -pax-kernel (-pgo) -pulseaudio (-qt6) -screencast (-selinux) -vaapi -wayland" L10N="en-GB -af -am -ar -bg -bn -ca -cs -da -de -el -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -ur -vi -zh-CN -zh-TW" 0 KiB |
That build failed with a linker issue.
I'm looking to see where I set clang, but its only in my USE flags so its not system wide.
-- edit --
Code: | Pi4_GCC-13 ~ # eix media-libs/libaom
[I] media-libs/libaom
Available versions: 3.4.0(0/3)^t 3.5.0(0/3)^t{tbz2} (~)3.6.0(0/3)^t{tbz2} 3.6.1(0/3)^t{tbz2} (~)3.7.0(0/3)^t{tbz2} (~)3.7.0-r1(0/3)^t{tbz2} **9999(0/3)*l^t {doc +examples test ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32" CPU_FLAGS_ARM="neon" CPU_FLAGS_X86="avx avx2 mmx sse sse2 sse3 sse4_1 sse4_2 ssse3"}
That's interesting CPU_FLAGS_ARM means different things to 32 bit and 64 bit ARM. USE=neon is only unmasked an arm64 where its safe ... mostly.
I'll try that with neon on.
Installed versions: 3.7.0-r1(0/3)^t{tbz2}(22:12:46 10/07/23)(doc examples -test ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="-32 -64 -x32" CPU_FLAGS_ARM="-neon" |
-- edit --
Never mind neon. Its hard masked. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Last edited by NeddySeagoon on Fri Oct 13, 2023 5:59 pm; edited 2 times in total |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Fri Oct 13, 2023 5:52 pm Post subject: |
|
|
JumboAg wrote: | Assuming I did the per package config right, still running into problems
Code: |
~ # cat /etc/portage/package.env
www-client/chromium march.conf
~ # cat /etc/portage/env/march.conf
CFLAGS="-mtune=cortex-a72 -march=armv8-a+crc -O2 -pipe"
|
|
Your per package config is correct. I can see the changes in build log.
I still believe it is the build system detect (or setup) that cause the this problem. from source code (or the GN source control file) I can see different condition it generate different libaom_instrinsics_XXX, for RPI4 it should use libaom_instrinsics_neon, not the libaom_intrinsic_neon_dotprod, however I cannot find what is controlling this behaviour. I am pretty sure it is during initial setup that it somehow detect the system is different kind of CPU, or else it is a bug.
Do you still have the unpacked code in /var/tmp/portage/www-client/chromium/*? if you do and wish to really drill into the build system to understand why, we can try something to find why the "gn" seem always choose wrong CPU type.
I can try to see if I can reproduce this on my box but it will take some time for me to setup a environment to test.
CooSee,
Not sure if chromium ebuild have setting to force use system library but the default seems using the included third party software. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Fri Oct 13, 2023 6:02 pm Post subject: |
|
|
Thanks to Neddy's test. it also show using libaom_intrinsics_neo_dotprod.
From CPU point of view, this is wrong, RPI4 CPU does not support dotprod extension, so it will be wrong instruction for CPU.
However since Neddy's test use Clang, there is logic in gn code will force use a path that will lead to include neon_dotprod code. I am not sure if this is a bug or that is how it should be.
Will do some more research now. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Fri Oct 13, 2023 7:05 pm Post subject: |
|
|
pingtoo,
Code: | grep "obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod" /var/log/portage/www-client\:chromium-11* |
only returns hits for 117 and 118. Its not in 116. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Fri Oct 13, 2023 7:27 pm Post subject: |
|
|
NeddySeagoon wrote: | pingtoo,
Code: | grep "obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod" /var/log/portage/www-client\:chromium-11* |
only returns hits for 117 and 118. Its not in 116. |
Neddy, thanks for this information.
This could be a indication that new version introduce a bug in ARM port. however this is not confirmed yet.
more research now |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Fri Oct 13, 2023 7:37 pm Post subject: |
|
|
pingtoo,
Code: |
...
[ebuild U ] www-client/chromium-118.0.5993.70 [118.0.5993.32]
... |
Its in the 267 I've just started updating.
If you have some ideas, my Hawk will have a few spare cycles. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Fri Oct 13, 2023 8:04 pm Post subject: |
|
|
NeddySeagoon wrote: | pingtoo,
Code: |
...
[ebuild U ] www-client/chromium-118.0.5993.70 [118.0.5993.32]
... |
Its in the 267 I've just started updating.
If you have some ideas, my Hawk will have a few spare cycles. |
I don't follow you, what is "267" mean?
I just found out 118 is some what different from 117 in term of how libaom in build system. so I need more time to figure it out.
If you review gentoo ebuild for 118 vs 117, you will notice in 117 there is reference system-av1 use flag which reference to media-libs/libaom whereas in 118 the system-av1 use flag no longer exist and may be the use flag proprietary-codecs, I am not yet able to confirm one way or the other. |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Fri Oct 13, 2023 8:15 pm Post subject: |
|
|
pingtoo,
Sorry. I'm doing a routine @world update. It's building 267 packages including chromium-118.0.5993.70.
The chromium build has started. Its the only thing building but
Code: | >>> Jobs: 2 of 238 complete, 1 running, 1 failed Load avg: 48.0, 47.8, 41.8 |
The system is allowed MAKEOPTS="-j32" but the chromium build system has pushed the load average well over 32.
This system has the RAM to cope
My Raspberry Pi 4 targeted binhost is at https://bloodnoc.org/~roy/BINHOSTS/
Feel free to test drive Chromium.
-- edit --
www-client/chromium-118.0.5993.70 builds for a Pi 4. I've not tried building on a Pi 4. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Sat Oct 14, 2023 5:47 pm Post subject: |
|
|
NeddySeagoon,
Trying to use your binhost https://bloodnoc.org/~roy/BINHOSTS/gcc-13.x/armv8a/ to reduce time to build packages from fresh install stage3. however I am blocked by Code: | !!!
gpg: WARNING: unsafe ownership on homedir '/etc/portage/gnupg'
gpg: failed to create temporary file '/etc/portage/gnupg/.#lk0x000000559d3a3b90.41e7d92af76c.291': Permission denied
gpg: can't allocate lock for '/etc/portage/gnupg/pubring.kbx'
[GNUPG:] PLAINTEXT 74 0
[GNUPG:] NEWSIG
gpg: Signature made Mon Oct 2 04:22:10 2023 -00
gpg: using RSA key 534E4209AB49EEE1C19D96162C44695DB9F6043D
[GNUPG:] ERRSIG 2C44695DB9F6043D 1 10 01 1696220530 9 534E4209AB49EEE1C19D96162C44695DB9F6043D
[GNUPG:] NO_PUBKEY 2C44695DB9F6043D
gpg: Can't check signature: No public key |
What do I need to do to pass this? |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Sat Oct 14, 2023 7:02 pm Post subject: |
|
|
pingtoo,
You need to trust me. :)
The binhost is not signed. It should not be offering the new format binaries either. That's required to support signed binary packages.
I was thinking of adding signing at the gcc-14 update, when it will all be rebuilt with gcc-14 as soon as the call for testers goes out.
That's well before it hits ~arch. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
Posted: Sat Oct 14, 2023 7:18 pm Post subject: |
|
|
NeddySeagoon wrote: | pingtoo,
You need to trust me.
The binhost is not signed. It should not be offering the new format binaries either. That's required to support signed binary packages.
I was thinking of adding signing at the gcc-14 update, when it will all be rebuilt with gcc-14 as soon as the call for testers goes out.
That's well before it hits ~arch. |
I have no problem trust you. My problem is I don't know how to make emerge "trust" you.
This build environment is from Official Gentoo docker stage3 image, the portage is from Official Gentoo docker portage image. I simply start a session into the container. I think it is equevilient to dump a stage3 in said /mnt/gentoo and dump portage into /mnt/gentoo/var/db/repo then chroot /mnt/gentoo, So I may need to something to enable the "trust" however I don't know what I need to do.
I create a /etc/portage/bin/repos.conf/tt file with content /etc/portage/bin/repos.conf/tt: | [binhost]
sync-uri = https://bloodnoc.org/~roy/BINHOSTS/gcc-13.x/armv8a/
priority = 10 |
|
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54577 Location: 56N 3W
|
Posted: Sat Oct 14, 2023 7:40 pm Post subject: |
|
|
pingtoo,
I didn't know that there was a /etc/portage/bin/repos.conf/
I still use the make.conf entry.
I need to stop being last out of the past :)
Thank you.
-- edit --
I did, my router SSD died a while ago
/etc/portage/binrepos.conf/pi4_binhost.conf: |
[Pi4_binhost]
priority = 50
sync-uri = https://bloodnoc.org/~roy/BINHOSTS/gcc-13.x/armv8a/ |
works here.
You have bin/repos.conf or the the extra / a typo in your post?
I also have a gentoobinhost.conf, whiceh I don't use. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Last edited by NeddySeagoon on Sat Oct 14, 2023 7:46 pm; edited 1 time in total |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1245 Location: Richmond Hill, Canada
|
|
Back to top |
|
|
|