[v3,1/3] package/kodi: broken with sunxi mali package

Submitted by Bernd Kuhls on July 15, 2017, 3:56 p.m.

Details

Message ID 20170715155633.16705-1-bernd.kuhls@t-online.de
State New
Headers show

Commit Message

Bernd Kuhls July 15, 2017, 3:56 p.m.
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))
                                                            ^
Kodi has no support for sunxi hardware so we disable the usage of the
sunxi-mali package as egl provider:
http://linux-sunxi.org/Kodi#Support_for_sunxi_in_Kodi

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
v3: added note about upstream support (Thomas)
v2: no changes

 package/kodi/Config.in | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Thomas Petazzoni July 15, 2017, 7:43 p.m.
Hello,

On Sat, 15 Jul 2017 17:56:31 +0200, Bernd Kuhls wrote:
> 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())

I already replied to the v2 of this patch series that I wasn't really
happy with this solution, at least not until we have an explanation
other than "it doesn't work, let's disable it".

Thomas

Patch hide | download patch | download mbox

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