Remove have-initfini and need-nopic-initfini

This commit is contained in:
Andreas Schwab 2012-01-08 11:14:07 +01:00
parent 2832840339
commit 26ecc33a02
8 changed files with 13 additions and 37 deletions

View File

@ -1,3 +1,12 @@
2012-02-08 Andreas Schwab <schwab@linux-m68k.org>
* Makeconfig (have-initfini): Don't set.
* config.make.in (have-initfini, need-nopic-initfini): Don't set.
* configure.in (nopic_initfini): Don't substitute.
* config.h.in (HAVE_INITFINI): Don't #undef.
* csu/Makefile (CPPFLAGS): Don't add -DHAVE_INITFINI.
* csu/gmon-start.c: Assume HAVE_INITFINI is defined.
2012-02-08 Joseph Myers <joseph@codesourcery.com> 2012-02-08 Joseph Myers <joseph@codesourcery.com>
Support crti.S and crtn.S provided directly by architectures. Support crti.S and crtn.S provided directly by architectures.

View File

@ -389,9 +389,6 @@ ifndef asm-CPPFLAGS
asm-CPPFLAGS = asm-CPPFLAGS =
endif endif
# ELF always supports init/fini sections
have-initfini = yes
ifeq ($(have-as-needed),yes) ifeq ($(have-as-needed),yes)
as-needed := -Wl,--as-needed as-needed := -Wl,--as-needed
no-as-needed := -Wl,--no-as-needed no-as-needed := -Wl,--no-as-needed
@ -405,14 +402,8 @@ no-whole-archive = -Wl,--no-whole-archive
whole-archive = -Wl,--whole-archive whole-archive = -Wl,--whole-archive
# Installed name of the startup code. # Installed name of the startup code.
ifneq ($(have-initfini),yes) # The ELF convention is that the startfile is called crt1.o
# When not having init/fini, there is just one startfile, called crt0.o.
start-installed-name = crt0.o
else
# On systems having init/fini, crt0.o is called crt1.o, and there are
# some additional bizarre files.
start-installed-name = crt1.o start-installed-name = crt1.o
endif
# On systems that do not need a special startfile for statically linked # On systems that do not need a special startfile for statically linked
# binaries, simply set it to the normal name. # binaries, simply set it to the normal name.
ifndef static-start-installed-name ifndef static-start-installed-name

View File

@ -30,9 +30,6 @@
assembler instructions per line. Default is `;' */ assembler instructions per line. Default is `;' */
#undef ASM_LINE_SEP #undef ASM_LINE_SEP
/* Define if not using ELF, but `.init' and `.fini' sections are available. */
#undef HAVE_INITFINI
/* Define if __attribute__((section("foo"))) puts quotes around foo. */ /* Define if __attribute__((section("foo"))) puts quotes around foo. */
#undef HAVE_SECTION_QUOTES #undef HAVE_SECTION_QUOTES

View File

@ -47,11 +47,9 @@ all-warnings = @all_warnings@
have-z-combreloc = @libc_cv_z_combreloc@ have-z-combreloc = @libc_cv_z_combreloc@
have-z-execstack = @libc_cv_z_execstack@ have-z-execstack = @libc_cv_z_execstack@
have-initfini = @libc_cv_have_initfini@
have-Bgroup = @libc_cv_Bgroup@ have-Bgroup = @libc_cv_Bgroup@
have-as-needed = @libc_cv_as_needed@ have-as-needed = @libc_cv_as_needed@
libgcc_s_suffix = @libc_cv_libgcc_s_suffix@ libgcc_s_suffix = @libc_cv_libgcc_s_suffix@
need-nopic-initfini = @nopic_initfini@
with-fp = @with_fp@ with-fp = @with_fp@
old-glibc-headers = @old_glibc_headers@ old-glibc-headers = @old_glibc_headers@
unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ unwind-find-fde = @libc_cv_gcc_unwind_find_fde@

2
configure vendored
View File

@ -609,7 +609,6 @@ RELEASE
VERSION VERSION
mach_interface_list mach_interface_list
DEFINES DEFINES
nopic_initfini
static_nss static_nss
profile profile
libc_cv_pic_default libc_cv_pic_default
@ -7672,7 +7671,6 @@ $as_echo "$libc_cv_pic_default" >&6; }
if test "`(cd $srcdir; pwd)`" = "`pwd`"; then if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
config_makefile= config_makefile=
else else

View File

@ -2180,7 +2180,6 @@ AC_SUBST(libc_cv_pic_default)
AC_SUBST(profile) AC_SUBST(profile)
AC_SUBST(static_nss) AC_SUBST(static_nss)
AC_SUBST(nopic_initfini)
AC_SUBST(DEFINES) AC_SUBST(DEFINES)

View File

@ -73,10 +73,6 @@ endif
before-compile += $(objpfx)abi-tag.h before-compile += $(objpfx)abi-tag.h
generated += abi-tag.h generated += abi-tag.h
ifeq ($(have-initfini),yes)
CPPFLAGS += -DHAVE_INITFINI
# These are the special initializer/finalizer files. They are always the # These are the special initializer/finalizer files. They are always the
# first and last file in the link. crti.o ... crtn.o define the global # 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. # "functions" _init and _fini to run the .init and .fini sections.
@ -129,8 +125,6 @@ $(objpfx)defs.h: $(objpfx)initfini.s
endif endif
endif
extra-objs += abi-note.o init.o extra-objs += abi-note.o init.o
asm-CPPFLAGS += -I$(objpfx). asm-CPPFLAGS += -I$(objpfx).

View File

@ -1,5 +1,5 @@
/* Code to enable profiling at program startup. /* Code to enable profiling at program startup.
Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc. Copyright (C) 1995,1996,1997,2000,2001,2002,2012 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -43,23 +43,14 @@ extern char etext[];
# endif # endif
#endif #endif
#ifndef HAVE_INITFINI /* We cannot use the normal constructor mechanism to call
/* This function gets called at startup by the normal constructor
mechanism. We link this file together with start.o to produce gcrt1.o,
so this constructor will be first in the list. */
extern void __gmon_start__ (void) __attribute__ ((constructor));
#else
/* In ELF and COFF, we cannot use the normal constructor mechanism to call
__gmon_start__ because gcrt1.o appears before crtbegin.o in the link. __gmon_start__ because gcrt1.o appears before crtbegin.o in the link.
Instead crti.o calls it specially (see initfini.c). */ Instead crti.o calls it specially. */
extern void __gmon_start__ (void); extern void __gmon_start__ (void);
#endif
void void
__gmon_start__ (void) __gmon_start__ (void)
{ {
#ifdef HAVE_INITFINI
/* Protect from being called more than once. Since crti.o is linked /* Protect from being called more than once. Since crti.o is linked
into every shared library, each of their init functions will call us. */ into every shared library, each of their init functions will call us. */
static int called; static int called;
@ -68,7 +59,6 @@ __gmon_start__ (void)
return; return;
called = 1; called = 1;
#endif
/* Start keeping profiling records. */ /* Start keeping profiling records. */
__monstartup ((u_long) TEXT_START, (u_long) &etext); __monstartup ((u_long) TEXT_START, (u_long) &etext);