<title>fix(3p): resolve linker issues with clang-compiled C++ packages</title>
<updated>2021-10-10T10:03:03+00:00</updated>
<author>
<name>sterni</name>
<email>sternenseemann@systemli.org</email>
...</author>
<published>2021-10-07T19:57:09+00:00</published>
<link rel="alternate" type="text/html" href="http://code.tvl.fyi/commit/?id=04f7cc3880912abb738d3d3bc20e7622a211f25e"/>
<id>urn:sha1:04f7cc3880912abb738d3d3bc20e7622a211f25e</id>
<content type="text">
The point where this broke is likely when llvmPackages_11.stdenv started
respecting stdenv.hostPlatform.linker and thus using GNU binutils'
ld.bfd for linking. That linker can't deal with clang's C++ ABI.
To fix this we introduce a modified version of llvmPackages_11.stdenv
which uses llvmPackages_11.bintools for linking purposes (I also aim to
upstream this in some form, but am not sure about the details atm, so
we'll just do this in the tvl overlay for now). This is the precondition
for getting our C++ packages in //third_party to work
again. Additionally the following fixes were necessary:
* abseil-cpp needed to be updated (by overriding the version from
nixpkgs for now, since I can't update the subtree on my own) to
fulfill grpc's requirements (grpc 1.41.0 needs abseil-cpp LTS
20210324).
* gtest needs a patch from nixpkgs which fixes the path to its include
directory for CMake.
* We need to build re2 with clang as well, otherwise linking will fail.
Fixes b/132.
Change-Id: I7b64579fe96451547babe070fd35db398581e49d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3701
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
</content>