Hi,
I think the GNU objdump prints out the build attributes, in a GNU elf file this section looks like this:
readelf -A tests_reg/spe/build2/bin/tfm_s.elf
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "cortex-m85"
  Tag_CPU_arch: v8.1-M.mainline
  Tag_CPU_arch_profile: Microcontroller
  Tag_THUMB_ISA_use: Yes
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_enum_size: small
  Tag_CPU_unaligned_access: v6
  Tag_DSP_extension: Allowed
  Tag_PAC_extension: PAC/AUT instructions permitted in the NOP and in the non-NOP space
  Tag_BTI_extension: BTI instructions permitted in the NOP and in the non-NOP space
If we build with armclang, these attributes are not included in the elf file (no aeabi attributes section, this is an optional/implementation defined section), but included in every object file, so the linker can check the compatibility between each object
 file (FP, abi, etc).
I’ve checked both GNU and armclang builds, the ELF file headers are the same which contains the arm 32bit architecture information too.
Can I ask what problems are you facing?
You can try using debug build or you can give this armlink option a try:
https://developer.arm.com/documentation/101754/0622/armlink-Reference/armlink-Command-line-Options/--elf-output-format
Regards,
Dávid
From: Roman.Mazurak--- via TF-M <tf-m@lists.trustedfirmware.org>
Sent: Wednesday, August 14, 2024 12:53 PM
To: tf-m@lists.trustedfirmware.org
Subject: [TF-M] ARMCLANG generates ELF with armv3m architecture
Hello,
We noticed that build of TF-M for CM33 platform generates ELF file for which architecture is armv3m. Step to reproduce:
You will see following output:
tfm_s.axf
architecture: armv3m, flags 0x00000012:
EXEC_P, HAS_SYMS
While fromelf (from armclang) prints following:
========================================================================
** ELF Header Information
    File Name: tfm_s.axf
    Machine class: ELFCLASS32 (32-bit)
    Data encoding: ELFDATA2LSB (Little endian)
    Header version: EV_CURRENT (Current version)
    Operating System ABI: none
    ABI Version: 0
    File Type: ET_EXEC (Executable) (2)
    Machine: EM_ARM (ARM)
    Image Entry point: 0x16004319
    Flags: EF_ARM_HASENTRY + EF_ARM_ABI_FLOAT_HARD (0x05000402)
    ARM ELF revision: 5 (ABI version 2)
Is’t expected? Because we have problems with debugging images generated by armclang in eclipse with gdb.
Regards,
Roman.