* Makeconfig [elf=yes] (+preinit, +postinit): New variables, set
authorRoland McGrath <roland@gnu.org>
Mon, 20 Feb 1995 10:23:07 +0000 (10:23 +0000)
committerRoland McGrath <roland@gnu.org>
Mon, 20 Feb 1995 10:23:07 +0000 (10:23 +0000)
  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
Makeconfig
Rules

index 959da90..3518c90 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 434f8b2..48a4a95 100644 (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
diff --git a/Rules b/Rules
index 2d33edc..c40e9b2 100644 (file)
--- a/Rules
+++ b/Rules
@@ -36,7 +36,7 @@ export subdir := $(subdir)
 \f
 # 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)".