- removed workaround for missing bindgen-cli on el8

- removed partition-alloc-4k-detect.patch
epel9
Than Ngo 1 week ago
parent e54d1538ea
commit 97da4a0b9f

@ -489,10 +489,6 @@ Source14: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-%{esbuild_ve
Source15: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-%{esbuild_version}.tgz
%endif
# bindgen for epel8
Source16: https://than.fedorapeople.org/epel8/bindgen-cli-aarch64.tar.xz
Source17: https://than.fedorapeople.org/epel8/bindgen-cli-x86_64.tar.xz
# esbuild binary from fedora
%if 0%{?fedora}
BuildRequires: golang-github-evanw-esbuild
@ -519,12 +515,7 @@ BuildRequires: binutils
%endif
BuildRequires: rustc
%if 0%{?rhel} == 8
# need to build bindgen on el8
BuildRequires: cargo
%else
BuildRequires: bindgen-cli
%endif
%if ! %{bundlezstd}
BuildRequires: libzstd-devel
@ -1167,20 +1158,6 @@ Qt6 UI for chromium.
# See `man find` for how the `-exec command {} +` syntax works
find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{chromium_pybin}=' {} +
# workaround for missing bindgen on el8
%if 0%{?rhel} == 8
%ifarch aarch64
tar -Jxf %{SOURCE16}
%endif
%ifarch x86_64
tar -Jxf %{SOURCE17}
%endif
mkdir -p usr/%{_lib}
pushd usr/%{_lib}
ln -fs %{_libdir}/libclang* .
popd
%endif
# Add correct path for nodejs binary
%if ! %{system_nodejs}
pushd third_party/node/linux

@ -1,112 +0,0 @@
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
@@ -100,21 +100,21 @@
// other constant values, we pack _all_ `PartitionRoot::Alloc` sizes perfectly
// up against the end of a system page.
-#if defined(_MIPS_ARCH_LOONGSON) || defined(ARCH_CPU_LOONGARCH64)
+#if (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
+ defined(PARTITION_ALLOCATOR_CONSTANTS_POSIX_NONCONST_PAGE_SIZE)
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PartitionPageShift() {
- return 16; // 64 KiB
+ return PageAllocationGranularityShift() + 2;
}
-#elif defined(ARCH_CPU_PPC64)
+#elif defined(_MIPS_ARCH_LOONGSON) || defined(ARCH_CPU_LOONGARCH64)
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PartitionPageShift() {
- return 18; // 256 KiB
+ return 16; // 64 KiB
}
-#elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
- defined(PARTITION_ALLOCATOR_CONSTANTS_POSIX_NONCONST_PAGE_SIZE)
+#elif defined(ARCH_CPU_PPC64)
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PartitionPageShift() {
- return PageAllocationGranularityShift() + 2;
+ return 18; // 256 KiB
}
#else
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
@@ -26,7 +26,8 @@
#define PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR __attribute__((const))
#elif (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS)) || \
- (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+ (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)) || \
+ (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_PPC64))
// This should work for all POSIX (if needed), but currently all other
// supported OS/architecture combinations use either hard-coded values
// (such as x86) or have means to determine these values without needing
@@ -86,17 +87,7 @@
PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR size_t
PageAllocationGranularityShift() {
-#if BUILDFLAG(IS_WIN) || defined(ARCH_CPU_PPC64)
- // Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
- // sizes. Since 64kB is the de facto standard on the platform and binaries
- // compiled for 64kB are likely to work on 4kB systems, 64kB is a good choice
- // here.
- return 16; // 64kB
-#elif defined(_MIPS_ARCH_LOONGSON) || defined(ARCH_CPU_LOONGARCH64)
- return 14; // 16kB
-#elif BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
- return static_cast<size_t>(vm_page_shift);
-#elif defined(PARTITION_ALLOCATOR_CONSTANTS_POSIX_NONCONST_PAGE_SIZE)
+#if defined(PARTITION_ALLOCATOR_CONSTANTS_POSIX_NONCONST_PAGE_SIZE)
// arm64 supports 4kb (shift = 12), 16kb (shift = 14), and 64kb (shift = 16)
// page sizes. Retrieve from or initialize cache.
size_t shift = page_characteristics.shift.load(std::memory_order_relaxed);
@@ -106,6 +97,16 @@
page_characteristics.shift.store(shift, std::memory_order_relaxed);
}
return shift;
+#elif BUILDFLAG(IS_WIN) || defined(ARCH_CPU_PPC64)
+ // Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
+ // sizes. Since 64kB is the de facto standard on the platform and binaries
+ // compiled for 64kB are likely to work on 4kB systems, 64kB is a good choice
+ // here.
+ return 16; // 64kB
+#elif defined(_MIPS_ARCH_LOONGSON) || defined(ARCH_CPU_LOONGARCH64)
+ return 14; // 16kB
+#elif BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
+ return static_cast<size_t>(vm_page_shift);
#else
return 12; // 4kB
#endif
--- a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
@@ -180,10 +180,10 @@
#else // !BUILDFLAG(IS_AIX) && !defined(ARCH_CPU_BIG_ENDIAN)
// Little-endian Linux PPC has 48 bits of virtual addressing. Use 46.
- PA_ALWAYS_INLINE constexpr uintptr_t ASLRMask() {
+ PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR uintptr_t ASLRMask() {
return AslrMask(46);
}
- PA_ALWAYS_INLINE constexpr uintptr_t ASLROffset() {
+ PA_ALWAYS_INLINE PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR uintptr_t ASLROffset() {
return AslrAddress(0);
}
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
@@ -17,10 +17,15 @@
// PartitionPageSize() is 4 times the OS page size.
static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
#elif defined(PARTITION_ALLOCATOR_CONSTANTS_POSIX_NONCONST_PAGE_SIZE)
+#if defined(ARCH_CPU_PPC64)
+// System page size can be 4 or 64 kiB on Linux on ppc64. Use 64 kiB maximum.
+static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 16) / kSmallestBucket;
+#else
// System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
// so we use the 16 kiB maximum (64 kiB will crash).
static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
+#endif
#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_PPC64)
// System page size is not a constant on OpenPOWER systems, but is either 4kiB
// or 64kiB (1 << 12 or 1 << 16)

@ -2,6 +2,4 @@ SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea
SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd
SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
SHA512 (bindgen-cli-aarch64.tar.xz) = 1a5ae4e8fdd31d80e8111c4d5f2115336684763ecd3a442ffecdbc2a37bab146f88bdee0bb1ea7a98e1049f81b12e64bd0ce5510529b30a74ce3306488ac129b
SHA512 (bindgen-cli-x86_64.tar.xz) = 7ccc9b43b32d3a064a75cfc150e060711356da8fe98e83d855bae017108ef8e9e172fbdd6e2579433c19cfb56ababa5b77a8db6fa57a5e657a3878778ca10a37
SHA512 (chromium-128.0.6613.119-clean.tar.xz) = d7aeba7d9aa34ce85dae9bea52da40d4534c11343332a4bfde4af6bc58c07911bb6f9147bc8931f9e3dac6efce2b8b56a91d624367bf0cfb572af0b09d141db9

Loading…
Cancel
Save