Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0756b5a authored by Helge Deller's avatar Helge Deller
Browse files

parisc: make "make install" not depend on vmlinux

Install targets (install, zinstall, uinstall) on parisc have a
dependency to vmlinux. This may cause parts of the kernel to be rebuilt
during installation. We must avoid this since this may run as root.
Install targets "ABSOLUTELY MUST NOT MODIFY THE SOURCE TREE." as Linus
emphasized this in:

http://lkml.org/lkml/2013/7/10/600



So on parisc and maybe other archs we need the same as for x86:

1648e4f8 x86, kbuild: make "make install" not depend on vmlinux

This parisc patch was inspired by:

19514fc6 arm, kbuild: make "make install" not depend on vmlinux

Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 527973c8
Loading
Loading
Loading
Loading
+15 −7
Original line number Original line Diff line number Diff line
@@ -94,7 +94,7 @@ PALOCONF := $(shell if [ -f $(src)/palo.conf ]; then echo $(src)/palo.conf; \
	else echo $(obj)/palo.conf; \
	else echo $(obj)/palo.conf; \
	fi)
	fi)


palo: vmlinuz
palo lifimage: vmlinuz
	@if test ! -x "$(PALO)"; then \
	@if test ! -x "$(PALO)"; then \
		echo 'ERROR: Please install palo first (apt-get install palo)';\
		echo 'ERROR: Please install palo first (apt-get install palo)';\
		echo 'or build it from source and install it somewhere in your $$PATH';\
		echo 'or build it from source and install it somewhere in your $$PATH';\
@@ -109,16 +109,23 @@ palo: vmlinuz
	fi
	fi
	$(PALO) -f $(PALOCONF)
	$(PALO) -f $(PALOCONF)


# Shorthands for known targets not supported by parisc, use vmlinux/vmlinuz as default
BOOT_TARGETS    = zImage Image palo lifimage
INSTALL_TARGETS = zinstall install

PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS)

bzImage zImage: vmlinuz
Image: vmlinux
Image: vmlinux
zImage bzImage: vmlinuz


vmlinuz: vmlinux
vmlinuz: vmlinux
	@gzip -cf -9 $< > $@
	@gzip -cf -9 $< > $@


install: vmlinuz
install:
	sh $(src)/arch/parisc/install.sh \
	$(CONFIG_SHELL) $(src)/arch/parisc/install.sh \
			$(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
			$(KERNELRELEASE) vmlinux System.map "$(INSTALL_PATH)"
zinstall:
	$(CONFIG_SHELL) $(src)/arch/parisc/install.sh \
			$(KERNELRELEASE) vmlinuz System.map "$(INSTALL_PATH)"


CLEAN_FILES	+= lifimage
CLEAN_FILES	+= lifimage
MRPROPER_FILES	+= palo.conf
MRPROPER_FILES	+= palo.conf
@@ -127,10 +134,11 @@ define archhelp
	@echo  '* vmlinux	- Uncompressed kernel image (./vmlinux)'
	@echo  '* vmlinux	- Uncompressed kernel image (./vmlinux)'
	@echo  '  vmlinuz	- Compressed kernel image (./vmlinuz)'
	@echo  '  vmlinuz	- Compressed kernel image (./vmlinuz)'
	@echo  '  palo		- Bootable image (./lifimage)'
	@echo  '  palo		- Bootable image (./lifimage)'
	@echo  '  install	- Install kernel using'
	@echo  '  install	- Install uncompressed vmlinux kernel using'
	@echo  '		  (your) ~/bin/$(INSTALLKERNEL) or'
	@echo  '		  (your) ~/bin/$(INSTALLKERNEL) or'
	@echo  '		  (distribution) /sbin/$(INSTALLKERNEL) or'
	@echo  '		  (distribution) /sbin/$(INSTALLKERNEL) or'
	@echo  '		  copy to $$(INSTALL_PATH)'
	@echo  '		  copy to $$(INSTALL_PATH)'
	@echo  '  zinstall	- Install compressed vmlinuz kernel'
endef
endef


# we require gcc 3.3 or above to compile the kernel
# we require gcc 3.3 or above to compile the kernel
+36 −8
Original line number Original line Diff line number Diff line
@@ -19,20 +19,48 @@
#   $4 - default install path (blank if root directory)
#   $4 - default install path (blank if root directory)
#
#


verify () {
	if [ ! -f "$1" ]; then
		echo ""                                                   1>&2
		echo " *** Missing file: $1"                              1>&2
		echo ' *** You need to run "make" before "make install".' 1>&2
		echo ""                                                   1>&2
		exit 1
	fi
}

# Make sure the files actually exist

verify "$2"
verify "$3"

# User may have a custom install script
# User may have a custom install script


if [ -n "${INSTALLKERNEL}" ]; then
  if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
  if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
  if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
  if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
fi


# Default install
# Default install


if [ -f $4/vmlinuz ]; then
if [ "$(basename $2)" = "zImage" ]; then
	mv $4/vmlinuz $4/vmlinuz.old
# Compressed install
  echo "Installing compressed kernel"
  base=vmlinuz
else
# Normal install
  echo "Installing normal kernel"
  base=vmlinux
fi

if [ -f $4/$base-$1 ]; then
  mv $4/$base-$1 $4/$base-$1.old
fi
fi
cat $2 > $4/$base-$1


if [ -f $4/System.map ]; then
# Install system map file
	mv $4/System.map $4/System.old
if [ -f $4/System.map-$1 ]; then
  mv $4/System.map-$1 $4/System.map-$1.old
fi
fi
cp $3 $4/System.map-$1
cat $2 > $4/vmlinuz
cp $3 $4/System.map