aboutsummaryrefslogtreecommitdiffhomepage
path: root/obj/elf.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-01 19:10:53 +0100
committerlemon <lsof@mailbox.org>2025-12-02 14:21:59 +0100
commitc14321c4d35549d989d614437953b36b8c771cc2 (patch)
tree2fb34cd361b0d8ee1d837932e5429c68d6148bdf /obj/elf.c
parent0e7a4cbf1d2655240dd2a7e3c289b1b19148cc64 (diff)
c: make tentative definitions work
Diffstat (limited to 'obj/elf.c')
-rw-r--r--obj/elf.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/obj/elf.c b/obj/elf.c
index d889fdd..5578452 100644
--- a/obj/elf.c
+++ b/obj/elf.c
@@ -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)
{