Skip to content

Build against prometheus-cpp-lite v. 2.0 fails with numerous errors #2570

@barracuda156

Description

@barracuda156

Build fails against prometheus-cpp-lite v. 2.0:

[ 12%] Building CXX object CMakeFiles/zerotiercore.dir/node/Bond.cpp.o
/opt/local/bin/g++-mp-14   -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -std=c++11 -MD -MT CMakeFiles/zerotiercore.dir/node/Bond.cpp.o -MF CMakeFiles/zerotiercore.dir/node/Bond.cpp.o.d -o CMakeFiles/zerotiercore.dir/node/Bond.cpp.o -c /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Bond.cpp
[ 15%] Building CXX object CMakeFiles/zerotiercore.dir/node/Capability.cpp.o
/opt/local/bin/g++-mp-14   -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -std=c++11 -MD -MT CMakeFiles/zerotiercore.dir/node/Capability.cpp.o -MF CMakeFiles/zerotiercore.dir/node/Capability.cpp.o.d -o CMakeFiles/zerotiercore.dir/node/Capability.cpp.o -c /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Capability.cpp
In file included from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/../node/Metrics.hpp:13,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/Phy.hpp:34,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/Binder.hpp:51,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Bond.hpp:12,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Bond.cpp:9:
/opt/local/include/prometheus/simpleapi.h:5:113: note: '#pragma message: warning: <prometheus/simpleapi.h> is deprecated in v2.0, use <prometheus/prometheus.h> instead'
    5 | #pragma message("warning: <prometheus/simpleapi.h> is deprecated in v2.0, use <prometheus/prometheus.h> instead")
      |                                                                                                                 ^
In file included from /opt/local/include/prometheus/counter.h:12,
                 from /opt/local/include/prometheus/prometheus.h:2,
                 from /opt/local/include/prometheus/simpleapi.h:6:
/opt/local/include/prometheus/core.h:765:31: error: 'remove_reference_t' in namespace 'std' does not name a template type; did you mean 'remove_reference'?
  765 |     using value_type   = std::remove_reference_t<MetricValue>;
      |                               ^~~~~~~~~~~~~~~~~~
      |                               remove_reference
/opt/local/include/prometheus/core.h:766:31: error: 'conditional_t' in namespace 'std' does not name a template type; did you mean 'conditional'?
  766 |     using storage_type = std::conditional_t<
      |                               ^~~~~~~~~~~~~
      |                               conditional
/opt/local/include/prometheus/core.h:798:29: error: 'remove_reference_t' in namespace 'std' does not name a template type; did you mean 'remove_reference'?
  798 |     using value_type = std::remove_reference_t<MetricValue>;
      |                             ^~~~~~~~~~~~~~~~~~
      |                             remove_reference
/opt/local/include/prometheus/core.h:799:39: error: 'value_type' was not declared in this scope
  799 |     using metric_own = MetricTemplate<value_type>;
      |                                       ^~~~~~~~~~
/opt/local/include/prometheus/core.h:799:49: error: template argument 1 is invalid
  799 |     using metric_own = MetricTemplate<value_type>;
      |                                                 ^
/opt/local/include/prometheus/core.h:800:39: error: 'value_type' was not declared in this scope
  800 |     using metric_ref = MetricTemplate<value_type&>;
      |                                       ^~~~~~~~~~
/opt/local/include/prometheus/core.h:800:50: error: template argument 1 is invalid
  800 |     using metric_ref = MetricTemplate<value_type&>;
      |                                                  ^
/opt/local/include/prometheus/core.h:801:43: error: 'metric_own' was not declared in this scope
  801 |     static_assert(std::is_base_of<Metric, metric_own>::value, "modify_t: MetricTemplate must be derived from Metric");
      |                                           ^~~~~~~~~~
/opt/local/include/prometheus/core.h:801:53: error: template argument 2 is invalid
  801 |     static_assert(std::is_base_of<Metric, metric_own>::value, "modify_t: MetricTemplate must be derived from Metric");
      |                                                     ^
