pkgsrc-Bugs archive

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

Re: pkg/53527: syslogng does not compile

Filip Hajny writes:
> The following reply was made to PR pkg/53527; it has been noted by GNATS.
> From: Filip Hajny <>
> To:
> Cc: 
> Subject: Re: pkg/53527: syslogng does not compile
> Date: Tue, 4 Sep 2018 11:49:39 +0200
>  I have double checked the source and it is including signal.h in all =
>  files where sigaction is called from (and in libivykis too). I don't =
>  know where to take this further.
>  #0  0x00007c8d23c6e74a in sigaction () from /usr/lib/
>  #1  0x00007c8d23cfe39e in signal () from /usr/lib/
>  #2  0x00007c8d24405202 in iv_fd_init () from /usr/pkg/lib/
>  #3  0x00007c8d244061f5 in iv_init () from /usr/pkg/lib/
>  #4  0x00007c8d2762f83c in app_startup () at lib/apphook.c:149
>  #5  0x0000000000401eaf in main ()

I think this is the offending code:


static int
call_original_sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
  static int (*real_sa)(int, const struct sigaction *, struct sigaction *);

  if (real_sa == NULL)
      real_sa = dlsym(RTLD_NEXT, "sigaction");
  return real_sa(signum, act, oldact);

I assume this code tries to make so that even if someone else tries to
install sigchld handler it will NOT install that, but instead store
that handler and call it from the real sigchld handler or something
like that.

I think it tries to do that so that if some module or so install
sigchld handler it does not destroy his own sigchld handler.

If I say #if 0 for the whole signal-handler.c then the code compiles
and syslogng starts and seems to work, but I most likely modules or
something like that might be broken, so that is might not be final
solution to the issue.

Home | Main Index | Thread Index | Old Index