https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: net-wireless/kismet-2020.09.1 fails to compile. Discovered on: amd64 (internal ref: tinderbox) NOTE: This machine uses a clang/LLVM toolchain. If you think that this issue is strictly related to clang/LLVM please block bug 408963. If you think that this issue is strictly related to the LLD linker, please block bug 731004. This machine uses also GLIBC-2.32. If you think that this issue is strictly related to GLIBC please block bug 736174.
Created attachment 659090 [details] build.log build log and emerge --info
Per the author of kismet, this is a protobuf issue. I'm going to keep monitoring in case you all disagree. CXX="clang++" seems to replicate this bug for me.
Additional context of why we think this is protobuf related: https://github.com/mumble-voip/mumble/issues/4577
1. protobuf-3.14.0 (GCC) + kismet (Clang) Fails (original issue) 2. protobuf-3.14.0 (Clang) + kismet (Clang) Works fine 3. protobuf-3.14.0 (GCC, -std=gnu++17 added to CXXFLAGS) + kismet (Clang) Fails the same way as 1 clang++ -std=gnu++17 -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -o kismet util.cc.o macaddr.cc.o uuid.cc.o xxhash.cc.o boost_like_hash.cc.o sqlite3_cpp11.cc.o globalregistry.cc.o eventbus.cc.o packet.cc.o configfile.cc.o getopt.cc.o battery.cc.o ipctracker_v2.cc.o protobuf_cpp/kismet.pb.cc.o protobuf_cpp/http.pb.cc.o protobuf_cpp/datasource.pb.cc.o protobuf_cpp/linuxbluetooth.pb.cc.o protobuf_cpp/eventbus.pb.cc.o kis_external.cc.o dlttracker.cc.o antennatracker.cc.o datasourcetracker.cc.o kis_datasource.cc.o datasource_linux_bluetooth.cc.o datasource_rtl433.cc.o datasource_rtlamr.cc.o datasource_rtladsb.cc.o datasource_ti_cc_2540.cc.o datasource_ti_cc_2531.cc.o datasource_ubertooth_one.cc.o datasource_nrf_51822.cc.o datasource_nxp_kw41z.cc.o datasource_scan.cc.o kis_net_beast_httpd.cc.o kis_httpd_registry.cc.o system_monitor.cc.o base64.cc.o gpstracker.cc.o kis_gps.cc.o gpsnmea_v2.cc.o gpsserial_v3.cc.o gpstcp_v2.cc.o gpsgpsd_v3.cc.o gpsfake.cc.o gpsweb.cc.o packetchain.cc.o packet_filter.cc.o class_filter.cc.o trackedelement.cc.o trackedelement_workers.cc.o trackedcomponent.cc.o entrytracker.cc.o trackedlocation.cc.o devicetracker_component.cc.o devicetracker_view.cc.o devicetracker_view_workers.cc.o kis_server_announce.cc.o jsoncpp.cc.o json_adapter.cc.o plugintracker.cc.o alertracker.cc.o timetracker.cc.o channeltracker2.cc.o devicetracker.cc.o devicetracker_httpd.cc.o kis_dlt.cc.o kis_dlt_ppi.cc.o kis_dlt_radiotap.cc.o kis_dlt_btle_ll_radio.cc.o kaitaistream.cc.o dot11_parsers/dot11_ie.cc.o dot11_parsers/dot11_ie_7_country.cc.o dot11_parsers/dot11_ie_11_qbss.cc.o dot11_parsers/dot11_ie_33_power.cc.o dot11_parsers/dot11_ie_36_supported_channels.cc.o dot11_parsers/dot11_ie_45_ht_cap.cc.o dot11_parsers/dot11_ie_48_rsn.cc.o dot11_parsers/dot11_ie_52_rmm_neighbor.cc.o dot11_parsers/dot11_ie_54_mobility.cc.o dot11_parsers/dot11_ie_55_fastbss.cc.o dot11_parsers/dot11_ie_61_ht_op.cc.o dot11_parsers/dot11_ie_70_rm_capabilities.cc.o dot11_parsers/dot11_ie_133_cisco_ccx.cc.o dot11_parsers/dot11_ie_150_vendor.cc.o dot11_parsers/dot11_ie_150_cisco_powerlevel.cc.o dot11_parsers/dot11_ie_191_vht_cap.cc.o dot11_parsers/dot11_ie_192_vht_op.cc.o dot11_parsers/dot11_ie_127_extended_capabilities.cc.o dot11_parsers/dot11_ie_221_vendor.cc.o dot11_parsers/dot11_ie_221_ms_wps.cc.o dot11_parsers/dot11_ie_221_ms_wmm.cc.o dot11_parsers/dot11_ie_221_dji_droneid.cc.o dot11_parsers/dot11_ie_221_wfa_wpa.cc.o dot11_parsers/dot11_ie_221_cisco_client_mfp.cc.o dot11_parsers/dot11_ie_221_wpa_transition.cc.o dot11_parsers/dot11_ie_221_rsn_pmkid.cc.o dot11_parsers/dot11_ie_221_wfa.cc.o dot11_parsers/dot11_ie_255_ext_tag.cc.o dot11_parsers/dot11_action.cc.o dot11_parsers/dot11_wpa_eap.cc.o dot11_parsers/dot11_p2p_ie.cc.o bluetooth_parsers/btle.cc.o phy_80211.cc.o phy_80211_components.cc.o phy_80211_dissectors.cc.o phy_rtl433.cc.o phy_rtlamr.cc.o phy_rtladsb.cc.o phy_zwave.cc.o phy_bluetooth.cc.o phy_uav_drone.cc.o phy_nrf_mousejack.cc.o phy_btle.cc.o phy_80211_ssidtracker.cc.o kis_dissector_ipdata.cc.o manuf.cc.o bluetooth_ids.cc.o adsb_icao.cc.o logtracker.cc.o kis_ppilogfile.cc.o kis_databaselogfile.cc.o kis_pcapnglogfile.cc.o messagebus_restclient.cc.o streamtracker.cc.o pcapng_stream_futurebuf.cc.o kis_database.cc.o kismet_server.cc.o version.c.o -ldw -ldl -lz -lpcre -lsqlite3 -lsensors -lstdc++ -lpcap -lpthread -lprotobuf -rdynamic /usr/bin/x86_64-pc-linux-gnu-ld: protobuf_cpp/datasource.pb.cc.o: in function `SubSpectrum': /var/tmp/portage/net-wireless/kismet-2020.12.2/work/kismet-2020-12-R2/protobuf_cpp/datasource.pb.cc:3939: undefined reference to `google::protobuf::RepeatedField<int>::RepeatedField(google::protobuf::RepeatedField<int> const&)'
Mixing of GCC-generated code and Clang-generated code usually works, but when it does not, there is really nothing I could do... Maintainers of GCC and Clang: Do you have any ideas? If not, I will close this bug as CANTFIX.