Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: python fix for armv7 (and potentially powerpc)
To:
Peter Hessler <phessler@theapt.org>, ports@openbsd.org, gkoehler@openbsd.org, Kurt Mosiejczuk <kmos@openbsd.org>
Date:
Tue, 21 Oct 2025 12:53:58 +0100

Download raw body.

Thread
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.

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