[SOLVED] glibc version help! Fedora 10 and WinRiver
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have Fedora 10 and have created a .so for another individual to use
He is saying that he cannot link into the .so
This is the errors he gets
Code:
libTActionReader.so: undefined reference to `std::istream& std::istream::_M_extract<float>(float&)@GLIBCXX_3.4.9'
We are assuming this is because he is using a different version of linux
He is using Wind River with glibc version 2.5
glib version I am returning with the command rpm -q glibc is
glibc-2.9-3.i686 on my Fedora 10
I need to give him this .so, without letting him compile it with the source code
My plan is to download an older version of fedora and compile it on there, however I seem not to be able to find what version has
glibc-2.5-1_WR2.0ap.i686(what he has)
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511
Rep:
Quote:
@GLIBCXX_3.4.9
... has not do do with ' glibc '
( read gnu libcxx and not gnu libc(6) ).
Notice : '...LIBCXX_3.4.9 ', which is an object in
/usr/lib/libstdc++.so.6 > /usr/lib/libstdc++.so.6.0.10
( a gcc-c++-4.3.2 / libstdc++-4.3.2 file ).
You can try out your created library with ldd :
ldd <library>.so , to find out a little more about,
what is going on.
Linking to the lib ? The libstdc++.so.6(.0.10) must be included,
AFAIK. May be rename to something else not to confuse things >
> something.so ( A similar file libstdc++.so.6 may be present already.)
If it will work at all on the probably older WindRiver ?
.....
... has not do do with ' glibc '
( read gnu libcxx and not gnu libc(6) ).
Notice : '...LIBCXX_3.4.9 ', which is an object in
/usr/lib/libstdc++.so.6 > /usr/lib/libstdc++.so.6.0.10
( a gcc-c++-4.3.2 / libstdc++-4.3.2 file ).
You can try out your created library with ldd :
ldd <library>.so , to find out a little more about,
what is going on.
Linking to the lib ? The libstdc++.so.6(.0.10) must be included,
AFAIK. May be rename to something else not to confuse things >
> something.so ( A similar file libstdc++.so.6 may be present already.)
If it will work at all on the probably older WindRiver ?
.....
knudf,
I appreciate your help, however you will need to go a little slower with me. I am not comfortable in this OS.
What I understand from your reply is that the linker issue he is seeing is not an issue with the glibc version, instead it is ?
Quote:
"read gnu libcxx and not gnu libc(6)"
I don't have a clue what you are talking about
ldd i am assuming is a command I can use in the terminal
This is what is returned
linux-gate.so.1 => (0x00b09000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00c3d000)
libm.so.6 => /lib/libm.so.6 (0x00fc7000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00901000)
libc.so.6 => /lib/libc.so.6 (0x00239000)
/lib/ld-linux.so.2 (0x00b80000)
I think I am seeing the file you speak of, libstdc++.so.6 should that be to something else? or is that what I am suppose to see?
also to note he told me that he is getting an undefined referece to ostream as well as istream now
Yes, that's it.
The problem is that your client's WindRiver may have a library
with the same name.
Same name exists for libstdc++ for gcc-c++ 4.1.x .
The object "..LIBCXX_3.4.9" is only found from version 4.3.x
> gcc-4.3.x + libstdc++-4.3.x .
So you will probably have to compile the lib on an older OS.
It would be nice to know, which versions of the above being
present on the WindRiver OS, to be able to give a good advice.
.....
GLIBCXX means Gnu libCXX , where CXX means c++ .
.....
Yes, that's it.
The problem is that your client's WindRiver may have a library
with the same name.
Same name exists for libstdc++ for gcc-c++ 4.1.x .
The object "..LIBCXX_3.4.9" is only found from version 4.3.x
> gcc-4.3.x + libstdc++-4.3.x .
So you will probably have to compile the lib on an older OS.
It would be nice to know, which versions of the above being
present on the WindRiver OS, to be able to give a good advice.
.....
GLIBCXX means Gnu libCXX , where CXX means c++ .
.....
root@target:/root> ls /usr/lib/libstdc++*
/usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.8
The others are a little tricky. There's no compiler on the target so I have to make sure to do the version on the correct gcc/g++ that does the cross-compile. I believe these are correct:
C:\WindRiver\gnu\4.1-wrlinux-2.0\x86-win32\bin>i586-wrs-linux-gnu-gcc.exe -v
Using built-in specs.
Target: i586-wrs-linux-gnu
Configured with: /scratch/joseph/wrs/4.1/src/gcc-4.1/configure --build=i686-pc-linux-
gnu --host=i686-mingw32 --target=i586-wrs-linux-gnu --enable-threads --disable-libmud
flap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --with-cpu=generic --
enable-targets=all --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shar
ed --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Wind River Linux Sou
rcery G++ 4.1-91' --with-bugurl=support@windriver.com --disable-nls --prefix=/opt/win
driver/wrlinux/ia32 --with-sysroot=/opt/windriver/wrlinux/ia32/i586-wrs-linux-gnu/lib
c --with-build-sysroot=/scratch/joseph/wrs/4.1/ia32/install/host-i686-mingw32/i586-wr
s-linux-gnu/libc --with-libiconv-prefix=/scratch/joseph/wrs/4.1/ia32/obj/host-libs-4.
1-91-i586-wrs-linux-gnu-i686-mingw32/usr --with-license=/scratch/joseph/wrs/4.1/ia32/
obj/host-libs-4.1-91-i586-wrs-linux-gnu-i686-mingw32/usr --with-csl-license-version=2
0080107 --with-csl-license-feature=gcc_IA32_Wind_River_Linux --enable-poison-system-d
irectories
Thread model: posix
gcc version 4.1.2 (Wind River Linux Sourcery G++ 4.1-91)
C:\WindRiver\gnu\4.1-wrlinux-2.0\x86-win32\bin>i586-wrs-linux-gnu-g++.exe -v
Using built-in specs.
Target: i586-wrs-linux-gnu
Configured with: /scratch/joseph/wrs/4.1/src/gcc-4.1/configure --build=i686-pc-linux-
gnu --host=i686-mingw32 --target=i586-wrs-linux-gnu --enable-threads --disable-libmud
flap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --with-cpu=generic --
enable-targets=all --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shar
ed --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Wind River Linux Sou
rcery G++ 4.1-91' --with-bugurl=support@windriver.com --disable-nls --prefix=/opt/win
driver/wrlinux/ia32 --with-sysroot=/opt/windriver/wrlinux/ia32/i586-wrs-linux-gnu/lib
c --with-build-sysroot=/scratch/joseph/wrs/4.1/ia32/install/host-i686-mingw32/i586-wr
s-linux-gnu/libc --with-libiconv-prefix=/scratch/joseph/wrs/4.1/ia32/obj/host-libs-4.
1-91-i586-wrs-linux-gnu-i686-mingw32/usr --with-license=/scratch/joseph/wrs/4.1/ia32/
obj/host-libs-4.1-91-i586-wrs-linux-gnu-i686-mingw32/usr --with-csl-license-version=2
0080107 --with-csl-license-feature=gcc_IA32_Wind_River_Linux --enable-poison-system-d
irectories
Thread model: posix
gcc version 4.1.2 (Wind River Linux Sourcery G++ 4.1-91)
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511
Rep:
OK, I'll bet that the /usr/lib/libstdc++.so.6.0.8
is from c++-4.1.x and you will as such have to
compile things for that system on e.g CentOS 5.
CentOS 5.4 ( = Redhat EL 5.4 and Scientific SL5x)
has gcc-4.1.2 / c++ (g++) -4.1.2 / glibc-2.5 .
Objects made on Fedora 10 having glibc-2.9 will
not work on Linux's with an older one anyway.
Glibc-<version> is the first thing to be aware
of when you compile for other systems.
.....
My plan is to download an older version of fedora and compile it on there, however I seem not to be able to find what version has
glibc-2.5-1_WR2.0ap.i686(what he has)
Okay,
So it sounds like you pretty much came to the same conclusion that we already had.
So back to my original idea, I asked about Fedora and how to figure out what version I would need.
I have came to the conclusion that fedora 7 should do the trick.
I looked into the OS you mentioned, however it doesn't sound like that is going to cut it. It is for more of a server based OS, not a development environment
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511
Rep:
Fedora 7 cannot be used, has glibc-2.6
And Fedora 7 has been unsupported since July 2008.
Based on Fedora 6 , the long term supported versions :
CentOS 5.4 and the equal copy of RedhatEL5, Scientific Linux SL5.x
forms excellent development environments.
I use these two for development only.
Comes with full Window Manager setup ( Gnome or KDE 3.x )
and have access to 11,000+ packages.
.....
Fedora 7 cannot be used, has glibc-2.6
And Fedora 7 has been unsupported since July 2008.
Based on Fedora 6 , the long term supported versions :
CentOS 5.4 and the equal copy of RedhatEL5, Scientific Linux SL5.x
forms excellent development environments.
I use these two for development only.
Comes with full Window Manager setup ( Gnome or KDE 3.x )
and have access to 11,000+ packages.
.....
So again, I would like to know HOW you figured out that fedora 7 has glibc-2.6
This was the original questions... how do i figure out which glibc a OS has...
I would prefer a fedora version BECAUSE I am not very familiar with linux,a nd just want something that is going to be quick for me to set up and learn
I will try Fedora 6 seeing how you say CentOS is based on it, then I will assume it must have the same glibc version
Distribution: PCLinuxOS2023 Fedora38 + 50+ other Linux OS, for test only.
Posts: 17,511
Rep:
Based on Fedora 6 means : No difference in appearence
and daily use.
CentOS 5.4 is of course easier to use :
It is updated for todays hardware, it is supported.
Fedora 6 : Died years ago, no packages, no support, ( no help ).
Quote:
I would like to know HOW you figured out that fedora 7 has glibc-2.6
1) Say you once had / have an install DVD, Fedora 6 :
Index it to a text file, 2240 lines packages.
( find /media/Fedora6-DVD -name "*" > 6Fedora6-filelist ).
Save the file for ever in "Index"
' grep glibc 6Fedora6-filelist ' → glibc-2.5..., etc.
and
' grep glibc 7Fedora7-filelist ' → glibc-2.6...
Some of those pages are huge, but ' wget <the-right-URL> '
will save an index.html.
' html2txt index.html ' creates a text file.
So that way all information is always present ...
.. to look up any package name in a second.
.....
grep glibc x54-CentOS-5.4-filelist.txt → glibc-2.5....
or http://mirror.centos.org/centos/
And bookmark all URL's, save at Xmarks,
can be accessed from any Firefox browser.
.....
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.