From: Arnd Bergmann <arnd@arndb.de> To: linux-arch@vger.kernel.org Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@vger.kernel.org, Russell King <rmk+kernel@armlinux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, kernel-build-reports@lists.linaro.org, kvmarm@lists.cs.columbia.edu, Arnd Bergmann <arnd@arndb.de> Subject: [PATCH 03/13] ARM: div64: fix building with gcc-4.5 and lower Date: Fri, 16 Dec 2016 11:56:24 +0100 [thread overview] Message-ID: <20161216105634.235457-4-arnd@arndb.de> (raw) In-Reply-To: <20161216105634.235457-1-arnd@arndb.de> drivers/media/dvb-frontends/s921.c: In function 's921_pll_tune': arch/arm/include/asm/div64.h:109: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' arch/arm/include/asm/div64.h:127: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' arch/arm/include/asm/div64.h:109: error: 'asm' operand has impossible constraints arch/arm/include/asm/div64.h:127: error: 'asm' operand has impossible constraints scripts/Makefile.build:299: recipe for target 'drivers/media/dvb-frontends/s921.o' failed Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/arm/include/asm/div64.h | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index 7ca0c613c33b..e1c8d4a58797 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h @@ -66,27 +66,16 @@ static inline uint32_t __div64_32(uint64_t *n, uint32_t base) */ #define do_div(n, base) __div64_32(&(n), base) -#elif defined(CONFIG_CPU_32v3) +#elif GCC_VERSION < 40600 /* - * modern compiler versions (>= gcc-4.9) tend to misoptimize - * the code for ARMv3, and this is not getting fixed any more. + * gcc-4.4 and gcc-4.5 tend to run out of registers in their + * register allocation in some functions */ #define do_div(n, base) __div64_32(&(n), base) #else -/* - * gcc versions earlier than 4.0 are simply too problematic for the - * __div64_const32() code in asm-generic/div64.h. First there is - * gcc PR 15089 that tend to trig on more complex constructs, spurious - * .global __udivsi3 are inserted even if none of those symbols are - * referenced in the generated code, and those gcc versions are not able - * to do constant propagation on long long values anyway. - */ - -#define __div64_const32_is_OK (__GNUC__ >= 4) - static inline uint64_t __arch_xprod_64(uint64_t m, uint64_t n, bool bias) { unsigned long long res; -- 2.9.0
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de> To: linux-arch@vger.kernel.org Cc: Arnd Bergmann <arnd@arndb.de>, kernel-build-reports@lists.linaro.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Russell King <rmk+kernel@armlinux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, kvmarm@lists.cs.columbia.edu, linux-arm-kernel@vger.kernel.org Subject: [PATCH 03/13] ARM: div64: fix building with gcc-4.5 and lower Date: Fri, 16 Dec 2016 11:56:24 +0100 [thread overview] Message-ID: <20161216105634.235457-4-arnd@arndb.de> (raw) In-Reply-To: <20161216105634.235457-1-arnd@arndb.de> drivers/media/dvb-frontends/s921.c: In function 's921_pll_tune': arch/arm/include/asm/div64.h:109: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' arch/arm/include/asm/div64.h:127: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm' arch/arm/include/asm/div64.h:109: error: 'asm' operand has impossible constraints arch/arm/include/asm/div64.h:127: error: 'asm' operand has impossible constraints scripts/Makefile.build:299: recipe for target 'drivers/media/dvb-frontends/s921.o' failed Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/arm/include/asm/div64.h | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index 7ca0c613c33b..e1c8d4a58797 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h @@ -66,27 +66,16 @@ static inline uint32_t __div64_32(uint64_t *n, uint32_t base) */ #define do_div(n, base) __div64_32(&(n), base) -#elif defined(CONFIG_CPU_32v3) +#elif GCC_VERSION < 40600 /* - * modern compiler versions (>= gcc-4.9) tend to misoptimize - * the code for ARMv3, and this is not getting fixed any more. + * gcc-4.4 and gcc-4.5 tend to run out of registers in their + * register allocation in some functions */ #define do_div(n, base) __div64_32(&(n), base) #else -/* - * gcc versions earlier than 4.0 are simply too problematic for the - * __div64_const32() code in asm-generic/div64.h. First there is - * gcc PR 15089 that tend to trig on more complex constructs, spurious - * .global __udivsi3 are inserted even if none of those symbols are - * referenced in the generated code, and those gcc versions are not able - * to do constant propagation on long long values anyway. - */ - -#define __div64_const32_is_OK (__GNUC__ >= 4) - static inline uint64_t __arch_xprod_64(uint64_t m, uint64_t n, bool bias) { unsigned long long res; -- 2.9.0
next prev parent reply other threads:[~2016-12-16 10:59 UTC|newest] Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-12-16 10:56 [RFC] minimum gcc version for kernel: raise to gcc-4.3 or 4.6? Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 01/13] [HACK] gcc-4.5: avoid link errors for unused function pointers Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 02/13] KVM: arm: fix gcc-4.5 build Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2017-01-04 10:38 ` Christoffer Dall 2017-01-04 10:38 ` Christoffer Dall 2016-12-16 10:56 ` Arnd Bergmann [this message] 2016-12-16 10:56 ` [PATCH 03/13] ARM: div64: fix building with gcc-4.5 and lower Arnd Bergmann 2016-12-16 10:56 ` [PATCH 04/13] vfio-pci: use 32-bit comparisons for register address for gcc-4.5 Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 15:30 ` Alex Williamson 2016-12-16 19:50 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 05/13] clk: pxa: fix gcc-4.4 build Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 06/13] ARM: atomic: " Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 07/13] watchdog: kempld: fix gcc-4.3 build Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 08/13] arm/arm64: xen: avoid gcc-4.4 warning Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 09/13] ARM: mark cmpxchg and xchg __always_inline for gcc-4.3 Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 10/13] asm-generic: mark cmpxchg as " Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 10:56 ` [PATCH 11/13] fs: fix unsigned enum warning with gcc-4.2 Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2017-01-03 22:47 ` Brendan Gregg 2017-02-28 21:53 ` Brendan Gregg 2016-12-16 10:56 ` [PATCH 12/13] KVM: arm: avoid binary number literals for gcc-4.2 Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2017-01-04 10:39 ` Christoffer Dall 2017-01-04 10:39 ` Christoffer Dall 2016-12-16 10:56 ` [PATCH 13/13] ARM: avoid 'Q' asm constraint for gcc-4.1 and earlier Arnd Bergmann 2016-12-16 10:56 ` Arnd Bergmann 2016-12-16 11:14 ` [RFC] minimum gcc version for kernel: raise to gcc-4.3 or 4.6? Arnd Bergmann 2016-12-16 11:14 ` Arnd Bergmann 2016-12-16 11:14 ` Arnd Bergmann 2017-04-16 19:52 ` Kees Cook 2017-04-16 19:52 ` Kees Cook 2017-04-16 19:52 ` Kees Cook 2017-04-20 10:15 ` Arnd Bergmann 2017-04-20 10:15 ` Arnd Bergmann 2017-04-20 10:15 ` Arnd Bergmann 2017-04-20 19:52 ` Kees Cook 2017-04-20 19:52 ` Kees Cook 2017-04-20 19:52 ` Kees Cook 2017-04-20 19:52 ` Kees Cook 2017-04-21 20:55 ` Arnd Bergmann 2017-04-21 20:55 ` Arnd Bergmann 2017-04-21 20:55 ` Arnd Bergmann 2017-04-21 21:05 ` Kees Cook 2017-04-21 21:05 ` Kees Cook 2017-04-21 21:05 ` Kees Cook 2017-04-22 3:10 ` Maciej W. Rozycki 2017-04-22 3:10 ` Maciej W. Rozycki 2017-04-22 3:10 ` Maciej W. Rozycki 2017-04-22 15:30 ` Arnd Bergmann 2017-04-22 15:30 ` Arnd Bergmann 2017-04-22 15:30 ` Arnd Bergmann 2017-04-23 20:13 ` Geert Uytterhoeven 2017-04-23 20:13 ` Geert Uytterhoeven 2017-04-23 20:13 ` Geert Uytterhoeven 2017-04-23 20:13 ` Geert Uytterhoeven 2017-04-24 9:44 ` Arnd Bergmann 2017-04-24 9:44 ` Arnd Bergmann 2017-04-24 9:44 ` Arnd Bergmann 2017-04-24 9:44 ` Arnd Bergmann 2017-04-24 10:17 ` Geert Uytterhoeven 2017-04-24 10:17 ` Geert Uytterhoeven 2017-04-24 10:17 ` Geert Uytterhoeven 2017-04-24 10:17 ` Geert Uytterhoeven 2017-04-24 14:13 ` Arnd Bergmann 2017-04-24 14:13 ` Arnd Bergmann 2017-04-24 14:13 ` Arnd Bergmann 2017-04-24 16:53 ` Maciej W. Rozycki 2017-04-24 16:53 ` Maciej W. Rozycki 2017-04-24 16:53 ` Maciej W. Rozycki 2017-04-24 17:29 ` Arnd Bergmann 2017-04-24 17:29 ` Arnd Bergmann 2017-04-24 17:29 ` Arnd Bergmann 2017-04-24 18:16 ` Geert Uytterhoeven 2017-04-24 18:16 ` Geert Uytterhoeven 2017-04-24 18:16 ` Geert Uytterhoeven 2017-04-24 18:16 ` Geert Uytterhoeven 2017-04-24 18:30 ` Maciej W. Rozycki 2017-04-24 18:30 ` Maciej W. Rozycki 2017-04-24 18:30 ` Maciej W. Rozycki 2017-04-24 18:30 ` Maciej W. Rozycki 2017-04-24 20:30 ` Arnd Bergmann 2017-04-24 20:30 ` Arnd Bergmann 2017-04-24 20:30 ` Arnd Bergmann 2017-04-24 20:52 ` Kees Cook 2017-04-24 20:52 ` Kees Cook 2017-04-24 20:52 ` Kees Cook 2017-04-25 7:06 ` Geert Uytterhoeven 2017-04-25 7:06 ` Geert Uytterhoeven 2017-04-25 7:06 ` Geert Uytterhoeven 2017-04-25 9:22 ` Suzuki K Poulose 2017-04-25 9:22 ` Suzuki K Poulose 2017-04-25 9:22 ` Suzuki K Poulose 2016-12-16 15:54 ` Geert Uytterhoeven 2016-12-16 15:54 ` Geert Uytterhoeven 2016-12-16 19:58 ` Arnd Bergmann 2016-12-16 19:58 ` Arnd Bergmann 2016-12-16 20:34 ` Geert Uytterhoeven 2016-12-16 17:00 ` Sebastian Andrzej Siewior 2016-12-16 22:00 ` Arnd Bergmann 2016-12-16 22:00 ` Arnd Bergmann 2016-12-17 11:29 ` Sebastian Andrzej Siewior 2017-01-02 12:23 ` Russell King - ARM Linux 2016-12-20 9:59 ` Heiko Carstens
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20161216105634.235457-4-arnd@arndb.de \ --to=arnd@arndb.de \ --cc=akpm@linux-foundation.org \ --cc=kernel-build-reports@lists.linaro.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@vger.kernel.org \ --cc=linux-kbuild@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rmk+kernel@armlinux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.