RFC: Top level configure: Require a minimum version 6.8 texinfo

Message ID 87wmxd50xj.fsf@redhat.com
State New
Headers
Series RFC: Top level configure: Require a minimum version 6.8 texinfo |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Testing passed

Commit Message

Nick Clifton Aug. 29, 2023, 3:21 p.m. UTC
  Hi Guys,

  Currently the top level configure.ac file sets the minimum required
  version of texinfo to be 4.7.  I would like to propose changing this
  to 6.8.
  
  The reason for the change is that the bfd documentation now needs at
  least version 6.8 in order to build[1][2].  Given that 4.7 is now
  almost 20 years old (it was released in April 2004), updating the
  requirement to a newer version does seem reasonable.  On the other
  hand 6.8 is quite new (it was released in March 2021), so a lot of
  systems out there may not have it.

  Thoughts ?

Cheers
  Nick

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=30703
[2] https://sourceware.org/pipermail/binutils/2023-February/125943.html

Suggested patch:
  

Comments

Jakub Jelinek Aug. 29, 2023, 3:45 p.m. UTC | #1
On Tue, Aug 29, 2023 at 04:21:44PM +0100, Nick Clifton via Gcc-patches wrote:
>   Currently the top level configure.ac file sets the minimum required
>   version of texinfo to be 4.7.  I would like to propose changing this
>   to 6.8.
>   
>   The reason for the change is that the bfd documentation now needs at
>   least version 6.8 in order to build[1][2].  Given that 4.7 is now
>   almost 20 years old (it was released in April 2004), updating the
>   requirement to a newer version does seem reasonable.  On the other
>   hand 6.8 is quite new (it was released in March 2021), so a lot of
>   systems out there may not have it.
> 
>   Thoughts ?

I think that is too new.
We still allow building gcc e.g. with GCC 4.8 from ~ 10 years ago and
I think various boxes where people regularly build gcc will have similarly
old other tools.
So, bumping requirement from ~ 20 years old tools to ~ 10 years old tools
might be ok, but requiring ones at most 2 years old will be a nightmare,
especially if gcc itself doesn't have such a requirement.
Sure, we have requirements on newer gmp/mpfr/libmpc etc., but every extra
requirement means some extra work for lots of people.

