Re: [PATCH v2] Get rid of `with_multisrctop`, and `MULTISRCTOP`
Brian Inglis <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Organization | Systematic Software |
| Message-ID | <[email protected]> |
Check that nothing breaks Mike Frysinger's flattened make structure?
On 2025-08-21 14:26, Jeff Johnston wrote:
> According to your comment below, you don't have it working for multilib newlib.
>
> Regarding a test - you can try and build aarch64-none-elf. That will build a
> default newlib and one in an ilp32 multilib directory.
>
> -- Jeff J.
>
> On Thu, Aug 21, 2025 at 2:29 PM John Ericson wrote:
> Any further feedback on this? Should I just go ahead and remake the patch to
> GCC likewise, too?
>
> John
>
> On Wed, Aug 13, 2025, at 4:07 PM, John Ericson wrote:
>> See the new comment in `config-ml.in <http://config-ml.in>`, and the email
>> chain starting with
>> [1].
>>
>> The short story is that I am trying to do a bunch of build system
>> improvements to GCC to make it easier to build GCC's runtime libraries
>> separately (see [1] for why). As part of this, I started looking at the
>> current multilib implementation, with a hunch that things could be
>> simpler, and with those simplifications, we could refine the idiomatic
>> division of labor between the outer and inner build systems in a way
>> that I think would be just better, and also would make the separate or
>> "per component" builds I want to do more maintainable.
>>
>> In that linked thread I found variable/mechanism that looked unused, and
>> after some back and forth with Joseph Myers, we came to an agreement
>> that since GNU Make was mandatory now, and thus VPATH support was
>> assumed, there was no need to do these convoluted symlink tree things to
>> unnaturally allow multilib to get away with `srcdir = objdir` building.
>> (When indeed, `srcdir != objdir_for_machine1 != objdir_for_machine2` is
>> multilib in a nutshell.)
>>
>> The last (as of this patch) email in the chain is Joseph writing:
>>
>> > I think it's reasonable to eliminate such a workaround, but I don't know
>> > how the newlib community feels, should they wish to update the shared
>> > toplevel build infrastructure with changes from GCC.
>>
>> This email is thus me submitting the multilib version of this change
>> first, to ask you all that question.
>>
>> If our reasoning looks correct, and you see no reason to support these
>> no-VPATH workarounds either, then we have our concensus! I think we can
>> land this change in both repos (GCC, newlib-cygwin), in either order (no
>> repo need wait on the other repo).
>>
>> N.B. I am not exactly sure how to test this. I have tested that it
>> doesn't break the a non-multilib build of newlib. But when I try to do a
>> multilib build in this repo with the toplevel makefile, it doesn't want
>> build anything.
>>
>> config/ChangeLog:
>>
>> * multi.m4: Simplify, no more srcdir = . special case needed.
>>
>> ChangeLog:
>>
>> * newlib/acinclude.m4: Simplify, no more srcdir = . special case needed.
>> * symlink-tree: Removed. It is no longer needed by anything.
>> * MAINTAINERS: Remove symlink-tree entry.
>> * etc/update-copyright.py: Remove symlink-tree entry.
>> * src-release: Remove symlink-tree entry.
>> * config-ml.in <http://config-ml.in>: Simplify a bunch, and reword docs to
>> explain
>> status quo: It's simpler than past, but can't yet forget about past
>> until tech debt is gone.
>> * libgloss/configure: Regenerate.
>> * newlib/configure: Regenerate.
>>
>> [1]: https://sourceware.org/pipermail/gcc-patches/2025-August/691963.html
>> <https://sourceware.org/pipermail/gcc-patches/2025-August/691963.html>
>> [2]: https://blog.obsidian.systems/compiler-bootstrapping-in-nixpkgs/
>> <https://blog.obsidian.systems/compiler-bootstrapping-in-nixpkgs/>
>> [3]: https://sourceware.org/pipermail/gcc-patches/2025-August/692233.html
>> <https://sourceware.org/pipermail/gcc-patches/2025-August/692233.html>
>>
>> Signed-off-by: John Ericson
>> ---
>> MAINTAINERS | 4 --
>> config-ml.in <http://config-ml.in> | 110 +++++++++++
>> +----------------------------
>> config/multi.m4 | 13 +----
>> etc/update-copyright.py | 1 -
>> libgloss/Makefile.in | 1 -
>> libgloss/configure | 13 +----
>> multilib.am <http://multilib.am> | 1 -
>> newlib/Makefile.in | 1 -
>> newlib/acinclude.m4 | 12 +----
>> newlib/configure | 23 ++-------
>> src-release | 2 +-
>> symlink-tree | 78 ----------------------------
>> 12 files changed, 42 insertions(+), 217 deletions(-)
>> delete mode 100755 symlink-tree
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut
-- Antoine de Saint-Exupéry