]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc.
authorJoseph Myers <joseph@codesourcery.com>
Sun, 19 Aug 2012 15:11:40 +0000 (16:11 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Sun, 19 Aug 2012 15:11:40 +0000 (16:11 +0100)
* crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc
even if inhibit_libc.

From-SVN: r190517

libgcc/ChangeLog
libgcc/crtstuff.c

index 3ec62d6a3eb8c54627f00fa2592ea24a53b34f8d..66d52d8f96a779225e72f5099a60d7e78b5c8d6d 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-19  Joseph Myers  <joseph@codesourcery.com>
+
+       * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc
+       even if inhibit_libc.
+
 2012-08-17  Julian Brown  <julian@codesourcery.com>
 
        * Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to
index 5d820fa45acd7769471e04f06c0fc6a0f5738ba0..973956ac322722accc4c9582127c78a12b5d6f10 100644 (file)
@@ -1,7 +1,7 @@
 /* Specialized bits of code needed to support construction and
    destruction of file-scope objects in C++ code.
    Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-   2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
+   2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
    Free Software Foundation, Inc.
    Contributed by Ron Guilmette (rfg@monkeys.com).
 
@@ -113,6 +113,20 @@ call_ ## FUNC (void)                                       \
 #  define USE_PT_GNU_EH_FRAME
 # endif
 #endif
+
+#if defined(OBJECT_FORMAT_ELF) \
+    && !defined(OBJECT_FORMAT_FLAT) \
+    && defined(HAVE_LD_EH_FRAME_HDR) \
+    && !defined(CRTSTUFFT_O) \
+    && defined(inhibit_libc) \
+    && (defined(__GLIBC__) || defined(__gnu_linux__) || defined(__GNU__))
+/* On systems using glibc, an inhibit_libc build of libgcc is only
+   part of a bootstrap process.  Build the same crt*.o as would be
+   built with headers present, so that it is not necessary to build
+   glibc more than once for the bootstrap to converge.  */
+# define USE_PT_GNU_EH_FRAME
+#endif
+
 #if defined(EH_FRAME_SECTION_NAME) && !defined(USE_PT_GNU_EH_FRAME)
 # define USE_EH_FRAME_REGISTRY
 #endif