* Makeconfig [elf=yes] (+preinit, +postinit): New variables, set

to crt[in].o.
	(csu-objpfx): New variable.
	(+link): Use it to find start.o and $(+preinit), $(+postinit).

	* Rules (subdir_lib, all): Depend on objs.
This commit is contained in:
Roland McGrath 1995-02-20 10:23:07 +00:00
parent 0923c7a543
commit 96f873b921
3 changed files with 21 additions and 3 deletions

View File

@ -1,5 +1,12 @@
Mon Feb 20 04:04:57 1995 Roland McGrath <roland@duality.gnu.ai.mit.edu>
* Makeconfig [elf=yes] (+preinit, +postinit): New variables, set
to crt[in].o.
(csu-objpfx): New variable.
(+link): Use it to find start.o and $(+preinit), $(+postinit).
* Rules (subdir_lib, all): Depend on objs.
* config.h.in [HAVE_ELF || HAVE_GNU_LD]: Define HAVE_WEAK_SYMBOLS.
* stdlib/strtod.c (PASTE, PASTE1): New helper macros; use these in

View File

@ -254,11 +254,22 @@ endif
# Command for linking programs with the C library.
ifndef +link
+link = $(CC) -nostdlib $(LDFLAGS) -o $@ \
$(common-objpfx)start.o $(^:lib=$(libc.a)) $(gnulib) $(libc.a)
$(addprefix $(csu-objpfx),start.o $(+preinit)) \
$(^:lib=$(libc.a)) $(gnulib) $(libc.a) \
$(addprefix $(csu-objpfx),$(+postinit))
endif
ifndef gnulib
gnulib := -lgcc
endif
ifeq ($(elf),yes)
+preinit = crti.o
+postinit = crtn.o
endif
ifdef objpfx
csu-objpfx = $(objpfx)
else
csu-objpfx = $(..)csu
endif
ifndef LD
LD := ld -X

4
Rules
View File

@ -36,7 +36,7 @@ export subdir := $(subdir)
# This is the default target; it makes the library and auxiliary programs.
.PHONY: all
all: lib others
all: objs lib others
ifneq "$(findstring env,$(origin headers))" ""
headers :=
@ -55,7 +55,7 @@ endif
include ../Makerules
.PHONY: subdir_lib
subdir_lib: lib-noranlib
subdir_lib: objs lib-noranlib
# Some subdirs need to install a dummy library.
# They can use "$(objpfx)libfnord.a: $(dep-dummy-lib); $(make-dummy-lib)".