| ... | @@ -4081,26 +4081,26 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { | ... | @@ -4081,26 +4081,26 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { |
| 4081 | elf.SHT_PROGBITS => { | 4081 | elf.SHT_PROGBITS => { |
| 4082 | assert(flags & elf.SHF_ALLOC != 0); | 4082 | assert(flags & elf.SHF_ALLOC != 0); |
| 4083 | if (flags & elf.SHF_EXECINSTR != 0) { | 4083 | if (flags & elf.SHF_EXECINSTR != 0) { |
| 4084 | return 0xe1; | 4084 | return 0x2; |
| 4085 | } else if (flags & elf.SHF_WRITE != 0) { | 4085 | } else if (flags & elf.SHF_WRITE != 0) { |
| 4086 | return 0xe2; | 4086 | return 0x3; |
| 4087 | } else { | 4087 | } else { |
| 4088 | return 0xe0; | 4088 | return 0x1; |
| 4089 | } | 4089 | } |
| 4090 | }, | 4090 | }, |
| 4091 | elf.SHT_NOBITS => return 0xef, | 4091 | elf.SHT_NOBITS => return 0xf, |
| 4092 | else => unreachable, | 4092 | else => unreachable, |
| 4093 | } | 4093 | } |
| 4094 | } | 4094 | } |
| 4095 | | 4095 | |
| 4096 | switch (shdr.sh_type) { | 4096 | switch (shdr.sh_type) { |
| 4097 | elf.SHT_NULL => return 0, | 4097 | elf.SHT_NULL => return 0x0, |
| 4098 | elf.SHT_DYNSYM => return 2, | 4098 | elf.SHT_DYNSYM => return 0x12, |
| 4099 | elf.SHT_HASH => return 3, | 4099 | elf.SHT_HASH => return 0x13, |
| 4100 | elf.SHT_GNU_HASH => return 3, | 4100 | elf.SHT_GNU_HASH => return 0x13, |
| 4101 | elf.SHT_GNU_VERSYM => return 4, | 4101 | elf.SHT_GNU_VERSYM => return 0x14, |
| 4102 | elf.SHT_GNU_VERDEF => return 4, | 4102 | elf.SHT_GNU_VERDEF => return 0x14, |
| 4103 | elf.SHT_GNU_VERNEED => return 4, | 4103 | elf.SHT_GNU_VERNEED => return 0x14, |
| 4104 | | 4104 | |
| 4105 | elf.SHT_PREINIT_ARRAY, | 4105 | elf.SHT_PREINIT_ARRAY, |
| 4106 | elf.SHT_INIT_ARRAY, | 4106 | elf.SHT_INIT_ARRAY, |
| ... | @@ -4109,7 +4109,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { | ... | @@ -4109,7 +4109,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { |
| 4109 | | 4109 | |
| 4110 | elf.SHT_DYNAMIC => return 0xf3, | 4110 | elf.SHT_DYNAMIC => return 0xf3, |
| 4111 | | 4111 | |
| 4112 | elf.SHT_RELA => return 0xf, | 4112 | elf.SHT_RELA => return 0x1f, |
| 4113 | | 4113 | |
| 4114 | elf.SHT_PROGBITS => if (flags & elf.SHF_ALLOC != 0) { | 4114 | elf.SHT_PROGBITS => if (flags & elf.SHF_ALLOC != 0) { |
| 4115 | if (flags & elf.SHF_EXECINSTR != 0) { | 4115 | if (flags & elf.SHF_EXECINSTR != 0) { |
| ... | @@ -4117,7 +4117,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { | ... | @@ -4117,7 +4117,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { |
| 4117 | } else if (flags & elf.SHF_WRITE != 0) { | 4117 | } else if (flags & elf.SHF_WRITE != 0) { |
| 4118 | return if (flags & elf.SHF_TLS != 0) 0xf4 else 0xf6; | 4118 | return if (flags & elf.SHF_TLS != 0) 0xf4 else 0xf6; |
| 4119 | } else if (mem.eql(u8, name, ".interp")) { | 4119 | } else if (mem.eql(u8, name, ".interp")) { |
| 4120 | return 1; | 4120 | return 0x11; |
| 4121 | } else { | 4121 | } else { |
| 4122 | return 0xf0; | 4122 | return 0xf0; |
| 4123 | } | 4123 | } |
| ... | @@ -4131,7 +4131,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { | ... | @@ -4131,7 +4131,7 @@ fn sectionRank(self: *Elf, shndx: u16) u8 { |
| 4131 | | 4131 | |
| 4132 | elf.SHT_NOBITS => return if (flags & elf.SHF_TLS != 0) 0xf5 else 0xf7, | 4132 | elf.SHT_NOBITS => return if (flags & elf.SHF_TLS != 0) 0xf5 else 0xf7, |
| 4133 | elf.SHT_SYMTAB => return 0xfa, | 4133 | elf.SHT_SYMTAB => return 0xfa, |
| 4134 | elf.SHT_STRTAB => return if (mem.eql(u8, name, ".dynstr")) 4 else 0xfb, | 4134 | elf.SHT_STRTAB => return if (mem.eql(u8, name, ".dynstr")) 0x14 else 0xfb, |
| 4135 | else => return 0xff, | 4135 | else => return 0xff, |
| 4136 | } | 4136 | } |
| 4137 | } | 4137 | } |