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 <br...@clisp.org> 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