Index | Thread | Search

From:
Kurt Mosiejczuk <kmos@openbsd.org>
Subject:
Re: python fix for armv7 (and potentially powerpc)
To:
Peter Hessler <phessler@theapt.org>, ports@openbsd.org, gkoehler@openbsd.org
Date:
Wed, 22 Oct 2025 04:10:16 -0400

Download raw body.

Thread
On Tue, Oct 21, 2025 at 12:53:58PM +0100, Stuart Henderson wrote:
> On 2025/10/21 13:37, Jeremie Courreges-Anglas wrote:
> > On Tue, Oct 21, 2025 at 01:16:41PM +0200, Peter Hessler wrote:
> > > Selectively enable LTO depending on platform, this fixes the build for me
> > > on armv7.  

> > > OK?

> > Unless there actually is a pattern, I'd rather have LTO disabled
> > selectively on platforms where it is known to break, and not
> > forcefully enabled on other architectures.

> > The current powerpc build seems to have succeeded on powerpc, but I'll
> > let gkoehler@ confirm.

> > > I also slipped this into the 7.8-release build for armv7, OK to commit to
> > > branch?

> > Makes sense, but not this diff please.

> as a first step, how about this instead, which avoids changing things
> except for arm?

> then other changes can be done after per-arch testing.

I like this one better. ok kmos

--Kurt

> Index: Makefile.inc
> ===================================================================
> RCS file: /cvs/ports/lang/python/Makefile.inc,v
> diff -u -p -r1.168 Makefile.inc
> --- Makefile.inc	31 Jan 2025 12:46:51 -0000	1.168
> +++ Makefile.inc	21 Oct 2025 11:50:26 -0000
> @@ -128,15 +128,12 @@ CONFIGURE_ARGS +=	--with-fpectl \
>  			--with-tcltk-libs='-L${X11BASE}/lib -l${MODTCL_LIB} -l${MODTK_LIB}'
>  .else
>  CONFIGURE_ARGS +=	--enable-loadable-sqlite-extensions
> -.  if ${PROPERTIES:Mlld}
> +.  if ${PROPERTIES:Mlld} && ${MACHINE_ARCH} != "arm"
>  CONFIGURE_ARGS +=	--with-lto
> -.    if ${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "powerpc"
> -# On armv7, clang errors out due to lack of memory.
> -# On powerpc, the python binary would crash by "Segmentation fault".
> -# XXX lld from llvm-16 errors out with:
> -# ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol '__profd_isdigit'; recompile with -fPIC
> -#CONFIGURE_ARGS +=	--enable-optimizations
> +.    else
> +CONFIGURE_ARGS +=	--with-lto=no
>  .    endif
> +# XXX try using --enable-optimizations again; needs per-arch testing
>  .  endif
>  TEST_IS_INTERACTIVE =	Yes
>  .endif