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 Previous  1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
pingtoo
l33t
l33t


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

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

NeddySeagoon wrote:
pingtoo,

I didn't know that there was a /etc/portage/bin/repos.conf/
It is my typo in the port my file is /etc/portage/binrepos.conf/tt.

Anyway, Now I am stuck in
Code:
[binary  N     ] dev-qt/qtwidgets-5.15.10-r3-1:5/5.15::gentoo  USE="X dbus gtk png -debug -gles2-only -test" 3560 KiB
[binary  N     ] dev-qt/qtdeclarative-5.15.10-r3-2:5/5.15::gentoo  USE="vulkan widgets -debug -gles2-only (-jit) -localstorage -test" 6890 KiB
[binary  N     ] dev-qt/qtwayland-5.15.10-r5-2:5/5.15.10::gentoo  USE="X vulkan -debug -test" 1510 KiB
[ebuild  N     ] www-client/chromium-117.0.5938.149:0/stable::gentoo  USE="X hangouts official (pic) proprietary-codecs suid system-harfbuzz system-icu system-png system-zstd (-component-build) -cups -custom-cflags -debug -gtk4 (-headless) -kerberos -libcxx -lto -pax-kernel (-pgo) -pulseaudio -qt5 (-qt6) -screencast (-selinux) (-system-av1) (-system-ffmpeg) -vaapi -wayland (-widevine)" CPU_FLAGS_ARM="(-neon)" L10N="af am ar bg bn ca cs da de el en-GB 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" 3067683 KiB
[blocks B      ] sys-apps/systemd ("sys-apps/systemd" is soft blocking sys-apps/systemd-utils-253.11-r1)
[blocks B      ] sys-apps/gentoo-systemd-integration ("sys-apps/gentoo-systemd-integration" is soft blocking sys-apps/systemd-utils-253.11-r1)

Total: 227 packages (225 new, 2 reinstalls, 223 binaries, 1 uninstall), Size of downloads: 3470940 KiB
Conflict: 3 blocks (2 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-apps/systemd-253.11-1:0/2::gentoo, binary scheduled for merge) pulled in by
    >=sys-apps/systemd-207 required by (sys-apps/gentoo-systemd-integration-9-1:0/0::gentoo, binary scheduled for merge) USE=""
    sys-apps/systemd required by (virtual/service-manager-1-r1-1:0/0::gentoo, installed) USE=""
    >=sys-apps/systemd-251:0/2 required by (virtual/libudev-251-r1-1:0/1::gentoo, binary scheduled for merge) USE="sticky-tags systemd (-eudev)"
    sys-apps/systemd:0/2= required by (dev-qt/qtcore-5.15.10-r2-1:5/5.15.10::gentoo, binary scheduled for merge) USE="icu systemd -debug -old-kernel -test"
    sys-apps/systemd required by (app-accessibility/at-spi2-core-2.48.3-1:2/2::gentoo, binary scheduled for merge) USE="X introspection systemd -dbus-broker -gtk-doc -test"
    sys-apps/systemd:0/2=[policykit] required by (sys-auth/polkit-122-r1-2:0/0::gentoo, binary scheduled for merge) USE="daemon duktape gtk introspection pam systemd -examples -kde (-selinux) -test"
    >=sys-apps/systemd-44:0/2= required by (x11-misc/colord-1.4.6-r1-1:0/2::gentoo, binary scheduled for merge) USE="introspection systemd -argyllcms -examples -extra-print-profiles -gtk-doc -scanner (-selinux) -test -vala"
    sys-apps/systemd:0/2= required by (sys-apps/dbus-1.15.6-1:0/0::gentoo, binary scheduled for merge) USE="X systemd -debug -doc -elogind (-selinux) -static-libs -test -valgrind"

  (sys-apps/systemd-utils-253.11-r1-1:0/0::gentoo, binary scheduled for merge) pulled in by
    sys-apps/systemd-utils[udev] required by (virtual/udev-217-r6-1:0/0::gentoo, installed) USE="-systemd"
    sys-apps/systemd-utils[tmpfiles] required by (virtual/tmpfiles-0-r5-1:0/0::gentoo, installed) USE="-systemd"


