From da51096bcf257723a929c799bc6934877de81fa5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 14 Dec 2024 10:01:34 -0800 Subject: kernel-module-emlog: Fix build with kernel 6.12+ Signed-off-by: Khem Raj --- meta-oe/recipes-core/emlog/emlog.inc | 1 + ...01-Remove-modules_clean-from-clean-target.patch | 33 ------ .../emlog/emlog/Drop-use-of-error-h.patch | 115 --------------------- meta-oe/recipes-core/emlog/emlog/emlog.initd | 25 ----- ...01-Remove-modules_clean-from-clean-target.patch | 33 ++++++ ...g-Do-not-use-no_llseek-with-kernel-6.12.0.patch | 32 ++++++ .../emlog/files/Drop-use-of-error-h.patch | 115 +++++++++++++++++++++ meta-oe/recipes-core/emlog/files/emlog.initd | 25 +++++ 8 files changed, 206 insertions(+), 173 deletions(-) delete mode 100644 meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch delete mode 100644 meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch delete mode 100644 meta-oe/recipes-core/emlog/emlog/emlog.initd create mode 100644 meta-oe/recipes-core/emlog/files/0001-Remove-modules_clean-from-clean-target.patch create mode 100644 meta-oe/recipes-core/emlog/files/0001-emlog-Do-not-use-no_llseek-with-kernel-6.12.0.patch create mode 100644 meta-oe/recipes-core/emlog/files/Drop-use-of-error-h.patch create mode 100644 meta-oe/recipes-core/emlog/files/emlog.initd diff --git a/meta-oe/recipes-core/emlog/emlog.inc b/meta-oe/recipes-core/emlog/emlog.inc index 631e52f388..5e96b8b3bd 100644 --- a/meta-oe/recipes-core/emlog/emlog.inc +++ b/meta-oe/recipes-core/emlog/emlog.inc @@ -4,6 +4,7 @@ LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=https;branch=master" +SRC_URI += "file://0001-emlog-Do-not-use-no_llseek-with-kernel-6.12.0.patch" SRCREV = "a9bbf324fde131ff4cf064e32674086c4ced4dca" PV = "0.70+git" S = "${WORKDIR}/git" diff --git a/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch b/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch deleted file mode 100644 index beba528b33..0000000000 --- a/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch +++ /dev/null @@ -1,33 +0,0 @@ -From fd0a4ee201b5c7b24da79dcd346ac121978951a0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 29 Mar 2020 19:58:36 -0700 -Subject: [PATCH] Remove modules_clean from clean target - -This is needed when building applications (w/o module) -Since OE will run 'make clean' before reconfiguring, this -will try to run module_clean and will wrongly try to look for removing -modules from /lib/modules - -Upstream-Status: Inappropriate [ OE-Specific ] - -Signed-off-by: Khem Raj ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index c60863f..fc897d5 100644 ---- a/Makefile -+++ b/Makefile -@@ -23,7 +23,7 @@ all: modules nbcat mkemlog - - install: modules_install nbcat_install mkemlog_install - --clean: modules_clean nbcat_clean mkemlog_clean -+clean: nbcat_clean mkemlog_clean - - modules: - $(MAKE) -C $(KDIR) M=$(CURDIR) modules --- -2.26.0 - diff --git a/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch b/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch deleted file mode 100644 index 4c5a191ac4..0000000000 --- a/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 41de28a92297f4cb0c5a8d7356cde9190176947b Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 14 Mar 2019 19:54:27 -0300 -Subject: [PATCH] Drop use of error.h -Organization: O.S. Systems Software LTDA. - -The error.h does not work with musl and this project being embedded -friendly it makes sense to avoid glibc-specific code. - -Signed-off-by: Otavio Salvador -Signed-off-by: Fabio Berton ---- -Upstream-Status: Pending - - mkemlog.c | 29 ++++++++++++++--------------- - 1 file changed, 14 insertions(+), 15 deletions(-) - -diff --git a/mkemlog.c b/mkemlog.c -index e3354ed..7bcdfce 100644 ---- a/mkemlog.c -+++ b/mkemlog.c -@@ -21,7 +21,6 @@ - #include - #include - #include --#include - #include - - #define EMLOG_DEVICE "/dev/emlog" -@@ -40,16 +39,16 @@ int main(int argc, char** argv) { - FILE *max_size_file = NULL; - uid_t uid = -1; - if (argc < 2 || argc > 5) { -- error(1 ,0, USAGE); -+ fprintf(stderr, USAGE); - } - file = argv[1]; - - max_size_file = fopen("/sys/module/emlog/parameters/emlog_max_size", "r"); - if (max_size_file == NULL) -- error(1, errno, "Emlog module not loaded\n"); -+ fprintf(stderr, "Emlog module not loaded\n"); - rc = fscanf(max_size_file, "%d", &emlog_max_size); - if (rc != 1) -- error(1, errno, "Unable to get emlog max size\n"); -+ fprintf(stderr, "Unable to get emlog max size\n"); - fclose(max_size_file); - max_size_file = NULL; - if (argc > 2 ) { -@@ -57,13 +56,13 @@ int main(int argc, char** argv) { - number = argv[2]; - size_of_buffer = strtol(number, &end_of_number, 10); - if (errno) { -- error(1, errno, "Invalid size provided\n" USAGE); -+ fprintf(stderr, "Invalid size provided\n" USAGE); - } - if (end_of_number == number) { -- error(1, 0, "Invalid size provided\n" USAGE); -+ fprintf(stderr, "Invalid size provided\n" USAGE); - } - if (size_of_buffer < 1 || size_of_buffer > emlog_max_size) { -- error(1, 0, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size); -+ fprintf(stderr, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size); - } - } - if (argc > 3 ) { -@@ -71,10 +70,10 @@ int main(int argc, char** argv) { - number = argv[3]; - mode = strtol(number, &end_of_number, 8); - if (errno) { -- error(1, errno, "Invalid mode provided\n" USAGE); -+ fprintf(stderr, "Invalid mode provided\n" USAGE); - } - if (end_of_number == number || S_IFMT & mode) { -- error(1, 0, "Invalid mode provided\n" USAGE); -+ fprintf(stderr, "Invalid mode provided\n" USAGE); - } - } - if (argc > 4 ) { -@@ -82,27 +81,27 @@ int main(int argc, char** argv) { - number = argv[4]; - uid = strtol(number, &end_of_number, 10); - if (errno) { -- error(1, errno, "Invalid uid provided\n" USAGE); -+ fprintf(stderr, "Invalid uid provided\n" USAGE); - } - if (end_of_number == number) { -- error(1, 0, "Invalid uid provided\n" USAGE); -+ fprintf(stderr, "Invalid uid provided\n" USAGE); - } - } - rc = stat(EMLOG_DEVICE, &emlog_stat); - if (rc == -1) { -- error(1, errno, "stat: " EMLOG_DEVICE); -+ fprintf(stderr, "stat: " EMLOG_DEVICE); - } - if (!S_ISCHR(emlog_stat.st_mode)) { -- error(1, 0, EMLOG_DEVICE " is not a valid emlog device\n"); -+ fprintf(stderr, EMLOG_DEVICE " is not a valid emlog device\n"); - } - rc = mknod(file, mode | S_IFCHR, makedev(major(emlog_stat.st_rdev),size_of_buffer)); - if (rc == -1) { -- error(1, errno, "mknod: %s", file); -+ fprintf(stderr, "mknod: %s", file); - } - if (uid != -1) { - rc = chown(file, uid, -1); - if (rc == -1) { -- error(1, errno, "chown: %s", file); -+ fprintf(stderr, "chown: %s", file); - } - } - printf("Log device %s created with buffer size of %d KiB\n", file, size_of_buffer); --- -2.20.1 diff --git a/meta-oe/recipes-core/emlog/emlog/emlog.initd b/meta-oe/recipes-core/emlog/emlog/emlog.initd deleted file mode 100644 index 361cf8029e..0000000000 --- a/meta-oe/recipes-core/emlog/emlog/emlog.initd +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -PATH=/sbin:/usr/sbin:/bin:/usr/bin - -[ -r /etc/default/emlog ] && . /etc/default/emlog - -do_start() { - : -} - -do_stop() { - nbcat /dev/emlog > /data/emlog -} - -case "$1" in - start) - do_start || exit $? - ;; - stop) - do_stop || exit $? - ;; - *) - echo "Usage: $0 {stop}" >&2 - exit 3 - ;; -esac diff --git a/meta-oe/recipes-core/emlog/files/0001-Remove-modules_clean-from-clean-target.patch b/meta-oe/recipes-core/emlog/files/0001-Remove-modules_clean-from-clean-target.patch new file mode 100644 index 0000000000..beba528b33 --- /dev/null +++ b/meta-oe/recipes-core/emlog/files/0001-Remove-modules_clean-from-clean-target.patch @@ -0,0 +1,33 @@ +From fd0a4ee201b5c7b24da79dcd346ac121978951a0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 29 Mar 2020 19:58:36 -0700 +Subject: [PATCH] Remove modules_clean from clean target + +This is needed when building applications (w/o module) +Since OE will run 'make clean' before reconfiguring, this +will try to run module_clean and will wrongly try to look for removing +modules from /lib/modules + +Upstream-Status: Inappropriate [ OE-Specific ] + +Signed-off-by: Khem Raj +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index c60863f..fc897d5 100644 +--- a/Makefile ++++ b/Makefile +@@ -23,7 +23,7 @@ all: modules nbcat mkemlog + + install: modules_install nbcat_install mkemlog_install + +-clean: modules_clean nbcat_clean mkemlog_clean ++clean: nbcat_clean mkemlog_clean + + modules: + $(MAKE) -C $(KDIR) M=$(CURDIR) modules +-- +2.26.0 + diff --git a/meta-oe/recipes-core/emlog/files/0001-emlog-Do-not-use-no_llseek-with-kernel-6.12.0.patch b/meta-oe/recipes-core/emlog/files/0001-emlog-Do-not-use-no_llseek-with-kernel-6.12.0.patch new file mode 100644 index 0000000000..86f719b0bb --- /dev/null +++ b/meta-oe/recipes-core/emlog/files/0001-emlog-Do-not-use-no_llseek-with-kernel-6.12.0.patch @@ -0,0 +1,32 @@ +From dca01ea62833249d78ac3bdf277b73424bf93e89 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 14 Dec 2024 09:55:10 -0800 +Subject: [PATCH] emlog: Do not use no_llseek with kernel 6.12.0+ + +no_llseek is finally gone with 6.12-rc1 [1] + +[1] https://github.com/torvalds/linux/commit/cb787f4ac0c2e439ea8d7e6387b925f74576bdf8 + +Upstream-Status: Submitted [https://github.com/nicupavel/emlog/pull/16] +--- + emlog.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/emlog.c b/emlog.c +index 2ead738..b45c72d 100644 +--- a/emlog.c ++++ b/emlog.c +@@ -464,7 +464,12 @@ static const struct file_operations emlog_fops = { + .open = emlog_open, + .release = emlog_release, + .poll = emlog_poll, +- .llseek = no_llseek, /* no_llseek by default introduced at v2.6.37-rc1 */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) ++ /* no_llseek by default introduced at v2.6.37-rc1 and ++ * removed in 6.12.0 ++ */ ++ .llseek = no_llseek, ++#endif + .owner = THIS_MODULE, + }; + diff --git a/meta-oe/recipes-core/emlog/files/Drop-use-of-error-h.patch b/meta-oe/recipes-core/emlog/files/Drop-use-of-error-h.patch new file mode 100644 index 0000000000..4c5a191ac4 --- /dev/null +++ b/meta-oe/recipes-core/emlog/files/Drop-use-of-error-h.patch @@ -0,0 +1,115 @@ +From 41de28a92297f4cb0c5a8d7356cde9190176947b Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Thu, 14 Mar 2019 19:54:27 -0300 +Subject: [PATCH] Drop use of error.h +Organization: O.S. Systems Software LTDA. + +The error.h does not work with musl and this project being embedded +friendly it makes sense to avoid glibc-specific code. + +Signed-off-by: Otavio Salvador +Signed-off-by: Fabio Berton +--- +Upstream-Status: Pending + + mkemlog.c | 29 ++++++++++++++--------------- + 1 file changed, 14 insertions(+), 15 deletions(-) + +diff --git a/mkemlog.c b/mkemlog.c +index e3354ed..7bcdfce 100644 +--- a/mkemlog.c ++++ b/mkemlog.c +@@ -21,7 +21,6 @@ + #include + #include + #include +-#include + #include + + #define EMLOG_DEVICE "/dev/emlog" +@@ -40,16 +39,16 @@ int main(int argc, char** argv) { + FILE *max_size_file = NULL; + uid_t uid = -1; + if (argc < 2 || argc > 5) { +- error(1 ,0, USAGE); ++ fprintf(stderr, USAGE); + } + file = argv[1]; + + max_size_file = fopen("/sys/module/emlog/parameters/emlog_max_size", "r"); + if (max_size_file == NULL) +- error(1, errno, "Emlog module not loaded\n"); ++ fprintf(stderr, "Emlog module not loaded\n"); + rc = fscanf(max_size_file, "%d", &emlog_max_size); + if (rc != 1) +- error(1, errno, "Unable to get emlog max size\n"); ++ fprintf(stderr, "Unable to get emlog max size\n"); + fclose(max_size_file); + max_size_file = NULL; + if (argc > 2 ) { +@@ -57,13 +56,13 @@ int main(int argc, char** argv) { + number = argv[2]; + size_of_buffer = strtol(number, &end_of_number, 10); + if (errno) { +- error(1, errno, "Invalid size provided\n" USAGE); ++ fprintf(stderr, "Invalid size provided\n" USAGE); + } + if (end_of_number == number) { +- error(1, 0, "Invalid size provided\n" USAGE); ++ fprintf(stderr, "Invalid size provided\n" USAGE); + } + if (size_of_buffer < 1 || size_of_buffer > emlog_max_size) { +- error(1, 0, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size); ++ fprintf(stderr, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size); + } + } + if (argc > 3 ) { +@@ -71,10 +70,10 @@ int main(int argc, char** argv) { + number = argv[3]; + mode = strtol(number, &end_of_number, 8); + if (errno) { +- error(1, errno, "Invalid mode provided\n" USAGE); ++ fprintf(stderr, "Invalid mode provided\n" USAGE); + } + if (end_of_number == number || S_IFMT & mode) { +- error(1, 0, "Invalid mode provided\n" USAGE); ++ fprintf(stderr, "Invalid mode provided\n" USAGE); + } + } + if (argc > 4 ) { +@@ -82,27 +81,27 @@ int main(int argc, char** argv) { + number = argv[4]; + uid = strtol(number, &end_of_number, 10); + if (errno) { +- error(1, errno, "Invalid uid provided\n" USAGE); ++ fprintf(stderr, "Invalid uid provided\n" USAGE); + } + if (end_of_number == number) { +- error(1, 0, "Invalid uid provided\n" USAGE); ++ fprintf(stderr, "Invalid uid provided\n" USAGE); + } + } + rc = stat(EMLOG_DEVICE, &emlog_stat); + if (rc == -1) { +- error(1, errno, "stat: " EMLOG_DEVICE); ++ fprintf(stderr, "stat: " EMLOG_DEVICE); + } + if (!S_ISCHR(emlog_stat.st_mode)) { +- error(1, 0, EMLOG_DEVICE " is not a valid emlog device\n"); ++ fprintf(stderr, EMLOG_DEVICE " is not a valid emlog device\n"); + } + rc = mknod(file, mode | S_IFCHR, makedev(major(emlog_stat.st_rdev),size_of_buffer)); + if (rc == -1) { +- error(1, errno, "mknod: %s", file); ++ fprintf(stderr, "mknod: %s", file); + } + if (uid != -1) { + rc = chown(file, uid, -1); + if (rc == -1) { +- error(1, errno, "chown: %s", file); ++ fprintf(stderr, "chown: %s", file); + } + } + printf("Log device %s created with buffer size of %d KiB\n", file, size_of_buffer); +-- +2.20.1 diff --git a/meta-oe/recipes-core/emlog/files/emlog.initd b/meta-oe/recipes-core/emlog/files/emlog.initd new file mode 100644 index 0000000000..361cf8029e --- /dev/null +++ b/meta-oe/recipes-core/emlog/files/emlog.initd @@ -0,0 +1,25 @@ +#!/bin/sh +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +[ -r /etc/default/emlog ] && . /etc/default/emlog + +do_start() { + : +} + +do_stop() { + nbcat /dev/emlog > /data/emlog +} + +case "$1" in + start) + do_start || exit $? + ;; + stop) + do_stop || exit $? + ;; + *) + echo "Usage: $0 {stop}" >&2 + exit 3 + ;; +esac -- cgit v1.2.3-54-g00ecf