From 6e5710cea9c8a6dc04e7b3deb606b7234715e926 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 4 Aug 2010 09:53:38 +0000 Subject: [PATCH] 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. --- elfcpp/ChangeLog | 13 ++++++++++++- elfcpp/i386.h | 3 ++- elfcpp/powerpc.h | 8 +++----- elfcpp/sparc.h | 4 +++- elfcpp/x86_64.h | 7 ++++--- gold/ChangeLog | 10 ++++++++++ gold/x86_64.cc | 16 ++++++++-------- 7 files changed, 42 insertions(+), 19 deletions(-) diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index 3240c720b0c..782b3cf40bd 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -1,3 +1,14 @@ +2010-08-04 Ian Lance Taylor + + * 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 * 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 * elfcpp.h (VER_FLG_INFO): Define. diff --git a/elfcpp/i386.h b/elfcpp/i386.h index 397e0e6748e..6903859f98b 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 . // 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 9f2b71c6f6b..2bcb3ca12e5 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 . // 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 37036fae96a..6a9193b355c 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 . // 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 3f716528567..ae7d0a8ba5b 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 8dcb05f6081..d19a5be2466 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,13 @@ +2010-08-04 Ian Lance Taylor + + * 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 * merge.cc (Output_merge_string::do_add_input_section): Count strings diff --git a/gold/x86_64.cc b/gold/x86_64.cc index abeff044868..bfa494c33dc 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: -- 2.30.2