OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
181 stars 187 forks source link

chromium-x11 build error with Rust enabled #792

Closed MaxIhlenfeldt closed 2 months ago

MaxIhlenfeldt commented 4 months ago

Original: https://lists.openembedded.org/g/openembedded-devel/message/109009


Hi,

since commit 0438fba4e773824fd2b41ded2728076deeeedeb1 ("chromium: Enable Rust") in meta-browser, I get this error on several different chromium-x11 builds (i.e. Fedora 33 and Fedora 39 hosts, mickledore and nanbield Yocto versions):

| FAILED: obj/build/rust/std/target.json obj/build/rust/std/lib/libstd.rlib obj/build/rust/std/lib/liballoc.rlib obj/build/rust/std/lib/libcfg_if.rlib obj/build/rust/std/lib/libcompiler_builtins.rlib obj/build/rust/std/lib/libcore.rlib obj/build/rust/std/lib/libgetopts.rlib obj/build/rust/std/lib/libhashbrown.rlib obj/build/rust/std/lib/liblibc.rlib obj/build/rust/std/lib/libpanic_abort.rlib obj/build/rust/std/lib/libpanic_unwind.rlib obj/build/rust/std/lib/librustc_demangle.rlib obj/build/rust/std/lib/libstd_detect.rlib obj/build/rust/std/lib/libtest.rlib obj/build/rust/std/lib/libunicode_width.rlib obj/build/rust/std/lib/libunwind.rlib obj/build/rust/std/lib/libaddr2line.rlib obj/build/rust/std/lib/libadler.rlib obj/build/rust/std/lib/libgimli.rlib obj/build/rust/std/lib/libmemchr.rlib obj/build/rust/std/lib/libminiz_oxide.rlib obj/build/rust/std/lib/libobject.rlib obj/build/rust/std/lib/libprofiler_builtins.rlib obj/build/rust/std/lib/librustc_std_workspace_alloc.rlib obj/build/rust/std/lib/librustc_std_workspace_core.rlib obj/build/rust/std/lib/librustc_std_workspace_std.rlib
| python3 ../../build/rust/std/find_std_rlibs.py --rust-bin-dir ../../../recipe-sysroot-native/usr/bin --output obj/build/rust/std --depfile obj/build/rust/std/stdlib.d --depfile-target std --rustc-revision custom --target x86_64-oe-linux-gnu
| Traceback (most recent call last):
|   File "/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/120.0.6099.224-r0/chromium-120.0.6099.224/out/Release/../../build/rust/std/find_std_rlibs.py", line 139, in <module>
|     sys.exit(main())
|              ^^^^^^
|   File "/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/120.0.6099.224-r0/chromium-120.0.6099.224/out/Release/../../build/rust/std/find_std_rlibs.py", line 104, in main
|     (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 2)
|                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| AttributeError: 'NoneType' object has no attribute 'group'

Obviously, using the previous commit works.

Best regards, Zoltán Böszörményi

MaxIhlenfeldt commented 4 months ago

Hm, this should be avoided by this part of our changes to the Rust recipe.

Can you please run recipe-sysroot-native/usr/bin/rustc --print target-libdir --target x86_64-oe-linux-gnu and paste the output here? It should be a directory path. Please also paste the contents of that directory, it should contain some .rlib files (maybe other files as well).

zboszor commented 4 months ago

Sorry for the belated response.

Here's what you asked for:

$ bitbake -c configure chromium-x11
$ bitbake -c devshell chromium-x11
# cd ..
#
# recipe-sysroot-native/usr/bin/rustc --print target-libdir --target x86_64-oe-linux-gnu | sed "s:$(pwd)/::"
couldn't allocate absolute path for 'null'.
recipe-sysroot-native/usr/lib/rustlib/x86_64-oe-linux-gnu/lib
#
# ls -l recipe-sysroot-native/usr/lib/rustlib/x86_64-oe-linux-gnu/lib
total 344884
-rw-r--r--. 1 1000 1001   485554 Feb 23 07:51 libaddr2line-be0c663ce75d21b3.rlib
-rw-r--r--. 1 1000 1001   420614 Feb 23 07:51 libaddr2line-be0c663ce75d21b3.rmeta
-rw-r--r--. 1 1000 1001   482642 Feb 23 07:51 libaddr2line-da7edd4b0fb2f538.rlib
-rw-r--r--. 1 1000 1001    64110 Feb 23 07:51 libadler-2193210a0e3dc701.rlib
-rw-r--r--. 1 1000 1001    63294 Feb 23 07:51 libadler-fa3352091a24c57c.rlib
-rw-r--r--. 1 1000 1001    25667 Feb 23 07:51 libadler-fa3352091a24c57c.rmeta
-rw-r--r--. 1 1000 1001  6853834 Feb 23 07:51 liballoc-a17efbbf320010bd.rlib
-rw-r--r--. 1 1000 1001  6451658 Feb 23 07:51 liballoc-a17efbbf320010bd.rmeta
-rw-r--r--. 1 1000 1001  6854214 Feb 23 07:51 liballoc-a608e601203ab652.rlib
-rw-r--r--. 1 1000 1001     9358 Feb 23 07:51 libcfg_if-4843d3f6775c0073.rlib
-rw-r--r--. 1 1000 1001     6333 Feb 23 07:51 libcfg_if-4843d3f6775c0073.rmeta
-rw-r--r--. 1 1000 1001     9582 Feb 23 07:51 libcfg_if-4e6b07cdbeb0df31.rlib
-rw-r--r--. 1 1000 1001  1863820 Feb 23 07:51 libcompiler_builtins-a02735b1346e2f24.rlib
-rw-r--r--. 1 1000 1001  1549882 Feb 23 07:51 libcompiler_builtins-d102db5c0fcf1e8b.rlib
-rw-r--r--. 1 1000 1001   813239 Feb 23 07:51 libcompiler_builtins-d102db5c0fcf1e8b.rmeta
-rw-r--r--. 1 1000 1001 62227814 Feb 23 07:51 libcore-b7401c14f096a3aa.rlib
-rw-r--r--. 1 1000 1001 59980565 Feb 23 07:51 libcore-b7401c14f096a3aa.rmeta
-rw-r--r--. 1 1000 1001 62225718 Feb 23 07:51 libcore-f5f014003c697bc2.rlib
-rw-r--r--. 1 1000 1001   665932 Feb 23 07:51 libgetopts-606aca4c2c7df2df.rlib
-rw-r--r--. 1 1000 1001   662438 Feb 23 07:51 libgetopts-b00b6b8ac91e0c9d.rlib
-rw-r--r--. 1 1000 1001   221573 Feb 23 07:51 libgetopts-b00b6b8ac91e0c9d.rmeta
-rw-r--r--. 1 1000 1001  7924538 Feb 23 07:51 libgimli-76b1b03e119df45f.rlib
-rw-r--r--. 1 1000 1001  7823948 Feb 23 07:51 libgimli-daac806e2961b0e6.rlib
-rw-r--r--. 1 1000 1001  6505843 Feb 23 07:51 libgimli-daac806e2961b0e6.rmeta
-rw-r--r--. 1 1000 1001  1596512 Feb 23 07:51 libhashbrown-228fb2f117043106.rlib
-rw-r--r--. 1 1000 1001  1578590 Feb 23 07:51 libhashbrown-228fb2f117043106.rmeta
-rw-r--r--. 1 1000 1001  1617576 Feb 23 07:51 libhashbrown-6a082f942cc46845.rlib
-rw-r--r--. 1 1000 1001  3437658 Feb 23 07:51 liblibc-420faeb0913adfda.rlib
-rw-r--r--. 1 1000 1001  3329618 Feb 23 07:51 liblibc-db9329a966947adb.rlib
-rw-r--r--. 1 1000 1001  3156727 Feb 23 07:51 liblibc-db9329a966947adb.rmeta
-rw-r--r--. 1 1000 1001  1380728 Feb 23 07:51 libmemchr-36971b5e7d224c20.rlib
-rw-r--r--. 1 1000 1001  1371082 Feb 23 07:51 libmemchr-c7f9a3b1fcf752be.rlib
-rw-r--r--. 1 1000 1001  1061153 Feb 23 07:51 libmemchr-c7f9a3b1fcf752be.rmeta
-rw-r--r--. 1 1000 1001  1026184 Feb 23 07:51 libminiz_oxide-0a5886c379b738c4.rlib
-rw-r--r--. 1 1000 1001   552365 Feb 23 07:51 libminiz_oxide-0a5886c379b738c4.rmeta
-rw-r--r--. 1 1000 1001  1038398 Feb 23 07:51 libminiz_oxide-50cc4c2c2f6a52d7.rlib
-rw-r--r--. 1 1000 1001  9325320 Feb 23 07:51 libobject-ab0a9ca01b7647bc.rlib
-rw-r--r--. 1 1000 1001  8325350 Feb 23 07:51 libobject-ab0a9ca01b7647bc.rmeta
-rw-r--r--. 1 1000 1001  9497756 Feb 23 07:51 libobject-daa305bc52ad7031.rlib
-rw-r--r--. 1 1000 1001     9924 Feb 23 07:51 libpanic_abort-0f6f463943ee2ff4.rlib
-rw-r--r--. 1 1000 1001    11164 Feb 23 07:51 libpanic_abort-ea4ad6e88ebebb32.rlib
-rw-r--r--. 1 1000 1001     3806 Feb 23 07:51 libpanic_abort-ea4ad6e88ebebb32.rmeta
-rw-r--r--. 1 1000 1001    33306 Feb 23 07:51 libpanic_unwind-8d3e1ae6c5d7411d.rlib
-rw-r--r--. 1 1000 1001    33094 Feb 23 07:51 libpanic_unwind-fda7bb45ddc631c4.rlib
-rw-r--r--. 1 1000 1001    10540 Feb 23 07:51 libpanic_unwind-fda7bb45ddc631c4.rmeta
-rw-r--r--. 1 1000 1001  4194712 Feb 23 07:51 libproc_macro-18e01331508bf76e.rlib
-rw-r--r--. 1 1000 1001  2035619 Feb 23 07:51 libproc_macro-18e01331508bf76e.rmeta
-rw-r--r--. 1 1000 1001  4196046 Feb 23 07:51 libproc_macro-fb0cd9df737071e6.rlib
-rw-r--r--. 1 1000 1001   412312 Feb 23 07:51 libprofiler_builtins-2343b69abf0721ce.rlib
-rw-r--r--. 1 1000 1001   582734 Feb 23 07:51 librustc_demangle-1aa2102130837de6.rlib
-rw-r--r--. 1 1000 1001   252427 Feb 23 07:51 librustc_demangle-1aa2102130837de6.rmeta
-rw-r--r--. 1 1000 1001   585434 Feb 23 07:51 librustc_demangle-fde8bc8ef3271329.rlib
-rw-r--r--. 1 1000 1001     4924 Feb 23 07:51 librustc_std_workspace_alloc-2585aa3810aa2c06.rlib
-rw-r--r--. 1 1000 1001     1799 Feb 23 07:51 librustc_std_workspace_alloc-2585aa3810aa2c06.rmeta
-rw-r--r--. 1 1000 1001     5132 Feb 23 07:51 librustc_std_workspace_alloc-ebedea0f3fa3631e.rlib
-rw-r--r--. 1 1000 1001     6458 Feb 23 07:51 librustc_std_workspace_core-81b145b7a9d5f231.rlib
-rw-r--r--. 1 1000 1001     3346 Feb 23 07:51 librustc_std_workspace_core-81b145b7a9d5f231.rmeta
-rw-r--r--. 1 1000 1001     6642 Feb 23 07:51 librustc_std_workspace_core-98a56c211caacfca.rlib
-rw-r--r--. 1 1000 1001     8288 Feb 23 07:51 librustc_std_workspace_std-21e332a12682ae31.rlib
-rw-r--r--. 1 1000 1001     8080 Feb 23 07:51 librustc_std_workspace_std-2cd73d2033dc872a.rlib
-rw-r--r--. 1 1000 1001     4970 Feb 23 07:51 librustc_std_workspace_std-2cd73d2033dc872a.rmeta
-rw-r--r--. 1 1000 1001 14938972 Feb 23 07:51 libstd-8081e30d4b010b76.rlib
-rwxr-xr-x. 1 1000 1001  6234640 Feb 23 07:51 libstd-8081e30d4b010b76.so
-rw-r--r--. 1 1000 1001   492760 Feb 23 07:51 libstd_detect-e53a043760204932.rlib
-rw-r--r--. 1 1000 1001   492680 Feb 23 07:51 libstd_detect-e7b1257019f45248.rlib
-rw-r--r--. 1 1000 1001   448698 Feb 23 07:51 libstd_detect-e7b1257019f45248.rmeta
-rw-r--r--. 1 1000 1001 14943928 Feb 23 07:51 libstd.rlib
-rwxr-xr-x. 1 1000 1001  6233496 Feb 23 07:51 libstd.so
-rw-r--r--. 1 1000 1001  4752710 Feb 23 07:51 libtest-115063b9d157dd31.rlib
-rwxr-xr-x. 1 1000 1001  1208720 Feb 23 07:51 libtest-115063b9d157dd31.so
-rw-r--r--. 1 1000 1001  4751712 Feb 23 07:51 libtest.rlib
-rwxr-xr-x. 1 1000 1001  3040120 Feb 23 07:51 libtest.so
-rw-r--r--. 1 1000 1001   146520 Feb 23 07:51 libunicode_width-14fa0c191df006c7.rlib
-rw-r--r--. 1 1000 1001   145944 Feb 23 07:51 libunicode_width-ce20be7323b234fd.rlib
-rw-r--r--. 1 1000 1001   128614 Feb 23 07:51 libunicode_width-ce20be7323b234fd.rmeta
-rw-r--r--. 1 1000 1001    46672 Feb 23 07:51 libunwind-26f0ecf2ae276e3d.rlib
-rw-r--r--. 1 1000 1001    46496 Feb 23 07:51 libunwind-6d9f4c74674870f7.rlib
-rw-r--r--. 1 1000 1001    37212 Feb 23 07:51 libunwind-6d9f4c74674870f7.rmeta
drwxr-xr-x. 2 1000 1001     4096 Feb 23 07:51 self-contained
MaxIhlenfeldt commented 4 months ago

