From df2857fff3c492692ca09f31699972970042bc07 Mon Sep 17 00:00:00 2001 From: Michael Karcher Date: Wed, 12 Jun 2024 22:42:45 +0200 Subject: [PATCH] Define _POSIX_C_SOURCE for crfsuite source files gcc-14 has "-Werror=implicit-function-declaration" enabled by default. crfsuite uses posix_memalign which only gets defined when _POSIX_C_SOURCE is defined, so make sure the flag is set when compiling crfsuite. On the other hand, openSUSE Tumbleweed has _POSIX_C_SOURCE defined in pyconfig.h, so you must not add "-D_POSIX_C_SOURCE" when compiling the python binding source code. So add it only for the subdir crfsuite. --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 8036363..f0dc370 100755 --- a/setup.py +++ b/setup.py @@ -30,6 +30,7 @@ def build_extensions(self): _compile = c._compile def c_compile(obj, src, ext, cc_args, extra_postargs, pp_opts): + cc_args = cc_args + ['-D_POSIX_C_SOURCE=200112L'] if src.startswith('crfsuite/') else cc_args cc_args = cc_args + ['-std=c99'] if src.endswith('.c') else cc_args return _compile(obj, src, ext, cc_args, extra_postargs, pp_opts)