* 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.
`timer.c` uses `F_SETSIG` which is a GNU extension. As such, it
needs `_GNU_SOURCE` to be defined, but this was only done for
x86_64, not the other Linux platforms that we have build system
support for.
Closesinterlisp/medley#97.
* Move clang/gcc options into makefile-header.
This puts all of the shared options into a single place so that
we can easily update it.
* Add -fwrapv to the clang/gcc command lines.
This is a step along the way to fixing interlisp/medley#90.
Enabling `-fwrapv` will let overflow checks that rely upon undefined
behavior to work correctly. Without this, with modern versions of
clang and gcc, the overflow checks in the C code are eliminated
by the compiler, resulting in incorrect behavior on the part of
Maiko.
See the linked bug for details and discussion.
Hopefully, this usage of `-fwrapv` will go away once we're using
the correct compiler builtins to detect and handle overflow
correctly.
The FSERROR define is on all the time now. It was not controlling
all of the functionality, with many places setting Lisp_errnno
outside of the code controlled by the define.
On SunOS4, we build `xc.c` by jumping through a lot of hoops to
perform a particular set of operations. We don't do that on other
platforms and this will help clean up the Linux and FreeBSD makefiles.
These directives were already not present in the macOS makefiles.
This is an internal macro to GNU libc and wasn't meant to be
defined like this. Well, it was. It was deprecated and removed
some years ago, so it isn't doing anything at all here now.
Be clear that the code is not clean for pointer aliasing.
modified: bin/makefile-darwin.386-x
modified: bin/makefile-darwin.x86_64-x
modified: bin/makefile-linux.386-x
modified: bin/makefile-linux.armv7l-x
modified: bin/makefile-linux.x86_64-x
modified: bin/makefile-sunos5.386-x
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