From 563192309786f26c593305db859bc8993aacbba1 Mon Sep 17 00:00:00 2001 From: robert Date: Tue, 17 Mar 2026 17:07:58 +0000 Subject: [PATCH] rework the way we reconsturct the object file order for syspatches this change drops the exclude regex and just simply checks if the object files are actually available and then constucts a response file which we pass for linking and this seems to be good enough to have reproducible make build output (which is what we want here) ok tb@ --- share/mk/bsd.lib.mk | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index d3d9fcdbb38..2ab878c7c5f 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -1,4 +1,4 @@ -# $OpenBSD: bsd.lib.mk,v 1.105 2025/11/16 10:20:54 robert Exp $ +# $OpenBSD: bsd.lib.mk,v 1.106 2026/03/17 17:07:58 robert Exp $ # $NetBSD: bsd.lib.mk,v 1.67 1996/01/17 20:39:26 mycroft Exp $ # @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 @@ -206,22 +206,19 @@ lib${LIB}_p.a: ${POBJS} SOBJS+= ${OBJS:.o=.so} BUILDAFTER += ${SOBJS} -# exclude from readelf(1) output for syspatch building -EXCLUDE_REGEX:= "(cmll-586|(comparetf|libgcc|unwind-dw)2| \ - mul(t|d|s|x)(c|f)3|crt(begin|end)S| \ - (div|umod|mod)(d|t)i3|emutls|(add|div|sub)tf3| \ - (fixtf|float|extend|trunctf)(d|s)(ftf2|i|itf|f2)| \ - outline_atomic_(ldadd|swp)(4|8)_4|aarch64| \ - floatunsitf|udivmodti4|AMDGPURegAsmNames|clear_cache)" - ${FULLSHLIBNAME}: ${SOBJS} ${DPADD} @echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) @rm -f ${.TARGET} .if defined(SYSPATCH_PATH) + @>${.TARGET}.rsp + @for _f in `readelf -Ws ${SYSPATCH_PATH}${LIBDIR}/${.TARGET} | \ + awk '/ FILE/{sub(".*/", "", $$NF); gsub(/\.[^.]+$$/, ".so", $$NF); \ + print $$NF}' | awk '!x[$$0]++'`; do \ + [[ ! -f $${_f} ]] || echo $${_f} >>${.TARGET}.rsp; \ + done ${CC} -shared -Wl,-soname,${FULLSHLIBNAME} ${PICFLAG} -o ${.TARGET} \ - `readelf -Ws ${SYSPATCH_PATH}${LIBDIR}/${.TARGET} | \ - awk '/ FILE/{sub(".*/", "", $$NF); gsub(/\..*/, ".so", $$NF); print $$NF}' | \ - egrep -v ${EXCLUDE_REGEX:C/[[:blank:]]//g} | awk '!x[$$0]++'` ${LDADD} + @${.TARGET}.rsp ${LDADD} + @rm -f ${.TARGET}.rsp .else ${CC} -shared -Wl,-soname,${FULLSHLIBNAME} ${PICFLAG} -o ${.TARGET} \ `echo ${SOBJS} | tr ' ' '\n' | sort -R` ${LDADD}