cebix / macemu

Basilisk II and SheepShaver Macintosh emulators
1.4k stars 291 forks source link

MacOS HighSierra, BasiliskII. Commit b5820d8 breaks JIT build #148

Closed kencu closed 6 years ago

kencu commented 6 years ago

Up to commit ac4955dcb9d3a50deb7395ea1ac428de2cb4579e my MacOS system builds the JIT without trouble. But after the commit b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a it no longer can build the JIT due to

checking for the addressing mode to use... memory banks
configure: error: Sorry, the JIT Compiler requires Direct Addressing, at least

I build Basiliskii in 32bit mode on this system, and the configure line I've been using for several years now looks like this:

 ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no 

Any ideas how I might fix the JIT again?

Here's the full build log of the version that fails to build the JIT:


Warning: No port basiliskii-gui found in the index.
--->  Computing dependencies for basiliskii.
--->  Fetching distfiles for basiliskii
--->  Verifying checksums for basiliskii
--->  Checksumming macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz
--->  Extracting basiliskii
--->  Extracting macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/basiliskii/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz' | /usr/bin/tar -xf - 
--->  Applying patches to basiliskii
--->  Applying patch-001-Basilisk-makefile-in-ditto-patch.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-001-Basilisk-makefile-in-ditto-patch.diff'
patching file ./Makefile.in
--->  Applying patch-002-configure-ac-delete-stdlib-addition-darwin.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-002-configure-ac-delete-stdlib-addition-darwin.diff'
patching file configure.ac
Hunk #1 succeeded at 569 (offset 57 lines).
--->  Applying patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff'
patching file configure.ac
Hunk #1 succeeded at 781 (offset 68 lines).
--->  Configuring basiliskii
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no 
 + Running aclocal: done.
 + Running autoheader: done.
 + Running autoconf: done.
 + Running 'configure --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no':
