Skip to content
Snippets Groups Projects
Commit 553ed5fa authored by Martin Storsjö's avatar Martin Storsjö
Browse files

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

(cherry picked from commit 5f677641)
parent 8276f2d9
No related branches found
No related tags found
2 merge requests!3533Backport MR 3236 to 3.0.x,!1433contrib: protobuf: Apply a patch to avoid relying on transitive includes
Pipeline #192943 passed with stages
in 19 minutes and 6 seconds
--- protobuf/src/google/protobuf/repeated_field.h.orig 2022-02-17 12:44:54.526527423 +0200
+++ protobuf/src/google/protobuf/repeated_field.h 2022-02-17 12:44:58.190446363 +0200
@@ -46,11 +46,7 @@
#ifndef GOOGLE_PROTOBUF_REPEATED_FIELD_H__
#define GOOGLE_PROTOBUF_REPEATED_FIELD_H__
-#ifdef _MSC_VER
-// This is required for min/max on VS2013 only.
#include <algorithm>
-#endif
-
#include <string>
#include <iterator>
#include <google/protobuf/stubs/casts.h>
......@@ -21,6 +21,7 @@ protobuf: protobuf-$(PROTOBUF_VERSION)-cpp.tar.gz .sum-protobuf
$(UNPACK)
mv protobuf-$(PROTOBUF_VERSION) protobuf-$(PROTOBUF_VERSION)-cpp
$(APPLY) $(SRC)/protobuf/dont-build-protoc.patch
$(APPLY) $(SRC)/protobuf/include-algorithm.patch
$(MOVE)
.protobuf: protobuf
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment