Wireshark-dev: Re: [Wireshark-dev] Switch to C++11 or C++14
From: Luke Mewburn <luke@xxxxxxxxxxx>
Date: Fri, 28 Sep 2018 10:44:56 +1000
On 18-06-02 11:26, Michał Łabędzki wrote: | C++11 seems to be possible. | | Some infos: | 1. Wireshark requires at least Qt 5.2. | 2. To build Qt5, from 5.7 C++11 is required: | http://code.qt.io/cgit/qt/qt5.git/tree/README?h=5.7 | I assume that building application for Qt 5.7 does not require C++11. | | 3. Ubuntu 14.04 LTS supports GCC 4.8.4, Qt 5.2.1 - but LTS End of | Life is: April 2019 <-- C++11 is here | 4. Ubuntu 16.04 LTS: GCC 5.3.1 , Qt 5.5.1, EOL: April 2021 | 5. Debian Jessie 8 supports GCC 4.9.2 and Qt 5.3.2, EOL: June 30, 2020 | 6. RHEL is safe? Qt 5.6 - 5.11, GCC 4.9.1? RHEL 6 (CentOS 6) ships with g++ 4.4.7, which does not have a complete C++11 implementation. RHEL 7 (CentOS 7) ships with g++ 4.8.5, which has reasonable C++11 support, although there may be a couple of features missing. I think g++ 4.9 was the first with full C++11 support. On RHEL, it is possible to install newer versions of g++ using the "devtoolset" software collections from in the RHEL "SCL" repos; see - http://softwarecollections.org/ - https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/ devtoolset-7 has g++ 7.3.1, which supports C++11, C++14 (the default), and some C++17. regards, Luke. | http://doc.qt.io/qt-5.6/supported-platforms.html | 7. Window, macOS: supports everything :) | 8. Fedora 26 (still supported?) has gcc 7.1: | https://fedoraproject.org/wiki/Changes/GCC7 | 9. openSUSE:13.1 gcc 4.9 | http://download.opensuse.org/distribution/13.2/repo/oss/ | 10. SLES 12 is also not a problem (C++17?): | https://www.suse.com/c/sles-12-toolchain-update-brings-new-developer-tools/ | | The question is: can we require C++11 right now? | | By the way: what is the minimum GCC version for Wireshark. I do not | see any check for this in CMakeLists.txt. I assume we check a lot of | compilers features instead. | pt., 1 cze 2018 o 23:38 Guy Harris <guy@xxxxxxxxxxxx> napisał(a): | > | > On Jun 1, 2018, at 2:21 PM, Michał Łabędzki <michal.tomasz.labedzki@xxxxxxxxx> wrote: | > | > > Is there (still) a problem to switch to C++11 or C++14? Petri-Dish seems to support it for Windows, but there is old standard used for Ubuntu. | > | > GCC C++ standard support: | > | > https://gcc.gnu.org/projects/cxx-status.html#cxx11: | > | > "GCC 4.8.1 was the first feature-complete implementation of the 2011 C++ standard, previously known as C++0x." | > | > https://gcc.gnu.org/projects/cxx-status.html#cxx14: | > | > "GCC has full support for the previous revision of the C++ standard, which was published in 2014. | > | > This mode is the default in GCC 6.1 and above; it can be explicitly selected with the -std=c++14 command-line flag, or -std=gnu++14 to enable GNU extensions as well." | > | > The table of C++14 features they have shows GCC 5 as the first version to support all the features in the table. | > | > | > Clang C++ standard support: | > | > https://clang.llvm.org/cxx_status.html | > | > "Clang 3.3 and later implement all of the ISO C++ 2011 standard." | > | > "Clang 3.4 and later implement all of the ISO C++ 2014 standard." | > | > I don't have a list of what versions of various Linux distributions, what versions of various *BSDs, and what versions of Xcode supporting what versions of macOS have which versions of GCC and/or Clang, but that would help here in determining what OS versions are required for C++11 or C++14 support. | > | > This should perhaps go on the "support library version tracking" page, which *already* tracks things other than support libraries, such as CMake: | > | > https://wiki.wireshark.org/Development/Support_library_version_tracking | > | > However, the problem with Ubuntu may be that the compiler in the version of Ubuntu running on the buildbot may be old enough that it doesn't *default* to C++11, so we may have to explicitly *ask* for C++11 in the CMake files.
- Follow-Ups:
- Re: [Wireshark-dev] Switch to C++11 or C++14
- From: Anders Broman
- Re: [Wireshark-dev] Switch to C++11 or C++14
- Prev by Date: Re: [Wireshark-dev] Compile error: no member named 'current_stream_id' in 'http2_session_t'
- Next by Date: Re: [Wireshark-dev] Switch to C++11 or C++14
- Previous by thread: Re: [Wireshark-dev] Compile error: no member named 'current_stream_id' in 'http2_session_t'
- Next by thread: Re: [Wireshark-dev] Switch to C++11 or C++14
- Index(es):