summaryrefslogtreecommitdiff
path: root/share/mk
diff options
context:
space:
mode:
authorRobert Nagy <robert@cvs.openbsd.org>2017-04-27 17:41:48 +0000
committerRobert Nagy <robert@cvs.openbsd.org>2017-04-27 17:41:48 +0000
commit58e6afbbed66a48b499ef20842ad99c9b968432e (patch)
tree1d8763f23144b0a6064fc092b865c0bec200be80 /share/mk
parent3c896b4ed056d1e873ab05745d3bed07a55c3432 (diff)
syspatch needs to create shared libs with the same object sequence instead
of randomizing the order so let's read the libs on the system and link the same way in case a syspatch is being built
Diffstat (limited to 'share/mk')
-rw-r--r--share/mk/bsd.lib.mk8
1 files changed, 7 insertions, 1 deletions
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index aced31fcfb0..78077c72e43 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -1,4 +1,4 @@
-# $OpenBSD: bsd.lib.mk,v 1.80 2017/03/26 18:50:37 guenther Exp $
+# $OpenBSD: bsd.lib.mk,v 1.81 2017/04/27 17:41:47 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
@@ -183,8 +183,14 @@ SOBJS+= ${OBJS:.o=.so}
${FULLSHLIBNAME}: ${SOBJS} ${DPADD}
@echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\)
@rm -f ${.TARGET}
+.if defined(SYSPATCH)
+ ${CC} -shared ${PICFLAG} -o ${.TARGET} \
+ `readelf -Ws ${LIBDIR}/${.TARGET} | awk '/ FILE/{gsub(/\..*/, ".so", $$NF); sub(".*/", "", $$NF); print $$NF}' | \
+ grep -v unwind-dw2` ${LDADD}
+.else
${CC} -shared ${PICFLAG} -o ${.TARGET} \
`echo ${SOBJS} | tr ' ' '\n' | sort -R` ${LDADD}
+.endif
${FULLSHLIBNAME}.a: ${SOBJS}
@echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) ar