Hm, I think I know what the problem might be. Are you building for x64 on an x64 machine, i.e. not cross-compiling?

zboszor commented 4 months ago

Hm, I think I know what the problem might be. Are you building for x64 on an x64 machine, i.e. not cross-compiling?

Correct. But it should still be cross-compiling.

MaxIhlenfeldt commented 4 months ago

How is it cross-compiling when host and target architecture are the same?

In any case, can you please check if applying the following diff fixes the error:

diff --git a/meta-chromium/recipes-browser/chromium/rust_%.bbappend b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
index d103e69..1e139f3 100644
--- a/meta-chromium/recipes-browser/chromium/rust_%.bbappend
+++ b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
@@ -16,6 +16,12 @@ rust_do_install:class-target:append() {
     tar -C _dist -xf build/dist/rust-std-${PV}-${RUST_TARGET_SYS}.tar.xz $rlib_path

     target_dir=${D}${libdir}/rustlib
+
+    # If we're not cross-compiling, target_dir might already be populated, but
+    # not with the contents we want. See
+    # https://github.com/OSSystems/meta-browser/issues/792.
+    rm -rf $target_dir
+
     install -d $target_dir
     cp -r _dist/$rlib_path/${RUST_TARGET_SYS} $target_dir
     rm -rf _dist
zboszor commented 4 months ago

How is it cross-compiling when host and target architecture are the same?

Cross-compiling in Yocto is not just about a different CPU architecture, it's also about targetting a different OS altogether, that uses a different GLIBC version.

In any case, can you please check if applying the following diff fixes the error:

I will test it, thanks.

zboszor commented 4 months ago

It didn't help under mickledore. The same error occurred.

I am trying under nanbield now.

MaxIhlenfeldt commented 4 months ago

Did you do a full, clean build? I noticed when working on the patch to enable Rust that changes to the .bbappend file don't always get picked up and applied.

zboszor commented 4 months ago

I will try a clean build then.

zboszor commented 4 months ago

It didn't help. I tried this:

bitbake -c cleanall rust-native rust-llvm-native rust rust-llvm gn-native chromium-x11
bitbake -c compile chromium-x11

Same error.

MaxIhlenfeldt commented 3 months ago

Does ls -l recipe-sysroot-native/usr/lib/rustlib/x86_64-oe-linux-gnu/lib still show the same directory contents?

zboszor commented 3 months ago

FWIW, I have run repo sync for a fresh test, so it's chromium-x11 version 121.0.6167.184 now.

The directory contents are not the same.

Also, for some reason, there is no --target x86_64-oe-linux-gnu now. Instead, there is --target x86_64-unknown-linux-gnu.

Here's the directory contents for mickledore:

# ls -l recipe-sysroot-native/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib
total 126832
-rw-r--r--. 5 1000 1001   483058 Mar 21 10:35 libaddr2line-b3ba246e740afe80.rlib
-rw-r--r--. 5 1000 1001    64974 Mar 21 10:35 libadler-bbf256bbe8778f92.rlib
-rw-r--r--. 5 1000 1001  6860366 Mar 21 10:35 liballoc-936aae53ec78ce79.rlib
-rw-r--r--. 5 1000 1001     9622 Mar 21 10:35 libcfg_if-849248fcbfb57d4a.rlib
-rw-r--r--. 5 1000 1001  1665468 Mar 21 10:35 libcompiler_builtins-2ec5c0ed3ef2fbac.rlib
-rw-r--r--. 5 1000 1001 62217482 Mar 21 10:35 libcore-4901270800bec6ad.rlib
-rw-r--r--. 5 1000 1001   668370 Mar 21 10:35 libgetopts-68c9df900475ed2b.rlib
-rw-r--r--. 5 1000 1001  7928192 Mar 21 10:35 libgimli-8b9ee3164736aa23.rlib
-rw-r--r--. 5 1000 1001  1617760 Mar 21 10:35 libhashbrown-e2d51c07b00b8a6b.rlib
-rw-r--r--. 5 1000 1001  3438354 Mar 21 10:35 liblibc-6ab72c92dff0db9b.rlib
-rw-r--r--. 5 1000 1001  1380362 Mar 21 10:35 libmemchr-49babf59ca6c80c4.rlib
-rw-r--r--. 5 1000 1001  1040632 Mar 21 10:35 libminiz_oxide-3496e818e531c81a.rlib
-rw-r--r--. 5 1000 1001  9497586 Mar 21 10:35 libobject-baf4671979453700.rlib
-rw-r--r--. 5 1000 1001     9980 Mar 21 10:35 libpanic_abort-85ccf61f7c5639c2.rlib
-rw-r--r--. 5 1000 1001    33562 Mar 21 10:35 libpanic_unwind-be905a9fdaf2d1ca.rlib
-rw-r--r--. 5 1000 1001  4189476 Mar 21 10:35 libproc_macro-a0f26b1220a72e6c.rlib
-rw-r--r--. 5 1000 1001   170232 Mar 21 10:35 libprofiler_builtins-245de444f85f5d6e.rlib
-rw-r--r--. 5 1000 1001   586512 Mar 21 10:35 librustc_demangle-3a59bbe48597eb4b.rlib
-rw-r--r--. 5 1000 1001     5164 Mar 21 10:35 librustc_std_workspace_alloc-b8efbf379069eaee.rlib
-rw-r--r--. 5 1000 1001     6690 Mar 21 10:35 librustc_std_workspace_core-5ff24a720ddda7b7.rlib
-rw-r--r--. 5 1000 1001     8328 Mar 21 10:35 librustc_std_workspace_std-fb9b2a6c67b674cf.rlib
-rw-r--r--. 5 1000 1001 14955032 Mar 21 10:35 libstd-38f48d758f4bd9f6.rlib
-rwxr-xr-x. 4 1000 1001  6243944 Mar 21 10:38 libstd-38f48d758f4bd9f6.so
-rw-r--r--. 5 1000 1001   493224 Mar 21 10:35 libstd_detect-010a824ab5df37a9.rlib
-rw-r--r--. 5 1000 1001  4787096 Mar 21 10:35 libtest-9b338978aecf41d8.rlib
-rwxr-xr-x. 4 1000 1001  1219584 Mar 21 10:38 libtest-9b338978aecf41d8.so
-rw-r--r--. 5 1000 1001   146560 Mar 21 10:35 libunicode_width-40b981f8b3d8094b.rlib
-rw-r--r--. 5 1000 1001    46736 Mar 21 10:35 libunwind-a0cbc63432f5c459.rlib

and for nanbield:

# ls -l recipe-sysroot-native/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib
total 119932
-rw-r--r--. 10 1000 1001   450960 Mar 21 13:54 libaddr2line-a2daade9081ae32a.rlib
-rw-r--r--. 10 1000 1001    64310 Mar 21 13:54 libadler-5b40c1d3762bf105.rlib
-rw-r--r--. 10 1000 1001  6680610 Mar 21 13:54 liballoc-d94e076697df6707.rlib
-rw-r--r--. 10 1000 1001     9598 Mar 21 13:54 libcfg_if-a13ba189ceabc5aa.rlib
-rw-r--r--. 10 1000 1001  1624834 Mar 21 13:54 libcompiler_builtins-a37d447ff9f43d61.rlib
-rw-r--r--. 10 1000 1001 58499200 Mar 21 13:54 libcore-08ada002d7296ae8.rlib
-rw-r--r--. 10 1000 1001   699320 Mar 21 13:54 libgetopts-89cd8d18b706659a.rlib
-rw-r--r--. 10 1000 1001  7122206 Mar 21 13:54 libgimli-0512ccbd2a7499d2.rlib
-rw-r--r--. 10 1000 1001  1615848 Mar 21 13:54 libhashbrown-6c124f38fcef1b87.rlib
-rw-r--r--. 10 1000 1001  3685490 Mar 21 13:54 liblibc-56e8a7f73f069ebe.rlib
-rw-r--r--. 10 1000 1001  1336470 Mar 21 13:54 libmemchr-66f5f463b5c23ed1.rlib
-rw-r--r--. 10 1000 1001   989898 Mar 21 13:54 libminiz_oxide-fbd292a712fa5921.rlib
-rw-r--r--. 10 1000 1001  8680044 Mar 21 13:54 libobject-9e334401310bf334.rlib
-rw-r--r--. 10 1000 1001     9684 Mar 21 13:54 libpanic_abort-b771eec9b0feb126.rlib
-rw-r--r--. 10 1000 1001    32882 Mar 21 13:54 libpanic_unwind-d1e19a1d9f4389d9.rlib
-rw-r--r--. 10 1000 1001  4073672 Mar 21 13:54 libproc_macro-1e61973162cf383f.rlib
-rw-r--r--. 10 1000 1001   171042 Mar 21 13:54 libprofiler_builtins-78773e035e3dc74d.rlib
-rw-r--r--. 10 1000 1001   559138 Mar 21 13:54 librustc_demangle-45e5578ce5ccb358.rlib
-rw-r--r--. 10 1000 1001     5204 Mar 21 13:54 librustc_std_workspace_alloc-d8b204e0bc283f8d.rlib
-rw-r--r--. 10 1000 1001     7026 Mar 21 13:54 librustc_std_workspace_core-c8c41820f8669080.rlib
-rw-r--r--. 10 1000 1001     8592 Mar 21 13:54 librustc_std_workspace_std-4b2a06f87e622cae.rlib
-rw-r--r--. 10 1000 1001   512464 Mar 21 13:54 libstd_detect-9960905b690242e4.rlib
-rw-r--r--. 10 1000 1001 13806534 Mar 21 13:54 libstd-f1077750b2cf6857.rlib
-rwxr-xr-x.  9 1000 1001  5768264 Mar 21 14:01 libstd-f1077750b2cf6857.so
-rw-r--r--. 10 1000 1001  4868416 Mar 21 13:54 libtest-314aab89245a6e5d.rlib
-rwxr-xr-x.  9 1000 1001  1219832 Mar 21 14:01 libtest-314aab89245a6e5d.so
-rw-r--r--. 10 1000 1001   144336 Mar 21 13:54 libunicode_width-18ebe4533666ca29.rlib
-rw-r--r--. 10 1000 1001    45264 Mar 21 13:54 libunwind-99b2ce68a0487c6a.rlib

The error is still the same for bitbake -c compile chromium-x11, but the failing command used --target x86_64-oe-linux-gnu:

| [41/63844] python3 ../../build/rust/std/find_std_rlibs.py --rust-bin-dir ../../../recipe-sysroot-native/usr/bin --output obj/build/rust/std --depfile obj/build/rust/std/stdlib.d --depfile-target std --rustc-revision custom --target x86_64-oe-linux-gnu
| FAILED: obj/build/rust/std/target.json obj/build/rust/std/lib/libstd.rlib obj/build/rust/std/lib/liballoc.rlib obj/build/rust/std/lib/libcfg_if.rlib obj/build/rust/std/lib/libcompiler_builtins.rlib obj/build/rust/std/lib/libcore.rlib obj/build/rust/std/lib/libgetopts.rlib obj/build/rust/std/lib/libhashbrown.rlib obj/build/rust/std/lib/liblibc.rlib obj/build/rust/std/lib/libpanic_abort.rlib obj/build/rust/std/lib/libpanic_unwind.rlib obj/build/rust/std/lib/librustc_demangle.rlib obj/build/rust/std/lib/libstd_detect.rlib obj/build/rust/std/lib/libtest.rlib obj/build/rust/std/lib/libunicode_width.rlib obj/build/rust/std/lib/libunwind.rlib obj/build/rust/std/lib/libaddr2line.rlib obj/build/rust/std/lib/libadler.rlib obj/build/rust/std/lib/libgimli.rlib obj/build/rust/std/lib/libmemchr.rlib obj/build/rust/std/lib/libminiz_oxide.rlib obj/build/rust/std/lib/libobject.rlib obj/build/rust/std/lib/librustc_std_workspace_alloc.rlib obj/build/rust/std/lib/librustc_std_workspace_core.rlib obj/build/rust/std/lib/librustc_std_workspace_std.rlib
| python3 ../../build/rust/std/find_std_rlibs.py --rust-bin-dir ../../../recipe-sysroot-native/usr/bin --output obj/build/rust/std --depfile obj/build/rust/std/stdlib.d --depfile-target std --rustc-revision custom --target x86_64-oe-linux-gnu
| Traceback (most recent call last):
|   File "/home/zozo/test-yocto-4.3-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/121.0.6167.184/chromium-121.0.6167.184/out/Release/../../build/rust/std/find_std_rlibs.py", line 139, in <module>
|     sys.exit(main())
|              ^^^^^^
|   File "/home/zozo/test-yocto-4.3-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/121.0.6167.184/chromium-121.0.6167.184/out/Release/../../build/rust/std/find_std_rlibs.py", line 104, in main
|     (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 2)
|                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| AttributeError: 'NoneType' object has no attribute 'group'

Now, there is x86_64-oe-linux-gnu but under recipe-sysroot, not under recipe-sysroot-native.

There (only quoting for nanbield now), the directory contents are:

# ls -l recipe-sysroot/usr/lib/rustlib/x86_64-oe-linux-gnu/lib/
total 325600
-rw-r--r--. 7 1000 1001   447568 Mar 21 14:14 libaddr2line-8ee04509bdfa6c32.rlib
-rw-r--r--. 7 1000 1001   388553 Mar 21 14:14 libaddr2line-8ee04509bdfa6c32.rmeta
-rw-r--r--. 4 1000 1001   453950 Mar 21 15:04 libaddr2line-b8d38b5ca6d623bc.rlib
-rw-r--r--. 7 1000 1001    62662 Mar 21 14:14 libadler-25833250bd0fb87d.rlib
-rw-r--r--. 7 1000 1001    24424 Mar 21 14:14 libadler-25833250bd0fb87d.rmeta
-rw-r--r--. 4 1000 1001    63478 Mar 21 15:04 libadler-abf4cc27738d91f2.rlib
-rw-r--r--. 7 1000 1001  6677676 Mar 21 14:14 liballoc-962ed5c419e54757.rlib
-rw-r--r--. 7 1000 1001  6282573 Mar 21 14:14 liballoc-962ed5c419e54757.rmeta
-rw-r--r--. 4 1000 1001  6677654 Mar 21 15:04 liballoc-eac0374294c89096.rlib
-rw-r--r--. 4 1000 1001     9574 Mar 21 15:04 libcfg_if-1d962b866acc8146.rlib
-rw-r--r--. 7 1000 1001     9350 Mar 21 14:14 libcfg_if-97fdae058a5fc559.rlib
-rw-r--r--. 7 1000 1001     6260 Mar 21 14:14 libcfg_if-97fdae058a5fc559.rmeta
-rw-r--r--. 4 1000 1001  1826322 Mar 21 15:04 libcompiler_builtins-1652bf19f06e0dbc.rlib
-rw-r--r--. 7 1000 1001  1511162 Mar 21 14:14 libcompiler_builtins-682708efb490797e.rlib
-rw-r--r--. 7 1000 1001   773825 Mar 21 14:14 libcompiler_builtins-682708efb490797e.rmeta
-rw-r--r--. 4 1000 1001 58509462 Mar 21 15:04 libcore-b7dcf9cb4b640a62.rlib
-rw-r--r--. 7 1000 1001 58514932 Mar 21 14:14 libcore-fb2a57c37364b509.rlib
-rw-r--r--. 7 1000 1001 56092401 Mar 21 14:14 libcore-fb2a57c37364b509.rmeta
-rw-r--r--. 7 1000 1001   694154 Mar 21 14:14 libgetopts-b46ba0786ad8776a.rlib
-rw-r--r--. 7 1000 1001   248473 Mar 21 14:14 libgetopts-b46ba0786ad8776a.rmeta
-rw-r--r--. 4 1000 1001   697642 Mar 21 15:04 libgetopts-bbd1d9088a5338d6.rlib
-rw-r--r--. 7 1000 1001  7019134 Mar 21 14:14 libgimli-506b3c36d5272748.rlib
-rw-r--r--. 7 1000 1001  5708075 Mar 21 14:14 libgimli-506b3c36d5272748.rmeta
-rw-r--r--. 4 1000 1001  7120042 Mar 21 15:04 libgimli-d773cf3bbafa5abd.rlib
-rw-r--r--. 7 1000 1001  1594568 Mar 21 14:14 libhashbrown-9801db76c7781ecb.rlib
-rw-r--r--. 7 1000 1001  1576452 Mar 21 14:14 libhashbrown-9801db76c7781ecb.rmeta
-rw-r--r--. 4 1000 1001  1615608 Mar 21 15:04 libhashbrown-c43ac0a3d6e50df6.rlib
-rw-r--r--. 7 1000 1001  3573594 Mar 21 14:14 liblibc-9a1a414be11f8ae9.rlib
-rw-r--r--. 7 1000 1001  3393925 Mar 21 14:14 liblibc-9a1a414be11f8ae9.rmeta
-rw-r--r--. 4 1000 1001  3685178 Mar 21 15:04 liblibc-bcca942e5c6d70a2.rlib
-rw-r--r--. 7 1000 1001  1326742 Mar 21 14:14 libmemchr-74466a117676db54.rlib
-rw-r--r--. 7 1000 1001  1014972 Mar 21 14:14 libmemchr-74466a117676db54.rmeta
-rw-r--r--. 4 1000 1001  1336300 Mar 21 15:04 libmemchr-d71ac377996c943b.rlib
-rw-r--r--. 4 1000 1001   990578 Mar 21 15:04 libminiz_oxide-10e5dad160a37250.rlib
-rw-r--r--. 7 1000 1001   978294 Mar 21 14:14 libminiz_oxide-9e2e83cdfe2b4e72.rlib
-rw-r--r--. 7 1000 1001   527498 Mar 21 14:14 libminiz_oxide-9e2e83cdfe2b4e72.rmeta
-rw-r--r--. 4 1000 1001  8683598 Mar 21 15:04 libobject-b38ca6f256c35b09.rlib
-rw-r--r--. 7 1000 1001  8511116 Mar 21 14:14 libobject-e737b1e4c83e68e1.rlib
-rw-r--r--. 7 1000 1001  7522503 Mar 21 14:14 libobject-e737b1e4c83e68e1.rmeta
-rw-r--r--. 7 1000 1001    10892 Mar 21 14:14 libpanic_abort-451cc9721852ada2.rlib
-rw-r--r--. 7 1000 1001     3435 Mar 21 14:14 libpanic_abort-451cc9721852ada2.rmeta
-rw-r--r--. 4 1000 1001     9644 Mar 21 15:04 libpanic_abort-6853e81de14016c1.rlib
-rw-r--r--. 7 1000 1001    32606 Mar 21 14:14 libpanic_unwind-13ccdf590a74e577.rlib
-rw-r--r--. 7 1000 1001     9992 Mar 21 14:14 libpanic_unwind-13ccdf590a74e577.rmeta
-rw-r--r--. 4 1000 1001    32782 Mar 21 15:04 libpanic_unwind-b66b170ab6351f0f.rlib
-rw-r--r--. 7 1000 1001  4039194 Mar 21 14:14 libproc_macro-0913d3aa763f0f83.rlib
-rw-r--r--. 7 1000 1001  1862261 Mar 21 14:14 libproc_macro-0913d3aa763f0f83.rmeta
-rw-r--r--. 4 1000 1001  4039340 Mar 21 15:04 libproc_macro-fddbb7cd547a33e1.rlib
-rw-r--r--. 4 1000 1001   414394 Mar 21 15:04 libprofiler_builtins-79512a76a864e69b.rlib
-rw-r--r--. 4 1000 1001   558720 Mar 21 15:04 librustc_demangle-2787b685e2edbabf.rlib
-rw-r--r--. 7 1000 1001   556022 Mar 21 14:14 librustc_demangle-dc0006e2db1b804a.rlib
-rw-r--r--. 7 1000 1001   227544 Mar 21 14:14 librustc_demangle-dc0006e2db1b804a.rmeta
-rw-r--r--. 7 1000 1001     4980 Mar 21 14:14 librustc_std_workspace_alloc-593585fda9cf113e.rlib
-rw-r--r--. 7 1000 1001     1789 Mar 21 14:14 librustc_std_workspace_alloc-593585fda9cf113e.rmeta
-rw-r--r--. 4 1000 1001     5172 Mar 21 15:04 librustc_std_workspace_alloc-a9ea4f89594bc4ad.rlib
-rw-r--r--. 7 1000 1001     6794 Mar 21 14:14 librustc_std_workspace_core-3c6e23a841933792.rlib
-rw-r--r--. 7 1000 1001     3621 Mar 21 14:14 librustc_std_workspace_core-3c6e23a841933792.rmeta
-rw-r--r--. 4 1000 1001     6986 Mar 21 15:04 librustc_std_workspace_core-8a8ed05c8a58baf0.rlib
-rw-r--r--. 4 1000 1001     8568 Mar 21 15:04 librustc_std_workspace_std-afcb3739af0fbd90.rlib
-rw-r--r--. 7 1000 1001     8360 Mar 21 14:14 librustc_std_workspace_std-d61a050d2873a6cf.rlib
-rw-r--r--. 7 1000 1001     5187 Mar 21 14:14 librustc_std_workspace_std-d61a050d2873a6cf.rmeta
-rw-r--r--. 4 1000 1001 13855786 Mar 21 15:04 libstd-7524cbe83be95dda.rlib
-rwxr-xr-x. 3 1000 1001  5772160 Mar 21 15:04 libstd-7524cbe83be95dda.so
-rw-r--r--. 7 1000 1001   512168 Mar 21 14:14 libstd_detect-03ce12b1636a0262.rlib
-rw-r--r--. 7 1000 1001   467177 Mar 21 14:14 libstd_detect-03ce12b1636a0262.rmeta
-rw-r--r--. 4 1000 1001   512280 Mar 21 15:04 libstd_detect-43851b7c19b5d4f8.rlib
-rw-r--r--. 7 1000 1001 13855272 Mar 21 14:14 libstd.rlib
-rwxr-xr-x. 6 1000 1001  5771112 Mar 21 14:14 libstd.so
-rw-r--r--. 4 1000 1001  4838534 Mar 21 15:04 libtest-78cdce7a40db8da5.rlib
-rwxr-xr-x. 3 1000 1001  1215888 Mar 21 15:04 libtest-78cdce7a40db8da5.so
-rw-r--r--. 7 1000 1001  4840234 Mar 21 14:14 libtest.rlib
-rwxr-xr-x. 6 1000 1001  3018848 Mar 21 14:14 libtest.so
-rw-r--r--. 7 1000 1001   143720 Mar 21 14:14 libunicode_width-94c2df26c937531a.rlib
-rw-r--r--. 7 1000 1001   126325 Mar 21 14:14 libunicode_width-94c2df26c937531a.rmeta
-rw-r--r--. 4 1000 1001   144296 Mar 21 15:04 libunicode_width-a6178fb168c0a0d7.rlib
-rw-r--r--. 4 1000 1001    45208 Mar 21 15:04 libunwind-74d673a682db49a1.rlib
-rw-r--r--. 7 1000 1001    45040 Mar 21 14:14 libunwind-78f011020e29e916.rlib
-rw-r--r--. 7 1000 1001    35695 Mar 21 14:14 libunwind-78f011020e29e916.rmeta
drwxr-xr-x. 2 1000 1001     4096 Mar 21 16:34 self-contained

EDIT: All of the above was done with the proposed patch added manually:

zozo@localhost:~/test-yocto-4.3-gh/layers/meta-browser$ git diff
diff --git a/meta-chromium/recipes-browser/chromium/rust_%.bbappend b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
index d103e69..1e139f3 100644
--- a/meta-chromium/recipes-browser/chromium/rust_%.bbappend
+++ b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
@@ -16,6 +16,12 @@ rust_do_install:class-target:append() {
     tar -C _dist -xf build/dist/rust-std-${PV}-${RUST_TARGET_SYS}.tar.xz $rlib_path

     target_dir=${D}${libdir}/rustlib
+
+    # If we're not cross-compiling, target_dir might already be populated, but
+    # not with the contents we want. See
+    # https://github.com/OSSystems/meta-browser/issues/792.
+    rm -rf $target_dir
+
     install -d $target_dir
     cp -r _dist/$rlib_path/${RUST_TARGET_SYS} $target_dir
     rm -rf _dist
rjanani-p commented 3 months ago

@MaxIhlenfeldt , I am getting build issue for internal master branch (branch having the latest meta-browser master branch all the commits), sharing the build log for reference

ERROR: chromium-x11-121.0.6167.184-r0 do_copy_target_rustlibs: ExecutionError('lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/temp/run.do_copy_target_rustlibs.710741', 1, None, None) ERROR: Logfile of failure stored in: /lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/temp/log.do_copy_target_rustlibs.710741 Log data follows: | DEBUG: Executing shell function do_copy_target_rustlibs | cp: cannot stat '/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/recipe-sysroot/usr/lib/rustlib/x86_64*': No such file or directory**** | WARNING:/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/temp/run.do_copy_target_rustlibs.710741:149 exit 1 from 'cp -r $rustlib_src_dir "/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/recipe-sysroot-native/usr/lib/rustlib"' | WARNING: Backtrace (BB generated script): | #1: do_copy_target_rustlibs, /lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/temp/run.do_copy_target_rustlibs.710741, line 149 | #2: main,/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/temp/run.do_copy_target_rustlibs.710741, line 152

sharing the recipe-sysroot-native/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/ contents too, could you please suggest how to resolve the issue ls -l recipe-sysroot-native/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/ total 105604 -rw-r--r-- 5 users 457828 Mar 26 13:01 libaddr2line-13b90ddabcfcdff7.rlib -rw-r--r-- 5 users 34612 Mar 26 13:01 libadler-c41e85cdd0e0dfff.rlib -rw-r--r-- 5 users 6289116 Mar 26 13:01 liballoc-bc9174b398261284.rlib -rw-r--r-- 5 users 10478 Mar 26 13:01 libcfg_if-6771b1ae9cbfc2c9.rlib -rw-r--r-- 5 users 1394422 Mar 26 13:01 libcompiler_builtins-e8cdafc9faa29ecd.rlib -rw-r--r-- 5 users 47318932 Mar 26 13:01 libcore-baa5449bbf3e5ae7.rlib -rw-r--r-- 5 users 474364 Mar 26 13:01 libgetopts-b24eeb95e8a36a72.rlib -rw-r--r-- 5 users 6120184 Mar 26 13:01 libgimli-d24d3e21c4b6d183.rlib -rw-r--r-- 5 users 1614906 Mar 26 13:01 libhashbrown-67ad1ad36ffec836.rlib -rw-r--r-- 5 users 3409146 Mar 26 13:01 liblibc-84992ee57e15ddc0.rlib -rw-r--r-- 5 users 872422 Mar 26 13:01 libmemchr-4ff2a73349a27351.rlib -rw-r--r-- 5 users 327174 Mar 26 13:01 libminiz_oxide-0f5ce74ab0128e5b.rlib -rw-r--r-- 5 users 7999318 Mar 26 13:01 libobject-45b585256bbdad6f.rlib -rw-r--r-- 5 users 10020 Mar 26 13:01 libpanic_abort-a818357d2c99a5c1.rlib -rw-r--r-- 5 users 23150 Mar 26 13:01 libpanic_unwind-56ffc7344a3fa9ec.rlib -rw-r--r-- 5 users 3393222 Mar 26 13:01 libproc_macro-897be83c186b3211.rlib -rw-r--r-- 5 users 379940 Mar 26 13:01 librustc_demangle-09fdf503f250d6a7.rlib -rw-r--r-- 5 users 5900 Mar 26 13:01 librustc_std_workspace_alloc-ab6e54dadf25bfd1.rlib -rw-r--r-- 5 users 8658 Mar 26 13:01 librustc_std_workspace_core-ce683bfa6346b7ff.rlib -rw-r--r-- 5 users 10432 Mar 26 13:01 librustc_std_workspace_std-e165636351474423.rlib -rw-r--r-- 5 users 12502812 Mar 26 13:01 libstd-64729a5a222c378b.rlib -rwxr-xr-x 4 users 9211704 Mar 26 13:01 libstd-64729a5a222c378b.so -rw-r--r-- 5 users 433536 Mar 26 13:01 libstd_detect-4c6d792e86d76f74.rlib -rw-r--r-- 5 users 5808 Mar 26 13:01 libsysroot-5e30f112053f646e.rlib -rw-r--r-- 5 users 4093024 Mar 26 13:01 libtest-2571735223127832.rlib -rwxr-xr-x 4 users 1493224 Mar 26 13:01 libtest-2571735223127832.so -rw-r--r-- 5 users 150344 Mar 26 13:01 libunicode_width-a4de7578f009194a.rlib -rw-r--r-- 5 users 41702 Mar 26 13:01 libunwind-b9b23c28f438e60f.rlib

MaxIhlenfeldt commented 3 months ago

Could both of you please upload the output of bitbake -e chromium-x11 to e.g. https://pastebin.com/ and paste the link here?

zboszor commented 3 months ago

Pastebin limit is 512KB, the bitbake -e output is over 2MB in my case. Attached as gzipped here instead. chromium-x11-vars.txt.gz

MaxIhlenfeldt commented 3 months ago

Thanks! That's helpful, but I'm still not fully sure what's going on. Could you please also attach the output of bitbake -e rust as well as the contents of temp/run.do_install for the rust recipe?

zboszor commented 3 months ago

Here they are. rust-vars.txt.gz log.do_install.gz

rjanani-p commented 3 months ago

Could both of you please upload the output of bitbake -e chromium-x11 to e.g. https://pastebin.com/ and paste the link here?

chromium-x11.txt could you please share your inputs, I have observed issue with qemux86-64,qemuarm64 targets , not facing with qemuarm.

MaxIhlenfeldt commented 3 months ago

Thank you both! I'm still not really sure what the problem is. Do you maybe have a repo manifest you can share with me, together with all your local .conf files, so I can replicate your setup as close as possible?

zboszor commented 3 months ago

Not sure if this influences anything, but I also have this bbappend:

$ cat chromium-x11_%.bbappend 
PACKAGECONFIG:remove = "use-egl"
PACKAGECONFIG:append:class-target = " gtk4 proprietary-codecs cups use-vaapi "

DEPENDS:append = " wayland-protocols wayland"

RDEPENDS:${PN}:append = " gtk4-printbackend-cups "
zboszor commented 3 months ago

FWIW, the same issue occurs with Yocto 5.0 Scarthgap for us.

I can't share the whole set of layers from our manifest, as some of them are internal layers. In our internal layers, there is no bbappend against llvm, clang, rust or rust-llvm. Here's the public part of default.xml:

<manifest>
  <remote fetch="https://github.com" name="github"/>
  <remote fetch="http://git.linaro.org" name="linaro"/>
  <remote fetch="git://git.openembedded.org" name="oe"/>
  <remote fetch="http://git.yoctoproject.org/git" name="yocto"/>

  <default revision="scarthgap" sync-j="4"/>

  <project name="OSSystems/meta-browser" path="layers/meta-browser" remote="github" revision="master" />
  <project name="zboszor/meta-parallel-php" path="layers/meta-parallel-php" remote="github" />
  <project name="agherzan/meta-raspberrypi" path="layers/meta-raspberrypi" remote="github" revision="master" />
  <project name="kraj/meta-clang" path="layers/meta-clang" remote="github" revision="master" />
  <project name="meta-intel" path="layers/meta-intel" remote="yocto" />
  <project name="meta-security" path="layers/meta-security" remote="yocto" revision="master" />
  <project name="meta-yocto" path="layers/meta-yocto" remote="yocto"  />
  <project name="lucimber/meta-openjdk-temurin" path="layers/meta-openjdk-temurin" remote="github" revision="main" />
  <project name="meta-virtualization" path="layers/meta-virtualization" remote="yocto" />
  <project name="meta-cloud-services" path="layers/meta-cloud-services" remote="yocto" />
  <project name="openembedded/bitbake" path="bitbake" remote="github" revision="2.8"/>
  <project name="openembedded/meta-openembedded" path="layers/meta-openembedded" remote="github"/>
  <project name="openembedded/openembedded-core" path="layers/openembedded-core" remote="github"/>
  <project name="DynamicDevices/meta-mono" path="layers/meta-mono" remote="github" revision="master" />
  <project name="dimtass/meta-elastic-beats" path="layers/meta-elastic-beats" remote="github" revision="master"/>
  <project name="zboszor/meta-python-ai" path="layers/meta-python-ai" remote="github" />
</manifest>

Some of these layers are not officially scarthgap compatible yet. For them, the layer compatibility setting in conf/layer.conf is manually changed and nothing else.

MaxIhlenfeldt commented 3 months ago

Thanks, I've kicked off a build that should be as close as possible as yours. Let's see whether I'll now get the error as well :crossed_fingers:

fyi, I'll be ooo for the rest of the week, but I'll get back to this next week.

MaxIhlenfeldt commented 3 months ago

Hm, I get this error:

ERROR: chromium-x11-122.0.6261.128-r0 do_prepare_recipe_sysroot: The file /usr/bin/llvm-split is installed by both llvm-native and clang-native, aborting

Any idea what the difference between your setup and mine could be that leads to this, @zboszor?

zboszor commented 2 months ago

Hm, I get this error:

ERROR: chromium-x11-122.0.6261.128-r0 do_prepare_recipe_sysroot: The file /usr/bin/llvm-split is installed by both llvm-native and clang-native, aborting

Any idea what the difference between your setup and mine could be that leads to this, @zboszor?

It's documented in meta-clang. To replace llvm with clang, you must have these in your local configuration:

PREFERRED_PROVIDER_llvm = "clang"
PREFERRED_PROVIDER_llvm-native = "clang-native"
PREFERRED_PROVIDER_nativesdk-llvm = "nativesdk-clang"
PROVIDES:pn-clang = "llvm"
PROVIDES:pn-clang-native = "llvm-native"
PROVIDES:pn-nativesdk-clang = "nativesdk-llvm"
MaxIhlenfeldt commented 2 months ago

Ok, I've finally been able to reproduce it. I suspect that due to the gtk4 config in your chromium-x11_%.bbappend:

PACKAGECONFIG:append:class-target = " gtk4 proprietary-codecs cups use-vaapi "

Chromium gets a new (transitive) dependency on librsvg, which uses Rust and depends on libstd-rs. Thus, we get the files from that in our sysroot even though we try to avoid it in our rust_%.bbappend.

i.e. our approach breaks as soon as we have anything inheriting the rust class (which inherits the rust-common class, which contains RUSTLIB_DEP ?= "libstd-rs"). Didn't think of that when writing that PR :sweat_smile:

I think we might be able to drop our custom rust_do_install logic, since we've decided in #791 to not require libprofiler_builtins. We could instead just patch Chromium to accept .rlib files without a metadata hash in the filename and should then be able to use the regular libstd-rs dependency.

I'll give the approach outlined above a try and will report back here.

rjanani-p commented 2 months ago

hi @MaxIhlenfeldt , above changes will fix my issue? DEBUG: Executing shell function do_copy_target_rustlibs | cp: cannot stat '/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/recipe-sysroot/usr/lib/rustlib/x86_64': No such file or directory*

MaxIhlenfeldt commented 2 months ago

@rjanani-p I'm still working on the fix, the PACKAGECONFIG changes I mentioned in my last comment were only needed for me to reproduce the issue.

rjanani-p commented 2 months ago

@MaxIhlenfeldt , regarding DEBUG: Executing shell function do_copy_target_rustlibs | cp: cannot stat '/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/recipe-sysroot/usr/lib/rustlib/x86_64': No such file or directory*

I am getting above issue for 122.0.6261.128 version also for qemux86-64, intel-x86-64, qemuarm64 machines. Here I am sharing the config files, could you please share your input to reproduce the issue files are sufficient? need to provide any files? bblayers.txt local.txt

MaxIhlenfeldt commented 2 months ago

Sorry for the delay, but I think I've finally come up with a patch that should fix this issue.

Can you please apply the following patch to meta-chromium and try if it works for you as well?

Note: please make sure the patch from https://github.com/OSSystems/meta-browser/issues/792#issuecomment-1997533575 is not applied, I don't think it's actually needed.

From 1de92536897fd90f54b0f264340426e0f5b8de29 Mon Sep 17 00:00:00 2001
From: Max Ihlenfeldt <max@igalia.com>
Date: Tue, 7 May 2024 14:10:26 +0000
Subject: [PATCH] chromium: Depend on libstd-rs instead of rust

---
 .../recipes-browser/chromium/chromium-gn.inc  |  2 +-
 ...9-Adjust-the-Rust-build-to-our-needs.patch | 30 +++++++++++++++----
 .../chromium/libstd-rs_%.bbappend             |  9 ++++++
 .../recipes-browser/chromium/rust_%.bbappend  | 19 ------------
 4 files changed, 34 insertions(+), 26 deletions(-)
 create mode 100644 meta-chromium/recipes-browser/chromium/libstd-rs_%.bbappend

diff --git a/meta-chromium/recipes-browser/chromium/chromium-gn.inc b/meta-chromium/recipes-browser/chromium/chromium-gn.inc
index f88140c0..82248d6c 100644
--- a/meta-chromium/recipes-browser/chromium/chromium-gn.inc
+++ b/meta-chromium/recipes-browser/chromium/chromium-gn.inc
@@ -72,6 +72,7 @@ DEPENDS += " \
     jpeg \
     libdrm \
     libffi \
+    libstd-rs \
     libwebp \
     libxkbcommon \
     libxslt \
@@ -86,7 +87,6 @@ DEPENDS += " \
     pkgconfig-native \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
     qemu-native \
-    rust \
     rust-native \
     virtual/libgl \
 "
diff --git a/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch b/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch
index c730de22..6a39defa 100644
--- a/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch
+++ b/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch
@@ -19,11 +19,11 @@ Signed-off-by: Max Ihlenfeldt <max@igalia.com>
  build/config/rust.gni            | 24 +++++++++++++++++------
  build/rust/rustc_wrapper.py      |  1 +
  build/rust/std/BUILD.gn          | 33 ++++++++++++++++++++++++--------
- build/rust/std/find_std_rlibs.py | 13 ++++++++++---
- 4 files changed, 54 insertions(+), 17 deletions(-)
+ build/rust/std/find_std_rlibs.py | 17 +++++++++++-----
+ 4 files changed, 56 insertions(+), 19 deletions(-)

 diff --git a/build/config/rust.gni b/build/config/rust.gni
-index e98d913..6213b72 100644
+index e98d9139f65a9..6213b728e6d70 100644
 --- a/build/config/rust.gni
 +++ b/build/config/rust.gni
 @@ -87,6 +87,11 @@ declare_args() {
@@ -79,7 +79,7 @@ index e98d913..6213b72 100644
  } else if (is_android) {
    import("//build/config/android/abi.gni")
 diff --git a/build/rust/rustc_wrapper.py b/build/rust/rustc_wrapper.py
-index b8e490d..d22cf08 100755
+index b8e490da27f2d..d22cf08aadf1d 100755
 --- a/build/rust/rustc_wrapper.py
 +++ b/build/rust/rustc_wrapper.py
 @@ -160,6 +160,7 @@ def main():
@@ -91,7 +91,7 @@ index b8e490d..d22cf08 100755
    abs_build_root = os.getcwd().replace('\\', '/') + '/'
    is_windows = sys.platform == 'win32' or args.target_windows
 diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn
-index 77f4b8c..8a25798 100644
+index 77f4b8c38d76f..8a25798f9158d 100644
 --- a/build/rust/std/BUILD.gn
 +++ b/build/rust/std/BUILD.gn
 @@ -188,7 +188,8 @@ if (toolchain_has_rust) {
@@ -166,9 +166,18 @@ index 77f4b8c..8a25798 100644
        # The host builds tools toolchain supports Rust only and does not use
        # the allocator remapping to point it to PartitionAlloc.
 diff --git a/build/rust/std/find_std_rlibs.py b/build/rust/std/find_std_rlibs.py
-index 386258f..25fdedc 100755
+index 386258f890c01..3bb6a41a40c56 100755
 --- a/build/rust/std/find_std_rlibs.py
 +++ b/build/rust/std/find_std_rlibs.py
+@@ -17,7 +17,7 @@ import re
+ from collections import defaultdict
+
+ EXPECTED_STDLIB_INPUT_REGEX = re.compile(r"([0-9a-z_]+)(?:-([0-9]+))?$")
+-RLIB_NAME_REGEX = re.compile(r"lib([0-9a-z_]+)-([0-9a-f]+)\.rlib$")
++RLIB_NAME_REGEX = re.compile(r"lib([0-9a-z_]+)(-([0-9a-f]+))?\.rlib$")
+
+
+ def main():
 @@ -52,6 +52,8 @@ def main():
      rustc_args.extend(["--target", args.target])
    rustlib_dir = subprocess.check_output(rustc_args).rstrip().decode()
@@ -187,6 +196,15 @@ index 386258f..25fdedc 100755

      def copy_file(infile, outfile):
        depfile.write(f" {infile}")
+@@ -99,7 +101,7 @@ def main():
+       # the correct file path to our linker invocations, we don't need
+       # that, and it would prevent us having the predictable filenames
+       # which we need for statically computable gn dependency rules.
+-      (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 2)
++      (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 3)
+
+       # Use the number of times we've seen this name to disambiguate the output
+       # filenames. Since we sort the input filenames including the metadata,
 @@ -117,14 +119,19 @@ def main():
        output_filename = f"lib{concise_name}.rlib"

diff --git a/meta-chromium/recipes-browser/chromium/libstd-rs_%.bbappend b/meta-chromium/recipes-browser/chromium/libstd-rs_%.bbappend
new file mode 100644
index 00000000..0e23118c
--- /dev/null
+++ b/meta-chromium/recipes-browser/chromium/libstd-rs_%.bbappend
@@ -0,0 +1,9 @@
+FILES:${PN} += "${libdir}/rustlib/*/target.json"
+
+# Without this, rustc fails with "could not find specification for target ...".
+do_install:append() {
+    target_dir=`realpath ${D}${rustlibdir}/..`
+    target_triple=`basename ${target_dir}`
+    target_json="${target_dir}/target.json"
+    RUSTC_BOOTSTRAP=1 rustc -Z unstable-options --print target-spec-json --target "${target_triple}" > "${target_json}"
+}
diff --git a/meta-chromium/recipes-browser/chromium/rust_%.bbappend b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
index d103e69b..ec07b30d 100644
--- a/meta-chromium/recipes-browser/chromium/rust_%.bbappend
+++ b/meta-chromium/recipes-browser/chromium/rust_%.bbappend
@@ -5,22 +5,3 @@
 rust_do_install:append() {
     install -m 0644 ${WORKDIR}/rust-targets/${RUST_TARGET_SYS}.json ${D}${libdir}/rustlib/${RUST_TARGET_SYS}/target.json
 }
-
-# This makes sure that all .rlib files that Chromium needs get installed. The
-# libraries installed by libstd-rs don't include e.g. libprofiler_builtins.
-# Additionally, libstd and libtest installed by libstd-rs don't follow the usual
-# naming scheme, which would trip up Chromium.
-rust_do_install:class-target:append() {
-    mkdir -p _dist
-    rlib_path="rust-std-${PV}-${RUST_TARGET_SYS}/rust-std-${RUST_TARGET_SYS}/lib/rustlib"
-    tar -C _dist -xf build/dist/rust-std-${PV}-${RUST_TARGET_SYS}.tar.xz $rlib_path
-
-    target_dir=${D}${libdir}/rustlib
-    install -d $target_dir
-    cp -r _dist/$rlib_path/${RUST_TARGET_SYS} $target_dir
-    rm -rf _dist
-}
-
-# Override the default dependency on libstd-rs, as we copy the libraries
-# manually above.
-RUSTLIB_DEP = ""
MaxIhlenfeldt commented 2 months ago

Also, depending on how recent your checkout is, you might see a ninja error on Yocto master. If that occurs, backporting https://chromium-review.googlesource.com/c/chromium/src/+/5522398 should fix it. I'll upload a separate PR for that tomorrow.

MaxIhlenfeldt commented 2 months ago

PR for the master fix is up already at https://github.com/OSSystems/meta-browser/pull/808.

zboszor commented 2 months ago

Thank you very much, I will try your patch soon.

zboszor commented 2 months ago

I have tried it under mickledore first (after re-enabling mickledore support in meta-browser master).

An unrelated build error occurred:

| FAILED: obj/base/allocator/partition_allocator/src/partition_alloc/allocator_core/lightweight_quarantine.o
| x86_64-oe-linux-clang++ -target x86_64-oe-linux  -m64 -march=nehalem -mtune=generic -mfpmath=sse -msse4.2 -mlittle-endian --dyld-prefix=/usr -Qunused-arguments -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/recipe-sysroot -MMD -MF obj/base/allocator/partition_allocator/src/partition_alloc/allocator_core/lightweight_quarantine.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DIS_PARTITION_ALLOC_IMPL -I../.. -Igen -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -Wall -Wextra -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-unknown-warning-option -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -msse3 -ffile-compilation-dir=. -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -O3 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -Wc++11-narrowing -Wconditional-uninitialized -Wcstring-format-directive -Wctad-maybe-unsupported -Wdeprecated-copy -Wdeprecated-copy-dtor -Wduplicate-enum -Wextra-semi -Wextra-semi-stmt -Wimplicit-fallthrough -Winconsistent-missing-destructor-override -Winvalid-offsetof -Wmissing-field-initializers -Wnon-c-typedef-for-linkage -Wpessimizing-move -Wrange-loop-analysis -Wredundant-move -Wshadow-field -Wstrict-prototypes -Wsuggest-destructor-override -Wsuggest-override -Wtautological-unsigned-zero-compare -Wunreachable-code-aggressive -Wunused-but-set-variable -Wunused-macros -pedantic -Wno-c++11-narrowing-const-reference -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -O2 -pipe  -feliminate-unused-debug-types -fmacro-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/chromium-122.0.6261.128=/usr/src/debug/chromium-x11/122.0.6261.128-r0  -fdebug-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/chromium-122.0.6261.128=/usr/src/debug/chromium-x11/122.0.6261.128-r0  -fmacro-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/chromium-122.0.6261.128/out/Release=/usr/src/debug/chromium-x11/122.0.6261.128-r0  -fdebug-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/chromium-122.0.6261.128/out/Release=/usr/src/debug/chromium-x11/122.0.6261.128-r0  -fdebug-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/recipe-sysroot=  -fmacro-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/recipe-sysroot=  -fdebug-prefix-map=/home/zozo/test-yocto-4.2-gh/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128-r0/recipe-sysroot-native= -g1 -fvisibility-inlines-hidden -stdlib=libc++ -c ../../base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc -o obj/base/allocator/partition_allocator/src/partition_alloc/allocator_core/lightweight_quarantine.o
| In file included from ../../base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc:7:
| ../../base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h:29:1: error: missing 'typename' prior to dependent type name 'InternalAllocator<T>::value_type'
| InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| typename
| 1 error generated.

Since meta-browser master does not officially support mickledore, I will skip this and test it on nanbield and scarthgap.

MaxIhlenfeldt commented 2 months ago

Since meta-browser master does not officially support mickledore, I will skip this and test it on nanbield and scarthgap.

Yes, we had to drop support for mickledore as its version of clang was too old. It should work on both nanbield and scarthgap.

rjanani-p commented 2 months ago

@MaxIhlenfeldt ,regarding DEBUG: Executing shell function do_copy_target_rustlibs | cp: cannot stat '/lincd_chromium_121/tmp-glibc/work/core2-64-wrs-linux/chromium-x11/121.0.6167.184/recipe-sysroot/usr/lib/rustlib/x86_64': No such file or directory*

with below change my issue got resolved , do_copy_target_rustlibs () {

Chromium needs a single Rust sysroot that contains the rustlibs for both

 # the host and target, so we copy the target rustlibs to the native sysroot.

** the error will happen when multilib is enabled.

chromium_rust_build_issue_fix
MaxIhlenfeldt commented 2 months ago

@rjanani-p thanks for pointing that out. I'll fix it in a separate PR as we should also use the STAGING_* variables in the do_add_clang_symlink and do_copy_clang_library tasks.

zboszor commented 2 months ago

@MaxIhlenfeldt I will have the test result for nanbield in about 2-3 hours. Please wait until my build finishes and if possible, merge #809 before #806 so our nanbield builds can get chromium 122. Thanks in advance.

zboszor commented 2 months ago

@MaxIhlenfeldt My chromium build passed the point where the above quoted errors occurred. With a bit of luck, it finishes. FWIW, my Yocto setup does not use multilib.

zboszor commented 2 months ago

@MaxIhlenfeldt chromium-x11 has been built successfully on nanbield with your patch from https://github.com/OSSystems/meta-browser/issues/792#issuecomment-2098778290

zboszor commented 2 months ago

@MaxIhlenfeldt The scarthgap build failed with:

Sstate summary: Wanted 1227 Local 112 Mirrors 0 Missed 1115 Current 2395 (9% match, 69% complete)########################################################################################################                    | ETA:  0:00:00
Initialising tasks: 100% |###################################################################################################################################################################################################| Time: 0:00:05
NOTE: Executing Tasks
WARNING: systemd-1_255.4-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd
ERROR: chromium-x11-122.0.6261.128-r0 do_compile: ExecutionError('/home/zozo/test-yocto-5.0/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128/temp/run.do_compile.121841', 1, None, None)
ERROR: Logfile of failure stored in: /home/zozo/test-yocto-5.0/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128/temp/log.do_compile.121841
Log data follows:
| DEBUG: Executing shell function do_compile
| ninja: error: '../../../recipe-sysroot-native/usr/lib/clang/latest/lib/linux/libclang_rt.builtins-x86_64.a', needed by 'yocto_native/obj/third_party/protobuf/libprotoc_lib.a', missing and no known rule to make it
| WARNING: /home/zozo/test-yocto-5.0/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128/temp/run.do_compile.121841:147 exit 1 from 'ninja -v -j 16 -l 32 chrome chrome_sandbox chromedriver.unstripped'
| WARNING: Backtrace (BB generated script):
|   #1: do_compile, /home/zozo/test-yocto-5.0/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128/temp/run.do_compile.121841, line 147
|   #2: main, /home/zozo/test-yocto-5.0/tmp-sicom-glibc/work/corei7-64-oe-linux/chromium-x11/122.0.6261.128/temp/run.do_compile.121841, line 151
ERROR: Task (/home/zozo/test-yocto-5.0/conf/../layers/meta-browser/meta-chromium/recipes-browser/chromium/chromium-x11_122.0.6261.128.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 7747 tasks of which 5608 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 10 seconds
rjanani-p commented 2 months ago

@rjanani-p thanks for pointing that out. I'll fix it in a separate PR as we should also use the STAGING_* variables in the do_add_clang_symlink and do_copy_clang_library tasks.

sure @MaxIhlenfeldt , thank you

MaxIhlenfeldt commented 2 months ago

@MaxIhlenfeldt I will have the test result for nanbield in about 2-3 hours. Please wait until my build finishes and if possible, merge #809 before #806 so our nanbield builds can get chromium 122. Thanks in advance.

As usual, we'll create a nanbield branch once #806 has been merged. Should that happen before #809 is merged, we'll of course cherry-pick it to that branch. (Feel free to remind me or submit a PR yourself should I forget to do so.)

MaxIhlenfeldt commented 2 months ago

@MaxIhlenfeldt The scarthgap build failed with: ...

Hm, I didn't touch anything related to the clang setup... maybe it's related to the same issue @rjanani-p reported. Can you please try if the error still happens if you also apply the changes from #810?

If the error persists, please paste the output of ls -al recipe-sysroot-native/usr/lib/clang and tree recipe-sysroot-native/usr/lib/clang.

zboszor commented 2 months ago

810 fails the same way. Here's is the info you asked for:

chromium-x11/122.0.6261.128$ ls -l recipe-sysroot-native/usr/lib/clang
összesen 12
drwxr-xr-x. 3 zozo zozo 4096 ápr   22 12.38 18
drwxr-xr-x. 4 zozo zozo 4096 máj    9 12.23 18.1.3
drwxr-xr-x. 4 zozo zozo 4096 máj    9 09.53 18.1.5
lrwxrwxrwx. 1 zozo zozo    6 ápr   22 12.38 latest -> 18.1.3

and

chromium-x11/122.0.6261.128$ tree recipe-sysroot-native/usr/lib/clang
recipe-sysroot-native/usr/lib/clang
├── 18
│   └── include
│       ├── adcintrin.h
│       ├── adxintrin.h
│       ├── altivec.h
│       ├── ammintrin.h
│       ├── amxcomplexintrin.h
│       ├── amxfp16intrin.h
│       ├── amxintrin.h
│       ├── arm64intr.h
│       ├── arm_acle.h
│       ├── arm_bf16.h
│       ├── arm_cde.h
│       ├── arm_cmse.h
│       ├── arm_fp16.h
│       ├── armintr.h
│       ├── arm_mve.h
│       ├── arm_neon.h
│       ├── arm_neon_sve_bridge.h
│       ├── arm_sme.h
│       ├── arm_sve.h
│       ├── arm_vector_types.h
│       ├── avx2intrin.h
│       ├── avx512bf16intrin.h
│       ├── avx512bitalgintrin.h
│       ├── avx512bwintrin.h
│       ├── avx512cdintrin.h
│       ├── avx512dqintrin.h
│       ├── avx512erintrin.h
│       ├── avx512fintrin.h
│       ├── avx512fp16intrin.h
│       ├── avx512ifmaintrin.h
│       ├── avx512ifmavlintrin.h
│       ├── avx512pfintrin.h
│       ├── avx512vbmi2intrin.h
│       ├── avx512vbmiintrin.h
│       ├── avx512vbmivlintrin.h
│       ├── avx512vlbf16intrin.h
│       ├── avx512vlbitalgintrin.h
│       ├── avx512vlbwintrin.h
│       ├── avx512vlcdintrin.h
│       ├── avx512vldqintrin.h
│       ├── avx512vlfp16intrin.h
│       ├── avx512vlintrin.h
│       ├── avx512vlvbmi2intrin.h
│       ├── avx512vlvnniintrin.h
│       ├── avx512vlvp2intersectintrin.h
│       ├── avx512vnniintrin.h
│       ├── avx512vp2intersectintrin.h
│       ├── avx512vpopcntdqintrin.h
│       ├── avx512vpopcntdqvlintrin.h
│       ├── avxifmaintrin.h
│       ├── avxintrin.h
│       ├── avxneconvertintrin.h
│       ├── avxvnniint16intrin.h
│       ├── avxvnniint8intrin.h
│       ├── avxvnniintrin.h
│       ├── bmi2intrin.h
│       ├── bmiintrin.h
│       ├── builtins.h
│       ├── cet.h
│       ├── cetintrin.h
│       ├── __clang_cuda_builtin_vars.h
│       ├── __clang_cuda_cmath.h
│       ├── __clang_cuda_complex_builtins.h
│       ├── __clang_cuda_device_functions.h
│       ├── __clang_cuda_intrinsics.h
│       ├── __clang_cuda_libdevice_declares.h
│       ├── __clang_cuda_math_forward_declares.h
│       ├── __clang_cuda_math.h
│       ├── __clang_cuda_runtime_wrapper.h
│       ├── __clang_cuda_texture_intrinsics.h
│       ├── __clang_hip_cmath.h
│       ├── __clang_hip_libdevice_declares.h
│       ├── __clang_hip_math.h
│       ├── __clang_hip_runtime_wrapper.h
│       ├── __clang_hip_stdlib.h
│       ├── cldemoteintrin.h
│       ├── clflushoptintrin.h
│       ├── clwbintrin.h
│       ├── clzerointrin.h
│       ├── cmpccxaddintrin.h
│       ├── cpuid.h
│       ├── crc32intrin.h
│       ├── cuda_wrappers
│       │   ├── algorithm
│       │   ├── bits
│       │   │   ├── basic_string.h
│       │   │   ├── basic_string.tcc
│       │   │   └── shared_ptr_base.h
│       │   ├── cmath
│       │   ├── complex
│       │   └── new
│       ├── emmintrin.h
│       ├── enqcmdintrin.h
│       ├── f16cintrin.h
│       ├── float.h
│       ├── fma4intrin.h
│       ├── fmaintrin.h
│       ├── fxsrintrin.h
│       ├── gfniintrin.h
│       ├── hexagon_circ_brev_intrinsics.h
│       ├── hexagon_protos.h
│       ├── hexagon_types.h
│       ├── hresetintrin.h
│       ├── htmintrin.h
│       ├── htmxlintrin.h
│       ├── hvx_hexagon_protos.h
│       ├── ia32intrin.h
│       ├── immintrin.h
│       ├── intrin.h
│       ├── inttypes.h
│       ├── invpcidintrin.h
│       ├── iso646.h
│       ├── keylockerintrin.h
│       ├── larchintrin.h
│       ├── lasxintrin.h
│       ├── limits.h
│       ├── llvm_libc_wrappers
│       │   ├── assert.h
│       │   ├── ctype.h
│       │   ├── inttypes.h
│       │   ├── stdio.h
│       │   ├── stdlib.h
│       │   ├── string.h
│       │   └── time.h
│       ├── lsxintrin.h
│       ├── lwpintrin.h
│       ├── lzcntintrin.h
│       ├── mm3dnow.h
│       ├── mmintrin.h
│       ├── mm_malloc.h
│       ├── module.modulemap
│       ├── movdirintrin.h
│       ├── msa.h
│       ├── mwaitxintrin.h
│       ├── nmmintrin.h
│       ├── opencl-c-base.h
│       ├── opencl-c.h
│       ├── openmp_wrappers
│       │   ├── __clang_openmp_device_functions.h
│       │   ├── cmath
│       │   ├── complex
│       │   ├── complex_cmath.h
│       │   ├── complex.h
│       │   ├── math.h
│       │   └── new
│       ├── pconfigintrin.h
│       ├── pkuintrin.h
│       ├── pmmintrin.h
│       ├── popcntintrin.h
│       ├── ppc_wrappers
│       │   ├── bmi2intrin.h
│       │   ├── bmiintrin.h
│       │   ├── emmintrin.h
│       │   ├── immintrin.h
│       │   ├── mmintrin.h
│       │   ├── mm_malloc.h
│       │   ├── nmmintrin.h
│       │   ├── pmmintrin.h
│       │   ├── smmintrin.h
│       │   ├── tmmintrin.h
│       │   ├── x86gprintrin.h
│       │   ├── x86intrin.h
│       │   └── xmmintrin.h
│       ├── prfchiintrin.h
│       ├── prfchwintrin.h
│       ├── ptwriteintrin.h
│       ├── raointintrin.h
│       ├── rdpruintrin.h
│       ├── rdseedintrin.h
│       ├── riscv_bitmanip.h
│       ├── riscv_crypto.h
│       ├── riscv_ntlh.h
│       ├── riscv_vector.h
│       ├── rtmintrin.h
│       ├── s390intrin.h
│       ├── serializeintrin.h
│       ├── sgxintrin.h
│       ├── sha512intrin.h
│       ├── shaintrin.h
│       ├── sifive_vector.h
│       ├── sm3intrin.h
│       ├── sm4intrin.h
│       ├── smmintrin.h
│       ├── stdalign.h
│       ├── __stdarg___gnuc_va_list.h
│       ├── stdarg.h
│       ├── __stdarg_va_arg.h
│       ├── __stdarg___va_copy.h
│       ├── __stdarg_va_copy.h
│       ├── __stdarg_va_list.h
│       ├── stdatomic.h
│       ├── stdbool.h
│       ├── stdckdint.h
│       ├── stddef.h
│       ├── __stddef_max_align_t.h
│       ├── __stddef_null.h
│       ├── __stddef_nullptr_t.h
│       ├── __stddef_offsetof.h
│       ├── __stddef_ptrdiff_t.h
│       ├── __stddef_rsize_t.h
│       ├── __stddef_size_t.h
│       ├── __stddef_unreachable.h
│       ├── __stddef_wchar_t.h
│       ├── __stddef_wint_t.h
│       ├── stdint.h
│       ├── stdnoreturn.h
│       ├── tbmintrin.h
│       ├── tgmath.h
│       ├── tmmintrin.h
│       ├── tsxldtrkintrin.h
│       ├── uintrintrin.h
│       ├── unwind.h
│       ├── usermsrintrin.h
│       ├── vadefs.h
│       ├── vaesintrin.h
│       ├── varargs.h
│       ├── vecintrin.h
│       ├── velintrin_approx.h
│       ├── velintrin_gen.h
│       ├── velintrin.h
│       ├── vpclmulqdqintrin.h
│       ├── waitpkgintrin.h
│       ├── wasm_simd128.h
│       ├── wbnoinvdintrin.h
│       ├── __wmmintrin_aes.h
│       ├── wmmintrin.h
│       ├── __wmmintrin_pclmul.h
│       ├── x86gprintrin.h
│       ├── x86intrin.h
│       ├── xmmintrin.h
│       ├── xopintrin.h
│       ├── xsavecintrin.h
│       ├── xsaveintrin.h
│       ├── xsaveoptintrin.h
│       ├── xsavesintrin.h
│       └── xtestintrin.h
├── 18.1.3
│   ├── 18.1.3 -> 18.1.3
│   ├── 18.1.5 -> 18.1.5
│   ├── include
│   │   └── orc
│   └── lib
│       └── linux
├── 18.1.5
│   ├── include
│   │   └── orc
│   │       └── c_api.h
│   └── lib
│       └── linux
│           ├── libclang_rt.builtins-x86_64.a
│           └── liborc_rt-x86_64.a
└── latest -> 18.1.3

19 directories, 236 files
MaxIhlenfeldt commented 2 months ago

Thanks. I'm pretty sure this is #794. bitbake -c cleanall clang chromium-x11 and then rebuilding should fix the issue, sorry that I haven't gotten around to fix that yet.

zboszor commented 2 months ago

Thanks, I'll try, with cleaning up clang-native as well, just to make sure.

zboszor commented 2 months ago

The scarthgap build has passed the point of the previously quoted errors, it will succeed. It's almost at 20% now.

zboszor commented 2 months ago

And indeed, it finished succesfully. #809 can be merged as far as I am concerned.

MaxIhlenfeldt commented 2 months ago

@zboszor thanks for confirming! I've just updated #809 to get rid of all of our bbappends. If it's not too much to ask, it would be great if you could verify that it still works for you.

zboszor commented 2 months ago

I will run the build both for nanbield and scarthgap during the weekend with the changes.