Message ID | 0afe6e7d5c9f3de0c3b82a646236bb9bbbe8210f.1710445397.git.joerg.sommer@navimatix.de |
---|---|
State | Accepted |
Headers | show |
Series | [meta-multimedia,v2] spandsp: new telephony DSP library | expand |
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.de@lists.openembedded.org> wrote: > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > Signed-off-by: Jörg Sommer <joerg.sommer@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.sommer@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.sommer@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.sommer@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.sommer@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 (#109321): https://lists.openembedded.org/g/openembedded-devel/message/109321 > Mute This Topic: https://lists.openembedded.org/mt/104933829/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Not much to do with musl, it fails when I use clang on my desktop as well. you can see the same errors with clang on host CC=clang ./configure make On Thu, Mar 14, 2024 at 9:37 PM Khem Raj <raj.khem@gmail.com> wrote: > > 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.de@lists.openembedded.org> wrote: > > > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > > > Signed-off-by: Jörg Sommer <joerg.sommer@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.sommer@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.sommer@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.sommer@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.sommer@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 (#109321): https://lists.openembedded.org/g/openembedded-devel/message/109321 > > Mute This Topic: https://lists.openembedded.org/mt/104933829/1997914 > > Group Owner: openembedded-devel+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
Yes, I'm getting these errors, too, when compiling with clang; independent of the clang version up to 19. It seems to be a problem of `pow()`. gcc might have a built-in and can compute it at compile-time, while clang has no built-in of pow. Jörg Sommer Software Developer / Programmierer -- Navimatix GmbH Tatzendpromenade 2 07745 Jena T: 03641 - 327 99 0 F: 03641 - 526 306 M: joerg.sommer@navimatix.de www.navimatix.de<http://www.navimatix.de/> Geschäftsführer: Steffen Späthe, Jan Rommeley Registergericht: Amtsgericht Jena, HRB 501480 ________________________________ From: Khem Raj <raj.khem@gmail.com> Sent: Friday, 15 March 2024 06:13 To: Jörg Sommer <joerg.sommer@navimatix.de> Cc: openembedded-devel@lists.openembedded.org <openembedded-devel@lists.openembedded.org> Subject: Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony DSP library Not much to do with musl, it fails when I use clang on my desktop as well. you can see the same errors with clang on host CC=clang ./configure make On Thu, Mar 14, 2024 at 9:37 PM Khem Raj <raj.khem@gmail.com> wrote: > > 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.de@lists.openembedded.org> wrote: > > > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > > > Signed-off-by: Jörg Sommer <joerg.sommer@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.sommer@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.sommer@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.sommer@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.sommer@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 (#109321): https://lists.openembedded.org/g/openembedded-devel/message/109321 > > Mute This Topic: https://lists.openembedded.org/mt/104933829/1997914 > > Group Owner: openembedded-devel+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > > -=-=-=-=-=-=-=-=-=-=-=- > >
I'm seeing the same errors with gcc :) libtool: compile: ccache arm-oe-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 --sysroot=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/src -I.. -DNDEBUG -Wunused-but-set-variable -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -DHAVE_VISIBILITY=1 -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/recipe-sysroot-native= -c ../../git/src/t38_terminal.c -fPIC -DPIC -o .libs/t38_terminal.o ../../git/src/ademco_contactid.c:449:110: error: expected ')' before ';' token 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^ In file included from ../../git/src/ademco_contactid.c:66: ../../git/src/spandsp/tone_detect.h:63:55: note: to match this '(' 63 | #define goertzel_threshold_dbm0(len,thresh) (int) ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0)) | ^ ../../git/src/ademco_contactid.c:449:51: note: in expansion of macro 'goertzel_threshold_dbm0' 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^~~~~~~~~~~~~~~~~~~~~~~ ../../git/src/ademco_contactid.c:449:18: warning: 'detection_threshold' defined but not used [-Wunused-const-variable=] 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^~~~~~~~~~~~~~~~~~~ ../../git/src/ademco_contactid.c:210:35: warning: 'ademco_codes' defined but not used [-Wunused-const-variable=] 210 | static const struct ademco_code_s ademco_codes[] = | ^~~~~~~~~~~~ make[2]: *** [Makefile:1091: ademco_contactid.lo] Error 1 This is with master-next meta-oe from yesterday in build with multilib (night not be important) On Fri, Mar 15, 2024 at 8:19 AM Jörg Sommer via lists.openembedded.org <joerg.sommer=navimatix.de@lists.openembedded.org> wrote: > Yes, I'm getting these errors, too, when compiling with clang; independent > of the clang version up to 19. It seems to be a problem of `pow()`. gcc > might have a built-in and can compute it at compile-time, while clang has > no built-in of pow. > > > > Jörg Sommer > > Software Developer / Programmierer > -- > > Navimatix GmbH > > Tatzendpromenade 2 > > 07745 Jena > > T: 03641 - 327 99 0 > > F: 03641 - 526 306 > > M: *joerg.sommer@navimatix.de <joerg.sommer@navimatix.de>* > > *www.navimatix.de <http://www.navimatix.de/>* > > > > Geschäftsführer: Steffen Späthe, Jan Rommeley > > Registergericht: Amtsgericht Jena, HRB 501480 > > ------------------------------ > *From:* Khem Raj <raj.khem@gmail.com> > *Sent:* Friday, 15 March 2024 06:13 > *To:* Jörg Sommer <joerg.sommer@navimatix.de> > *Cc:* openembedded-devel@lists.openembedded.org < > openembedded-devel@lists.openembedded.org> > *Subject:* Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony > DSP library > > Not much to do with musl, it fails when I use clang on my desktop as > well. you can see the same errors with clang on host > > CC=clang ./configure > make > > On Thu, Mar 14, 2024 at 9:37 PM Khem Raj <raj.khem@gmail.com> wrote: > > > > 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.de@lists.openembedded.org> wrote: > > > > > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > > > > > Signed-off-by: Jörg Sommer <joerg.sommer@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.sommer@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.sommer@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.sommer@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.sommer@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 (#109334): > https://lists.openembedded.org/g/openembedded-devel/message/109334 > Mute This Topic: https://lists.openembedded.org/mt/104933829/3617156 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
I've found this bug report upstreamhttps://github.com/freeswitch/spandsp/issues/67. It builds fine for me with the older version df1282eb9af538ab1aadb6d66146e258451d4fe4. Mit freundlichen Grüßen Jörg Sommer Software Developer / Programmierer -- Navimatix GmbH Tatzendpromenade 2 07745 Jena T: 03641 - 327 99 0 F: 03641 - 526 306 M: joerg.sommer@navimatix.de www.navimatix.de<http://www.navimatix.de/> Geschäftsführer: Steffen Späthe, Jan Rommeley Registergericht: Amtsgericht Jena, HRB 501480 ________________________________ From: Martin Jansa <martin.jansa@gmail.com> Sent: Saturday, 16 March 2024 09:02 To: Jörg Sommer <joerg.sommer@navimatix.de> Cc: Khem Raj <raj.khem@gmail.com>; openembedded-devel@lists.openembedded.org <openembedded-devel@lists.openembedded.org> Subject: Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony DSP library I'm seeing the same errors with gcc :) libtool: compile: ccache arm-oe-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 --sysroot=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/src -I.. -DNDEBUG -Wunused-but-set-variable -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -DHAVE_VISIBILITY=1 -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/recipe-sysroot-native= -c ../../git/src/t38_terminal.c -fPIC -DPIC -o .libs/t38_terminal.o ../../git/src/ademco_contactid.c:449:110: error: expected ')' before ';' token 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^ In file included from ../../git/src/ademco_contactid.c:66: ../../git/src/spandsp/tone_detect.h:63:55: note: to match this '(' 63 | #define goertzel_threshold_dbm0(len,thresh) (int) ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0)) | ^ ../../git/src/ademco_contactid.c:449:51: note: in expansion of macro 'goertzel_threshold_dbm0' 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^~~~~~~~~~~~~~~~~~~~~~~ ../../git/src/ademco_contactid.c:449:18: warning: 'detection_threshold' defined but not used [-Wunused-const-variable=] 449 | static const int detection_threshold = goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); | ^~~~~~~~~~~~~~~~~~~ ../../git/src/ademco_contactid.c:210:35: warning: 'ademco_codes' defined but not used [-Wunused-const-variable=] 210 | static const struct ademco_code_s ademco_codes[] = | ^~~~~~~~~~~~ make[2]: *** [Makefile:1091: ademco_contactid.lo] Error 1 This is with master-next meta-oe from yesterday in build with multilib (night not be important) On Fri, Mar 15, 2024 at 8:19 AM Jörg Sommer via lists.openembedded.org<http://lists.openembedded.org> <joerg.sommer=navimatix.de@lists.openembedded.org<mailto:navimatix.de@lists.openembedded.org>> wrote: Yes, I'm getting these errors, too, when compiling with clang; independent of the clang version up to 19. It seems to be a problem of `pow()`. gcc might have a built-in and can compute it at compile-time, while clang has no built-in of pow. Jörg Sommer Software Developer / Programmierer -- Navimatix GmbH Tatzendpromenade 2 07745 Jena T: 03641 - 327 99 0 F: 03641 - 526 306 M: joerg.sommer@navimatix.de<mailto:joerg.sommer@navimatix.de> www.navimatix.de<http://www.navimatix.de/> Geschäftsführer: Steffen Späthe, Jan Rommeley Registergericht: Amtsgericht Jena, HRB 501480 ________________________________ From: Khem Raj <raj.khem@gmail.com<mailto:raj.khem@gmail.com>> Sent: Friday, 15 March 2024 06:13 To: Jörg Sommer <joerg.sommer@navimatix.de<mailto:joerg.sommer@navimatix.de>> Cc: openembedded-devel@lists.openembedded.org<mailto:openembedded-devel@lists.openembedded.org> <openembedded-devel@lists.openembedded.org<mailto:openembedded-devel@lists.openembedded.org>> Subject: Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony DSP library Not much to do with musl, it fails when I use clang on my desktop as well. you can see the same errors with clang on host CC=clang ./configure make On Thu, Mar 14, 2024 at 9:37 PM Khem Raj <raj.khem@gmail.com<mailto:raj.khem@gmail.com>> wrote: > > 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<http://lists.openembedded.org> > <joerg.sommer=navimatix.de@lists.openembedded.org<mailto:navimatix.de@lists.openembedded.org>> wrote: > > > > From: Jörg Sommer <joerg.sommer@navimatix.de<mailto:joerg.sommer@navimatix.de>> > > > > Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de<mailto:joerg.sommer@navimatix.de>> > > --- > > .../spandsp/spandsp/configure.patch | 56 ++++++ > > .../spandsp/spandsp/makefile.patch | 161 ++++++++++++++++++ > > .../recipes-multimedia/spandsp/spandsp_git.bb<http://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<http://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.sommer@navimatix.de<mailto:joerg.sommer@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.sommer@navimatix.de<mailto:joerg.sommer@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<http://configure.ac> | 22 +++++----------------- > > + 1 file changed, 5 insertions(+), 17 deletions(-) > > + > > +diff --git a/configure.ac<http://configure.ac> b/configure.ac<http://configure.ac> > > +index 2140837..b5138d6 100644 > > +--- a/configure.ac<http://configure.ac> > > ++++ b/configure.ac<http://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.sommer@navimatix.de<mailto:joerg.sommer@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.sommer@navimatix.de<mailto:joerg.sommer@navimatix.de>> > > +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] > > +--- > > + configure.ac<http://configure.ac> | 49 +------------------------------------------- > > + src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ > > + 2 files changed, 29 insertions(+), 74 deletions(-) > > + > > +diff --git a/configure.ac<http://configure.ac> b/configure.ac<http://configure.ac> > > +index 96fd022..2140837 100644 > > +--- a/configure.ac<http://configure.ac> > > ++++ b/configure.ac<http://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<http://spandsp_git.bb> b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb<http://spandsp_git.bb> > > new file mode 100644 > > index 000000000..84bc4a8f1 > > --- /dev/null > > +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb<http://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<http://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 (#109334): https://lists.openembedded.org/g/openembedded-devel/message/109334 Mute This Topic: https://lists.openembedded.org/mt/104933829/3617156 Group Owner: openembedded-devel+owner@lists.openembedded.org<mailto:openembedded-devel%2Bowner@lists.openembedded.org> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [martin.jansa@gmail.com<mailto:martin.jansa@gmail.com>] -=-=-=-=-=-=-=-=-=-=-=-
On Sat, Mar 16, 2024 at 1:23 AM Jörg Sommer <joerg.sommer@navimatix.de> wrote: > I've found this bug report upstream > https://github.com/freeswitch/spandsp/issues/67. It builds fine for me > with the older version df1282eb9af538ab1aadb6d66146e258451d4fe4. > > right. I have commented on the commit which is causing the issue. > > Mit freundlichen Grüßen > > > Jörg Sommer > > Software Developer / Programmierer > -- > > Navimatix GmbH > > Tatzendpromenade 2 > > 07745 Jena > > T: 03641 - 327 99 0 > > F: 03641 - 526 306 > > M: *joerg.sommer@navimatix.de <joerg.sommer@navimatix.de>* > > *www.navimatix.de <http://www.navimatix.de/>* > > > > Geschäftsführer: Steffen Späthe, Jan Rommeley > > Registergericht: Amtsgericht Jena, HRB 501480 > > ------------------------------ > *From:* Martin Jansa <martin.jansa@gmail.com> > *Sent:* Saturday, 16 March 2024 09:02 > *To:* Jörg Sommer <joerg.sommer@navimatix.de> > *Cc:* Khem Raj <raj.khem@gmail.com>; > openembedded-devel@lists.openembedded.org < > openembedded-devel@lists.openembedded.org> > *Subject:* Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony > DSP library > > I'm seeing the same errors with gcc :) > > libtool: compile: ccache arm-oe-linux-gnueabi-gcc -mthumb -mfpu=neon > -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 > -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security > -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 > -D_FILE_OFFSET_BITS=64 > --sysroot=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot > -DHAVE_CONFIG_H -I. -I../../git/src -I.. -DNDEBUG -Wunused-but-set-variable > -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings > -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden > -DHAVE_VISIBILITY=1 -O2 -pipe -g -feliminate-unused-debug-types > -fcanon-prefix-map > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/recipe-sysroot-native= > -c ../../git/src/t38_terminal.c -fPIC -DPIC -o .libs/t38_terminal.o > ../../git/src/ademco_contactid.c:449:110: error: expected ')' before ';' > token > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | > ^ > In file included from ../../git/src/ademco_contactid.c:66: > ../../git/src/spandsp/tone_detect.h:63:55: note: to match this '(' > 63 | #define goertzel_threshold_dbm0(len,thresh) (int) > ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0)) > | ^ > ../../git/src/ademco_contactid.c:449:51: note: in expansion of macro > 'goertzel_threshold_dbm0' > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | > ^~~~~~~~~~~~~~~~~~~~~~~ > ../../git/src/ademco_contactid.c:449:18: warning: 'detection_threshold' > defined but not used [-Wunused-const-variable=] > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | ^~~~~~~~~~~~~~~~~~~ > ../../git/src/ademco_contactid.c:210:35: warning: 'ademco_codes' defined > but not used [-Wunused-const-variable=] > 210 | static const struct ademco_code_s ademco_codes[] = > | ^~~~~~~~~~~~ > make[2]: *** [Makefile:1091: ademco_contactid.lo] Error 1 > > This is with master-next meta-oe from yesterday in build with multilib > (night not be important) > > On Fri, Mar 15, 2024 at 8:19 AM Jörg Sommer via lists.openembedded.org > <joerg.sommer=navimatix.de@lists.openembedded.org> wrote: > > Yes, I'm getting these errors, too, when compiling with clang; independent > of the clang version up to 19. It seems to be a problem of `pow()`. gcc > might have a built-in and can compute it at compile-time, while clang has > no built-in of pow. > > > > Jörg Sommer > > Software Developer / Programmierer > -- > > Navimatix GmbH > > Tatzendpromenade 2 > > 07745 Jena > > T: 03641 - 327 99 0 > > F: 03641 - 526 306 > > M: *joerg.sommer@navimatix.de <joerg.sommer@navimatix.de>* > > *www.navimatix.de <http://www.navimatix.de/>* > > > > Geschäftsführer: Steffen Späthe, Jan Rommeley > > Registergericht: Amtsgericht Jena, HRB 501480 > > ------------------------------ > *From:* Khem Raj <raj.khem@gmail.com> > *Sent:* Friday, 15 March 2024 06:13 > *To:* Jörg Sommer <joerg.sommer@navimatix.de> > *Cc:* openembedded-devel@lists.openembedded.org < > openembedded-devel@lists.openembedded.org> > *Subject:* Re: [oe] [meta-multimedia][PATCH v2] spandsp: new telephony > DSP library > > Not much to do with musl, it fails when I use clang on my desktop as > well. you can see the same errors with clang on host > > CC=clang ./configure > make > > On Thu, Mar 14, 2024 at 9:37 PM Khem Raj <raj.khem@gmail.com> wrote: > > > > 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.de@lists.openembedded.org> wrote: > > > > > > From: Jörg Sommer <joerg.sommer@navimatix.de> > > > > > > Signed-off-by: Jörg Sommer <joerg.sommer@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.sommer@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.sommer@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.sommer@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.sommer@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 (#109334): > https://lists.openembedded.org/g/openembedded-devel/message/109334 > Mute This Topic: https://lists.openembedded.org/mt/104933829/3617156 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
On Thu, 14 Mar 2024 20:43:17 +0100, joerg.sommer@navimatix.de wrote:
>
Applied, thanks!
[1/1] spandsp: new telephony DSP library
commit: 6a2b29e98d77de46a2885eff15bc8e4bc42e9396
Best regards,
On Sat, Mar 16, 2024 at 9:02 AM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote: > I'm seeing the same errors with gcc :) > > libtool: compile: ccache arm-oe-linux-gnueabi-gcc -mthumb -mfpu=neon > -mfloat-abi=softfp -mcpu=cortex-a9 -mtune=cortex-a9 > -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security > -Werror=format-security -Werror=return-type -funwind-tables -D_TIME_BITS=64 > -D_FILE_OFFSET_BITS=64 > --sysroot=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot > -DHAVE_CONFIG_H -I. -I../../git/src -I.. -DNDEBUG -Wunused-but-set-variable > -std=gnu99 -ffast-math -Wall -Wunused-variable -Wwrite-strings > -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden > -DHAVE_VISIBILITY=1 -O2 -pipe -g -feliminate-unused-debug-types > -fcanon-prefix-map > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/git=/usr/src/debug/lib32-spandsp/3.0.0+git > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/build=/usr/src/debug/lib32-spandsp/3.0.0+git > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= > -fmacro-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/lib32-recipe-sysroot= > -fdebug-prefix-map=TOPDIR/BUILD/work/mach-oe-linux-gnueabi/lib32-spandsp/3.0.0+git/recipe-sysroot-native= > -c ../../git/src/t38_terminal.c -fPIC -DPIC -o .libs/t38_terminal.o > ../../git/src/ademco_contactid.c:449:110: error: expected ')' before ';' > token > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | > ^ > In file included from ../../git/src/ademco_contactid.c:66: > ../../git/src/spandsp/tone_detect.h:63:55: note: to match this '(' > 63 | #define goertzel_threshold_dbm0(len,thresh) (int) > ((len*len*256.0*256.0/2.0*pow(10.0, (thresh - DBM0_MAX_SINE_POWER)/10.0)) > | ^ > ../../git/src/ademco_contactid.c:449:51: note: in expansion of macro > 'goertzel_threshold_dbm0' > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | > ^~~~~~~~~~~~~~~~~~~~~~~ > ../../git/src/ademco_contactid.c:449:18: warning: 'detection_threshold' > defined but not used [-Wunused-const-variable=] > 449 | static const int detection_threshold = > goertzel_threshold_dbm0(GOERTZEL_SAMPLES_PER_BLOCK, -42.0f); > | ^~~~~~~~~~~~~~~~~~~ > ../../git/src/ademco_contactid.c:210:35: warning: 'ademco_codes' defined > but not used [-Wunused-const-variable=] > 210 | static const struct ademco_code_s ademco_codes[] = > | ^~~~~~~~~~~~ > make[2]: *** [Makefile:1091: ademco_contactid.lo] Error 1 > > This is with master-next meta-oe from yesterday in build with multilib > (night not be important) > The failure on gcc was caused by arm build using SPANDSP_USE_FIXED_POINT and missing ')' in one of the macros, see comments in: https://github.com/freeswitch/spandsp/commit/5394b2cae6c482ccb835335b769469977e6802ae#commitcomment-139934289 and the fix: https://github.com/freeswitch/spandsp/pull/75
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.sommer@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.sommer@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.sommer@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.sommer@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"