Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: scons CPP parser vs dpb junking
To:
Omar Polo <op@omarpolo.com>
Cc:
ports@openbsd.org, Christian Weisgerber <naddy@mips.inka.de>
Date:
Mon, 29 Jan 2024 19:47:26 +0000

Download raw body.

Thread
On 2024/01/28 23:33, Omar Polo wrote:
> Since the import of games/godot4 there have been at least two build
> failures that naddy reported to me.  Both stems from the same issue:
> scons' CPP parser limitations.
> 
> In a nutsell, given the following bit of code
> 
> #ifdef USE_FOO
> # include <foo.h>
> #endif
> 
> scons is not smart enough to realize that without -DUSE_FOO, foo.h is
> not used, so it records it as dependency.  If than foo gets junked,
> scons fails with an error like:
> 
> scons: *** [thirdparty/oidn/mkl-dnn/src/common/rnn.linuxbsd.editor.o]
> Implicit dependency `/usr/local/include/cblas.h' not found, needed by target
> `thirdparty/oidn/mkl-dnn/src/common/rnn.linuxbsd.editor.o'.
> 
> (actually, scons has another C parser that should be smart enough to
> interpret CPP' #ifs but it's not the default one and AFAIK needs
> explicit opt-in via SConstruct file.)
> 
> So, is DPB_PROPERTIES=nojunk the way to go?  Technically the only port

I think so. It's not ideal, but it is appropriate for this situation,
and it's better than bulk builds randomly failing.