Subject: Re: bug#46790: 28.0.50; make install with native-comp branch

From: Eli Zaretskii <[email-masked]>
Date: Sat, 24 Apr 2021 19:00:30 +0300

> From: Thierry Volpiatto <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> Date: Sat, 24 Apr 2021 15:22:38 +0000
> 
> I rebuilded emacs starting at b064ddd3f60 and trying to copy a file
> with dired-async, it fails with error in process buffer "*emacs*" with:
> 
> emacs:
> /usr/local/sbin/emacs-28.0.50/../native-lisp/28.0.50-2f134e58/preloaded/window-0d1b8b93-581f9fcd.eln:
> cannot open shared object file: No such file or directory

That's too fast.  Let's make one step back.  Before you copy the file
with dired-async, you start the interactive Emacs session, right?  Or
do you start dired-async in batch mode directly from the shell prompt?

> Then I do the symlink (here from /usr/local/sbin/ directory):
> 
> sudo ln -s /usr/local/lib/emacs/28.0.50/native-lisp/ .
> 
> And now I can copy a file from dired-async with no error even without
> restarting emacs.

That's understandable with the code that was on the branch back then.
But the code have changed a lot (to support Emacs invocation via
symlinks), and it changed in a way that should have worked for you
even without the symlink to native-lisp/.  So what happens with the
branch HEAD if you start Emacs as "emacs -Q" when there's no symlink
in /usr/local/sbin/ to native-lisp/? does it start or does it crash or
does it display some error message and fails to start?

> If you want to reproduce you can bypass dired-async
> and use something like this much simpler which avoid possible errors
> from something else and need no configuration:
> 
>     (async-start
>      (lambda ()
>        (copy-file "~/.emacs.d/init.el" "~/tmp/")))
> 
> you should have now a buffer "*emacs*" with same contents as above.

This is a sexp you evaluate in a running Emacs session, right?  So how
did that running Emacs session start successfully if you say that you
needed the symlink to native-lisp/ ?

I'm sorry to ask so many questions, but I'm still in the dark wrt what
exactly do you do to reproduce the problem and what happens when you
do that.