For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

https://wiki.gentoo.org/wiki/Handbook:X86/Working/Portage#Blocked_packages


Is there a quick way to work around this?

My goal is start compile chromium. I really don't care about this installation. After I solve this problem I will drop the entire docker container.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


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

PostPosted: Sat Oct 14, 2023 8:24 pm    Post subject: Reply with quote

pingtoo,

You appear to have a systemd install and its trying to pull in sys-apps/systemd-utils which is for non systemd users only.
Or you have selected a systemd profile on on openRC install, so systemd will be in the part of package list you are not sharing.
_________________
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
l33t
l33t


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

PostPosted: Sat Oct 14, 2023 8:25 pm    Post subject: Reply with quote

NeddySeagoon,

Again, please ignore my post. I got it going by doing
Code:
emerge -C virtual/udev virtual/tmpfiles


No the build in in progress, hopfully we will able to reproduce the error.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


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

PostPosted: Sat Oct 14, 2023 8:28 pm    Post subject: Reply with quote

pingtoo'

What hardware and build environment are you using?
_________________
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
l33t
l33t


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

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

NeddySeagoon wrote:
pingtoo'

What hardware and build environment are you using?
I am using Pi 4B.

This build environment is a docker container from Gentoo official stage3 and portage.

I am using your binhost, which pulling 224 binaries for total of 228 packages. saved a lots of time thanks to your binhost.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Sun Oct 15, 2023 2:24 pm    Post subject: Reply with quote

Quick update,

The emerge process finish failed. Two packages not complete, x11-libs/gtk+ and www-client/chromium. I think they are related, chromium build log indicate something missing for pkg_config("atk") and gtk+ failed in postinst phase.

Will investigate more.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Sun Oct 15, 2023 8:27 pm    Post subject: Reply with quote

After reviewing the source code I think this is a design bug in chromium. It is forcing using dotProd ARM extension without further check if CPU arch actually support this extension or not. This can be found in the
https://github.com/chromium/chromium/blob/main/third_party/libaom/BUILD.gn#L224:
if (current_cpu == "arm64") {
  source_set("libaom_intrinsics_arm_crc32") {
    check_includes = false
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":libaom_config" ]
    if (!is_win || is_clang) {
      cflags = [ "-march=armv8-a+crc" ]
    }
    sources = aom_av1_encoder_intrin_arm_crc32
  }

  source_set("libaom_intrinsics_neon_dotprod") {
    check_includes = false
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":libaom_config" ]
    if (!is_win || is_clang) {
      cflags = [ "-march=armv8.2-a+dotprod" ]
    }
    sources = aom_av1_common_intrin_neon_dotprod
    sources += aom_dsp_common_intrin_neon_dotprod
    sources += aom_av1_encoder_intrin_neon_dotprod
    sources += aom_dsp_encoder_intrin_neon_dotprod
  }

  source_set("libaom_intrinsics_neon_i8mm") {
    check_includes = false
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":libaom_config" ]
    if (!is_win || is_clang) {
      cflags = [ "-march=armv8.2-a+dotprod+i8mm" ]
    }
    sources = aom_av1_common_intrin_neon_i8mm
    sources += aom_dsp_common_intrin_neon_i8mm
  }
}


So the compiler error may be able to work around by define (or undefine) the CFLAGS remove the "-march=XXX". This way the build system defined "-march-armv8.2+dotprod" will take place and everything will be included in the object code. However it is not clear for me if the executable will work on RPI4. Because the actual CPU does not include support for dotprod extension instruction. So likely when viewing stream encode in AV1 format will likely cause a wrong instruction fault.


The above is accrue in 117 however in 118 There some changes, so the same compiler error "dot_prod_permute_tbl undeclared" unlikely will happen. But the chromium build system remain the same so same conclusion that when viewing stream encode in AV1 format will likely case a wrong instruction fault.


However in 117, you have option to use flag system-av1, So you may be able to work around this problem. In 118 this option seems to be gone.
Back to top
View user's profile Send private message
paluszak
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 265
Location: Warsaw, Poland

