Skip to contentSkip to conversation

package/kodi: not available using a musl-based toolchain

PATCH New Bernd Kuhls 2 participants 3 messages Jan 30, 2016 – Feb 2, 2016

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 package/kodi: not available using a musl-based toolchain

The build stops with
configure: error: unsupported host (i586-buildroot-linux-musl) due to musl not being supported in
https://github.com/xbmc/xbmc/blob/Isengard/m4/xbmc_arch.m4

Removing this obstacle will show that musl is really not being supported, the build will fail:

In file included from emu_msvcrt.cpp:64:0:
emu_msvcrt.h:93:3: error: ?__off64_t? does not name a type
__off64_t dll_lseeki64(int fd, __off64_t lPos, int iWhence); ^
emu_msvcrt.h:94:3: error: ?__off_t? does not name a type
__off_t dll_lseek(int fd, __off_t lPos, int iWhence); ^

I know these problems are fixable and the voidlinux projects seems to have done it already for 15.2-Isengard:
https://github.com/voidlinux/void-packages/tree/99f74705bc6520297d689fae4bcc9606c71ad34f/srcpkgs/kodi/patches

Since Kodi 16.0-Jarvis is already at rc1 stage and the 15.x-branch being closed upstream as "final"[1] version I will put no effort providing a musl-compilable package for the current Kodi package.

---
v2: added explanation for Kodi not being available for musl (Thomas)

 package/kodi/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
package/kodi/Config.in +4 -2
index e697b52..ed90ed6 100644
@@ -2,10 +2,11 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	bool
 	default y if (BR2_arm || (BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC) || BR2_i386 || BR2_x86_64) && BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 
-comment "kodi needs a toolchain w/ C++, threads, wchar, dynamic library"
+comment "kodi needs a uClibc or (e)glibc toolchain w/ C++, threads, wchar, dynamic library"
 	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
-		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS
+		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
+		|| BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_USE_MMU
 
 config BR2_PACKAGE_KODI_EGL_GLES
@@ -89,6 +90,7 @@ menuconfig BR2_PACKAGE_KODI
 	select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
 	depends on BR2_USE_MMU # python
 	depends on BR2_USE_WCHAR
Signature · 1 line
2.7.0.rc3
#1 lore raw

PATCH v2 2/2 package/kodi: reorder select/depends

From [1]:
"Even though the ordering has absolutely no consequences in Kconfig, it is not logical (when reading). It is more logical and far easier to understand when depends come first, followed by the selects."

Also, the Config.in example in the manual suggests to use this coding style [2].

[1] http://lists.busybox.net/pipermail/buildroot/2015-October/142955.html
[2] http://buildroot.uclibc.org/downloads/manual/manual.html#writing-rules-config-in

---
v2: no changes

 package/kodi/Config.in | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
package/kodi/Config.in +8 -8
index ed90ed6..f1236f7 100644
@@ -32,6 +32,14 @@ comment "kodi requires an OpenGL ES and EGL backend"
 
 menuconfig BR2_PACKAGE_KODI
 	bool "kodi"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
+	depends on !BR2_STATIC_LIBS # python
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_MUSL
+	depends on BR2_USE_MMU # python
+	depends on BR2_USE_WCHAR
 	select BR2_NEEDS_HOST_JAVA
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST_THREAD
@@ -88,14 +96,6 @@ menuconfig BR2_PACKAGE_KODI
 	select BR2_PACKAGE_YAJL
 	select BR2_PACKAGE_ZLIB
 	select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_TOOLCHAIN_USES_MUSL
-	depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
-	depends on BR2_USE_MMU # python
-	depends on BR2_USE_WCHAR
-	depends on !BR2_STATIC_LIBS # python
-	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	help
 	  Kodi is an award-winning free and open source (GPL) software
 	  media player and entertainment hub for digital media.
Signature · 1 line
2.7.0.rc3
#2 lore raw

PATCH v2 1/2 package/kodi: not available using a musl-based toolchain

In reply to Bernd Kuhls
Quoted 20 lines · Bernd Kuhls

The build stops with
configure: error: unsupported host (i586-buildroot-linux-musl) due to musl not being supported in
https://github.com/xbmc/xbmc/blob/Isengard/m4/xbmc_arch.m4

Removing this obstacle will show that musl is really not being supported, the build will fail:

In file included from emu_msvcrt.cpp:64:0:
emu_msvcrt.h:93:3: error: ?__off64_t? does not name a type

   __off64_t dll_lseeki64(int fd, __off64_t lPos, int iWhence);
   ^
emu_msvcrt.h:94:3: error: ?__off_t? does not name a type
   __off_t dll_lseek(int fd, __off_t lPos, int iWhence);
   ^

I know these problems are fixable and the voidlinux projects seems to have done it already for 15.2-Isengard:
https://github.com/voidlinux/void-packages/tree/99f74705bc6520297d689fae4bcc9606c71ad34f/srcpkgs/kodi/patches

Quoted 5 lines

Since Kodi 16.0-Jarvis is already at rc1 stage and the 15.x-branch being closed upstream as "final"[1] version I will put no effort providing a musl-compilable package for the current Kodi package.

Regards,
Arnout

Quoted 33 lines

---
v2: added explanation for Kodi not being available for musl (Thomas)

 package/kodi/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
package/kodi/Config.in +4 -2
index e697b52..ed90ed6 100644
@@ -2,10 +2,11 @@ config BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	bool
 	default y if (BR2_arm || (BR2_mipsel && BR2_TOOLCHAIN_USES_GLIBC) || BR2_i386 || BR2_x86_64) && BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 
-comment "kodi needs a toolchain w/ C++, threads, wchar, dynamic library"
+comment "kodi needs a uClibc or (e)glibc toolchain w/ C++, threads, wchar, dynamic library"
 	depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
-		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS
+		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
+		|| BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_USE_MMU
 
 config BR2_PACKAGE_KODI_EGL_GLES
@@ -89,6 +90,7 @@ menuconfig BR2_PACKAGE_KODI
 	select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_PACKAGE_KODI_EGL_GLES || BR2_PACKAGE_KODI_GL
 	depends on BR2_USE_MMU # python
 	depends on BR2_USE_WCHAR
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF