Eli Zaretskii writes: >> From: Thierry Volpiatto >> Cc: akrl@sdf.org, psainty@orcon.net.nz, 46790@debbugs.gnu.org >> 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? Yes from PATH with emacs which is a symlink in /usr/local/bin pointing to /usr/local/sbin/emacs-28.0.50/emacs-28.0.50. And yes emacs starts fine like this. And if I start it from /usr/local/sbin/emacs-28.0.50/emacs-28.0.50 with ./emacs it fails to start with always the same error: 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 I also don't understand why emacs start from /usr/local/bin/emacs (the symlink) but not directly from the true directory /usr/local/sbin/emacs-28.0.50/emacs-28.0.50 with ./emacs. > Or do you start dired-async in batch mode directly from the shell > prompt? No. >> 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? Yes it starts. But then fails with dired-async with and without the native-lisp/ symlink. >> 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? Yes. > So how did that running Emacs session start successfully if you say > that you needed the symlink to native-lisp/ ? As said above it starts fine from /usr/local/bin but fails from /usr/local/sbin/emacs-28.0.50/emacs-28.0.50 and running ./emacs. > 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. No problems. -- Thierry