bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #58743] siggetmask should be called with no arguments.


From: Paul D. Smith
Subject: [bug #58743] siggetmask should be called with no arguments.
Date: Fri, 10 Jul 2020 09:53:45 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36

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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]