[#18440] racc segv revisited — "Akinori MUSHA" <knu@...>

 次のバグの件なんですが、現時点では原因究明を含めて未解決という

24 messages 2002/10/02
[#18617] Re: racc segv revisited — "Akinori MUSHA" <knu@...> 2002/11/02

At Wed, 2 Oct 2002 23:19:59 +0900,

[ruby-dev:18573] Re: avoid substituting $(s) in a template of LIBPATHFLAG

From: nobu.nakada@...
Date: 2002-10-23 17:21:44 UTC
List: ruby-dev #18573
なかだです。

At Wed, 23 Oct 2002 22:16:04 +0900,
Ryo HAYASAKA wrote:
> 
> 早坂@北陸先端です.
> 
> NetBSD では, LIBPATHFLAG が " -L%1$s -Wl,-R%1$s" となるんですが, 下の
> diff の gsub のところで " -L%1$(s) -Wl,-R%1$(s)" に置き換えられてしま
> うので, 文法エラーとなってしまうようです.

すいません、確認洩れでした。

これは"$$"という形でエスケープするようにしたつもりだったんです
が、御指摘通りconfig.statusから変換するときの処理とconfigure.in
でのエスケープ自体を忘れてました。

これでどうでしょうか。


Index: configure.in
===================================================================
RCS file: /cvs/ruby/src/ruby/configure.in,v
retrieving revision 1.148
diff -u -2 -p -r1.148 configure.in
--- configure.in	21 Oct 2002 16:09:08 -0000	1.148
+++ configure.in	23 Oct 2002 17:05:28 -0000
@@ -780,5 +780,5 @@ if test "$with_dln_a_out" != yes; then
 			if test "$rb_cv_binary_elf" = yes; then
 			    LDFLAGS="-Wl,-export-dynamic"
-			    LIBPATHFLAG=' -L%1$s -Wl,-R%1$s'
+			    LIBPATHFLAG=' -L%1$$s -Wl,-R%1$$s'
 			fi
 			rb_cv_dlopen=yes ;;
Index: mkconfig.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/mkconfig.rb,v
retrieving revision 1.25
diff -u -2 -p -r1.25 mkconfig.rb
--- mkconfig.rb	21 Oct 2002 14:17:44 -0000	1.25
+++ mkconfig.rb	23 Oct 2002 17:17:16 -0000
@@ -40,5 +40,5 @@ File.foreach "config.status" do |line|
     next if $so_name and /^RUBY_SO_NAME$/ =~  name
     v = "  CONFIG[\"" + name + "\"] = " +
-      val.gsub(/\$\{?(\w+)\}?/) {"$(#{$1})"}.dump + "\n"
+      val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1?"$(#{$1})":$&}.dump + "\n"
     if fast[name]
       v_fast << v


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread