From 29540c2ba572ee46e9907c4b66153ce02b39c701 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 5 Aug 2019 16:08:03 +0100 Subject: WCSLIB needs -lcfitsio on some systems Until now, we were relying on WCSLIB's internal checking and linking with CFITSIO. But on one macOS system (not others that had no problem!), we noticed that it complains with undefined symbol linking errors to CFITSIO libraries. With this commit, as a fast/ugly solution, we are explicity adding `-lcfitsio' to WCSLIB's `LIBS' variable so all binaries are linked with it automatically. We'll be in touch with the WCSLIB author to see if a better solution can be found. --- reproduce/software/make/high-level.mk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'reproduce/software') diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index b8c3997..167f430 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -532,10 +532,22 @@ $(ibidir)/libgit2: $(tdir)/libgit2-$(libgit2-version).tar.gz \ fi \ && echo "Libgit2 $(libgit2-version)" > $@ +# LIBS with `-lcfitsio': For some reason WCSLIB 6.3 has some linking +# problems on some versions of macOS, giving the following error: +# +# Undefined symbols for architecture x86_64: +# "_fits_read_wcstab", referenced from: +# _ftwcst_ in getwcstab_f.o +# "_gFitsFiles", referenced from: +# _ftwcst_ in getwcstab_f.o +# ld: symbol(s) not found for architecture x86_64 +# +# For the time being, the best/most-generic solution we found was to +# explicitly force linking with CFITSIO (which happens anyway). $(ibidir)/wcslib: $(tdir)/wcslib-$(wcslib-version).tar.bz2 \ $(ibidir)/cfitsio $(call gbuild, $<, wcslib-$(wcslib-version), , \ - LIBS="-pthread -lcurl -lm" \ + LIBS="-pthread -lcfitsio -lcurl -lm" \ --with-cfitsiolib=$(ildir) \ --with-cfitsioinc=$(idir)/include \ --without-pgplot) \ -- cgit v1.2.1