diff --git a/Makefile b/Makefile
index 105a114..a7be173 100644
--- a/Makefile
+++ b/Makefile
@@ -73,10 +73,11 @@
 TARGET = aarch64-linux-gnu
 # The GCC toolchain is needed when building kvm-unit-tests as well as Linux
 # with Clang, because of lack of support for the LLVM integrated assembler.
-GCC_TOOLCHAIN_DIR = $(TOOLCHAIN_GCC_49)/bin/
+GCC_TOOLCHAIN_DIR = $(TOOLCHAIN_GCC_49)
+GCC_TOOLCHAIN_BIN = $(GCC_TOOLCHAIN_DIR)/bin/
 LLVM = "LLVM=1"
-# KVM Unit Tests requires additional flags to build with Clang.
-KUT_COMMON_CFLAGS := -Qunused-arguments --target=$(TARGET) -fno-integrated-as -Wno-asm-operand-widths -fpic --gcc-toolchain=$(GCC_TOOLCHAIN_DIR) --prefix=$(GCC_TOOLCHAIN_DIR)/$(TARGET)-
+# Some targets require additional flags to build with Clang.
+COMMON_CFLAGS := -Qunused-arguments --target=$(TARGET) -fno-integrated-as -Wno-asm-operand-widths -fpic --gcc-toolchain=$(GCC_TOOLCHAIN_DIR) --sysroot=$(GCC_TOOLCHAIN_DIR)/$(TARGET)/libc --prefix=$(GCC_TOOLCHAIN_BIN)/$(TARGET)-
 else
 $(error Unrecognized toolchain: TOOLCHAIN=$(TOOLCHAIN))
 endif
@@ -87,7 +88,7 @@
 LD := $(TOOLCHAIN_BIN)/$(TARGET)-ld
 OBJCOPY := $(TOOLCHAIN_BIN)/$(TARGET)-objcopy
 OBJDUMP := $(TOOLCHAIN_BIN)/$(TARGET)-objdump
-GCC_TOOLCHAIN_DIR := $(TOOLCHAIN_BIN)
+GCC_TOOLCHAIN_BIN := $(TOOLCHAIN_BIN)
 endif
 
 ##
@@ -172,7 +173,7 @@
 			--prefix=$(KUT_OUT) --arch=$(ARCH) \
 			--cc=$(CC) --ld=$(LD) \
 			--objcopy=$(OBJCOPY) --objdump=$(OBJDUMP)
-	COMMON_CFLAGS="$(KUT_COMMON_CFLAGS)" \
+	COMMON_CFLAGS="$(COMMON_CFLAGS)" \
 		$(MAKE) -C $(KUT_OUT) standalone
 	touch $(KUT_STAMP)
 
@@ -195,7 +196,7 @@
 	CROSS_COMPILE="$(TARGET)-" \
 	$(MAKE) \
 	$(LLVM) \
-	GCC_TOOLCHAIN_DIR="$(GCC_TOOLCHAIN_DIR)" \
+	GCC_TOOLCHAIN_DIR="$(GCC_TOOLCHAIN_BIN)" \
 	-C $(LINUX_SRC) \
 	V=$(LINUX_VERBOSE) \
 	O=$(LINUX_OUT)
diff --git a/aarch64/package_payloads.sh b/aarch64/package_payloads.sh
new file mode 100755
index 0000000..36ab253
--- /dev/null
+++ b/aarch64/package_payloads.sh
@@ -0,0 +1,102 @@
+#!/usr/bin/env bash
+
+# Copyright 2020 The Android KVM Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+source "$(dirname "${BASH_SOURCE[0]}")/../common.inc"
+
+function usage()
+{
+	cat <<EOF
+
+Packages the files passed in the command line in a bash script as base64
+payloads, and executes the specified command at the end of the script.
+
+The files are packaged under their basenames and extracted into the same
+temporary directory. The command is run from that temporary directory.
+
+Usage: $0 [-h] -c COMMAND <file> [<file> ...]
+    -h    output this help text
+    -c    command to run by the packaged script
+EOF
+}
+
+# Generates the header for the packaged script.
+function generate_header()
+{
+	echo "#!/usr/bin/env bash"
+        echo "set -euo pipefail"
+	echo "IMGDIR=\$(mktemp -d)"
+	echo "cd \${IMGDIR}"
+	echo
+}
+
+# Generates a base64 payload image for the image files passed.
+# First parameter holds the full path of the image to be packages.
+# Second parameter holds the name of the image to be generated.
+function generate_image()
+{
+	local image_path="${1}"
+	local image_name="${2}"
+
+	echo "base64 -d << 'EOF' | zcat > \"${image_name}\""
+	gzip -c "${image_path}" | base64
+	echo "EOF"
+	echo
+}
+
+while getopts ":c:h" opt; do
+	case $opt in
+	c) 	COMMAND="${OPTARG}";;
+	h)
+		usage
+		exit 0
+		;;
+	\?)
+		echo "Invalid option: ${!OPTIND}" 1>&2
+		usage 1>&2
+		exit 1
+		;;
+	:)
+		echo "Invalid option: -${OPTARG} requires an argument" 1>&2
+		usage 1>&2
+		exit 1
+		;;
+	esac
+done
+shift $((OPTIND - 1))
+
+if [ -z "$@" ]; then
+        echo "Must specify at least one image file to package." 1>&2
+        exit 1
+fi
+
+IMAGES=("$@")
+
+# Validate that all image files exist before emitting anything.
+for image in "${IMAGES[@]}"; do
+        if [ ! -f "${image}" ]; then
+		echo "Image file not found: ${image}" 1>&2
+		exit 1
+	fi
+done
+
+# Generate the packaged script.
+generate_header
+
+for image in "${IMAGES[@]}"; do
+        generate_image "${image}" "$(basename ${image})"
+done
+
+echo "${COMMAND}"
