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

Aaron M. Ucko ucko at debian.org
Mon Oct 4 15:10:15 UTC 2010


Adam C Powell IV <hazelsct at debian.org> writes:

> I've put .NOTPARALLEL: in the Makefile.am of that directory and am not
> seeing any problems in three builds (where before it failed every time),
> so I'm pushing this to alioth and marking it pending.  Yay!

Sounds good!

> 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. :-/
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) $<

(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.
- They are clearer, particularly in the face of suffixes not starting
  with dots.)

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?amu@monk.mit.edu





More information about the debian-science-maintainers mailing list