diff options
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.patch | 65 |
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 @@ | |||
1 | Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486 | ||
2 | hardware isn't supported because NPTL doesn't support it anyway. | ||
3 | |||
4 | Index: 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 | ;; | ||
34 | Index: 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> | ||