Search code examples
makefileyoctopjsip

Undefined references when building pjproject with ssl support in yocto


Im trying to cross compile pjproject in yocto with ssl support but it errors out trying to build pjlib-test. Ive tried adding the openssl package to DEPENDS in my .bb file but nothing changes. Any help would be appreciated.

tmp/work/armv7at2hf-neon-mx6ul-fslc-linux-gnueabi/pjproject/2.8-r0/pjproject-2.8/third_party/lib         -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fuse-ld=bfd -lssl -lcrypto -fuse-ld=bfd -lssl -lcrypto
| output/pjlib-test-arm-fslc-linux-gnueabi/ssl_sock.o: In function `get_cipher_list':
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:49: undefined reference to `pj_ssl_cipher_get_availables'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:58: undefined reference to `pj_ssl_cipher_name'
| output/pjlib-test-arm-fslc-linux-gnueabi/ssl_sock.o: In function `ssl_on_data_sent':
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:362: undefined reference to `pj_ssl_sock_get_user_data'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:377: undefined reference to `pj_ssl_sock_send'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:393: undefined reference to `pj_ssl_sock_close'
| output/pjlib-test-arm-fslc-linux-gnueabi/ssl_sock.o: In function `ssl_on_data_read':
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:266: undefined reference to `pj_ssl_sock_get_user_data'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:349: undefined reference to `pj_ssl_sock_close'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:323: undefined reference to `pj_ssl_sock_get_info'
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:296: undefined reference to `pj_ssl_sock_send'
| output/pjlib-test-arm-fslc-linux-gnueabi/ssl_sock.o: In function `dump_ssl_info':
| /usr/src/debug/pjproject/2.8-r0/pjproject-2.8/pjlib/src/pjlib-test/ssl_sock.c:93: undefined reference to `pj_ssl_cipher_name'
| output/pjlib-test-arm-fslc-linux-gnueabi/ssl_sock.o: In function `ssl_on_connect_complete':

edit: it seems its because its not detecting openssl, which i can get it to do by using the --with-ssl= flag but i have no idea where to point this flag as yocto rejects the build when i set it to /usr/lib where libssl is or if i set it to /usr/bin where openssl is.


Solution

  • I would first check why the pjproject configure fails to find openssl (it should not be rocket science on linux). But what you asked for can normally be done with something like this:

    EXTRA_OECONF = "--with-ssl=${STAGING_DIR_HOST}${prefix}"
    

    There is no way to tell if that will really work in your case since you did not share your recipe.