[asterisk-bugs] [JIRA] (ASTERISK-27687) FreeBSD: powl has lower than advertised precision.

Joshua Colp (JIRA) noreply at issues.asterisk.org
Mon Mar 12 08:15:14 CDT 2018


     [ https://issues.asterisk.org/jira/browse/ASTERISK-27687?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joshua Colp updated ASTERISK-27687:
-----------------------------------

    Component/s:     (was: . I did not set the category correctly.)
                 Core/General

> FreeBSD: powl has lower than advertised precision.
> --------------------------------------------------
>
>                 Key: ASTERISK-27687
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27687
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/General
>    Affects Versions: 13.19.1
>         Environment: FreeBSD 11.1
> base compiler (clang)
>            Reporter: Alexander Traud
>            Severity: Minor
>
> After patching all of my found issues (see ASTERISK-27686), this is the only, the last warning message which remains on FreeBSD when I go [for|http://lists.digium.com/pipermail/asterisk-dev/2018-January/076765.html]:{code}fetch --no-verify-peer http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
> tar -zxf asterisk-*
> cd asterisk-*
> sudo ./contrib/scripts/install_prereq install
> ./configure --with-pjproject-bundled
> make
> sudo make install samples config
> asterisk -c{code}Unfortunately, the message does not say what to do instead. Therefore, I do not know how to proceed except to report it:{code}
> ast_expr2.o: In function `op_func':
> main/ast_expr2.y:882: warning: powl has lower than advertised precision{code}The cause are [Expr2|https://wiki.asterisk.org/wiki/display/AST/Expr2+Built-in+Functions] which bridge standard C functions, like {{powl(.)}}. Because of that, a [macro|http://sources.freebsd.org/HEAD/src/lib/msun/src/imprecise.c] in FreeBSD is triggered. Even found a more [detailed explanation|https://android.googlesource.com/platform/bionic/+/f723b70%5E%21/] in the Android Open Source Project: {quote}On LP64, sizeof(long double) > sizeof(double), so functions which fall back to their double variants lose precision. Emit a warning whenever something links against such functions. On LP32, sizeof(long double) == sizeof(double), so we don't need to warn.{quote}There, that code falls back to {{pow(.)}}. Because in Asterisk, FreeBSD has only community contributed support, perhaps someone interested in FreeBSD can start with this analysis and find a fix, like a pragma for the compiler or another workaround.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list