1commit cf2c95edb7918bc658f6cae93793c1949fc9cb6e
2Author: David Guibert <david.guibert@gmail.com>
3Date: Fri Aug 5 14:20:12 2011 +0200
4
5 introduce module-dir
6
7diff --git a/depmod.c b/depmod.c
8index a1d2f8c..9362a35 100644
9--- a/depmod.c
10+++ b/depmod.c
11@@ -48,9 +48,6 @@
12
13 #include "testing.h"
14
15-#ifndef MODULE_DIR
16-#define MODULE_DIR "/lib/modules/"
17-#endif
18
19 #ifndef MODULE_BUILTIN_KEY
20 #define MODULE_BUILTIN_KEY "built-in"
21@@ -1516,6 +1513,7 @@ static int parse_config_file(const char *filename,
22 char *line;
23 unsigned int linenum = 0;
24 FILE *cfile;
25+ char *module_dir;
26
27 cfile = fopen(filename, "r");
28 if (!cfile) {
29@@ -1525,6 +1523,10 @@ static int parse_config_file(const char *filename,
30 return 0;
31 }
32
33+ if((module_dir = getenv("MODULE_DIR")) == NULL) {
34+ module_dir = "/lib/modules/";
35+ }
36+
37 while ((line = getline_wrapped(cfile, &linenum)) != NULL) {
38 char *ptr = line;
39 char *cmd, *modname;
40@@ -1550,7 +1552,7 @@ static int parse_config_file(const char *filename,
41 continue;
42 }
43 nofail_asprintf(&dirname, "%s%s%s/%s", basedir,
44- MODULE_DIR, kernelversion, search_path);
45+ module_dir, kernelversion, search_path);
46 len = strlen(dirname);
47 *search = add_search(dirname, len, *search);
48 free(dirname);
49@@ -1565,7 +1567,7 @@ static int parse_config_file(const char *filename,
50 continue;
51
52 nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir,
53- MODULE_DIR, kernelversion, subdir, modname);
54+ module_dir, kernelversion, subdir, modname);
55
56 *overrides = add_override(pathname, *overrides);
57 free(pathname);
58@@ -1737,6 +1739,7 @@ int main(int argc, char *argv[])
59 char *basedir = "", *dirname, *version;
60 char *system_map = NULL, *module_symvers = NULL;
61 int i;
62+ char *module_dir;
63 const char *config = NULL;
64
65 if (native_endianness() == 0)
66@@ -1832,7 +1835,11 @@ int main(int argc, char *argv[])
67 if (optind == argc)
68 all = 1;
69
70- nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version);
71+ if((module_dir = getenv("MODULE_DIR")) == NULL) {
72+ module_dir = "/lib/modules/";
73+ }
74+
75+ nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version);
76
77 if (maybe_all) {
78 if (!doing_stdout && !depfile_out_of_date(dirname))
79@@ -1850,7 +1857,7 @@ int main(int argc, char *argv[])
80 size_t len;
81
82 nofail_asprintf(&dirname, "%s%s%s/updates", basedir,
83- MODULE_DIR, version);
84+ module_dir, version);
85 len = strlen(dirname);
86 search = add_search(dirname, len, search);
87 }
88diff --git a/modinfo.c b/modinfo.c
89index 1dd8469..67b1041 100644
90--- a/modinfo.c
91+++ b/modinfo.c
92@@ -19,9 +19,6 @@
93 #include "zlibsupport.h"
94 #include "testing.h"
95
96-#ifndef MODULE_DIR
97-#define MODULE_DIR "/lib/modules"
98-#endif
99
100 struct param
101 {
102@@ -193,6 +190,11 @@ static struct elf_file *grab_module(const char *name,
103 struct utsname buf;
104 char *depname, *p, *moddir;
105 struct elf_file *module;
106+ char *module_dir;
107+
108+ if((module_dir = getenv("MODULE_DIR")) == NULL) {
109+ module_dir = "/lib/modules/";
110+ }
111
112 if (strchr(name, '.') || strchr(name, '/')) {
113 module = grab_elf_file(name);
114@@ -207,9 +209,9 @@ static struct elf_file *grab_module(const char *name,
115 kernel = buf.release;
116 }
117 if (strlen(basedir))
118- nofail_asprintf(&moddir, "%s/%s/%s", basedir, MODULE_DIR, kernel);
119+ nofail_asprintf(&moddir, "%s/%s/%s", basedir, module_dir, kernel);
120 else
121- nofail_asprintf(&moddir, "%s/%s", MODULE_DIR, kernel);
122+ nofail_asprintf(&moddir, "%s/%s", module_dir, kernel);
123
124 /* Search for it in modules.dep. */
125 nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep");
126diff --git a/modprobe.c b/modprobe.c
127index 5464f45..d9fbf9d 100644
128--- a/modprobe.c
129+++ b/modprobe.c
130@@ -86,10 +86,6 @@ typedef enum
131
132 } modprobe_flags_t;
133
134-#ifndef MODULE_DIR
135-#define MODULE_DIR "/lib/modules"
136-#endif
137-
138 /**
139 * print_usage - output the prefered program usage
140 *
141@@ -2136,6 +2132,7 @@ int main(int argc, char *argv[])
142 struct modprobe_conf conf = {};
143
144 recursion_depth = 0;
145+ char *module_dir = NULL;
146
147 /* Prepend options from environment. */
148 argv = merge_args(getenv("MODPROBE_OPTIONS"), argv, &argc);
149@@ -2233,7 +2230,11 @@ int main(int argc, char *argv[])
150 if (argc < optind + 1 && !dump_config && !list_only)
151 print_usage(argv[0]);
152
153- nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release);
154+ if((module_dir = getenv("MODULE_DIR")) == NULL) {
155+ module_dir = "/lib/modules";
156+ }
157+
158+ nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release);
159
160 /* Old-style -t xxx wildcard? Only with -l. */
161 if (list_only) {