* Haiku OS port
* haiku with X11 backend
* haiku has stpncpy
* Haiku is not Linux.
* X not stable enough on Haiku
* Haiku : settimeofday is a no-op
* Haiku : no need to define settimeofday at all (pointed by nbriggs)
---------
Signed-off-by: Anarchos <sylvain_kerjean@hotmail.com>
Many of the warnings were newly visible after the DBPRINT macro
was modified, but the pedantic warnings also caught existing printf
family usage which was not strictly correct.
Mostly replacing 0x%x with %p for pointers, adding (void *) for
those and other pointers, %td for ptrdiff_t, but also changing
some function parameters from UNSIGNED (uintptr_t) to int
where that was the more appropriate type.
As long as $(SHELL) names an executable that appears in /etc/shells (as determined
by the getusershell() function) use that. It used to always use /bin/csh, but some
modern distros do not ship with csh installed. Using the user's preferred shell
seems like a better choice, while allowing the choice from /etc/shells gives some
additional flexibility.
* ForkUnixShell() can be a static procedure
* Restructure SAFEREAD() to be a little clearer
* Convert unixjob type field defines to an enum and fix related unhandled switch cases.
* Use local declaration of loop variables in for-loop, removing register attributes
* Restructure SAFEREAD() to be a little clearer
* Send and receive 2 additional bytes for pid.
* Prefer standard C99 "inline" over "__inline__" for SAFEREAD
This is very dated code that assumes there's a `/dev/ocr0`.
I'm not sure what system this was for, but it doesn't appear to
be one that exists currently.
Discussed in interlisp/medley#126.
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.
Previously, we were using SysV pseudo-terminals on Solaris and BSD
pseudo-terminals on other Unix platforms. BSD pseudo-terminals have
been deprecated on Linux and are no longer available in some kernel
configurations.
The POSIX API is basically the same as the SysV API, apart from using
`posix_openpt` instead of `open` with `/dev/ptmx`.
Closesinterlisp/medley#121.
Previously, we used `TIOCNOTTY` on some platforms (FreeBSD, macOS)
and `setsid` on Linux and Solaris. The correct modern way to do
this is to use `setsid` and the BSDs support this, so let's just
do that.
This changes from `FASYNC` to `O_ASYNC`, `FNDELAY` to `O_NONBLOCK`,
and `O_NDELAY` to `O_NONBLOCK`. These are the modern names.
`O_NONBLOCK` is part of the POSIX standard. However, `O_ASYNC` is
specific to Linux and BSD. It is not available on Solaris, where
we still need to use `FASYNC`. Also, the behavior of having I/O
trigger a `SIGIO` signal is not in POSIX, since the `SIGIO` signal
is not in POSIX. Instead, it is only the behavior of having `SIGURG`
being signalled for out of band data that is specified.
We also takes this opportunity to collapse some multi-line calls
to get the flags, store it into a temp, and then set them, to
just doing it in one line, skipping the stored temporary value.
We also change one instance of `65535 - FNDELAY` to `~O_NONBLOCK`.
Closesinterlisp/medley#85.
The return value of `fcntl` when passed `F_SETFL` isn't guaranteed
to return the flags passed in as its return value. It will be `-1`
in the event of an error, but no other value is to be relied upon.
Fortunately, we weren't relying upon the value apart from
occasionally checking for an error.
This is as it is specified in https://pubs.opengroup.org/onlinepubs/7908799/xsh/fcntl.htmlClosesinterlisp/medley#87.
* Remove static char *id = from all source files.
The same information is included in a comment in each source file.
* Remove unused template file 'id'
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.
as some systems have extra bytes in the sockaddr_un that weren't accounted
for in the original calculation. Follow the POSIX spec instead.
modified: src/unixcomm.c
modified: src/unixfork.c
Update files that depend on unixfork functions to include unixfork.h
Declare as static all functions in unixfork.c that are not needed externally.
Add dependencies to makefile-tail.
modified: makefile-tail
new file: ../inc/unixfork.h
modified: ../src/ldeboot.c
modified: ../src/main.c
modified: ../src/unixfork.c