public inbox for linux-parisc@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] parisc: make default cross compiler search more robust
@ 2013-05-16 19:32 Helge Deller
  2013-05-17 18:25 ` Greg KH
  0 siblings, 1 reply; 7+ messages in thread
From: Helge Deller @ 2013-05-16 19:32 UTC (permalink / raw)
  To: stable, linux-parisc

please add to stable kernel v3.9
this patch is a merge of upstream commits 
	93782eba49e23c3f311a6b05a19ba15927ec4e8b
and
	6880b0150a7c25fd75c5ece80abc49ebf53c38c1


People/distros vary how they prefix the toolchain name for 64bit builds.
Rather than enforce one convention over another, add a for loop which
does a search for all the general prefixes.

For 64bit builds, we now search for (in order):
	hppa64-unknown-linux-gnu
	hppa64-linux-gnu
	hppa64-linux

For 32bit builds, we look for:
	hppa-unknown-linux-gnu
	hppa-linux-gnu
	hppa-linux
	hppa2.0-unknown-linux-gnu
	hppa2.0-linux-gnu
	hppa2.0-linux
	hppa1.1-unknown-linux-gnu
	hppa1.1-linux-gnu
	hppa1.1-linux

This patch was initiated by Mike Frysinger, with feedback from Jeroen
Roovers, John David Anglin and Helge Deller.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Jeroen Roovers <jer@gentoo.org>
Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>

diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index 113e282..1976900 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -23,26 +23,21 @@ NM		= sh $(srctree)/arch/parisc/nm
 CHECKFLAGS	+= -D__hppa__=1
 LIBGCC		= $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 
-MACHINE		:= $(shell uname -m)
-ifeq ($(MACHINE),parisc*)
-NATIVE		:= 1
-endif
-
 ifdef CONFIG_64BIT
 UTS_MACHINE	:= parisc64
 CHECKFLAGS	+= -D__LP64__=1 -m64
-WIDTH		:= 64
+CC_ARCHES	= hppa64
 else # 32-bit
-WIDTH		:=
+CC_ARCHES	= hppa hppa2.0 hppa1.1
 endif
 
-# attempt to help out folks who are cross-compiling
-ifeq ($(NATIVE),1)
-CROSS_COMPILE	:= hppa$(WIDTH)-linux-
-else
- ifeq ($(CROSS_COMPILE),)
- CROSS_COMPILE	:= hppa$(WIDTH)-linux-gnu-
- endif
+ifneq ($(SUBARCH),$(UTS_MACHINE))
+	ifeq ($(CROSS_COMPILE),)
+		CC_SUFFIXES = linux linux-gnu unknown-linux-gnu
+		CROSS_COMPILE := $(call cc-cross-prefix, \
+			$(foreach a,$(CC_ARCHES), \
+			$(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
+	endif
 endif
 
 OBJCOPY_FLAGS =-O binary -R .note -R .comment -S

^ permalink raw reply related	[flat|nested] 7+ messages in thread
* [PATCH] parisc: make default cross compiler search more robust
@ 2013-05-09  5:08 Mike Frysinger
  2013-05-09 12:28 ` Jeroen Roovers
  0 siblings, 1 reply; 7+ messages in thread
From: Mike Frysinger @ 2013-05-09  5:08 UTC (permalink / raw)
  To: linux-parisc, Helge Deller, James E.J. Bottomley; +Cc: John David Anglin

People/distros vary how they prefix the toolchain name for 64bit builds.
Rather than enforce one convention over another, add a for loop which
does a search for all the general prefixes.  This code will run for both
native and cross builds when CROSS_COMPILE isn't explicitly set.

For 64bit builds, we now search for (in order):
	hppa64-unknown-linux-gnu
	hppa64-linux-gnu
	hppa64-linux

For 32bit builds, we look for:
	hppa-unknown-linux-gnu
	hppa-linux-gnu
	hppa-linux
	hppa1.1-unknown-linux-gnu
	hppa1.1-linux-gnu
	hppa1.1-linux
	hppa2.0-unknown-linux-gnu
	hppa2.0-linux-gnu
	hppa2.0-linux

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 arch/parisc/Makefile | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index 2f967cc..523ae34 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -23,9 +23,6 @@ NM		= sh $(srctree)/arch/parisc/nm
 CHECKFLAGS	+= -D__hppa__=1
 LIBGCC		= $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 
-MACHINE		:= $(shell uname -m)
-NATIVE		:= $(if $(filter parisc%,$(MACHINE)),1,0)
-
 ifdef CONFIG_64BIT
 UTS_MACHINE	:= parisc64
 CHECKFLAGS	+= -D__LP64__=1 -m64
@@ -35,12 +32,17 @@ WIDTH		:=
 endif
 
 # attempt to help out folks who are cross-compiling
-ifeq ($(NATIVE),1)
-CROSS_COMPILE	:= hppa$(WIDTH)-linux-
-else
- ifeq ($(CROSS_COMPILE),)
- CROSS_COMPILE	:= hppa$(WIDTH)-linux-gnu-
- endif
+ifeq ($(CROSS_COMPILE),)
+CROSS_COMPILE := $(shell \
+	arches="hppa$(WIDTH)"; \
+	[ -z "$(WIDTH)" ] && arches="$$a hppa1.1 hppa2.0"; \
+	for a in $$arches; do \
+		for p in unknown-linux-gnu linux-gnu linux; do \
+			c="$$a-$$p-"; \
+			command -v $${c}gcc >/dev/null 2>&1 && echo $$c && break 2; \
+		done; \
+	done \
+)
 endif
 
 OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-05-17 20:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-16 19:32 [PATCH] parisc: make default cross compiler search more robust Helge Deller
2013-05-17 18:25 ` Greg KH
2013-05-17 20:06   ` Helge Deller
  -- strict thread matches above, loose matches on Subject: below --
2013-05-09  5:08 Mike Frysinger
2013-05-09 12:28 ` Jeroen Roovers
2013-05-09 13:14   ` Helge Deller
2013-05-09 19:24     ` Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox