ERROR :version GLIBC_2.0 not defined in file libc.so.6 with link time reference
Hi
I have installed Cadence EDA tools (IC5141) on Slackware 12.1. To start Cadence we use icfb.exe. When I run this I get the follwoing error. bash-3.1#icfb & bash-3.1# /home/Cadence/tools/dfII/bin/icfb.exe: relocation error: /home/Cadence/tools/dfII/bin/icfb.exe: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference. How to solve this problem?. I am a newbie to linux and slackware. I would be glad if anybody could post their comments or solution. Thanks in advance |
Hi,
Could you post the output of "/lib/libc.so.6" ? |
Quote:
Thanks for your reply. I did ldd -r /lib/libc.so.6 here is output I got. bash-3.1# ldd -r /lib/libc.so.6 /lib/ld-linux.so.2 (0xb7eff000) linux-gate.so.1 => (oxffffe000) Is this what you wanted to look at. libc.so.6 looks like some binary file. When I observe less /lib/libc.so.6 I observe the binary content. Please advice. |
Quote:
|
Quote:
Code:
$ /lib/libc.so.6 Unfortunately, it seems that that you are stuck with a NPTL/TLS-only glibc. If you run "readelf -s /lib/libc.so.6 | grep errno@@" you can see the developers made it a private symbol (eg @@GLIBC_PRIVATE instead of @@GLIBC_2.0) because declaring errno is not thread-safe and TLS glibc uses threading internally. You need to use a LinuxThreads glibc to run this application. Any distribution using glibc 2.3 and below are almost guaranteed to have LinuxThreads compiled in. Your choices are: Install an older Linux distribution and use LD_ASSUME_KERNEL=2.4.1 to force LinuxThreads. Setup a chroot on your existing Slackware system with an older release of a distribution. Or create a directory with the necessary old libraries and use LD_LIBRARY_PATH to force the linker to load those libraries preferentially. I don't know where you installed the program but something like (replace /dir/where_installed) : Code:
find /dir/where_installed | xargs file | grep "dynamically" | awk '{print $1}' | tr -d : | xargs ldd | grep -F .so | awk '{print $1}' | sort -u > libraries-needed If you just try to replace glibc, other libraries will complain about GLIBC_2.7 and GLIBC_2.4, so you need every library to be contemporary. |
It's pretty much completely unsupported to run a LinuxThreads executable under a modern kernel and Very Bad Weirdness might happen. Install an old version and actually boot into that install (or use Qemu and such).
|
Thanks alot guyz for your suggestions. Let me work on this and post you updates. Meanwhile I talked with the vendor and he suggests me to use RHEL3 or RHEL4. I am loving slackware so let me take pain to install in slackware. At the end of the day I am learning something interesting.Thanks once again for your advice.
|
I have successfully installed the tools in slackware 9.0 and it works well and did not have any problems at all while installing...No GLIBC_2.0 errors or such.
Thanks for your help. |
So what was the solution?
kind of disappointed it was not posted |
Quote:
Eric |
You probably can use that with up to slackware-11.0 -the last version with glibc-2.3 and linux threads.
|
All times are GMT -5. The time now is 07:56 PM. |