I have software generated using the IBM Rhapsody code tool (v7.4).
The target was QNX 6.3.2 for the i386 architecture. This builds using qcc 2.95
We are now moving to QNX 6.5 (still i386). Rebuilding using the version of qcc supplied (4.4.2?). Everything builds OK, but there are problems when I run the software.
The processor card communicates over VME by memory mapping the interface. The card is running QNX 6.5. When I run the code build for 6.3.2 (i.e. qcc 2.95) this communication appears to work. When I run the code built for 6.5 (qcc 4.4.2) this communciation appears unreliable. Its not an all or nothing affair, there seems to be no pattern to what works on the interface or not.
I’ve been using objdump and readelf to compare the executable, and I’ve found the manuals for the different versions of gcc to try and find out what has changed. I’m new to examining executables at this level of detail and would appreciate any help to try and determine what the newer compiler is doing differently that could cause this.