[Bug 1056606] New: ld search paths from RPATH contain "haswell" rather than expected "x86_64"
http://bugzilla.opensuse.org/show_bug.cgi?id=1056606 Bug ID: 1056606 Summary: ld search paths from RPATH contain "haswell" rather than expected "x86_64" Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: x86-64 OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Other Assignee: bnc-team-screening@forge.provo.novell.com Reporter: mdiluzio@feralinteractive.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Created attachment 738991 --> http://bugzilla.opensuse.org/attachment.cgi?id=738991&action=edit tar ball of main.cpp and output After installing Tumbleweed and updating as of yesterday (30-08-2017) I'm seeing the ld search paths fail to pick up libraries that were picked up before. I'd expect to see search paths containing the current architecture (x86_64), to assist in finding architecture specific libraries for different CPU features. I'm finding the path populated with "haswell" instead, causing issues in our case with trying to run Feral Interactive games on steam. To reproduce: Compile the attached main.cpp with the following command: $ g++ main.cpp -Wl,--disable-new-dtags,-rpath,\$ORIGIN/lib/ And then check the library search paths with this command: $ LD_DEBUG=libs ldd ./a.out See attached output from local machine. Note this output: search path=/home/mdiluzio/lib/tls/haswell:/home/mdiluzio/lib/tls:/home/mdiluzio/lib/haswell:/home/mdiluzio/lib (RPATH from file /home/mdiluzio/a.out) Previously, and on other available distributions, we saw search paths containing the architecture. Without these paths programs that rely on this behaviour will fail to find the required libraries that are contained in an "x86_64" sub-directory of the specified RPATH. We think these paths should be coming from _gl_important_hwcaps in glibc's elf/dl-hwcaps.c, but haven't yet traced the root cause of change in behaviour. We're unsure if the behaviour of the ld search paths is not stable enough to be relied on in this way, or if this is in fact a configuration bug, so any help would be appreciated. uname -a: Linux localhost 4.12.8-1-default #1 SMP PREEMPT Thu Aug 17 05:30:12 UTC 2017 (4d7933a) x86_64 x86_64 x86_64 GNU/Linux Please note, a similar issue has been seen recently by one user on Arch as reported here: https://github.com/FeralInteractive/ferallinuxscripts/issues/3 That could be a hint that this is a wider reaching ld, glibc or kernel related issue, but since it manifests differently on Tumbleweed, and that's the reproduction case I have, I'm reporting it here. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1056606 Marc Di Luzio <mdiluzio@feralinteractive.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mdiluzio@feralinteractive.c | |om -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1056606 http://bugzilla.opensuse.org/show_bug.cgi?id=1056606#c1 Marc Di Luzio <mdiluzio@feralinteractive.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P3 - Medium Component|Other |Basesystem Severity|Normal |Major --- Comment #1 from Marc Di Luzio <mdiluzio@feralinteractive.com> --- This looks to be at least triggered by this change in glibc: https://sourceware.org/git/?p=glibc.git;a=commit;h=1432d38ea04ab5e96f21a3821... Based on this it appears there's some kind of ABI breakage as the kernel hardcodes AT_PLATFORM to x86_64. glibc should still use that AT_PLATFORM value as well as the other new values. The glibc guidance on bug reports says to report this to the distribution maintainers first so they can check if the issue is related to any distribution specific changes, so I'm going to bump up the importance of this bug and changing the component to BaseSystem as with other glibc related issues. Note: the attached tar contained a.out instead of main.cpp. The main.cpp was simply "int main() { return 0; }" -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com