conda-forge / libarchive-feedstock

A conda-smithy repository for libarchive.
BSD 3-Clause "New" or "Revised" License
2 stars 26 forks source link

libarchive is using lzma static (I think) #25

Closed hmaarrfk closed 5 years ago

hmaarrfk commented 5 years ago

I know this is not anything you guys are doing, but my builds on aarch64, in a pretty stripped down container are failing to find:

  CCLD     libarchive_fe.la
/usr/bin/grep: /root/archiconda3/conda-bld/libarchive_1546902350185/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/liblzma.la: No such file or directory

My feeling is that it is trying to statically link to it, but can't find it.

Here is a build for example that shows the whole process.

https://app.shippable.com/github/Archiconda/libarchive-feedstock/runs/8/1/console

when jjhelmus made his bootstrap packages, with conda-build in oct 2018, that can be found https://anaconda.org/jjhelmus/repo?label=aarch64_bootstrap you can see that the liblzma.la file is included in the xz library, which is why I think he was able to compile libarchive.

My feedstock: https://github.com/archiconda/libarchive-feedstock

mingwandroid commented 5 years ago

conda-build removes .la files now to prevent them from getting used (many Linux distros take this approach). I'm not sure why the build is not being clever enough to avoid .la files here. Can you search in $SRC_DIR for any occurrence of liblzma.la?

hmaarrfk commented 5 years ago

yeah, you are right, that file doesn't exist on amd64 and it is building fine. I'm trying out a few different compilation options now, but iteration time is slow, because qemu is slow. thanks for chiming in.

hmaarrfk commented 5 years ago

for reference, their docs seem to imply that they are preferring to use static linking https://github.com/libarchive/libarchive/wiki/BuildInstructions

mingwandroid commented 5 years ago

Mmm, they prefer linking statically to their own libs for their own programs (tar, cpio) but I don't know that that extends to the transitive deps that do the actual low level {de,}compression. It might mind you as not doing it that way would require some build system gynmastics.

hmaarrfk commented 5 years ago

hmmm the only thing I can think of, is that it found libxml2.la, which was left over from conda 3.15 and assumed it could recompile everything statically.

I'm recompiling that, but qemu likes to take its time and shippable is working hard on scipy....

hmaarrfk commented 5 years ago

Yeah ok, that was it. Thanks for bouncing ideas @mingwandroid !!!

I should have just followed the build order.....