LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 04-25-2009, 02:16 AM   #1
gemini42
LQ Newbie
 
Registered: Apr 2009
Posts: 4

Rep: Reputation: 0
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
 
Old 04-25-2009, 09:31 PM   #2
alexandre.t
LQ Newbie
 
Registered: Apr 2009
Posts: 2

Rep: Reputation: 1
Hi,

Could you post the output of "/lib/libc.so.6" ?
 
Old 04-27-2009, 12:31 AM   #3
gemini42
LQ Newbie
 
Registered: Apr 2009
Posts: 4

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by alexandre.t View Post
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.
 
Old 04-27-2009, 06:17 AM   #4
Petri Kaukasoina
Member
 
Registered: Mar 2007
Posts: 532

Rep: Reputation: 334Reputation: 334Reputation: 334Reputation: 334
Quote:
Originally Posted by gemini42 View Post
/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.
 
Old 04-27-2009, 07:19 PM   #5
alexandre.t
LQ Newbie
 
Registered: Apr 2009
Posts: 2

Rep: Reputation: 1
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.
 
Old 04-27-2009, 07:41 PM   #6
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,014

Rep: Reputation: 115Reputation: 115
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).
 
Old 04-30-2009, 03:43 PM   #7
gemini42
LQ Newbie
 
Registered: Apr 2009
Posts: 4

Original Poster
Rep: Reputation: 0
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.
 
Old 05-26-2010, 05:59 PM   #8
gemini42
LQ Newbie
 
Registered: Apr 2009
Posts: 4

Original Poster
Rep: Reputation: 0
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.
 
Old 12-13-2010, 07:42 AM   #9
gmad22
LQ Newbie
 
Registered: Dec 2010
Posts: 2

Rep: Reputation: 0
Unhappy

So what was the solution?

kind of disappointed it was not posted
 
Old 12-13-2010, 07:46 AM   #10
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 8,122

Rep: Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972Reputation: 6972
Quote:
Originally Posted by gmad22 View Post
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
 
Old 12-13-2010, 10:24 AM   #11
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,899

Rep: Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579Reputation: 579
You probably can use that with up to slackware-11.0 -the last version with glibc-2.3 and linux threads.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
ymbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference papodu Linux - Software 0 07-05-2008 05:35 PM
relocation error:symbol_dl_loaded version GLIBC_2.1 not defined in file ld-linux.so.2 chettyravi Red Hat 1 06-21-2008 02:28 PM
"symbol __pthread_initialize, version GLIBC_2.0 not defined in file libpthread.so.0" citrus Linux - Software 6 01-05-2007 11:24 PM
GLIBC_2.3.4 not defined in file libc.so.6 when running gnuplot azariaya Linux - Software 7 01-05-2005 04:57 PM
Problem with Insight II - version GLIBC_2.2 not defined in file libc.so.6... belga Linux - Software 3 08-18-2004 01:01 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 05:56 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration