]> granicus.if.org Git - gc/commitdiff
Fix GC_get_stack_base assembly code (Cygwin/Clang)
authorColin LeMahieu <clemahieu@gmail.com>
Wed, 5 Sep 2012 22:02:16 +0000 (02:02 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 5 Sep 2012 22:05:55 +0000 (02:05 +0400)
* os_dep.c (GC_get_stack_base): Use inline assembly statement instead
of variable assembly attribute (to workaround clang 3.1 linkage error
on Cygwin).

os_dep.c

index 6539dcf21b53e4c723a3f98b7787a716e7b7f147..7fdfff93667896b32d8933139402a98964c1217f 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -781,7 +781,10 @@ GC_INNER word GC_page_size = 0;
     /* gcc version of boehm-gc).                                        */
     GC_API int GC_CALL GC_get_stack_base(struct GC_stack_base *sb)
     {
-      extern void * _tlsbase __asm__ ("%fs:4");
+      void * _tlsbase;
+
+      __asm__ ("movl %%fs:4, %0"
+               : "=r" (_tlsbase));
       sb -> mem_base = _tlsbase;
       return GC_SUCCESS;
     }