Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chromium: Update to 123.0.6312.122 #806

Merged
merged 1 commit into from
May 22, 2024

Conversation

MaxIhlenfeldt
Copy link
Collaborator

@MaxIhlenfeldt MaxIhlenfeldt commented May 7, 2024

Fixes #796.

Note that this PR drops support for Nanbield (which is scheduled to reach its EOL this month anyway), see the discussion at #796 for why.

Release notes:
https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_19.html
https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_26.html
https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop.html
https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_10.html

Build and patch changes:

Drop one backported patch that is included upstream now.

Rebase remaining patches.

License changes:

Added licenses:

  • third_party/android_deps/libs/com_google_android_gms_play_services_tflite_impl/LICENSE, third_party/android_deps/libs/com_google_android_gms_play_services_tflite_java/LICENSE, third_party/android_deps/libs/org_tensorflow_tensorflow_lite_api/LICENSE
  • third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime/LICENSE, third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime/LICENSE
  • third_party/android_deps/libs/org_jetbrains_kotlinx_atomicfu_jvm/LICENSE

Removed licenses:

  • third_party/catapult/third_party/Paste/docs/license.txt
  • third_party/screen-ai/LICENSE
  • Not sure why.

Updated licenses:

  • third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE

Test-built (big thanks to @rjanani-p):

  • chromium-ozone-wayland:
  • master, clang, MACHINE=qemux86-64
  • scarthgap, clang, MACHINE=qemuarm64
  • chromium-x11:
  • master, clang, MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

@MaxIhlenfeldt MaxIhlenfeldt requested a review from rakuco May 7, 2024 16:09
@MaxIhlenfeldt
Copy link
Collaborator Author

@rjanani-p as always, testing would be greatly appreciated! Please note that the build for nanbield will not work, you only need to test scarthgap and master.

@MaxIhlenfeldt
Copy link
Collaborator Author

MaxIhlenfeldt commented May 7, 2024

Also, #792 (comment) applies here as well: you'll probably need #808 as well to build master.

@MaxIhlenfeldt
Copy link
Collaborator Author

Rebased this PR to include all the recently merged PRs. This should fix all build issues that are unrelated to this update.

@rjanani-p please let me know if there's anything else blocking you from testing this PR.

@rjanani-p
Copy link

@rjanani-p as always, testing would be greatly appreciated! Please note that the build for nanbield will not work, you only need to test scarthgap and master.

sure @MaxIhlenfeldt , I will start testing and update the test results. Thank you.

@rjanani-p
Copy link

rjanani-p commented May 16, 2024

@rjanani-p as always, testing would be greatly appreciated! Please note that the build for nanbield will not work, you only need to test scarthgap and master.

@MaxIhlenfeldt , I have completed the testing for Poky master with latest changes, sharing the results for reference:

1.For chromium-x11 & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

2.For chromium-x11 & qemuarm target: compiled successfully without build issues, to check chromium version using qemuarm emulator unable to check it due to curser / mouse is not working properly while operating with chromium browser

3.For chromium-x11 & qemuarm64 target: compiled successfully without build issues, able to check chromium version using qemuarm64 emulator

4.For chromium-x11 & raspberrypi4-64 target: compiled successfully without build issues, didn't check with hardware due to hardware unavailability.
5. For chromium-ozone-wayland & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

I will start testing for Poky scarthgap.

@rjanani-p
Copy link

rjanani-p commented May 17, 2024

@MaxIhlenfeldt , getting below build issue for poky_scarthgap branch for qemux86-64 target, could you please check once .

[237/58295] python3 ../../third_party/blink/renderer/build/scripts/run_with_pythonpath.py -I ../../third_party/blink/renderer/build/scripts -I ../../third_party -I ../../third_party/pyjson5/src -I ../../tools ../../third_party/blink/renderer/build/scripts/core/css/make_css_property_names.py ../../third_party/blink/renderer/core/css/css_properties.json5 ../../third_party/blink/renderer/core/css/computed_style_field_aliases.json5 ../../third_party/blink/renderer/platform/runtime_enabled_features.json5 --output_dir gen/third_party/blink/renderer/core/css --gperf gperf
ninja: build stopped: subcommand failed.
WARNING: $/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/temp/run.do_compile.1636856:149 exit 1 from 'ninja -v -j 64 chrome chrome_sandbox chromedriver.unstripped'
WARNING: Backtrace (BB generated script):
$ builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/temp/run.do_compile.1636856, line 149

