scripts: fix link-vmlinux.sh bash-ism
authorSylvain BERTRAND <sylvain.bertrand@gmail.com>
Thu, 7 May 2015 00:36:04 +0000 (00:36 +0000)
committerMichal Marek <mmarek@suse.cz>
Thu, 7 May 2015 10:42:03 +0000 (12:42 +0200)
While building linux with dash shell:
  LINK    vmlinux
trap: SIGHUP: bad trap
/src/linux-4.0/Makefile:933: recipe for target 'vmlinux' failed
make[1]: *** [vmlinux] Error 1

See the following document for behavior of posix shell trap instruction:
http://pubs.opengroup.org/onlinepubs/000095399/utilities/trap.html

Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sylvain BERTRAND <sylvain.bertrand@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
scripts/link-vmlinux.sh

index 86a4fe75f453735936e3b218f885dcd887216659..c9a11d15d228479158d5fe429d52ef7e0decb457 100755 (executable)
@@ -111,7 +111,6 @@ sortextable()
 }
 
 # Delete output files in case of error
-trap cleanup SIGHUP SIGINT SIGQUIT SIGTERM ERR
 cleanup()
 {
        rm -f .old_version
@@ -124,6 +123,20 @@ cleanup()
        rm -f vmlinux.o
 }
 
+on_exit()
+{
+       if [ $? -ne 0 ]; then
+               cleanup
+       fi
+}
+trap on_exit EXIT
+
+on_signals()
+{
+       exit 1
+}
+trap on_signals HUP INT QUIT TERM
+
 #
 #
 # Use "make V=1" to debug this script
@@ -231,7 +244,6 @@ if [ -n "${CONFIG_KALLSYMS}" ]; then
        if ! cmp -s System.map .tmp_System.map; then
                echo >&2 Inconsistent kallsyms data
                echo >&2 Try "make KALLSYMS_EXTRA_PASS=1" as a workaround
-               cleanup
                exit 1
        fi
 fi