From 083973f34e1c70e05e117db37239716995127cfd Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 14 May 2001 23:32:39 +0000 Subject: [PATCH] * csu/Makefile ($(objpfx)g$(start-installed-name)): Turn this into a static pattern rule also that also covers $(objpx)g$(static-start-installed-name). [$(start-installed-name) != $(static-start-installed-name)] (extra-objs, omit-deps, install-lib): Add $(static-start-installed-name) and g$(static-start-installed-name). * sysdeps/mach/hurd/i386/Makefile: Don't add crt0.o to those here; just setting static-start-installed-name is now sufficient. (extra-objs): Add static-start.o here. (CFLAGS-initfini.s): Remove obsolete variable. * sysdeps/mach/hurd/i386/Makeconfig: New file. Define static-start-installed-name here. * Makeconfig: Include existing $(full_config_sysdirs:=/Makeconfig). * Make-dist (+sysdep-tsrcs): Look for Makeconfig files. * Makerules ($(+sysdir_pfx)sysd-Makefile): Remove this target and associated hair. Instead, just use $(wildcard ...) in the include. * configure.in (critic_missing, aux_missing): Collect in these vars the names of the missing programs, and include them in the error msgs. * configure: Regenerated. --- ChangeLog | 25 +++++++++++++++++++++++++ Make-dist | 6 +++--- Makeconfig | 7 +++++++ Makerules | 30 +++--------------------------- csu/Makefile | 14 +++++++++++--- sysdeps/mach/hurd/i386/Makeconfig | 4 ++++ sysdeps/mach/hurd/i386/Makefile | 15 +++------------ 7 files changed, 56 insertions(+), 45 deletions(-) create mode 100644 sysdeps/mach/hurd/i386/Makeconfig diff --git a/ChangeLog b/ChangeLog index 825ff5cbf0..6dafea3c73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2001-05-14 Roland McGrath + + * csu/Makefile ($(objpfx)g$(start-installed-name)): Turn this into a + static pattern rule also that also covers + $(objpx)g$(static-start-installed-name). + [$(start-installed-name) != $(static-start-installed-name)] + (extra-objs, omit-deps, install-lib): Add + $(static-start-installed-name) and g$(static-start-installed-name). + * sysdeps/mach/hurd/i386/Makefile: Don't add crt0.o to those here; + just setting static-start-installed-name is now sufficient. + (extra-objs): Add static-start.o here. + (CFLAGS-initfini.s): Remove obsolete variable. + * sysdeps/mach/hurd/i386/Makeconfig: New file. + Define static-start-installed-name here. + + * Makeconfig: Include existing $(full_config_sysdirs:=/Makeconfig). + * Make-dist (+sysdep-tsrcs): Look for Makeconfig files. + + * Makerules ($(+sysdir_pfx)sysd-Makefile): Remove this target and + associated hair. Instead, just use $(wildcard ...) in the include. + + * configure.in (critic_missing, aux_missing): Collect in these vars + the names of the missing programs, and include them in the error msgs. + * configure: Regenerated. + 2001-05-14 Andreas Jaeger * sysdeps/i386/fpu/libm-test-ulps: Adjust for new tests. diff --git a/Make-dist b/Make-dist index 4ea23b1c96..d8e5d94f29 100644 --- a/Make-dist +++ b/Make-dist @@ -1,4 +1,4 @@ -# Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1991-1999,2000,01 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -184,9 +184,9 @@ foo:=$(shell echo +sysdep-distfiles='$(+sysdep-distfiles)'>&2) $(sysdep-Subdir-files) foo:=$(shell echo '+sysdep-dist=$(+sysdep-dist)' >&2) -+sysdep-tsrcs := $(wildcard $(foreach file,Makefile Implies syscalls.list\ ++sysdep-tsrcs := $(wildcard $(foreach file,Makefile Makeconfig Implies \ configure configure.in Versions\ - libm-test-ulps,\ + syscalls.list libm-test-ulps,\ $(addsuffix /$(file),$(sysdep_dirs)))) \ $(+sysdep-dist) diff --git a/Makeconfig b/Makeconfig index 6699f0bca2..996b971d61 100644 --- a/Makeconfig +++ b/Makeconfig @@ -879,4 +879,11 @@ $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \ mv -f $@-tmp $@ endif +# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here. +sysdep-makeconfigs := $(wildcard $(full_config_sysdirs:=/Makeconfig)) +ifneq (,$(sysdep-makeconfigs)) +include $(sysdep-makeconfigs) +endif + + endif # Makeconfig not yet included diff --git a/Makerules b/Makerules index 485b5c035c..53d82c0204 100644 --- a/Makerules +++ b/Makerules @@ -94,28 +94,9 @@ vpath %.x $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \ # being included individually by a subdir makefile (hurd/Makefile needs this). in-Makerules := yes --include $(+sysdir_pfx)sysd-Makefile -ifndef avoid-generated -ifneq ($(sysd-Makefile-sysdirs),$(config-sysdirs)) -sysd-Makefile-force = FORCE -FORCE: -endif -$(+sysdir_pfx)sysd-Makefile: $(+sysdir_pfx)config.make $(..)Makerules \ - $(sysd-Makefile-force) - -@rm -f $@T - (echo 'sysd-Makefile-sysdirs := $(config-sysdirs)'; \ - for file in $(config-sysdirs:=/Makefile); do \ - if [ -f $(..)$$file ]; then \ - echo include "\$$(..)$$file"; \ - else true; fi; \ - done; \ - echo 'sysd-Makefile-done=t') > $@T - mv -f $@T $@ -endif - -ifndef sysd-Makefile-done -# Don't do deps until this exists, because it might change the sources list. -no_deps=t +sysdep-makefiles := $(wildcard $(full_config_sysdirs:=/Makefile)) +ifneq (,$(sysdep-makefiles)) +include $(sysdep-makefiles) endif @@ -230,10 +211,6 @@ endef close-check-inhibit-asm = ;; esac ; endif -# Don't include sysd-rules until sysd-Makefile is already there and has been -# included. It might define inhibit-sysdep-asm, which would affect the -# contents of sysd-rules. -ifdef sysd-Makefile-done -include $(+sysdir_pfx)sysd-rules ifneq ($(sysd-rules-sysdirs),$(config-sysdirs)) # The value of $(+sysdep_dirs) the sysd-rules was computed for @@ -241,7 +218,6 @@ ifneq ($(sysd-rules-sysdirs),$(config-sysdirs)) sysd-rules-force = FORCE FORCE: endif -endif $(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \ $(wildcard $(foreach dir,$(sysdirs),\ $(dir)/Makefile))\ diff --git a/csu/Makefile b/csu/Makefile index 838e14163f..2cc93c7011 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -1,6 +1,6 @@ # Makefile for csu code for GNU C library. -# Copyright (C) 1995,1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. +# Copyright (C) 1995,96,97,98,99,2000,01 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -48,6 +48,13 @@ extra-objs += b$(start-installed-name) install-lib += b$(start-installed-name) endif +ifneq ($(start-installed-name),$(static-start-installed-name)) +extra-objs += $(static-start-installed-name) g$(static-start-installed-name) +omit-deps += $(patsubst %.o,%,$(static-start-installed-name) \ + g$(static-start-installed-name)) +install-lib += $(static-start-installed-name) g$(static-start-installed-name) +endif + ifeq (yes,$(elf)) before-compile += $(objpfx)abi-tag.h generated += abi-tag.h @@ -151,8 +158,9 @@ endif # The profiling startfile is made by linking together the normal # startfile with gmon-start.o, which defines a constructor function # to turn on profiling code at startup. -$(objpfx)g$(start-installed-name): $(objpfx)$(start-installed-name) \ - $(objpfx)gmon-start.o +$(addprefix $(objpfx),$(sort g$(start-installed-name) \ + g$(static-start-installed-name))): \ + $(objpfx)g%: $(objpfx)% $(objpfx)gmon-start.o $(link-relocatable) # These extra files are sometimes expected by system standard linking diff --git a/sysdeps/mach/hurd/i386/Makeconfig b/sysdeps/mach/hurd/i386/Makeconfig new file mode 100644 index 0000000000..1b65bb07aa --- /dev/null +++ b/sysdeps/mach/hurd/i386/Makeconfig @@ -0,0 +1,4 @@ +# We need special startup code for statically linked binaries. +# See Makefile in this directory for the rule that builds this. +# We must define this variable earlier than sysdeps Makefiles are included. +static-start-installed-name = crt0.o diff --git a/sysdeps/mach/hurd/i386/Makefile b/sysdeps/mach/hurd/i386/Makefile index 335324e957..b3c619a13d 100644 --- a/sysdeps/mach/hurd/i386/Makefile +++ b/sysdeps/mach/hurd/i386/Makefile @@ -1,18 +1,9 @@ -# We need special startup code for statically linked binaries. -static-start-installed-name = crt0.o - ifeq ($(subdir),csu) -extra-objs += crt0.o -install-lib += crt0.o -omit-deps += crt0 +extra-objs += static-start.o + +# We need special startup code for statically linked binaries. $(objpfx)crt0.o: $(objpfx)static-start.o $(objpfx)abi-note.o $(objpfx)init.o $(link-relocatable) -# compat for libc.so.0.2 only -# This is needed to be backward-compatible with glibc-2.0.x startup code -# that was miscompiled so that it jumps to 0 if there is a nonzero -# __gmon_start__ symbol, but works if there is none. -CFLAGS-initfini.s += -DWEAK_GMON_START - endif