* Re: Hints on reconfiguring GCC
[not found] <CAPB2dxkMVi=ijhoOo7YVugVPAo3WeOvEpk_FvQMxU7F0BcP2Gw@mail.gmail.com>
@ 2023-10-15 13:00 ` Iain Sandoe
2023-10-18 12:55 ` Thomas Schwinge
0 siblings, 1 reply; 9+ messages in thread
From: Iain Sandoe @ 2023-10-15 13:00 UTC (permalink / raw)
To: R jd; +Cc: GCC Development
Hi Ryan,
It’s always a good idea to send questions to the mailing list (that gives other people a chance to answer this - probably better than me).
----
> On 15 Oct 2023, at 13:40, R jd <3246251196ryan@gmail.com> wrote:
> my name is Ryan. I am part of a team that ensures that GCC is ported for AmigaOS4 and the next generation hardware.
:-)
> My question is in regards to the GCC repository (https://github.com/gcc-mirror/gcc) at the time of commit id: 2d280e7eafc086e9df85f50ed1a6526d6a3a204d (GCC 11).
>
> I am trying to make a change to libstdc++-v3's crossconfig.m4 file which defines some things that are used in configure.ac which, in turn, generates the configure file.
>
> I have built from source AUTOCONF 2.69 and AUTOMAKE 1.15.1 which seem to be the correct versions at the time. I have prepended the binary locations to my PATH.
>
> Before making my desired change, if I go into libstdc++-v3 and just run "autoreconf" I see that "configure" has changed. I would have expected no change.
First, I would take a look at what kinds of change have been made to configure - it’s not impossible for things to get out of sync. If it’s just script line numbers, for example, you can probably carry on with your changes.
I tend to use “autoreconf -fv” (but the basic principle is much the same)
> I am just wondering if you have any ideas.
If you have the choice (I have no idea whether 2d280e7eafc086e9df85f50ed1a6526d6a3a204d is a commit that corresponds to a release) - perhaps pick a commit that corresponds to a released version of the branch (at least as a starting point).
HTH & g/l
Iain
> For more information you can also see: https://github.com/sba1/adtools/pull/149.
>
> Regards,
> Ryan.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Hints on reconfiguring GCC
2023-10-15 13:00 ` Hints on reconfiguring GCC Iain Sandoe
@ 2023-10-18 12:55 ` Thomas Schwinge
2023-10-18 14:42 ` R jd
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Schwinge @ 2023-10-18 12:55 UTC (permalink / raw)
To: 3246251196ryan; +Cc: Iain Sandoe, gcc
Hi Ryan!
In addition to what Iain said:
On 2023-10-15T14:00:47+0100, Iain Sandoe <iain@sandoe.co.uk> wrote:
>> On 15 Oct 2023, at 13:40, R jd <3246251196ryan@gmail.com> wrote:
>> I am part of a team that ensures that GCC is ported for AmigaOS4 and the next generation hardware.
>
> :-)
:-)
>> My question is in regards to the GCC repository (https://github.com/gcc-mirror/gcc) at the time of commit id: 2d280e7eafc086e9df85f50ed1a6526d6a3a204d (GCC 11).
... which is the GCC 11.3 release.
>> I am trying to make a change to libstdc++-v3's crossconfig.m4 file which defines some things that are used in configure.ac which, in turn, generates the configure file.
>>
>> I have built from source AUTOCONF 2.69 and AUTOMAKE 1.15.1 which seem to be the correct versions at the time. I have prepended the binary locations to my PATH.
>>
>> Before making my desired change, if I go into libstdc++-v3 and just run "autoreconf" I see that "configure" has changed. I would have expected no change.
>
> First, I would take a look at what kinds of change have been made to configure - it’s not impossible for things to get out of sync. If it’s just script line numbers, for example, you can probably carry on with your changes.
>
> I tend to use “autoreconf -fv” (but the basic principle is much the same)
I've quickly tried myself, and (as should be) do not see any differences
in the generated files: neither for 'autoconf -f' nor 'autoreconf -f'.
(The latter indeed is what you should use.)
>> For more information you can also see: https://github.com/sba1/adtools/pull/149.
I didn't read that one in detail, but saw mentioned "other patches" -- is
it probably the case that some earlier patch has not properly regenerated
files?
Grüße
Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Hints on reconfiguring GCC
2023-10-18 12:55 ` Thomas Schwinge
@ 2023-10-18 14:42 ` R jd
2023-10-19 9:30 ` Enable top-level recursive 'autoreconf' (was: Hints on reconfiguring GCC) Thomas Schwinge
0 siblings, 1 reply; 9+ messages in thread
From: R jd @ 2023-10-18 14:42 UTC (permalink / raw)
To: Thomas Schwinge; +Cc: Iain Sandoe, gcc
[-- Attachment #1: Type: text/plain, Size: 2599 bytes --]
Hi all,,
I should have followed up. After not applying the patches and attempting
what I did, I also saw no changes. So, it is a sync issue with the patches.
Thank you.
I guess I can ask, why there is not a recursive approach for configuring
GCC. e.g. AC_SUBDIRS in the top level?
Anyway, this problem was solved.
On Wed, 18 Oct 2023, 13:55 Thomas Schwinge, <thomas@codesourcery.com> wrote:
> Hi Ryan!
>
> In addition to what Iain said:
>
> On 2023-10-15T14:00:47+0100, Iain Sandoe <iain@sandoe.co.uk> wrote:
> >> On 15 Oct 2023, at 13:40, R jd <3246251196ryan@gmail.com> wrote:
> >> I am part of a team that ensures that GCC is ported for AmigaOS4 and
> the next generation hardware.
> >
> > :-)
>
> :-)
>
> >> My question is in regards to the GCC repository (
> https://github.com/gcc-mirror/gcc) at the time of commit id:
> 2d280e7eafc086e9df85f50ed1a6526d6a3a204d (GCC 11).
>
> ... which is the GCC 11.3 release.
>
> >> I am trying to make a change to libstdc++-v3's crossconfig.m4 file
> which defines some things that are used in configure.ac which, in turn,
> generates the configure file.
> >>
> >> I have built from source AUTOCONF 2.69 and AUTOMAKE 1.15.1 which seem
> to be the correct versions at the time. I have prepended the binary
> locations to my PATH.
> >>
> >> Before making my desired change, if I go into libstdc++-v3 and just run
> "autoreconf" I see that "configure" has changed. I would have expected no
> change.
> >
> > First, I would take a look at what kinds of change have been made to
> configure - it’s not impossible for things to get out of sync. If it’s
> just script line numbers, for example, you can probably carry on with your
> changes.
> >
> > I tend to use “autoreconf -fv” (but the basic principle is much the same)
>
> I've quickly tried myself, and (as should be) do not see any differences
> in the generated files: neither for 'autoconf -f' nor 'autoreconf -f'.
> (The latter indeed is what you should use.)
>
> >> For more information you can also see:
> https://github.com/sba1/adtools/pull/149.
>
> I didn't read that one in detail, but saw mentioned "other patches" -- is
> it probably the case that some earlier patch has not properly regenerated
> files?
>
>
> Grüße
> Thomas
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201,
> 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer:
> Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München;
> Registergericht München, HRB 106955
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Enable top-level recursive 'autoreconf' (was: Hints on reconfiguring GCC)
2023-10-18 14:42 ` R jd
@ 2023-10-19 9:30 ` Thomas Schwinge
2023-10-19 9:57 ` Enable top-level recursive 'autoreconf' Andreas Schwab
2023-10-20 4:07 ` Alexandre Oliva
0 siblings, 2 replies; 9+ messages in thread
From: Thomas Schwinge @ 2023-10-19 9:30 UTC (permalink / raw)
To: 3246251196ryan, gcc-patches
Cc: Iain Sandoe, gcc, Paolo Bonzini, Nathanael Nerode,
Alexandre Oliva, Ralf Wildenhues, Joseph Myers
[-- Attachment #1: Type: text/plain, Size: 717 bytes --]
Hi!
On 2023-10-18T15:42:18+0100, R jd <3246251196ryan@gmail.com> wrote:
> I guess I can ask, why there is not a recursive approach for configuring
> GCC. e.g. AC_SUBDIRS in the top level?
('AC_CONFIG_SUBDIRS' you mean.) You know, often it just takes someone to
ask the right questions... ;-)
What do people think about the attached
"Enable top-level recursive 'autoreconf'"? Only lightly tested, so far.
Grüße
Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Enable-top-level-recursive-autoreconf.patch --]
[-- Type: text/x-diff, Size: 4233 bytes --]
From 43127e5643337ca407071ad93bccbc716024352e Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Thu, 19 Oct 2023 10:28:30 +0200
Subject: [PATCH] Enable top-level recursive 'autoreconf'
* configure.ac: At end of file, instantiate 'AC_CONFIG_SUBDIRS'
for all relevant directories.
* configure: Regenerate.
---
configure | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++-
configure.ac | 36 ++++++++++++++++++
2 files changed, 136 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 8fc163d36bd..fcb4d591334 100755
--- a/configure
+++ b/configure
@@ -584,7 +584,8 @@ PACKAGE_URL=
ac_unique_file="move-if-change"
enable_option_checking=no
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='subdirs
+LTLIBOBJS
LIBOBJS
compare_exclusions
stage2_werror_flag
@@ -909,7 +910,37 @@ READELF_FOR_TARGET
STRIP_FOR_TARGET
WINDRES_FOR_TARGET
WINDMC_FOR_TARGET'
-
+ac_subdirs_all='c++tools
+fixincludes
+gcc
+gcc/m2
+gnattools
+gotools
+intl
+libada
+libatomic
+libbacktrace
+libcc1
+libcody
+libcpp
+libdecnumber
+libffi
+libgcc
+libgfortran
+libgm2
+libgo
+libgomp
+libiberty
+libitm
+libobjc
+libphobos
+libquadmath
+libsanitizer
+libssp
+libstdc++-v3
+libvtv
+lto-plugin
+zlib'
# Initialize some variables set by options.
ac_init_help=
@@ -20081,3 +20112,70 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
+
+# Enable top-level recursive 'autoreconf' by enumerating all relevant
+# directories here. This is intentionally done at end of 'configure.ac',
+# *after* 'AC_OUTPUT', so that we don't attempt to prematurely 'configure'
+# these directories when the top-level 'configure' is invoked.
+subdirs="$subdirs c++tools"
+
+subdirs="$subdirs fixincludes"
+
+subdirs="$subdirs gcc"
+
+subdirs="$subdirs gcc/m2"
+
+subdirs="$subdirs gnattools"
+
+subdirs="$subdirs gotools"
+
+subdirs="$subdirs intl"
+
+subdirs="$subdirs libada"
+
+subdirs="$subdirs libatomic"
+
+subdirs="$subdirs libbacktrace"
+
+subdirs="$subdirs libcc1"
+
+subdirs="$subdirs libcody"
+
+subdirs="$subdirs libcpp"
+
+subdirs="$subdirs libdecnumber"
+
+subdirs="$subdirs libffi"
+
+subdirs="$subdirs libgcc"
+
+subdirs="$subdirs libgfortran"
+
+subdirs="$subdirs libgm2"
+
+subdirs="$subdirs libgo"
+
+subdirs="$subdirs libgomp"
+
+subdirs="$subdirs libiberty"
+
+subdirs="$subdirs libitm"
+
+subdirs="$subdirs libobjc"
+
+subdirs="$subdirs libphobos"
+
+subdirs="$subdirs libquadmath"
+
+subdirs="$subdirs libsanitizer"
+
+subdirs="$subdirs libssp"
+
+subdirs="$subdirs libstdc++-v3"
+
+subdirs="$subdirs libvtv"
+
+subdirs="$subdirs lto-plugin"
+
+subdirs="$subdirs zlib"
+
diff --git a/configure.ac b/configure.ac
index 1d16530140a..0d37d30196e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3944,3 +3944,39 @@ AC_CONFIG_FILES([Makefile],
extrasub_host="$extrasub_host"
extrasub_target="$extrasub_target"])
AC_OUTPUT
+
+# Enable top-level recursive 'autoreconf' by enumerating all relevant
+# directories here. This is intentionally done at end of 'configure.ac',
+# *after* 'AC_OUTPUT', so that we don't attempt to prematurely 'configure'
+# these directories when the top-level 'configure' is invoked.
+AC_CONFIG_SUBDIRS([c++tools])
+AC_CONFIG_SUBDIRS([fixincludes])
+AC_CONFIG_SUBDIRS([gcc])
+AC_CONFIG_SUBDIRS([gcc/m2])
+AC_CONFIG_SUBDIRS([gnattools])
+AC_CONFIG_SUBDIRS([gotools])
+AC_CONFIG_SUBDIRS([intl])
+AC_CONFIG_SUBDIRS([libada])
+AC_CONFIG_SUBDIRS([libatomic])
+AC_CONFIG_SUBDIRS([libbacktrace])
+AC_CONFIG_SUBDIRS([libcc1])
+AC_CONFIG_SUBDIRS([libcody])
+AC_CONFIG_SUBDIRS([libcpp])
+AC_CONFIG_SUBDIRS([libdecnumber])
+AC_CONFIG_SUBDIRS([libffi])
+AC_CONFIG_SUBDIRS([libgcc])
+AC_CONFIG_SUBDIRS([libgfortran])
+AC_CONFIG_SUBDIRS([libgm2])
+AC_CONFIG_SUBDIRS([libgo])
+AC_CONFIG_SUBDIRS([libgomp])
+AC_CONFIG_SUBDIRS([libiberty])
+AC_CONFIG_SUBDIRS([libitm])
+AC_CONFIG_SUBDIRS([libobjc])
+AC_CONFIG_SUBDIRS([libphobos])
+AC_CONFIG_SUBDIRS([libquadmath])
+AC_CONFIG_SUBDIRS([libsanitizer])
+AC_CONFIG_SUBDIRS([libssp])
+AC_CONFIG_SUBDIRS([libstdc++-v3])
+AC_CONFIG_SUBDIRS([libvtv])
+AC_CONFIG_SUBDIRS([lto-plugin])
+AC_CONFIG_SUBDIRS([zlib])
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Enable top-level recursive 'autoreconf'
2023-10-19 9:30 ` Enable top-level recursive 'autoreconf' (was: Hints on reconfiguring GCC) Thomas Schwinge
@ 2023-10-19 9:57 ` Andreas Schwab
2023-10-19 10:42 ` Thomas Schwinge
2023-10-20 4:07 ` Alexandre Oliva
1 sibling, 1 reply; 9+ messages in thread
From: Andreas Schwab @ 2023-10-19 9:57 UTC (permalink / raw)
To: Thomas Schwinge
Cc: 3246251196ryan, gcc-patches, Iain Sandoe, gcc, Paolo Bonzini,
Nathanael Nerode, Alexandre Oliva, Ralf Wildenhues, Joseph Myers
On Okt 19 2023, Thomas Schwinge wrote:
> Hi!
>
> On 2023-10-18T15:42:18+0100, R jd <3246251196ryan@gmail.com> wrote:
>> I guess I can ask, why there is not a recursive approach for configuring
>> GCC. e.g. AC_SUBDIRS in the top level?
>
> ('AC_CONFIG_SUBDIRS' you mean.) You know, often it just takes someone to
> ask the right questions... ;-)
>
> What do people think about the attached
> "Enable top-level recursive 'autoreconf'"? Only lightly tested, so far.
The top-level files are shared with binutils-gdb, which has a different
set of subdirs.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Enable top-level recursive 'autoreconf'
2023-10-19 9:57 ` Enable top-level recursive 'autoreconf' Andreas Schwab
@ 2023-10-19 10:42 ` Thomas Schwinge
2023-10-19 23:13 ` Eric Gallager
2023-10-30 1:31 ` Hans-Peter Nilsson
0 siblings, 2 replies; 9+ messages in thread
From: Thomas Schwinge @ 2023-10-19 10:42 UTC (permalink / raw)
To: Andreas Schwab, gcc-patches, binutils, gdb-patches
Cc: 3246251196ryan, Iain Sandoe, gcc, Paolo Bonzini,
Nathanael Nerode, Alexandre Oliva, Ralf Wildenhues, Joseph Myers
[-- Attachment #1: Type: text/plain, Size: 2683 bytes --]
Hi!
On 2023-10-19T11:57:33+0200, Andreas Schwab <schwab@suse.de> wrote:
> On Okt 19 2023, Thomas Schwinge wrote:
>> On 2023-10-18T15:42:18+0100, R jd <3246251196ryan@gmail.com> wrote:
>>> I guess I can ask, why there is not a recursive approach for configuring
>>> GCC. e.g. AC_SUBDIRS in the top level?
>>
>> ('AC_CONFIG_SUBDIRS' you mean.) You know, often it just takes someone to
>> ask the right questions... ;-)
>>
>> What do people think about the attached
>> "Enable top-level recursive 'autoreconf'"? Only lightly tested, so far.
>
> The top-level files are shared with binutils-gdb, which has a different
> set of subdirs.
Good point, thanks! Fortunately, the failure mode for non-existing
directories is non-fatal (skipped with 'subdirectory [...] not present'
diagnostic); with my original "Enable top-level recursive 'autoreconf'"
(also re-attached) applied to Binutils/GDB Git master branch, we get:
$ PATH=[...] autoreconf -v
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal
autoreconf: configure.ac: tracing
autoreconf: configure.ac: subdirectory c++tools not present
autoreconf: configure.ac: subdirectory fixincludes not present
autoreconf: configure.ac: subdirectory gcc not present
autoreconf: configure.ac: subdirectory gcc/m2 not present
autoreconf: configure.ac: subdirectory gnattools not present
autoreconf: configure.ac: subdirectory gotools not present
autoreconf: configure.ac: adding subdirectory intl to autoreconf
autoreconf: Entering directory `intl'
[...]
autoreconf: Leaving directory `intl'
autoreconf: configure.ac: subdirectory libada not present
autoreconf: configure.ac: subdirectory libatomic not present
autoreconf: configure.ac: adding subdirectory libbacktrace to autoreconf
autoreconf: Entering directory `libbacktrace'
[...]
So we could (a) simply list *all* directories in the shared top-level
'configure.ac', or (b) configure GCC vs. other projrcts via a non-shared
file ('m4_include([config/AC_CONFIG_SUBDIRS.m4])' or similar -- is there
an established procedure for non-shared top-level files)? (I don't have
a strong preference either way.)
It's just GCC and Binutils/GDB, or are the top-level files also shared
with additional projects?
Grüße
Thomas
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Enable-top-level-recursive-autoreconf.patch --]
[-- Type: text/x-diff, Size: 4233 bytes --]
From 43127e5643337ca407071ad93bccbc716024352e Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Thu, 19 Oct 2023 10:28:30 +0200
Subject: [PATCH] Enable top-level recursive 'autoreconf'
* configure.ac: At end of file, instantiate 'AC_CONFIG_SUBDIRS'
for all relevant directories.
* configure: Regenerate.
---
configure | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++-
configure.ac | 36 ++++++++++++++++++
2 files changed, 136 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 8fc163d36bd..fcb4d591334 100755
--- a/configure
+++ b/configure
@@ -584,7 +584,8 @@ PACKAGE_URL=
ac_unique_file="move-if-change"
enable_option_checking=no
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='subdirs
+LTLIBOBJS
LIBOBJS
compare_exclusions
stage2_werror_flag
@@ -909,7 +910,37 @@ READELF_FOR_TARGET
STRIP_FOR_TARGET
WINDRES_FOR_TARGET
WINDMC_FOR_TARGET'
-
+ac_subdirs_all='c++tools
+fixincludes
+gcc
+gcc/m2
+gnattools
+gotools
+intl
+libada
+libatomic
+libbacktrace
+libcc1
+libcody
+libcpp
+libdecnumber
+libffi
+libgcc
+libgfortran
+libgm2
+libgo
+libgomp
+libiberty
+libitm
+libobjc
+libphobos
+libquadmath
+libsanitizer
+libssp
+libstdc++-v3
+libvtv
+lto-plugin
+zlib'
# Initialize some variables set by options.
ac_init_help=
@@ -20081,3 +20112,70 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
+
+# Enable top-level recursive 'autoreconf' by enumerating all relevant
+# directories here. This is intentionally done at end of 'configure.ac',
+# *after* 'AC_OUTPUT', so that we don't attempt to prematurely 'configure'
+# these directories when the top-level 'configure' is invoked.
+subdirs="$subdirs c++tools"
+
+subdirs="$subdirs fixincludes"
+
+subdirs="$subdirs gcc"
+
+subdirs="$subdirs gcc/m2"
+
+subdirs="$subdirs gnattools"
+
+subdirs="$subdirs gotools"
+
+subdirs="$subdirs intl"
+
+subdirs="$subdirs libada"
+
+subdirs="$subdirs libatomic"
+
+subdirs="$subdirs libbacktrace"
+
+subdirs="$subdirs libcc1"
+
+subdirs="$subdirs libcody"
+
+subdirs="$subdirs libcpp"
+
+subdirs="$subdirs libdecnumber"
+
+subdirs="$subdirs libffi"
+
+subdirs="$subdirs libgcc"
+
+subdirs="$subdirs libgfortran"
+
+subdirs="$subdirs libgm2"
+
+subdirs="$subdirs libgo"
+
+subdirs="$subdirs libgomp"
+
+subdirs="$subdirs libiberty"
+
+subdirs="$subdirs libitm"
+
+subdirs="$subdirs libobjc"
+
+subdirs="$subdirs libphobos"
+
+subdirs="$subdirs libquadmath"
+
+subdirs="$subdirs libsanitizer"
+
+subdirs="$subdirs libssp"
+
+subdirs="$subdirs libstdc++-v3"
+
+subdirs="$subdirs libvtv"
+
+subdirs="$subdirs lto-plugin"
+
+subdirs="$subdirs zlib"
+
diff --git a/configure.ac b/configure.ac
index 1d16530140a..0d37d30196e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3944,3 +3944,39 @@ AC_CONFIG_FILES([Makefile],
extrasub_host="$extrasub_host"
extrasub_target="$extrasub_target"])
AC_OUTPUT
+
+# Enable top-level recursive 'autoreconf' by enumerating all relevant
+# directories here. This is intentionally done at end of 'configure.ac',
+# *after* 'AC_OUTPUT', so that we don't attempt to prematurely 'configure'
+# these directories when the top-level 'configure' is invoked.
+AC_CONFIG_SUBDIRS([c++tools])
+AC_CONFIG_SUBDIRS([fixincludes])
+AC_CONFIG_SUBDIRS([gcc])
+AC_CONFIG_SUBDIRS([gcc/m2])
+AC_CONFIG_SUBDIRS([gnattools])
+AC_CONFIG_SUBDIRS([gotools])
+AC_CONFIG_SUBDIRS([intl])
+AC_CONFIG_SUBDIRS([libada])
+AC_CONFIG_SUBDIRS([libatomic])
+AC_CONFIG_SUBDIRS([libbacktrace])
+AC_CONFIG_SUBDIRS([libcc1])
+AC_CONFIG_SUBDIRS([libcody])
+AC_CONFIG_SUBDIRS([libcpp])
+AC_CONFIG_SUBDIRS([libdecnumber])
+AC_CONFIG_SUBDIRS([libffi])
+AC_CONFIG_SUBDIRS([libgcc])
+AC_CONFIG_SUBDIRS([libgfortran])
+AC_CONFIG_SUBDIRS([libgm2])
+AC_CONFIG_SUBDIRS([libgo])
+AC_CONFIG_SUBDIRS([libgomp])
+AC_CONFIG_SUBDIRS([libiberty])
+AC_CONFIG_SUBDIRS([libitm])
+AC_CONFIG_SUBDIRS([libobjc])
+AC_CONFIG_SUBDIRS([libphobos])
+AC_CONFIG_SUBDIRS([libquadmath])
+AC_CONFIG_SUBDIRS([libsanitizer])
+AC_CONFIG_SUBDIRS([libssp])
+AC_CONFIG_SUBDIRS([libstdc++-v3])
+AC_CONFIG_SUBDIRS([libvtv])
+AC_CONFIG_SUBDIRS([lto-plugin])
+AC_CONFIG_SUBDIRS([zlib])
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Enable top-level recursive 'autoreconf'
2023-10-19 10:42 ` Thomas Schwinge
@ 2023-10-19 23:13 ` Eric Gallager
2023-10-30 1:31 ` Hans-Peter Nilsson
1 sibling, 0 replies; 9+ messages in thread
From: Eric Gallager @ 2023-10-19 23:13 UTC (permalink / raw)
To: Thomas Schwinge
Cc: Andreas Schwab, gcc-patches, binutils, gdb-patches,
3246251196ryan, Iain Sandoe, gcc, Paolo Bonzini,
Nathanael Nerode, Alexandre Oliva, Ralf Wildenhues, Joseph Myers
On Thu, Oct 19, 2023 at 6:43 AM Thomas Schwinge <thomas@codesourcery.com> wrote:
>
> Hi!
>
> On 2023-10-19T11:57:33+0200, Andreas Schwab <schwab@suse.de> wrote:
> > On Okt 19 2023, Thomas Schwinge wrote:
> >> On 2023-10-18T15:42:18+0100, R jd <3246251196ryan@gmail.com> wrote:
> >>> I guess I can ask, why there is not a recursive approach for configuring
> >>> GCC. e.g. AC_SUBDIRS in the top level?
> >>
> >> ('AC_CONFIG_SUBDIRS' you mean.) You know, often it just takes someone to
> >> ask the right questions... ;-)
> >>
> >> What do people think about the attached
> >> "Enable top-level recursive 'autoreconf'"? Only lightly tested, so far.
> >
> > The top-level files are shared with binutils-gdb, which has a different
> > set of subdirs.
>
> Good point, thanks! Fortunately, the failure mode for non-existing
> directories is non-fatal (skipped with 'subdirectory [...] not present'
> diagnostic); with my original "Enable top-level recursive 'autoreconf'"
> (also re-attached) applied to Binutils/GDB Git master branch, we get:
>
> $ PATH=[...] autoreconf -v
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal
> autoreconf: configure.ac: tracing
> autoreconf: configure.ac: subdirectory c++tools not present
> autoreconf: configure.ac: subdirectory fixincludes not present
> autoreconf: configure.ac: subdirectory gcc not present
> autoreconf: configure.ac: subdirectory gcc/m2 not present
> autoreconf: configure.ac: subdirectory gnattools not present
> autoreconf: configure.ac: subdirectory gotools not present
> autoreconf: configure.ac: adding subdirectory intl to autoreconf
> autoreconf: Entering directory `intl'
> [...]
> autoreconf: Leaving directory `intl'
> autoreconf: configure.ac: subdirectory libada not present
> autoreconf: configure.ac: subdirectory libatomic not present
> autoreconf: configure.ac: adding subdirectory libbacktrace to autoreconf
> autoreconf: Entering directory `libbacktrace'
> [...]
>
> So we could (a) simply list *all* directories in the shared top-level
> 'configure.ac', or (b) configure GCC vs. other projrcts via a non-shared
> file ('m4_include([config/AC_CONFIG_SUBDIRS.m4])' or similar -- is there
> an established procedure for non-shared top-level files)? (I don't have
> a strong preference either way.)
>
I'd just like to note that I have GCC bug 103459 open about silencing
warnings from autoreconf:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103459
Although I guess in this case, they're just notices, and not warnings,
so it's probably okay. (-Werror doesn't turn them into errors, does
it?)
> It's just GCC and Binutils/GDB, or are the top-level files also shared
> with additional projects?
>
>
> Grüße
> Thomas
>
>
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Enable top-level recursive 'autoreconf'
2023-10-19 9:30 ` Enable top-level recursive 'autoreconf' (was: Hints on reconfiguring GCC) Thomas Schwinge
2023-10-19 9:57 ` Enable top-level recursive 'autoreconf' Andreas Schwab
@ 2023-10-20 4:07 ` Alexandre Oliva
1 sibling, 0 replies; 9+ messages in thread
From: Alexandre Oliva @ 2023-10-20 4:07 UTC (permalink / raw)
To: Thomas Schwinge
Cc: 3246251196ryan, gcc-patches, Iain Sandoe, gcc, Paolo Bonzini,
Nathanael Nerode, Ralf Wildenhues, Joseph Myers
On Oct 19, 2023, Thomas Schwinge <thomas@codesourcery.com> wrote:
> On 2023-10-18T15:42:18+0100, R jd <3246251196ryan@gmail.com> wrote:
>> I guess I can ask, why there is not a recursive approach for configuring
>> GCC. e.g. AC_SUBDIRS in the top level?
> ('AC_CONFIG_SUBDIRS' you mean.) You know, often it just takes someone to
> ask the right questions... ;-)
> What do people think about the attached
> "Enable top-level recursive 'autoreconf'"? Only lightly tested, so far.
Interesting idea!
It is a little hackish, in that it seems to exploit an implementation
detail in AC_CONFIG_SUBDIRS rather than a documented feature.
I like it!
The autoconf documentation suggests that optional directories can be
tested for:
if test -d "$srcdir/foo"; then
AC_CONFIG_SUBDIRS([foo])
fi
We could use a macro that takes a list and iterates over the list (untested):
dnl Handle a list of optional subdirs.
dnl After AC_OUTPUT, affects autoreconf runs, but not configure runs.
AC_DEFUN([AC_CONFIG_SUBDIRS_OPT], [
m4_foreach_w([dir], [$1], [
if test -d "$srcdir/dir"; then
AC_CONFIG_SUBDIRS(dir)
fi
])
])
Thanks,
--
Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/
Free Software Activist GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity
Excluding neuro-others for not behaving ""normal"" is *not* inclusive
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Enable top-level recursive 'autoreconf'
2023-10-19 10:42 ` Thomas Schwinge
2023-10-19 23:13 ` Eric Gallager
@ 2023-10-30 1:31 ` Hans-Peter Nilsson
1 sibling, 0 replies; 9+ messages in thread
From: Hans-Peter Nilsson @ 2023-10-30 1:31 UTC (permalink / raw)
To: Thomas Schwinge
Cc: schwab, gcc-patches, binutils, gdb-patches, 3246251196ryan, iain,
gcc, bonzini, neroden, aoliva, Ralf.Wildenhues, joseph
> From: Thomas Schwinge <thomas@codesourcery.com>
> Date: Thu, 19 Oct 2023 12:42:26 +0200
> It's just GCC and Binutils/GDB, or are the top-level files also shared
> with additional projects?
Not sure if that counts as "shared", but I regularly drop
in* newlib to build simulator targets (*-elf, *-newabi).
That's git://sourceware.org/git/newlib-cygwin.git but I
extract tarballs for the merging.
"Drop in" is actually the other way round, starting with a
newlib tarball, so gcc files overwrite newlib ones.
(FWIW, I never drop in binutils like that; they're better
built separately. "Better" for your long-term sanity.)
brgds, H-P
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-10-30 1:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CAPB2dxkMVi=ijhoOo7YVugVPAo3WeOvEpk_FvQMxU7F0BcP2Gw@mail.gmail.com>
2023-10-15 13:00 ` Hints on reconfiguring GCC Iain Sandoe
2023-10-18 12:55 ` Thomas Schwinge
2023-10-18 14:42 ` R jd
2023-10-19 9:30 ` Enable top-level recursive 'autoreconf' (was: Hints on reconfiguring GCC) Thomas Schwinge
2023-10-19 9:57 ` Enable top-level recursive 'autoreconf' Andreas Schwab
2023-10-19 10:42 ` Thomas Schwinge
2023-10-19 23:13 ` Eric Gallager
2023-10-30 1:31 ` Hans-Peter Nilsson
2023-10-20 4:07 ` Alexandre Oliva
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).