libc-19980524: unnecessary startup file dependencies on Hurd
Zack Weinberg
zack@rabi.phys.columbia.edu
Tue May 26 07:09:00 GMT 1998
On Tue, 26 May 1998 10:04:17 +0200 (MET DST), Mark Kettenis wrote:
> From: Gordon Matzigkeit <gord@m-tech.ab.ca>
> Date: 25 May 1998 10:34:03 -0600
>
> 1998-04-18 Gordon Matzigkeit <gord@profitpress.com>
>
> * mach/Machrules (+preinit, +postinit): Define these variables to
> empty because libhurduser and libmachuser don't need startup
> files.
>
>Unfortunately for the latest snapshots this isn't enough. libhurduser
>and libmachuser also depend on interp.so, which used to be built in
>the libc root directory before anything in the subdirecories, but is
>now built in the elf subdirectory which comes after mach and hurd. I
>can't think of a solution right now, but maybe somebody else on the
>list can think of a solution (Zack?).
I don't know the hurd makefiles very well, but I can think of some
approaches:
- Move libmachuser and libhurduser to the others pass. mach and hurd get
built before anything else, so the full C library should still be available
by the time we need to link programs.
- Do the shared libraries other than libc really need an .interp section?
They aren't executable. You could just take the dependency out and delete
the reference in link-extra-lib. I think the dependency is in extra-lib.mk.
- If all else fails, put this in mach/Makefile:
libmachuser.so: $(common-objpfx)$(binfmt-subdir)/interp.os
$(MAKE) -C $(..)$(binfmt-subdir) interp.os
You might also need to add a $(make-target-directory) to the rule for
interp.os in elf/Makefile.
- Or you could add proper loops to Make so I can rewrite the
makefiles to avoid this mess :)
zw
More information about the Libc-alpha
mailing list