aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--elf/stackguard-macros.h32
-rw-r--r--nptl/tst-stackguard1.c4
-rw-r--r--sysdeps/generic/stackguard-macros.h4
-rw-r--r--sysdeps/i386/stackguard-macros.h4
-rw-r--r--sysdeps/powerpc/powerpc32/stackguard-macros.h4
-rw-r--r--sysdeps/powerpc/powerpc64/stackguard-macros.h4
-rw-r--r--sysdeps/s390/s390-32/stackguard-macros.h4
-rw-r--r--sysdeps/s390/s390-64/stackguard-macros.h4
-rw-r--r--sysdeps/sparc/sparc32/stackguard-macros.h4
-rw-r--r--sysdeps/sparc/sparc64/stackguard-macros.h4
-rw-r--r--sysdeps/x86_64/stackguard-macros.h6
12 files changed, 53 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 81854e263a..167f869b26 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
2012-05-15 Joseph Myers <joseph@codesourcery.com>
+ * elf/stackguard-macros.h: Remove file.
+ * sysdeps/generic/stackguard-macros.h: New file.
+ * sysdeps/i386/stackguard-macros.h: Likewise.
+ * sysdeps/powerpc/powerpc32/stackguard-macros.h: Likewise.
+ * sysdeps/powerpc/powerpc64/stackguard-macros.h: Likewise.
+ * sysdeps/s390/s390-32/stackguard-macros.h: Likewise.
+ * sysdeps/s390/s390-64/stackguard-macros.h: Likewise.
+ * sysdeps/sparc/sparc32/stackguard-macros.h: Likewise.
+ * sysdeps/sparc/sparc64/stackguard-macros.h: Likewise.
+ * sysdeps/x86_64/stackguard-macros.h: Likewise.
+ * nptl/tst-stackguard1.c: Include <stackguard-macros.h> not
+ <elf/stackguard-macros.h>.
+
[BZ #14109]
* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Use
__aligned__ in attribute.
diff --git a/elf/stackguard-macros.h b/elf/stackguard-macros.h
deleted file mode 100644
index 0cad31550c..0000000000
--- a/elf/stackguard-macros.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <stdint.h>
-
-#ifdef __i386__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
-#elif defined __x86_64__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; \
- asm ("mov %%fs:%c1, %0" : "=r" (x) \
- : "i" (offsetof (tcbhead_t, stack_guard))); x; })
-#elif defined __powerpc64__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })
-#elif defined __powerpc__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("lwz %0,-28680(2)" : "=r" (x)); x; })
-#elif defined __sparc__ && defined __arch64__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; })
-#elif defined __sparc__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("ld [%%g7+0x14], %0" : "=r" (x)); x; })
-#elif defined __s390x__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; })
-#elif defined __s390__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; })
-#elif !defined STACK_CHK_GUARD
-extern uintptr_t __stack_chk_guard;
-# define STACK_CHK_GUARD __stack_chk_guard
-#endif
diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c
index 4af16c9c15..c45604663a 100644
--- a/nptl/tst-stackguard1.c
+++ b/nptl/tst-stackguard1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
@@ -23,7 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
-#include <elf/stackguard-macros.h>
+#include <stackguard-macros.h>
#include <unistd.h>
static const char *command;
diff --git a/sysdeps/generic/stackguard-macros.h b/sysdeps/generic/stackguard-macros.h
new file mode 100644
index 0000000000..ababf65d37
--- /dev/null
+++ b/sysdeps/generic/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+extern uintptr_t __stack_chk_guard;
+#define STACK_CHK_GUARD __stack_chk_guard
diff --git a/sysdeps/i386/stackguard-macros.h b/sysdeps/i386/stackguard-macros.h
new file mode 100644
index 0000000000..8c31e197e1
--- /dev/null
+++ b/sysdeps/i386/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
diff --git a/sysdeps/powerpc/powerpc32/stackguard-macros.h b/sysdeps/powerpc/powerpc32/stackguard-macros.h
new file mode 100644
index 0000000000..839f6a4b9b
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("lwz %0,-28680(2)" : "=r" (x)); x; })
diff --git a/sysdeps/powerpc/powerpc64/stackguard-macros.h b/sysdeps/powerpc/powerpc64/stackguard-macros.h
new file mode 100644
index 0000000000..9da879c611
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })
diff --git a/sysdeps/s390/s390-32/stackguard-macros.h b/sysdeps/s390/s390-32/stackguard-macros.h
new file mode 100644
index 0000000000..b74c5799b3
--- /dev/null
+++ b/sysdeps/s390/s390-32/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; })
diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h
new file mode 100644
index 0000000000..0cebb5f022
--- /dev/null
+++ b/sysdeps/s390/s390-64/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; })
diff --git a/sysdeps/sparc/sparc32/stackguard-macros.h b/sysdeps/sparc/sparc32/stackguard-macros.h
new file mode 100644
index 0000000000..c0b02b0bbd
--- /dev/null
+++ b/sysdeps/sparc/sparc32/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ld [%%g7+0x14], %0" : "=r" (x)); x; })
diff --git a/sysdeps/sparc/sparc64/stackguard-macros.h b/sysdeps/sparc/sparc64/stackguard-macros.h
new file mode 100644
index 0000000000..80f063558a
--- /dev/null
+++ b/sysdeps/sparc/sparc64/stackguard-macros.h
@@ -0,0 +1,4 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; })
diff --git a/sysdeps/x86_64/stackguard-macros.h b/sysdeps/x86_64/stackguard-macros.h
new file mode 100644
index 0000000000..d7fedb3737
--- /dev/null
+++ b/sysdeps/x86_64/stackguard-macros.h
@@ -0,0 +1,6 @@
+#include <stdint.h>
+
+#define STACK_CHK_GUARD \
+ ({ uintptr_t x; \
+ asm ("mov %%fs:%c1, %0" : "=r" (x) \
+ : "i" (offsetof (tcbhead_t, stack_guard))); x; })