From 8e3cc80f6d4f69ce003c82d3561ac324692792ad Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 11 Oct 1995 03:34:46 +0000 Subject: Tue Oct 10 23:08:53 1995 Roland McGrath * Makerules (build-shlib): Pass -rpath and -rpath-link options. (LDFLAGS-c.so): Don't pass -dynamic-linker here. * Makeconfig (+link): Pass $(sysdep-LDFLAGS). (link-libc): Pass -rpath and -rpath-link options. * MakeTAGS (all-dirs): Omit CVS directories. Specify vpath directives to find source files in $(all-dirs). (sources, headers): Append sources and headers from $(all-dist) to these. (all-dist): Filter them out of this. (all-headers, all-sources): Use $(shell find ...) instead of $(wildcard ...). * sysdeps/mach/hurd/Makefile (sysdep-LDFLAGS): New variable; pass -rpath-link. * hurd/hurdexec.c: Pass poly and dealloc args to __file_exec. * elf/Makefile (install-others): Add missing $. * mach/Makefile ($(objpfx)errsystems.c): Rule reenabled. --- ChangeLog | 24 ++++++++++++++++++++++++ MakeTAGS | 31 ++++++++++++++++++++----------- Makeconfig | 12 +++++++----- Makerules | 8 ++++---- elf/Makefile | 2 +- gmon/.cvsignore | 5 +++++ hurd/hurdexec.c | 14 +++++++------- intl/.cvsignore | 5 +++++ mach/Makefile | 2 -- posix/regex.c | 2 +- sysdeps/mach/hurd/Makefile | 1 + sysvipc/.cvsignore | 5 +++++ 12 files changed, 80 insertions(+), 31 deletions(-) create mode 100644 gmon/.cvsignore create mode 100644 intl/.cvsignore create mode 100644 sysvipc/.cvsignore diff --git a/ChangeLog b/ChangeLog index b6935c1fa5..a9547c4097 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,29 @@ +Tue Oct 10 23:08:53 1995 Roland McGrath + + * Makerules (build-shlib): Pass -rpath and -rpath-link options. + (LDFLAGS-c.so): Don't pass -dynamic-linker here. + * Makeconfig (+link): Pass $(sysdep-LDFLAGS). + (link-libc): Pass -rpath and -rpath-link options. + + * MakeTAGS (all-dirs): Omit CVS directories. + Specify vpath directives to find source files in $(all-dirs). + (sources, headers): Append sources and headers from $(all-dist) to + these. + (all-dist): Filter them out of this. + (all-headers, all-sources): Use $(shell find ...) instead of + $(wildcard ...). + + * sysdeps/mach/hurd/Makefile (sysdep-LDFLAGS): New variable; pass + -rpath-link. + + * hurd/hurdexec.c: Pass poly and dealloc args to __file_exec. + + * elf/Makefile (install-others): Add missing $. + Mon Oct 9 02:54:14 1995 Roland McGrath + * mach/Makefile ($(objpfx)errsystems.c): Rule reenabled. + * Makeconfig (config-LDFLAGS): Define to -Wl-dynamic-linker=$(libdir)$(rtld-installed-name). (rtld-installed-name): New variable. diff --git a/MakeTAGS b/MakeTAGS index 29dfc47f01..96dc59e587 100644 --- a/MakeTAGS +++ b/MakeTAGS @@ -43,7 +43,8 @@ sysdep-dirs := $(addprefix $(sysdep_dir)/,$(sysdirs)) ifndef sysdep_dirs # Find all sysdep directories. -sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name RCS -print) +sysdep_dirs := $(shell find $(..)sysdeps -type d \ + ! -name RCS ! -name CVS -print) endif # Find all sysdep dirs there are, but putting the ones @@ -53,6 +54,11 @@ all-dirs := $(objdir) \ $(source_dirs) \ $(filter-out $(sysdep-dirs),$(sysdep_dirs)) +vpath %.h $(all-dirs) +vpath %.c $(all-dirs) +vpath %.S $(all-dirs) +vpath %.s $(all-dirs) + # Find all the subdirs there are, but putting the ones # we are configured to use first and preserving their order. ifndef subdir @@ -71,18 +77,21 @@ else all-dist = $(distribute) endif +sources += $(filter %.c %.s %.S,$(all-dist)) +headers += $(filter %.h,$(all-dist)) +all-dist := $(filter-out %.h %.c %.s %.S,$(all-dist)) + # All different versions of $(sources), preserving the configured sysdep # directory order. -all-sources = $(wildcard $(foreach file,$(sources),\ - $(file) \ - $(foreach dir,$(all-dirs),\ - $(dir)/$(file) \ - $(dir)/$(file:.c=.S) \ - $(dir)/$(file:.c=.s)))) - -all-headers = $(wildcard $(foreach file,$(headers),\ - $(file) \ - $(foreach dir,$(all-dirs),$(dir)/$(file)))) +all-sources = $(shell find $(all-dirs) -maxdepth 1 \( -name fnord \ + $(foreach file,$(sort $(sources) $(sources:.c=.S) \ + $(sources:.c=.s)),\ + -o -name $(file)) \ + \) -print) + +all-headers = $(shell find $(all-dirs) -maxdepth 1 \( -name fnord \ + $(foreach file,$(headers),-o -name $(file)) \ + \) -print) tags_sources := $(strip $(tags_sources)) diff --git a/Makeconfig b/Makeconfig index e0ec754883..25740cb097 100644 --- a/Makeconfig +++ b/Makeconfig @@ -267,10 +267,11 @@ endif # Command for linking programs with the C library. ifndef +link -+link = $(CC) -nostdlib -nostartfiles $(config-LDFLAGS) $(LDFLAGS) -o $@ \ - $(addprefix $(csu-objpfx),start.o $(+preinit)) \ - $(^:$(common-objpfx)libc.a=$(link-libc)) \ - $(addprefix $(csu-objpfx),$(+postinit)) ++link = $(CC) -nostdlib -nostartfiles -o $@ \ + $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \ + $(addprefix $(csu-objpfx),start.o $(+preinit)) \ + $(^:$(common-objpfx)libc.a=$(link-libc)) \ + $(addprefix $(csu-objpfx),$(+postinit)) endif ifndef config-LDFLAGS ifeq (yes,$(build-shared)) @@ -279,7 +280,8 @@ endif endif ifndef link-libc ifeq (yes,$(build-shared)) -link-libc = -L$(common-objdir) -lc $(gnulib) +link-libc = -Wl,-rpath-link=$(common-objdir) -Wl,-rpath=$(libdir) \ + $(common-objpfx)libc.so $(gnulib) else link-libc = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a endif diff --git a/Makerules b/Makerules index 1899eb7f89..56f8cc89e6 100644 --- a/Makerules +++ b/Makerules @@ -553,10 +553,10 @@ ifeq (yes,$(build-shared)) lib%.so: lib%_pic.a; $(build-shlib) define build-shlib -$(LINK.o) -shared -o $@ -Wl,-soname \ - -Wl,lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ +$(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ - -L$(firstword $(objdir) .) -L$(common-objpfx:%/=%) \ + -Wl,-rpath-link=$(common-objdir) -Wl,-rpath=$(libdir) \ -Wl,--whole-archive $^ $(LDLIBS-$(@F:lib%.so=%).so) endef @@ -565,7 +565,7 @@ endef # since we define our own `.init' section specially. LDFLAGS-c.so = -nostdlib -nostartfiles # Give libc.so an entry point and make it directly runnable itself. -LDFLAGS-c.so += -Wl,-dynamic-linker -Wl,/lib/ld.so -e __libc_print_version +LDFLAGS-c.so += -e __libc_print_version # Use our own special initializer and finalizer files for libc.so. elfobjdir := $(firstword $(objdir) $(..)elf) $(common-objpfx)libc.so: $(elfobjdir)/soinit.so \ diff --git a/elf/Makefile b/elf/Makefile index 203406d805..45c2cfe854 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -37,7 +37,7 @@ include ../Makeconfig ifeq (yes,$(build-shared)) extra-objs = $(rtld-routines:=.so) soinit.so sofini.so -install-others = $(libdir)(rtld-installed-name) +install-others = $(libdir)$(rtld-installed-name) install-bin = ldd endif diff --git a/gmon/.cvsignore b/gmon/.cvsignore new file mode 100644 index 0000000000..c8367a7367 --- /dev/null +++ b/gmon/.cvsignore @@ -0,0 +1,5 @@ +*.gz *.Z *.tar *.tgz +=* +TODO COPYING* AUTHORS copyr-* copying.* +glibc-* +distinfo diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c index e18107b9a7..2f38679ff2 100644 --- a/hurd/hurdexec.c +++ b/hurd/hurdexec.c @@ -217,14 +217,14 @@ _hurd_exec (task_t task, file_t file, *pdp++ = dtable[i]; } - err = __file_exec (file, task, + err = __file_exec (file, task, MACH_MSG_TYPE_COPY_SEND, _hurd_exec_flags & EXEC_INHERITED, - args, argslen, env, envlen, - dtable, MACH_MSG_TYPE_COPY_SEND, dtablesize, - ports, MACH_MSG_TYPE_COPY_SEND, _hurd_nports, - ints, INIT_INT_MAX, - please_dealloc, pdp - please_dealloc, - NULL, 0); + args, argslen, 0, env, envlen, 0, + dtable, MACH_MSG_TYPE_COPY_SEND, dtablesize, 0, + ports, MACH_MSG_TYPE_COPY_SEND, _hurd_nports, 0, + ints, INIT_INT_MAX, 0, + please_dealloc, pdp - please_dealloc, 0, + NULL, 0, 0); } /* Release references to the standard ports. */ diff --git a/intl/.cvsignore b/intl/.cvsignore new file mode 100644 index 0000000000..c8367a7367 --- /dev/null +++ b/intl/.cvsignore @@ -0,0 +1,5 @@ +*.gz *.Z *.tar *.tgz +=* +TODO COPYING* AUTHORS copyr-* copying.* +glibc-* +distinfo diff --git a/mach/Makefile b/mach/Makefile index 4595628e8a..bfabc33185 100644 --- a/mach/Makefile +++ b/mach/Makefile @@ -184,7 +184,6 @@ endif # Be sure not to make these with implicit rules from foo.defs. mach.h mach/memory_object.h: ; -ifneq (,) # A gcc bug prevents the generated file from working properly, # so we have one in the distribution for the time being. generated += errsystems.c @@ -192,4 +191,3 @@ $(objpfx)errsystems.c: errsystems.awk err_*.sub \ $(wildcard $(addsuffix /err_*.sub,$(+sysdep_dirs))) gawk -v subsys='$(filter-out $<,$^)' -f $^ > $@.n mv $@.n $@ -endif diff --git a/posix/regex.c b/posix/regex.c index 8b936065a5..0fd1833cc7 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -4365,7 +4365,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) for that group and all inner ones, so that if we fail back to this point, the group's information will be correct. For example, in \(a*\)*\1, we need the preceding group, - and in \(\(a*\)b*\)\2, we need the inner group. */ + and in \(zz\(a*\)b*\)\2, we need the inner group. */ /* We can't use `p' to check ahead because we push a failure point to `p + mcnt' after we do this. */ diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index a5825ff142..c650f5f392 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -131,6 +131,7 @@ endif # For the shared library, we don't need to do the linker script machination. # Instead, we specify the required libraries when building the shared object. LDLIBS-c.so = -lmachuser -lhurduser +sysdep-LDFLAGS += -Wl,-rpath-link=$(..)mach:$(..)hurd endif # in-Makerules diff --git a/sysvipc/.cvsignore b/sysvipc/.cvsignore new file mode 100644 index 0000000000..c8367a7367 --- /dev/null +++ b/sysvipc/.cvsignore @@ -0,0 +1,5 @@ +*.gz *.Z *.tar *.tgz +=* +TODO COPYING* AUTHORS copyr-* copying.* +glibc-* +distinfo -- cgit v1.2.3