This is the mail archive of the mailing list for the glibc project.

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

Configuration problem? (resembles of FAQ #2.8)

Hi all,
I have problem that resembles of #2.8 in the glibc FAQ at

When searching this list archive I found only one topic that comes even
close to my problem (I hope I'm not wrong ): . The
reason/solution however, seems to be far away from mine.

2.8. When I run an executable on one system which I compiled on another, I
get dynamic linker errors. Both systems have the same version of glibc
installed. What's wrong?

The reason for wanting to do this strange stuff, is not quite the same as
what is assumed in the answer/solution to this FAQ entry.

What I want to do is the following:

I have a very small x86 target (actually AMD SC400), a so called embedded
target, that comes with a 2.2.5 kernel and a tiny file-system on a flash
PROM. I'll refer to this system as the 'target' hereby. 

The system I use for development is a ordinary RH7.0 running on a PIII and
I'll refer to this system as the 'host'.

The target has a very limited set of commands and tools (no 'ldd' and no
'ldconfig' among others). However, judging by the filenames in /lib, I
conclude that the system is made for supporting libc 6. This is the same
version that my host system runs, and I figure that executables built on my
host should run flawlessly on both systems.

Below is a snippet of the library contents of /lib the two (the target has
no /usr/lib except terminfo/ b.t.w.)

On 'host':

[mambrus@pc1409 /lib]$ ls -al /lib/libc*.*
-rwxr-xr-x    1 root     root      4776568 Aug 30  2000 /lib/
lrwxrwxrwx    1 root     root           14 Jul  3 12:44 /lib/ ->
lrwxrwxrwx    1 root     root           17 Jul  3 12:44 /lib/
-rwxr-xr-x    1 root     root         8410 Aug 30  2000
-rwxr-xr-x    1 root     root        80717 Aug 30  2000
lrwxrwxrwx    1 root     root           18 Jul  3 12:44 /lib/

On 1486 'target':

# ls -l libc*.*
-rwxr-xr-x    1 root     root     1286208 Dec  8  1999
lrwxrwxrwx    1 root     root          13 Jul 12  2000 ->
-rwxr-xr-x    1 root     root       25818 Dec  8  1999
lrwxrwxrwx    1 root     root          17 Jul 12  2000 ->


Now, if I build a program (called MyProg) on the host it will run without
problems on the host, but when invoked on the target I'll get the following

./MyProg: /lib/ version `GLIBC_2.1.3' not found (required by

I'm confused - none of the systems have any libc file version 2.1.3 . Where
does this reference come from? Could it be to a faulty 'soname' made by the
ones that built the library? In that case, on which system?

I can't run ldconfig on the target since it's not there, and when If try to
run the command via a mounted NFS dir, the system gives up and dies
(something about an illegal instruction). 

I dare not to hack the targets /etc/ by hand since I don't know
neither the format nor what is broken, so I tried to create links pointing
to (from various names) with no luck.

All other binaries on each system runs with no problem (as long as they stay
on the system that harbours them). What could be the problem & any
suggestions of how to solve it?

Best Regards
Michael Ambrus
Siemens Elema - LSS

P.S. If you wonder why I'm not setting up a cross environment, it's because
I'm lacking the @#! needed header files of the target :-( I'm on to that
to, but that's a different story. D.S. /Michael

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