[PATCH] xfs-cmds: fix parallel installs in include/ dirs

Eric Sandeen
2008-12-29T22:19:06Z

This is for http://oss.sgi.com/bugzilla/show_bug.cgi?id=759
"fix parallel issue with include/ symlinks"

Doing something like "make -j2 install install-dev" would lead
to a race of removing & creating symlinks in include/

Thanks to Mike for reporting & suggesting the fix.

Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---

Index: xfs-cmds/acl/include/Makefile
===================================================================
--- xfs-cmds.orig/acl/include/Makefile
+++ xfs-cmds/acl/include/Makefile
@@ -9,10 +9,10 @@ HFILES = acl.h libacl.h acl_ea.h misc.h
LSRCFILES = builddefs.in buildmacros buildrules config.h.in
LDIRT = sys acl

-default:
- rm -f sys acl
- $(LN_S) . sys
- $(LN_S) . acl
+sys acl:
+ $(LN_S) . $@
+
+default: sys acl

include $(BUILDRULES)

@@ -22,4 +22,5 @@ install-dev: default
$(INSTALL) -m 644 acl.h $(PKG_INC_DIR)/sys/acl.h
$(INSTALL) -m 755 -d $(PKG_INC_DIR)/acl
$(INSTALL) -m 644 libacl.h $(PKG_INC_DIR)/acl/libacl.h
+
install install-lib:
Index: xfs-cmds/attr/include/Makefile
===================================================================
--- xfs-cmds.orig/attr/include/Makefile
+++ xfs-cmds/attr/include/Makefile
@@ -11,13 +11,15 @@ HFILES = $(INST_HFILES) misc.h walk_tree
LSRCFILES = builddefs.in buildmacros buildrules config.h.in
LDIRT = $(INCDIR)

-default:
- rm -f $(INCDIR)
- $(LN_S) . $(INCDIR)
+$(INCDIR):
+ $(LN_S) . $@
+
+default: $(INCDIR)

include $(BUILDRULES)

install-dev: default
$(INSTALL) -m 755 -d $(PKG_INC_DIR)
$(INSTALL) -m 644 $(INST_HFILES) $(PKG_INC_DIR)
+
install install-lib:
Index: xfs-cmds/dmapi/include/Makefile
===================================================================
--- xfs-cmds.orig/dmapi/include/Makefile
+++ xfs-cmds/dmapi/include/Makefile
@@ -9,9 +9,10 @@ HFILES = dmapi.h
LSRCFILES = builddefs.in buildmacros buildrules dmapi_kern.h
LDIRT = xfs

-default install :
- rm -f xfs
- $(LN_S) . xfs
+xfs:
+ $(LN_S) . $@
+
+default install: xfs

include $(BUILDRULES)

Index: xfs-cmds/nfs4acl/include/Makefile
===================================================================
--- xfs-cmds.orig/nfs4acl/include/Makefile
+++ xfs-cmds/nfs4acl/include/Makefile
@@ -9,9 +9,10 @@ HFILES = nfs4acl.h nfs4acl-internal.h nf
LSRCFILES = builddefs.in buildmacros buildrules config.h.in
LDIRT = sys

-default:
- rm -f sys
- $(LN_S) . sys
+sys:
+ $(LN_S) . $@
+
+default: sys

include $(BUILDRULES)

@@ -19,4 +20,5 @@ install-dev: default
$(INSTALL) -m 755 -d $(PKG_INC_DIR)
$(INSTALL) -m 755 -d $(PKG_INC_DIR)/sys
$(INSTALL) -m 644 nfs4acl.h $(PKG_INC_DIR)/sys/nfs4acl.h
+
install install-lib:
Index: xfs-cmds/xfsprogs/include/Makefile
===================================================================
--- xfs-cmds.orig/xfsprogs/include/Makefile
+++ xfs-cmds/xfsprogs/include/Makefile
@@ -40,10 +40,10 @@ LSRCFILES += platform_defs.h.in builddef
LSRCFILES += command.h input.h path.h project.h
LDIRT = xfs disk

-default install :
- rm -f xfs disk
- $(LN_S) . xfs
- $(LN_S) . disk
+xfs disk:
+ $(LN_S) . $@
+
+default install: xfs disk

include $(BUILDRULES)