aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-4.5/libstdc++-emit-__cxa_end_cleanup-in-text.patch
blob: 307327c314bbca514b7970809ee8a0cf60117981 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2010-06-07  Khem Raj  <raj.khem@gmail.com>

	* libsupc++/eh_arm.cc (__cxa_end_cleanup): Switch to
	.text section before emitting inline assembly.

Index: gcc/libstdc++-v3/libsupc++/eh_arm.cc
===================================================================
--- gcc/libstdc++-v3/libsupc++/eh_arm.cc	(revision 160410)
+++ gcc/libstdc++v3/libsupc++/eh_arm.cc	(working copy)
@@ -157,7 +157,8 @@
 // Assembly wrapper to call __gnu_end_cleanup without clobbering r1-r3.
 // Also push r4 to preserve stack alignment.
 #ifdef __thumb__
-asm (".global __cxa_end_cleanup\n"
+asm ("  .section .text.__cxa_end_cleanup\n"
+"	.global __cxa_end_cleanup\n"
 "	.type __cxa_end_cleanup, \"function\"\n"
 "	.thumb_func\n"
 "__cxa_end_cleanup:\n"
@@ -166,7 +167,8 @@
 "	pop\t{r1, r2, r3, r4}\n"
 "	bl\t_Unwind_Resume @ Never returns\n");
 #else
-asm (".global __cxa_end_cleanup\n"
+asm ("  .section .text.__cxa_end_cleanup\n"
+"	.global __cxa_end_cleanup\n"
 "	.type __cxa_end_cleanup, \"function\"\n"
 "__cxa_end_cleanup:\n"
 "	stmfd\tsp!, {r1, r2, r3, r4}\n"