diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | Makerules | 31 | ||||
-rw-r--r-- | sysdeps/mach/hurd/Makefile | 8 |
3 files changed, 36 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog index 259f8cb2b9..9b8775ce10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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. diff --git a/Makerules b/Makerules index 53d82c0204..596f3cf3b0 100644 --- a/Makerules +++ b/Makerules @@ -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. diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index e8cd4dccb7..afeefc6b4c 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -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) |