summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2001-01-30 13:40:08 +0000
committerAlan Modra <amodra@bigpond.net.au>2001-01-30 13:40:08 +0000
commitf437933530774715c406b85de7c942773dc48281 (patch)
tree5565914bbf38988d173d44d3574630449fc008f1
parent3cd71b95eaf9545e29c4359f7521b53c8b671ae0 (diff)
downloadgdb-f437933530774715c406b85de7c942773dc48281.tar.gz
Write out millicode functions with the right elf symbol type.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-hppa.c17
2 files changed, 22 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 36b6e00a581..e9b87105d20 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-30 Alan Modra <alan@linuxcare.com.au>
+
+ * elf64-hppa.c (elf64_hppa_elf_get_symbol_type): New function.
+ (elf_backend_get_symbol_type): Define.
+
2001-01-30 Curtis L. Janssen <cljanss@ca.sandia.gov>
* elf64-alpha.c (elf64_alpha_find_nearest_line): Query dwarf2
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 465a2db40af..7aa4e1864a5 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -258,6 +258,9 @@ static boolean get_dlt
static boolean get_stub
PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *));
+static int elf64_hppa_elf_get_symbol_type
+ PARAMS ((Elf_Internal_Sym *, int));
+
static boolean
elf64_hppa_dyn_hash_table_init (ht, abfd, new)
struct elf64_hppa_dyn_hash_table *ht;
@@ -2569,6 +2572,19 @@ elf64_hppa_modify_segment_map (abfd)
return true;
}
+/* Called when writing out an object file to decide the type of a
+ symbol. */
+static int
+elf64_hppa_elf_get_symbol_type (elf_sym, type)
+ Elf_Internal_Sym *elf_sym;
+ int type;
+{
+ if (ELF_ST_TYPE (elf_sym->st_info) == STT_PARISC_MILLI)
+ return STT_PARISC_MILLI;
+ else
+ return type;
+}
+
/* The hash bucket size is the standard one, namely 4. */
const struct elf_size_info hppa64_elf_size_info =
@@ -2662,6 +2678,7 @@ const struct elf_size_info hppa64_elf_size_info =
#define elf_backend_got_header_size 0
#define elf_backend_plt_header_size 0
#define elf_backend_type_change_ok true
+#define elf_backend_get_symbol_type elf64_hppa_elf_get_symbol_type
#include "elf64-target.h"