diff --git a/contrib/src/libgit2/c-standard.diff b/contrib/src/libgit2/c-standard.diff
new file mode 100644
index 0000000000000000000000000000000000000000..8775f77243f0bb00acf777442c4d9f12056b1cbb
--- /dev/null
+++ b/contrib/src/libgit2/c-standard.diff
@@ -0,0 +1,26 @@
+diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt
+index c2a97e1..8c5b2ea 100644
+--- a/src/libgit2/CMakeLists.txt
++++ b/src/libgit2/CMakeLists.txt
+@@ -2,7 +2,7 @@
+ # git library functionality.
+ 
+ add_library(libgit2 OBJECT)
+-set_target_properties(libgit2 PROPERTIES C_STANDARD 90)
++set_target_properties(libgit2 PROPERTIES C_STANDARD 99)
+ set_target_properties(libgit2 PROPERTIES C_EXTENSIONS OFF)
+ 
+ include(PkgBuildConfig)
+diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
+index ee35eb9..158fac2 100644
+--- a/src/util/CMakeLists.txt
++++ b/src/util/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # util: a shared library for common utility functions for libgit2 projects
+ 
+ add_library(util OBJECT)
+-set_target_properties(util PROPERTIES C_STANDARD 90)
++set_target_properties(util PROPERTIES C_STANDARD 99)
+ set_target_properties(util PROPERTIES C_EXTENSIONS OFF)
+ 
+ configure_file(git2_features.h.in git2_features.h)
diff --git a/contrib/src/libgit2/rules.mak b/contrib/src/libgit2/rules.mak
index fc2323eeceab7d65561cd2d72db30df00e71399b..2d8ec4ea8559369f54b86827509cb86afecfa59a 100644
--- a/contrib/src/libgit2/rules.mak
+++ b/contrib/src/libgit2/rules.mak
@@ -18,12 +18,24 @@ libgit2: libgit2-v$(LIBGIT2_VERSION).tar.gz .sum-libgit2
 	$(UNPACK)
 	mv libgit2-$(LIBGIT2_VERSION) libgit2-v$(LIBGIT2_VERSION)
 	$(APPLY) $(SRC)/libgit2/0001-fix-getentropy.patch
+	$(APPLY) $(SRC)/libgit2/c-standard.diff
 	$(UPDATE_AUTOCONFIG)
 	$(MOVE)
 
+LIBGIT2_CONF = -DCMAKE_BUILD_TYPE=Release \
+		-DBUILD_SHARED_LIBS=OFF \
+		-DBUILD_TESTS=OFF \
+		-DUSE_HTTPS=OFF \
+		-DCURL=OFF \
+		-DUSE_HTTP_PARSER=system \
+		-DBUILD_CLAR=OFF \
+		-DUSE_SSH=OFF \
+		-DREGEX_BACKEND=regcomp \
+		-DCMAKE_C_FLAGS="-fPIC"
+
 # TODO windows pcre?
 .libgit2: libgit2
 	cd $< && mkdir -p build && cd build \
-    && $(CMAKE) -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-std=gnu89 -fPIC" -DBUILD_TESTS=OFF -DUSE_HTTPS=OFF -DCURL=OFF -DUSE_HTTP_PARSER=system -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DREGEX_BACKEND=regcomp .. \
+    && $(CMAKE) $(LIBGIT2_CONF) .. \
     && $(MAKE) install
 	touch $@