Emulator Issues #7845
closedBuild fails on fedora 21
0%
Description
trying my new Fedora 21 64bit with gcc 4.9.2 ; used to be able to build on fedora 20
build fails with following errors :
In file included from /usr/include/c++/4.9.2/type_traits:35:0,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/strvararg.h:25,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/string.h:46,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/memory.h:15,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/object.h:19,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/event.h:16,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/window.h:18,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/control.h:22,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/statline.h:23,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/src/aui/auibar.cpp:29:
/usr/include/c++/4.9.2/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the
^
In file included from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/string.h:46:0,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/memory.h:15,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/object.h:19,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/event.h:16,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/window.h:18,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/control.h:22,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/statline.h:23,
from /home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/src/aui/auibar.cpp:29:
/home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/strvararg.h:345:18: error: ‘is_enum’ in namespace ‘std’ does not name a template type
typedef std::is_enum<T> is_enum;
^
/home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/strvararg.h:349:54: error: ‘is_enum’ was not declared in this scope
enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
^
/home/sheepdestroyer/Downloads/dolphin-master/Externals/wxWidgets3/include/wx/strvararg.h:349:68: error: template argument 1 is invalid
enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value };
^
Externals/wxWidgets3/CMakeFiles/wx.dir/build.make:54: recipe for target 'Externals/wxWidgets3/CMakeFiles/wx.dir/src/aui/auibar.cpp.o' failed
make[2]: *** [Externals/wxWidgets3/CMakeFiles/wx.dir/src/aui/auibar.cpp.o] Error 1
CMakeFiles/Makefile2:482: recipe for target 'Externals/wxWidgets3/CMakeFiles/wx.dir/all' failed
make[1]: *** [Externals/wxWidgets3/CMakeFiles/wx.dir/all] Error 2
Updated by matthewharveys almost 10 years ago
Seeing exactly the same issue on Debian Jessie with gcc 4.9.1.
I am unable to bisect this issue (go back to when it used to build and it doesn't), indicating to me that it's actually a change in the environment (maybe in the way that gcc does stuff).
Updated by sheepdestroyer almost 10 years ago
I was building fine a few weeks ago with gcc 4.9.1 on fedora 20 ;
Anyway as it seems it is not a Fedora only problem, should the title of the bug report be changed (is it possible?) to "Build fails"?
Updated by matthewharveys almost 10 years ago
With a little bit of experimenting, you can do the following as a workaround:
Open CMakeCache.txt (or use ccmake for configuring)
Change the following option:
DISABLE_WX:BOOL=ON
This will build a no-gui version (the build issue is in wxwidgets)
Optionally you can change the following option as well:
ENABLE_QT:BOOL=ON
to turn on the qt version, but I tried it and it is still rather incomplete. Still if you're command line phobic it might help.
These are, of course, ultimately workarounds, but I thought I'd post them in case someone wanted to get quickly to playing.
Updated by Sonicadvance1 almost 10 years ago
Or you can just pass those options to cmake.
cmake -DDISABLE_WX=True -DENABLE_QT=True ..
Updated by matthewharveys almost 10 years ago
Yes. That's probably simpler.
I can get the wx version to build as well now. With this:
diff --git a/Externals/wxWidgets3/CMakeLists.txt b/Externals/wxWidgets3/CMakeLists.txt
index c72a0dd..2e42a77 100644
--- a/Externals/wxWidgets3/CMakeLists.txt
+++ b/Externals/wxWidgets3/CMakeLists.txt
@@ -904,7 +904,7 @@ endif()
add_definitions(-DWXBUILDING)
wxWidgets warnings are not our problem.¶
add_definitions(-w)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++98")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
I don't know enough about how dolphin-emu pulls in its external dependencies to know whether this is a bug in dolphin-emu or in the upstream wx repo, but it seems as though wxWidgets has started using C++11 features and in some way the build system is not prepared to deal with it.
Hopefully this investigation helps at all.
Updated by matthewharveys almost 10 years ago
The committed patch doesn't seem to cover the Linux case. There are three cases in the if statement, only one is covered. Don't we need to add something like the attached?
Updated by matthewharveys almost 10 years ago
Just to finish off this bug, my concerns from the above comment were addressed in a subsequent commit, and it is now building fine on my machine. Thanks for the help of matthew1800.