Closed AlphaJack closed 2 years ago
Can confirm
[Disclaimer: I haven't actually tried this myself; at least not yet anyway]
This isn't an ideal long-term solution, but it might work as a stopgap: you can rebuild the relevant OS library packages on your own system in a way that will install both their dynamic libs (as usual) and static libs (not usual). And then the link step may work.
So, to do that, build the relevant dependency library packages (libzip
, openssl
, etc) from the ABS. (You only need to do this once; or, I guess more accurately, any time you want to build this project and the library package(s) have been updated upstream and wiped out your locally built ABS versions.)
And when you do this, ensure that you either have OPTIONS=( ... staticlibs ... )
in your makepkg.conf
, or that you throw options=(staticlibs)
into the library packages' PKGBUILD
files when building them. (staticlibs
is disabled by default.)
Build and install the packages; and that should, I think, result in e.g. /usr/lib/libzip.a
etc both existing and then linking up properly when building this project.
Obviously, as I stated above, this is more of a workaround than a real fix. Much better would be if this project could become capable of dynamic linking (no more -static
; instead with -dynamic
, -fPIC
, all that kinda crap). Maybe even as a configurable thing in the Makefile that retains the static build ability too, I dunno.
(Side note: The Makefile here should also really be invoking pkg-config --cflags <libraryname(s)>
for e.g. include paths, and pkg-config --libs <libraryname(s)>
for e.g. the proper/correct -L
and -l
link flags, rather than just hard-coding that stuff manually and then hoping that all distros will have those things in the exact same places.)
I was also unsuccessful in compiling on arch. Using docker-alpine container I was able to compile successfully
same issue here, was trying to make an arch package, didnt know pepole were already trying
simply don't compile on Arch.
I'm getting this error: https://github.com/ryancdotorg/brainflayer/issues/16
Specifically with
Is there any I can complete the build process using dynamic linking? Or a workaround to avoid creating a static package version of
openssl
,libzip
and so on?Not relevant I guess, but I had to comment out
-mno-default
also on x86_64 to avoid its error