From f7933f61b2ff10b34b661b2be815529e40223d1c Mon Sep 17 00:00:00 2001 From: cvs2svn <> Date: Sat, 25 Jul 2009 14:58:56 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'msnyder- checkpoint-072509-branch'. Sprout from dje-cgen-play1-branch 2009-06-26 17:19:08 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'dje-cgen-' Cherrypick from master 2009-07-25 14:58:55 UTC H.J. Lu 'bfd/': ChangeLog config/ChangeLog config/tls.m4 configure configure.ac djunpack.bat include/ChangeLog include/demangle.h include/dwarf2.h include/elf/ChangeLog include/elf/common.h include/elf/ppc.h include/elf/ppc64.h include/elf/spu.h include/libiberty.h Delete: include/elf/dwarf2.h --- ChangeLog | 6 +++ config/ChangeLog | 11 +++++ config/tls.m4 | 20 +++++++- configure | 8 ++- configure.ac | 6 ++- djunpack.bat | 52 ++++++++++++++++++++ include/ChangeLog | 38 +++++++++++++++ include/demangle.h | 4 ++ include/{elf => }/dwarf2.h | 99 ++++++++++++++++++++++++-------------- include/elf/ChangeLog | 33 +++++++++++++ include/elf/common.h | 5 +- include/elf/ppc.h | 17 ++++--- include/elf/ppc64.h | 3 ++ include/elf/spu.h | 1 + include/libiberty.h | 5 +- 15 files changed, 258 insertions(+), 50 deletions(-) create mode 100755 djunpack.bat rename include/{elf => }/dwarf2.h (92%) diff --git a/ChangeLog b/ChangeLog index 348e5b4aa..29e1b02a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-07-02 Tristan Gingold + + * configure.ac: Do not exclude gas for i386-*-darwin. + Add a case for x86_64-*-darwin. + * configure: Regenerate. + 2009-06-26 Doug Evans * Makefile.def (host_modules): Add cgen. diff --git a/config/ChangeLog b/config/ChangeLog index d6ff5652d..96d5f7505 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,14 @@ +2009-07-17 Joseph Myers + + PR other/40784 + * tls.m4 (GCC_CHECK_TLS): Add extra quoting around argument to + AC_LINK_IFELSE. + +2009-07-16 Joseph Myers + + * tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when + cross-compiling. + 2009-05-26 Rafael Avila de Espindola * plugins.m4: New. diff --git a/config/tls.m4 b/config/tls.m4 index acb123f69..0ae60460b 100644 --- a/config/tls.m4 +++ b/config/tls.m4 @@ -1,5 +1,6 @@ dnl Check whether the target supports TLS. AC_DEFUN([GCC_CHECK_TLS], [ + AC_REQUIRE([AC_CANONICAL_HOST]) GCC_ENABLE(tls, yes, [], [Use thread-local storage]) AC_CACHE_CHECK([whether the target supports thread-local storage], gcc_cv_have_tls, [ @@ -66,7 +67,24 @@ AC_DEFUN([GCC_CHECK_TLS], [ [dnl This is the cross-compiling case. Assume libc supports TLS if the dnl binutils and the compiler do. AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }], - [gcc_cv_have_tls=yes], [gcc_cv_have_tls=no]) + [chktls_save_LDFLAGS="$LDFLAGS" + dnl Shared library options may depend on the host; this check + dnl is only known to be needed for GNU/Linux. + case $host in + *-*-linux*) + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS" + ;; + esac + chktls_save_CFLAGS="$CFLAGS" + CFLAGS="-fPIC $CFLAGS" + dnl If -shared works, test if TLS works in a shared library. + AC_LINK_IFELSE([int f() { return 0; }], + [AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }], + [gcc_cv_have_tls=yes], + [gcc_cv_have_tls=no])], + [gcc_cv_have_tls=yes]) + CFLAGS="$chktls_save_CFLAGS" + LDFLAGS="$chktls_save_LDFLAGS"], [gcc_cv_have_tls=no]) ] )]) if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then diff --git a/configure b/configure index 4d5e06aad..394e8486f 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # -# Copyright (C) 2003, 2008 Free Software Foundation, Inc. +# Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -2215,7 +2215,11 @@ case "${target}" in noconfigdirs="$noconfigdirs ld gas gdb gprof" noconfigdirs="$noconfigdirs sim target-rda" ;; - i[3456789]86-*-darwin* | x86_64-*-darwin9*) + i[3456789]86-*-darwin*) + noconfigdirs="$noconfigdirs ld gprof" + noconfigdirs="$noconfigdirs sim target-rda" + ;; + x86_64-*-darwin9*) noconfigdirs="$noconfigdirs ld gas gprof" noconfigdirs="$noconfigdirs sim target-rda" ;; diff --git a/configure.ac b/configure.ac index e8bcc4bf9..a59422231 100644 --- a/configure.ac +++ b/configure.ac @@ -450,7 +450,11 @@ case "${target}" in noconfigdirs="$noconfigdirs ld gas gdb gprof" noconfigdirs="$noconfigdirs sim target-rda" ;; - i[[3456789]]86-*-darwin* | x86_64-*-darwin9*) + i[[3456789]]86-*-darwin*) + noconfigdirs="$noconfigdirs ld gprof" + noconfigdirs="$noconfigdirs sim target-rda" + ;; + x86_64-*-darwin9*) noconfigdirs="$noconfigdirs ld gas gprof" noconfigdirs="$noconfigdirs sim target-rda" ;; diff --git a/djunpack.bat b/djunpack.bat new file mode 100755 index 000000000..5c6e9b2e3 --- /dev/null +++ b/djunpack.bat @@ -0,0 +1,52 @@ +@echo off +Rem +Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line +Rem format, or else stock DOS/Windows shells will refuse to run it. +Rem +Rem This batch file unpacks the GDB distribution while simultaneously +Rem renaming some of the files whose names are invalid on DOS or conflict +Rem with other file names after truncation to DOS 8+3 namespace. +Rem +Rem Invoke like this: +Rem +Rem djunpack gdb-XYZ.tar +Rem +Rem where XYZ is the version number. If the argument includes leading +Rem directories, it MUST use backslashes, not forward slashes. +Rem +Rem The following 2 lines need to be changed with each new GDB release, to +Rem be identical to the name of the top-level directory where the GDB +Rem distribution unpacks itself. +set GDBVER=gdb-5.0 +if "%GDBVER%"=="gdb-5.0" GoTo EnvOk +Rem If their environment space is too small, re-exec with a larger one +command.com /e:4096 /c %0 %1 +GoTo End +:EnvOk +if not exist %1 GoTo NoArchive +djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp +Rem The following uses a feature of COPY whereby it does not copy +Rem empty files. We need that because the previous line will create +Rem an empty fnchange.tmp even if the command failed for some reason. +copy fnchange.tmp junk.tmp > nul +if not exist junk.tmp GoTo NoDjTar +del junk.tmp +sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst +Rem See the comment above about the reason for using COPY. +copy fnchange.lst junk.tmp > nul +if not exist junk.tmp GoTo NoSed +del junk.tmp +djtar -x -n fnchange.lst %1 +GoTo End +:NoSed +echo FAIL: Sed is not available. +GoTo End +:NoDjTar +echo FAIL: DJTAR is not available or no fnchange.lst file in %1. +GoTo End +:NoArchive +echo FAIL: the file %1 does not seem to exist. +echo Remember that %1 cannot use forward slashes, only backslashes. +GoTo End +:End +set GDBVER= diff --git a/include/ChangeLog b/include/ChangeLog index 8f857749e..c681a3395 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,41 @@ +2009-07-24 Ian Lance Taylor + + * libiberty.h (crc32): Declare. + +2009-07-20 Cary Coutant + Doug Evans + + Add some dwarf4 values. + * dwarf2.h (enum dwarf_tag): Add DW_TAG_type_unit. + (enum dwarf_form): Add DW_FORM_sec_offset, DW_FORM_exprloc, + DW_FORM_flag_present, DW_FORM_sig8. + (enum dwarf_attribute): Add DW_AT_signature. + +2009-07-17 Jan Kratochvil + + * demangle.h + (enum demangle_component_type ) + (enum demangle_component_type ): + New. + +2009-07-10 Tom Tromey + + * dwarf2.h: New file, moved from elf/. + +2009-07-09 Jakub Jelinek + + * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value + and DW_OP_stack_value. + +2009-07-09 Tom Tromey + + * elf/dwarf2.h: Remove, renaming to... + * dwarf2.h: ... this. + +2009-06-29 Tom Tromey + + * elf/dwarf2.h: New file. Merged with gdb. + 2009-06-18 Nick Clifton * dis-asm.h (USER_SPECIFIED_MACHINE_TYPE): New value for the flags diff --git a/include/demangle.h b/include/demangle.h index eb39c7c13..0bcae2fdb 100644 --- a/include/demangle.h +++ b/include/demangle.h @@ -377,6 +377,10 @@ enum demangle_component_type DEMANGLE_COMPONENT_CHARACTER, /* A decltype type. */ DEMANGLE_COMPONENT_DECLTYPE, + /* Global constructors keyed to name. */ + DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS, + /* Global destructors keyed to name. */ + DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS, /* A pack expansion. */ DEMANGLE_COMPONENT_PACK_EXPANSION }; diff --git a/include/elf/dwarf2.h b/include/dwarf2.h similarity index 92% rename from include/elf/dwarf2.h rename to include/dwarf2.h index a7448dc7c..295abf5c0 100644 --- a/include/elf/dwarf2.h +++ b/include/dwarf2.h @@ -1,7 +1,7 @@ /* Declarations and definitions of codes relating to the DWARF2 and DWARF3 symbolic debugging information formats. Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Written by Gary Funck (gary@intrepid.com) The Ada Joint Program Office (AJPO), Florida State University and Silicon Graphics Inc. @@ -14,7 +14,7 @@ GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2, or (at your option) any later + Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT @@ -22,10 +22,14 @@ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA - 02110-1301, USA. */ + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ /* This file is derived from the DWARF specification (a public document) Revision 2.0.0 (July 27, 1993) developed by the UNIX International @@ -190,6 +194,12 @@ enum dwarf_tag DW_TAG_imported_unit = 0x3d, DW_TAG_condition = 0x3f, DW_TAG_shared_type = 0x40, + /* DWARF 4. */ + DW_TAG_type_unit = 0x41, + + DW_TAG_lo_user = 0x4080, + DW_TAG_hi_user = 0xffff, + /* SGI/MIPS Extensions. */ DW_TAG_MIPS_loop = 0x4081, /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ @@ -209,9 +219,6 @@ enum dwarf_tag DW_TAG_PGI_interface_block = 0xA020 }; -#define DW_TAG_lo_user 0x4080 -#define DW_TAG_hi_user 0xffff - /* Flag that tells whether entry has a child or not. */ #define DW_children_no 0 #define DW_children_yes 1 @@ -239,7 +246,12 @@ enum dwarf_form DW_FORM_ref4 = 0x13, DW_FORM_ref8 = 0x14, DW_FORM_ref_udata = 0x15, - DW_FORM_indirect = 0x16 + DW_FORM_indirect = 0x16, + /* DWARF 4. */ + DW_FORM_sec_offset = 0x17, + DW_FORM_exprloc = 0x18, + DW_FORM_flag_present = 0x19, + DW_FORM_sig8 = 0x20 }; /* Attribute names and codes. */ @@ -312,7 +324,7 @@ enum dwarf_attribute DW_AT_allocated = 0x4e, DW_AT_associated = 0x4f, DW_AT_data_location = 0x50, - DW_AT_byte_stride = 0x51, + DW_AT_byte_stride = 0x51, #define DW_AT_stride DW_AT_byte_stride /* Note: The use of DW_AT_stride is deprecated. */ DW_AT_entry_pc = 0x52, DW_AT_use_UTF8 = 0x53, @@ -337,6 +349,12 @@ enum dwarf_attribute DW_AT_elemental = 0x66, DW_AT_pure = 0x67, DW_AT_recursive = 0x68, + /* DWARF 4. */ + DW_AT_signature = 0x69, + + DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */ + DW_AT_hi_user = 0x3ff0, /* Implementation-defined range end. */ + /* SGI/MIPS extensions. */ DW_AT_MIPS_fde = 0x2001, DW_AT_MIPS_loop_begin = 0x2002, @@ -382,9 +400,6 @@ enum dwarf_attribute DW_AT_PGI_lstride = 0x3a02 }; -#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */ -#define DW_AT_hi_user 0x3fff /* Implementation-defined range end. */ - /* Location atom names and codes. */ enum dwarf_location_atom { @@ -541,8 +556,17 @@ enum dwarf_location_atom DW_OP_form_tls_address = 0x9b, DW_OP_call_frame_cfa = 0x9c, DW_OP_bit_piece = 0x9d, + + /* DWARF 4 extensions. */ + DW_OP_implicit_value = 0x9e, + DW_OP_stack_value = 0x9f, + + DW_OP_lo_user = 0xe0, /* Implementation-defined range start. */ + DW_OP_hi_user = 0xff, /* Implementation-defined range end. */ + /* GNU extensions. */ DW_OP_GNU_push_tls_address = 0xe0, + /* The following is for marking variables that are uninitialized. */ DW_OP_GNU_uninit = 0xf0, DW_OP_GNU_encoded_addr = 0xf1, /* HP extensions. */ @@ -557,9 +581,6 @@ enum dwarf_location_atom DW_OP_PGI_omp_thread_num = 0xf8 }; -#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */ -#define DW_OP_hi_user 0xff /* Implementation-defined range end. */ - /* Type encodings. */ enum dwarf_type { @@ -580,6 +601,10 @@ enum dwarf_type DW_ATE_signed_fixed = 0xd, DW_ATE_unsigned_fixed = 0xe, DW_ATE_decimal_float = 0xf, + + DW_ATE_lo_user = 0x80, + DW_ATE_hi_user = 0xff, + /* HP extensions. */ DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */ DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */ @@ -590,9 +615,6 @@ enum dwarf_type DW_ATE_HP_imaginary_float128 = 0x86 }; -#define DW_ATE_lo_user 0x80 -#define DW_ATE_hi_user 0xff - /* Decimal sign encodings. */ enum dwarf_decimal_sign_encoding { @@ -610,11 +632,11 @@ enum dwarf_endianity_encoding /* DWARF 3. */ DW_END_default = 0x00, DW_END_big = 0x01, - DW_END_little = 0x02 - }; + DW_END_little = 0x02, -#define DW_END_lo_user 0x40 -#define DW_END_hi_user 0xff + DW_END_lo_user = 0x40, + DW_END_hi_user = 0xff + }; /* Array ordering names and codes. */ enum dwarf_array_dim_ordering @@ -662,12 +684,13 @@ enum dwarf_calling_convention DW_CC_normal = 0x1, DW_CC_program = 0x2, DW_CC_nocall = 0x3, + + DW_CC_lo_user = 0x40, + DW_CC_hi_user = 0xff, + DW_CC_GNU_renesas_sh = 0x40 }; -#define DW_CC_lo_user 0x40 -#define DW_CC_hi_user 0xff - /* Inline attribute. */ enum dwarf_inline_attribute { @@ -720,11 +743,11 @@ enum dwarf_line_number_x_ops DW_LNE_HP_negate_post_semantics = 0x17, DW_LNE_HP_negate_function_exit = 0x18, DW_LNE_HP_negate_front_end_logical = 0x19, - DW_LNE_HP_define_proc = 0x20 - }; + DW_LNE_HP_define_proc = 0x20, -#define DW_LNE_lo_user 0x80 -#define DW_LNE_hi_user 0xff + DW_LNE_lo_user = 0x80, + DW_LNE_hi_user = 0xff + }; /* Call frame information. */ enum dwarf_call_frame_info @@ -756,6 +779,10 @@ enum dwarf_call_frame_info DW_CFA_val_offset = 0x14, DW_CFA_val_offset_sf = 0x15, DW_CFA_val_expression = 0x16, + + DW_CFA_lo_user = 0x1c, + DW_CFA_hi_user = 0x3f, + /* SGI/MIPS specific. */ DW_CFA_MIPS_advance_loc8 = 0x1d, /* GNU extensions. */ @@ -765,11 +792,10 @@ enum dwarf_call_frame_info }; #define DW_CIE_ID 0xffffffff +#define DW64_CIE_ID 0xffffffffffffffffULL #define DW_CIE_VERSION 1 #define DW_CFA_extended 0 -#define DW_CFA_lo_user 0x1c -#define DW_CFA_hi_user 0x3f #define DW_CHILDREN_no 0x00 #define DW_CHILDREN_yes 0x01 @@ -799,15 +825,16 @@ enum dwarf_source_language DW_LANG_ObjC_plus_plus = 0x0011, DW_LANG_UPC = 0x0012, DW_LANG_D = 0x0013, + + DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */ + DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */ + /* MIPS. */ DW_LANG_Mips_Assembler = 0x8001, /* UPC. */ DW_LANG_Upc = 0x8765 }; -#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */ -#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */ - /* Names and codes for macro information. */ enum dwarf_macinfo_record_type { diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 99805f1c7..3ef5067ae 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,36 @@ +2009-07-25 H.J. Lu + + * common.h (EM_L1OM): New. + +2009-07-24 Trevor Smigiel + Alan Modra + + * spu.h (R_SPU_ADD_PIC): New. + +2009-07-23 Ulrich Drepper + + * common.h (STB_GNU_UNIQUE): Define. + +2009-07-10 Tom Tromey + + * dwarf2.h: Move to `..'. + +2009-07-10 H.J. Lu + + * dwarf2.h: Just include ../dwarf2.h. + +2009-07-10 Alan Modra + + * ppc.h (R_PPC_IRELATIVE): Add. + (R_PPC_RELAX32, R_PPC_RELAX32PC, + R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber. + * ppc64.h (R_PPC64_IRELATIVE): Add. + +2009-07-03 Jakub Jelinek + + * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value + and DW_OP_stack_value. + 2009-06-22 Alan Modra * ppc.h (R_PPC_RELAX*): Define as enum. diff --git a/include/elf/common.h b/include/elf/common.h index 75f4eb82d..33ec16a02 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -1,6 +1,6 @@ /* ELF support for BFD. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support, from information published @@ -238,7 +238,7 @@ #define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */ #define EM_ETPU 178 /* Freescale Extended Time Processing Unit */ #define EM_SLE9X 179 /* Infineon Technologies SLE9X core */ -#define EM_INTEL180 180 /* Reserved by Intel */ +#define EM_L1OM 180 /* Intel L1OM */ #define EM_INTEL181 181 /* Reserved by Intel */ #define EM_INTEL182 182 /* Reserved by Intel */ @@ -555,6 +555,7 @@ #define STB_GLOBAL 1 /* Symbol visible outside obj */ #define STB_WEAK 2 /* Like globals, lower precedence */ #define STB_LOOS 10 /* OS-specific semantics */ +#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */ #define STB_HIOS 12 /* OS-specific semantics */ #define STB_LOPROC 13 /* Processor-specific semantics */ #define STB_HIPROC 15 /* Processor-specific semantics */ diff --git a/include/elf/ppc.h b/include/elf/ppc.h index 8f4ed9e18..14c643a54 100644 --- a/include/elf/ppc.h +++ b/include/elf/ppc.h @@ -71,6 +71,14 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) RELOC_NUMBER (R_PPC_ADDR30, 37) +#ifndef RELOC_MACROS_GEN_FUNC +/* Fake relocations for branch stubs, only used internally by ld. */ + RELOC_NUMBER (R_PPC_RELAX32, 48) + RELOC_NUMBER (R_PPC_RELAX32PC, 49) + RELOC_NUMBER (R_PPC_RELAX32_PLT, 50) + RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 51) +#endif + /* Relocs added to support TLS. */ RELOC_NUMBER (R_PPC_TLS, 67) RELOC_NUMBER (R_PPC_DTPMOD32, 68) @@ -122,13 +130,8 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115) RELOC_NUMBER (R_PPC_EMB_RELSDA, 116) -#ifndef RELOC_MACROS_GEN_FUNC -/* Fake relocations for branch stubs, only used internally by ld. */ - RELOC_NUMBER (R_PPC_RELAX32, 245) - RELOC_NUMBER (R_PPC_RELAX32PC, 246) - RELOC_NUMBER (R_PPC_RELAX32_PLT, 247) - RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 248) -#endif +/* Support STT_GNU_IFUNC plt calls. */ + RELOC_NUMBER (R_PPC_IRELATIVE, 248) /* These are GNU extensions used in PIC code sequences. */ RELOC_NUMBER (R_PPC_REL16, 249) diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h index c768180b4..4644b75c2 100644 --- a/include/elf/ppc64.h +++ b/include/elf/ppc64.h @@ -139,6 +139,9 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type) RELOC_NUMBER (R_PPC64_TLSGD, 107) RELOC_NUMBER (R_PPC64_TLSLD, 108) +/* Support STT_GNU_IFUNC plt calls. */ + RELOC_NUMBER (R_PPC64_IRELATIVE, 248) + /* These are GNU extensions to enable C++ vtable garbage collection. */ RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253) RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254) diff --git a/include/elf/spu.h b/include/elf/spu.h index ef949804e..518d968cb 100644 --- a/include/elf/spu.h +++ b/include/elf/spu.h @@ -42,6 +42,7 @@ START_RELOC_NUMBERS (elf_spu_reloc_type) RELOC_NUMBER (R_SPU_ADDR16X, 14) RELOC_NUMBER (R_SPU_PPU32, 15) RELOC_NUMBER (R_SPU_PPU64, 16) + RELOC_NUMBER (R_SPU_ADD_PIC, 17) END_RELOC_NUMBERS (R_SPU_max) /* Program header extensions */ diff --git a/include/libiberty.h b/include/libiberty.h index e3eca9d75..a7716e4a4 100644 --- a/include/libiberty.h +++ b/include/libiberty.h @@ -1,6 +1,7 @@ /* Function declarations for libiberty. - Copyright 2001, 2002, 2005, 2007 Free Software Foundation, Inc. + Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Note - certain prototypes declared in this header file are for functions whoes implementation copyright does not belong to the @@ -311,6 +312,8 @@ extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC; extern double physmem_total (void); extern double physmem_available (void); +/* Compute the 32-bit CRC of a block of memory. */ +extern unsigned int xcrc32 (const unsigned char *, int, unsigned int); /* These macros provide a K&R/C89/C++-friendly way of allocating structures with nice encapsulation. The XDELETE*() macros are technically