GNU bug report logs -
#78701
Undeclared reference to access on Windows
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#78701: Undeclared reference to access on Windows
which was filed against the libtool package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 78701 <at> debbugs.gnu.org.
--
78701: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78701
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
On 05/06/2025 19:22, Kirill Makurin wrote:
> 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.
Thank you for the bug report and suggested patch! I have applied the
change to ltdl.h, and it is on the development branch [1].
[1]
https://cgit.git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=a26932a36ecb2c3013be0c1e7fdbf2eb9062e845
--
Ileana Dumitrescu
GPG Public Key: FA26 CA78 4BE1 8892 7F22 B99F 6570 EA01 146F 7354
[OpenPGP_0x6570EA01146F7354.asc (application/pgp-keys, attachment)]
[OpenPGP_signature.asc (application/pgp-signature, attachment)]
[Message part 6 (message/rfc822, inline)]
[Message part 7 (text/plain, inline)]
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
[Message part 8 (text/html, inline)]
This bug report was last modified 35 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.