diff --git a/src/mred/Makefile.in b/src/mred/Makefile.in index 00dace9bbc..a167e57228 100644 --- a/src/mred/Makefile.in +++ b/src/mred/Makefile.in @@ -243,7 +243,7 @@ install_wx_xt: cd ..; rm -f "$(bindir)/mred" $(MAKE) @MRLIBINSTALL@ cd ..; $(ICP) mred/mred "$(bindir)" - $(MZSCHEME) -mvqu "$(srcdir)/../mzscheme/collects-path.ss" "$(prefix)/bin/mred" @COLLECTS_PATH@ + $(MZSCHEME) -mvqu "$(srcdir)/../mzscheme/collects-path.ss" "$(prefix)/bin/mred@EXE_SUFFIX@" @COLLECTS_PATH@ BUILDINFO=$(libpltdir)/buildinfo @@ -294,7 +294,7 @@ install-lib3m: install-3m_wx_xt: cd ..; $(ICP) mred/mred3m "$(bindir)" - $(MZSCHEME) -mvqu "$(srcdir)/../mzscheme/collects-path.ss" "$(bindir)/mred3m" @COLLECTS_PATH@ + $(MZSCHEME) -mvqu "$(srcdir)/../mzscheme/collects-path.ss" "$(bindir)/mred3m@EXE_SUFFIX@" @COLLECTS_PATH@ $(MAKE) @MRLIBINSTALL@3m install-3m_wx_mac: diff --git a/src/mzscheme/Makefile.in b/src/mzscheme/Makefile.in index 644f341b9a..71572f1f60 100644 --- a/src/mzscheme/Makefile.in +++ b/src/mzscheme/Makefile.in @@ -38,6 +38,14 @@ FOREIGN_OBJSLIB = @FOREIGN_OBJSLIB@ LLVM_DIR = ../llvm +# About EXE_SUFFIX: +# Cygwin offers the illusion that binaries have no ".exe" suffix by +# having the file-open syscall open an ".exe" file for reading when +# (1) the given filename has no suffix, and (2) there's not a suffixless +# file present. However, Cygwin doesn't do that when opening a file for +# output, even when the output mode is 'update. So we need to explcitly +# add EXE_SUFFIX in a few places. + ################################################################################ bin: @@ -270,7 +278,7 @@ install: install-3m-basic: cd ..; $(ICP) mzscheme/mzscheme3m $(bindir)/mzscheme3m cd ..; $(ICP) mzscheme/mzdyn3m.o $(libpltdir)/mzdyn3m.o - ./mzscheme -mvqu "$(srcdir)/collects-path.ss" "$(bindir)/mzscheme3m" @COLLECTS_PATH@ + ./mzscheme -mvqu "$(srcdir)/collects-path.ss" "$(bindir)/mzscheme3m@EXE_SUFFIX@" @COLLECTS_PATH@ install-3m@NOT_OSX@: $(MAKE) install-3m-basic @@ -284,7 +292,7 @@ unix-install: cd ..; $(ICP) mzscheme/libmzgc.@LIBSFX@ "$(libdir)/libmzgc.@LIBSFX@" cd ..; $(ICP) mzscheme/libmzscheme.@LIBSFX@ "$(libdir)/libmzscheme.@LIBSFX@" cd ..; $(ICP) mzscheme/mzscheme "$(bindir)/mzscheme" - ./mzscheme -mvqu "$(srcdir)/collects-path.ss" "$(bindir)/mzscheme" @COLLECTS_PATH@ + ./mzscheme -mvqu "$(srcdir)/collects-path.ss" "$(bindir)/mzscheme@EXE_SUFFIX@" @COLLECTS_PATH@ cd ..; echo 'CC=@CC@' > $(BUILDINFO) cd ..; echo 'CFLAGS=@CFLAGS@ @PREFLAGS@ @COMPFLAGS@' >> $(BUILDINFO) cd ..; echo 'OPTIONS=@OPTIONS@' >> $(BUILDINFO) diff --git a/src/mzscheme/sconfig.h b/src/mzscheme/sconfig.h index 9b2584fc9f..d349e58364 100644 --- a/src/mzscheme/sconfig.h +++ b/src/mzscheme/sconfig.h @@ -620,6 +620,7 @@ # define USE_CREATE_PIPE # define USE_MZ_CYGWIN_SETJMP +# define USE_MZ_SETJMP # define USE_PLAIN_TIME # define USE_TOD_FOR_TIMEZONE diff --git a/src/mzscheme/src/setjmpup.c b/src/mzscheme/src/setjmpup.c index 2a10c2be58..9b874f427b 100644 --- a/src/mzscheme/src/setjmpup.c +++ b/src/mzscheme/src/setjmpup.c @@ -576,7 +576,7 @@ void scheme_ensure_stack_start(Scheme_Thread *p, void *d) as mzsj86.c, just in a slightly different syntax, and it probably only works with -O2. */ -int scheme_mz_setjmp(mz_jmp_buf b) +int scheme_mz_setjmp(mz_pre_jmp_buf b) { asm("mov 4(%EBP), %ECX"); /* return address */ asm("mov 8(%EBP), %EAX"); /* jmp_buf ptr */ @@ -591,7 +591,7 @@ int scheme_mz_setjmp(mz_jmp_buf b) return 0; } -void scheme_mz_longjmp(mz_jmp_buf b, int v) +void scheme_mz_longjmp(mz_pre_jmp_buf b, int v) { asm("mov 12(%EBP), %EAX"); /* return value */ asm("mov 8(%EBP), %ECX"); /* jmp_buf */