Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ARM64] Trying to build on Linux #9032

Closed
sergiobenrocha2 opened this issue Oct 4, 2016 · 12 comments
Closed

[ARM64] Trying to build on Linux #9032

sergiobenrocha2 opened this issue Oct 4, 2016 · 12 comments

Comments

@sergiobenrocha2
Copy link
Contributor

sergiobenrocha2 commented Oct 4, 2016

In the atlas tool, I need to include this at ext/native/tools/CMakeLists.txt :

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPNG_ARM_NEON_OPT=0")

Next, in the build itself I get this:

g++ -c -pipe -Wno-unused-function -Wno-unused-variable -Wno-strict-aliasing -fno-strict-aliasing -Wno-unused-parameter -Wno-multichar -Wno-uninitialized -Wno-ignored-qualifiers -Wno-missing-field-initializers -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -O3 -ffast-math -fPIC -std=c++0x -Wall -W -D_REENTRANT -DUSING_QT_UI -DUSE_FFMPEG -DNO_VULKAN -DSHARED_SNAPPY -DSHARED_ZLIB -DSHARED_LIBZIP -DARM -D_ARCH_32 -DPPSSPP_GIT_VERSION="\"1.3.0\"" -D__STDC_CONSTANT_MACROS -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../Common -I../ext/native -I../ext/native/ext/rg_etc1 -I../ext/native/ext/cityhash -I../ext/native/ext/jpge -I../ext/udis86 -I../ext/native/ext/vjson -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -I.moc/Native -I/usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -o .obj/Native/jpge.o ../ext/native/ext/jpge/jpge.cpp
g++: error: unrecognized command line option ‘-mfpu=neon’
g++: error: unrecognized command line option ‘-mfpu=neon’

This neon flag is coming from where?

Edit: I forgot to say, using system ffmpeg

@sergiobenrocha2
Copy link
Contributor Author

I'm trying to build Qt port btw.

Found this heh: https://github.com/hrydgard/ppsspp/blob/master/Qt/Platform/ArchDetection.pri#L33

@sergiobenrocha2 sergiobenrocha2 changed the title [ARM64] Trying to build [ARM64] Trying to build on Linux Oct 4, 2016
@hrydgard
Copy link
Owner

hrydgard commented Oct 4, 2016

Atlas tool is a bit of a mess. However, its outputs are checked in so you don't actually need to build it to build the emulator, unless you want to change the UI bitmaps.

@sergiobenrocha2
Copy link
Contributor Author

Yeah, I know. But I chose to build everything from the source, to follow debian standards. It helps to get things tested before going to debian repos.


The SDL build:

