diff --git a/src/mred/gc2/Makefile.in b/src/mred/gc2/Makefile.in index f34eecaf21..acfe23dcd8 100644 --- a/src/mred/gc2/Makefile.in +++ b/src/mred/gc2/Makefile.in @@ -71,6 +71,8 @@ XFORMXX = $(XFORM_CMD) --cpp "$(CXXCPP) $(XFORM_CPP_ARGS)" @XFORMFLAGS@ -o XFORM = $(XFORM_CMD) --cpp "$(CPP) $(XFORM_CPP_ARGS)" @XFORMFLAGS@ -o XFORMDEP = $(srcdir)/../../mzscheme/gc2/xform.ss $(srcdir)/../../mzscheme/gc2/xform-mod.ss $(srcdir)/../../mzscheme/gc2/gc2.h +NONPRECOMPDEP = $(srcdir)/../../mzscheme/include/schthread.h + WXBDIR=../../wxxt WXMACBDIR=../../wxmac/src @@ -359,7 +361,7 @@ macxsrc/wx_image.cc: $(WXMACDIR)/../utils/image/src/wx_image.cc $(XFORMDEP) $(MA $(XFORMWP) macxsrc/wx_image.cc $(WXMACDIR)/../utils/image/src/wx_image.cc macxsrc/wx_xbm.cc: $(WXMACDIR)/../utils/image/src/wx_xbm.cc $(XFORMDEP) $(MACXPRECOMPDEP) $(XFORMWP) macxsrc/wx_xbm.cc $(WXMACDIR)/../utils/image/src/wx_xbm.cc -macxsrc/simpledrop.cc: $(srcdir)/../../mac/mzscheme/simpledrop.cpp $(XFORMDEP) +macxsrc/simpledrop.cc: $(srcdir)/../../mac/mzscheme/simpledrop.cpp $(NONPRECOMPDEP) $(XFORMDEP) $(XFORMXX) macxsrc/simpledrop.cc $(srcdir)/../../mac/mzscheme/simpledrop.cpp wx_xt_XFORMPRECOMP = @@ -370,7 +372,7 @@ XFORMPRECOMPDEP = xsrc/wxscheme.cc: $(srcdir)/../wxs/wxscheme.cxx $(XFORMDEP) $(XFORMPRECOMPDEP) $(XFORMWP) xsrc/wxscheme.cc $(srcdir)/../wxs/wxscheme.cxx -xsrc/xcglue.c: $(srcdir)/../../mzscheme/utils/xcglue.c $(XFORMDEP) +xsrc/xcglue.c: $(srcdir)/../../mzscheme/utils/xcglue.c $(NONPRECOMPDEP) $(XFORMDEP) $(XFORM) xsrc/xcglue.c $(srcdir)/../../mzscheme/utils/xcglue.c diff --git a/src/mzscheme/include/schthread.h b/src/mzscheme/include/schthread.h index 89f60edfa8..d87fe867d7 100644 --- a/src/mzscheme/include/schthread.h +++ b/src/mzscheme/include/schthread.h @@ -303,9 +303,9 @@ static inline Thread_Local_Variables *scheme_get_thread_local_variables() { Thread_Local_Variables *x = NULL; # if defined(OS_X) # if defined(__x86_64__) - asm volatile("movq %%gs:0x8A0, %0" : "=r"(x)); + asm volatile("movq %%gs:0x8E0, %0" : "=r"(x)); # else - asm volatile("movl %%gs:0x468, %0" : "=r"(x)); + asm volatile("movl %%gs:0x488, %0" : "=r"(x)); # endif # elif defined(linux) && defined(MZ_USES_SHARED_LIB) # if defined(__x86_64__) diff --git a/src/mzscheme/src/Makefile.in b/src/mzscheme/src/Makefile.in index f745e33c2c..45b5b41204 100644 --- a/src/mzscheme/src/Makefile.in +++ b/src/mzscheme/src/Makefile.in @@ -174,7 +174,7 @@ fun.@LTO@: $(srcdir)/fun.c $(CC) $(CFLAGS) -c $(srcdir)/fun.c -o fun.@LTO@ future.@LTO@: $(srcdir)/future.c $(CC) $(CFLAGS) -c $(srcdir)/future.c -o future.@LTO@ -gmp.@LTO@: $(srcdir)/gmp/gmp.c $(srcdir)/gmp/gmplonglong.h +gmp.@LTO@: $(srcdir)/gmp/gmp.c $(srcdir)/gmp/gmplonglong.h $(srcdir)/../include/schthread.h $(CC) $(CFLAGS) -c $(srcdir)/gmp/gmp.c -o gmp.@LTO@ hash.@LTO@: $(srcdir)/hash.c $(CC) $(CFLAGS) -c $(srcdir)/hash.c -o hash.@LTO@ @@ -271,7 +271,7 @@ file.@LTO@: $(COMMON_HEADERS) \ fun.@LTO@: $(COMMON_HEADERS) \ $(srcdir)/../src/stypes.h $(srcdir)/mzmark.c $(srcdir)/schmap.inc \ $(srcdir)/future.h -future.@LTO@: $(srcdir)/schpriv.h $(srcdir)/future.h $(SCONFIG) $(srcdir)/../include/scheme.h \ +future.@LTO@: $(COMMON_HEADERS) $(srcdir)/future.h $(SCONFIG) \ $(srcdir)/../src/stypes.h $(srcdir)/mzmark.c $(srcdir)/mzrt.c \ $(srcdir)/jit_ts_future_glue.c $(srcdir)/jit_ts_runtime_glue.c $(srcdir)/jit_ts_protos.h hash.@LTO@: $(COMMON_HEADERS) \ diff --git a/src/mzscheme/src/salloc.c b/src/mzscheme/src/salloc.c index 29911d9d3f..f3b9d5ea37 100644 --- a/src/mzscheme/src/salloc.c +++ b/src/mzscheme/src/salloc.c @@ -217,7 +217,7 @@ static void macosx_get_thread_local_key_for_assembly_code() XFORM_SKIP_PROC the Go implementation (see "http://golang.org/src/libcgo/darwin_386.c"). In brief, we assume that thread-local variables are going to be accessed via the gs segment register at offset 0x48 (i386) or 0x60 (x86_64), - and we also hardwire the thread-local key 0x108. Here we have to try to get + and we also hardwire the thread-local key 0x110. Here we have to try to get that particular key and double-check that it worked. */ pthread_key_t unwanted[16]; int num_unwanted = 0; @@ -227,11 +227,11 @@ static void macosx_get_thread_local_key_for_assembly_code() XFORM_SKIP_PROC fprintf(stderr, "pthread key create failed\n"); abort(); } - if (scheme_thread_local_key == 0x108) + if (scheme_thread_local_key == 0x110) break; else { - if (num_unwanted == 16) { - fprintf(stderr, "pthread key create never produced 0x108 for inline hack\n"); + if (num_unwanted == 24) { + fprintf(stderr, "pthread key create never produced 0x110 for inline hack\n"); abort(); } unwanted[num_unwanted++] = scheme_thread_local_key;