/usr/src/gcc-4.4/debian/patches/arm-boehm-gc-locks.diff is in gcc-4.4-source 4.4.7-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | # DP: Fix boehm-gc build on ARM --with-mode=thumb
--- a/src/boehm-gc/include/private/gc_locks.h (revision 155048)
+++ b/src/boehm-gc/include/private/gc_locks.h (working copy)
@@ -207,6 +207,12 @@
# define GC_CLEAR_DEFINED
# endif /* ALPHA */
# ifdef ARM32
+# define GC_TEST_AND_SET_DEFINED
+# if (__GNUC__>4)||((__GNUC__==4)&&(__GNUC_MINOR__>=4)) && defined(__ARM_EABI__)
+# define GC_CLEAR_DEFINED
+# define GC_test_and_set(addr) __sync_lock_test_and_set (addr, 1)
+# define GC_clear(addr) __sync_lock_release (addr)
+# else
inline static int GC_test_and_set(volatile unsigned int *addr) {
int oldval;
/* SWP on ARM is very similar to XCHG on x86. Doesn't lock the
@@ -219,7 +225,7 @@
: "memory");
return oldval;
}
-# define GC_TEST_AND_SET_DEFINED
+# endif
# endif /* ARM32 */
# ifdef CRIS
inline static int GC_test_and_set(volatile unsigned int *addr) {
|