Currently, m4/gettext.m4 contains an old version of Autoconf macro
AM_GNU_GETTEXT relying on internal symbols (e.g., _nl_expand_alias)
to detect broken implementations of GNU gettext.  System libraries
are searched for the internal symbols unconditionally, i.e., even
when linking against a static GNU libintl, resulting in the following
false positive in my config.log:


    configure:53900: checking for GNU gettext in libintl
configure:53937: clang -o conftest -g -O2 -Wall -pedantic -mmacosx-version-min=11.0 -arch arm64 -falign-functions=8 -Wno-error=implicit-function-declaration -fPIC -DPCRE2_STATIC -I/usr/local/include -I/opt/R/arm64/include -I/usr/local/include -L/opt/R/arm64/lib -L/usr/local/lib conftest.c -L/usr/local/lib -lpcre2-8 -llzma -lbz2 -lz -licucore -ldl -lm -liconv /usr/local/lib/libintl.a /usr/local/lib/libiconv.a >&5
    Undefined symbols for architecture arm64:
      "__nl_expand_alias", referenced from:
          _main in conftest-0e23fb.o
    ld: symbol(s) not found for architecture arm64


AM_GNU_GETTEXT was revised in the GNU gettext sources ~6 years ago
to address this:


    $ git log -1 b67399b
    commit b67399b40bc5bf3165b09e6a095ec941d4b30a97
    Author: Daiki Ueno <u...@gnu.org>
    Date:   Thu May 26 13:38:57 2016 +0900

        m4: Rely less on internal symbols

        * gettext-runtime/m4/gettext.m4 (AM_GNU_GETTEXT): Skip checks for the
        internal symbols _nl_msg_cat_cntr, _nl_domain_bindings, and
        _nl_expand_alias, if __GNU_GETTEXT_SUPPORTED_REVISION is defined.
        Problem reported and fix suggested by Masanori Ogino in:
        https://lists.gnu.org/archive/html/bug-gettext/2016-04/msg00000.html
        The rationale behind this is: (1) those symbol checks are for detecting
        certain broken implementations, namely NetBSD and Solaris 7, and
        (2) __GNU_GETTEXT_SUPPORTED_REVISION is not defined in those
        implementations, while it is defined on compatible implementations, such
        as musl-libc which doesn't have those internal symbols.


Can m4/gettext.m4 be regenerated from a sufficiently newer release
of GNU gettext, without major disruption?

Mikael

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to