249
« on: May 14, 2018, 08:52:44 pm »
Mark,
I had the previous version of LIBCX. Vbox started with that version as long as, and only when,
SET LIBCX_HIGHMEM=2 was in my config.sys.
I have been having an OS2KRNL trap E every morning when I boot up my machine, and sometimes during the day when rebooting: ticket 1888 on ArcaNoae tracker. My current method around the trap is to reset to VGA (blob -> F3), boot up, and then reinstall SNAP. Then I am good most of the time until the next morning. I have tried a number of other methods of booting past the trap: changing VIRTUALADDRESSLIMIT, rearranging the order of the LIBPATH, commenting out various devices, etc. But the reset to VGA is the only thing that has worked consistently.
This morning I tried REMing the line SET LIBCX_HIGHMEM=2, and it turns out that allowed me to boot past the trap. I am going to leave it REMed for a day or two to see if that stops the trap, but that means I can't use vBox for that period of time.
The reason I reported the "issue" is there seemed to be some debate on whether
SET LIBCX_HIGHMEM=2 was actually required or not to run vBox. On my machine vBox will NOT run unless SET LIBCX_HIGHMEM=2.
As for the =3 setting, I found this on Github
---------------------------------------
It can also be controlled by the LIBCX_HIGHMEM environment variable as follows:
LIBCX_HIGHMEM=0 forces the low memory area to be used for the regular C heap (for testing purposes).
LIBCX_HIGHMEM=1 forces the high memory area to be used for the regular C heap (the default mode, the same as when this variable is absent).
LIBCX_HIGHMEM=2 restores the original kLIBC voting process and disables any LIBCx intervention (for compatibility with old applications).
LIBCX_HIGHMEM=3 is the same as LIBCX_HIGHMEM=1 but a check is made using the kLIBC voting process if there is any DLL that votes against high memory usage (i.e. it's built without -Zhigh-mem). If there is such a DLL, or if the EXE itself is built without -Zhigh-mem, then LIBC will terminate the process using abort() before entering main() with a respective message written to the standard output. This mode is intended for safety checking purposes.
------------