df1b6d8cb2
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. Since what's broken is the autoreconfiguration of the package, what we do is modify patch 0001-sidplay2-libs-2.1.1.patch to directly tweak the configure script (instead of the relevant .m4 file). Thanks to this, <pkg>_AUTORECONF = YES is no longer needed, the .m4 file is no longer newer than the sub-configure script, and no automatic autoreconf triggers at build time. This allows the package to build properly on powerpc64le. While we normally don't like patching 'configure' scripts directly, in this case the size of the change in the configure script is very small, and as explained above, the incentive to fix the package properly is very limited. In detail, the changes: * Patch 0001-sidplay2-libs-2.1.1.patch is turned into a Git-formatted patch * The irrelevant changes to Makefile.in files, aclocal.m4, config.h.in, sidint.h are removed. * The change to my_macros.m4 is applied directly to the corresponding configure script. * The change to the configure.ac script regarding libdir is applied directly to the corresponding configure script. * The change to the configure.ac script regarding "*-k*bsd*-gnu" is dropped, since we don't care about kFreeBSD support. * LIBSIDPLAY2_AUTORECONF = YES is dropped from the .mk file. Fixes: http://autobuild.buildroot.net/results/1f6a42bfece24e09c9c7f4078d549ec5c099c89d/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
||
---|---|---|
.. | ||
0001-sidplay2-libs-2.1.1.patch | ||
0002-pkg-config.patch | ||
0003-gcc6.patch | ||
Config.in | ||
libsidplay2.hash | ||
libsidplay2.mk |