about summary refs log tree commit diff
path: root/csu
diff options
context:
space:
mode:
Diffstat (limited to 'csu')
-rw-r--r--csu/Makefile19
1 files changed, 16 insertions, 3 deletions
diff --git a/csu/Makefile b/csu/Makefile
index 0920f973b4..3adb093e80 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -31,11 +31,12 @@ routines = init-first libc-start $(libc-init) sysdep version check_fds \
 aux	 = errno
 elide-routines.os = libc-tls
 static-only-routines = elf-init
-csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
+csu-dummies = $(filter-out $(start-installed-name),crt1.o Scrt1.o Mcrt1.o)
 extra-objs = start.o gmon-start.o \
 	     $(start-installed-name) g$(start-installed-name) $(csu-dummies)
 omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
-			      b$(start-installed-name) $(csu-dummies))
+			     b$(start-installed-name) $(csu-dummies) \
+			     S$(start-installed-name))
 install-lib = $(start-installed-name) g$(start-installed-name) $(csu-dummies)
 distribute = initfini.c gmon-start.c start.c defs.awk munch.awk \
 	     abi-note.S init.c munch-tmpl.c not-cancel.h
@@ -49,6 +50,11 @@ all: # Make this the default target; it will be defined in Rules.
 
 include ../Makeconfig
 
+ifeq (yes,$(build-shared))
+extra-objs += S$(start-installed-name)
+install-lib += S$(start-installed-name)
+endif
+
 ifeq (yes,$(build-bounded))
 extra-objs += b$(start-installed-name)
 install-lib += b$(start-installed-name)
@@ -149,6 +155,9 @@ ifeq (yes,$(elf))
 $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
 				  $(objpfx)init.o
 	$(link-relocatable)
+$(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \
+				  $(objpfx)init.o
+	$(link-relocatable)
 $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
 				  $(objpfx)init.ob
 	$(link-relocatable)
@@ -158,6 +167,9 @@ else
 $(objpfx)$(start-installed-name): $(objpfx)start.o
 	rm -f $@
 	ln $< $@
+$(objpfx)S$(start-installed-name): $(objpfx)start.os
+	rm -f $@
+	ln $< $@
 $(objpfx)b$(start-installed-name): $(objpfx)start.ob
 	rm -f $@
 	ln $< $@
@@ -174,7 +186,8 @@ $(addprefix $(objpfx),$(sort g$(start-installed-name) \
 
 # These extra files are sometimes expected by system standard linking
 # procedures, but we have nothing for them to do.  So compile empty files.
-$(addprefix $(objpfx),$(filter-out $(start-installed-name),$(csu-dummies))):\
+$(addprefix $(objpfx),$(filter-out $(start-installed-name)\
+				   S$(start-installed-name),$(csu-dummies))):\
   $(before-compile)
 	$(COMPILE.c) -o $@ -x c /dev/null