summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch
new file mode 100644
index 0000000000..a588db28e8
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.5.0/fedora/gcc43-i386-libgomp.patch
@@ -0,0 +1,65 @@
1Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
2hardware isn't supported because NPTL doesn't support it anyway.
3
4Index: libgomp/configure.tgt
5===================================================================
6--- libgomp/configure.tgt.orig 2010-01-28 13:47:59.000000000 -0800
7+++ libgomp/configure.tgt 2010-06-25 10:32:26.706135558 -0700
8@@ -48,14 +48,14 @@
9 ;;
10
11 # Note that bare i386 is not included here. We need cmpxchg.
12- i[456]86-*-linux*)
13+ i[3456]86-*-linux*)
14 config_path="linux/x86 linux posix"
15 case " ${CC} ${CFLAGS} " in
16 *" -m64 "*)
17 ;;
18 *)
19 if test -z "$with_arch"; then
20- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
21+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
22 fi
23 esac
24 ;;
25@@ -67,7 +67,7 @@
26 config_path="linux/x86 linux posix"
27 case " ${CC} ${CFLAGS} " in
28 *" -m32 "*)
29- XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
30+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
31 ;;
32 esac
33 ;;
34Index: libstdc++-v3/libsupc++/guard.cc
35===================================================================
36--- libstdc++-v3/libsupc++/guard.cc.orig 2009-11-09 14:09:30.000000000 -0800
37+++ libstdc++-v3/libsupc++/guard.cc 2010-06-25 10:32:26.710135964 -0700
38@@ -30,6 +30,27 @@
39 #include <new>
40 #include <ext/atomicity.h>
41 #include <ext/concurrence.h>
42+#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS
43+# define _GLIBCXX_ATOMIC_BUILTINS 1
44+# define __sync_val_compare_and_swap(a, b, c) \
45+ ({ \
46+ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \
47+ int sltas; \
48+ __asm __volatile ("lock; cmpxchgl %3, (%1)" \
49+ : "=a" (sltas) \
50+ : "r" (a), "0" (b), "r" (c) : "memory"); \
51+ sltas; \
52+ })
53+# define __sync_lock_test_and_set(a, b) \
54+ ({ \
55+ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \
56+ int sltas; \
57+ __asm __volatile ("xchgl (%1), %0" \
58+ : "=r" (sltas) \
59+ : "r" (a), "0" (b) : "memory"); \
60+ sltas; \
61+ })
62+#endif
63 #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
64 && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
65 # include <climits>