summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenzo Salvadore <salvadore@FreeBSD.org>2025-05-16 18:12:36 +0200
committerLorenzo Salvadore <salvadore@FreeBSD.org>2025-05-22 17:27:54 +0200
commit1a30d52dd1d6174e42c42dbbc4bed624c7c122cb (patch)
treeb0e3cc058f213f2d92d6aa70eae81cf4b3734e1d
parentlang/gcc14-devel: Update to 14.2.1.s20250516 (diff)
lang/gcc15-devel: Unbreak on aarch64
FreeBSD defines ElfW(x) to translate Linux's convention to FreeBSD's convention. GCC defines ElfW to convert its convention to FreeBSD's convention. This patch removes the conversion defined by GCC so that the FreeBSD conversion only is applied. Co-authored-by: Mark Millard <marklmi26-fbsd@yahoo.com> PR: 282797 Reported by: John F. Carr <jfc@mit.edu> Email Thread: https://lists.freebsd.org/archives/freebsd-toolchain/2025-May/002282.html
-rw-r--r--lang/gcc15-devel/Makefile1
-rw-r--r--lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c23
2 files changed, 24 insertions, 0 deletions
diff --git a/lang/gcc15-devel/Makefile b/lang/gcc15-devel/Makefile
index 20158b2696b5..d893884a86e4 100644
--- a/lang/gcc15-devel/Makefile
+++ b/lang/gcc15-devel/Makefile
@@ -1,5 +1,6 @@
PORTNAME= gcc
PORTVERSION= 15.1.1.s20250510
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= GCC/snapshots/${DIST_VERSION}
PKGNAMESUFFIX= ${SUFFIX}-devel
diff --git a/lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c b/lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c
new file mode 100644
index 000000000000..66452b37de0f
--- /dev/null
+++ b/lang/gcc15-devel/files/patch-libgcc_unwind-dw2-fde-dip.c
@@ -0,0 +1,23 @@
+FreeBSD defines ElfW(x) to translate Linux's convention to FreeBSD's convention.
+GCC defines ElfW to convert its convention to FreeBSD's convention. This patch
+removes the conversion defined by GCC so that the FreeBSD conversion only is
+applied.
+
+--- libgcc/unwind-dw2-fde-dip.c.orig 2025-05-16 15:47:38 UTC
++++ libgcc/unwind-dw2-fde-dip.c
+@@ -59,13 +59,13 @@
+
+ #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
+ && defined(TARGET_DL_ITERATE_PHDR) \
+- && defined(__linux__)
++ && (defined(__linux__) || defined(__FreeBSD__))
+ # define USE_PT_GNU_EH_FRAME
+ #endif
+
+ #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
+ && defined(TARGET_DL_ITERATE_PHDR) \
+- && (defined(__DragonFly__) || defined(__FreeBSD__))
++ && defined(__DragonFly__)
+ # define ElfW __ElfN
+ # define USE_PT_GNU_EH_FRAME
+ #endif