--- vala-0.46.4/vapi/glib-2.0.vapi.orig	2019-12-05 21:22:56.738635900 +0100
+++ vala-0.46.4/vapi/glib-2.0.vapi	2019-12-05 21:23:59.901794000 +0100
@@ -2950,19 +2950,19 @@
 		[CCode (cname = "tm_isdst")]
 		public int isdst;
 
-		[CCode (cname = "gmtime_r", feature_test_macro = "_XOPEN_SOURCE")]
-		static void gmtime_r (ref time_t time, out Time result);
-		[CCode (cname = "localtime_r", feature_test_macro = "_XOPEN_SOURCE")]
-		static void localtime_r (ref time_t time, out Time result);
+		[CCode (cname = "gmtime_s", feature_test_macro = "_XOPEN_SOURCE")]
+		static void gmtime_s (out Time result, ref time_t time);
+		[CCode (cname = "localtime_s", feature_test_macro = "_XOPEN_SOURCE")]
+		static void localtime_s (out Time result, ref time_t time);
 
 		public static Time gm (time_t time) {
 			Time result;
-			gmtime_r (ref time, out result);
+			gmtime_s (out result, ref time);
 			return result;
 		}
 		public static Time local (time_t time) {
 			Time result;
-			localtime_r (ref time, out result);
+			localtime_s (out result, ref time);
 			return result;
 		}
 
