@ -10691,6 +10691,15 @@ elfcore_grok_aarch_za (bfd *abfd, Elf_Internal_Note *note)
return elfcore_make_note_pseudosection ( abfd , " .reg-aarch-za " , note ) ;
}
/* Convert NOTE into a bfd_section called ".reg-aarch-zt". Return TRUE if
successful , otherwise return FALSE . */
static bool
elfcore_grok_aarch_zt ( bfd * abfd , Elf_Internal_Note * note )
{
return elfcore_make_note_pseudosection ( abfd , " .reg-aarch-zt " , note ) ;
}
static bool
elfcore_grok_arc_v2 ( bfd * abfd , Elf_Internal_Note * note )
{
@ -11420,6 +11429,13 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
else
return true ;
case NT_ARM_ZT :
if ( note - > namesz = = 6
& & strcmp ( note - > namedata , " LINUX " ) = = 0 )
return elfcore_grok_aarch_zt ( abfd , note ) ;
else
return true ;
case NT_GDB_TDESC :
if ( note - > namesz = = 4
& & strcmp ( note - > namedata , " GDB " ) = = 0 )
@ -13062,6 +13078,25 @@ elfcore_write_aarch_za (bfd *abfd,
size ) ;
}
/* Write the buffer of zt register values in aarch_zt (length SIZE) into
the note buffer BUF and update * BUFSIZ . ABFD is the bfd the note is being
written into . Return a pointer to the new start of the note buffer , to
replace BUF which may no longer be valid . */
char *
elfcore_write_aarch_zt ( bfd * abfd ,
char * buf ,
int * bufsiz ,
const void * aarch_zt ,
int size )
{
char * note_name = " LINUX " ;
return elfcore_write_note ( abfd , buf , bufsiz ,
note_name , NT_ARM_ZT ,
aarch_zt ,
size ) ;
}
char *
elfcore_write_arc_v2 ( bfd * abfd ,
char * buf ,
@ -13247,6 +13282,8 @@ elfcore_write_register_note (bfd *abfd,
return elfcore_write_aarch_ssve ( abfd , buf , bufsiz , data , size ) ;
if ( strcmp ( section , " .reg-aarch-za " ) = = 0 )
return elfcore_write_aarch_za ( abfd , buf , bufsiz , data , size ) ;
if ( strcmp ( section , " .reg-aarch-zt " ) = = 0 )
return elfcore_write_aarch_zt ( abfd , buf , bufsiz , data , size ) ;
if ( strcmp ( section , " .reg-arc-v2 " ) = = 0 )
return elfcore_write_arc_v2 ( abfd , buf , bufsiz , data , size ) ;
if ( strcmp ( section , " .gdb-tdesc " ) = = 0 )