[PATCH v2] Get rid of `with_multisrctop`, and `MULTISRCTOP`

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Fri Aug 22 09:44:47 GMT 2025


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


More information about the Newlib mailing list