From: "Alexander Tikhonov" <avtikhon@tarantool.org> To: "Igor Munkin" <imun@tarantool.org> Cc: tarantool-patches@dev.tarantool.org Subject: Re: [Tarantool-patches] [PATCH v2] static build: create new build w/o dockerfile Date: Thu, 19 Dec 2019 19:53:24 +0300 [thread overview] Message-ID: <1576774404.22502288@f473.i.mail.ru> (raw) In-Reply-To: <20191219124343.GY1214@tarantool.org> [-- Attachment #1: Type: text/plain, Size: 6110 bytes --] >Четверг, 19 декабря 2019, 15:45 +03:00 от Igor Munkin <imun@tarantool.org>: > >Sasha, > >Thanks, LGTM. Please consider several side notes below. > >On 10.12.19, Alexander V. Tikhonov wrote: >> Fixed static build with '-DBUILD_STATIC=ON' option: >> >> - installed liblzma-dev library for libunwind static, due to found that >> static libunwind library uses undefined lzma functions: >> nm -a /usr/lib/x86_64-linux-gnu/libunwind-x86_64.a | grep lzma >> U lzma_index_buffer_decode >> U lzma_index_end >> U lzma_index_size >> U lzma_index_uncompressed_size >> U lzma_stream_buffer_decode >> U lzma_stream_footer_decode >> while dynamic libunwind correctly sees liblzma installed: >> ldd /usr/lib/x86_64-linux-gnu/libunwind-x86_64.so | grep lzma >> liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f8fd1c23000) >> so to fix it the static library of lzma was needed. >> >> - added lzma library to unwind library for Tarantool build at file: >> cmake/compiler.cmake >> due to fail: >> /usr/lib/x86_64-linux-gnu/libunwind-x86_64.a(elf64.o): >> In function `xz_uncompressed_size': >> ./src/elfxx.c:194: undefined reference to `lzma_stream_footer_decode' >> ./src/elfxx.c:201: undefined reference to `lzma_index_buffer_decode' >> ./src/elfxx.c:205: undefined reference to `lzma_index_size' >> ./src/elfxx.c:210: undefined reference to `lzma_index_end' >> ./src/elfxx.c:207: undefined reference to `lzma_index_uncompressed_size' >> ./src/elfxx.c:210: undefined reference to `lzma_index_end' >> /usr/lib/x86_64-linux-gnu/libunwind-x86_64.a(elf64.o): >> In function `_Uelf64_extract_minidebuginfo': >> ./src/elfxx.c:278: undefined reference to `lzma_stream_buffer_decode' >> collect2: error: ld returned 1 exit status >> test/unit/CMakeFiles/luaL_iterator.test.dir/build.make:134: >> recipe for target 'test/unit/luaL_iterator.test' failed >> make[2]: *** [test/unit/luaL_iterator.test] Error 1 >> >> - added dl library to gomp library for test/unit tests >> binaries builds at file: >> cmake/BuildMisc.cmake >> due to fail: >> /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.a(target.o):(.text+0x34d): >> more undefined references to `dlsym' follow >> /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.a(target.o): In function >> `gomp_target_init': >> (.text+0x9cc): undefined reference to `dlerror' >> collect2: error: ld returned 1 exit status >> >> - added dl library to icu library for test/unit tests >> binaries builds at file: >> cmake/FindICU.cmake >> due to fail: >> /usr/x86_64-linux-gnu/libicuuc.a(putil.ao): >> In function `uprv_dl_open_60': >> (.text+0x1ce2): undefined reference to `dlopen' >> /usr/x86_64-linux-gnu/libicuuc.a(putil.ao): >> In function `uprv_dlsym_func_60': >> (.text+0x1d3d): undefined reference to `dlsym' >> /usr/x86_64-linux-gnu/libicuuc.a(putil.ao): >> In function `uprv_dl_close_60': >> (.text+0x1d21): undefined reference to `dlclose' >> collect2: error: ld returned 1 exit status >> >> Added static build to gitlab-ci in release check criteria named >> as static_build job. Previously named static_build job renamed to >> static_docker_build, due to it checks the build at Dockerfile. >> >> Also moved static build make targets from .gitlab.mk to .travis.mk >> to store it in common place with the other test/build make targets. >> Moved environement from .gitlab-ci.yml file into make targets to >> make this targets true building in static w/o additional setup. >> >> Close #4551 >> --- >> >> Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-4551-static-build-full-ci >> Issue: https://github.com/tarantool/tarantool/issues/4551 >> >> .gitlab-ci.yml | 12 +++++++++--- >> .gitlab.mk | 9 +-------- >> .travis.mk | 16 ++++++++++++++++ >> cmake/BuildMisc.cmake | 2 +- >> cmake/FindICU.cmake | 2 +- >> cmake/compiler.cmake | 11 +++++++++++ >> 6 files changed, 39 insertions(+), 13 deletions(-) > ><snipped> > >> # Pass *_no_deps goals to .travis.mk. >> -test_%_no_deps: git_submodule_update >> +test_%: git_submodule_update >> ${TRAVIS_MAKE} $@ >> > >Side note: As discussed offline, please create a ticket for the >follow up activity to reduce a mess with the make target naming. Right, created the issue https://github.com/tarantool/tarantool/issues/4694 > >> # ####################################################### > ><snipped> > >> diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake >> index c9ad2b092..56429dc20 100644 >> --- a/cmake/compiler.cmake >> +++ b/cmake/compiler.cmake >> @@ -171,6 +171,17 @@ if (ENABLE_BACKTRACE) >> NAMES ${UNWIND_PLATFORM_LIB_NAME}) >> set(UNWIND_LIBRARIES ${UNWIND_PLATFORM_LIBRARY} ${UNWIND_LIBRARY}) >> endif() >> + if (BUILD_STATIC) >> + # some versions of libunwind need liblzma, and we don't use pkg-config >> + # so we just look whether liblzma is installed, and add it if it is. >> + # It might not be actually needed, but doesn't hurt if it is not. >> + # We don't need any headers, just the lib, as it's privately needed. >> + find_library(LZMA_LIBRARY PATH_SUFFIXES system NAMES liblzma.a) >> + if (NOT LZMA_LIBRARY STREQUAL "LZMA_LIBRARY-NOTFOUND") >> + message(STATUS "liblzma found") >> + set(UNWIND_LIBRARIES ${UNWIND_LIBRARIES} ${LZMA_LIBRARY}) >> + endif() >> + endif() > >Side note: We discussed offline with Sasha Tu. whether there is a better >way to maintain such indirect dependencies and decided to proceed with >the research within a separate issue. Sure, created issue https://github.com/tarantool/tarantool/issues/4695 > >> find_package_message(UNWIND_LIBRARIES "Found unwind" "${UNWIND_LIBRARIES}") >> endif() >> >> -- >> 2.17.1 >> > >-- >Best regards, >IM -- Alexander Tikhonov [-- Attachment #2: Type: text/html, Size: 8151 bytes --]
next prev parent reply other threads:[~2019-12-19 16:53 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-10 13:11 Alexander V. Tikhonov 2019-12-19 12:43 ` Igor Munkin 2019-12-19 16:53 ` Alexander Tikhonov [this message] 2019-12-19 16:55 ` Alexander Tikhonov 2020-04-01 9:59 ` Sergey Bronnikov 2020-04-02 10:40 ` Kirill Yukhin 2020-04-02 11:24 ` Kirill Yukhin -- strict thread matches above, loose matches on Subject: below -- 2019-12-10 11:21 Alexander V. Tikhonov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1576774404.22502288@f473.i.mail.ru \ --to=avtikhon@tarantool.org \ --cc=imun@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2] static build: create new build w/o dockerfile' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox