Sziasztok !
Az egyik ugyfelunknel az alkalmazasunkat egy uj gepre rakta fel:
$uname -a
Linux chfvma98 2.6.16.21-0.8-default #1 Mon Jul 3 18:25:39 UTC 2006 i686
Ezek a fuggosegek. A libstdc++-libc6.2-2.so.3 en masoltam oda egy regebbi rendszerbol melle azert van ./
$ldd ./acosrv
linux-gate.so.1 => (0xffffe000)
./kernel.so (0xb7ee8000)
./MscAfx.so (0xb7edd000)
./MscAfxEx.so (0xb7dcb000)
./ACKernel.so (0xb7d2b000)
./UsrAcd.so (0xb7ba5000)
libstdc++-libc6.2-2.so.3 => ./libstdc++-libc6.2-2.so.3 (0xb7b5c000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7b29000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb79f4000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb79f0000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb79c2000)
/lib/ld-linux.so.2 (0xb7f30000)
Elso kiserlet:
$./acosrv
./acosrv: relocation error: ./UsrAcd.so: symbol errno, version GLIBC_2.0 not defined in file ibc.so.6 with link time reference
Egy probalkozas.
$ LD_ASSUME_KERNEL=2.4.1 ./acosrv
./acosrv: error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory
Ha minden regebbi so-t mellemasolok, akkor pedig azt mondja, hogy:
$ LD_ASSUME_KERNEL=2.4.1 ./acosrv
./acosrv: relocation error: ./libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference
Valoszinuleg kernel specifikus hiba es a regebbi LD_ASSUME_KERNEL=2.4.1 megoldas most mar nem mukodik. Mit lehet tenni a forditason kivul, hogy mukodjon az alkalmazas.
Koszi !
udv. Gabor
- 1534 megtekintés
Hozzászólások
Valaki irjon mar valamit...
- A hozzászóláshoz be kell jelentkezni
Regi gepen egy ldd ./acosrv
file ./acosrv mind ket gepen
meg az uj gepen egy gcc -v
Ha az uj gepen a c++ 4-es verzioju, es a regi meg 3-as akkor nem fog menni, mert c++ nem kompatibilis asszem
- A hozzászóláshoz be kell jelentkezni
koszi, megnezem.
Egyebbkent az ugy lehetseges, hogy semmilyen regi program ne fusson, hanem hogy minden ujra kelljen
forditani. Ez eleg furcsa dolog. Minden regebbi program (tehat nem csak az enyem) nem fog futni.
Nincs valami "gyari" megoldas erre ?
g
- A hozzászóláshoz be kell jelentkezni
Milyen distrib?
Amugy asszem csak c++ nem kompatibilis visszafele.
- A hozzászóláshoz be kell jelentkezni
Az uj disztribucio SuSE 10.2 (enterprise), de kiprobaltam ubuntu-n ( Linux bohumil 2.6.17-10-generic #2 SMP Tue Dec 5 22:28:26 UTC 2006 i686 GNU/Linux) is ue az eredmennel, tehat gondolom ez inkabb kernel fuggo. Az elozo dist upgrade-nel meg mukodott az KERNEL_ASSUME-os hack, de most mar az se. Picit furcsalnam, ha ez igy lenne.
g
- A hozzászóláshoz be kell jelentkezni
nekem is hasonló a problémám, annyi különbséggel, hogy egy régi RedHat Linuxon futó Lotus Domino 5.0.9 szervert akarok átvinni egy Debian etchre...
a hibaüzetet ugyanaz: "error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory"
megnéztem, mindkét rendszeren megvannak ezek a libek, max a verziószáma más...
valami ötlet?
--
by Mikul@s
- A hozzászóláshoz be kell jelentkezni
Szerezned kellene egy aktualis Domino verziot... Ami regi gcc/g++ forditoval es/vagy regi glibc-vel lett leforditva, azzal a mai rendszereken mar nem nagyon lehet mit kezdeni, volt 1-2 ABI valtas idokozben. (Az LD_ASSUME_KERNEL ami fentebb szerepelt nem kernel, hanem glibc-specifikus.) Rakd fel az elfutils csomagot, abban van az eu-readelf, amivel tovabb lehet nyomozni.
- A hozzászóláshoz be kell jelentkezni