Static Compilation Issues

Ava Fox dev at computerfox.xyz
Fri Nov 27 19:13:49 UTC 2020


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