Re: sparc64 bulk build report
Kirill A. Korinsky <[email protected]> Mon, 27 Jul 2026 04:30:31 +0200
| Newsgroups | gmane.os.openbsd.ports |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 27 Jul 2026 04:27:24 +0200, Kurt Mosiejczuk <[email protected]> wrote: > > On Mon, Jul 27, 2026 at 04:21:35AM +0200, Kirill A. Korinsky wrote: > > On Mon, 27 Jul 2026 00:11:18 +0200, > > [email protected] 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