================================================================================= VERSION 134.0.6998.35 ================================================================================= APPLICATION export QUILT_PATCHES=patches export QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" quilt push -a ================================================================================= SPONSORS / SUPPORT This work is currently sponsored by Raptor Engineering, LLC, Integricloud, and Solid Silicon. Open source consulting services: https://www.raptorengineering.com Dedicated owner-controlled OpenPOWER servers: https://www.integricloud.com OpenPOWER-compliant silicon solutions: https://www.solidsilicon.com Please consider supporting our continued work on owner-controlled computing by volunteering for open source projects (including the maintenance of Chromium and v8), purchasing an OpenPOWER product, leasing an OpenPOWER server, or otherwise promoting open, sustainable, standardized computing solutions and the software they require to remain viable alternatives to the closed service ecosystem. If you would like to join the v8 and Chromium development team for POWER, please let me know at tpearson@raptorengineering.com. Remote computing resources are available free of charge to anyone willing to assist. Thank you! ================================================================================= MINIMUM SYSTEM REQUIREMENTS LLVM 18.1.8 / LLVM 19.1.1 or higher **** LLVM REQUIREMENTS **** LLVM 17 and up (prior to 18.1.8) miscompile floating point libcalls with signed integer arguments on all architectures. Since LLVM 16 significantly miscompiles ppc64el code (leading to Chromium segfaults), LLVM 18.1.8 or higher is mandatory. If this requirement is not satisfied, the browser will consume massive system resources and randomly crash. Full information is available on the merged upstream pull request here: https://github.com/llvm/llvm-project/pull/109134 **** WARNING **** LLVM 16 is known to miscompile part of v8! At optimization levels higher than -O0, when using LTO, under specific circumstances involving array access of floating point numbers, the following (condensed) invalid instruction sequence is emitted: li r4,-15 rldic r4,r4,3,29 lfdx f1,r3,r4 Examples bytecode files that trigger the issue are located in compiler_bugs/clang_16/strtod_o[0|1].bc for analysis. To see the invalid assembler, compile to native object code via: llc-16 strtod_o1.bc -filetype=obj -o strtod.o and disassemble via: objdump -S strtod.o Note that llc-17 emits a completely different and more sensible instruction sequence: subfic r6,r8,15 rldic r4,r6,3,29 lfdx f1,r5,r4 where r8 is loaded via other setup routines prior to entering the index access segment of the code. Likely, the optimizer in Clang 16 makes an incorrect assumption about r8 (in this example) always equalling 0x0, when in fact 0x0 would be an invalid value for r8. ================================================================================= NOTE The Ungoogled patches are modified to apply to a stock Debian Chromium tree, without any other Ungoogled patches applied. Typically, this means that the following patches must be removed from the Debian patch series and reverted from the source tree before this repository can be used: * ungoogled/disable-privacy-sandbox.patch Be aware that since Debian already carries cookie deactivation patches the associated patch in the Ungoogled tree has also been removed. If you are considering applying this Ungoogled patch series to a non-Debian Chromium tree, it may be a good idea to use the upstream Ungoogled patch series as a starting point instead of this patch series. If building a Debian package, and the Ungoogled patches are applied, the following build flags will need to be set in the debian/rules file: * safe_browsing_mode=0 * build_with_tflite_lib=false These flags are NOT required for the base ppc64el patchset alone.