From 4afd608d61b469b07f6c149e87ba25fabef9909e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 25 Jun 2010 21:33:18 -0700 Subject: [PATCH] Avoid redundant linking against libtool convenience libraries. 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 , 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 cfd3a9f5..52266496 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 699ce5d1..f23a0e77 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 \ -- 2.30.2