Opened 7 months ago

#68444 assigned defect

protobuf3-cpp: build error in dependents: unknown type name 'max_align_t'

Reported by: jmroot (Joshua Root) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: protobuf3-cpp

Description

Dependents can fail to build when using some toolchain versions, see for example py311-onnx: https://build.macports.org/builders/ports-10.9_x86_64-builder/builds/249207/steps/install-port/logs/stdio

In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_python_py-onnx/py311-onnx/work/onnx-1.14.1/.setuptools-cmake-build/onnx/onnx-data.pb.cc:4:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_python_py-onnx/py311-onnx/work/onnx-1.14.1/.setuptools-cmake-build/onnx/onnx-data.pb.h:24:
In file included from /opt/local/include/google/protobuf/arena.h:52:
/opt/local/include/google/protobuf/arena_impl.h:62:34: error: unknown type name 'max_align_t'; did you mean 'std::max_align_t'?
enum { kCacheAlignment = alignof(max_align_t) };  // do the best we can
                                 ^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/cstddef:55:21: note: 'std::max_align_t' declared here
typedef long double max_align_t;
                    ^

Explicitly specifying the std namespace here would be more correct anyway, as max_align_t in the global namespace is really a C thing not C++.

Change History (0)

Note: See TracTickets for help on using tickets.