facebook / fboss

Facebook Open Switching System Software for controlling network switches.
Other
860 stars 295 forks source link

compile fboss fail:fboss/agent/hw/bcm/BcmHostKey.cpp.o' failed #82

Open anonymouspeople opened 5 years ago

anonymouspeople commented 5 years ago

i try to complie fboss,but i get fail, like this: someone can help me ?

All-Series:~/fboss$ git pull Updating 7c538af4..3ea43eea Fast-forward CMakeLists.txt | 19 +++++++++++------ fboss/agent/ApplyThriftConfig.cpp | 10 +++++++++ fboss/agent/SwSwitch.cpp | 22 ++++++++++++------- fboss/agent/TunManager.cpp | 5 +++++ fboss/agent/TunManager.h | 7 +++++- fboss/agent/hw/bcm/BcmHost.cpp | 2 +- fboss/agent/hw/bcm/BcmHostKey.cpp | 2 +- fboss/agent/hw/bcm/BcmHostKey.h | 10 ++++----- fboss/agent/hw/bcm/BcmIntf.cpp | 14 +++++++++--- fboss/agent/hw/bcm/BcmIntf.h | 23 ++++++++++++++++---- fboss/agent/hw/bcm/BcmLabeledEgress.h | 8 +++++-- fboss/agent/hw/bcm/BcmLabeledTunnel.cpp | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fboss/agent/hw/bcm/BcmLabeledTunnel.h | 50 +++++++++++++++++++++++++++++++++++++++++++ fboss/agent/hw/bcm/BcmLabeledTunnelEgress.cpp | 34 +++++++++++++++++++++++++++++ fboss/agent/hw/bcm/BcmLabeledTunnelEgress.h | 37 ++++++++++++++++++++++++++++++++ fboss/agent/hw/bcm/BcmSwitch.cpp | 1 + fboss/agent/hw/bcm/oss/BcmLabeledEgress.cpp | 21 ++++++++++++++++++ fboss/agent/hw/bcm/oss/BcmLabeledTunnel.cpp | 10 +++++++++ fboss/agent/hw/bcm/oss/BcmLabeledTunnelEgress.cpp | 16 ++++++++++++++ fboss/agent/hw/bcm/tests/BcmHostKeyTests.cpp | 8 +++---- fboss/agent/hw/sai/fake/FakeSaiSwitch.cpp | 14 ++++++++++++ fboss/agent/hw/sai/fake/FakeSaiSwitch.h | 8 +++++++ fboss/agent/hw/sai/switch/SaiFdbManager.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fboss/agent/hw/sai/switch/SaiFdbManager.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fboss/agent/hw/sai/switch/SaiManagerTable.cpp | 23 ++++++++++++++++++++ fboss/agent/hw/sai/switch/SaiManagerTable.h | 10 +++++++++ fboss/agent/hw/sai/switch/SaiNeighborManager.cpp | 16 ++++++++++---- fboss/agent/hw/sai/switch/SaiNeighborManager.h | 6 +++++- fboss/agent/if/mpls.thrift | 7 ++++++ fboss/agent/switch_config.thrift | 32 ++++++++++++++++++++++++++++ fboss/agent/test/MockTunManager.h | 1 + fboss/agent/test/RoutingTest.cpp | 2 +- fboss/agent/test/TestUtils.cpp | 107 ++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------- fboss/agent/test/TestUtils.h | 11 ++++++++-- fboss/agent/test/TunInterfaceTest.cpp | 37 ++++++++++++++++++++++++++++++++ 35 files changed, 712 insertions(+), 96 deletions(-) create mode 100644 fboss/agent/hw/bcm/BcmLabeledTunnel.cpp create mode 100644 fboss/agent/hw/bcm/BcmLabeledTunnel.h create mode 100644 fboss/agent/hw/bcm/BcmLabeledTunnelEgress.cpp create mode 100644 fboss/agent/hw/bcm/BcmLabeledTunnelEgress.h create mode 100644 fboss/agent/hw/bcm/oss/BcmLabeledEgress.cpp create mode 100644 fboss/agent/hw/bcm/oss/BcmLabeledTunnel.cpp create mode 100644 fboss/agent/hw/bcm/oss/BcmLabeledTunnelEgress.cpp create mode 100644 fboss/agent/hw/sai/switch/SaiFdbManager.cpp create mode 100644 fboss/agent/hw/sai/switch/SaiFdbManager.h create mode 100644 fboss/agent/test/TunInterfaceTest.cpp All-Series:~/fboss$ All-Series:~/fboss$ cd build/ All-Series:~/fboss/build$ cmake .. -- Found folly: /usr/local -- Found fizz: /usr/local -- Found wangle: /usr/local -- Found FBThrift: /usr/local -- Configuring done CMake Warning (dev) at CMakeLists.txt:591 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "agent_test" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:591 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "agent_test" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:572 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "wedge_qsfp_util" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:572 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "wedge_qsfp_util" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:567 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "cp2112_util" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:567 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "cp2112_util" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:245 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcm_test" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:245 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcm_test" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:229 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "qsfp_service" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:229 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "qsfp_service" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:211 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "wedge_agent" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:211 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "wedge_agent" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "netlink_manager_service_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:186 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "netlink_manager_service_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:186 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "hardware_stats_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:162 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "hardware_stats_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:162 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "switch_config_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:64 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "switch_config_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:64 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fboss_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:117 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fboss_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:117 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "ctrl_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:125 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "ctrl_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:125 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "qsfp_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:173 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "qsfp_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:173 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "platform_config_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:81 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "platform_config_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:81 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcmswitch_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:158 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcmswitch_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:158 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "agent_config_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:72 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "agent_config_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:72 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fb303_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:48 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fb303_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:48 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "transceiver_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:107 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "transceiver_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:107 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "network_address_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:54 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "network_address_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:54 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:276 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fboss_agent" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:276 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "fboss_agent" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "pcap_pubsub_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:166 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "pcap_pubsub_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:166 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "switch_state_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:90 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "switch_state_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:90 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "optic_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:111 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "optic_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:111 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "external_phy_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:99 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "external_phy_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:99 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "mpls_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:58 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "mpls_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:58 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "sflow_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:121 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "sflow_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:121 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:220 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "netlink_manager" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:220 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "netlink_manager" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "sim_ctrl_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:139 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "sim_ctrl_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:139 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcm_config_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:148 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "bcm_config_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:148 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "packettrace_cpp2" links to target "yarpl::yarpl" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:154 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at ThriftCppLibrary.cmake:94 (add_library): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Target "packettrace_cpp2" links to target "rsocket::ReactiveSocket" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? Call Stack (most recent call first): CMakeLists.txt:154 (add_thrift_cpp2_library) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning at CMakeLists.txt:591 (add_executable): Cannot generate a safe runtime search path for target agent_test because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:572 (add_executable): Cannot generate a safe runtime search path for target wedge_qsfp_util because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:567 (add_executable): Cannot generate a safe runtime search path for target cp2112_util because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:245 (add_executable): Cannot generate a safe runtime search path for target bcm_test because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:229 (add_executable): Cannot generate a safe runtime search path for target qsfp_service because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:211 (add_executable): Cannot generate a safe runtime search path for target wedge_agent because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

