]> git.eshelyaron.com Git - emacs.git/commitdiff
Add sanity check for Emacsen distributed without .el files
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 2 Jul 2022 16:42:11 +0000 (18:42 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 2 Jul 2022 16:42:36 +0000 (18:42 +0200)
* src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen
distributed without .el files (bug#48342).

src/lread.c

index ef2bb036e3552d2511c7de6d7ed3ae3700ecfb9a..759cc08946dfd15b3147e6d81a71430a768ab791 100644 (file)
@@ -1735,13 +1735,24 @@ maybe_swap_for_eln (bool no_native, Lisp_Object *filename, int *fd,
        {
          if (!NILP (find_symbol_value (
                       Qnative_comp_warning_on_missing_source)))
-           call2 (intern_c_string ("display-warning"),
-                  Qcomp,
-                  CALLN (Fformat,
-                         build_string ("Cannot look-up eln file as no source "
-                                       "file was found for %s"),
-                         *filename));
-         return;
+           {
+             /* If we have an installation without any .el files,
+                there's really no point in giving a warning here,
+                because that will trigger a cascade of warnings.  So
+                just do a sanity check and refuse to do anything if we
+                can't find even central .el files.  */
+             if (NILP (Flocate_file_internal (build_string ("simple.el"),
+                                              Vload_path,
+                                              Qnil, Qnil)))
+               return;
+             call2 (intern_c_string ("display-warning"),
+                    Qcomp,
+                    CALLN (Fformat,
+                           build_string ("Cannot look up eln file as "
+                                         "no source file was found for %s"),
+                           *filename));
+             return;
+           }
        }
     }
   Lisp_Object eln_rel_name = Fcomp_el_to_eln_rel_filename (src_name);