at v206 4.6 kB view raw
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) {