What could be the problem when make gets into a loop in sax, continuously compiling facreg.cxx?

Tor Lillqvist tml at iki.fi
Mon Mar 5 09:42:25 PST 2012


It seems that there are two combining reasons why this particular
facreg.cxx file is causing problems:

1) the trailing slash in the  -I$S/sax/source/fastparser/  passed to
the compiler,

2) that facreg.cxx includes fastserializer.h with  #include
"../tools/fastserializer.hxx"

(Nothing strictly wrong as such with this, of course.)

This causes the .d file to contain in the dependency list of facreg.o:
/Users/tml/lo/ios/sax/source/fastparser//../tools/fastserializer.hxx

Nothing wrong with that, either, it's legal even if redundant to have
multiple consecutive slashes in Unix pathnames.

But apparently then make 3.82 gets confused by the "//.." and replaces
it with empty, instead of replacing "/fastparser//.." with empty. Or
something like that. Been looking in our make 3.82 sources for some
moments but can't find the place where it canonicalizes filenames. But
clearly it does, incorrectly in this case, as it uses the (incorrect)
canonical form of the filename in its "does not exist" debug message.

--tml


More information about the LibreOffice mailing list