From: Andrew Burgess Date: Wed, 30 Jul 2014 16:41:15 +0000 (+0100) Subject: When computing lispdir, don't load emacs site wide init file. X-Git-Tag: v1.15~8^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c72ada8d048c6d92a6fd323f6647c8e090dd7a6;p=thirdparty%2Fautomake.git When computing lispdir, don't load emacs site wide init file. When computing the lispdir emacs was previously invoked with the '-q' option to avoid loading the users initialisation files, however, the site wide initialisation file was still loaded, in some cases this can cause emacs to hang, with the result that a configure can also hang. The lisp code that aclocal causes to be executed reduces the load-path list (in emacs) to empty. The load-path is used by emacs to find packages which it wants to load. Currently, if emacs tries to auto load a package during shut down, and the package is not found, then emacs will hang. This does seem like an emacs bug, but protecting against this in aclocal is simply a case of not loading the site wide initialisation file. In this patch then the '-q' option to emacs is replaced with '-Q', this has the same, the '-Q' option is similar to '-q --no-site-file --no-splash'. * doc/automake.texi (Hard-Coded Install Paths): Update explanation of emacs code used to get lispdir. * m4/lispdir.m4 (AM_PATH_LISPDIR): Update emacs flags. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini --- diff --git a/doc/automake.texi b/doc/automake.texi index 913dee4f0..e690d52b7 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -12991,7 +12991,7 @@ instance, here is how @code{AM_PATH_LISPDIR} (@pxref{Emacs Lisp}) computes @samp{$(lispdir)}: @example -$EMACS -batch -q -eval '(while load-path +$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' >conftest.out lispdir=`sed -n diff --git a/m4/lispdir.m4 b/m4/lispdir.m4 index 4e0c9140d..ed2e224c2 100644 --- a/m4/lispdir.m4 +++ b/m4/lispdir.m4 @@ -34,7 +34,7 @@ AC_DEFUN([AM_PATH_LISPDIR], # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. - AC_RUN_LOG([$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out]) + AC_RUN_LOG([$EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out]) am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \