about summary refs log tree commit diff
path: root/csu
diff options
context:
space:
mode:
Diffstat (limited to 'csu')
-rw-r--r--csu/initfini.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/csu/initfini.c b/csu/initfini.c
index 28e822b38c..e4a7117130 100644
--- a/csu/initfini.c
+++ b/csu/initfini.c
@@ -77,10 +77,10 @@ _init (void)
   /* End the here document containing the .init prologue code.
      Then fetch the .section directive just written and append that
      to crtn.s-new, followed by the function epilogue.  */
-  asm ("\nEOF.crti.init
-\n\
+  asm (".end _init\n\
+EOF.crti.init\n\
 	fgrep .init crti.s-new >>crtn.s-new\n\
-	cat >> crtn.s-new <<\\EOF.crtn.init");
+	fgrep -v .end >> crtn.s-new <<\\EOF.crtn.init");
 }
 
 /* End the here document containing the .init epilogue code.
@@ -96,8 +96,8 @@ _fini (void)
   /* End the here document containing the .fini prologue code.
      Then fetch the .section directive just written and append that
      to crtn.s-new, followed by the function epilogue.  */
-  asm ("\nEOF.crti.fini\
-\n\
+  asm (".end _fini\n\
+EOF.crti.fini\n\
 cat > /dev/null <<\\EOF.fini.skip");
 
   {
@@ -111,7 +111,7 @@ cat > /dev/null <<\\EOF.fini.skip");
   asm ("\nEOF.fini.skip\
 \n\
 	fgrep .fini crti.s-new >>crtn.s-new\n\
-	cat >> crtn.s-new <<\\EOF.crtn.fini");
+	fgrep -v .end >> crtn.s-new <<\\EOF.crtn.fini");
 }
 
 /* End the here document containing the .fini epilogue code.