NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

more tails of woe with the horrors of shared libraries (Undefined symbol "svn_fs_fs__init")

oy, here I go again with weird dynamic loader problems.

$ git svn clone svn://svn.[[edited]]
Can't load 
 for module SVN::_Core: /usr/pkg/lib/ Undefined symbol 
"svn_fs_fs__init" (symnum = 54) at 
/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/ line 230.
 at /usr/pkg/lib/perl5/vendor_perl/5.8.0/i386-netbsd-thread-multi/SVN/ 
line 59
BEGIN failed--compilation aborted at 
/usr/pkg/lib/perl5/vendor_perl/5.8.0/i386-netbsd-thread-multi/SVN/ line 
Compilation failed in require at /usr/pkg/libexec/git-core//git-svn line 29.

A casual glance at SVN/_Core/ shows everything OK:

$ ldd 
        -lpthread.0 => /usr/lib/
        -laprutil-0.0 => /usr/pkg/lib/
        -lexpat.1 => /usr/pkg/lib/
        -lm.0 => /usr/lib/
        -lm.0 => /usr/lib/
        -lcrypt.0 => /usr/lib/
        -lapr-0.0 => /usr/pkg/lib/
        -lintl.0 => /usr/lib/
        -lsvn_client-1.0 => /usr/pkg/lib/
        -lz.1 => /usr/lib/
        -lsvn_delta-1.0 => /usr/pkg/lib/
        -lsvn_fs-1.0 => /usr/pkg/lib/
        -lsvn_ra-1.0 => /usr/pkg/lib/
        -lsvn_repos-1.0 => /usr/pkg/lib/
        -lsvn_wc-1.0 => /usr/pkg/lib/
        -lsvn_diff-1.0 => /usr/pkg/lib/
        -lsvn_subr-1.0 => /usr/pkg/lib/
        -lsvn_swig_perl-1.0 => /usr/pkg/lib/
        -lperl => 

$ ldd /usr/pkg/lib/
        -lm.0 => /usr/lib/
        -lm.0 => /usr/lib/
        -lcrypt.0 => /usr/lib/
        -lpthread.0 => /usr/lib/
        -lapr-0.0 => /usr/pkg/lib/
        -lintl.0 => /usr/lib/

However indeed things are apparently busted here:

$ nm /usr/pkg/lib/ | fgrep svn_fs_fs
         U svn_fs_fs__init

Oh, how I hate and dread stupid dynamically loaded modules and libraries!

Why oh why oh why oh why didn't this fail during the build!?!?!?!?!?!?!?

According to google someone did report the same error message on the
Subversion users mailing list, but there was no real explanation and his
supposed solution is totally inapplicable to my configuration.

Turns out the real problem was that _should_ depend on, but because of twisted lossage somehow this fact
fails to get registered if you're trying to build both static and
dynamic libraries (which should be possible -- it works if you do it

Oddly the static link of svn itself works, but it leaves the shared
libraries in a shambles and p5-subversion broken as above.

libtool really must be abolished.  Few people seem to learn to use it
properly, and partly because it's still broken by design after all these


                                                Greg A. Woods
                                                Planix, Inc.

<>       +1 416 218 0099

Attachment: pgpp9sa7qDMm5.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index