views:

85

answers:

1

Hello, I have an application compiled at:

  • gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
  • Linux debian 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU/Linux

and it runs well.

Now I want to run it at:

  • Linux 2.4.20_mvlcge31-tomas #7 Thu May 7 11:33:21 CEST 2009 i686 unknown

I got following errors:

libstdc++.so.6: cannot handle TLS data

From the web I saw someone suggested to do this: export LD_ASSUME_KERNEL=2.2.5

I tried but get even more errors: ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory

Who can help me with it? thanks

A: 

You had compiled the application against much newer libc and kernel version, You can't compile program on 2.6 with newest libc and expect it to run on old kernel.

Also where do you actually still use Linux 2.4?

Artyom
Artyom: thanks for replying! Does it mean If I want the program run, it must be recompiled on the old kernel 2.4, without any other alternative simple options?
Isaac LI
@Isaac LI you may probably need to get old compiler and old libstdc++/libc and try to compile with them but... I'had never done such things so I don't sure it would work and how much effort you need to put into it. I think it would be much simpler to install 2.4 Linux distro. in VM and compile there.
Artyom
Thanks, Artyom.
Isaac LI