daphne-eu / daphne

DAPHNE: An Open and Extensible System Infrastructure for Integrated Data Analysis Pipelines
Apache License 2.0
67 stars 62 forks source link

ARM build linker error since absl bump #709

Closed philipportner closed 6 months ago

philipportner commented 6 months ago

When building in the docker container for ARM, I could not finish compilation as I got a linker error regarding the absl library. This is fixed once I reverted this commit.

I'll add more information about the setup and the actual linker error tomorrow.

pdamme commented 6 months ago

I recently faced an build error related to absl, too. I noted down: ld.lld: error: undefined symbol: absl::lts_20211102::Mutex::Lock(). In case you get the same error, you don't need to revert commit 8874b4ce0395015c0b2b3a500da8f3311dcd15d9 that switched to a newer version of absl. The problem can be fixed by rebuilding the dependency that requires absl (if I remember correctly, that was grpc). To rebuild grpc, either (a) do ./build.sh --cleanAll (maybe --cleanDeps is enough) and ./build.sh, or (b) (hacky solution that is quicker) remove thirdparty/flags/grpc_v1.38.0.install.v1.success and do ./build.sh.

Background: When we increase the version number of a dependency in software-package-versions.txt, the next run of ./build.sh downloads and builds the new version of the dependency, which also triggers a rebuild of the affected parts of DAPHNE. With absl, the problem is that it is not a direct dependency of DAPHNE, but a dependency of grpc. We download and build absl separately, because we need to apply some patch to it for some reason (). As a consequence, ./build.sh builds the new version of absl, but doesn't rebuild grpc, since there is still the install.v1.success flag file present for grpc. I think one might have prevented this problem in 8874b4ce0395015c0b2b3a500da8f3311dcd15d9 by increasing the v1 to v2 in build.sh for grpc*.

I wanted to write up this problem and its solution as an issue, but hadn't found the time yet...


(*) Since 8874b4ce0395015c0b2b3a500da8f3311dcd15d9, that patch isn't applied anymore, so maybe we should not download and build absl separately anymore, but rely on the build of grpc for that again.

philipportner commented 6 months ago

Didn't think about rebuilding grpc. That's exactly the problem I had, thanks @pdamme.