kumquat-buildroot/package/vim/0001-Fix-config-of-old-systems-for-nanosecond-resolution-timestamps.patch
Fabrice Fontaine 0b518033e2 package/vim: fix build with uclibc
Fix the following build failure with uclibc raised since bump to version
8.2.3565 in commit 5650439b92 and
0a7984af56:

In file included from vim.h:27,
                 from fileio.c:14:
fileio.c: In function 'time_differs':
auto/config.h:149:22: error: 'stat_T' {aka 'struct stat'} has no member named 'st_mtim'; did you mean 'st_mtime'?
  149 | #define ST_MTIM_NSEC st_mtim.tv_nsec
      |                      ^~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/2132f9aa1b0bc618c91f7bf44fbd1b71b9d6ba05

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-11-04 13:34:10 +01:00

57 lines
1.9 KiB
Diff

From b5db1ebf06d2904522ebf246f9c6a8bbf8fca398 Mon Sep 17 00:00:00 2001
From: Gary Johnson <garyjohn@spocom.com>
Date: Tue, 26 Oct 2021 13:50:19 -0700
Subject: [PATCH] Fix config of old systems for nanosecond-resolution
timestamps
On old systems (e.g. 32-bit systems running Ubuntu 10.4), defining
_XOPEN_SOURCE causes _BSD_SOURCE and _SVID_SOURCE not to be defined,
which causes nanosecond-resolution timestamps not to be included in
struct stat, which causes the build of fileio.c to fail.
_XOPEN_SOURCE is defined for some systems in vim.h.
A solution is to define _BSD_SOURCE and _SVID_SOURCE whenever
_XOPEN_SOURCE is defined.
On new systems, defining either _BSD_SOURCE or _SVID_SOURCE causes
/usr/include/features.h to issue a warning message about _BSD_SOURCE and
_SVID_SOURCE being deprecated and to use _DEFAULT_SOURCE instead.
A solution for that is to also define _DEFAULT_SOURCE when _BSD_SOURCE
and _SVID_SOURCE are defined.
[Retrieved from:
https://github.com/vim/vim/pull/9054/commits/b5db1ebf06d2904522ebf246f9c6a8bbf8fca398]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
src/vim.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/vim.h b/src/vim.h
index 31d4bdefe87..f62ad88c7a1 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -43,6 +43,21 @@
// 700 is needed for mkdtemp().
# ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 700
+
+// On old systems, defining _XOPEN_SOURCE causes _BSD_SOURCE and/or
+// _SVID_SOURCE not to be defined, so do that here. Those are needed to
+// include nanosecond-resolution timestamps in struct stat. On new systems,
+// _DEFAULT_SOURCE is needed to avoid warning messages about using deprecated
+// _BSD_SOURCE or _SVID_SOURCE.
+# ifndef _BSD_SOURCE
+# define _BSD_SOURCE 1
+# endif
+# ifndef _SVID_SOURCE
+# define _SVID_SOURCE 1
+# endif
+# ifndef _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE 1
+# endif
# endif
# endif