@@ -473,75 +473,148 @@ static RzBinReloc *reloc_convert_riscv(ELFOBJ *bin, RzBinElfReloc *rel, ut64 GOT
473473}
474474
475475static RzBinReloc * reloc_convert_aarch64 (ELFOBJ * bin , RzBinElfReloc * rel , ut64 GOT ) {
476- ut64 B = bin -> baddr ;
477-
478- switch (rel -> type ) {
479- case R_AARCH64_NONE :
480- return reloc_convert_set (bin , rel , 0 , "R_AARCH64_NONE" );
481- case R_AARCH64_ABS64 : ADD (64 , 0 , "R_AARCH64_ABS64" );
482- case R_AARCH64_ABS32 : ADD (32 , 0 , "R_AARCH64_ABS32" );
483- case R_AARCH64_ABS16 : ADD (16 , 0 , "R_AARCH64_ABS16" );
484- case R_AARCH64_PREL64 : ADD (64 , 0 , "R_AARCH64_PREL64" );
485- case R_AARCH64_PREL32 : ADD (32 , 0 , "R_AARCH64_PREL32" );
486- case R_AARCH64_PREL16 : ADD (16 , 0 , "R_AARCH64_PREL16" );
487- case R_AARCH64_GLOB_DAT : SET (64 , "R_AARCH64_GLOB_DAT" );
488- case R_AARCH64_JUMP_SLOT : SET (64 , "R_AARCH64_JUMP_SLOT" );
489- case R_AARCH64_RELATIVE : ADD (64 , B , "R_AARCH64_RELATIVE" );
490- case R_AARCH64_LDST8_ABS_LO12_NC : ADD (16 , 0 , "R_AARCH64_LDST8_ABS_LO12_NC" );
491- case R_AARCH64_ADD_ABS_LO12_NC : ADD (16 , 0 , "R_AARCH64_ADD_ABS_LO12_NC" );
492- case R_AARCH64_JUMP26 : ADD (32 , 0 , "R_AARCH64_JUMP26" );
493- case R_AARCH64_CALL26 : ADD (32 , 0 , "R_AARCH64_CALL26" );
494- case R_AARCH64_LDST64_ABS_LO12_NC : ADD (32 , 0 , "R_AARCH64_LDST64_ABS_LO12_NC" );
495- case R_AARCH64_LD64_GOT_LO12_NC : ADD (32 , 0 , "R_AARCH64_LD64_GOT_LO12_NC" );
496-
497- // Page-relative relocations
498- case R_AARCH64_ADR_GOT_PAGE : ADD (32 , 0 , "R_AARCH64_ADR_GOT_PAGE" );
499- case R_AARCH64_ADR_PREL_PG_HI21 : ADD (32 , 0 , "R_AARCH64_ADR_PREL_PG_HI21" );
500- case R_AARCH64_ADR_PREL_PG_HI21_NC : ADD (32 , 0 , "R_AARCH64_ADR_PREL_PG_HI21_NC" );
501-
502- // P32 relocations (usually remain unhandled or mapped to 32-bit equivalents)
503- case R_AARCH64_P32_ABS32 : ADD (32 , 0 , "R_AARCH64_P32_ABS32" );
504- case R_AARCH64_P32_COPY : ADD (32 , 0 , "R_AARCH64_P32_COPY" );
505- case R_AARCH64_P32_GLOB_DAT : SET (32 , "R_AARCH64_P32_GLOB_DAT" );
506- case R_AARCH64_P32_JUMP_SLOT : SET (32 , "R_AARCH64_P32_JUMP_SLOT" );
507- case R_AARCH64_P32_RELATIVE : ADD (32 , B , "R_AARCH64_P32_RELATIVE" );
508- case R_AARCH64_P32_TLS_DTPMOD : UNHANDL ("R_AARCH64_P32_TLS_DTPMOD" );
509- case R_AARCH64_P32_TLS_DTPREL : UNHANDL ("R_AARCH64_P32_TLS_DTPREL" );
510- case R_AARCH64_P32_TLS_TPREL : UNHANDL ("R_AARCH64_P32_TLS_TPREL" );
511- case R_AARCH64_P32_TLSDESC : UNHANDL ("R_AARCH64_P32_TLSDESC" );
512- case R_AARCH64_P32_IRELATIVE : UNHANDL ("R_AARCH64_P32_IRELATIVE" );
513-
514- // MOVW Group (16-bit immediate relocations)
515- case R_AARCH64_MOVW_UABS_G0 : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G0" );
516- case R_AARCH64_MOVW_UABS_G0_NC : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G0_NC" );
517- case R_AARCH64_MOVW_UABS_G1 : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G1" );
518- case R_AARCH64_MOVW_UABS_G1_NC : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G1_NC" );
519- case R_AARCH64_MOVW_UABS_G2 : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G2" );
520- case R_AARCH64_MOVW_UABS_G2_NC : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G2_NC" );
521- case R_AARCH64_MOVW_UABS_G3 : ADD (16 , 0 , "R_AARCH64_MOVW_UABS_G3" );
522- case R_AARCH64_MOVW_SABS_G0 : ADD (16 , 0 , "R_AARCH64_MOVW_SABS_G0" );
523- case R_AARCH64_MOVW_SABS_G1 : ADD (16 , 0 , "R_AARCH64_MOVW_SABS_G1" );
524- case R_AARCH64_MOVW_SABS_G2 : ADD (16 , 0 , "R_AARCH64_MOVW_SABS_G2" );
525-
526- // PC-Relative Group
527- case R_AARCH64_LD_PREL_LO19 : ADD (32 , 0 , "R_AARCH64_LD_PREL_LO19" );
528- case R_AARCH64_ADR_PREL_LO21 : ADD (32 , 0 , "R_AARCH64_ADR_PREL_LO21" );
529- case R_AARCH64_TSTBR14 : ADD (32 , 0 , "R_AARCH64_TSTBR14" );
530- case R_AARCH64_CONDBR19 : ADD (32 , 0 , "R_AARCH64_CONDBR19" );
531-
532- // Load/Store (LDST) Group
533- case R_AARCH64_LDST16_ABS_LO12_NC : ADD (16 , 0 , "R_AARCH64_LDST16_ABS_LO12_NC" );
534- case R_AARCH64_LDST32_ABS_LO12_NC : ADD (32 , 0 , "R_AARCH64_LDST32_ABS_LO12_NC" );
535- case R_AARCH64_LDST128_ABS_LO12_NC : ADD (64 , 0 , "R_AARCH64_LDST128_ABS_LO12_NC" );
536-
537- // Standard Runtime Relocations
538- case R_AARCH64_COPY : ADD (64 , 0 , "R_AARCH64_COPY" );
539- case R_AARCH64_TLSDESC : ADD (64 , 0 , "R_AARCH64_TLSDESC" );
540- case R_AARCH64_IRELATIVE : IFCN (64 , "R_AARCH64_IRELATIVE" );
541-
542- // Default catch-all
543- default : UNSUPP ("AArch64" );
544- }
476+ ut64 B = bin -> baddr ;
477+
478+ switch (rel -> type ) {
479+ case R_AARCH64_NONE :
480+ return reloc_convert_set (bin , rel , 0 , "R_AARCH64_NONE" );
481+ case R_AARCH64_ABS64 : ADD (64 , 0 , "R_AARCH64_ABS64" );
482+ case R_AARCH64_ABS32 : ADD (32 , 0 , "R_AARCH64_ABS32" );
483+ case R_AARCH64_ABS16 : ADD (16 , 0 , "R_AARCH64_ABS16" );
484+ case R_AARCH64_PREL64 : ADD (64 , 0 , "R_AARCH64_PREL64" );
485+ case R_AARCH64_PREL32 : ADD (32 , 0 , "R_AARCH64_PREL32" );
486+ case R_AARCH64_PREL16 : ADD (16 , 0 , "R_AARCH64_PREL16" );
487+ case R_AARCH64_GLOB_DAT : SET (64 , "R_AARCH64_GLOB_DAT" );
488+ case R_AARCH64_JUMP_SLOT : SET (64 , "R_AARCH64_JUMP_SLOT" );
489+ case R_AARCH64_RELATIVE : ADD (64 , B , "R_AARCH64_RELATIVE" );
490+ case R_AARCH64_LDST8_ABS_LO12_NC : ADD (16 , 0 , "R_AARCH64_LDST8_ABS_LO12_NC" );
491+ case R_AARCH64_ADD_ABS_LO12_NC : ADD (16 , 0 , "R_AARCH64_ADD_ABS_LO12_NC" );
492+ case R_AARCH64_JUMP26 : ADD (32 , 0 , "R_AARCH64_JUMP26" );
493+ case R_AARCH64_CALL26 : ADD (32 , 0 , "R_AARCH64_CALL26" );
494+ case R_AARCH64_LDST64_ABS_LO12_NC : ADD (32 , 0 , "R_AARCH64_LDST64_ABS_LO12_NC" );
495+ case R_AARCH64_LD64_GOT_LO12_NC : ADD (32 , 0 , "R_AARCH64_LD64_GOT_LO12_NC" );
496+ // Page-relative relocations
497+ case R_AARCH64_ADR_GOT_PAGE : ADD (32 , 0 , "R_AARCH64_ADR_GOT_PAGE" );
498+ case R_AARCH64_ADR_PREL_PG_HI21 : ADD (32 , 0 , "R_AARCH64_ADR_PREL_PG_HI21" );
499+ case R_AARCH64_ADR_PREL_PG_HI21_NC : ADD (32 , 0 , "R_AARCH64_ADR_PREL_PG_HI21_NC" );
500+ case R_AARCH64_P32_ABS32 : UNHANDL ("R_AARCH64_P32_ABS32" );
501+ case R_AARCH64_P32_COPY : UNHANDL ("R_AARCH64_P32_COPY" );
502+ case R_AARCH64_P32_GLOB_DAT : UNHANDL ("R_AARCH64_P32_GLOB_DAT" );
503+ case R_AARCH64_P32_JUMP_SLOT : UNHANDL ("R_AARCH64_P32_JUMP_SLOT" );
504+ case R_AARCH64_P32_RELATIVE : UNHANDL ("R_AARCH64_P32_RELATIVE" );
505+ case R_AARCH64_P32_TLS_DTPMOD : UNHANDL ("R_AARCH64_P32_TLS_DTPMOD" );
506+ case R_AARCH64_P32_TLS_DTPREL : UNHANDL ("R_AARCH64_P32_TLS_DTPREL" );
507+ case R_AARCH64_P32_TLS_TPREL : UNHANDL ("R_AARCH64_P32_TLS_TPREL" );
508+ case R_AARCH64_P32_TLSDESC : UNHANDL ("R_AARCH64_P32_TLSDESC" );
509+ case R_AARCH64_P32_IRELATIVE : UNHANDL ("R_AARCH64_P32_IRELATIVE" );
510+ case R_AARCH64_MOVW_UABS_G0 : UNHANDL ("R_AARCH64_MOVW_UABS_G0" );
511+ case R_AARCH64_MOVW_UABS_G0_NC : UNHANDL ("R_AARCH64_MOVW_UABS_G0_NC" );
512+ case R_AARCH64_MOVW_UABS_G1 : UNHANDL ("R_AARCH64_MOVW_UABS_G1" );
513+ case R_AARCH64_MOVW_UABS_G1_NC : UNHANDL ("R_AARCH64_MOVW_UABS_G1_NC" );
514+ case R_AARCH64_MOVW_UABS_G2 : UNHANDL ("R_AARCH64_MOVW_UABS_G2" );
515+ case R_AARCH64_MOVW_UABS_G2_NC : UNHANDL ("R_AARCH64_MOVW_UABS_G2_NC" );
516+ case R_AARCH64_MOVW_UABS_G3 : UNHANDL ("R_AARCH64_MOVW_UABS_G3" );
517+ case R_AARCH64_MOVW_SABS_G0 : UNHANDL ("R_AARCH64_MOVW_SABS_G0" );
518+ case R_AARCH64_MOVW_SABS_G1 : UNHANDL ("R_AARCH64_MOVW_SABS_G1" );
519+ case R_AARCH64_MOVW_SABS_G2 : UNHANDL ("R_AARCH64_MOVW_SABS_G2" );
520+ case R_AARCH64_LD_PREL_LO19 : UNHANDL ("R_AARCH64_LD_PREL_LO19" );
521+ case R_AARCH64_ADR_PREL_LO21 : UNHANDL ("R_AARCH64_ADR_PREL_LO21" );
522+ case R_AARCH64_TSTBR14 : UNHANDL ("R_AARCH64_TSTBR14" );
523+ case R_AARCH64_CONDBR19 : UNHANDL ("R_AARCH64_CONDBR19" );
524+ case R_AARCH64_LDST16_ABS_LO12_NC : UNHANDL ("R_AARCH64_LDST16_ABS_LO12_NC" );
525+ case R_AARCH64_LDST32_ABS_LO12_NC : UNHANDL ("R_AARCH64_LDST32_ABS_LO12_NC" );
526+ case R_AARCH64_MOVW_PREL_G0 : UNHANDL ("R_AARCH64_MOVW_PREL_G0" );
527+ case R_AARCH64_MOVW_PREL_G0_NC : UNHANDL ("R_AARCH64_MOVW_PREL_G0_NC" );
528+ case R_AARCH64_MOVW_PREL_G1 : UNHANDL ("R_AARCH64_MOVW_PREL_G1" );
529+ case R_AARCH64_MOVW_PREL_G1_NC : UNHANDL ("R_AARCH64_MOVW_PREL_G1_NC" );
530+ case R_AARCH64_MOVW_PREL_G2 : UNHANDL ("R_AARCH64_MOVW_PREL_G2" );
531+ case R_AARCH64_MOVW_PREL_G2_NC : UNHANDL ("R_AARCH64_MOVW_PREL_G2_NC" );
532+ case R_AARCH64_MOVW_PREL_G3 : UNHANDL ("R_AARCH64_MOVW_PREL_G3" );
533+ case R_AARCH64_LDST128_ABS_LO12_NC : UNHANDL ("R_AARCH64_LDST128_ABS_LO12_NC" );
534+ case R_AARCH64_MOVW_GOTOFF_G0 : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G0" );
535+ case R_AARCH64_MOVW_GOTOFF_G0_NC : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G0_NC" );
536+ case R_AARCH64_MOVW_GOTOFF_G1 : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G1" );
537+ case R_AARCH64_MOVW_GOTOFF_G1_NC : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G1_NC" );
538+ case R_AARCH64_MOVW_GOTOFF_G2 : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G2" );
539+ case R_AARCH64_MOVW_GOTOFF_G2_NC : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G2_NC" );
540+ case R_AARCH64_MOVW_GOTOFF_G3 : UNHANDL ("R_AARCH64_MOVW_GOTOFF_G3" );
541+ case R_AARCH64_GOTREL64 : UNHANDL ("R_AARCH64_GOTREL64" );
542+ case R_AARCH64_GOTREL32 : UNHANDL ("R_AARCH64_GOTREL32" );
543+ case R_AARCH64_GOT_LD_PREL19 : UNHANDL ("R_AARCH64_GOT_LD_PREL19" );
544+ case R_AARCH64_LD64_GOTOFF_LO15 : UNHANDL ("R_AARCH64_LD64_GOTOFF_LO15" );
545+ case R_AARCH64_LD64_GOTPAGE_LO15 : UNHANDL ("R_AARCH64_LD64_GOTPAGE_LO15" );
546+ case R_AARCH64_TLSGD_ADR_PREL21 : UNHANDL ("R_AARCH64_TLSGD_ADR_PREL21" );
547+ case R_AARCH64_TLSGD_ADR_PAGE21 : UNHANDL ("R_AARCH64_TLSGD_ADR_PAGE21" );
548+ case R_AARCH64_TLSGD_ADD_LO12_NC : UNHANDL ("R_AARCH64_TLSGD_ADD_LO12_NC" );
549+ case R_AARCH64_TLSGD_MOVW_G1 : UNHANDL ("R_AARCH64_TLSGD_MOVW_G1" );
550+ case R_AARCH64_TLSGD_MOVW_G0_NC : UNHANDL ("R_AARCH64_TLSGD_MOVW_G0_NC" );
551+ case R_AARCH64_TLSLD_ADR_PREL21 : UNHANDL ("R_AARCH64_TLSLD_ADR_PREL21" );
552+ case R_AARCH64_TLSLD_ADR_PAGE21 : UNHANDL ("R_AARCH64_TLSLD_ADR_PAGE21" );
553+ case R_AARCH64_TLSLD_ADD_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_ADD_LO12_NC" );
554+ case R_AARCH64_TLSLD_MOVW_G1 : UNHANDL ("R_AARCH64_TLSLD_MOVW_G1" );
555+ case R_AARCH64_TLSLD_MOVW_G0_NC : UNHANDL ("R_AARCH64_TLSLD_MOVW_G0_NC" );
556+ case R_AARCH64_TLSLD_LD_PREL19 : UNHANDL ("R_AARCH64_TLSLD_LD_PREL19" );
557+ case R_AARCH64_TLSLD_MOVW_DTPREL_G2 : UNHANDL ("R_AARCH64_TLSLD_MOVW_DTPREL_G2" );
558+ case R_AARCH64_TLSLD_MOVW_DTPREL_G1 : UNHANDL ("R_AARCH64_TLSLD_MOVW_DTPREL_G1" );
559+ case R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC : UNHANDL ("R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC" );
560+ case R_AARCH64_TLSLD_MOVW_DTPREL_G0 : UNHANDL ("R_AARCH64_TLSLD_MOVW_DTPREL_G0" );
561+ case R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC : UNHANDL ("R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC" );
562+ case R_AARCH64_TLSLD_ADD_DTPREL_HI12 : UNHANDL ("R_AARCH64_TLSLD_ADD_DTPREL_HI12" );
563+ case R_AARCH64_TLSLD_ADD_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_ADD_DTPREL_LO12" );
564+ case R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC" );
565+ case R_AARCH64_TLSLD_LDST8_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_LDST8_DTPREL_LO12" );
566+ case R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC" );
567+ case R_AARCH64_TLSLD_LDST16_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_LDST16_DTPREL_LO12" );
568+ case R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC" );
569+ case R_AARCH64_TLSLD_LDST32_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_LDST32_DTPREL_LO12" );
570+ case R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC" );
571+ case R_AARCH64_TLSLD_LDST64_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_LDST64_DTPREL_LO12" );
572+ case R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC" );
573+ case R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 : UNHANDL ("R_AARCH64_TLSIE_MOVW_GOTTPREL_G1" );
574+ case R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC : UNHANDL ("R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC" );
575+ case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 : UNHANDL ("R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21" );
576+ case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC" );
577+ case R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 : UNHANDL ("R_AARCH64_TLSIE_LD_GOTTPREL_PREL19" );
578+ case R_AARCH64_TLSLE_MOVW_TPREL_G2 : UNHANDL ("R_AARCH64_TLSLE_MOVW_TPREL_G2" );
579+ case R_AARCH64_TLSLE_MOVW_TPREL_G1 : UNHANDL ("R_AARCH64_TLSLE_MOVW_TPREL_G1" );
580+ case R_AARCH64_TLSLE_MOVW_TPREL_G1_NC : UNHANDL ("R_AARCH64_TLSLE_MOVW_TPREL_G1_NC" );
581+ case R_AARCH64_TLSLE_MOVW_TPREL_G0 : UNHANDL ("R_AARCH64_TLSLE_MOVW_TPREL_G0" );
582+ case R_AARCH64_TLSLE_MOVW_TPREL_G0_NC : UNHANDL ("R_AARCH64_TLSLE_MOVW_TPREL_G0_NC" );
583+ case R_AARCH64_TLSLE_ADD_TPREL_HI12 : UNHANDL ("R_AARCH64_TLSLE_ADD_TPREL_HI12" );
584+ case R_AARCH64_TLSLE_ADD_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_ADD_TPREL_LO12" );
585+ case R_AARCH64_TLSLE_ADD_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_ADD_TPREL_LO12_NC" );
586+ case R_AARCH64_TLSLE_LDST8_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_LDST8_TPREL_LO12" );
587+ case R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC" );
588+ case R_AARCH64_TLSLE_LDST16_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_LDST16_TPREL_LO12" );
589+ case R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC" );
590+ case R_AARCH64_TLSLE_LDST32_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_LDST32_TPREL_LO12" );
591+ case R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC" );
592+ case R_AARCH64_TLSLE_LDST64_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_LDST64_TPREL_LO12" );
593+ case R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC" );
594+ case R_AARCH64_TLSDESC_LD_PREL19 : UNHANDL ("R_AARCH64_TLSDESC_LD_PREL19" );
595+ case R_AARCH64_TLSDESC_ADR_PREL21 : UNHANDL ("R_AARCH64_TLSDESC_ADR_PREL21" );
596+ case R_AARCH64_TLSDESC_ADR_PAGE21 : UNHANDL ("R_AARCH64_TLSDESC_ADR_PAGE21" );
597+ case R_AARCH64_TLSDESC_LD64_LO12 : UNHANDL ("R_AARCH64_TLSDESC_LD64_LO12" );
598+ case R_AARCH64_TLSDESC_ADD_LO12 : UNHANDL ("R_AARCH64_TLSDESC_ADD_LO12" );
599+ case R_AARCH64_TLSDESC_OFF_G1 : UNHANDL ("R_AARCH64_TLSDESC_OFF_G1" );
600+ case R_AARCH64_TLSDESC_OFF_G0_NC : UNHANDL ("R_AARCH64_TLSDESC_OFF_G0_NC" );
601+ case R_AARCH64_TLSDESC_LDR : UNHANDL ("R_AARCH64_TLSDESC_LDR" );
602+ case R_AARCH64_TLSDESC_ADD : UNHANDL ("R_AARCH64_TLSDESC_ADD" );
603+ case R_AARCH64_TLSDESC_CALL : UNHANDL ("R_AARCH64_TLSDESC_CALL" );
604+ case R_AARCH64_TLSLE_LDST128_TPREL_LO12 : UNHANDL ("R_AARCH64_TLSLE_LDST128_TPREL_LO12" );
605+ case R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC" );
606+ case R_AARCH64_TLSLD_LDST128_DTPREL_LO12 : UNHANDL ("R_AARCH64_TLSLD_LDST128_DTPREL_LO12" );
607+ case R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC : UNHANDL ("R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC" );
608+ case R_AARCH64_COPY : ADD (64 , 0 , "R_AARCH64_COPY" ); // copy symbol at runtime
609+ case R_AARCH64_TLS_DTPMOD : UNHANDL ("R_AARCH64_TLS_DTPMOD" );
610+ case R_AARCH64_TLS_DTPREL : UNHANDL ("R_AARCH64_TLS_DTPREL" );
611+ case R_AARCH64_TLS_TPREL : UNHANDL ("R_AARCH64_TLS_TPREL" );
612+ case R_AARCH64_TLSDESC : ADD (64 , 0 , "R_AARCH64_TLSDESC" ); // resolved at runtime
613+ case R_AARCH64_IRELATIVE : UNHANDL ("R_AARCH64_IRELATIVE" );
614+
615+ // FIXME: Quite a few relocations missing here
616+ default : UNSUPP ("AArch64" );
617+ }
545618}
546619
547620static RzBinReloc * reloc_convert_ppc (ELFOBJ * bin , RzBinElfReloc * rel , ut64 GOT ) {
0 commit comments