From: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
To: Alexander Turenko <alexander.turenko@tarantool.org>,
Igor Munkin <imun@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v1] Block linker flag '--no-undefined'
Date: Thu, 9 Jul 2020 08:41:11 +0300 [thread overview]
Message-ID: <20200709054111.GA25145@hpalx> (raw)
In-Reply-To: <20200708192200.vwd7thsmsjurdtql@tkn_work_nb>
Hi Alexander, thanks for the review, I've corrected the messages and
checked the usage of the functions from test/CMakeLists.txt file.
On Wed, Jul 08, 2020 at 10:22:00PM +0300, Alexander Turenko wrote:
> > Minor: I reworded the message a bit:
> > | Found that OpenSUSE toolchain adds '--no-undefined' linked flag leading
>
> Typo: linked -> linker.
>
Corrected.
> > Strictly saying, I see no reason to fix the problem here. These changes
> > are similar and one ought to add this "woodoo magic" line to every
> > CMakeLists.txt used for building dynamic libraries using Lua C API.
> > Since we are using <build_lualib> to build these extensions can you make
> > this change there?
>
> I missed this way. It should work, but we should care about not leaving
> a test/foo subdirectory scope. I think it should be verified manually. I
> would even add a comment regarding the macro behaviour: it affects
> current cmake variable scope and so a user should care to don't use it
> in a top level scope.
>
I've added the the message below to the test/CMakeLists.txt file just
before the change:
| # WARNING: This change affects current cmake variable scope and so
| # a user should care to don't use it in a top level scope.
Also I've checked all found fuctions from test/CMakeLists.txt file to be
sure that its in use only in test/* scopes:
$ for f in `grep "^function(" test/CMakeLists.txt | sed "s#^function(##g" | awk '{print($1)}'` ; do echo "========== Checking $f" ; grep -RI $f 2>/dev/null ; done
========== Checking build_module
cmake/module.cmake:function(rebuild_module_api)
src/CMakeLists.txt:rebuild_module_api(${api_headers})
test/app/CMakeLists.txt:build_module(loaderslib loaderslib.c)
test/CMakeLists.txt:function(build_module module files)
test/box/CMakeLists.txt:build_module(function1 function1.c)
test/box/CMakeLists.txt:build_module(reload1 reload1.c)
test/box/CMakeLists.txt:build_module(reload2 reload2.c)
test/box/CMakeLists.txt:build_module(tuple_bench tuple_bench.c)
test/app-tap/CMakeLists.txt:build_module(module_api module_api.c)
========== Checking build_lualib
test/CMakeLists.txt:function(build_lualib lib sources)
test/luajit-tap/lj-flush-on-trace/CMakeLists.txt:build_lualib(libflush libflush.c)
test/luajit-tap/gh-4427-ffi-sandwich/CMakeLists.txt:build_lualib(libsandwich libsandwich.c)
third_party/luajit/test/lj-flush-on-trace/CMakeLists.txt:build_lualib(libflush libflush.c)
third_party/luajit/test/gh-4427-ffi-sandwich/CMakeLists.txt:build_lualib(libsandwich libsandwich.c)
As seen above all usages of "Checking <foo>"are inside the test/ scope
except "rebuild_module_api" which is not from the checking file, but
from the src/CMakeLists.txt file and it not interesting for us.
> Sadly, we cannot solve the problem with properties, because flags from
> the LINK_FLAGS target property are added before
> CMAKE_SHARED_LINKER_FLAGS flags and because there is no --no-undefined
> counterpart linker option (there is `--undefined foo` to allow certain
> symbols to be undefined, but is not what we need here).
>
Agree.
> WBR, Alexander Turenko.
next prev parent reply other threads:[~2020-07-09 5:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-06 12:51 Alexander V. Tikhonov
2020-07-06 20:41 ` Alexander Turenko
2020-07-08 11:37 ` Igor Munkin
2020-07-08 14:25 ` Alexander V. Tikhonov
2020-07-08 19:22 ` Alexander Turenko
2020-07-09 5:41 ` Alexander V. Tikhonov [this message]
2020-07-09 19:14 ` Igor Munkin
2020-07-14 11:39 ` Kirill Yukhin
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=20200709054111.GA25145@hpalx \
--to=avtikhon@tarantool.org \
--cc=alexander.turenko@tarantool.org \
--cc=imun@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v1] Block linker flag '\''--no-undefined'\''' \
/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