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

Reply via email to