LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   ERROR :version GLIBC_2.0 not defined in file libc.so.6 with link time reference (https://www.linuxquestions.org/questions/slackware-14/error-version-glibc_2-0-not-defined-in-file-libc-so-6-with-link-time-reference-721538/)

gemini42 04-25-2009 02:16 AM

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

alexandre.t 04-25-2009 09:31 PM

Hi,

Could you post the output of "/lib/libc.so.6" ?

gemini42 04-27-2009 12:31 AM

Quote:

Originally Posted by alexandre.t (Post 3520958)
Hi,

Could you post the output of "/lib/libc.so.6" ?

Hi
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.

Petri Kaukasoina 04-27-2009 06:17 AM

Quote:

Originally Posted by gemini42 (Post 3520272)
/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?

If you have the source code, try to change lines 'extern int errno;' to '#include <errno.h>' and recompile. Or else, ask the vendor to do that for you.

alexandre.t 04-27-2009 07:19 PM

Quote:

Hi
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.
/lib/libc.so.6 is actually a library that can be run like a normal program, so you can run it like:
Code:

$ /lib/libc.so.6
I am not familiar with newer versions of Slackware, I only run it on an old laptop that cannot handle anything more recent.

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
should find all the required libraries that you need in order to run the program.

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.

tuxdev 04-27-2009 07:41 PM

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).

gemini42 04-30-2009 03:43 PM

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.

gemini42 05-26-2010 05:59 PM

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.

gmad22 12-13-2010 07:42 AM

So what was the solution?

kind of disappointed it was not posted

Alien Bob 12-13-2010 07:46 AM

Quote:

Originally Posted by gmad22 (Post 4189735)
So what was the solution?

kind of disappointed it was not posted

I thought that was obvious: "I have successfully installed the tools in slackware 9.0" which is an older release of Slackware, shipping an older glibc which was compatible with the binary.

Eric

gnashley 12-13-2010 10:24 AM

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.