GCC 3.2.2 (OAR build) question

leonp at plris.com leonp at plris.com
Tue Feb 28 09:20:00 UTC 2006


Hello, all.

Please, forgive me for 99% off-topic question, but as I use not "native" 
gcc...:-))

I have the following very strange gcc problem - in the file a.cpp there is 
some cCL class declaration and also global object CL is created. The 
constructor of the class inserts 'this' pointer into a global array pCLs. 
This array is declared system wide and all usage of the object therefore is 
done using this pointer and the object is never referenced directly.

Now, when everything is linked in - the 'a' object module is never used!
I checked the a.o content - there is an object CL (record of type 000B) and 
everything looks OK, but the executable has no a.o at all in its map file 
(and nothing works obviously).

Just for experiment, I added the following into a.cpp: 'volatile int 
x;' (global var declaration) and 'extern volatile int x' into main.cpp.
Magic! Now everything is OK - CL constructor was added into CTORS, all 
functions appeared in the map file.

Can someone help me to understand where the first variant is incorrect?
Many many thanks ahead.
-- 
Leon



More information about the users mailing list