Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (ac706a0b9e3a88447711d3d3889801121d4b5a81)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Pavel Vinogradov <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (ac706a0b9e3a88447711d3d3889801121d4b5a81)
  • Date: Wed, 5 Jul 2023 21:24:50 +0000

GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:

http/firefox/HISTORY
| 3
http/firefox/patches/0026-bgo-908297-ppc64-webrtc.patch
| 35 ++
http/firefox/patches/0027-bgo-908297-ppc64-webrtc.patch
| 35 --
http/firefox/patches/0027-bmo-1840931-elfhack-pgo-fix.patch
| 165 ++++++++++
http/firefox/patches/0028-bmo-1516803-gcc-lto-sandbox.patch
| 16
http/firefox/patches/0028-bmo-1840931-elfhack-pgo-fix.patch
| 165 ----------
http/firefox/patches/0029-bmo-1516803-gcc-lto-sandbox.patch
| 16
http/firefox/patches/0029-enable-vaapi-on-all-amd-cards.patch
| 19 +
http/firefox/patches/0030-bmo-1839023-arm-unified-build-missing-header.patch
| 77 ++++
http/firefox/patches/0030-enable-vaapi-on-all-amd-cards.patch
| 19 -

http/firefox/patches/0031-bmo-1838655-arm-unified-build-missing-include.patch
| 32 +
http/firefox/patches/0031-bmo-1839023-arm-unified-build-missing-header.patch
| 77 ----
http/firefox/patches/0032-bgo-907963-rustflags-single-string.patch
| 76 ++++

http/firefox/patches/0032-bmo-1838655-arm-unified-build-missing-include.patch
| 32 -
http/firefox/patches/0033-bgo-907963-rustflags-single-string.patch
| 76 ----
15 files changed, 423 insertions(+), 420 deletions(-)

New commits:
commit ac706a0b9e3a88447711d3d3889801121d4b5a81
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>

http/firefox: updated patches for 115.0

