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:55:12 +0300 [thread overview]
Message-ID: <1576774512.496395282@f473.i.mail.ru> (raw)
In-Reply-To: <1576774404.22502288@f473.i.mail.ru>
[-- Attachment #1: Type: text/plain, Size: 6465 bytes --]
Igor, thanks for the review, I've created 2 issues as you suggested.
>Четверг, 19 декабря 2019, 19:53 +03:00 от Alexander Tikhonov <avtikhon@tarantool.org>:
>
>
>
>
>>Четверг, 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
--
Alexander Tikhonov
[-- Attachment #2: Type: text/html, Size: 9003 bytes --]
next prev parent reply other threads:[~2019-12-19 16:55 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
2019-12-19 16:55 ` Alexander Tikhonov [this message]
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=1576774512.496395282@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