diff options
author | Piotr Kubaj <pkubaj@FreeBSD.org> | 2024-04-11 22:40:49 +0000 |
---|---|---|
committer | Piotr Kubaj <pkubaj@FreeBSD.org> | 2024-04-11 22:40:49 +0000 |
commit | 36ac8327c05281fb00a570b9b5141ce7e85792ff (patch) | |
tree | 8904e4cd95d9dd98d24e1891aece49b3ef2288bd /java/openjdk22 | |
parent | 21b6b8fd22ff802d2bdc97dd81aae632ab22ee55 (diff) |
Diffstat (limited to 'java/openjdk22')
-rw-r--r-- | java/openjdk22/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/java/openjdk22/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp b/java/openjdk22/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp new file mode 100644 index 000000000000..dda6fd26cce0 --- /dev/null +++ b/java/openjdk22/files/patch-src_hotspot_os__cpu_bsd__ppc_os__bsd__ppc.cpp @@ -0,0 +1,44 @@ +--- src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp.orig 2024-04-11 22:23:08 UTC ++++ src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp +@@ -61,6 +61,7 @@ + # include <sys/types.h> + # include <sys/mman.h> + # include <pthread.h> ++# include <pthread_np.h> + # include <signal.h> + # include <errno.h> + # include <dlfcn.h> +@@ -432,6 +433,33 @@ size_t os::Posix::default_stack_size(os::ThreadType th + // Default stack size (compiler thread needs larger stack). + size_t s = (thr_type == os::compiler_thread ? 4 * M : 1024 * K); + return s; ++} ++ ++void os::current_stack_base_and_size(address* base, size_t* size) { ++ address bottom; ++ pthread_attr_t attr; ++ ++ int rslt = pthread_attr_init(&attr); ++ ++ // JVM needs to know exact stack location, abort if it fails ++ if (rslt != 0) ++ fatal("pthread_attr_init failed with error = %d", rslt); ++ ++ rslt = pthread_attr_get_np(pthread_self(), &attr); ++ ++ if (rslt != 0) ++ fatal("pthread_attr_get_np failed with error = %d", rslt); ++ ++ if (pthread_attr_getstackaddr(&attr, (void **)&bottom) != 0 || ++ pthread_attr_getstacksize(&attr, size) != 0) { ++ fatal("Can not locate current stack attributes!"); ++ } ++ ++ *base = bottom + *size; ++ ++ pthread_attr_destroy(&attr); ++ assert(os::current_stack_pointer() >= bottom && ++ os::current_stack_pointer() < *base, "just checking"); + } + + ///////////////////////////////////////////////////////////////////////////// |