On Fri, Oct 23, 2026 at 10:57:57PM -0400, Brad Smith wrote: > The OpenBSD powerpc64 target header defined JUMP_TABLES_IN_TEXT_SECTION, > which emits switch jump tables inline in .text. OpenBSD maps text > execute-only, so code that loads from a jump table faults. This showed > up as NumPy crashing on import on powerpc64. > > Drop the override so jump tables go in .rodata like other targets.
Makes sense to me, ok jca@ for this part. > While here, also remove a powerpc64 build workaround in tree-vect-loop.cc > that is no longer necessary. I didn't check this part. +cc kirill@ gkoehler@ > Index: Makefile > =================================================================== > RCS file: /cvs/ports/lang/gcc/16/Makefile,v > retrieving revision 1.36 > diff -u -p -u -p -r1.36 Makefile > --- Makefile 23 Oct 2026 16:20:03 -0000 1.36 > +++ Makefile 24 Oct 2026 02:39:56 -0000 > @@ -15,7 +15,7 @@ USE_NOEXECONLY = Yes > # - turn -Wimplicit-function-declaration and -Wincompatible-pointer-types > # into simple warnings. > V = 16.2.0 > -REVISION = 2 > +REVISION = 3 > GCC_PKGSPEC = >=16,<17 > > # aarch64, powerpc64 and sparc64 bootstrap contain only gdc > Index: patches/patch-gcc_config_rs6000_openbsd64_h > =================================================================== > RCS file: /cvs/ports/lang/gcc/16/patches/patch-gcc_config_rs6000_openbsd64_h,v > retrieving revision 1.1.1.1 > diff -u -p -u -p -r1.1.1.1 patch-gcc_config_rs6000_openbsd64_h > --- patches/patch-gcc_config_rs6000_openbsd64_h 2 Jun 2026 20:00:17 > -0000 1.1.1.1 > +++ patches/patch-gcc_config_rs6000_openbsd64_h 24 Oct 2026 02:39:57 > -0000 > @@ -1,7 +1,7 @@ > Index: gcc/config/rs6000/openbsd64.h > --- gcc/config/rs6000/openbsd64.h.orig > +++ gcc/config/rs6000/openbsd64.h > -@@ -0,0 +1,411 @@ > +@@ -0,0 +1,407 @@ > +/* Definitions for 64-bit PowerPC running OpenBSD using the ELF format > + Copyright (C) 2012-2021 Free Software Foundation, Inc. > + > @@ -182,10 +182,6 @@ Index: gcc/config/rs6000/openbsd64.h > +#undef TARGET_ALIGN_NATURAL > +#define TARGET_ALIGN_NATURAL 1 > +#endif > -+ > -+/* Indicate that jump tables go in the text section. */ > -+#undef JUMP_TABLES_IN_TEXT_SECTION > -+#define JUMP_TABLES_IN_TEXT_SECTION TARGET_64BIT > + > +/* The linux ppc64 ABI isn't explicit on whether aggregates smaller > + than a doubleword should be padded upward or downward. You could > Index: patches/patch-gcc_tree-vect-loop_cc > =================================================================== > RCS file: patches/patch-gcc_tree-vect-loop_cc > diff -N patches/patch-gcc_tree-vect-loop_cc > --- patches/patch-gcc_tree-vect-loop_cc 2 Jun 2026 20:00:17 -0000 > 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,12 +0,0 @@ > -Index: gcc/tree-vect-loop.cc > ---- gcc/tree-vect-loop.cc.orig > -+++ gcc/tree-vect-loop.cc > -@@ -61,6 +61,8 @@ along with GCC; see the file COPYING3. If not see > - #include "opts.h" > - #include "hierarchical_discriminator.h" > - > -+#define vec_step vec_step_ > -+ > - /* Loop Vectorization Pass. > - > - This pass tries to vectorize loops. > -- jca
