[Ping] Tag_CPU_name merging produces wrong tag for ARM.
Maxim Ostapenko
m.ostapenko@partner.samsung.com
Tue Sep 9 06:06:00 GMT 2014
Ping.
On 09/02/2014 02:45 PM, Maxim Ostapenko wrote:
> Add Andrew Stubbs and Nick Clifton as author and reviewer of ARM
> attributes merging patch
> (https://sourceware.org/ml/binutils/2009-01/msg00156.html).
>
> -------- Original Message --------
> Subject: [Bug ld/17212] Tag_CPU_name merging produces wrong tag
> for ARM.
> Date: Tue, 02 Sep 2014 13:19:20 +0400
> From: Maxim Ostapenko <m.ostapenko@partner.samsung.com>
> To: binutils@sourceware.org
> CC: Yury Gribov <y.gribov@samsung.com>, Slava Garbuzov
> <v.garbuzov@samsung.com>
>
>
>
> Hi,
>
> I tried to compile a binary optimized for ARM Cortex-A15 with ARM
> Cortex-A8 cross-toolchain (host is x86_64-pc-linux-gnu), but
> Tag_CPU_name appears to be "Cortex-A8" for the binary instead of
> "Cortex-A15". The example session follows:
>
> $ arm-v7a8-linux-gnueabi-gcc -O2 -mcpu=cortex-a15 divtest.c -o
> divtest.a15
>
> $ readelf -A divtest.a15
>
> Attribute Section: aeabi
> File Attributes
> Tag_CPU_name: "Cortex-A8"
> Tag_CPU_arch: v7
> ................................................
> Tag_DIV_use: Allowed in v7-A with integer division extension
>
> After some investigation I found out, that Tag_CPU_name merging based on
> Tag_CPU_arch. Since the first file to appear during linking is crt1.o,
> which has Tag_CPU_name: "Cortex-A8" for A8 toolchain, the result
> binary's Tag_CPU_name is also "Cortex-A8". Is this expected behavior of
> ld, or maybe tags should be merged to a more specific "Cortex-A15"?
> Perhaps we should use Tag_DIV_use when merging names?
>
> -Maxim
>
>
>
More information about the Binutils
mailing list