summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2019-07-24 11:36:06 +0200
committerJonathan Bauer2019-12-04 11:49:41 +0100
commitd9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32 (patch)
tree32cf6b9afdcc47d295074cfdf02515255398ee72
parentAdd disable_werror to qemu-xmount build (diff)
downloadsystemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.tar.gz
systemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.tar.xz
systemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.zip
[builder] introduce --kernel-headers|-h
to specify the path to kernel headers to build dnbd3 against. Also remove hacky patch and just directly use dnbd3's KERNEL_DIR CMAKE flag.
-rwxr-xr-xbuilder/build-initramfs.sh27
1 files changed, 20 insertions, 7 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh
index aefc6544..7d56b787 100755
--- a/builder/build-initramfs.sh
+++ b/builder/build-initramfs.sh
@@ -351,6 +351,17 @@ parse_command_line() {
fi
shift
;;
+ -h|--kernel-headers)
+ local given_argument="$1"
+ shift
+ kernel_headers="$1"
+ if [ -z "$kernel_headers" ]; then
+ logging.critical \
+ "Error with given option \"$given_argument\": This option needs the path to the kernel headers."
+ return 1
+ fi
+ shift
+ ;;
-)
shift
while [[ "$1" =~ ^.+$ ]]; do
@@ -495,9 +506,7 @@ initialize_dnbd3_rootfs_module() {
if [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3.ko" ]] || \
[[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3-client" ]]; then
logging.info "Could not find dnbd3, building it..."
- # fallback to running kernel if the kernel version was not
- # specified as the dracut argument '--kver'
- if ! CMAKE_FLAGS="-DKERNEL_VERSION=${kernel_version}" \
+ if ! CMAKE_FLAGS="-DKERNEL_DIR=${kernel_headers}" \
build_compile_dnbd3 "${_deps_base_dir}/dnbd3/"; then
logging.error "Failed to build dnbd3."
return 1
@@ -552,13 +561,17 @@ main() {
if [ -z "$kernel_version" ]; then
kernel_version="$(uname -r)"
fi
+ # similar for kernel headers needed to compile dnbd3 against.
+ if [ -z "$kernel_headers" ]; then
+ kernel_headers="/lib/modules/${kernel_version}/build"
+ fi
+ if [ ! -f "${kernel_headers}/Makefile" ]; then
+ logging.critical 'Missing core dependency "linux-headers" for version to compile against given or current kernel.'
+ fi
+ logging.info "Building for kernel version: ${kernel_version}."
# endregion
# region dependency checks and command line parsing
- logging.info "Building for kernel version: ${kernel_version}."
result=0
- if ! [ -f "/lib/modules/${kernel_version}/build/Makefile" ]; then
- logging.critical 'Missing core dependency "linux-headers" for version to compile against given or current kernel.'
- fi
dependency_check core dependencies utils_dependency_check program || \
result=$?
dependency_check core shared_library_pattern_dependencies \