commit:     2333489f5e52d64cfcdf0882f324e2a76aa6ec93
Author:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 14 21:20:01 2024 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Mon Oct 14 22:08:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2333489f

dev-scheme/racket: patch - repair ELF update

Closes: https://bugs.gentoo.org/929006
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 .../racket/files/racket-8.14-compiler-elf.patch    | 29 ++++++++++++++++++++++
 .../{racket-8.14.ebuild => racket-8.14-r1.ebuild}  |  4 +++
 2 files changed, 33 insertions(+)

diff --git a/dev-scheme/racket/files/racket-8.14-compiler-elf.patch 
b/dev-scheme/racket/files/racket-8.14-compiler-elf.patch
new file mode 100644
index 000000000000..3ba22ffca38e
--- /dev/null
+++ b/dev-scheme/racket/files/racket-8.14-compiler-elf.patch
@@ -0,0 +1,29 @@
+This was modified to make it apply for distribution tarball.
+
+From bf288da1171e884537760d2f5723ceb03840de98 Mon Sep 17 00:00:00 2001
+From: Matthew Flatt <mfl...@racket-lang.org>
+Date: Mon, 26 Aug 2024 07:42:26 -0600
+Subject: [PATCH] raco exe: repair ELF update to add a section
+
+When a NOBITS section is misinterpreted as taking up space in the
+file, and when that space would overlap with the string-constant
+update, then an incorrect update to the virtual-memory size of the
+section was planned. That adjustment, in turn, could trigger
+disallowed virtual-address shifts to PROGBITS sections that are later
+in memory, leading to a "cannot move SHT_PROGBITS section" error.
+---
+ racket/collects/compiler/private/elf.rkt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/racket/collects/compiler/private/elf.rkt 
b/racket/collects/compiler/private/elf.rkt
+index c3009727cfd..a0fbef331db 100644
+--- a/collects/compiler/private/elf.rkt
++++ b/collects/compiler/private/elf.rkt
+@@ -256,6 +256,7 @@
+ (define (find-section-by-offset offset sections)
+   (for/or ([s (in-list sections)])
+     (and (section-alloc? s)
++         (not (= SHT_NOBITS (section-type s)))
+          (offset . >= . (section-offset s))
+          (offset . < . (+ (section-offset s)
+                           (section-size s)))

diff --git a/dev-scheme/racket/racket-8.14.ebuild 
b/dev-scheme/racket/racket-8.14-r1.ebuild
similarity index 98%
rename from dev-scheme/racket/racket-8.14.ebuild
rename to dev-scheme/racket/racket-8.14-r1.ebuild
index 925ecc23c2f1..368267e3d50e 100644
--- a/dev-scheme/racket/racket-8.14.ebuild
+++ b/dev-scheme/racket/racket-8.14-r1.ebuild
@@ -66,6 +66,10 @@ src_prepare() {
 
        # Remove bundled libffi.
        rm -r "${S}/bc/foreign/libffi" || die "failed to remove bundled libffi"
+
+       cd "${WORKDIR}/${P}" || die
+
+       eapply "${FILESDIR}/${P}-compiler-elf.patch"
 }
 
 src_configure() {

Reply via email to