From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp51.i.mail.ru (smtp51.i.mail.ru [94.100.177.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 35F18469719 for ; Thu, 1 Oct 2020 06:19:15 +0300 (MSK) Date: Thu, 1 Oct 2020 06:19:27 +0300 From: Alexander Turenko Message-ID: <20201001031927.dgyx72zijhnakm5l@tkn_work_nb> References: <20200923110251.33201-1-huston.mavr@gmail.com> <861c8e85-83f0-6640-75bc-7f5d923c4f47@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <861c8e85-83f0-6640-75bc-7f5d923c4f47@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v2] Add missed icu symbols List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladislav Shpilevoy Cc: tarantool-patches@dev.tarantool.org, Yaroslav Dynnikov On Mon, Sep 28, 2020 at 08:26:05AM +0200, Vladislav Shpilevoy wrote: > On 28.09.2020 00:39, Alexandr Barulev wrote: > > Hello, thanks for the review of new patch version! > > > > I've fixed commit message (added `build` prefix) and rebased > > from master. > > > > I think commit, mentionied at patch message ("cmake: remove > > dynamic-list linker option") is related to #5266 issue. > > It's because symbols exports from required libs into tarantool binary > > earlier were configured with two options: > > by `--whole-archive` option; > > and `--dynamic-list,${exports_file}` option, where exports_file was created > > with use of mkexports script (symbols was grabbed by nm -D from shared > > libraries). > > > > Also, I've checkouted "cmake: remove dynamic-list linker option" > > commit, built static tarantool and ran icu-date tests. In result > > tests failed with `undefined symbol` errors. > > After that, I checkouted previous commit, built tarantool again > > and icu-date tests succeed > > Ok, so this is because of whole-archive removal. Can it be fixed by > adding linking with the static ICU with whole-archive option instead of > manual exporting of each symbol, like it was before? (I don't know full context of the discussion.) Decision to link a third-party library statically should be last resort option and should be considered only when we have a real business need. Not just to save some lines of code. Almost all Linux distributions link libraries dynamically and we should generally follow this way. On the distro level it allows to provide security updates of libraries (without repackaging of half of a system), saves some disk and some memory.