I've been contributing to the development of the perl Fuse binding module recently, and have discovered an issue with the libfuse that MacFuse supplies as part of its distribution. It seems that normally, the symbol bindings are handled lazily, i.e., whenever the symbol is specifically asked for, it's resolved (as well as any symbols which depend upon the needed ones). Unfortunately, by default, as part of Perl's tests, it sets the environment variable 'PERL_DL_NONLAZY' to 1 when doing 'make test', which causes shared library loading to pass the RTLD_NOW option flag (which causes all symbols to be resolved when the library is loaded).
This exposes the problem I mention; specifically that libfuse has an unsafisfied link dependency for the symbol '_iconv' which is only exposed when running 'make test'. Apparently dynamically loaded libraries don't reference the process namespace on OS X, so even though libiconv is linked to our shared library, the dependency doesn't get resolved, causing the library load to fail. The current version of the perl-Fuse sources has a workaround in Makefile.PL to force 'make test' *not* to set the environment variable I mention above; however, this shouldn't happen in the first place, so libiconv should be either linked statically, or added to the runtime library list, so that this doesn't happen. I know development has slowed, but whenever a new release does come out, can this issue be addressed? Thanks, -- Derrik Pates [email protected] -- You received this message because you are subscribed to the Google Groups "MacFUSE" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/macfuse?hl=en.
