On Mon, 26 Oct 2026 13:49:28 +0100,
Martijn van Duren <[email protected]> wrote:
> 
> Diff below contains 3 things and is widely discussed with kirill@, and
> gone through miod, but sending it here so other people get a chance to
> chime in.
> 1) The report keyword results in an #error with newer gcc build system.
>    Simply removing the keyword suggested by kirill@.
> 2) LINK_SPEC is already defined in gcc itself and causes a lot of
>    redefine noise. Going for the gcc definition as suggested by kirill@.
> 3) upstream gcc has the same stack protector logic as was recently
>    fixed in base by miod@. This fixes similar build issues found with
>    gcc-16. Confirmed by miod@.
> 
> OK?
>

I think you need revision bump in Makefile.

Otherwise OK kirill@

> martijn@
> 
> diff /usr/ports
> path + /usr/ports
> commit - 3eff4995526c542b34b298dfecc2ca0816223f67
> blob - 7e52e1631fd8664214ee99b79e895e58771f431a
> file + lang/gcc/16/patches/patch-gcc_config_alpha_alpha_md
> --- lang/gcc/16/patches/patch-gcc_config_alpha_alpha_md
> +++ lang/gcc/16/patches/patch-gcc_config_alpha_alpha_md
> @@ -1,6 +1,28 @@
>  Index: gcc/config/alpha/alpha.md
>  --- gcc/config/alpha/alpha.md.orig
>  +++ gcc/config/alpha/alpha.md
> +@@ -467,15 +467,15 @@
> +         (plus:DI (match_operand:DI 1 "reg_no_subreg_operand" "r,r,r")
> +              (match_operand:DI 2 "const_int_operand" "K,L,n")))]
> +   "NONSTRICT_REG_OK_FP_BASE_P (operands[1])
> +-   && INTVAL (operands[2]) >= 0
> +-   /* This is the largest constant an lda+ldah pair can add, minus
> ++   && INTVAL (operands[2]) < 0
> ++   /* This is the largest constant an lda+ldah pair can subtract, minus
> +       an upper bound on the displacement between SP and AP during
> +       register elimination.  See INITIAL_ELIMINATION_OFFSET.  */
> +    && INTVAL (operands[2])
> +-    < (0x7fff8000
> +-       - FIRST_PSEUDO_REGISTER * UNITS_PER_WORD
> +-       - ALPHA_ROUND(crtl->outgoing_args_size)
> +-       - (ALPHA_ROUND (get_frame_size ()
> ++    >= ((HOST_WIDE_INT) -0x7fffffff /* - (HOST_WIDE_INT) 0x8000 */
> ++       + FIRST_PSEUDO_REGISTER * UNITS_PER_WORD
> ++       + ALPHA_ROUND(crtl->outgoing_args_size)
> ++       + (ALPHA_ROUND (get_frame_size ()
> +                        + max_reg_num () * UNITS_PER_WORD
> +                        + crtl->args.pretend_args_size)
> +           - crtl->args.pretend_args_size))"
>  @@ -4953,7 +4953,8 @@
>     if (CONST_INT_P (operands[1])
>         && INTVAL (operands[1]) < 32768)
> commit - 3eff4995526c542b34b298dfecc2ca0816223f67
> blob - 9fb76b06167a7cc7f1aa5a3309e7339f0bf68ec3
> file + lang/gcc/16/patches/patch-gcc_config_alpha_alpha_opt
> --- lang/gcc/16/patches/patch-gcc_config_alpha_alpha_opt
> +++ lang/gcc/16/patches/patch-gcc_config_alpha_alpha_opt
> @@ -6,7 +6,7 @@ Index: gcc/config/alpha/alpha.opt
>   Emit IEEE-conformant code, without inexact exceptions.
>   
>  +mno-ieee
> -+Target Report RejectNegative InverseMask(IEEE)
> ++Target RejectNegative InverseMask(IEEE)
>  +Emit non-IEEE-conformant code
>  +
>   mieee-with-inexact
> commit - 3eff4995526c542b34b298dfecc2ca0816223f67
> blob - bc6b41ec3410694d603eb9fe58a90a2c1b54354e
> file + lang/gcc/16/patches/patch-gcc_config_alpha_openbsd_h
> --- lang/gcc/16/patches/patch-gcc_config_alpha_openbsd_h
> +++ lang/gcc/16/patches/patch-gcc_config_alpha_openbsd_h
> @@ -1,7 +1,7 @@
>  Index: gcc/config/alpha/openbsd.h
>  --- gcc/config/alpha/openbsd.h.orig
>  +++ gcc/config/alpha/openbsd.h
> -@@ -41,6 +41,28 @@ along with GCC; see the file COPYING3.  If not see
> +@@ -41,6 +41,19 @@ along with GCC; see the file COPYING3.  If not see
>   #undef ENDFILE_SPEC
>   #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
>   
> @@ -9,15 +9,6 @@ Index: gcc/config/alpha/openbsd.h
>  +#define TARGET_DEFAULT \
>  +    (MASK_FPREGS | MASK_IEEE | MASK_IEEE_CONFORMANT)
>  +
> -+#define LINK_SPEC \
> -+  "%{!shared:%{!nostdlib:%{!r:%{!e*:-e __start}}}} \
> -+   %{shared:-shared} %{R*} \
> -+   %{static:-Bstatic} \
> -+   %{!static:-Bdynamic} \
> -+   %{rdynamic:-export-dynamic} \
> -+   %{assert*} \
> -+   %{!static:-dynamic-linker /usr/libexec/ld.so}"
> -+
>  +/* As an elf system, we need crtbegin/crtend stuff.  */
>  +#undef STARTFILE_SPEC
>  +#define STARTFILE_SPEC "\
> 

-- 
wbr, Kirill

Reply via email to