/* bfd back-end for HP PA-RISC SOM objects.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#include "alloca-conf.h"
#include "sysdep.h"
#include "bfd.h"
#include <machine/reg.h>
#include <sys/file.h>
-/* This is the code recommended in the autoconf documentation, almost
- verbatim. */
-
-#ifndef __GNUC__
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
-/* Indented so that pre-ansi C compilers will ignore it, rather than
- choke on it. Some versions of AIX require this to be the first
- thing in the file. */
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-# if !defined (__STDC__) && !defined (__hpux)
-extern char *alloca ();
-# else
-extern void *alloca ();
-# endif /* __STDC__, __hpux */
-# endif /* alloca */
-# endif /* _AIX */
-# endif /* HAVE_ALLOCA_H */
-#else
-extern void *alloca (size_t);
-#endif /* __GNUC__ */
-
static bfd_reloc_status_type hppa_som_reloc
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
static bfd_boolean som_mkobject (bfd *);
to the front of the queue. */
static void
-som_reloc_queue_fix (struct reloc_queue *queue, unsigned int index)
+som_reloc_queue_fix (struct reloc_queue *queue, unsigned int idx)
{
- if (index == 0)
+ if (idx == 0)
return;
- if (index == 1)
+ if (idx == 1)
{
unsigned char *tmp1 = queue[0].reloc;
unsigned int tmp2 = queue[0].size;
return;
}
- if (index == 2)
+ if (idx == 2)
{
unsigned char *tmp1 = queue[0].reloc;
unsigned int tmp2 = queue[0].size;
return;
}
- if (index == 3)
+ if (idx == 3)
{
unsigned char *tmp1 = queue[0].reloc;
unsigned int tmp2 = queue[0].size;
section (ST_DATA for DATA sections, ST_CODE for CODE sections). */
else if (som_symbol_data (sym)->som_type == SYMBOL_TYPE_UNKNOWN)
{
- if (sym->section->flags & SEC_CODE)
+ if (bfd_is_abs_section (sym->section))
+ info->symbol_type = ST_ABSOLUTE;
+ else if (sym->section->flags & SEC_CODE)
info->symbol_type = ST_CODE;
else
info->symbol_type = ST_DATA;
&& symbol->symbol_type != ST_SEC_PROG
&& symbol->symbol_type != ST_MILLICODE))
{
- int index = symbol->symbol_info;
+ int idx = symbol->symbol_info;
for (section = abfd->sections; section != NULL; section = section->next)
- if (section->target_index == index && som_is_subspace (section))
+ if (section->target_index == idx && som_is_subspace (section))
return section;
}
else
som_make_empty_symbol (bfd *abfd)
{
bfd_size_type amt = sizeof (som_symbol_type);
- som_symbol_type *new = bfd_zalloc (abfd, amt);
+ som_symbol_type *new_symbol_type = bfd_zalloc (abfd, amt);
- if (new == NULL)
+ if (new_symbol_type == NULL)
return NULL;
- new->symbol.the_bfd = abfd;
+ new_symbol_type->symbol.the_bfd = abfd;
- return &new->symbol;
+ return &new_symbol_type->symbol;
}
/* Print symbol information. */
bfd_boolean
bfd_som_set_subsection_attributes (asection *section,
asection *container,
- int access,
+ int access_ctr,
unsigned int sort_key,
int quadrant,
int comdat,
return FALSE;
}
som_section_data (section)->copy_data->sort_key = sort_key;
- som_section_data (section)->copy_data->access_control_bits = access;
+ som_section_data (section)->copy_data->access_control_bits = access_ctr;
som_section_data (section)->copy_data->quadrant = quadrant;
som_section_data (section)->copy_data->container = container;
som_section_data (section)->copy_data->is_comdat = comdat;
#define som_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define som_bfd_link_add_symbols _bfd_generic_link_add_symbols
#define som_bfd_link_just_syms _bfd_generic_link_just_syms
+#define som_bfd_copy_link_hash_symbol_type \
+ _bfd_generic_copy_link_hash_symbol_type
#define som_bfd_final_link _bfd_generic_final_link
#define som_bfd_gc_sections bfd_generic_gc_sections
#define som_bfd_merge_sections bfd_generic_merge_sections
#define som_bfd_is_group_section bfd_generic_is_group_section
#define som_bfd_discard_group bfd_generic_discard_group
#define som_section_already_linked _bfd_generic_section_already_linked
+#define som_bfd_define_common_symbol bfd_generic_define_common_symbol
#define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data
#define som_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data
#define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags