On 2026-10-16 5:38 p.m., Jeremie Courreges-Anglas wrote:
+cc $MAINTAINER
On Fri, Oct 16, 2026 at 04:19:26PM -0400, Brad Smith wrote:
On 2026-10-16 5:29 a.m., Kirill A. Korinsky wrote:
On Fri, 16 Oct 2026 09:27:30 +0200,
Brad Smith <[email protected]> wrote:
Some fixes for bootgcc..
- Sync the hppa bits over from lang/gcc/8 to bootgcc
- Fix ONLY_FOR_ARCHS no point for m88k
I wonder why have you drop support of m88k from bootgcc?
There is no m88k support.
You mean it doesn't have patches for OpenBSD/m88k, but it has support
for m88k on other systems.
No, I don't mean that at all.
I'm not sure we need to care about that
though. ONLY_FOR_ARCHS = ${GCC4_ARCHS} conveys the intended meaning,
and nobody runs bulk builds on m88k anyway.
I don't really object to that part of the diff either.
I have no mean to test it so, I have no idea does it work or no.
Here's a diff that was successfully tested by miod@ last year.
Pascal, Kirill: ok?
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/bootgcc/Makefile,v
diff -u -p -r1.12 Makefile
--- Makefile 16 Feb 2025 22:12:43 -0000 1.12
+++ Makefile 16 Oct 2026 21:32:05 -0000
@@ -5,7 +5,7 @@ DPB_PROPERTIES = parallel
V = 8.4.0
FULL_VERSION = $V
FULL_PKGVERSION = $V
-REVISION = 8
+REVISION = 9
COMMENT = GNU Compiler Collection; bootstrap package
PKGNAME = bootgcc-${FULL_PKGVERSION}
Index: patches/patch-gcc_common_opt
===================================================================
RCS file: /cvs/ports/lang/bootgcc/patches/patch-gcc_common_opt,v
diff -u -p -r1.2 patch-gcc_common_opt
--- patches/patch-gcc_common_opt 11 Mar 2022 19:28:50 -0000 1.2
+++ patches/patch-gcc_common_opt 16 Oct 2026 21:32:05 -0000
@@ -59,6 +59,15 @@ Index: gcc/common.opt
Process #ident directives.
fif-conversion
+@@ -1779,7 +1787,7 @@ Common Report Var(flag_ivopts) Init(1) Optimization
+ Optimize induction variables on trees.
+
+ fjump-tables
+-Common Var(flag_jump_tables) Init(1) Optimization
++Common Var(flag_jump_tables) Init(0) Optimization
+ Use jump tables for sufficiently large switch statements.
+
+ fkeep-inline-functions
@@ -2387,7 +2395,7 @@ Common RejectNegative Joined Var(common_deferred_optio
-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
Index: patches/patch-gcc_config_pa_pa-openbsd_h
===================================================================
RCS file: /cvs/ports/lang/bootgcc/patches/patch-gcc_config_pa_pa-openbsd_h,v
diff -u -p -r1.2 patch-gcc_config_pa_pa-openbsd_h
--- patches/patch-gcc_config_pa_pa-openbsd_h 11 Mar 2022 19:28:50 -0000
1.2
+++ patches/patch-gcc_config_pa_pa-openbsd_h 16 Oct 2026 21:32:05 -0000
@@ -1,7 +1,12 @@
+Update OpenBSD-specific configuration on hppa for:
+- PIE support.
+- make __builtin_return_address() not try to read from text sections.
+- put switch() jump tables in .rodata in order not to read from text sections.
+
Index: gcc/config/pa/pa-openbsd.h
--- gcc/config/pa/pa-openbsd.h.orig
+++ gcc/config/pa/pa-openbsd.h
-@@ -138,14 +138,15 @@ along with GCC; see the file COPYING3. If not see
+@@ -138,17 +138,31 @@ along with GCC; see the file COPYING3. If not see
%{shared:-shared} %{R*} \
%{static:-Bstatic} \
%{!static:-Bdynamic} \
@@ -21,3 +26,19 @@ Index: gcc/config/pa/pa-openbsd.h
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
++/* Find the return address associated with the frame given by
++ FRAMEADDR.
++ The default code in pa.h invokes return_addr_rtx(), which attemps to
++ read code at the return pointer in order to check for an export stub.
++ This is not possible under OpenBSD as code is not readable; but such
++ export stubs are not used under OpenBSD anymay. */
++#undef RETURN_ADDR_RTX
++#define RETURN_ADDR_RTX(COUNT, FRAMEADDR) \
++ ((COUNT) == 0 ? get_hard_reg_initial_val (Pmode, 2) : NULL_RTX)
++
+ #define OBSD_HAS_CORRECT_SPECS
+
+ #define HAVE_ENABLE_EXECUTE_STACK
++
++#undef JUMP_TABLES_IN_TEXT_SECTION
++#define JUMP_TABLES_IN_TEXT_SECTION 0