Hi Pascal,

Thank you for your email,

1. You’re correct, I had to manually copy the libraries in to the app bundle, I just did something like:

 > cp /usr/local/lib/libeql5.1.dylib ./next.app/Contents/Frameworks/

2. I saw the message is within ECL, I found the exact file with the error message, it is located in ecl/src/c/unixint.d

I figured my problem was unrelated to the libraries, but I wasn’t 100% sure, just wanted to include all information,

3. I have no idea how to read assembly, I mean I can pick through it, but I won’t be able to really understand what’s going on, nor would I know how to even attach a debugger to the process, are there any other ways that I can examine what’s going on? A source file I can look at? Should I be looking for issues within ECL or EQL?

Thanks for your time,

On Sep 25, 2017, at 15:26, Pascal Bourguignon <pjb@informatimago.com> wrote:

On 25 Sep 2017, at 19:19, John Mercouris <jmercouris@gmail.com> wrote:

Hey everyone,

I’m John (the developer of 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):

> 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
@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:

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__