CMake Warning at CMakeLists.txt:220 (add_executable): Cannot generate a safe runtime search path for target netlink_manager because files in some directories may conflict with libraries in implicit directories:

runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/lib

Some of these libraries may not be found correctly.

-- Generating done -- Build files have been written to: /home/wukuncan/fboss/build All-Series:~/fboss/build$ cd .. All-Series:~/fboss$ cd build/ All-Series:~/fboss/build$ make [ 0%] Built target gtest [ 0%] Generating fboss/agent/if/gen-cpp2/mpls_constants.h, fboss/agent/if/gen-cpp2/mpls_constants.cpp, fboss/agent/if/gen-cpp2/mpls_types.h, fboss/agent/if/gen-cpp2/mpls_types.tcc, fboss/agent/if/gen-cpp2/mpls_types_custom_protocol.h, fboss/agent/if/gen-cpp2/mpls_data.h, fboss/agent/if/gen-cpp2/mpls_data.cpp, fboss/agent/if/gen-cpp2/mpls_types.cpp Scanning dependencies of target mpls_cpp2 [ 0%] Building CXX object CMakeFiles/mpls_cpp2.dir/fboss/agent/if/gen-cpp2/mpls_data.cpp.o [ 0%] Building CXX object CMakeFiles/mpls_cpp2.dir/fboss/agent/if/gen-cpp2/mpls_types.cpp.o [ 0%] Linking CXX static library libmpls_cpp2.a [ 0%] Built target mpls_cpp2 [ 1%] Built target fboss_cpp2 [ 3%] Built target fb303_cpp2 Scanning dependencies of target transceiver_cpp2 [ 3%] Linking CXX static library libtransceiver_cpp2.a [ 4%] Built target transceiver_cpp2 [ 5%] Built target network_address_cpp2 [ 5%] Generating fboss/agent/if/gen-cpp2/optic_constants.h, fboss/agent/if/gen-cpp2/optic_constants.cpp, fboss/agent/if/gen-cpp2/optic_types.h, fboss/agent/if/gen-cpp2/optic_types.tcc, fboss/agent/if/gen-cpp2/optic_types_custom_protocol.h, fboss/agent/if/gen-cpp2/optic_data.h, fboss/agent/if/gen-cpp2/optic_data.cpp, fboss/agent/if/gen-cpp2/optic_types.cpp Scanning dependencies of target optic_cpp2 [ 5%] Building CXX object CMakeFiles/optic_cpp2.dir/fboss/agent/if/gen-cpp2/optic_data.cpp.o [ 6%] Building CXX object CMakeFiles/optic_cpp2.dir/fboss/agent/if/gen-cpp2/optic_types.cpp.o [ 6%] Linking CXX static library liboptic_cpp2.a [ 6%] Built target optic_cpp2 [ 6%] Generating fboss/agent/if/gen-cpp2/ctrl_constants.h, fboss/agent/if/gen-cpp2/ctrl_constants.cpp, fboss/agent/if/gen-cpp2/ctrl_types.h, fboss/agent/if/gen-cpp2/ctrl_types.tcc, fboss/agent/if/gen-cpp2/ctrl_types_custom_protocol.h, fboss/agent/if/gen-cpp2/FbossCtrl.h, fboss/agent/if/gen-cpp2/FbossCtrl.tcc, fboss/agent/if/gen-cpp2/FbossCtrlAsyncClient.h, fboss/agent/if/gen-cpp2/FbossCtrl_custom_protocol.h, fboss/agent/if/gen-cpp2/NeighborListenerClient.h, fboss/agent/if/gen-cpp2/NeighborListenerClient.tcc, fboss/agent/if/gen-cpp2/NeighborListenerClientAsyncClient.h, fboss/agent/if/gen-cpp2/NeighborListenerClient_custom_protocol.h, fboss/agent/if/gen-cpp2/ctrl_data.h, fboss/agent/if/gen-cpp2/ctrl_data.cpp, fboss/agent/if/gen-cpp2/ctrl_types.cpp, fboss/agent/if/gen-cpp2/FbossCtrl.cpp, fboss/agent/if/gen-cpp2/FbossCtrlAsyncClient.cpp, fboss/agent/if/gen-cpp2/FbossCtrl_processmap_binary.cpp, fboss/agent/if/gen-cpp2/FbossCtrl_processmap_compact.cpp, fboss/agent/if/gen-cpp2/NeighborListenerClient.cpp, fboss/agent/if/gen-cpp2/NeighborListenerClientAsyncClient.cpp, fboss/agent/if/gen-cpp2/NeighborListenerClient_processmap_binary.cpp, fboss/agent/if/gen-cpp2/NeighborListenerClient_processmap_compact.cpp [WARNING:/home/wukuncan/fboss/common/fb303/if/fb303.thrift:19] Uncaptured doctext at on line 17. Scanning dependencies of target ctrl_cpp2 [ 6%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/ctrl_data.cpp.o [ 6%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/ctrl_types.cpp.o [ 7%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/FbossCtrl.cpp.o [ 7%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/FbossCtrlAsyncClient.cpp.o [ 7%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/FbossCtrl_processmap_binary.cpp.o [ 7%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/FbossCtrl_processmap_compact.cpp.o [ 8%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/NeighborListenerClient.cpp.o [ 8%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/NeighborListenerClientAsyncClient.cpp.o [ 8%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/NeighborListenerClient_processmap_binary.cpp.o [ 8%] Building CXX object CMakeFiles/ctrl_cpp2.dir/fboss/agent/if/gen-cpp2/NeighborListenerClient_processmap_compact.cpp.o [ 9%] Linking CXX static library libctrl_cpp2.a [ 9%] Built target ctrl_cpp2 [ 9%] Generating fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_constants.h, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_constants.cpp, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_types.h, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_types.tcc, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_types_custom_protocol.h, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService.h, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService.tcc, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerServiceAsyncClient.h, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService_custom_protocol.h, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_data.h, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_data.cpp, fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_types.cpp, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService.cpp, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerServiceAsyncClient.cpp, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService_processmap_binary.cpp, fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService_processmap_compact.cpp [WARNING:/home/wukuncan/fboss/common/fb303/if/fb303.thrift:19] Uncaptured doctext at on line 17. Scanning dependencies of target netlink_manager_service_cpp2 [ 10%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_data.cpp.o [ 10%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/netlink_manager_service_types.cpp.o [ 10%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService.cpp.o [ 10%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/NetlinkManagerServiceAsyncClient.cpp.o [ 11%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService_processmap_binary.cpp.o [ 11%] Building CXX object CMakeFiles/netlink_manager_service_cpp2.dir/fboss/netlink_manager/if/gen-cpp2/NetlinkManagerService_processmap_compact.cpp.o [ 11%] Linking CXX static library libnetlink_manager_service_cpp2.a [ 11%] Built target netlink_manager_service_cpp2 [ 12%] Built target hardware_stats_cpp2 [ 13%] Generating fboss/agent/gen-cpp2/switch_config_constants.h, fboss/agent/gen-cpp2/switch_config_constants.cpp, fboss/agent/gen-cpp2/switch_config_types.h, fboss/agent/gen-cpp2/switch_config_types.tcc, fboss/agent/gen-cpp2/switch_config_types_custom_protocol.h, fboss/agent/gen-cpp2/switch_config_data.h, fboss/agent/gen-cpp2/switch_config_data.cpp, fboss/agent/gen-cpp2/switch_config_types.cpp Scanning dependencies of target switch_config_cpp2 [ 13%] Building CXX object CMakeFiles/switch_config_cpp2.dir/fboss/agent/gen-cpp2/switch_config_data.cpp.o [ 13%] Building CXX object CMakeFiles/switch_config_cpp2.dir/fboss/agent/gen-cpp2/switch_config_types.cpp.o [ 13%] Linking CXX static library libswitch_config_cpp2.a [ 13%] Built target switch_config_cpp2 [ 14%] Generating fboss/qsfp_service/if/gen-cpp2/qsfp_constants.h, fboss/qsfp_service/if/gen-cpp2/qsfp_constants.cpp, fboss/qsfp_service/if/gen-cpp2/qsfp_types.h, fboss/qsfp_service/if/gen-cpp2/qsfp_types.tcc, fboss/qsfp_service/if/gen-cpp2/qsfp_types_custom_protocol.h, fboss/qsfp_service/if/gen-cpp2/QsfpService.h, fboss/qsfp_service/if/gen-cpp2/QsfpService.tcc, fboss/qsfp_service/if/gen-cpp2/QsfpServiceAsyncClient.h, fboss/qsfp_service/if/gen-cpp2/QsfpService_custom_protocol.h, fboss/qsfp_service/if/gen-cpp2/qsfp_data.h, fboss/qsfp_service/if/gen-cpp2/qsfp_data.cpp, fboss/qsfp_service/if/gen-cpp2/qsfp_types.cpp, fboss/qsfp_service/if/gen-cpp2/QsfpService.cpp, fboss/qsfp_service/if/gen-cpp2/QsfpServiceAsyncClient.cpp, fboss/qsfp_service/if/gen-cpp2/QsfpService_processmap_binary.cpp, fboss/qsfp_service/if/gen-cpp2/QsfpService_processmap_compact.cpp [WARNING:/home/wukuncan/fboss/common/fb303/if/fb303.thrift:19] Uncaptured doctext at on line 17. Scanning dependencies of target qsfp_cpp2 [ 14%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/qsfp_data.cpp.o [ 14%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/qsfp_types.cpp.o [ 14%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/QsfpService.cpp.o [ 15%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/QsfpServiceAsyncClient.cpp.o [ 15%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/QsfpService_processmap_binary.cpp.o [ 15%] Building CXX object CMakeFiles/qsfp_cpp2.dir/fboss/qsfp_service/if/gen-cpp2/QsfpService_processmap_compact.cpp.o [ 15%] Linking CXX static library libqsfp_cpp2.a [ 15%] Built target qsfp_cpp2 [ 16%] Built target bcm_config_cpp2 [ 16%] Generating fboss/lib/phy/gen-cpp2/external_phy_constants.h, fboss/lib/phy/gen-cpp2/external_phy_constants.cpp, fboss/lib/phy/gen-cpp2/external_phy_types.h, fboss/lib/phy/gen-cpp2/external_phy_types.tcc, fboss/lib/phy/gen-cpp2/external_phy_types_custom_protocol.h, fboss/lib/phy/gen-cpp2/external_phy_data.h, fboss/lib/phy/gen-cpp2/external_phy_data.cpp, fboss/lib/phy/gen-cpp2/external_phy_types.cpp Scanning dependencies of target external_phy_cpp2 [ 16%] Building CXX object CMakeFiles/external_phy_cpp2.dir/fboss/lib/phy/gen-cpp2/external_phy_data.cpp.o [ 16%] Building CXX object CMakeFiles/external_phy_cpp2.dir/fboss/lib/phy/gen-cpp2/external_phy_types.cpp.o [ 16%] Linking CXX static library libexternal_phy_cpp2.a [ 16%] Built target external_phy_cpp2 [ 16%] Generating fboss/agent/gen-cpp2/platform_config_constants.h, fboss/agent/gen-cpp2/platform_config_constants.cpp, fboss/agent/gen-cpp2/platform_config_types.h, fboss/agent/gen-cpp2/platform_config_types.tcc, fboss/agent/gen-cpp2/platform_config_types_custom_protocol.h, fboss/agent/gen-cpp2/platform_config_data.h, fboss/agent/gen-cpp2/platform_config_data.cpp, fboss/agent/gen-cpp2/platform_config_types.cpp Scanning dependencies of target platform_config_cpp2 [ 16%] Building CXX object CMakeFiles/platform_config_cpp2.dir/fboss/agent/gen-cpp2/platform_config_data.cpp.o [ 16%] Building CXX object CMakeFiles/platform_config_cpp2.dir/fboss/agent/gen-cpp2/platform_config_types.cpp.o [ 16%] Linking CXX static library libplatform_config_cpp2.a [ 16%] Built target platform_config_cpp2 [ 17%] Built target bcmswitch_cpp2 [ 17%] Generating fboss/agent/gen-cpp2/agent_config_constants.h, fboss/agent/gen-cpp2/agent_config_constants.cpp, fboss/agent/gen-cpp2/agent_config_types.h, fboss/agent/gen-cpp2/agent_config_types.tcc, fboss/agent/gen-cpp2/agent_config_types_custom_protocol.h, fboss/agent/gen-cpp2/agent_config_data.h, fboss/agent/gen-cpp2/agent_config_data.cpp, fboss/agent/gen-cpp2/agent_config_types.cpp Scanning dependencies of target agent_config_cpp2 [ 17%] Building CXX object CMakeFiles/agent_config_cpp2.dir/fboss/agent/gen-cpp2/agent_config_data.cpp.o [ 17%] Building CXX object CMakeFiles/agent_config_cpp2.dir/fboss/agent/gen-cpp2/agent_config_types.cpp.o [ 17%] Linking CXX static library libagent_config_cpp2.a [ 17%] Built target agent_config_cpp2 [ 18%] Built target packettrace_cpp2 [ 21%] Built target pcap_pubsub_cpp2 [ 22%] Generating fboss/agent/gen-cpp2/switch_state_constants.h, fboss/agent/gen-cpp2/switch_state_constants.cpp, fboss/agent/gen-cpp2/switch_state_types.h, fboss/agent/gen-cpp2/switch_state_types.tcc, fboss/agent/gen-cpp2/switch_state_types_custom_protocol.h, fboss/agent/gen-cpp2/switch_state_data.h, fboss/agent/gen-cpp2/switch_state_data.cpp, fboss/agent/gen-cpp2/switch_state_types.cpp Scanning dependencies of target switch_state_cpp2 [ 22%] Building CXX object CMakeFiles/switch_state_cpp2.dir/fboss/agent/gen-cpp2/switch_state_data.cpp.o [ 22%] Building CXX object CMakeFiles/switch_state_cpp2.dir/fboss/agent/gen-cpp2/switch_state_types.cpp.o [ 22%] Linking CXX static library libswitch_state_cpp2.a [ 22%] Built target switch_state_cpp2 [ 23%] Built target sflow_cpp2 [ 23%] Generating fboss/agent/hw/sim/gen-cpp2/sim_ctrl_constants.h, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_constants.cpp, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_types.h, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_types.tcc, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_types_custom_protocol.h, fboss/agent/hw/sim/gen-cpp2/SimCtrl.h, fboss/agent/hw/sim/gen-cpp2/SimCtrl.tcc, fboss/agent/hw/sim/gen-cpp2/SimCtrlAsyncClient.h, fboss/agent/hw/sim/gen-cpp2/SimCtrl_custom_protocol.h, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_data.h, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_data.cpp, fboss/agent/hw/sim/gen-cpp2/sim_ctrl_types.cpp, fboss/agent/hw/sim/gen-cpp2/SimCtrl.cpp, fboss/agent/hw/sim/gen-cpp2/SimCtrlAsyncClient.cpp, fboss/agent/hw/sim/gen-cpp2/SimCtrl_processmap_binary.cpp, fboss/agent/hw/sim/gen-cpp2/SimCtrl_processmap_compact.cpp [WARNING:/home/wukuncan/fboss/common/fb303/if/fb303.thrift:19] Uncaptured doctext at on line 17. Scanning dependencies of target sim_ctrl_cpp2 [ 23%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/sim_ctrl_data.cpp.o [ 23%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/sim_ctrl_types.cpp.o [ 23%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/SimCtrl.cpp.o [ 24%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/SimCtrlAsyncClient.cpp.o [ 24%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/SimCtrl_processmap_binary.cpp.o [ 24%] Building CXX object CMakeFiles/sim_ctrl_cpp2.dir/fboss/agent/hw/sim/gen-cpp2/SimCtrl_processmap_compact.cpp.o [ 24%] Linking CXX static library libsim_ctrl_cpp2.a [ 24%] Built target sim_ctrl_cpp2 Scanning dependencies of target fboss_agent [ 24%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/AgentConfig.cpp.o [ 24%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/AlpmUtils.cpp.o [ 24%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/ApplyThriftConfig.cpp.o [ 25%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/ArpCache.cpp.o [ 25%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/ArpHandler.cpp.o [ 25%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PcapFile.cpp.o [ 25%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PcapPkt.cpp.o [ 25%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PcapQueue.cpp.o [ 26%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PcapWriter.cpp.o [ 26%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PktCapture.cpp.o [ 26%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/capture/PktCaptureManager.cpp.o [ 26%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/DHCPv4Handler.cpp.o [ 27%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/DHCPv6Handler.cpp.o [ 27%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmAclTable.cpp.o [ 27%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmAPI.cpp.o [ 28%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmConfig.cpp.o [ 28%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmControlPlaneQueueManager.cpp.o [ 28%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmCosQueueManager.cpp.o [ 28%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmEgress.cpp.o [ 28%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmHost.cpp.o [ 29%] Building CXX object CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmHostKey.cpp.o In file included from /usr/local/include/folly/Expected.h:34:0, from /usr/local/include/folly/dynamic.h:65, from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:12, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10: /usr/local/include/folly/Optional.h: In instantiation of ‘constexpr bool folly::operator!=(const folly::Optional&, const folly::Optional&) [with U = facebook::fboss::InterfaceID; V = facebook::fboss::InterfaceID]’: /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:50:37: required from here /usr/local/include/folly/Optional.h:508:14: error: ambiguous overload for ‘operator==’ (operand types are ‘const folly::Optional’ and ‘const folly::Optional’) return !(a == b);

/usr/local/include/folly/Optional.h:496:16: note: candidate: constexpr bool folly::operator==(const folly::Optional<T>&, const folly::Optional<V>&) [with U = facebook::fboss::InterfaceID; V = facebook::fboss::InterfaceID]
 constexpr bool operator==(const Optional<U>& a, const Optional<V>& b) {
                ^~~~~~~~
/usr/local/include/folly/Optional.h:486:16: note: candidate: constexpr bool folly::operator==(const U&, const folly::Optional<V>&) [with U = folly::Optional<facebook::fboss::InterfaceID>; V = facebook::fboss::InterfaceID]
 constexpr bool operator==(const U& a, const Optional<V>& b) {
                ^~~~~~~~
/usr/local/include/folly/Optional.h:476:16: note: candidate: constexpr bool folly::operator==(const folly::Optional<T>&, const V&) [with U = facebook::fboss::InterfaceID; V = folly::Optional<facebook::fboss::InterfaceID>]
 constexpr bool operator==(const Optional<U>& a, const V& b) {
                ^~~~~~~~
In file included from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10:0:
/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:59:17: note: candidate: bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::Optional<facebook::fboss::InterfaceID>; Base = folly::detail::ArchetypeRoot<facebook::fboss::IHostKey>]
     friend bool operator==(SelfType const& lhs, SelfType const& rhs);
                 ^~~~~~~~
In file included from /usr/local/include/folly/Poly.h:51:0,
                 from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:14,
                 from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16,
                 from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10:
/usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘decltype(auto) folly::detail::PolyNode<I, Tail>::_polyCall_(As&& ...) const [with long unsigned int K = 7; As = {const folly::detail::PolyVal<facebook::fboss::IHostKey>&}; I = facebook::fboss::IHostKey; Tail = folly::detail::PolyRoot<facebook::fboss::IHostKey>]’:
/usr/local/include/folly/detail/PolyDetail.h:720:15:   required by substitution of ‘template<long unsigned int N, class This, class ... As> static decltype (static_cast<This&&>(_this)._polyCall_<N>(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::detail::PolyVal<facebook::fboss::IHostKey>&; As = {const folly::detail::PolyVal<facebook::fboss::IHostKey>&}]’
/usr/local/include/folly/Poly.h:237:44:   required by substitution of ‘template<long unsigned int N, class This, class ... As> decltype (folly::detail::PolyAccess:: call<N>(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::detail::PolyVal<facebook::fboss::IHostKey>&; As = {const folly::detail::PolyVal<facebook::fboss::IHostKey>&}]’
/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:29:   required from ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyVal<facebook::fboss::IHostKey>; Base = folly::detail::ArchetypeRoot<facebook::fboss::IHostKey>]’
/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16:   required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::detail::PolyVal<facebook::fboss::IHostKey>]’
/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28:   required by substitution of ‘template<class T> using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq<T>), (& lt<T>), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq<T>), (& lt<T>), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal<facebook::fboss::IHostKey>]’
/usr/local/include/folly/detail/PolyDetail.h:229:66:   required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t<Dst> > [with I = std::decay<facebook::fboss::IHostKey>::type; T = folly::detail::PolyVal<facebook::fboss::IHostKey>]’
/usr/local/include/folly/detail/PolyDetail.h:904:5:   required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type <anonymous>, typename std::enable_if<std::is_constructible<typename folly::detail::XRef_<B>::type::apply<U>, T>::value, int>::type <anonymous>, class> std::true_type folly::detail::modelsInterface_(int) [with T = const folly::detail::PolyVal<facebook::fboss::IHostKey>&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal<facebook::fboss::IHostKey>; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type <anonymous> = <missing>; typename std::enable_if<std::is_constructible<typename folly::detail::XRef_<B>::type::apply<U>, T>::value, int>::type <anonymous> = <missing>; <template-parameter-1-6> = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::addr>, std::integral_constant<folly::Optional<facebook::fboss::InterfaceID> (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::str>, std::integral_constant<bool (*)(const folly::detail::PolyVal<facebook::fboss::IHostKey>&, const folly::detail::PolyVal<facebook::fboss::IHostKey>&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal<facebook::fboss::IHostKey> > >, std::integral_constant<bool (*)(const folly::detail::PolyVal<facebook::fboss::IHostKey>&, const folly::detail::PolyVal<facebook::fboss::IHostKey>&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal<facebook::fboss::IHostKey> > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator<int> > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::*)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot<facebook::fboss::IHostKey> > >::tunnelLabelStack> >]’
/usr/local/include/folly/detail/PolyDetail.h:910:57:   required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal<facebook::fboss::IHostKey>&, facebook::fboss::IHostKey>’
/usr/local/include/folly/Poly.h:521:76:   required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type <anonymous> > folly::detail::PolyVal<facebook::fboss::IHostKey>::PolyVal(T&&) [with T = const folly::detail::PolyVal<facebook::fboss::IHostKey>&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type <anonymous> = <missing>]’
/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24:   required from here
/usr/local/include/folly/detail/PolyDetail.h:799:62: error: could not convert ‘as#0’ from ‘const folly::detail::PolyVal<facebook::fboss::IHostKey>’ to ‘folly::Poly<const facebook::fboss::IHostKey&>’
     return std::get<K>(select<I>(*PolyAccess::vtable(*this)))(
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
         *PolyAccess::data(*this), static_cast<As&&>(as)...);

/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp: In instantiation of ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyVal; Base = folly::detail::ArchetypeRoot]’: /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16: required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::detail::PolyVal]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:38: error: void value not ignored as it ought to be return folly::poly_call<7>(lhs, rhs); ^ In file included from /usr/local/include/folly/Poly.h:51:0, from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:14, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10: /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘decltype(auto) folly::detail::PolyNode<I, Tail>::polyCall(As&& ...) const [with long unsigned int K = 6; As = {const folly::detail::PolyVal&}; I = facebook::fboss::IHostKey; Tail = folly::detail::PolyRoot]’: /usr/local/include/folly/detail/PolyDetail.h:720:15: required by substitution of ‘template<long unsigned int N, class This, class ... As> static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::detail::PolyVal&; As = {const folly::detail::PolyVal&}]’ /usr/local/include/folly/Poly.h:237:44: required by substitution of ‘template<long unsigned int N, class This, class ... As> decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::detail::PolyVal&; As = {const folly::detail::PolyVal&}]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:29: required from ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyVal; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::detail::PolyVal]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /usr/local/include/folly/detail/PolyDetail.h:799:62: error: could not convert ‘as#0’ from ‘const folly::detail::PolyVal’ to ‘folly::Poly<const facebook::fboss::IHostKey&>’ return std::get(select(PolyAccess::vtable(this)))(

         *PolyAccess::data(*this), static_cast<As&&>(as)...);

/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp: In instantiation of ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyVal; Base = folly::detail::ArchetypeRoot]’: /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::detail::PolyVal]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:38: error: void value not ignored as it ought to be return folly::poly_call<6>(lhs, rhs); ^ In file included from /usr/local/include/folly/Poly.h:51:0, from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:14, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10: /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘decltype(auto) folly::detail::PolyNode<I, Tail>::polyCall(As&& ...) const [with long unsigned int K = 7; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}; I = facebook::fboss::IHostKey; Tail = folly::detail::PolyRoot<const facebook::fboss::IHostKey&>]’: /usr/local/include/folly/detail/PolyDetail.h:720:15: required by substitution of ‘template<long unsigned int N, class This, class ... As> static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}]’ /usr/local/include/folly/Poly.h:237:44: required by substitution of ‘template<long unsigned int N, class This, class ... As> decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:29: required from ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16: required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /usr/local/include/folly/detail/PolyDetail.h:799:62: error: could not convert ‘as#0’ from ‘const folly::detail::PolyRef<const facebook::fboss::IHostKey&>’ to ‘folly::Poly<const facebook::fboss::IHostKey&>’ return std::get(select(PolyAccess::vtable(this)))(

         *PolyAccess::data(*this), static_cast<As&&>(as)...);

/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp: In instantiation of ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’: /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16: required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay<const facebook::fboss::IHostKey&>::type; T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; I = const facebook::fboss::IHostKey&; U = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = ]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&, const facebook::fboss::IHostKey&>’ /usr/local/include/folly/Poly.h:595:76: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:38: error: void value not ignored as it ought to be return folly::poly_call<7>(lhs, rhs); ^ In file included from /usr/local/include/folly/Poly.h:51:0, from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:14, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10: /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘decltype(auto) folly::detail::PolyNode<I, Tail>::polyCall(As&& ...) const [with long unsigned int K = 6; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}; I = facebook::fboss::IHostKey; Tail = folly::detail::PolyRoot<const facebook::fboss::IHostKey&>]’: /usr/local/include/folly/detail/PolyDetail.h:720:15: required by substitution of ‘template<long unsigned int N, class This, class ... As> static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}]’ /usr/local/include/folly/Poly.h:237:44: required by substitution of ‘template<long unsigned int N, class This, class ... As> decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; As = {const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&}]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:29: required from ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: [ skipping 9 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /usr/local/include/folly/detail/PolyDetail.h:799:62: error: could not convert ‘as#0’ from ‘const folly::detail::PolyRef<const facebook::fboss::IHostKey&>’ to ‘folly::Poly<const facebook::fboss::IHostKey&>’ return std::get(select(PolyAccess::vtable(this)))(

         *PolyAccess::data(*this), static_cast<As&&>(as)...);

/home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp: In instantiation of ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’: /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay<const facebook::fboss::IHostKey&>::type; T = folly::detail::PolyRef<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&; I = const facebook::fboss::IHostKey&; U = folly::detail::PolyRef<const facebook::fboss::IHostKey&>; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = ]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyRef<const facebook::fboss::IHostKey&>&, const facebook::fboss::IHostKey&>’ /usr/local/include/folly/Poly.h:595:76: [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::detail::PolyVal]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = const folly::detail::PolyVal&; I = facebook::fboss::IHostKey; U = folly::detail::PolyVal; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::eq<folly::detail::PolyVal > >, std::integral_constant<bool ()(const folly::detail::PolyVal&, const folly::detail::PolyVal&), facebook::fboss::IHostKey::lt<folly::detail::PolyVal > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<const folly::detail::PolyVal&, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal(T&&) [with T = const folly::detail::PolyVal&; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:62:24: required from here /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:38: error: void value not ignored as it ought to be return folly::poly_call<6>(lhs, rhs); ^ In file included from /usr/local/include/folly/Poly.h:51:0, from /home/wukuncan/fboss/fboss/agent/state/RouteNextHop.h:14, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:16, from /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:10: /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::Poly&; As = {const folly::Poly&}; decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) = bool]’: /usr/local/include/folly/Poly.h:240:37: required from ‘decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::Poly&; As = {const folly::Poly&}; decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) = bool]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:29: required from ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::Poly; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16: required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::Poly]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = folly::Poly; I = facebook::fboss::IHostKey; U = folly::Poly; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::eq<folly::Poly > >, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::lt<folly::Poly > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<folly::Poly, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal<T, >(T&&) [with T = folly::Poly; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:98:35: required from here /usr/local/include/folly/detail/PolyDetail.h:723:5: error: static assertion failed: When passing a Poly<> object to call(), you must explicitly say which Interface to dispatch to, as in call<0, MyInterface>(self, args...) static_assert( ^~~~~ /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::Poly&; As = {const folly::Poly&}; decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) = bool]’: /usr/local/include/folly/Poly.h:240:37: required from ‘decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::Poly&; As = {const folly::Poly&}; decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) = bool]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:29: required from ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::Poly; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::Poly]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = folly::Poly; I = facebook::fboss::IHostKey; U = folly::Poly; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::eq<folly::Poly > >, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::lt<folly::Poly > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<folly::Poly, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal<T, >(T&&) [with T = folly::Poly; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:98:35: required from here /usr/local/include/folly/detail/PolyDetail.h:723:5: error: static assertion failed: When passing a Poly<> object to call(), you must explicitly say which Interface to dispatch to, as in call<0, MyInterface>(self, args...) /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::Poly<const facebook::fboss::IHostKey&>&; As = {const folly::Poly<const facebook::fboss::IHostKey&>&}; decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) = bool]’: /usr/local/include/folly/Poly.h:240:37: required from ‘decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 7; This = const folly::Poly<const facebook::fboss::IHostKey&>&; As = {const folly::Poly<const facebook::fboss::IHostKey&>&}; decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) = bool]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:88:29: required from ‘bool facebook::fboss::operator==(const SelfType&, const SelfType&) [with SelfType = folly::Poly<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:64:16: required from ‘static bool facebook::fboss::IHostKey::eq(const T&, const T&) [with T = folly::Poly<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay<const facebook::fboss::IHostKey&>::type; T = folly::Poly<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = folly::Poly; I = facebook::fboss::IHostKey; U = folly::Poly; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::eq<folly::Poly > >, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::lt<folly::Poly > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<folly::Poly, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal<T, >(T&&) [with T = folly::Poly; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:98:35: required from here /usr/local/include/folly/detail/PolyDetail.h:723:5: error: static assertion failed: When passing a Poly<> object to call(), you must explicitly say which Interface to dispatch to, as in call<0, MyInterface>(self, args...) /usr/local/include/folly/detail/PolyDetail.h: In instantiation of ‘static decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) folly::detail::PolyAccess::call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::Poly<const facebook::fboss::IHostKey&>&; As = {const folly::Poly<const facebook::fboss::IHostKey&>&}; decltype (static_cast<This&&>(_this).polyCall(static_cast<As&>(folly::detail::PolyAccess::call::args) ...)) = bool]’: /usr/local/include/folly/Poly.h:240:37: required from ‘decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) folly::poly_call(This&&, As&& ...) [with long unsigned int N = 6; This = const folly::Poly<const facebook::fboss::IHostKey&>&; As = {const folly::Poly<const facebook::fboss::IHostKey&>&}; decltype (folly::detail::PolyAccess:: call(static_cast<This&&>(_this), static_cast<As&>(folly::poly_call::as) ...)) = bool]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:83:29: required from ‘bool facebook::fboss::operator<(const SelfType&, const SelfType&) [with SelfType = folly::Poly<const facebook::fboss::IHostKey&>; Base = folly::detail::ArchetypeRoot]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:69:16: required from ‘static bool facebook::fboss::IHostKey::lt(const T&, const T&) [with T = folly::Poly<const facebook::fboss::IHostKey&>]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay<const facebook::fboss::IHostKey&>::type; T = folly::Poly<const facebook::fboss::IHostKey&>]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.h:83:28: required by substitution of ‘template using Members = typename decltype (folly::detail::deduceMembers((& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)))::Members<(& T:: getVrf), (& T:: addr), (& T:: intfID), (& T:: hasLabel), (& T:: getLabel), (& T:: str), (& eq), (& lt), (& T:: needsMplsTunnel), (& T:: tunnelLabelStack)> [with T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:229:66: required by substitution of ‘template<class I, class T> using MembersOf = typename I::Members<folly::remove_cvref_t > [with I = std::decay::type; T = folly::Poly]’ /usr/local/include/folly/detail/PolyDetail.h:904:5: required by substitution of ‘template<class T, class I, class U, typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type , typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type , class> std::truetype folly::detail::modelsInterface(int) [with T = folly::Poly; I = facebook::fboss::IHostKey; U = folly::Poly; typename std::enable_if<folly::Negation<std::is_base_of<folly::detail::PolyBase, U> >::value, int>::type = ; typename std::enable_if<std::isconstructible<typename folly::detail::XRef::type::apply, T>::value, int>::type = ; = folly::detail::TypeList<std::integral_constant<int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getVrf>, std::integral_constant<folly::IPAddress (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::addr>, std::integral_constant<folly::Optional (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::intfID>, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::hasLabel>, std::integral_constant<unsigned int (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::getLabel>, std::integral_constant<std::__cxx11::basic_string<char, std::char_traits, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::str>, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::eq<folly::Poly > >, std::integral_constant<bool ()(const folly::Poly&, const folly::Poly&), facebook::fboss::IHostKey::lt<folly::Poly > >, std::integral_constant<bool (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::needsMplsTunnel>, std::integral_constant<std::vector<int, std::allocator > (facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::)() const, &facebook::fboss::IHostKey::Interface<folly::detail::PolyNode<facebook::fboss::IHostKey, folly::detail::PolyRoot > >::tunnelLabelStack> >]’ /usr/local/include/folly/detail/PolyDetail.h:910:57: required from ‘struct folly::detail::ModelsInterface<folly::Poly, facebook::fboss::IHostKey>’ /usr/local/include/folly/Poly.h:521:76: required by substitution of ‘template<class T, typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type > folly::detail::PolyVal::PolyVal<T, >(T&&) [with T = folly::Poly; typename std::enable_if<folly::detail::ModelsInterface<T, facebook::fboss::IHostKey>::value, int>::type = ]’ /home/wukuncan/fboss/fboss/agent/hw/bcm/BcmHostKey.cpp:98:35: required from here /usr/local/include/folly/detail/PolyDetail.h:723:5: error: static assertion failed: When passing a Poly<> object to call(), you must explicitly say which Interface to dispatch to, as in call<0, MyInterface>(self, args...) /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = int; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getVrf>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined static R call(D& d, As... as) { ^~~~ /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::IPAddress; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<folly::IPAddress (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::addr>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::Optional; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<folly::Optional (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::intfID>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::hasLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = unsigned int; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<unsigned int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::cxx11::basic_string; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<std::cxx11::basic_string (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::str>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::eq >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::lt >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::needsMplsTunnel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::vector; D = const folly::detail::Data; As = {}; T = const facebook::fboss::BcmHostKey&; User = std::integral_constant<std::vector (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::tunnelLabelStack>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = int; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getVrf>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::IPAddress; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<folly::IPAddress (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::addr>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::Optional; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<folly::Optional (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::intfID>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::hasLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = unsigned int; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<unsigned int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::cxx11::basic_string; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<std::cxx11::basic_string (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::str>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::eq >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::lt >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::needsMplsTunnel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::vector; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&; User = std::integral_constant<std::vector (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::tunnelLabelStack>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = int; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getVrf>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::IPAddress; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<folly::IPAddress (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::addr>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = folly::Optional; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<folly::Optional (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::intfID>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::hasLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = unsigned int; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<unsigned int (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::getLabel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::cxx11::basic_string; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<std::cxx11::basic_string (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::str>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::eq >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {folly::Poly<const facebook::fboss::IHostKey&>}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<bool ()(const facebook::fboss::BcmHostKey&, const facebook::fboss::BcmHostKey&), facebook::fboss::IHostKey::lt >; I = facebook::fboss::IHostKey; Args = {const facebook::fboss::BcmHostKey&}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = bool; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<bool (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::needsMplsTunnel>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined /usr/local/include/folly/detail/PolyDetail.h:522:16: warning: ‘static R folly::detail::ThunkFn<T, User, I, folly::detail::TypeList<Args ...>, std::integral_constant<bool, ((! std::is_const<typename std::remove_reference< >::type>::value) || folly::detail::IsConstMember::value)> >::operator folly::detail::FnPtr<R, D&, As ...>() const::_::call(D&, As ...) [with R = std::vector; D = const folly::detail::Data; As = {}; T = facebook::fboss::BcmHostKey&&; User = std::integral_constant<std::vector (facebook::fboss::BcmHostKey::)() const, &facebook::fboss::BcmHostKey::tunnelLabelStack>; I = facebook::fboss::IHostKey; Args = {}]’ used but never defined CMakeFiles/fboss_agent.dir/build.make:590: recipe for target 'CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmHostKey.cpp.o' failed make[2]: [CMakeFiles/fboss_agent.dir/fboss/agent/hw/bcm/BcmHostKey.cpp.o] Error 1 CMakeFiles/Makefile2:907: recipe for target 'CMakeFiles/fboss_agent.dir/all' failed make[1]: [CMakeFiles/fboss_agent.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2