From 2224fae179e150ac79fe3528e21b66e673cd3d40 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Fri, 13 Nov 2015 22:27:24 +0000 Subject: META MODE: Don't double stage SYMLINKS for shared libraries. This also fixes truncating the path that the links were installed to, which was most likely going to be the same directory the library was in anyhow. Let bsd.sys.mk handle SYMLINKS via stage_symlinks. stage_libs continues to handle the SHLIB_LINK though since it is not a SYMLINKS. This fixes a race, seen easily in lib/libthr, where libpthread_p.a is created by both stage_libs and stage_symlinks resulting in 'ln: File exists'. Sponsored by: EMC / Isilon Storage Division Discussed with: sjg --- share/mk/meta.stage.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'share/mk/meta.stage.mk') diff --git a/share/mk/meta.stage.mk b/share/mk/meta.stage.mk index cdf3e36e733d..0f5f37dab069 100644 --- a/share/mk/meta.stage.mk +++ b/share/mk/meta.stage.mk @@ -156,7 +156,7 @@ stage_libs: .dirdep @${STAGE_LINKS_SCRIPT}; StageLinks -s ${STAGE_LIBDIR:${STAGE_DIR_FILTER}} \ ${SHLIB_LINKS:@t@${STAGE_LIBS:T:M$t.*} $t@} .elif !empty(SHLIB_LINK) && !empty(SHLIB_NAME) - @${STAGE_LINKS_SCRIPT}; StageLinks -s ${STAGE_LIBDIR:${STAGE_DIR_FILTER}} ${SHLIB_NAME} ${SHLIB_LINK} ${SYMLINKS:T} + @${STAGE_LINKS_SCRIPT}; StageLinks -s ${STAGE_LIBDIR:${STAGE_DIR_FILTER}} ${SHLIB_NAME} ${SHLIB_LINK} .endif .endif @touch $@ -- cgit v1.2.3