protocolbuffers / protocolbuffers/protobuf

protoc v35.1 fails to build on FreeBSD 15.0 and LLVM/Clang 19.1.7 with libc++

Open
#27,942 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug inactive untriaged
Dominant language
C++
Stars
72k
Forks
16.3k
Avg merge
1d 17h
Merged PRs (30d)
140

Description

What version of protobuf and what language are you using?

Version: v35.1

Language: C++

FreeBSD

LLVM/Clang and libc++ (system's default)

What did you do?

Steps to reproduce the behavior:

I have a Makefile that builds protoc like this:

		echo "$(FMT_HEADER_PREFIX) Configuring protoc sources..."; \
		echo ; \
		echo " - $${SOURCE_DIR}"; \
		echo " - $${BUILD_DIR}"; \
		echo ; \
		"$(CMAKE)" \
			-G "Ninja Multi-Config" \
			-DCMAKE_MAKE_PROGRAM="$(NINJA)" \
			-DCMAKE_CONFIGURATION_TYPES="Release" \
			-DCMAKE_INSTALL_PREFIX="$${STAGE_DIR}" \
			-DCMAKE_INSTALL_LIBDIR=lib \
			-S "$${SOURCE_DIR}" \
			-B "$${BUILD_DIR}" \
			-DCMAKE_PREFIX_PATH="$${ABSEIL_STAGE_DIR};$${ZLIB_STAGE_DIR}" \
			-Dutf8_range_ENABLE_TESTS=OFF \
			-Dutf8_range_ENABLE_INSTALL=ON \
			-Dprotobuf_INSTALL=ON \
			-Dprotobuf_BUILD_TESTS=OFF \
			-Dprotobuf_BUILD_CONFORMANCE=OFF \
			-Dprotobuf_BUILD_EXAMPLES=OFF \
			-Dprotobuf_BUILD_PROTOBUF_BINARIES=ON \
			-Dprotobuf_BUILD_PROTOC_BINARIES=ON \
			-Dprotobuf_BUILD_LIBPROTOC=ON \
			-Dprotobuf_BUILD_LIBUPB=ON \
			-Dprotobuf_DISABLE_RTTI=ON \
			-Dprotobuf_TEST_XML_OUTDIR=OFF \
			-Dprotobuf_ALLOW_CCACHE=OFF \
			-Dprotobuf_FORCE_FETCH_DEPENDENCIES=OFF \
			-Dprotobuf_LOCAL_DEPENDENCIES_ONLY=ON \
			-Dprotobuf_BUILD_SHARED_LIBS=OFF \
			-Dprotobuf_MSVC_STATIC_RUNTIME=OFF \
			-Dprotobuf_WITH_ZLIB_DEFAULT=ON \
			-Dprotobuf_WITH_ZLIB=ON \
			-Dprotobuf_DEBUG_POSTFIX="d" \
			-Dprotobuf_USE_UNITY_BUILD=ON;

What did you expect to see

It should build like older releases e.g. v34.2. But v35.2 fails with the following error.

What did you see instead?

!! Configuring protoc sources...

 - /home/mamadou/WickHopper/third-party/protobuf
 - /tmp/WickHopper-XXXXXX.KaVLQW729E/build

-- The C compiler identification is Clang 19.1.7
-- The CXX compiler identification is Clang 19.1.7
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- protobuf version: 35.1.0
-- Performing Test protobuf_HAVE_LD_VERSION_SCRIPT
-- Performing Test protobuf_HAVE_LD_VERSION_SCRIPT - Success
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found ZLIB: /tmp/WickHopper-XXXXXX.KaVLQW729E/zlib-stage/lib/libz.a (found version "1.3.2")
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS - Success
-- Configuring done (1.8s)
-- Generating done (0.1s)
-- Build files have been written to: /tmp/WickHopper-XXXXXX.KaVLQW729E/build

!! Building protoc...

 - /home/mamadou/WickHopper/third-party/protobuf
 - /tmp/WickHopper-XXXXXX.KaVLQW729E/build

[17/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/arena.cc.o
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/arena.cc:703:19: warning: 'MutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
  703 |   absl::MutexLock lock(&mutex_);
      |                   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:620:5: note: 'MutexLock' has been explicitly marked deprecated here
  620 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
1 warning generated.
[18/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/arenastring.cc.o
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/arenastring.cc:60:6: warning: 'Lock' is deprecated [-Wdeprecated-declarations]
   60 |   mu.Lock();
      |      ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:181:3: note: 'Lock' has been explicitly marked deprecated here
  181 |   ABSL_DEPRECATE_AND_INLINE()
      |   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/base/macros.h:229:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  229 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/arenastring.cc:68:6: warning: 'Unlock' is deprecated [-Wdeprecated-declarations]
   68 |   mu.Unlock();
      |      ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:190:3: note: 'Unlock' has been explicitly marked deprecated here
  190 |   ABSL_DEPRECATE_AND_INLINE()
      |   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/base/macros.h:229:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  229 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
2 warnings generated.
[21/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/dynamic_message.cc.o
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/dynamic_message.cc:845:27: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  845 |         !field->options().weak() && !InRealOneof(field) &&
      |                           ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/dynamic_message.cc:880:19: warning: 'MutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
  880 |   absl::MutexLock lock(&prototypes_mutex_);
      |                   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:620:5: note: 'MutexLock' has been explicitly marked deprecated here
  620 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
2 warnings generated.
[31/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/generated_message_tctable_gen.cc.o
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc:668:41: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  668 |     if (descriptor->field(i)->options().weak()) {
      |                                         ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc:707:24: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  707 |       field->options().weak()) {
      |                        ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc:742:50: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  742 |            !field->is_map() && !field->options().weak() &&
      |                                                  ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_tctable_gen.cc:782:35: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  782 |       } else if (field->options().weak()) {
      |                                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
4 warnings generated.
[44/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/generated_message_reflection.cc.o
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:62:
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/reflection_visit_fields.h:109:35: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  109 |     ABSL_DCHECK(!field->options().weak()) << "weak fields are not supported";
      |                                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:2518:25: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 2518 |       !field->options().weak() && !IsLazyField(field) &&
      |                         ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3228:33: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 3228 |   ABSL_DCHECK(!field->options().weak());
      |                                 ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3261:33: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 3261 |   ABSL_DCHECK(!field->options().weak());
      |                                 ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3270:33: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 3270 |   ABSL_DCHECK(!field->options().weak());
      |                                 ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3279:33: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 3279 |   ABSL_DCHECK(!field->options().weak());
      |                                 ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:12:
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.h:26:
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.h:2702:29: warning: 'ReaderMutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 2702 |       absl::ReaderMutexLock lock(&pool->field_memo_table_mutex_);
      |                             ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3698:29: note: in instantiation of function template specialization 'google::protobuf::DescriptorPool::MemoizeProjection<google::protobuf::EnumDescriptor, (lambda at /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3700:17)>' requested here
 3698 |             DescriptorPool::MemoizeProjection(
      |                             ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:663:5: note: 'ReaderMutexLock' has been explicitly marked deprecated here
  663 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:12:
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.h:26:
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.h:2711:23: warning: 'MutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 2711 |       absl::MutexLock lock(&pool->field_memo_table_mutex_);
      |                       ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:620:5: note: 'MutexLock' has been explicitly marked deprecated here
  620 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3935:8: warning: 'Lock' is deprecated [-Wdeprecated-declarations]
 3935 |     mu.Lock();
      |        ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:181:3: note: 'Lock' has been explicitly marked deprecated here
  181 |   ABSL_DEPRECATE_AND_INLINE()
      |   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/base/macros.h:229:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  229 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:3937:8: warning: 'Unlock' is deprecated [-Wdeprecated-declarations]
 3937 |     mu.Unlock();
      |        ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:190:3: note: 'Unlock' has been explicitly marked deprecated here
  190 |   ABSL_DEPRECATE_AND_INLINE()
      |   ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/base/macros.h:229:39: note: expanded from macro 'ABSL_DEPRECATE_AND_INLINE'
  229 | #define ABSL_DEPRECATE_AND_INLINE() [[deprecated]] ABSL_REFACTOR_INLINE
      |                                       ^
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:62:
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/reflection_visit_fields.h:109:35: warning: 'weak' is deprecated [-Wdeprecated-declarations]
  109 |     ABSL_DCHECK(!field->options().weak()) << "weak fields are not supported";
      |                                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/reflection_visit_fields.h:447:20: note: in instantiation of function template specialization 'google::protobuf::internal::ReflectionVisit::VisitFields<google::protobuf::Message, (lambda at /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/reflection_visit_fields.h:449:7)>' requested here
  447 |   ReflectionVisit::VisitFields(
      |                    ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/reflection_visit_fields.h:502:20: note: in instantiation of function template specialization 'google::protobuf::internal::ReflectionVisit::VisitMessageFields<(lambda at /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:1399:48)>' requested here
  502 |   ReflectionVisit::VisitMessageFields(message, std::forward<CallbackFn>(func));
      |                    ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:1399:15: note: in instantiation of function template specialization 'google::protobuf::internal::VisitMutableMessageFields<(lambda at /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/generated_message_reflection.cc:1399:48)>' requested here
 1399 |     internal::VisitMutableMessageFields(*curr, [&](Message& msg) {
      |               ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
11 warnings generated.
[45/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/io/zero_copy_stream_impl.cc.o
FAILED: [code=1] CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/io/zero_copy_stream_impl.cc.o 
/usr/bin/c++ -DGOOGLE_PROTOBUF_CMAKE_BUILD -DGOOGLE_PROTOBUF_NO_RTTI=1 -DHAVE_ZLIB -DCMAKE_INTDIR=\"Release\" -I/tmp/WickHopper-XXXXXX.KaVLQW729E/build -I/home/mamadou/WickHopper/third-party/protobuf -I/tmp/WickHopper-XXXXXX.KaVLQW729E/build/src -I/home/mamadou/WickHopper/third-party/protobuf/src -I/home/mamadou/WickHopper/third-party/protobuf/third_party/utf8_range -isystem /tmp/WickHopper-XXXXXX.KaVLQW729E/zlib-stage/include -isystem /tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/io/zero_copy_stream_impl.cc.o -MF CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/io/zero_copy_stream_impl.cc.o.d -o CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/io/zero_copy_stream_impl.cc.o -c /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc
In file included from /home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc:24:
In file included from /usr/include/c++/v1/istream:164:
In file included from /usr/include/c++/v1/__ostream/basic_ostream.h:24:
In file included from /usr/include/c++/v1/ios:220:
/usr/include/c++/v1/__locale:530:12: error: use of undeclared identifier 'isascii'
  530 |     return isascii(__c) ? (__tab_[static_cast<int>(__c)] & __m) != 0 : false;
      |            ^
/usr/include/c++/v1/__locale:535:16: error: use of undeclared identifier 'isascii'
  535 |       *__vec = isascii(*__low) ? __tab_[static_cast<int>(*__low)] : 0;
      |                ^
/usr/include/c++/v1/__locale:541:11: error: use of undeclared identifier 'isascii'
  541 |       if (isascii(*__low) && (__tab_[static_cast<int>(*__low)] & __m))
      |           ^
/usr/include/c++/v1/__locale:548:12: error: use of undeclared identifier 'isascii'
  548 |       if (!isascii(*__low) || !(__tab_[static_cast<int>(*__low)] & __m))
      |            ^
4 errors generated.
[48/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/descriptor.cc.o
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:1985:27: warning: 'ReaderMutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 1985 |     absl::ReaderMutexLock lock(pool->mutex_);
      |                           ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:663:5: note: 'ReaderMutexLock' has been explicitly marked deprecated here
  663 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:2142:27: warning: 'ReaderMutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 2142 |     absl::ReaderMutexLock l(&unknown_enum_values_mu_);
      |                           ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:663:5: note: 'ReaderMutexLock' has been explicitly marked deprecated here
  663 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:2151:27: warning: 'WriterMutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 2151 |     absl::WriterMutexLock l(&unknown_enum_values_mu_);
      |                           ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:703:5: note: 'WriterMutexLock' has been explicitly marked deprecated here
  703 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:2652:27: warning: 'ReaderMutexLock' is deprecated: Use the constructor that takes a reference instead [-Wdeprecated-declarations]
 2652 |     absl::ReaderMutexLock lock(mutex_);
      |                           ^
/tmp/WickHopper-XXXXXX.KaVLQW729E/abseil-stage/include/absl/synchronization/mutex.h:663:5: note: 'ReaderMutexLock' has been explicitly marked deprecated here
  663 |   [[deprecated("Use the constructor that takes a reference instead")]]
      |     ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:8005:61: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 8005 |     bool is_weak = !pool_->enforce_weak_ && proto.options().weak();
      |                                                             ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.cc:10707:58: warning: 'weak' is deprecated [-Wdeprecated-declarations]
 10707 |   if (field->real_containing_oneof() || field->options().weak() ||
       |                                                          ^
/home/mamadou/WickHopper/third-party/protobuf/src/google/protobuf/descriptor.pb.h:8215:19: note: 'weak' has been explicitly marked deprecated here
 8215 |   [[nodiscard]] [[deprecated]] bool weak() const;
      |                   ^
6 warnings generated.
[50/344] Building CXX object CMakeFiles/libprotobuf.dir/Release/src/google/protobuf/json/internal/lexer.cc.o
ninja: build stopped: subcommand failed.
gmake: *** [GNUmakefile:2523: vendor-dist-protoc] Error 1
mamadou@freebsd-dev:~/WickHopper $ 

Anything else we should know about your project / environment

mamadou@freebsd-dev:~/WickHopper $ uname -a
FreeBSD freebsd-dev 15.0-RELEASE-p6 FreeBSD 15.0-RELEASE-p6 GENERIC amd64
mamadou@freebsd-dev:~/WickHopper $ clang++ --version
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
mamadou@freebsd-dev:~/WickHopper $ echo | clang++ -E -x c++ - -v
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
 (in-process)
 "/usr/bin/clang++" -cc1 -triple x86_64-unknown-freebsd15.0 -E -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name - -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/mamadou/WickHopper -v -fcoverage-compilation-dir=/home/mamadou/WickHopper -resource-dir /usr/lib/clang/19 -internal-isystem /usr/include/c++/v1 -internal-isystem /usr/lib/clang/19/include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o - -x c++ -
clang -cc1 version 19.1.7 based upon LLVM 19.1.7 default target x86_64-unknown-freebsd15.0
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/v1
 /usr/lib/clang/19/include
 /usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 463 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure on FreeBSD 15.0 with LLVM/Clang 19.1.7 using the reported CMake and Ninja configuration, then inspect the first non-warning compiler error in the protoc build output. Confirm the fix by rebuilding the v35.1 sources with the same options and verifying that protoc completes successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system, devtools, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.