This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] abilist.awk: Treat .tdata like .tbss and reject unknown combinations.


On 11/20/18 5:33 PM, Mathieu Desnoyers wrote:
> ----- 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. Fixed (git commit --amend).
 
> 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
> 


-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]