From 2e001f465e3f88b7e792a1cfbabfa6d5b11ac7aa Mon Sep 17 00:00:00 2001 From: kanjitalk755 Date: Tue, 28 Jan 2020 22:33:13 +0900 Subject: [PATCH] fixed autoconf build for macOS --- BasiliskII/src/Unix/Darwin/testlmem.sh | 2 ++ BasiliskII/src/Unix/configure.ac | 2 +- SheepShaver/src/CrossPlatform/sigsegv.cpp | 10 ++++++++-- SheepShaver/src/Unix/.gitignore | 2 ++ SheepShaver/src/Unix/Makefile.in | 10 +++++++--- SheepShaver/src/Unix/configure.ac | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/BasiliskII/src/Unix/Darwin/testlmem.sh b/BasiliskII/src/Unix/Darwin/testlmem.sh index 3c07f437..b252c83e 100755 --- a/BasiliskII/src/Unix/Darwin/testlmem.sh +++ b/BasiliskII/src/Unix/Darwin/testlmem.sh @@ -20,6 +20,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +sw_vers > /dev/null && exit 0 + PAGEZERO_SIZE=0x2000 [[ -n "$1" ]] && PAGEZERO_SIZE=$1 # You want all the output to go to stderr so that configure is quiet but diff --git a/BasiliskII/src/Unix/configure.ac b/BasiliskII/src/Unix/configure.ac index 9bfae253..afa459c0 100755 --- a/BasiliskII/src/Unix/configure.ac +++ b/BasiliskII/src/Unix/configure.ac @@ -39,7 +39,7 @@ AC_ARG_ENABLE(sdl-framework-prefix, [ --enable-sdl-framework-prefix=PFX d AC_ARG_WITH(sdl1, [ --with-sdl1 use SDL 1.x, rather than SDL 2.x [default=no]], [WANT_SDL_VERSION_MAJOR=1], []) dnl JIT compiler options. -AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=yes]) +AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=no]], [WANT_JIT=$enableval], [WANT_JIT=no]) AC_ARG_ENABLE(jit-debug, [ --enable-jit-debug activate native code disassemblers [default=no]], [WANT_JIT_DEBUG=$enableval], [WANT_JIT_DEBUG=no]) dnl FPU emulation core. diff --git a/SheepShaver/src/CrossPlatform/sigsegv.cpp b/SheepShaver/src/CrossPlatform/sigsegv.cpp index 69b48238..244c9ac2 100644 --- a/SheepShaver/src/CrossPlatform/sigsegv.cpp +++ b/SheepShaver/src/CrossPlatform/sigsegv.cpp @@ -2608,8 +2608,14 @@ sigsegv_address_t sigsegv_get_fault_instruction_address(sigsegv_info_t *SIP) #if defined(__APPLE__) && defined(__x86_64__) -extern uint8_t gZeroPage[0x3000], gKernelData[0x2000]; -extern uint32_t RAMBase, ROMBase, ROMEnd; +#ifdef CONFIGURE_TEST_SIGSEGV_RECOVERY +#define EXTERN +#else +#define EXTERN extern +#endif + +EXTERN uint8_t gZeroPage[0x3000], gKernelData[0x2000]; +EXTERN uint32_t RAMBase, ROMBase, ROMEnd; template T safeLoad(uint32_t a) { if (a < 0x3000) return *(T *)&gZeroPage[a]; diff --git a/SheepShaver/src/Unix/.gitignore b/SheepShaver/src/Unix/.gitignore index 0461f22e..8c6ac66f 100644 --- a/SheepShaver/src/Unix/.gitignore +++ b/SheepShaver/src/Unix/.gitignore @@ -21,5 +21,7 @@ dyngen # Generated files from the Xcode build basic-dyngen-ops-x86_32.hpp basic-dyngen-ops-x86_64.hpp +basic-dyngen-ops-x86_64_macos.hpp ppc-dyngen-ops-x86_32.hpp ppc-dyngen-ops-x86_64.hpp +ppc-dyngen-ops-x86_64_macos.hpp diff --git a/SheepShaver/src/Unix/Makefile.in b/SheepShaver/src/Unix/Makefile.in index 350ec4b0..ed6148a4 100644 --- a/SheepShaver/src/Unix/Makefile.in +++ b/SheepShaver/src/Unix/Makefile.in @@ -176,7 +176,7 @@ uninstall: clean: rm -f $(PROGS) $(OBJ_DIR)/* core* *.core *~ *.bak ppc-execute-impl.cpp - rm -f dyngen basic-dyngen-ops.hpp ppc-dyngen-ops.hpp ppc_asm.out.s + rm -f dyngen {basic,ppc}-dyngen-ops*.hpp ppc_asm.out.s rm -rf $(APP_APP) $(GUI_APP_APP) distclean: clean @@ -216,18 +216,22 @@ ifeq ($(USE_DYNGEN),yes) DYNGENDEPS = basic-dyngen-ops.hpp ppc-dyngen-ops.hpp ifeq ($(USE_DYNGEN_PRECOMPILED),yes) -basic-dyngen-ops.hpp: dyngen_precompiled/basic-dyngen-ops.hpp basic-dyngen-ops-x86_32.hpp basic-dyngen-ops-x86_64.hpp +basic-dyngen-ops.hpp: dyngen_precompiled/basic-dyngen-ops.hpp basic-dyngen-ops-x86_32.hpp basic-dyngen-ops-x86_64.hpp basic-dyngen-ops-x86_64_macos.hpp cp -f $< $@ basic-dyngen-ops-x86_32.hpp: dyngen_precompiled/basic-dyngen-ops-x86_32.hpp cp -f $< $@ basic-dyngen-ops-x86_64.hpp: dyngen_precompiled/basic-dyngen-ops-x86_64.hpp cp -f $< $@ -ppc-dyngen-ops.hpp: dyngen_precompiled/ppc-dyngen-ops.hpp ppc-dyngen-ops-x86_32.hpp ppc-dyngen-ops-x86_64.hpp +basic-dyngen-ops-x86_64_macos.hpp: dyngen_precompiled/basic-dyngen-ops-x86_64_macos.hpp + cp -f $< $@ +ppc-dyngen-ops.hpp: dyngen_precompiled/ppc-dyngen-ops.hpp ppc-dyngen-ops-x86_32.hpp ppc-dyngen-ops-x86_64.hpp ppc-dyngen-ops-x86_64_macos.hpp cp -f $< $@ ppc-dyngen-ops-x86_32.hpp: dyngen_precompiled/ppc-dyngen-ops-x86_32.hpp cp -f $< $@ ppc-dyngen-ops-x86_64.hpp: dyngen_precompiled/ppc-dyngen-ops-x86_64.hpp cp -f $< $@ +ppc-dyngen-ops-x86_64_macos.hpp: dyngen_precompiled/ppc-dyngen-ops-x86_64_macos.hpp + cp -f $< $@ else # Only GCC is supported for generating synthetic opcodes $(DYNGEN): $(DYNGENOBJS) diff --git a/SheepShaver/src/Unix/configure.ac b/SheepShaver/src/Unix/configure.ac index 749ebdff..81ffbdd4 100755 --- a/SheepShaver/src/Unix/configure.ac +++ b/SheepShaver/src/Unix/configure.ac @@ -34,7 +34,7 @@ AC_ARG_ENABLE(ppc-emulator, [ --enable-ppc-emulator use the selected PowerPC AC_ARG_ENABLE(fbdev-dga, [ --enable-fbdev-dga use direct frame buffer access via /dev/fb0 [default=yes]], [WANT_FBDEV_DGA=$enableval], [WANT_FBDEV_DGA=yes]) AC_ARG_ENABLE(xf86-dga, [ --enable-xf86-dga use the XFree86 DGA extension [default=yes]], [WANT_XF86_DGA=$enableval], [WANT_XF86_DGA=yes]) AC_ARG_ENABLE(xf86-vidmode, [ --enable-xf86-vidmode use the XFree86 VidMode extension [default=yes]], [WANT_XF86_VIDMODE=$enableval], [WANT_XF86_VIDMODE=yes]) -AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=yes]], [WANT_VOSF=$enableval], [WANT_VOSF=yes]) +AC_ARG_ENABLE(vosf, [ --enable-vosf enable video on SEGV signals [default=no]], [WANT_VOSF=$enableval], [WANT_VOSF=no]) AC_ARG_ENABLE(standalone-gui,[ --enable-standalone-gui enable a standalone GUI prefs editor [default=no]], [WANT_STANDALONE_GUI=$enableval], [WANT_STANDALONE_GUI=no]) AC_ARG_WITH(esd, [ --with-esd support ESD for sound under Linux/FreeBSD [default=yes]], [WANT_ESD=$withval], [WANT_ESD=yes]) AC_ARG_WITH(gtk, [ --with-gtk use GTK user interface [default=yes]],