diff options
Diffstat (limited to '0001.patch')
-rw-r--r-- | 0001.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/0001.patch b/0001.patch new file mode 100644 index 000000000000..aff213bffc94 --- /dev/null +++ b/0001.patch @@ -0,0 +1,108 @@ +From 185dc1a00e7492f8be98e5f93b561758423595f1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C4=81nis=20D=C5=BEeri=C5=86=C5=A1?= + <smuglispweenie@gmail.com> +Date: Sat, 23 May 2020 16:18:32 +0300 +Subject: [PATCH 1/4] Move global variable definitions to .c files + + + 100.0% lisp-kernel/ +diff --git a/lisp-kernel/area.h b/lisp-kernel/area.h +index 1ae46aa4..3e74e8db 100644 +--- a/lisp-kernel/area.h ++++ b/lisp-kernel/area.h +@@ -108,7 +108,7 @@ Boolean grow_dynamic_area(natural); + Boolean shrink_dynamic_area(natural); + + /* serialize add_area/remove_area, and also the tcr queue */ +-void *tcr_area_lock; ++extern void *tcr_area_lock; + + #define reserved_area ((area *)(all_areas)) + #define active_dynamic_area ((area *)(reserved_area->succ)) +diff --git a/lisp-kernel/gc-common.c b/lisp-kernel/gc-common.c +index 5a00264b..9f3b7b33 100644 +--- a/lisp-kernel/gc-common.c ++++ b/lisp-kernel/gc-common.c +@@ -92,6 +92,7 @@ LispObj GCarealow = 0, GCareadynamiclow = 0; + natural GCndnodes_in_area = 0, GCndynamic_dnodes_in_area = 0; + LispObj GCweakvll = (LispObj)NULL; + LispObj GCdwsweakvll = (LispObj)NULL; ++LispObj GCfirstunmarked = (LispObj) NULL; + LispObj GCephemeral_low = 0; + natural GCn_ephemeral_dnodes = 0; + natural GCstack_limit = 0; +diff --git a/lisp-kernel/gc.h b/lisp-kernel/gc.h +index 0aa31ba6..acc9e184 100644 +--- a/lisp-kernel/gc.h ++++ b/lisp-kernel/gc.h +@@ -62,8 +62,8 @@ + extern LispObj GCarealow, GCareadynamiclow; + extern natural GCndnodes_in_area, GCndynamic_dnodes_in_area; + extern bitvector GCmarkbits, GCdynamic_markbits,managed_static_refbits,global_refidx,dynamic_refidx,managed_static_refidx; +-LispObj *global_reloctab, *GCrelocptr; +-LispObj GCfirstunmarked; ++extern LispObj *global_reloctab, *GCrelocptr; ++extern LispObj GCfirstunmarked; + + extern natural lisp_heap_gc_threshold; + extern natural lisp_heap_notify_threshold; +@@ -153,19 +153,19 @@ void report_paging_info_delta(FILE*, paging_info *, paging_info *); + #define GC_TRAP_FUNCTION_FREEZE 129 + #define GC_TRAP_FUNCTION_THAW 130 + +-Boolean GCDebug, GCverbose, just_purified_p; +-bitvector GCmarkbits, GCdynamic_markbits; +-LispObj GCarealow, GCareadynamiclow; +-natural GCndnodes_in_area, GCndynamic_dnodes_in_area; +-LispObj GCweakvll,GCdwsweakvll; +-LispObj GCephemeral_low; +-natural GCn_ephemeral_dnodes; +-natural GCstack_limit; ++extern Boolean GCDebug, GCverbose, just_purified_p; ++extern bitvector GCmarkbits, GCdynamic_markbits; ++extern LispObj GCarealow, GCareadynamiclow; ++extern natural GCndnodes_in_area, GCndynamic_dnodes_in_area; ++extern LispObj GCweakvll, GCdwsweakvll; ++extern LispObj GCephemeral_low; ++extern natural GCn_ephemeral_dnodes; ++extern natural GCstack_limit; + + #if WORD_SIZE == 64 +-unsigned short *_one_bits; ++extern unsigned short *_one_bits; + #else +-const unsigned char _one_bits[256]; ++extern const unsigned char _one_bits[256]; + #endif + + #define one_bits(x) _one_bits[x] +@@ -195,11 +195,10 @@ void gc(TCR *, signed_natural); + /* backend-interface */ + + typedef void (*weak_mark_fun) (LispObj); +-weak_mark_fun mark_weak_htabv, dws_mark_weak_htabv; ++extern weak_mark_fun mark_weak_htabv, dws_mark_weak_htabv; + + typedef void (*weak_process_fun)(void); +- +-weak_process_fun markhtabvs; ++extern weak_process_fun markhtabvs; + + + #define hash_table_vector_header_count (sizeof(hash_table_vector_header)/sizeof(LispObj)) +diff --git a/lisp-kernel/pmcl-kernel.c b/lisp-kernel/pmcl-kernel.c +index f348b2b1..5aa9c04a 100644 +--- a/lisp-kernel/pmcl-kernel.c ++++ b/lisp-kernel/pmcl-kernel.c +@@ -151,6 +151,8 @@ wperror(char* message) + + LispObj lisp_nil = (LispObj) 0; + bitvector global_mark_ref_bits = NULL, dynamic_mark_ref_bits = NULL, relocatable_mark_ref_bits = NULL, global_refidx = NULL, dynamic_refidx = NULL,managed_static_refidx = NULL; ++LispObj *global_reloctab = (LispObj) NULL, *GCrelocptr = (LispObj) NULL; ++void *tcr_area_lock = NULL; + + + /* These are all "persistent" : they're initialized when +-- +2.27.0 + |