checking for gcc... /usr/bin/clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/clang accepts -g... yes
checking for /usr/bin/clang option to accept ISO C89... none needed
checking how to run the C preprocessor... /usr/bin/clang -E
checking for grep that handles long lines and -e... /opt/local/bin/grep
checking for egrep... /opt/local/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... i686-apple-darwin17.3.0
checking host system type... i686-apple-darwin17.3.0
checking target system type... i686-apple-darwin17.3.0
checking for gcc... (cached) /usr/bin/clang
checking whether we are using the GNU C compiler... (cached) yes
checking whether /usr/bin/clang accepts -g... (cached) yes
checking for /usr/bin/clang option to accept ISO C89... (cached) none needed
checking whether /usr/bin/clang and cc understand -c and -o together... yes
checking how to run the C preprocessor... /usr/bin/clang -E
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/clang++ accepts -g... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for egrep... (cached) /opt/local/bin/grep -E
checking for sem_init in -lposix4... no
checking for timer_create in -lrt... no
checking for shm_open in -lrt... no
checking for cos in -lm... yes
checking for pkg-config... /opt/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for sdl >= 1.2... yes
checking for library containing pthread_create... none required
checking for pthread_cond_init... yes
checking for pthread_cancel... yes
checking for pthread_testcancel... yes
checking for pthread_mutexattr_setprotocol... yes
checking for pthread_mutexattr_settype... yes
checking for pthread_mutexattr_setpshared... yes
checking for sem_init... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking mach/mach.h usability... yes
checking mach/mach.h presence... yes
checking for mach/mach.h... yes
checking readline.h usability... no
checking readline.h presence... no
checking for readline.h... no
checking history.h usability... no
checking history.h presence... no
checking for history.h... no
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/filio.h usability... yes
checking sys/filio.h presence... yes
checking for sys/filio.h... yes
checking sys/bitypes.h usability... no
checking sys/bitypes.h presence... no
checking for sys/bitypes.h... no
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking for linux/if.h... no
checking for linux/if_tun.h... no
checking for net/if.h... yes
checking for net/if_tun.h... no
checking AvailabilityMacros.h usability... yes
checking AvailabilityMacros.h presence... yes
checking for AvailabilityMacros.h... yes
checking IOKit/storage/IOBlockStorageDevice.h usability... yes
checking IOKit/storage/IOBlockStorageDevice.h presence... yes
checking for IOKit/storage/IOBlockStorageDevice.h... yes
checking sys/stropts.h usability... no
checking sys/stropts.h presence... no
checking for sys/stropts.h... no
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking size of short... 2
checking size of int... 4
checking size of long... 4
checking size of long long... 8
checking size of float... 4
checking size of double... 8
checking size of long double... 16
checking size of void *... 4
checking for off_t... yes
checking for loff_t... no
checking for caddr_t... yes
checking for size_t... yes
checking return type of signal handlers... void
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for socklen_t... yes
checking for strdup... yes
checking for strerror... yes
checking for cfmakeraw... yes
checking for clock_gettime... (cached) no
checking for timer_create... no
checking for sigaction... yes
checking for signal... yes
checking for mmap... yes
checking for mprotect... yes
checking for munmap... yes
checking for vm_allocate... yes
checking for vm_deallocate... yes
checking for vm_protect... yes
checking for poll... yes
checking for inet_aton... yes
checking for mach_task_self... yes
checking for task_self... no
checking for strings.h... (cached) yes
checking login.h usability... no
checking login.h presence... no
checking for login.h... no
checking sys/bsdtty.h usability... no
checking sys/bsdtty.h presence... no
checking for sys/bsdtty.h... no
checking for sys/stat.h... (cached) yes
checking util.h usability... yes
checking util.h presence... yes
checking for util.h... yes
checking pty.h usability... no
checking pty.h presence... no
checking for pty.h... no
checking for _getpty... no
checking for vhangup... no
checking for strlcpy... yes
checking for "/dev/ptc"... no
checking FIONBIO vs. O_NONBLOCK for non-blocking I/O... O_NONBLOCK
checking whether compiler supports byte bit-fields... yes
checking whether compiler supports framework AppKit... yes
checking whether compiler supports framework Carbon... yes
checking whether compiler supports framework IOKit... yes
checking whether compiler supports framework CoreFoundation... yes
checking whether __LP64__ is defined... no
checking whether TUN/TAP is supported... no
checking whether vm_protect works... yes
checking whether __PAGEZERO can be Low Memory area 0x0000-0x2000... yes
checking whether we can map Low Memory area 0x0000-0x2000... (cached) no
checking whether signal handlers need to be reinstalled... no
checking whether sigaction handlers need to be reinstalled... no
checking whether your system supports Mach exceptions... yes
checking whether your system supports Windows exceptions... no
checking whether your system supports extended signal handlers via asm... no
checking whether your system supports extended signal handlers... no
checking whether we then have a subterfuge for your system... no
checking whether we can skip instruction in SIGSEGV handler... yes
checking for true... /usr/bin/true
checking whether linker script is usable... yes
checking for the addressing mode to use... memory banks
configure: error: Sorry, the JIT Compiler requires Direct Addressing, at least
Command failed:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no 
Exit code: 1```
asvitkine commented 6 years ago

I noticed this too on tip of tree. Thanks for narrowing it down to a specific commit.

Let me ping the original pull request for it ( https://github.com/cebix/macemu/pull/113) and see if the author can take a look. Otherwise, we should probably revert it.

On Sun, Dec 10, 2017 at 1:08 PM, Ken notifications@github.com wrote:

Up to commit ac4955d https://github.com/cebix/macemu/commit/ac4955dcb9d3a50deb7395ea1ac428de2cb4579e my MacOS system builds the JIT without trouble. But after the commit b5820d8 https://github.com/cebix/macemu/commit/b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a it no longer can build the JIT due to

checking for the addressing mode to use... memory banks configure: error: Sorry, the JIT Compiler requires Direct Addressing, at least

I build Basiliskii in 32bit mode on this system, and the configure line I've been using for several years now looks like this:

./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no

Any ideas how I might fix the JIT again?

Here's the full build log of the version that fails to build the JIT:

Warning: No port basiliskii-gui found in the index. ---> Computing dependencies for basiliskii. ---> Fetching distfiles for basiliskii ---> Verifying checksums for basiliskii ---> Checksumming macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz ---> Extracting basiliskii ---> Extracting macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz Executing: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/basiliskii/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a.tar.gz' | /usr/bin/tar -xf - ---> Applying patches to basiliskii ---> Applying patch-001-Basilisk-makefile-in-ditto-patch.diff Executing: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-001-Basilisk-makefile-in-ditto-patch.diff' patching file ./Makefile.in ---> Applying patch-002-configure-ac-delete-stdlib-addition-darwin.diff Executing: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-002-configure-ac-delete-stdlib-addition-darwin.diff' patching file configure.ac Hunk #1 succeeded at 569 (offset 57 lines). ---> Applying patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff Executing: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff' patching file configure.ac Hunk #1 succeeded at 781 (offset 68 lines). ---> Configuring basiliskii Executing: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no

  • Running aclocal: done.
  • Running autoheader: done.
  • Running autoconf: done.
  • Running 'configure --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no': checking for gcc... /usr/bin/clang checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /usr/bin/clang accepts -g... yes checking for /usr/bin/clang option to accept ISO C89... none needed checking how to run the C preprocessor... /usr/bin/clang -E checking for grep that handles long lines and -e... /opt/local/bin/grep checking for egrep... /opt/local/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking minix/config.h usability... no checking minix/config.h presence... no checking for minix/config.h... no checking whether it is safe to define EXTENSIONS... yes checking build system type... i686-apple-darwin17.3.0 checking host system type... i686-apple-darwin17.3.0 checking target system type... i686-apple-darwin17.3.0 checking for gcc... (cached) /usr/bin/clang checking whether we are using the GNU C compiler... (cached) yes checking whether /usr/bin/clang accepts -g... (cached) yes checking for /usr/bin/clang option to accept ISO C89... (cached) none needed checking whether /usr/bin/clang and cc understand -c and -o together... yes checking how to run the C preprocessor... /usr/bin/clang -E checking whether we are using the GNU C++ compiler... yes checking whether /usr/bin/clang++ accepts -g... yes checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for egrep... (cached) /opt/local/bin/grep -E checking for sem_init in -lposix4... no checking for timer_create in -lrt... no checking for shm_open in -lrt... no checking for cos in -lm... yes checking for pkg-config... /opt/local/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for sdl >= 1.2... yes checking for library containing pthread_create... none required checking for pthread_cond_init... yes checking for pthread_cancel... yes checking for pthread_testcancel... yes checking for pthread_mutexattr_setprotocol... yes checking for pthread_mutexattr_settype... yes checking for pthread_mutexattr_setpshared... yes checking for sem_init... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for ANSI C header files... (cached) yes checking for stdlib.h... (cached) yes checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking for sys/types.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking sys/mman.h usability... yes checking sys/mman.h presence... yes checking for sys/mman.h... yes checking mach/mach.h usability... yes checking mach/mach.h presence... yes checking for mach/mach.h... yes checking readline.h usability... no checking readline.h presence... no checking for readline.h... no checking history.h usability... no checking history.h presence... no checking for history.h... no checking readline/readline.h usability... yes checking readline/readline.h presence... yes checking for readline/readline.h... yes checking readline/history.h usability... yes checking readline/history.h presence... yes checking for readline/history.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/filio.h usability... yes checking sys/filio.h presence... yes checking for sys/filio.h... yes checking sys/bitypes.h usability... no checking sys/bitypes.h presence... no checking for sys/bitypes.h... no checking sys/wait.h usability... yes checking sys/wait.h presence... yes checking for sys/wait.h... yes checking sys/poll.h usability... yes checking sys/poll.h presence... yes checking for sys/poll.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking for linux/if.h... no checking for linux/if_tun.h... no checking for net/if.h... yes checking for net/if_tun.h... no checking AvailabilityMacros.h usability... yes checking AvailabilityMacros.h presence... yes checking for AvailabilityMacros.h... yes checking IOKit/storage/IOBlockStorageDevice.h usability... yes checking IOKit/storage/IOBlockStorageDevice.h presence... yes checking for IOKit/storage/IOBlockStorageDevice.h... yes checking sys/stropts.h usability... no checking sys/stropts.h presence... no checking for sys/stropts.h... no checking stropts.h usability... no checking stropts.h presence... no checking for stropts.h... no checking whether byte ordering is bigendian... no checking for an ANSI C-conforming const... yes checking for inline... inline checking size of short... 2 checking size of int... 4 checking size of long... 4 checking size of long long... 8 checking size of float... 4 checking size of double... 8 checking size of long double... 16 checking size of void *... 4 checking for off_t... yes checking for loff_t... no checking for caddr_t... yes checking for size_t... yes checking return type of signal handlers... void checking whether time.h and sys/time.h may both be included... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for socklen_t... yes checking for strdup... yes checking for strerror... yes checking for cfmakeraw... yes checking for clock_gettime... (cached) no checking for timer_create... no checking for sigaction... yes checking for signal... yes checking for mmap... yes checking for mprotect... yes checking for munmap... yes checking for vm_allocate... yes checking for vm_deallocate... yes checking for vm_protect... yes checking for poll... yes checking for inet_aton... yes checking for mach_task_self... yes checking for task_self... no checking for strings.h... (cached) yes checking login.h usability... no checking login.h presence... no checking for login.h... no checking sys/bsdtty.h usability... no checking sys/bsdtty.h presence... no checking for sys/bsdtty.h... no checking for sys/stat.h... (cached) yes checking util.h usability... yes checking util.h presence... yes checking for util.h... yes checking pty.h usability... no checking pty.h presence... no checking for pty.h... no checking for _getpty... no checking for vhangup... no checking for strlcpy... yes checking for "/dev/ptc"... no checking FIONBIO vs. O_NONBLOCK for non-blocking I/O... O_NONBLOCK checking whether compiler supports byte bit-fields... yes checking whether compiler supports framework AppKit... yes checking whether compiler supports framework Carbon... yes checking whether compiler supports framework IOKit... yes checking whether compiler supports framework CoreFoundation... yes checking whether LP64 is defined... no checking whether TUN/TAP is supported... no checking whether vm_protect works... yes checking whether __PAGEZERO can be Low Memory area 0x0000-0x2000... yes checking whether we can map Low Memory area 0x0000-0x2000... (cached) no checking whether signal handlers need to be reinstalled... no checking whether sigaction handlers need to be reinstalled... no checking whether your system supports Mach exceptions... yes checking whether your system supports Windows exceptions... no checking whether your system supports extended signal handlers via asm... no checking whether your system supports extended signal handlers... no checking whether we then have a subterfuge for your system... no checking whether we can skip instruction in SIGSEGV handler... yes checking for true... /usr/bin/true checking whether linker script is usable... yes checking for the addressing mode to use... memory banks configure: error: Sorry, the JIT Compiler requires Direct Addressing, at least Command failed: cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-b5820d80596fa5fb7a4ca3b13a3aa8c759ab434a/BasiliskII/src/Unix" && ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no Exit code: 1```

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cebix/macemu/issues/148, or mute the thread https://github.com/notifications/unsubscribe-auth/AABE8M9YOjOxnNlPYc5PespmRMGTvr4Tks5s_B4CgaJpZM4Q8lds .

kencu commented 6 years ago

Here's the log for the version before that commit, that does build the JIT, to compare:

--->  Extracting basiliskii
--->  Extracting macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/basiliskii/macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e.tar.gz' | /usr/bin/tar -xf - 
--->  Applying patches to basiliskii
--->  Applying patch-001-Basilisk-makefile-in-ditto-patch.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-001-Basilisk-makefile-in-ditto-patch.diff'
patching file ./Makefile.in
--->  Applying patch-002-configure-ac-delete-stdlib-addition-darwin.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-002-configure-ac-delete-stdlib-addition-darwin.diff'
patching file configure.ac
--->  Applying patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e/BasiliskII/src/Unix" && /usr/bin/patch -p0 < '/opt/myports/emulators/basiliskii/files/patch-003-basiliskii-fix-missing-keycodes-macosxgui-selection.diff'
patching file configure.ac
Hunk #1 succeeded at 712 (offset -1 lines).
--->  Configuring basiliskii
Executing:  cd "/opt/local/var/macports/build/_opt_myports_emulators_basiliskii/basiliskii/work/macemu-ac4955dcb9d3a50deb7395ea1ac428de2cb4579e/BasiliskII/src/Unix" && ./autogen.sh --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no 
 + Running aclocal: done.
 + Running autoheader: done.
 + Running autoconf: done.
 + Running 'configure --prefix=/opt/local --disable-vosf --without-esd --without-mon --enable-sdl-video --enable-sdl-audio --enable-jit-compiler --enable-standalone-gui --with-gtk=no':
