From aa592a63f9c6541bc4661eed409b89248a58f311 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 5 Jun 1996 19:07:37 +0000 Subject: [PATCH] * Makerules (distinfo-vars): Add sysdep_routines. * mach/Machrules (include-%.defs): New canned sequence. Change all uses of `#include <$*.defs>' in cmds to use it. * mach/Makefile (mach_interface.defs): New variable, set to mach.defs. * sysdeps/i386/dl-machine.h (elf_machine_rel): Handle RESOLVE being null in all cases but R_386_COPY. (elf_machine_rel): * sysdeps/unix/bsd/ultrix4/mips/Dist: Updated. * sysdeps/unix/bsd/ultrix4/Dist: Removed. * sysdeps/unix/sysv/sysv4/Dist: Updated. * sysdeps/unix/sysv/sco3.2.4/Dist: Removed. * sysdeps/unix/sysv/irix4/Dist: Updated. * sysdeps/unix/sysv/linux/i386/Dist: Removed. * sysdeps/unix/sysv/Dist: Updated. * sysdeps/unix/bsd/sun/sunos4/Dist: Removed. * sysdeps/unix/bsd/sony/newsos4/Dist: Removed. * sysdeps/gnu/Dist: New file. * sysdeps/alpha/Dist: Updated. * sysdeps/mach/hurd/Dist: Updated. * Make-dist [subdir-dirs]: Set a vpath for %.c. * Make-dist (README): Fix typo in cvs cmd. --- ChangeLog | 27 +++++++++++++++++++++++++++ Make-dist | 6 +++++- mach/Machrules | 17 ++++++++++++----- mach/Makefile | 3 +++ sysdeps/alpha/Dist | 2 +- sysdeps/gnu/Dist | 1 + sysdeps/i386/dl-machine.h | 8 ++++++-- sysdeps/mach/hurd/Dist | 2 +- sysdeps/unix/bsd/sony/newsos4/Dist | 1 - sysdeps/unix/bsd/sun/sunos4/Dist | 2 -- sysdeps/unix/bsd/ultrix4/Dist | 1 - sysdeps/unix/bsd/ultrix4/mips/Dist | 2 +- sysdeps/unix/sysv/Dist | 2 -- sysdeps/unix/sysv/irix4/Dist | 1 - sysdeps/unix/sysv/linux/i386/Dist | 1 - sysdeps/unix/sysv/sco3.2.4/Dist | 2 -- sysdeps/unix/sysv/sysv4/Dist | 5 ----- 17 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 sysdeps/gnu/Dist delete mode 100644 sysdeps/unix/bsd/sony/newsos4/Dist delete mode 100644 sysdeps/unix/bsd/sun/sunos4/Dist delete mode 100644 sysdeps/unix/bsd/ultrix4/Dist delete mode 100644 sysdeps/unix/sysv/linux/i386/Dist delete mode 100644 sysdeps/unix/sysv/sco3.2.4/Dist diff --git a/ChangeLog b/ChangeLog index e91beb0..7daac7d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,32 @@ Wed Jun 5 00:01:19 1996 Roland McGrath + * Makerules (distinfo-vars): Add sysdep_routines. + + * mach/Machrules (include-%.defs): New canned sequence. + Change all uses of `#include <$*.defs>' in cmds to use it. + * mach/Makefile (mach_interface.defs): New variable, set to mach.defs. + + * sysdeps/i386/dl-machine.h (elf_machine_rel): Handle RESOLVE being + null in all cases but R_386_COPY. + (elf_machine_rel): + + * sysdeps/unix/bsd/ultrix4/mips/Dist: Updated. + * sysdeps/unix/bsd/ultrix4/Dist: Removed. + * sysdeps/unix/sysv/sysv4/Dist: Updated. + * sysdeps/unix/sysv/sco3.2.4/Dist: Removed. + * sysdeps/unix/sysv/irix4/Dist: Updated. + * sysdeps/unix/sysv/linux/i386/Dist: Removed. + * sysdeps/unix/sysv/Dist: Updated. + * sysdeps/unix/bsd/sun/sunos4/Dist: Removed. + * sysdeps/unix/bsd/sony/newsos4/Dist: Removed. + * sysdeps/gnu/Dist: New file. + * sysdeps/alpha/Dist: Updated. + * sysdeps/mach/hurd/Dist: Updated. + + * Make-dist [subdir-dirs]: Set a vpath for %.c. + + * Make-dist (README): Fix typo in cvs cmd. + * elf/dl-lookup.c (_dl_lookup_symbol): Fix typos in last change. Comment out ref to nonexistent _dl_close. diff --git a/Make-dist b/Make-dist index d388142..018fd75 100644 --- a/Make-dist +++ b/Make-dist @@ -75,6 +75,10 @@ foo:=$(shell echo 'stub/generic +sysdeps=$(+sysdeps)'>&2) +sysdep-names := $(sort $(notdir $(+sysdeps))) foo:=$(shell echo '+sysdep-names=$(+sysdep-names)' >&2) +ifdef subdir-dirs +vpath %.c $(addprefix $(subdir)/,$(subdir-dirs)) +endif + # Now find all the sysdep versions of those files. +sysdeps := $(wildcard $(foreach dir,$(sysdep_dirs) $(source_dirs),\ $(addprefix $(dir)/, \ @@ -206,7 +210,7 @@ README: README.template version.c sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@ # Make it unwritable so I won't change it by mistake. chmod 444 $@ - test ! -d CVS || commit -m'Remade for $(release)-$(version)' $@ + test ! -d CVS || cvs commit -m'Remade for $(release)-$(version)' $@ endif # Subdirectory vs. parent makefile diff --git a/mach/Machrules b/mach/Machrules index bc0ee37..cd2545b 100644 --- a/mach/Machrules +++ b/mach/Machrules @@ -100,10 +100,17 @@ echo "weak_alias (__$$call, $$call)" >> $(objpfx)tmp_$${call}.c; endef endif + +# Generate `#include ', taking $* for NAME. +# If $(NAME.defs) is defined use its value in place of `NAME.defs'. +define include-%.defs +echo '#include <$(firstword $($*.defs) $*.defs)>' +endef + # Not an implicit rule so the stamps are never removed as intermediates! $(patsubst %,$(objpfx)%.ustamp,$(user-interfaces)): $(objpfx)%.ustamp: rm -f $@ - echo '#include <$*.defs>' | \ + $(include-%.defs) | \ $(MIG) - /dev/null -prefix __ \ $(MIGFLAGS) $(user-MIGFLAGS) $(MIGFLAGS-$*) \ -i $(objpfx)tmp_ \ @@ -118,7 +125,7 @@ $(patsubst %,$(objpfx)%.ustamp,$(user-interfaces)): $(objpfx)%.ustamp: $(patsubst %,$(objpfx)%.udeps,$(user-interfaces)): $(objpfx)%.udeps: $(..)mach/Machrules $(make-target-directory) - echo '#include <$*.defs>' | \ + $(include-%.defs) | \ $(CC) $(CPPFLAGS) -M -x c - | \ sed -e 's,- *:,$@ $(@:.udeps=.ustamp) $(@:.udeps=.uh) $(@:.udeps=.__h)\ $(@:.udeps=_server.c) $(@:.udeps=_server.h):,' \ @@ -130,7 +137,7 @@ vpath %_server.c $(addprefix $(objpfx),$(sort $(dir $(server-interfaces)))) # Build the server stubs in $(objdir). $(objpfx)%_server.c $(objpfx)%_server.h: - echo '#include <$*.defs>' | \ + $(include-%.defs) | \ $(MIG) - /dev/null -prefix _S_ \ $(MIGFLAGS) $(server-MIGFLAGS) $(MIGFLAGS-$*) \ $< -user /dev/null -header /dev/null \ @@ -141,14 +148,14 @@ $(objpfx)%_server.c $(objpfx)%_server.h: $(objpfx)%.uh:; $(mig.uh) define mig.uh $(make-target-directory) -echo '#include <$*.defs>' | \ +$(include-%.defs) | \ $(MIG) - /dev/null $(MIGFLAGS) \ -header $@ -server /dev/null -user /dev/null endef $(objpfx)%.__h:; $(mig.__h) define mig.__h $(make-target-directory) -echo '#include <$*.defs>' | \ +$(include-%.defs) | \ $(MIG) - /dev/null $(MIGFLAGS) -prefix __ \ -header $@ -server /dev/null -user /dev/null endef diff --git a/mach/Makefile b/mach/Makefile index c4665c2..bf38164 100644 --- a/mach/Makefile +++ b/mach/Makefile @@ -45,6 +45,9 @@ user-interfaces := $(addprefix mach/,mach_interface mach_port mach_host \ default_pager default_pager_helper \ )\ $(addprefix device/,device device_request) +# We produce mach_interface.h from mach.defs because there is already a +# that is not the interface header (thanks CMU). +mach_interface.defs = mach.defs server-interfaces := mach/exc tests := hello # It is important that we do not use the wildcard function to expand diff --git a/sysdeps/alpha/Dist b/sysdeps/alpha/Dist index c4ea856..0b1e1b9 100644 --- a/sysdeps/alpha/Dist +++ b/sysdeps/alpha/Dist @@ -1,4 +1,4 @@ setjmp_aux.c DEFS.h -divrem.m4 macros.m4 +divrem.h divl.S divlu.S divq.S divqu.S reml.S remlu.S remq.S remqu.S diff --git a/sysdeps/gnu/Dist b/sysdeps/gnu/Dist new file mode 100644 index 0000000..093b211 --- /dev/null +++ b/sysdeps/gnu/Dist @@ -0,0 +1 @@ +errlist.awk diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 7ed20de..b52e604 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -111,7 +111,9 @@ elf_machine_rel (struct link_map *map, *reloc_addr -= (map->l_addr + dlsymtab[ELF32_R_SYM (reloc->r_info)].st_value); } - loadbase = (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0); + loadbase = (resolve ? (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0) : + /* RESOLVE is null during bootstrap relocation. */ + map->l_addr); *reloc_addr += sym ? (loadbase + sym->st_value) : 0; break; case R_386_RELATIVE: @@ -119,7 +121,9 @@ elf_machine_rel (struct link_map *map, *reloc_addr += map->l_addr; break; case R_386_PC32: - loadbase = (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0); + loadbase = (resolve ? (*resolve) (&sym, (Elf32_Addr) reloc_addr, 0) : + /* RESOLVE is null during bootstrap relocation. */ + map->l_addr); *reloc_addr += ((sym ? (loadbase + sym->st_value) : 0) - (Elf32_Addr) reloc_addr); break; diff --git a/sysdeps/mach/hurd/Dist b/sysdeps/mach/hurd/Dist index 89a6b56..986efc4 100644 --- a/sysdeps/mach/hurd/Dist +++ b/sysdeps/mach/hurd/Dist @@ -1,3 +1,3 @@ -errnos.awk errlist.awk err_hurd.sub +errnos.awk err_hurd.sub libc-ldscript diff --git a/sysdeps/unix/bsd/sony/newsos4/Dist b/sysdeps/unix/bsd/sony/newsos4/Dist deleted file mode 100644 index d7500fd..0000000 --- a/sysdeps/unix/bsd/sony/newsos4/Dist +++ /dev/null @@ -1 +0,0 @@ -sys_wait4.S diff --git a/sysdeps/unix/bsd/sun/sunos4/Dist b/sysdeps/unix/bsd/sun/sunos4/Dist deleted file mode 100644 index f1c9046..0000000 --- a/sysdeps/unix/bsd/sun/sunos4/Dist +++ /dev/null @@ -1,2 +0,0 @@ -sys_wait4.S -sys_mmap.S diff --git a/sysdeps/unix/bsd/ultrix4/Dist b/sysdeps/unix/bsd/ultrix4/Dist deleted file mode 100644 index 6745cd4..0000000 --- a/sysdeps/unix/bsd/ultrix4/Dist +++ /dev/null @@ -1 +0,0 @@ -getsysinfo.S diff --git a/sysdeps/unix/bsd/ultrix4/mips/Dist b/sysdeps/unix/bsd/ultrix4/mips/Dist index c2e8abb..06cf9cc 100644 --- a/sysdeps/unix/bsd/ultrix4/mips/Dist +++ b/sysdeps/unix/bsd/ultrix4/mips/Dist @@ -1 +1 @@ -sigtramp.c __handler.S +__handler.S diff --git a/sysdeps/unix/sysv/Dist b/sysdeps/unix/sysv/Dist index f70fcf6..14343b6 100644 --- a/sysdeps/unix/sysv/Dist +++ b/sysdeps/unix/sysv/Dist @@ -1,3 +1 @@ sysv_termio.h -utmp.h -s_getdents.S diff --git a/sysdeps/unix/sysv/irix4/Dist b/sysdeps/unix/sysv/irix4/Dist index c5dd106..cf0a898 100644 --- a/sysdeps/unix/sysv/irix4/Dist +++ b/sysdeps/unix/sysv/irix4/Dist @@ -1,2 +1 @@ -syssgi.S sysmp.S __handler.S sigtramp.c diff --git a/sysdeps/unix/sysv/linux/i386/Dist b/sysdeps/unix/sysv/linux/i386/Dist deleted file mode 100644 index 91365ad..0000000 --- a/sysdeps/unix/sysv/linux/i386/Dist +++ /dev/null @@ -1 +0,0 @@ -fxstat.S lxstat.S xmknod.S xstat.S diff --git a/sysdeps/unix/sysv/sco3.2.4/Dist b/sysdeps/unix/sysv/sco3.2.4/Dist deleted file mode 100644 index 462b9fb..0000000 --- a/sysdeps/unix/sysv/sco3.2.4/Dist +++ /dev/null @@ -1,2 +0,0 @@ -pgrpsys.S -sco_getgrp.S diff --git a/sysdeps/unix/sysv/sysv4/Dist b/sysdeps/unix/sysv/sysv4/Dist index f603d8b..da3d7e5 100644 --- a/sysdeps/unix/sysv/sysv4/Dist +++ b/sysdeps/unix/sysv/sysv4/Dist @@ -1,7 +1,2 @@ sysconfig.h -sysconfig.S -pgrpsys.S -__waitid.S siginfo.h -__getpgid.c __setpgid.c -sysinfo.S -- 2.7.4