[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Gettext's libgettextpo fails linking due to a missing dependency on libt
From: |
L. E. Segovia |
Subject: |
Gettext's libgettextpo fails linking due to a missing dependency on libtextstyle |
Date: |
Mon, 22 Feb 2021 00:00:39 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0 |
Hi all,
I'm writing to ask if you have experienced the following issue with
gettext on macOS.
I've been working on updating the libraries that we ship with Krita (MR
here: https://invent.kde.org/graphics/krita/-/merge_requests/718), and
among them I tried to upgrade gettext to 0.21.
Apart from the linker warnings that have been reported previously here:
https://lists.gnu.org/archive/html/bug-gettext/2020-11/msg00025.html
Gettext cannot be compiled under our macOS toolchain (with our own built
libiconv) because of an error when linking libgettextpo:
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in gnulib-local
make[2]: Nothing to be done for `all'.
Making all in gettext-runtime
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in doc
make[4]: Nothing to be done for `all'.
Making all in intl
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in intl-java
make[4]: Nothing to be done for `all'.
Making all in intl-csharp
make[4]: Nothing to be done for `all'.
Making all in gnulib-lib
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
make[6]: Nothing to be done for `all-am'.
Making all in libasprintf
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
Making all in src
make[4]: Nothing to be done for `all'.
Making all in po
make[4]: Nothing to be done for `all'.
Making all in man
make[4]: Nothing to be done for `all'.
Making all in m4
make[4]: Nothing to be done for `all'.
Making all in tests
make[4]: Nothing to be done for `all'.
Making all in libtextstyle
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in lib
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in tests
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in .
make[6]: Nothing to be done for `all-am'.
Making all in adhoc-tests
make[4]: Nothing to be done for `all'.
Making all in doc
make[4]: Nothing to be done for `all'.
Making all in gettext-tools
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in intl
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in gnulib-lib
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in libgrep
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
make[5]: Nothing to be done for `all-am'.
Making all in libgettextpo
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -version-info
5:7:5 -rpath /Volumes/Kiki/krita-mac/i/lib -no-undefined -o
libgettextpo.la -rpath /Volumes/Kiki/krita-mac/i/lib gettext-po.lo
../src/str-list.lo ../src/dir-list.lo ../src/message.lo
../src/msgl-ascii.lo ../src/po-error.lo ../src/po-xerror.lo
../src/write-catalog.lo ../src/write-po.lo ../src/open-catalog.lo
../src/po-charset.lo ../src/po-lex.lo ../src/po-gram-gen.lo
../src/read-po.lo ../src/read-catalog-abstract.lo ../src/read-catalog.lo
../src/plural-table.lo ../src/format-c.lo ../src/format-python.lo
../src/format-python-brace.lo ../src/format-java.lo
../src/format-java-printf.lo ../src/format-csharp.lo
../src/format-javascript.lo ../src/format-scheme.lo
../src/format-lisp.lo ../src/format-elisp.lo ../src/format-librep.lo
../src/format-ruby.lo ../src/format-sh.lo ../src/format-awk.lo
../src/format-lua.lo ../src/format-pascal.lo ../src/format-smalltalk.lo
../src/format-qt.lo ../src/format-qt-plural.lo ../src/format-kde.lo
../src/format-kde-kuit.lo ../src/format-boost.lo ../src/format-tcl.lo
../src/format-perl.lo ../src/format-perl-brace.lo ../src/format-php.lo
../src/format-gcc-internal.lo ../src/format-gfc-internal.lo
../src/format.lo ../src/plural-exp.lo ../src/plural-eval.lo
../src/msgl-check.lo ../src/sentence.lo libgnu.la ../intl/libintl.la
-liconv -Wl,-framework -Wl,CoreFoundation -liconv -lc
libtool: link: gcc -dynamiclib -o .libs/libgettextpo.0.dylib
.libs/gettext-po.o ../src/.libs/str-list.o ../src/.libs/dir-list.o
../src/.libs/message.o ../src/.libs/msgl-ascii.o ../src/.libs/po-error.o
../src/.libs/po-xerror.o ../src/.libs/write-catalog.o
../src/.libs/write-po.o ../src/.libs/open-catalog.o
../src/.libs/po-charset.o ../src/.libs/po-lex.o
../src/.libs/po-gram-gen.o ../src/.libs/read-po.o
../src/.libs/read-catalog-abstract.o ../src/.libs/read-catalog.o
../src/.libs/plural-table.o ../src/.libs/format-c.o
../src/.libs/format-python.o ../src/.libs/format-python-brace.o
../src/.libs/format-java.o ../src/.libs/format-java-printf.o
../src/.libs/format-csharp.o ../src/.libs/format-javascript.o
../src/.libs/format-scheme.o ../src/.libs/format-lisp.o
../src/.libs/format-elisp.o ../src/.libs/format-librep.o
../src/.libs/format-ruby.o ../src/.libs/format-sh.o
../src/.libs/format-awk.o ../src/.libs/format-lua.o
../src/.libs/format-pascal.o ../src/.libs/format-smalltalk.o
../src/.libs/format-qt.o ../src/.libs/format-qt-plural.o
../src/.libs/format-kde.o ../src/.libs/format-kde-kuit.o
../src/.libs/format-boost.o ../src/.libs/format-tcl.o
../src/.libs/format-perl.o ../src/.libs/format-perl-brace.o
../src/.libs/format-php.o ../src/.libs/format-gcc-internal.o
../src/.libs/format-gfc-internal.o ../src/.libs/format.o
../src/.libs/plural-exp.o ../src/.libs/plural-eval.o
../src/.libs/msgl-check.o ../src/.libs/sentence.o
-Wl,-force_load,./.libs/libgnu.a
/Volumes/Kiki/krita-mac/depbuild/ext_gettext/ext_gettext-prefix/src/ext_gettext-build/gettext-tools/intl/.libs/libintl.dylib
../intl/.libs/libintl.dylib -liconv -lc -g -O2 -Wl,-framework
-Wl,CoreFoundation -install_name
/Volumes/Kiki/krita-mac/i/lib/libgettextpo.0.dylib
-compatibility_version 6 -current_version 6.7 -Wl,-single_module
Undefined symbols for architecture x86_64:
"_file_ostream_create", referenced from:
_msgdomain_list_print in write-catalog.o
"_ostream_free", referenced from:
_msgdomain_list_print in write-catalog.o
"_ostream_write_mem", referenced from:
_message_print_comment in write-po.o
_wrap in write-po.o
"_ostream_write_str", referenced from:
_message_print_comment in write-po.o
_message_print_comment_dot in write-po.o
_message_print_comment_filepos in write-po.o
_message_print_comment_flags in write-po.o
_msgdomain_list_print_po in write-po.o
_wrap in write-po.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make[5]: *** [libgettextpo.la] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
All of the symbols referenced above come from libtextstyle, which the
library for some reason doesn't link against.
Since the detection logic in libtextstyle.m4 doesn't yield the bundled
libtextstyle, the fix I came up with was hardcoding libtextstyle.la in
the dependencies of libgettext.po as follows:
diff --git a/gettext-tools/libgettextpo/Makefile.am
b/gettext-tools/libgettextpo/Makefile.am
index 59b016ee..fe3b27e7 100644
--- a/gettext-tools/libgettextpo/Makefile.am
+++ b/gettext-tools/libgettextpo/Makefile.am
@@ -107,7 +107,25 @@ LTV_AGE=5
# How to build libgettextpo.la.
# Don't make it depend on libgettextsrc.la or libgettextlib.la, since they
# define an uncontrolled amount of symbols.
-libgettextpo_la_LIBADD = libgnu.la $(WOE32_LIBADD) $(LTLIBUNISTRING)
+# Amyspark: Need @LTLIBTEXTSTYLE@ because in macOS the linker will
complain:
+# Undefined symbols for architecture x86_64:
+# "_file_ostream_create", referenced from:
+# _msgdomain_list_print in write-catalog.o
+# "_ostream_free", referenced from:
+# _msgdomain_list_print in write-catalog.o
+# "_ostream_write_mem", referenced from:
+# _message_print_comment in write-po.o
+# _wrap in write-po.o
+# "_ostream_write_str", referenced from:
+# _message_print_comment in write-po.o
+# _message_print_comment_dot in write-po.o
+# _message_print_comment_filepos in write-po.o
+# _message_print_comment_flags in write-po.o
+# _msgdomain_list_print_po in write-po.o
+# _wrap in write-po.o
+# ld: symbol(s) not found for architecture x86_64
+# clang: error: linker command failed with exit code 1 (use -v to see
invocation)
+libgettextpo_la_LIBADD = libgnu.la
../../libtextstyle/lib/libtextstyle.la $(WOE32_LIBADD) $(LTLIBUNISTRING)
libgettextpo_la_LDFLAGS = \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-rpath $(libdir) \
What would be a more correct way of fixing this?
Thanks in advance!
--
amyspark 🌸 https://www.amyspark.me
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Gettext's libgettextpo fails linking due to a missing dependency on libtextstyle,
L. E. Segovia <=