]> mj.ucw.cz Git - pciutils.git/commitdiff
pciutils: Do not include compat/getopt.h on MinGW32 >= 3.0
authorPali Rohár <pali@kernel.org>
Sun, 26 Dec 2021 17:19:41 +0000 (18:19 +0100)
committerMartin Mares <mj@ucw.cz>
Tue, 28 Dec 2021 15:26:26 +0000 (16:26 +0100)
MinGW32 since version 3.0 declares getopt() function prototype in
<unistd.h> header file.

pciutils.h

index 3c5fac616479c95e73f5e89156539afcc2b1262b..17e02c9bb82db78eedab52c5540d5378b1db10a3 100644 (file)
@@ -9,7 +9,20 @@
 #include "lib/pci.h"
 #include "lib/sysdep.h"
 
-#ifdef PCI_OS_WINDOWS
+/*
+ * gcc predefines macro __MINGW32__ for all MinGW targets.
+ * Including some MinGW header (e.g. windef.h) defines additional
+ * macro __MINGW32_MAJOR_VERSION (available for all MinGW targets).
+ */
+#if defined(PCI_OS_WINDOWS) && defined(__MINGW32__)
+#include <windef.h>
+#endif
+
+/*
+ * On Windows only MinGW 3.0 and higher versions provides <getopt.h>
+ * header file. Older MinGW versions and MSVC do not have it.
+ */
+#if defined(PCI_OS_WINDOWS) && !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 3)
 #include "compat/getopt.h"
 #else
 #include <unistd.h>