This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Support installing headers for bootstrapping libgcc
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Fri, 11 May 2012 19:11:14 +0000 (UTC)
- Subject: Re: Support installing headers for bootstrapping libgcc
- References: <Pine.LNX.4.64.1203081626150.13862@digraph.polyomino.org.uk><20120309190400.552E82C0A7@topped-with-meat.com><Pine.LNX.4.64.1203092003130.16963@digraph.polyomino.org.uk><20120323000616.32F372C08D@topped-with-meat.com><Pine.LNX.4.64.1205111338290.15136@digraph.polyomino.org.uk><20120511183752.0B1112C0BE@topped-with-meat.com>
On Fri, 11 May 2012, Roland McGrath wrote:
> I think we can just get rid of sln entirely at this point. We really
> don't expect anybody to be able to run 'make install' directly on a
> live system and not ruin all sorts of things that might be needed
> somewhere in the process. So why should ln be different?
If you no longer support "make install" into the root of a live system,
then that opens another option I didn't mention:
* Put ldconfig (and sln, if kept at all) in a separate package -
maintained by glibc maintainers, released at the same time, but with its
own source tree, not part of the libc source tree, and configured and
built with an installed compiler and glibc.
Splitting out miscellaneous installed executables like that can be seen as
part of disentangling and simplifying builds; if something doesn't have a
clear need to be built at the same time as libc, building with a complete
installed compiler and libc is certainly simpler than building against an
uninstalled libc, and if something can be a "normal" application rather
than being "special" as part of glibc, I'd rather it was a normal
application.
But while memusagestat has a very strong case for splitting out like that
(it depends on various non-glibc libraries such as GD, so can't possibly
be built at the same time as glibc in a bootstrap, and doesn't really
depend on glibc internals as far as I know), and various other installed
pieces may similarly not be closely tied into glibc internals, I presumed
we should still keep "make install" on a live system working (even though
the norm is certainly to install with install_root set and have package
managers deal with the issues involved in replacing the system's active
libc), and so ldconfig should stay as part of the main build.
> Let's look a little deeper into what the particular references in
> linking ldconfig are and where they come from. It seems likely that
> we can stub things out pretty simply so that we don't lose anything
> that matters. I tried adding:
>
> /* Include our own copy of __libc_fatal that doesn't call backtrace
> (as linux/libc_fatal.c does) and bring in all those dependencies. */
> #include <sysdeps/posix/libc_fatal.c>
>
> at the end of ldconfig.c and after this the only things look to be
> stuff from libio that is for cancellation support, which ldconfig
> really does not need. I haven't looked into how to stub those out,
> which might well depend on machine/compiler version. But I think it's
> worth (someone) investigating how hairy it really is.
I'll look further into stubbing these things out for ldconfig and sln.
--
Joseph S. Myers
joseph@codesourcery.com