Hi Bruno,

> On 18 Jun 2022, at 18:01, Bruno Haible <br...@clisp.org> wrote:

> As the long-term GNU gettext maintainer, I would suggest to remove the intl/
> directory from the GCC distribution.
> 
> The effect for the users would be:
>  * On systems without glibc, users who want an internationalized GCC
>    installation would have to install GNU gettext first. Then the GCC
>    binaries would be linked with the shared library libintl.so
>    (unless gettext was built with --disable-shared); they would no longer
>    contain the libintl code in 'cc1', 'cc1plus', etc.

As a maintainer for GCC on a non-glibc system, I would:

 (a) welcome a more modern version of intl, wih the bug-fixes etc.
 (b) not want to [force] add a shared lib dependency for my downstream.

- so, please could we follow the pattern for GMP et. al. where the library
can be provided with —with-intl= pointing to an installation, or be built in-
tree by symlinking an approved version into the GCC tree.

For such [non-glibs] systems where these libraries are not ’normally’
installed, it is still very much preferable to be able to statically link them
so that a compiler can be distributed with no deps other than those
provided by the OS (and we can test what we ship and ship what we test).

thanks,
Iain


>  * On systems with glibc, no change.
> 
> The effect for the GCC maintainers would be:
>  * Easier to stay up-to-date with upstream libintl.
>  * Less maintenance work with *.m4 files such as
>      codeset.m4
>      glibc21.m4
>      intdiv0.m4
>      inttypes_h.m4
>      inttypes.m4
>      inttypes-pri.m4
>      lcmessage.m4
>      stdint_h.m4
>      uintmax_t.m4
>      ulonglong.m4
>  * Reduced risk of a CVE that would impact GCC binaries.
> 
> Rationale:
>  * This intl/ code is from 2003; of course several bugs have been
>    fixed in it over the last 19 years.
>  * At that time GNU packages were still favouring static libraries.
>    GNU libtool became widely reliable only about in 2005.
>  * Since then, distros have been favouring shared libraries over
>    static libraries, in order to be able to fix CVEs without
>    rebuilding many dependent binaries.
>  * For this reason, GNU gettext removed the support for this way
>    of packaging libintl in version 0.20 (May 2019). The NEWS entry
>    said:
>    - The --intl option of the gettextize program (deprecated since 2010) is
>      no longer available. Instead of including the intl sources in your
>      package, we suggest making the libintl library an optional prerequisite
>      of your package. This will simplify the build system of your package.
>    - Accordingly, the Autoconf macro AM_GNU_GETTEXT_INTL_SUBDIR is gone
>      as well.
> 
> This point came up while discussing with Eric Gallager, who is working on
> the GCC configury.
> 
> I don't volunteer to implement this suggestion, but I can give advice where
> needed.
> 
> Bruno
> 
> 
> 

Reply via email to