From 4fc04fea1755c3c4f8913877c2c1889779d3d4d1 Mon Sep 17 00:00:00 2001 From: Brahmajit Das Date: Sun, 14 May 2023 09:59:58 +0530 Subject: build: Define _GNU_SOURCE for gmtime_r Found while building tracker 3.5.2 with clang 16, which enable Wimplicit-function-declaration by default. Without _GNU_SOURCE defined, tracker would fail in the configure phase with Checking if "strftime 4-digit year modifier" runs: DID NOT COMPILE error. And investigating the meson log we see Compiler stderr: /var/tmp/portage/app-misc/tracker-3.5.2/work/tracker-3.5.2-build/meson-private/tmplr2vm6b0/testfile.c:12:5: error: call to undeclared function 'gmtime_r'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] gmtime_r (×tamp, &tm); And a little further up Command line: clang /var/tmp/portage/app-misc/tracker-3.5.2/work/tracker-3.5.2-build/meson-private/tmplr2vm6b0/testfile.c -o /var/tmp/portage/app-misc/tracker-3.5.2/work/tracker-3.5.2-build/meson-private/tmplr2vm6b0/output.exe -O2 -pipe -march=native -DTRACKER_DEBUG -DG_DISABLE_CAST_CHECKS -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -std=c99 -Wl,-O1 -Wl,--as-needed -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed Seems like cc.run() doesn't pick up the general compiler args we set earlier. We have already set it for the main build, so adding it just for the configure test should be fine. Signed-off-by: Brahmajit Das --- meson.build | 1 + 1 file changed, 1 insertion(+) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 7b22cb1f9..00af07e6e 100644 --- a/meson.build +++ b/meson.build @@ -202,6 +202,7 @@ endif # Get an appropriate 4-digit year modifier for strftime ################################################################## result = cc.run(''' + #define _GNU_SOURCE #include #include #include -- cgit v1.2.1