aboutsummaryrefslogtreecommitdiff
path: root/bfd/libelf.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/libelf.h')
-rw-r--r--bfd/libelf.h90
1 files changed, 56 insertions, 34 deletions
diff --git a/bfd/libelf.h b/bfd/libelf.h
index 9cd9b16..3d16ae5 100644
--- a/bfd/libelf.h
+++ b/bfd/libelf.h
@@ -25,19 +25,36 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "elf/internal.h"
#include "elf/external.h"
+#ifdef __STDC__
+#define CAT3(a,b,c) a##b##c
+#else
+#define CAT3(a,b,c) a/**/b/**/c
+#endif
+
+#if ARCH_SIZE==64
+#ifndef NAME
+#define NAME(x,y) CAT3(x,64_,y)
+#endif
+#else /* ARCH_SIZE==32 */
+#ifndef NAME
+#define NAME(x,y) CAT3(x,32_,y)
+#endif
+#endif
+
typedef struct
{
asymbol symbol;
- Elf_Internal_Sym internal_elf_sym;
- Elf_External_Sym native_elf_sym;
+ NAME(Elf,Internal_Sym) internal_elf_sym;
+ NAME(Elf,External_Sym) native_elf_sym;
/* these are used for the generation of .stabX symbols (?) */
short desc;
unsigned char type;
char other;
-} elf_symbol_type;
+} NAME(elf,symbol_type);
-struct elf_backend_data {
- void (*elf_info_to_howto) PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
+struct NAME(elf,backend_data) {
+ void (*elf_info_to_howto) PARAMS ((bfd *, arelent *,
+ NAME(Elf,Internal_Rela) *));
enum bfd_architecture arch;
/* @@ I really don't think this should be here. I don't know what
@@ -45,38 +62,43 @@ struct elf_backend_data {
that would be considered global, e.g., if you've got a program
reading and writing many BFDs. My hunch is that it's specific to
the output BFD. If not, put a comment here explaining why. */
- elf_symbol_type *global_sym;
+ NAME(elf,symbol_type) *global_sym;
};
-extern bfd_target *elf_object_p PARAMS ((bfd *));
-extern bfd_target *elf_core_file_p PARAMS ((bfd *));
-extern boolean elf_mkobject PARAMS ((bfd *));
-extern boolean elf_write_object_contents PARAMS ((bfd *));
-extern char *elf_core_file_failing_command PARAMS ((bfd *));
-extern int elf_core_file_failing_signal PARAMS ((bfd *));
-extern boolean elf_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-extern boolean elf_set_section_contents PARAMS ((bfd *, sec_ptr, PTR,
- file_ptr, bfd_size_type));
-extern unsigned int elf_get_symtab_upper_bound PARAMS ((bfd *));
-extern unsigned int elf_get_symtab PARAMS ((bfd *, asymbol **));
-extern unsigned int elf_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
-extern unsigned int elf_canonicalize_reloc PARAMS ((bfd *, sec_ptr,
- arelent **, asymbol **));
-extern asymbol *elf_make_empty_symbol PARAMS ((bfd *));
-extern void elf_print_symbol PARAMS ((bfd *, PTR, asymbol *,
- bfd_print_symbol_type));
-extern void elf_get_symbol_info PARAMS ((bfd *, asymbol *,
- symbol_info *));
-extern alent *elf_get_lineno PARAMS ((bfd *, asymbol *));
-extern boolean elf_set_arch_mach PARAMS ((bfd *, enum bfd_architecture,
- unsigned long));
-extern boolean elf_find_nearest_line PARAMS ((bfd *, asection *, asymbol **,
- bfd_vma, CONST char **,
- CONST char **, unsigned int *));
-extern int elf_sizeof_headers PARAMS ((bfd *, boolean));
+extern bfd_target *bfd_elf32_object_p PARAMS ((bfd *));
+extern bfd_target *bfd_elf32_core_file_p PARAMS ((bfd *));
+extern boolean bfd_elf32_mkobject PARAMS ((bfd *));
+extern boolean bfd_elf32_write_object_contents PARAMS ((bfd *));
+extern char *bfd_elf32_core_file_failing_command PARAMS ((bfd *));
+extern int bfd_elf32_core_file_failing_signal PARAMS ((bfd *));
+extern boolean bfd_elf32_core_file_matches_executable_p PARAMS ((bfd *,
+ bfd *));
+extern boolean bfd_elf32_set_section_contents PARAMS ((bfd *, sec_ptr, PTR,
+ file_ptr,
+ bfd_size_type));
+extern unsigned int bfd_elf32_get_symtab_upper_bound PARAMS ((bfd *));
+extern unsigned int bfd_elf32_get_symtab PARAMS ((bfd *, asymbol **));
+extern unsigned int bfd_elf32_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr));
+extern unsigned int bfd_elf32_canonicalize_reloc PARAMS ((bfd *, sec_ptr,
+ arelent **,
+ asymbol **));
+extern asymbol *bfd_elf32_make_empty_symbol PARAMS ((bfd *));
+extern void bfd_elf32_print_symbol PARAMS ((bfd *, PTR, asymbol *,
+ bfd_print_symbol_type));
+extern void bfd_elf32_get_symbol_info PARAMS ((bfd *, asymbol *,
+ symbol_info *));
+extern alent *bfd_elf32_get_lineno PARAMS ((bfd *, asymbol *));
+extern boolean bfd_elf32_set_arch_mach PARAMS ((bfd *, enum bfd_architecture,
+ unsigned long));
+extern boolean bfd_elf32_find_nearest_line PARAMS ((bfd *, asection *,
+ asymbol **,
+ bfd_vma, CONST char **,
+ CONST char **,
+ unsigned int *));
+extern int bfd_elf32_sizeof_headers PARAMS ((bfd *, boolean));
/* If the target doesn't have reloc handling written yet: */
-extern void elf_no_info_to_howto PARAMS ((bfd *, arelent *,
- Elf_Internal_Rela *));
+extern void bfd_elf32_no_info_to_howto PARAMS ((bfd *, arelent *,
+ Elf32_Internal_Rela *));
#endif /* _LIBELF_H_ */