An update...
First, selfishly noted, a personal milestone occurred at the aforementioned Torrey Pines outing - and no laughing - I was able to break below 100 for the first time since I started golfing a few years ago. Some would think it is a horrible score to take pride in, but it's been my goal this year and has now been achieved! On to the development environment.
As mentioned, was planning to do more testing on the native tcc running on jornada to see if I introduced any other bugs. In order to do that I needed some apps to compile. Inspecting my own apps and the samples in the CE SDK left me with one TODO item. Need a resource compiler. tcc accepts resource files compiled with windres. Two ways to solve this problem:
1. Compile the resources with windres on PC from various .rc
(and associated resources
) and transfer the emitted .o files to CE device to link with the native compiled .c files using the native tcc. The workflow seemed tedious and against the final goal for this endeavor.
2. If one wants to do self contained development on CE ARM devices for CE ARM devices then they'd need a native windres in addition to the tcc which is already established. The windres would be needed in order to make use of the PE file .rsrc
(resources
) section and provide a more elegant solution to manage strings, icons, graphics, menus, trees, etc.
Therefore I chose path #2. Wow, what a boatload of work!
Broke this problem into more parts and am nearing completion of the 2nd sub-part.
1. Compile binutils including windres on my ubuntu computer and emit a .o file from a .rc file using the self-built windres. Status: Done. This went quick.
1a. Test link the output object to a project using tcc on jornada. Status: Built the .o, but haven't tried building with tcc on the jornada yet.
2. Copy the above compilation to a new directory and detach most of the libiberty, libz, and libbfd code that are not directly involved in the windres project. Status: Mostly done.
3. Reason for detaching as described in #2, immediately above, is that this code base needs to be ported to windows ce from a very posix oriented environment. Even the windows incarnation of binutils relies on mingw. I don't want to port all of mingw to the windows ce environment. cegcc already did that
Want to minimize what needs porting. Status: Not started yet, but have some ideas how to tackle some of the various posix items that windows and windows ce lacks.
One example of windres posix usage, in case still interested in reading technical detail, is that the windres uses gcc as a pre-compiler for the .rc file in order to pull in all inclusions, expand macros, and avoid #ifdef excluded code and definitions. In order to use the gcc they use pipes or alternatively temp files. For this project need to use tcc instead of gcc and also either need to hijack stdout or mandate temp files. Still deciding which way to go - both seem feasible.