line 149 contains, below code snippet:
meta-browser/meta-chromium/recipes-browser/chromium/chromium-gn.inc
do_compile() {
export CRATE_CC_NO_DEFAULTS=1
ninja -v -j 64 chrome chrome_sandbox chromedriver.unstripped
}

$ builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/temp/run.do_compile.1636856, line 153

Please find build log error:

[174/58295] python3 ../../third_party/node/node.py ../../third_party/devtools-frontend/src/front_end/core/i18n/collect-ui-strings.js --input-directories ../../third_party/devtools-frontend/src/front_end --output-directory gen/third_party/devtools-frontend/src/front_end/core/i18n/locales/generated
FAILED: gen/third_party/devtools-frontend/src/front_end/core/i18n/locales/generated/en-US.json
python3 ../../third_party/node/node.py ../../third_party/devtools-frontend/src/front_end/core/i18n/collect-ui-strings.js --input-directories ../../third_party/devtools-frontend/src/front_end --output-directory gen/third_party/devtools-frontend/src/front_end/core/i18n/locales/generated
Traceback (most recent call last):
  File "$/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/out/Release/../../third_party/node/node.py", line 39, in <module>
    RunNode(sys.argv[1:])
  File "$/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/out/Release/../../third_party/node/node.py", line 34, in RunNode
    raise RuntimeError('Command \'%s\' failed\n%s' % (' '.join(cmd), err))
RuntimeError: Command '$/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/out/Release/../../third_party/node/linux/node-linux-x64/bin/node ../../third_party/devtools-frontend/src/front_end/core/i18n/collect-ui-strings.js --input-directories ../../third_party/devtools-frontend/src/front_end --output-directory gen/third_party/devtools-frontend/src/front_end/core/i18n/locales/generated' failed
$/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/common.js:19
  return a.localeCompare(b, 'en')
           ^

RangeError: Internal error. Icu error.
    at String.localeCompare (<anonymous>)
    at alphasort ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/common.js:19:12)

 at Array.sort (<anonymous>)
    at Object.finish ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/common.js:147:15)
    at GlobSync._finish ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/sync.js:71:10)
    at new GlobSync ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/sync.js:48:8)
    at Function.globSync [as sync] ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/node_modules/glob/sync.js:24:10)
    at collectAllStringsInDir ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:606:22)
    at Object.<anonymous> ($/builds_chromium/build_poky_scarthgap_chrom_123_ver/tmp/work/core2-64-poky-linux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122/third_party/devtools-frontend/src/front_end/core/i18n/collect-ui-strings.js:61:8)
    at Module._compile (node:internal/modules/cjs/loader:1369:14)

Node.js v20.12.2

@MaxIhlenfeldt
Copy link
Collaborator Author

@MaxIhlenfeldt , getting below build issue for poky_scarthgap branch for qemux86-64 target, could you please check once .

Hm, this seems to be the same error you described in #803 (comment). If I understand #803 (comment) correctly, that time the issue didn't happen any more in a clean build. Can you please try doing a clean build and see if it fixes the issue this time as well?

@rjanani-p
Copy link

@MaxIhlenfeldt , getting below build issue for poky_scarthgap branch for qemux86-64 target, could you please check once .

Hm, this seems to be the same error you described in #803 (comment). If I understand #803 (comment) correctly, that time the issue didn't happen any more in a clean build. Can you please try doing a clean build and see if it fixes the issue this time as well?

@MaxIhlenfeldt ,I have tried with clean build, but getting same issue. Did you observe same issue during you are testing.

@MaxIhlenfeldt
Copy link
Collaborator Author

@MaxIhlenfeldt ,I have tried with clean build, but getting same issue. Did you observe same issue during you are testing.

@rjanani-p I haven't seen this specific error message in any local build I've done. As the error is related to Node's internationalization support, please provide the following information that hopefully helps with finding its cause. (reference: https://nodejs.org/api/intl.html)

Node build setup

