diff options
Diffstat (limited to 'lang/gcc15-devel')
-rw-r--r-- | lang/gcc15-devel/Makefile | 3 | ||||
-rw-r--r-- | lang/gcc15-devel/distinfo | 6 | ||||
-rw-r--r-- | lang/gcc15-devel/files/patch-libgcc_unwind.inc | 28 |
3 files changed, 33 insertions, 4 deletions
diff --git a/lang/gcc15-devel/Makefile b/lang/gcc15-devel/Makefile index 9dfb04c41bce..5caf32b24cd0 100644 --- a/lang/gcc15-devel/Makefile +++ b/lang/gcc15-devel/Makefile @@ -1,5 +1,6 @@ PORTNAME= gcc -PORTVERSION= 15.0.1.s20250406 +PORTVERSION= 15.0.1.s20250413 +PORTREVISION= 1 CATEGORIES= lang MASTER_SITES= GCC/snapshots/${DIST_VERSION} PKGNAMESUFFIX= ${SUFFIX}-devel diff --git a/lang/gcc15-devel/distinfo b/lang/gcc15-devel/distinfo index 7e677a34ea57..26336ce2eb47 100644 --- a/lang/gcc15-devel/distinfo +++ b/lang/gcc15-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1744018608 -SHA256 (gcc-15-20250406.tar.xz) = 04422c0c555d1d41a16537a96c2ed937005823e74a38f8dd380c97adf8ad34da -SIZE (gcc-15-20250406.tar.xz) = 91871244 +TIMESTAMP = 1744619901 +SHA256 (gcc-15-20250413.tar.xz) = f066fb74ce533d167fccb6429dc0819bdcc8eb43a992c8ad49020f8616ae2986 +SIZE (gcc-15-20250413.tar.xz) = 91915660 diff --git a/lang/gcc15-devel/files/patch-libgcc_unwind.inc b/lang/gcc15-devel/files/patch-libgcc_unwind.inc new file mode 100644 index 000000000000..42155a9ba48e --- /dev/null +++ b/lang/gcc15-devel/files/patch-libgcc_unwind.inc @@ -0,0 +1,28 @@ +GCC generates instructions that require variables to be aligned in memory on +certain CPUs. Our libthr does not have the required alignment so these CPUs fail +to execute these instructions. The instructions generation is driven by CPUTYPE. +Some CPUs are fine to execute these instructions on unaligned data. + +This patch explicitly forbids GCC to generate instructions that require +alignment of the data. + +If the entire program is compiled by LLVM or GCC, there is no problem (with GCC +everything is aligned, with LLVM vmovdqa is not used to assign both variables +at once). + +Linux does not have libthr, so Linux is not affected. Moreover Linux is likely +to build everything with GCC. + +--- libgcc/unwind.inc.orig 2025-04-12 08:18:17 UTC ++++ libgcc/unwind.inc +@@ -212,8 +212,8 @@ _Unwind_ForcedUnwind (struct _Unwind_Exception *exc, + uw_init_context (&this_context); + cur_context = this_context; + +- exc->private_1 = (_Unwind_Ptr) stop; +- exc->private_2 = (_Unwind_Ptr) stop_argument; ++ __builtin_memcpy(&exc->private_1, &stop, sizeof(_Unwind_Ptr)); ++ __builtin_memcpy(&exc->private_2, &stop_argument, sizeof(_Unwind_Ptr)); + + code = _Unwind_ForcedUnwind_Phase2 (exc, &cur_context, &frames); + if (code != _URC_INSTALL_CONTEXT) |