]> git.eshelyaron.com Git - emacs.git/commitdiff
* Fix eln file hasing for symlink paths (bug#44701)
authorAndrea Corallo <akrl@sdf.org>
Wed, 18 Nov 2020 16:50:03 +0000 (17:50 +0100)
committerAndrea Corallo <akrl@sdf.org>
Wed, 18 Nov 2020 17:34:04 +0000 (18:34 +0100)
* src/comp.c (Fcomp_el_to_eln_filename): Call `file-truename'
in place of `expand-file-name' when available.

src/comp.c

index 5b0f58b1a4a5d73ce999c677c216dd2a9ce2709b..292f0e7e70717dc141104c2ad273a7f877d958fc 100644 (file)
@@ -4037,7 +4037,15 @@ If BASE-DIR is nil use the first entry in `comp-eln-load-path'.  */)
 {
   CHECK_STRING (filename);
 
-  filename = Fexpand_file_name (filename, Qnil);
+  /* Use `file-truename' or fall back to `expand-file-name' when the
+     first is not available (bug#44701).
+
+     `file-truename' is not available only for a short phases of the
+     bootstrap before file.el is loaded, given we do not symlink
+     inside the build directory this should work.  */
+  filename = NILP (Ffboundp (intern_c_string ("file-truename")))
+    ? Fexpand_file_name (filename, Qnil)
+    : CALL1I (file-truename, filename);
 
   if (NILP (Ffile_exists_p (filename)))
     xsignal1 (Qfile_missing, filename);