The default for the nodejs recipe is to build Node with the --with-intl=system-icu option. Can you please check that this is the case for your build by running bitbake -e nodejs-native | grep -B 25 PACKAGECONFIG= and pasting the output here? For my build, the output is this:

# pre-expansion value:
#   "${PN}-${PV}"
P="nodejs-native-20.12.2"
#
# $PACKAGECONFIG [9 operations]
#   set /home/chromium/yocto-chromium/sources/poky/meta/conf/documentation.conf:321
#     [doc] "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:67
#     [_defaultval] "ares brotli icu zlib"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:69
#     [ares] "--shared-cares,,c-ares"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:70
#     [brotli] "--shared-brotli,,brotli"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:71
#     [icu] "--with-intl=system-icu,--without-intl,icu"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:72
#     [libuv] "--shared-libuv,,libuv"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:73
#     [nghttp2] "--shared-nghttp2,,nghttp2"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:74
#     [shared] "--shared"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:75
#     [zlib] "--shared-zlib,,zlib"
# pre-expansion value:
#   "ares brotli icu zlib"
PACKAGECONFIG="ares brotli icu zlib"

And to be completely sure, please run bitbake -c devshell nodejs-native and in that shell run grep -A 15 'do_configure()' ../temp/run.do_configure and paste the output here. For my build, the output is this:

do_configure() {
    GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
    # $TARGET_ARCH settings don't match --dest-cpu settings
    python3 configure.py --verbose --prefix=/home/chromium/yocto-chromium/builds/chromium-x11-qemux86-64-scarthgap/tmp-glibc/work/x86_64-linux/nodejs-native/20.12.2/recipe-sysroot-native/usr \
               --shared-openssl \
               --dest-cpu="x64" \
               --dest-os=linux \
               --libdir=lib \
               --no-cross-compiling \
                \
                --shared-cares --shared-brotli --with-intl=system-icu --shared-zlib
}

cd '/home/chromium/yocto-chromium/builds/chromium-x11-qemux86-64-scarthgap/tmp-glibc/work/x86_64-linux/nodejs-native/20.12.2/node-v20.12.2'
do_configure

Checking ICU support at runtime

Please run bitbake -c devshell chromium-x11. From the devshell, create (using vim/nano/...) a test.js file with the following contents:

const hasICU = typeof process.versions.icu === 'string';
console.log(`hasICU: ${hasICU} version=${process.versions.icu}`);

const hasFullICU = (() => {
  try {
    const january = new Date(9e8);
    const spanish = new Intl.DateTimeFormat('es', { month: 'long' });
    return spanish.format(january) === 'enero';
  } catch (err) {
    return false;
  }
})();
console.log(`hasFullICU: ${hasFullICU}`);

const cmp = 'foo'.localeCompare('bar', 'en');
console.log(`cmp: ${cmp}`);

and then run third_party/node/linux/node-linux-x64/bin/node test.js and paste the output here. For my build, the output is this:

hasICU: true version=74.2
hasFullICU: true
cmp: 1

Running btest402

As above, please start a chromium-x11 devshell (or reuse the same one). Then download https://github.com/srl295/btest402/raw/master/btest402.js, e.g. using wget, and run third_party/node/linux/node-linux-x64/bin/node btest402.js and paste the output here. For my build, the output is this:

You have console.log.
Running btest..
+ Congrats, you have the Intl object.
en:
 date: (supported:en) Saturday, January 3, 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

mt:
 date: (supported:mt) Is-Sibt, 3 ta’ Jannar 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

ja:
 date: (supported:ja) 1970年1月3日土曜日
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

tlh:
 date: (supported:) Saturday, January 3, 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor


--------- Analysis ---------
* You have the 'Intl' object. Congratulations! You have the possibility of being EcmaScript 402 compliant.
* Klingon isn't a supported language by the date formatter. It is without honor!

----------------
SUMMARY:Have Intl, Date:no 'tlh',

@rjanani-p
Copy link

@MaxIhlenfeldt ,I have tried with clean build, but getting same issue. Did you observe same issue during you are testing.

@rjanani-p I haven't seen this specific error message in any local build I've done. As the error is related to Node's internationalization support, please provide the following information that hopefully helps with finding its cause. (reference: https://nodejs.org/api/intl.html)

Node build setup

