ECL + EQL Standalone Binary

Pascal Bourguignon pjb at informatimago.com
Mon Sep 25 20:26:23 UTC 2017



> On 25 Sep 2017, at 19:19, John Mercouris <jmercouris at gmail.com> wrote:
> 
> Hey everyone,
> 
> I’m John (the developer of nEXT (https://github.com/neXT-Browser/nEXT/ <https://github.com/neXT-Browser/nEXT/>),
> 
> I’m trying to produce a standalone binary. I managed to create a “.app” bundle of my application, and then I linked the libraries ecl and eql following this approach (https://stackoverflow.com/questions/2809930/macdeployqt-and-third-party-libraries <https://stackoverflow.com/questions/2809930/macdeployqt-and-third-party-libraries>):
> 
> > install_name_tool -change libeql5.1.dylib @executable_path/../Frameworks/libeql5.1.dylib next.app/Contents/MacOS/next
> > install_name_tool -change @libdir@/libecl.16.1.dylib @executable_path/../Frameworks/libecl.16.1.dylib next.app/Contents/MacOS/next
> 
> otool then reveals that everything was successful:
> > otool -L next.app/Contents/MacOS/next
> next.app/Contents/MacOS/next:
> 	@executable_path/../Frameworks/libecl.16.1.dylib (compatibility version 16.1.3, current version 0.0.0)
> 	@executable_path/../Frameworks/libeql5.1.dylib (compatibility version 1.0.0, current version 1.0.0)
> 
> 
> Anyways, long story short, I got the following terminal output when I try to launch my new app binary:
> <Terminal Output>
> 
> In order to minimize the possibility of mistakes in my program, misusage of QT etc, I’ve created a branch where I’ve included only 2 lisp files, a package file, and a “base” file:
> 
> https://github.com/nEXT-Browser/nEXT/tree/compile/next <https://github.com/nEXT-Browser/nEXT/tree/compile/next>
> 
> Any ideas on how to proceed would be very useful, thank you,


It looks like the error, which is:


Internal or unrecoverable error in:
Got signal before environment was installed on our thread
  [2: No such file or directory]

;;; ECL C Backtrace
;;; 0   libecl.16.1.dylib                   0x00000001031d8512 si_dump_c_backtrace + 66
;;; 1   libecl.16.1.dylib                   0x00000001031cac15 ecl_internal_error + 101
;;; 2   libecl.16.1.dylib                   0x00000001031f0c30 deferred_signal_handler + 0
;;; 3   libecl.16.1.dylib                   0x00000001031f092d sigsegv_handler + 381
;;; 4   libsystem_platform.dylib            0x00007fffb48d9b3a _sigtramp + 26
;;; 5   ???                                 0x000000000000ffff 0x0 + 65535
;;; 6   libecl.16.1.dylib                   0x0000000105072271 cl_boot + 1025
;;; 7   next                                0x00000001030bb457 main + 23
;;; 8   libdyld.dylib                       0x00007fffb46ca235 start + 1
fish: “/Users/jmercouris/Projects/Next…” terminated by signal SIGABRT (Abort)


is unrelated to the libraries. 

To be sure, have a look at the source of cl_boot (around assembly offset 1025) to see what it’s doing there.
(You may use lldb to disassemble cl_boot and see what function is called around offset 1025, to help you locate the source of the error).



(Concerning the warnings, did you copy the frameworks to the application package?)

-- 
__Pascal J. Bourguignon__

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20170925/abc3e67c/attachment.html>


More information about the ecl-devel mailing list