summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/CMakeLists.txt8
-rw-r--r--kernel/cmake/kernel.cmake29
-rw-r--r--kernel/tests/CMakeLists.txt2
-rw-r--r--kernel/tests/include/lapi/xloop.h2
-rw-r--r--kernel/tests/lib/CMakeLists.txt1
-rw-r--r--kernel/tests/lib/tst_device.c2
-rw-r--r--kernel/uapi_xloop.h (renamed from kernel/uapi/linux/xloop.h)0
-rw-r--r--kernel/xloop_main.h2
8 files changed, 32 insertions, 14 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 1f266f6..dd12c80 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -23,7 +23,7 @@ set(KERNEL_MODULE_XLOOP_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.c)
set(KERNEL_MODULE_XLOOP_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
- ${CMAKE_CURRENT_SOURCE_DIR}/uapi)
+ ${CMAKE_CURRENT_SOURCE_DIR}/uapi_xloop.h)
add_kernel_module(xloop "${KERNEL_BUILD_DIR}"
"${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP=m"
@@ -35,7 +35,7 @@ add_kernel_module(xloop "${KERNEL_BUILD_DIR}"
set(KERNEL_MODULE_XLOOP_RAW_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt_raw.c)
set(KERNEL_MODULE_XLOOP_RAW_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
- ${CMAKE_CURRENT_SOURCE_DIR}/uapi)
+ ${CMAKE_CURRENT_SOURCE_DIR}/uapi_xloop.h)
add_kernel_module(xloop_file_fmt_raw "${KERNEL_BUILD_DIR}"
"${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP_FILE_FMT_RAW=m"
@@ -53,7 +53,7 @@ set(KERNEL_MODULE_XLOOP_QCOW_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/xloop_file
${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt_qcow_main.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_file_fmt.h
${CMAKE_CURRENT_SOURCE_DIR}/xloop_main.h
- ${CMAKE_CURRENT_SOURCE_DIR}/uapi)
+ ${CMAKE_CURRENT_SOURCE_DIR}/uapi_xloop.h)
add_kernel_module(xloop_file_fmt_qcow "${KERNEL_BUILD_DIR}"
"${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_XLOOP_FILE_FMT_QCOW=m"
@@ -68,6 +68,6 @@ endif()
# install udev rules for xloop devices exposed by the xloop kernel module
install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/udev/50-xloop.rules
- DESTINATION /${CMAKE_INSTALL_LIBDIR}/udev/rules.d
+ DESTINATION /lib/udev/rules.d
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
COMPONENT main)
diff --git a/kernel/cmake/kernel.cmake b/kernel/cmake/kernel.cmake
index 0d843e6..811ce86 100644
--- a/kernel/cmake/kernel.cmake
+++ b/kernel/cmake/kernel.cmake
@@ -6,15 +6,31 @@
# macro to define kernel module targets
macro(add_kernel_module MODULE_NAME KERNEL_BUILD_DIR KERNEL_INSTALL_DIR MODULE_MACRO MODULE_SOURCE_FILES MODULE_HEADER_FILES BUILD_SOURCE_FILE)
+ # create directory for kernel module
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
# copy build source file
- file(COPY ${BUILD_SOURCE_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
+ get_filename_component(BUILD_SOURCE_FILENAME ${BUILD_SOURCE_FILE} NAME)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${BUILD_SOURCE_FILENAME}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BUILD_SOURCE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
+ DEPENDS ${BUILD_SOURCE_FILE})
+ set(BUILD_SOURCE_FILE_PREPARED ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${BUILD_SOURCE_FILENAME})
# copy source files
foreach(MODULE_SOURCE_FILE ${MODULE_SOURCE_FILES})
- file(COPY ${MODULE_SOURCE_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
+ get_filename_component(MODULE_SOURCE_FILENAME ${MODULE_SOURCE_FILE} NAME)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_SOURCE_FILENAME}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MODULE_SOURCE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
+ DEPENDS ${MODULE_SOURCE_FILE})
+ set(MODULE_SOURCE_FILES_PREPARED ${MODULE_SOURCE_FILES_PREPARED}
+ ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_SOURCE_FILENAME})
endforeach()
# copy header files
foreach(MODULE_HEADER_FILE ${MODULE_HEADER_FILES})
- file(COPY ${MODULE_HEADER_FILE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME})
+ get_filename_component(MODULE_HEADER_FILENAME ${MODULE_HEADER_FILE} NAME)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_HEADER_FILENAME}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MODULE_HEADER_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
+ DEPENDS ${MODULE_HEADER_FILE})
+ set(MODULE_HEADER_FILES_PREPARED ${MODULE_HEADER_FILES_PREPARED}
+ ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_HEADER_FILENAME})
endforeach()
# check if module depends on another module
if(NOT ${ARGV7} STREQUAL "")
@@ -28,9 +44,10 @@ macro(add_kernel_module MODULE_NAME KERNEL_BUILD_DIR KERNEL_INSTALL_DIR MODULE_M
KBUILD_EXTRA_SYMBOLS=${MODULE_EXTRA_SYMBOLS})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko
COMMAND ${MODULE_BUILD_COMMAND}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
- DEPENDS ${MODULE_SOURCE_FILES} ${MODULE_HEADER_FILES} ${BUILD_SOURCE_FILE}
- VERBATIM)
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}
+ COMMENT "Build kernel module ${MODULE_NAME}"
+ DEPENDS ${BUILD_SOURCE_FILE_PREPARED} ${MODULE_HEADER_FILES_PREPARED} ${MODULE_SOURCE_FILES_PREPARED}
+ VERBATIM)
add_custom_target(${MODULE_NAME} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko ${ARGV7})
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}/${MODULE_NAME}.ko
DESTINATION ${KERNEL_INSTALL_DIR}
diff --git a/kernel/tests/CMakeLists.txt b/kernel/tests/CMakeLists.txt
index f086864..e93ff9d 100644
--- a/kernel/tests/CMakeLists.txt
+++ b/kernel/tests/CMakeLists.txt
@@ -4,7 +4,7 @@ project(xloop-kernel-test)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/old)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../uapi)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
# configure configuration config.h and add it to the include directories
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
diff --git a/kernel/tests/include/lapi/xloop.h b/kernel/tests/include/lapi/xloop.h
index 8e57b31..769d1f0 100644
--- a/kernel/tests/include/lapi/xloop.h
+++ b/kernel/tests/include/lapi/xloop.h
@@ -8,7 +8,7 @@
#include "config.h"
#include <linux/types.h>
-#include <linux/xloop.h>
+#include <uapi_xloop.h>
#ifndef LO_FLAGS_PARTSCAN
# define LO_FLAGS_PARTSCAN 8
diff --git a/kernel/tests/lib/CMakeLists.txt b/kernel/tests/lib/CMakeLists.txt
index 9cea565..0ce8982 100644
--- a/kernel/tests/lib/CMakeLists.txt
+++ b/kernel/tests/lib/CMakeLists.txt
@@ -67,3 +67,4 @@ add_library(libltp STATIC ${CMAKE_CURRENT_SOURCE_DIR}/cloner.c
${CMAKE_CURRENT_SOURCE_DIR}/tst_virt.c
${CMAKE_CURRENT_SOURCE_DIR}/tst_wallclock.c)
target_include_directories(libltp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+target_compile_options(libltp PUBLIC "-Wno-deprecated-declarations")
diff --git a/kernel/tests/lib/tst_device.c b/kernel/tests/lib/tst_device.c
index 24f34a3..0df8efe 100644
--- a/kernel/tests/lib/tst_device.c
+++ b/kernel/tests/lib/tst_device.c
@@ -28,7 +28,7 @@
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
-#include <linux/xloop.h>
+#include <uapi_xloop.h>
#include <stdint.h>
#include <inttypes.h>
#include <sys/sysmacros.h>
diff --git a/kernel/uapi/linux/xloop.h b/kernel/uapi_xloop.h
index 1bf13c6..1bf13c6 100644
--- a/kernel/uapi/linux/xloop.h
+++ b/kernel/uapi_xloop.h
diff --git a/kernel/xloop_main.h b/kernel/xloop_main.h
index e45a891..e1b4cb6 100644
--- a/kernel/xloop_main.h
+++ b/kernel/xloop_main.h
@@ -15,7 +15,7 @@
#include <linux/spinlock.h>
#include <linux/mutex.h>
#include <linux/kthread.h>
-#include "uapi/linux/xloop.h"
+#include "uapi_xloop.h"
#ifdef CONFIG_DEBUG_FS
#include <linux/debugfs.h>
#endif