diff options
-rw-r--r-- | output/outelf.h | 6 | ||||
-rw-r--r-- | output/outelf32.c | 3 | ||||
-rw-r--r-- | output/outelf64.c | 3 |
3 files changed, 7 insertions, 5 deletions
diff --git a/output/outelf.h b/output/outelf.h index 850f8fe2..93a620c3 100644 --- a/output/outelf.h +++ b/output/outelf.h @@ -37,7 +37,11 @@ #ifndef OUTPUT_OUTELF_H #define OUTPUT_OUTELF_H -#define SYM_GLOBAL 0x10 +#include "output/elf.h" + +/* symbol binding */ +#define SYM_GLOBAL ELF32_ST_MKBIND(STB_GLOBAL) +#define SYM_LOCAL ELF32_ST_MKBIND(STB_LOCAL) #define GLOBAL_TEMP_BASE 0x40000000 /* bigger than any sane symbol index */ diff --git a/output/outelf32.c b/output/outelf32.c index 52fb91c2..0ce21135 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -56,7 +56,6 @@ #include "output/dwarf.h" #include "output/stabs.h" -#include "output/elf.h" #include "output/outelf.h" #ifdef OF_ELF32 @@ -516,7 +515,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, memset(&sym->symv, 0, sizeof(struct rbtree)); sym->strpos = pos; - sym->type = is_global ? SYM_GLOBAL : 0; + sym->type = is_global ? SYM_GLOBAL : SYM_LOCAL; sym->other = STV_DEFAULT; sym->size = 0; if (segment == NO_SEG) diff --git a/output/outelf64.c b/output/outelf64.c index acd79d40..fb373b78 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -56,7 +56,6 @@ #include "output/dwarf.h" #include "output/stabs.h" -#include "output/elf.h" #include "output/outelf.h" #ifdef OF_ELF64 @@ -514,7 +513,7 @@ static void elf_deflabel(char *name, int32_t segment, int64_t offset, memset(&sym->symv, 0, sizeof(struct rbtree)); sym->strpos = pos; - sym->type = is_global ? SYM_GLOBAL : 0; + sym->type = is_global ? SYM_GLOBAL : SYM_LOCAL; sym->other = STV_DEFAULT; sym->size = 0; if (segment == NO_SEG) |