diff options
| author | 2025-12-01 19:10:53 +0100 | |
|---|---|---|
| committer | 2025-12-02 14:21:59 +0100 | |
| commit | c14321c4d35549d989d614437953b36b8c771cc2 (patch) | |
| tree | 2fb34cd361b0d8ee1d837932e5429c68d6148bdf /obj/elf.c | |
| parent | 0e7a4cbf1d2655240dd2a7e3c289b1b19148cc64 (diff) | |
c: make tentative definitions work
Diffstat (limited to 'obj/elf.c')
| -rw-r--r-- | obj/elf.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -87,6 +87,20 @@ enum { BSS_SHNDX = 4, }; +enum section +elfhassym(const char *nam) +{ + struct sym *sym = findsym(str2idx(nam)); + if (sym) switch (sym->shndx) { + case SHN_UND: return Snone; + case TEXT_SHNDX: return Stext; + case RODATA_SHNDX: return Srodata; + case DATA_SHNDX: return Sdata; + case BSS_SHNDX: return Sbss; + } + return Snone; +} + void elfaddsym(const char *nam, int info, enum section sect, uvlong value, uvlong size) { |