On 04/14/2016 07:45 AM, Yury Gribov wrote:
These two patches add visibility annotations to readline's public
functions and also enable -fvisibility=hidden on platforms where it's
available.
This results in 9% size decrease (279K -> 254K) and 45% export symbols
reduction (655 -> 398) for libreadline on x86_64.
The autoconf hunk is similar to one that I've recently submitted to
X.org's libICE, hope there's no licensing problem about this.
Is this ok for trunk?
FYI, this is probably doing to break (at least) gdb against system
readline. gdb relies on accessing a few private readline symbols... :-/
E.g.:
tui/tui-io.c:437: extern int _rl_echoing_p;
completer.c:1677: extern int _rl_complete_mark_directories;
completer.c:1770:extern int _rl_completion_prefix_display_length;
completer.c:1771:extern int _rl_print_completions_horizontally;
Unless/until someone fixes these and adds the missing public APIs
to readline, I think distros will need to either back off this
patch, or build gdb against a static readline, which they'd rather
not (at least Fedora doesn't want that).
We may need a configure option as workaround, or perhaps export
the _rl_foo symbols as well...