Solaris2 fails libobjc (as: location counter not on doubleword boundary)

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Mon Nov 19 20:21:00 GMT 2001


I'm getting this failure when building libobjc on sparc-sun-solaris2.7:

 > /teal/caip5/ghazi/gcc-testing/build/gcc/xgcc
 > -B/teal/caip5/ghazi/gcc-testing/build/gcc/
 > -B/usr/local/sparc-sun-solaris2.7/bin/
 > -B/usr/local/sparc-sun-solaris2.7/lib/ -isystem
 > /usr/local/sparc-sun-solaris2.7/include -fgnu-runtime -c
 > -I. -I../../../../egcc-CVS20011129/libobjc -g -m64 -DHAVE_GTHR_DEFAULT
 > -DIN_GCC -DIN_TARGET_LIBS -I../../../../egcc-CVS20011129/libobjc/objc
 > -I../../../../egcc-CVS20011129/libobjc/../gcc
 > -I../../../../egcc-CVS20011129/libobjc/../gcc/config -I../../../gcc
 > -I../../../../egcc-CVS20011129/libobjc/../include
 > ../../../../egcc-CVS20011129/libobjc/linking.m -o linking.o
 > /usr/ccs/bin/as: "/var/tmp//cclNBu4d.s", line 198: error: location
 > 	counter not on doubleword boundary
 > /usr/ccs/bin/as: "/var/tmp//cclNBu4d.s", line 225: error: location
 > 	counter not on doubleword boundary
 > make[4]: *** [linking.lo] Error 1
 > make[4]: Leaving directory
 > `/teal/caip5/ghazi/gcc-testing/build/sparc-sun-solaris2.7/sparcv9/libobjc'

Here's the assembly file from -save-temps:

	.file	"linking.m"
	.stabs	"/teal/caip5/ghazi/gcc-testing/build/sparc-sun-solaris2.7/sparcv9/libobjc/",100,0,0,.LLtext0
	.stabs	"../../../../egcc-CVS20011129/libobjc/linking.m",100,0,0,.LLtext0
	.section	".text"
.LLtext0:
	.stabs	"gcc2_compiled.",60,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)=@s64;r(0,3);001000000000000000000000;000777777777777777777777;",128,0,0,0
	.stabs	"unsigned int:t(0,4)=r(0,4);000000000000000000000000;000000000000037777777777;",128,0,0,0
	.stabs	"long unsigned int:t(0,5)=@s64;r(0,5);000000000000000000000000;001777777777777777777777;",128,0,0,0
	.stabs	"long long int:t(0,6)=@s64;r(0,6);001000000000000000000000;000777777777777777777777;",128,0,0,0
	.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);000000000000000000000000;001777777777777777777777;",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	"__int128_t:t(0,12)=@s128;r(0,12);000000000000000000000000;0377777777777777777777777777777777;",128,0,0,0
	.stabs	"__uint128_t:t(0,13)=@s128;r(0,13);000000000000000000000000;0377777777777777777777777777777777;",128,0,0,0
	.stabs	"float:t(0,14)=r(0,1);4;0;",128,0,0,0
	.stabs	"double:t(0,15)=r(0,1);8;0;",128,0,0,0
	.stabs	"long double:t(0,16)=r(0,1);16;0;",128,0,0,0
	.stabs	"complex int:t(0,17)=s8real:(0,1),0,32;imag:(0,1),32,32;;",128,0,0,0
	.stabs	"complex float:t(0,18)=r(0,18);8;0;",128,0,0,0
	.stabs	"complex double:t(0,19)=r(0,19);16;0;",128,0,0,0
	.stabs	"complex long double:t(0,20)=r(0,20);32;0;",128,0,0,0
	.stabs	"__builtin_va_list:t(0,21)=*(0,22)=(0,22)",128,0,0,0
	.stabs	"_Bool:t(0,23)=@s8;-16;",128,0,0,0
	.stabs	"../../../../egcc-CVS20011129/libobjc/objc/Object.h",130,0,0,0
	.stabs	"../../../../egcc-CVS20011129/libobjc/objc/objc.h",130,0,0,0
	.stabs	"/teal/caip5/ghazi/gcc-testing/build/gcc/include/stddef.h",130,0,0,0
	.stabs	"ptrdiff_t:t(3,1)=(0,3)",128,0,147,0
	.stabs	"size_t:t(3,2)=(0,5)",128,0,201,0
	.stabs	"wchar_t:t(3,3)=(0,1)",128,0,293,0
	.stabn	162,0,0,0
	.stabs	"BOOL:t(2,1)=(0,11)",128,0,42,0
	.stabs	"objc_selector:T(2,2)=s16sel_id:(2,3)=*(0,22),0,64;sel_types:(2,4)=*(0,2),64,64;;",128,0,0,0
	.stabs	"SEL:t(2,5)=(2,6)=*(2,2)",128,0,55,0
	.stabs	"objc_object:T(2,7)=s8class_pointer:(2,8)=*(2,9)=xsobjc_class:,0,64;;",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)=s104class_pointer:(2,17),0,64;super_class:(2,8),64,64;name:(2,4),128,64;version:(0,3),192,64;info:(0,5),256,64;instance_size:(0,3),320,64;ivars:(2,19)=*(2,20)=xsobjc_ivar_list:,384,64;methods:(2,21)=*(2,22)=xsobjc_method_list:,448,64;dtable:(2,23)=*(2,24)=xssarray:,512,64;subclass_list:(2,8),576,64;sibling_class:(2,8),640,64;protocols:(2,25)=*(2,26)=xsobjc_protocol_list:,704,64;gc_object_type:(2,3),768,64;;",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,22)",128,0,145,0
	.stabs	"arglist_t:t(2,31)=(2,32)=*(2,33)=u8arg_ptr:(2,16),0,64;arg_regs:(2,34)=ar(2,35)=@s64;r(2,35);000000000000000000000000;001777777777777777777777;;0;7;(0,2),0,64;;",128,0,149,0
	.stabn	162,0,0,0
	.stabs	"../../../../egcc-CVS20011129/libobjc/objc/typedstream.h",130,0,0,0
	.stabs	"../../../../egcc-CVS20011129/libobjc/objc/hash.h",130,0,0,0
	.stabs	"/teal/caip5/ghazi/gcc-testing/build/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
	.stabs	"/usr/include/sys/isa_defs.h",130,0,0,0
	.stabn	162,0,0,0
	.stabn	162,0,0,0
	.stabn	162,0,0,0
	.stabs	"cache_node:T(5,1)=s24next:(5,2)=*(5,1),0,64;key:(5,3)=*(0,22),64,64;value:(2,3),128,64;;",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)=s40node_table:(5,12)=*(5,4),0,64;size:(0,4),64,32;used:(0,4),96,32;mask:(0,4),128,32;last_bucket:(0,4),160,32;hash_func:(5,5),192,64;compare_func:(5,8),256,64;;",128,0,0,0
	.stabs	"cache_ptr:t(5,13)=(5,14)=*(5,11)",128,0,102,0
	.stabn	162,0,0,0
	.stabs	"/teal/caip5/ghazi/gcc-testing/build/gcc/include/stdio.h",130,0,0,0
	.stabs	"/teal/caip5/ghazi/gcc-testing/build/gcc/include/stdarg.h",130,0,0,0
	.stabs	"__gnuc_va_list:t(11,1)=(0,21)",128,0,43,0
	.stabn	162,0,0,0
	.stabs	"/usr/include/sys/va_list.h",130,0,0,0
	.stabs	"__va_list:t(12,1)=(2,3)",128,0,26,0
	.stabn	162,0,0,0
	.stabs	"/usr/include/stdio_tag.h",130,0,0,0
	.stabs	"__FILE:t(13,1)=(13,2)=xs__FILE:",128,0,21,0
	.stabn	162,0,0,0
	.stabs	"/usr/include/stdio_impl.h",130,0,0,0
	.stabs	"ssize_t:t(14,1)=(0,3)",128,0,20,0
	.stabs	"__FILE:T(13,2)=s128__pad:(14,2)=ar(2,35);0;15;(0,3),0,1024;;",128,0,0,0
	.stabn	162,0,0,0
	.stabs	"FILE:t(10,1)=(13,1)",128,0,55,0
	.stabs	"off_t:t(10,2)=(0,3)",128,0,88,0
	.stabs	"off64_t:t(10,3)=(10,2)",128,0,94,0
	.stabs	"fpos_t:t(10,4)=(0,3)",128,0,103,0
	.stabs	"fpos64_t:t(10,5)=(10,4)",128,0,109,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)=s88physical:(2,3),0,64;object_table:(5,13),64,64;stream_table:(5,13),128,64;class_table:(5,13),192,64;object_refs:(5,13),256,64;mode:(0,1),320,32;type:(0,1),352,32;version:(0,1),384,32;writing_root_p:(0,1),416,32;read:(4,1),448,64;write:(4,4),512,64;eof:(4,10),576,64;flush:(4,7),640,64;;",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)=s8isa:/1(2,18),0,64;;",128,0,0,0
	.stabn	162,0,0,0
	.stabs	"../../../../egcc-CVS20011129/libobjc/objc/NXConstStr.h",130,0,0,0
	.stabs	"NXConstantString:T(15,1)=s24isa:/1(2,18),0,64;c_string:/1(2,16),64,64;len:/1(0,4),128,32;;",128,0,0,0
	.stabn	162,0,0,0
	.section	".rodata"
	.align 8
.LLC0:
	.asciz	"Object"
	.align 8
.LLC1:
	.asciz	"NXConstantString"
	.section	".text"
	.align 4
	.stabs	"__objc_linking:F(0,22)",36,0,36,__objc_linking
	.global __objc_linking
	.type	__objc_linking,#function
	.proc	020
__objc_linking:
	.stabn 68,0,36,.LLM1-__objc_linking
.LLM1:
	!#PROLOGUE# 0
	save	%sp, -192, %sp
	!#PROLOGUE# 1
	.stabn 68,0,37,.LLM2-__objc_linking
.LLM2:
	sethi	%hh(.LLC0), %o0
	sethi	%lm(.LLC0), %o1
	or	%o0, %hm(.LLC0), %o0
	sllx	%o0, 32, %o0
	add	%o0, %o1, %o0
	or	%o0, %lo(.LLC0), %o0
	call	objc_get_class, 0
	 nop
	mov	%o0, %l0
	mov	%l0, %o0
	sethi	%hh(_OBJC_SELECTOR_TABLE), %o1
	sethi	%lm(_OBJC_SELECTOR_TABLE), %o2
	or	%o1, %hm(_OBJC_SELECTOR_TABLE), %o1
	sllx	%o1, 32, %o1
	add	%o1, %o2, %o1
	or	%o1, %lo(_OBJC_SELECTOR_TABLE), %o1
	call	objc_msg_lookup, 0
	 nop
	mov	%o0, %o3
	mov	%l0, %o0
	sethi	%hh(_OBJC_SELECTOR_TABLE), %o1
	sethi	%lm(_OBJC_SELECTOR_TABLE), %o2
	or	%o1, %hm(_OBJC_SELECTOR_TABLE), %o1
	sllx	%o1, 32, %o1
	add	%o1, %o2, %o1
	or	%o1, %lo(_OBJC_SELECTOR_TABLE), %o1
	call	%o3, 0
	 nop
	.stabn 68,0,38,.LLM3-__objc_linking
.LLM3:
	sethi	%hh(.LLC1), %o0
	sethi	%lm(.LLC1), %o1
	or	%o0, %hm(.LLC1), %o0
	sllx	%o0, 32, %o0
	add	%o0, %o1, %o0
	or	%o0, %lo(.LLC1), %o0
	call	objc_get_class, 0
	 nop
	mov	%o0, %l0
	sethi	%hh(_OBJC_SELECTOR_TABLE), %o0
	sethi	%lm(_OBJC_SELECTOR_TABLE), %o1
	or	%o0, %hm(_OBJC_SELECTOR_TABLE), %o0
	sllx	%o0, 32, %o0
	add	%o0, %o1, %o0
	or	%o0, %lo(_OBJC_SELECTOR_TABLE), %o0
	add	%o0, 16, %o1
	mov	%l0, %o0
	call	objc_msg_lookup, 0
	 nop
	mov	%o0, %o2
	sethi	%hh(_OBJC_SELECTOR_TABLE), %o0
	sethi	%lm(_OBJC_SELECTOR_TABLE), %o1
	or	%o0, %hm(_OBJC_SELECTOR_TABLE), %o0
	sllx	%o0, 32, %o0
	add	%o0, %o1, %o0
	or	%o0, %lo(_OBJC_SELECTOR_TABLE), %o0
	add	%o0, 16, %o1
	mov	%l0, %o0
	call	%o2, 0
	 nop
	.stabn 68,0,39,.LLM4-__objc_linking
.LLM4:
	return	%i7+8
	nop
.LLfe1:
	.size	__objc_linking,.LLfe1-__objc_linking
.LLscope0:
	.stabs	"",36,0,0,.LLscope0-__objc_linking
	.stabs	"_objc_category:T(0,24)=s40category_name:(2,16),0,64;class_name:(2,16),64,64;instance_methods:(0,25)=*(0,26)=xs_objc_method_list:,128,64;class_methods:(0,25),192,64;protocol_list:(0,27)=*(0,28)=*(0,29)=xs_objc_protocol:,256,64;;",128,0,0,0
	.stabs	"_objc_symtab:T(0,30)=s32sel_ref_cnt:(0,3),0,64;refs:(0,31)=*(0,32)=*(2,2),64,64;cls_def_cnt:(0,8),128,16;cat_def_cnt:(0,8),144,16;defs:(0,33)=ar(2,35);0;0;(2,3),192,64;;",128,0,0,0
	.section	".data"
	.align 8
	.type	_OBJC_SYMBOLS,#object
	.size	_OBJC_SYMBOLS,32
_OBJC_SYMBOLS:
	.uaword	0
	.uaword	0
	.skip 4
	.xword	_OBJC_SELECTOR_TABLE
	.uahalf	0
	.uahalf	0
	.skip 12
	.align 8
	.type	_OBJC_SELECTOR_TABLE,#object
	.size	_OBJC_SELECTOR_TABLE,48
_OBJC_SELECTOR_TABLE:
	.xword	_OBJC_METH_VAR_NAME_0
	.xword	_OBJC_METH_VAR_TYPE_0
	.xword	_OBJC_METH_VAR_NAME_0
	.xword	_OBJC_METH_VAR_TYPE_0
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	0
	.skip 12
	.stabs	"_objc_module:T(0,34)=s32version:(0,3),0,64;size:(0,3),64,64;name:(2,16),128,64;symtab:(0,35)=*(0,30),192,64;;",128,0,0,0
	.align 8
	.type	_OBJC_MODULES,#object
	.size	_OBJC_MODULES,32
_OBJC_MODULES:
	.uaword	0
	.uaword	8
	.skip 4
	.uaword	0
	.uaword	32
	.xword	_OBJC_CLASS_NAME_0
	.xword	_OBJC_SYMBOLS
	.section	".text"
	.align 4
	.stabs	"_GLOBAL__I___objc_linking:f(0,22)",36,0,204,_GLOBAL__I___objc_linking
	.type	_GLOBAL__I___objc_linking,#function
	.proc	020
_GLOBAL__I___objc_linking:
	.stabn 68,0,204,.LLM5-_GLOBAL__I___objc_linking
.LLM5:
	!#PROLOGUE# 0
	save	%sp, -192, %sp
	!#PROLOGUE# 1
	.stabn 68,0,204,.LLM6-_GLOBAL__I___objc_linking
.LLM6:
	sethi	%hh(_OBJC_MODULES), %o0
	sethi	%lm(_OBJC_MODULES), %o1
	or	%o0, %hm(_OBJC_MODULES), %o0
	sllx	%o0, 32, %o0
	add	%o0, %o1, %o0
	or	%o0, %lo(_OBJC_MODULES), %o0
	call	__objc_exec_class, 0
	 nop
	return	%i7+8
	nop
.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
	.align 8
	.xword	_GLOBAL__I___objc_linking
	.section	".data"
	.align 8
	.type	__objc_class_ref_Object,#object
	.size	__objc_class_ref_Object,8
__objc_class_ref_Object:
	.xword	__objc_class_name_Object
	.align 8
	.type	__objc_class_ref_NXConstantString,#object
	.size	__objc_class_ref_NXConstantString,8
__objc_class_ref_NXConstantString:
	.xword	__objc_class_name_NXConstantString
	.section	".rodata"
	.align 8
	.type	_OBJC_CLASS_NAME_0,#object
	.size	_OBJC_CLASS_NAME_0,47
_OBJC_CLASS_NAME_0:
	.asciz	"../../../../egcc-CVS20011129/libobjc/linking.m"
	.align 8
	.type	_OBJC_METH_VAR_NAME_0,#object
	.size	_OBJC_METH_VAR_NAME_0,5
_OBJC_METH_VAR_NAME_0:
	.asciz	"name"
	.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:+16"
	.stabs	"_OBJC_SELECTOR_TABLE:S(0,36)=ar(2,35);0;2;(0,37)=xs_objc_selector:",38,0,0,_OBJC_SELECTOR_TABLE
	.stabs	"_OBJC_METH_VAR_NAME_0:S(0,38)=ar(2,35);0;4;(0,2)",38,0,204,_OBJC_METH_VAR_NAME_0
	.stabs	"_OBJC_METH_VAR_TYPE_0:S(0,39)=ar(2,35);0;10;(0,2)",38,0,204,_OBJC_METH_VAR_TYPE_0
	.stabs	"_OBJC_CLASS_NAME_0:S(0,40)=ar(2,35);0;46;(0,2)",38,0,204,_OBJC_CLASS_NAME_0
	.stabs	"__objc_class_ref_Object:S(2,16)",38,0,204,__objc_class_ref_Object
	.stabs	"__objc_class_ref_NXConstantString:S(2,16)",38,0,204,__objc_class_ref_NXConstantString
	.text
	.stabs "",100,0,0,Letext
Letext:
	.ident	"GCC: (GNU) 3.1 20011129 (experimental)"



More information about the Gcc-bugs mailing list