Subject: bug#47558: 28.0.50; dlopen 'image not found' gccemacs native-lisp macos

From: Bryan O'Brien <[email-masked]>
Date: Tue, 6 Apr 2021 21:08:46 -0500

I’m not familiar with the protocols here, so I apologize if this is just noise.

Modifying my Makefile.in (as Alan provided) bypasses the dlopen error originally reported.

Thank you all.

> On Apr 6, 2021, at 16:33, Alan Third <[email-masked]> wrote:
> 
> On Tue, Apr 06, 2021 at 09:22:57PM +0000, Andrea Corallo wrote:
>> Alan Third <[email-masked]> writes:
>> 
>>> On Tue, Apr 06, 2021 at 07:26:16PM +0000, Andrea Corallo wrote:
>>>> 
>>>> Okay the log looks good AFAICT.
>>>> 
>>>> We are suggesting the eln to go in:
>>>> /Users/alan/src/emacs/native/nextstep/Emacs.app/Contents/MacOS/bin/
>>>> 
>>>> and the eln in:
>>>> /Users/alan/src/emacs/native/nextstep/Emacs.app/Contents/Resources/
>>> 
>>> OK, I think I see what's going on. The binary is installed in
>>> Emacs.app/Contents/MacOS, but the bindir is
>>> Emacs.app/Contents/MacOS/bin, so we're going one level too far up when
>>> generating the eln path.
>>> 
>>> "../../Resources/native-lisp/28.0.50-0f05d3d3/preloaded/misc-lang-7cb33d20-db3eb4ae.eln"
>>> 
>>>> If this does not help I suggest we apply the attached and re-bootstrap
>>>> to see if the 'rel-filename-from-install-bin' we are constructing is
>>>> correct.
>>> 
>>> I've attached the new bootstrap log in case I'm wrong and you can see
>>> something else.
>> 
>> I think your analysis is correct.
>> 
>> ATM we form BIN_DESTDIR as '$(DESTDIR)${bindir}/' (Makefile.in:419),
>> maybe we should use 'ns_appbindir' to form it?
> 
> Yup, that seems to have solved it. I'm doing this:
> 
> modified   Makefile.in
> @@ -420,8 +420,13 @@ lib lib-src lisp nt:
> dirstate = .git/logs/HEAD
> VCSWITNESS = $(if $(wildcard $(srcdir)/$(dirstate)),$$(srcdir)/../$(dirstate))
> src: Makefile
> +ifeq (${ns_self_contained},no)
> 	$(MAKE) -C $@ VCSWITNESS='$(VCSWITNESS)' BIN_DESTDIR='$(DESTDIR)${bindir}/' \
> 		 ELN_DESTDIR='$(ELN_DESTDIR)' all
> +else
> +	$(MAKE) -C $@ VCSWITNESS='$(VCSWITNESS)' BIN_DESTDIR='${ns_appbindir}/' \
> +		 ELN_DESTDIR='$(ELN_DESTDIR)' all
> +endif
> 
> blessmail: Makefile src
> 	$(MAKE) -C lib-src maybe-blessmail
> 
> 
> which works, but I don't know much about makefiles so there may be a
> neater way to do it.
> 
> --
> Alan Third