-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Minor technical issue.
Regarding platforms/unix/vm/include_ucontext.h
Solaris has a #include <sys/ucontext.h> so the build was working, but some versions adhere to the "Single Unix Specification v2" (SUS v2).
According to some info (I'm no expert in this) this is Solaris 7/8
SUSv2 superset of SUS extended Solaris 7 to support POSIX.1b-1993, POSIX.1c-1996, and ISO/IEC 9899 (C Standard) Amendment 1
Now that standard speficies that you can #include <ucontext.h> instead of #include <sys/ucontext.h>
Also see https://pubs.opengroup.org/onlinepubs/7908799/xsh/ucontext.h.html
I've added a small #ifdef __sun fix to use #include <ucontext.h> in the Solaris case.
Alternatively perhaps the configure script could check for the existence of the <ucontext.h> header file ...
Unfortunately the #include's that the program issues, does have obviously major impact on the behaviour of the VM.
Another issue one of the fixes I submitted in the sunos branch is
or was :
# include <sys/file.h> /* FASYNC or ioctl FIOASYNC will be issued */
in the file platforms/unix/vm/aio.c
The issue there (completely unrelated to the ucontext.h issue) is that that header file determines how the code in aio.c works
Because in aio.c there is code
#if defined(O_ASYNC) #elif defined(FASYNC) #elif defined(FIOASYNC)
great care about the configuration of header files (#include) is needed.
Perhaps also in the case of aio.c this could be dealt with in the configure script.
The configure script could also in that case try to figure out what the correct #include is, but it has major impact of course on the behavior of the VM ...
David Stes
-- Sent from: http://forum.world.st/Squeak-VM-f104410.html