[llvm-commits] [llvm-gcc-4.0] r41107 - /llvm-gcc-4.0/trunk/gcc/crtstuff.c

Anton Korobeynikov asl at math.spbu.ru
Wed Aug 15 11:18:59 PDT 2007


Author: asl
Date: Wed Aug 15 13:18:58 2007
New Revision: 41107

URL: http://llvm.org/viewvc/llvm-project?rev=41107&view=rev
Log:
Propagate patch from 4.2 branch:
Mark more stuff as used. This is needed, because LLVM optimizers now are pretty clever :)

Modified:
    llvm-gcc-4.0/trunk/gcc/crtstuff.c

Modified: llvm-gcc-4.0/trunk/gcc/crtstuff.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/crtstuff.c?rev=41107&r1=41106&r2=41107&view=diff

==============================================================================
--- llvm-gcc-4.0/trunk/gcc/crtstuff.c (original)
+++ llvm-gcc-4.0/trunk/gcc/crtstuff.c Wed Aug 15 13:18:58 2007
@@ -176,7 +176,6 @@
 STATIC func_ptr __CTOR_LIST__[1]
 /* APPLE LOCAL begin LLVM */
 #ifdef __llvm__
-/* FIXME: Remove when external weak linkage will be alive. */
   __attribute__ ((__used__, aligned(sizeof(func_ptr))))
 #else  
   __attribute__ ((__unused__, aligned(sizeof(func_ptr))))
@@ -187,7 +186,6 @@
 STATIC func_ptr __CTOR_LIST__[1]
 /* APPLE LOCAL begin LLVM */
 #ifdef __llvm__
-/* FIXME: Remove when external weak linkage will be alive. */
   __attribute__ ((__used__, section(".ctors"), aligned(sizeof(func_ptr))))
 #else  
   __attribute__ ((__unused__, section(".ctors"), aligned(sizeof(func_ptr))))  
@@ -201,11 +199,23 @@
 #elif defined(DTORS_SECTION_ASM_OP)
 asm (DTORS_SECTION_ASM_OP);
 STATIC func_ptr __DTOR_LIST__[1]
+/* LLVM LOCAL begin */
+#ifdef __llvm__
+  __attribute__ ((used, aligned(sizeof(func_ptr))))
+#else
   __attribute__ ((aligned(sizeof(func_ptr))))
+#endif
+/* LLVM LOCAL end */  
   = { (func_ptr) (-1) };
 #else
 STATIC func_ptr __DTOR_LIST__[1]
+/* LLVM LOCAL begin */
+#ifdef __llvm__
+  __attribute__((used, section(".dtors"), aligned(sizeof(func_ptr))))
+#else  
   __attribute__((section(".dtors"), aligned(sizeof(func_ptr))))
+#endif
+/* LLVM LOCAL end */    
   = { (func_ptr) (-1) };
 #endif /* __DTOR_LIST__ alternatives */
 
@@ -213,7 +223,13 @@
 /* Stick a label at the beginning of the frame unwind info so we can register
    and deregister it with the exception handling library code.  */
 STATIC EH_FRAME_SECTION_CONST char __EH_FRAME_BEGIN__[]
+/* LLVM LOCAL begin */
+#ifdef __llvm__
+     __attribute__((used, section(EH_FRAME_SECTION_NAME), aligned(4)))
+#else  
      __attribute__((section(EH_FRAME_SECTION_NAME), aligned(4)))
+#endif
+/* LLVM LOCAL end */      
      = { };
 #endif /* USE_EH_FRAME_REGISTRY */
 
@@ -447,11 +463,23 @@
 static func_ptr force_to_data[1] __attribute__ ((__unused__)) = { };
 asm (CTORS_SECTION_ASM_OP);
 STATIC func_ptr __CTOR_END__[1]
+/* LLVM LOCAL begin */
+#ifdef __llvm__
+  __attribute__((used, aligned(sizeof(func_ptr))))
+#else
   __attribute__((aligned(sizeof(func_ptr))))
+#endif
+/* LLVM LOCAL end */  
   = { (func_ptr) 0 };
 #else
 STATIC func_ptr __CTOR_END__[1]
+/* LLVM LOCAL begin */
+#ifdef __llvm__
+  __attribute__((used, section(".ctors"), aligned(sizeof(func_ptr))))
+#else  
   __attribute__((section(".ctors"), aligned(sizeof(func_ptr))))
+#endif
+/* LLVM LOCAL end */  
   = { (func_ptr) 0 };
 #endif
 
@@ -462,8 +490,7 @@
 STATIC func_ptr __DTOR_END__[1]
 /* APPLE LOCAL begin LLVM */
 #ifdef __llvm__
-/* FIXME: Remove when external weak linkage will be alive. */
-__attribute__ ((__used__, aligned(sizeof(func_ptr))))
+  __attribute__ ((__used__, aligned(sizeof(func_ptr))))
 #else  
   __attribute__ ((unused, aligned(sizeof(func_ptr))))
 #endif    





More information about the llvm-commits mailing list