From a68b76c8b4e2e2c3385f058ba20bc8c678be0df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Moln=C3=A1r?= Date: Thu, 29 Jun 2006 00:22:45 +0200 Subject: [PATCH] undefined symbols are initialized to "0xdeaddead" --- src/linker.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/linker.cpp b/src/linker.cpp index 2a914af5..0f561dd7 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -391,9 +391,11 @@ void ElfLinker::preprocessSymbols(char *start, const char *end) s[strlen(symbol)] = 0; assert(nsymbols < TABLESIZE(symbols)); + if (strcmp(section, "*UND*") == 0) + offset = 0xdeaddead; symbols[nsymbols++] = Symbol(s, findSection(section), offset); - printf("symbol %s preprocessed\n", s); + printf("symbol %s preprocessed o=%x\n", s, offset); } start = nextl + 1; @@ -581,7 +583,7 @@ void ElfLinker::relocate() } if (strcmp(rel->value->section->name, "*UND*") == 0 && - rel->value->offset == 0) + rel->value->offset == 0xdeaddead) { printf("undefined symbol '%s' referenced\n", rel->value->name); abort();