From: Lars Ingebrigtsen Date: Sat, 2 Jul 2022 16:42:11 +0000 (+0200) Subject: Add sanity check for Emacsen distributed without .el files X-Git-Tag: emacs-29.0.90~1447^2~1258 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3c125290d208e4c962635aa5af4951249af17804;p=emacs.git Add sanity check for Emacsen distributed without .el files * src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen distributed without .el files (bug#48342). --- diff --git a/src/lread.c b/src/lread.c index ef2bb036e35..759cc08946d 100644 --- a/src/lread.c +++ b/src/lread.c @@ -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);