Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [OpenWrt-Devel] ARMv4 (not v4t) marked obsolete in gcc-6
Date: Tue, 15 Mar 2016 16:59:31 +0100	[thread overview]
Message-ID: <16727306.4g6uRjH7LT@wuerfel> (raw)
In-Reply-To: <alpine.LNX.2.00.1603111721340.13469@T420s>

On Friday 11 March 2016 17:56:12 Hans Ulli Kroll wrote:
> On Fri, 11 Mar 2016, Roman Yeryomin wrote:
> > On 2016-03-11 08:48, John Crispin wrote:
> > > On 11/03/2016 06:44, Hans Ulli Kroll wrote:

> > As to the numbers I think that people like me (or others trying out OpenWrt)
> > usually don't go to the forums, so number of questions there doesn't tell much
> > (but even there latest messages are from last month, so not dead at all).
> > Maybe number of downloads from downloads.openwrt.org can tell more but I would
> > guess that actual users would rather compile it themselves.
> 
> The support thread on the german board is very long, so most of the 
> questions are answered there. The experienced don't need this, so the 
> numbers *are* wrong.
> 
> And I'm using two of the NAS boxes for backup and another for kernel work
> 
> > So I vote for not killing it at least until it's supported by kernel.
> > 
> 
> ACK !!

Thanks everyone for the input. So if OpenWRT wants to keep the support
for the Gemini platform, I see two ways forward:

- have a separate toolchain for target/linux/gemini when the other
  platforms upgrade to gcc-7. That means no action needed for now,
  but possibly more work to keep it going in the long run

- make the upstream kernel work with compilers that lack -march=armv4
  support.

I think we want the second one if at all possible, as it also addresses
most of the other affected platforms (not rpc, which requires -march=armv3).

The patch below might be enough, passing -march=armv4t whenever -march=armv4
is not supported, and passing --fix-v4bx whenever we build for ARMv4:

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 9fb3fee0e908..3c312d37a83a 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -19,6 +19,11 @@ LDFLAGS_vmlinux	+= --be8
 LDFLAGS_MODULE	+= --be8
 endif
 
+ifeq ($(CONFIG_CPU_32v4),y)
+LDFLAGS_vmlinux	+= $(call ld-option,--fix-v4bx)
+LDFLAGS_MODULE	+= $(call ld-option,--fix-v4bx)
+endif
+
 ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
 LDFLAGS_MODULE	+= -T $(srctree)/arch/arm/kernel/module.lds
 endif
@@ -75,7 +80,7 @@ arch-$(CONFIG_CPU_32v6K)	=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,
 endif
 arch-$(CONFIG_CPU_32v5)		=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
 arch-$(CONFIG_CPU_32v4T)	=-D__LINUX_ARM_ARCH__=4 -march=armv4t
-arch-$(CONFIG_CPU_32v4)		=-D__LINUX_ARM_ARCH__=4 -march=armv4
+arch-$(CONFIG_CPU_32v4)		=-D__LINUX_ARM_ARCH__=4 $(call cc-option,-march=armv4,-march=armv4t)
 arch-$(CONFIG_CPU_32v3)		=-D__LINUX_ARM_ARCH__=3 -march=armv3
 
 # Evaluate arch cc-option calls now
@@ -93,8 +98,8 @@ tune-$(CONFIG_CPU_ARM922T)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM925T)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_ARM926T)	=-mtune=arm9tdmi
 tune-$(CONFIG_CPU_FA526)	=-mtune=arm9tdmi
-tune-$(CONFIG_CPU_SA110)	=-mtune=strongarm110
-tune-$(CONFIG_CPU_SA1100)	=-mtune=strongarm1100
+tune-$(CONFIG_CPU_SA110)	=$(call cc-option,-mtune=strongarm110)
+tune-$(CONFIG_CPU_SA1100)	=$(call cc-option,-mtune=strongarm1100)
 tune-$(CONFIG_CPU_XSCALE)	=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
 tune-$(CONFIG_CPU_XSC3)		=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
 tune-$(CONFIG_CPU_FEROCEON)	=$(call cc-option,-mtune=marvell-f,-mtune=xscale)

Does this look reasonable?

	Arnd

  reply	other threads:[~2016-03-15 15:59 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-10  9:13 ARMv4 (not v4t) marked obsolete in gcc-6 Arnd Bergmann
2016-03-10  9:31 ` Russell King - ARM Linux
2016-03-10 16:59   ` Arnd Bergmann
2016-03-10 17:09     ` Russell King - ARM Linux
2016-03-10 17:59       ` Arnd Bergmann
2016-03-10  9:38 ` Dmitry Eremin-Solenikov
2016-03-10 16:38   ` Arnd Bergmann
2016-03-10 21:49     ` Dmitry Eremin-Solenikov
2016-03-15 15:14       ` Arnd Bergmann
2016-03-10  9:40 ` Baruch Siach
2016-03-10 10:58   ` Robin Murphy
2016-03-10 15:40 ` Dave Martin
2016-03-11  5:44 ` Hans Ulli Kroll
2016-03-11  6:48   ` [OpenWrt-Devel] " John Crispin
2016-03-11 16:09     ` Roman Yeryomin
2016-03-11 16:56       ` Hans Ulli Kroll
2016-03-15 15:59         ` Arnd Bergmann [this message]
2016-03-15 17:01           ` John Crispin
2016-03-15 20:26           ` Ard Biesheuvel
2016-03-15 22:00             ` Arnd Bergmann
2016-03-17 16:18 ` Ramana Radhakrishnan
2016-03-17 19:34   ` Dmitry Eremin-Solenikov
2016-03-18 13:25     ` Ramana Radhakrishnan
2016-03-21 20:50       ` Arnd Bergmann

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=16727306.4g6uRjH7LT@wuerfel \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox