linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
@ 2009-07-20 20:11 Sam Ravnborg
  2009-07-20 20:19 ` H. Peter Anvin
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Sam Ravnborg @ 2009-07-20 20:11 UTC (permalink / raw)
  To: linux-arch
  Cc: Peter Zijlstra, Ian Campbell, Russell King, Mike Frysinger,
	Tony Luck, Fenghua Yu, Hirokazu Takata, Geert Uytterhoeven,
	Kyle McMartin, Benjamin Herrenschmidt, Martin Schwidefsky,
	Paul Mundt, Thomas Gleixner, Ingo Molnar, H. Peter Anvin


While working on a patch to save ARCH and CROSS_COMPILE
Peter Z noticed that it would cause "make install" to fail
if we used the setting of CROSS_COMPILE from build time.

I took a closer look at it and the final conclusion was that
we should not use CROSS_COMPILE to select installkernel script,
so I redid that in the following patch.

The patch has also appeared on linux-kernel and linux-kbuild in
the thread: "[PATCH] kbuild: save ARCH & CROSS_COMPILE when building a kernel"

I decided to post it here so relevant arch maintainers has been notified,
and thus given the option to comment on it.

Assuming this is not NACK'ed I will include the patch in kbuild-next.git

	Sam


From 27d34661aed0cd3fbf469b8efb24accaf83c1987 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Mon, 20 Jul 2009 21:37:11 +0200
Subject: [PATCH] kbuild: Use INSTALLKERNEL to select customized installkernel script

Replace the use of CROSS_COMPILE to select a customized
installkernel script with the possibility to set INSTALLKERNEL
to select a custom installkernel script when running make:

    make INSTALLKERNEL=arm-installkernel install

With this patch we are now more consistent across
different architectures - they did not all support use
of CROSS_COMPILE.

The use of CROSS_COMPILE was a hack as this really belongs
to gcc/binutils and the installkernel script does not change
just because we change toolchain.

The use of CROSS_COMPILE caused troubles with an upcoming patch
that saves CROSS_COMPILE when a kernel is built -
it would no longer be installable.
[Thanks to Peter for this hint]

This patch undos what Ian did in commit:

  0f8e2d62fa04441cd12c08ce521e84e5bd3f8a46
  ("use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh")

The patch has been lightly tested on x86 - but all changes
looks obvious.

Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ian Campbell <icampbell@arcom.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
 Documentation/kbuild/kbuild.txt      |   16 ++++++++++++++++
 Makefile                             |    4 +++-
 arch/arm/Makefile                    |    4 ++--
 arch/arm/boot/install.sh             |    4 ++--
 arch/blackfin/Makefile               |    4 ++--
 arch/blackfin/boot/install.sh        |    6 +++---
 arch/ia64/install.sh                 |    4 ++--
 arch/m32r/boot/compressed/install.sh |    4 ++--
 arch/m68k/install.sh                 |    4 ++--
 arch/parisc/Makefile                 |    4 ++--
 arch/parisc/install.sh               |    4 ++--
 arch/powerpc/Makefile                |    4 ++--
 arch/powerpc/boot/install.sh         |    4 ++--
 arch/s390/boot/install.sh            |    4 ++--
 arch/sh/boot/compressed/install.sh   |    4 ++--
 arch/x86/Makefile                    |    4 ++--
 arch/x86/boot/install.sh             |    4 ++--
 17 files changed, 50 insertions(+), 32 deletions(-)

diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt
index f3355b6..bb3bf38 100644
--- a/Documentation/kbuild/kbuild.txt
+++ b/Documentation/kbuild/kbuild.txt
@@ -65,6 +65,22 @@ INSTALL_PATH
 INSTALL_PATH specifies where to place the updated kernel and system map
 images. Default is /boot, but you can set it to other values.
 
+INSTALLKERNEL
+--------------------------------------------------
+Install script called when using "make install".
+The default name is "installkernel".
+
+The script will be called with the following arguments:
+    $1 - kernel version
+    $2 - kernel image file
+    $3 - kernel map file
+    $4 - default install path (use root directory if blank)
+
+The implmentation of "make install" is architecture specific
+and it may differ from the above.
+
+INSTALLKERNEL is provided to enable the possibility to
+specify a custom installer when cross compiling a kernel.
 
 MODLIB
 --------------------------------------------------
diff --git a/Makefile b/Makefile
index 3c95e76..b55b47a 100644
--- a/Makefile
+++ b/Makefile
@@ -342,6 +342,7 @@ OBJCOPY		= $(CROSS_COMPILE)objcopy
 OBJDUMP		= $(CROSS_COMPILE)objdump
 AWK		= awk
 GENKSYMS	= scripts/genksyms/genksyms
+INSTALLKERNEL  := installkernel
 DEPMOD		= /sbin/depmod
 KALLSYMS	= scripts/kallsyms
 PERL		= perl
@@ -380,7 +381,8 @@ KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
 export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
 export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
-export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
+export CPP AR NM STRIP OBJCOPY OBJDUMP
+export MAKE AWK GENKSYMS INSTALLKERNEL PERL UTS_MACHINE
 export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index c877d6d..a357614 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -266,7 +266,7 @@ define archhelp
   echo  '                  (supply initrd image via make variable INITRD=<path>)'
   echo  '  install       - Install uncompressed kernel'
   echo  '  zinstall      - Install compressed kernel'
-  echo  '                  Install using (your) ~/bin/installkernel or'
-  echo  '                  (distribution) /sbin/installkernel or'
+  echo  '                  Install using (your) ~/bin/$(INSTALLKERNEL) or'
+  echo  '                  (distribution) /sbin/$(INSTALLKERNEL) or'
   echo  '                  install to $$(INSTALL_PATH) and run lilo'
 endef
diff --git a/arch/arm/boot/install.sh b/arch/arm/boot/install.sh
index 9f9bed2..06ea7d4 100644
--- a/arch/arm/boot/install.sh
+++ b/arch/arm/boot/install.sh
@@ -21,8 +21,8 @@
 #
 
 # User may have a custom install script
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 if [ "$(basename $2)" = "zImage" ]; then
 # Compressed install
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index 6f9533c..f063b77 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -155,7 +155,7 @@ define archhelp
   echo  '* vmImage.gz      - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.gz)'
   echo  '  vmImage.lzma    - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.lzma)'
   echo  '  install         - Install kernel using'
-  echo  '                     (your) ~/bin/$(CROSS_COMPILE)installkernel or'
-  echo  '                     (distribution) PATH: $(CROSS_COMPILE)installkernel or'
+  echo  '                     (your) ~/bin/$(INSTALLKERNEL) or'
+  echo  '                     (distribution) PATH: $(INSTALLKERNEL) or'
   echo  '                     install to $$(INSTALL_PATH)'
 endef
diff --git a/arch/blackfin/boot/install.sh b/arch/blackfin/boot/install.sh
index 9560a6b..e2c6e40 100644
--- a/arch/blackfin/boot/install.sh
+++ b/arch/blackfin/boot/install.sh
@@ -36,9 +36,9 @@ verify "$3"
 
 # User may have a custom install script
 
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if which ${CROSS_COMPILE}installkernel >/dev/null 2>&1; then
-	exec ${CROSS_COMPILE}installkernel "$@"
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if which ${INSTALLKERNEL} >/dev/null 2>&1; then
+	exec ${INSTALLKERNEL} "$@"
 fi
 
 # Default install - same as make zlilo
diff --git a/arch/ia64/install.sh b/arch/ia64/install.sh
index 929e780..0e932f5 100644
--- a/arch/ia64/install.sh
+++ b/arch/ia64/install.sh
@@ -21,8 +21,8 @@
 
 # User may have a custom install script
 
-if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
-if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install - same as make zlilo
 
diff --git a/arch/m32r/boot/compressed/install.sh b/arch/m32r/boot/compressed/install.sh
index 6d72e9e..16e5a0a 100644
--- a/arch/m32r/boot/compressed/install.sh
+++ b/arch/m32r/boot/compressed/install.sh
@@ -24,8 +24,8 @@
 
 # User may have a custom install script
 
-if [ -x /sbin/installkernel ]; then
-  exec /sbin/installkernel "$@"
+if [ -x /sbin/${INSTALLKERNEL} ]; then
+  exec /sbin/${INSTALLKERNEL} "$@"
 fi
 
 if [ "$2" = "zImage" ]; then
diff --git a/arch/m68k/install.sh b/arch/m68k/install.sh
index 9c6bae6..57d640d 100644
--- a/arch/m68k/install.sh
+++ b/arch/m68k/install.sh
@@ -33,8 +33,8 @@ verify "$3"
 
 # User may have a custom install script
 
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install - same as make zlilo
 
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index da6f669..55cca1d 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -118,8 +118,8 @@ define archhelp
 	@echo  '* vmlinux	- Uncompressed kernel image (./vmlinux)'
 	@echo  '  palo		- Bootable image (./lifimage)'
 	@echo  '  install	- Install kernel using'
-	@echo  '		  (your) ~/bin/installkernel or'
-	@echo  '		  (distribution) /sbin/installkernel or'
+	@echo  '		  (your) ~/bin/$(INSTALLKERNEL) or'
+	@echo  '		  (distribution) /sbin/$(INSTALLKERNEL) or'
 	@echo  '		  copy to $$(INSTALL_PATH)'
 endef
 
diff --git a/arch/parisc/install.sh b/arch/parisc/install.sh
index 9632b3e..e593fc8 100644
--- a/arch/parisc/install.sh
+++ b/arch/parisc/install.sh
@@ -21,8 +21,8 @@
 
 # User may have a custom install script
 
-if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
-if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install
 
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index bc35f4e..2be317d 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -182,8 +182,8 @@ define archhelp
   @echo '  simpleImage.<dt> - Firmware independent image.'
   @echo '  treeImage.<dt>  - Support for older IBM 4xx firmware (not U-Boot)'
   @echo '  install         - Install kernel using'
-  @echo '                    (your) ~/bin/installkernel or'
-  @echo '                    (distribution) /sbin/installkernel or'
+  @echo '                    (your) ~/bin/$(INSTALLKERNEL) or'
+  @echo '                    (distribution) /sbin/$(INSTALLKERNEL) or'
   @echo '                    install to $$(INSTALL_PATH) and run lilo'
   @echo '  *_defconfig     - Select default config from arch/$(ARCH)/configs'
   @echo ''
diff --git a/arch/powerpc/boot/install.sh b/arch/powerpc/boot/install.sh
index 98312d1..b6a256b 100644
--- a/arch/powerpc/boot/install.sh
+++ b/arch/powerpc/boot/install.sh
@@ -23,8 +23,8 @@ set -e
 
 # User may have a custom install script
 
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install
 
diff --git a/arch/s390/boot/install.sh b/arch/s390/boot/install.sh
index d4026f6..aed3069 100644
--- a/arch/s390/boot/install.sh
+++ b/arch/s390/boot/install.sh
@@ -21,8 +21,8 @@
 
 # User may have a custom install script
 
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install - same as make zlilo
 
diff --git a/arch/sh/boot/compressed/install.sh b/arch/sh/boot/compressed/install.sh
index 90589f0..f9f4181 100644
--- a/arch/sh/boot/compressed/install.sh
+++ b/arch/sh/boot/compressed/install.sh
@@ -23,8 +23,8 @@
 
 # User may have a custom install script
 
-if [ -x /sbin/installkernel ]; then
-  exec /sbin/installkernel "$@"
+if [ -x /sbin/${INSTALLKERNEL} ]; then
+  exec /sbin/${INSTALLKERNEL} "$@"
 fi
 
 if [ "$2" = "zImage" ]; then
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 1b68659..0b3b961 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -177,8 +177,8 @@ archclean:
 define archhelp
   echo  '* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)'
   echo  '  install      - Install kernel using'
-  echo  '                  (your) ~/bin/installkernel or'
-  echo  '                  (distribution) /sbin/installkernel or'
+  echo  '                  (your) ~/bin/$(INSTALLKERNEL) or'
+  echo  '                  (distribution) /sbin/$(INSTALLKERNEL) or'
   echo  '                  install to $$(INSTALL_PATH) and run lilo'
   echo  '  fdimage      - Create 1.4MB boot floppy image (arch/x86/boot/fdimage)'
   echo  '  fdimage144   - Create 1.4MB boot floppy image (arch/x86/boot/fdimage)'
diff --git a/arch/x86/boot/install.sh b/arch/x86/boot/install.sh
index 8d60ee1..d13ec1c 100644
--- a/arch/x86/boot/install.sh
+++ b/arch/x86/boot/install.sh
@@ -33,8 +33,8 @@ verify "$3"
 
 # User may have a custom install script
 
-if [ -x ~/bin/${CROSS_COMPILE}installkernel ]; then exec ~/bin/${CROSS_COMPILE}installkernel "$@"; fi
-if [ -x /sbin/${CROSS_COMPILE}installkernel ]; then exec /sbin/${CROSS_COMPILE}installkernel "$@"; fi
+if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
+if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
 
 # Default install - same as make zlilo
 
-- 
1.6.2.5

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

* Re: [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
  2009-07-20 20:11 [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script Sam Ravnborg
@ 2009-07-20 20:19 ` H. Peter Anvin
  2009-07-20 20:49 ` Paul Mundt
  2009-07-20 22:11 ` Russell King - ARM Linux
  2 siblings, 0 replies; 6+ messages in thread
