This is the mail archive of the libc-alpha@cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: libc-19980524: unnecessary startup file dependencies on Hurd


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]