@@ -4,54 +4,32 @@ require gn-utils.inc
4
4
5
5
GTKIC_VERSION = "${@ bb . utils . contains ('PACKAGECONFIG' , 'gtk4' , '4' , '3' , d )}"
6
6
7
- inherit features_check gtk -icon -cache qemu
7
+ inherit features_check gtk -icon -cache qemu rust - common
8
8
9
9
# The actual directory name in out/ is irrelevant for GN.
10
10
OUTPUT_DIR = "out/Release"
11
11
B = "${S} /${OUTPUT_DIR} "
12
12
13
13
# Backported patches.
14
- SRC_URI += "\
15
- file://backport/IWYU-for-chrome-browser-ui-views-dark_mode_.patch \
16
- file://backport/IWYU-for-net-filter-zstd_source_stream.cc.patch \
17
- file://backport/IWYU-for-components-user_education-common-p.patch \
18
- file://backport/atspi-mark-possibly-unused-gn-variables.patch \
19
- file://backport/Revert-recent-C-20-usage-in-CFX_FillRenderO.patch \
20
- file://backport/IWYU-for-chrome-browser-ui-tabs-organizatio.patch \
21
- file://backport/IWYU-for-content-browser-generic_sensor-fra.patch \
22
- file://backport/IWYU-for-g-c-service-shared_image-ozone_ima.patch \
23
- file://backport/Make-toolchain_supports_rust_thin_lto-configurable.patch \
24
- file://backport/NewTabPage-Add-missing-dep-to-cr_components.patch \
25
- "
14
+ # None currently \o/
15
+
26
16
# Non-specific patches.
27
17
SRC_URI += "\
28
- file://0001-Remove-the- GN-settings-done-for-clang-that-conflict- .patch \
18
+ file://0001-Drop- GN-compiler- settings-conflicting-with-OE .patch \
29
19
file://0002-v8-qemu-wrapper.patch \
30
20
file://0003-wrapper-extra-flags.patch \
31
21
file://0004-Delete-compiler-options-not-available-in-release-ver.patch \
32
22
file://0005-avoid-link-latomic-failure-on-CentOS-8-host.patch \
33
- file://0006-Revert-__attribute__-and-alignas-changes.patch \
34
- file://0007-Add-missing-typename-s.patch \
35
- file://0008-Don-t-pass-unknown-LLVM-options.patch \
36
- file://0009-Avoid-capturing-structured-bindings.patch \
37
- file://0010-Revert-Reland-Reland-mte-refactor-the-tagging-functi.patch \
38
- file://0011-Avoid-parenthesized-initialization-of-aggregates.patch \
39
- file://0012-Fix-constexpr-variable-cannot-have-non-literal-type-.patch \
40
- file://0013-Fix-undefined-symbol-PaintOpWriter-SerializedSize-un.patch \
41
- file://0014-Fix-implicitly-deleted-default-constructor-build-err.patch \
42
- file://0015-Don-t-delete-CrashKeyWithName-dtor.patch \
43
- file://0016-Use-base-ranges-instead-of-std-ranges.patch \
44
- file://0017-Use-the-correct-path-to-libclang_rt.builtins.a.patch \
45
- file://0018-Adjust-the-Rust-build-to-our-needs.patch \
46
- file://0019-Don-t-require-profiler_builtins.rlib.patch \
23
+ file://0006-Don-t-pass-unknown-LLVM-options.patch \
24
+ file://0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch \
25
+ file://0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch \
26
+ file://0009-Adjust-the-Rust-build-to-our-needs.patch \
27
+ file://0010-Don-t-require-profiler_builtins.rlib.patch \
28
+ file://0011-Disable-crabbyavif-to-fix-build-errors.patch \
29
+ file://0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch \
47
30
"
48
31
# ARM/AArch64-specific patches.
49
- SRC_URI :append :arm = "\
50
- file://arm/0001-BUILD-do-not-specify-march-on-arm.patch \
51
- file://arm/0002-Fix-ARM-build-with-recent-glibc.patch \
52
- file://arm/0003-Fix-static_assert-failed-build-error-on-32-bit-ARM.patch \
53
- "
54
- SRC_URI :append :aarch64 = "${@ bb . utils . contains ('TUNE_FEATURES' , 'crypto' , '' , ' file://arm/0004-Fix-AES-crypto-SIGILL-on-rpi4-64.patch' , d )}"
32
+ SRC_URI :append :aarch64 = "${@ bb . utils . contains ('TUNE_FEATURES' , 'crypto' , '' , ' file://arm/0001-Fix-AES-crypto-SIGILL-on-rpi4-64.patch' , d )}"
55
33
56
34
# musl-specific patches.
57
35
SRC_URI :append :libc -musl = "\
@@ -92,6 +70,7 @@ DEPENDS += " \
92
70
jpeg \
93
71
libdrm \
94
72
libffi \
73
+ libstd-rs \
95
74
libwebp \
96
75
libxkbcommon \
97
76
libxslt \
@@ -106,7 +85,6 @@ DEPENDS += " \
106
85
pkgconfig-native \
107
86
${@ bb . utils . contains ('DISTRO_FEATURES' , 'pulseaudio' , 'pulseaudio' , '' , d )} \
108
87
qemu-native \
109
- rust \
110
88
rust-native \
111
89
virtual/libgl \
112
90
"
@@ -308,8 +286,8 @@ GN_ARGS += ' \
308
286
'
309
287
310
288
# Make sure Chromium is able to find clang libraries. See
311
- # 0023 -Use-the-correct-path-to-libclang_rt.builtins.a.patch and the
312
- # add_clang_symlink and copy_clang_library tasks for more context.
289
+ # 0008 -Use-the-correct-path-to-libclang_rt.builtins.a.patch and the
290
+ # add_clang_latest and copy_clang_library tasks for more context.
313
291
GN_ARGS += ' \
314
292
clang_base_path="${@ clang_install_path (d )}" \
315
293
clang_version="latest" \
@@ -325,7 +303,7 @@ GN_ARGS += 'max_jobs_per_link="${@oe.utils.parallel_make_argument(d, '%d')}"'
325
303
# Rust code is rebuilt after updating the Rust toolchain. This is irrelevant for
326
304
# our build setup, but not setting it leads to an error.
327
305
GN_ARGS += ' \
328
- rust_sysroot_absolute="${RECIPE_SYSROOT_NATIVE } /usr" \
306
+ rust_sysroot_absolute="${STAGING_DIR_NATIVE } /usr" \
329
307
rustc_version="custom" \
330
308
rust_target_triple_vendor_for_target="${TARGET_VENDOR} " \
331
309
'
@@ -379,7 +357,7 @@ GN_ARGS:append:armv6 = ' arm_use_neon=false'
379
357
GN_ARGS :append :libc -musl = ' use_allocator_shim=false use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false'
380
358
381
359
CHROMIUM_EXTRA_ARGS ?= " \
382
- ${@ bb . utils . contains ('PACKAGECONFIG' , 'use-egl' , '--use-gl= egl' , '' , d )} \
360
+ ${@ bb . utils . contains ('PACKAGECONFIG' , 'use-egl' , '--use-angle=gles- egl' , '' , d )} \
383
361
${@ bb . utils . contains ('PACKAGECONFIG' , 'kiosk-mode' , '--kiosk --no-first-run --incognito' , '' , d )} \
384
362
${@ bb . utils . contains ('PACKAGECONFIG' , 'gtk4' , '--gtk-version=4' , '' , d )} \
385
363
"
@@ -455,39 +433,42 @@ do_add_nodejs_symlink () {
455
433
}
456
434
addtask add_nodejs_symlink after do_configure before do_compile
457
435
458
- do_add_clang_symlink () {
459
- # Creates a `latest` symlink in the native sysroot's /usr/lib/clang
460
- # directory that points to /usr/lib/clang/$CLANG_VERSION. Chromium manually
461
- # links against libclang_rt.builtins.a and uses the `clang_version` GN
462
- # variable to find it. This allows us to set it to the same value for all
436
+ do_add_clang_latest () {
437
+ # Creates a `latest` directory in the native sysroot's /usr/lib/clang
438
+ # directory that is a copy of /usr/lib/clang/$CLANG_VERSION. Chromium
439
+ # manually links against libclang_rt.builtins.a and uses the `clang_version`
440
+ # GN variable to find it. This allows us to set it to the same value for all
463
441
# Yocto releases.
464
- cd "${RECIPE_SYSROOT_NATIVE} /usr/lib/clang"
442
+ cd "${STAGING_LIBDIR_NATIVE} /clang"
443
+ rm -rf latest
465
444
# find the directory containing the library
466
445
for dir in *; do
467
446
if [ -n "$(find $dir -name 'libclang_rt.builtins*')" ] ; then
468
- ln - sf "$dir" latest
447
+ cp - r "$dir" latest
469
448
break
470
449
fi
471
450
done
472
451
}
473
- addtask add_clang_symlink after do_configure before do_compile
452
+ addtask add_clang_latest after do_configure before do_compile
474
453
475
454
do_copy_clang_library () {
476
455
# Chromium needs to link against libclang_rt.builtins.a for both host and
477
456
# target code, and expects to find both libraries in the same directory
478
- # (thanks to 0023-Use-the-correct-path-to-libclang_rt.builtins.a.patch).
479
- cd "${RECIPE_SYSROOT} "
480
- lib_file = "$(find usr/lib/clang -name 'libclang_rt.builtins*')"
481
- lib_dir = "$(dirname $lib_file)"
482
- cp "$lib_file" "${RECIPE_SYSROOT_NATIVE} /$lib_dir"
457
+ # (thanks to 0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch).
458
+ cd "${STAGING_DIR_HOST}${nonarch_libdir} /clang"
459
+ # lib_file = "./$CLANG_VERSION/lib/linux/libclang_rt.builtins-$ARCH.a"
460
+ lib_file = "$(find . -name 'libclang_rt.builtins*')"
461
+ # stripped_lib_file = "lib/linux/libclang_rt.builtins-$ARCH.a"
462
+ stripped_lib_file = "${lib_file#*/*/} "
463
+ cp "$lib_file" "${STAGING_LIBDIR_NATIVE} /clang/latest/${stripped_lib_file} "
483
464
}
484
- addtask copy_clang_library after do_configure before do_compile
465
+ addtask copy_clang_library after do_add_clang_latest before do_compile
485
466
486
467
do_copy_target_rustlibs () {
487
468
# Chromium needs a single Rust sysroot that contains the rustlibs for both
488
469
# the host and target, so we copy the target rustlibs to the native sysroot.
489
- rustlib_src_dir = "${RECIPE_SYSROOT} /usr/lib /rustlib/${TARGET_ARCH} " *
490
- cp -r $rustlib_src_dir "${RECIPE_SYSROOT_NATIVE} /usr/lib /rustlib"
470
+ rustlib_src_dir = "${STAGING_LIBDIR} /rustlib/${TARGET_ARCH} " *
471
+ cp -r $rustlib_src_dir "${STAGING_LIBDIR_NATIVE} /rustlib"
491
472
}
492
473
addtask copy_target_rustlibs after do_configure before do_compile
493
474
0 commit comments