fails to build with musl/clang https://snips.sh/f/qCR86Rwwz1
On Thu, Mar 14, 2024 at 12:43 PM Jörg Sommer via lists.openembedded.org <joerg.sommer=navimatix...@lists.openembedded.org> wrote: > > From: Jörg Sommer <joerg.som...@navimatix.de> > > Signed-off-by: Jörg Sommer <joerg.som...@navimatix.de> > --- > .../spandsp/spandsp/configure.patch | 56 ++++++ > .../spandsp/spandsp/makefile.patch | 161 ++++++++++++++++++ > .../recipes-multimedia/spandsp/spandsp_git.bb | 47 +++++ > 3 files changed, 264 insertions(+) > create mode 100644 > meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > create mode 100644 > meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > create mode 100644 meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > > diff --git > a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > new file mode 100644 > index 000000000..af504be76 > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch > @@ -0,0 +1,56 @@ > +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.som...@navimatix.de> > +Date: Thu, 14 Mar 2024 09:41:57 +0100 > +Subject: [PATCH 2/2] configure: Replace manual search for libxml by > + AC_CHECK_LIB > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +The manual search fails if the include directories (and build environment) > +are located somewhere else. > + > +Signed-off-by: Jörg Sommer <joerg.som...@navimatix.de> > +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] > +--- > + > +ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log > indicates errors, it looked at host include and/or library paths while > determining system capabilities. > + > + configure.ac | 22 +++++----------------- > + 1 file changed, 5 insertions(+), 17 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index 2140837..b5138d6 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -185,23 +185,11 @@ then > + fi > + > + # Determine XML2 include path > +-AC_MSG_CHECKING(for libxml/xmlmemory.h) > +- > +-# Can we include headers using system include dirs? > +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int > a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=]) > +- > +-# Hunt through several possible directories to find the includes for libxml2 > +-if test "x$XML2_INCLUDE" = "x"; then > +- old_CPPFLAGS="$CPPFLAGS" > +- for i in $xml2_include_dir /usr/include /usr/local/include > /usr/include/libxml2 /usr/local/include/libxml2 ; do > +- CPPFLAGS="$old_CPPFLAGS -I$i" > +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include > <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE= > +- ]) > +- if test "x$XML2_INCLUDE" != "x"; then > +- break; > +- fi > +- done > +- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE" > ++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes]) > ++if test "$libxml2_found" = "yes" ; then > ++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available]) > ++else > ++ AC_MSG_WARN([libxml2 not found. Disabling cache.]) > + fi > + > + AC_CHECK_HEADERS([libxml/xmlmemory.h]) > +-- > +2.34.1 > + > diff --git > a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > new file mode 100644 > index 000000000..d3eb047fe > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch > @@ -0,0 +1,161 @@ > +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.som...@navimatix.de> > +Date: Thu, 14 Mar 2024 08:08:13 +0100 > +Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling > +MIME-Version: 1.0 > +Content-Type: text/plain; charset=UTF-8 > +Content-Transfer-Encoding: 8bit > + > +The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and > +..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile > +time. > + > +[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html > +[2]: > https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587 > + > +Signed-off-by: Jörg Sommer <joerg.som...@navimatix.de> > +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] > +--- > + configure.ac | 49 +------------------------------------------- > + src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ > + 2 files changed, 29 insertions(+), 74 deletions(-) > + > +diff --git a/configure.ac b/configure.ac > +index 96fd022..2140837 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -55,54 +55,7 @@ AC_LANG([C]) > + > + AX_COMPILER_VENDOR > + > +-if test "${build}" != "${host}" > +-then > +- # If we are doing a Canadian Cross, in which the host and build systems > +- # are not the same, we set reasonable default values for the tools. > +- > +- CC_FOR_BUILD=${CC_FOR_BUILD-gcc} > +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" > +- CC=${CC-${host_alias}-gcc} > +- CFLAGS=${CFLAGS-"-g -O2"} > +- CXX=${CXX-${host_alias}-c++} > +- CXXFLAGS=${CXXFLAGS-"-g -O2"} > +-else > +- # Set reasonable default values for some tools even if not Canadian. > +- # Of course, these are different reasonable default values, originally > +- # specified directly in the Makefile. > +- # We don't export, so that autoconf can do its job. > +- # Note that all these settings are above the fragment inclusion point > +- # in Makefile.in, so can still be overridden by fragments. > +- # This is all going to change when we autoconfiscate... > +- CC_FOR_BUILD="\$(CC)" > +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" > +- AC_PROG_CC > +- > +- # We must set the default linker to the linker used by gcc for the > correct > +- # operation of libtool. If LD is not defined and we are using gcc, try > to > +- # set the LD default to the ld used by gcc. > +- if test -z "$LD" > +- then > +- if test "$GCC" = yes > +- then > +- case $build in > +- *-*-mingw*) > +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; > +- *) > +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; > +- esac > +- case $gcc_prog_ld in > +- # Accept absolute paths. > +- [[\\/]* | [A-Za-z]:[\\/]*)] > +- LD="$gcc_prog_ld" ;; > +- esac > +- fi > +- fi > +- > +- CXX=${CXX-"c++"} > +- CFLAGS=${CFLAGS-"-g -O2"} > +- CXXFLAGS=${CXXFLAGS-"-g -O2"} > +-fi > ++AX_PROG_CC_FOR_BUILD > + > + AC_DEFUN([REMOVE_FROM_VAR],[ > + new_val="" > +diff --git a/src/Makefile.am b/src/Makefile.am > +index e05fad5..9b409a1 100644 > +--- a/src/Makefile.am > ++++ b/src/Makefile.am > +@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \ > + v34_tx_pre_emphasis_filters.h \ > + v34_tables.h > + > +-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c > +- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) > $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src > ++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src > $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) > $(TARGET_ARCH_FOR_BUILD) > + > +-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c > +- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) > $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ > + > +-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c > +- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) > $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H > -I$(top_builddir)/src -lm > ++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c > $(top_srcdir)/src/filter_tools.c > +- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) > $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c > -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_math_fixed_tables$(BUILD_EXEEXT): > $(top_srcdir)/src/make_math_fixed_tables.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_modem_godard_coefficients$(EXEEXT): > $(top_srcdir)/src/make_modem_godard_coefficients.c > $(top_srcdir)/src/filter_tools.c > +- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) > $(top_srcdir)/src/make_modem_godard_coefficients.c > $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c > $(top_srcdir)/src/filter_tools.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_t43_gray_code_tables$(EXEEXT): > $(top_srcdir)/src/make_t43_gray_code_tables.c > +- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) > $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H > -I$(top_builddir)/src -lm > ++make_modem_godard_coefficients$(BUILD_EXEEXT): > $(top_srcdir)/src/make_modem_godard_coefficients.c > $(top_srcdir)/src/filter_tools.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v17_v32_constellation_map$(EXEEXT): > $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) > $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_t43_gray_code_tables$(BUILD_EXEEXT): > $(top_srcdir)/src/make_t43_gray_code_tables.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v17_v32_convolutional_encoder$(EXEEXT): > $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c > $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) > $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c > $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H > -I$(top_builddir)/src -lm > ++make_v17_v32_constellation_map$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v29_constellation_map$(EXEEXT): > $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) > $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c > $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_convolutional_coders$(EXEEXT): > $(top_srcdir)/src/make_v34_convolutional_coders.c > +- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) > $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H > -I$(top_builddir)/src -lm > ++make_v29_constellation_map$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c > $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c > +- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) > $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm > ++make_v34_convolutional_coders$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v34_convolutional_coders.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm > + > +-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c > +- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) > $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src > ++make_v34_probe_signals$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c > $(top_srcdir)/src/alloc.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm > + > +-make_v34_tx_pre_emphasis_filters$(EXEEXT): > $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c > $(top_srcdir)/tools/meteor-engine.c > +- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) > $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c > $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src > -I$(top_builddir)/tools -lm > ++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ > ++ > ++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): > $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c > $(top_srcdir)/tools/meteor-engine.c > ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm > + > + # We need to run make_at_dictionary, so it generates the > + # at_interpreter_dictionary.h file > +-- > +2.34.1 > + > diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > new file mode 100644 > index 000000000..84bc4a8f1 > --- /dev/null > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb > @@ -0,0 +1,47 @@ > +SUMMARY = "A DSP library for telephony" > +DESCRIPTION = "\ > + SpanDSP is a low-level signal processing library that modulates and \ > + demodulates signals commonly used in telephony, such as the \"noise\" \ > + generated by a fax modem or DTMF touchpad. \ > +" > +HOMEPAGE = "https://www.soft-switch.org/" > +BUGTRACKER = "https://github.com/freeswitch/spandsp/issues" > +SECTION = "libs" > +LICENSE = "LGPL-2.1-only" > +LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc" > + > +DEPENDS = "\ > + libxml2 \ > + tiff \ > + tiff-native \ > +" > + > +PV = "3.0.0+git" > + > +SRC_URI = "\ > + git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \ > + file://configure.patch \ > + file://makefile.patch \ > +" > +SRCREV = "7b0b8cf3d42b725405bcc63145de5e280265ce4e" > + > +S = "${WORKDIR}/git" > + > +inherit autotools > + > +PACKAGECONFIG ?= "" > + > +PACKAGECONFIG[mmx] = "--enable-mmx,--disable-mmx" > +PACKAGECONFIG[sse] = "--enable-sse,--disable-sse" > +PACKAGECONFIG[sse2] = "--enable-sse2,--disable-sse2" > +PACKAGECONFIG[sse3] = "--enable-sse3,--disable-sse3" > +PACKAGECONFIG[ssse3] = "--enable-ssse3,--disable-ssse3" > +PACKAGECONFIG[sse4-1] = "--enable-sse4-1,--disable-sse4-1" > +PACKAGECONFIG[sse4-2] = "--enable-sse4-2,--disable-sse4-2" > +PACKAGECONFIG[avx] = "--enable-avx,--disable-avx" > +PACKAGECONFIG[avx2] = "--enable-avx2,--disable-avx2" > +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon" > +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,--disable-fixed-point" > +PACKAGECONFIG[v32bis] = "--enable-v32bis,--disable-v32bis" > +PACKAGECONFIG[v34] = "--enable-v34,--disable-v34" > +PACKAGECONFIG[sslfax] = "--enable-sslfax,--disable-sslfax" > -- > 2.34.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#109325): https://lists.openembedded.org/g/openembedded-devel/message/109325 Mute This Topic: https://lists.openembedded.org/mt/104933829/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-