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
|
License: GPL-2.0-or-later
|
||||||
URL: https://gnome.pages.gitlab.gnome.org/tracker/
|
URL: https://gnome.pages.gitlab.gnome.org/tracker/
|
||||||
Source0: https://download.gnome.org/sources/tracker/3.5/tracker-%{tarball_version}.tar.xz
|
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: asciidoc
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
|
Loading…
Reference in New Issue
Block a user