Subject: Re: bug#34707: Failure to find the associated pdump file

From: Eli Zaretskii <[email-masked]>
Date: Sat, 02 Mar 2019 09:11:06 +0200

> From: Richard Stallman <[email-masked]>
> Date: Fri, 01 Mar 2019 22:27:54 -0500
> 
> I have a symlink from bin/emacs to emacs-git/build-feb-24/src/emacs.
> It contains master from Feb 24, built.
> 
> When I run that by typing `emacs', with some other directory current,
> it crashes: it gets error and exits when it tries to run
> tty-set-up-initial-frame-faces, from init_display.
> That is supposed to have been set up by associated Lisp files
> which have not been run.
> 
> I think the cause is that Emacs failed to find the pdump file.
> 
>     Apparently that failure gives no error message!
>     It must give an error message, since you can't get anything
>     like what you want if you don't get the pdump file.

It is supposed to give an error message saying that it could not load
the dump file because it was not built for this Emacs executable.
Could you please step with a debugger through the function load_pdump,
called from the 'main' function, and see why that doesn't happen for
you?

> There is an annoying secondary problem: it exits leaving the tty set
> up for Emacs (no echo).  It ought to restore the outside-Emacs
> terminal settings before exiting.

If Emacs already set up the terminal, then I think it did find the
pdump file and loaded it successfully, because loading the pdump file
happens before the call to init_display.  So I don't think I have a
clear idea of what happens on your system.

> The reason it fails to find the pdump file
> is that it fails to implement this case
> 
>     If the executable file is a symbolic link, the program can find the
>     link target and use its containing directory instead of the link's
>     containing directory.

That is correct (and we will have to implement that before Emacs 27
goes to print), but I think there's something else at work in your
case.  Stepping through the code with a debugger should clarify the
situation.

Also, can you show the details of the crash, like the signal and the
C-level backtrace?