symbol lookup error: /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/wsservice.so: undefined symbol: axutil_error_create
I was wondering if someone may be able to assist with a problem in getting the ruby extensions installed. I have installed the C dependency fine, and am able to run the sample tests. Echoing the XML i can see the results in the log. I installed the C dependency from an RPM on CentOS 5, and set up the environment as such:
# echo $WSFC_HOME
/opt/wso2/wsf_c
# echo $LD_LIBRARY_PATH
/usr/local/lib:/opt/wso2/wsf_c/lib
I added the options to /usr/lib64/ruby/1.8/x86_64-linux/rbconfig.rb as instructed.
The axis2_http_server starts fine, the rails app that i generated from the samples works fine (Mongrel successfully starts) However, when i run the "ruby echo_client.rb" command i get the following error:
# ruby echo_client.rb
ruby: symbol lookup error: /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/wsservice.so: undefined symbol: axutil_error_create
I have also tried adding the lib path to /etc/ld.so.conf.d, in a file which referrences all of the above pathways. (for /opt/wso2/wsf_c/lib and /usr/lib64/ruby/site_ruby/1.8/x86_64-linux) But recieve the same error.
When building the ruby extension, it seems to not be finding what it needs:
root@rubydev /mgr/jason_ruby_tools/src/wso2-wsf-ruby-src-1.0.0
# sh build.sh
checking for main() in -laxis2_axiom... no
checking for main() in -laxutil... no
checking for main() in -laxis2_parser... no
checking for main() in -laxis2_engine... no
checking for main() in -laxis2_http_common... no
checking for main() in -laxis2_http_sender... no
checking for main() in -laxis2_http_receiver... no
checking for main() in -lomxmlsec... no
checking for main() in -loxstokens... no
checking for main() in -lsaml... no
checking for main() in -lomopenssl... no
checking for main() in -lneethi... no
checking for main() in -lneethi_util... no
checking for main() in -lmod_rampart... no
creating Makefile
make: Nothing to be done for `all'.
make: Nothing to be done for `install'.
checking for main() in -laxis2_axiom... no
checking for main() in -laxutil... no
checking for main() in -laxis2_minizip... no
checking for main() in -laxis2_parser... no
checking for main() in -laxis2_engine... no
checking for main() in -laxis2_http_common... no
checking for main() in -laxis2_http_sender... no
checking for main() in -laxis2_http_receiver... no
checking for main() in -laxis2_engine... no
checking for main() in -lneethi... no
checking for main() in -lneethi_util... no
checking for main() in -lmod_rampart... no
creating Makefile
make: Nothing to be done for `all'.
make: Nothing to be done for `install'.
root@rubydev /mgr/jason_ruby_tools/src/wso2-wsf-ruby-src-1.0.0
Thoughts anyone?
- Login or register to post comments
- Printer friendly version
- 122 reads










