branch: development
commit 64b48f0bbd126c209895b163b0a4571d96778d9a
Author: Ileana Dumitrescu <ileanadumitresc...@gmail.com>
AuthorDate: Wed Mar 26 17:19:39 2025 +0200

    ltmain.in: Add 'S_ISDIR' definition for MSVC
    
    Several test failures occur from fix for sr #111191 with MSVC, which is
    fixed by defining S_ISDIR with a different variable name, MSVC_ISDIR.
    
      error LNK2019: unresolved external symbol S_ISDIR referenced in func 
check_executable
    
    * build-aux/ltmain.in: Define and use macro MSVC_ISDIR.
---
 build-aux/ltmain.in | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index bc1457ed..af014430 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -3859,6 +3859,7 @@ int setenv (const char *, const char *, int);
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
+# define MSVC_ISDIR(m)(((m) & S_IFMT) == S_IFDIR)
 #elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
@@ -4254,8 +4255,13 @@ check_executable (const char *path)
   if ((!path) || (!*path))
     return 0;
 
+#ifdef _MSC_VER
+  if ((stat (path, &st) >= 0) && !MSVC_ISDIR (st.st_mode)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+#else
   if ((stat (path, &st) >= 0) && !S_ISDIR (st.st_mode)
       && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+#endif
     return 1;
   else
     return 0;

Reply via email to