Little funny bug...

Little funny bug...

I wanted to quickly make two x86 EXE builds, with 3GB and normal 2GB of available memory.
Just to pass it for heavy testing, as 3rd-party libs (both Delphi and DLLs) might be or not be compatible.

So i put this into DPR file.

{$DEFINE g3} // or obvious {.$DEFINE g3}
{$IFDEF g3}
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
{$E 3GB.EXE}
{$ENDIF}

This kind of work in XE2 but with tweo funny bugs:

1) the IDE ignores it and shows filename.exe in the compile progress dialog
2) linker partialyl ignores it and creates filename.3gb instead of filename.3gb.exe

...a combined effect BTW is that IDE shows to developer a different name than it actually creates.

I wonder if those discrepancies still exist in later Delphi builds :-D

P.S. {$E '3GB.EXE'} and even {$E .3GB.EXE} make no difference. I wonder...

Comments

  1. Hello, can someone test it on Delphi Rio ???

    ReplyDelete
  2. Cool. i did not know about docs.embarcadero.com - Executable extension (Delphi)

    Is it only broken for multi-part extensions in XE2 or does {$E 3x3} also break?

    ReplyDelete
  3. It seems to break around dot.

    Unit names always could contain dot, but the program name, the DPR, seems not.
    I guess now the exe name is always cut at first dot, and then extension cut at next dot too....

    ReplyDelete
  4. Arioch The so why the jump from 3gb.exe to 4gb? Bug?

    ReplyDelete
  5. my typo.

    BTW in XE2 it really compiles .3gb but runs .exe, loading wrong debug info. That if there is .exe at all, otherwise fails to run it

    ReplyDelete

Post a Comment