google / tensorstore

Library for reading and writing large multi-dimensional arrays.
https://google.github.io/tensorstore/
Other
1.36k stars 120 forks source link

0.1.68 build failing on windows in upb message.c #205

Open toloudis opened 1 week ago

toloudis commented 1 week ago

_deps\protobuf-src\upb\message\internal\message.c(22): error C2099: initializer is not a constant

https://github.com/allen-cell-animated/agave/actions/runs/12002323672/job/33454115539

Looks like the same error mentioned in https://github.com/grpc/grpc/issues/37210

laramiel commented 3 days ago

tensorstore generates the CMake files from the bazel files using the bazel_to_cmake tool, and additionally the storage.pb.h file is generated by the protoc compiler.

To investigate more look in the generated build_rules.cmake file under the _deps/googleapis-* folders; it may be that the pb.h is somehow incorrectly referenced in this nested cmake configuration.

Edit: Issue content changed; it seems the issue/fix is not included in the latest "released" protobuf. The fix is in: https://github.com/protocolbuffers/protobuf/commit/8cc5f6bd1632df4a93a77457db4eef54abd137eb

If you want to try to update protobuf version that may be a challenge, as they tend to change a bunch of stuff and we patch the build files.

You could try to add a .bazelrc line with a per-file copt which disables that warning, perhaps?

Also, a pure bazel build on your machine might be helpful for future debugging; windows isn't our native development environment so we have to create the a custom environment for any exceptions which deviate from our CI environment.

toloudis commented 3 days ago

my bad, I was changing the issue to something else entirely after redoing several builds on my latest branch... still not building correctly. I will also investigate the other bad build with the pb.h as you suggested but the current issue is "newer"