GNU bug report logs - #78701
Undeclared reference to access on Windows

Previous Next

Package: libtool;

Reported by: Kirill Makurin <maiddaisuki <at> outlook.com>

Date: Thu, 5 Jun 2025 16:24:02 UTC

Severity: normal

Done: Ileana Dumitrescu <ileanadumitrescu95 <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ileana Dumitrescu <ileanadumitrescu95 <at> gmail.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#78701: closed (Undeclared reference to access on Windows)
Date: Fri, 06 Jun 2025 17:49:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 6 Jun 2025 20:47:51 +0300
with message-id <ea72d585-c0ac-4db5-b923-80553ea4eae8 <at> gmail.com>
and subject line Re: bug#78701: Undeclared reference to access on Windows
has caused the debbugs.gnu.org bug report #78701,
regarding Undeclared reference to access on Windows
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> 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)]
From: Kirill Makurin <maiddaisuki <at> outlook.com>
To: "bug-libtool <at> gnu.org" <bug-libtool <at> gnu.org>
Subject: Undeclared reference to access on Windows
Date: Thu, 5 Jun 2025 16:22:42 +0000
[Message part 3 (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 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Ileana Dumitrescu <ileanadumitrescu95 <at> gmail.com>
To: 78701-done <at> debbugs.gnu.org
Cc: Kirill Makurin <maiddaisuki <at> outlook.com>
Subject: Re: bug#78701: Undeclared reference to access on Windows
Date: Fri, 6 Jun 2025 20:47:51 +0300
[Message part 6 (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)]

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.