What does your hooks look like? And in what hook are you trying to do this? (Which i'll see when you show me the hook ...)
On 11/27/19 10:19 AM, Loris Bennett wrote: > Hi Åke, > > Åke Sandgren <[email protected]> writes: > >> You might need to add it to the configopts (preconfigopts). Not sure >> which steps that easyconfig/block is going through. > > I have tried tweaking the EC directly with > > preconfigopts = 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS" ' > > but this doesn't help. In the log I see > > == 2019-11-27 10:01:00,566 easyconfig.py:583 INFO setting easyconfig > parameter preconfigopts: value CXXFLAGS="$CXXFLAGS -DSTAN_THREADS" > (type: <type 'str'>) > > but subsequently > > == 2019-11-27 10:01:01,750 environment.py:97 INFO Environment variable > CXXFLAGS set to -O2 -ftree-vectorize -march=native -fno-math-errno > (previously undefined) > > A heavy-handed approach would seem to be redefining the default value of > CXXFLAGS global. Is that possible? > > Otherwise it looks like I'll have to patch the Makefiles in the sources. > > Cheers, > > Loris > >> On 11/21/19 10:05 AM, Loris Bennett wrote: >>> Loris Bennett <[email protected]> writes: >>> >>>> Hi, >>>> >>>> I am trying to install >>>> >>>> RStan-2.18.2-foss-2018b-R-3.5.1.eb >>>> >>>> with the additional compiler flag: >>>> >>>> -DSTAN_THREADS >>>> >>>> I want to us a hook and tried >>>> >>>> def pre_configure_hook(self, *args, **kwargs): >>>> >>>> """Pre-build hook""" >>>> >>>> # Build RStan with threading >>>> ################################################## >>>> if self.name == 'RStan': >>>> self.cfg['buildopts'] = self.cfg['buildopts'] \ >>>> + 'CXXFLAGS="$CXXFLAGS -DSTAN_THREADS"' >>>> self.log.info("[pre-build hook] Added -DSTAN_THREADS to CXXFLAGS >>>> to buildopts") >>>> return >>>> >>>> In the log file I can see that the hooks is called, but the flag >>>> doesn't seem to be used. >>>> >>>> What am I doing wrong? >>> >>> I have also tried adding >>> >>> buildopts = "-DSTAN_THREADS" >>> >>> to my own copy of the easyconfig. This does appear in >>> the log file has having been set: >>> >>> == 2019-11-21 09:20:23,543 easyconfig.py:583 INFO setting easyconfig >>> parameter buildopts: value -DSTAN_THREADS (type: <type 'str'>) >>> >>> but it is not passed to the compiler. The compile lines do contain >>> other macros, but these are obviously coming from elsewhere: >>> >>> g++ -std=gnu++14 >>> -I"/trinity/shared/easybuild/software/R/3.5.1-foss-2018b/lib64/R/include" >>> -DNDEBUG -I"../inst/include" >>> >>> -I"`"/trinity/shared/easybuild/software/R/3.5.1-foss-2018b/lib64/R/bin/Rscript" >>> --vanilla -e "cat(system.file('include', 'src', package = >>> 'StanHeaders'))"`" -DBOOST_DISABLE_ASSERTS >>> -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION ... >>> >>> Any ideas how I could insert "-DSTAN_THREADS"? Or can this kind of >>> thing only be done by patching the Makefile? >>> >>> Cheers, >>> >>> Loris >>> >>> -- >>> Dr. Loris Bennett (Mr.) >>> ZEDAT, Freie Universität Berlin Email [email protected] >>> -- Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden Internet: [email protected] Phone: +46 90 7866134 Fax: +46 90-580 14 Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se

