about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2001-05-14 23:32:39 +0000
committerRoland McGrath <roland@gnu.org>2001-05-14 23:32:39 +0000
commit083973f34e1c70e05e117db37239716995127cfd (patch)
tree1cbd8c5608a168b06bc8d8a8278cf0a9ab08e08e
parentaefdff34cd2669d3bb3824a759ce0322ed7e2ef2 (diff)
downloadglibc-083973f34e1c70e05e117db37239716995127cfd.tar.gz
glibc-083973f34e1c70e05e117db37239716995127cfd.tar.xz
glibc-083973f34e1c70e05e117db37239716995127cfd.zip
* 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.
-rw-r--r--ChangeLog25
-rw-r--r--Make-dist6
-rw-r--r--Makeconfig7
-rw-r--r--Makerules30
-rw-r--r--csu/Makefile14
-rw-r--r--sysdeps/mach/hurd/i386/Makeconfig4
-rw-r--r--sysdeps/mach/hurd/i386/Makefile15
7 files changed, 56 insertions, 45 deletions
diff --git a/ChangeLog b/ChangeLog
index 825ff5cbf0..6dafea3c73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2001-05-14  Roland McGrath  <roland@frob.com>
+
+	* 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  <aj@suse.de>
 
 	* 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