From: MIANAKAWA masaru Date: 2001-02-02T22:57:39+09:00 Subject: [ruby-list:27461] apache+mod_ruby couldn't be started (solved) 皆川@茨大といいます。 ruby-1.6.2 は先ほど install できましたが、 それまで何の問題もなく動いていた httpd(apache+mod_ruby)が 起動しなくなってしまいました。 何とか自力で解決できましたが、一応報告しておきます。 環境は HP-UX10.20, gcc-2.95.2, GNUmake-3.79 で、 apache-1.3.17 は DSO が使えるように build してます。 まず、apache を stop し ruby-1.6.2 を install しました。 その後、 apachectl start すると 以下のエラーメッセージを出して start してくれませんでした。 earth@aoi2~% sudo apachectl start /usr/lib/dld.sl: Unresolved symbol: __umoddi3 (code) from /usr/local/lib/lib ruby.sl /usr/lib/dld.sl: Unresolved symbol: __ashldi3 (code) from /usr/local/lib/lib ruby.sl Syntax error on line 47 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/libexec/mod_ruby.so into server: 外部参照のリンケージが解決されていません。 /usr/local/apache/bin/apachectl start: httpd could not be started ML で __umoddi3 を検索したところ、 上の未定義シンボルは libgcc.a にあるということが分かったので、 ar x /opt/gcc/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.95.2/libgcc.a で _ashldi3.o と _umoddi3.o を取り出し、 ruby の Makefile を以下のように手直しして 102c102 < $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $@ --- > $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o _ashldi3.o _umoddi3.o $(SOLIBS) -o $@ ruby を make, install し直した結果、httpd は無事起動しました。 結局これで何とかなったんですが、なんか気持ち悪いです。 序でに、mod_ruby の Makefile.RB ですが、生成された Makefile を見ると XLDFLAGS = -Wl,+s,+b,$(prefix)/lib LDSHARED = ld -b DLDFLAGS = -E となってしまって、リンク時にエラーになってしまいました。 XLDFLAGS = +s +b/usr/local/lib LDSHARED = ld -b DLDFLAGS = -E になってほしいので、以下の場当たり的なパッチでしのぎました。 ----ここから---- --- Makefile.RB.orig Fri Feb 2 22:05:38 2001 +++ Makefile.RB Fri Feb 2 22:18:51 2001 @@ -94,6 +95,9 @@ #' else $XLDFLAGS = CONFIG["XLDFLAGS"] + if CONFIG["LDSHARED"] == "ld -b" && CONFIG["DLDFLAGS"] == "-E" + $XLDFLAGS.gsub!(/-Wl,/,'').gsub!(/,/,' ') + end $DLDFLAGS = CONFIG["DLDFLAGS"] end @@ -130,6 +134,7 @@ RUBY_INSTALL_NAME = #{CONFIG["RUBY_INSTALL_NAME"]} RUBY = $(RUBY_INSTALL_NAME) +prefix = #{CONFIG["prefix"]} CFLAGS = #{CONFIG["CCDLFLAGS"]} -I#{$hdrdir} -I#{$APACHE_INCLUDEDIR} \\ #{$ERUBY_CFLAGS} #{$CFLAGS} LIBS = #{CONFIG["LIBS"]} ----ここまで---- 以上、ご報告まで。 ---------------------------------------------------------------- name = "皆川賢";yomi = "ミナカワマサル";pgpkey = "See header."