* sysdeps/unix/sysv/linux/i386/sigaction.c (restore, restore_rt):

Declare these without `static', to avoid warning that we haven't
	defined them.

	* Makerules (build-module-helper-objlist): New variable,
	broken out of build-module.  Insert --whole-archive/--no-whole-archive
	immediately each *_pic.a file in the link object list.
	(whole-archive): New variable, used by that.
	(build-module-objlist): New variable using build-module-helper-objlist.
	(build-module, build-module-helper): Use it.
	(build-shlib-objlist): New variable using build-module-helper-objlist.
	(build-shlib): Use that.
	* sysdeps/mach/hurd/Makefile ($(link-rpcuserlibs)): Likewise.
This commit is contained in:
Roland McGrath 2001-06-18 01:09:45 +00:00
parent 9b17c7605f
commit c7414a8e30
3 changed files with 36 additions and 17 deletions

View File

@ -1,5 +1,19 @@
2001-06-17 Roland McGrath <roland@frob.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (restore, restore_rt):
Declare these without `static', to avoid warning that we haven't
defined them.
* Makerules (build-module-helper-objlist): New variable,
broken out of build-module. Insert --whole-archive/--no-whole-archive
immediately each *_pic.a file in the link object list.
(whole-archive): New variable, used by that.
(build-module-objlist): New variable using build-module-helper-objlist.
(build-module, build-module-helper): Use it.
(build-shlib-objlist): New variable using build-module-helper-objlist.
(build-shlib): Use that.
* sysdeps/mach/hurd/Makefile ($(link-rpcuserlibs)): Likewise.
* posix/spawni.c: Moved to ...
* sysdeps/posix/spawni.c: ... here.
* sysdeps/generic/spawni.c: New file.

View File

@ -117,6 +117,11 @@ $(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
$(common-objpfx)Versions.all
LC_ALL=C $(AWK) -v oldest_abi=$(oldest-abi) -f $^ > $@T
mv -f $@T $@
$(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
sed -n '/ VERSION_$*_/{s/^.*_\([A-Z0-9_]*\).*$$/\1/;h;};$${g;p;}' \
$(common-objpfx)abi-versions.h > $@T
mv -f $@T $@
endif # avoid-generated
endif # $(versioning) = yes
@ -410,17 +415,13 @@ $(build-shlib-helper) \
> $@.lds
rm -f $@.new
$(build-shlib-helper) -o $@ -T $@.lds \
-Wl,--whole-archive $(csu-objpfx)abi-note.o \
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
$(csu-objpfx)abi-note.o $(build-shlib-objlist)
rm -f $@.lds
endef
else
define build-shlib
$(build-shlib-helper) \
-o $@ -Wl,--whole-archive \
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
$(build-shlib-objlist)
endef
endif
@ -445,20 +446,26 @@ $(build-module-helper) \
> $@.lds
rm -f $@.new
$(build-module-helper) -o $@ -T $@.lds \
-Wl,--whole-archive $(csu-objpfx)abi-note.o \
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
$(csu-objpfx)abi-note.o $(build-module-objlist)
rm -f $@.lds
endef
else
define build-module
$(build-module-helper) \
-o $@ -Wl,--whole-archive \
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
$(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so)
-o $@ \
$(build-module-objlist)
endef
endif
build-module-helper-objlist = \
$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
$(filter-out $(map-file) $(+preinit) $(+postinit),$^))
whole-archive := -Wl,--whole-archive
build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
build-shlib-objlist = $(build-module-helper-objlist) \
$(LDLIBS-$(@F:lib%.so=%).so)
# Don't try to use -lc when making libc.so itself.
# Also omits crti.o and crtn.o, which we do not want
# since we define our own `.init' section specially.

View File

@ -151,11 +151,9 @@ endif
$(link-rpcuserlibs): %-link.so: %_pic.a
# These shared objects are just for the purpose of linking libc,
# so they don't need abi-note.o linked into them.
$(build-module-helper) \
-o $@ -nostdlib -Wl,-soname=$(*F).so$($(*F).so-version) \
-Wl,--whole-archive \
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
$(build-shlib-helper) \
-nostdlib -o $@ \
$(build-shlib-objlist)
# And get them into the libc.so ldscript.
$(inst_libdir)/libc.so: $(rpcuserlibs)