Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 929970 - sys-libs/pam: fails to build versioned symbols with lld-17, causes system warnings
Summary: sys-libs/pam: fails to build versioned symbols with lld-17, causes system war...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-13 22:32 UTC by Felix W.
Modified: 2024-05-05 20:52 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Fix autotools version script detection and provide correct version script for modules. (pam-1.5.3-lld-17-undefined-symbols.patch,23.34 KB, patch)
2024-04-13 22:52 UTC, Felix W.
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Felix W. 2024-04-13 22:32:16 UTC
Using lld-17, pam configures without symbol versioning. This causes warnings whenever pam is invoked:

> kermit ~ # rc-service sshd restart
>  * Stopping sshd ...
> start-stop-daemon: /usr/lib64/libpam.so.0: no version information available
> (required by start-stop-daemon) 

Reproducible: Always

Steps to Reproduce:
1.Use clang/lld-17
2.build sys-libs/pam
3.use anything that dynamically loads libpam



The root cause is that pams configure checks for versioned symbols with an assembly file that contains undefined symbols itself, causing lld-17 to fail:

> checking for ld --version-script... no

Furthermore, most pam modules do not implement all symbols required to satisfy "${S}/modules/modules.map".
Comment 1 Felix W. 2024-04-13 22:52:30 UTC
Created attachment 890742 [details, diff]
Fix autotools version script detection and provide correct version script for modules.

I've added a proposed fix short of defining "-Wl,-undefinied-version", because I actually want pam to fail building if symbols that should be defined are undefined.

I don't think upstream will accept it because it lacks architecture, but perhaps something can be worked out.

Patch tested with clang/ld.lld and gcc/ld.bfd on pam-1.5.3 and pam-1.5.3-r1.