From 3c125290d208e4c962635aa5af4951249af17804 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sat, 2 Jul 2022 18:42:11 +0200 Subject: [PATCH] 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). --- src/lread.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) 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); -- 2.39.2