aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--config/ChangeLog11
-rw-r--r--config/tls.m420
-rwxr-xr-xconfigure8
-rw-r--r--configure.ac6
-rwxr-xr-xdjunpack.bat52
-rw-r--r--include/ChangeLog38
-rw-r--r--include/demangle.h4
-rw-r--r--include/dwarf2.h (renamed from include/elf/dwarf2.h)99
-rw-r--r--include/elf/ChangeLog33
-rw-r--r--include/elf/common.h5
-rw-r--r--include/elf/ppc.h17
-rw-r--r--include/elf/ppc64.h3
-rw-r--r--include/elf/spu.h1
-rw-r--r--include/libiberty.h5
15 files changed, 258 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index 348e5b4..29e1b02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-02 Tristan Gingold <gingold@adacore.com>
+
+ * configure.ac: Do not exclude gas for i386-*-darwin.
+ Add a case for x86_64-*-darwin.
+ * configure: Regenerate.
+
2009-06-26 Doug Evans <dje@sebabeach.org>
* Makefile.def (host_modules): Add cgen.
diff --git a/config/ChangeLog b/config/ChangeLog
index d6ff565..96d5f75 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,14 @@
+2009-07-17 Joseph Myers <joseph@codesourcery.com>
+
+ PR other/40784
+ * tls.m4 (GCC_CHECK_TLS): Add extra quoting around argument to
+ AC_LINK_IFELSE.
+
+2009-07-16 Joseph Myers <joseph@codesourcery.com>
+
+ * tls.m4 (GCC_CHECK_TLS): Also test TLS in a shared library when
+ cross-compiling.
+
2009-05-26 Rafael Avila de Espindola <espindola@google.com>
* plugins.m4: New.
diff --git a/config/tls.m4 b/config/tls.m4
index acb123f..0ae6046 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 4d5e06a..394e848 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 e8bcc4b..a594222 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 0000000..5c6e9b2
--- /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 8f85774..c681a33 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,41 @@
+2009-07-24 Ian Lance Taylor <iant@google.com>
+
+ * libiberty.h (crc32): Declare.
+
+2009-07-20 Cary Coutant <ccoutant@google.com>
+ Doug Evans <dje@google.com>
+
+ 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 <jan.kratochvil@redhat.com>
+
+ * demangle.h
+ (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS>)
+ (enum demangle_component_type <DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS>):
+ New.
+
+2009-07-10 Tom Tromey <tromey@redhat.com>
+
+ * dwarf2.h: New file, moved from elf/.
+
+2009-07-09 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
+ and DW_OP_stack_value.
+
+2009-07-09 Tom Tromey <tromey@redhat.com>
+
+ * elf/dwarf2.h: Remove, renaming to...
+ * dwarf2.h: ... this.
+
+2009-06-29 Tom Tromey <tromey@redhat.com>
+
+ * elf/dwarf2.h: New file. Merged with gdb.
+
2009-06-18 Nick Clifton <nickc@redhat.com>
* dis-asm.h (USER_SPECIFIED_MACHINE_TYPE): New value for the flags
diff --git a/include/demangle.h b/include/demangle.h
index eb39c7c..0bcae2f 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
index a7448dc..295abf5 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
+ <http://www.gnu.org/licenses/>. */
/* 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 99805f1..3ef5067 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,36 @@
+2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * common.h (EM_L1OM): New.
+
+2009-07-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * spu.h (R_SPU_ADD_PIC): New.
+
+2009-07-23 Ulrich Drepper <drepper@redhat.com>
+
+ * common.h (STB_GNU_UNIQUE): Define.
+
+2009-07-10 Tom Tromey <tromey@redhat.com>
+
+ * dwarf2.h: Move to `..'.
+
+2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwarf2.h: Just include ../dwarf2.h.
+
+2009-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * 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 <jakub@redhat.com>
+
+ * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
+ and DW_OP_stack_value.
+
2009-06-22 Alan Modra <amodra@bigpond.net.au>
* ppc.h (R_PPC_RELAX*): Define as enum.
diff --git a/include/elf/common.h b/include/elf/common.h
index 75f4eb8..33ec16a 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 8f4ed9e..14c643a 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 c768180..4644b75 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 ef94980..518d968 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 e3eca9d..a7716e4 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