diff mbox series

[1/1] package/kodi: Link to libiconv when needed

Message ID 20240512175117.2096550-1-bernd@kuhls.net
State Accepted
Headers show
Series [1/1] package/kodi: Link to libiconv when needed | expand

Commit Message

Bernd Kuhls May 12, 2024, 5:51 p.m. UTC
Fixes build error

/home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
build/utils/utils.a(CharsetConverter.cpp.o): undefined reference to symbol 'libiconv_open'
/home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
/home/wbx/buildroot/output/host/aarch64-buildroot-linux-uclibc/sysroot/usr/lib64/libiconv.so.2:
error adding symbols: DSO missing from command line

reported by Waldemar:
http://lists.busybox.net/pipermail/buildroot/2024-May/690952.html

Reproduced and fixed the build error using this defconfig:

BR2_x86_64=y
BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_KODI=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_ONLY=y

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
 package/kodi/kodi.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Yann E. MORIN May 12, 2024, 6:07 p.m. UTC | #1
Bernd, All,

On 2024-05-12 19:51 +0200, Bernd Kuhls spake thusly:
> Fixes build error
> 
> /home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
> build/utils/utils.a(CharsetConverter.cpp.o): undefined reference to symbol 'libiconv_open'
> /home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
> /home/wbx/buildroot/output/host/aarch64-buildroot-linux-uclibc/sysroot/usr/lib64/libiconv.so.2:
> error adding symbols: DSO missing from command line
> 
> reported by Waldemar:
> http://lists.busybox.net/pipermail/buildroot/2024-May/690952.html
> 
> Reproduced and fixed the build error using this defconfig:
> 
> BR2_x86_64=y
> BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
> BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_PER_PACKAGE_DIRECTORIES=y
> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
> BR2_PACKAGE_KODI=y
> BR2_PACKAGE_MESA3D=y
> BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y
> BR2_PACKAGE_MESA3D_OPENGL_EGL=y
> BR2_PACKAGE_MESA3D_OPENGL_ES=y
> BR2_PACKAGE_PYTHON3=y
> BR2_PACKAGE_PYTHON3_PY_ONLY=y
> 
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
> ---
>  package/kodi/kodi.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
> index 94cab237dc..301330a574 100644
> --- a/package/kodi/kodi.mk
> +++ b/package/kodi/kodi.mk
> @@ -138,6 +138,7 @@ endif
>  KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
>  
>  ifeq ($(BR2_ENABLE_LOCALE),)
> +KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-liconv

I don't understand how this is related: the defconfig you provide in the
commit log does _not_ have BR2_ENABLE_LOCALE=y, so it can't exercise
this code-path...

Regards,
Yann E. MORIN.

>  KODI_DEPENDENCIES += libiconv
>  endif
>  
> -- 
> 2.39.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Bernd Kuhls May 12, 2024, 6:34 p.m. UTC | #2
Am Sun, 12 May 2024 20:07:55 +0200 schrieb Yann E. MORIN:

>>  ifeq ($(BR2_ENABLE_LOCALE),)
>> +KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-liconv
> 
> I don't understand how this is related: the defconfig you provide in the
> commit log does _not_ have BR2_ENABLE_LOCALE=y, so it can't exercise
> this code-path...

Hi Yann,

the if-clause does not contain the letter "y" ;)
Libconv is only needed when locale support is not present.

Regards, bernd
Yann E. MORIN May 12, 2024, 6:36 p.m. UTC | #3
Bernd, All,

On 2024-05-12 20:07 +0200, Yann E. MORIN spake thusly:
> On 2024-05-12 19:51 +0200, Bernd Kuhls spake thusly:
[--SNIP--]
> > diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
> > index 94cab237dc..301330a574 100644
> > --- a/package/kodi/kodi.mk
> > +++ b/package/kodi/kodi.mk
> > @@ -138,6 +138,7 @@ endif
> >  KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
> >  
> >  ifeq ($(BR2_ENABLE_LOCALE),)
> > +KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-liconv
> 
> I don't understand how this is related: the defconfig you provide in the
> commit log does _not_ have BR2_ENABLE_LOCALE=y, so it can't exercise
> this code-path...

Ignore the above, I missed that it is testing agains "empty", i.e.
disabled...

Regards,
Yann E. MORIN.
Yann E. MORIN May 12, 2024, 9:11 p.m. UTC | #4
Bernd, All,

On 2024-05-12 19:51 +0200, Bernd Kuhls spake thusly:
> Fixes build error
> 
> /home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
> build/utils/utils.a(CharsetConverter.cpp.o): undefined reference to symbol 'libiconv_open'
> /home/wbx/buildroot/output/host/lib/gcc/aarch64-buildroot-linux-uclibc/12.3.0/../../../../aarch64-buildroot-linux-uclibc/bin/ld:
> /home/wbx/buildroot/output/host/aarch64-buildroot-linux-uclibc/sysroot/usr/lib64/libiconv.so.2:
> error adding symbols: DSO missing from command line
> 
> reported by Waldemar:
> http://lists.busybox.net/pipermail/buildroot/2024-May/690952.html
> 
> Reproduced and fixed the build error using this defconfig:
> 
> BR2_x86_64=y
> BR2_TOOLCHAIN_BUILDROOT_UCLIBC=y
> BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_PER_PACKAGE_DIRECTORIES=y
> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
> BR2_PACKAGE_KODI=y
> BR2_PACKAGE_MESA3D=y
> BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y
> BR2_PACKAGE_MESA3D_OPENGL_EGL=y
> BR2_PACKAGE_MESA3D_OPENGL_ES=y
> BR2_PACKAGE_PYTHON3=y
> BR2_PACKAGE_PYTHON3_PY_ONLY=y
> 
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
> ---
>  package/kodi/kodi.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
> index 94cab237dc..301330a574 100644
> --- a/package/kodi/kodi.mk
> +++ b/package/kodi/kodi.mk
> @@ -138,6 +138,7 @@ endif
>  KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
>  
>  ifeq ($(BR2_ENABLE_LOCALE),)
> +KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-liconv

You recently removed an instance of -DCMAKE_EXE_LINKER_FLAG for
-latomic, so that would have been OK to re-introduce one here for
-liconv.

However, this is not very future-proof, and it would be easy to miss
that should we need to introduce other conditional linker flags.

So, instead, I rewrote it like we already did for KODI_C_FLAGS.

Applied to master, thanks.

Regards,
Yann E. MORIN.

>  KODI_DEPENDENCIES += libiconv
>  endif
>  
> -- 
> 2.39.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index 94cab237dc..301330a574 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -138,6 +138,7 @@  endif
 KODI_CONF_OPTS += -DCORE_PLATFORM_NAME="$(KODI_CORE_PLATFORM_NAME)"
 
 ifeq ($(BR2_ENABLE_LOCALE),)
+KODI_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-liconv
 KODI_DEPENDENCIES += libiconv
 endif