From: PcX <xun...@gm...> - 2011-07-29 10:39:59
|
? 2011/7/27 19:47, Darryl L. Miles ??: > I have just opened an issue on this and it was request I discuss in ML. > > http://sourceforge.net/tracker/?func=detail&aid=3379768&group_id=202880&atid=983357 > > > > I do not believe this has any known side effect. I beleve this to be a > flag in the PE header that says the executable is compatible with using > above the 2Gb user space limit of the original Windows 32bit platform > (Win2000 RTM/WinXP RTM). I believe the feature was added as a flag like > this so that EXEs which made presumptions about address space > size/layout would be 100% backward compatible with the original Windows > 32bit system. I believe Win2000 SP4 and WinXP SP2& SP3 all fully > support this option. I believe older versions of Win2000/WinXP (like > RTM) simply ignore this flag and still run the EXE. > > With the invention of 64bit concepts later Win2000 releases and WinXP > 32bit Service Packes all supported increasing the user space limit upto > 3Gb on 32bit hosts. Google for the /3GB switch. All versions of Windows > 64bit using WoW64 to provide a 32bit user-space to a 32bit EXE increase > this limit to almost the full 4Gb. > > GNU binutils/ld does not appear to have a mode to perform linking via > disk I/O and working with large C++ libraries creating DLLs build with > debug symbols can like to make use of the extra RAM. When without the > RAM the realistic limit is 1.8Gb and then ld.exe crashes out. > > You can build binutils with ldflags "-Wl,--large-address-aware" yourself. Or you can use VC tools: "editbin /largeaddressaware ld.exe" -- Best Regards, PcX |