|
From: | Kirill Makurin |
Subject: | bug#78701: Undeclared reference to access on Windows |
Date: | Thu, 5 Jun 2025 16:22:42 +0000 |
Building libltdl on Windows using clang-cl.exe fails with the following diagnostic:
```
H:/git/libtool/libltdl/ltdl.c(781,19): error: call to undeclared function 'access'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
781 | int notfound = access (filename, R_OK);
| ^
H:/git/libtool/libltdl/ltdl.c(781,19): note: did you mean 'accept'?
C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um\winsock.h(739,19): note: 'accept' declared here
739 | SOCKET PASCAL FAR accept (
| ^
```
On native Windows (MSVC/mingw), access is declared in io.h, which is not included. (On mingw, it could be indirectly included from
other header files.)
A solution would be to add
```
#if defined (_WIN32) && !defined (__CYGWIN__)
#include <io.h>
#endif
```
on top of libltdl/ltdl.c.
- Kirill Makurin
|
[Prev in Thread] | Current Thread | [Next in Thread] |