Asterisk 16, 9.0 – Res_rtp_asterisk Compilation Error

Home » Asterisk Users » Asterisk 16, 9.0 – Res_rtp_asterisk Compilation Error
Asterisk Users 3 Comments

Hello,

2 asterisk servers 16.8.0 version running on Debian 10.3 On one of them, I can’t compile asterisk having error

   [CC] res_rtp_asterisk.c -> res_rtp_asterisk.o res_rtp_asterisk.c:2674:3: error: ‘pj_ice_sess_cb’ {aka ‘struct pj_ice_sess_cb’} has no member named ‘on_valid_pair’
  .on_valid_pair = ast_rtp_on_valid_pair,
   ^~~~~~~~~~~~~
res_rtp_asterisk.c:2674:19: warning: initialization of ‘void
(*)(pj_ice_sess *, pj_status_t)’ {aka ‘void (*)(struct pj_ice_sess *, int)’} from incompatible pointer type ‘void (*)(pj_ice_sess *)’ {aka
‘void (*)(struct pj_ice_sess *)’} [-Wincompatible-pointer-types]
  .on_valid_pair = ast_rtp_on_valid_pair,
                   ^~~~~~~~~~~~~~~~~~~~~
res_rtp_asterisk.c:2674:19: note: (near initialization for
‘ast_rtp_ice_sess_cb.on_ice_complete’)
make[1]: *** [/usr/src/asterisk-16.9.0/Makefile.rules:164:
res_rtp_asterisk.o] Error 1
make: *** [Makefile:383: res] Error 2

I applied the patch and did make clean && ./configure
–with-pjproject-bundled && make which give this error. Openssl is installed. On the other server there was no problem.

Any clue ?


Daniel

3 thoughts on - Asterisk 16, 9.0 – Res_rtp_asterisk Compilation Error

  • If you do “make distclean” and then rebuild does it resolve the problem?
    Did you apply the patch to upgrade?

  • Le 13/03/2020 à 13:30, Joshua C. Colp a écrit :
    We a distclean it’s OK despite the fact that we see error

       [CC] app_osplookup.c -> app_osplookup.o app_osplookup.c: In function ‘osp_convert_inout.constprop’:
    app_osplookup.c:1011:35: warning: ‘]:’ directive output may be truncated writing 2 bytes into a region of size between 0 and 255
    [-Wformat-truncation=]
          snprintf(dest, destsize, “[%s]:%s”, buffer, port);
    ^~
    In file included from /usr/include/stdio.h:873,
                     from
    /usr/src/asterisk-16.9.0/include/asterisk/compat.h:49,
                     from /usr/src/asterisk-16.9.0/include/asterisk.h:22,
                     from app_osplookup.c:37:
    /usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note:
    ‘__builtin___snprintf_chk’ output 4 or more bytes (assuming 259) into a destination of size 256
       return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL – 1,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            __bos (__s), __fmt, __va_arg_pack ());
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    app_osplookup.c:1013:35: warning: ‘]’ directive output may be truncated writing 1 byte into a region of size between 0 and 255
    [-Wformat-truncation=]
          snprintf(dest, destsize, “[%s]”, buffer);
    ^
    In file included from /usr/include/stdio.h:873,
                     from
    /usr/src/asterisk-16.9.0/include/asterisk/compat.h:49,
                     from /usr/src/asterisk-16.9.0/include/asterisk.h:22,
                     from app_osplookup.c:37:
    /usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note:
    ‘__builtin___snprintf_chk’ output between 3 and 258 bytes into a destination of size 256
       return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL – 1,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            __bos (__s), __fmt, __va_arg_pack ());
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Does it mean that we should always use distclean with the newer versions?

  • It’s best to do a “make distclean” if you are reusing an existing copy of the source code to clean everything up so it builds from scratch.