summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2010-08-04 09:53:37 +0000
committerIan Lance Taylor <ian@airs.com>2010-08-04 09:53:37 +0000
commit4fc8c7b71105bac1b109694665fdb98c0cbff6a9 (patch)
tree34cc9936545cfbec94dc7865647f0f87e0c8ee20
parent84cbeb8e5fef3899f9a295821eb9754ac9b8cec4 (diff)
downloadbinutils-redhat-4fc8c7b71105bac1b109694665fdb98c0cbff6a9.tar.gz
elfcpp:/
* i386.h (R_386_IRELATIVE): Define. * powerpc.h (R_POWERPC_IRELATIVE): Define. (R_PPC_RELAX32, R_PPC_RELAX32PC): Don't define. (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Don't define. * sparc.h (R_SPARC_IRELATIVE): Define. * x86_64.h (R_X86_64_IRELATIVE): Define. (R_X86_64_GNU_VTINHERIT): Rename from R_386_GNU_VTINHERIT. (R_X86_64_GNU_VTENTRY): Rename from R_386_GNU_VTENTRY. gold:/ * x86_64.cc (Target_x86_64::Scan::local): Use R_X86_64_GNU_VTINHERIT instead of R_386_GNU_VTINHERIT and R_X86_64_GNU_VTENTRY instead of R_386_GNU_VTENTRY. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise. (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
-rw-r--r--elfcpp/ChangeLog13
-rw-r--r--elfcpp/i386.h3
-rw-r--r--elfcpp/powerpc.h8
-rw-r--r--elfcpp/sparc.h4
-rw-r--r--elfcpp/x86_64.h7
-rw-r--r--gold/ChangeLog10
-rw-r--r--gold/x86_64.cc16
7 files changed, 42 insertions, 19 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 3240c720b0..782b3cf40b 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-04 Ian Lance Taylor <iant@google.com>
+
+ * i386.h (R_386_IRELATIVE): Define.
+ * powerpc.h (R_POWERPC_IRELATIVE): Define.
+ (R_PPC_RELAX32, R_PPC_RELAX32PC): Don't define.
+ (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Don't define.
+ * sparc.h (R_SPARC_IRELATIVE): Define.
+ * x86_64.h (R_X86_64_IRELATIVE): Define.
+ (R_X86_64_GNU_VTINHERIT): Rename from R_386_GNU_VTINHERIT.
+ (R_X86_64_GNU_VTENTRY): Rename from R_386_GNU_VTENTRY.
+
2010-05-12 Doug Kwan <dougkwan@google.com>
* arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
@@ -7,7 +18,7 @@
Tag_undefined43): New tags.
(Targ_VFP_arch, Tag_ABI_align8_needed, TAG_ABI_align8_preserved,
Tag_VFP_HP_extension): Define aliases for backward compatiblity.
-
+
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elfcpp.h (VER_FLG_INFO): Define.
diff --git a/elfcpp/i386.h b/elfcpp/i386.h
index 397e0e6748..6903859f98 100644
--- a/elfcpp/i386.h
+++ b/elfcpp/i386.h
@@ -1,6 +1,6 @@
// i386.h -- ELF definitions specific to EM_386 -*- C++ -*-
-// Copyright 2006, 2007, Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of elfcpp.
@@ -85,6 +85,7 @@ enum
R_386_TLS_DESC_CALL = 40, // Marker of call through TLS desc for relaxation
R_386_TLS_DESC = 41, // TLS descriptor containing pointer to code and
// to argument, returning TLS offset for symbol
+ R_386_IRELATIVE = 42, // Adjust indirectly by program base
// Used by Intel.
R_386_USED_BY_INTEL_200 = 200,
// GNU vtable garbage collection extensions.
diff --git a/elfcpp/powerpc.h b/elfcpp/powerpc.h
index 9f2b71c6f6..2bcb3ca12e 100644
--- a/elfcpp/powerpc.h
+++ b/elfcpp/powerpc.h
@@ -1,6 +1,6 @@
// powerpc.h -- ELF definitions specific to EM_PPC and EM_PPC64 -*- C++ -*-
-// Copyright 2008, Free Software Foundation, Inc.
+// Copyright 2008, 2010 Free Software Foundation, Inc.
// Written by David S. Miller <davem@davemloft.net>.
// This file is part of elfcpp.
@@ -165,10 +165,8 @@ enum
R_PPC_EMB_RELST_HA = 114,
R_PPC_EMB_BIT_FLD = 115,
R_PPC_EMB_RELSDA = 116,
- R_PPC_RELAX32 = 245,
- R_PPC_RELAX32PC = 246,
- R_PPC_RELAX32_PLT = 247,
- R_PPC_RELAX32PC_PLT = 248,
+
+ R_POWERPC_IRELATIVE = 248,
R_PPC_REL16 = 249,
R_PPC_REL16_LO = 250,
R_PPC_REL16_HI = 251,
diff --git a/elfcpp/sparc.h b/elfcpp/sparc.h
index 37036fae96..6a9193b355 100644
--- a/elfcpp/sparc.h
+++ b/elfcpp/sparc.h
@@ -1,6 +1,6 @@
// sparc.h -- ELF definitions specific to EM_SPARC -*- C++ -*-
-// Copyright 2008, Free Software Foundation, Inc.
+// Copyright 2008, 2010 Free Software Foundation, Inc.
// Written by David S. Miller <davem@davemloft.net>.
// This file is part of elfcpp.
@@ -141,6 +141,8 @@ enum
R_SPARC_SIZE32 = 86, // size of symbol, 32-bit
R_SPARC_SIZE64 = 87, // size of symbol, 64-bit
+ R_SPARC_IRELATIVE = 249, // Adjust indirectly by program base
+
// GNU vtable garbage collection extensions.
R_SPARC_GNU_VTINHERIT = 250,
R_SPARC_GNU_VTENTRY = 251,
diff --git a/elfcpp/x86_64.h b/elfcpp/x86_64.h
index 3f71652856..ae7d0a8ba5 100644
--- a/elfcpp/x86_64.h
+++ b/elfcpp/x86_64.h
@@ -1,6 +1,6 @@
// x86-64.h -- ELF definitions specific to EM_X86_64 -*- C++ -*-
-// Copyright 2006, 2007, Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2010 Free Software Foundation, Inc.
// Written by Andrew Chatham.
// This file is part of elfcpp.
@@ -90,9 +90,10 @@ enum
R_X86_64_GOTPC32_TLSDESC = 34, // 32-bit PC relative to TLS descriptor in GOT
R_X86_64_TLSDESC_CALL = 35, // Relaxable call through TLS descriptor
R_X86_64_TLSDESC = 36, // 2 by 64-bit TLS descriptor
+ R_X86_64_IRELATIVE = 37, // Adjust indirectly by program base
// GNU vtable garbage collection extensions.
- R_386_GNU_VTINHERIT = 250,
- R_386_GNU_VTENTRY = 251
+ R_X86_64_GNU_VTINHERIT = 250,
+ R_X86_64_GNU_VTENTRY = 251
};
} // End namespace elfcpp.
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 8dcb05f608..d19a5be246 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,13 @@
+2010-08-04 Ian Lance Taylor <iant@google.com>
+
+ * x86_64.cc (Target_x86_64::Scan::local): Use
+ R_X86_64_GNU_VTINHERIT instead of R_386_GNU_VTINHERIT and
+ R_X86_64_GNU_VTENTRY instead of R_386_GNU_VTENTRY.
+ (Target_x86_64::Scan::global): Likewise.
+ (Target_x86_64::Relocate::relocate): Likewise.
+ (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc):
+ Likewise.
+
2010-08-03 Cary Coutant <ccoutant@google.com>
* merge.cc (Output_merge_string::do_add_input_section): Count strings
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index abeff04486..bfa494c33d 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -1150,8 +1150,8 @@ Target_x86_64::Scan::local(Symbol_table* symtab,
switch (r_type)
{
case elfcpp::R_X86_64_NONE:
- case elfcpp::R_386_GNU_VTINHERIT:
- case elfcpp::R_386_GNU_VTENTRY:
+ case elfcpp::R_X86_64_GNU_VTINHERIT:
+ case elfcpp::R_X86_64_GNU_VTENTRY:
break;
case elfcpp::R_X86_64_64:
@@ -1508,8 +1508,8 @@ Target_x86_64::Scan::global(Symbol_table* symtab,
switch (r_type)
{
case elfcpp::R_X86_64_NONE:
- case elfcpp::R_386_GNU_VTINHERIT:
- case elfcpp::R_386_GNU_VTENTRY:
+ case elfcpp::R_X86_64_GNU_VTINHERIT:
+ case elfcpp::R_X86_64_GNU_VTENTRY:
break;
case elfcpp::R_X86_64_64:
@@ -1992,8 +1992,8 @@ Target_x86_64::Relocate::relocate(const Relocate_info<64, false>* relinfo,
switch (r_type)
{
case elfcpp::R_X86_64_NONE:
- case elfcpp::R_386_GNU_VTINHERIT:
- case elfcpp::R_386_GNU_VTENTRY:
+ case elfcpp::R_X86_64_GNU_VTINHERIT:
+ case elfcpp::R_X86_64_GNU_VTENTRY:
break;
case elfcpp::R_X86_64_64:
@@ -2680,8 +2680,8 @@ Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc(
switch (r_type)
{
case elfcpp::R_X86_64_NONE:
- case elfcpp::R_386_GNU_VTINHERIT:
- case elfcpp::R_386_GNU_VTENTRY:
+ case elfcpp::R_X86_64_GNU_VTINHERIT:
+ case elfcpp::R_X86_64_GNU_VTENTRY:
case elfcpp::R_X86_64_TLSGD: // Global-dynamic
case elfcpp::R_X86_64_GOTPC32_TLSDESC: // Global-dynamic (from ~oliva url)
case elfcpp::R_X86_64_TLSDESC_CALL: