* Support building on OpenBSD, x86-64
* Clean up OpenBSD Makefile
* Add OpenBSD to cmake build
* Use clang as CC for OpenBSD
Co-authored-by: Alex Segura <alex@lispm.dev>
This removes SYSVSIGNALS as we're always and only using POSIX
signals now.
Some platform differences have been papered over. We used to
only ignore SIGPIPE when using BSD signals, but we now ignore
it all the time.
While the SIGFPE code will now compile, it hasn't been updated
to work on modern OSes fully yet as it will need to enable
the correct FP exceptions.
As a prerequisite for cleaning up some other include issues, all the
include files in inc/ should have an include guard. All the xxxdefs.h
were created with them, but most older files were not.
This was used to indicate that the value was allowed to live
in a register. Compilers are much better now and can handle
this themselves.
This helps get rid of more platform-specific ifdef-ery.
* Default to NOETHER, only enable on Solaris.
* DOS: NOETHER controlled by inc/version.h
We set NOETHER by default on DOS, so no need for it here in the
build system.
In the past, we didn't use `gettimeofday()` on all non-DOS platforms
because it wasn't available, so we had to fall back to `time()`.
Those days are long gone and we have `gettimeofday()` on all non-DOS
platforms.
This also removes some code that used `times()` when it used `time()`.
This leaves us using `getrusage()` on all non-DOS platforms. This,
much like `gettimeofday()`, is now available everywhere. Not all of
the fields used here are guaranteed by POSIX, but the ones used
here shouldn't be an issue for now.
* Always follow NEW_STORAGE code paths.
This removes the code paths for the pre-NEW_STORAGE code.
* Remove NEW_STORAGE from build system.
The code no longer refers to `NEW_STORAGE`, so we can remove
this from the build system.
This flag was for SunOS 3 and 4 on sun3 hardware (68k).
It enabled some unsafe optimizations via assembler. This hasn't
actually been built since the DOS port (since the header for this
was renamed, but the code in `xc.c` wasn't updated).
The optimizations here made assumptions that were specific to the
68k hardware and register allocation. They aren't likely to be
of much use moving forward, and we've got plenty of safe performance
improvements from the last 30 years of hardware advances.
* Use the real gethostid on Solaris.
Solaris has this, so we might as well use it like we do on other
platforms. This value is used in response to queries from it from
Lisp.
* Improve undefining of HAS_GETHOSTID.
Enable it on Solaris in `inc/version.h`. This file already
disables it on DOS, so no need to do so again in `src/initsout.c`.
This wasn't enabled and the corresponding code wouldn't have
compiled. The `utime()` function is also deprecated in POSIX.
This used to be enabled for HPUX and RISCOS.
We don't want to modify emulation code yet as ISC support included
a number of other things, including some i386 code that isn't used
on other platforms, but is still useful as a reference.
This also removes support for the DEC3100 keyboard, but leaves a
constant behind for it as I'm not sure about re-numbering.
[NBriggs: keyboard type numbers are stored within all sysouts. Do not renumber supported keyboards, do not reuse previously used keyboard numbers]
This removes code related to HP9000, HPTIMERBUG, and HPUX defines.
It leaves KB_HP9000 for now as I'm not sure about renumbering
those constants.
This should not impact any of the core emulation code.
This platform had no emulation-related changes.
Remove code for IRIX40, INDIGO definitions.
In disk code, simplify a chain of #ifdef's around fsync handling.
Add makefile for Linux on x86_64 platforms
Remove include <stropts.h> for Linux as modern systems have dropped this
Adjust code to account for fcntl() vs ioctl() for generating signals on X I/O
Adjust includes for time related include files for modern Linux systems
modified: bin/makefile-linux.386-x
new file: bin/makefile-linux.x86_64-x
modified: inc/version.h
modified: src/mkvdate.c
modified: src/timer.c
Fix ldeether.c main program so that if NOETHER is present without removing the dlpi.o dependency it still links.
modified: inc/version.h
modified: src/ldeether.c