Static Compilation Issues

PR polos.ruetz at gmail.com
Fri Nov 27 18:54:10 UTC 2020


On 11/27/20, Ava Fox <dev at computerfox.xyz> 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 <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
>>> (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
>>
>
>



More information about the ecl-devel mailing list