The default for the nodejs recipe is to build Node with the --with-intl=system-icu option. Can you please check that this is the case for your build by running bitbake -e nodejs-native | grep -B 25 PACKAGECONFIG= and pasting the output here? For my build, the output is this:

# pre-expansion value:
#   "${PN}-${PV}"
P="nodejs-native-20.12.2"
#
# $PACKAGECONFIG [9 operations]
#   set /home/chromium/yocto-chromium/sources/poky/meta/conf/documentation.conf:321
#     [doc] "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:67
#     [_defaultval] "ares brotli icu zlib"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:69
#     [ares] "--shared-cares,,c-ares"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:70
#     [brotli] "--shared-brotli,,brotli"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:71
#     [icu] "--with-intl=system-icu,--without-intl,icu"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:72
#     [libuv] "--shared-libuv,,libuv"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:73
#     [nghttp2] "--shared-nghttp2,,nghttp2"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:74
#     [shared] "--shared"
#   set /home/chromium/yocto-chromium/sources/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.12.2.bb:75
#     [zlib] "--shared-zlib,,zlib"
# pre-expansion value:
#   "ares brotli icu zlib"
PACKAGECONFIG="ares brotli icu zlib"

And to be completely sure, please run bitbake -c devshell nodejs-native and in that shell run grep -A 15 'do_configure()' ../temp/run.do_configure and paste the output here. For my build, the output is this:

do_configure() {
    GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
    # $TARGET_ARCH settings don't match --dest-cpu settings
    python3 configure.py --verbose --prefix=/home/chromium/yocto-chromium/builds/chromium-x11-qemux86-64-scarthgap/tmp-glibc/work/x86_64-linux/nodejs-native/20.12.2/recipe-sysroot-native/usr \
               --shared-openssl \
               --dest-cpu="x64" \
               --dest-os=linux \
               --libdir=lib \
               --no-cross-compiling \
                \
                --shared-cares --shared-brotli --with-intl=system-icu --shared-zlib
}

cd '/home/chromium/yocto-chromium/builds/chromium-x11-qemux86-64-scarthgap/tmp-glibc/work/x86_64-linux/nodejs-native/20.12.2/node-v20.12.2'
do_configure

Checking ICU support at runtime

Please run bitbake -c devshell chromium-x11. From the devshell, create (using vim/nano/...) a test.js file with the following contents:

const hasICU = typeof process.versions.icu === 'string';
console.log(`hasICU: ${hasICU} version=${process.versions.icu}`);

const hasFullICU = (() => {
  try {
    const january = new Date(9e8);
    const spanish = new Intl.DateTimeFormat('es', { month: 'long' });
    return spanish.format(january) === 'enero';
  } catch (err) {
    return false;
  }
})();
console.log(`hasFullICU: ${hasFullICU}`);

const cmp = 'foo'.localeCompare('bar', 'en');
console.log(`cmp: ${cmp}`);

and then run third_party/node/linux/node-linux-x64/bin/node test.js and paste the output here. For my build, the output is this:

hasICU: true version=74.2
hasFullICU: true
cmp: 1

Running btest402

As above, please start a chromium-x11 devshell (or reuse the same one). Then download https://github.com/srl295/btest402/raw/master/btest402.js, e.g. using wget, and run third_party/node/linux/node-linux-x64/bin/node btest402.js and paste the output here. For my build, the output is this:

You have console.log.
Running btest..
+ Congrats, you have the Intl object.
en:
 date: (supported:en) Saturday, January 3, 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

mt:
 date: (supported:mt) Is-Sibt, 3 ta’ Jannar 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

ja:
 date: (supported:ja) 1970年1月3日土曜日
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor

tlh:
 date: (supported:) Saturday, January 3, 1970
 Intl.v8BreakIterator error (NOT part of EcmaScript402): TypeError: Intl.v8BreakIterator is not a constructor


--------- Analysis ---------
* You have the 'Intl' object. Congratulations! You have the possibility of being EcmaScript 402 compliant.
* Klingon isn't a supported language by the date formatter. It is without honor!

----------------
SUMMARY:Have Intl, Date:no 'tlh',

