------- Comment #9 from iains at gcc dot gnu dot org  2010-05-27 23:34 -------
using the example at #5 

apollo:gcc-4-6-trunk-build$ ./gcc/xgcc -B gcc ../tests/trivial.m -flto -o t
-lobjc -save-temps
trivial.s:unknown:Undefined local symbol L_OBJC_CLASS_myRootObject.2084
trivial.s:unknown:Undefined local symbol L_OBJC_METACLASS_myRootObject.2083

looking at the asm with lto:

L_OBJC_SYMBOLS.2087:
        .long   0
        .long   0
        .word   1
        .word   0
        .long   L_OBJC_CLASS_myRootObject.2084
.no_dead_strip L_OBJC_METH_VAR_NAME_12.2082
        .objc_meth_var_names
L_OBJC_METH_VAR_NAME_12.2082:
        .ascii "class\0"
.no_dead_strip L_OBJC_CLASS_myRootObject.2088
        .objc_class
        .align 5
L_OBJC_CLASS_myRootObject.2088:
        .long   L_OBJC_METACLASS_myRootObject.2083

it seems that there's a later edition of the variable which becomes the label
for the table and the reference fails.

similarly with metaclass table.

.no_dead_strip L_OBJC_METACLASS_myRootObject.2092
        .objc_meta_class
        .align 5
L_OBJC_METACLASS_myRootObject.2092:
        .long   L_OBJC_CLASS_NAME_0.2080
        .long   0
        .long   L_OBJC_CLASS_NAME_0.2080
        .long   0

====
I must confess, I haven't got much idea where to look for the problem at this
juncture.. 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44140

Reply via email to