PostPosted: Mon Oct 16, 2023 7:18 am    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


I have the same problem here. Compiling with both GCC and Clang gives me dot_prod_permute_tbl related errors.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Mon Oct 16, 2023 11:00 am    Post subject: Reply with quote

paluszak,

have you tried with 118?
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


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

PostPosted: Mon Oct 16, 2023 11:05 am    Post subject: Reply with quote

pingtoo,

Code:
if (current_cpu == "arm64") {
  source_set("libaom_intrinsics_arm_crc32") {
    check_includes = false
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":libaom_config" ]
    if (!is_win || is_clang) {
      cflags = [ "-march=armv8-a+crc" ]
    }
    sources = aom_av1_encoder_intrin_arm_crc32
  }

Eewww. The X-Gene 1 is bare armv8-a. It does not hove any of the optional extensions at all. That was the first ever aarch64 CPU.
A few devs have them in the form of Mudan server boards.

My Pi4 router reports
Code:
processor       : 0
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

and my Hawk (X-Gene 3 / Ampere 8130) says
Code:
processor       : 0
BogoMIPS        : 80.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x50
CPU architecture: 8
CPU variant     : 0x3
CPU part        : 0x000
CPU revision    : 2


I don,t see +dotprod in either but Chromium builds in a KVM on the build system.

I can't try running Chromium on the Hawk. It's very noisy so it's confined to the garage. I can't really fit a GPU ether. The poor wee AST2500 BMC isn't up to it.
I do have Chromium built though.

My Pi4 test bed was robbed for bits to fix the Router, so needs to be reinstalled before I can try to run Chromium.

For the build to fail for
Code:
cflags = [ "-march=armv8.2-a+dotprod" ]
the build system would need to both build and execute instructions that the Pi4 does not have.
That would trigger Illegal Instruction exceptions in dmesg.
It's quite possible for a compiler to emit instructions that the build host cannot execute.
_________________
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
l33t
l33t


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

PostPosted: Mon Oct 16, 2023 12:57 pm    Post subject: Reply with quote

NeddySeagoon,

Thanks for the confirmation.

I think in 117 if you build with system-av1 use flag the result binary will have better change to work. Because the libaom is configured correctly for NEON (asimd)

I think gcc with -march=armv8.2-a+dotprod will emitting Intrinsic function when source code contain those call. Those intrinsic function exist in libaom and is enabled by the setting, what I don't understand yet is how the system choose the path to enable it. it looks to me is cmake some where ran a cpu detection function and decide that logic but I have not able to find such function.

for clang according to the comment it need to be at v16 to have the dotprod intrinsic function to emit in the aom code.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Mon Oct 16, 2023 2:04 pm    Post subject: Reply with quote

I am going to give it a go again. Just want to run until compile fail than examine more detail.

Previously I was not able to start compile due to gtk install failure.

I think gtk install failed because I am running inside container and the installation seems to doing something privileged. So this time I start container with privileged hopefully this will lead to successful install gtk and will start chromium compilation.

Hope this will not kill my SSD 8)
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Tue Oct 17, 2023 1:56 pm    Post subject: Reply with quote

I will stop perusing this topic. rebuild failed again exact same way. Gtk failed with pkg_postinst (binary install) and chromium failed in configure phase, I think it is relate to gtk failure.

