contrib: protobuf: Apply a patch to avoid relying on transitive includes
This fixes build breakage with latest nightly libc++. Since
https://github.com/llvm/llvm-project/commit/2e2f3158c604adb8401a2a44a03f58d4b6f1c7f9,
fewer libc++ headers transitively include <algorithm>
.
This protobuf header uses std::fill
unconditionally, which is a
function provided by <algorithm>
. (The surrounding code comment was
wrong/outdated - <algorithm>
was needed on all platforms.)
The same seems to have been fixed in upstream protobuf as part of a larger code sync: https://github.com/protocolbuffers/protobuf/commit/ab4585a6956675ce14a1cba5d321fde980bbf12b#diff-5cc9e8e347380b7bbc8fac8c06dc98100f3b5c076fcffa177e8ce11e753d4f7c