From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id A3C324696C3 for ; Sun, 12 Apr 2020 14:34:25 +0300 (MSK) Received: by mail-lf1-f47.google.com with SMTP id h6so4533121lfc.0 for ; Sun, 12 Apr 2020 04:34:25 -0700 (PDT) Date: Sun, 12 Apr 2020 14:34:23 +0300 From: Konstantin Osipov Message-ID: <20200412113423.GA28681@atlas> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Tarantool-patches] [PATCH 00/43] Unhide 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 * Vladislav Shpilevoy [20/04/12 14:24]: > The patchset makes Tarantool stop hiding not explicitly exported > symbols. > > It means, all FFI and public C API related symbols are still > always exported. All the other symbols may be exported, or may be > not. > > That feature was requested solely by Mons. :-( > To make the needed symbols visible the hack with function > addresses was returned back, like it was before > https://github.com/tarantool/tarantool/commit/4c4c1ccbe422e1420ce0c0b36194fc61bb857ed4, > but in a more structured form. The exports used to be autogenerated. Instead, you introduce a manually crafted list. This upsets the whole idea: exporting everything was used in a hypothetical emergency case when it's necessary to access some production version internals. This included all symbols - global variables, functions. With your patch, the manual exports will quickly get out of date and will be useless in practice (little to no chance the needed symbol is explicitly exported). This is good, actually, I hope in a year or two Mons will realize he was abusing his influence/power and the patch will finally be deleted. > > Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-2971-symbols > Issue: https://github.com/tarantool/tarantool/issues/2971 > > Vladislav Shpilevoy (43): > cmake: remove double usage of some source files > cmake: remove dynamic-list linker option > build: export src/lib/core/clock.c symbols > build: export src/scramble.c symbols > build: export src/lua/socket.c symbols > build: export third_party/base64.c symbols > build: export src/lua/digest.c symbols > build: export src/lib/salad/guava.c symbols > build: export src/lib/core/random.c symbols > build: export src/lib/core/fiber.c symbols > build: export src/lua/init.c symbols > build: export src/lib/core/port.c symbols > build: export src/lib/csv/csv.c symbols > build: export src/title.c symbols > build: export src/lua/tnt_iconv.c symbols > build: export src/lib/core/exception.cc symbols > build: export src/lib/uuid/tt_uuid.c symbols > build: export src/lib/core/say.c symbols > build: export src/lib/uri/uri.c symbols > build: export third_party/PMurHash.c symbols > build: export src/crc32.c symbols > build: export src/lua/msgpack.c symbols > build: export src/main.cc symbols > build: export src/box/space.c symbols > build: export src/box/schema.cc symbols > build: export src/lib/crypto/crypto.c symbols > build: export src/lua/buffer.c symbols > build: export src/lib/swim/swim.c symbols > build: export src/lib/core/fiber_cond.c symbols > build: export src/lib/core/coio.cc symbols > build: export src/lua/utils.c symbols > build: export src/box/lua/tuple.c symbols > build: export src/lua/error.c symbols > build: export src/box/txn.c symbols > build: export src/box/key_def.c symbols > build: export src/box/tuple.c symbols > build: export src/box/index.cc symbols > build: export src/box/box.cc symbols > build: export src/box/error.cc symbols > build: export src/lib/core/diag.c symbols > build: export src/lib/core/latch.c symbols > build: export src/lua/string.c symbols > build: export public Lua symbols > > .gitignore | 1 - > extra/exports | 398 -------------------- > src/CMakeLists.txt | 57 +-- > src/box/CMakeLists.txt | 7 +- > src/box/box.cc | 22 ++ > src/box/error.cc | 14 + > src/box/index.cc | 19 + > src/box/key_def.c | 12 + > src/box/lua/init.c | 12 + > src/box/lua/tuple.c | 11 + > src/box/schema.cc | 9 + > src/box/space.c | 10 + > src/box/tuple.c | 28 ++ > src/box/txn.c | 16 + > src/crc32.c | 9 + > src/exports.c | 126 +++++++ > src/lib/core/clock.c | 16 + > src/lib/core/coio.cc | 12 + > src/lib/core/diag.c | 8 + > src/lib/core/exception.cc | 10 + > src/lib/core/fiber.c | 30 ++ > src/lib/core/fiber_cond.c | 14 + > src/lib/core/latch.c | 13 + > src/lib/core/port.c | 9 + > src/lib/core/random.c | 9 + > src/lib/core/say.c | 16 + > src/lib/crypto/crypto.c | 17 + > src/lib/csv/csv.c | 15 + > src/lib/salad/guava.c | 9 + > src/lib/small | 2 +- > src/lib/swim/swim.c | 32 ++ > src/lib/uri/uri.c | 10 + > src/lib/uuid/tt_uuid.c | 15 + > src/lua/buffer.c | 14 + > src/lua/digest.c | 9 + > src/lua/error.c | 9 + > src/lua/init.c | 201 ++++++++++ > src/lua/msgpack.c | 17 + > src/lua/socket.c | 10 + > src/lua/string.c | 9 + > src/lua/tnt_iconv.c | 11 + > src/lua/utils.c | 24 ++ > src/main.cc | 15 + > src/scramble.c | 9 + > src/title.c | 18 + > test/box/gh-2971-symbol-visibility.result | 22 ++ > test/box/gh-2971-symbol-visibility.test.lua | 14 + > third_party/PMurHash.c | 11 + > third_party/base64.c | 11 + > 49 files changed, 938 insertions(+), 454 deletions(-) > delete mode 100644 extra/exports > create mode 100644 src/exports.c > create mode 100644 test/box/gh-2971-symbol-visibility.result > create mode 100644 test/box/gh-2971-symbol-visibility.test.lua > > -- > 2.21.1 (Apple Git-122.3) -- Konstantin Osipov, Moscow, Russia