Building a gnulib testdir on Mac OS X 10.5.8 with CC="gcc -arch ppc" and
CXX="g++ -arch ppc", I see these link errors:
g++ -arch ppc -Wno-error -g -O2 -L/Users/bruno/data/local-macos-ppc/lib -o
test-string-c++ test-string-c++.o test-string-c++2.o libtests.a
../gllib/libgnu.a libtests.a ../gllib/libgnu.a libtests.a
Undefined symbols:
"_iconv_open", referenced from:
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
"_iconv", referenced from:
_unicode_to_locale_encoding in libgnu.a(lc-charset-unicode.o)
_locale_encoding_to_unicode in libgnu.a(lc-charset-unicode.o)
"_iconv_close", referenced from:
_free_converters in libgnu.a(lc-charset-unicode.o)
_free_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[4]: *** [test-string-c++] Error 1
g++ -arch ppc -Wno-error -g -O2 -L/Users/bruno/data/local-macos-ppc/lib -o
test-uchar-c++ test-uchar-c++.o libtests.a ../gllib/libgnu.a libtests.a
../gllib/libgnu.a libtests.a
Undefined symbols:
"_iconv", referenced from:
_unicode_to_locale_encoding in libgnu.a(lc-charset-unicode.o)
_locale_encoding_to_unicode in libgnu.a(lc-charset-unicode.o)
"_iconv_close", referenced from:
_free_converters in libgnu.a(lc-charset-unicode.o)
_free_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
"_iconv_open", referenced from:
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
_get_converters in libgnu.a(lc-charset-unicode.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[4]: *** [test-uchar-c++] Error 1
make[4]: Target `all-am' not remade because of errors.
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
This patch fixes them.
2023-10-03 Bruno Haible <[email protected]>
string-c++-tests, uchar-c++-tests: Fix link errors on Mac OS X.
* modules/string-c++-tests (Makefile.am): Link test-string-c++ with
$(LIBC32CONV).
* modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with
$(LIBC32CONV).
diff --git a/modules/string-c++-tests b/modules/string-c++-tests
index 10d117fa90..fb44ae42da 100644
--- a/modules/string-c++-tests
+++ b/modules/string-c++-tests
@@ -16,5 +16,5 @@ if ANSICXX
TESTS += test-string-c++
check_PROGRAMS += test-string-c++
test_string_c___SOURCES = test-string-c++.cc test-string-c++2.cc
-test_string_c___LDADD = $(LDADD) $(LIBUNISTRING) $(LIBINTL) $(LIBTHREAD)
+test_string_c___LDADD = $(LDADD) $(LIBUNISTRING) $(LIBINTL) $(LIBC32CONV)
$(LIBTHREAD)
endif
diff --git a/modules/uchar-c++-tests b/modules/uchar-c++-tests
index 12183abd52..bf6640f712 100644
--- a/modules/uchar-c++-tests
+++ b/modules/uchar-c++-tests
@@ -39,5 +39,5 @@ test_uchar_c___SOURCES = test-uchar-c++.cc
if CXX_HAVE_CUCHAR
test_uchar_c___SOURCES += test-uchar-c++2.cc
endif
-test_uchar_c___LDADD = $(LDADD) $(LIBUNISTRING) $(MBRTOWC_LIB)
+test_uchar_c___LDADD = $(LDADD) $(LIBUNISTRING) $(MBRTOWC_LIB) $(LIBC32CONV)
endif