Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2943.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2943
Author: eem
Time: 8 February 2021, 8:27:45.60406 pm
UUID: e003897d-8105-40a7-bffe-2e8f14f31b5b
Ancestors: VMMaker.oscog-eem.2942
Resolve the conflict between sqAssert.h's attempt to export warning and error to external plugins with the crude redefinition of the EXPORT macro on generating plugins. So so by moving the redefinition of EXPORT after a plugin's include files.
=============== Diff against VMMaker.oscog-eem.2942 ===============
Item was changed:
----- Method: VMPluginCodeGenerator>>emitCHeaderOn: (in category 'C code generator') -----
emitCHeaderOn: aStream
"Write a C file header onto the given stream, adding include files and some basic definitions."
| standardHeaders |
aStream nextPutAll: (self fileHeaderVersionStampForSourceClass: pluginClass); cr; cr.
"config.h should always go first because config.h properly defines flags.
One of those is _GNU_SOURCE, as explained in https://www.gnu.org/software/autoconf/manual/autoconf.html#Posix-Variants,
where the Autoconf macro AC_USE_SYSTEM_EXTENSIONS makes sure this is defined."
standardHeaders := #('"config.h"' '<math.h>' '"sqMathShim.h"' '<stdio.h>' '<stdlib.h>' '<string.h>' '<time.h>').
self emitHeaderFiles: standardHeaders on: aStream.
headerFiles := headerFiles copyWithoutAll: standardHeaders.
"Additional header files; include C library ones first."
self emitHeaderFiles: (headerFiles select: [:hdr| hdr includes: $<]) on: aStream.
+ aStream cr; nextPutAll: '/* Do not include the entire sq.h file but just those parts needed. */
- aStream cr; nextPutAll: '/* Default EXPORT macro that does nothing (see comment in sq.h): */
- #define EXPORT(returnType) returnType
-
- /* Do not include the entire sq.h file but just those parts needed. */
#include "sqConfig.h" /* Configuration options */
#include "sqVirtualMachine.h" /* The virtual machine proxy definition */
+ #include "sqPlatformSpecific.h" /* Platform specific definitions */'; cr; cr.
- #include "sqPlatformSpecific.h" /* Platform specific definitions */
+ self addHeaderFile: '"sqMemoryAccess.h"'.
+ "Additional header files; include squeak VM ones last"
+ self emitHeaderFiles: (headerFiles reject: [:hdr| hdr includes: $<]) on: aStream.
+ aStream cr; nextPutAll: '/* Default EXPORT macro that does nothing (see comment in sq.h): */
+ #define EXPORT(returnType) returnType
+
#define true 1
#define false 0
#define null 0 /* using ''null'' because nil is predefined in Think C */
#ifdef SQUEAK_BUILTIN_PLUGIN
# undef EXPORT
# define EXPORT(returnType) static returnType
# define INT_EXT "(i)"
#else
# define INT_EXT "(e)"
+ #endif'; cr.
- #endif'; cr; cr.
- self addHeaderFile: '"sqMemoryAccess.h"'.
- "Additional header files; include squeak VM ones last"
- self emitHeaderFiles: (headerFiles reject: [:hdr| hdr includes: $<]) on: aStream.
self maybePutPreambleFor: pluginClass on: aStream.
aStream cr!
Branch: refs/heads/dtl/epoll-forksqueak
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 066a43128584d55964f4a6ace4b2c878cf96087e
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/066a43128584d55964…
Author: David T. Lewis <lewis(a)mail.msen.com>
Date: 2021-02-08 (Mon, 08 Feb 2021)
Changed paths:
M platforms/unix/vm/aio.c
Log Message:
-----------
For epoll aio, close and reopen the epoll fd in forked child process
Factor the epoll initiation out of aioInit into new epollInit function
and invoke it via pthread_atfork in the child process after a fork.
Prevents misdelivery of events from the common kernel epoll structures.
Also note that `if(a=b)` will generate a warning on modern compiler because often a miss write of `a==b`.
The modern convention is to write `if( (a=b) )` to express the intention to assign and shut up the warning.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b6616b21d263ecaa33…
I was trying to package opensmalltalk-vm to Fedora, but it's not possible at the moment, because it seems it tries to download and compile libraries, e.g. SDL2 and others from the third-party dir. Could you please add option or auto-detection for building with the system libraries?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/551