You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, this still fails, as static libzstd cannot be found. The root cause of it is that Arch Linux removed the static version of libzstd from its packages: https://bugs.archlinux.org/task/78526.
To get it to work, libzstd has to be built locally (https://github.com/facebook/zstd), and libzstd.a installed in /usr/lib. This enables MAMBO to build and run.
Since MAMBO relies on libelf, that relies on libz and libzstd, removing the dependency is not simple.
We need to discuss it, how to handle it properly. Any suggestions are welcome! (cc @jkressel@GuillermoCallaghan)
EDIT:
Tested in chroot on Zenfone 9 with following Arch Linux configuration:
NAME="Arch Linux ARM"
PRETTY_NAME="Arch Linux ARM"
ID=archarm
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinuxarm.org/"
DOCUMENTATION_URL="https://archlinuxarm.org/wiki"
SUPPORT_URL="https://archlinuxarm.org/forum"
BUG_REPORT_URL="https://github.com/archlinuxarm/PKGBUILDs/issues"
LOGO=archlinux-logo
The text was updated successfully, but these errors were encountered:
I don't think there's a clean way to handle this other than having cases for handling disto-specific package quirks, like not providing a static library.
Although, from reading around it does seems like that dynamically linked libraries are preferred by package managers.[1]
While I couldn't find something more authorative, the whole Arch Linux page for Haskell does seem to mention that the packages provided by Arch are dynamically linked, whereas GHC is set-up for static compilation by default which seems to lead to a lot of frustration for Haskell devs.[2][3]
Debian (and Ubuntu by extension) seems to be leaning towards the same idea of providing dynamically linked libraries first, and then providing the static ones in a separate -dev package together with the header files.[4] So Debian-based distros are at least guaranteed to have a statically compiled version of the libraries we are using.
As for the more practical concerns; having Mambo be dynamically compiled by default is fine, if there's no big performance regressions. I don't know if there's any plans of providing precompiled binaries, in which case being able to statically compile to avoid DLL hell would be nice for distribution purposes.
In the case of a performance regression, a possibility would be to provide the dependencies ourselves, like PIE.
It looks like MAMBO fails to build on the recent versions of Arch Linux. The problem has been initially reported by @ijan1.
The compilation error can be seen below:
To fix this problem, we first need to add
libzstd
to the makefile:However, this still fails, as static
libzstd
cannot be found. The root cause of it is that Arch Linux removed the static version oflibzstd
from its packages: https://bugs.archlinux.org/task/78526.To get it to work,
libzstd
has to be built locally (https://github.com/facebook/zstd), andlibzstd.a
installed in/usr/lib
. This enables MAMBO to build and run.Since MAMBO relies on
libelf
, that relies onlibz
andlibzstd
, removing the dependency is not simple.We need to discuss it, how to handle it properly. Any suggestions are welcome! (cc @jkressel @GuillermoCallaghan)
EDIT:
Tested in chroot on Zenfone 9 with following Arch Linux configuration:
The text was updated successfully, but these errors were encountered: