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

Reply via email to