From 0c908ca1274c6ff1342a7d7562dfce1f671a411f Mon Sep 17 00:00:00 2001 From: Brannon King Date: Fri, 11 Jan 2019 12:19:57 +0100 Subject: [PATCH] repaired ICU link order --- configure.ac | 25 +++++++++---------------- depends/packages/boost.mk | 1 + depends/packages/icu.mk | 11 ++++------- packaging/build_windows.sh | 6 +++++- src/Makefile.am | 6 +++--- src/Makefile.bench.include | 4 ++-- src/Makefile.test.include | 6 +++--- 7 files changed, 27 insertions(+), 32 deletions(-) diff --git a/configure.ac b/configure.ac index 20ed2d537..83a38720f 100644 --- a/configure.ac +++ b/configure.ac @@ -743,9 +743,13 @@ fi fi -ICU_CPPFLAGS="-I$ICU_PREFIX/include" -CPPFLAGS="$ICU_CPPFLAGS $CPPFLAGS" -ICU_LIBS="-L$ICU_PREFIX/lib -licui18n -licuuc -licudata -dl" +AS_IF([test "x$ICU_PREFIX" != xauto], [ + ICU_CPPFLAGS="-I$ICU_PREFIX/include", + ICU_LIBS="-L$ICU_PREFIX/lib -licui18n -licuuc -licudata -dl" +]) + +AC_MSG_WARN([Using ICU_CPPFLAGS $ICU_CPPFLAGS]) +AC_MSG_WARN([Using ICU_LIBS $ICU_LIBS]) if test x$use_pkgconfig = xyes; then @@ -753,17 +757,10 @@ if test x$use_pkgconfig = xyes; then AC_MSG_ERROR(pkg-config not found.) fi - if test "${ICU_PREFIX}" != "auto"; then - PKG_CONFIG_PATH="${ICU_PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH" - export PKG_CONFIG_PATH - fi - : #NOP m4_ifdef( [PKG_CHECK_MODULES], [ - PKG_CHECK_MODULES([ICU], [icu-i18n],, [AC_MSG_ERROR(icu-i18n not found.)]) - AC_CHECK_HEADER([unicode/errorcode.h],, AC_MSG_ERROR(libicu headers missing)) PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)]) PKG_CHECK_MODULES([CRYPTO], [libcrypto],, [AC_MSG_ERROR(libcrypto not found.)]) @@ -789,11 +786,7 @@ if test x$use_pkgconfig = xyes; then fi ] ) -else - AC_MSG_WARN([Using ICU_CPPFLAGS $ICU_CPPFLAGS]) - AC_MSG_WARN([Using ICU_LIBS $ICU_LIBS]) - AC_MSG_WARN([Using CPPFLAGS $CPPFLAGS]) - +else # compiling on Windows: AC_CHECK_HEADER([unicode/errorcode.h],,AC_MSG_ERROR(libicu headers missing)) AC_CHECK_LIB([icudata], [main], ICU_LIBS="-L$ICU_PREFIX/lib -licui18n -licuuc -licudata -dl", AC_CHECK_LIB([icu18n], [main],ICU_LIBS=$ICU_LIBS, ICU_LIBS="-L$ICU_PREFIX/lib -lsicudt -lsicuin -lsicuio -lsicule -lsiculx -lsicutest -lsicutu -lsicuuc")) @@ -874,7 +867,7 @@ AC_SUBST(UNIVALUE_LIBS) CXXFLAGS_TEMP="$CXXFLAGS" LIBS_TEMP="$LIBS" CXXFLAGS="$CXXFLAGS $CPPFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS" -LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS $ICU_LIBS" +LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS" #AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),) CXXFLAGS="$CXXFLAGS_TEMP" LIBS="$LIBS_TEMP" diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk index 14700090b..4e64d25e6 100644 --- a/depends/packages/boost.mk +++ b/depends/packages/boost.mk @@ -3,6 +3,7 @@ $(package)_version=1_59_0 $(package)_download_path=http://sourceforge.net/projects/boost/files/boost/1.59.0 $(package)_file_name=$(package)_$($(package)_version).tar.bz2 $(package)_sha256_hash=727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca +$(package)_dependencies:icu define $(package)_set_vars $(package)_config_opts_release=variant=release diff --git a/depends/packages/icu.mk b/depends/packages/icu.mk index 0093fee80..659bfa190 100644 --- a/depends/packages/icu.mk +++ b/depends/packages/icu.mk @@ -1,12 +1,12 @@ package=icu -$(package)_version=55_1 -$(package)_download_path=http://download.icu-project.org/files/icu4c/55.1 +$(package)_version=57_1 +$(package)_download_path=http://download.icu-project.org/files/icu4c/57.1 $(package)_file_name=$(package)4c-$($(package)_version)-src.tgz -$(package)_sha256_hash=e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b +$(package)_sha256_hash=ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 $(package)_build_subdir=source define $(package)_set_vars - $(package)_config_opts=--enable-debug --disable-release --host=i686-w64-mingw32 --with-cross-build=/tmp/icu_staging/icu/source --enable-extras=no --enable-strict=no -enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no + $(package)_config_opts=--enable-debug --disable-release --host=i686-w64-mingw32 --with-cross-build=/tmp/icu_staging/icu/source --enable-extras=no --enable-strict=no --enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no $(package)_config_opts_release=--disable-debug --enable-release $(package)_config_opts_mingw32=--host=i686-w64-mingw32 $(package)_config_opts_linux=--with-pic @@ -23,6 +23,3 @@ endef define $(package)_stage_cmds $(MAKE) DESTDIR=$($(package)_staging_dir) install endef - -define $(package)_postprocess_cmds -endef diff --git a/packaging/build_windows.sh b/packaging/build_windows.sh index 016a06ae1..5b3ce3ee7 100755 --- a/packaging/build_windows.sh +++ b/packaging/build_windows.sh @@ -10,6 +10,8 @@ sudo apt-get install -y --no-install-recommends \ ################################################################# # Build ICU for Linux first so that we can cross compile it below +# It's a strange ICU thing in that it requries a working +# Linux build of itself to be used as part of the cross-compile ################################################################# staging_dir=/tmp/icu_staging icu_linux_dir=$staging_dir/build_icu_linux @@ -18,13 +20,15 @@ pushd $staging_dir wget -c http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz tar -xvzf icu4c-57_1-src.tgz pushd icu/source -./runConfigureICU Linux --prefix=$icu_linux_dir --enable-extras=no --enable-strict=no -enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no +./runConfigureICU Linux --prefix=$icu_linux_dir --enable-extras=no --enable-strict=no --enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no make make install popd popd cd depends +mkdir -p sources +cp "$staging_dir/icu4c-57_1-src.tgz" sources/ make HOST=i686-w64-mingw32 NO_QT=1 cd .. patch -p1 < packaging/remove_consensus.patch diff --git a/src/Makefile.am b/src/Makefile.am index 08455a45c..b8b10c460 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,7 +29,7 @@ $(LIBLEVELDB) $(LIBMEMENV): endif BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config -BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(ICU_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS) $(ICU_CFLAGS) +BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(ICU_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS) BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include BITCOIN_INCLUDES += $(UNIVALUE_CFLAGS) @@ -397,7 +397,7 @@ lbrycrd_cli_LDADD = \ $(LIBUNIVALUE) \ $(LIBBITCOIN_UTIL) -lbrycrd_cli_LDADD += $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS) +lbrycrd_cli_LDADD += $(BOOST_LIBS) $(ICU_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS) # # bitcoin-tx binary # @@ -418,7 +418,7 @@ lbrycrd_tx_LDADD = \ $(LIBBITCOIN_CRYPTO) \ $(LIBSECP256K1) -lbrycrd_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) +lbrycrd_tx_LDADD += $(BOOST_LIBS) $(ICU_LIBS) $(CRYPTO_LIBS) # # bitcoinconsensus library # diff --git a/src/Makefile.bench.include b/src/Makefile.bench.include index aaa540f84..abb0b839b 100644 --- a/src/Makefile.bench.include +++ b/src/Makefile.bench.include @@ -9,7 +9,7 @@ bench_bench_bitcoin_SOURCES = \ bench/bench.h \ bench/Examples.cpp -bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) $(ICU_CPPFLAGS) $(BOOST_CPPFLAGS) -I$(builddir)/bench/ +bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) $(BOOST_CPPFLAGS) -I$(builddir)/bench/ bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) bench_bench_bitcoin_LDADD = \ $(LIBBITCOIN_SERVER) \ @@ -30,7 +30,7 @@ if ENABLE_WALLET bench_bench_bitcoin_LDADD += $(LIBBITCOIN_WALLET) endif -bench_bench_bitcoin_LDADD += $(ICU_LIBS) $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) +bench_bench_bitcoin_LDADD += $(BOOST_LIBS) $(ICU_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 837663ba1..0ec0ecd5e 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -100,15 +100,15 @@ BITCOIN_TESTS += \ endif test_test_lbrycrd_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) -test_test_lbrycrd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ICU_CPPFLAGS) $(BOOST_CPPFLAGS) -I$(builddir)/test/ $(TESTDEFS) +test_test_lbrycrd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -I$(builddir)/test/ $(TESTDEFS) test_test_lbrycrd_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ - $(ICU_LIBS) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) + $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) test_test_lbrycrd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) if ENABLE_WALLET test_test_lbrycrd_LDADD += $(LIBBITCOIN_WALLET) endif -test_test_lbrycrd_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(ICU_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) +test_test_lbrycrd_LDADD += $(LIBBITCOIN_CONSENSUS) $(ICU_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) test_test_lbrycrd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if ENABLE_ZMQ