Linking OpenMP Statically on Mac
Ángel González
keisial@gmail.com
Fri May 8 22:11:00 GMT 2015
On 01/05/15 05:50, Rob McDonald wrote:
> When I specify -fopenmp, the program is dynamically linked to
> libgomp.1.dylib. I read that -static is not supported on OSX, as the
> Apple system libraries are not provided with static variants.
>
> So, is there a way to statically link libgomp in this situation?
If you have/build libgomp as a static library, it should be possible to
only link libcomp statically. If -fopenmp flag insists on linking
dynamically, you may need to call the linker manually. But I think it
could be done.
> Or, will I need to distribute libgomp.1.dylib with my program? Does
> the license allow this?
IMHO it does. libgomp is GPL so you can always distribute it (following
its license),
but given that libgomp is covered by the GCC Runtime Library Exception,
I think
you may be able to redistribute just the binary file (I would still
stick a note explaining
that it's an unchanged libgomp vX.Y by foo, though)
> https://www.gnu.org/licenses/gcc-exception-3.1-faq.en.html
> https://www.gnu.org/licenses/gcc-exception-3.1.en.html
> Being a good citizen, where should I put the
> file? I would prefer my users not to have to use sudo to install if
> they don't absolutely have to. My program is currently not a Package,
> it is just an executable and some data files distributed in a *.zip.
If you use a wrapper script using a LD_PRELOAD trick to load
libgomp.1.dylib from the current folder, you can probably continue using
a "plain-zip approach". Just note that the linker variables in Mac OS
are named differently:
http://unix.stackexchange.com/questions/30444/libfaketime-and-mac-os-ld-preload#30449
More information about the Gcc-help
mailing list