diff --git a/http/firefox/HISTORY b/http/firefox/HISTORY
index 30a9c22..55c7402 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,6 @@
+2023-07-05 Pavel Vinogradov <public AT sourcemage.org>
+ * patches/*: updated
+
2023-07-04 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 115.0, SECURITY_PATCH++
* DEPENDS: nss >= 3.90
diff --git a/http/firefox/patches/0026-bgo-908297-ppc64-webrtc.patch
b/http/firefox/patches/0026-bgo-908297-ppc64-webrtc.patch
new file mode 100644
index 0000000..14e8c4a
--- /dev/null
+++ b/http/firefox/patches/0026-bgo-908297-ppc64-webrtc.patch
@@ -0,0 +1,35 @@
+#https://www.talospace.com/2023/06/firefox-114-on-power.html
+#https://gist.github.com/classilla/95b5dd53627528448f8512a82205672c
+
+diff -r 954df08c7f0b third_party/libwebrtc/moz.build
+--- a/third_party/libwebrtc/moz.build Tue Jun 06 08:55:21 2023 +0000
++++ b/third_party/libwebrtc/moz.build Mon Jun 19 09:33:12 2023 -0700
+@@ -595,16 +595,28 @@
+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn",
+ "/third_party/libwebrtc/modules/portal/portal_gn",
+ "/third_party/libwebrtc/third_party/drm/drm_gn",
+ "/third_party/libwebrtc/third_party/gbm/gbm_gn",
+ "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn",
+ "/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
+ ]
+
++if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
++
++ DIRS += [
++ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
++ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn",
++ "/third_party/libwebrtc/modules/portal/portal_gn",
++ "/third_party/libwebrtc/third_party/drm/drm_gn",
++ "/third_party/libwebrtc/third_party/gbm/gbm_gn",
++ "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn",
++ "/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
++ ]
++
+ if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "OpenBSD":
+
+ DIRS += [
+ "/third_party/libwebrtc/common_audio/common_audio_neon_c_gn",
+ "/third_party/libwebrtc/common_audio/common_audio_neon_gn"
+ ]
+
+ if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "OpenBSD":
diff --git a/http/firefox/patches/0027-bgo-908297-ppc64-webrtc.patch
b/http/firefox/patches/0027-bgo-908297-ppc64-webrtc.patch
deleted file mode 100644
index 14e8c4a..0000000
--- a/http/firefox/patches/0027-bgo-908297-ppc64-webrtc.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-#https://www.talospace.com/2023/06/firefox-114-on-power.html
-#https://gist.github.com/classilla/95b5dd53627528448f8512a82205672c
-
-diff -r 954df08c7f0b third_party/libwebrtc/moz.build
---- a/third_party/libwebrtc/moz.build Tue Jun 06 08:55:21 2023 +0000
-+++ b/third_party/libwebrtc/moz.build Mon Jun 19 09:33:12 2023 -0700
-@@ -595,16 +595,28 @@
- "/third_party/libwebrtc/modules/desktop_capture/primitives_gn",
- "/third_party/libwebrtc/modules/portal/portal_gn",
- "/third_party/libwebrtc/third_party/drm/drm_gn",
- "/third_party/libwebrtc/third_party/gbm/gbm_gn",
- "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn",
- "/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
- ]
-
-+if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
-+
-+ DIRS += [
-+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
-+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn",
-+ "/third_party/libwebrtc/modules/portal/portal_gn",
-+ "/third_party/libwebrtc/third_party/drm/drm_gn",
-+ "/third_party/libwebrtc/third_party/gbm/gbm_gn",
-+ "/third_party/libwebrtc/third_party/libepoxy/libepoxy_gn",
-+ "/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
-+ ]
-+
- if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "OpenBSD":
-
- DIRS += [
- "/third_party/libwebrtc/common_audio/common_audio_neon_c_gn",
- "/third_party/libwebrtc/common_audio/common_audio_neon_gn"
- ]
-
- if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "OpenBSD":
diff --git a/http/firefox/patches/0027-bmo-1840931-elfhack-pgo-fix.patch
b/http/firefox/patches/0027-bmo-1840931-elfhack-pgo-fix.patch
new file mode 100644
index 0000000..6d88bc5
--- /dev/null
+++ b/http/firefox/patches/0027-bmo-1840931-elfhack-pgo-fix.patch
@@ -0,0 +1,165 @@
+
+# HG changeset patch
+# User Mike Hommey <mh+mozilla AT glandium.org>
+# Date 1688068580 0
+# Node ID 51b78cf4881b07422c0c6e590e863b095257e9e1
+# Parent eef8bff2d6117cc88dcca9ab4718be0f5186924b
+Bug 1840931 - More properly handle files > 4GB in elfhack. r=gsvelto
+
+I'm pretty sure there are other theoretical problems in the code,
+notably when a single section is larger than 4GB, but by the time
+we reach that limit, bug 1839740 will have been fixed.
+
+Differential Revision: https://phabricator.services.mozilla.com/D182447
+
+diff --git a/build/unix/elfhack/elf.cpp b/build/unix/elfhack/elf.cpp
+--- a/build/unix/elfhack/elf.cpp
++++ b/build/unix/elfhack/elf.cpp
+@@ -344,17 +344,17 @@ ElfSection* Elf::getSection(int index) {
+ break;
+ default:
+ sections[index] = new ElfSection(*tmp_shdr[index], tmp_file, this);
+ }
+ }
+ return sections[index];
+ }
+
+-ElfSection* Elf::getSectionAt(unsigned int offset) {
++ElfSection* Elf::getSectionAt(Elf64_Off offset) {
+ for (int i = 1; i < ehdr->e_shnum; i++) {
+ ElfSection* section = getSection(i);
+ if ((section != nullptr) && (section->getFlags() & SHF_ALLOC) &&
+ !(section->getFlags() & SHF_TLS) && (offset >= section->getAddr())
&&
+ (offset < section->getAddr() + section->getSize()))
+ return section;
+ }
+ return nullptr;
+@@ -529,38 +529,38 @@ ElfSection::ElfSection(Elf_Shdr& s, std:
+ // Only SHT_REL/SHT_RELA sections use sh_info to store a section
+ // number.
+ if ((shdr.sh_type == SHT_REL) || (shdr.sh_type == SHT_RELA))
+ info.section = shdr.sh_info ? parent->getSection(shdr.sh_info) :
nullptr;
+ else
+ info.index = shdr.sh_info;
+ }
+
+-unsigned int ElfSection::getAddr() {
++Elf64_Addr ElfSection::getAddr() {
+ if (shdr.sh_addr != (Elf64_Addr)-1) return shdr.sh_addr;
+
+ // It should be safe to adjust sh_addr for all allocated sections that
+ // are neither SHT_NOBITS nor SHT_PROGBITS
+ if ((previous != nullptr) && isRelocatable()) {
+ unsigned int addr = previous->getAddr();
+ if (previous->getType() != SHT_NOBITS) addr += previous->getSize();
+
+ if (addr & (getAddrAlign() - 1)) addr = (addr | (getAddrAlign() - 1)) +
1;
+
+ return (shdr.sh_addr = addr);
+ }
+ return shdr.sh_addr;
+ }
+
+-unsigned int ElfSection::getOffset() {
++Elf64_Off ElfSection::getOffset() {
+ if (shdr.sh_offset != (Elf64_Off)-1) return shdr.sh_offset;
+
+ if (previous == nullptr) return (shdr.sh_offset = 0);
+
+- unsigned int offset = previous->getOffset();
++ Elf64_Off offset = previous->getOffset();
+
+ ElfSegment* ptload = getSegmentByType(PT_LOAD);
+ ElfSegment* prev_ptload = previous->getSegmentByType(PT_LOAD);
+
+ if (ptload && (ptload == prev_ptload)) {
+ offset += getAddr() - previous->getAddr();
+ return (shdr.sh_offset = offset);
+ }
+diff --git a/build/unix/elfhack/elfhack.cpp b/build/unix/elfhack/elfhack.cpp
+--- a/build/unix/elfhack/elfhack.cpp
++++ b/build/unix/elfhack/elfhack.cpp
+@@ -1255,18 +1255,18 @@ int do_relocation_section(Elf* elf, unsi
+ "Expected to find an .eh_frame section adjacent to .eh_frame_hdr");
+ }
+ if (eh_frame && first->getAddr() > relhack->getAddr() &&
+ second->getAddr() < first_executable->getAddr()) {
+ // The distance between both sections needs to be preserved because
+ // eh_frame_hdr contains relative offsets to eh_frame. Well, they could
be
+ // relocated too, but it's not worth the effort for the few number of
bytes
+ // this would save.
+- unsigned int distance = second->getAddr() - first->getAddr();
+- unsigned int origAddr = eh_frame->getAddr();
++ Elf64_Off distance = second->getAddr() - first->getAddr();
++ Elf64_Addr origAddr = eh_frame->getAddr();
+ ElfSection* previous = first->getPrevious();
+ first->getShdr().sh_addr = (previous->getAddr() + previous->getSize() +
+ first->getAddrAlign() - 1) &
+ ~(first->getAddrAlign() - 1);
+ second->getShdr().sh_addr =
+ (first->getAddr() + std::min(first->getSize(), distance) +
+ second->getAddrAlign() - 1) &
+ ~(second->getAddrAlign() - 1);
+diff --git a/build/unix/elfhack/elfxx.h b/build/unix/elfhack/elfxx.h
+--- a/build/unix/elfhack/elfxx.h
++++ b/build/unix/elfhack/elfxx.h
+@@ -280,17 +280,17 @@ typedef serializable<Elf_Shdr_Traits> El
+ class Elf {
+ public:
+ Elf(std::ifstream& file);
+ ~Elf();
+
+ /* index == -1 is treated as index == ehdr.e_shstrndx */
+ ElfSection* getSection(int index);
+
+- ElfSection* getSectionAt(unsigned int offset);
++ ElfSection* getSectionAt(Elf64_Off offset);
+
+ ElfSegment* getSegmentByType(unsigned int type, ElfSegment* last =
nullptr);
+
+ ElfDynamic_Section* getDynSection();
+
+ void normalize();
+ void write(std::ofstream& file);
+
+@@ -329,18 +329,18 @@ class ElfSection {
+
+ ElfSection(Elf_Shdr& s, std::ifstream* file, Elf* parent);
+
+ virtual ~ElfSection() { free(data); }
+
+ const char* getName() { return name; }
+ unsigned int getType() { return shdr.sh_type; }
+ unsigned int getFlags() { return shdr.sh_flags; }
+- unsigned int getAddr();
+- unsigned int getSize() { return shdr.sh_size; }
++ Elf64_Addr getAddr();
++ Elf64_Off getSize() { return shdr.sh_size; }
+ unsigned int getAddrAlign() { return shdr.sh_addralign; }
+ unsigned int getEntSize() { return shdr.sh_entsize; }
+ const char* getData() { return data; }
+ ElfSection* getLink() { return link; }
+ SectionInfo getInfo() { return info; }
+
+ void shrink(unsigned int newsize) {
+ if (newsize < shdr.sh_size) {
+@@ -353,17 +353,17 @@ class ElfSection {
+ if (newsize > shdr.sh_size) {
+ data = static_cast<char*>(realloc(data, newsize));
+ memset(data + shdr.sh_size, 0, newsize - shdr.sh_size);
+ shdr.sh_size = newsize;
+ markDirty();
+ }
+ }
+
+- unsigned int getOffset();
++ Elf64_Off getOffset();
+ int getIndex();
+ Elf_Shdr& getShdr();
+
+ ElfSection* getNext() { return next; }
+ ElfSection* getPrevious() { return previous; }
+
+ virtual bool isRelocatable() {
+ return ((getType() == SHT_SYMTAB) || (getType() == SHT_STRTAB) ||
+
diff --git a/http/firefox/patches/0028-bmo-1516803-gcc-lto-sandbox.patch
b/http/firefox/patches/0028-bmo-1516803-gcc-lto-sandbox.patch
new file mode 100644
index 0000000..eff08f6
--- /dev/null
+++ b/http/firefox/patches/0028-bmo-1516803-gcc-lto-sandbox.patch
@@ -0,0 +1,16 @@
+diff -Naur a/security/sandbox/linux/moz.build
b/security/sandbox/linux/moz.build
+--- a/security/sandbox/linux/moz.build 2023-07-04 13:57:56.029462755 +0300
++++ b/security/sandbox/linux/moz.build 2023-07-04 14:05:08.607221195 +0300
+@@ -114,9 +114,9 @@
+ # gcc lto likes to put the top level asm in syscall.cc in a different
partition
+ # from the function using it which breaks the build. Work around that by
+ # forcing there to be only one partition.
+-for f in CONFIG["OS_CXXFLAGS"]:
+- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
+- LDFLAGS += ["--param lto-partitions=1"]
++if CONFIG['CC_TYPE'] != 'clang':
++ LDFLAGS += ['--param', 'lto-partitions=1']
++
+
+ DEFINES["NS_NO_XPCOM"] = True
+ DisableStlWrapping()
diff --git a/http/firefox/patches/0028-bmo-1840931-elfhack-pgo-fix.patch
b/http/firefox/patches/0028-bmo-1840931-elfhack-pgo-fix.patch
deleted file mode 100644
index 6d88bc5..0000000
--- a/http/firefox/patches/0028-bmo-1840931-elfhack-pgo-fix.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-
-# HG changeset patch
-# User Mike Hommey <mh+mozilla AT glandium.org>
-# Date 1688068580 0
-# Node ID 51b78cf4881b07422c0c6e590e863b095257e9e1
-# Parent eef8bff2d6117cc88dcca9ab4718be0f5186924b
-Bug 1840931 - More properly handle files > 4GB in elfhack. r=gsvelto
-
-I'm pretty sure there are other theoretical problems in the code,
-notably when a single section is larger than 4GB, but by the time
-we reach that limit, bug 1839740 will have been fixed.
-
-Differential Revision: https://phabricator.services.mozilla.com/D182447
-
-diff --git a/build/unix/elfhack/elf.cpp b/build/unix/elfhack/elf.cpp
---- a/build/unix/elfhack/elf.cpp
-+++ b/build/unix/elfhack/elf.cpp
-@@ -344,17 +344,17 @@ ElfSection* Elf::getSection(int index) {
- break;
- default:
- sections[index] = new ElfSection(*tmp_shdr[index], tmp_file, this);
- }
- }
- return sections[index];
- }
-
--ElfSection* Elf::getSectionAt(unsigned int offset) {
-+ElfSection* Elf::getSectionAt(Elf64_Off offset) {
- for (int i = 1; i < ehdr->e_shnum; i++) {
- ElfSection* section = getSection(i);
- if ((section != nullptr) && (section->getFlags() & SHF_ALLOC) &&
- !(section->getFlags() & SHF_TLS) && (offset >= section->getAddr())
&&
- (offset < section->getAddr() + section->getSize()))
- return section;
- }
- return nullptr;
-@@ -529,38 +529,38 @@ ElfSection::ElfSection(Elf_Shdr& s, std:
- // Only SHT_REL/SHT_RELA sections use sh_info to store a section
- // number.
- if ((shdr.sh_type == SHT_REL) || (shdr.sh_type == SHT_RELA))
- info.section = shdr.sh_info ? parent->getSection(shdr.sh_info) :
nullptr;
- else
- info.index = shdr.sh_info;
- }
-
--unsigned int ElfSection::getAddr() {
-+Elf64_Addr ElfSection::getAddr() {
- if (shdr.sh_addr != (Elf64_Addr)-1) return shdr.sh_addr;
-
- // It should be safe to adjust sh_addr for all allocated sections that
- // are neither SHT_NOBITS nor SHT_PROGBITS
- if ((previous != nullptr) && isRelocatable()) {
- unsigned int addr = previous->getAddr();
- if (previous->getType() != SHT_NOBITS) addr += previous->getSize();
-
- if (addr & (getAddrAlign() - 1)) addr = (addr | (getAddrAlign() - 1)) +
1;
-
- return (shdr.sh_addr = addr);
- }
- return shdr.sh_addr;
- }
-
--unsigned int ElfSection::getOffset() {
-+Elf64_Off ElfSection::getOffset() {
- if (shdr.sh_offset != (Elf64_Off)-1) return shdr.sh_offset;
-
- if (previous == nullptr) return (shdr.sh_offset = 0);
-
-- unsigned int offset = previous->getOffset();
-+ Elf64_Off offset = previous->getOffset();
-
- ElfSegment* ptload = getSegmentByType(PT_LOAD);
- ElfSegment* prev_ptload = previous->getSegmentByType(PT_LOAD);
-
- if (ptload && (ptload == prev_ptload)) {
- offset += getAddr() - previous->getAddr();
- return (shdr.sh_offset = offset);
- }
-diff --git a/build/unix/elfhack/elfhack.cpp b/build/unix/elfhack/elfhack.cpp
---- a/build/unix/elfhack/elfhack.cpp
-+++ b/build/unix/elfhack/elfhack.cpp
-@@ -1255,18 +1255,18 @@ int do_relocation_section(Elf* elf, unsi
- "Expected to find an .eh_frame section adjacent to .eh_frame_hdr");
- }
- if (eh_frame && first->getAddr() > relhack->getAddr() &&
- second->getAddr() < first_executable->getAddr()) {
- // The distance between both sections needs to be preserved because
- // eh_frame_hdr contains relative offsets to eh_frame. Well, they could
be
- // relocated too, but it's not worth the effort for the few number of
bytes
- // this would save.
-- unsigned int distance = second->getAddr() - first->getAddr();
-- unsigned int origAddr = eh_frame->getAddr();
-+ Elf64_Off distance = second->getAddr() - first->getAddr();
-+ Elf64_Addr origAddr = eh_frame->getAddr();
- ElfSection* previous = first->getPrevious();
- first->getShdr().sh_addr = (previous->getAddr() + previous->getSize() +
- first->getAddrAlign() - 1) &
- ~(first->getAddrAlign() - 1);
- second->getShdr().sh_addr =
- (first->getAddr() + std::min(first->getSize(), distance) +
- second->getAddrAlign() - 1) &
- ~(second->getAddrAlign() - 1);
-diff --git a/build/unix/elfhack/elfxx.h b/build/unix/elfhack/elfxx.h
---- a/build/unix/elfhack/elfxx.h
-+++ b/build/unix/elfhack/elfxx.h
-@@ -280,17 +280,17 @@ typedef serializable<Elf_Shdr_Traits> El
- class Elf {
- public:
- Elf(std::ifstream& file);
- ~Elf();
-
- /* index == -1 is treated as index == ehdr.e_shstrndx */
- ElfSection* getSection(int index);
-
-- ElfSection* getSectionAt(unsigned int offset);
-+ ElfSection* getSectionAt(Elf64_Off offset);
-
- ElfSegment* getSegmentByType(unsigned int type, ElfSegment* last =
nullptr);
-
- ElfDynamic_Section* getDynSection();
-
- void normalize();
- void write(std::ofstream& file);
-
-@@ -329,18 +329,18 @@ class ElfSection {
-
- ElfSection(Elf_Shdr& s, std::ifstream* file, Elf* parent);
-
- virtual ~ElfSection() { free(data); }
-
- const char* getName() { return name; }
- unsigned int getType() { return shdr.sh_type; }
- unsigned int getFlags() { return shdr.sh_flags; }
-- unsigned int getAddr();
-- unsigned int getSize() { return shdr.sh_size; }
-+ Elf64_Addr getAddr();
-+ Elf64_Off getSize() { return shdr.sh_size; }
- unsigned int getAddrAlign() { return shdr.sh_addralign; }
- unsigned int getEntSize() { return shdr.sh_entsize; }
- const char* getData() { return data; }
- ElfSection* getLink() { return link; }
- SectionInfo getInfo() { return info; }
-
- void shrink(unsigned int newsize) {
- if (newsize < shdr.sh_size) {
-@@ -353,17 +353,17 @@ class ElfSection {
- if (newsize > shdr.sh_size) {
- data = static_cast<char*>(realloc(data, newsize));
- memset(data + shdr.sh_size, 0, newsize - shdr.sh_size);
- shdr.sh_size = newsize;
- markDirty();
- }
- }
-
-- unsigned int getOffset();
-+ Elf64_Off getOffset();
- int getIndex();
- Elf_Shdr& getShdr();
-
- ElfSection* getNext() { return next; }
- ElfSection* getPrevious() { return previous; }
-
- virtual bool isRelocatable() {
- return ((getType() == SHT_SYMTAB) || (getType() == SHT_STRTAB) ||
-
diff --git a/http/firefox/patches/0029-bmo-1516803-gcc-lto-sandbox.patch
b/http/firefox/patches/0029-bmo-1516803-gcc-lto-sandbox.patch
deleted file mode 100644
index eff08f6..0000000
--- a/http/firefox/patches/0029-bmo-1516803-gcc-lto-sandbox.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Naur a/security/sandbox/linux/moz.build
b/security/sandbox/linux/moz.build
---- a/security/sandbox/linux/moz.build 2023-07-04 13:57:56.029462755 +0300
-+++ b/security/sandbox/linux/moz.build 2023-07-04 14:05:08.607221195 +0300
-@@ -114,9 +114,9 @@
- # gcc lto likes to put the top level asm in syscall.cc in a different
partition
- # from the function using it which breaks the build. Work around that by
- # forcing there to be only one partition.
--for f in CONFIG["OS_CXXFLAGS"]:
-- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
-- LDFLAGS += ["--param lto-partitions=1"]
-+if CONFIG['CC_TYPE'] != 'clang':
-+ LDFLAGS += ['--param', 'lto-partitions=1']
-+
-
- DEFINES["NS_NO_XPCOM"] = True
- DisableStlWrapping()
diff --git a/http/firefox/patches/0029-enable-vaapi-on-all-amd-cards.patch
b/http/firefox/patches/0029-enable-vaapi-on-all-amd-cards.patch
new file mode 100644
index 0000000..112cd42
--- /dev/null
+++ b/http/firefox/patches/0029-enable-vaapi-on-all-amd-cards.patch
@@ -0,0 +1,19 @@
+diff -up firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi
firefox-115.0/widget/gtk/GfxInfo.cpp
+--- firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi 2023-06-29
12:18:53.179833765 +0200
++++ firefox-115.0/widget/gtk/GfxInfo.cpp 2023-06-29 12:19:33.256212776
+0200
+@@ -970,14 +970,6 @@ const nsTArray<GfxDriverInfo>& GfxInfo::
+ nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED,
+ V(0, 0, 0, 0), "FEATURE_HARDWARE_VIDEO_DECODING_NO_R600", "");
+
+- // Disable on Release/late Beta on AMD
+-#if !defined(EARLY_BETA_OR_EARLIER)
+- APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Linux, DeviceFamily::AtiAll,
+- nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
+- nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
+- DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0),
+- "FEATURE_HARDWARE_VIDEO_DECODING_DISABLE",
"");
+-#endif
+ ////////////////////////////////////
+ // FEATURE_HW_DECODED_VIDEO_ZERO_COPY - ALLOWLIST
+ APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Linux, DeviceFamily::All,
+
diff --git
a/http/firefox/patches/0030-bmo-1839023-arm-unified-build-missing-header.patch

b/http/firefox/patches/0030-bmo-1839023-arm-unified-build-missing-header.patch
new file mode 100644
index 0000000..ae426cd
--- /dev/null
+++
b/http/firefox/patches/0030-bmo-1839023-arm-unified-build-missing-header.patch
@@ -0,0 +1,77 @@
+
+# HG changeset patch
+# User serge-sans-paille <sguelton AT mozilla.com>
+# Date 1687447863 0
+# Node ID 34ef9f4d1d2c638f47eb4615a6ea47c011c91e87
+# Parent eecca96ba9040cb07462280dda39d8551fc8c098
+Bug 1839023 - Fix missing arm-specifc header r=nbp
+
+Differential Revision: https://phabricator.services.mozilla.com/D181738
+
+diff --git a/js/src/jit/shared/AtomicOperations-shared-jit.cpp
b/js/src/jit/shared/AtomicOperations-shared-jit.cpp
+--- a/js/src/jit/shared/AtomicOperations-shared-jit.cpp
++++ b/js/src/jit/shared/AtomicOperations-shared-jit.cpp
+@@ -1,16 +1,20 @@
+ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ * vim: set ts=8 sts=4 et sw=4 tw=99:
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+ #include "jit/AtomicOperations.h"
+
++#if defined(__arm__)
++# include "jit/arm/Architecture-arm.h"
++#endif
++
+ #ifdef JS_HAVE_GENERATED_ATOMIC_OPS
+
+ # include <atomic>
+
+ # include "js/GCAPI.h"
+
+ using namespace js;
+ using namespace js::jit;
+@@ -73,18 +77,18 @@ void AtomicMemcpyDownUnsynchronized(uint
+ const uint8_t* lim = src + nbytes;
+
+ // Set up bulk copying. The cases are ordered the way they are on the
+ // assumption that if we can achieve aligned copies even with a little
+ // preprocessing then that is better than unaligned copying on a platform
+ // that supports it.
+
+ if (nbytes >= WORDSIZE) {
+- void (*copyBlock)(uint8_t * dest, const uint8_t* src);
+- void (*copyWord)(uint8_t * dest, const uint8_t* src);
++ void (*copyBlock)(uint8_t* dest, const uint8_t* src);
++ void (*copyWord)(uint8_t* dest, const uint8_t* src);
+
+ if (((uintptr_t(dest) ^ uintptr_t(src)) & WORDMASK) == 0) {
+ const uint8_t* cutoff = (const uint8_t*)RoundUp(uintptr_t(src),
WORDSIZE);
+ MOZ_ASSERT(cutoff <= lim); // because nbytes >= WORDSIZE
+ while (src < cutoff) {
+ AtomicCopyByteUnsynchronized(dest++, src++);
+ }
+ copyBlock = AtomicCopyBlockDownUnsynchronized;
+@@ -126,18 +130,18 @@ void AtomicMemcpyUpUnsynchronized(uint8_
+ JS::AutoSuppressGCAnalysis nogc;
+
+ const uint8_t* lim = src;
+
+ src += nbytes;
+ dest += nbytes;
+
+ if (nbytes >= WORDSIZE) {
+- void (*copyBlock)(uint8_t * dest, const uint8_t* src);
+- void (*copyWord)(uint8_t * dest, const uint8_t* src);
++ void (*copyBlock)(uint8_t* dest, const uint8_t* src);
++ void (*copyWord)(uint8_t* dest, const uint8_t* src);
+
+ if (((uintptr_t(dest) ^ uintptr_t(src)) & WORDMASK) == 0) {
+ const uint8_t* cutoff = (const uint8_t*)(uintptr_t(src) & ~WORDMASK);
+ MOZ_ASSERT(cutoff >= lim); // Because nbytes >= WORDSIZE
+ while (src > cutoff) {
+ AtomicCopyByteUnsynchronized(--dest, --src);
+ }
+ copyBlock = AtomicCopyBlockUpUnsynchronized;
+
diff --git a/http/firefox/patches/0030-enable-vaapi-on-all-amd-cards.patch
b/http/firefox/patches/0030-enable-vaapi-on-all-amd-cards.patch
deleted file mode 100644
index 112cd42..0000000
--- a/http/firefox/patches/0030-enable-vaapi-on-all-amd-cards.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi
firefox-115.0/widget/gtk/GfxInfo.cpp
---- firefox-115.0/widget/gtk/GfxInfo.cpp.firefox-enable-vaapi 2023-06-29
12:18:53.179833765 +0200
-+++ firefox-115.0/widget/gtk/GfxInfo.cpp 2023-06-29 12:19:33.256212776
+0200
-@@ -970,14 +970,6 @@ const nsTArray<GfxDriverInfo>& GfxInfo::
- nsIGfxInfo::FEATURE_BLOCKED_DEVICE, DRIVER_COMPARISON_IGNORED,
- V(0, 0, 0, 0), "FEATURE_HARDWARE_VIDEO_DECODING_NO_R600", "");
-
-- // Disable on Release/late Beta on AMD
--#if !defined(EARLY_BETA_OR_EARLIER)
-- APPEND_TO_DRIVER_BLOCKLIST(OperatingSystem::Linux, DeviceFamily::AtiAll,
-- nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING,
-- nsIGfxInfo::FEATURE_BLOCKED_DEVICE,
-- DRIVER_COMPARISON_IGNORED, V(0, 0, 0, 0),
-- "FEATURE_HARDWARE_VIDEO_DECODING_DISABLE",
"");
--#endif
- ////////////////////////////////////
- // FEATURE_HW_DECODED_VIDEO_ZERO_COPY - ALLOWLIST
- APPEND_TO_DRIVER_BLOCKLIST2(OperatingSystem::Linux, DeviceFamily::All,
-
diff --git
a/http/firefox/patches/0031-bmo-1838655-arm-unified-build-missing-include.patch

b/http/firefox/patches/0031-bmo-1838655-arm-unified-build-missing-include.patch
new file mode 100644
index 0000000..7f147b5
--- /dev/null
+++
b/http/firefox/patches/0031-bmo-1838655-arm-unified-build-missing-include.patch
@@ -0,0 +1,32 @@
+
+# HG changeset patch
+# User serge-sans-paille <sguelton AT mozilla.com>
+# Date 1687446945 0
+# Node ID 1adf82bd9e2cf5acf7d0436e32586c989caab721
+# Parent e26973ce42e90c24534a8e08674cbf3e86b4fe72
+Bug 1838655 - Add missing include for ByteBuf.h r=chutten
+
+Differential Revision: https://phabricator.services.mozilla.com/D181448
+
+diff --git a/toolkit/components/glean/ipc/Support.cpp
b/toolkit/components/glean/ipc/Support.cpp
+--- a/toolkit/components/glean/ipc/Support.cpp
++++ b/toolkit/components/glean/ipc/Support.cpp
+@@ -5,16 +5,17 @@
+
+ // This file is for support functions for the Rust IPC module.
+ // Some information just isn't available to Rust and must be made available
over
+ // FFI.
+ #include "FOGIPC.h"
+ #include "mozilla/AppShutdown.h"
+ #include "mozilla/ClearOnShutdown.h"
+ #include "mozilla/glean/GleanMetrics.h"
++#include "mozilla/ipc/ByteBuf.h"
+ #include "mozilla/Unused.h"
+ #include "nsThreadUtils.h"
+
+ using mozilla::AppShutdown;
+ using mozilla::RunOnShutdown;
+ using mozilla::ShutdownPhase;
+ using mozilla::Unused;
+ using mozilla::glean::FlushFOGData;
+
diff --git
a/http/firefox/patches/0031-bmo-1839023-arm-unified-build-missing-header.patch

b/http/firefox/patches/0031-bmo-1839023-arm-unified-build-missing-header.patch
deleted file mode 100644
index ae426cd..0000000
---
a/http/firefox/patches/0031-bmo-1839023-arm-unified-build-missing-header.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# HG changeset patch
-# User serge-sans-paille <sguelton AT mozilla.com>
-# Date 1687447863 0
-# Node ID 34ef9f4d1d2c638f47eb4615a6ea47c011c91e87
-# Parent eecca96ba9040cb07462280dda39d8551fc8c098
-Bug 1839023 - Fix missing arm-specifc header r=nbp
-
-Differential Revision: https://phabricator.services.mozilla.com/D181738
-
-diff --git a/js/src/jit/shared/AtomicOperations-shared-jit.cpp
b/js/src/jit/shared/AtomicOperations-shared-jit.cpp
---- a/js/src/jit/shared/AtomicOperations-shared-jit.cpp
-+++ b/js/src/jit/shared/AtomicOperations-shared-jit.cpp
-@@ -1,16 +1,20 @@
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * vim: set ts=8 sts=4 et sw=4 tw=99:
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- #include "jit/AtomicOperations.h"
-
-+#if defined(__arm__)
-+# include "jit/arm/Architecture-arm.h"
-+#endif
-+
- #ifdef JS_HAVE_GENERATED_ATOMIC_OPS
-
- # include <atomic>
-
- # include "js/GCAPI.h"
-
- using namespace js;
- using namespace js::jit;
-@@ -73,18 +77,18 @@ void AtomicMemcpyDownUnsynchronized(uint
- const uint8_t* lim = src + nbytes;
-
- // Set up bulk copying. The cases are ordered the way they are on the
- // assumption that if we can achieve aligned copies even with a little
- // preprocessing then that is better than unaligned copying on a platform
- // that supports it.
-
- if (nbytes >= WORDSIZE) {
-- void (*copyBlock)(uint8_t * dest, const uint8_t* src);
-- void (*copyWord)(uint8_t * dest, const uint8_t* src);
-+ void (*copyBlock)(uint8_t* dest, const uint8_t* src);
-+ void (*copyWord)(uint8_t* dest, const uint8_t* src);
-
- if (((uintptr_t(dest) ^ uintptr_t(src)) & WORDMASK) == 0) {
- const uint8_t* cutoff = (const uint8_t*)RoundUp(uintptr_t(src),
WORDSIZE);
- MOZ_ASSERT(cutoff <= lim); // because nbytes >= WORDSIZE
- while (src < cutoff) {
- AtomicCopyByteUnsynchronized(dest++, src++);
- }
- copyBlock = AtomicCopyBlockDownUnsynchronized;
-@@ -126,18 +130,18 @@ void AtomicMemcpyUpUnsynchronized(uint8_
- JS::AutoSuppressGCAnalysis nogc;
-
- const uint8_t* lim = src;
-
- src += nbytes;
- dest += nbytes;
-
- if (nbytes >= WORDSIZE) {
-- void (*copyBlock)(uint8_t * dest, const uint8_t* src);
-- void (*copyWord)(uint8_t * dest, const uint8_t* src);
-+ void (*copyBlock)(uint8_t* dest, const uint8_t* src);
-+ void (*copyWord)(uint8_t* dest, const uint8_t* src);
-
- if (((uintptr_t(dest) ^ uintptr_t(src)) & WORDMASK) == 0) {
- const uint8_t* cutoff = (const uint8_t*)(uintptr_t(src) & ~WORDMASK);
- MOZ_ASSERT(cutoff >= lim); // Because nbytes >= WORDSIZE
- while (src > cutoff) {
- AtomicCopyByteUnsynchronized(--dest, --src);
- }
- copyBlock = AtomicCopyBlockUpUnsynchronized;
-
diff --git
a/http/firefox/patches/0032-bgo-907963-rustflags-single-string.patch
b/http/firefox/patches/0032-bgo-907963-rustflags-single-string.patch
new file mode 100644
index 0000000..a56aec4
--- /dev/null
+++ b/http/firefox/patches/0032-bgo-907963-rustflags-single-string.patch
@@ -0,0 +1,76 @@
+--- firefox-111.0.1/build/moz.configure/rust.configure 2023-03-21
06:16:03.000000000 -0700
++++ firefox-111.0.1/build/moz.configure/rust.configure.new 2023-04-05
08:57:29.403219120 -0700
+@@ -593,7 +593,7 @@
+
+ # ==============================================================
+
+-option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags")
++option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags",
comma_split=False)
+ set_config("RUSTFLAGS", depends("RUSTFLAGS")(lambda flags: flags))
+
+
+--- firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py
2023-03-21 06:16:09.000000000 -0700
++++ firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py.new
2023-04-05 08:57:31.270193468 -0700
+@@ -191,6 +191,10 @@
+ to instantiate an option indirectly. Set this to a positive integer to
+ force the script to look into a deeper stack frame when inferring the
+ `category`.
++ - `comma_split` specifies whether the value string should be split on
++ commas. The default is True. Setting it False is necessary for things
++ like compiler flags which should be a single string that may contain
++ commas.
+ """
+
+ __slots__ = (
+@@ -205,6 +209,7 @@
+ "possible_origins",
+ "category",
+ "define_depth",
++ "comma_split",
+ )
+
+ def __init__(
+@@ -218,6 +223,7 @@
+ category=None,
+ help=None,
+ define_depth=0,
++ comma_split=True,
+ ):
+ if not name and not env:
+ raise InvalidOptionError(
+@@ -335,9 +341,10 @@
+ self.choices = choices
+ self.help = help
+ self.category = category or _infer_option_category(define_depth)
++ self.comma_split = comma_split
+
+ @staticmethod
+- def split_option(option):
++ def split_option(option, comma_split=True):
+ """Split a flag or variable into a prefix, a name and values
+
+ Variables come in the form NAME=values (no prefix).
+@@ -350,7 +357,13 @@
+
+ elements = option.split("=", 1)
+ name = elements[0]
+- values = tuple(elements[1].split(",")) if len(elements) == 2 else ()
++ if len(elements) == 2:
++ if comma_split:
++ values = tuple(elements[1].split(","))
++ else:
++ values = (elements[1],)
++ else:
++ values = ()
+ if name.startswith("--"):
+ name = name[2:]
+ if not name.islower():
+@@ -426,7 +439,7 @@
+ % (option, origin, ", ".join(self.possible_origins))
+ )
+
+- prefix, name, values = self.split_option(option)
++ prefix, name, values = self.split_option(option, self.comma_split)
+ option = self._join_option(prefix, name)
+
+ assert name in (self.name, self.env)
diff --git
a/http/firefox/patches/0032-bmo-1838655-arm-unified-build-missing-include.patch

b/http/firefox/patches/0032-bmo-1838655-arm-unified-build-missing-include.patch
deleted file mode 100644
index 7f147b5..0000000
---
a/http/firefox/patches/0032-bmo-1838655-arm-unified-build-missing-include.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# HG changeset patch
-# User serge-sans-paille <sguelton AT mozilla.com>
-# Date 1687446945 0
-# Node ID 1adf82bd9e2cf5acf7d0436e32586c989caab721
-# Parent e26973ce42e90c24534a8e08674cbf3e86b4fe72
-Bug 1838655 - Add missing include for ByteBuf.h r=chutten
-
-Differential Revision: https://phabricator.services.mozilla.com/D181448
-
-diff --git a/toolkit/components/glean/ipc/Support.cpp
b/toolkit/components/glean/ipc/Support.cpp
---- a/toolkit/components/glean/ipc/Support.cpp
-+++ b/toolkit/components/glean/ipc/Support.cpp
-@@ -5,16 +5,17 @@
-
- // This file is for support functions for the Rust IPC module.
- // Some information just isn't available to Rust and must be made available
over
- // FFI.
- #include "FOGIPC.h"
- #include "mozilla/AppShutdown.h"
- #include "mozilla/ClearOnShutdown.h"
- #include "mozilla/glean/GleanMetrics.h"
-+#include "mozilla/ipc/ByteBuf.h"
- #include "mozilla/Unused.h"
- #include "nsThreadUtils.h"
-
- using mozilla::AppShutdown;
- using mozilla::RunOnShutdown;
- using mozilla::ShutdownPhase;
- using mozilla::Unused;
- using mozilla::glean::FlushFOGData;
-
diff --git
a/http/firefox/patches/0033-bgo-907963-rustflags-single-string.patch
b/http/firefox/patches/0033-bgo-907963-rustflags-single-string.patch
deleted file mode 100644
index a56aec4..0000000
--- a/http/firefox/patches/0033-bgo-907963-rustflags-single-string.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- firefox-111.0.1/build/moz.configure/rust.configure 2023-03-21
06:16:03.000000000 -0700
-+++ firefox-111.0.1/build/moz.configure/rust.configure.new 2023-04-05
08:57:29.403219120 -0700
-@@ -593,7 +593,7 @@
-
- # ==============================================================
-
--option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags")
-+option(env="RUSTFLAGS", nargs=1, help="Rust compiler flags",
comma_split=False)
- set_config("RUSTFLAGS", depends("RUSTFLAGS")(lambda flags: flags))
-
-
---- firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py
2023-03-21 06:16:09.000000000 -0700
-+++ firefox-111.0.1/python/mozbuild/mozbuild/configure/options.py.new
2023-04-05 08:57:31.270193468 -0700
-@@ -191,6 +191,10 @@
- to instantiate an option indirectly. Set this to a positive integer to
- force the script to look into a deeper stack frame when inferring the
- `category`.
-+ - `comma_split` specifies whether the value string should be split on
-+ commas. The default is True. Setting it False is necessary for things
-+ like compiler flags which should be a single string that may contain
-+ commas.
- """
-
- __slots__ = (
-@@ -205,6 +209,7 @@
- "possible_origins",
- "category",
- "define_depth",
-+ "comma_split",
- )
-
- def __init__(
-@@ -218,6 +223,7 @@
- category=None,
- help=None,
- define_depth=0,
-+ comma_split=True,
- ):
- if not name and not env:
- raise InvalidOptionError(
-@@ -335,9 +341,10 @@
- self.choices = choices
- self.help = help
- self.category = category or _infer_option_category(define_depth)
-+ self.comma_split = comma_split
-
- @staticmethod
-- def split_option(option):
-+ def split_option(option, comma_split=True):
- """Split a flag or variable into a prefix, a name and values
-
- Variables come in the form NAME=values (no prefix).
-@@ -350,7 +357,13 @@
-
- elements = option.split("=", 1)
- name = elements[0]
-- values = tuple(elements[1].split(",")) if len(elements) == 2 else ()
-+ if len(elements) == 2:
-+ if comma_split:
-+ values = tuple(elements[1].split(","))
-+ else:
-+ values = (elements[1],)
-+ else:
-+ values = ()
- if name.startswith("--"):
- name = name[2:]
- if not name.islower():
-@@ -426,7 +439,7 @@
- % (option, origin, ", ".join(self.possible_origins))
- )
-
-- prefix, name, values = self.split_option(option)
-+ prefix, name, values = self.split_option(option, self.comma_split)
- option = self._join_option(prefix, name)
-
- assert name in (self.name, self.env)



  • [SM-Commit] GIT changes to master grimoire by Pavel Vinogradov (ac706a0b9e3a88447711d3d3889801121d4b5a81), Pavel Vinogradov, 07/05/2023

Archive powered by MHonArc 2.6.24.

Top of Page