bugGNU gettext - Bugs: bug #64323, Some symbols not exported in 0.22

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #64323: Some symbols not exported in 0.22

Submitter:  FX <fxcoudert>
Submitted:  Tue 20 Jun 2023 12:51:50 PM UTC
   
 
Category:  Build Severity:  3 - Normal
Item Group:  None Status:  Fix Released
Privacy:  Public Assigned to:  haible
Open/Closed:  Closed

Jump to the original submission

Tue 19 Sep 2023 10:21:07 PM UTC, comment #7: 

The fix is contained in gettext 0.22.2. Not in gettext 0.22.1.

Bruno Haible <haible>
Group administrator
Tue 19 Sep 2023 08:38:55 AM UTC, comment #6: 

The fix is contained in gettext 0.22.1.

Bruno Haible <haible>
Group administrator
Fri 15 Sep 2023 09:24:18 PM UTC, comment #5: 

Thanks for the report.

Special thanks to Christian Weisgerber, Tijl Coosemans, and David Bohman, for coming up with the solution and verifying it!

I've pushed this fix:
https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=febd0cea3a96442ca1083855775f54740be2cc4e

And will make a bug-fix release soon.

Bruno Haible <haible>
Group administrator
Sun 10 Sep 2023 12:25:54 AM UTC, comment #4: 

Thanks Christian for the suggestion.

I have verified that adding -DBUILDING_DLL to AM_CPPFLAGS resolves the issue. Here is the patch that I used:

diff --git a/gettext-runtime/intl/Makefile.am b/gettext-runtime/intl/Makefile.am
index f6d8f54..fdc9b87 100644
--- a/gettext-runtime/intl/Makefile.am
+++ b/gettext-runtime/intl/Makefile.am
@@ -35,7 +35,7 @@ SUFFIXES =
 AM_CPPFLAGS = \
   -Ignulib-lib -I$(srcdir)/gnulib-lib \
   -DLOCALEDIR=$(localedir_c_make) -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-  -DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL
+  -DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL

 if WOE32
 # On mingw, disable the declarations of *printf functions as aliases to the

Of course, then you have to run automake and autoconf within gettext-runtime/intl.

I suggest that we get this fix into a patch release of gettesxt.

David Bohman <debohman>
Sat 09 Sep 2023 02:47:30 PM UTC, comment #3: 

OpenBSD packager here, same problem.

I think this is unintentional fallout from commit a80b9021019fe311b81771d67138496f512ef35a. Part of that change is that now only a subsection of libintl is built with -DBUILDING_DLL. In particular, intl-compat.c is no longer compiled with -DBUILDING_DLL, so the unprefixed compatibility symbols are no longer exported.

A simple fix/workaround is to re-add -DBUILDING_DLL to AM_CPPFLAGS in gettext-runtime/intl/Makefile. (Hat tip to Tijl Coosemans <tijl@FreeBSD.org>, who figured it out first.) With this, there are no relevant symbol differences in libintl between 0.21.1 and 0.22.

Christian Weisgerber <naddy>
Wed 06 Sep 2023 12:17:53 AM UTC, comment #2: 

I am experiencing the same issue on macOS, I posted about it on the mailing list a couple of weeks ago. I just asked whether this change was intentional. If it is not intentional, then we will have to track down the problem.

This problem prevents building php with the intl module. It also prevents Python 3.11 from building.

David Bohman <debohman>
Sun 03 Sep 2023 03:53:54 PM UTC, comment #1: 

Is there anything I can do to help debug the issue? It's breaking packages relying on gettext on macOS, so we can't ship this version in Homebrew.

FX <fxcoudert>
Tue 20 Jun 2023 12:51:50 PM UTC, original submission:  

Building gettext on macOS, as part of Homebrew (https://github.com/Homebrew/homebrew-core/pull/134039), we see a regression where some symbols that used to be exported in libintl are now local:

$ nm 0.21.1/lib/libintl.8.dylib | grep bindtextdomain
00000000000099f8 T _bindtextdomain
000000000000417c T _libintl_bindtextdomain
$ nm 0.22/lib/libintl.8.dylib | grep bindtextdomain
0000000000009ee0 t _bindtextdomain
0000000000004e50 T _libintl_bindtextdomain

Symbols affected are many, including: _bindtextdomain, _bind_textdomain_codeset, _dcgettext, _dcngettext, _dgettext, _dngettext, _gettext, _ngettext, _textdomain.

FX <fxcoudert>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by haible (Posted a comment)
  • -email is unavailable- added by haible (Tijl Coosemans)
  • -email is unavailable- added by naddy (Posted a comment)
  • -email is unavailable- added by debohman (Posted a comment)
  • -email is unavailable- added by fxcoudert (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2023-09-19 haible StatusFixed Fix Released
    2023-09-15 haible StatusNone Fixed
        Assigned toNone haible
        Open/ClosedOpen Closed
    2023-09-15 haible Carbon-Copy- Added -email is unavailable-

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code