[gccsdk] GCCSDK GCC 4 status update

David J. Ruck druck at druck.org.uk
Sat Jun 2 13:14:07 PDT 2007

On 2 Jun 2007 gccsdk at jip22.freeuk.com wrote:
> David J. Ruck wrote:
>> It would be best to treat the USR start code as a separate entity from
>> the SVC side of the module (init/final/service/SWI/handlers), and have
>> two different initialisations to enable each part to make full use of
>> C++ contructs, but obviously not share them. There needs to be a
>> mechanism for the USR side to pick up any flags set by commands or
>> events on the SVC side, but this would be simple flat data and not
>> objects.

> You would need to be very careful. In effect you are going to end up
> with two different 'identical' static objects from one definition in
> the source, depending on which part of the program you are in, except
> the linker won't know this.

Very good points.

Perhaps it would be better to make it an either or. i.e. modules with 
a start entry have the initialisation done in main, and those without 
have it done in the init entry wrapper.

The rationalisation for this is that those 'language' modules with a 
start entry are likely to want to use C++ features in the main body of 
the code, and the SVC parts tend to be simple options setting, and can 
be written without accessing static objects.

On the other hand most complex SVC modules wont have a start entry and 
therefor need to have static initialation performed correctly to make 
the full use of C++. I see this type being generally more useful so is 
important it can work properly.


The ARM Club Free Software - http://www.armclub.org.uk/free/
The 32bit Conversions Page - http://www.quantumsoft.co.uk/druck/

More information about the gcc mailing list