tile: support stackguard-macros.h header
authorChris Metcalf <cmetcalf@tilera.com>
Fri, 11 May 2012 20:11:04 +0000 (16:11 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Mon, 14 May 2012 19:46:11 +0000 (15:46 -0400)
ChangeLog.tile
sysdeps/tile/elf/stackguard-macros.h [new file with mode: 0644]
sysdeps/tile/stackguard-macros.h [new file with mode: 0644]

index 46336a5..2ce98e9 100644 (file)
@@ -1,5 +1,10 @@
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
 
+       * sysdeps/tile/stackguard-macros.h: New file.
+       * sysdeps/tile/elf/stackguard-macros.h: New stub include file.
+
+2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
+
        * sysdeps/tile/Makefile (ELF_MACHINE_PLTREL_OVERLAP):
        Remove variable no longer used by core.
 
diff --git a/sysdeps/tile/elf/stackguard-macros.h b/sysdeps/tile/elf/stackguard-macros.h
new file mode 100644 (file)
index 0000000..606ad58
--- /dev/null
@@ -0,0 +1,3 @@
+/* Tests in nptl/ look for <elf/stackguard-macros.h> while tests
+   in elf/ look for <stackguard-macros.h>.  Provide both.  */
+#include "../stackguard-macros.h"
diff --git a/sysdeps/tile/stackguard-macros.h b/sysdeps/tile/stackguard-macros.h
new file mode 100644 (file)
index 0000000..7679c0a
--- /dev/null
@@ -0,0 +1,7 @@
+#ifdef __tilegx__
+# define STACK_CHK_GUARD \
+  ({ uintptr_t x; asm ("addi %0, tp, -16; ld %0, %0" : "=r" (x)); x; })
+#else
+# define STACK_CHK_GUARD \
+  ({ uintptr_t x; asm ("addi %0, tp, -8; lw %0, %0" : "=r" (x)); x; })
+#endif