Bug 433517 - Missing #include <array> with Clang+libc++
Summary: Missing #include <array> with Clang+libc++
Status: RESOLVED FIXED
Alias: None
Product: ksysguard
Classification: Applications
Component: ksysguard (show other bugs)
Version: 5.21.1
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KSysGuard Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-24 03:03 UTC by 12101111
Modified: 2021-03-05 08:38 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description 12101111 2021-02-24 03:03:20 UTC
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
Comment 1 David Redondo 2021-03-05 08:38:18 UTC
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