diff --git a/package/sconeserver/0001-fix-ssl-libs-ordering.patch b/package/sconeserver/0001-fix-ssl-libs-ordering.patch new file mode 100644 index 000000000..f1f25b905 --- /dev/null +++ b/package/sconeserver/0001-fix-ssl-libs-ordering.patch @@ -0,0 +1,36 @@ +configure: re-order SSL libs when linking + +When doing static builds, the ordering of libs is important, as the +linker does not back-pedal to previous libraries specified on the +command line to find missing symbols, and only searches for those +missing symbols in the following libs. + +Thus, as -lssl needs symbols from -lcrypto, it needs to come before +-lcrypto. + +And globally, we do *not* append new libraries, we prepend them. + +Signed-off-by: "Yann E. MORIN" + +diff -durN a/configure.in b/configure.in +--- a/configure.in 2014-10-16 11:12:08.000000000 +0200 ++++ b/configure.in 2015-05-30 15:44:25.540329788 +0200 +@@ -133,12 +133,14 @@ + [AC_MSG_ERROR([header file is required for OpenSSL, use --with-openssl-path=PATH])] + ) + AC_CHECK_LIB([crypto],[CRYPTO_new_ex_data], +- [SSL_LIBADD="$SSL_LIBADD -lcrypto"], +- [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])] ++ [SSL_LIBADD="-lcrypto $SSL_LIBADD"], ++ [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])], ++ [$SSL_LIBADD] + ) + AC_CHECK_LIB([ssl],[SSL_library_init], +- [SSL_LIBADD="$SSL_LIBADD -lssl"], +- [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])] ++ [SSL_LIBADD="-lssl $SSL_LIBADD"], ++ [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])], ++ [$SSL_LIBADD] + ) + AC_SUBST(SSL_LIBADD) + fi diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk index 3ff891bcc..beca926f7 100644 --- a/package/sconeserver/sconeserver.mk +++ b/package/sconeserver/sconeserver.mk @@ -24,6 +24,9 @@ endif ifeq ($(BR2_PACKAGE_OPENSSL),y) SCONESERVER_DEPENDENCIES += openssl SCONESERVER_CONF_OPTS += --with-ssl +ifeq ($(BR2_STATIC_LIBS),y) +SCONESERVER_CONF_ENV += SSL_LIBADD=-lz +endif else SCONESERVER_CONF_OPTS += --without-ssl endif