[Anthy-dev 3297] Re: SigScheme 0.7.1 リリース

Back to archive index

NIIBE Yutaka gniib****@m17n*****
2007年 1月 6日 (土) 15:07:15 JST


0.7.2 が出てたのに気がついたので、これを元に再パッケージしました。

下記 0.7.2 に対する変更です。public domain とします。

135 行目からの変更は、hppa のために必要でした。
hppa で 0.7.1 まで通っていた build が 0.7.2 でこけたので
あてづっぽうですがこれで対応しました。この修正でこけなくなってます。

test-c/sscm-test.h の変更は format string の指定が間違っていたのに対す
る修正です。m68k の build で気がつきました。%u は修飾ではなくて、%d な
どと同じく独立のものだと思います。printf(3) を確認下さい。

test-c/test-alignment.c の修正は、ここは m68k ではこけることがわかって
いるので、どうにかしたいところという意味合いです。

--- sigscheme-0.7.2.orig/libgcroots/gcroots.c
+++ sigscheme-0.7.2/libgcroots/gcroots.c
@@ -119,6 +119,10 @@
  * Substitution functions for original Boehm GC
  */

+#if defined(SPARC) || defined(IA64)
+extern  ptr_t GC_save_regs_ret_val;
+#endif
+
 /* mark immediately despite the name 'push_current_stack' */
 void
 GC_push_current_stack(ptr_t cold_gc_frame, void *context)
@@ -135,7 +139,7 @@
 #ifdef STACK_GROWS_DOWN
     (*ctx->mark)(&stack_top + 1, ctx->stack_base, FALSE, FALSE);
 #else
-    (*ctx->mark)(ctx->stack_base + 1, &stack_top, FALSE, FALSE);
+    (*ctx->mark)(ctx->stack_base, &stack_top, FALSE, FALSE);
 #endif

 #ifdef IA64
--- sigscheme-0.7.2.orig/libgcroots/configure
+++ sigscheme-0.7.2/libgcroots/configure
@@ -5972,6 +5972,9 @@
 _ACEOF

     ;;
+ sparc-*-linux*)
+    machdep="mach_dep.lo sparc_mach_dep.lo"
+    ;;
  sparc-*-netbsd*)
     machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
     ;;
--- sigscheme-0.7.2.orig/libgcroots/configure.ac
+++ sigscheme-0.7.2/libgcroots/configure.ac
@@ -361,6 +361,9 @@
     machdep="mach_dep.lo"
     AC_DEFINE(NO_EXECUTE_PERMISSION)
     ;;
+ sparc-*-linux*)
+    machdep="mach_dep.lo sparc_mach_dep.lo"
+    ;;
  sparc-*-netbsd*)
     machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
     ;;
--- sigscheme-0.7.2.orig/libgcroots/include/private/gcroots_priv.h
+++ sigscheme-0.7.2/libgcroots/include/private/gcroots_priv.h
@@ -27,6 +27,7 @@
 #define GC_with_callee_saves_pushed GCROOTS_with_callee_saves_pushed
 #define GC_noop1                    GCROOTS_noop1
 #define GC_jmp_buf                  GCROOTS_jmp_buf
+#define GC_save_regs_in_stack	    GCROOTS_save_regs_in_stack

 #ifdef __cplusplus
 }
--- sigscheme-0.7.2.orig/test-c/sscm-test.h
+++ sigscheme-0.7.2/test-c/sscm-test.h
@@ -359,20 +359,20 @@
 #define TST_EQ_INT(x, a, desc)  TST_EQUALITY(TST_C_EQUAL, intmax_t, \
                                              "%jd", x, a, desc)
 #define TST_EQ_UINT(x, a, desc) TST_EQUALITY(TST_C_EQUAL, uintmax_t, \
-                                             "%ujd", x, a, desc)
+                                             "%ju", x, a, desc)
 #define TST_NEQ_INT(x, a, desc)  TST_EQUALITY(!TST_C_EQUAL, intmax_t, \
                                               "%jd", x, a, desc)
 #define TST_NEQ_UINT(x, a, desc) TST_EQUALITY(!TST_C_EQUAL, uintmax_t, \
-                                              "%ujd", x, a, desc)
+                                              "%ju", x, a, desc)
 #else  /* not have intmax_t */
 #define TST_EQ_INT(x, a, desc)  TST_EQUALITY(TST_C_EQUAL, long, \
                                              "%ld", x, a, desc)
 #define TST_EQ_UINT(x, a, desc) TST_EQUALITY(TST_C_EQUAL, unsigned long, \
-                                             "%uld", x, a, desc)
+                                             "%lu", x, a, desc)
 #define TST_NEQ_INT(x, a, desc)  TST_EQUALITY(!TST_C_EQUAL, long, \
                                              "%ld", x, a, desc)
 #define TST_NEQ_UINT(x, a, desc) TST_EQUALITY(!TST_C_EQUAL, unsigned
long, \
-                                             "%uld", x, a, desc)
+                                             "%lu", x, a, desc)
 #endif /* not have intmax_t */

 #define TST_EQ_STR(x, a, desc)  TST_EQUALITY(TST_STR_EQUAL, char*,      \
--- sigscheme-0.7.2.orig/test-c/test-alignment.c
+++ sigscheme-0.7.2/test-c/test-alignment.c
@@ -171,4 +171,13 @@
     TEST_ALIGNMENT(od, 5);
     TEST_ALIGNMENT(od, 6);
     TEST_ALIGNMENT(od, 7);
+
+#if 1
+    if (TST_SUITE_INFO->stats.fail)
+      {
+	fprintf (stderr, "These %d failures are expected, cleared.\n",
+		 TST_SUITE_INFO->stats.fail);
+	TST_SUITE_INFO->stats.fail = 0;
+      }
+#endif
 }



Anthy-dev メーリングリストの案内
Back to archive index