Subject: | Alien::libtickit with gcc 4.8.5 install issue |
Installation fails with compiler errors
src/evloop-default.c:52:32: error: unknown field 'sa_handler' specified in initializer
sigaction(SIGWINCH, &(struct sigaction){ .sa_handler = sigwinch }, NULL);
similarly in term.c
and
src/tickit.c:374:54: error: expected expression before '>' token
while(*prevp && !timercmp(&(*prevp)->timer.at, at, >))
Checking out the latest version of libtickit from https://github.com/leonerd/libtickit, successful compilation is achieved by setting
CFLAGS thus:
make CFLAGS='-D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE'
_POSIX_C_SOURCE=199309L as defining this is guarded by __GLIBC__ definition. ???
_BSD_SOURCE is required as glibc is 2.17 and advice regarding its use is:
Show quoted text
> Since glibc 2.20, this macro is deprecated. It now has the same effect as
> defining _DEFAULT_SOURCE, but generates a compile-time warning (unless
> _DEFAULT_SOURCE is also defined). Use _DEFAULT_SOURCE instead. To allow code
> that requires _BSD_SOURCE in glibc 2.19 and earlier and _DEFAULT_SOURCE in
> glibc 2.20 and later to compile without warnings, define both _BSD_SOURCE
> and _DEFAULT_SOURCE.
_DEFAULT_SOURCE alone is currently used https://github.com/leonerd/libtickit/blob/3c2aa68aa3e0964f392c51d82da6da237ed8ff36/include/tickit.h#L8-L11