藤本です。

From: 藤本尚邦 / FUJIMOTO Hisakuni <hisa / imasy.or.jp>
Subject: [ruby-dev:2781] Re: experimental release 1.1b9_21
Date: Fri, 29 May 1998 10:06:08 +0900

>   お願いなのですが、当面、BeOSの__declspec対応箇所については条件を
> 
> #ifdef __BEOS__
> 
> じゃなくて
> 
> #if defined(__BEOS__) && ! defined(__POWERPC__)
> 
> にしておいて頂けないでしょうか。PowerPCバージョンではこの問題がなく動

  これに合わせて前田さんの__declspec対応パッチ[ruby-dev:2779]自体を修
正したものを添付します。

=============================================================
 藤本尚邦  FUJIMOTO Hisakuni                hisa / imasy.or.jp
=============================================================

--- Makefile.in.orig	Thu May 28 23:44:36 1998
+++ Makefile.in	Thu May 28 23:44:50 1998
@@ -11,7 +11,7 @@
 @SET_MAKE@
 
 prefix = @prefix@
-CFLAGS = @CFLAGS@ -I@srcdir@ -I@includedir@
+CFLAGS = @CFLAGS@ -I@srcdir@ -I@includedir@ -DBUILDING_RUBY
 LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
 LIBS = @LIBS@ $(EXTLIBS)
 MISSING = @LIBOBJS@ @ALLOCA@
--- ruby.h.orig	Thu May 28 23:47:54 1998
+++ ruby.h	Thu May 28 23:47:39 1998
@@ -13,6 +13,16 @@
 #ifndef RUBY_H
 #define RUBY_H
 
+#if defined(__BEOS__) && !defined(__POWERPC__)
+#ifdef BUILDING_RUBY
+#define DECLSPEC __declspec(dllexport)
+#else
+#define DECLSPEC __declspec(dllimport)
+#endif
+#else
+#define DECLSPEC extern
+#endif
+
 #if defined(__cplusplus)
 extern "C" {
 #endif
@@ -148,9 +158,9 @@
 #define NIL_P(v) ((VALUE)(v) == Qnil)
 
 #ifdef __MACOS__ /* name conflict, AERegistory.h */
-extern VALUE cRubyObject;
+DECLSPEC VALUE cRubyObject;
 #else
-extern VALUE cObject;
+DECLSPEC VALUE cObject;
 #endif
 
 VALUE rb_class_of _((VALUE));
@@ -294,7 +304,7 @@
     void *data;
 };
 
-extern VALUE cData;
+DECLSPEC VALUE cData;
 
 #define DATA_PTR(dta) (RDATA(dta)->data)
 
@@ -465,7 +475,7 @@
 
 VALUE rb_equal _((VALUE,VALUE));
 
-extern VALUE verbose, debug;
+DECLSPEC VALUE verbose, debug;
 
 int rb_safe_level _((void));
 void rb_set_safe_level _((int));
--- ext/socket/socket.c.orig	Fri May 29 00:01:27 1998
+++ ext/socket/socket.c	Fri May 29 00:03:30 1998
@@ -41,8 +41,13 @@
 #define EWOULDBLOCK EAGAIN
 #endif
 
+#if defined(__BEOS__) && !defined(__POWERPC__)
+__declspec(dllimport) VALUE cIO;
+__declspec(dllimport) VALUE cInteger;
+#else
 extern VALUE cIO;
 extern VALUE cInteger;
+#endif
 
 VALUE cBasicSocket;
 VALUE cIPsocket;
@@ -55,7 +60,11 @@
 #endif
 VALUE cSocket;
 
+#if defined(__BEOS__) && !defined(__POWERPC__)
+__declspec(dllimport) VALUE eStandardError;
+#else
 extern VALUE eStandardError;
+#endif
 static VALUE eSocket;
 
 #ifdef SOCKS