Subject: bug#46256: [feature/native-comp] AOT eln files ignored if run from build tree

From: Eli Zaretskii <[email-masked]>
Date: Sat, 06 Mar 2021 19:47:14 +0200

> Date: Sat, 06 Mar 2021 17:35:15 +0200
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > The reproducer file is attached.  It is large, so I compressed it.
> > Let me know if you see there anything that could explain the problem.
> 
> More info: if I set comp-speed to 0 or 1, the compilation of subr-x.el
> doesn't crash.

Here's the smallest part of subr-x which causes the crash:

;;; subr-x.el --- extra Lisp functions  -*- lexical-binding:t -*-

(defun internal--build-bindings (bindings)
  "Check and build conditional value forms for BINDINGS."
  (let ((prev-var t))
    (mapcar (lambda (binding)
              (let ((binding (internal--build-binding binding prev-var)))
                (setq prev-var (car binding))
                binding))
            bindings)))

Interestingly, if I remove the first line, there's no crash.  So
lexical-binding has something to do with this.

I cannot see what could trigger the crash.  The fact that 'binding' is
used both as an argument and as the variable which is bound to the
return value, perhaps?

Let me know if you want the C reproducer for this minimal file.

Thanks.