From: H. Peter Anvin @ 2009-07-20 20:19 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: linux-arch, Peter Zijlstra, Ian Campbell, Russell King,
	Mike Frysinger, Tony Luck, Fenghua Yu, Hirokazu Takata,
	Geert Uytterhoeven, Kyle McMartin, Benjamin Herrenschmidt,
	Martin Schwidefsky, Paul Mundt, Thomas Gleixner, Ingo Molnar

Sam Ravnborg wrote:
> While working on a patch to save ARCH and CROSS_COMPILE
> Peter Z noticed that it would cause "make install" to fail
> if we used the setting of CROSS_COMPILE from build time.
> 
> I took a closer look at it and the final conclusion was that
> we should not use CROSS_COMPILE to select installkernel script,
> so I redid that in the following patch.
> 
> The patch has also appeared on linux-kernel and linux-kbuild in
> the thread: "[PATCH] kbuild: save ARCH & CROSS_COMPILE when building a kernel"
> 
> I decided to post it here so relevant arch maintainers has been notified,
> and thus given the option to comment on it.
> 
> Assuming this is not NACK'ed I will include the patch in kbuild-next.git
> 

Fine with me.

Acked-by: H. Peter Anvin <hpa@zytor.com>

	-hpa

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

* Re: [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
  2009-07-20 20:11 [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script Sam Ravnborg
  2009-07-20 20:19 ` H. Peter Anvin
@ 2009-07-20 20:49 ` Paul Mundt
  2009-07-20 22:11 ` Russell King - ARM Linux
  2 siblings, 0 replies; 6+ messages in thread
From: Paul Mundt @ 2009-07-20 20:49 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: linux-arch, Peter Zijlstra, Ian Campbell, Russell King,
	Mike Frysinger, Tony Luck, Fenghua Yu, Hirokazu Takata,
	Geert Uytterhoeven, Kyle McMartin, Benjamin Herrenschmidt,
	Martin Schwidefsky, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

On Mon, Jul 20, 2009 at 10:11:37PM +0200, Sam Ravnborg wrote:
> 
> While working on a patch to save ARCH and CROSS_COMPILE
> Peter Z noticed that it would cause "make install" to fail
> if we used the setting of CROSS_COMPILE from build time.
> 
> I took a closer look at it and the final conclusion was that
> we should not use CROSS_COMPILE to select installkernel script,
> so I redid that in the following patch.
> 
> The patch has also appeared on linux-kernel and linux-kbuild in
> the thread: "[PATCH] kbuild: save ARCH & CROSS_COMPILE when building a kernel"
> 
> I decided to post it here so relevant arch maintainers has been notified,
> and thus given the option to comment on it.
> 
> Assuming this is not NACK'ed I will include the patch in kbuild-next.git
> 
Looks good to me.

Acked-by: Paul Mundt <lethal@linux-sh.org>

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

* Re: [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
  2009-07-20 20:11 [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script Sam Ravnborg
  2009-07-20 20:19 ` H. Peter Anvin
  2009-07-20 20:49 ` Paul Mundt
@ 2009-07-20 22:11 ` Russell King - ARM Linux
  2009-07-21  1:22   ` H. Peter Anvin
  2 siblings, 1 reply; 6+ messages in thread
From: Russell King - ARM Linux @ 2009-07-20 22:11 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: linux-arch, Peter Zijlstra, Ian Campbell, Mike Frysinger,
	Tony Luck, Fenghua Yu, Hirokazu Takata, Geert Uytterhoeven,
	Kyle McMartin, Benjamin Herrenschmidt, Martin Schwidefsky,
	Paul Mundt, Thomas Gleixner, Ingo Molnar, H. Peter Anvin

On Mon, Jul 20, 2009 at 10:11:37PM +0200, Sam Ravnborg wrote:
> While working on a patch to save ARCH and CROSS_COMPILE
> Peter Z noticed that it would cause "make install" to fail
> if we used the setting of CROSS_COMPILE from build time.

That's a good thing in some ways and a bad thing in others.  Having
it guarantee to fail if you try installing an ARM kernel onto an
x86 machine is definitely a good thing.  That said, it's not something
I've ever accidentally done.

However, having a cross-built kernel shared via NFS onto the target
machine where you want to 'make install' it and have it pick up the
CROSS_COMPILE setting is a bad thing.

I'm not sure there's any one right answer with this... so...

Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>

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

* Re: [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
  2009-07-20 22:11 ` Russell King - ARM Linux
@ 2009-07-21  1:22   ` H. Peter Anvin
  2009-07-21  7:18     ` Sam Ravnborg
  0 siblings, 1 reply; 6+ messages in thread
From: H. Peter Anvin @ 2009-07-21  1:22 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Sam Ravnborg, linux-arch, Peter Zijlstra, Ian Campbell,
	Mike Frysinger, Tony Luck, Fenghua Yu, Hirokazu Takata,
	Geert Uytterhoeven, Kyle McMartin, Benjamin Herrenschmidt,
	Martin Schwidefsky, Paul Mundt, Thomas Gleixner, Ingo Molnar

Russell King - ARM Linux wrote:
> 
> That's a good thing in some ways and a bad thing in others.  Having
> it guarantee to fail if you try installing an ARM kernel onto an
> x86 machine is definitely a good thing.  That said, it's not something
> I've ever accidentally done.
> 

I guess we could have it error out if you are building a non-native
architecture but don't set CROSS_COMPILE.  Either that or we could
default $INSTALLKERNEL to $(CROSS_COMPILE)installkernel, which would be
backwards compatible.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

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

* Re: [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script
  2009-07-21  1:22   ` H. Peter Anvin
@ 2009-07-21  7:18     ` Sam Ravnborg
  0 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2009-07-21  7:18 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Russell King - ARM Linux, linux-arch, Peter Zijlstra,
	Ian Campbell, Mike Frysinger, Tony Luck, Fenghua Yu,
	Hirokazu Takata, Geert Uytterhoeven, Kyle McMartin,
	Benjamin Herrenschmidt, Martin Schwidefsky, Paul Mundt,
	Thomas Gleixner, Ingo Molnar

On Mon, Jul 20, 2009 at 06:22:43PM -0700, H. Peter Anvin wrote:
> Russell King - ARM Linux wrote:
> > 
> > That's a good thing in some ways and a bad thing in others.  Having
> > it guarantee to fail if you try installing an ARM kernel onto an
> > x86 machine is definitely a good thing.  That said, it's not something
> > I've ever accidentally done.
> > 
> 
> I guess we could have it error out if you are building a non-native
> architecture but don't set CROSS_COMPILE.  Either that or we could
> default $INSTALLKERNEL to $(CROSS_COMPILE)installkernel, which would be
> backwards compatible.
I had googled a bit to try to analyse how much use
this feature has seen.
And I only managed to find the original patch implementing this.

None of the books I found mention this in their
install kernel chapets either.

So the conclusion - it is not widely used.

Russell is right that one implicit use is that "make CROSS_COMPILE=foo install"
would fail. And with this patch it would succeed.
Trying to error out is we are doing a non-native build is not the
right answer. People may like to have a custom script that can
ftp the new kernel somewhere or stuff like that. 

All that combined with the fact that using the binutils/gcc
CROSS_COMPILE prefix is the wrong solution anyway made me
conclude that we should fix this rather than implement it
in a different way.

That combined with the fact that CROSS_COMPILE has two
primary usages:

   - binutils/gcc prefix when building for another architecture

   - distcc/ccache

The latter does not fit well with the installkernel use.

I briefly looked into creating another way to specify
distcc / ccache.
But the current way to do things works well - so I dropped it again.

	Sam

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

end of thread, other threads:[~2009-07-21  7:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-20 20:11 [PATCH/RFC] kbuild: use INSTALLKERNEL to select customized installkernel script Sam Ravnborg
2009-07-20 20:19 ` H. Peter Anvin
2009-07-20 20:49 ` Paul Mundt
2009-07-20 22:11 ` Russell King - ARM Linux
2009-07-21  1:22   ` H. Peter Anvin
2009-07-21  7:18     ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).