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

From: Richard Stallman <[email-masked]>
Date: Fri, 01 Mar 2019 22:27:54 -0500

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

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.

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.

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.

which is implemented for associated Lisp files in this code in emacs.c

	  /* If the Emacs executable is actually a link,
	     next try the dir that the link points into.  */
	  tem = Ffile_symlink_p (name);
	  if (!NILP (tem))
	    {
	      name = Fexpand_file_name (tem, dir);
	      dir = Ffile_name_directory (name);
	    }
	  else
	    break;

but that is not implemented for pdump files.

-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)