This one time, at band camp, Pierre Chifflier said: > On Tue, Apr 08, 2008 at 10:55:25AM +0100, Stephen Gran wrote: > > This one time, at band camp, Pierre Chifflier said: > > > Hi, > > > > > > DynaLoader has disappeared, but it seems it *was* needed for my current > > > use (without it, I can't load the perl module anymore, so Perl 5.8 > > > support is broken, and I don't know if 5.10 is working ..) > > > > > > I was not using it explicitly, but it was coming from the output of the > > > command perl -MExtUtils::Embed -e ldopts > > > -Wl,-E -L/usr/local/lib /usr/lib/perl/5.8/auto/DynaLoader/DynaLoader.a > > > -L/usr/lib/perl/5.8/CORE -lperl -ldl -lm -lpthread -lc -lcrypt > > > > > > As cmake does not support specifying LDFLAGS directly, it do not see any > > > simple solution ... > > > > I tested builing under both 5.8 and 5.10 before I filed that patch and > > did the NMU. Running `VERBOSE=1 cmake` showed that the 5.8 version was > > doing the right thing and including DynaLoader, or at least it certainly > > looked that way to me. > > Hum, I really think that the symbol is *not* found: > $ ldd build/modules/perl/libwzd_perl.so | grep perl > libperl.so.5.8 => /usr/lib/libperl.so.5.8 (0x00002b50f61a0000) > > $ nm build/modules/perl/libwzd_perl.so | grep Dyna > U boot_DynaLoader > > Note that the symbol is unresolved, because it is part of DynaLoader.a, > which is not linked anymore: > $ nm /usr/lib/perl/5.8/auto/DynaLoader/DynaLoader.a |grep boot_Dyna > 0000000000000050 T boot_DynaLoader > > I think the only solution is to make a conditional inclusion, like: if > detected, then link to the file. > > I have not yet checked how perl 5.10 manages dynamic loading ..
Ah, I think I may have a slightly better patch, then. With this patch
and perl5.8, I get:
[EMAIL PROTECTED]:~/NMU/wzdftpd-0.8.3/build/modules/perl$ objdump -x
libwzd_perl.so | grep boot_Dyn
00009bc0 g F .text 000003ed boot_DynaLoader
and with 5.10 I get:
[EMAIL PROTECTED]:/tmp/buildd/wzdftpd-0.8.3# objdump -x
build/modules/perl/libwzd_perl.so | grep boot_Dyn
00000000 F *UND* 0000078c boot_DynaLoader
(this is correct - in 5.10, boot_DynaLoader has moved into libperl, so
it will be loaded dynamically)
--- wzdftpd-0.8.3/modules/perl/CMakeLists.txt 2006-10-19 14:08:17.000000000
+0100
+++ wzdftpd-0.8.3/modules/perl/CMakeLists.txt 2008-04-08 12:47:48.000000000
+0100
@@ -36,11 +36,13 @@
MACRO_ADD_LINK_FLAGS(libwzd_perl "${PERL_EXTRA_LD_FLAGS}")
ENDIF(PERL_EXTRA_LD_FLAGS)
- ADD_CUSTOM_TARGET(libDynaLoader.a COMMAND ${CMAKE_COMMAND} -E
copy_if_different
- ${PERL_DYNALOADER}
- libDynaLoader.a)
- ADD_DEPENDENCIES(libwzd_perl libDynaLoader.a)
- SET(perl_LIBS ${perl_LIBS} DynaLoader)
+ IF(PERL_DYNALOADER)
+ ADD_CUSTOM_TARGET(libDynaLoader.a COMMAND ${CMAKE_COMMAND} -E
copy_if_different
+ ${PERL_DYNALOADER}
+ libDynaLoader.a)
+ ADD_DEPENDENCIES(libwzd_perl libDynaLoader.a)
+ SET(perl_LIBS ${perl_LIBS} DynaLoader)
+ ENDIF(PERL_DYNALOADER)
ENDIF (NOT WIN32)
IF(PERL_LIBRARY)
Sorry about the screw up - I guess I missed that gcc wasn't adding the
symbols, even though DynaLoader.a was on the link line. If you like, I
can reupload, or I can step aside and let you do it.
Take care,
--
-----------------------------------------------------------------
| ,''`. Stephen Gran |
| : :' : [EMAIL PROTECTED] |
| `. `' Debian user, admin, and developer |
| `- http://www.debian.org |
-----------------------------------------------------------------
signature.asc
Description: Digital signature

