This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
SystemTap source code now requires C++11
- From: Josh Stone <jistone at redhat dot com>
- To: systemtap at sourceware dot org
- Date: Mon, 2 May 2016 18:50:12 -0700
- Subject: SystemTap source code now requires C++11
- Authentication-results: sourceware.org; auth=none
Almost two years ago, I posted an RFC[1] about raising the OS baseline
for SystemTap. I didn't get a lot of feedback then, but we didn't take
much action either. Now I have finally taken a first step. :)
[1] https://www.sourceware.org/ml/systemtap/2014-q2/msg00225.html
We will now require C++11 support to compile stap. However, since we
still want to support RHEL6's GCC4.4, we'll only actually use the subset
of C++11 that was implemented at that time. You can find a table of
supported features for 4.4 here[2].
[2] https://gcc.gnu.org/gcc-4.4/cxx0x_status.html
As a first step with assumed C++11 support, I've removed code that used
boost or tr1 for things like shared_ptr and unordered_map, as we can now
use standard versions. I also converted a lot of vector::push_back
sequences to use initializer lists, and started using "auto"-typed
variables. There are certainly many more places that could benefit from
"auto", but it's hard to change this in bulk. Please feel free to
convert more code to C++11 styles as you work.
As for general operating system targets, RHEL4's GCC-3.4 is definitely
out, so we can start pruning that really old support. RHEL5 and its
GCC-4.1 would be too old, but we also did ship GCC-4.8 for RHEL5 in
devtoolset-2, so for now we'll let that one stay alive. It's likely
that we'll be less proactive about testing RHEL5 though.