This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: latest snapshot fails to build libobjc.so on Solaris
On Tue, Nov 21, 2000 at 05:19:29PM -0200, Alexandre Oliva wrote:
> What does the assembly code look like? Particularly, the code just
> around the reference to the symbol, and the section in which it is
> stored.
The attachment is the sparc assembly output for linking.m -- two of
the bad symbols are in this file:
__objc_class_name_Object and __objc_class_name_NXConstantString.
.file "linking.m"
.stabs "/remote/dtg103/jbuck/gnu/src/cvs/gcc-racerx/sparc-sun-solaris2.5.1/libobjc/",100,0,0,.LLtext0
.stabs "../../../gcc/libobjc/linking.m",100,0,0,.LLtext0
.section ".text"
.LLtext0:
.stabs "gcc2_compiled.", 0x3c, 0, 0, 0
.stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
.stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
.stabs "long int:t(0,3)=r(0,3);-2147483648;2147483647;",128,0,0,0
.stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0037777777777;",128,0,0,0
.stabs "long unsigned int:t(0,5)=r(0,5);0000000000000;0037777777777;",128,0,0,0
.stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,0
.stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,0
.stabs "short int:t(0,8)=@s16;r(0,8);-32768;32767;",128,0,0,0
.stabs "short unsigned int:t(0,9)=@s16;r(0,9);0;65535;",128,0,0,0
.stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
.stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
.stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,13)=r(0,1);8;0;",128,0,0,0
.stabs "long double:t(0,14)=r(0,1);16;0;",128,0,0,0
.stabs "complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;",128,0,0,0
.stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0
.stabs "complex double:t(0,17)=r(0,17);16;0;",128,0,0,0
.stabs "complex long double:t(0,18)=r(0,18);32;0;",128,0,0,0
.stabs "_Bool:t(0,19)=@s8;-16;",128,0,0,0
.stabs "__builtin_va_list:t(0,20)=*(0,21)=(0,21)",128,0,0,0
.stabs "../../../gcc/libobjc/objc/Object.h",130,0,0,0
.stabs "../../../gcc/libobjc/objc/objc.h",130,0,0,0
.stabs "/u/jbuck/gnu/src/cvs/gcc-racerx/gcc/include/stddef.h",130,0,0,0
.stabs "ptrdiff_t:t(3,1)=(0,1)",128,0,147,0
.stabs "size_t:t(3,2)=(0,4)",128,0,199,0
.stabs "wchar_t:t(3,3)=(0,3)",128,0,287,0
.stabn 162,0,0,0
.stabs "BOOL:t(2,1)=(0,11)",128,0,42,0
.stabs "objc_selector:T(2,2)=s8sel_id:(2,3)=*(0,21),0,32;sel_types:(2,4)=*(0,2),32,32;;",128,0,0,0
.stabs "SEL:t(2,5)=(2,6)=*(2,2)",128,0,55,0
.stabs "objc_object:T(2,7)=s4class_pointer:(2,8)=*(2,9)=xsobjc_class:,0,32;;",128,0,0,0
.stabs "id:t(2,10)=(2,11)=*(2,7)",128,0,72,0
.stabs "IMP:t(2,12)=(2,13)=*(2,14)=f(2,10)",128,0,78,0
.stabs "STR:t(2,15)=(2,16)=*(0,2)",128,0,85,0
.stabs "MetaClass:t(2,17)=(2,8)",128,0,97,0
.stabs "Class:t(2,18)=(2,8)",128,0,98,0
.stabs "objc_class:T(2,9)=s52class_pointer:(2,17),0,32;super_class:(2,8),32,32;name:(2,4),64,32;version:(0,3),96,32;info:(0,5),128,32;instance_size:(0,3),160,32;ivars:(2,19)=*(2,20)=xsobjc_ivar_list:,192,32;methods:(2,21)=*(2,22)=xsobjc_method_list:,224,32;dtable:(2,23)=*(2,24)=xssarray:,256,32;subclass_list:(2,8),288,32;sibling_class:(2,8),320,32;protocols:(2,25)=*(2,26)=xsobjc_protocol_list:,352,32;gc_object_type:(2,3),384,32;;",128,0,0,0
.stabs "retval_t:t(2,27)=(2,3)",128,0,144,0
.stabs "apply_t:t(2,28)=(2,29)=*(2,30)=f(0,21)",128,0,145,0
.stabs "arglist_t:t(2,31)=(2,32)=*(2,33)=u4arg_ptr:(2,16),0,32;arg_regs:(2,34)=ar(2,35)=r(2,35);0000000000000;0037777777777;;0;3;(0,2),0,32;;",128,0,149,0
.stabn 162,0,0,0
.stabs "../../../gcc/libobjc/objc/typedstream.h",130,0,0,0
.stabs "../../../gcc/libobjc/objc/hash.h",130,0,0,0
.stabs "/u/jbuck/gnu/src/cvs/gcc-racerx/gcc/include/stddef.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/string.h",130,0,0,0
.stabs "/usr/include/sys/feature_tests.h",130,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "cache_node:T(5,1)=s12next:(5,2)=*(5,1),0,32;key:(5,3)=*(0,21),32,32;value:(2,3),64,32;;",128,0,0,0
.stabs "node_ptr:t(5,4)=(5,2)",128,0,51,0
.stabs "hash_func_type:t(5,5)=(5,6)=*(5,7)=f(0,4)",128,0,63,0
.stabs "compare_func_type:t(5,8)=(5,9)=*(5,10)=f(0,1)",128,0,72,0
.stabs "cache:T(5,11)=s28node_table:(5,12)=*(5,4),0,32;size:(0,4),32,32;used:(0,4),64,32;mask:(0,4),96,32;last_bucket:(0,4),128,32;hash_func:(5,5),160,32;compare_func:(5,8),192,32;;",128,0,0,0
.stabs "cache_ptr:t(5,13)=(5,14)=*(5,11)",128,0,102,0
.stabn 162,0,0,0
.stabs "/u/jbuck/gnu/src/cvs/gcc-racerx/gcc/include/stdio.h",130,0,0,0
.stabs "/u/jbuck/gnu/src/cvs/gcc-racerx/gcc/include/stdarg.h",130,0,0,0
.stabs "__gnuc_va_list:t(10,1)=(0,20)",128,0,43,0
.stabn 162,0,0,0
.stabs "/usr/include/sys/va_list.h",130,0,0,0
.stabs "__va_list:t(11,1)=(2,3)",128,0,44,0
.stabn 162,0,0,0
.stabs "fpos_t:t(9,1)=(0,3)",128,0,43,0
.stabs "FILE:t(9,2)=(9,3)=s16_cnt:(0,1),0,32;_ptr:(9,4)=*(0,11),32,32;_base:(9,4),64,32;_flag:(0,11),96,8;_file:(0,11),104,8;;",128,0,154,0
.stabn 162,0,0,0
.stabs "objc_typed_read_func:t(4,1)=(4,2)=*(4,3)=f(0,1)",128,0,34,0
.stabs "objc_typed_write_func:t(4,4)=(4,5)=*(4,6)=f(0,1)",128,0,35,0
.stabs "objc_typed_flush_func:t(4,7)=(4,8)=*(4,9)=f(0,1)",128,0,36,0
.stabs "objc_typed_eof_func:t(4,10)=(4,8)",128,0,37,0
.stabs "objc_typed_stream:T(4,11)=s52physical:(2,3),0,32;object_table:(5,13),32,32;stream_table:(5,13),64,32;class_table:(5,13),96,32;object_refs:(5,13),128,32;mode:(0,1),160,32;type:(0,1),192,32;version:(0,1),224,32;writing_root_p:(0,1),256,32;read:(4,1),288,32;write:(4,4),320,32;eof:(4,10),352,32;flush:(4,7),384,32;;",128,0,0,0
.stabs "TypedStream:t(4,12)=(4,11)",128,0,62,0
.stabn 162,0,0,0
.stabs "Object:T(1,1)=s4isa:/1(2,18),0,32;;",128,0,0,0
.stabn 162,0,0,0
.stabs "../../../gcc/libobjc/objc/NXConstStr.h",130,0,0,0
.stabs "NXConstantString:T(12,1)=s12isa:/1(2,18),0,32;c_string:/1(2,16),32,32;len:/1(0,4),64,32;;",128,0,0,0
.stabn 162,0,0,0
.align 4
.LLGETPC0:
retl
add %o7,%l7,%l7
.section ".rodata"
.align 8
.LLC0:
.asciz "Object"
.align 8
.LLC1:
.asciz "NXConstantString"
.section ".text"
.align 4
.stabs "__objc_linking:F(0,21)",36,0,36,__objc_linking
.global __objc_linking
.type __objc_linking,#function
.proc 020
__objc_linking:
.stabn 68,0,39,.LLM1-__objc_linking
.LLM1:
!#PROLOGUE# 0
save %sp, -112, %sp
.stabn 68,0,37,.LLM2-__objc_linking
.LLM2:
sethi %hi(.LLC0), %o1
.stabn 68,0,39,.LLM3-__objc_linking
.LLM3:
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
call .LLGETPC0
add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
.stabn 68,0,37,.LLM4-__objc_linking
.LLM4:
or %o1, %lo(.LLC0), %o1
.stabn 68,0,39,.LLM5-__objc_linking
.LLM5:
.stabn 68,0,37,.LLM6-__objc_linking
.LLM6:
call objc_get_class, 0
ld [%l7+%o1], %o0
sethi %hi(_OBJC_SELECTOR_TABLE), %o1
or %o1, %lo(_OBJC_SELECTOR_TABLE), %o1
ld [%l7+%o1], %l0
mov %o0, %l1
call objc_msg_lookup, 0
mov %l0, %o1
mov %o0, %o2
mov %l1, %o0
call %o2, 0
mov %l0, %o1
.stabn 68,0,38,.LLM7-__objc_linking
.LLM7:
sethi %hi(.LLC1), %o1
or %o1, %lo(.LLC1), %o1
call objc_get_class, 0
ld [%l7+%o1], %o0
mov %o0, %l1
call objc_msg_lookup, 0
add %l0, 8, %o1
mov %o0, %o2
mov %l1, %o0
call %o2, 0
add %l0, 8, %o1
ret
restore
.LLfe1:
.size __objc_linking,.LLfe1-__objc_linking
.LLscope0:
.stabs "",36,0,0,.LLscope0-__objc_linking
.stabs "_objc_category:T(0,22)=s20category_name:(2,16),0,32;class_name:(2,16),32,32;instance_methods:(0,23)=*(0,24)=xs_objc_method_list:,64,32;class_methods:(0,23),96,32;protocol_list:(0,25)=*(0,26)=*(0,27)=xs_objc_protocol:,128,32;;",128,0,0,0
.stabs "_objc_symtab:T(0,28)=s16sel_ref_cnt:(0,3),0,32;refs:(0,29)=*(0,30)=*(2,2),32,32;cls_def_cnt:(0,8),64,16;cat_def_cnt:(0,8),80,16;defs:(0,31)=ar(2,35);0;0;(2,3),96,32;;",128,0,0,0
.section ".data"
.align 4
.type _OBJC_SYMBOLS,#object
.size _OBJC_SYMBOLS,16
_OBJC_SYMBOLS:
.uaword 0
.uaword _OBJC_SELECTOR_TABLE
.uahalf 0
.uahalf 0
.skip 4
.stabs "_OBJC_SELECTOR_TABLE:S(0,32)=ar(2,35);0;2;(0,33)=xs_objc_selector:",38,0,0,_OBJC_SELECTOR_TABLE
.align 4
.type _OBJC_SELECTOR_TABLE,#object
.size _OBJC_SELECTOR_TABLE,24
_OBJC_SELECTOR_TABLE:
.uaword _OBJC_METH_VAR_NAME_0
.uaword _OBJC_METH_VAR_TYPE_0
.uaword _OBJC_METH_VAR_NAME_0
.uaword _OBJC_METH_VAR_TYPE_0
.uaword 0
.uaword 0
.stabs "_objc_module:T(0,34)=s16version:(0,3),0,32;size:(0,3),32,32;name:(2,16),64,32;symtab:(0,35)=*(0,28),96,32;;",128,0,0,0
.align 4
.type _OBJC_MODULES,#object
.size _OBJC_MODULES,16
_OBJC_MODULES:
.uaword 8
.uaword 16
.uaword _OBJC_CLASS_NAME_0
.uaword _OBJC_SYMBOLS
.section ".text"
.align 4
.stabs "_GLOBAL_.I.__objc_linking:F(0,21)",36,0,41,_GLOBAL_.I.__objc_linking
.global _GLOBAL_.I.__objc_linking
.type _GLOBAL_.I.__objc_linking,#function
.proc 020
_GLOBAL_.I.__objc_linking:
.stabn 68,0,41,.LLM8-_GLOBAL_.I.__objc_linking
.LLM8:
!#PROLOGUE# 0
save %sp, -112, %sp
sethi %hi(_OBJC_MODULES), %i1
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
call .LLGETPC0
add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
or %i1, %lo(_OBJC_MODULES), %i1
ld [%l7+%i1], %i0
call __objc_exec_class, 0
restore
.LLfe2:
.size _GLOBAL_.I.__objc_linking,.LLfe2-_GLOBAL_.I.__objc_linking
.LLscope1:
.stabs "",36,0,0,.LLscope1-_GLOBAL_.I.__objc_linking
.section ".ctors",#alloc,#write
.long _GLOBAL_.I.__objc_linking
.section ".rodata"
.align 4
.uaword __objc_class_name_Object
.align 4
.uaword __objc_class_name_NXConstantString
.stabs "_OBJC_CLASS_NAME_0:S(0,36)=ar(2,35);0;30;(0,2)",38,0,41,_OBJC_CLASS_NAME_0
.align 8
.type _OBJC_CLASS_NAME_0,#object
.size _OBJC_CLASS_NAME_0,31
_OBJC_CLASS_NAME_0:
.asciz "../../../gcc/libobjc/linking.m"
.stabs "_OBJC_METH_VAR_NAME_0:S(0,37)=ar(2,35);0;4;(0,2)",38,0,41,_OBJC_METH_VAR_NAME_0
.align 8
.type _OBJC_METH_VAR_NAME_0,#object
.size _OBJC_METH_VAR_NAME_0,5
_OBJC_METH_VAR_NAME_0:
.asciz "name"
.stabs "_OBJC_METH_VAR_TYPE_0:S(0,38)=ar(2,35);0;10;(0,2)",38,0,41,_OBJC_METH_VAR_TYPE_0
.align 8
.type _OBJC_METH_VAR_TYPE_0,#object
.size _OBJC_METH_VAR_TYPE_0,11
_OBJC_METH_VAR_TYPE_0:
.asciz "r*0@+8:+12"
.text
.stabs "",100,0,0,Letext
Letext:
.ident "GCC: (GNU) 2.97 20001120 (experimental)"