From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp37.i.mail.ru (smtp37.i.mail.ru [94.100.177.97]) (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 11BB94696C3 for ; Wed, 15 Apr 2020 13:50:47 +0300 (MSK) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) From: "sergos@tarantool.org" In-Reply-To: Date: Wed, 15 Apr 2020 13:50:44 +0300 Content-Transfer-Encoding: quoted-printable Message-Id: <2207FBB1-CFB8-4F68-BDED-8A2F4509B652@tarantool.org> References: <20200412113423.GA28681@atlas> <84069240-b5a4-9e61-09f4-a347fe53d54c@tarantool.org> <20200413094004.GB16266@atlas> <20200413094230.GC16266@atlas> <533bd68c-4bbb-446a-6265-da4f47d451f1@tarantool.org> <20200413194931.GB1734@tarantool.org> <8b7bcee8-b2db-8f2c-d241-687f6b6d6f4b@tarantool.org> <20200413213801.GB12552@atlas> <13d501d61286$af32d4b0$0d987e10$@tarantool.org> <20200414204127.GA32171@atlas> 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: Mons Anderson Cc: tarantool-patches@dev.tarantool.org > On 15 Apr 2020, at 13:40, Mons Anderson wrote: >=20 > On Tue, Apr 14, 2020 at 11:41 PM Konstantin Osipov > wrote: >>=20 >> * Timur Safin [20/04/14 21:01]: >>> : Mons will be happy simply if we switch back to default gcc linking >>> : options, -fvisibility=3Ddefault, which is basically dropping >>> : -exported_symbols_list. >=20 > We've been discussing this with team. It is sufficient for me. > But you can't just drop exported_symbols_list without replacing it > with something else to guarantee presence of internal ffi functions >=20 This could be done with approach from @cyrillos, AFAIU. These functions should be annotated in the code, rather than collected in a separate=20 list. If a function is not present in the tarantool binary - e.g.=20 dropped as not used from static library - it should not be available=20 anyways. Will it work you, Mons? >>=20 >> This is unrelated. 1.5 didn't have plugin api and no ffi exports >> and mons was hacking into it. >>=20 >> In fact he wasn't hacking into functions at all, he was hacking >> into global state, such as cord_ptr->fiber, and it was not (and I >> believe is not) removed from the visibility list by linker. >>=20 >> In short: >> When trying to understand how this "feature" worked before, look >> at 1.5, not 1.6+. >=20 > You are wrong. It works in 1.6 and was broken by mejedi in the middle > of 1.7 and unfortunately left unseen > For ex, I=E2=80=99m using in 1.6: >=20 > ffi.cdef[[ uint32_t sc_version; ]] >=20 > Things like that stop working after that patch. >=20 >=20 > --=20 > Best wishes, > Vladimir V. Perepelitsa aka Mons Anderson > , > http://github.com/Mons