[PATCH 2/5] makedep: Check for external libraries instead of include paths when determining whether to allow external includes.

Zebediah Figura zfigura at codeweavers.com
Mon Nov 29 16:43:06 CST 2021


The include path may be empty, e.g. if the relevant headers are to be found
directly in the MinGW sysroot.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 tools/makedep.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/tools/makedep.c b/tools/makedep.c
index ac3e6d969e2..2301ecf191e 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1286,6 +1286,22 @@ static struct makefile *find_importlib_module( const char *name )
 }
 
 
+/*******************************************************************
+ *         has_external_import
+ */
+static int has_external_import( const struct makefile *make )
+{
+    unsigned int i;
+
+    for (i = 0; i < make->imports.count; i++)
+    {
+        if (!strncmp( make->imports.str[i], "-l", 2 ))
+            return 1;
+    }
+    return 0;
+}
+
+
 /*******************************************************************
  *         open_include_file
  */
@@ -1404,7 +1420,7 @@ static struct file *open_include_file( const struct makefile *make, struct incl_
     {
         if (!strcmp( pFile->name, "stdarg.h" )) return NULL;
         if (!strcmp( pFile->name, "x86intrin.h" )) return NULL;
-        if (make->include_paths.count) return NULL;
+        if (has_external_import( make )) return NULL;
         fprintf( stderr, "%s:%d: error: system header %s cannot be used with msvcrt\n",
                  pFile->included_by->file->name, pFile->included_line, pFile->name );
         exit(1);
-- 
2.34.0




More information about the wine-devel mailing list