This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: [Bug-readline] [PATCH] Enable visibility annotations
- From: Yury Gribov <y dot gribov at samsung dot com>
- To: Pedro Alves <palves at redhat dot com>, Doug Evans <dje at google dot com>
- Cc: chet dot ramey at case dot edu, bug-readline at gnu dot org, Vyacheslav Barinov <v dot barinov at samsung dot com>, Yury Usishchev <y dot usishchev at samsung dot com>, "gdb at sourceware dot org" <gdb at sourceware dot org>, Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Date: Wed, 20 Apr 2016 12:45:32 +0300
- Subject: Re: [Bug-readline] [PATCH] Enable visibility annotations
- Authentication-results: sourceware.org; auth=none
- References: <94eb2c1232a01a28910530c65c78 at google dot com> <57171B67 dot 3040204 at samsung dot com> <57174A3A dot 80303 at redhat dot com>
On 04/20/2016 12:22 PM, Pedro Alves wrote:
On 04/20/2016 07:02 AM, Yury Gribov wrote:
Pedro,
Do you think the above is doable for gdb?
I don't know -- I'm already juggling too many balls in the
air, and I'm afraid that if that depends on me, it'll take a
while before I'll manage to try.
Since gdb's use of private symbols is not an isolated incident,
I don't think we should try to clean up all packages that make
use of private symbols, in a rush. Instead, I think readline
needs to take a staged approach:
- Export all the private symbols that programs are using today.
Simply accept today's reality. The dynamic symbol table of
libreadline.so still shrinks, precedent for visibility
annotations is still set, and private symbol leakage
is contained, because future software will no longer be
able to abuse all the other private symbols that are
not exported.
Agreed, that's my plan for now.
- Claim that the symbols may no longer be available in a
future release.
You mean just email respective package maintainers?
- Give time for packages to clean themselves up, and propose
any necessary new replacement APIs.
This would require significant expertise in readline though...
- Optionally, in the release after the next, mark the symbols
as deprecated with __attribute__((deprecated)), so packages
that abuse private symbols get a build-time warning.
That won't help as these symbols are not present in headers anyway. All
users have their own private declarations.
- In some future release, stop exporting the symbols.
That would of course leave the
problem of linking older gdb with new readline which will need to be
resolved by distros.
Right.
Thanks,
Pedro Alves