public inbox for cluster-cvs@sourceware.org help / color / mirror / Atom feed
From: "Fabio M. Di Nitto" <fabbione@fedoraproject.org> To: cluster-cvs-relay@redhat.com Subject: master - build: fix several issues related to install and build targets Date: Mon, 04 Aug 2008 04:01:00 -0000 [thread overview] Message-ID: <20080804040039.BB62B12003F@lists.fedorahosted.org> (raw) Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=565ee3fec31ecfb16b1984a2582f8cc962df4d78 Commit: 565ee3fec31ecfb16b1984a2582f8cc962df4d78 Parent: cae2ee8b73390bfa5cb25890800b5145cc277908 Author: Fabio M. Di Nitto <fdinitto@redhat.com> AuthorDate: Thu Jul 31 08:55:32 2008 +0200 Committer: Fabio M. Di Nitto <fdinitto@redhat.com> CommitterDate: Mon Aug 4 06:00:00 2008 +0200 build: fix several issues related to install and build targets Several users have been reporting issues building and installing our source from an nfs mount. There are two related issues in this scenario (P = Problem): P1) nfs servers often drops root privileges to nobody (very often required for install:) P2) our build system had issues in the past with linking against static libraries. the combination of the two ends with a user "nobody" trying to link one of our tools at install time and of course it fails because the nfs server would refuse "nobody" to access a directory/file that the user owns. We address this issue by doing a set of simple changes around (A = Action): A1) Remove all PHONY targets so that at install time we do not re-link bits that are already updated. A2) Introduce a more detailed dependecy tracker for static libraries by using LDDEPS var within the affected Makefiles. This replaces the requirement of PHONY targets in A1). Note: changes to header files are already tracked by .d files, LDDEPS tracks changes to the binaries. A3) Make sure that all target that requires static libs are updated to use LDDEPS. Extra benefits from this change (B = Benefit): B1) no relink at install time. B2) install target does not require any devel library installed on the target system because of B1 B3) install target can be executed in parallel from several machines. For example when installing on N machines from the same nfs share. This was an issue before because of a race condition now fixed by B1. (two or more machine could try to link the same binary at the same time and fail) The only con is that A2 requires a bit more manual work on tracking linking against static libraries, but the changes in that area are not frequent enough to hold this fix. Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com> --- ccs/ccs_tool/Makefile | 5 ++--- ccs/ccsais/Makefile | 4 +++- ccs/daemon/Makefile | 3 --- config/tools/ldap/Makefile | 2 -- fence/fence_node/Makefile | 4 +++- fence/fence_tool/Makefile | 4 +++- fence/fenced/Makefile | 4 +++- gfs/gfs_grow/Makefile | 5 ++--- gfs/gfs_jadd/Makefile | 5 ++--- gfs/gfs_mkfs/Makefile | 5 ++--- gfs2/convert/Makefile | 5 ++--- gfs2/edit/Makefile | 5 ++--- gfs2/fsck/Makefile | 7 +++---- gfs2/mkfs/Makefile | 5 ++--- gfs2/mount/Makefile | 4 +++- gfs2/quota/Makefile | 5 ++--- gfs2/tool/Makefile | 5 ++--- group/dlm_controld/Makefile | 7 ++++--- group/gfs_control/Makefile | 4 +++- group/gfs_controld/Makefile | 7 ++++--- group/tool/Makefile | 10 ++++++---- rgmanager/src/daemons/Makefile | 13 +++++++------ rgmanager/src/utils/Makefile | 14 +++++++------- 23 files changed, 67 insertions(+), 65 deletions(-) diff --git a/ccs/ccs_tool/Makefile b/ccs/ccs_tool/Makefile index be83217..f0c7587 100644 --- a/ccs/ccs_tool/Makefile +++ b/ccs/ccs_tool/Makefile @@ -29,12 +29,13 @@ CFLAGS += -I${incdir} LDFLAGS += -L${cmanlibdir} -lcman ifdef legacy_code LDFLAGS += -L../libccscompat -lccscompat +LDDEPS += ../libccscompat/libccscompat.a else LDFLAGS += -L${ccslibdir} -lccs endif LDFLAGS += `xml2-config --libs` -L${libdir} -${TARGET1}: ${OBJS} +${TARGET1}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) ${TARGET2}: ${TARGET1} @@ -47,6 +48,4 @@ endif clean: generalclean -.PHONY: all ${TARGET1} - -include $(OBJS:.o=.d) diff --git a/ccs/ccsais/Makefile b/ccs/ccsais/Makefile index f3eacc7..13090bc 100644 --- a/ccs/ccsais/Makefile +++ b/ccs/ccsais/Makefile @@ -17,9 +17,11 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libccscompat -lccscompat +LDDEPS += ../libccscompat/libccscompat.a + OBJS= config.o -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) depends: diff --git a/ccs/daemon/Makefile b/ccs/daemon/Makefile index e5bbbf4..a488dbd 100644 --- a/ccs/daemon/Makefile +++ b/ccs/daemon/Makefile @@ -25,12 +25,9 @@ LDFLAGS += -L${cmanlibdir} -lcman LDFLAGS += -L${openaislibdir} -llogsys LDFLAGS += -L${libdir} `xml2-config --libs` -lpthread - ${TARGET}: ${OBJS} $(CC) -o $@ $^ $(LDFLAGS) clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/config/tools/ldap/Makefile b/config/tools/ldap/Makefile index 6e41017..8fc1de7 100644 --- a/config/tools/ldap/Makefile +++ b/config/tools/ldap/Makefile @@ -24,6 +24,4 @@ ${TARGET}: ${OBJS} clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/fence/fence_node/Makefile b/fence/fence_node/Makefile index e4cfec4..fa6cefd 100644 --- a/fence/fence_node/Makefile +++ b/fence/fence_node/Makefile @@ -22,7 +22,9 @@ LDFLAGS += -L${ccslibdir} -L${fencelibdir} -lccs -lfence LDFLAGS += -L${openaislibdir} -llogsys LDFLAGS += -L../libfenced -lfenced -${TARGET}: ${OBJS} +LDDEPS += ../libfenced/libfenced.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: diff --git a/fence/fence_tool/Makefile b/fence/fence_tool/Makefile index 721dd46..23dab29 100644 --- a/fence/fence_tool/Makefile +++ b/fence/fence_tool/Makefile @@ -20,7 +20,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L${ccslibdir} -L${cmanlibdir} -lccs -lcman LDFLAGS += -L../libfenced -lfenced -${TARGET}: ${OBJS} +LDDEPS += ../libfenced/libfenced.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: diff --git a/fence/fenced/Makefile b/fence/fenced/Makefile index f4840c4..3e3534b 100644 --- a/fence/fenced/Makefile +++ b/fence/fenced/Makefile @@ -28,7 +28,9 @@ LDFLAGS += -L${fencelibdir} -lfence LDFLAGS += -L${openaislibdir} -lcpg -llogsys -lpthread LDFLAGS += -L../../group/lib -l group -${TARGET}: ${OBJS} +LDDEPS += ../../group/lib/libgroup.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: diff --git a/gfs/gfs_grow/Makefile b/gfs/gfs_grow/Makefile index 1833b45..aba7d81 100644 --- a/gfs/gfs_grow/Makefile +++ b/gfs/gfs_grow/Makefile @@ -20,8 +20,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs -lgfs +LDDEPS += ../libgfs/libgfs.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -29,6 +30,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/gfs/gfs_jadd/Makefile b/gfs/gfs_jadd/Makefile index 901acef..2efca4a 100644 --- a/gfs/gfs_jadd/Makefile +++ b/gfs/gfs_jadd/Makefile @@ -20,8 +20,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs -lgfs +LDDEPS += ../libgfs/libgfs.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -29,6 +30,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/gfs/gfs_mkfs/Makefile b/gfs/gfs_mkfs/Makefile index 64aeb96..c3c67e7 100644 --- a/gfs/gfs_mkfs/Makefile +++ b/gfs/gfs_mkfs/Makefile @@ -27,8 +27,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L${volidlibdir} -lvolume_id LDFLAGS += -L../libgfs -lgfs +LDDEPS += ../libgfs/libgfs.a -${TARGET1}: ${OBJS} +${TARGET1}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) ${TARGET2}: ${TARGET1} @@ -39,6 +40,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET1} - -include $(OBJS:.o=.d) diff --git a/gfs2/convert/Makefile b/gfs2/convert/Makefile index a792d5e..2219d3c 100644 --- a/gfs2/convert/Makefile +++ b/gfs2/convert/Makefile @@ -19,8 +19,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs2 -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -28,6 +29,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/gfs2/edit/Makefile b/gfs2/edit/Makefile index 3d3d6b6..e4e63ff 100644 --- a/gfs2/edit/Makefile +++ b/gfs2/edit/Makefile @@ -23,8 +23,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L${ncurseslibdir} -lncurses LDFLAGS += -L../libgfs2/ -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -32,6 +33,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/gfs2/fsck/Makefile b/gfs2/fsck/Makefile index 32713da..8420c9f 100644 --- a/gfs2/fsck/Makefile +++ b/gfs2/fsck/Makefile @@ -38,11 +38,12 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs2 -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET1}: $(OBJS) +${TARGET1}: $(OBJS) ../libgfs2/libgfs2.a $(CC) -o $@ $^ $(LDFLAGS) -${TARGET2}: ${TARGET1} +${TARGET2}: ${TARGET1} ${LDDEPS} ln -fs ${TARGET1} ${TARGET2} depends: @@ -63,5 +64,3 @@ ${TARGET1}.pot: $(OBJS:.o=.c) --keyword=log_debug --keyword=log_err --keyword=log_print -d - $(OBJS:.o=.c) > ${TARGET1}.pot -include $(OBJS:.o=.d) - -.PHONY: all ${TARGET1} diff --git a/gfs2/mkfs/Makefile b/gfs2/mkfs/Makefile index c1f64d8..3c7f74c 100644 --- a/gfs2/mkfs/Makefile +++ b/gfs2/mkfs/Makefile @@ -28,8 +28,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L${volidlibdir} -lvolume_id LDFLAGS += -L../libgfs2 -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET1}: ${OBJS} +${TARGET1}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) ${TARGET2}: ${TARGET1} @@ -46,6 +47,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET1} - -include $(OBJS:.o=.d) diff --git a/gfs2/mount/Makefile b/gfs2/mount/Makefile index a1ec7d4..e02bf7b 100644 --- a/gfs2/mount/Makefile +++ b/gfs2/mount/Makefile @@ -20,7 +20,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../../group/libgfscontrol -lgfscontrol -${TARGET1}: ${OBJS1} +LDDEPS += ../../group/libgfscontrol/libgfscontrol.a + +${TARGET1}: ${OBJS1} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) install: all diff --git a/gfs2/quota/Makefile b/gfs2/quota/Makefile index 6a9fc40..e6c914e 100644 --- a/gfs2/quota/Makefile +++ b/gfs2/quota/Makefile @@ -21,8 +21,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs2 -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -30,6 +31,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/gfs2/tool/Makefile b/gfs2/tool/Makefile index c6dd9a0..459eb01 100644 --- a/gfs2/tool/Makefile +++ b/gfs2/tool/Makefile @@ -25,8 +25,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfs2 -lgfs2 +LDDEPS += ../libgfs2/libgfs2.a -${TARGET}: ${OBJS} +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -34,6 +35,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/group/dlm_controld/Makefile b/group/dlm_controld/Makefile index fed6297..355f7a6 100644 --- a/group/dlm_controld/Makefile +++ b/group/dlm_controld/Makefile @@ -35,7 +35,10 @@ LDFLAGS += -L${openaislibdir} -lcpg -lSaCkpt -llogsys -lpthread LDFLAGS += -L../../fence/libfenced/ -lfenced LDFLAGS += -L../lib -lgroup -${TARGET}: ${OBJS} +LDDEPS += ../../fence/libfenced/libfenced.a +LDDEPS += ../lib/libgroup.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -43,6 +46,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/group/gfs_control/Makefile b/group/gfs_control/Makefile index 142f6e4..54d4930 100644 --- a/group/gfs_control/Makefile +++ b/group/gfs_control/Makefile @@ -17,7 +17,9 @@ CFLAGS += -I${incdir} LDFLAGS += -L../libgfscontrol -lgfscontrol -${TARGET}: ${OBJS} +LDDEPS += ../libgfscontrol/libgfscontrol.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) clean: generalclean diff --git a/group/gfs_controld/Makefile b/group/gfs_controld/Makefile index 6c68a7a..8d9241c 100644 --- a/group/gfs_controld/Makefile +++ b/group/gfs_controld/Makefile @@ -34,7 +34,10 @@ LDFLAGS += -L${openaislibdir} -lcpg -lSaCkpt -llogsys -lpthread LDFLAGS += -L../../fence/libfenced/ -lfenced LDFLAGS += -L../lib -lgroup -${TARGET}: ${OBJS} +LDDEPS += ../lib/libgroup.a +LDDEPS += ../../fence/libfenced/libfenced.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: @@ -42,6 +45,4 @@ depends: clean: generalclean -.PHONY: all ${TARGET} - -include $(OBJS:.o=.d) diff --git a/group/tool/Makefile b/group/tool/Makefile index d2db6c1..7043044 100644 --- a/group/tool/Makefile +++ b/group/tool/Makefile @@ -19,17 +19,19 @@ CFLAGS += -I$(S)/../libgfscontrol CFLAGS += -I${incdir} CFLAGS += -I${KERNEL_SRC}/include/ -LDFLAGS += -L../lib -lgroup LDFLAGS += -L${dlmcontrollibdir} -ldlmcontrol +LDFLAGS += -L../lib -lgroup LDFLAGS += -L../../fence/libfenced -lfenced LDFLAGS += -L../libgfscontrol -lgfscontrol -${TARGET}: ${OBJS} +LDDEPS += ../lib/libgroup.a +LDDEPS += ../libgfscontrol/libgfscontrol.a +LDDEPS += ../../fence/libfenced/libfenced.a + +${TARGET}: ${OBJS} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) depends: $(MAKE) -C ../lib all clean: generalclean - -.PHONY: all ${TARGET} diff --git a/rgmanager/src/daemons/Makefile b/rgmanager/src/daemons/Makefile index 49cf424..587273f 100644 --- a/rgmanager/src/daemons/Makefile +++ b/rgmanager/src/daemons/Makefile @@ -69,13 +69,16 @@ EXTRA_LDFLAGS += -lpthread LOCAL_LDFLAGS += -llalloc READLINE_LDFLAGS += -L${readlinelibdir} -lreadline +LDDEPS += ../clulib/libclulib.a -${TARGET1}: ${OBJS1} +LOCAL_LDDEPS += ../clulib/liblalloc.a + +${TARGET1}: ${OBJS1} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CCS_LDFLAGS) $(CMAN_LDFLAGS) \ $(DLM_LDFLAGS) $(XML2_LDFLAGS) \ $(SLANG_LDFLAGS) $(EXTRA_LDFLAGS) -${TARGET2}: ${OBJS2} +${TARGET2}: ${OBJS2} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) # @@ -92,11 +95,11 @@ ${TARGET2}: ${OBJS2} # This is NOT meant to be an installed binary. Rather, RPMs and/or other # packages should run 'make check' as part of the build process. # -${TARGET3}: ${SHAREDOBJS} ${OBJS3} +${TARGET3}: ${SHAREDOBJS} ${OBJS3} ${LDDEPS} ${LOCAL_LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CMAN_LDFLAGS) \ $(LOCAL_LDFLAGS) $(EXTRA_LDFLAGS) $(XML2_LDFLAGS) -${TARGET4}: ${SHAREDOBJS} ${OBJS4} +${TARGET4}: ${SHAREDOBJS} ${OBJS4} ${LDDEPS} ${LOCAL_LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CCS_LDFLAGS) $(CMAN_LDFLAGS) \ $(LOCAL_LDFLAGS) $(EXTRA_LDFLAGS) $(XML2_LDFLAGS) \ $(READLINE_LDFLAGS) @@ -110,8 +113,6 @@ depends: clean: generalclean rm -f tests/*.out* -.PHONY: all ${TARGET1} ${TARGET2} ${TARGET3} ${TARGET4} - -include $(OBJS1:.o=.d) -include $(OBJS2:.o=.d) -include $(OBJS3:.o=.d) diff --git a/rgmanager/src/utils/Makefile b/rgmanager/src/utils/Makefile index c200140..2469032 100644 --- a/rgmanager/src/utils/Makefile +++ b/rgmanager/src/utils/Makefile @@ -25,6 +25,8 @@ CFLAGS += -I${incdir} LDFLAGS += -L${libdir} LDFLAGS += -L../clulib -lclulib +LDDEPS += ../clulib/libclulib.a + CCS_LDFLAGS += -L${ccslibdir} -lccs CMAN_LDFLAGS += -L${cmanlibdir} -lcman NCURSES_LDFLAGS += -L${ncurseslibdir} -lncurses @@ -36,20 +38,20 @@ OBJS3= $(TARGET3).o OBJS4= $(TARGET4).o OBJS5= $(TARGET5).o -${TARGET1}: ${OBJS1} +${TARGET1}: ${OBJS1} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) -${TARGET2}: ${OBJS2} +${TARGET2}: ${OBJS2} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) -${TARGET3}: ${OBJS3} +${TARGET3}: ${OBJS3} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CCS_LDFLAGS) $(CMAN_LDFLAGS) \ $(NCURSES_LDFLAGS) $(PTHREAD_LDFLAGS) -${TARGET4}: ${OBJS4} +${TARGET4}: ${OBJS4} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CMAN_LDFLAGS) $(PTHREAD_LDFLAGS) -${TARGET5}: ${OBJS5} +${TARGET5}: ${OBJS5} ${LDDEPS} $(CC) -o $@ $^ $(LDFLAGS) $(CCS_LDFLAGS) ${TARGET6}: @@ -61,8 +63,6 @@ depends: clean: generalclean -.PHONY: all ${TARGET1} ${TARGET2} ${TARGET3} ${TARGET4} ${TARGET5} ${TARGET6} - -include $(OBJS1:.o=.d) -include $(OBJS2:.o=.d) -include $(OBJS3:.o=.d)
reply other threads:[~2008-08-04 4:01 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080804040039.BB62B12003F@lists.fedorahosted.org \ --to=fabbione@fedoraproject.org \ --cc=cluster-cvs-relay@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).