[petsc-dev] Disabling a header in configure based on a bad link?
Aron Ahmadia
aron at ahmadia.net
Fri Oct 4 14:50:11 CDT 2013
Hi Richard,
I've got some pretty complete steps for a Python-enabled
Proteus+Cygwin64 over here:
https://github.com/hashdist/hashdist/wiki/Windows
Feel free to take a reuse that code if it's useful for you.
A couple notes:
* You may want to consider Cygwin 32 over Cygwin 64 unless you really
want the 64-bit compilers. Cygwin 32 is more stable at this point and
requires less patching.
* You obviously wouldn't use Proteus, so you want to reuse my code you
might do something like:
# follow instructions above for bootstrapping Cygwin
git clone git at github.com:hashdist/hashstack.git
cd hashstack
git checkout proteus-cygwin-hacks-pre1.0
vi config.yml.cygwin # just select the packages you need, probably
just petsc to start, hashdist automatically builds needed
dependencies.
vi petscConfig/bash_script.linux # switch off shared library build,
enable fortran, comment out DLL install lines at bottom
I can take a crack at getting a hashdist install going on my Windows 8
box here if you let me know what your normal install stack/script
looks like.
Cheers,
Aron
On Fri, Oct 4, 2013 at 3:33 PM, Richard Tran Mills <rtm at eecs.utk.edu> wrote:
> Hi Folks,
>
> I ran into exactly the same problem yesterday--I'm going to be co-presenting
> a short course on PFLOTRAN at the Universitaet Goettingen next week and I've
> been trying to figure out proper instructions for participants using Windows
> to be able to build PFLOTRAN and PETSc. Can someone merge Satish's patch
> into 'master' soon?
>
> Thanks,
> Richard
>
>
> On 9/25/13 12:34 PM, Satish Balay wrote:
>>
>> Attached is the patch for this..
>>
>> Satish
>>
>> On Wed, 25 Sep 2013, Satish Balay wrote:
>>
>>> perhaps the appropriate thing is to move the 'fenv.h' from the current
>>> location to this new test into config/BuildSystem/config/headers.py
>>> [i.e this code would add fenv.h header if the test is successful]
>>>
>>> Satish
>>>
>>> On Wed, 25 Sep 2013, Aron Ahmadia wrote:
>>>
>>>> Hi folks,
>>>>
>>>> I'm working on a Cygwin64 port of PETSc and I have a question about
>>>> doing a
>>>> specific disable in BuildSystem based on a failing link.
>>>>
>>>> The Cygwin folks provide an fenv.h implementation that (as far as I can
>>>> tell), is currently broken due to an undefined FE_DFL_ENV variable. My
>>>> inclination is to disable this functionality in PETSc by declaring that
>>>> fenv.h is unavailable if a simple link test fails. I tried to write a
>>>> test
>>>> like this (in Configure.py)
>>>>
>>>> def configureCygwin(self):
>>>> '''Cygwin specific stuff'''
>>>> # detect problem with missing FE_DFL_ENV symbol in Cygwin64
>>>> if not self.checkLink('#include <fenv.h>', 'fesetenv(FE_DFL_ENV)'):
>>>> self.headers.headers.remove('fenv.h')
>>>>
>>>>
>>>> I don't think it worked. Has anybody had experience with *disabling*
>>>> functionality in BuildSystem? Should we be less optimistic about having
>>>> the header and only enable it if the test passes? Where would it go?
>>>>
>>>> Cheers,
>>>> Aron
>>>>
>>>
>
>
> --
> Richard Tran Mills, Ph.D.
> Computational Earth Scientist | Joint Assistant Professor
> Hydrogeochemical Dynamics Team | EECS and Earth & Planetary Sciences
> Oak Ridge National Laboratory | University of Tennessee, Knoxville
> E-mail: rmills at ornl.gov V: 865-241-3198 http://climate.ornl.gov/~rmills
>
More information about the petsc-dev
mailing list