META MODE: Don't double stage SYMLINKS for libraries.

meta.stage.mk is handling ${SYMLINKS:T} for stage_libs already.  The logic in
bsd.sys.mk to handle ${SYMLINKS} was brought in r247817 when it was moved out
of bsd.prog.mk and bsd.lib.mk into bsd.sys.mk.  The logic previously was
limited to bsd.prog.mk.

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
This commit is contained in:
Bryan Drewery 2015-11-13 01:47:56 +00:00
parent 0856628198
commit e13d8c1244

View File

@ -276,7 +276,8 @@ STAGE_SETS+= links
STAGE_LINKS.links= ${LINKS}
.endif
.if !empty(SYMLINKS)
# Don't handle SYMLINKS for libraries since stage_libs is already doing so.
.if !empty(SYMLINKS) && empty(_LIBS)
STAGE_TARGETS+= stage_symlinks
STAGE_SETS+= links
STAGE_SYMLINKS.links= ${SYMLINKS}