Re: Static Compilation Issues
Ava Fox <[email protected]> Fri, 27 Nov 2020 14:13:49 -0500
| Newsgroups | gmane.lisp.ecl.general |
|---|---|
| Message-ID | <[email protected]> |
Still running into some issues, but this feels promising and gives me something to explore. Thanks Paul! - Ava On 27/11/2020 13:54, PR wrote: > On 11/27/20, Ava Fox <[email protected]> wrote: >> Daniel, >> >> drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system >> definition. >> >> I did try and add those systems into the example system definition, but >> I ended up with the same result: lisp compiles fine, gcc compiles fine, >> but then the static executable throws the same errors. > FWIW: on iOS everything needs to be linked statically, and I ended up > linking all the ECL "contrib" libs (*.a) manually, see this line: > https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/repl.pro#L7 > > And don't forget to initialize every manually linked lib at program > startup, like so: > https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/build/main.cpp#L60 > > This approach should also work in your case (and is necessary because > the "contrib" libs are not integrated automatically). > > Paul > > > > > >> I'll submit a proper issue about it. >> >> Thanks, >> >> Ava >> >> >> On 26/11/2020 06:07, Daniel Kochmański wrote: >>> Hey Ava, >>> >>> are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and >>> asdf? >>> If not, please try add them as dependencies of your project. If that >>> doesn't >>> work then please file an issue with a source code you've used and dump >>> from >>> the console of what is happening (including commands you issue). >>> >>> Best regards, >>> Daniel >>> >>> >>> -- >>> Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland >>> TurtleWare - Daniel Kochmański | www.turtleware.eu >>> >>> "Be the change that you wish to see in the world." - Mahatma Gandhi >>> >>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ >>> On Thursday, 26 November 2020 00:46, Ava Fox <[email protected]> wrote: >>> >>>> I've been learning how to create static executables with ECL and was >>>> looking at the provided example that uses an ASDF system that has >>>> defined dependencies >>>> (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). >>>> When following the readme, and building it as-is with Quicklisp fetching >>>> alexandria (the only dependency specified) it works fine. >>>> >>>> However, when I change that dependency to include a project such as >>>> drakma it compiles fine but then throws SIMPLE-ERROR when I run the >>>> resulting static executable, saying that various uiop/asdf packages and >>>> sb-bsd-sockets cannot be found. >>>> >>>> Exact error: >>>> >>>> Condition of type: SIMPLE-ERROR >>>> Package ((SB-BSD-SOCKETS . #<SB-BSD-SOCKETS package>)) referenced in >>>> compiled file >>>> NIL >>>> but has not been created >>>> >>>> Exact packages being listed as not being found: :sb-bsd-sockets, >>>> :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, >>>> :asdf/lisp-action >>>> >>>> Any help or ideas would be appreciated, I am just unsure of where to go >>>> from here. >>>> >>>> ECL version: 20.4.24 >>>> >>>> Operating System: Linux Kernel 5.8.18 >>