Bug 3288 - undefined symbol: Perl_Gthr_key_ptr error message while starting programm compiled under perl-5.6.1
: undefined symbol: Perl_Gthr_key_ptr error message while starting programm com...
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/perl)
: unstable
: all Linux
: P4 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2003-11-19 12:52 by
Modified: 2003-11-22 18:23 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2003-11-19 12:52:01
Пытаюсь запустить программу, скомпилированную на perl-5.6.1 (программа, если 
кому-то интересно, биллинг UTM 3.0 http://www.netup.ru) Под любым ALT Linux 
(Master 2.2, Junior, Compact обновлённый из свежайшего Sysiphus - не имеет 
значения) получаю следующую ошибку:

/netup/utm/bin/main: realocation error:
/usr/lib/perl5/site_perl/i386-linux/auto/DBI/DBI.so: undefined
symbol: Perl_Gthr_key_ptr

Под RedHat 7.3, RedHat 9.0 (с новой версией perl) и FreeBSD подобных проблем 
нет, всё работает на ура, проверено. По заключению специалистов NetUP и 
собственному разумению причина в perl от ALTLinux. Предлагают из-за этого 
перейти на RedHat - сопротивляюсь, надеюсь на решение проблемы/объяснение 
причины ;)

PS поскольку вышеозначенный файл ищется именно в 
директории /usr/lib/perl5/site_perl пришлось создать симлинк site_perl -> 
vendor_perl
------- Comment #1 From 2003-11-22 18:23:06 -------
Огромное спасибо Алексею Турбину за оперативное и подробное разъяснение причины 
проблемы ! А причина в том, что сам новый perl (5.8.x)не совместим с 
программами компилированными своими ранними версиями:

man perl58delta:

Incompatible Changes
    Binary Incompatibility

    Perl 5.8 is not binary compatible with earlier releases of Perl.
    You have to recompile your XS modules.
    (Pure Perl modules should continue to work.)

    The major reason for the discontinuity is the new IO architecture
    called PerlIO

Свою проблему решил установкой perl 5.6.1 (нашёл в интернете дистрибутив Junior 
2.0) - всё заработало.