aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-01-16 21:31:18 +0000
committerJakub Jelinek <jakub@redhat.com>2003-01-16 21:31:18 +0000
commitb3dfd7fe24f18648d4cc8e044219a734c9a82fc1 (patch)
tree08c43a53da426285393a789b044d9e65577ab41b /gas
parent837fd61c26f79a84459b9d12ad1e8838c048cd33 (diff)
downloadgdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.zip
gdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.tar.gz
gdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.tar.bz2
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add
self_dtpmod_done and self_dtpmod_offset. (allocate_global_data_got): Only use one got entry for all dtpmod relocs against local symbols. (allocate_dynrel_entries): Only need .rela.got entry for dtpmod against global symbol. (elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset. Reserve space in .rela.got for the local dtpmod entry. (set_got_entry): Initialize the common local dtpmod .got entry. (elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB and R_IA_64_DTPREL64MSB. * config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data. * ld-ia64/ia64.exp: New. * ld-ia64/tlsbin.dd: New test. * ld-ia64/tlsbinpic.s: New test. * ld-ia64/tlsbin.rd: New test. * ld-ia64/tlsbin.s: New test. * ld-ia64/tlsbin.sd: New test. * ld-ia64/tlsbin.td: New test. * ld-ia64/tlsg.s: New test. * ld-ia64/tlsg.sd: New test. * ld-ia64/tlslib.s: New test. * ld-ia64/tlspic1.s: New test. * ld-ia64/tlspic2.s: New test. * ld-ia64/tlspic.dd: New test. * ld-ia64/tlspic.rd: New test. * ld-ia64/tlspic.sd: New test. * ld-ia64/tlspic.td: New test.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-ia64.c12
2 files changed, 15 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 065ebf9..bfaa2a6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2003-01-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data.
+
2003-01-16 Alan Modra <amodra@bigpond.net.au>
* Makefile.am: Run "make dep-am".
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 40f6f69..a86da0e 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -1,5 +1,5 @@
/* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
- Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of GAS, the GNU Assembler.
@@ -10074,6 +10074,16 @@ ia64_cons_fix_new (f, where, nbytes, exp)
exp->X_op = O_symbol;
break;
}
+ else if (exp->X_op == O_pseudo_fixup
+ && exp->X_op_symbol
+ && S_GET_VALUE (exp->X_op_symbol) == FUNC_DTP_RELATIVE)
+ {
+ if (target_big_endian)
+ code = BFD_RELOC_IA64_DTPREL64MSB;
+ else
+ code = BFD_RELOC_IA64_DTPREL64LSB;
+ break;
+ }
else
{
if (target_big_endian)