Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20242 Discussions

Error: L6366E: my_strcopy.o attributes are not compatible with the provided attribute

Honored Contributor II



I’m working on cyclone V based project using DS-5 AE tools. 

I created a project using the Altera-Cyclone-V_RAM example of the DS-5 Examples & Programming Libraries’  

The project compiles well and I can debug it without problem. 

Then I created the assembler file according to the following example: 

[url] ([/URL] 


This example is very simple and the file my_strcopy.s contains the following code: 


area scopy, code, readonly 

export my_strcopy ; export symbol 

my_strcopy ; r0 -> dest string 

; r1 -> source string 

ldrb r2, [r1],#1 ; load byte + update addr 

strb r2, [r0],#1 ; store byte + update addr 

cmp r2,# 0 ; check for null 

bne my_strcopy ; keep going if not 

bx lr ; return 



When I compile the project I got the following error message: 


armlink --cpu=Cortex-A9.no_neon.no_vfp --fpu=vfpv3 --scatter="../scatter.scat" --info=sizes -o"../Hello_and_ASM.axf" ./hello.o ./my_strcopy.o  

error: l6366e: my_strcopy.o attributes are not compatible with the provided attributes. 

Object my_strcopy.o contains Build Attributes that are incompatible with the provided attributes. 

Tag_THUMB_ISA_use = No Thumb instructions were permitted to be used (=0) 

Tag_Advanced_SIMD_arch = Use of the Advanced SIMD Architecture (Neon) was permitted (=1) 

Finished: 3 information, 0 warning and 1 error messages. 



What can I do? 

Thanks for your Help 

Kind regards 

0 Kudos
1 Reply
Honored Contributor II

In the property of the project, Setting: The target must be identical with C compiler Arm assembler and linker : Cortex-A9.no_neon.no_vfp. 


The ARM support wrote: 

Hi Jerome, 


One thing to note immediately is that the options "--cpu=Cortex-A9.no_neon.no_vfp --fpu=vfpv3" to the linker directly conflict with each other. You can't build for a CPU with no FPU yet specify an FPU. This may be the cause of some of your issues. 


Can you give us the compiler (armcc) options used here? The errors can come out via mismatch between the compiler options used to build two source files or even link against the C library itself. It is possible that hello.o was built without a --cpu option, in which case it would have been built for ARMv4 (not even ARMv4T) which would flag the attribute to disallow Thumb instructions from being linked against that compilation unit. The same goes for the FPU -- specifying no FPU or a different FPU type for each file can prove to set the Advanced SIMD flag on one, but not the other. 


By aligning your compiler and linker arguments you should be able to align the settings and come out with binary objects which do not have conflicting attributes. 



0 Kudos