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~