public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Arsen Arsenović" <arsen@aarsen.me>
To: Xi Ruoyao <xry111@xry111.site>
Cc: gcc-patches@gcc.gnu.org, Bruno Haible <bruno@clisp.org>,
	Iain Sandoe <iain@sandoe.co.uk>
Subject: Re: [PATCH 0/2] Replace intl/ with out-of-tree GNU gettext
Date: Mon, 25 Sep 2023 19:28:56 +0200	[thread overview]
Message-ID: <868r8uywdl.fsf@aarsen.me> (raw)
In-Reply-To: <c5ecd018e50999cf6ea5ced308862ecb43aaa02b.camel@xry111.site>

[-- Attachment #1: Type: text/plain, Size: 5175 bytes --]


Xi Ruoyao <xry111@xry111.site> writes:

> On Mon, 2023-09-25 at 17:00 +0200, Arsen Arsenović wrote:
>> Afternoon,
>> 
>> This patch series replaces the old (early 2000s era, AFAICT) libintl
>> implementation in-tree, which relies on C constructs some compilers
>> (newer clang, hopefully GCC 14) refuse to compile by default with
>> out-of-tree gettext, in a manner similar to GMP et al, and adds gettext
>> to download_prerequisites.
>
> I think we need to update install.texi to mention the new dependency.

Ah, thanks.  I had forgotten to update it.  What do you think of the
following prose?

1:  2ac5c8240c0f ! 1:  2cc0029921fb *: add modern gettext
    @@ Commit message
                 * aclocal.m4: Regenerate.
                 * Makefile.in (LIBDEPS): Remove (potential) ./ prefix from
                 LIBINTL_DEP.
    -            * doc/install.texi: Document new (notable) flags added by the optional
    -            gettext tree and by AM_GNU_GETTEXT.
     
         libcpp/ChangeLog:
     
    @@ gcc/configure: $as_echo "$as_me: executing $ac_file commands" >&6;}
          "collect-ld":F) chmod +x collect-ld ;;
          "nm":F) chmod +x nm ;;
     
    - ## gcc/doc/install.texi ##
    -@@ gcc/doc/install.texi: is shown below:
    - @code{sys} and @code{time}.
    - @end table
    - 
    -+@item GNU gettext
    -+
    -+Necessary to build GCC with internationalization support via
    -+@option{--enable-nls}.  It can be downloaded from
    -+@uref{https://gnu.org/s/gettext/}.  If a GNU gettext distribution is
    -+found in a subdirectory of your GCC sources named @file{gettext}, it
    -+will be built together with GCC, unless present in the system (either in
    -+libc or as a stand-alone library).
    -+
    -+The in-tree configuration requires GNU gettext v0.22.
    -+
    - @end table
    - 
    - @heading Tools/packages necessary for modifying GCC
    -@@ gcc/doc/install.texi: components of the binutils you intend to build alongside the compiler
    - (@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
    - @file{opcodes}, @dots{}) to the directory containing the GCC sources.
    - 
    --Likewise the GMP, MPFR and MPC libraries can be automatically built
    --together with GCC.  You may simply run the
    -+Likewise the GMP, MPFR, MPC and Gettext libraries can be automatically
    -+built together with GCC.  You may simply run the
    - @command{contrib/download_prerequisites} script in the GCC source directory
    - to set up everything.
    --Otherwise unpack the GMP, MPFR and/or MPC source
    -+Otherwise unpack the GMP, MPFR, MPC and/or Gettext source
    - distributions in the directory containing the GCC sources and rename
    --their directories to @file{gmp}, @file{mpfr} and @file{mpc},
    --respectively (or use symbolic links with the same name).
    -+their directories to @file{gmp}, @file{mpfr}, @file{mpc} and
    -+@file{gettext}, respectively (or use symbolic links with the same name).
    - 
    - @html
    - <hr />
    -@@ gcc/doc/install.texi: which lets GCC output diagnostics in languages other than American
    - English.  Native Language Support is enabled by default if not doing a
    - canadian cross build.  The @option{--disable-nls} option disables NLS@.
    - 
    -+@item --with-libintl-prefix=@var{dir}
    -+@itemx --without-libintl-prefix
    -+Searches for libintl in @file{@var{dir}/include} and
    -+@file{@var{dir}/lib}, or disables manual searching for it, letting the
    -+linker handle it.
    -+
    -+@item --with-libintl-type=@var{type}
    -+Specifies the type of library to search for when looking for libintl.
    -+@var{type} can be one of @code{auto}, @code{static} or @code{shared}.
    -+
    - @item --with-included-gettext
    --If NLS is enabled, the @option{--with-included-gettext} option causes the build
    --procedure to prefer its copy of GNU @command{gettext}.
    -+Only available if @file{gettext} is present in the source tree.
    -+
    -+Forces the gettext tree to be configured to build and use a new static
    -+libintl, overriding the system libintl.
    - 
    - @item --with-catgets
    - If NLS is enabled, and if the host lacks @code{gettext} but has the
    -
      ## libcpp/aclocal.m4 ##
     @@ libcpp/aclocal.m4: m4_include([../config/codeset.m4])
      m4_include([../config/depstand.m4])

Perhaps this is easier to read when not a range-diff..
https://git.sr.ht/~arsen/gcc/commit/2ac5c8240c0f1a670f100c8e38baf40b13cc50b2#gcc/doc/install.texi

> And IIUC if --disable-nls is used, we can still build GCC with neither
> system gettext nor in-tree gettext.  Or am I wrong?  (I'm asking because
> we'll need to adjust Linux From Scratch [1-3] for this change if it's
> applied.)

Yes, this doesn't change how --disable-nls works.

> [1]:https://www.linuxfromscratch.org/lfs/view/development/chapter05/gcc-pass1.html
> [2]:https://www.linuxfromscratch.org/lfs/view/development/chapter06/gcc-pass2.html
> [3]:https://www.linuxfromscratch.org/lfs/view/development/chapter08/gcc.html
-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]

  reply	other threads:[~2023-09-25 17:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-25 15:00 Arsen Arsenović
2023-09-25 15:00 ` [PATCH 1/2] intl: remove, in favor of out-of-tree gettext Arsen Arsenović
2023-09-25 15:00 ` [PATCH 2/2] *: add modern gettext Arsen Arsenović
2023-09-25 17:20 ` [PATCH 0/2] Replace intl/ with out-of-tree GNU gettext Xi Ruoyao
2023-09-25 17:28   ` Arsen Arsenović [this message]
2023-09-29 11:10     ` Bruno Haible
2023-09-29 16:21       ` Arsen Arsenović
2023-09-29 16:48         ` Bruno Haible

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=868r8uywdl.fsf@aarsen.me \
    --to=arsen@aarsen.me \
    --cc=bruno@clisp.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=iain@sandoe.co.uk \
    --cc=xry111@xry111.site \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).