mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
10ba8490ce
Per SF bug report 1351586: The COFF spec suggests that the "Virtual Size" field (which immediately follows the name field inside a section header) be set to 0 for an object file. By contrast (as documented in comment #4 at the beginning of its outcoff.c file) NASM sets it to a particular non-0 value. MASM 6.15 matches NASM for both 16- and 32-bit object files, i.e. emits non-0 values. MASM 8 (from VS 2005 Beta) matches the COFF spec for 64-bit object files, i.e. emits 0. GAS matches the COFF spec for 32-bit object files (MinGW or Cygwin), i.e. also emits 0. Older versions of GNU ld seem to honor said "Virtual Size" field whereas newer versions do not. As a result those older versions generate "bloated" image files. Since the COFF spec and the real world seem to disagree for this case, it might make sense to add a method for selecting between the two to NASM. Date: 2005-11-28 15:39 Sender: nasm64developer Logged In: YES user_id=804543 MASM 8 (from VS 2005 Beta) also matches the COFF spec for 16- and 32-bit object files, i.e. emits 0. That said, NASM should always emit 0 too. Therefore I am turning this from a support request into a bug. |
||
---|---|---|
.. | ||
outaout.c | ||
outas86.c | ||
outbin.c | ||
outcoff.c | ||
outdbg.c | ||
outelf32.c | ||
outelf64.c | ||
outieee.c | ||
outmacho.c | ||
outobj.c | ||
outrdf2.c | ||
outrdf.c |