libsidplay2: disable on powerpc64le
PATCH 1/1 libsidplay2: disable on powerpc64le
The libsidplay2 package build system is completely broken. It is made of a top-level configure script, which calls into sub-configure scripts in sub-directories. However, since it doesn't use the autoconf provided AC_CONFIG_SUBDIRS() mechanism, an "autoreconf" doesn't recurse into the subdirectories.
Due to this, the aclocal.m4 in the libsidplay/ subdirectory doesn't get re-generated when Buildroot autoreconfs the package. However, since we patch one of the .m4 files in this subdirectory, when build time comes, the package notices its aclocal.m4 is older than one of the .m4 file, and triggers an automatic autoreconf.
Since <pkg>_AUTORECONF = YES is enabled, this automatic autoreconf works fine: host-autoconf and host-automake are available.
Expect that on powerpc64le, we patch the configure script itself to make it recognize powerpc64le. But this patching of the configure script itself gets overwritten by the automatic autoreconf at the beginning of the build step, causing the build to fail on powerpc64le.
Switching to AC_CONFIG_SUBDIRS() would allow to fix this, but libsidplay2 needs to pass custom configure options to each of the sub-configure scripts, something that AC_CONFIG_SUBDIRS() doesn't support. And since libsidplay2 upstream looks completely dead, the incentive to fix the whole thing is very limited.
Hence, even though powerpc64le is not to blame here, we take the simple solution of disabling this package on powerpc64le.
Fixes:
http://autobuild.buildroot.net/results/1f6a42bfece24e09c9c7f4078d549ec5c099c89d/
--- package/kodi-audiodecoder-sidplay/Config.in | 1 + package/libsidplay2/Config.in | 5 +++++ 2 files changed, 6 insertions(+)
package/kodi-audiodecoder-sidplay/Config.in +1 -0
@@ -2,6 +2,7 @@ config BR2_PACKAGE_KODI_AUDIODECODER_SIDPLAY bool "kodi-audiodecoder-sidplay" select BR2_PACKAGE_KODI_PLATFORM select BR2_PACKAGE_LIBSIDPLAY2 + depends on !BR2_powerpc64le # libsidplay2 help Sidplay decoder addon for Kodi
package/libsidplay2/Config.in +5 -0
@@ -1,6 +1,10 @@ config BR2_PACKAGE_LIBSIDPLAY2 bool "libsidplay2" depends on BR2_INSTALL_LIBSTDCPP + # The configure patching logic needed for powerpc64le gets + # overwritten by the auto-autoreconf done by the package at + # the beginning of its build step, causing a build failure. + depends on !BR2_powerpc64le help Sidplay 2 is the second in the Sidplay series originally developed by Michael Schwendt. This version is written by Simon White and is cycle
@@ -11,3 +15,4 @@ config BR2_PACKAGE_LIBSIDPLAY2 comment "libsidplay2 needs a toolchain w/ C++" depends on !BR2_INSTALL_LIBSTDCPP + depends on !BR2_powerpc64le
Signature · 1 line
2.7.4
PATCH 1/1 libsidplay2: disable on powerpc64le
Quoted 26 lines · Thomas Petazzoni
The libsidplay2 package build system is completely broken. It is made of a top-level configure script, which calls into sub-configure scripts in sub-directories. However, since it doesn't use the autoconf provided
AC_CONFIG_SUBDIRS()mechanism, an "autoreconf" doesn't recurse into the subdirectories.Due to this, the aclocal.m4 in the libsidplay/ subdirectory doesn't get re-generated when Buildroot autoreconfs the package. However, since we patch one of the .m4 files in this subdirectory, when build time comes, the package notices its aclocal.m4 is older than one of the .m4 file, and triggers an automatic autoreconf.
Since <pkg>_AUTORECONF = YES is enabled, this automatic autoreconf works fine: host-autoconf and host-automake are available.
Expect that on powerpc64le, we patch the configure script itself to make it recognize powerpc64le. But this patching of the configure script itself gets overwritten by the automatic autoreconf at the beginning of the build step, causing the build to fail on powerpc64le.
Switching to
AC_CONFIG_SUBDIRS()would allow to fix this, but libsidplay2 needs to pass custom configure options to each of the sub-configure scripts, something thatAC_CONFIG_SUBDIRS()doesn't support. And since libsidplay2 upstream looks completely dead, the incentive to fix the whole thing is very limited.
Quoted 8 lines
Hence, even though powerpc64le is not to blame here, we take the simple solution of disabling this package on powerpc64le.
Fixes:
http://autobuild.buildroot.net/results/1f6a42bfece24e09c9c7f4078d549ec5c099c89d/
Signed-off-by Thomas Petazzoni <[email protected]>
I tried a few other approaches and all were dead ends too. I agree with this fix!
Cheers,
Sam.
PATCH 1/1 libsidplay2: disable on powerpc64le
In reply to Thomas PetazzoniHello,
Quoted 20 lines · Thomas Petazzoni
The libsidplay2 package build system is completely broken. It is made of a top-level configure script, which calls into sub-configure scripts in sub-directories. However, since it doesn't use the autoconf provided
AC_CONFIG_SUBDIRS()mechanism, an "autoreconf" doesn't recurse into the subdirectories.Due to this, the aclocal.m4 in the libsidplay/ subdirectory doesn't get re-generated when Buildroot autoreconfs the package. However, since we patch one of the .m4 files in this subdirectory, when build time comes, the package notices its aclocal.m4 is older than one of the .m4 file, and triggers an automatic autoreconf.
Since <pkg>_AUTORECONF = YES is enabled, this automatic autoreconf works fine: host-autoconf and host-automake are available.
Expect that on powerpc64le, we patch the configure script itself to make it recognize powerpc64le. But this patching of the configure script itself gets overwritten by the automatic autoreconf at the beginning of the build step, causing the build to fail on powerpc64le.
Quoted 8 lines
Switching to
AC_CONFIG_SUBDIRS()would allow to fix this, but libsidplay2 needs to pass custom configure options to each of the sub-configure scripts, something thatAC_CONFIG_SUBDIRS()doesn't support. And since libsidplay2 upstream looks completely dead, the incentive to fix the whole thing is very limited.Hence, even though powerpc64le is not to blame here, we take the simple solution of disabling this package on powerpc64le.
In the end, I found a different approach, I posted a new patch at
https://patchwork.ozlabs.org/patch/734360/ and marked this one as superseded.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com