This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libatomic Makefile unconditionally sets -march=armv7-a when configuring with ifunc support


On 01/16/2014 05:51 AM, Kyrill Tkachov wrote:
> Hi Richard,
> 
> I noticed that Makefile.in in libatomic sets -march=armv7-a when compiling for
> arm linux targets with ifunc support:
> 
> @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a
> -DHAVE_KERNEL64
> 
> Is there any particular reason why it must do that?

Because armv7-a is required to enable the strexb, strexh, and strexd insns.

Then the ifunc selects between the kernel, armv6 and armv7 versions.

> Would there be any fallout I'm not seeing from removing -march=armv7-a from there?

You'd break the build for any configuration where strex[bhd] aren't enabled.

There are extensions to libatomic that could be made for armv8 support,
what with the new load-acquire etc insns.  But merely using -march=armv8
doesn't achieve that.

I.e. it doesn't do you any good to just remove the flag.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]