Just in case someone interesting about gtk and chromium failure.
GTK binary install fail message:
 * Messages for package x11-libs/gtk+-3.24.38:

 * FAILED postinst: 1
 * ERROR: x11-libs/gtk+-3.24.38::gentoo failed (postinst phase):
 *   Update immodules cache failed (for arm64)
 *
 * Call stack:
 *     ebuild.sh, line  136:  Called pkg_postinst
 *   environment, line 3031:  Called multilib_parallel_foreach_abi 'multilib_pkg_postinst'
 *   environment, line 2825:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib_pkg_postinst'
 *   environment, line 2385:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib_pkg_postinst'
 *   environment, line 2383:  Called _multilib_multibuild_wrapper 'multilib_pkg_postinst'
 *   environment, line  704:  Called multilib_pkg_postinst
 *   environment, line 3029:  Called die
 * The specific snippet of code:
 *           gnome2_query_immodules_gtk3 || die "Update immodules cache failed (for ${ABI})"
 *
 * If you need support, post the output of `emerge --info '=x11-libs/gtk+-3.24.38::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=x11-libs/gtk+-3.24.38::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/x11-libs/gtk+-3.24.38/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/gtk+-3.24.38/temp/environment'.
 * Working directory: '/var/tmp/portage/x11-libs/gtk+-3.24.38/empty'
 * S: '/var/tmp/portage/x11-libs/gtk+-3.24.38/work/gtk+-3.24.38'

Chromium source build fail message:
 * Messages for package www-client/chromium-117.0.5938.149:

 * Amount of main memory is insufficient, but amount
 * of main memory combined with swap is sufficient.
 * Build process may make computer very slow!
 * Unable to find kernel sources at /usr/src/linux
 * Unable to calculate Linux Kernel version for build, attempting to use running version
 * ERROR: www-client/chromium-117.0.5938.149::gentoo failed (configure phase):
 *   (no error message)
 *
 * Call stack:
 *     ebuild.sh, line  136:  Called src_configure
 *   environment, line 5081:  Called chromium_configure '0'
 *   environment, line 2382:  Called die
 * The specific snippet of code:
 *       "$@" || die
 *
 * 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'`.
 * 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'
 *
 * The following 2 packages have failed to build, install, or execute
 * postinst:
 *
 *  (x11-libs/gtk+-3.24.38-2:3/3::gentoo, binary scheduled for merge) (postinst failed)
 *  (www-client/chromium-117.0.5938.149:0/stable::gentoo, ebuild scheduled for merge), Log file:
 *   '/var/tmp/portage/www-client/chromium-117.0.5938.149/temp/build.log'
 *
Back to top
View user's profile Send private message
paluszak
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 265
Location: Warsaw, Poland

PostPosted: Tue Oct 17, 2023 11:01 pm    Post subject: Reply with quote

pingtoo wrote:
have you tried with 118?


I will and we will see.
Back to top
View user's profile Send private message
paluszak
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 265
Location: Warsaw, Poland

PostPosted: Tue Oct 17, 2023 11:04 pm    Post subject: Reply with quote

pingtoo wrote:
However in 117, you have option to use flag system-av1, So you may be able to work around this problem. In 118 this option seems to be gone.


The stable libaom in portage (3.6.1) seems not to be compatible with chromium. I tries unmasking system-av1 flag and I'm hitting the following compile error:

Code:
FAILED: obj/media/video/video/av1_video_encoder.o
clang++ -MMD -MF obj/media/video/video/av1_video_encoder.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DIS_MEDIA_IMPL -DUSE_NEON -DUSE_PULSEAUDIO -DDLOPEN_PULSEAUDIO -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DBASE_USE_PERFETTO_CLIENT_LIBRARY=1 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_SKSURFACE_METHODS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_METHODS -DSK_DISABLE_LEGACY_SKSURFACE_FACTORIES -DSK_DISABLE_LEGACY_SKSURFACE_FLUSH -DSK_DISABLE_LEGACY_SKSURFACE_AS_IMAGE -DSK_DISABLE_LEGACY_SKSURFACE_DISPLAYLIST -DSK_DISABLE_LEGACY_IMAGE_SUBSET_METHODS -DSK_DISABLE_LEGACY_IMAGE_COLORSPACE_METHODS -DSK_DISABLE_LEGACY_IMAGE_RELEASE_PROCS -DSK_DISABLE_LEGACY_GL_BACKEND_SURFACE -DSK_CODEC_DECODES_JPEG -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_HAS_WUFFS_LIBRARY -DSK_DISABLE_LEGACY_CANVAS_FLUSH -DSK_LEGACY_GPU_GETTERS_CONST -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DVK_USE_PLATFORM_XCB_KHR -DUSE_EGL -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -DCRASHPAD_ZLIB_SOURCE_EXTERNAL -DUSE_SYSTEM_ZLIB=1 -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -Igen/shim_headers/aom_shim -I../../third_party/khronos -I../../gpu -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/shim_headers/zstd_shim -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -Igen/third_party/dawn/include -I../../third_party/dawn/include -I../../third_party/libyuv/include -Igen/shim_headers/openh264_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ipcz/include -I../../third_party/ced/src -I../../third_party/mesa_headers -I../../third_party/crashpad/crashpad -I.
./../third_party/crashpad/crashpad/compat/linux -I../../third_party/crashpad/crashpad/compat/non_win -I../../third_party/libvpx/source/libvpx -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -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 -Wshadow -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 -mno-outline -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -Wno-redundant-parens -Wno-redundant-parens -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/include/openh264 -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -march=armv8-a+crc -mtune=cortex-a72 -O2 -pipe -Wno-unknown-warning-option -c ../../media/video/av1_video_encoder.cc -o obj/media/video/video/av1_video_encoder.o
../../media/video/av1_video_encoder.cc:433:37: error: use of undeclared identifier 'AV1E_SET_QUANTIZER_ONE_PASS'
    aom_codec_control(codec_.get(), AV1E_SET_QUANTIZER_ONE_PASS, qp);
                                    ^
