[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03091] Re: mod_ruby problem solved

From: Dave Thomas <Dave@...>
Date: 2000-06-02 21:21:38 UTC
List: ruby-talk #3091
matz@netlab.co.jp (Yukihiro Matsumoto) writes:

> Hi,
> 
> In message "[ruby-talk:02770]"
>     on 00/05/11, Andrew Hunt <Andy@Toolshed.Com> writes:
> 
> |I'm trying to install mod_ruby 0.17 with the latest Ruby from CVS,
> |and I'm running into a spot of trouble.
> |
> |Using the Makefile produced by Makefile.rb, the module fails to load --
> |it complains that:
> |
> |Cannot load /toolshed/local/libexec/mod_ruby.so into server: 
> |/toolshed/local/libexec/mod_ruby.so: undefined symbol: rb_io_close
> |/toolshed/local/bin/apachectl start: httpd could not be started
> |
> |And indeed, there's nothing in the Makefile that indicates Ruby should 
> |be linked in.  So I thought I'd be daring and add libruby.a into the 
> |shared obejct link.
> 
> Hmm, Makefile.RB should find the place for libruby.a or libruby.so
> from compilation information, which is placed in rbconfig.rb.
> 
> My Makefile contains the line:
> 
>   LIBRUBYARG = -L/usr/lib -lruby
> 
> to link the interpreter.

Well, I finally tracked it down. I feel kind of silly not to find it
earlier, but at the same it, it _is_ a bug, either in mkmf or in
mod_ruby's Makefile.RB.

We were all on the right track earlier when we were looking at
libraries. However, the problem turned to to be subtle.

When you run 'ruby Makefile.RB' in the mod_ruby directory, you get
a Makefile that contains:

     RUBY_INSTALL_NAME = ruby
     LIBRUBYARG = $(LIBRUBY_A)     <<<<<<<<< bug<<<<<<<<<<<<<<
     OBJS = mod_ruby.o ruby_config.o apachelib.o eruby.o
     TARGET = mod_ruby.so

The link line has

$(TARGET): $(OBJS)
      $(LDSHARED) $(DLDFLAGS) $(XLDFLAGS) -o $(TARGET) $(OBJS) $(LIBRUBYARG)...

LIBRUBYARG is empty, but the link doesn't care, because it assumes it
will resolve things when the .so is loaded.


Now the part I don't understand. When we initially had all these
problems, we tried building Ruby with --enable-shared. This left a
libruby.so lying around. When mod_ruby loaded, it linked into this
libruby.so, and things failed--it seems to go wrong whenever the Ruby
script tried to do output.

Any, today I did two things:

1. I did a 'find / -name libruby.so -exec rm {}\;'

2. I manually edited the Makefile in mod_ruby to include

   LIBRUBYARG = -L /tc/usr/lib/ruby/1.5/i686-linux -lruby

make, make install, and it all ran first time!


So, there seem to be two problems:

1. mod_ruby's Makefile has ($LIBRUBY_A) in it, rather than the -L -l

2. mod_ruby doesn't seem to work with a shared libruby.so (it could
   well be that _nothing_ works with libruby.so on my box)


Does this all make sense?


Dave


In This Thread