/* Generic symbol-table support for the BFD library.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2007, 2008
+ 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009
Free Software Foundation, Inc.
Written by Cygnus Support.
. perhaps others someday. *}
.#define BSF_FUNCTION (1 << 3)
.
-. {* The symbol is an indirect code object. Unrelated to BSF_INDIRECT.
-. Relocations against a symbol with this flag have to evaluated at
-. run-time, where the function pointed to by this symbol is invoked
-. in order to determine the value to be used in the relocation.
-. BSF_FUNCTION must also be set for symbols with this flag. *}
-.#define BSF_INDIRECT_FUNCTION (1 << 4)
-.
. {* Used by the linker. *}
.#define BSF_KEEP (1 << 5)
.#define BSF_KEEP_G (1 << 6)
(type & BSF_WEAK) ? 'w' : ' ',
(type & BSF_CONSTRUCTOR) ? 'C' : ' ',
(type & BSF_WARNING) ? 'W' : ' ',
- (type & BSF_INDIRECT) ? 'I' : (type & BSF_INDIRECT_FUNCTION) ? 'i' : ' ',
+ (type & BSF_INDIRECT) ? 'I' : ' ',
(type & BSF_DEBUGGING) ? 'd' : (type & BSF_DYNAMIC) ? 'D' : ' ',
((type & BSF_FUNCTION)
? 'F'
}
if (bfd_is_ind_section (symbol->section))
return 'I';
- if (symbol->flags & BSF_INDIRECT_FUNCTION)
- return 'i';
if (symbol->flags & BSF_WEAK)
{
/* If weak, determine if it's specifically an object
{
size_t len;
- if (info->filename != NULL)
- free (info->filename);
+ /* Don't free info->filename here. objdump and other
+ apps keep a copy of a previously returned file name
+ pointer. */
len = strlen (file_name) + 1;
- info->filename = bfd_malloc (dirlen + len);
+ info->filename = bfd_alloc (abfd, dirlen + len);
if (info->filename == NULL)
return FALSE;
memcpy (info->filename, directory_name, dirlen);