rem: dprintf("!sym2: elf_resolve_symbol: could not resolve symbol '%s'\n", new_symname);
add: dprintf("\"%s\": could not resolve symbol '%s'\n", image->name, new_symname);
context: elf_resolve_symbol(struct elf_image_info *image, struct Elf32_Sym *sym,	struct elf_image_info *shared_image, const char *sym_prepend, addr_t *sym_addr){	struct Elf32_Sym *sym2;	char new_symname[512];	switch (sym->st_shndx) {		case SHN_UNDEF:			// patch the symbol name			strlcpy(new_symname, sym_prepend, sizeof(new_symname));			strlcat(new_symname, SYMNAME(image, sym), sizeof(new_symname));			// it's undefined, must be outside this image, try the other image			sym2 = elf_find_symbol(shared_image, new_symname);			if (!sym2) {				dprintf("!sym2: elf_resolve_symbol: could not resolve symbol '%s'\n", new_symname);				return B_MISSING_SYMBOL;			}			// make sure they're the same type			if (ELF32_ST_TYPE(sym->st_info) != ELF32_ST_TYPE(sym2->st_info)) {				dprintf("elf_resolve_symbol: found symbol '%s' in shared image but wrong type\n", new_symname);				return B_MISSING_SYMBOL;			}			if (ELF32_ST_BIND(sym2->st_info) != STB_GLOBAL && ELF32_ST_BIND(sym2->st_info) != STB_WEAK) {				TRACE(("elf_resolve_symbol: found symbol '%s' but not exported\n", new_symname));				return B_MISSING_SYMBOL;			}			*sym_addr = sym2->st_value + shared_image->text_region.delta;			return B_NO_ERROR;		case SHN_ABS:			*sym_addr = sym->st_value;			return B_NO_ERROR;		case SHN_COMMON:			// ToDo: finish this			TRACE(("elf_resolve_symbol: COMMON symbol, finish me!\n"));			return B_ERROR;		default:			// standard symbol			*sym_addr = sym->st_value + image->text_region.delta;			return B_NO_ERROR;	}}