This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/22572] systemtap 3.2 failed to compile on ARM
- From: "mysecondaccountabc at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Mon, 11 Dec 2017 00:51:23 +0000
- Subject: [Bug runtime/22572] systemtap 3.2 failed to compile on ARM
- Auto-submitted: auto-generated
- References: <bug-22572-6586@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=22572
--- Comment #6 from Gustavo Moreira <mysecondaccountabc at gmail dot com> ---
(In reply to David Smith from comment #3)
> > ...
> > From 1.7 to 2.9 it compiles ok. The issue seems to be from 3.0 on
> > (basically, 3.0, 3.1 and 3.2).
>
> According to the NEWS file:
>
> ====
> * What's new in version 3.1, 2017-02-17
>
> - Systemtap now needs C++11 to build.
> ====
>
> The configure script tries to check for C++11 support, by seeing if your
> compiler supports the '-std=c++0x' option. In your config.log file, what is
> HAVE_CXX11 set to?
Thank you for your quick response.
Weird because the configure script ended up assuming that the C++ compiler
supports the 2011 ISO C++ standard:
...
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=c++11... no
checking whether g++ supports C++11 features with -std=c++0x... no
checking whether g++ supports C++11 features with +std=c++11... no
checking whether g++ supports C++11 features with -h std=c++11... no
configure: No compiler with C++11 support was found
checking whether C++ compiler accepts -std=c++0x... yes
configure: Compiling with -std=c++0x
...
$ grep CXX11 systemtap*/config.log
systemtap-3.1/config.log:HAVE_CXX11='1'
systemtap-3.2/config.log:HAVE_CXX11='1'
systemtap/config.log:HAVE_CXX11='1'
* systemtap/config.log is the latest git master.
** NB: systemtap-3.0 doesn't check for CXX11, and it doesn't compile due to the
same issue.
Actually, I've tested the following code and it works:
test.cpp:
enum AnEnum { BLAH1 = 1, BLAH2 = 2 };
struct St
{
AnEnum Field : 8;
};
main() {
St st;
}
$ g++ -std=c++11 test.cpp; echo $?
0
$ g++ -std=c++0x test.cpp; echo $?
0
Anyway, C++11 features were being developed from GCC 4.3 to 4.8.1, so with that
I'm just testing one of the features already supported in 4.7.
--
You are receiving this mail because:
You are the assignee for the bug.