From: Scott G. (seg at us.ibm.bogus.com) Subject: New kernel highmem feature Newsgroups: comp.os.os2.bugs Date: 2004-01-19 10:31:02 PST For people who want to try out the latest stuff: As of the 20040116 kernels, I added a new feature, which should be considered beta/experimental. This feature allows loading parts of DLLs above the 512mb line. So, any DLL objects that do not need to be called by (for code) or addressed by (for data) 16 bit code can be moved out of the low shared arena. Since this is the place that most often runs out of room, causing sys0008 and similar, I'm hoping this is helpful. Here's how it works: A new EXEHDR flag /HIGHMEM[:objnum] is used to turn on bit 16 of the OTE flags in one or more linker objects (if you don't know what this means, don't worry). If this flag is on and if the object is a 32 bit shared obj and isn't also marked as ALIAS, PACK, or IOPL, the kernel will try to load the object in the high shared arena, I've experimented with Mozilla and saved nearly 11mb of shared memory address space. Download whatever kernel you need from ftp://testcase.boulder.ibm.com, then also download hdrtest.zip from that directory. What has worked for me is EXEHDR /HIGHMEM MMPARTS.DLL > nul EXEHDR /HIGHMEM:1 xx.dll > nul ; where xx is ever DLL in mozilla and mozilla/components except npoji6.dl. For mmparts, you'll have to do this from a command prompt or something. I will be interested in feedback. -Scott seg at us.ibm.bogus.com