summaryrefslogtreecommitdiff
path: root/lang/openjdk7
diff options
context:
space:
mode:
authorjoerg <joerg>2012-10-24 15:36:47 +0000
committerjoerg <joerg>2012-10-24 15:36:47 +0000
commitcad93ed1b9cb7b7b3913b237b33c8570a429ec82 (patch)
treeb0a2c6f5d9257f3634683df832205cb0643f7a4e /lang/openjdk7
parentbe5670ded16c5eb824a6fa0e70e158a51d4a9f29 (diff)
downloadpkgsrc-cad93ed1b9cb7b7b3913b237b33c8570a429ec82.tar.gz
Fix the clang build by using the proper compiler builtins instead of
touching the stack and frame pointer directly. Especially the latter is problematic, since the compiler is not really required to use it.
Diffstat (limited to 'lang/openjdk7')
-rw-r--r--lang/openjdk7/distinfo4
-rw-r--r--lang/openjdk7/patches/patch-bi33
2 files changed, 34 insertions, 3 deletions
diff --git a/lang/openjdk7/distinfo b/lang/openjdk7/distinfo
index e1dd879595f..1ceab6d3ce1 100644
--- a/lang/openjdk7/distinfo
+++ b/lang/openjdk7/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.16 2012/05/22 05:57:50 joerg Exp $
+$NetBSD: distinfo,v 1.17 2012/10/24 15:36:47 joerg Exp $
SHA1 (openjdk7/61e08e67b176.tar.bz2) = 3db5488f3c0ea1b9c83a74632d300d8717c9b478
RMD160 (openjdk7/61e08e67b176.tar.bz2) = c0dd67a6ae982f09b3675c164b5decab4f7e140f
@@ -84,7 +84,7 @@ SHA1 (patch-be) = e89f8420a9cf97c416ef6d1343d837c16623e02f
SHA1 (patch-bf) = a793cacf3fd92f49f24228ea8034d13007e47e0c
SHA1 (patch-bg) = 393c1bac2e83078bc02810eefd79ab8f0dd25170
SHA1 (patch-bh) = 52b01c8b418efff5f3cc628b305a6d25ef4d13b3
-SHA1 (patch-bi) = c733f906c23a37aeb5ca93f136205563cc5fab64
+SHA1 (patch-bi) = 5ab48c6618f562c7bb6126dbb8f072cb5719dfe1
SHA1 (patch-bj) = 4198e1aa8e3c65434fbb947a00eed49e73106291
SHA1 (patch-bk) = 66bccfdf42fcc6f6995f3f18fc2515d55cab46c6
SHA1 (patch-bl) = a3b3bd6007c83664538baf401447fd0df9f4143b
diff --git a/lang/openjdk7/patches/patch-bi b/lang/openjdk7/patches/patch-bi
index 1d7b94af6bd..a13cbc24a59 100644
--- a/lang/openjdk7/patches/patch-bi
+++ b/lang/openjdk7/patches/patch-bi
@@ -1,4 +1,4 @@
-$NetBSD: patch-bi,v 1.1 2009/10/18 10:21:01 tnn Exp $
+$NetBSD: patch-bi,v 1.2 2012/10/24 15:36:47 joerg Exp $
--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig 2009-10-17 16:49:37.000000000 +0200
+++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
@@ -11,3 +11,34 @@ $NetBSD: patch-bi,v 1.1 2009/10/18 10:21:01 tnn Exp $
# define context_trapno uc_mcontext.mc_trapno
# ifdef AMD64
# define context_pc uc_mcontext.mc_rip
+@@ -275,14 +275,7 @@
+ #endif
+
+ address os::current_stack_pointer() {
+-#ifdef SPARC_WORKS
+- register void *esp;
+- __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
+- return (address) ((char*)esp + sizeof(long)*2);
+-#else
+- register void *esp __asm__ (SPELL_REG_SP);
+- return (address) esp;
+-#endif
++ return (address)__builtin_frame_address(0);
+ }
+
+ char* os::non_memory_address_word() {
+@@ -358,13 +351,7 @@ frame os::get_sender_for_C_frame(frame*
+ }
+
+ intptr_t* _get_previous_fp() {
+-#ifdef SPARC_WORKS
+- register intptr_t **ebp;
+- __asm__("mov %%"SPELL_REG_FP", %0":"=r"(ebp));
+-#else
+- register intptr_t **ebp __asm__ (SPELL_REG_FP);
+-#endif
+- return (intptr_t*) *ebp; // we want what it points to.
++ return (intptr_t *)__builtin_frame_address(1);
+ }
+
+