diff --git a/racket/collects/compiler/private/xform.rkt b/racket/collects/compiler/private/xform.rkt index ff36e83354..eaee659a10 100644 --- a/racket/collects/compiler/private/xform.rkt +++ b/racket/collects/compiler/private/xform.rkt @@ -881,6 +881,7 @@ setjmp longjmp _longjmp scheme_longjmp_setjmp scheme_mz_longjmp scheme_jit_longjmp scheme_jit_setjmp_prepare scheme_get_thread_local_variables pthread_getspecific + __builtin_frame_address ;; The following are functions, but they don't trigger GC, and ;; they either take one argument or no pointer arguments. diff --git a/racket/src/racket/Makefile.in b/racket/src/racket/Makefile.in index 8b37257da9..b547c5e3c4 100644 --- a/racket/src/racket/Makefile.in +++ b/racket/src/racket/Makefile.in @@ -153,7 +153,7 @@ no-cgc-needed: $(MAKE) @FOREIGNTARGET@ $(MAKE) main.@LTO@ $(MAKE) mingw-other - cd dynsrc; $(MAKE) ../starter + cd dynsrc; $(MAKE) ../starter@EXE_SUFFIX@ FOREIGN_USED_LIB = $(FOREIGN_OBJ) $(FOREIGN_LIB) FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB) diff --git a/racket/src/racket/dynsrc/Makefile.in b/racket/src/racket/dynsrc/Makefile.in index dbbf396cd4..8dc2f016eb 100644 --- a/racket/src/racket/dynsrc/Makefile.in +++ b/racket/src/racket/dynsrc/Makefile.in @@ -52,10 +52,10 @@ MZDYNDEP = ../mzdyn.o $(srcdir)/../include/ext.exp $(srcdir)/../include/racket.e dynexmpl.o: $(srcdir)/dynexmpl.c $(HEADERS) $(PLAIN_CC) $(ALL_CFLAGS) -c $(srcdir)/dynexmpl.c -o dynexmpl.o -../starter@NOT_MINGW@: $(srcdir)/ustart.c +../starter@NOT_MINGW@@EXE_SUFFIX@: $(srcdir)/ustart.c $(PLAIN_CC) $(ALL_CFLAGS) -o ../starter $(srcdir)/ustart.c -../starter@MINGW@: $(srcdir)/start.c ../mrstarter@EXE_SUFFIX@ sres.o +../starter@MINGW@@EXE_SUFFIX@: $(srcdir)/start.c ../mrstarter@EXE_SUFFIX@ sres.o $(PLAIN_CC) $(ALL_CFLAGS) -o ../starter $(srcdir)/start.c sres.o ../mrstarter@EXE_SUFFIX@: sres.o $(PLAIN_CC) $(ALL_CFLAGS) -mwindows -DMRSTART -o ../mrstarter $(srcdir)/start.c sres.o diff --git a/racket/src/racket/sgc/sgc.c b/racket/src/racket/sgc/sgc.c index 5356ada8c6..228355119b 100644 --- a/racket/src/racket/sgc/sgc.c +++ b/racket/src/racket/sgc/sgc.c @@ -36,7 +36,9 @@ #include "sgc.h" #ifdef _WIN64 -# define SIZEOF_LONG 8 +# ifndef SIXTY_FOUR_BIT_INTEGERS +# define SIXTY_FOUR_BIT_INTEGERS +# endif # ifdef _MSC_VER # define inline _inline # endif @@ -1331,7 +1333,7 @@ static int is_sector_segment(void *p) intptr_t pageindex = SECTOR_LOOKUP_PAGEPOS(s); DECL_SECTOR_PAGETABLES; - FIND_SECTOR_PAGETABLES(p); + FIND_SECTOR_PAGETABLES(s); if (!sector_pagetables) return 0; return (sector_pagetables[pagetableindex] diff --git a/racket/src/racket/sgc/sgc.h b/racket/src/racket/sgc/sgc.h index 64c65d6a4a..3432088f12 100644 --- a/racket/src/racket/sgc/sgc.h +++ b/racket/src/racket/sgc/sgc.h @@ -8,7 +8,8 @@ extern "C" { #define GC_PTR void* #if defined(WIN32) || defined(__CYGWIN32__) -# if defined(SGC_EXPORTS) || (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB)) +# if (defined(SGC_EXPORTS) || (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB)) \ + || defined(__MINGW32_DELAY_LOAD__)) # define SGC_EXTERN __declspec(dllexport) # else # define SGC_EXTERN __declspec(dllimport) diff --git a/racket/src/racket/src/gmp/gmp.c b/racket/src/racket/src/gmp/gmp.c index 1a4e2be8c1..40d1006cdb 100644 --- a/racket/src/racket/src/gmp/gmp.c +++ b/racket/src/racket/src/gmp/gmp.c @@ -2210,7 +2210,7 @@ mpn_set_str (mp_ptr rp, const unsigned char *str, size_t str_len, int base) res_digit = inp_digit >> (bits_per_indigit - next_bitpos); } - if (!((long)s & 0xFF)) SCHEME_BIGNUM_USE_FUEL(1); + if (!((intptr_t)s & 0xFF)) SCHEME_BIGNUM_USE_FUEL(1); } if (res_digit != 0)