Paul,
Have you had any success with improving the use of the /3gb switch. I think that most of the problems are associated with how SLINK /3gb works. I have identified a number of problems with SLINK, although some may relate to my lack of knowledge of SLINK. The problems I have identified, which I can’t solve include: I do not appear to be able to create a memory SECTION of more than 2gb. If I do, the executable is not recognised by windows in cmd.exe As a consequence I can not create a single array of more than 2gb, which I would see as a target to be possible. You stated that FTN95 can address arrays larger than 2gb. If so, then the problem is with SLINK. Does win32 allow segments to be larger than 2gb ? I can also not create multiple arrays, whose combined size exceed 2gb, as all large arrays are combined into the same .bss SECTION. I have experimented with · named common · un-named common · local arrays and · module definitions I have little experience with Virtual Common, but when I tried this as an alternative, all large arrays were again placed in the same Virtual Common section. The location of Virtual Common (it’s memory address) is not selected to maximise addressable memory available. There needs to be some control on where it can be located. Couldn’t SLINK place it at an appropriate address, rather than defaulting to an optimum address. In the example I tested common started at hex 20000000, or 512mb. I expect that there needs to be some control on where the STACK and HEAP go, although I am not clear on what the two are. Any attempt I had to change the size of the STACK did not overcome the stack overflow being reported. Is this a set of functionality that can be addressed to improve how SLINK creates a .exe for use with the /3gb switch, or am I misunderstanding how to manage SLINK ?
Regards John
ps: An alternative interpretation of the program not running may simply be due to where the heap and stack is placed and not the >2gb SECTION symptom, if SECTIONs > 2gb should work ?