/opt/local/include/prometheus/counter.h:53:46: error: 'std::enable_if_t' has not been declared
   53 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:53:57: error: expected '>' before '<' token
   53 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:62:46: error: 'std::enable_if_t' has not been declared
   62 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:62:57: error: expected '>' before '<' token
   62 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:71:46: error: 'std::enable_if_t' has not been declared
   71 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:71:57: error: expected '>' before '<' token
   71 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:80:46: error: 'std::enable_if_t' has not been declared
   80 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:80:57: error: expected '>' before '<' token
   80 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:90:46: error: 'std::enable_if_t' has not been declared
   90 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:90:57: error: expected '>' before '<' token
   90 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:100:46: error: 'std::enable_if_t' has not been declared
  100 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:100:57: error: expected '>' before '<' token
  100 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:109:46: error: 'std::enable_if_t' has not been declared
  109 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:109:57: error: expected '>' before '<' token
  109 |     template <typename U = MetricValue, std::enable_if_t<std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:126:46: error: 'std::enable_if_t' has not been declared
  126 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:126:57: error: expected '>' before '<' token
  126 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:130:46: error: 'std::enable_if_t' has not been declared
  130 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/counter.h:130:57: error: expected '>' before '<' token
  130 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                                         ^
/opt/local/include/prometheus/counter.h:202:60: error: 'metric_ref' in 'struct prometheus::modify_t<prometheus::counter_t<> >' does not name a type
  202 |   using counter_metric_t = typename modify_t<counter_t<>>::metric_ref;
      |                                                            ^~~~~~~~~~
In file included from /opt/local/include/prometheus/prometheus.h:3:
/opt/local/include/prometheus/gauge.h:55:46: error: 'std::enable_if_t' has not been declared
   55 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                              ^~~~~~~~~~~
/opt/local/include/prometheus/gauge.h:55:57: error: expected '>' before '<' token
   55 |     template <typename U = MetricValue, std::enable_if_t<!std::is_reference<U>::value, int> = 0>
      |                                                         ^
. . .
In file included from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/Binder.hpp:51,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Bond.hpp:12,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Node.hpp:13,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Capability.cpp:13:
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/Phy.hpp: In member function 'bool ZeroTier::Phy<HANDLER_PTR_TYPE>::udpSend(ZeroTier::PhySocket*, const sockaddr*, const void*, long unsigned int)':
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/../osdep/Phy.hpp:490:34: error: 'udp_send' is not a member of 'ZeroTier::Metrics'
  490 |                         Metrics::udp_send += len;
      |                                  ^~~~~~~~
In file included from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/IncomingPacket.hpp:15,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Switch.hpp:14,
                 from /opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Capability.cpp:15:
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp: At global scope:
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp:727:32: error: 'gauge_metric_t' in namespace 'prometheus::simpleapi' does not name a type
  727 |         prometheus::simpleapi::gauge_metric_t _alive_path_count;
      |                                ^~~~~~~~~~~~~~
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp:728:32: error: 'gauge_metric_t' in namespace 'prometheus::simpleapi' does not name a type
  728 |         prometheus::simpleapi::gauge_metric_t _dead_path_count;
      |                                ^~~~~~~~~~~~~~
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp:729:32: error: 'counter_metric_t' in namespace 'prometheus::simpleapi' does not name a type
  729 |         prometheus::simpleapi::counter_metric_t _incoming_packet;
      |                                ^~~~~~~~~~~~~~~~
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp:730:32: error: 'counter_metric_t' in namespace 'prometheus::simpleapi' does not name a type
  730 |         prometheus::simpleapi::counter_metric_t _outgoing_packet;
      |                                ^~~~~~~~~~~~~~~~
/opt/local/var/macports/build/zerotier-5694c502/work/ZeroTierOne-1.16.0/node/Peer.hpp:731:32: error: 'counter_metric_t' in namespace 'prometheus::simpleapi' does not name a type
  731 |         prometheus::simpleapi::counter_metric_t _packet_errors;
      |                                ^~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/zerotiercore.dir/node/Bond.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions