Signed-off-by: Alexander Kanavin <a...@linutronix.de> --- ...dd-support-for-excluding-a-directory.patch | 172 ------------------ .../kmod/{kmod_29.bb => kmod_30.bb} | 3 +- 2 files changed, 1 insertion(+), 174 deletions(-) delete mode 100644 meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch rename meta/recipes-kernel/kmod/{kmod_29.bb => kmod_30.bb} (96%)
diff --git a/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch b/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch deleted file mode 100644 index ea0570af2b..0000000000 --- a/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch +++ /dev/null @@ -1,172 +0,0 @@ -From f50e2d67575ac5f256fb853ca9d29aeac92d9a57 Mon Sep 17 00:00:00 2001 -From: Saul Wold <saul.w...@windriver.com> -Date: Thu, 31 Mar 2022 14:56:28 -0700 -Subject: [PATCH] depmod: Add support for excluding a directory - -This adds support to depmod to enable a new exclude directive in -the depmod.d/*.conf configuration file. Currently depmod -already excludes directories named source or build. This change -will allow additional directories like .debug to be excluded also -via a new exclude directive. - -depmod.d/exclude.conf example: -exclude .debug - -Upstream-Status: Accepted - -Signed-off-by: Saul Wold <saul.w...@windriver.com> -[ Fix warnings and make should_exclude_dir() return bool ] -Signed-off-by: Lucas De Marchi <lucas.demar...@intel.com> ---- - man/depmod.d.xml | 14 ++++++++++ - tools/depmod.c | 66 +++++++++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 76 insertions(+), 4 deletions(-) - -diff --git a/man/depmod.d.xml b/man/depmod.d.xml -index b315e93..76548e9 100644 ---- a/man/depmod.d.xml -+++ b/man/depmod.d.xml -@@ -131,6 +131,20 @@ - </para> - </listitem> - </varlistentry> -+ <varlistentry> -+ <term>exclude <replaceable>excludedir</replaceable> -+ </term> -+ <listitem> -+ <para> -+ This specifies the trailing directories that will be excluded -+ during the search for kernel modules. -+ </para> -+ <para> -+ The <replaceable>excludedir</replaceable> is the trailing directory -+ to exclude -+ </para> -+ </listitem> -+ </varlistentry> - </variablelist> - </refsect1> - -diff --git a/tools/depmod.c b/tools/depmod.c -index 07a35ba..4117dd1 100644 ---- a/tools/depmod.c -+++ b/tools/depmod.c -@@ -458,6 +458,11 @@ struct cfg_external { - char path[]; - }; - -+struct cfg_exclude { -+ struct cfg_exclude *next; -+ char exclude_dir[]; -+}; -+ - struct cfg { - const char *kversion; - char dirname[PATH_MAX]; -@@ -469,6 +474,7 @@ struct cfg { - struct cfg_override *overrides; - struct cfg_search *searches; - struct cfg_external *externals; -+ struct cfg_exclude *excludes; - }; - - static enum search_type cfg_define_search_type(const char *path) -@@ -580,6 +586,30 @@ static void cfg_external_free(struct cfg_external *ext) - free(ext); - } - -+static int cfg_exclude_add(struct cfg *cfg, const char *path) -+{ -+ struct cfg_exclude *exc; -+ size_t len = strlen(path); -+ -+ exc = malloc(sizeof(struct cfg_exclude) + len + 1); -+ if (exc == NULL) { -+ ERR("exclude add: out of memory\n"); -+ return -ENOMEM; -+ } -+ memcpy(exc->exclude_dir, path, len + 1); -+ -+ DBG("exclude add: %s\n", path); -+ -+ exc->next = cfg->excludes; -+ cfg->excludes = exc; -+ return 0; -+} -+ -+static void cfg_exclude_free(struct cfg_exclude *exc) -+{ -+ free(exc); -+} -+ - static int cfg_kernel_matches(const struct cfg *cfg, const char *pattern) - { - regex_t re; -@@ -657,6 +687,11 @@ static int cfg_file_parse(struct cfg *cfg, const char *filename) - } - - cfg_external_add(cfg, dir); -+ } else if (streq(cmd, "exclude")) { -+ const char *sp; -+ while ((sp = strtok_r(NULL, "\t ", &saveptr)) != NULL) { -+ cfg_exclude_add(cfg, sp); -+ } - } else if (streq(cmd, "include") - || streq(cmd, "make_map_files")) { - INF("%s:%u: command %s not implemented yet\n", -@@ -857,6 +892,12 @@ static void cfg_free(struct cfg *cfg) - cfg->externals = cfg->externals->next; - cfg_external_free(tmp); - } -+ -+ while (cfg->excludes) { -+ struct cfg_exclude *tmp = cfg->excludes; -+ cfg->excludes = cfg->excludes->next; -+ cfg_exclude_free(tmp); -+ } - } - - -@@ -1229,6 +1270,25 @@ add: - return 0; - } - -+static bool should_exclude_dir(const struct cfg *cfg, const char *name) -+{ -+ struct cfg_exclude *exc; -+ -+ if (name[0] == '.' && (name[1] == '\0' || -+ (name[1] == '.' && name[2] == '\0'))) -+ return true; -+ -+ if (streq(name, "build") || streq(name, "source")) -+ return true; -+ -+ for (exc = cfg->excludes; exc != NULL; exc = exc->next) { -+ if (streq(name, exc->exclude_dir)) -+ return true; -+ } -+ -+ return false; -+} -+ - static int depmod_modules_search_dir(struct depmod *depmod, DIR *d, size_t baselen, struct scratchbuf *s_path) - { - struct dirent *de; -@@ -1240,11 +1300,9 @@ static int depmod_modules_search_dir(struct depmod *depmod, DIR *d, size_t basel - size_t namelen; - uint8_t is_dir; - -- if (name[0] == '.' && (name[1] == '\0' || -- (name[1] == '.' && name[2] == '\0'))) -- continue; -- if (streq(name, "build") || streq(name, "source")) -+ if (should_exclude_dir(depmod->cfg, name)) - continue; -+ - namelen = strlen(name); - if (scratchbuf_alloc(s_path, baselen + namelen + 2) < 0) { - err = -ENOMEM; --- -2.31.1 - diff --git a/meta/recipes-kernel/kmod/kmod_29.bb b/meta/recipes-kernel/kmod/kmod_30.bb similarity index 96% rename from meta/recipes-kernel/kmod/kmod_29.bb rename to meta/recipes-kernel/kmod/kmod_30.bb index 32dc49c126..8eb83efe6d 100644 --- a/meta/recipes-kernel/kmod/kmod_29.bb +++ b/meta/recipes-kernel/kmod/kmod_30.bb @@ -15,12 +15,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ " inherit autotools bash-completion gtk-doc pkgconfig manpages update-alternatives -SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1" +SRCREV = "5d46434a63ae0160150a0efdde1914873697e273" SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master \ file://depmod-search.conf \ file://avoid_parallel_tests.patch \ - file://0001-depmod-Add-support-for-excluding-a-directory.patch \ " S = "${WORKDIR}/git" -- 2.30.2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#167694): https://lists.openembedded.org/g/openembedded-core/message/167694 Mute This Topic: https://lists.openembedded.org/mt/92202174/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-