| Message ID | 20170705163254.15156-1-bernd.kuhls@t-online.de |
|---|---|
| State | Superseded |
| Headers | show |
Hello, On Wed, 5 Jul 2017 18:32:52 +0200, Bernd Kuhls wrote: > diff --git a/package/kodi/Config.in b/package/kodi/Config.in > index 658670139..00e4fbaef 100644 > --- a/package/kodi/Config.in > +++ b/package/kodi/Config.in > @@ -22,16 +22,21 @@ config BR2_PACKAGE_KODI_EGL_GLES > depends on BR2_PACKAGE_HAS_LIBEGL > depends on BR2_PACKAGE_HAS_LIBGLES > depends on !BR2_PACKAGE_KODI_GL_EGL # prefer GL if available > + depends on !BR2_PACKAGE_SUNXI_MALI I'm not super happy with this solution. A quick Google search for "invalid use of incomplete type ‘class CEGLNativeType’" shows up a bunch of results, and not with sunxi-mali. According to https://github.com/ValveSoftware/steamlink-sdk/issues/93, it seemed to be a pkg-config issue. Perhaps some more investigation would be useful here? Thanks, Thomas
Hi Thomas, Am Wed, 05 Jul 2017 22:19:24 +0200 schrieb Thomas Petazzoni: > Hello, > > On Wed, 5 Jul 2017 18:32:52 +0200, Bernd Kuhls wrote: > >> diff --git a/package/kodi/Config.in b/package/kodi/Config.in index >> 658670139..00e4fbaef 100644 --- a/package/kodi/Config.in +++ >> b/package/kodi/Config.in @@ -22,16 +22,21 @@ config >> BR2_PACKAGE_KODI_EGL_GLES >> depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES >> depends on !BR2_PACKAGE_KODI_GL_EGL # prefer GL if available >> + depends on !BR2_PACKAGE_SUNXI_MALI > > I'm not super happy with this solution. A quick Google search for > "invalid use of incomplete type ‘class CEGLNativeType’" shows up a bunch > of results, and not with sunxi-mali. > > According to https://github.com/ValveSoftware/steamlink-sdk/issues/93, > it seemed to be a pkg-config issue. this issue happened with the autoconf-based build system in combination with sdl2 support, it is unrelated to sunxi. > Perhaps some more investigation would be useful here? According to http://linux-sunxi.org/Kodi#Support_for_sunxi_in_Kodi the Kodi project does not support sunxi hardware. The egl code of Kodi contains platform specific files for aml, imx and rbpi: https://github.com/xbmc/xbmc/tree/master/xbmc/windowing/egl No code seems to be provided by upstream to support the sunxi platform which is the reason for the build error I fixed with my patch. There are some patches floating around to add sunxi support to Kodi however, a quick search found this discussion about them: http://www.orangepi.org/orangepibbsen///forum.php? mod=viewthread&tid=2266&page=3 But at the end the fact remains that Kodi does not directly support sunxi so we should disable the usage of a broken defconfig. Adding sunxi support would be a feature patch to the Kodi package which, if possible at all, is afair not the policy of the buildroot project. Regards, Bernd
diff --git a/package/kodi/Config.in b/package/kodi/Config.in index 658670139..00e4fbaef 100644 --- a/package/kodi/Config.in +++ b/package/kodi/Config.in @@ -22,16 +22,21 @@ config BR2_PACKAGE_KODI_EGL_GLES depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGLES depends on !BR2_PACKAGE_KODI_GL_EGL # prefer GL if available + depends on !BR2_PACKAGE_SUNXI_MALI config BR2_PACKAGE_KODI_GL_EGL bool default y depends on BR2_PACKAGE_HAS_LIBEGL depends on BR2_PACKAGE_HAS_LIBGL + depends on !BR2_PACKAGE_SUNXI_MALI comment "kodi needs an OpenGL EGL with either an openGL or an OpenGL ES backend" depends on !BR2_PACKAGE_KODI_GL_EGL && !BR2_PACKAGE_KODI_EGL_GLES +comment "kodi does not support the sunxi mali driver" + depends on BR2_PACKAGE_SUNXI_MALI + menuconfig BR2_PACKAGE_KODI bool "kodi" depends on BR2_ENABLE_LOCALE
Building this defconfig BR2_arm=y BR2_cortex_a8=y BR2_ARM_INSTRUCTIONS_THUMB2=y BR2_TOOLCHAIN_EXTERNAL=y BR2_PACKAGE_KODI=y BR2_PACKAGE_SUNXI_MALI=y BR2_PACKAGE_PYTHON=y BR2_PACKAGE_PYTHON_PY_ONLY=y ends up with this build error: [ 98%] Building CXX object build/windowing/egl/CMakeFiles/windowing_egl.dir/EGLWrapper.cpp.o /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In function ‘bool {anonymous}::CorrectGuess(CEGLNativeType*, const string&)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:63:13: error: invalid use of incomplete type ‘class CEGLNativeType’ if(guess->CheckCompatibility()) ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:65:34: error: invalid use of incomplete type ‘class CEGLNativeType’ if (implementation == guess->GetNativeName() || ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::Initialize(const string&)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:105:7: error: expected primary-expression before ‘)’ token ) ^ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:109:18: error: invalid use of incomplete type ‘class CEGLNativeType’ m_nativeTypes->Initialize(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::Destroy()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:121:16: error: invalid use of incomplete type ‘class CEGLNativeType’ m_nativeTypes->Destroy(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:123:10: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete] delete m_nativeTypes; ^~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:123:10: warning: invalid use of incomplete type ‘class CEGLNativeType’ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:123:10: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined delete m_nativeTypes; ^~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘std::__cxx11::string CEGLWrapper::GetNativeName()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:131:25: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->GetNativeName(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::CreateNativeDisplay()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:140:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->CreateNativeDisplay(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::CreateNativeWindow()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:148:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->CreateNativeWindow(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘void CEGLWrapper::DestroyNativeDisplay()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:154:18: error: invalid use of incomplete type ‘class CEGLNativeType’ m_nativeTypes->DestroyNativeDisplay(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘void CEGLWrapper::DestroyNativeWindow()’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:160:18: error: invalid use of incomplete type ‘class CEGLNativeType’ m_nativeTypes->DestroyNativeWindow(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::SetNativeResolution(RESOLUTION_INFO&)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:167:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->SetNativeResolution(res); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::ProbeResolutions(std::vector<RESOLUTION_INFO>&)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:174:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->ProbeResolutions(resolutions); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::GetPreferredResolution(RESOLUTION_INFO*)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:182:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->GetPreferredResolution(res); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::GetNativeResolution(RESOLUTION_INFO*)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:190:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->GetNativeResolution(res); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::ShowWindow(bool)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:198:23: error: invalid use of incomplete type ‘class CEGLNativeType’ return m_nativeTypes->ShowWindow(show); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::GetQuirks(int*)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:205:26: error: invalid use of incomplete type ‘class CEGLNativeType’ *quirks = m_nativeTypes->GetQuirks(); ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::InitDisplay(void**)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:217:21: error: invalid use of incomplete type ‘class CEGLNativeType’ if (!m_nativeTypes->GetNativeDisplay((XBNativeDisplayType**)&nativeDisplay)) ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:217:41: error: ‘XBNativeDisplayType’ was not declared in this scope if (!m_nativeTypes->GetNativeDisplay((XBNativeDisplayType**)&nativeDisplay)) ^~~~~~~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:217:62: error: expected primary-expression before ‘)’ token if (!m_nativeTypes->GetNativeDisplay((XBNativeDisplayType**)&nativeDisplay)) ^ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp: In member function ‘bool CEGLWrapper::CreateSurface(EGLDisplay, EGLConfig, void**)’: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:288:21: error: invalid use of incomplete type ‘class CEGLNativeType’ if (!m_nativeTypes->GetNativeWindow((XBNativeWindowType**)&nativeWindow)) ^~ In file included from /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:40:0: /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.h:28:7: note: forward declaration of ‘class CEGLNativeType’ class CEGLNativeType; ^~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:288:40: error: ‘XBNativeWindowType’ was not declared in this scope if (!m_nativeTypes->GetNativeWindow((XBNativeWindowType**)&nativeWindow)) ^~~~~~~~~~~~~~~~~~ /home/buildroot/output/build/kodi-17.3-Krypton/xbmc/windowing/egl/EGLWrapper.cpp:288:60: error: expected primary-expression before ‘)’ token if (!m_nativeTypes->GetNativeWindow((XBNativeWindowType**)&nativeWindow)) ^ Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> --- v2: no changes package/kodi/Config.in | 5 +++++ 1 file changed, 5 insertions(+)