Bug#595281: salome: FTBFS on Alpha, IA64 and Sparc at GEOM_GenSK.cc

Adam C Powell IV hazelsct at debian.org
Mon Oct 4 19:38:43 UTC 2010


On Mon, 2010-10-04 at 11:10 -0400, Aaron M. Ucko wrote:
> Adam C Powell IV <hazelsct at debian.org> writes:
> > Aaron, do you have any advice on avoiding race conditions in generated
> > code?  I tried having the omniidl targets include touching a stamp file
> > after finishing code generation, but couldn't get that to work.
> 
> The problem appears to be that they run the same command:
> 
> .idlSK.cc:
> 	$(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
> .idl.hh:
> 	$(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
> 
> As such, make inadvertantly clobbers one SK.cc file in the course of
> (re)generating the corresponding .hh file for the other source file. :-/

Ah, that makes a lot of sense, and explains why there were so often
compilation errors in the SK.cc files.

> If my analysis is correct, you can work around the bug by having the .hh
> file claim to depend on the SK.cc file:
> 
> %.hh: %SK.cc
> %SK.cc: %.idl
> 	$(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<

Very strange, that fails with:

make[2]: Entering directory `/home/hazelsct/repositories/salome/build-salome/GEOM_SRC_5.1.3/idl'
Makefile:907: warning: overriding commands for target `mostlyclean-local'
Makefile:880: warning: ignoring old commands for target `mostlyclean-local'
/usr/bin/omniidl -bcxx -Wba -nf -I/usr/idl -I../idl/salome -I/home/hazelsct/repositories/salome/debian/salome/usr/idl/salome -Wba -nf -I/usr/idl ../../../GEOM_SRC_5.1.3/idl/GEOM_Gen.idl
/usr/bin/omniidl -bcxx -Wba -nf -I/usr/idl -I../idl/salome -I/home/hazelsct/repositories/salome/debian/salome/usr/idl/salome -Wba -nf -I/usr/idl ../../../GEOM_SRC_5.1.3/idl/GEOM_Superv.idl
make[2]: *** No rule to make target `GEOM_Gen.hh', needed by `all-am'.  Stop.
make[2]: *** Waiting for unfinished jobs....

Maybe because the SK.cc file timestamp is after the .hh?

> (The .idl -> SK.cc rule could continue to use the traditional syntax,
> but I consider modern %-style pattern rules a better choice for two
> reasons:
> - The somewhat artificial SK.cc -> .hh rule would otherwise need a dummy
>   command.

I wonder if it needs a dummy command anyway.  Yup, sticking in a dummy
command worked, without .NOTPARALLEL: .

> - They are clearer, particularly in the face of suffixes not starting
>   with dots.)

I agree completely.

-Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20101004/c8981ed0/attachment-0001.pgp>


More information about the debian-science-maintainers mailing list