30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/libgcc/crtstuff.c
 | 
						|
+++ b/libgcc/crtstuff.c
 | 
						|
@@ -100,15 +100,20 @@ call_ ## FUNC (void)					\
 | 
						|
 #if defined(OBJECT_FORMAT_ELF) \
 | 
						|
     && !defined(OBJECT_FORMAT_FLAT) \
 | 
						|
     && defined(HAVE_LD_EH_FRAME_HDR) \
 | 
						|
-    && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
 | 
						|
-    && defined(__GLIBC__) && __GLIBC__ >= 2
 | 
						|
+    && !defined(inhibit_libc) && !defined(CRTSTUFFT_O)
 | 
						|
 #include <link.h>
 | 
						|
 /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
 | 
						|
    But it doesn't use PT_GNU_EH_FRAME ELF segment currently.  */
 | 
						|
-# if !defined(__UCLIBC__) \
 | 
						|
-     && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
 | 
						|
-     || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
 | 
						|
-#  define USE_PT_GNU_EH_FRAME
 | 
						|
+# if defined(__UCLIBC__)
 | 
						|
+#  if (__UCLIBC_MAJOR__ > 0 || __UCLIBC_MINOR__ > 9 || \
 | 
						|
+       (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ >= 33))
 | 
						|
+#   define USE_PT_GNU_EH_FRAME
 | 
						|
+#  endif
 | 
						|
+# elif defined(__GLIBC__)
 | 
						|
+#  if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
 | 
						|
+       || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
 | 
						|
+#   define USE_PT_GNU_EH_FRAME
 | 
						|
+#  endif
 | 
						|
 # endif
 | 
						|
 #endif
 | 
						|
 
 |