Attached is a small patch to fix a race when installing with parallel

make jobs. If we're performing an install where libYap is a shared
library then there's a race between installing libYap.so and calling the
yap executable; this can lead to yap not finding its required runtime
dependency:

(cd yap-6.3.3/packages/http ;
LD_LIBRARY_PATH=$DESTDIR/usr/share/Yap/http:$DESTDIR/usr/lib64/Yap:
YAPSHAREDIR=$DESTDIR/usr/share/Yap YAPLIBDIR=$DESTDIR/usr/lib64/Yap
$DESTDIR/usr/bin/yap $DESTDIR/usr/lib64/Yap/startup.yss -f none -g make
-t halt)

$DESTDIR/usr/bin/yap: error while loading shared libraries: libYap.so:
cannot open shared object file: No such file or directory
make[1]: *** [install] Error 127

Since @YAPLIB@ expands to either libYap.a or libYap.so depending on
whether we are building a static or shared libYap library, we can use that.

Keri Harris
This commit is contained in:
Vítor Santos Costa 2013-11-10 11:24:30 +00:00
parent 0205a222d9
commit bfee0cbea6

View File

@ -761,7 +761,7 @@ install: install_bin install_data
install_bin: @INSTALL_COMMAND@
install_unix: startup.yss libYap.a
install_unix: startup.yss @YAPLIB@
mkdir -p $(DESTDIR)$(BINDIR)
$(INSTALL_PROGRAM) -m 755 yap@EXEC_SUFFIX@ $(DESTDIR)$(BINDIR)/yap
mkdir -p $(DESTDIR)$(YAPLIBDIR)