Subject: bug#46790: 28.1; Bug#46790 reintroduced; Was make install with native-comp

From: Eli Zaretskii <[email-masked]>
Date: Sun, 26 Jun 2022 17:52:59 +0300

> From: Thierry Volpiatto <[email-masked]>
> Cc: [email-masked]
> Date: Sun, 26 Jun 2022 14:19:32 +0000
> 
> >> > Error using execdir /usr/local/sbin/emacs-29.0.50/:
> >> > emacs: /usr/local/sbin/emacs-29.0.50/../native-lisp/29.0.50-ca991e8a/preloaded/window-0d1b8b93-0c17e2d3.eln: cannot open shared object file: No such file or directory
> >> 
> >> Please tell:
> >> 
> >>  . what is the directory where you installed the Emacs binary, the one
> >>    invoked when you start Emacs "normally"
> >>  . if that binary is a symlink, how is the symlink defined (is the
> >>    file itself a symlink or is the directory a symlink?), and where
> >>    does that symlink point
> >>  . what is the directory where you have the pdumper file, and what is
> >>    its name
> >>  . if the pdumper file is itself a symlink, please provide the same
> >>    details as for the Emacs binary
> >>  . where is the native-lisp/ directory with the *.eln files produced
> >>    during the build
> >> 
> >> In each case, please show the full absolute name of the files I'm
> >> asking about.
> >
> > In addition, please tell how you configured Emacs, i.e. please show
> > the full command line with which you invoked the configure script.
> 
> ./configure CFLAGS='-O8' --with-mailutils --with-cairo --with-native-compilation

I think that's the problem: installing the binary in a directory other
than $execdir/bin needs to configure with --bindir accordingly set.
Emacs built with native compilation records at build time the way to
get to native-lisp/ directory starting from the directory where the
Emacs binary is installed, so you must use --bindir at configure time
to let the build process know where the binary will be installed.  It
is no longer enough to set bindir only at "make install" time.

Emacs 28.1, as released, could work without --bindir, but that was at
a price of effectively dropping the support for --bindir
configure-time switch, something I don't want to do, since it's a
regression.

So please try re-configuring with

  ./configure CFLAGS='-O8' --bindir=/usr/local/sbin/emacs-29.0.50 --with-mailutils --with-cairo --with-native-compilation

and tell if the problem is solved by that after you install the
resulting binary.

Thanks.