[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

21 messages 2003/09/04
[#21346] Re: $SAFE=4 での autoload — nobu.nakada@... 2003/09/04

なかだです。

[#21359] Re: $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...> 2003/09/05

永井@知能.九工大です.

[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>

西山和広です。

15 messages 2003/09/28

[ruby-dev:21407] Re: Building 1.8.0 on Solaris with Sun CC

From: nobu.nakada@...
Date: 2003-09-25 13:00:11 UTC
List: ruby-dev #21407
なかだです。

At Thu, 25 Sep 2003 13:51:56 +0900,
桑村慎哉 wrote:
> masa> Sun CC でコンパイルが通らないという [ruby-core:1547] ですけど、以下の
> masa> ようにすると問題なくコンパイルできましたので、一応お知らせしておきます。
> 
> asmにvolatileがついているのが気に入らないみたいなので、
> 私は単にvolatileを取ってコンパイルしました。
> パッチは最後につけます。

要するにasm volatileはgccのみということでしょうか。

> 32ビットはこれでいいのですが、64ビットは
>     asm volatile ("flushw" : :);
> のコンパイルがエラーになり、よく分からなかったので手付かずです。
> パッチのままだと32ビットのときと同じ命令になります。

どんなエラーでしょうか。

> さらに、Sun ccはもう一つ問題があります。拡張ライブラリが一部作成されません。
> 例えばreadlineの場合、readline.hをチェックしている部分が次のようになります。

rbconfig.rbに設定されるコマンドにリダイレクトを想定してなかった
ので、Shellwordsを使っています。これを単純にsystemだけにすれば
よさそうに思えます。


Index: defines.h
===================================================================
RCS file: /cvs/ruby/src/ruby/defines.h,v
retrieving revision 1.31
diff -u -2 -p -r1.31 defines.h
--- defines.h	24 Jul 2003 07:05:28 -0000	1.31
+++ defines.h	25 Sep 2003 12:57:13 -0000
@@ -140,11 +140,16 @@ static inline void
 flush_register_windows(void)
 {
-# if defined(__sparc_v9__) || defined(__arch64__)
-    asm volatile ("flushw" : :);
+    asm
+#ifdef __GNUC__
+	volatile
+#endif
+# if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)
+	("flushw" : :)
 # elif defined(linux) || defined(__linux__)
-    asm volatile ("ta  0x83");
+	("ta  0x83")
 # else /* Solaris, OpenBSD, NetBSD, etc. */
-    asm volatile ("ta  0x03");
+	("ta  0x03")
 # endif /* trap always to flush register windows if we are on a Sparc system */
+	;
 }
 #  define FLUSH_REGISTER_WINDOWS flush_register_windows()
Index: lib/mkmf.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/mkmf.rb,v
retrieving revision 1.149
diff -u -2 -p -r1.149 mkmf.rb
--- lib/mkmf.rb	12 Sep 2003 03:16:29 -0000	1.149
+++ lib/mkmf.rb	25 Sep 2003 05:30:56 -0000
@@ -166,7 +166,6 @@ def xsystem command
   Config.expand(command)
   Logging::open do
-    command = Shellwords.shellwords(command)
-    puts command.quote.join(' ')
-    system(*command)
+    puts command.quote
+    system(command)
   end
 end


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

In This Thread