From 6449dfbb1fffd61d8e929576adf84e4c785fc526 Mon Sep 17 00:00:00 2001 From: Yuri Nesterenko Date: Fri, 16 Sep 2022 08:04:43 +0000 Subject: [PATCH] 8272472: StackGuardPages test doesn't build with glibc 2.34 Backport-of: f77a1a156f3da9068d012d9227c7ee0fee58f571 --- .../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 572f4f1325a..b50156633c1 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 @@ -67,8 +67,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,