From f77a1a156f3da9068d012d9227c7ee0fee58f571 Mon Sep 17 00:00:00 2001 From: David Holmes Date: Sun, 22 Aug 2021 01:13:27 +0000 Subject: [PATCH] 8272472: StackGuardPages test doesn't build with glibc 2.34 Reviewed-by: shade, stuefe, jiefu --- .../jtreg/runtime/StackGuardPages/exeinvoke.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c b/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c index a46f1cef44c..50a37001fbf 100644 --- a/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c +++ b/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,8 +68,17 @@ static void handler(int sig, siginfo_t *si, void *unused) { longjmp(context, 1); } +static char* altstack = NULL; + void set_signal_handler() { - static char altstack[SIGSTKSZ]; + if (altstack == NULL) { + // Dynamically allocated in case SIGSTKSZ is not constant + altstack = malloc(SIGSTKSZ); + if (altstack == NULL) { + fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n"); + exit(7); + } + } stack_t ss = { .ss_size = SIGSTKSZ,