reent.h
Jeff Johnston
jjohnstn@redhat.com
Wed Apr 7 17:41:00 GMT 2004
Artem B. Bityuckiy wrote:
> Jeff Johnston wrote:
>
>>> 1. Does Newlib really take care about binary compatibility?
>>
>> In this particular case, care was taken to see that the entire library
>> didn't require recompiling everytime a new reentrancy field was
>> added. Newlib hasn't got proper dependency statements in its make
>> files so moving all the reentrancy fields around requires almost a
>> complete rebuild; the makefiles do not catch this. At the time, the
>> old malloc area was still in place but not being used so the first
>> change started to reclaim the area with the union.
>>
>>> 2. I want to add new fields to struct _reent. Do I need to add these
>>> fields to _reent field of _new union to support binary compatibility?
>>> May I not to care about binary compatibility and have no problems
>>> during future contributions to Newlib?
>>
>>
>>
>> Add them there in the non-reent-small case for the reason explained
>> above.
>>
>>> 3. In case of REENT_SMALL defined there is no reserved space in
>>> struct _reent. Should I use struct misc_reent * ?
>>>
>>
>> Yes, unless the new variables naturally belong with some of the other
>> groupings. Remember to change the initialization code too.
>
> Yes, I did this.
>
>>
>> -- Jeff J.
>>
> Ok, I've added my field to struct _misc.
>
> We've implemented setlocale() and this field is _locale_t structure. But
> there is old locale-related field (_current_locale) present. It isn't
> needed anymore. We can't delete it without struct _reent size affecting.
> Should we just leave this field alone?
>
Yes, do not remove it for the reason you quoted. Add a comment that the field
is no longer used and can be reclaimed when space is needed. You can even try
renaming it (e.g. __no_longer_used) to verify that there aren't any references
you have missed.
-- Jeff J.
More information about the Newlib
mailing list