0b518033e2
Fix the following build failure with uclibc raised since bump to version 8.2.3565 in commit5650439b92
and0a7984af56
: 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>
57 lines
1.9 KiB
Diff
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
|
|
|