checking for gcc... /usr/bin/clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/clang accepts -g... yes
checking for /usr/bin/clang option to accept ISO C89... none needed
checking how to run the C preprocessor... /usr/bin/clang -E
checking for grep that handles long lines and -e... /opt/local/bin/grep
checking for egrep... /opt/local/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... i686-apple-darwin17.3.0
checking host system type... i686-apple-darwin17.3.0
checking target system type... i686-apple-darwin17.3.0
checking for gcc... (cached) /usr/bin/clang
checking whether we are using the GNU C compiler... (cached) yes
checking whether /usr/bin/clang accepts -g... (cached) yes
checking for /usr/bin/clang option to accept ISO C89... (cached) none needed
checking whether /usr/bin/clang and cc understand -c and -o together... yes
checking how to run the C preprocessor... /usr/bin/clang -E
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/clang++ accepts -g... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for egrep... (cached) /opt/local/bin/grep -E
checking for sem_init in -lposix4... no
checking for timer_create in -lrt... no
checking for shm_open in -lrt... no
checking for cos in -lm... yes
checking for sdl-config... /opt/local/bin/sdl-config
checking for pthread_create in -lpthread... yes
checking for pthread_cond_init... yes
checking for pthread_cancel... yes
checking for pthread_testcancel... yes
checking for pthread_mutexattr_setprotocol... yes
checking for pthread_mutexattr_settype... yes
checking for pthread_mutexattr_setpshared... yes
checking for sem_init... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking mach/mach.h usability... yes
checking mach/mach.h presence... yes
checking for mach/mach.h... yes
checking readline.h usability... no
checking readline.h presence... no
checking for readline.h... no
checking history.h usability... no
checking history.h presence... no
checking for history.h... no
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/filio.h usability... yes
checking sys/filio.h presence... yes
checking for sys/filio.h... yes
checking sys/bitypes.h usability... no
checking sys/bitypes.h presence... no
checking for sys/bitypes.h... no
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking for linux/if.h... no
checking for linux/if_tun.h... no
checking for net/if.h... yes
checking for net/if_tun.h... no
checking AvailabilityMacros.h usability... yes
checking AvailabilityMacros.h presence... yes
checking for AvailabilityMacros.h... yes
checking IOKit/storage/IOBlockStorageDevice.h usability... yes
checking IOKit/storage/IOBlockStorageDevice.h presence... yes
checking for IOKit/storage/IOBlockStorageDevice.h... yes
checking sys/stropts.h usability... no
checking sys/stropts.h presence... no
checking for sys/stropts.h... no
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking size of short... 2
checking size of int... 4
checking size of long... 4
checking size of long long... 8
checking size of float... 4
checking size of double... 8
checking size of long double... 16
checking size of void *... 4
checking for off_t... yes
checking for loff_t... no
checking for caddr_t... yes
checking for size_t... yes
checking return type of signal handlers... void
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for socklen_t... yes
checking for strdup... yes
checking for strerror... yes
checking for cfmakeraw... yes
checking for clock_gettime... (cached) no
checking for timer_create... no
checking for sigaction... yes
checking for signal... yes
checking for mmap... yes
checking for mprotect... yes
checking for munmap... yes
checking for vm_allocate... yes
checking for vm_deallocate... yes
checking for vm_protect... yes
checking for poll... yes
checking for inet_aton... yes
checking for mach_task_self... yes
checking for task_self... no
checking for strings.h... (cached) yes
checking login.h usability... no
checking login.h presence... no
checking for login.h... no
checking sys/bsdtty.h usability... no
checking sys/bsdtty.h presence... no
checking for sys/bsdtty.h... no
checking for sys/stat.h... (cached) yes
checking util.h usability... yes
checking util.h presence... yes
checking for util.h... yes
checking pty.h usability... no
checking pty.h presence... no
checking for pty.h... no
checking for _getpty... no
checking for vhangup... no
checking for strlcpy... yes
checking for /dev/ptc... no
checking FIONBIO vs. O_NONBLOCK for non-blocking I/O... O_NONBLOCK
checking whether compiler supports byte bit-fields... yes
checking whether compiler supports framework AppKit... yes
checking whether compiler supports framework Carbon... yes
checking whether compiler supports framework IOKit... yes
checking whether compiler supports framework CoreFoundation... yes
checking whether __LP64__ is defined... no
checking whether TUN/TAP is supported... no
checking whether vm_protect works... yes
checking whether __PAGEZERO can be Low Memory area 0x0000-0x2000... yes
checking whether we can map Low Memory area 0x0000-0x2000... (cached) no
checking whether signal handlers need to be reinstalled... no
checking whether sigaction handlers need to be reinstalled... no
checking whether your system supports Mach exceptions... yes
checking whether your system supports Windows exceptions... no
checking whether we can skip instruction in SIGSEGV handler... yes
checking for true... /usr/bin/true
checking whether linker script is usable... yes
checking for the addressing mode to use... direct
checking for GAS .p2align feature... yes
checking for GCC 2.7 or higher... yes
checking for GCC 3.0 or higher... yes
checking for ICC... no
checking whether GCC supports constants merging... yes
checking whether GCC supports store motion... yes
checking whether the compiler supports -fno-strict-aliasing... yes
checking whether the compiler supports -mdynamic-no-pic... yes
checking floating point format... IEEE (little-endian)
checking ieee754.h usability... no
checking ieee754.h presence... no
checking for ieee754.h... no
checking ieeefp.h usability... no
checking ieeefp.h presence... no
checking for ieeefp.h... no
checking floatingpoint.h usability... no
checking floatingpoint.h presence... no
checking for floatingpoint.h... no
checking nan.h usability... no
checking nan.h presence... no
checking for nan.h... no
checking for isnanl... no
checking for isinfl... no
checking for logl... yes
checking for log10l... yes
checking for expl... yes
checking for powl... yes
checking for fabsl... yes
checking for sqrtl... yes
checking for sinl... yes
checking for cosl... yes
checking for tanl... yes
checking for sinhl... yes
checking for coshl... yes
checking for tanhl... yes
checking for asinl... yes
checking for acosl... yes
checking for atanl... yes
checking for asinhl... yes
checking for acoshl... yes
checking for atanhl... yes
checking for floorl... yes
checking for ceill... yes
checking for atanh... yes
checking for isnan... yes
checking for isinf... yes
checking for finite... yes
checking for isnormal... no
checking for signbit... no
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
config.status: creating config.h

