[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#55741: Getting an error when running the Emacs 28.1 binary that I bu
From: |
Eli Zaretskii |
Subject: |
bug#55741: Getting an error when running the Emacs 28.1 binary that I built from source |
Date: |
Sat, 11 Jun 2022 13:54:01 +0300 |
Ping!
Could you please try the fix I posted? I'd like to install it for
Emacs 28.2.
> Cc: 55741@debbugs.gnu.org
> Date: Thu, 02 Jun 2022 10:02:42 +0300
> From: Eli Zaretskii <eliz@gnu.org>
>
> > Date: Tue, 31 May 2022 19:50:42 +0000
> > From: cinnaroll45 <cinnaroll45@proton.me>
> > Cc: 55741@debbugs.gnu.org
> >
> > > The --bindir switch could be the problem: as you see from the error
> > > message, Emacs 28.1 thinks its binary is in /home/user/emacs/bin, not
> > > in /home/user/bin. So my suggestion is to reconfigure without the
> > > --bindir switch, as I don't think this is currently supported for the
> > > build with native-compilation.
> >
> > Removing the --bindir switch solved the issue for me. Everything gets
> > installed to the
> > expected location and the Emacs binary runs.
> >
> > > And in addition, please show the full absolute file name of the
> > > emacs.pdmp file, so we could know in which directory it is installed on
> > > your system.
> >
> > The location of the pdmp file was:
> > /home/user/emacs/libexec/emacs/28.1/x86_64-pc-linux-gnu/emacs.pdmp
> >
> > > Can you show the full absolute file name of the file
> > > window-0d1b8b93-7ef4271a.eln with
> > > this installation? In which directory is it installed by "make install"?
> >
> > I couldn't expand the absolute location of `window-0d1b8b93-7ef4271a.eln`.
> > The error message seemed to
> > indicate that it was looking for it under the directory where `emacs.pdmp`
> > is, however there were no
> > directories present in that path. Just the pdmp file and three other
> > binaries.
> >
> > Thank you for helping out!
>
> Thanks, but could you please test a possible fix for the original
> problem? I'd like us to keep supporting the --bindir configure-time
> option, as we didn't intend dropping its support in Emacs 28.
>
> So could you please re-configure Emacs 28.1 with your original
> options, including the separate --bindir, and then rebuild it with the
> patch below, install it by "make install", and see if Emacs now starts
> up correctly? If it doesn't start (or doesn't build), please show any
> error messages you see. TIA.
>
> diff --git a/src/emacs.c b/src/emacs.c
> index ccc0dd2..0a90b09 100644
> --- a/src/emacs.c
> +++ b/src/emacs.c
> @@ -940,20 +940,24 @@ load_pdump (int argc, char **argv)
> sprintf (dump_file, "%s%c%s%s",
> path_exec, DIRECTORY_SEP, argv0_base, suffix);
> #if !defined (NS_SELF_CONTAINED)
> - /* Assume the Emacs binary lives in a sibling directory as set up by
> - the default installation configuration. */
> - const char *go_up = "../../../../bin/";
> - needed += (strip_suffix ? strlen (strip_suffix) : 0)
> - - strlen (suffix) + strlen (go_up);
> - if (exec_bufsize < needed)
> - {
> - xfree (emacs_executable);
> - emacs_executable = xpalloc (NULL, &exec_bufsize, needed - exec_bufsize,
> - -1, 1);
> - }
> - sprintf (emacs_executable, "%s%c%s%s%s",
> - path_exec, DIRECTORY_SEP, go_up, argv0_base,
> - strip_suffix ? strip_suffix : "");
> + if (!(emacs_executable && *emacs_executable))
> + {
> + /* If we didn't find the Emacs binary, assume that it lives in a
> + sibling directory as set up by the default installation
> + configuration. */
> + const char *go_up = "../../../../bin/";
> + needed += (strip_suffix ? strlen (strip_suffix) : 0)
> + - strlen (suffix) + strlen (go_up);
> + if (exec_bufsize < needed)
> + {
> + xfree (emacs_executable);
> + emacs_executable = xpalloc (NULL, &exec_bufsize,
> + needed - exec_bufsize, -1, 1);
> + }
> + sprintf (emacs_executable, "%s%c%s%s%s",
> + path_exec, DIRECTORY_SEP, go_up, argv0_base,
> + strip_suffix ? strip_suffix : "");
> + }
> #endif
> result = pdumper_load (dump_file, emacs_executable);
>
>
>
>
>