This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] abilist.awk: Treat .tdata like .tbss and reject unknown combinations.
- From: Mathieu Desnoyers <mathieu dot desnoyers at efficios dot com>
- To: carlos <carlos at redhat dot com>
- Cc: Joseph Myers <joseph at codesourcery dot com>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Tue, 20 Nov 2018 17:33:56 -0500 (EST)
- Subject: Re: [PATCH] abilist.awk: Treat .tdata like .tbss and reject unknown combinations.
- Dkim-filter: OpenDKIM Filter v2.10.3 mail.efficios.com 6F117ABBCC
- References: <78f75872-ccdb-4b5e-4e54-f19cb1becbb5@redhat.com>
----- On Nov 20, 2018, at 5:26 PM, carlos carlos@redhat.com wrote:
> abilist.awk: Treat .tdata like .tbss and reject unknown combinations.
>
> Mathieu Desnoyers ran into an issue with his rseq patch where
> he was the first person to add weak thread-local data and this
> resulted in an ABI list update with entries like this:
> "GLIBC_2.29 w ? D .tdata 0000000000000020".
>
> The weakness of the symbol has nothing to do with the DSOs
> ABI and so we should not write anything about weak symbols
> here. The .tdata entries should be treated exactly like .tbss
> entries and the output should have been:
> "GLIBC_2.29 __rseq_abi T 0x20"
>
> This change makes abilist.awk handle .tdata just like .tbss, while
> at the same time adding an error case for the default. We never
> want anyone to be able to add such entries to any ABI list files
> and should see an immediate error and consult with experts.
>
> Tested by Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> witht the rseq patch set and 'make update-all-abi'.
witht -> with
Thanks!
Mathieu
>
> Tested myself with 'make update-all-abi' on x86_64 with no changes.
>
> Signed-off-by: Carlos O'Donell <carlos@redhat.com>
> ---
> ChangeLog | 4 ++++
> scripts/abilist.awk | 11 +++--------
> 2 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 9cdd3bad36..7038b583b6 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,7 @@
> +2018-11-20 Carlos O'Donell <carlos@redhat.com>
> +
> + * scripts/abilist.awk: Handle .tdata. Error for unknown combinations.
> +
> 2018-11-20 DJ Delorie <dj@redhat.com>
>
> * malloc/malloc.c (tcache_entry): Add key field.
> diff --git a/scripts/abilist.awk b/scripts/abilist.awk
> index bad7c3807e..e914df57f0 100644
> --- a/scripts/abilist.awk
> +++ b/scripts/abilist.awk
> @@ -39,7 +39,6 @@ $2 == "l" { next }
>
> # If the target uses ST_OTHER, it will be output before the symbol name.
> $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
> - weak = $2;
> type = $3;
> size = $5;
> sub(/^0*/, "", size);
> @@ -55,7 +54,7 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
> if (version == "GLIBC_PRIVATE") next;
>
> desc = "";
> - if (type == "D" && $4 == ".tbss") {
> + if (type == "D" && ($4 == ".tbss" || $4 == ".tdata")) {
> type = "T";
> }
> else if (type == "D" && $4 == ".opd") {
> @@ -90,14 +89,10 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) {
> size = "";
> }
> else {
> - desc = symbol " " version " " weak " ? " type " " $4 " " $5;
> - }
> - if (size == " 0x") {
> - desc = symbol " " version " " weak " ? " type " " $4 " " $5;
> + print "Unable to handle this type of symbol."
> + exit 1
> }
>
> - # Disabled -- weakness should not matter to shared library ABIs any more.
> - #if (weak == "w") type = tolower(type);
> if (desc == "")
> desc = symbol " " type size;
>
> --
> 2.17.2
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com