7e2b69d
--- mono-1.1.13.4/mono/utils/mono-compiler.h.selinux-ia64	2006-03-03 13:12:32.000000000 -0500
7e2b69d
+++ mono-1.1.13.4/mono/utils/mono-compiler.h	2006-03-03 13:12:51.000000000 -0500
7e2b69d
@@ -34,7 +34,11 @@
7e2b69d
 #define MONO_THREAD_VAR_OFFSET(var,offset) do { guint64 foo;  __asm ("movq $" #var "@TPOFF, %0" : "=r" (foo)); offset = foo; } while (0)
7e2b69d
 #endif
7e2b69d
 #elif defined(__ia64__) && !defined(__INTEL_COMPILER)
7e2b69d
+#if defined(PIC)
7e2b69d
+#define MONO_THREAD_VAR_OFFSET(var,offset) __asm ("addl %0 = @ltoff(@tprel(" #var "#)), gp ;; ld8 %0 = [%0]\n" : "=r" (offset))
7e2b69d
+#else
7e2b69d
 #define MONO_THREAD_VAR_OFFSET(var,offset) __asm ("addl %0 = @tprel(" #var "#), r0 ;;\n" : "=r" (offset))
7e2b69d
+#endif
7e2b69d
 #else
7e2b69d
 #define MONO_THREAD_VAR_OFFSET(var,offset) (offset) = -1
7e2b69d
 #endif