Download raw body.
sparc64 bulk build report
On Mon, 27 Jul 2026 04:27:24 +0200,
Kurt Mosiejczuk <kmos@openbsd.org> wrote:
>
> On Mon, Jul 27, 2026 at 04:21:35AM +0200, Kirill A. Korinsky wrote:
> > On Mon, 27 Jul 2026 00:11:18 +0200,
> > kmos@openbsd.org wrote:
>
> > > Bulk build on sparc64-0a.ports.openbsd.org
>
> > > Started : Fri Jul 24 16:00:35 MDT 2026
> > > Finished: Sun Jul 26 16:10:34 MDT 2026
> > > Duration: 2 Days 0 hours 10 minutes
>
> > > Built using OpenBSD 8.0-beta (GENERIC.MP) #32: Mon Jul 20 16:19:45 MDT 2026
>
> > > Built 8466 packages
>
> > > Number of packages built each day:
> > > Jul 24: 4655
> > > Jul 25: 2820
> > > Jul 26: 991
>
> > Am I right that this bulk is based on checkout after switch to gcc-16?
>
> Correct. It looks like gcc 16 is not getting along with Cython and maybe some other things.
>
For llvm-toolchain I need this diff.
Any chance that it can help here? Can you test it?
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/lang/gcc/16/Makefile,v
diff -u -p -r1.11 Makefile
--- Makefile 23 Jul 2026 21:09:51 -0000 1.11
+++ Makefile 24 Jul 2026 20:42:16 -0000
@@ -19,7 +19,7 @@ USE_NOEXECONLY = Yes
V = 16.1.0
GCC_PKGSPEC = >=16,<17
-REVISION = 5
+REVISION = 6
# aarch64, powerpc64 and sparc64 bootstrap contain only gdc
BOOTSTRAP-aarch64 = gcc-bootstrap-aarch64-16.1.0-0.tar.xz
Index: patches/patch-gcc_config_sparc_openbsd64_h
===================================================================
RCS file: /home/cvs/ports/lang/gcc/16/patches/patch-gcc_config_sparc_openbsd64_h,v
diff -u -p -r1.1.1.1 patch-gcc_config_sparc_openbsd64_h
--- patches/patch-gcc_config_sparc_openbsd64_h 2 Jun 2026 20:00:17 -0000 1.1.1.1
+++ patches/patch-gcc_config_sparc_openbsd64_h 24 Jul 2026 20:42:29 -0000
@@ -22,7 +22,7 @@ Index: gcc/config/sparc/openbsd64.h
builtin_define ("__sparc64__"); \
builtin_define ("__sparcv9__"); \
builtin_define ("__sparc_v9__"); \
-@@ -42,10 +39,17 @@ along with GCC; see the file COPYING3. If not see
+@@ -42,11 +39,27 @@ along with GCC; see the file COPYING3. If not see
while (0)
#undef ASM_SPEC
@@ -38,9 +38,19 @@ Index: gcc/config/sparc/openbsd64.h
"
+#endif
++/* Keep jump tables out of execute-only text segments. */
++#define SPARC_CASE_VECTOR_IN_RODATA 1
++
++#undef ASM_OUTPUT_ADDR_VEC
++#undef ASM_OUTPUT_ADDR_DIFF_VEC
++
++#define PIC_CASE_VECTOR_ADDRESS(ADDR) \
++ sparc_pic_case_vector_address (ADDR)
++
/* Layout of source language data types. */
#undef WCHAR_TYPE
-@@ -54,6 +58,15 @@ along with GCC; see the file COPYING3. If not see
+ #define WCHAR_TYPE "int"
+@@ -54,6 +67,15 @@ along with GCC; see the file COPYING3. If not see
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
@@ -56,7 +66,7 @@ Index: gcc/config/sparc/openbsd64.h
#undef SPARC_LONG_DOUBLE_TYPE_SIZE
#define SPARC_LONG_DOUBLE_TYPE_SIZE 128
-@@ -63,13 +76,15 @@ along with GCC; see the file COPYING3. If not see
+@@ -63,13 +85,15 @@ along with GCC; see the file COPYING3. If not see
%{shared:-shared} %{R*} \
%{static:-Bstatic} \
%{!static:-Bdynamic} \
Index: patches/patch-gcc_config_sparc_sparc-protos_h
===================================================================
RCS file: patches/patch-gcc_config_sparc_sparc-protos_h
diff -N patches/patch-gcc_config_sparc_sparc-protos_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-gcc_config_sparc_sparc-protos_h 24 Jul 2026 20:42:29 -0000
@@ -0,0 +1,11 @@
+Index: gcc/config/sparc/sparc-protos.h
+--- gcc/config/sparc/sparc-protos.h.orig
++++ gcc/config/sparc/sparc-protos.h
+@@ -63,6 +63,7 @@ extern rtx sparc_legitimize_reload_address (rtx, machi
+ extern void load_got_register (void);
+ extern void sparc_emit_call_insn (rtx, rtx);
+ extern void sparc_defer_case_vector (rtx, rtx, int);
++extern rtx sparc_pic_case_vector_address (rtx);
+ extern bool sparc_expand_move (machine_mode, rtx *);
+ extern void sparc_emit_set_symbolic_const64 (rtx, rtx, rtx);
+ extern int sparc_split_reg_mem_legitimate (rtx, rtx);
Index: patches/patch-gcc_config_sparc_sparc_cc
===================================================================
RCS file: /home/cvs/ports/lang/gcc/16/patches/patch-gcc_config_sparc_sparc_cc,v
diff -u -p -r1.1.1.1 patch-gcc_config_sparc_sparc_cc
--- patches/patch-gcc_config_sparc_sparc_cc 2 Jun 2026 20:00:17 -0000 1.1.1.1
+++ patches/patch-gcc_config_sparc_sparc_cc 24 Jul 2026 20:42:29 -0000
@@ -9,7 +9,24 @@ Index: gcc/config/sparc/sparc.cc
#include "explow.h"
#include "expr.h"
#include "debug.h"
-@@ -6207,6 +6208,9 @@ sparc_flat_expand_prologue (void)
+@@ -2287,6 +2288,16 @@ can_use_mov_pic_label_ref (rtx label)
+ return true;
+ }
+
++rtx
++sparc_pic_case_vector_address (rtx address)
++{
++ gcc_assert (GET_CODE (address) == PLUS
++ && LABEL_REF_P (XEXP (address, 1)));
++
++ LABEL_REF_NONLOCAL_P (XEXP (address, 1)) = 1;
++ return memory_address (CASE_VECTOR_MODE, address);
++}
++
+ /* Expand a move instruction. Return true if all work is done. */
+
+ bool
+@@ -6207,6 +6218,9 @@ sparc_flat_expand_prologue (void)
sparc_frame_base_offset
- sparc_apparent_frame_size,
SORR_SAVE);
Index: patches/patch-gcc_config_sparc_sparc_md
===================================================================
RCS file: /home/cvs/ports/lang/gcc/16/patches/patch-gcc_config_sparc_sparc_md,v
diff -u -p -r1.1.1.1 patch-gcc_config_sparc_sparc_md
--- patches/patch-gcc_config_sparc_sparc_md 2 Jun 2026 20:00:17 -0000 1.1.1.1
+++ patches/patch-gcc_config_sparc_sparc_md 24 Jul 2026 20:42:29 -0000
@@ -75,3 +75,13 @@ Index: gcc/config/sparc/sparc.md
}
[(set_attr "type" "load")
(set_attr "subtype" "regular")])
+@@ -6836,6 +6860,9 @@
+ {
+ rtx tmp, tmp2;
+ tmp = gen_rtx_LABEL_REF (Pmode, operands[1]);
++#ifdef SPARC_CASE_VECTOR_IN_RODATA
++ LABEL_REF_NONLOCAL_P (tmp) = 1;
++#endif
+ tmp2 = operands[0];
+ if (CASE_VECTOR_MODE != Pmode)
+ tmp2 = gen_rtx_SIGN_EXTEND (Pmode, tmp2);
--
wbr, Kirill
sparc64 bulk build report