+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.
-# 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
$(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)
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
# 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
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
sysd-rules-force = FORCE
FORCE:
endif
-endif
$(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
$(wildcard $(foreach dir,$(sysdirs),\
$(dir)/Makefile))\
# 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
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
# 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
--- /dev/null
+# 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
-# 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