summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-03-14 23:11:01 +0100
committerLudovic Courtès <ludo@gnu.org>2019-08-16 23:00:27 +0200
commitc85ccf60bfe4ef58110bb61f40df7f526d2a5735 (patch)
tree207eff0899e1b934b1f5513fa051f7ee4ebdd4ef /gnu/system
parente1a9a7f2755dc23e1f4635c8aee45e1467c01619 (diff)
downloadguix-c85ccf60bfe4ef58110bb61f40df7f526d2a5735.tar.gz
linux-modules: Define and use a module name database.
Fixes <https://bugs.gnu.org/34902>.
Reported by Julien Lepiller <julien@lepiller.eu>.

* gnu/build/linux-modules.scm (module-formal-name): New procedure.
(load-linux-modules-from-directory)[lookup-module]: Remove.
[module-name->file-name]: New variable.  Use it.
(module-name->file-name/guess, module-name-lookup)
(write-module-name-database): New procedures.
* gnu/system/linux-initrd.scm (flat-linux-module-directory): Call
'write-module-name-database'.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/linux-initrd.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index c90b87c023..7e9563b923 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -133,7 +133,10 @@ MODULES and taken from LINUX."
                       (copy-file module
                                  (string-append #$output "/"
                                                 (basename module))))
-                    (delete-duplicates modules)))))
+                    (delete-duplicates modules))
+
+          ;; Hyphen or underscore?  This database tells us.
+          (write-module-name-database #$output))))
 
   (computed-file "linux-modules" build-exp))