Hi Bruno,

> On 19 Jun 2022, at 01:32, Bruno Haible <br...@clisp.org> wrote:
> 
> Iain Sandoe wrote:
>> As a maintainer for GCC on a non-glibc system, I would:

>> (b) not want to [force] add a shared lib dependency for my downstream.
> 
> In order to avoid shared libs, the user merely has to pass the option
> '--disable-shared' to GNU gettext's configure.

Well, we try to make things easy for end-users, so actually the objective would
be that (for those who are prepared to download a pre-built binary) that they do
not have to find and build _any_ other libs. 

“Distributions” might choose to go the shared library route - on the basis that
they have already presumably automated the installation of dependencies 
- so it’s just that the user has to wait a little longer for the install...

For people intending to build from source, we can try to automate with scripts
and pre-fetching of prerequisites etc. .. OTOH GCC is complex enough in its
own right, it’s better to keep things as simple as possible.
> 
>> - so, please could we follow the pattern for GMP et. al. where the library
>> can be provided with —with-intl= pointing to an installation
> 
> That convention is already built-in in the gettext.m4 macro; the option is
> called --with-libintl-prefix there.
> 
>> , or be built in-tree by symlinking an approved version into the GCC tree.
> 
> If you are referring to the sentence found in the GCC documentation for
> ISL, MPFR, etc.
>  "If an isl source distribution is found in a subdirectory of your GCC
>   sources named isl, it will be built together with GCC."

yes, exactly - that is usually how I build GCC - in addition to the
simplification of distributing a built compiler, it also has the advantage that
the same deps that one tested with are fixed into the binary.

> I believe that this can be achieved easily by adding a few lines to the
> Makefile.def, such as:
> 
> host_modules= { module= gettext-runtime; no_install=true;
>                extra_configure_flags='--disable-shared';
>                lib_path=intl/.libs; };
> 
> The symlink 'gettext-runtime' will need to point to the 'gettext-runtime'
> *subdirectory* of an unpacked GNU gettext tarball.

Thanks, that’s very helpful information - it could be something to trial 
relatively
easily.

** NOTE: this is not a GCC-only decision, intl is used by a number of other 
pieces
(GDB, GDB-server, binutils etc. etc)  These projects share the top-level build
infrastructure —  [see Makefile.def and grep intl].

I suppose one could try s/intl/gettext-runtime/ and then rebuild the top-level
makefiles..

thanks,
Iain

Reply via email to