SUMMARY ksysguard failed to compile with clang + libc++: STEPS TO REPRODUCE 1. CC=clang CXX=clang++ CXXFLAGS=-stdlib=libc++ 2. compile ksysguard 3. got compiling error OBSERVED RESULT FAILED: plugins/global/network/CMakeFiles/ksysguard_globalplugin_network.dir/RtNetlinkBackend.cpp.o /usr/lib/ccache/bin/clang++ -DKCOREADDONS_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DTRANSLATION_DOMAIN=\"ksysguard_plugins_global\" -D_LARGEFILE64_SOURCE -Dksysguard_globalplugin_network_EXPORTS -Iplugins/global/network -I/tmp/portage/kde-plasma/ksysguard-5.21.1/work/ksysguard-5.21.1/plugins/global/network -Iplugins/global/network/ksysguard_globalplugin_network_autogen/include -I. -Ilibkstats -I/tmp/portage/kde-plasma/ksysguard-5.21.1/work/ksysguard-5.21.1/libkstats -I/usr/include/libnl3 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib/qt5/mkspecs/linux-clang -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtDBus -isystem /usr/include/ksysguard -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5 -isystem /usr/include/KF5/KI18n -DQT_NO_DEBUG -march=skylake -mtune=skylake -O3 -pipe -falign-functions=32 -fomit-frame-pointer -ffunction-sections -fdata-sections -flto=thin -stdlib=libc++ -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -fdiagnostics-color=always -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++14 -MD -MT plugins/global/network/CMakeFiles/ksysguard_globalplugin_network.dir/RtNetlinkBackend.cpp.o -MF plugins/global/network/CMakeFiles/ksysguard_globalplugin_network.dir/RtNetlinkBackend.cpp.o.d -o plugins/global/network/CMakeFiles/ksysguard_globalplugin_network.dir/RtNetlinkBackend.cpp.o -c /tmp/portage/kde-plasma/ksysguard-5.21.1/work/ksysguard-5.21.1/plugins/global/network/RtNetlinkBackend.cpp ../ksysguard-5.21.1/plugins/global/network/RtNetlinkBackend.cpp:33:36: error: implicit instantiation of undefined template 'std::array<SensorProperty *, 4>' std::array<SensorProperty*, 4> statisticSensors {m_downloadSensor, m_totalDownloadSensor, m_uploadSensor, m_totalUploadSensor}; ^ /usr/include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^ 1 error generated. EXPECTED RESULT It should compile. A simple fix is adding `#include <array>` in plugins/global/network/RtNetlinkBackend.cpp SOFTWARE/OS VERSIONS Linux/KDE Plasma: Gentoo Linux ~amd64 KDE Plasma Version: 5.21.1 KDE Frameworks Version: 5.79.0 Qt Version: 5.15.2 ADDITIONAL INFORMATION Clang/libc++ version 12.0.0 rc1
Git commit 6e5cc475cc4e882c41ff4c01c0a4091ff59610a0 by David Redondo, on behalf of Han Puyu. Committed on 05/03/2021 at 08:38. Pushed by davidre into branch 'Plasma/5.21'. Add missing #include <array> (cherry picked from commit 1500562c8760fba3322775acc692a450f4a567b6) M +1 -0 plugins/global/network/RtNetlinkBackend.cpp https://invent.kde.org/plasma/ksysguard/commit/6e5cc475cc4e882c41ff4c01c0a4091ff59610a0