Re: symbol lookup error: /usr/lib64/ruby/site_ruby/1.8/x86_64-li
Yes, you are right, build.sh couldn't find the libraries WSF/Ruby requires. Did you locate the rbconfig.rb file using the script provided? Could you please check whether there are more than one rbconfig.rb file exists? If so add the configurations to that file too.
Let us know the results,
regards,
Ruwan Janapriya
I did manage to find a
I did manage to find a couple other rbconfig.rb scripts, which where just in some source that i had downloaded. I tried adding those options to those files as well, and also tried removing the source files from the machine since they are not in use. (the version of ruby on this machine is an rpm, the ruby sources im referring to are builds for another box)
# ruby find_config_h.rb
/usr/lib64/ruby/1.8/x86_64-linux/config.h
The "ruby find_config_h.rb" script pointed me to the location where i made my initial edits, I looked over the values in config.h and i noticed:
#define RUBY_LIB "/usr/lib/ruby/1.8"
#define RUBY_SITE_LIB "/usr/lib/ruby/site_ruby"
#define RUBY_SITE_LIB2 "/usr/lib/ruby/site_ruby/1.8"
#define RUBY_DEPRECATED_OLD_SITE_LIB "/usr/lib64/site_ruby"
#define RUBY_DEPRECATED_OLD_SITE_LIB2 "/usr/lib64/site_ruby/1.8"
#define RUBY_DEPRECATED_LIB "/usr/lib64/ruby/1.8"
#define RUBY_DEPRECATED_SITE_LIB "/usr/lib64/ruby/site_ruby"
#define RUBY_DEPRECATED_SITE_LIB2 "/usr/lib64/ruby/site_ruby/1.8"
#define RUBY_PLATFORM "x86_64-linux"
#define RUBY_ARCHLIB "/usr/lib64/ruby/1.8/x86_64-linux"
#define RUBY_SITE_ARCHLIB "/usr/lib64/ruby/site_ruby/1.8/x86_64-linux"
#define RUBY_DEPRECATED_OLD_SITE_ARCHLIB "/usr/lib64/site_ruby/1.8/x86_64-linux"
This is a 64 bit machine, but RUBY_LIB seems to point to the 32 bit location, and the deprecated pathway points to the 64 bit location. Because the contents of these locations are very different, I am assuming that the 64 bit libs depend on some of the 32 bit libs, but im not sure about that. Does the above look correct? Inside of rbconfig.rb my additions look like:
CONFIG["WSFC_HOME"] = "/opt/wso2/wsf_c"
CONFIG["WSF_LOG_DIR"] = "/tmp"
CONFIG["WSF_LOG_LEVEL"] = "4"
I tried moving these lines around in different places in the config and it made no difference. For some reason that build.sh script is still not finding the libs needed.
root@rubydev /mgr/jason_ruby_tools/src/wso2-wsf-ruby-src-1.0.0
# sh build.sh
checking for main() in -laxis2_axiom... no
checking for main() in -laxutil... no
checking for main() in -laxis2_parser... no
checking for main() in -laxis2_engine... no
checking for main() in -laxis2_http_common... no
checking for main() in -laxis2_http_sender... no
checking for main() in -laxis2_http_receiver... no
checking for main() in -lomxmlsec... no
checking for main() in -loxstokens... no
checking for main() in -lsaml... no
checking for main() in -lomopenssl... no
checking for main() in -lneethi... no
checking for main() in -lneethi_util... no
checking for main() in -lmod_rampart... no
creating Makefile
make: Nothing to be done for `all'.
make: Nothing to be done for `install'.
checking for main() in -laxis2_axiom... no
checking for main() in -laxutil... no
checking for main() in -laxis2_minizip... no
checking for main() in -laxis2_parser... no
checking for main() in -laxis2_engine... no
checking for main() in -laxis2_http_common... no
checking for main() in -laxis2_http_sender... no
checking for main() in -laxis2_http_receiver... no
checking for main() in -laxis2_engine... no
checking for main() in -lneethi... no
checking for main() in -lneethi_util... no
checking for main() in -lmod_rampart... no
creating Makefile
make: Nothing to be done for `all'.
make: Nothing to be done for `install'.
root@rubydev /mgr/jason_ruby_tools/src/wso2-wsf-ruby-src-1.0.0
I am running out of ideas on how to get this working.. Any help would be greatly appreciated.Thanks!
Resolved, sort of....
I never did manage to figure why these files where not being recognized. I re-imaged a fresh install of CentOS and tried to build things on a completely stock version of the OS, and i did not encounter this error. I will have to look more into what is different with the images which we use for our production env.
However, i am now running into this error, which seems to be an error that was already encountered. The solution was to build the ruby extensions from the latest SVN checkout, which for me is not building. Details here:
http://wso2.org/forum/thread/3083
Again, thanks for your help. I am really wanting to at least get a prototype up to show off to the rest of operations. We are in need of a web service solution which provides an interface to sending high volumes of email for member subscription newsletters. Your product looks great, but i just cant seem to get these extensions to compile.