[PATCH] VPATH build of viewres, xedit, xfd, xgc, and xgc fails
Peter Breitenlohner
peb at mppmu.mpg.de
Sun Nov 9 05:49:20 PST 2008
On Sat, 8 Nov 2008, Dan Nicholson wrote:
>>> On Fri, Nov 7, 2008 at 12:49 AM, Peter Breitenlohner <peb at mppmu.mpg.de>
>>> wrote:
>>>>
>>>> Attached are five tiny patches. Could one of you you please apply them.
In my original message I had overlooked xmh with the same problem, patch is
attached.
>>> In order to guard against races with parallel jobs, can you change to
>>> `mkdir -p'? ...
>>
>> Sorry, I missed this aspect (simply repeated what was already done for other
>> modules).
I should have said: Yes, of course. I overlooked this aspect ....
>> How about simply ignoring errors resulting from mkdir, i.e., using
>> -test -d app-defaults || mkdir app-defaults
>> That might produce spurious errors (ignored) for parallel jobs, but if mkdir
>> really fails (e.g., a regular file of that name already exists) the next
>> command 'cp $< $@' will fail.
>
> Yeah, that'd be fine, too.
There is actually a much better way to avoid race conditions: whenever there
are several app-default files, make them depend on a phony target that
ensures the existence of ./app-defaults. Attached is a patch implementing
this for xedit (where my original patch has already been applied).
Here a list of all app modules with that problem (more than one .ad
file):
bitmap
editres
xcalc
xclock
xditview
xedit
xlogo
xmessage
BTW: The only module with an .ad file still in the top-level directory is
oclock, but in that case there is no name conflict on case insensitive
filesystems.
Regards
Peter Breitenlohner <peb at mppmu.mpg.de>
-------------- next part --------------
From a228bb1f92980c4c3b654fab188c4798b4b73dee Mon Sep 17 00:00:00 2001
From: Peter Breitenlohner <peb at mppmu.mpg.de>
Date: Sat, 8 Nov 2008 18:47:06 +0100
Subject: [PATCH] enabled VPATH build
---
Makefile.am | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index f930a3c..9387cb3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -73,6 +73,7 @@ APPDEFAULTFILES = \
SUFFIXES = .ad
.ad:
+ test -d app-defaults || mkdir app-defaults
cp $< $@
appdefault_DATA = $(APPDEFAULTFILES)
--
1.6.0.3
-------------- next part --------------
From 0687ace9392c5801929d81380ac03bd851514971 Mon Sep 17 00:00:00 2001
From: Peter Breitenlohner <peb at mppmu.mpg.de>
Date: Sun, 9 Nov 2008 14:24:10 +0100
Subject: [PATCH] avoid race condition for parallel jobs
---
Makefile.am | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 1a32798..7c13340 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,20 +167,25 @@ APPDEFAULTFILES = \
app-defaults/Xedit-color \
app-defaults/Xedit
+$(APPDEFAULTFILES): appsubdir
+
+.PHONY: appsubdir
+
+# Ensure ./app-defaults exists, avoiding race condition for parallel jobs
+appsubdir:
+ test -d app-defaults || mkdir app-defaults
+
if USE_XPRINT
app-defaults/Xedit.ad:
- test -d app-defaults || mkdir app-defaults
cp $(top_srcdir)/app-defaults/Xedit-xprint.ad app-defaults/Xedit.ad
else
app-defaults/Xedit.ad:
- test -d app-defaults || mkdir app-defaults
cp $(top_srcdir)/app-defaults/Xedit-noxprint.ad app-defaults/Xedit.ad
endif
SUFFIXES = .ad
.ad:
- test -d app-defaults || mkdir app-defaults
cp $< $@
appdefaultdir = @appdefaultdir@
--
1.6.0.3
More information about the xorg
mailing list