Nathan Chancellor
d93fe5e6c9
ARM: 8833/1: Ensure that NEON code always compiles with Clang
...
[ Upstream commit de9c0d49d8 ]
While building arm32 allyesconfig, I ran into the following errors:
arch/arm/lib/xor-neon.c:17:2: error: You should compile this file with
'-mfloat-abi=softfp -mfpu=neon'
In file included from lib/raid6/neon1.c:27:
/home/nathan/cbl/prebuilt/lib/clang/8.0.0/include/arm_neon.h:28:2:
error: "NEON support not enabled"
Building V=1 showed NEON_FLAGS getting passed along to Clang but
__ARM_NEON__ was not getting defined. Ultimately, it boils down to Clang
only defining __ARM_NEON__ when targeting armv7, rather than armv6k,
which is the '-march' value for allyesconfig.
>From lib/Basic/Targets/ARM.cpp in the Clang source:
// This only gets set when Neon instructions are actually available, unlike
// the VFP define, hence the soft float and arch check. This is subtly
// different from gcc, we follow the intent which was that it should be set
// when Neon instructions are actually available.
if ((FPU & NeonFPU) && !SoftFloat && ArchVersion >= 7) {
Builder.defineMacro("__ARM_NEON", "1");
Builder.defineMacro("__ARM_NEON__");
// current AArch32 NEON implementations do not support double-precision
// floating-point even when it is present in VFP.
Builder.defineMacro("__ARM_NEON_FP",
"0x" + Twine::utohexstr(HW_FP & ~HW_FP_DP));
}
Ard Biesheuvel recommended explicitly adding '-march=armv7-a' at the
beginning of the NEON_FLAGS definitions so that __ARM_NEON__ always gets
definined by Clang. This doesn't functionally change anything because
that code will only run where NEON is supported, which is implicitly
armv7.
Link: https://github.com/ClangBuiltLinux/linux/issues/287
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org >
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com >
Acked-by: Nicolas Pitre <nico@linaro.org >
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com >
Reviewed-by: Stefan Agner <stefan@agner.ch >
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2019-04-05 22:33:08 +02:00
..
2017-11-02 11:10:55 +01:00
2018-08-23 18:48:43 -07:00
2017-10-03 17:54:25 -07:00
2017-11-02 11:10:55 +01:00
2018-08-07 17:51:39 +08:00
2019-04-05 22:33:08 +02:00
2018-07-10 15:00:52 -06:00
2018-10-02 08:44:59 +10:00
2015-09-10 13:29:01 -07:00
2017-05-08 17:15:12 -07:00
2018-03-26 02:01:27 +09:00
2018-08-22 10:52:48 -07:00
2018-06-12 16:19:22 -07:00
2017-12-01 13:09:40 -08:00
2017-12-01 13:09:40 -08:00
2017-12-08 15:13:27 +00:00
2019-03-23 20:09:48 +01:00
2017-07-14 15:05:13 -07:00
2018-06-21 14:25:21 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-10-12 09:17:46 +02:00
2018-08-22 10:52:48 -07:00
2014-12-22 16:43:06 +00:00
2019-04-05 22:33:08 +02:00
2018-03-14 16:55:29 -07:00
2018-08-16 12:14:42 -07:00
2018-03-09 16:40:01 -08:00
2013-06-19 17:54:06 +02:00
2017-11-02 11:10:55 +01:00
2018-01-12 23:03:01 +11:00
2017-11-02 11:10:55 +01:00
2016-03-13 23:55:13 -04:00
2014-04-03 16:21:12 -07:00
2017-11-02 11:10:55 +01:00
2017-09-08 18:26:49 -07:00
2017-12-01 13:09:40 -08:00
2017-11-02 11:10:55 +01:00
2011-10-29 21:20:22 +02:00
2015-05-27 15:22:15 +02:00
2018-02-06 18:32:44 -08:00
2017-09-26 15:01:20 -06:00
2014-05-16 14:26:52 -04:00
2017-09-26 15:01:20 -06:00
2018-07-27 19:04:33 +08:00
2018-07-27 19:04:33 +08:00
2017-02-24 17:46:57 -08:00
2018-08-22 10:52:48 -07:00
2018-01-08 10:08:33 +00:00
2015-05-26 15:26:43 +02:00
2015-05-30 22:42:24 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-11-13 11:08:20 -08:00
2018-12-17 09:24:41 +01:00
2018-06-12 23:33:24 +02:00
2018-07-27 19:16:38 +08:00
2017-11-02 11:10:55 +01:00
2017-02-24 17:46:57 -08:00
2015-09-10 13:29:01 -07:00
2015-09-10 13:29:01 -07:00
2015-09-10 13:29:01 -07:00
2017-11-02 11:10:55 +01:00
2018-07-23 15:22:39 +10:00
2017-10-12 17:16:40 +01:00
2017-11-13 08:25:06 -08:00
2018-03-15 13:25:36 +01:00
2017-11-17 16:10:01 -08:00
2017-11-15 11:56:19 -08:00
2016-06-08 11:04:19 +02:00
2018-01-12 17:33:38 -08:00
2018-04-27 08:51:26 -04:00
2017-07-10 16:32:35 -07:00
2017-08-10 15:54:06 -07:00
2014-04-30 19:49:37 +01:00
2012-07-23 13:54:52 +01:00
2012-07-23 13:54:52 +01:00
2012-07-23 13:54:52 +01:00
2012-07-23 13:54:52 +01:00
2012-07-23 13:54:52 +01:00
2012-07-23 13:54:52 +01:00
2018-05-11 17:28:45 -07:00
2018-02-06 18:32:44 -08:00
2014-01-21 23:17:20 -08:00
2017-11-02 11:10:55 +01:00
2017-10-07 10:45:14 -06:00
2018-07-27 19:04:33 +08:00
2018-08-22 10:52:48 -07:00
2017-11-17 16:10:02 -08:00
2017-02-24 17:46:57 -08:00
2017-02-24 17:46:57 -08:00
2017-09-08 18:26:49 -07:00
2017-11-02 11:10:55 +01:00
2018-08-21 23:54:21 -04:00
2017-11-02 11:10:55 +01:00
2019-01-22 21:40:34 +01:00
2018-06-12 16:19:22 -07:00
2015-02-12 18:54:15 -08:00
2016-01-20 17:09:18 -08:00
2017-11-02 11:10:55 +01:00
2018-05-09 06:55:44 +02:00
2018-07-04 21:37:08 +02:00
2018-07-16 00:05:05 +02:00
2017-11-02 11:10:55 +01:00
2012-03-07 15:04:04 -05:00
2017-03-02 08:42:38 +01:00
2012-05-02 00:04:06 -07:00
2017-11-02 11:10:55 +01:00
2018-08-22 10:52:48 -07:00
2018-09-04 16:45:02 -07:00
2018-07-26 19:38:03 -07:00
2017-05-16 08:44:22 -03:00
2018-08-10 20:19:58 -07:00
2018-06-12 16:19:22 -07:00
2018-07-02 16:20:23 -04:00
2018-05-01 10:22:41 -04:00
2018-08-18 11:44:53 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2015-03-31 09:45:50 -06:00
2018-03-26 15:09:38 +02:00
2018-04-11 10:28:35 -07:00
2017-11-02 11:10:55 +01:00
2017-10-25 11:01:08 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-07-03 09:44:36 +02:00
2018-04-12 09:41:19 -07:00
2018-03-21 17:18:34 -05:00
2018-06-12 16:19:22 -07:00
2017-12-01 13:09:40 -08:00
2018-10-12 09:17:46 +02:00
2012-07-30 17:25:22 -07:00
2017-11-02 11:10:55 +01:00
2017-12-01 13:09:40 -08:00
2017-11-02 11:10:55 +01:00
2015-12-03 11:49:23 -05:00
2018-06-28 16:18:04 +09:00
2018-07-09 14:10:40 +02:00
2017-11-02 11:10:55 +01:00
2013-04-09 14:13:05 -04:00
2017-11-02 11:10:55 +01:00
2012-12-14 10:32:52 +11:00
2017-12-08 15:13:28 +00:00
2017-11-04 09:26:51 +09:00
2017-02-03 16:35:42 -05:00
2016-12-06 10:17:03 +02:00
2018-01-26 11:45:16 -06:00
2018-08-30 12:56:40 +02:00
2013-11-13 12:09:11 +09:00
2018-03-19 10:09:44 -07:00
2017-03-02 08:42:27 +01:00
2012-07-30 17:25:22 -07:00
2017-01-23 09:17:12 +01:00
2018-08-21 23:54:21 -04:00
2017-11-21 15:57:05 -08:00
2017-10-03 17:54:26 -07:00
2017-11-02 11:10:55 +01:00
2018-06-12 16:19:22 -07:00
2017-12-14 16:00:48 -08:00
2018-07-07 01:45:31 +02:00
2018-07-17 09:27:43 +02:00
2019-04-03 06:26:17 +02:00
2018-06-12 16:19:22 -07:00
2018-06-30 10:47:46 -07:00
2019-02-12 19:47:16 +01:00
2016-04-15 16:53:14 -04:00
2015-08-24 14:28:01 -06:00
2017-11-02 11:10:55 +01:00
2018-04-13 17:10:28 -07:00
2017-02-22 16:41:30 -08:00
2017-01-09 13:58:57 -05:00
2018-01-05 15:24:00 +01:00
2017-11-02 11:10:55 +01:00
2018-02-06 18:32:44 -08:00
2015-02-12 18:54:16 -08:00
2017-09-13 18:53:16 -07:00
2018-02-01 12:20:21 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-06-27 18:58:49 +03:00
2018-05-18 17:17:12 -07:00
2018-06-28 23:58:39 +02:00
2019-01-13 09:51:10 +01:00
2018-12-13 09:16:10 +01:00
2016-09-01 17:52:01 -07:00
2018-12-08 12:59:06 +01:00
2018-10-15 16:31:29 -04:00
2018-04-11 10:28:32 -07:00
2019-03-13 14:02:32 -07:00
2017-11-17 16:10:01 -08:00
2014-01-23 16:36:57 -08:00
2018-08-08 09:47:26 -06:00
2017-02-26 11:03:38 -05:00
2018-06-25 13:44:20 +02:00
2019-02-12 19:47:21 +01:00
2017-01-09 13:58:57 -05:00
2018-02-06 18:32:45 -08:00
2015-08-03 11:51:12 +02:00
2016-02-09 10:27:29 +01:00
2017-11-17 16:10:01 -08:00
2017-07-12 16:26:00 -07:00
2018-04-11 10:28:35 -07:00
2018-03-26 15:55:57 +02:00
2017-07-21 09:38:30 +02:00
2015-09-10 13:29:01 -07:00
2016-02-03 08:28:43 -08:00
2018-04-16 18:53:13 -04:00
2017-12-29 23:13:10 +01:00
2017-10-22 03:14:07 +01:00
2017-10-22 03:14:07 +01:00
2018-11-21 09:19:24 +01:00
2018-02-06 18:32:46 -08:00
2018-04-23 16:39:35 +01:00
2018-06-07 17:34:39 -07:00
2017-12-11 09:35:11 -05:00
2017-12-11 15:03:08 -07:00
2018-10-05 10:17:15 -04:00
2017-11-02 11:10:55 +01:00
2017-08-15 09:02:07 -07:00