@MaxIhlenfeldt , I have followed the steps which you are shared and executed the commands. For last 2 commands getting below issue
FATAL ERROR: DateTimePatternGeneratorCache::CreateGenerator Allocation failed - process out of memory.
Here I am sharing the command results.
nodejs_command_results.txt

Let me free up the memory in my workspace and let me start the clean build from my side. Could you please share your inputs to resolve the issue. Thank you!.

@MaxIhlenfeldt
Copy link
Collaborator Author

@rjanani-p thanks!

Please also re-run the "Checking ICU support at runtime" and "Running btest402" after freeing up memory and paste the results here.

@rjanani-p
Copy link

rjanani-p commented May 21, 2024

@rjanani-p thanks!

Please also re-run the "Checking ICU support at runtime" and "Running btest402" after freeing up memory and paste the results here.

@MaxIhlenfeldt , I have tried again after free up the memory in workspace and tried with clean build but getting same issue. Do I need to set up any config for poky scarthgap?

attaching build configuration for reference:
Build Configuration:
BB_VERSION = "2.8.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
DISTRO = "poky"
DISTRO_VERSION = "5.0.1"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "scarthgap:4b07a5316ed4b858863dfdb7cab63859d46d1810"
meta-filesystems
meta-gnome
meta-initramfs
meta-multimedia
meta-networking
meta-oe
meta-perl
meta-python
meta-webserver
meta-xfce = "scarthgap:a72010b414ee3d73888ac9cb4e310e8f05e13aea"
meta-clang = "scarthgap:e7dceb1c92caf7f21ef1d7b49c85328c30cffd90"
meta-chromium = "123.0.6312.122:e490f4ad84328cddbe99b31fc4913729991c2145"

Checking ICU support at runtime:
$third_party/node/linux/node-linux-x64/bin/node test.js
hasICU: true version=74.2

<--- Last few GCs --->

<--- JS stacktrace --->

FATAL ERROR: DateTimePatternGeneratorCache::CreateGenerator Allocation failed - process out of memory
----- Native stack trace -----

