File tree Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -2151,6 +2151,7 @@ printELFCapRelocations(const ELFObjectFile<ELFT> *Obj) {
2151
2151
entry + 4 *sizeof (TargetUint));
2152
2152
const uint64_t Function = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 1 );
2153
2153
const uint64_t Constant = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 2 );
2154
+ const uint64_t Indirect = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 3 );
2154
2155
StringRef PermStr;
2155
2156
switch (Perms) {
2156
2157
case 0 :
@@ -2162,6 +2163,9 @@ printELFCapRelocations(const ELFObjectFile<ELFT> *Obj) {
2162
2163
case Function:
2163
2164
PermStr = " (Function)" ;
2164
2165
break ;
2166
+ case Function | Indirect:
2167
+ PermStr = " (GNU Indirect Function)" ;
2168
+ break ;
2165
2169
default :
2166
2170
PermStr = " (Unknown)" ;
2167
2171
break ;
Original file line number Diff line number Diff line change @@ -3441,6 +3441,7 @@ template <class ELFT> void ELFDumper<ELFT>::printCheriCapRelocs() {
3441
3441
entry + 4 *sizeof (TargetUint));
3442
3442
const uint64_t Function = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 1 );
3443
3443
const uint64_t Constant = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 2 );
3444
+ const uint64_t Indirect = UINT64_C (1 ) << ((sizeof (TargetUint) * 8 ) - 3 );
3444
3445
StringRef PermStr;
3445
3446
switch (Perms) {
3446
3447
case 0 :
@@ -3452,6 +3453,9 @@ template <class ELFT> void ELFDumper<ELFT>::printCheriCapRelocs() {
3452
3453
case Function:
3453
3454
PermStr = " Function" ;
3454
3455
break ;
3456
+ case Function | Indirect:
3457
+ PermStr = " GNU Indirect Function" ;
3458
+ break ;
3455
3459
default :
3456
3460
PermStr = " Unknown" ;
3457
3461
break ;
You can’t perform that action at this time.
0 commit comments