Tarantool development patches archive
 help / color / mirror / Atom feed
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 00/43] Unhide symbols
Date: Mon, 13 Apr 2020 19:44:35 +0300	[thread overview]
Message-ID: <20200413164435.GX3072@uranus> (raw)
In-Reply-To: <f1a68424-3025-c010-ada7-6123e77a9848@tarantool.org>

On Mon, Apr 13, 2020 at 04:26:41PM +0200, Vladislav Shpilevoy wrote:
> Another possible improvement I can think of - instead of
> using 'static void *syms[]' everywhere I could make all
> *_export_syms() functions take an argument like
> 
>     void (*export_f)(void **syms)
> 
> And they would pass pointers at their functions there.
> 
> The main file, exports.c, would pass here a function, which
> does nothing. Or does panic(), but we will never call these
> _export_syms() functions actually. Will place it under
> something like 'if (time(NULL) == 0)'.
> 
> That would allow to turn static arrays into normal arrays on
> the stack and make the executable's size a bit smaller.

Vladislav, let me summarize the overall idea and the problem:

1) Currently tarantool *already* uses extra/exports file during
   build procedure, where we keep the list of functions to be
   avaliable via Lua ffi interface to the tarantool users.

   While these functions are NOT part of API people relay on them
   and use actively, right? In other words they are semi-API I wold
   say.

2) Due to our build procedure specifics we link final executable from
   static libraries (or archives) and compiler may think that some of
   the symbols are not even used and trip them off in optimization
   phase.

3) Instead of supporting separate extra/exports file we bind symbols
   to the source files were they are defined.

   Actually I would prefer more explicit way as I shown you in face
   to face talk, but this is definitely not the option for current
   timeline. We can try to implement it later.

  reply	other threads:[~2020-04-13 16:44 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-12  0:12 Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 01/43] cmake: remove double usage of some source files Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 10/43] build: export src/lib/core/fiber.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 11/43] build: export src/lua/init.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 12/43] build: export src/lib/core/port.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 13/43] build: export src/lib/csv/csv.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 14/43] build: export src/title.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 15/43] build: export src/lua/tnt_iconv.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 16/43] build: export src/lib/core/exception.cc symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 17/43] build: export src/lib/uuid/tt_uuid.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 18/43] build: export src/lib/core/say.c symbols Vladislav Shpilevoy
2020-04-12  0:12 ` [Tarantool-patches] [PATCH 19/43] build: export src/lib/uri/uri.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 02/43] cmake: remove dynamic-list linker option Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 20/43] build: export third_party/PMurHash.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 21/43] build: export src/crc32.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 22/43] build: export src/lua/msgpack.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 23/43] build: export src/main.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 24/43] build: export src/box/space.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 25/43] build: export src/box/schema.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 26/43] build: export src/lib/crypto/crypto.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 27/43] build: export src/lua/buffer.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 28/43] build: export src/lib/swim/swim.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 29/43] build: export src/lib/core/fiber_cond.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 03/43] build: export src/lib/core/clock.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 30/43] build: export src/lib/core/coio.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 31/43] build: export src/lua/utils.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 32/43] build: export src/box/lua/tuple.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 33/43] build: export src/lua/error.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 34/43] build: export src/box/txn.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 35/43] build: export src/box/key_def.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 36/43] build: export src/box/tuple.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 37/43] build: export src/box/index.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 38/43] build: export src/box/box.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 39/43] build: export src/box/error.cc symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 04/43] build: export src/scramble.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 40/43] build: export src/lib/core/diag.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 41/43] build: export src/lib/core/latch.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 42/43] build: export src/lua/string.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 43/43] build: export public Lua symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 05/43] build: export src/lua/socket.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 06/43] build: export third_party/base64.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 07/43] build: export src/lua/digest.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 08/43] build: export src/lib/salad/guava.c symbols Vladislav Shpilevoy
2020-04-12  0:13 ` [Tarantool-patches] [PATCH 09/43] build: export src/lib/core/random.c symbols Vladislav Shpilevoy
2020-04-14 18:14   ` Timur Safin
2020-04-12 11:34 ` [Tarantool-patches] [PATCH 00/43] Unhide symbols Konstantin Osipov
2020-04-12 14:05   ` Vladislav Shpilevoy
2020-04-13  9:40     ` Konstantin Osipov
2020-04-13  9:42       ` Konstantin Osipov
2020-04-13 13:53         ` Vladislav Shpilevoy
2020-04-13 14:15           ` Konstantin Osipov
2020-04-13 14:21             ` Vladislav Shpilevoy
2020-04-13 19:49           ` Sergey Ostanevich
2020-04-13 21:01             ` Vladislav Shpilevoy
2020-04-13 21:38               ` Konstantin Osipov
2020-04-14 18:01                 ` Timur Safin
2020-04-14 18:26                   ` Timur Safin
2020-04-14 20:41                   ` 'Konstantin Osipov'
2020-04-15 10:28                     ` Mons Anderson
2020-04-15 10:40                     ` Mons Anderson
2020-04-15 10:50                       ` sergos
2020-04-15 21:58                         ` Vladislav Shpilevoy
2020-04-16 12:13                           ` Cyrill Gorcunov
2020-04-16 20:30                             ` Vladislav Shpilevoy
2020-04-17  7:48                               ` Timur Safin
2020-04-17  8:29                               ` Cyrill Gorcunov
2020-04-15 11:27                       ` Konstantin Osipov
2020-04-12 14:25 ` Vladislav Shpilevoy
2020-04-12 20:18 ` Vladislav Shpilevoy
2020-04-13 14:26 ` Vladislav Shpilevoy
2020-04-13 16:44   ` Cyrill Gorcunov [this message]
2020-04-13 17:57     ` Vladislav Shpilevoy
2020-04-13 18:17       ` Cyrill Gorcunov
2020-04-14  1:15 ` Vladislav Shpilevoy
2020-04-14  1:27 ` [Tarantool-patches] [PATCH 44/43] build: export src/box/lua/console.c symbols Vladislav Shpilevoy
2020-04-15 23:15 ` [Tarantool-patches] [PATCH 00/43] Unhide symbols Vladislav Shpilevoy

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=20200413164435.GX3072@uranus \
    --to=gorcunov@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH 00/43] Unhide symbols' \
    /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