From 96f873b9215ea1a75e2b17c055fe5c6ad32e10d6 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 20 Feb 1995 10:23:07 +0000 Subject: * 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. --- ChangeLog | 7 +++++++ Makeconfig | 13 ++++++++++++- Rules | 4 ++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 959da90..3518c90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ Mon Feb 20 04:04:57 1995 Roland McGrath + * 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 diff --git a/Makeconfig b/Makeconfig index 434f8b2..48a4a95 100644 --- a/Makeconfig +++ b/Makeconfig @@ -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 diff --git a/Rules b/Rules index 2d33edc..c40e9b2 100644 --- a/Rules +++ b/Rules @@ -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)". -- cgit v1.1