I finally figured out how to get FEniCS 1.3.0 to build on OS X 10.8.5. I don't know that FEniCS-dev can be compiled on 10.8.5 because of the clang++ libstdc++ issues with C++11 and the restriction that Apple's LLVM must be used to compile VTK. If a consistent stack can be compiled with libc++, it will probably work, and I assume that's how the build on OS X 10.9.2 would work.
I have a proposal to write this week, but next weekend, I should be able to contribute a number of patches to Dorsal upstream, along with a platform file, if you guys are interested. Cheers, Geoff On Sun, Mar 30, 2014 at 4:15 AM, Geoff Oxberry <[email protected]> wrote: > More progress. I'm pretty sure that the memory error I'm seeing is due to > VTK being compiled with clang++, and almost everything else being compiled > with g++ 4.8. > > In short, it's impossible to compile VTK with GCC on a Mac due to some > non-standard extensions in Apple header. > > I could try compiling most of the dependencies I can think of with libc++. > If that doesn't work, then I doubt it's possible to build the development > versions of FEniCS packages on OS X 10.8.5. > > Cheers, > > Geoff > > > On Sun, Mar 30, 2014 at 1:09 AM, Geoff Oxberry <[email protected]> wrote: > >> Oh, by the way, I forgot to mention: this build is with development >> versions of packages, rather than the stable package versions. >> >> Cheers, >> >> Geoff >> >> >> On Sun, Mar 30, 2014 at 1:07 AM, Geoff Oxberry <[email protected]>wrote: >> >>> Garth, >>> >>> Here's more progress: now FEniCS builds. I have to build quite a bit >>> with GCC 4.8; I've attached the local.platform file I've been using, which >>> is by no means minimal. There are a few Dorsal packages for which I've >>> written custom package files, and I've updated 8 or 9 more. Once I figure >>> all of this out, I'll submit pull requests to upstream. >>> >>> I figured out that GCC 4.8 is used consistently, provided I make sure to >>> clean up previous builds by deleting the FEniCS build directory. The only >>> other exception is PETSc, which still uses Clang++ for some reason, and >>> I'll have to figure that out later. >>> >>> Now, when I run demo_poisson.py, I get the following run-time error: >>> >>> ratatoskr:~ goxberry$ env CXX=g++-4.8 python >>> FEniCS/src/dolfin/demo/documented/poisson/python/demo_poisson.py >>> Calling FFC just-in-time (JIT) compiler, this may take some time. >>> Calling DOLFIN just-in-time (JIT) compiler, this may take some time. >>> Calling DOLFIN just-in-time (JIT) compiler, this may take some time. >>> Calling FFC just-in-time (JIT) compiler, this may take some time. >>> Calling FFC just-in-time (JIT) compiler, this may take some time. >>> Solving linear variational problem. >>> python(18194,0x7fff7c323180) malloc: *** error for object >>> 0x7fff7bc60570: pointer being freed was not allocated >>> *** set a breakpoint in malloc_error_break to debug >>> [ratatoskr:18194] *** Process received signal *** >>> [ratatoskr:18194] Signal: Abort trap: 6 (6) >>> [ratatoskr:18194] Signal code: (0) >>> [ratatoskr:18194] *** End of error message *** >>> Abort trap: 6 >>> >>> The Dorsal platform file is attached; of particular note is that I build >>> a Python 2.7.2 interpreter through Dorsal (the python-osx package is a >>> minor hack that sets PYTHON_LIBRARY to have a .dylib extension instead of >>> an .so extension). Any ideas of what I may want to look at for debugging? >>> >>> Cheers, >>> >>> Geoff >>> >>> >>> On Fri, Mar 28, 2014 at 10:45 AM, Geoff Oxberry <[email protected]>wrote: >>> >>>> Garth, >>>> >>>> Thank you for the reply. I wish I could upgrade, but for the time >>>> being, work policy is to use 10.8.5. >>>> >>>> One potential fix is to use Dorsal to build enough dependencies of >>>> FEniCS-dev with g++ 4.8, which will use the right standard library, and >>>> should be able to link to existing software on my machine built with >>>> clang++ and libstdc++. >>>> >>>> What I've done so far is: >>>> >>>> - built a separate Python 2.7 virtualenv via gcc 4.8, so pip & setup.py >>>> should preferentially use GCC 4.8 for building Python packages. Compile >>>> logs for packages installed via pip indicate that this premise has borne >>>> out so far >>>> - set environment variables in a local.platform file for Dorsal so >>>> that: CC and CXX equal gcc-4.8 and g++4.8, respectively. I've also set >>>> OMPI_CC=gcc-4.8, OMPI_CXX=g++-4.8, and OMPI_FC=gfortran, as in the >>>> mountainlion.platform file set up in Dorsal. >>>> - I make Dorsal build many dependencies, notably: Open MPI, and >>>> anything that looks like it will use an MPI wrapper compiler (boost, >>>> parmetis, mpi4py, petsc, petsc4py, slepc, scotch). >>>> - Then it should build FEniCS-dev. >>>> >>>> Where I get stuck is that it seems that Dorsal uses GCC 4.8 >>>> inconsistently -- possibly not at all -- in the build process, because I'm >>>> still getting clang errors re: shared_ptr. The theory behind having Dorsal >>>> build Open MPI, etc., is that it will use libraries it builds >>>> preferentially, and will sandbox the installs, so building Open MPI via >>>> Dorsal should build an Open MPI wrapper compiler for GCC 4.8 localized to >>>> FEniCS. I would rather avoid building libraries by hand, or using Homebrew >>>> to build libraries using GCC 4.8, if possible. >>>> >>>> Any help on getting Dorsal to recognize the right compiler or correct >>>> my misunderstandings so far would be much appreciated. >>>> >>>> Cheers, >>>> >>>> Geoff >>>> >>>> >>>> On Fri, Mar 28, 2014 at 5:29 AM, Garth N. Wells <[email protected]>wrote: >>>> >>>>> >>>>> On 26 Mar 2014, at 08:55, Geoff Oxberry <[email protected]> wrote: >>>>> >>>>> > I have a similar error to a user who wrote in 2014-03-03 (see >>>>> https://www.mail-archive.com/[email protected]/msg00366.html >>>>> ): >>>>> > >>>>> > Traceback (most recent call last): >>>>> > File "demo_poisson.py", line 41, in <module> >>>>> > V = FunctionSpace(mesh, "Lagrange", 1) >>>>> > File >>>>> "~/FEniCS/lib/python2.7/dist-packages/dolfin/functions/functionspace.py", >>>>> > line 403, in __init__ >>>>> > FunctionSpaceBase.__init__(self, mesh, element, >>>>> constrained_domain) >>>>> > File " >>>>> > >>>>> ~/FEniCS/lib/python2.7/dist-packages/dolfin/functions/functionspace.py", >>>>> > >>>>> > line 84, in __init__ >>>>> > ufc_element, ufc_dofmap = jit(self._ufl_element) >>>>> > File " >>>>> > ~/FEniCS/lib/python2.7/dist-packages/dolfin/compilemodules/jit.py", >>>>> line >>>>> > >>>>> > 60, in mpi_jit >>>>> > return local_jit(*args, **kwargs) >>>>> > File " >>>>> > ~/FEniCS/lib/python2.7/dist-packages/dolfin/compilemodules/jit.py", >>>>> line >>>>> > >>>>> > 122, in jit >>>>> > return jit_compile(form, parameters=p, common_cell=common_cell) >>>>> > TypeError: jit() got an unexpected keyword argument 'common_cell' >>>>> > >>>>> > >>>>> > In the same thread, Anders Logg suggested updating DOLFIN, UFL, and >>>>> FFC. I installed everything through Dorsal; to my knowledge, each package >>>>> is at the most recent stable version. If you let me know which files to >>>>> send, I can send build logs. >>>>> > >>>>> > I've also tried using Dorsal to build the development versions of >>>>> these packages. On OS X with Homebrew and LLVM 3.3, there seems to be an >>>>> issue with the development version of FFC; clang++ throws a number of >>>>> errors related to std::shared_ptr (in SWIG-generated interfaces) that have >>>>> to do with the version of libstdc++ clang++ is using. If I compile and >>>>> link >>>>> with libc++ instead, those problems go away, but linking errors occur >>>>> (with >>>>> Boost; rebuilding Boost with libc++ does not seem to work either). >>>>> > >>>>> > Are there other ways to resolve this problem while still building >>>>> with Homebrew? >>>>> > >>>>> >>>>> I don't think any developers use (or have access to) OS X 10.8, so it >>>>> all be hard for us to fix. I build the FEniCS dev versions on OSX 10.9 >>>>> with >>>>> Xcode 5.1 without problems. I install via Homebrew all the dependencies >>>>> that are available in Homebrew, except PETSc which I choose to build >>>>> myself. >>>>> >>>>> Garth >>>>> >>>>> >>>>> > Cheers, >>>>> > >>>>> > Geoff >>>>> > _______________________________________________ >>>>> > fenics-support mailing list >>>>> > [email protected] >>>>> > http://fenicsproject.org/mailman/listinfo/fenics-support >>>>> >>>>> >>>> >>>> >>>> -- >>>> Geoffrey Oxberry, Ph.D., E.I.T. >>>> [email protected] >>>> >>> >>> >>> >>> -- >>> Geoffrey Oxberry, Ph.D., E.I.T. >>> [email protected] >>> >> >> >> >> -- >> Geoffrey Oxberry, Ph.D., E.I.T. >> [email protected] >> > > > > -- > Geoffrey Oxberry, Ph.D., E.I.T. > [email protected] > -- Geoffrey Oxberry, Ph.D., E.I.T. [email protected]
_______________________________________________ fenics-support mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics-support
