LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-17-2012, 03:15 AM   #1
bg4
LQ Newbie
 
Registered: Jan 2007
Distribution: Slackware -current
Posts: 27

Rep: Reputation: 4
Perl - undefined symbol error since -current updates


G'Day,

After the updates on Friday 13th (32bit) I seem to have a broken Perl installation. The error message I get when any perl program that uses a database is:
Code:
/usr/bin/perl: symbol lookup error: /usr/lib/perl5/site_perl/5.12.3/i486-linux-thread-multi/auto/BDI/DBI.so: undefined symbol: Perl_Istack_sp_ptr
Unfortunately, I don't know where to start looking for a solution. Any pointers would be most helpful.

Thanks, BG4.
 
Old 07-17-2012, 03:21 AM   #2
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 9,768

Rep: Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886Reputation: 2886
try a clean install instead of an update
 
Old 07-17-2012, 06:25 AM   #3
XGizzmo
Member
 
Registered: Mar 2007
Distribution: Slackware
Posts: 264

Rep: Reputation: 68
Something is broken DBI.so is part of the perl package, your path indicates perl-5.12.3 but -current is perl-5.16.0.
How did you update perl?
 
1 members found this post helpful.
Old 07-17-2012, 05:58 PM   #4
bg4
LQ Newbie
 
Registered: Jan 2007
Distribution: Slackware -current
Posts: 27

Original Poster
Rep: Reputation: 4
Thanks for the replies.

I did a "slackpkg update" "slackpkg install-new" "slackpkg upgrade-all". The mirror I used was the tds.net one.

I have tried a "slackpkg reinstall perl" which comes up with "perl-5.16.0-i482-2.txz" as the package installed. But it made no difference.

Out of desperation I have renamed the 5.12.3 directories to 5.16.0 and it seems to have solved the problem....I will test further.

Thanks for the suggestions..

BG4.
 
Old 07-17-2012, 06:57 PM   #5
CTM
Member
 
Registered: Apr 2004
Distribution: Slackware
Posts: 288

Rep: Reputation: 270Reputation: 270Reputation: 270
It looks like you've upgraded DBI and then upgraded the Perl package installed on your system (your offending DBI is in site_perl and Slackware's is in vendor_perl, with modules in site_perl taking precedence).

Ideally, you want to remove modules compiled/installed under 5.12.3 and reinstall them under 5.16.0. It doesn't matter for pure-Perl modules (assuming they'll still work with new versions of Perl's core modules, which they will, because that's how Perl rolls), but with XS modules like DBI you'll run into problems.

Code:
# cpanp -i DBI
will fix you.

Last edited by CTM; 07-17-2012 at 07:00 PM. Reason: clarification
 
1 members found this post helpful.
Old 07-21-2012, 02:42 AM   #6
bg4
LQ Newbie
 
Registered: Jan 2007
Distribution: Slackware -current
Posts: 27

Original Poster
Rep: Reputation: 4
Solved

Thank you CTM,

That fixed the problem. All good now, thank you.

BG4
 
Old 08-25-2017, 03:10 PM   #7
dsbx
LQ Newbie
 
Registered: Aug 2017
Posts: 10

Rep: Reputation: Disabled
bumping an old post with a related question.

If I reinstall a module under the later version, will the module still work when run with an earlier version.

Context:
we have scripts shared across multiple servers which are access via a mounted volume. Each server uses a local version of perl, and the perl versions are not consistent. The module in question (Kx) was installed with an older version and is bombing when run with a local instance of perl 5.16.3.

In a perfect world, I can rebuild with 5.16.3 and still have the script work with 5.10 or other older versions. If not I'll have to probably include a perl build on the shared mount and refactor a lot of scripts. Is the former possible?
 
Old 08-25-2017, 09:45 PM   #8
zakame
Member
 
Registered: Apr 2012
Distribution: Debian, Ubuntu, Slackware
Posts: 216

Rep: Reputation: 118Reputation: 118
Quote:
Originally Posted by dsbx View Post
bumping an old post with a related question.

If I reinstall a module under the later version, will the module still work when run with an earlier version.

Context:
we have scripts shared across multiple servers which are access via a mounted volume. Each server uses a local version of perl, and the perl versions are not consistent. The module in question (Kx) was installed with an older version and is bombing when run with a local instance of perl 5.16.3.

