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

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].


> On Feb 9, 2018, at 14:06, Makarius <> 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
> -- 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 mailing list

Reply via email to