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/bu... -- 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