termux-packages/packages/libprotobuf/src-google-protobuf-parse_c...

29 lines
1.1 KiB
Diff

https://github.com/protocolbuffers/protobuf/issues/11996
Fix run-time error on aarch64:
```
$ protoc
CANNOT LINK EXECUTABLE "protoc": cannot locate symbol "_ZN6google8protobuf8internal20VarintParseSlowArm32EPKcPjm" referenced by "/data/data/com.termux/files/usr/lib/libprotoc.so"...
Aborted
```
--- a/src/google/protobuf/parse_context.cc
+++ b/src/google/protobuf/parse_context.cc
@@ -730,6 +730,7 @@
constexpr uint64_t kFirstResultBitChunk8 = 8 * 7;
constexpr uint64_t kValidBitsForInvalidVarint = 0x60;
+PROTOBUF_EXPORT
PROTOBUF_NOINLINE const char* VarintParseSlowArm64(const char* p, uint64_t* out,
uint64_t first8) {
SlowPathEncodedInfo info = ComputeLengthAndUpdateP(p);
@@ -768,6 +769,7 @@
// See comments in VarintParseSlowArm64 for a description of the algorithm.
// Differences in the 32 bit version are noted below.
+PROTOBUF_EXPORT
PROTOBUF_NOINLINE const char* VarintParseSlowArm32(const char* p, uint32_t* out,
uint64_t first8) {
// This also skips the slop bytes.