Static Compilation Issues
polos.ruetz at gmail.com
Fri Nov 27 18:54:10 UTC 2020
On 11/27/20, Ava Fox <dev at computerfox.xyz> wrote:
> drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system
> 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:
And don't forget to initialize every manually linked lib at program
startup, like so:
This approach should also work in your case (and is necessary because
the "contrib" libs are not integrated automatically).
> I'll submit a proper issue about it.
> 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
>> If not, please try add them as dependencies of your project. If that
>> work then please file an issue with a source code you've used and dump
>> the console of what is happening (including commands you issue).
>> Best regards,
>> 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 <dev at computerfox.xyz> 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
>>> 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
>>> but has not been created
>>> Exact packages being listed as not being found: :sb-bsd-sockets,
>>> :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate,
>>> 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
More information about the ecl-devel