On 17/04/2023 1:31 pm, Jan Beulich wrote:
> On 17.04.2023 14:13, Andrew Cooper wrote:
>> --- a/xen/common/livepatch_elf.c
>> +++ b/xen/common/livepatch_elf.c
>> @@ -310,12 +310,12 @@ int livepatch_elf_resolve_symbols(struct livepatch_elf 
>> *elf)
>>                      break;
>>                  }
>>              }
>> -            dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Undefined symbol resolved: 
>> %s => %#"PRIxElfAddr"\n",
>> +            dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Undefined symbol resolved: 
>> %s => 0x%08"PRIxElfAddr"\n",
> I don't see what's wrong with using %# here (and below); I also don't see
> what value it has to zero-pad to 8 digits when the printed value either
> is far below 4G (when representing just a section offset) or likely far
> above (when representing a real address on 64-bit). But once again I'll
> leave judging to the maintainers.

Hmm - I could be persuaded to drop everything in livepatch_elf.c.  I
guess that makes it more consistent with the 64bit side too.

Ross?

>
>>                      elf->name, elf->sym[i].name, st_value);
>>              break;
>>  
>>          case SHN_ABS:
>> -            dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Absolute symbol: %s => 
>> %#"PRIxElfAddr"\n",
>> +            dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Absolute symbol: %s => 
>> 0x%08"PRIxElfAddr"\n",
>>                      elf->name, elf->sym[i].name, sym->st_value);
>>              break;
>>  
>> @@ -344,7 +344,7 @@ int livepatch_elf_resolve_symbols(struct livepatch_elf 
>> *elf)
>>  
>>              st_value += (unsigned long)elf->sec[idx].load_addr;
>>              if ( elf->sym[i].name )
>> -                dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Symbol resolved: %s => 
>> %#"PRIxElfAddr" (%s)\n",
>> +                dprintk(XENLOG_DEBUG, LIVEPATCH "%s: Symbol resolved: %s => 
>> 0x%08"PRIxElfAddr" (%s)\n",
>>                         elf->name, elf->sym[i].name,
>>                         st_value, elf->sec[idx].name);
>>          }
>> diff --git a/xen/include/xen/elfstructs.h b/xen/include/xen/elfstructs.h
>> index 06e6f87c3d80..3124469faeb4 100644
>> --- a/xen/include/xen/elfstructs.h
>> +++ b/xen/include/xen/elfstructs.h
>> @@ -561,8 +561,8 @@ typedef struct {
>>  #endif
>>  
>>  #if defined(ELFSIZE) && (ELFSIZE == 32)
>> -#define PRIxElfAddr "08x"
>> -#define PRIuElfWord "8u"
>> +#define PRIxElfAddr         PRIx32
>> +#define PRIuElfWord         PRIu32
>>  
>>  #define Elf_Ehdr    Elf32_Ehdr
>>  #define Elf_Phdr    Elf32_Phdr
> This part certainly
> Acked-by: Jan Beulich <jbeul...@suse.com>

Thanks.

~Andrew

Reply via email to