From: Ileana Dumitrescu Date: Wed, 26 Mar 2025 15:19:39 +0000 (+0200) Subject: ltmain.in: Add 'S_ISDIR' definition for MSVC X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=64b48f0bbd126c209895b163b0a4571d96778d9a;p=thirdparty%2Flibtool.git 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. --- diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in index bc1457edf..af0144303 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;