Fix time_t check on 32bit platforms
This commit is contained in:
parent
dc5d9e7d2a
commit
aa041abbce
89
tracker-3.5.2-fix-time_t_check-32bit.patch
Normal file
89
tracker-3.5.2-fix-time_t_check-32bit.patch
Normal file
@ -0,0 +1,89 @@
|
||||
From 4fc04fea1755c3c4f8913877c2c1889779d3d4d1 Mon Sep 17 00:00:00 2001
|
||||
From: Brahmajit Das <brahmajit.xyz@gmail.com>
|
||||
Date: Sun, 14 May 2023 09:59:58 +0530
|
||||
Subject: [PATCH] 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 <brahmajit.xyz@gmail.com>
|
||||
---
|
||||
meson.build | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
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 <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
--
|
||||
GitLab
|
||||
|
||||
From fd67d19a9436a353eb0611ed6ca78f777865bdca Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Tue, 16 May 2023 23:46:52 +0200
|
||||
Subject: [PATCH] core: Define _TIME_BITS=64 to ensure 64-bit time in 32-bit
|
||||
platforms
|
||||
|
||||
This is not always defined for us, and is necessary to get 64-bit wide time_t
|
||||
types on 32-bit platforms. Luckily, we can define this concisely in the file
|
||||
needing it, and don't have this type in API barriers.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/tracker/-/issues/404
|
||||
---
|
||||
meson.build | 1 +
|
||||
src/libtracker-sparql/core/tracker-db-interface-sqlite.c | 3 +++
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 00af07e6e..85ca88052 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 _TIME_BITS 64
|
||||
#define _GNU_SOURCE
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
diff --git a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c
|
||||
index 51d54368f..72669774e 100644
|
||||
--- a/src/libtracker-sparql/core/tracker-db-interface-sqlite.c
|
||||
+++ b/src/libtracker-sparql/core/tracker-db-interface-sqlite.c
|
||||
@@ -19,6 +19,9 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
+/* 64-bit time on 32-bit platforms */
|
||||
+#define _TIME_BITS 64
|
||||
+
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
#include <sqlite3.h>
|
||||
--
|
||||
GitLab
|
||||
|
@ -10,6 +10,9 @@ Summary: Desktop-neutral metadata database and search tool
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://gnome.pages.gitlab.gnome.org/tracker/
|
||||
Source0: https://download.gnome.org/sources/tracker/3.5/tracker-%{tarball_version}.tar.xz
|
||||
# https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/596
|
||||
# https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/598
|
||||
Patch0: tracker-3.5.2-fix-time_t_check-32bit.patch
|
||||
|
||||
BuildRequires: asciidoc
|
||||
BuildRequires: gettext
|
||||
|
Loading…
Reference in New Issue
Block a user