[  6%] Building CXX object CMakeFiles/Common.dir/Common/Crypto/sha256.cpp.o
/usr/bin/aarch64-linux-gnu-g++   -DNO_VULKAN -DPPSSPP -DSDL -DSHARED_LIBZIP -DSHARED_SNAPPY -DSHARED_ZLIB -DUSE_FFMPEG -D_ARCH_64=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/«PKGBUILDDIR»/ext/native -I/«PKGBUILDDIR» -I/«PKGBUILDDIR»/Common -I/«PKGBUILDDIR»/ext/native/ext/rg_etc1 -I/«PKGBUILDDIR»/ext/cityhash -I/«PKGBUILDDIR»/ext/native/ext -I/usr/include/SDL2 -I/«PKGBUILDDIR»/ext/libkirk -I/«PKGBUILDDIR»/ext/sfmt19937 -I/«PKGBUILDDIR»/ext/xbrz -I/«PKGBUILDDIR»/ext/xxhash  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -std=c++11   -Wno-multichar -fno-strict-aliasing -Wno-psabi -o CMakeFiles/Common.dir/Common/Crypto/sha256.cpp.o -c /«PKGBUILDDIR»/Common/Crypto/sha256.cpp
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In constructor ‘PrecomputedCurves<T>::PrecomputedCurves(int)’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:639:64: error: there are no arguments to ‘AllocateAlignedMemory’ that depend on a template parameter, so a declaration of ‘AllocateAlignedMemory’ must be available [-fpermissive]
   horiz1 = (T *)AllocateAlignedMemory(count * 4 * sizeof(T), 16);
                                                                ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:639:64: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::PrecomputedCurves(int) [with T = Math3D::Vec3<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:674:44:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:639:38: error: ‘AllocateAlignedMemory’ was not declared in this scope
   horiz1 = (T *)AllocateAlignedMemory(count * 4 * sizeof(T), 16);
                                      ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::~PrecomputedCurves() [with T = Math3D::Vec3<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:674:44:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:645:20: error: ‘FreeAlignedMemory’ was not declared in this scope
   FreeAlignedMemory(horiz1);
                    ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::PrecomputedCurves(int) [with T = Math3D::Vec4<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:675:44:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:639:38: error: ‘AllocateAlignedMemory’ was not declared in this scope
   horiz1 = (T *)AllocateAlignedMemory(count * 4 * sizeof(T), 16);
                                      ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::~PrecomputedCurves() [with T = Math3D::Vec4<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:675:44:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:645:20: error: ‘FreeAlignedMemory’ was not declared in this scope
   FreeAlignedMemory(horiz1);
                    ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::PrecomputedCurves(int) [with T = Math3D::Vec2<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:676:52:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:639:38: error: ‘AllocateAlignedMemory’ was not declared in this scope
   horiz1 = (T *)AllocateAlignedMemory(count * 4 * sizeof(T), 16);
                                      ^
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp: In instantiation of ‘PrecomputedCurves<T>::~PrecomputedCurves() [with T = Math3D::Vec2<float>]’:
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:676:52:   required from here
/«PKGBUILDDIR»/GPU/Common/SplineCommon.cpp:645:20: error: ‘FreeAlignedMemory’ was not declared in this scope
   FreeAlignedMemory(horiz1);
                    ^
make[4]: *** [CMakeFiles/GPU.dir/GPU/Common/SplineCommon.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
CMakeFiles/GPU.dir/build.make:209: recipe for target 'CMakeFiles/GPU.dir/GPU/Common/SplineCommon.cpp.o' failed
[  6%] Building CXX object CMakeFiles/Common.dir/Common/FileUtil.cpp.o
/usr/bin/aarch64-linux-gnu-g++   -DNO_VULKAN -DPPSSPP -DSDL -DSHARED_LIBZIP -DSHARED_SNAPPY -DSHARED_ZLIB -DUSE_FFMPEG -D_ARCH_64=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/«PKGBUILDDIR»/ext/native -I/«PKGBUILDDIR» -I/«PKGBUILDDIR»/Common -I/«PKGBUILDDIR»/ext/native/ext/rg_etc1 -I/«PKGBUILDDIR»/ext/cityhash -I/«PKGBUILDDIR»/ext/native/ext -I/usr/include/SDL2 -I/«PKGBUILDDIR»/ext/libkirk -I/«PKGBUILDDIR»/ext/sfmt19937 -I/«PKGBUILDDIR»/ext/xbrz -I/«PKGBUILDDIR»/ext/xxhash  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -std=c++11   -Wno-multichar -fno-strict-aliasing -Wno-psabi -o CMakeFiles/Common.dir/Common/FileUtil.cpp.o -c /«PKGBUILDDIR»/Common/FileUtil.cpp
make -f CMakeFiles/png.dir/build.make CMakeFiles/png.dir/depend
make[4]: Entering directory '/«PKGBUILDDIR»/obj'
cd /«PKGBUILDDIR»/obj && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /«PKGBUILDDIR» /«PKGBUILDDIR» /«PKGBUILDDIR»/obj /«PKGBUILDDIR»/obj /«PKGBUILDDIR»/obj/CMakeFiles/png.dir/DependInfo.cmake --color=
Scanning dependencies of target png
make[4]: Leaving directory '/«PKGBUILDDIR»/obj'
make -f CMakeFiles/png.dir/build.make CMakeFiles/png.dir/build
make[4]: Entering directory '/«PKGBUILDDIR»/obj'
[  6%] Building C object CMakeFiles/png.dir/ext/native/ext/libpng/png.c.o
/usr/bin/aarch64-linux-gnu-gcc  -DNO_VULKAN -DPPSSPP -DSDL -DSHARED_LIBZIP -DSHARED_SNAPPY -DSHARED_ZLIB -DUSE_FFMPEG -D_ARCH_64=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/«PKGBUILDDIR»/ext/native -I/«PKGBUILDDIR» -I/«PKGBUILDDIR»/Common -I/«PKGBUILDDIR»/ext/native/ext/rg_etc1 -I/«PKGBUILDDIR»/ext/cityhash -I/«PKGBUILDDIR»/ext/native/ext -I/usr/include/SDL2 -I/«PKGBUILDDIR»/ext/libkirk -I/«PKGBUILDDIR»/ext/sfmt19937 -I/«PKGBUILDDIR»/ext/xbrz -I/«PKGBUILDDIR»/ext/xxhash  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2    -Wno-multichar -fno-strict-aliasing -Wno-psabi -o CMakeFiles/png.dir/ext/native/ext/libpng/png.c.o   -c /«PKGBUILDDIR»/ext/native/ext/libpng/png.c
make[4]: Leaving directory '/«PKGBUILDDIR»/obj'
make[3]: *** [CMakeFiles/GPU.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/GPU.dir/all' failed

@hrydgard
Copy link
Owner

hrydgard commented Oct 4, 2016

That's an unexpected bunch of errors.

Anyway, I plan to considerably clean up the atlas system in the near future. For example, changing from generating a C file to generating a binary data file with the texture coordinates. At the same time, the generator will get a do-over.

@jbeich
Copy link
Contributor

jbeich commented Oct 9, 2016

PPSSPP 1.3 fails to build on FreeBSD 11.0 aarch64 (clang 3.8) as well: sdl, qt4, qt5. New errors:

c++: error: the clang compiler does not support '-march=armv7-a'
Core/MIPS/fake/FakeJit.cpp:42:37: error: no matching constructor for initialization of 'JitBlockCache'
FakeJit::FakeJit(MIPSState *mips) : blocks(mips, this), mips_(mips)
                                    ^      ~~~~~~~~~~

@sergiobenrocha2
Copy link
Contributor Author

sergiobenrocha2 commented Apr 7, 2017

Tried to build ARM64 again (Qt), do I need -DUSING_GLES2=ON there?

[ 93%] Building CXX object CMakeFiles/PPSSPPQt.dir/Qt/Debugger/ctrlmemview.cpp.o
/usr/bin/c++   -DARM64 -DNO_VULKAN -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DSDL -DSHARED_LIBZIP -DSHARED_ZLIB -DUSING_QT_UI -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/<<PKGBUILDDIR>>/ext/native -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/Common -I/<<PKGBUILDDIR>>/ext/native/ext/rg_etc1 -I/<<PKGBUILDDIR>>/ext/cityhash -I/<<PKGBUILDDIR>>/obj -I/<<PKGBUILDDIR>>/Qt -I/<<PKGBUILDDIR>>/Qt/Debugger -I/<<PKGBUILDDIR>>/ext/libkirk -I/<<PKGBUILDDIR>>/ext/sfmt19937 -I/<<PKGBUILDDIR>>/ext/xbrz -I/<<PKGBUILDDIR>>/ext/xxhash -isystem /usr/include/SDL2 -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /<<PKGBUILDDIR>>/ffmpeg/linux/aarch64/include  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -Wno-multichar -Wno-deprecated-register -fno-strict-aliasing -Wno-psabi -include /<<PKGBUILDDIR>>/ppsspp_config.h -fPIC -std=gnu++11 -o CMakeFiles/PPSSPPQt.dir/Qt/Debugger/ctrlmemview.cpp.o -c /<<PKGBUILDDIR>>/Qt/Debugger/ctrlmemview.cpp
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:99:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:45,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GLES3/gl31.h:523:60: error: ‘void __glewActiveTexture(GLenum)’ redeclared as different kind of symbol
 GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
                                                            ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:14:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/glew.h:16749:40: note: previous declaration ‘void (* __glewActiveTexture)(GLenum)’
 GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture;
                                        ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:99:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:45,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GLES3/gl31.h:524:74: error: ‘void __glewAttachShader(GLuint, GLuint)’ redeclared as different kind of symbol
 GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
                                                                          ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:14:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/glew.h:16864:39: note: previous declaration ‘void (* __glewAttachShader)(GLuint, GLuint)’
 GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader;
                                       ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:99:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:45,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GLES3/gl31.h:525:99: error: ‘void __glewBindAttribLocation(GLuint, GLuint, const GLchar*)’ redeclared as different kind of symbol
 GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
                                                                                                   ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:14:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/glew.h:16865:45: note: previous declaration ‘void (* __glewBindAttribLocation)(GLuint, GLuint, const GLchar*)’
 GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation;
                                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:99:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:45,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GLES3/gl31.h:526:71: error: ‘void __glewBindBuffer(GLenum, GLuint)’ redeclared as different kind of symbol
 GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
                                                                       ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:14:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/glew.h:16845:37: note: previous declaration ‘void (* __glewBindBuffer)(GLenum, GLuint)’
 GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer;
                                     ^~~~~~~~~~~~~~~~

https://launchpadlibrarian.net/314750646/buildlog_ubuntu-zesty-arm64.ppsspp_1.4-r201704062324-19bf222-68~ubuntu17.04.1_BUILDING.txt.gz

@jbeich
Copy link
Contributor

jbeich commented Apr 8, 2017

PPSSPP v1.4 builds fine on FreeBSD 11.0 aarch64 (Clang/libc++ 3.8): SDL and Qt5

@sergiobenrocha2
Copy link
Contributor Author

@jbeich are there any reason to not build ARM64 with GLES2? I think almost all boards support it, and maybe one or 2 supports GL


ARM64 is building now (at least on Ubuntu >= 17.04), the only issue remaining is the Atlas tool I think

If you try to build on old Ubuntu versions (14.04 or 16.04) you'll get this:

[ 94%] Building CXX object CMakeFiles/PPSSPPQt.dir/Qt/mainwindow.cpp.o
/usr/bin/aarch64-linux-gnu-g++   -DARM64 -DNO_VULKAN -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DSDL -DSHARED_LIBZIP -DSHARED_ZLIB -DUSING_EGL -DUSING_GLES2 -DUSING_QT_UI -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/<<PKGBUILDDIR>>/ext/native -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/Common -I/<<PKGBUILDDIR>>/ext/native/ext/rg_etc1 -I/<<PKGBUILDDIR>>/ext/cityhash -I/<<PKGBUILDDIR>>/ext/native/ext -I/<<PKGBUILDDIR>>/obj -I/<<PKGBUILDDIR>>/Qt -I/<<PKGBUILDDIR>>/Qt/Debugger -I/<<PKGBUILDDIR>>/ext/libkirk -I/<<PKGBUILDDIR>>/ext/sfmt19937 -I/<<PKGBUILDDIR>>/ext/xbrz -I/<<PKGBUILDDIR>>/ext/xxhash -isystem /usr/include/SDL2 -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /<<PKGBUILDDIR>>/ffmpeg/linux/aarch64/include  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -Wno-multichar -Wno-deprecated-register -fno-strict-aliasing -Wno-psabi -include /<<PKGBUILDDIR>>/ppsspp_config.h -fPIC -std=gnu++11 -o CMakeFiles/PPSSPPQt.dir/Qt/mainwindow.cpp.o -c /<<PKGBUILDDIR>>/Qt/mainwindow.cpp
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:794:49: error: ‘void glReadBuffer(GLenum)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glReadBuffer( GLenum mode );
                                                 ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:392:49: note: previous declaration ‘void (* glReadBuffer)(GLenum)’
 extern GL_APICALL void           (* GL_APIENTRY glReadBuffer) (GLenum mode);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1494:64: error: ‘void glDrawRangeElements(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*)’ redeclared as different kind of symbol
  GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
                                                                ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:393:49: note: previous declaration ‘void (* glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1501:60: error: ‘void glTexImage3D(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)’ redeclared as different kind of symbol
                                       const GLvoid *pixels );
                                                            ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:394:49: note: previous declaration ‘void (* glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1508:75: error: ‘void glTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*)’ redeclared as different kind of symbol
                                          GLenum type, const GLvoid *pixels);
                                                                           ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:395:49: note: previous declaration ‘void (* glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1514:61: error: ‘void glCopyTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)’ redeclared as different kind of symbol
                                              GLsizei height );
                                                             ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:396:49: note: previous declaration ‘void (* glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)’
 extern GL_APICALL void           (* GL_APIENTRY glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1831:196: error: ‘void glCompressedTexImage3D(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
                                                                                                                                                                                                    ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:397:49: note: previous declaration ‘void (* glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/usr/include/GL/gl.h:1837:222: error: ‘void glCompressedTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
                                                                                                                                                                                                                              ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.cpp:27:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:398:49: note: previous declaration ‘void (* glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
                                                 ^
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/PPSSPPQt.dir/build.make:85: recipe for target 'CMakeFiles/PPSSPPQt.dir/ext/native/base/QtMain.cpp.o' failed
make[4]: *** [CMakeFiles/PPSSPPQt.dir/ext/native/base/QtMain.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:794:49: error: ‘void glReadBuffer(GLenum)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glReadBuffer( GLenum mode );
                                                 ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:392:49: note: previous declaration ‘void (* glReadBuffer)(GLenum)’
 extern GL_APICALL void           (* GL_APIENTRY glReadBuffer) (GLenum mode);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1494:64: error: ‘void glDrawRangeElements(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*)’ redeclared as different kind of symbol
  GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
                                                                ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:393:49: note: previous declaration ‘void (* glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glDrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1501:60: error: ‘void glTexImage3D(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)’ redeclared as different kind of symbol
                                       const GLvoid *pixels );
                                                            ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:394:49: note: previous declaration ‘void (* glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1508:75: error: ‘void glTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*)’ redeclared as different kind of symbol
                                          GLenum type, const GLvoid *pixels);
                                                                           ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:395:49: note: previous declaration ‘void (* glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1514:61: error: ‘void glCopyTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)’ redeclared as different kind of symbol
                                              GLsizei height );
                                                             ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:396:49: note: previous declaration ‘void (* glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)’
 extern GL_APICALL void           (* GL_APIENTRY glCopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1831:196: error: ‘void glCompressedTexImage3D(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data );
                                                                                                                                                                                                    ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:397:49: note: previous declaration ‘void (* glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glCompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
                                                 ^
In file included from /usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:122:0,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:39,
                 from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/QGLWidget:1,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:8,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/usr/include/GL/gl.h:1837:222: error: ‘void glCompressedTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)’ redeclared as different kind of symbol
 GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data );
                                                                                                                                                                                                                              ^
In file included from /<<PKGBUILDDIR>>/ext/native/gfx/gl_common.h:25:0,
                 from /<<PKGBUILDDIR>>/ext/native/gfx_es2/glsl_program.h:11,
                 from /<<PKGBUILDDIR>>/ext/native/base/QtMain.h:7,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.h:17,
                 from /<<PKGBUILDDIR>>/Qt/mainwindow.cpp:2:
/<<PKGBUILDDIR>>/ext/native/gfx/../gfx_es2/gl3stub.h:398:49: note: previous declaration ‘void (* glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)’
 extern GL_APICALL void           (* GL_APIENTRY glCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
                                                 ^
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
CMakeFiles/PPSSPPQt.dir/build.make:109: recipe for target 'CMakeFiles/PPSSPPQt.dir/Qt/mainwindow.cpp.o' failed

https://launchpadlibrarian.net/348075002/buildlog_ubuntu-xenial-arm64.ppsspp_1.5.3-r201712041809-341611e-78~ubuntu16.04.1_BUILDING.txt.gz

Not really an issue, since it's building in newer versions

@jbeich
Copy link
Contributor

jbeich commented Dec 4, 2017

are there any reason to not build ARM64 with GLES2?

GLES2 builds require EGL

lib/libnative.a(gl3stub.c.o): In function `gl3stubInit':
ext/native/gfx_es2/gl3stub.c:(.text+0xa): undefined reference to `eglGetProcAddress'
ext/native/gfx_es2/gl3stub.c:(.text+0x1b): undefined reference to `eglGetProcAddress'
ext/native/gfx_es2/gl3stub.c:(.text+0x2c): undefined reference to `eglGetProcAddress'
ext/native/gfx_es2/gl3stub.c:(.text+0x3d): undefined reference to `eglGetProcAddress'
ext/native/gfx_es2/gl3stub.c:(.text+0x4e): undefined reference to `eglGetProcAddress'
lib/libnative.a(gl3stub.c.o):ext/native/gfx_es2/gl3stub.c:(.text+0x5f): more undefined references to `eglGetProcAddress' follow

and EGL builds requires GLES2

/usr/bin/ld: undefined reference to symbol `XOpenDisplay' (try adding -lX11)
//usr/local/lib/libX11.so.6: could not read symbols: Bad value
c++: error: linker command failed with exit code 1 (use -v to see invocation)

PPSSPP with EGL hangs trying to render something for X11, at least on x86_64. Given mpv works fine on X11+EGL, my guess, no one has tested PPSSPP with EGL on non-Android.

@sergiobenrocha2
Copy link
Contributor Author

See #10254

You can apply that patch. You'll need:

-DUSING_GLES2=ON -DUSING_EGL=ON

PPSSPP Qt with GLESv2 + EGL works on Odroid U3 (Ubuntu 14.04), X11 environment

@unknownbrackets
Copy link
Collaborator

Has this improved? Are there still issues without custom patches?

-[Unknown]

@unknownbrackets
Copy link
Collaborator

This issue is being closed because it hasn't been updated with feedback.

It's hard to tell when fixes in PPSSPP might fix other games, and sometimes certain settings or cheats may cause bugs that can't be fixed.

If you have more information or can confirm it still happens in the latest git builds, please reply to this issue and it'll be reopened. If you have a new issue with the same game, just create a new issue instead.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants