[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