diff options
author | joerg <joerg@pkgsrc.org> | 2012-10-24 15:36:47 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2012-10-24 15:36:47 +0000 |
commit | 5745857b98cf6ccdea883d510e79121447310e2b (patch) | |
tree | b0a2c6f5d9257f3634683df832205cb0643f7a4e /lang | |
parent | bbf5c920656abd4448083b16355e8e6c7c149894 (diff) | |
download | pkgsrc-5745857b98cf6ccdea883d510e79121447310e2b.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')
-rw-r--r-- | lang/openjdk7/distinfo | 4 | ||||
-rw-r--r-- | lang/openjdk7/patches/patch-bi | 33 |
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); + } + + |