[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
zxid 0.53 Net::SAML undefined symbols
When compiling Net::SAML module in the zxid 0.53 release, the resulting
object has three undefined zxid_* symbols which causes Net::SAML bootstrap
$ make samlmod
$ cd Net; make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
Can't load 'blib/arch/auto/Net/SAML/SAML.so' for module Net::SAML:
blib/arch/auto/Net/SAML/SAML.so: undefined symbol: zxid_idp_soap_dispatch at
/usr/lib/perl5/5.8.8/i686-linux/DynaLoader.pm line 230.
at blib/lib/Net/SAML.pm line 11
Compilation failed in require at test.pl line 5.
BEGIN failed--compilation aborted at test.pl line 5.
$ nm -gC Net/blib/arch/auto/Net/SAML/SAML.so | grep " U " | grep zxid
Reviewing the zxid source, I see that these functions (or code where each
might be called) are currently disabled in compiler directives (#if
0...endif); thus, gcc excluded these symbols when bulding libzxid. It
appears the SAML_wrap.c SWIG wrapper may be out of sync with the zxid lib.
I tried rebuilding SAML_wrap.c with:
make cleaner; make dep ENA_GEN=1 && make cleany && make genwrap ENA_GEN=1
&& make all ENA_GEN=1
but it didn't exclude the three functions. So I just manually commented
them out in SAML_wrap.c. This appears to have resolved the issue.
Is there a simpler way to specify zxid symbols to skip when (re)generating