1 error generated.


Edit: AV1E_SET_QUANTIZER_ONE_PASS is a new feature in libaom-3.7.0.
Back to top
View user's profile Send private message
paluszak
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 265
Location: Warsaw, Poland

PostPosted: Wed Oct 18, 2023 7:05 am    Post subject: Reply with quote

pingtoo wrote:
have you tried with 118?


118.0.5993.70 fails the same:

Code:
FAILED: obj/third_party/libaom/libaom_intrinsics_neon_dotprod/compound_convolve_neon_dotprod.o
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_OZO
NE=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -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-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -f
stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -mno-outline -no-canonical
-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-comp
are -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unus
ed-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-bui
ltins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -std=c11 -march=armv8-a+crc -mtune=cortex-a72 -O2 -pipe -Wno-unknown-warning-opti
on -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:40:19: error: always_inline function 'vdotq_s32' requires targe
t feature 'dotprod', but would be inlined into function 'convolve4_4_2d_h' that is compiled without support for 'dotprod'
  int32x4_t sum = vdotq_lane_s32(correction, permuted_samples, x_filter, 0);
                  ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:67:12: error: always_inline function 'vdotq_s32' requires targe
t feature 'dotprod', but would be inlined into function 'convolve8_8_2d_h' that is compiled without support for 'dotprod'
  sum[0] = vdotq_lane_s32(correction, permuted_samples[0], x_filter, 0);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:68:12: error: always_inline function 'vdotq_s32' requires targe
t feature 'dotprod', but would be inlined into function 'convolve8_8_2d_h' that is compiled without support for 'dotprod'
  sum[0] = vdotq_lane_s32(sum[0], permuted_samples[1], x_filter, 1);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:70:12: error: always_inline function 'vdotq_s32' requires targe
t feature 'dotprod', but would be inlined into function 'convolve8_8_2d_h' that is compiled without support for 'dotprod'
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:274:19: error: always_inline function 'vdotq_s32' requires target feature 'dotprod', but would be inlined into function 'convolve4_4_x' that is compiled without support for 'dotprod'
  int32x4_t sum = vdotq_lane_s32(correction, permuted_samples, x_filter, 0);
                  ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:301:12: error: always_inline function 'vdotq_s32' requires targ
et feature 'dotprod', but would be inlined into function 'convolve8_8_x' that is compiled without support for 'dotprod'
  sum[0] = vdotq_lane_s32(correction, permuted_samples[0], x_filter, 0);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:302:12: error: always_inline function 'vdotq_s32' requires targ
et feature 'dotprod', but would be inlined into function 'convolve8_8_x' that is compiled without support for 'dotprod'
  sum[0] = vdotq_lane_s32(sum[0], permuted_samples[1], x_filter, 1);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:304:12: error: always_inline function 'vdotq_s32' requires targ
