From 7e82709bde2842fcc72643aa9a3b1a631fc10e6d Mon Sep 17 00:00:00 2001 From: Gabor Melis Date: Thu, 9 Jun 2005 10:44:29 +0000 Subject: [PATCH] 0.9.1.34: * gcc 2.95: compilation fix * killed a few innocent looking warnings in the runtime (79 to go) --- src/runtime/gencgc.c | 20 ++++++++------------ src/runtime/interrupt.h | 9 +++++++++ version.lisp-expr | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index 45a3a1e..3657381 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -45,13 +45,9 @@ #include "genesis/weak-pointer.h" #include "genesis/simple-fun.h" -/* assembly language stub that executes trap_PendingInterrupt */ -void do_pending_interrupt(void); - /* forward declarations */ long gc_find_freeish_pages(long *restart_page_ptr, long nbytes, int unboxed); static void gencgc_pickup_dynamic(void); -boolean interrupt_maybe_gc_int(int, siginfo_t *, void *); /* @@ -401,7 +397,7 @@ print_generation_stats(int verbose) /* FIXME: should take FILE argument */ gc_assert(generations[i].bytes_allocated == count_generation_bytes_allocated(i)); fprintf(stderr, - " %1d: %5d %5d %5d %5d %5d %8d %5d %8d %4d %3d %7.4f\n", + " %1d: %5d %5d %5d %5d %5d %8ld %5ld %8ld %4ld %3d %7.4f\n", i, boxed_cnt, unboxed_cnt, large_boxed_cnt, large_unboxed_cnt, pinned_cnt, @@ -985,7 +981,7 @@ gc_find_freeish_pages(long *restart_page_ptr, long nbytes, int unboxed) if (first_page >= NUM_PAGES) { fprintf(stderr, - "Argh! gc_find_free_space failed (first_page), nbytes=%d.\n", + "Argh! gc_find_free_space failed (first_page), nbytes=%ld.\n", nbytes); print_generation_stats(1); lose(NULL); @@ -1016,7 +1012,7 @@ gc_find_freeish_pages(long *restart_page_ptr, long nbytes, int unboxed) /* Check for a failure */ if ((restart_page >= NUM_PAGES) && (bytes_found < nbytes)) { fprintf(stderr, - "Argh! gc_find_freeish_pages failed (restart_page), nbytes=%d.\n", + "Argh! gc_find_freeish_pages failed (restart_page), nbytes=%ld.\n", nbytes); print_generation_stats(1); lose(NULL); @@ -2204,18 +2200,18 @@ possibly_valid_dynamic_space_pointer(lispobj *pointer) case SIMPLE_ARRAY_UNSIGNED_BYTE_8_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_15_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: +#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_29_WIDETAG: #endif case SIMPLE_ARRAY_UNSIGNED_BYTE_31_WIDETAG: case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG: -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: +#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_60_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: +#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_63_WIDETAG: #endif -#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG: +#ifdef SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG case SIMPLE_ARRAY_UNSIGNED_BYTE_64_WIDETAG: #endif #ifdef SIMPLE_ARRAY_SIGNED_BYTE_8_WIDETAG @@ -4153,12 +4149,12 @@ alloc(long nbytes) * GC, the next allocation will get us back to this point * anyway, so no harm done */ + struct interrupt_data *data=th->interrupt_data; sigset_t new_mask,old_mask; sigemptyset(&new_mask); sigaddset_blockable(&new_mask); sigprocmask(SIG_BLOCK,&new_mask,&old_mask); - struct interrupt_data *data=th->interrupt_data; if((!data->pending_handler) && maybe_defer_handler(interrupt_maybe_gc_int,data,0,0,0)) { /* Leave the signals blocked just as if it was diff --git a/src/runtime/interrupt.h b/src/runtime/interrupt.h index 8a99fd4..1730ac8 100644 --- a/src/runtime/interrupt.h +++ b/src/runtime/interrupt.h @@ -68,6 +68,15 @@ extern void interrupt_internal_error(int, siginfo_t*, os_context_t*, boolean continuable); extern boolean handle_guard_page_triggered(os_context_t *,void *); extern boolean interrupt_maybe_gc(int, siginfo_t*, void*); +extern boolean interrupt_maybe_gc_int(int, siginfo_t *, void *); +extern boolean maybe_defer_handler(void *handler, struct interrupt_data *data, + int signal, siginfo_t *info, + os_context_t *context); +#if defined LISP_FEATURE_GENCGC +/* assembly language stub that executes trap_PendingInterrupt */ +extern void do_pending_interrupt(void); +#endif + #ifdef LISP_FEATURE_SB_THREAD extern void interrupt_thread_handler(int, siginfo_t*, void*); extern void sig_stop_for_gc_handler(int, siginfo_t*, void*); diff --git a/version.lisp-expr b/version.lisp-expr index e5890b6..31c04c9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.1.33" +"0.9.1.34" -- 1.7.10.4