Makarius, were you saying that building Poly/ML with libgmp *at all* has been a 
challenge? Or specifically building a portable Poly/ML with libgmp? I have 
never had a problem building Poly/ML on macOS using a MacPorts-installed libgmp:

    CFLAGS="-I /opt/local/include -L/opt/local/lib" CXXFLAGS="-I 
/opt/local/include -L/opt/local/lib" LDFLAGS="-L/opt/local/lib" ./configure
    make

I don’t know what the scenario is for Homebrew users, but I imagine it would be 
similar. For a long time I didn’t pay much attention to macOS questions, not 
having a Mac myself and after ending up with one I just assumed the cryptic 
flags juggling was common knowledge. Apologies if I was mistaken.

The above steps are probably not suitable for building a portable Poly/ML. If 
you’re building libgmp from source maybe you want to try building a static 
library (-disable-shared to the libgmp build system)? I have not tried this, 
but they claim it works [0].

  [0]: https://gmplib.org/manual/Known-Build-Problems.html#index-MacOS-X

> On Feb 9, 2018, at 14:06, Makarius <makar...@sketis.net> wrote:
> 
> Dear Poly/ML enthusiasts and experts of the gcc toolchain on macOS,
> 
> building Poly/ML with libgmp has always been a challenge, but I have now
> managed as follows for x86_64-darwin.
> 
> The approach works as follows:
> 
>  (1) Build libgmp from sources.
>  (2) Build Poly/ML --with-gmp using that homemade version.
>  (3) Copy libgmp.10.dylib into the Poly/ML lib directory and adjust
> locations with install_name_tool
> 
> Afterwards it is possible to copy the resulting Poly/ML target directory
> to a different location on a different machine, with a different (newer)
> macOS version.
> 
> The details are in the included build.txt (e.g. for macOS 10.12 Sierra).
> This is not a shell script! It should be run carefully line-by-line.
> Towards the end there are two install_name_tool invocations with
> locations determined beforehand by "otool -L". The final "otool -L" is
> just a sanity check, the result is like this:
> 
> target/bin/poly:
>       @executable_path/../lib/libpolyml.9.dylib (compatibility version
> 10.0.0, current version 10.0.0)
>       @executable_path/../lib/libgmp.10.dylib (compatibility version 14.0.0,
> current version 14.2.0)
>       /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
> 307.4.0)
>       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.0.0)
> 
> 
> This setup is already part of "isabelle build_polyml", see
> http://isabelle.in.tum.de/repos/isabelle/file/8b19a8a7f029/src/Pure/Admin/build_polyml.scala
> -- but that assumes that libgmp has been installed in a standard place
> (e.g. /usr/local/lib).
> 
> 
> I wonder if anybody has managed to build libgmp for x86-darwin (32bit)
> platform. That platform variant still provides better performance for
> big applications like Isabelle, because it requires only half the memory.
> 
> 
>       Makarius
> <build.txt>_______________________________________________
> polyml mailing list
> polyml@inf.ed.ac.uk
> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to