In a perfect world, I can rebuild with 5.16.3 and still have the script work with 5.10 or other older versions. If not I'll have to probably include a perl build on the shared mount and refactor a lot of scripts. Is the former possible?
It should be possible, provided:
  • your scripts on the shared volume don't have a hard-coded dependency on a particular version of Perl (e.g. "use v5.16")
  • you install your modules on each local perl your intend your scripts to run on
  • the modules themselves don't have a hard dependency on a particular version of Perl
 
1 members found this post helpful.
Old 08-29-2017, 05:24 PM   #9
dsbx
LQ Newbie
 
Registered: Aug 2017
Posts: 10

Rep: Reputation: Disabled
interestingly, just for kicks I built another perl instance of the correct version (5.10.1) and the module in question would not work with it. It seems it will only work with the specific instance of Perl it was built with. Which is unfortunate.
 
Old 08-30-2017, 03:43 AM   #10
zakame
Member
 
Registered: Apr 2012
Distribution: Debian, Ubuntu, Slackware
Posts: 216

Rep: Reputation: 118Reputation: 118
Its quite possible that other factors such as glibc might be at play (at least for -current, since glibc-2.26 has some breaking changes.)
 
Old 08-30-2017, 03:46 AM   #11
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 3,850

Rep: Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901
I think more probably are the binary incompatibities (modules included) between some of the recent perl 5.x versions and that lead to segfaults...

Last edited by ponce; 08-30-2017 at 05:12 AM.
 
Old 08-30-2017, 04:30 AM   #12
zakame
Member
 
Registered: Apr 2012
Distribution: Debian, Ubuntu, Slackware
Posts: 216

Rep: Reputation: 118Reputation: 118
I suppose that depends on dsbx if s/he can provide logs of the module build failures
 
Old 08-30-2017, 04:51 AM   #13
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 3,850

Rep: Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901
but as I understood what he wrote I don't think he got issues *building* modules: he wants to use modules built on one perl version on another perl version that most probably is binary incompatible with the first and that leads to a segfault when *using* the modules on a different perl version from the one they were built over.
to avoid that he really should rebuild the modules that he wants to use with the second perl version on that one.

it's also possible that I haven't understood what he wants to do
 
Old 08-30-2017, 07:23 AM   #14
dsbx
LQ Newbie
 
Registered: Aug 2017
Posts: 10

Rep: Reputation: Disabled
Quote:
Originally Posted by ponce View Post
but as I understood what he wrote I don't think he got issues *building* modules: he wants to use modules built on one perl version on another perl version that most probably is binary incompatible with the first and that leads to a segfault when *using* the modules on a different perl version from the one they were built over.
to avoid that he really should rebuild the modules that he wants to use with the second perl version on that one.

it's also possible that I haven't understood what he wants to do
You are correct. The original perl version is 5.10.1 and this is what the module was built with. The 2nd is 5.16.3, and this is the version for which i first saw the error.

I built a third version in my home dir, also 5.10.1, and got that same error when using the module.

This behavior is strange bc:
- the module is installed to a path on my mounted home dir so it is available across many servers
- the perl build used on each system is a local build that lives at /usr/bin/perl, and has historically been v5.10.1
- i have not seen this issue for any other server

When i get to work i can provide more info on OS versions
 
Old 08-30-2017, 08:42 AM   #15
ponce
Senior Member
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 3,850

Rep: Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901Reputation: 1901
Quote:
Originally Posted by dsbx View Post
You are correct. The original perl version is 5.10.1 and this is what the module was built with. The 2nd is 5.16.3, and this is the version for which i first saw the error.

I built a third version in my home dir, also 5.10.1, and got that same error when using the module.
can you provide more info on the "error"?
 
  


Reply

Tags
perl


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] symbol lookup error: /usr/sbin/httpd: undefined symbol: apr_file_link bagi Slackware 3 05-17-2011 08:49 AM
glib error while installing patch: symbol lookup error undefined symbol: g_dgettext mthakare Linux - Software 1 06-14-2010 05:01 AM
[SOLVED] libXi.so.6: undefined symbol: XESetWireToEventCookie error (-current) slackd Slackware 1 03-03-2010 08:42 AM
symbol lookup error: /usr/lib/libavcodec.so.51: undefined symbol: av_crc04C11DB7 priceey Linux - Software 0 05-06-2009 09:14 AM
symbol lookup error: /usr/lib/libgtk-x11.2.0.so.0: undefined symbol:... IamI Slackware 17 02-29-2008 12:10 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:18 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration