On Thu, Feb 09, 2012 at 11:13:39AM +0000, junfeng dong wrote: > Hi, > my arm cross compiler runs into an error like : > ld: error: a.out uses VFP register arguments, /tmp/ccGm43Jh.o does not > > It seems ld requires all input files and output file has the same > attribute of Tag_ABI_VFP_args, which is set by gcc in assembler file > (.eabi_attribute 28, 1). > but I didn't find the place where gcc cope with it. I wonder is this > attribute controlled only by "-mfloat-abi"? -mfloat-abi=hard means " > Tag_ABI_VFP_args=1" while -mfloat-abi=soft/softfp means " > Tag_ABI_VFP_args=0"?is there any other compile option affect that > attribute? > Any comments are welcome. You are correct -mfloat-abi changes the calling-convention used with floating-point arguments (amongst other things), and thereby changes the setting of Tag_ABI_VFP_args. So you need to ensure that all objects you are linking together use the same calling-convention. Thanks, Matt -- Matthew Gretton-Dann Principal Engineer, PD Software, ARM Ltd.