et feature 'dotprod', but would be inlined into function 'convolve8_8_x' that is compiled without support for 'dotprod'
  sum[1] = vdotq_lane_s32(correction, permuted_samples[1], x_filter, 0);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
../../third_party/libaom/source/libaom/av1/common/arm/compound_convolve_neon_dotprod.c:305:12: error: always_inline function 'vdotq_s32' requires tar/
et feature 'dotprod', but would be inlined into function 'convolve8_8_x' that is compiled without support for 'dotprod'
  sum[1] = vdotq_lane_s32(sum[1], permuted_samples[2], x_filter, 1);
  sum[1] = vdotq_lane_s32(sum[1], permuted_samples[2], x_filter, 1);
           ^
/usr/lib/llvm/16/bin/../../../../lib/clang/16/include/arm_neon.h:33963:15: note: expanded from macro 'vdotq_lane_s32'
  __ret_147 = vdotq_s32(__s0_147, __s1_147, *(int8x16_t *) &__reint1_147); \
              ^
10 errors generated.
[6245/57348] python3.11 ../../third_party/node/node.py ../../third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup --silent --config ../../third_party/devtools-frontend/src/scripts/build/rollup.config.js --input gen/third_party/devtools-frontend/src/front_end/core/common/common.prebundle.js --file gen/third_party/devtools-frontend/src/front_end/core/common/common.js --configDCHECK
ninja: build stopped: subcommand failed.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Wed Oct 18, 2023 12:59 pm    Post subject: Reply with quote

paluszak,

Thank you very much for the information. However I am not currently pursuing this topic any more. From I learn in the configuration it looks to me it will require targeted porting for RPI4 current state. The upstream code plus ebuild seems to targeting more modern ARM CPU.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


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

PostPosted: Wed Oct 18, 2023 4:31 pm    Post subject: Reply with quote

Chromium is in my Pi4 binhost.

My Pi4 test bed is down, having been scavenged for parts so it net been tested.
Feel free to try it.
_________________
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
l33t
l33t


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

PostPosted: Wed Oct 18, 2023 4:42 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Chromium is in my Pi4 binhost.

My Pi4 test bed is down, having been scavenged for parts so it net been tested.
Feel free to try it.


Just a FYI. In order to test Neddy's build you are likely need to dig out a ebuild that match versions on the repo. (Please note, I am not suggest don't do it, Just want to point out up front so there be lesser confuse in case you try)

I just did a quick pull down and failed due to ebuild version mismatch,
Code:
3f15d44242d1 ~ # emerge -agk1 --binpkg-respect-use=n --job 4 chromium

Local copy of remote index is up-to-date and will be used.

 * IMPORTANT: 15 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


Local copy of remote index is up-to-date and will be used.

Local copy of remote index is up-to-date and will be used.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 12.10 s.

[ebuild  N     ] www-client/chromium-117.0.5938.149  USE="X hangouts official (pic) proprietary-codecs suid system-harfbuzz system-icu system-png system-zstd (-component-build) -cups -custom-cflags -debug -gtk4 (-headless) -kerberos -libcxx -lto -pax-kernel (-pgo) -pulseaudio -qt5 (-qt6) -screencast (-selinux) (-system-av1) (-system-ffmpeg) -vaapi -wayland (-widevine)" CPU_FLAGS_ARM="(-neon)" L10N="af am ar bg bn ca cs da de el en-GB 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"

Would you like to merge these packages? [Yes/No] n

Quitting.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


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

PostPosted: Wed Oct 18, 2023 4:56 pm    Post subject: Reply with quote

There are three 118.xxx versions there too.
_________________
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
l33t
l33t


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

PostPosted: Wed Oct 18, 2023 8:17 pm    Post subject: Reply with quote

NeddySeagoon wrote:
There are three 118.xxx versions there too.


I was thinking someone later will surely come up a question about "it does not work for me. I setup binhost but it does not work" so just hope my post can save some of these questions. :oops:

