Re: [PATCH] ARCv2: Add explcit unaligned access support (and ability to disable too)

From: Vineet Gupta
Date: Thu Feb 28 2019 - 13:12:39 EST

On 2/28/19 9:47 AM, Guenter Roeck wrote:
> On Wed, Jan 30, 2019 at 07:32:41PM +0300, Eugeniy Paltsev wrote:
>> As of today we enable unaligned access unconditionally on ARCv2.
>> Do this under a Kconfig option to allow disable it for test, benchmarking
>> etc. Also while at it
>> - Although gcc defaults to unaligned access (since GNU 2018.03), add the
>> right toggles for enabling or disabling as appropriate
>> - update bootlog to prints both HW feature status (exists, enabled/disabled)
>> and SW status (used / not used).
>> - wire up the relaxed memcpy for unaligned access
>> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@xxxxxxxxxxxx>
>> Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
>> [vgupta: squashed patches, handle gcc -mno-unaligned-access quick]
> Hi,
> with my brand-new gcc-8.3.0, built from upstream gcc, this patch
> results in
> arch/arc/kernel/setup.c: In function 'arc_cpu_mumbojumbo.constprop':
> include/linux/compiler.h:348:38: error:
> call to '__compiletime_assert_326' declared with attribute error: gcc doesn't support -mno-unaligned-access

Sorry it broke ur build - but it did catch a deficiency in compiler as intended -
yay !

> when trying to build allnoconfig or tinyconfig. I get the same results
> with gcc-8.2.0.

Unaligned access code gen was enabled by default in 7.x actually, but us OS folks
were late to find that which led to the recent patch to disable it which was
broken in gcc.
Claudiu fixed gcc promptly but that patch didn't make it to upstream, which I've
posted now.

> Do I need some special compiler configuration flag when building the
> arcv2 toolchain ? Or am I simply out of luck for using upstream gcc ?

Once the patch hits mainline you could use that. In the mean time I'll back out
the "detector" as it might trip other people too.

Many Thx for your testing service.