Phil,
With the help of a colleague I did some analysis on your files. Here is a summary of what we did and observed:
1) Ran objdiff on the two .out files which reported that there were differences in the .cinit and .text sections
2) Ran armdis.exe on the two .out files to look at disassembled output - this is something you can run as well for a comparison, and has useful information that can be used for analysis
3) Focusing on the differences in the .text section, we looked at where the first set of differences were as reported by objdiff, and correlated that back to the disassembled output. It turned out to be at address 0x24860, which from looking at the disassembled outputs is indeed different (one is calling SWutils_getLeastSignif16bitsFrom32bits while the other is calling SWutils_getMostSignif16bitsFrom32bits).
4) While still comparing the disassembled output, noticed that at address 0x2483c the function in one of them is reduceToLeastSignif16bits while in the other it is reduceToMostSignif16bits
I can't explain the reason for this difference, but according to the map file, this is coming from SDD_Wkr.obj. The next step would be to drill into why this object file from the two builds is different.
As a next step, please do the following:
1) Preprocess the source file SDD_Wkr.c from both build locations. This wiki page tells you how to preprocess a source file
2) Rename the preprocessed file to .c extension, and compile it with the same build options as is used for the project build (this might be easier to do on a command prompt as it is only the compile step we need)
3) Compare the SDD_Wkr.asm file generated by both builds to see if there are differences and where they are
If the two assembly files indeed have differences, please send us the two proprocessed source files so we can build them ourselves and analyze further to determine if there is a bug.