xfs-cmds: fix parallel installs in include/ dirs
PATCH 1/1 xfs-cmds: fix parallel installs in include/ dirs
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.
---
acl/include/Makefile +5 -4
@@ -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:
attr/include/Makefile +5 -3
@@ -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:
dmapi/include/Makefile +4 -3
@@ -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)
nfs4acl/include/Makefile +5 -3
@@ -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:
xfsprogs/include/Makefile +4 -4
@@ -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)
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 7 lines · Eric Sandeen
This is for http://oss.sgi.com/bugzilla/show_bug.cgi?id=759
"fix parallel issue withinclude/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.
Looks good and I've put in in my queue. Any chance I could motivate you to look over Mike's other build system changes in bugzilla?
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 10 lines · Christoph Hellwig
Quoted 7 lines · Eric Sandeen
This is for http://oss.sgi.com/bugzilla/show_bug.cgi?id=759
"fix parallel issue withinclude/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.
Looks good and I've put in in my queue.
Actually spoken too soon. This breaks the acl build for me with:
gcc -g -O2 -DNDEBUG -funsigned-char -fno-strict-aliasing -Wall -DVERSION=\"2.2.47\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"acl\" -I../include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -include perm_copy.h -c acl_get_fd.c -fPIC -DPIC -o .libs/acl_get_fd.o acl_get_fd.c:27:24: error: acl/libacl.h: No such file or directory acl_get_fd.c: In function 'acl_get_fd':
acl_get_fd.c:62: warning: implicit declaration of function 'acl_from_mode'
acl_get_fd.c:62: warning: return makes pointer from integer without a cast
It looks like the acl link in include/ doesn't get created properly with this patch.
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 25 lines · On Tuesday 30 December 2008 07:49:36 Christoph Hellwig wrote:
Quoted 10 lines · Christoph Hellwig
Quoted 7 lines · Eric Sandeen
This is for http://oss.sgi.com/bugzilla/show_bug.cgi?id=759
"fix parallel issue withinclude/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.
Looks good and I've put in in my queue.
Actually spoken too soon. This breaks the acl build for me with:
gcc -g -O2 -DNDEBUG -funsigned-char -fno-strict-aliasing -Wall -DVERSION=\"2.2.47\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"acl\" -I../include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -include
perm_copy.h-cacl_get_fd.c-fPIC -DPIC -o.libs/acl_get_fd.oacl_get_fd.c:27:24: error:acl/libacl.h: No such file or directoryacl_get_fd.c: In function 'acl_get_fd':
acl_get_fd.c:62: warning: implicit declaration of function 'acl_from_mode'
acl_get_fd.c:62: warning: return makes pointer from integer without a cast
Quoted 2 lines
It looks like the acl link in
include/doesn't get created properly with this patch.
acl-2.2.47 built fine for me with ./configure && make and this patch ...
that said, if the only purpose of this is to make sure there are symlinks in include/, why not do it at the tail end of configure ? then there will be no weird parallel magic to worry about, and everything will always be available once configure has finished.
-mike
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 1 line · Mike Frysinger
acl-2.2.47 built fine for me with
./configure && makeand this patch ...
Works now after a make distclean for me.
Quoted 4 lines
that said, if the only purpose of this is to make sure there are symlinks in
include/, why not do it at the tail end of configure ? then there will be no weird parallel magic to worry about, and everything will always be available once configure has finished.
I'll leave that to Eric or anyone else who wants to play a build system expert on TV :)
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 6 lines · On Tuesday 30 December 2008 12:18:25 Christoph Hellwig wrote:
Quoted 2 lines · Mike Frysinger
acl-2.2.47 built fine for me with
./configure && makeand this patch
...Works now after a make distclean for me.
Quoted 7 lines
Quoted 4 lines
that said, if the only purpose of this is to make sure there are symlinks in
include/, why not do it at the tail end of configure ? then there will be no weird parallel magic to worry about, and everything will always be available once configure has finished.I'll leave that to Eric or anyone else who wants to play a build system expert on TV :)
it's easy to do, i just dont know how people feel about the idea in general
configure.in +8 -1
@@ -27,4 +27,11 @@ AC_MANUAL_FORMAT AC_FUNC_GCC_VISIBILITY -AC_OUTPUT(include/builddefs) +AC_CONFIG_FILES(include/builddefs) +AC_CONFIG_COMMANDS([include-symlinks], [ + rm -f include/acl include/sys + ln -s . include/acl + ln -s . include/sys +]) +AC_OUTPUT +
include/Makefile +0 -0
@@ -10,13 +10,10 @@ LSRCFILES = builddefs.in buildmacros buildrules
config.h.in
LDIRT = sys acl
default:
- rm -f sys acl
- $(LN_S) . sys
- $(LN_S) . acl
include $(BUILDRULES)
-install-dev: default
+install-dev:
$(INSTALL) -m 755 -d $(PKG_INC_DIR) $(INSTALL) -m 755 -d $(PKG_INC_DIR)/sys $(INSTALL) -m 644 acl.h $(PKG_INC_DIR)/sys/acl.h
-mike
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 6 lines · Mike Frysinger
Quoted 5 lines · On Tuesday 30 December 2008 12:18:25 Christoph Hellwig wrote:
Quoted 2 lines · Mike Frysinger
acl-2.2.47 built fine for me with
./configure && makeand this patch
...Works now after a make distclean for me.
Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
that said, if the only purpose of this is to make sure there are symlinks in
include/, why not do it at the tail end of configure ? then there will be no weird parallel magic to worry about, and everything will always be available once configure has finished.I'll leave that to Eric or anyone else who wants to play a build system expert on TV :)
it's easy to do, i just dont know how people feel about the idea in general
Doesn't much matter to me; not sure what is customary. Both ways work fine, I think.
-Eric
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs