[Bug] Slackware64-14.2 gcc fails to link with libmvec_nonshared.a
Hello,
The "/usr/lib64/libm.so" is a link to "/lib64/libm.so.6", which causes link failure. This file should probably be a script instead: Code:
/* GNU ld script |
Good Catch guanx !
In the slackware64/l/glibc-2.23-x86_64-1.txz Package, the original content of usr/lib64/libm.so is: Code:
Also broken in my multilib glibc-2.23_multilib-x86_64-1alien I wonder why they would name an ld script with a .so extent ? And I wonder if there are other .so files like this in the original build ? -- kjh |
Answer my own Q ...
These are the .so files in the original gcc-2.23 Package that are not Shared Object Libs: Code:
# file $(find . -type f -iname "*.so") |grep -v 'ELF 64-bit LSB shared object' Code:
# file $(file $(find . -type f -iname "*.so") |grep -v 'ELF 64-bit LSB shared object' |gawk -F ':' '{ gsub( /^./, "", $1 ) ; print $1 }') Code:
# file $(file $(find . -type f -iname "*.so") |grep -v 'ELF 64-bit LSB shared object' |gawk -F ':' '{ gsub( /^./, "", $1 ) ; print $1 }') |gawk -F ':' '{ printf "#### testing " $1 ": \t" ; RetCode = system( "diff -b " "." $1 " " $1 ) ; if ( RetCode == 0 ){ print "OK" }}' |
it is not in the install script doinst.sh and did not come from the gcc- package ...
found it in glibc- package in doinst.sh |
Sorry Wiser Slacker,
That's what I meant in Post #2 -- the install/doinst.sh script from the glibc Package is overwriting the linker script file as a symlink. See lines 148 and 149. EDIT: p.s. the fix looks about the same as for libpthread.so at lines 138 and 139 -- kjh # one way to print install/doinst.sh with numbered lines. # # cd /tmp/glibc-2.23 ; gawk '{ printf( "%3d: %s\n", FNR, $0 )}' install/doinst.sh Code:
1: #!/bin/sh |
i am old - i have to write it down ;)
and i have had the wrong package - you are right ... but who takes these things into distro - hope someone would read that ... |
Wiser Slacker --
Pat and his crew watch LQ and I imagine someone will see this thread and issue a patched Package. I've already fixed /usr/lib64/libm.so on my system by replacing the symlink with the linker script. I tested it with the test program guanx posted on Sourceware Bugzilla – Bug 20469 His test program failed to compile on my un-altered 14.2 exactly like he showed in the other site. After fixing /usr/lib64/libm.so it worked as expected. -- kjh |
I have slackware64-current
Why did not I never had problems when linking many times with "-lm", but it fails with the test program in https://sourceware.org/bugzilla/show_bug.cgi?id=20469 ? |
So whats the fix here I keep reading through but I'm not sure what the immediate fix is?
|
Quote:
The compiler flags and pragmas in guanx's test program invoked some rather esoteric parallel programming code. Try `man gcc` -- each of guanx's gcc -f flags and the #pragmas in his C-Program are in the man page and there is also a reference to The OpenMP® API specification for parallel programming in `man gcc`. Not something you'll see every day but when you need it, you need it :) -- kjh |
Quote:
You may not need an immediate fix. If not, it might be safer to wait for Pat's Patch. If you need it, you could replace the symlink /usr/lib64/libm.so with a text file that contains the code in guanx's Post #1. -- kjh |
I vaguely remember this bug has been fixed quite a while ago but with glibc-2.23-x86_64-3_slack14.2 it came back.
|
Quote:
|
All times are GMT -5. The time now is 08:17 AM. |