From: MAEDA Shugo Date: 1998-11-17T22:50:47+09:00 Subject: [ruby-dev:3591] patch for BeOS 前田@大阪大学です。 BeOS用のパッチです。 変更点は、 1) qsort()をrb_qsort()にrename。 2) local_var_append()/reg_free()をヘッダファイル/ruby.def.inから削除。 3) declspec関連のための修正。 3)については以前、名前の問題で却下されたのですが、EXTERNを使うように しました。 名前の衝突を避けるためにRB_EXTERNなりRB_EXPORTにした方が良いのかも しれませんが...。 # BeOS R4ではdeclspecを使わずに_EXPORTを付けるだけで良くなるみたいです。 -- 前田 修吾 (mailto:shugo@aianet.ne.jp) --- array.c~ Mon Nov 9 18:11:48 1998 +++ array.c Tue Nov 17 21:05:53 1998 @@ -795,8 +795,8 @@ if (RARRAY(ary)->len == 0) return ary; ary_modify(ary); - qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), - iterator_p()?sort_1:sort_2); + rb_qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), + iterator_p()?sort_1:sort_2); return ary; } --- intern.h~ Thu Oct 15 13:51:39 1998 +++ intern.h Tue Nov 17 21:17:36 1998 @@ -200,7 +200,6 @@ void yywhile_loop _((int, int)); int rb_is_const_id _((ID)); int rb_is_instance_id _((ID)); -void local_var_append _((ID)); VALUE backref_get _((void)); void backref_set _((VALUE)); VALUE lastline_get _((void)); --- re.h~ Wed May 6 12:10:14 1998 +++ re.h Tue Nov 17 21:17:44 1998 @@ -33,5 +33,4 @@ VALUE reg_regcomp _((VALUE)); int reg_search _((VALUE, VALUE, int, int)); VALUE reg_regsub _((VALUE, VALUE, struct re_registers *)); -void reg_free _((Regexp *)); #endif --- util.c~ Tue Oct 6 11:45:05 1998 +++ util.c Tue Nov 17 21:05:41 1998 @@ -648,7 +648,7 @@ ((*cmp)(b,c)<0 ? b : ((*cmp)(a,c)<0 ? c : a)) : \ ((*cmp)(b,c)>0 ? b : ((*cmp)(a,c)<0 ? a : c)) ) -void qsort (base, nel, size, cmp) void* base; size_t nel; size_t size; int (*cmp)(); +void rb_qsort (base, nel, size, cmp) void* base; size_t nel; size_t size; int (*cmp)(); { register char *l, *r, *m; /* l,r:left,right group m:median point */ register int t, eq_l, eq_r; /* eq_l: all items in left group are equal to S */ --- beos/ruby.def.in~ Mon Jun 22 18:36:28 1998 +++ beos/ruby.def.in Tue Nov 17 21:09:05 1998 @@ -134,7 +134,6 @@ iterator_p lastline_get lastline_set -local_var_append memclear mod_constants module_new @@ -264,7 +263,6 @@ rb_undef_method rb_yield rb_yield_0 -reg_free reg_last_match reg_match reg_match2 --- defines.h~ Mon Nov 9 18:11:48 1998 +++ defines.h Tue Nov 17 21:51:52 1998 @@ -35,7 +35,15 @@ #endif #ifndef EXTERN -#define EXTERN extern +# if defined(__BEOS__) && defined(__INTEL__) +# ifdef BUILDING_RUBY +# define EXTERN __declspec(dllexport) +# else +# define EXTERN __declspec(dllimport) +# endif +# else +# define EXTERN extern +# endif #endif #ifdef sparc --- configure.in~ Mon Nov 16 11:03:49 1998 +++ configure.in Tue Nov 17 21:47:16 1998 @@ -555,11 +555,15 @@ LIBRUBY='libruby.a' LIBRUBYARG='libruby.a' SOLIBS= +LIBRUBYFLAGS= if test "$host_os" = "beos"; then CFLAGS="$CFLAGS -relax_pointers" LIBRUBY='libruby.so' LIBRUBYARG='-lruby' SOLIBS='-lnet' + if test "$host_cpu" = "i586"; then + LIBRUBYFLAGS='-DBUILDING_RUBY' + fi echo creating ruby.def case "$host_cpu" in powerpc*) @@ -595,6 +599,7 @@ AC_SUBST(LIBRUBY) AC_SUBST(LIBRUBYARG) AC_SUBST(SOLIBS) +AC_SUBST(LIBRUBYFLAGS) ri_prefix= test "$program_prefix" != NONE && --- Makefile.in~ Tue Nov 17 12:48:57 1998 +++ Makefile.in Tue Nov 17 21:26:42 1998 @@ -19,6 +19,7 @@ LDSHARED = @LDSHARED@ DLDFLAGS = @DLDFLAGS@ SOLIBS = @SOLIBS@ +LIBRUBYFLAGS = @LIBRUBYFLAGS@ binsuffix = @binsuffix@ @@ -124,102 +125,142 @@ mv -f y.tab.c parse.c alloca.o: @srcdir@/missing/alloca.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/alloca.c + $(CC) -I. $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/alloca.c crypt.o: @srcdir@/missing/crypt.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/crypt.c + $(CC) -I. $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/crypt.c dup2.o: @srcdir@/missing/dup2.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/dup2.c + $(CC) -I. $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/dup2.c flock.o: @srcdir@/missing/flock.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/flock.c + $(CC) -I. $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/flock.c memcmp.o: @srcdir@/missing/memcmp.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memcmp.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/memcmp.c memmove.o: @srcdir@/missing/memmove.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memmove.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/memmove.c mkdir.o: @srcdir@/missing/mkdir.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/mkdir.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/mkdir.c setenv.o: @srcdir@/missing/setenv.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/setenv.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/setenv.c vsnprintf.o: @srcdir@/missing/vsnprintf.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/vsnprintf.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/vsnprintf.c strcasecmp.o: @srcdir@/missing/strcasecmp.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strcasecmp.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strcasecmp.c strchr.o: @srcdir@/missing/strchr.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strchr.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strchr.c strdup.o: @srcdir@/missing/strdup.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strdup.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strdup.c strerror.o: @srcdir@/missing/strerror.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strerror.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strerror.c strftime.o: @srcdir@/missing/strftime.c - $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strftime.c + $(CC) -I. $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strftime.c strstr.o: @srcdir@/missing/strstr.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strstr.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strstr.c strtol.o: @srcdir@/missing/strtol.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtol.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strtol.c strtoul.o: @srcdir@/missing/strtoul.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtoul.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/strtoul.c nt.o: @srcdir@/missing/nt.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/nt.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/nt.c x68.o: @srcdir@/missing/x68.c - $(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/x68.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c @srcdir@/missing/x68.c # Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: ### -parse.o: parse.y ruby.h config.h defines.h intern.h env.h node.h st.h regex.h util.h lex.c +parse.o: parse.c ruby.h config.h defines.h intern.h env.h node.h st.h regex.h util.h lex.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< ### array.o: array.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< bignum.o: bignum.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< class.o: class.c ruby.h config.h defines.h intern.h node.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< compar.o: compar.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< dir.o: dir.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< dln.o: dln.c config.h defines.h dln.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< dmyext.o: dmyext.c + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< enum.o: enum.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< error.o: error.c ruby.h config.h defines.h intern.h env.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< eval.o: eval.c ruby.h config.h defines.h intern.h node.h env.h rubysig.h st.h dln.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< file.o: file.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< fnmatch.o: fnmatch.c config.h fnmatch.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< gc.o: gc.c ruby.h config.h defines.h intern.h rubysig.h st.h node.h env.h re.h regex.h -glob.o: config.h glob.c fnmatch.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< +glob.o: glob.c config.h fnmatch.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< hash.o: hash.c ruby.h config.h defines.h intern.h st.h rubysig.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< inits.o: inits.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< io.o: io.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h -main.o: main.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< marshal.o: marshal.c ruby.h config.h defines.h intern.h rubyio.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< math.o: math.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< numeric.o: numeric.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< object.o: object.c ruby.h config.h defines.h intern.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< pack.o: pack.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< process.o: process.c ruby.h config.h defines.h intern.h rubysig.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< random.o: random.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< range.o: range.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< re.o: re.c ruby.h config.h defines.h intern.h re.h regex.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< regex.o: regex.c config.h regex.h util.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< ruby.o: ruby.c ruby.h config.h defines.h intern.h dln.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< signal.o: signal.c ruby.h config.h defines.h intern.h rubysig.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< sprintf.o: sprintf.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< st.o: st.c config.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< string.o: string.c ruby.h config.h defines.h intern.h re.h regex.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< struct.o: struct.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< time.o: time.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< util.o: util.c ruby.h config.h defines.h intern.h util.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< variable.o: variable.c ruby.h config.h defines.h intern.h env.h node.h st.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< version.o: version.c ruby.h config.h defines.h intern.h version.h + $(CC) $(CFLAGS) $(CPPFLAGS) $(LIBRUBYFLAGS) -c $< + +main.o: main.c ruby.h config.h defines.h intern.h + $(CC) $(CFLAGS) $(CPPFLAGS) -c $<