I was able to pull in
Code:
ACCEPT_KEYWORDS=~arm64 emerge -agk1 --binpkg-respect-use=n --job 4 '=www-client/chromium-118.0.5993.32'

>>> Jobs: 1 of 1 complete                           Load avg: 1.69, 0.88, 0.46

 * Messages for package www-client/chromium-118.0.5993.32:

 *
 * Some web pages may require additional fonts to display properly.
 * Try installing some of the following packages if some characters
 * are not displayed properly:
 * - media-fonts/arphicfonts
 * - media-fonts/droid
 * - media-fonts/ipamonafont
 * - media-fonts/noto
 * - media-fonts/ja-ipafonts
 * - media-fonts/takao-fonts
 * - media-fonts/wqy-microhei
 * - media-fonts/wqy-zenhei
 *
 * To fix broken icons on the Downloads page, you should install an icon
 * theme that covers the appropriate MIME types, and configure this as your
 * GTK+ icon theme.
 *
 * For native file dialogs in KDE, install kde-apps/kdialog.
 *
 * To make password storage work with your desktop environment you may
 * have install one of the supported credentials management applications:
 * - app-crypt/libsecret (GNOME)
 * - kde-frameworks/kwallet (KDE)
 * If you have one of above packages installed, but don't want to use
 * them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
 * in /etc/chromium/default.
 *
 * (Note: Above message is only printed the first time package is
 * installed. Please look at /usr/share/doc/chromium-118.0.5993.32/README.gentoo*
 * for future reference)

 * GNU info directory index is up-to-date.

 * IMPORTANT: 16 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


Since I am not the smartest cookie in the jar 8) I have do everything all over again :oops: because this test setup is in container and I did not give all the necessary configuration in the start of container so even I can install but I am not able to test run. Need to create a new container with right parameters and re-emerge everything again.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Thu Oct 19, 2023 9:35 pm    Post subject: Reply with quote

I managed install chromium using Neddy's binhost.

However chromium start failed. I think the most significant failure is at the end of message "Illegal instruction (core dumped)", This usually indicate the compiler targeted wrong CPU architecture.

I ram this inside container so there are some errors may be relate to missing services but I expect the failure of start will be in different place.

