[Asterisk-bsd] OSLEC on FreeBSD - floating point in kernel (part 2)

Ian FREISLICH ianf at clue.co.za
Tue Sep 22 13:04:40 CDT 2009


Max Khon wrote:
> --===============5398360926952429874==
> Content-Type: multipart/alternative; boundary=000e0cd286b49818bd04742d8986
> 
> --000e0cd286b49818bd04742d8986
> Content-Type: text/plain; charset=ISO-8859-1
> 
> Hello, Ian!
> 
> On Tue, Sep 22, 2009 at 4:40 PM, Ian FREISLICH <ianf at clue.co.za> wrote:
> 
> 
> > I was wondering if anyone has actually managed to get this working.
> > I'm using amd64 and when I select the ECHO_CAN_OSLEC, the compile
> > fails with the following error:
> >
> > Warning: Object directory not changed from original
> > /usr/ports/misc/zaptel/work/zaptel-bsd-1.4.11.2/zaptel
> > cc -O2 -pipe -march=athlon64 -fno-strict-aliasing -Wall -D_KERNEL
> > -DKLD_MODULE -nostdinc
> >  -I/usr/ports/misc/zaptel/work/zaptel-bsd-1.4.11.2/zaptel/../zaptel -I. -I@
-I@/contrib/altq
> > -finline-limit=8000 --param inline-unit-growth=100 --param
> > large-function-growth=1000 -fno-common  -fno-omit-frame-pointer
> > -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3
> > -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables
> > -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall
> > -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototype
s
> > -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign
> > -fformat-extensions -c oslec_echo.c
> > oslec_echo.c: In function 'echo_can_update':
> > oslec_echo.c:164: error: SSE register return with SSE disabled
> >
> 
> Which FreeBSD version is it?
>  It builds fine for me on FreeBSD 6, 7, and 8

You're probably building with OSLEC then.  A standard build of the
port builds the MG2 echo canceler.

I'm using 9-CURRENT, but you need to be using amd64 *and* to have
set:

#define ECHO_CAN_OSLEC

in work/zaptel-bsd-1.4.11.2/zaptel/zconfig.h

to get OSLEC (and reproduce this problem).  The MG2 echo canceler
doesn't converge quickly enough (it takes about 30 seconds) and
even then doesn't cancel all the echo on my line.  OSLEC on linux
works great, but I want to ditch linux.

If you're using OSLEC, but on i386, then you're probably going to
have your floating point math corrupted during calls.

Ian

--
Ian Freislich



More information about the Asterisk-BSD mailing list