From: Pádraig Brady
Date: Wed, 6 Mar 2019 16:58:13 +0000 (-0800) Subject: build: fix env build where SIGNUM_BOUND is not constant X-Git-Tag: v8.31~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bbbe49074c996e90e19903dddd858ff8a2bf648;p=thirdparty%2Fcoreutils.git build: fix env build where SIGNUM_BOUND is not constant * src/env.c (initialize_signals): A new function to initialize the signals array on the heap, to avoid a build failure on opensolaris, where SIGNUM_BOUND is not a constant. --- diff --git a/src/env.c b/src/env.c index 5adc7d9eb2..c8161356c6 100644 --- a/src/env.c +++ b/src/env.c @@ -59,7 +59,7 @@ enum SIGNAL_MODE { IGNORE, /* Set to ignore (SIG_IGN). */ IGNORE_NOERR /* ditto, but ignore sigaction(2) errors. */ }; -static enum SIGNAL_MODE signals[SIGNUM_BOUND + 1]; +static enum SIGNAL_MODE *signals; /* Set of signals to block. */ static sigset_t block_signals; @@ -783,6 +783,17 @@ list_signal_handling (void) } } +static void +initialize_signals (void) +{ + signals = xmalloc ((sizeof *signals) * (SIGNUM_BOUND + 1)); + + for (int i = 0 ; i <= SIGNUM_BOUND; i++) + signals[i] = UNCHANGED; + + return; +} + int main (int argc, char **argv) { @@ -800,6 +811,8 @@ main (int argc, char **argv) initialize_exit_failure (EXIT_CANCELED); atexit (close_stdout); + initialize_signals (); + while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1) { switch (optc)