Instead of implicit declaration of global symbols obtained
by STB_GLOBAL << 4, and local symbols by STB_LOCAL << 4
use ELF32_ST_MKBIND helpers.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
#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 */
#include "output/dwarf.h"
#include "output/stabs.h"
-#include "output/elf.h"
#include "output/outelf.h"
#ifdef OF_ELF32
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)
#include "output/dwarf.h"
#include "output/stabs.h"
-#include "output/elf.h"
#include "output/outelf.h"
#ifdef OF_ELF64
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)