So, either revert those bfd/*.texi changes, or make them somehow conditional
on the makeinfo version, or perhaps have this texinfo version requirement
only inside of bfd configure, or, if you really want to do it in toplevel
configure, make it dependent on whether bfd/ subdirectory is present (if
not, keep the old requirement, otherwise newer)?

> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=30703
> [2] https://sourceware.org/pipermail/binutils/2023-February/125943.html
> 
> Suggested patch:
> 
> diff --git a/configure.ac b/configure.ac
> index 01cfd017273..10bfef1c6c5 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3678,10 +3678,10 @@ case " $build_configdirs " in
>    *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
>    *)
>  changequote(,)
> -    # For an installed makeinfo, we require it to be from texinfo 4.7 or
> +    # For an installed makeinfo, we require it to be from texinfo 6.8 or
>      # higher, else we use the "missing" dummy.
>      if ${MAKEINFO} --version \
> -       | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
> +       | egrep 'texinfo[^0-9]*(6\.([8-9]|[1-9][0-9])|[7-9]|[1-9][0-9])' >/dev/null 2>&1; then
>        :
>      else
>        MAKEINFO="$MISSING makeinfo"

	Jakub
  
YunQiang Su Aug. 29, 2023, 3:50 p.m. UTC | #2
> I think that is too new.
> We still allow building gcc e.g. with GCC 4.8 from ~ 10 years ago and
> I think various boxes where people regularly build gcc will have similarly
> old other tools.
> So, bumping requirement from ~ 20 years old tools to ~ 10 years old tools
> might be ok, but requiring ones at most 2 years old will be a nightmare,

I agree.
Lots of toolchains distributed by CPU vendors are supposed to support
CentOS 6, or at least 7.
  
Eli Zaretskii Aug. 29, 2023, 4:01 p.m. UTC | #3
> Date: Tue, 29 Aug 2023 17:45:20 +0200
> Cc: gcc-patches@gcc.gnu.org, gdb-patches@sourceware.org,
>  binutils@sourceware.org
> From: Jakub Jelinek via Gdb-patches <gdb-patches@sourceware.org>
> 
> On Tue, Aug 29, 2023 at 04:21:44PM +0100, Nick Clifton via Gcc-patches wrote:
> >   Currently the top level configure.ac file sets the minimum required
> >   version of texinfo to be 4.7.  I would like to propose changing this
> >   to 6.8.
> >   
> >   The reason for the change is that the bfd documentation now needs at
> >   least version 6.8 in order to build[1][2].  Given that 4.7 is now
> >   almost 20 years old (it was released in April 2004), updating the
> >   requirement to a newer version does seem reasonable.  On the other
> >   hand 6.8 is quite new (it was released in March 2021), so a lot of
> >   systems out there may not have it.
> > 
> >   Thoughts ?
> 
> I think that is too new.

It _is_ new.  But I also don't understand why Nick thinks he needs
Texinfo 6.8.  AFAIR, makeinfo supported @node lines without explicit
pointers since at least version 4.8.  I have on my disk the manual
produced for Emacs 22.1, where the Texinfo sources have no pointers,
e.g.:

  @node Abbrev Concepts

and the corresponding Info file says:

  This is ../info/emacs, produced by makeinfo version 4.8 from emacs.texi.

So I'm not sure what exactly is the feature that requires Texinfo 6.8.
What am I missing?
  
Fangrui Song Aug. 29, 2023, 4:09 p.m. UTC | #4
On Tue, Aug 29, 2023 at 8:50 AM YunQiang Su via Binutils
<binutils@sourceware.org> wrote:
>
> > I think that is too new.
> > We still allow building gcc e.g. with GCC 4.8 from ~ 10 years ago and
> > I think various boxes where people regularly build gcc will have similarly
> > old other tools.
> > So, bumping requirement from ~ 20 years old tools to ~ 10 years old tools
> > might be ok, but requiring ones at most 2 years old will be a nightmare,
>
> I agree.
> Lots of toolchains distributed by CPU vendors are supposed to support
> CentOS 6, or at least 7.

I wonder whether documents can be disabled. When people build old
packages, they may not care about the documentation.

I tried to build gcc 4.4.7 yesterday with gcc 12 and failed due to a
tex syntax error.
I could not figure out why, and `configure MAKEINFO=true` did not
help, so I switched to `truncate -s0 gcc/doc/*`.

I just tried binutils and did not find a way to disable doc, either.
To me, if doc can be disabled, any makeinfo version requirement is
fine.
(To build GCC 5, I have noticed that --disable-libsanitizer is needed.)
  
Xi Ruoyao Aug. 29, 2023, 4:09 p.m. UTC | #5
On Tue, 2023-08-29 at 19:01 +0300, Eli Zaretskii via Gcc-patches wrote:
> > Date: Tue, 29 Aug 2023 17:45:20 +0200
> > Cc: gcc-patches@gcc.gnu.org, gdb-patches@sourceware.org,
> >  binutils@sourceware.org
> > From: Jakub Jelinek via Gdb-patches <gdb-patches@sourceware.org>
> > 
> > On Tue, Aug 29, 2023 at 04:21:44PM +0100, Nick Clifton via Gcc-patches wrote:
> > >   Currently the top level configure.ac file sets the minimum required
> > >   version of texinfo to be 4.7.  I would like to propose changing this
> > >   to 6.8.
> > >   
> > >   The reason for the change is that the bfd documentation now needs at
> > >   least version 6.8 in order to build[1][2].  Given that 4.7 is now
> > >   almost 20 years old (it was released in April 2004), updating the
> > >   requirement to a newer version does seem reasonable.  On the other
> > >   hand 6.8 is quite new (it was released in March 2021), so a lot of
> > >   systems out there may not have it.
> > > 
> > >   Thoughts ?
> > 
> > I think that is too new.
> 
> It _is_ new.  But I also don't understand why Nick thinks he needs
> Texinfo 6.8.  AFAIR, makeinfo supported @node lines without explicit
> pointers since at least version 4.8.  I have on my disk the manual
> produced for Emacs 22.1, where the Texinfo sources have no pointers,
> e.g.:
> 
>   @node Abbrev Concepts
> 
> and the corresponding Info file says:
> 
>   This is ../info/emacs, produced by makeinfo version 4.8 from emacs.texi.
> 
> So I'm not sure what exactly is the feature that requires Texinfo 6.8.
> What am I missing?

FWIW I tried building Binutils-2.41 with Texinfo 6.7 and it built
successfully.
  
Tom Tromey Aug. 29, 2023, 5:07 p.m. UTC | #6
>>>>> "Nick" == Nick Clifton via Gdb-patches <gdb-patches@sourceware.org> writes:

Nick>   The reason for the change is that the bfd documentation now needs at
Nick>   least version 6.8 in order to build[1][2].

Sorry about this.  It was fallout from my patch.

However, GDB has used this same one-argument @node syntax for a long
time without any complaint.  Like, python.texi has used this since at
least 2014.

So, if makeinfo 6.8 is really needed by BFD, then I think it must be for
some other reason.

Tom
  
Eric Gallager Aug. 30, 2023, 2:53 a.m. UTC | #7
On Tue, Aug 29, 2023 at 11:23 AM Nick Clifton via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi Guys,
>
>   Currently the top level configure.ac file sets the minimum required
>   version of texinfo to be 4.7.  I would like to propose changing this
>   to 6.8.
>
>   The reason for the change is that the bfd documentation now needs at
>   least version 6.8 in order to build[1][2].  Given that 4.7 is now
>   almost 20 years old (it was released in April 2004), updating the
>   requirement to a newer version does seem reasonable.  On the other
>   hand 6.8 is quite new (it was released in March 2021), so a lot of
>   systems out there may not have it.
>
>   Thoughts ?
>

Just as a point of reference, but the default makeinfo shipped with
macOS (/usr/bin/makeinfo) is stuck at version 4.8 due to the whole
GPL3 transition. The other makeinfos that I have installed are:
- /usr/local/bin/makeinfo (built manually) is at version 6.7
- /opt/local/bin/makeinfo (from MacPorts) is at version 7.0.3
- /opt/sw/bin/makeinfo (from Fink) is broken for me currently, so I
can't get its version at the moment
- /opt/sw/opt/texinfo-legacy/bin/makeinfo (also from Fink, but as a
separate package) is at version 4.13
- /opt/iains/x86_64-apple-darwin19/gcc-7-5-toolchain/bin/makeinfo
(from Iain Sandoe's package I used for bootstrapping Ada) is at
version 6.7

So, from this survey, the makeinfo from MacPorts is the only one I'd
be able to build with currently if this change went through. I think
that's a sign that 6.8 is too new.
Eric

> Cheers
>   Nick
>
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=30703
> [2] https://sourceware.org/pipermail/binutils/2023-February/125943.html
>
> Suggested patch:
>
> diff --git a/configure.ac b/configure.ac
> index 01cfd017273..10bfef1c6c5 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3678,10 +3678,10 @@ case " $build_configdirs " in
>    *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
>    *)
>  changequote(,)
> -    # For an installed makeinfo, we require it to be from texinfo 4.7 or
> +    # For an installed makeinfo, we require it to be from texinfo 6.8 or
>      # higher, else we use the "missing" dummy.
>      if ${MAKEINFO} --version \
> -       | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
> +       | egrep 'texinfo[^0-9]*(6\.([8-9]|[1-9][0-9])|[7-9]|[1-9][0-9])' >/dev/null 2>&1; then
>        :
>      else
>        MAKEINFO="$MISSING makeinfo"
>
  
Tom Tromey Aug. 30, 2023, 8:28 p.m. UTC | #8
>>>>> "Eric" == Eric Gallager via Gdb-patches <gdb-patches@sourceware.org> writes:

Eric> Just as a point of reference, but the default makeinfo shipped with
Eric> macOS (/usr/bin/makeinfo) is stuck at version 4.8 due to the whole
Eric> GPL3 transition. The other makeinfos that I have installed are:
[...]

I think brew has a newer one.

However, I also sent a patch to back out what we think is the problem
patch.  Could you try that?  It's on the binutils list.

Tom
  

Patch

diff --git a/configure.ac b/configure.ac
index 01cfd017273..10bfef1c6c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3678,10 +3678,10 @@  case " $build_configdirs " in
   *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
   *)
 changequote(,)
-    # For an installed makeinfo, we require it to be from texinfo 4.7 or
+    # For an installed makeinfo, we require it to be from texinfo 6.8 or
     # higher, else we use the "missing" dummy.
     if ${MAKEINFO} --version \
-       | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
+       | egrep 'texinfo[^0-9]*(6\.([8-9]|[1-9][0-9])|[7-9]|[1-9][0-9])' >/dev/null 2>&1; then
       :
     else
       MAKEINFO="$MISSING makeinfo"