From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9415 invoked by alias); 14 Jul 2012 21:13:07 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 9383 invoked by uid 9674); 14 Jul 2012 21:13:04 -0000 Date: Sat, 14 Jul 2012 21:13:00 -0000 Message-ID: <20120714211304.9368.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-tromey-dwz-multifile-rebase: . X-Git-Refname: refs/heads/archer-tromey-dwz-multifile-rebase X-Git-Reftype: branch X-Git-Oldrev: 4b3c3eb4fc52d4bb0605a21128ed7641be6dae3a X-Git-Newrev: b622df71c61011f99e15128b4846d9bf85a7cad0 X-SW-Source: 2012-q3/txt/msg00007.txt.bz2 List-Id: The branch, archer-tromey-dwz-multifile-rebase has been updated via b622df71c61011f99e15128b4846d9bf85a7cad0 (commit) from 4b3c3eb4fc52d4bb0605a21128ed7641be6dae3a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b622df71c61011f99e15128b4846d9bf85a7cad0 Author: Jan Kratochvil Date: Sat Jul 14 23:10:14 2012 +0200 . ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 269 + bfd/aix386-core.c | 30 +- bfd/archive.c | 41 +- bfd/bfd-in2.h | 3 + bfd/cache.c | 8 +- bfd/cisco-core.c | 42 +- bfd/coff-alpha.c | 184 +- bfd/coff-apollo.c | 13 +- bfd/coff-aux.c | 34 +- bfd/coff-h8300.c | 41 +- bfd/coff-h8500.c | 40 +- bfd/coff-i386.c | 75 +- bfd/coff-i960.c | 104 +- bfd/coff-ia64.c | 14 +- bfd/coff-m68k.c | 106 +- bfd/coff-m88k.c | 43 +- bfd/coff-mcore.c | 73 +- bfd/coff-mips.c | 227 +- bfd/coff-or32.c | 75 +- bfd/coff-ppc.c | 316 +- bfd/coff-rs6000.c | 104 +- bfd/coff-sh.c | 453 +- bfd/coff-sparc.c | 38 +- bfd/coff-stgo32.c | 124 +- bfd/coff-tic30.c | 33 +- bfd/coff-tic4x.c | 85 +- bfd/coff-tic54x.c | 110 +- bfd/coff-tic80.c | 122 +- bfd/coff-w65.c | 64 +- bfd/cofflink.c | 2 +- bfd/cpu-arc.c | 7 +- bfd/cpu-cris.c | 9 +- bfd/cpu-h8500.c | 9 +- bfd/cpu-i960.c | 25 +- bfd/cpu-msp430.c | 40 +- bfd/cpu-ns32k.c | 106 +- bfd/cpu-powerpc.c | 8 +- bfd/cpu-rs6000.c | 10 +- bfd/cpu-tic4x.c | 12 +- bfd/cpu-w65.c | 10 +- bfd/ecoff.c | 6 +- bfd/ecofflink.c | 558 +- bfd/elf-m10200.c | 277 +- bfd/elf-m10300.c | 143 +- bfd/elf-s390-common.c | 243 + bfd/elf-vxworks.c | 13 +- bfd/elf.c | 31 +- bfd/elf32-arm.c | 72 +- bfd/elf32-bfin.c | 166 +- bfd/elf32-cr16.c | 73 +- bfd/elf32-cris.c | 264 +- bfd/elf32-crx.c | 4 +- bfd/elf32-fr30.c | 108 +- bfd/elf32-frv.c | 266 +- bfd/elf32-h8300.c | 11 +- bfd/elf32-hppa.c | 16 +- bfd/elf32-i370.c | 34 +- bfd/elf32-i386.c | 8 +- bfd/elf32-i960.c | 4 +- bfd/elf32-lm32.c | 67 +- bfd/elf32-m32c.c | 34 +- bfd/elf32-m32r.c | 37 +- bfd/elf32-m68hc11.c | 2 +- bfd/elf32-m68hc12.c | 9 +- bfd/elf32-m68hc1x.c | 2 +- bfd/elf32-m68k.c | 181 +- bfd/elf32-mcore.c | 2 +- bfd/elf32-microblaze.c | 34 +- bfd/elf32-ppc.c | 20 +- bfd/elf32-rl78.c | 21 +- bfd/elf32-rx.c | 4 +- bfd/elf32-s390.c | 1084 ++- bfd/elf32-score.c | 36 +- bfd/elf32-score7.c | 36 +- bfd/elf32-sh.c | 78 +- bfd/elf32-tic6x.c | 12 +- bfd/elf32-tilepro.c | 17 +- bfd/elf32-vax.c | 78 +- bfd/elf32-xstormy16.c | 21 +- bfd/elf32-xtensa.c | 33 +- bfd/elf64-alpha.c | 73 +- bfd/elf64-hppa.c | 118 +- bfd/elf64-ia64-vms.c | 101 +- bfd/elf64-mmix.c | 229 +- bfd/elf64-ppc.c | 16 +- bfd/elf64-s390.c | 870 ++- bfd/elf64-sh64.c | 84 +- bfd/elf64-sparc.c | 18 +- bfd/elf64-x86-64.c | 25 +- bfd/elfcode.h | 5 +- bfd/elflink.c | 223 +- bfd/elfnn-ia64.c | 121 +- bfd/elfxx-mips.c | 85 +- bfd/elfxx-sparc.c | 35 +- bfd/elfxx-tilegx.c | 31 +- bfd/hash.c | 4 +- bfd/hp300hpux.c | 108 +- bfd/hppabsd-core.c | 61 +- bfd/hpux-core.c | 4 +- bfd/i386dynix.c | 12 +- bfd/i386linux.c | 102 +- bfd/i386lynx.c | 109 +- bfd/i386mach3.c | 10 +- bfd/i386msdos.c | 5 +- bfd/i386os9k.c | 6 +- bfd/irix-core.c | 10 +- bfd/libbfd.h | 1 + bfd/lynx-core.c | 22 +- bfd/m68klinux.c | 101 +- bfd/mach-o.h | 2 +- bfd/mipsbsd.c | 90 +- bfd/netbsd-core.c | 4 +- bfd/nlm32-i386.c | 4 +- bfd/osf-core.c | 46 +- bfd/pc532-mach.c | 8 +- bfd/pef.c | 7 +- bfd/ppcboot.c | 99 +- bfd/ptrace-core.c | 43 +- bfd/reloc.c | 5 + bfd/reloc16.c | 47 +- bfd/sco5-core.c | 40 +- bfd/section.c | 22 + bfd/som.h | 4 +- bfd/sparclinux.c | 96 +- bfd/sparclynx.c | 27 +- bfd/sunos.c | 98 +- bfd/ticoff.h | 15 +- bfd/trad-core.c | 33 +- bfd/version.h | 2 +- bfd/vms-lib.c | 2 +- bfd/xsym.h | 2 +- gdb/ChangeLog | 540 ++ gdb/MAINTAINERS | 1 + gdb/Makefile.in | 11 +- gdb/NEWS | 17 +- gdb/amd64-linux-tdep.c | 21 +- gdb/amd64-tdep.c | 3 + gdb/arm-linux-nat.c | 15 +- gdb/auto-load.c | 107 +- gdb/ax-gdb.c | 226 +- gdb/ax-gdb.h | 6 + gdb/ax-general.c | 37 + gdb/ax.h | 3 + gdb/breakpoint.c | 407 +- gdb/breakpoint.h | 15 +- gdb/buildsym.c | 248 +- gdb/buildsym.h | 20 +- gdb/c-exp.y | 134 +- gdb/c-lang.c | 1 - gdb/cli/cli-utils.c | 14 + gdb/cli/cli-utils.h | 6 + gdb/common/ax.def | 2 + gdb/common/format.c | 400 ++ gdb/common/format.h | 63 + gdb/common/linux-ptrace.c | 124 + gdb/common/linux-ptrace.h | 1 + gdb/config.in | 3 - gdb/configure | 2 +- gdb/configure.ac | 2 +- gdb/cp-valprint.c | 9 +- gdb/defs.h | 3 + gdb/dictionary.c | 16 + gdb/dictionary.h | 5 + gdb/doc/ChangeLog | 55 + gdb/doc/agentexpr.texi | 17 + gdb/doc/gdb.texinfo | 131 +- gdb/doc/gdbint.texinfo | 16 +- gdb/dwarf2expr.h | 15 +- gdb/dwarf2loc.c | 6 + gdb/dwarf2read.c | 1407 ++++- gdb/eval.c | 17 + gdb/findcmd.c | 8 +- gdb/gdbserver/ChangeLog | 38 + gdb/gdbserver/Makefile.in | 15 +- gdb/gdbserver/ax.c | 155 + gdb/gdbserver/linux-low.c | 9 +- gdb/gdbserver/mem-break.c | 127 + gdb/gdbserver/mem-break.h | 8 + gdb/gdbserver/server.c | 53 +- gdb/gdbtypes.c | 37 + gdb/gdbtypes.h | 20 +- gdb/gnulib/Makefile.in | 22 +- gdb/gnulib/aclocal.m4 | 18 + gdb/gnulib/config.in | 273 + gdb/gnulib/configure | 7146 +++++++++++++++----- gdb/gnulib/configure.ac | 2 +- gdb/gnulib/import/Makefile.am | 410 ++- gdb/gnulib/import/Makefile.in | 506 ++- gdb/gnulib/import/alloca.c | 478 ++ gdb/gnulib/import/alloca.in.h | 56 + gdb/gnulib/import/config.charset | 684 ++ gdb/gnulib/import/dummy.c | 42 - gdb/gnulib/import/fnmatch.c | 350 + gdb/gnulib/import/fnmatch.in.h | 67 + gdb/gnulib/import/fnmatch_loop.c | 1219 ++++ gdb/gnulib/import/localcharset.c | 546 ++ gdb/gnulib/import/localcharset.h | 40 + gdb/gnulib/import/m4/alloca.m4 | 121 + gdb/gnulib/import/m4/codeset.m4 | 23 + gdb/gnulib/import/m4/configmake.m4 | 50 + gdb/gnulib/import/m4/fcntl-o.m4 | 123 + gdb/gnulib/import/m4/fnmatch.m4 | 156 + gdb/gnulib/import/m4/glibc21.m4 | 34 + gdb/gnulib/import/m4/gnulib-cache.m4 | 3 +- gdb/gnulib/import/m4/gnulib-comp.m4 | 93 +- gdb/gnulib/import/m4/localcharset.m4 | 17 + gdb/gnulib/import/m4/locale-fr.m4 | 250 + gdb/gnulib/import/m4/locale-ja.m4 | 136 + gdb/gnulib/import/m4/locale-zh.m4 | 130 + gdb/gnulib/import/m4/mbrtowc.m4 | 572 ++ gdb/gnulib/import/m4/mbsinit.m4 | 51 + gdb/gnulib/import/m4/mbsrtowcs.m4 | 155 + gdb/gnulib/import/m4/mbstate_t.m4 | 41 + gdb/gnulib/import/m4/stdbool.m4 | 100 + gdb/gnulib/import/m4/wchar_h.m4 | 225 + gdb/gnulib/import/m4/wctype_h.m4 | 211 + gdb/gnulib/import/m4/wint_t.m4 | 32 + gdb/gnulib/import/mbrtowc.c | 402 ++ gdb/gnulib/import/mbsinit.c | 61 + gdb/gnulib/import/mbsrtowcs-impl.h | 122 + gdb/gnulib/import/mbsrtowcs-state.c | 37 + gdb/gnulib/import/mbsrtowcs.c | 32 + gdb/gnulib/import/ref-add.sin | 29 + gdb/gnulib/import/ref-del.sin | 24 + gdb/gnulib/import/stdbool.in.h | 121 + gdb/gnulib/import/streq.h | 176 + gdb/gnulib/import/strnlen1.c | 35 + gdb/gnulib/import/strnlen1.h | 40 + gdb/gnulib/import/verify.h | 241 + gdb/gnulib/import/wchar.in.h | 1028 +++ gdb/gnulib/import/wctype.in.h | 498 ++ gdb/i386-tdep.c | 11 + gdb/i386-tdep.h | 8 + gdb/ia64-linux-nat.c | 11 +- gdb/infcmd.c | 2 +- gdb/infrun.c | 34 +- gdb/linespec.c | 48 + gdb/linespec.h | 13 + gdb/linux-nat.c | 53 +- gdb/linux-nat.h | 10 +- gdb/linux-thread-db.c | 135 +- gdb/macrocmd.c | 4 +- gdb/main.c | 28 +- gdb/mi/mi-main.c | 3 +- gdb/parse.c | 173 +- gdb/parser-defs.h | 36 +- gdb/ppc-linux-nat.c | 13 +- gdb/printcmd.c | 341 +- gdb/psympriv.h | 8 +- gdb/psymtab.c | 44 +- gdb/remote.c | 69 + gdb/source.c | 5 +- gdb/stack.c | 2 +- gdb/symtab.c | 180 +- gdb/symtab.h | 7 - gdb/target.c | 4 + gdb/target.h | 10 + gdb/testsuite/ChangeLog | 406 ++ gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb | 80 +- gdb/testsuite/gdb.base/callfuncs.c | 7 + gdb/testsuite/gdb.base/callfuncs.exp | 3 + gdb/testsuite/gdb.base/dprintf.exp | 24 + gdb/testsuite/gdb.base/find.exp | 3 + gdb/testsuite/gdb.base/help.exp | 10 +- gdb/testsuite/gdb.base/info-os.c | 58 +- gdb/testsuite/gdb.base/info-os.exp | 42 +- gdb/testsuite/gdb.base/stale-infcall.c | 7 +- gdb/testsuite/gdb.base/stale-infcall.exp | 18 + gdb/testsuite/gdb.base/whatis.exp | 28 + gdb/testsuite/gdb.cp/abstract-origin.exp | 6 +- gdb/testsuite/gdb.cp/ambiguous.exp | 16 +- gdb/testsuite/gdb.cp/annota2.exp | 14 +- gdb/testsuite/gdb.cp/annota3.exp | 14 +- gdb/testsuite/gdb.cp/anon-ns.exp | 4 +- gdb/testsuite/gdb.cp/anon-struct.exp | 5 +- gdb/testsuite/gdb.cp/anon-union.exp | 16 +- gdb/testsuite/gdb.cp/arg-reference.exp | 12 +- gdb/testsuite/gdb.cp/bool.exp | 12 +- gdb/testsuite/gdb.cp/breakpoint.exp | 16 +- gdb/testsuite/gdb.cp/bs15503.exp | 12 +- gdb/testsuite/gdb.cp/call-c.exp | 20 +- gdb/testsuite/gdb.cp/casts.exp | 15 +- gdb/testsuite/gdb.cp/class2.exp | 12 +- gdb/testsuite/gdb.cp/classes.exp | 20 +- gdb/testsuite/gdb.cp/cmpd-minsyms.exp | 5 +- gdb/testsuite/gdb.cp/converts.exp | 4 +- gdb/testsuite/gdb.cp/cp-relocate.exp | 5 +- gdb/testsuite/gdb.cp/cpcompletion.exp | 21 +- gdb/testsuite/gdb.cp/cpexprs.exp | 15 +- gdb/testsuite/gdb.cp/cplabel.exp | 4 +- gdb/testsuite/gdb.cp/cplusfuncs.exp | 21 +- gdb/testsuite/gdb.cp/ctti.exp | 44 +- gdb/testsuite/gdb.cp/derivation.exp | 14 +- gdb/testsuite/gdb.cp/destrprint.exp | 6 +- gdb/testsuite/gdb.cp/dispcxx.exp | 4 +- gdb/testsuite/gdb.cp/exception.exp | 17 +- gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp | 6 +- gdb/testsuite/gdb.cp/extern-c.exp | 16 +- gdb/testsuite/gdb.cp/formatted-ref.exp | 14 +- gdb/testsuite/gdb.cp/fpointer.exp | 4 +- gdb/testsuite/gdb.cp/gdb1355.exp | 16 +- gdb/testsuite/gdb.cp/gdb2384.exp | 15 +- gdb/testsuite/gdb.cp/gdb2495.exp | 16 +- gdb/testsuite/gdb.cp/hang.exp | 23 +- gdb/testsuite/gdb.cp/infcall-dlopen.exp | 14 +- gdb/testsuite/gdb.cp/inherit.exp | 22 +- gdb/testsuite/gdb.cp/koenig.exp | 4 +- gdb/testsuite/gdb.cp/local.exp | 17 +- gdb/testsuite/gdb.cp/m-data.exp | 17 +- gdb/testsuite/gdb.cp/m-static.exp | 30 +- gdb/testsuite/gdb.cp/mb-ctor.exp | 14 +- gdb/testsuite/gdb.cp/mb-inline.exp | 31 +- gdb/testsuite/gdb.cp/mb-templates.exp | 12 +- gdb/testsuite/gdb.cp/member-ptr.exp | 14 +- gdb/testsuite/gdb.cp/meth-typedefs.exp | 3 +- gdb/testsuite/gdb.cp/method.exp | 17 +- gdb/testsuite/gdb.cp/method2.exp | 4 +- gdb/testsuite/gdb.cp/minsym-fallback.exp | 12 +- gdb/testsuite/gdb.cp/misc.exp | 24 +- gdb/testsuite/gdb.cp/namespace-enum.exp | 25 +- gdb/testsuite/gdb.cp/namespace-nested-import.exp | 15 +- gdb/testsuite/gdb.cp/namespace.exp | 30 +- gdb/testsuite/gdb.cp/nextoverthrow.exp | 4 +- gdb/testsuite/gdb.cp/no-dmgl-verbose.exp | 9 +- gdb/testsuite/gdb.cp/nsdecl.exp | 17 +- gdb/testsuite/gdb.cp/nsimport.exp | 15 +- gdb/testsuite/gdb.cp/nsnested.exp | 5 +- gdb/testsuite/gdb.cp/nsnoimports.exp | 4 +- gdb/testsuite/gdb.cp/nsrecurs.exp | 19 +- gdb/testsuite/gdb.cp/nsstress.exp | 17 +- gdb/testsuite/gdb.cp/nsusing.exp | 19 +- gdb/testsuite/gdb.cp/operator.exp | 4 +- gdb/testsuite/gdb.cp/oranking.exp | 4 +- gdb/testsuite/gdb.cp/overload-const.exp | 5 +- gdb/testsuite/gdb.cp/overload.exp | 14 +- gdb/testsuite/gdb.cp/ovldbreak.exp | 5 +- gdb/testsuite/gdb.cp/ovsrch.exp | 11 +- gdb/testsuite/gdb.cp/paren-type.exp | 3 +- gdb/testsuite/gdb.cp/pass-by-ref.exp | 14 +- gdb/testsuite/gdb.cp/pr-1023.exp | 16 +- gdb/testsuite/gdb.cp/pr-1210.exp | 14 +- gdb/testsuite/gdb.cp/pr-574.exp | 17 +- gdb/testsuite/gdb.cp/pr10687.exp | 6 +- gdb/testsuite/gdb.cp/pr10728.exp | 18 +- gdb/testsuite/gdb.cp/pr12028.exp | 4 +- gdb/testsuite/gdb.cp/pr9067.exp | 14 +- gdb/testsuite/gdb.cp/pr9167.exp | 6 +- gdb/testsuite/gdb.cp/pr9631.exp | 16 +- gdb/testsuite/gdb.cp/printmethod.exp | 17 +- gdb/testsuite/gdb.cp/psmang.exp | 30 +- gdb/testsuite/gdb.cp/psymtab-parameter.exp | 10 +- gdb/testsuite/gdb.cp/ptype-cv-cp.exp | 3 +- gdb/testsuite/gdb.cp/re-set-overloaded.exp | 12 +- gdb/testsuite/gdb.cp/readnow-language.exp | 9 +- gdb/testsuite/gdb.cp/ref-params.exp | 16 +- gdb/testsuite/gdb.cp/ref-types.exp | 15 +- gdb/testsuite/gdb.cp/rtti.exp | 37 +- gdb/testsuite/gdb.cp/shadow.exp | 17 +- gdb/testsuite/gdb.cp/smartp.exp | 4 +- gdb/testsuite/gdb.cp/static-method.exp | 3 +- gdb/testsuite/gdb.cp/static-print-quit.exp | 9 +- gdb/testsuite/gdb.cp/temargs.exp | 3 +- gdb/testsuite/gdb.cp/templates.exp | 23 +- gdb/testsuite/gdb.cp/try_catch.exp | 17 +- gdb/testsuite/gdb.cp/typedef-operator.exp | 5 +- gdb/testsuite/gdb.cp/userdef.exp | 16 +- gdb/testsuite/gdb.cp/virtbase.exp | 14 +- gdb/testsuite/gdb.cp/virtfunc.exp | 18 +- gdb/testsuite/gdb.cp/virtfunc2.exp | 14 +- gdb/testsuite/gdb.dwarf2/dup-psym.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-basic.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-compressed.exp | 18 +- gdb/testsuite/gdb.dwarf2/dw2-const.exp | 13 +- gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-intercu.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-intermix.exp | 16 +- .../gdb.dwarf2/dw2-linkage-name-trust.exp | 11 +- gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S | 108 + .../{dw2-const.exp => dw2-minsym-in-cu.exp} | 26 +- gdb/testsuite/gdb.dwarf2/dw2-producer.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp | 12 +- gdb/testsuite/gdb.dwarf2/dw2-restore.exp | 9 +- gdb/testsuite/gdb.dwarf2/dw2-strp.exp | 16 +- gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-reread.S | 457 ++ .../{dw2-cu-size.exp => fission-reread.exp} | 32 +- gdb/testsuite/gdb.dwarf2/mac-fileno.exp | 16 +- gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp | 21 +- gdb/testsuite/gdb.mi/gdb2549.exp | 7 +- gdb/testsuite/gdb.mi/gdb669.exp | 6 +- gdb/testsuite/gdb.mi/gdb701.exp | 5 +- gdb/testsuite/gdb.mi/gdb792.exp | 4 +- gdb/testsuite/gdb.mi/mi-async.exp | 7 +- gdb/testsuite/gdb.mi/mi-basics.exp | 6 +- gdb/testsuite/gdb.mi/mi-break.exp | 7 +- gdb/testsuite/gdb.mi/mi-cli.exp | 7 +- gdb/testsuite/gdb.mi/mi-console.exp | 7 +- gdb/testsuite/gdb.mi/mi-disassemble.exp | 7 +- gdb/testsuite/gdb.mi/mi-eval.exp | 7 +- gdb/testsuite/gdb.mi/mi-file-transfer.exp | 5 +- gdb/testsuite/gdb.mi/mi-file.exp | 7 +- .../gdb.mi/mi-inheritance-syntax-error.exp | 4 +- gdb/testsuite/gdb.mi/mi-logging.exp | 7 +- gdb/testsuite/gdb.mi/mi-nonstop-exit.exp | 6 +- gdb/testsuite/gdb.mi/mi-nonstop.exp | 6 +- gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp | 6 +- gdb/testsuite/gdb.mi/mi-nsintrall.exp | 6 +- gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 6 +- gdb/testsuite/gdb.mi/mi-nsthrexec.exp | 6 +- gdb/testsuite/gdb.mi/mi-pending.exp | 10 +- gdb/testsuite/gdb.mi/mi-pthreads.exp | 6 +- gdb/testsuite/gdb.mi/mi-read-memory.exp | 7 +- gdb/testsuite/gdb.mi/mi-regs.exp | 7 +- gdb/testsuite/gdb.mi/mi-return.exp | 7 +- gdb/testsuite/gdb.mi/mi-reverse.exp | 345 +- gdb/testsuite/gdb.mi/mi-simplerun.exp | 7 +- gdb/testsuite/gdb.mi/mi-solib.exp | 12 +- gdb/testsuite/gdb.mi/mi-stack.exp | 7 +- gdb/testsuite/gdb.mi/mi-stepi.exp | 7 +- gdb/testsuite/gdb.mi/mi-stepn.exp | 7 +- gdb/testsuite/gdb.mi/mi-syn-frame.exp | 7 +- gdb/testsuite/gdb.mi/mi-until.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-block.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-child-f.exp | 5 +- gdb/testsuite/gdb.mi/mi-var-child.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-cmd.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-cp.exp | 4 +- gdb/testsuite/gdb.mi/mi-var-display.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-invalidate.exp | 15 +- gdb/testsuite/gdb.mi/mi-var-rtti.exp | 7 +- gdb/testsuite/gdb.mi/mi-watch-nonstop.exp | 4 +- gdb/testsuite/gdb.mi/mi-watch.exp | 7 +- gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp | 4 +- gdb/testsuite/gdb.mi/mi2-basics.exp | 7 +- gdb/testsuite/gdb.mi/mi2-break.exp | 7 +- gdb/testsuite/gdb.mi/mi2-cli.exp | 7 +- gdb/testsuite/gdb.mi/mi2-console.exp | 7 +- gdb/testsuite/gdb.mi/mi2-disassemble.exp | 7 +- gdb/testsuite/gdb.mi/mi2-eval.exp | 7 +- gdb/testsuite/gdb.mi/mi2-file.exp | 7 +- gdb/testsuite/gdb.mi/mi2-pthreads.exp | 6 +- gdb/testsuite/gdb.mi/mi2-read-memory.exp | 7 +- gdb/testsuite/gdb.mi/mi2-regs.exp | 7 +- gdb/testsuite/gdb.mi/mi2-return.exp | 7 +- gdb/testsuite/gdb.mi/mi2-simplerun.exp | 7 +- gdb/testsuite/gdb.mi/mi2-stack.exp | 7 +- gdb/testsuite/gdb.mi/mi2-stepi.exp | 7 +- gdb/testsuite/gdb.mi/mi2-syn-frame.exp | 7 +- gdb/testsuite/gdb.mi/mi2-until.exp | 7 +- gdb/testsuite/gdb.mi/mi2-var-block.exp | 7 +- gdb/testsuite/gdb.mi/mi2-var-child.exp | 7 +- gdb/testsuite/gdb.mi/mi2-var-cmd.exp | 7 +- gdb/testsuite/gdb.mi/mi2-var-display.exp | 7 +- gdb/testsuite/gdb.mi/mi2-watch.exp | 7 +- gdb/testsuite/gdb.reverse/break-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/consecutive-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/finish-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/i386-precsave.exp | 7 +- .../gdb.reverse/machinestate-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/sigall-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/solib-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/step-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/until-precsave.exp | 7 +- gdb/testsuite/gdb.reverse/watch-precsave.exp | 7 +- gdb/testsuite/gdb.threads/gcore-thread.exp | 50 +- gdb/testsuite/gdb.trace/disconnected-tracing.exp | 2 +- gdb/testsuite/lib/gdb.exp | 84 +- gdb/tracepoint.c | 2 +- gdb/utils.c | 44 + gdb/version.in | 2 +- include/ChangeLog | 9 + include/elf/s390.h | 1 + include/filenames.h | 6 + include/opcode/ChangeLog | 4 + include/opcode/mips.h | 2 +- include/opcode/xgate.h | 2 +- libiberty/ChangeLog | 4 + libiberty/filename_cmp.c | 49 + opcodes/ChangeLog | 9 + opcodes/i386-opc.tbl | 2 +- opcodes/i386-tbl.h | 2 +- opcodes/mips-dis.c | 3 +- opcodes/xgate-dis.c | 11 +- opcodes/xgate-opc.c | 5 +- 485 files changed, 27672 insertions(+), 9931 deletions(-) create mode 100644 bfd/elf-s390-common.c create mode 100644 gdb/common/format.c create mode 100644 gdb/common/format.h create mode 100644 gdb/gnulib/import/alloca.c create mode 100644 gdb/gnulib/import/alloca.in.h create mode 100644 gdb/gnulib/import/config.charset delete mode 100644 gdb/gnulib/import/dummy.c create mode 100644 gdb/gnulib/import/fnmatch.c create mode 100644 gdb/gnulib/import/fnmatch.in.h create mode 100644 gdb/gnulib/import/fnmatch_loop.c create mode 100644 gdb/gnulib/import/localcharset.c create mode 100644 gdb/gnulib/import/localcharset.h create mode 100644 gdb/gnulib/import/m4/alloca.m4 create mode 100644 gdb/gnulib/import/m4/codeset.m4 create mode 100644 gdb/gnulib/import/m4/configmake.m4 create mode 100644 gdb/gnulib/import/m4/fcntl-o.m4 create mode 100644 gdb/gnulib/import/m4/fnmatch.m4 create mode 100644 gdb/gnulib/import/m4/glibc21.m4 create mode 100644 gdb/gnulib/import/m4/localcharset.m4 create mode 100644 gdb/gnulib/import/m4/locale-fr.m4 create mode 100644 gdb/gnulib/import/m4/locale-ja.m4 create mode 100644 gdb/gnulib/import/m4/locale-zh.m4 create mode 100644 gdb/gnulib/import/m4/mbrtowc.m4 create mode 100644 gdb/gnulib/import/m4/mbsinit.m4 create mode 100644 gdb/gnulib/import/m4/mbsrtowcs.m4 create mode 100644 gdb/gnulib/import/m4/mbstate_t.m4 create mode 100644 gdb/gnulib/import/m4/stdbool.m4 create mode 100644 gdb/gnulib/import/m4/wchar_h.m4 create mode 100644 gdb/gnulib/import/m4/wctype_h.m4 create mode 100644 gdb/gnulib/import/m4/wint_t.m4 create mode 100644 gdb/gnulib/import/mbrtowc.c create mode 100644 gdb/gnulib/import/mbsinit.c create mode 100644 gdb/gnulib/import/mbsrtowcs-impl.h create mode 100644 gdb/gnulib/import/mbsrtowcs-state.c create mode 100644 gdb/gnulib/import/mbsrtowcs.c create mode 100644 gdb/gnulib/import/ref-add.sin create mode 100644 gdb/gnulib/import/ref-del.sin create mode 100644 gdb/gnulib/import/stdbool.in.h create mode 100644 gdb/gnulib/import/streq.h create mode 100644 gdb/gnulib/import/strnlen1.c create mode 100644 gdb/gnulib/import/strnlen1.h create mode 100644 gdb/gnulib/import/verify.h create mode 100644 gdb/gnulib/import/wchar.in.h create mode 100644 gdb/gnulib/import/wctype.in.h create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S copy gdb/testsuite/gdb.dwarf2/{dw2-const.exp => dw2-minsym-in-cu.exp} (61%) create mode 100644 gdb/testsuite/gdb.dwarf2/fission-reread.S copy gdb/testsuite/gdb.dwarf2/{dw2-cu-size.exp => fission-reread.exp} (56%) First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9ace5e6..da9e6a2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,272 @@ +2012-07-13 Andreas Krebbel + + * elf64-s390.c: Include elf-s390-common.c. + (R_390_IRELATIVE): New reloc. + (elf_s390_reloc_type_lookup): Support R_390_IRELATIVE. + (RELA_ENTRY_SIZE): New macro. + (elf_s390_link_hash_entry): New fields ifunc_resolver_address and + *ifunc_resolver_section. + (struct plt_entry): New struct. + (struct elf_s390_obj_tdata): New field local_plt. + (elf_s390_local_plt): New macro. + (struct elf_s390_link_hash_table): New field irelifunc. + (ELF64): New macro. + (link_hash_newfunc): Initialize new fields. + (elf_s390_check_relocs): Handle IFUNC symbols. + (elf_s390_adjust_dynamic_symbol): Don't do anything for IFUNC + symbols. + (allocate_dynrelocs): Call s390_elf_allocate_ifunc_dyn_relocs for + IFUNC symbols. + (elf_s390_size_dynamic_sections): Handle IFUNC symbols. + (elf_s390_relocate_section): Likewise. + (elf_s390_finish_dynamic_symbol): Likewise. + (elf_s390_finish_dynamic_sections): Handle local IFUNC symbols. + (elf_s390_finish_ifunc_symbol): New function. + (elf_s390_gc_sweep_hook): Handle local plt entries. + (elf_backend_add_symbol_hook): Define. + * elf32-s390.c: See elf64-s390.c changes. + * elf-s390-common.c: New file. + * bfd-in2.h (BFD_RELOC_390_IRELATIVE): New enum field. + * libbfd.h (BFD_RELOC_390_IRELATIVE): New entry for + BFD_RELOC_390_IRELATIVE. + * reloc.c (BFD_RELOC_390_IRELATIVE): Document new relocation. + +2012-07-13 Nick Clifton + + * aix386-core.c: Remove use of PTR and PARAMS macros. + * archive.c: Likewise. + * cache.c: Likewise. + * cisco-core.c: Likewise. + * coff-alpha.c: Likewise. + * coff-apollo.c: Likewise. + * coff-aux.c: Likewise. + * coff-h8300.c: Likewise. + * coff-h8500.c: Likewise. + * coff-i386.c: Likewise. + * coff-i960.c: Likewise. + * coff-ia64.c: Likewise. + * coff-m68k.c: Likewise. + * coff-m88k.c: Likewise. + * coff-mcore.c: Likewise. + * coff-mips.c: Likewise. + * coff-or32.c: Likewise. + * coff-ppc.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-sh.c: Likewise. + * coff-sparc.c: Likewise. + * coff-stgo32.c: Likewise. + * coff-tic30.c: Likewise. + * coff-tic4x.c: Likewise. + * coff-tic54x.c: Likewise. + * coff-tic80.c: Likewise. + * coff-w65.c: Likewise. + * cofflink.c: Likewise. + * cpu-arc.c: Likewise. + * cpu-cris.c: Likewise. + * cpu-h8500.c: Likewise. + * cpu-i960.c: Likewise. + * cpu-msp430.c: Likewise. + * cpu-ns32k.c: Likewise. + * cpu-powerpc.c: Likewise. + * cpu-rs6000.c: Likewise. + * cpu-tic4x.c: Likewise. + * cpu-w65.c: Likewise. + * ecoff.c: Likewise. + * ecofflink.c: Likewise. + * elf-m10200.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-crx.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-h8300.c: Likewise. + * elf32-i960.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-m68hc11.c: Likewise. + * elf32-m68hc12.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-mcore.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-rx.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-vax.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-mmix.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-sparc.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * hash.c: Likewise. + * hp300hpux.c: Likewise. + * hppabsd-core.c: Likewise. + * hpux-core.c: Likewise. + * i386dynix.c: Likewise. + * i386linux.c: Likewise. + * i386lynx.c: Likewise. + * i386mach3.c: Likewise. + * i386msdos.c: Likewise. + * i386os9k.c: Likewise. + * irix-core.c: Likewise. + * lynx-core.c: Likewise. + * m68klinux.c: Likewise. + * mach-o.h: Likewise. + * mipsbsd.c: Likewise. + * netbsd-core.c: Likewise. + * nlm32-i386.c: Likewise. + * osf-core.c: Likewise. + * pc532-mach.c: Likewise. + * pef.c: Likewise. + * ppcboot.c: Likewise. + * ptrace-core.c: Likewise. + * reloc16.c: Likewise. + * sco5-core.c: Likewise. + * som.h: Likewise. + * sparclinux.c: Likewise. + * sparclynx.c: Likewise. + * ticoff.h: Likewise. + * trad-core.c: Likewise. + * vms-lib.c: Likewise. + * xsym.h: Likewise. + +2012-07-09 Alan Modra + + PR ld/14323 + * elflink.c (elf_sort_symbol): Sort by size too. + (elf_link_add_object_symbols ): Simplify binary search. + Do not depend on ordering of symbol aliases. Match largest size. + +2012-07-03 H.J. Lu + + * elf.c (assign_section_numbers): Check if number of sections + >= SHN_LORESERVE. + * elfcode.h (elf_object_p): Likewise. + +2012-07-03 Nick Clifton + + * archive.c (bsd_write_armap): Catch attempts to create an archive + with indicies bigger than 4Gb. + (coff_write_armap): Likewise. + +2012-07-03 H.J. Lu + + PR binutils/14319 + * elf.c (_bfd_elf_make_section_from_shdr): Don't compress empty + debug section. + +2012-07-03 H.J. Lu + + PR ld/3351 + * elflink.c (_bfd_elf_update_dynamic_flags): New. + (_bfd_elf_merge_symbol): Update both real and indirect symbol + dynamic flags. + (_bfd_elf_add_default_symbol): Make the real symbol dynamic if + the indirect symbol is defined in a shared library. + (elf_link_add_object_symbols): Likewise. If the indirect + symbol has been forced local, don't make the real symbol + dynamic. + (elf_link_check_versioned_symbol): Check indirect symbol. + (elf_link_output_extsym): Use real symbol definition when + reporting indirect symbol error. Check version info for + dynamic versioned symbol. + +2012-07-03 Alan Modra + + PR ld/14207 + * elf.c (assign_file_positions_for_load_sections): Remove assertions + that only PT_LOAD headers include file header and section headers. + (assign_file_positions_for_non_load_sections): Similarly don't + assert PT_GNU_RELRO header does not include file and section headers. + Compare first section vma rather than PT_LOAD p_vaddr against + relro_start when looking for PT_LOAD covering PT_GNU_RELRO. Replace + abort with assertion. + +2012-07-02 Alan Modra + + * elf32-m32c.c (m32c_elf_check_relocs): Use bfd_make_section + "anyway" variant when creating .plt. + (m32c_elf_relax_plt_section): Remove redundant test and unused param. + (m32c_elf_relax_section): Test SEC_LINKER_CREATED before calling + m32c_elf_relax_plt_section. + * elfxx-mips.c (mips_elf_create_got_section): Use make anyway variant + when creating .got and .got.plt. + (_bfd_mips_elf_final_link): Likewise for .rtproc, and use + bfd_get_linker_section. + * sunos.c: Similarly throughout. + +2012-07-01 Andreas Schwab + + * elf.c (_bfd_elf_make_section_from_shdr): Fix typo in error + message. + +2012-06-29 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_relocate_section): Return FALSE + on unresolvable relocation. + +2012-06-29 H.J. Lu + + * archive.c (_bfd_compute_and_write_armap): Simplify global + symbol handling. + +2012-06-29 Nick Clifton + + PR ld/14189 + * elf32-arm.c (elf32_arm_check_relocs): Do not increment refcount + for locally bound symbols. + +2012-06-29 Alan Modra + + * section.c (bfd_get_linker_section): New function. + * elf32-arm.c: When retrieving SEC_LINKER_CREATED sections, use + the above throughout rather than bfd_get_section_by_name. Use + bfd_make_section_anyway rather than bfd_make_section when creating + them. + * elf32-bfin.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-lm32.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-sh.c: Likewise. + * elf32-tic6x.c: Likewise. + * elf32-tilepro.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-xstormy16.c: Likewise. + * elf32-xtensa.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-hppa.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-sh64.c: Likewise. + * elf64-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c: Likewise. + * elflink.c: Likewise. + * elf-vxworks.c: Likewise. + * elf-m10300.c: Likewise. Also make use of htab plt, got and + gotplt shortcuts. + * bfd-in2.h: Regenerate. + * elf32-lm32.c (lm32_elf_check_relocs): Use the correct bfd when + calling create_rofixup_section. + * elflink.c (bfd_elf_final_link): Simplify test for .dynstr. + 2012-06-29 Alan Modra * elf32-sh.c (sh_elf_create_dynamic_sections): Don't create .rela diff --git a/bfd/aix386-core.c b/bfd/aix386-core.c index 121d623..947ab80 100644 --- a/bfd/aix386-core.c +++ b/bfd/aix386-core.c @@ -2,7 +2,7 @@ This was based on trad-core.c, which was written by John Gilmore of Cygnus Support. Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1996, 1998, 1999, 2000, - 2001, 2002, 2004, 2005, 2006, 2007, 2010, 2011 + 2001, 2002, 2004, 2005, 2006, 2007, 2010, 2011, 2012 Free Software Foundation, Inc. Written by Minh Tran-Le . Converted to back end form by Ian Lance Taylor . @@ -59,32 +59,31 @@ (((bfd)->tdata.trad_core_data)->reg2_section) /* These are stored in the bfd's tdata. */ -struct trad_core_struct { +struct trad_core_struct +{ struct corehdr *hdr; /* core file header */ asection *reg_section; asection *reg2_section; asection *sections[MAX_CORE_SEGS]; }; -static void swap_abort PARAMS ((void)); - static const bfd_target * -aix386_core_file_p (abfd) - bfd *abfd; +aix386_core_file_p (bfd *abfd) { int i, n; unsigned char longbuf[4]; /* Raw bytes of various header fields */ bfd_size_type core_size = sizeof (struct corehdr); bfd_size_type amt; struct corehdr *core; - struct mergem { + struct mergem + { struct trad_core_struct coredata; struct corehdr internal_core; } *mergem; flagword flags; amt = sizeof (longbuf); - if (bfd_bread ((PTR) longbuf, amt, abfd) != amt) + if (bfd_bread (longbuf, amt, abfd) != amt) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); @@ -104,7 +103,7 @@ aix386_core_file_p (abfd) core = &mergem->internal_core; - if ((bfd_bread ((PTR) core, core_size, abfd)) != core_size) + if ((bfd_bread (core, core_size, abfd)) != core_size) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); @@ -196,15 +195,13 @@ aix386_core_file_p (abfd) } static char * -aix386_core_file_failing_command (abfd) - bfd *abfd; +aix386_core_file_failing_command (bfd *abfd) { return core_hdr (abfd)->cd_comm; } static int -aix386_core_file_failing_signal (abfd) - bfd *abfd; +aix386_core_file_failing_signal (bfd *abfd) { return core_hdr (abfd)->cd_cursig; } @@ -216,7 +213,7 @@ aix386_core_file_failing_signal (abfd) /* If somebody calls any byte-swapping routines, shoot them. */ static void -swap_abort () +swap_abort (void) { /* This way doesn't require any declaration for ANSI to fuck up. */ abort (); @@ -229,7 +226,8 @@ swap_abort () #define NO_PUT64 ((void (*) (bfd_uint64_t, void *)) swap_abort) #define NO_GETS64 ((bfd_int64_t (*) (const void *)) swap_abort) -const bfd_target aix386_core_vec = { +const bfd_target aix386_core_vec = +{ "aix386-core", bfd_target_unknown_flavour, BFD_ENDIAN_BIG, /* target byte order */ @@ -269,5 +267,5 @@ const bfd_target aix386_core_vec = { NULL, - (PTR) 0 + NULL }; diff --git a/bfd/archive.c b/bfd/archive.c index 26547ba..fe57755 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -147,7 +147,8 @@ extern int errno; it's generally short enough to search linearly. Note that the pointers here point to the front of the ar_hdr, not to the front of the contents! */ -struct ar_cache { +struct ar_cache +{ file_ptr ptr; bfd *arbfd; }; @@ -168,6 +169,7 @@ _bfd_ar_spacepad (char *p, size_t n, const char *fmt, long val) { static char buf[20]; size_t len; + snprintf (buf, sizeof (buf), fmt, val); len = strlen (buf); if (len < n) @@ -296,6 +298,7 @@ _bfd_look_for_bfd_in_cache (bfd *arch_bfd, file_ptr filepos) { htab_t hash_table = bfd_ardata (arch_bfd)->cache; struct ar_cache m; + m.ptr = filepos; if (hash_table) @@ -311,7 +314,7 @@ _bfd_look_for_bfd_in_cache (bfd *arch_bfd, file_ptr filepos) } static hashval_t -hash_file_ptr (const PTR p) +hash_file_ptr (const void * p) { return (hashval_t) (((struct ar_cache *) p)->ptr); } @@ -319,7 +322,7 @@ hash_file_ptr (const PTR p) /* Returns non-zero if P1 and P2 are equal. */ static int -eq_file_ptr (const PTR p1, const PTR p2) +eq_file_ptr (const void * p1, const void * p2) { struct ar_cache *arc1 = (struct ar_cache *) p1; struct ar_cache *arc2 = (struct ar_cache *) p2; @@ -2314,10 +2317,10 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength) flagword flags = (syms[src_count])->flags; asection *sec = syms[src_count]->section; - if ((flags & BSF_GLOBAL - || flags & BSF_WEAK - || flags & BSF_INDIRECT - || flags & BSF_GNU_UNIQUE + if (((flags & (BSF_GLOBAL + | BSF_WEAK + | BSF_INDIRECT + | BSF_GNU_UNIQUE)) != 0 || bfd_is_com_section (sec)) && ! bfd_is_und_section (sec)) { @@ -2405,6 +2408,9 @@ bsd_write_armap (bfd *arch, unsigned int count; struct ar_hdr hdr; long uid, gid; + file_ptr max_first_real = 1; + + max_first_real <<= 31; firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG; @@ -2463,6 +2469,15 @@ bsd_write_armap (bfd *arch, while (current != map[count].u.abfd); } + /* The archive file format only has 4 bytes to store the offset + of the member. Check to make sure that firstreal has not grown + too big. */ + if (firstreal >= max_first_real) + { + bfd_set_error (bfd_error_file_truncated); + return FALSE; + } + last_elt = current; H_PUT_32 (arch, map[count].namidx, buf); H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); @@ -2574,7 +2589,7 @@ coff_write_armap (bfd *arch, unsigned int ranlibsize = (symbol_count * 4) + 4; unsigned int stringsize = stridx; unsigned int mapsize = stringsize + ranlibsize; - unsigned int archive_member_file_ptr; + file_ptr archive_member_file_ptr; bfd *current = arch->archive_head; unsigned int count; struct ar_hdr hdr; @@ -2625,7 +2640,15 @@ coff_write_armap (bfd *arch, while (count < symbol_count && map[count].u.abfd == current) { - if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr)) + unsigned int offset = (unsigned int) archive_member_file_ptr; + + /* Catch an attempt to grow an archive past its 4Gb limit. */ + if (archive_member_file_ptr != (file_ptr) offset) + { + bfd_set_error (bfd_error_file_truncated); + return FALSE; + } + if (!bfd_write_bigendian_4byte_int (arch, offset)) return FALSE; count++; } diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8798ae4..c1c5e90 100644 --- a/bfd/bfd-in2.h hooks/post-receive -- Repository for Project Archer.