branch: master
commit 371624cffe040eaf01109f27240f4e718ef1d76b
Author: Ileana Dumitrescu <[email protected]>
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;