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 |
 -----------------------------------------------------------------

Attachment: signature.asc
Description: Digital signature

Reply via email to