Re: ld compat linker warnings considered harmful

RVP <[email protected]>
Newsgroups gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
On Wed, 19 Aug 2026, Thomas Klausner wrote:

> I last asked about this in February
>
> https://mail-index.netbsd.org/current-users/2026/02/24/msg047412.html
> [...]
> and included a short example that shows it's a real problem, and Joerg
> confirmed it.
> [...]
> # gcc -o a a.c -lgssapi
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility login_getpwclass(); include <login_cap.h> for correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility pw_scan(); include <pwd.h> to generate correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility loginx(); include <util.h> to generate correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility parsedate(); include <util.h> for correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility pw_copyx(); include <util.h> to generate correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility pw_getpwconf(); include <pwd.h> to generate correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility login(); include <util.h> to generate correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility setusercontext(); include <login_cap.h> for correct reference
> ld: /usr/lib/libutil.so.7: warning: warning: reference to compatibility pw_copy(); include <util.h> to generate correct reference
>
> No function from gssapi (or roken) is called, so nothing can call
> libutil and need the compat header.
>

I don't get this error at all. The only function that libroken's using from
libutil is pidfile(3), so why are those warning being triggered. The ld(1)
docs clearly state[1]:

```
.gnu.warning.SYM

     The contents of any section whoes name starts with the prefix
     Β‘.gnu.warning.Β’ and then finishes with the name of a symbol is
     treated in a similar fashion to the Β‘.gnu.warningΒ’ section,
     but only if the named symbol is referenced. So for example the
     contents of a section called Β‘.gnu.warning.fooΒ’ will be displayed
     as warning message if, and only if, the symbol Β‘fooΒ’ is referenced
     by one or more of the input files. This includes object files
     pulled in from static libraries, shared objects needed to
     complete the link and so on.
```

[1]: https://sourceware.org/binutils/docs/ld.html#Special-Sections

and, that's how this behaves on Linux (binutils-2.44 on Debian 13.6, and
binutils-2.42 on Ubuntu 24.04).

Looks like a NetBSD-specific issue. I think you can file a (NetBSD) PR for this
one, Thomas.

-RVP

PS. test code below for those wanting to fiddle with this. Also presents a
workaround using a linker script, but which, I think, would be too intrusive
for NetBSD right now (not that it's a bad idea in general--see PR lib/57615).

```
base64 ld-gnu-warning.tar.gz
H4sIAAAAAAAAA+1YW2/aMBTOK/4VR1CpZCJpriAxdS97WaWt42HTNG2TFRIDVoODktASTfvvs3EI
gXZlDwFU1Z9Egp3jYyfH37k4jowpWxoPQcoom15px4DFMbAscbcH/s59A832Hc/2XM8aeJplO7Zl
a+AfZTV7WGZ5kAJo6f3iWblDz18o4l37F+as+TmEgfvP2d/tb+zv9n1H2J+3NLCaX8pjvHL7U5ZD
Udjd+4RG+lskm86mee7VKRwbe/wX98ZdwCH+O36N/47P+e86zkDx/xToRGRCGQEcU3aHy23QzYr5
OIl7MM+mOvxEwME/U05DCBOW5RDO+DeL6XicRZjMab4zGnc6cvyPX+VYAYyDPE/peJkTjLtdjJcZ
iTDuYZyRMKcJ471tk+9Fs1RjtqHUo+s6XIu1KH/UOPb4/ym44/shJo3OcYj/fd/by/9cnz9W/D8B
5gFlQxBXM4SVOROsXplZYtqoFYZgLCgBI1kLbKSMjxcX3cVDpIMRr8D4FveMdBHks+uyG6FKx5Cr
lGoLqbqoqc64EyERGJPRzXsxRzVqPag+S/HULK2YcR2T2rDyH2p14KB+IUTCWQKXN7ejr1+624d8
Ov0S3lXaULXsIX+LcP0mMkz+8zWkuJCur7KoVlms9ZqjD59vvw8hjEnA0Po6RK10zlXBGzPhv0xe
+CDx6Y/i/fb4L03c8ByH+M/T/Sr++96a//bAUfw/BTqUhfEyItDmLG2jqyvY9hSiR5QESGwLWROg
36jFhUSdQHlQFrUCrxNaKcmXKYOVaPxRYfrl4FH93zT5tf/I/61a/u8NZP2v+H8SPMX26jxAkL1k
tiV4jbbSMgK20W7dwN1Bj2sSTgFoBsk4S2KSk7Y8WUDVyUJNsa0cxjmxx//VWc7/bL/Gf1fyX+X/
J4EI5Ct13Pdq8Yj/Z4j/tuVs+e/K+G+7iv+nwBPxf+MPnk/1RZKgkn0FBQUFBQUFBQWFF4W/skvX
HAAoAAA=
```
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.