> compile NEMU

ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:41:20  up 1 day  8:17,  2 users,  load average: 0.90, 0.55, 0.53
This commit is contained in:
tracer-ysyx 2024-03-14 18:41:20 +08:00 committed by xinyangli
parent 2240a685e1
commit 32432b70b7

View file

@ -11,7 +11,7 @@
void init_elf(const char *path) { void init_elf(const char *path) {
FILE *elf_file = fopen(path, "rb"); FILE *elf_file = fopen(path, "rb");
Elf32_Ehdr header; Elf32_Ehdr header;
Elf32_Shdr section_header, *psh; Elf32_Shdr section_header[200], *psh;
FAILED_GOTO(failed_nosym, fread(&header, sizeof(Elf32_Ehdr), 1, elf_file) <= 0); FAILED_GOTO(failed_nosym, fread(&header, sizeof(Elf32_Ehdr), 1, elf_file) <= 0);
FAILED_GOTO(failed_nosym, fseek(elf_file, header.e_shoff, SEEK_SET) != 0); FAILED_GOTO(failed_nosym, fseek(elf_file, header.e_shoff, SEEK_SET) != 0);
printf("%hu %hu %u\n", header.e_shentsize, header.e_shnum, header.e_shoff); printf("%hu %hu %u\n", header.e_shentsize, header.e_shnum, header.e_shoff);
@ -19,7 +19,7 @@ void init_elf(const char *path) {
Elf32_Shdr *symtab = NULL, *strtab = NULL; Elf32_Shdr *symtab = NULL, *strtab = NULL;
for(int i = 0; i < header.e_shnum; i++) { for(int i = 0; i < header.e_shnum; i++) {
psh = &section_header + i; psh = section_header + i;
if (psh->sh_type == SHT_SYMTAB) { if (psh->sh_type == SHT_SYMTAB) {
symtab = psh; symtab = psh;
} else if (psh->sh_type == SHT_STRTAB) { } else if (psh->sh_type == SHT_STRTAB) {