Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libprotobuf v4.23.0 #156

Merged
merged 3 commits into from
May 16, 2023
Merged

libprotobuf v4.23.0 #156

merged 3 commits into from
May 16, 2023

Conversation

h-vetinari
Copy link
Member

@h-vetinari h-vetinari commented May 13, 2023

Based on #155, will be rebased once that's in.

Closes #157

@conda-forge-webservices
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@h-vetinari
Copy link
Member Author

h-vetinari commented May 13, 2023

So this fails with:

[342/391] Building CXX object CMakeFiles/tests.dir/src/google/protobuf/unittest.pb.cc.o
FAILED: CMakeFiles/tests.dir/src/google/protobuf/unittest.pb.cc.o 
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/_build_env/bin/x86_64-conda-linux-gnu-c++ -DGOOGLE_PROTOBUF_CMAKE_BUILD -DGTEST_LINKED_AS_SHARED_LIBRARY=1 -DHAVE_ZLIB -DPROTOBUF_USE_DLLS -I/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/build-shared -I/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src -I/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/third_party/utf8_range -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt  -ffunction-sections -pipe -isystem /home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work=/usr/local/src/conda/libprotobuf-4.23.0 -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla=/usr/local/src/conda-prefix -DNDEBUG -O3 -DNDEBUG -std=gnu++17 -fPIE -DGOOGLE_PROTOBUF_TEST_PLUGIN_PATH=\"/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/build-shared/test_plugin\" -MD -MT CMakeFiles/tests.dir/src/google/protobuf/unittest.pb.cc.o -MF CMakeFiles/tests.dir/src/google/protobuf/unittest.pb.cc.o.d -o CMakeFiles/tests.dir/src/google/protobuf/unittest.pb.cc.o -c /home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc: In constructor 'constexpr protobuf_unittest::TestCord::TestCord(google::protobuf::internal::ConstantInitialized)':
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:3084:73: error: temporary of non-literal type 'absl::lts_20230125::Cord' in a constant expression
 3084 |       TestCord::Impl_::_default_optional_bytes_cord_default_func_{})}} {}
      |                                                                         ^
In file included from /home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/io/coded_stream.h:134,
                 from /home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.h:24,
                 from /home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:4:
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include/absl/strings/cord.h:150:7: note: 'absl::lts_20230125::Cord' is not literal because:
  150 | class Cord {
      |       ^~~~
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include/absl/strings/cord.h:150:7: note:   'absl::lts_20230125::Cord' has a non-trivial destructor
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc: At global scope:
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:3094:67: error: 'constinit' variable 'protobuf_unittest::_TestCord_default_instance_' does not have a constant initializer
 3094 |     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TestCordDefaultTypeInternal _TestCord_default_instance_;
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:3094:67:   in 'constexpr' expansion of 'protobuf_unittest::TestCordDefaultTypeInternal()'
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:3086:54: error: 'constexpr protobuf_unittest::TestCord::TestCord(google::protobuf::internal::ConstantInitialized)' called in a constant expression
 3086 |   PROTOBUF_CONSTEXPR TestCordDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
      |                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/conda/feedstock_root/build_artifacts/libprotobuf-split_1683984171729/work/src/google/protobuf/unittest.pb.cc:3078:20: note: 'constexpr protobuf_unittest::TestCord::TestCord(google::protobuf::internal::ConstantInitialized)' declared here
 3078 | PROTOBUF_CONSTEXPR TestCord::TestCord(
      |                    ^~~~~~~~

Though we're using abseil 20230125.2 and not 20230125.3 like protobuf, the difference is only one commit, and we've backported that one.

So while we've got abseil in the error log, I doubt that it has something to do with the unvendoring.

@h-vetinari
Copy link
Member Author

h-vetinari commented May 13, 2023

Very unusually, linux-64 builds are the only ones that are failing, while everything else passes. So it must be related to the test targets (which we're not building on linux-aarch&ppc), and it's specific to GCC (i.e. doesn't appear with Clang & MSVC).

Any insights you might have on this would be much appreciated @coryan! :)

@h-vetinari h-vetinari mentioned this pull request May 13, 2023
3 tasks
@coryan
Copy link

coryan commented May 13, 2023

Very unusually, linux-64 builds are the only ones that are failing, while everything else passes. So it must be related to the test targets (which we're not building on linux-aarch&ppc), and it's specific to GCC (i.e. doesn't appear with Clang & MSVC).

I think you are running into the problems fixed by protocolbuffers/protobuf@ae7ec4e. It only affects GCC because only GCC defaults to C++17 at the moment (that is a guess).

That patch will be part of 23.1:

protocolbuffers/protobuf@v23.0...23.x

@h-vetinari
Copy link
Member Author

I think you are running into the problems fixed by protocolbuffers/protobuf@ae7ec4e.

That looks bang on, thanks a lot!

It only affects GCC because only GCC defaults to C++17 at the moment (that is a guess).

I switched to C++17 globally in #144 already, but as the commit message mentions it seems a GCC issue

@h-vetinari h-vetinari added the automerge Merge the PR when CI passes label May 16, 2023
@github-actions github-actions bot merged commit 2220073 into conda-forge:main May 16, 2023
8 checks passed
@github-actions
Copy link
Contributor

Hi! This is the friendly conda-forge automerge bot!

I considered the following status checks when analyzing this PR:

  • linter: passed
  • azure: passed

Thus the PR was passing and merged! Have a great day!

@h-vetinari h-vetinari deleted the 23 branch May 16, 2023 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Merge the PR when CI passes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants