This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Resulting files from canadian cross


Maurits van de Kamp wrote:

> After symlinking everything in /usr/arm/lib to /lib (just for now, I will figure out what
> goes where later) :) and try to run my c++ helloworld again, I get:
> ./helloworld2: /lib/libgcc_s.so.1: version `GCC_3.4' not found (required
> by /lib/libstdc++.so.6)
> Now this error totally baffles me. I'm using gcc 4.0.2 and glibc 2.3.6,
> totally compatible, now why is it looking for 3.4 and why does the
> linker care about finding gcc at all?


The '/lib/libgcc_s.so.1' will be produced with GCC and a newer one should be compatible
with the old installed apps and old installed runtimes needing it. But those requirements and
definitions can be checked. If I look at my shared C++ runtime from gcc-3.4.6 via
'arm-linux-gnu-objdump -p' :


----------- clip ---------------------------
libstdc++.so.6.0.3:     file format elf32-littlearm
<snip>
Dynamic Section:
 NEEDED      libm.so.6
 NEEDED      libgcc_s.so.1
 NEEDED      libc.so.6
 SONAME      libstdc++.so.6
<snip>
Version definitions:
1 0x01 0x025f4d66 libstdc++.so.6
2 0x00 0x08922974 GLIBCXX_3.4
3 0x00 0x02297f81 GLIBCXX_3.4.1
       GLIBCXX_3.4
4 0x00 0x02297f82 GLIBCXX_3.4.2
       GLIBCXX_3.4.1
5 0x00 0x02297f83 GLIBCXX_3.4.3
       GLIBCXX_3.4.2
6 0x00 0x056bafd3 CXXABI_1.3

Version References:
 required from libm.so.6:
   0x0d696910 0x00 10 GLIBC_2.0
 required from libc.so.6:
   0x09691f73 0x00 15 GLIBC_2.1.3
   0x0d696913 0x00 14 GLIBC_2.3
   0x0d696912 0x00 13 GLIBC_2.2
   0x0d696911 0x00 12 GLIBC_2.1
   0x0d696910 0x00 08 GLIBC_2.0
 required from libgcc_s.so.1:
   0x0b792653 0x00 11 GCC_3.3
   0x0b792650 0x00 09 GCC_3.0
   0x0d696910 0x00 07 GLIBC_2.0
private flags = 2: [APCS-32] [FPA float format] [has entry point]
----------- clip ---------------------------

there is that 'required from libgcc_s.so.1' part with 'GCC_3.3' and 'GCC_3.0'
and GLIBC_2.0 ....


The 'libgcc_s.so.1' produced at the same time then has :

----------- clip ---------------------------
libgcc_s.so.1:     file format elf32-littlearm
<snip>
Dynamic Section:
 NEEDED      libc.so.6
 SONAME      libgcc_s.so.1
<snip>
Version definitions:
1 0x01 0x04bd5c11 libgcc_s.so.1
2 0x00 0x0d696910 GLIBC_2.0
3 0x00 0x0b792650 GCC_3.0
       GLIBC_2.0
4 0x00 0x0b792653 GCC_3.3
       GCC_3.0
5 0x00 0x09265f61 GCC_3.3.1
       GCC_3.3
6 0x00 0x0b792654 GCC_3.4
       GCC_3.3.1
7 0x00 0x09265e62 GCC_3.4.2
       GCC_3.4

Version References:
 required from libc.so.6:
   0x09691f73 0x00 09 GLIBC_2.1.3
   0x0d696910 0x00 08 GLIBC_2.0
private flags = 2: [APCS-32] [FPA float format] [has entry point]
----------- clip ---------------------------

ie those 'GCC_3.3', 'GCC_3.0' and 'GLIBC_2.0' appearing in "Version definitions"
and at least these two runtimes seem to be in sync what becomes these three
"version definitions...


Generally I don't know what these things are but using 'objdump -p' lets one to
wonder them and see if something is missing :-)


So you probably should have the old one replaced with the gcc-4.0.2 one, it then
working with the new '/lib/libstdc++.so.6'. Why the "everything in /usr/arm/lib"
didn't include 'libgcc_s.so.1' is odd, but maybe replacing the existing 'libgcc_s.so.1'
with a symlink just failed...



-- For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]