On 2023/09/11 10:39, Alex Frolkin wrote:
> Hi all,
>
> Has anyone had any success running Asterisk on Octeon (in my case, an
> EdgeRouter 6P, running OpenBSD 7.3)?
>
> If I try to build the port, it fails in the same way as the automated
> package builds, i.e.:
>
>
> http://build-failures.rhaalovely.net/mips64/2023-08-29/telephony/asterisk/20.log
>
> I don't know what's going on there, but if I run "make menuselect" and
> disable res_geolocation (and remove the corresponding bits from
> pkg/PLIST-main), it builds fine. Note that I'm building with all the
> no_* flavours enabled.
>
> However, some seconds after startup, it segfaults. I'm pretty sure this
> is down to the PJSIP bits, because if I stop Asterisk loading those, it
> seems to run fine. For my use case, however, I definitely need SIP.
>
> I've tried all three available Asterisk versions (16, 18, 20), and the
> result is exactly the same in all three cases.
>
> I could probably run Asterisk 16 which still has the old chan_sip module
> (removed in 18 and 20), but this seems like a dead-end solution.
>
> At this point, I'm just about ready to give up and run Asterisk
> elsewhere and a SIP proxy on my EdgeRouter, but I thought I'd ask in
> case anyone else has managed to find a way to make it work.
No idea what's up on Octeon, but you could try building it with gcc
to check if that makes any difference.
Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/telephony/asterisk/Makefile.inc,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile.inc
--- Makefile.inc 25 May 2023 10:46:26 -0000 1.19
+++ Makefile.inc 11 Sep 2023 10:54:17 -0000
@@ -34,7 +34,7 @@ DPB_PROPERTIES= parallel
# Asterisk requires either nested functions (gcc extension), or -fblocks
(clang).
# Keep telephony/asterisk-g729 in sync.
-COMPILER= base-clang ports-gcc
+COMPILER= ports-gcc
# XXX bsd.port.arch.mk is included below, before compiler.port.mk can set
# ONLY_FOR_ARCHS
ONLY_FOR_ARCHS= ${CLANG_ARCHS} ${GCC49_ARCHS}
@@ -168,7 +168,7 @@ CFLAGS += -DHAVE_OPENSSL_BIO_METHOD
.include <bsd.port.arch.mk>
-.if ${PROPERTIES:Mclang}
+.if 0 && ${PROPERTIES:Mclang}
LDFLAGS += -lBlocksRuntime
BLOCKSLIBDEP = devel/libdispatch
BLOCKSWANTLIB = BlocksRuntime