From bd1f20eea199d61a8b1db602392d8e17af624ff2 Mon Sep 17 00:00:00 2001
From: Lars Ingebrigtsen <larsi@gnus.org>
Date: Fri, 24 Jun 2022 10:43:41 +0200
Subject: [PATCH] Make debug-early-backtrace more resilient

* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Allow
outputting backtraces during bootstrap.
---
 lisp/emacs-lisp/debug-early.el | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/debug-early.el b/lisp/emacs-lisp/debug-early.el
index 4f1f4b81557..a301c73017e 100644
--- a/lisp/emacs-lisp/debug-early.el
+++ b/lisp/emacs-lisp/debug-early.el
@@ -45,7 +45,13 @@ of the build process."
       (let ((print-escape-newlines t)
             (print-escape-control-characters t)
             (print-escape-nonascii t)
-            (prin1 (if (fboundp 'cl-prin1) #'cl-prin1 #'prin1)))
+            (prin1 (if (and (fboundp 'cl-prin1)
+                            ;; If we're being called while
+                            ;; bootstrapping, we won't be able to load
+                            ;; cl-print.
+                            (require 'cl-print nil t))
+                       #'cl-prin1
+                     #'prin1)))
         (mapbacktrace
          #'(lambda (evald func args _flags)
              (let ((args args))
-- 
2.39.5