summaryrefslogtreecommitdiff
path: root/csu
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-07-26 14:04:19 +0000
committerRoland McGrath <roland@gnu.org>1995-07-26 14:04:19 +0000
commit4e1bac76a81d99ff4658fb86edb04356d357017d (patch)
tree6050ea749a98995c62fc462f0f1ae6ebca5afd57 /csu
parent3d61b63cc722951e3a5261e6bc3f0488eb35d441 (diff)
* stdio/vfscanf.c (conv_error): Simplify expression to avoid
"value computed is not used" warning. * Makeconfig (+gccwarn): Removed -Wconversion. * csu/initfini.c (GLOBAL): Macro removed. (_init, _fini): Always define globally. * csu/Makefile (crtstuff, initfini): Don't make crt[in]_s.o.
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! */