* 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.
This commit is contained in:
Roland McGrath 2001-05-14 23:32:39 +00:00
parent aefdff34cd
commit 083973f34e
7 changed files with 56 additions and 45 deletions

View File

@ -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.

View File

@ -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)

View File

@ -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

View File

@ -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))\

View File

@ -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

View File

@ -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

View File

@ -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