Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
unable to compile chromium on rpi4
View unanswered posts
View posts from last 24 hours

Goto page 1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Thu Oct 12, 2023 1:06 am    Post subject: unable to compile chromium on rpi4 Reply with quote

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
View user's profile Send private message
Hund
Apprentice
Apprentice


Joined: 18 Jul 2016
Posts: 218
Location: Sweden

PostPosted: Thu Oct 12, 2023 4:14 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Thu Oct 12, 2023 5:45 pm    Post subject: Re: unable to compile chromium on rpi4 Reply with quote

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
View user's profile Send private message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Thu Oct 12, 2023 6:06 pm    Post subject: Re: unable to compile chromium on rpi4 Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Thu Oct 12, 2023 6:16 pm    Post subject: Reply with quote

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
View user's profile Send private message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Thu Oct 12, 2023 6:20 pm    Post subject: Reply with quote

nothing per package to my knowledge.

Code:

-mlittle-endian -mabi=lp64 -mcpu=cortex-a72+crc -dumpbase -
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Thu Oct 12, 2023 6:45 pm    Post subject: Reply with quote

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
View user's profile Send private message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Thu Oct 12, 2023 6:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Thu Oct 12, 2023 8:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Fri Oct 13, 2023 4:38 pm    Post subject: Reply with quote

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
View user's profile Send private message
CooSee
Veteran
Veteran


Joined: 20 Nov 2004
Posts: 1468
Location: Earth

PostPosted: Fri Oct 13, 2023 5:12 pm    Post subject: Reply with quote

please show the info of eix -I media-libs/libaom

have you re-emerged above mentioned ebuild with new cflags ?

8)
_________________
" 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
View user's profile Send private message
JumboAg
Apprentice
Apprentice


Joined: 03 Mar 2007
Posts: 205
Location: Dallas, TX

PostPosted: Fri Oct 13, 2023 5:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Fri Oct 13, 2023 5:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Fri Oct 13, 2023 5:52 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Fri Oct 13, 2023 6:02 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Fri Oct 13, 2023 7:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Fri Oct 13, 2023 7:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Fri Oct 13, 2023 7:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Fri Oct 13, 2023 8:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Fri Oct 13, 2023 8:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Sat Oct 14, 2023 5:47 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Sat Oct 14, 2023 7:02 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Sat Oct 14, 2023 7:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54577
Location: 56N 3W

PostPosted: Sat Oct 14, 2023 7:40 pm    Post subject: Reply with quote

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
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1226
Location: Richmond Hill, Canada

PostPosted: Sat Oct 14, 2023 7:40 pm    Post subject: Reply with quote

NeddySeagoon,

Please ignore my previous post, I solve the problem, just need to read wiki about "Verify binary package OpenPGP signatures"
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum