Commit graph

18 commits

Author SHA1 Message Date
Iconoclast
d4027c2866 Diagnose unrecognized task types. 2018-03-17 12:56:52 -04:00
Iconoclast
7bb9ed7ea6 Use C standard calls even for the Windows build.
The original decision to use custom-tailored versions of the C standard
library functions for the Windows build came from a number of
issues--most of which turn out to be not applicable to a Windows DLL
module extension (in which no executable entry point is required).

Since most non-Visual-Studio build suites for Windows will use the
standard, universally available MSVCRT.DLL for linkage, no compatibility
issues can arise from switching the code back to use standard C calls
for _WIN32 builds (provided the calls and usages conform to ANSI C89 and
do not involve forwards-compatibility with other newer extensions to the
C language added in MSVCR80.DLL, MSVCR90.DLL and so forth).

Visual Studio itself, however, chooses to disallow targeting use of
MSVCRT.DLL because Microsoft changes the C language implementation
details of that file while promising the availability of certain
extensions and non-ANSI features available with fixed-version CRTS.
Therefore, if building with Visual Studio, this commit will cause a
dependency on some numbered version of Microsoft's CRT instead of the
standard MSVCRT.DLL.

Note that this issue is negligible due to the fact that MSVC cannot be
recommended for compiling an optimized interpreter code base (not
limited to the example of this plugin).

To test with MSVC anyway, either a) have the CRT framework package
installed to system upgrades (knowing end users the plugin is shared
with may not have this), b) use an older version of Visual Studio to
build, c) statically link the CRT dependency with /MT, d) use the
portable DDK suite containing MSVC outside of Visual Studio to continue
using MSVCRT.DLL, e) temporarily revert this commit to increase DLL file
size by using static linkage of the custom CRT functions removed by this
commit.

Another problem was the fact that MinGW GCC always links in CRT startup
code, even to DLLs for which no entry point needs to exist, and this
startup code depends on -lmingwex which adds a bit of custom message
crap to the binaries.  The obvious workaround for this (as obvious as
knowing to do it for DLLs) in the case of an EXE was obfuscated by the
fact that MinGW maintains an arbitrary design choice that calls __main
from inside main instead of in the startup code.  This side effect is
fixed by using preprocessor checks to wrap around a dummy __main symbol
in the entry point translation unit's source file.
2018-03-16 20:35:12 -04:00
Iconoclast
5af7b5a63c Remove extra check before calling RDP lists. 2016-11-05 23:14:51 -04:00
c0722d325d warning: redundant redeclaration of (blah) [-Wredundant-decls] 2016-03-23 23:23:11 -04:00
unknown
50190ff0c4 rewrote task scheduler read from memory 2015-11-14 11:12:42 -05:00
unknown
3545195186 fix Linux build error ... I thought calloc() only took 1 argument. 2014-12-08 23:53:27 -05:00
unknown
699896f677 install new pointer types to distinguish mem. reference from decl.'s 2014-12-08 23:47:50 -05:00
unknown
188eee43fb avoid the "Rsp_#1.1.h" header name for changing to other spec versions 2014-12-08 09:52:24 -05:00
unknown
d966907f46 GCC refuses to not call memset(), so screw memset and use calloc. 2014-10-13 23:57:59 -04:00
unknown
42d8ef404f cut implicit CRT _chkstk dependency by creating my_malloc, my_free 2014-10-13 19:33:56 -04:00
unknown
ef67517ca0 removing further CRT dependencies: strcat 2014-10-13 18:00:10 -04:00
unknown
7c474000de removing further CRT dependencies: strcpy 2014-10-13 17:25:27 -04:00
unknown
8e1c222f1b removing further CRT dependencies: strlen 2014-10-13 17:10:36 -04:00
unknown
69335440ee deprecated INI-ish config in exchange for direct binary upload 2014-10-13 15:16:50 -04:00
unknown
a3bc93a733 more CRT dependency removal: fopen, fclose, fread, fwrite 2014-10-12 14:57:46 -04:00
unknown
34a217bbd5 break down Win32 CRT dependency on system(): kernel32 CreateProcess 2014-10-11 22:11:48 -04:00
unknown
8119d214c5 unify RCP and cache accesses with portable macro logic 2014-10-10 01:37:41 -04:00
unknown
f1481dd39b restructured modular layout of the source, dropped some optional features 2014-10-09 16:45:55 -04:00
Renamed from config.h (Browse further)