Follow-up Comment #1, bug #58743 (project make):
Thanks, I will fix this. The reason this doesn't show up on systems I test on
is that this code is only run if the POSIX macro is not set.
The POSIX macro will be set if both HAVE_UNISTD_H is defined AND
_POSIX_VERSION is defined (unless either ultrix of VMS are also defined).
I can't imagine why tcc on Linux causes this to not work. I would assume
that, unless you're also using some strange libc other than GNU libc which
does not set _POSIX_VERSION, that it should be set regardless of the
compiler.
I recommend you investigate the output of config.log to find out why these
options are not set.
>From makeint.h:
#ifdef HAVE_UNISTD_H
# include <unistd.h>
/* Ultrix's unistd.h always defines _POSIX_VERSION, but you only get
POSIX.1 behavior with 'cc -YPOSIX', which predefines POSIX itself! */
# if defined (_POSIX_VERSION) && !defined (ultrix) && !defined (VMS)
# define POSIX 1
# endif
#endif
Then it gets undefined again but only on very old systems.
And in src/job.c:
#ifdef POSIX
...
#elif defined(HAVE_SIGSETMASK)
...
static void
unblock_sigs ()
{
sigsetmask (siggetmask (0) & ~fatal_signal_mask)
}
...
#endif
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?58743>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/