aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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