[SFLphone] Build error on OpenSUSE Build System (OBS) - undefined references to SSL symbols

René Krell rkrell at gmx.net
Wed Feb 10 04:13:30 EST 2010


Alright, applying the patch for skipping compiling the tests in the RPM spec 
worked.

Maybe the PJSIP tests ling with an older version of libssl (0.9.7 instead of 
0.9.8)? In most cases, compiling files on a developer system works, because 
there are a lot of header files and libraries installed, anyway. The OpenSUSE 
Build System is more strict, it compiles files in a virtual machine "sandbox" 
preinstalling only a base system and the packages you explicitly declare in 
the RPM spec.


On Tuesday 09 February 2010 18:31:03 you wrote:
> The error occurs in the test folder which means that SFLphone deamon
> compiled successfully.
> 
> SFLphone's test suite is far from beeing complete, except for very specific
> features added recently such as the centralized audio management or the
> SDES parser.
> 
> I don't see why openssl is not linked to PJSIP in the test folder.
> 
> You can disable the test suite compilation simply commenting the last
> argument of SUBDIRS in sflphone/sflphone-common/Makefile.am
> 
> SUBDIRS = libs src ringtones man $(TESTS_DIR)
> 
> SUBDIRS = libs src ringtones man # $(TESTS_DIR)
> 
> I'll try to compile the application on OpenSUSE on my side.
> 
> Thanks
> 
> ----- Mail Original -----
> De: "René Krell" <rkrell at gmx.net>
> À: sflphone at lists.savoirfairelinux.net
> Envoyé: Mardi 9 Février 2010 05h40:59 GMT -05:00 USA/Canada - États de
> l'Est Objet: [SFLphone] Build error on OpenSUSE Build System (OBS) -
> undefined references to SSL symbols
> 
> I'm trying to integrate sflphone 0.9.7 to the OpenSUSE Build System, but I
> get the following build error: ---
> Making all in test
> make[2]: Entering directory
> `/usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/test' CXX
> numbercleanerTest.o
> CXX TestMain.o
> CXXLD numbercleanerTester
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsip
> /lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `lis_destroy': sip_transport_tls_ossl.c:(.text+0x2f3): undefined
> reference to `SSL_CTX_free'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `ssl_write_bytes': sip_transport_tls_ossl.c:(.text+0x3e4):
> undefined reference to `SSL_write' sip_transport_tls_ossl.c:(.text+0x3f5):
> undefined reference to `SSL_get_error'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `on_read_complete': sip_transport_tls_ossl.c:(.text+0x9e1):
> undefined reference to `SSL_read' sip_transport_tls_ossl.c:(.text+0x9f3):
> undefined reference to `SSL_get_error'
> sip_transport_tls_ossl.c:(.text+0xaf7): undefined reference to
> `SSL_pending'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `tls_shutdown': sip_transport_tls_ossl.c:(.text+0xcb0): undefined
> reference to `SSL_shutdown'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `tls_destroy': sip_transport_tls_ossl.c:(.text+0x1021): undefined
> reference to `SSL_free'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `ssl_accept': sip_transport_tls_ossl.c:(.text+0x1193): undefined
> reference to `SSL_state' sip_transport_tls_ossl.c:(.text+0x11a4):
> undefined reference to `SSL_state'
> sip_transport_tls_ossl.c:(.text+0x11e3): undefined reference to
> `SSL_accept' sip_transport_tls_ossl.c:(.text+0x11f0): undefined reference
> to `SSL_get_error' sip_transport_tls_ossl.c:(.text+0x1256): undefined
> reference to `SSL_want' sip_transport_tls_ossl.c:(.text+0x1267): undefined
> reference to `SSL_want' sip_transport_tls_ossl.c:(.text+0x12f3): undefined
> reference to `SSL_state' sip_transport_tls_ossl.c:(.text+0x1394):
> undefined reference to `SSL_set_accept_state'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `tls_create': sip_transport_tls_ossl.c:(.text+0x16b5): undefined
> reference to `SSL_new' sip_transport_tls_ossl.c:(.text+0x16d0): undefined
> reference to `SSL_set_fd'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `ssl_connect': sip_transport_tls_ossl.c:(.text+0x1ba6): undefined
> reference to `SSL_state' sip_transport_tls_ossl.c:(.text+0x1bb7):
> undefined reference to `SSL_get_fd'
> sip_transport_tls_ossl.c:(.text+0x1bc7): undefined reference to
> `SSL_state' sip_transport_tls_ossl.c:(.text+0x1c79): undefined reference
> to `SSL_ctrl' sip_transport_tls_ossl.c:(.text+0x1cba): undefined reference
> to `SSL_connect' sip_transport_tls_ossl.c:(.text+0x1cc7): undefined
> reference to `SSL_get_error' sip_transport_tls_ossl.c:(.text+0x1d04):
> undefined reference to `SSL_set_connect_state'
> sip_transport_tls_ossl.c:(.text+0x1d82): undefined reference to
> `SSL_state' sip_transport_tls_ossl.c:(.text+0x1db1): undefined reference
> to `SSL_want' sip_transport_tls_ossl.c:(.text+0x1dc2): undefined reference
> to `SSL_want' sip_transport_tls_ossl.c:(.text+0x1ed3): undefined reference
> to `SSL_set_fd'
> /usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/libs/pjproject/pjsi
> p/lib/libpjsip-sfl-x86_64-suse-linux-gnu.a(sip_transport_tls_ossl.o): In
> function `pjsip_tls_transport_start':
> sip_transport_tls_ossl.c:(.text+0x2696): undefined reference to
> `TLSv1_method' sip_transport_tls_ossl.c:(.text+0x269e): undefined
> reference to `SSL_CTX_new' sip_transport_tls_ossl.c:(.text+0x26d5):
> undefined reference to `SSL_CTX_load_verify_locations'
> sip_transport_tls_ossl.c:(.text+0x2712): undefined reference to
> `SSL_CTX_free' sip_transport_tls_ossl.c:(.text+0x2821): undefined
> reference to `SSLv23_method' sip_transport_tls_ossl.c:(.text+0x2869):
> undefined reference to `SSL_CTX_set_default_passwd_cb'
> sip_transport_tls_ossl.c:(.text+0x2874): undefined reference to
> `SSL_CTX_set_default_passwd_cb_userdata'
> sip_transport_tls_ossl.c:(.text+0x289d): undefined reference to
> `SSL_CTX_use_certificate_chain_file'
> sip_transport_tls_ossl.c:(.text+0x28d6): undefined reference to
> `SSL_CTX_free' sip_transport_tls_ossl.c:(.text+0x28e0): undefined
> reference to `SSLv2_method' sip_transport_tls_ossl.c:(.text+0x2909):
> undefined reference to `SSLv3_method'
> sip_transport_tls_ossl.c:(.text+0x2972): undefined reference to
> `SSL_CTX_use_PrivateKey_file' sip_transport_tls_ossl.c:(.text+0x29af):
> undefined reference to `SSL_CTX_free'
> sip_transport_tls_ossl.c:(.text+0x29d3): undefined reference to
> `SSL_library_init' sip_transport_tls_ossl.c:(.text+0x29d8): undefined
> reference to `SSL_load_error_strings'
> sip_transport_tls_ossl.c:(.text+0x2a5c): undefined reference to
> `SSL_CTX_set_verify' sip_transport_tls_ossl.c:(.text+0x2aa2): undefined
> reference to `SSL_CTX_set_cipher_list'
> sip_transport_tls_ossl.c:(.text+0x2adb): undefined reference to
> `SSL_CTX_free' collect2: ld returned 1 exit status
> make[2]: *** [numbercleanerTester] Error 1
> make[2]: Leaving directory
> `/usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common/test' make[1]: ***
> [all-recursive] Error 1
> make[1]: Leaving directory
> `/usr/src/packages/BUILD/sflphone-0.9.7/sflphone-common' make: *** [all]
> Error 2
> ---
> 
> 
> In the RPM spec file I have the following build and installation
> dependencies and instructions:
> ---
> ...
> BuildRequires:	libpulse-devel
> BuildRequires:	commoncpp2-devel
> BuildRequires:	libccrtp-devel
> BuildRequires:	libsamplerate-devel
> BuildRequires:	dbus-1-devel
> BuildRequires:	libexpat-devel
> BuildRequires:	libgsm-devel
> BuildRequires:	speex-devel
> BuildRequires:	libcppunit-devel
> BuildRequires:	alsa-devel
> BuildRequires:	libuuid-devel
> BuildRequires:	gcc-c++
> BuildRequires:  update-desktop-files
> BuildRequires:  libzrtpcpp-devel
> BuildRequires:  libopenssl-devel
> Requires:	libsamplerate
> Requires:	libexpat1
> Requires:	commoncpp2
> Requires:	libgsm1
> Requires:	libspeex
> Requires:	dbus-1
> Requires:	libasound2
> Requires:	libpulse0
> Requires:	libccrtp1
> Requires:	libzrtpcpp
> Requires:       libopenssl0_9_8
> ...
> %build
> cd sflphone-common
> cd libs/pjproject
> ./autogen.sh
> %configure
> make dep
> make clean
> make
> autoconf aconfigure.ac > aconfigure
> cd -
> ./autogen.sh
> %configure
> make
> ...
> ---
> 
> 
> What might be going wrong here?
> 
> Thanks,
> René
> _______________________________________________
> SFLphone mailing list
> SFLphone at lists.savoirfairelinux.net
> http://lists.savoirfairelinux.net/mailman/listinfo/sflphone


More information about the SFLphone mailing list