From: Gary Johnson Date: Thu, 28 Oct 2021 19:49:06 +0000 (+0100) Subject: patch 8.2.3566: build failure on old systems when using nano timestamp X-Git-Tag: v8.2.3566 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=44db603f691b58a8531e8ff528e0a7ce644257b2;p=vim patch 8.2.3566: build failure on old systems when using nano timestamp Problem: Build failure on old systems when using nano timestamp. Solution: Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary Johnson, closes #9054) --- diff --git a/src/version.c b/src/version.c index 857d72ef6..570b7d067 100644 --- a/src/version.c +++ b/src/version.c @@ -757,6 +757,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3566, /**/ 3565, /**/ diff --git a/src/vim.h b/src/vim.h index 31d4bdefe..43fb8e052 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, _SVID_SOURCE +// and/or // _DEFAULT_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