forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-misc/mc: workaround linkage against internal gettext, bug #693850
The underlying issue is lack of support of linking in static gettext into libmc.a due to a deficiency in m4/gettext.m4 (see upstream bug for more details). The workaround is to manually link bundled gettext into every final binary. It fixes default case for musl but does not fix the underlying issues. Let's leave fixing those to upstream. Reported-by: Michael 'veremitz' Everitt Bug: https://bugs.gentoo.org/693850 Bug: https://midnight-commander.org/ticket/3629 Package-Manager: Portage-2.3.75, Repoman-2.3.17 Signed-off-by: Sergei Trofimovich <[email protected]>
- Loading branch information
Sergei Trofimovich
committed
Sep 11, 2019
1 parent
e396085
commit 4939d79
Showing
3 changed files
with
112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
https://bugs.gentoo.org/693850 | ||
https://midnight-commander.org/raw-attachment/ticket/3629/mc-3629-Linking-fix-for-gettext.patch | ||
|
||
Test change counterpart. | ||
|
||
--- a/tests/lib/Makefile.am | ||
+++ b/tests/lib/Makefile.am | ||
@@ -9,3 +9,3 @@ AM_LDFLAGS = @TESTS_LDFLAGS@ | ||
LIBS = @CHECK_LIBS@ \ | ||
- $(top_builddir)/lib/libmc.la | ||
+ $(top_builddir)/lib/libmc.la $(LIBINTL) | ||
|
||
--- a/tests/lib/mcconfig/Makefile.am | ||
+++ b/tests/lib/mcconfig/Makefile.am | ||
@@ -11,3 +11,3 @@ AM_LDFLAGS = @TESTS_LDFLAGS@ | ||
LIBS = @CHECK_LIBS@ \ | ||
- $(top_builddir)/lib/libmc.la | ||
+ $(top_builddir)/lib/libmc.la $(LIBINTL) | ||
|
||
--- a/tests/lib/search/Makefile.am | ||
+++ b/tests/lib/search/Makefile.am | ||
@@ -10,3 +10,3 @@ AM_CPPFLAGS = \ | ||
LIBS = @CHECK_LIBS@ \ | ||
- $(top_builddir)/lib/libmc.la @PCRE_LIBS@ | ||
+ $(top_builddir)/lib/libmc.la @PCRE_LIBS@ $(LIBINTL) | ||
|
||
--- a/tests/lib/vfs/Makefile.am | ||
+++ b/tests/lib/vfs/Makefile.am | ||
@@ -14,3 +14,3 @@ EXTRA_DIST = mc.charsets | ||
LIBS = @CHECK_LIBS@ \ | ||
- $(top_builddir)/lib/libmc.la | ||
+ $(top_builddir)/lib/libmc.la $(LIBINTL) | ||
|
||
--- a/tests/lib/Makefile.in | ||
+++ b/tests/lib/Makefile.in | ||
@@ -636 +636 @@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ | ||
-LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(am__append_1) | ||
+LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(LIBINTL) $(am__append_1) | ||
--- a/tests/lib/mcconfig/Makefile.in | ||
+++ b/tests/lib/mcconfig/Makefile.in | ||
@@ -542 +542 @@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ | ||
-LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(am__append_1) | ||
+LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(LIBINTL) $(am__append_1) | ||
--- a/tests/lib/search/Makefile.in | ||
+++ b/tests/lib/search/Makefile.in | ||
@@ -584,2 +584 @@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ | ||
-LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la @PCRE_LIBS@ \ | ||
- $(am__append_1) | ||
+LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la @PCRE_LIBS@ $(LIBINTL) $(am__append_1) | ||
--- a/tests/lib/vfs/Makefile.in | ||
+++ b/tests/lib/vfs/Makefile.in | ||
@@ -641 +641 @@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ | ||
-LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(am__append_1) | ||
+LIBS = @CHECK_LIBS@ $(top_builddir)/lib/libmc.la $(LIBINTL) $(am__append_1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
https://bugs.gentoo.org/693850 | ||
https://midnight-commander.org/raw-attachment/ticket/3629/mc-3629-Linking-fix-for-gettext.patch | ||
|
||
From 2a97524b42eeececd2ecd928a1154da1f5b7378a Mon Sep 17 00:00:00 2001 | ||
From: Andreas Mohr <[email protected]> | ||
Date: Fri, 1 Apr 2016 06:44:22 +0000 | ||
Subject: [PATCH] Linking fix for non-default gettext package | ||
|
||
mc lost the linking game if gettext package pulled from outside of system paths. | ||
(Pulling can be done by suitable C-/CPP/LDFLAGS settings) | ||
|
||
Furthermore gettext package depends on libintl (if system lib | ||
don't provide needed functions) then gettext prepare INITLIBS/LIBINTL variable | ||
for working libintl pull in from gettext libdir. | ||
|
||
https://www.gnu.org/software/gettext/FAQ.html#integrating_undefined | ||
|
||
Let respect LIBINTL variable at linking (it is empty if not needed). | ||
|
||
Failure example for Solaris 10 with non-system-default gettext package: | ||
|
||
Undefined first referenced | ||
symbol in file | ||
libintl_bind_textdomain_codeset ./.libs/libinternal.a(args.o) | ||
libintl_gettext main.o | ||
libintl_textdomain main.o | ||
libintl_bindtextdomain main.o | ||
libintl_ngettext ./.libs/libinternal.a(midnight.o) | ||
|
||
Signed-off-by: Andreas Mohr <[email protected]> | ||
--- | ||
src/Makefile.am | 3 ++- | ||
1 file changed, 2 insertions(+), 1 deletion(-) | ||
|
||
--- a/src/Makefile.am | ||
+++ b/src/Makefile.am | ||
@@ -53,7 +53,8 @@ libinternal_la_LIBADD = \ | ||
|
||
mc_LDADD = \ | ||
libinternal.la \ | ||
- $(top_builddir)/lib/libmc.la | ||
+ $(top_builddir)/lib/libmc.la \ | ||
+ $(LIBINTL) | ||
|
||
if ENABLE_VFS_SMB | ||
# this is a hack for linking with own samba library in simple way | ||
--- a/src/Makefile.in | ||
+++ b/src/Makefile.in | ||
@@ -556,7 +557,7 @@ libinternal_la_LIBADD = \ | ||
viewer/libmcviewer.la \ | ||
$(DIFFLIB) $(EDITLIB) $(SUBSHELLLIB) | ||
|
||
-mc_LDADD = libinternal.la $(top_builddir)/lib/libmc.la $(am__append_6) | ||
+mc_LDADD = libinternal.la $(top_builddir)/lib/libmc.la $(LIBINTL) $(am__append_6) | ||
SRC_mc_conssaver = \ | ||
cons.handler.c consaver/cons.saver.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters