21 GCC regressions, 0 new, with your patch on 2003-06-26T09:45:01Z.

Andrew Pinski pinskia@physics.uc.edu
Fri Jun 27 01:33:00 GMT 2003


On Thursday, Jun 26, 2003, at 17:58 US/Eastern, Jan Hubicka wrote:

>>> Here is the diff with and without -funit-at-a-time on Darwin:
>>
>> The patch I commited for this yesterday didn't work for darwin?  It
>> definitly fixed the problems on PPC Linux.
>> Ugm, I will try again with crosscomplier :(
>> Basically if there is object output that is not used by way visible to
>> varpool it must by marked via varpool_mark_needed_node.  Do you have
>> some knowledge how does the Darwin OBJC work and what makes it
>> different?
>
> Hi,
> the problem is that actually darwin uses special purpose sections 
> instead of
> global symbols.  varpool code then removes the variables emit into 
> these
> sections as dead.  The attached patch marks all declarations built by
> objc-act.c that appears to be set used because it may not be used 
> later (just
> to avoid warning as comment in some cases says).  I am not 100% sure 
> that they
> are all needed, but they won't hurt and it is probably better to be 
> safe then
> sorry when I have zero chances to test it on darwin myself.
>
> Do you have access to darwin machine and can you test it by any chance?


It still does not work all the way.
There seems to be one more problem to fix because of the difference 
between next-runtime and gnu-runtime in Darwin:

In handle_impent and handle_class_ref, it outputs some references using 
ASM_DECLARE_CLASS_REFERENCE and it assumes that it is
under the L_OBJC_CLASS_REFERENCES_0 label already but it is throwing it 
some in the text section. Note this is all done in finish_objc.

I do not know how to fix this though.

Thanks,
Andrew



More information about the Gcc mailing list