New comment by tornaria on void-packages repository https://github.com/void-linux/void-packages/issues/46293#issuecomment-1761322740 Comment: The requirement for us is: - running `maxima` standalone binary works (of course) - in ecl, the following works: `(require :maxima)` This is achieved by creating both a binary executable `maxima` and a binary module `maxima.fas`. They are both installed in `/usr/lib/maxima/5.47.0/binary-ecl/`. This is supported by maxima just fine. However, the two files produced `maxima` and `maxima.fas` both contain the whole of maxima code. Now let me explain the purpose of the `use-shared-library.patch` and the `libmaxima-ecl.so` dynamic library. By default, maxima will statically link everything so all the code is duplicated between `maxima` and `maxima.fas`. What my patch does is to place all the code in `libmaxima-ecl.so` and have `maxima` and `maxima.fas` dynamically load that one. So now I think I have a clue of what is the trouble. It seems maxima needs to run maxima to finish building. When maxima is built for sbcl + ecl, everything is fine (maxima is run via sbcl). But when maxima is built for ecl, the dynamic library is not found. We may be able to fix that so the maxima executable actually works at build time (maybe using `LD_LIBRARY_PATH` ?).