Examining the structure of the generated files in both cases, I see that the difference comes from the fact that the managed makefile project has generated a 'data' resource that is about 9 Kb large, while the standard makefile project has generated a 'data' resource that is only 822 bytes large. This is where the main difference comes from. (There is also a small difference of 200 bytes in the size of one of the code segments. I don't understand the reason for that difference either, given that the same optimization options are used in both cases.)
OK, so what is the meaning of the 'data' resource and what compiler options affect it? I had the impression that is was where the global variables were stored - but my application doesn't use any global variables... A C++ application probably also stores stuff there - but mine is a plain C application...
The 'data' 0 resource is a compressed version of the A5-based data section. It gets expanded into the dynamic heap by SysAppStartup. This includes all of your global data and can also inclued compiler-generated data -- C++ exception tables, virtual tables, constant data used to initialize structures, etc.
If your data size increased from 1K to 9K, the likely issue is data pulled in from the runtime library and C++ support. Your makefile probably disabled some C++ features which are left enabled in the PODS standard makefile.
In CodeWarrior expanded mode applications, 'data' 1 serves a similar purpose, but it's expanded by the CW runtime library into the A4-based expanded data region allocated on the storage heap.
-- Ben Combee, Senior Software Engineer, palmOne, Inc. "Combee on Palm OS" weblog: http://palmos.combee.net/ Developer Forum Archives: http://news.palmos.com/read/all_forums/
-- For information on using the PalmSource Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
