If you're well-versed in linking, feel free to check out the rest of the email 
and maybe look at the source code from the pspp-devel port.



We just fixed a fairly major upstream bug when building PSPP on Mac OS X, but 
I'm curious if there isn't a pair of knowledgeable eyes that could point out 
why it happened: the Mac appears to be acting exceptional in this case. I feel 
it's likely a case of doing it wrong but my insight on linking is limited.

Thanks for your input!

Begin forwarded message:

> Both libpspp.la and libpspp-core.la linked directly against libgl.la, and the 
> UI linked against both libpspp.la and libpspp-core.la.  This works fine on 
> ELF systems, but with Mach-O on Mac OS X it silently causes duplicate symbols 
> at runtime.  In particular there are two different copies of rpl_optarg from 
> libgl.la.  Different code sees different copies of these, which causes a 
> segfault at runtime whenever anyone invokes pspp with an option that takes an 
> argument.
> 
> Reported by Jeremy Lavergne <[email protected]>, with debugging
> assistance by Jeremy and by John Darrington.
> ---
> src/automake.mk   |    4 +---
> tests/automake.mk |    4 ++--
> 2 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/src/automake.mk b/src/automake.mk
> index cfd3a9f..5226649 100644
> --- a/src/automake.mk
> +++ b/src/automake.mk
> @@ -31,9 +31,7 @@ src_libpspp_la_LIBADD = \
>       src/language/liblanguage.la \
>       src/math/libpspp-math.la \
>       src/output/liboutput.la \
> -        $(GSL_LIBS) \
> -     gl/libgl.la
> -
> +        $(GSL_LIBS)
> 
> include $(top_srcdir)/src/math/automake.mk
> include $(top_srcdir)/src/output/automake.mk
> diff --git a/tests/automake.mk b/tests/automake.mk
> index 699ce5d..f23a0e7 100644
> --- a/tests/automake.mk
> +++ b/tests/automake.mk
> @@ -183,7 +183,7 @@ check_PROGRAMS += \
> 
> tests_data_datasheet_test_SOURCES = \
>       tests/data/datasheet-test.c
> -tests_data_datasheet_test_LDADD = gl/libgl.la src/libpspp-core.la $(LIBINTL) 
> +tests_data_datasheet_test_LDADD = src/libpspp-core.la $(LIBINTL) 
> tests_data_datasheet_test_CFLAGS = $(AM_CFLAGS)
> 
> tests_libpspp_ll_test_SOURCES = \
> @@ -263,7 +263,7 @@ tests_libpspp_range_set_test_CPPFLAGS = $(AM_CPPFLAGS) 
> -DASSERT_LEVEL=10
> 
> tests_libpspp_str_test_SOURCES = \
>       tests/libpspp/str-test.c
> -tests_libpspp_str_test_LDADD = src/libpspp/libpspp.la gl/libgl.la $(LIBINTL) 
> +tests_libpspp_str_test_LDADD = gl/libgl.la src/libpspp/libpspp.la $(LIBINTL) 
> 
> tests_libpspp_string_map_test_SOURCES = \
>       src/libpspp/hash-functions.c \
> -- 
> 1.7.1
> 
> 
> -- 
> "Sanity is not statistical."
> --George Orwell
> 
> _______________________________________________
> pspp-dev mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/pspp-dev

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to