1: 0x560ad9fa344f node::OOMErrorHandler(char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
2: 0x560ada2ece74 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
3: 0x560ada2ed133 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
4: 0x560ada6ba20e v8::internal::JSDateTimeFormat::New(v8::internal::Isolate*, v8::internal::Handlev8::internal::Map, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Object, char const*) [third_party/node/linux/node-linux-x64/bin/node]
5: 0x560ada3711fa v8::internal::Builtin_DateTimeFormatConstructor(int, unsigned long*, v8::internal::Isolate*) [third_party/node/linux/node-linux-x64/bin/node]
6: 0x560adac96df6 [third_party/node/linux/node-linux-x64/bin/node]
Aborted (core dumped)

Running btest402:

$third_party/node/linux/node-linux-x64/bin/node btest402.js
You have console.log.
Running btest..

  • Congrats, you have the Intl object.
    en:

<--- Last few GCs --->

<--- JS stacktrace --->

FATAL ERROR: DateTimePatternGeneratorCache::CreateGenerator Allocation failed - process out of memory
----- Native stack trace -----

1: 0x5654425a344f node::OOMErrorHandler(char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
2: 0x5654428ece74 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
3: 0x5654428ed133 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [third_party/node/linux/node-linux-x64/bin/node]
4: 0x565442cba20e v8::internal::JSDateTimeFormat::New(v8::internal::Isolate*, v8::internal::Handlev8::internal::Map, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Object, char const*) [third_party/node/linux/node-linux-x64/bin/node]
5: 0x565442cbb6ee v8::internal::JSDateTimeFormat::ToLocaleDateTime(v8::internal::Isolate*, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Object, v8::internal::JSDateTimeFormat::RequiredOption, v8::internal::JSDateTimeFormat::DefaultsOption, char const*) [third_party/node/linux/node-linux-x64/bin/node]
6: 0x565442967118 v8::internal::Builtin_DatePrototypeToLocaleString(int, unsigned long*, v8::internal::Isolate*) [third_party/node/linux/node-linux-x64/bin/node]
7: 0x565443296df6 [third_party/node/linux/node-linux-x64/bin/node]
Aborted (core dumped)

@MaxIhlenfeldt
Copy link
Collaborator Author

@rjanani-p I don't think you need any special setup. What's the output of free -k when you run it from the same devshell as third_party/node/linux/node-linux-x64/bin/node?

@darren-etheridge
Copy link

@MaxIhlenfeldt - this v123 pull request is building and working with the Texas Instruments Scarthgap yocto and GPU acceleration is functional across PowerVR platforms (non-SGX) using chromium-ozone-wayland. With version 122 and 123 I have had to switch from --use-gl=egl to --use-gl=angle for GPU accel to work correctly. I also have pulled in this upstream chromium GPU patch:
https://chromium.googlesource.com/chromium/src/+/7efb6857a17195f08b609129e92732e19aa1d54c as it seemed potentially important, although nothing obviously bad was observed without it present with our current testing.

@rjanani-p
Copy link

@rjanani-p I don't think you need any special setup. What's the output of free -k when you run it from the same devshell as third_party/node/linux/node-linux-x64/bin/node?

@MaxIhlenfeldt , please find the free -k command results
$ chromium/chromium_ver_builds/builds_chromium/build_poky_scarthgap_chrom_123_ver_2005/tmp/work/core2-64-poky-lbuilds_chromium/build_poky_scarthgap_chrom_123inux/chromium-x11/123.0.6312.122/chromium-123.0.6312.122# free -k
total used free shared buff/cache available
Mem: 263547740 6866504 13719392 4085144 242961844 250635508
Swap: 8388604 8388604 0

@MaxIhlenfeldt
Copy link
Collaborator Author

@darren-etheridge thanks! Should you notice that the mentioned patch is needed in m123 after all, feel free to open an issue and I can add it as a backport.

@MaxIhlenfeldt
Copy link
Collaborator Author

@rjanani-p hm, the only thing standing out to me is that your swap space is completely full even though there's enough memory still available. Other than "have you tried turning it off and on again" I'm out of ideas. I do think however that this "out of memory" issue could well be the root cause of Node's "ICU error" message - V8 calls out to ICU, and if that fails to allocate V8 will error out with exactly the message Node is displaying.

Given all this and the fact that m125 is already shipping to Stable, I'd propose merging this and investigating the Node error separately, so I can start working on the m124 update. @rakuco wdyt?

@rakuco
Copy link
Collaborator

rakuco commented May 22, 2024

Given all this and the fact that m125 is already shipping to Stable, I'd propose merging this and investigating the Node error separately, so I can start working on the m124 update. @rakuco wdyt?

Sounds good to me!

Fixes OSSystems#796.

Note that this PR drops support for Nanbield (which is scheduled to
reach its EOL this month anyway), see the discussion at OSSystems#796 for why.

Release notes:
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_19.html
    https://chromereleases.googleblog.com/2024/03/stable-channel-update-for-desktop_26.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop.html
    https://chromereleases.googleblog.com/2024/04/stable-channel-update-for-desktop_10.html

Build and patch changes:
------------------------

Drop one backported patch that is included upstream now.

Rebase remaining patches.

License changes:
----------------

Added licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_tflite_impl/LICENSE,
    third_party/android_deps/libs/com_google_android_gms_play_services_tflite_java/LICENSE,
    third_party/android_deps/libs/org_tensorflow_tensorflow_lite_api/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5288046

  * third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime/LICENSE,
    third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5260026

  * third_party/android_deps/libs/org_jetbrains_kotlinx_atomicfu_jvm/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5237443

Removed licenses:
  * third_party/catapult/third_party/Paste/docs/license.txt
  - https://chromium-review.googlesource.com/c/catapult/+/5288589

  * third_party/screen-ai/LICENSE
  - Not sure why.

Updated licenses:
  * third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE
  - https://chromium-review.googlesource.com/c/chromium/src/+/5288046

Test-built (big thanks to @rjanani-p):
--------------------------------------

* chromium-ozone-wayland:
 - master, clang,    MACHINE=qemux86-64
 - scarthgap, clang, MACHINE=qemuarm64

* chromium-x11:
 - master, clang,    MACHINE=qemuarm, qemuarm64, qemux86-64, raspberrypi4-64

Signed-off-by: Max Ihlenfeldt <max@igalia.com>
@MaxIhlenfeldt MaxIhlenfeldt merged commit c3a84cc into OSSystems:master May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Update to Chromium 123
4 participants