From 26ecc33a0290293ff779f76ac0324381b6dfafda Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 8 Jan 2012 11:14:07 +0100 Subject: [PATCH] Remove have-initfini and need-nopic-initfini --- ChangeLog | 9 +++++++++ Makeconfig | 11 +---------- config.h.in | 3 --- config.make.in | 2 -- configure | 2 -- configure.in | 1 - csu/Makefile | 6 ------ csu/gmon-start.c | 16 +++------------- 8 files changed, 13 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index cdaba6bbed..c016612c59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-02-08 Andreas Schwab + + * 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 Support crti.S and crtn.S provided directly by architectures. diff --git a/Makeconfig b/Makeconfig index 68547b2122..3d26e6a17e 100644 --- a/Makeconfig +++ b/Makeconfig @@ -389,9 +389,6 @@ ifndef asm-CPPFLAGS asm-CPPFLAGS = endif -# ELF always supports init/fini sections -have-initfini = yes - ifeq ($(have-as-needed),yes) as-needed := -Wl,--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 # Installed name of the startup code. -ifneq ($(have-initfini),yes) -# 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. +# The ELF convention is that the startfile is called crt1.o start-installed-name = crt1.o -endif # On systems that do not need a special startfile for statically linked # binaries, simply set it to the normal name. ifndef static-start-installed-name diff --git a/config.h.in b/config.h.in index 1489476718..632f89fbea 100644 --- a/config.h.in +++ b/config.h.in @@ -30,9 +30,6 @@ assembler instructions per line. Default is `;' */ #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. */ #undef HAVE_SECTION_QUOTES diff --git a/config.make.in b/config.make.in index 75061f6d50..46a14b4f29 100644 --- a/config.make.in +++ b/config.make.in @@ -47,11 +47,9 @@ all-warnings = @all_warnings@ have-z-combreloc = @libc_cv_z_combreloc@ have-z-execstack = @libc_cv_z_execstack@ -have-initfini = @libc_cv_have_initfini@ have-Bgroup = @libc_cv_Bgroup@ have-as-needed = @libc_cv_as_needed@ libgcc_s_suffix = @libc_cv_libgcc_s_suffix@ -need-nopic-initfini = @nopic_initfini@ with-fp = @with_fp@ old-glibc-headers = @old_glibc_headers@ unwind-find-fde = @libc_cv_gcc_unwind_find_fde@ diff --git a/configure b/configure index 508e1bb58c..ea02e72872 100755 --- a/configure +++ b/configure @@ -609,7 +609,6 @@ RELEASE VERSION mach_interface_list DEFINES -nopic_initfini static_nss profile libc_cv_pic_default @@ -7672,7 +7671,6 @@ $as_echo "$libc_cv_pic_default" >&6; } - if test "`(cd $srcdir; pwd)`" = "`pwd`"; then config_makefile= else diff --git a/configure.in b/configure.in index 0499d3c2d4..af42c8ad2f 100644 --- a/configure.in +++ b/configure.in @@ -2180,7 +2180,6 @@ AC_SUBST(libc_cv_pic_default) AC_SUBST(profile) AC_SUBST(static_nss) -AC_SUBST(nopic_initfini) AC_SUBST(DEFINES) diff --git a/csu/Makefile b/csu/Makefile index 05bc0e47e5..a67919ef84 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -73,10 +73,6 @@ endif before-compile += $(objpfx)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 # 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. @@ -129,8 +125,6 @@ $(objpfx)defs.h: $(objpfx)initfini.s endif -endif - extra-objs += abi-note.o init.o asm-CPPFLAGS += -I$(objpfx). diff --git a/csu/gmon-start.c b/csu/gmon-start.c index 7d585e135f..107153ff4e 100644 --- a/csu/gmon-start.c +++ b/csu/gmon-start.c @@ -1,5 +1,5 @@ /* 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. The GNU C Library is free software; you can redistribute it and/or @@ -43,23 +43,14 @@ extern char etext[]; # endif #endif -#ifndef HAVE_INITFINI -/* 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 +/* We cannot use the normal constructor mechanism to call __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); -#endif void __gmon_start__ (void) { -#ifdef HAVE_INITFINI /* Protect from being called more than once. Since crti.o is linked into every shared library, each of their init functions will call us. */ static int called; @@ -68,7 +59,6 @@ __gmon_start__ (void) return; called = 1; -#endif /* Start keeping profiling records. */ __monstartup ((u_long) TEXT_START, (u_long) &etext); -- 2.11.4.GIT