summaryrefslogtreecommitdiff
path: root/libpkgconf/libpkgconf
diff options
context:
space:
mode:
Diffstat (limited to 'libpkgconf/libpkgconf')
-rw-r--r--libpkgconf/libpkgconf/libpkgconf.h12
-rw-r--r--[l---------]libpkgconf/libpkgconf/stdinc.h80
l---------libpkgconf/libpkgconf/stdinc.h.orig1
3 files changed, 90 insertions, 3 deletions
diff --git a/libpkgconf/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf/libpkgconf.h
index 6f4c8b5..a7d9f9d 100644
--- a/libpkgconf/libpkgconf/libpkgconf.h
+++ b/libpkgconf/libpkgconf/libpkgconf.h
@@ -257,9 +257,17 @@ PKGCONF_API pkgconf_cross_personality_t *pkgconf_cross_personality_find(const ch
#define PKGCONF_PKG_ERRF_PACKAGE_CONFLICT 0x4
#define PKGCONF_PKG_ERRF_DEPGRAPH_BREAK 0x8
+/* Note that MinGW's printf() format semantics have changed starting GCC 10
+ * (see stdinc.h for details).
+ */
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-#define PRINTFLIKE(fmtarg, firstvararg) \
- __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+# if defined (_WIN32) && defined(__GNUC__) && __GNUC__ >= 10
+# define PRINTFLIKE(fmtarg, firstvararg) \
+ __attribute__((__format__ (gnu_printf, fmtarg, firstvararg)))
+# else
+# define PRINTFLIKE(fmtarg, firstvararg) \
+ __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
+#endif
#define DEPRECATED \
__attribute__((deprecated))
#else
diff --git a/libpkgconf/libpkgconf/stdinc.h b/libpkgconf/libpkgconf/stdinc.h
index a0d601c..361f27e 120000..100644
--- a/libpkgconf/libpkgconf/stdinc.h
+++ b/libpkgconf/libpkgconf/stdinc.h
@@ -1 +1,79 @@
-../../upstream/libpkgconf/stdinc.h \ No newline at end of file
+/*
+ * stdinc.h
+ * pull in standard headers (including portability hacks)
+ *
+ * Copyright (c) 2012 pkgconf authors (see AUTHORS).
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * This software is provided 'as is' and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising
+ * from the use of this software.
+ */
+
+#ifndef LIBPKGCONF_STDINC_H
+#define LIBPKGCONF_STDINC_H
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdarg.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdint.h>
+
+#ifdef _WIN32
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# include <malloc.h>
+# define PATH_DEV_NULL "nul"
+
+/* Note that MinGW's printf() format semantics have changed starting GCC 10.
+ * In particular, GCC 10 complains about MSVC's 'I64' length modifier but now
+ * accepts the standard (C99) 'z' modifier.
+ */
+# if defined(__GNUC__) && __GNUC__ >= 10
+# define SIZE_FMT_SPECIFIER "%zu"
+# else
+# ifdef _WIN64
+# define SIZE_FMT_SPECIFIER "%I64u"
+# else
+# define SIZE_FMT_SPECIFIER "%u"
+# endif
+# endif
+
+# ifndef ssize_t
+# ifndef __MINGW32__
+# include <BaseTsd.h>
+# else
+# include <basetsd.h>
+# endif
+# define ssize_t SSIZE_T
+# endif
+# ifndef __MINGW32__
+# include "win-dirent.h"
+# else
+# include <dirent.h>
+# endif
+# define PKGCONF_ITEM_SIZE (_MAX_PATH + 1024)
+#else
+# define PATH_DEV_NULL "/dev/null"
+# define SIZE_FMT_SPECIFIER "%zu"
+# ifdef __HAIKU__
+# include <FindDirectory.h>
+# endif
+# include <dirent.h>
+# include <unistd.h>
+# include <limits.h>
+# ifdef PATH_MAX
+# define PKGCONF_ITEM_SIZE (PATH_MAX + 1024)
+# else
+# define PKGCONF_ITEM_SIZE (4096 + 1024)
+# endif
+#endif
+
+#endif
diff --git a/libpkgconf/libpkgconf/stdinc.h.orig b/libpkgconf/libpkgconf/stdinc.h.orig
new file mode 120000
index 0000000..a0d601c
--- /dev/null
+++ b/libpkgconf/libpkgconf/stdinc.h.orig
@@ -0,0 +1 @@
+../../upstream/libpkgconf/stdinc.h \ No newline at end of file