This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM Compiler 6 compiles data only C file with SoftVFP attribute.

I'm making XEN hypervisor being able to be built with ARM Compile 6 (6.6.3 in particular).

During the work, it was discovered a weird armclang compiler beahviour. When compiling a C file with only a data definition (no executable code, e.g. [1]), resulting object file causes the final link crash with the error:

Error: L6242E: Cannot link object built_in.o as its attributes are incompatible with the image attributes.
... A64 clashes with SoftVFP.

After some investigation, it was discovered that the faulty object file has both $IEEE1 and $IEEEX among its build attributes. While object files with text sections all have $IEEE1 attribute.

The effective command line in my case is as following:

armclang --target=aarch64-arm-none-eabi -march=armv8.1-a+nofp+nosimd -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -Wno-unused-local-typedefs -O1 -fno-omit-frame-pointer -nostdinc -fno-builtin -fno-common -Werror -Wredundant-decls -Wno-pointer-arith -Wvla -pipe -D__XEN__ -include /home/xtfs/DEV/xen-arm-ds6/xen/include/xen/config.h -nostdlibinc -nostdlib -Wno-unused-command-line-argument -include /home/xtfs/DEV/xen-arm-ds6/xen/include/asm/armds.h '-D__OBJECT_FILE__="thunderx.o"' -g -MMD -MF ./.thunderx.o.d -mcpu=generic -mgeneral-regs-only -DCONFIG_EARLY_PRINTK -DEARLY_PRINTK_INC=\"debug-scif.inc\" -DEARLY_PRINTK_BAUD= -DEARLY_UART_BASE_ADDRESS=0xe6e88000 -DEARLY_UART_REG_SHIFT= -I/home/xtfs/DEV/xen-arm-ds6/xen/include -fno-stack-protector -fno-exceptions -Wnested-externs -DGCC_HAS_VISIBILITY_ATTRIBUTE -c thunderx.c -o thunderx.o

The issue disappears if an empty function is added to the faulty file.

Any ideas on how to solve the issue with the command line options (without patching the code)?

  • Hi Andrii,

    I'm Product Manager for Compilers, seems like you're having some challenges with migration to the 6.6.3 compiler. Probably the best way to help you get going is via a support case, we have an experienced team of compiler/architecture professionals here eager to help! I'll ping you a private message, if you let me know your e-mail address I can get the support case kicked off.

    Thanks,

    Paul.