Below is how the container start and execution
Code:
docker run -it --rm --name chromium --privileged --cgroupns=host -v /sys/fs/cgroup:/sys/fs/cgroup  -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /usr/lib64/dri:/usr/lib64/dri chromium-image  /bin/sh
#### inside container ####
sh-5.1# useradd -d /home/me -m -u 1001 me
sh-5.1# gpasswd -a me video
sh-5.1# su - me
#### As me ####
me@3f46daa75ae5 ~ $ export DISPLAY=:0.0
me@3f46daa75ae5 ~ $  chromium
########### Error messages #############
me@3f46daa75ae5 ~ $ chromium
[142:162:1019/212852.715373:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:166:1019/212853.279917:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:166:1019/212853.280150:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:162:1019/212853.296969:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.297112:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.297188:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.297255:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:142:1019/212853.410746:ERROR:policy_logger.cc(154)] :components/enterprise/browser/controller/chrome_browser_cloud_management_controller.cc(163) Cloud management controller initialization aborted as CBCM is not enabled.
[142:162:1019/212853.450110:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.452258:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.754072:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[142:162:1019/212853.754219:ERROR:bus.cc(407)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
libGL error: MESA-LOADER: failed to open vc4: libLLVM-12.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri)
libGL error: failed to load driver: vc4
libGL error: MESA-LOADER: failed to open vc4: libLLVM-12.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri)
libGL error: failed to load driver: vc4
libGL error: MESA-LOADER: failed to open swrast: libLLVM-12.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri)
libGL error: failed to load driver: swrast
[142:226:1019/212854.697913:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:226:1019/212854.698907:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:226:1019/212854.699684:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:226:1019/212854.700379:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[142:226:1019/212854.700966:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
Illegal instruction (core dumped)
[174:174:0100/000000.021062:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[174:174:0100/000000.178858:ERROR:gl_display.cc(520)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
me@3f46daa75ae5 ~ $ [174:174:0100/000000.179093:ERROR:gl_display.cc(795)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[174:174:0100/000000.254923:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[174:174:0100/000000.256253:ERROR:gl_display.cc(520)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[174:174:0100/000000.257095:ERROR:gl_display.cc(795)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[174:174:0100/000000.258273:ERROR:gl_display.cc(829)] Initialization of all EGL display types failed.
[174:174:0100/000000.259082:ERROR:gl_ozone_egl.cc(26)] GLDisplayEGL::Initialize failed.
[174:174:0100/000000.417492:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[174:174:0100/000000.417968:ERROR:gl_display.cc(520)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[174:174:0100/000000.418125:ERROR:gl_display.cc(795)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[174:174:0100/000000.542112:ERROR:angle_platform_impl.cc(44)] Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1056 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[174:174:0100/000000.542577:ERROR:gl_display.cc(520)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[174:174:0100/000000.542770:ERROR:gl_display.cc(795)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[174:174:0100/000000.542898:ERROR:gl_display.cc(829)] Initialization of all EGL display types failed.
[174:174:0100/000000.543004:ERROR:gl_ozone_egl.cc(26)] GLDisplayEGL::Initialize failed.


The missing /usr/lib64/dri/vc4_dri.so is most likely due to it is from my container host, I have very old (outdated) Gentoo. so it is possible the mesa are so different that it cannot load the share library.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21665

PostPosted: Thu Oct 19, 2023 11:02 pm    Post subject: Reply with quote

For the illegal instruction failure, can you use the core dump to determine what instruction was illegal? Once that is known, you could check whether the illegal instruction is one that should have been prohibited by the Portage settings (indicating that the build system ignored the Portage settings) or if the Portage settings are too aggressive for this CPU. My guess is that either (a) this is in a library you got from Neddy's binhost, and his binhost targets a more capable CPU or (b) the build system ignored the settings it was given.
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


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

PostPosted: Thu Oct 19, 2023 11:20 pm    Post subject: Reply with quote

Hu wrote:
For the illegal instruction failure, can you use the core dump to determine what instruction was illegal? Once that is known, you could check whether the illegal instruction is one that should have been prohibited by the Portage settings (indicating that the build system ignored the Portage settings) or if the Portage settings are too aggressive for this CPU. My guess is that either (a) this is in a library you got from Neddy's binhost, and his binhost targets a more capable CPU or (b) the build system ignored the settings it was given.


I don't know how to do that :oops: Do I need to install gdb?

I saw Neddy's binhost /etc/portage/make.conf setting, it enable ~arm64 but the CFLAGS is
Code:
COMMON_FLAGS="-mcpu=cortex-a72+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -fomit-frame-pointer -flto"
And the CPU_FLAGS_ARM is
Code:
CPU_FLAGS_ARM="edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 crc32 v4 v5 v6 v7 v8 thumb2"

To me it looks right for RPI4 which is Cortex-A72 + crc32
/proc/cpuinfo:
Features   : fp asimd evtstrm crc32 cpuid


This whole thing come out from when I review the chromium source code based on the reported error "dot_prod_permute_tbl undeclared". This is turn out due to chromium build system somehow decide the build need to add "-march=armv8.2+dotprod" which I have not yet able to find out why the build system need to go to this path.

I am not sure how Neddy's build circumvent the error, (I was not able pass that on my RPI4 container), may be because it is a Hawk system that build the binary which is truly armv8.2?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21665

PostPosted: Fri Oct 20, 2023 12:24 am    Post subject: Reply with quote

gdb is not the only path, but in my opinion, it is the easiest path for this.

I lack the familiarity with ARM to evaluate your analysis, but your conclusions look plausible to me. Yes, if Chromium is forcing -march=armv8.2+dotprod instead of accepting the Portage settings, then it is possible (but not guaranteed) that a CPU which predates ARMv8.2 would encounter an illegal instruction here. Yes, if Neddy's hardware is truly armv8.2, then it is likely that his system could run this even with the unwanted forced -march value.
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 Previous  1, 2, 3  Next
Page 2 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