The contents of .data is defined by the assembler, not the linker. So the first step usually would be to ensure that the assembler provides the correct content. However, since you've already ensured that wlink and ms link work correctly , it can't be the assembler. I assume that the object modules are in COFF format?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, I interpret this that the error happens with both OMF and COFF?
This is an important detail, because OMF and COFF handle uninitialized data quite differently - with OMF, the linker defines the value of "?" items in .data, with COFF, it's the assembler.
The map doesn't help much. How do you manage to prevent the linker from defining DGROUP?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
JWlink Version 1.9beta 12 and 13
These versions assign values to global's in the .data section
The value of filter after link is 00000678h in the 32-bit version of Doszip
Is this a bug? A regression compared to beta11? What value did you expect?
I’m not shore, but now I can confirm that the value is set.
I’ve only tested 12 and 13. That is, all 32-bit versions was linked with v12. I downloaded version 13 and the same thing happen
Zero.
There was a chance that this was set by a “pragma-init” proc, but that have now been ruled out. Using WLINK or LINK works.
What happens if you change the "?" to a "0"?
The contents of .data is defined by the assembler, not the linker. So the first step usually would be to ensure that the assembler provides the correct content. However, since you've already ensured that wlink and ms link work correctly , it can't be the assembler. I assume that the object modules are in COFF format?
havent tried but assume it’s equal to 0
No, it’s OMF, but I use COFF for debug (VC)
Edit: added map files for WLINK and JWLINK
Last edit: Hjort Nidudsson 2013-10-12
Ok, I interpret this that the error happens with both OMF and COFF?
This is an important detail, because OMF and COFF handle uninitialized data quite differently - with OMF, the linker defines the value of "?" items in .data, with COFF, it's the assembler.
The map doesn't help much. How do you manage to prevent the linker from defining DGROUP?
No, I use LINK for the debug version
I tried setting “filter” to zero and that solved the “filter” problem.
WLINK must be setting this value to zero then, but not JWLINK.
I don't know, but it’s not defined in the source so maybe that’s the reason?