Basilisk II configuration summary:

Mac OS X GUI ........................... : no
Mac OS X Sound ......................... : no
SDL support ............................ : video audio
BINCUE support ......................... : no
LIBVHD support ......................... : no
XFree86 DGA support .................... : no
XFree86 VidMode support ................ : no
fbdev DGA support ...................... : no
Enable video on SEGV signals ........... : yes
ESD sound support ...................... : no
GTK user interface ..................... : no
mon debugger support ................... : no
Running m68k code natively ............. : no
Use JIT compiler ....................... : yes
JIT debug mode ......................... : no
Floating-Point emulation core .......... : IEEE fpu core
Assembly optimizations ................. : i386
Addressing mode ........................ : direct
Bad memory access recovery type ........ : mach
kencu commented 6 years ago

This little patch (applied on darwin only, for now, in the BasilskiII/sr/Unix directory) will re-enable the JIT by disabling the vosf test. Not heavily tested. I don't know at present why direct addressing requires VOSF on unix systems, but apparently not on darwin.

--- configure.ac
+++ configure.ac
@@ -1400,13 +1400,10 @@ else
       break
       ;;
     direct)
-      dnl Requires VOSF screen updates
-      if [[ "x$CAN_VOSF" = "xyes" ]]; then
         ADDRESSING_MODE="direct"
-        WANT_VOSF=yes dnl we can use VOSF and we need it actually
+        WANT_VOSF=no dnl we do not want VOSF on darwin
         DEFINES="$DEFINES -DDIRECT_ADDRESSING"
         break
-      fi
       ;;
     banks)
       dnl Default addressing mode
kencu commented 6 years ago

Looks like before the commit that caused the trouble, we have this, which it appears would have allowed the JIT to build, by (I assume) passing the CAN_VOSF test, and setting WANT_VOSF=yes:

Enable video on SEGV signals ........... : yes

even though I had passed the --disable-vosf on the configure line.

Clearly this still needs some work to sort out properly. Perhaps my configuration for darwin is no longer correct?

kencu commented 6 years ago

When I do use the patch just above, I get the JIT, but for some reason, I also get

Bad memory access recovery type ........ :

And the emulator can crash quite inelegantly at times...clearly I don't quite have this sorted out yet. Perhaps commit b5820d8 is adding in some system tests that this MacOS darwin system is not passing, and this results in some config tests failing that used to pass ?

asvitkine commented 6 years ago

Found the issue in the culprit commit, landed a fix here:

https://github.com/cebix/macemu/commit/1c9b21f580501c5d5833935375945479c5651964