Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 308629 - app-pda/pilot-link-0.12.5: Pilot.so perl module should be linked against -lpisock
Summary: app-pda/pilot-link-0.12.5: Pilot.so perl module should be linked against -lpi...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo PDA project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 233354
  Show dependency tree
 
Reported: 2010-03-09 10:51 UTC by Łukasz Stelmach
Modified: 2011-04-09 13:08 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Łukasz Stelmach 2010-03-09 10:51:34 UTC
Pilot perl extension

/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/PDA/Pilot/Pilot.so

is not properly linked against /usr/lib64/libpisock.so


Reproducible: Always

Steps to Reproduce:
1. run `perl -MPDA::Pilot -e 1'
Actual Results:  
Can't load '/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/PDA/Pilot/Pilot.so' for module PDA::Pilot: /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/PDA/Pilot/Pilot.so: undefined symbol: DatebookRepeatTypeNames at /usr/lib64/perl5/5.8.8/x86_64-linux/DynaLoader.pm line 230.
 at -e line 0
Compilation failed in require.
BEGIN failed--compilation aborted.


Expected Results:  
No error.

$ ldd /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/auto/PDA/Pilot/Pilot.so
        linux-vdso.so.1 =>  (0x00007fff8c7e4000)
        libc.so.6 => /lib/libc.so.6 (0x00007fbc02a84000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbc03042000)

libpisock.sa is missing. Running with LD_PRELOAD=/usr/lib64/libpisock.so helps.
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2011-03-31 04:43:39 UTC
Same behavior with 0.12.5.

$ objdump -p /usr/lib64/perl5/vendor_perl/5.12.3/x86_64-linux/auto/PDA/Pilot/Pilot.so | grep NEEDED
  NEEDED               libc.so.6

$ qfile -v Pilot.so
app-pda/pilot-link-0.12.5 (/usr/lib64/perl5/vendor_perl/5.12.3/x86_64-linux/auto/PDA/Pilot/Pilot.so)

@perl: Can we get some help with this please? The ebuild is using perl-module eclass for this, and likely perl build system familiar to you guys.
I'm also still not convinced the linking is required... is it?
Comment 2 Torsten Veller (RETIRED) gentoo-dev 2011-03-31 08:06:51 UTC
This is caused by the way we pass LDFLAGS in the eclass (#233354):
| emake OTHERLDFLAGS="${LDFLAGS}" ....
which then replaces pilot-links OTHERLDFLAGS in Makefile.PL:
|'dynamic_lib'=> {'OTHERLDFLAGS' => $lib},
(where
$libdir = "../../libpisock/.libs";
$lib = "-L$libdir -lpisock";
)

CRAP

- bug 233354 : find better ways to set LDFLAGS
- add mymake=( OTHERLDFLAGS="${LDFLAGS} -L../../libpisock/.libs -lpisock" )
  before perl-module_src_compile or
  replace perl-module_src_compile with emake to
  work around the eclass
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2011-04-09 13:08:15 UTC
+  09 Apr 2011; Samuli Suominen <ssuominen@gentoo.org> pilot-link-0.12.5.ebuild:
+  Link perl Pilot.so against -lpisock (workaround a bug in perl-module.eclass)
+  wrt #308629 by Torsten Veller and Łukasz Stelmach.