From: Rudi Cilibrasi Date: 2007-10-04T06:53:18+09:00 Subject: problem with OpenMP in Ruby extension Hi everybody, I am the main developer of CompLearn, an open-source machine learning library for scientific researchers. I have written a Ruby binding for CompLearn called complearn-ruby. It has worked fine in the past. But it has a problem ever since I converted the base library (libcomplearn) to use OpenMP for multicore processor support. If I just try to use the simplest approach that has worked in the past in my extconf.rb, I get the following problem when I try to require the C-extension Ruby binding complearn4r.so and use the multicore part of the system: ruby: symbol lookup error: /usr/lib/libcomplearn.so.1: undefined symbol: GOMP_pa rallel_start To try to fix this error, I adjusted the extconf.rb to include this line: have_library('gomp', 'main') And rebuilding works but running a simple test program (just trying to require complearn) fails in a different way than before: /home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/complearn4r.s o: libgomp.so.1: shared object cannot be dlopen()ed - /home/cilibrar/rlc/project s/complearn/complearn-ruby/ext/complearn/complearn4r.so (LoadError) from /home/cilibrar/rlc/projects/complearn/complearn-ruby/lib/complearn. rb:2 from tests/t2.rb:1:in `require' from tests/t2.rb:1 I don't know what else to try and wonder if anybody else can offer a clue? I have tried for a long time experimenting with CFLAGS, CPPFLAGS, LDFLAGS, and -fopenmp among other settings but I still cannot seem to figure out a solution. I have put the source code for this problem up at http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-1.0.4.tar.gz and http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-ruby-1.0.4.tar.gz I would appreciate greatly any help anybody can offer in this problem. Thank you for your attention, Rudi -- "We can try to do it by breaking free of the mental prison of separation and exclusion and see the world in its interconnectedness and non-separability, allowing new alternatives to emerge." -- after Vandana Shiva