about summary refs log tree commit diff
path: root/csu
diff options
context:
space:
mode:
Diffstat (limited to 'csu')
-rw-r--r--csu/Makefile11
-rw-r--r--csu/initfini.c15
2 files changed, 7 insertions, 19 deletions
diff --git a/csu/Makefile b/csu/Makefile
index 4943087203..31b0f0ab7c 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -50,12 +50,9 @@ else
 start-installed-name = crt1.o
 
 # These are the special initializer/finalizer files.  They are always the
-# first and last file in the link.  crti.o ... crtn.o are used for normal
-# linking; they define the global "functions" _init and _fini to run the
-# .init and .fini sections.  crti_s.o ... crtn_s.o are for making shared
-# library objects; they put the prologue/epilogue code into the .init and
-# .fini sections, but define no global symbols.
-crtstuff = crti crtn crti_s crtn_s
+# first and last file in the link.  crti.o ... crtn.o define the global
+# "functions" _init and _fini to run the .init and .fini sections.
+crtstuff = crti crtn
 
 install-lib += $(crtstuff:=.o)
 extra-objs += $(crtstuff:=.o)
@@ -67,13 +64,11 @@ omit-deps += $(crtstuff)
 # disable emission of .size directives and debugging information, since
 # they will get confused by the splitting of the output we do.
 $(objpfx)cr%i.s $(objpfx)cr%n.s: initfini.c; $(initfini)
-$(objpfx)cr%i_s.s $(objpfx)cr%n_s.s: initfini.c; $(initfini)
 
 define initfini
 -rm -f $(objpfx)crtcommon.tmp
 (echo 'cat > crtcommon.tmp <<\EOF_common'; \
  $(CC) $< $(CPPFLAGS) $(CFLAGS) \
-       $(patsubst %,-DGLOBAL=static,$(filter %_s.s,$@)) \
        -finhibit-size-directive -g0 -S -o -; \
  echo 'EOF_common') | (cd $(@D); $(SHELL))
 cat $(objpfx)crtcommon.tmp >> $(objpfx)crti.s-new
diff --git a/csu/initfini.c b/csu/initfini.c
index bfd120b7ef..1da5e2721a 100644
--- a/csu/initfini.c
+++ b/csu/initfini.c
@@ -34,18 +34,11 @@ Cambridge, MA 02139, USA.  */
 
 #include <stdlib.h>
 
-/* We are compiled with -DGLOBAL=static to generate the versions used for
-   shared libraries' .init and .fini sections, which do not have entry
-   point symbols.  */
-#ifndef GLOBAL
-#define GLOBAL
-#endif
-
 /* These declarations make the functions go in the right sections when
    we define them below.  GCC syntax does not allow the attribute
    specifications to be in the function definitions themselves.  */
-GLOBAL void _init (void) __attribute__ ((section (".init")));
-GLOBAL void _fini (void) __attribute__ ((section (".fini")));
+void _init (void) __attribute__ ((section (".init")));
+void _fini (void) __attribute__ ((section (".fini")));
 
 /* End the here document containing the initial common code.
    Then move the output file crtcommon.tmp to crti.s-new and crtn.s-new.  */
@@ -55,7 +48,7 @@ cp -f crti.s-new crtn.s-new");
 
 /* Append the .init prologue to crti.s-new.  */
 asm ("cat >> crti.s-new <<\\EOF.crti.init");
-GLOBAL void
+void
 _init (void)
 {
   (void) &_init;		/* Don't optimize out the function! */
@@ -74,7 +67,7 @@ asm ("\nEOF.crtn.init\
 \n\
 cat >> crti.s-new <<\\EOF.crti.fini");
 
-GLOBAL void
+void
 _fini (void)
 {
   (void) &_fini;		/* Don't optimize out the function! */