Skip to content

cmd/link: add eabi tag to arm binary #5640

@gopherbot

Description

@gopherbot

by namsgorf:

What steps will reproduce the problem?

1. Run "readelf -A -- /path/to/go/binary"

What is the expected output?

Something like the following, which is the result of running the same command on
/bin/bash instead:

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-A"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Application
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-2
  Tag_FP_arch: VFPv3-D16
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_rounding: Needed
  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_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: SP and DP
  Tag_ABI_VFP_args: VFP registers
  Tag_CPU_unaligned_access: v6

What do you see instead?

No output; zero exit status.

Which compiler are you using (5g, 6g, 8g, gccgo)?

N/A

Which operating system are you using?

Ubuntu Saucy

Which version are you using?  (run 'go version')

go version go1.1 linux/arm

Please provide any additional information below.

See https://bugs.launchpad.net/ubuntu/+source/golang/+bug/1187722 for a golang build
problem this caused.

The ARM Architecture ABI r2.09 Addenda specifies the "eabi" attribute tags. In
this case, a Tag_ABI_VFP_args setting of VFP would allow tools to detect the binary as
armhf. I think this could be achieved with:

    .eabi_attribute 28, 1

But note that this bug is a request to add all useful attributes in general, rather than
the specific issue that prompted this report.

I'm trying to find out if is a requirement that ARM executables specify this information
if they want to link with system libraries that do. Nevertheless, it would be useful as
a wishlist item for the go binaries to provide this information so that distribution
tooling can make use of it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions