As jtt found when testing my zizmor port, aws-lc-sys is not xonly clean
on amd64 and the s2n asm needs a lot of patching nowadays:

https://github.com/awslabs/s2n-bignum/pull/242

The funny thing is that I was aware of this at some point since I wrote
patches for deno, but I completely forgot. I guess I'm getting old...

Anyway: take the easy way out and use noexeconly on amd64. arm64 is fine
and there's currently no riscv64 asm.

Repro on modern enough amd64 (needs PKU in the cpu0 line):
$ mkdir test && cd test && uv init && uv add kyber # segfault

PS: Not a good moment to change this, but why do we have -arch
suffixes for USE_NOBTCFI but not USE_NOEXECONLY?

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/uv/Makefile,v
diff -u -p -r1.28 Makefile
--- Makefile    9 Apr 2026 11:41:52 -0000       1.28
+++ Makefile    9 Apr 2026 19:38:56 -0000
@@ -1,12 +1,19 @@
 # ring-v0.17 does not support this arch
 NOT_FOR_ARCHS =                sparc64
 
+# aws-lc-sys 0.36 has constants in .text
+# https://github.com/awslabs/s2n-bignum/pull/242
+.if ${MACHINE_ARCH} == "amd64"
+USE_NOEXECONLY =       Yes
+.endif
+
 COMMENT =              Python package and project manager
 
 MODPY_DISTV =          0.11.5
 GH_ACCOUNT =           astral-sh
 GH_PROJECT =           uv
 GH_TAGNAME =           ${MODPY_DISTV}
+REVISION =             0
 
 CATEGORIES =           devel
 

Reply via email to