Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 929970

Summary: sys-libs/pam: fails to build versioned symbols with lld-17, causes system warnings
Product: Gentoo Linux Reporter: Felix W. <felix.wischke>
Component: Current packagesAssignee: Gentoo's Team for Core System packages <base-system>
Status: UNCONFIRMED ---    
Severity: normal CC: felix.wischke, kocelfc, sam, wikky
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Fix autotools version script detection and provide correct version script for modules.

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.