diff --git a/package/vim/0001-Fix-config-of-old-systems-for-nanosecond-resolution-timestamps.patch b/package/vim/0001-Fix-config-of-old-systems-for-nanosecond-resolution-timestamps.patch new file mode 100644 index 0000000000..2e78a8d594 --- /dev/null +++ b/package/vim/0001-Fix-config-of-old-systems-for-nanosecond-resolution-timestamps.patch @@ -0,0 +1,56 @@ +From b5db1ebf06d2904522ebf246f9c6a8bbf8fca398 Mon Sep 17 00:00:00 2001 +From: Gary Johnson +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 +--- + 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 +