From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68803 invoked by alias); 7 May 2017 20:22:08 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 68782 invoked by uid 9674); 7 May 2017 20:22:07 -0000 Date: Sun, 07 May 2017 20:22:00 -0000 Message-ID: <20170507202207.68692.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] users/jkratoch/indexcxx-nameswrite-namesread: Merge branch 'indexcxx-nameswrite' into indexcxx-nameswrite-namesread X-Git-Refname: refs/heads/users/jkratoch/indexcxx-nameswrite-namesread X-Git-Reftype: branch X-Git-Oldrev: 8fd75b5f6edf3f1ad68acb903efa092869f7b096 X-Git-Newrev: be1ab5123a19ccec14ba6e580ba4b5d354160abc X-SW-Source: 2017-q2/txt/msg00020.txt.bz2 List-Id: The branch, users/jkratoch/indexcxx-nameswrite-namesread has been updated via be1ab5123a19ccec14ba6e580ba4b5d354160abc (commit) via bea3feb07e43d6667acbbd1eeba28c3b7d6f5323 (commit) via c94d10d4717ce8fe192d0152ce131771db89af4e (commit) via a089940ea585bd0e7221539b3812929633a4b7ef (commit) via bdbdd8567e59bc6d54749dbfcc001502fffe18a9 (commit) via 618a737b59008a0153f6454ae9a6d42814384828 (commit) via e50f25ecdb24505bccb695e6c63add45f0032b9a (commit) via 21ea5acdd1bcfe89984b16b5bac730050c5cf05e (commit) via 7b937cba77df45962ced7e0e03802561beab549f (commit) via 7ed1acafa0b5d135342f9dcc0eb0387dff95005a (commit) via e13cb306f099a8cd450c9fba0dfa22521aaa3c95 (commit) via 323449189c3474d1ab352b49172f4f59670ea73e (commit) via d512d31c395e3c45f83778e01b9824efe45cac5f (commit) via 5ed8105e02d0c6648b7faea9f4e941237b932717 (commit) via f6223dbb50b5d8780df633633adf0742c662173d (commit) via 3c3ae77e68a9032ef9f174bf6b1cc992b6a4cb35 (commit) via f91d48deb29d9e6f4b530f586db0140943ed0d83 (commit) via 45eba0ab7d26435121facb68847fbd0cd4a313c1 (commit) via b660e9eb7a45cfe99e719c5d16af35913a2fdc96 (commit) via 8293e73636484b403150ae94a93619779bcbae96 (commit) via 8507b6e79772ffeb83a0142d12a63e02dcc44562 (commit) via 90cef2edd256c48d2ff9a03d4a6c1bcb575db07c (commit) via b22908217d8593185af3f76fab6f0f01457b0600 (commit) via f81fdd350e688bd0216486b30884a52ebc4f32b8 (commit) via 35837774a77d641ba3ae75930a7b08ed853759ad (commit) via c94fee56f5f8e5e26a115a1ca155ddada9d43b31 (commit) via e78bb25cb636a331f27e9cc4cba5522939567695 (commit) via 35387fdec5e10b281c218c9dc4f3dc33c3fcc522 (commit) via 82d808edbc7a06f706b82064cec6c3ed88f0c4be (commit) via 3d8505928a06e00b05bb162c1ad0dd612c1c16af (commit) via 43e379d74c994fe431368b5f25f778bf601a2981 (commit) via 763a5fa4f330d6d3859c94a69ba1fcab09330cf9 (commit) via 640226f048b67d79da85742728e40114c9ee5da0 (commit) via 2ecf0cc317d065cfeb960c61688897351521bce0 (commit) via d17f7b365cf3896b3129b9077d55b3154fc43131 (commit) via b560ebd6605503276e09b2ef75c94e1d10f176f2 (commit) via f2f46dfcdafe6bd32152d80b5e832d2fab4e6900 (commit) via a0ff9e1ad221c11f58a9d8d12a84c21579132d85 (commit) via ea480a306d46efe3dd1839618137f0e73a80e9b3 (commit) via 1395c6ce47510babad3dcb9892f6f2517a3f2b59 (commit) via 73ec947d59c511411377ad51ef792a5fcdd3f0cc (commit) via a4ddc54ec1cd187c844ca631fe0315bf1d78e96f (commit) via 39ff1b79f687b65f4144ddb379f22587003443fb (commit) via d050f7d7f474c7e3ba26902a9cbb185910921a11 (commit) via 14f819c8c5f7d080e5eea9256f0ec7453aac750e (commit) via 0ed5da759e34c6e85cb2a9ea0fdc7b680f897a81 (commit) via 913aeadd9d6b8bdea5131b16dc7ede395097656d (commit) via a3be24ad59d683d1b08df28e093739743a7cf256 (commit) via ae20e79ae852fee8f7d42701a54a95de3b79ecea (commit) via 8d0050ea192c41349c1f2b000866c1bdb761abeb (commit) via fe50e98c9a22a89ca2e032b17aa7162452c3ad3b (commit) via 122a483d4f19c8b0a7f3d265dad882bd4f2c868a (commit) via 0aae7e72a2a11ef1fd2a3b4fd18c8d8d49e0c21b (commit) via 3f380b502769e55bbcdf7b9587c62344913c6ee8 (commit) via ee7e95efb98186c09dc2c39b32263aa15b147bb0 (commit) via 6224c858130fe5c5e5d8b2abdec1cea35986d9e7 (commit) via 020bf56c8e55bfbe5a53989eac0c72b8d2416feb (commit) from 8fd75b5f6edf3f1ad68acb903efa092869f7b096 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit be1ab5123a19ccec14ba6e580ba4b5d354160abc Merge: c94d10d bea3feb Author: Jan Kratochvil Date: Sun May 7 22:11:28 2017 +0200 Merge branch 'indexcxx-nameswrite' into indexcxx-nameswrite-namesread commit c94d10d4717ce8fe192d0152ce131771db89af4e Merge: 8fd75b5 a089940 Author: Jan Kratochvil Date: Sun May 7 22:09:56 2017 +0200 Merge branch 'indexcxx-nameswrite' into indexcxx-nameswrite-namesread ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 21 + bfd/config.bfd | 3 +- bfd/elf32-avr.c | 91 ++- bfd/elflink.c | 12 +- bfd/version.h | 2 +- binutils/ChangeLog | 26 + binutils/objcopy.c | 20 +- binutils/objdump.c | 8 + .../testsuite/binutils-all/mips/mips16-undecoded.d | 20 +- gas/ChangeLog | 185 ++++++ gas/config/tc-mips.c | 319 +++++++++--- gas/symbols.c | 20 +- gas/testsuite/gas/mips/micromips@relax-swap3.d | 1 - gas/testsuite/gas/mips/mips.exp | 66 +++ gas/testsuite/gas/mips/mips16-branch-absolute-1.d | 20 + gas/testsuite/gas/mips/mips16-branch-absolute-1.s | 22 + gas/testsuite/gas/mips/mips16-branch-absolute-2.d | 4 + gas/testsuite/gas/mips/mips16-branch-absolute-2.s | 20 + .../gas/mips/mips16-branch-absolute-addend-1.d | 4 + .../gas/mips/mips16-branch-absolute-addend-1.s | 22 + .../gas/mips/mips16-branch-absolute-addend-n32-1.d | 5 + .../gas/mips/mips16-branch-absolute-addend-n64-1.d | 5 + .../gas/mips/mips16-branch-absolute-n32-1.d | 5 + .../gas/mips/mips16-branch-absolute-n32-2.d | 5 + .../gas/mips/mips16-branch-absolute-n64-1.d | 5 + .../gas/mips/mips16-branch-absolute-n64-2.d | 5 + gas/testsuite/gas/mips/mips16-pcrel-0.d | 47 ++ gas/testsuite/gas/mips/mips16-pcrel-0.l | 5 + gas/testsuite/gas/mips/mips16-pcrel-0.s | 39 ++ gas/testsuite/gas/mips/mips16-pcrel-1.d | 47 ++ gas/testsuite/gas/mips/mips16-pcrel-1.l | 5 + gas/testsuite/gas/mips/mips16-pcrel-1.s | 39 ++ gas/testsuite/gas/mips/mips16-pcrel-2.d | 5 + gas/testsuite/gas/mips/mips16-pcrel-2.l | 5 + gas/testsuite/gas/mips/mips16-pcrel-2.s | 43 ++ gas/testsuite/gas/mips/mips16-pcrel-3.d | 3 + gas/testsuite/gas/mips/mips16-pcrel-3.l | 7 + gas/testsuite/gas/mips/mips16-pcrel-3.s | 29 + gas/testsuite/gas/mips/mips16-pcrel-4.d | 3 + gas/testsuite/gas/mips/mips16-pcrel-4.l | 15 + gas/testsuite/gas/mips/mips16-pcrel-4.s | 52 ++ gas/testsuite/gas/mips/mips16-pcrel-5.d | 3 + gas/testsuite/gas/mips/mips16-pcrel-5.l | 15 + gas/testsuite/gas/mips/mips16-pcrel-5.s | 54 ++ gas/testsuite/gas/mips/mips16-pcrel-absolute-1.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-absolute-1.s | 18 + gas/testsuite/gas/mips/mips16-pcrel-absolute-2.d | 16 + gas/testsuite/gas/mips/mips16-pcrel-absolute-2.s | 18 + gas/testsuite/gas/mips/mips16-pcrel-absolute-3.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-absolute-3.s | 18 + gas/testsuite/gas/mips/mips16-pcrel-absolute-4.d | 34 ++ gas/testsuite/gas/mips/mips16-pcrel-absolute-4.l | 9 + gas/testsuite/gas/mips/mips16-pcrel-absolute-4.s | 24 + gas/testsuite/gas/mips/mips16-pcrel-absolute-5.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-absolute-5.s | 24 + gas/testsuite/gas/mips/mips16-pcrel-absolute-6.d | 34 ++ gas/testsuite/gas/mips/mips16-pcrel-absolute-6.l | 9 + gas/testsuite/gas/mips/mips16-pcrel-absolute-6.s | 24 + gas/testsuite/gas/mips/mips16-pcrel-absolute-7.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-absolute-7.s | 24 + .../gas/mips/mips16-pcrel-absolute-n32-4.d | 5 + .../gas/mips/mips16-pcrel-absolute-n32-6.d | 5 + .../gas/mips/mips16-pcrel-absolute-n64-4.d | 4 + .../gas/mips/mips16-pcrel-absolute-n64-6.d | 4 + .../gas/mips/mips16-pcrel-absolute-n64-sym32-4.d | 5 + .../gas/mips/mips16-pcrel-absolute-n64-sym32-6.d | 5 + .../gas/mips/mips16-pcrel-absolute-pic-4.d | 5 + .../gas/mips/mips16-pcrel-absolute-pic-6.d | 5 + .../gas/mips/mips16-pcrel-absolute-pic-n32-4.d | 5 + .../gas/mips/mips16-pcrel-absolute-pic-n32-6.d | 5 + .../gas/mips/mips16-pcrel-absolute-pic-n64-4.d | 4 + .../gas/mips/mips16-pcrel-absolute-pic-n64-6.d | 4 + .../mips/mips16-pcrel-absolute-pic-n64-sym32-4.d | 5 + .../mips/mips16-pcrel-absolute-pic-n64-sym32-6.d | 5 + gas/testsuite/gas/mips/mips16-pcrel-absolute.d | 15 +- gas/testsuite/gas/mips/mips16-pcrel-absolute.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-addend-2.d | 20 +- gas/testsuite/gas/mips/mips16-pcrel-addend-2.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-addend-3.d | 19 +- gas/testsuite/gas/mips/mips16-pcrel-addend-3.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-addend-4.d | 13 + gas/testsuite/gas/mips/mips16-pcrel-addend-4.s | 25 + gas/testsuite/gas/mips/mips16-pcrel-addend-5.d | 13 + gas/testsuite/gas/mips/mips16-pcrel-addend-5.s | 25 + gas/testsuite/gas/mips/mips16-pcrel-addend-6.d | 21 + gas/testsuite/gas/mips/mips16-pcrel-addend-6.s | 26 + gas/testsuite/gas/mips/mips16-pcrel-addend-7.d | 20 + gas/testsuite/gas/mips/mips16-pcrel-addend-7.s | 16 + gas/testsuite/gas/mips/mips16-pcrel-addend-8.d | 50 ++ gas/testsuite/gas/mips/mips16-pcrel-addend-8.l | 9 + gas/testsuite/gas/mips/mips16-pcrel-addend-8.s | 22 + gas/testsuite/gas/mips/mips16-pcrel-addend-9.d | 50 ++ gas/testsuite/gas/mips/mips16-pcrel-addend-9.l | 9 + gas/testsuite/gas/mips/mips16-pcrel-addend-9.s | 22 + gas/testsuite/gas/mips/mips16-pcrel-addend-n32-8.d | 51 ++ gas/testsuite/gas/mips/mips16-pcrel-addend-n32-9.d | 51 ++ gas/testsuite/gas/mips/mips16-pcrel-addend-n64-8.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-addend-n64-9.d | 4 + .../gas/mips/mips16-pcrel-addend-n64-sym32-8.d | 83 +++ .../gas/mips/mips16-pcrel-addend-n64-sym32-9.d | 83 +++ gas/testsuite/gas/mips/mips16-pcrel-addend-pic-8.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-addend-pic-9.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-delay-0.d | 35 ++ gas/testsuite/gas/mips/mips16-pcrel-delay-0.l | 5 + gas/testsuite/gas/mips/mips16-pcrel-delay-0.s | 36 ++ gas/testsuite/gas/mips/mips16-pcrel-delay-1.d | 40 ++ gas/testsuite/gas/mips/mips16-pcrel-delay-1.l | 5 + gas/testsuite/gas/mips/mips16-pcrel-delay-1.s | 35 ++ gas/testsuite/gas/mips/mips16-pcrel-n32-0.d | 48 ++ gas/testsuite/gas/mips/mips16-pcrel-n32-1.d | 48 ++ gas/testsuite/gas/mips/mips16-pcrel-n64-0.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-n64-1.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d | 64 +++ gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d | 64 +++ gas/testsuite/gas/mips/mips16-pcrel-pic-0.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-pic-1.d | 4 + gas/testsuite/gas/mips/mips16-pcrel-reloc-2.d | 20 +- gas/testsuite/gas/mips/mips16-pcrel-reloc-2.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-reloc-3.d | 19 +- gas/testsuite/gas/mips/mips16-pcrel-reloc-3.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-reloc-6.d | 20 +- gas/testsuite/gas/mips/mips16-pcrel-reloc-6.l | 3 - gas/testsuite/gas/mips/mips16-pcrel-reloc-7.d | 19 +- gas/testsuite/gas/mips/mips16-pcrel-reloc-7.l | 3 - gas/testsuite/gas/mips/mips16@relax-swap3.d | 23 +- gas/testsuite/gas/mips/mips16@relax-swap3.l | 3 - gas/testsuite/gas/mips/mips16e@relax-swap3.d | 21 + gas/testsuite/gas/mips/relax-swap3.s | 6 +- gdb/ChangeLog | 389 +++++++++++++ gdb/MAINTAINERS | 17 +- gdb/Makefile.in | 29 +- gdb/aarch64-tdep.c | 17 +- gdb/alpha-tdep.c | 23 +- gdb/alpha-tdep.h | 3 +- gdb/arch/arm-get-next-pcs.c | 89 ++-- gdb/arch/arm-get-next-pcs.h | 5 +- gdb/arm-linux-tdep.c | 21 +- gdb/arm-tdep.c | 30 +- gdb/arm-tdep.h | 4 +- gdb/breakpoint.c | 107 ++--- gdb/btrace.c | 9 +- gdb/common/gdb_vecs.h | 2 - gdb/config/aarch64/linux.mh | 29 - gdb/config/alpha/alpha-linux.mh | 15 - gdb/config/alpha/nbsd.mh | 4 - gdb/config/arm/linux.mh | 10 - gdb/config/arm/nbsdelf.mh | 2 - gdb/config/i386/cygwin.mh | 3 - gdb/config/i386/cygwin64.mh | 20 - gdb/config/i386/darwin.mh | 4 - gdb/config/i386/fbsd.mh | 8 - gdb/config/i386/fbsd64.mh | 7 - gdb/config/i386/go32.mh | 11 - gdb/config/i386/{i386gnu.mh => i386gnu.mn} | 12 - gdb/config/i386/i386sol2.mh | 4 - gdb/config/i386/linux.mh | 14 - gdb/config/i386/linux64.mh | 15 - gdb/config/i386/mingw.mh | 3 - gdb/config/i386/mingw64.mh | 1 - gdb/config/i386/nbsd64.mh | 3 - gdb/config/i386/nbsdelf.mh | 5 - gdb/config/i386/nto.mh | 4 - gdb/config/i386/obsd.mh | 5 - gdb/config/i386/obsd64.mh | 5 - gdb/config/i386/sol2-64.mh | 4 - gdb/config/ia64/linux.mh | 13 - gdb/config/m32r/linux.mh | 10 - gdb/config/m68k/linux.mh | 14 - gdb/config/m68k/nbsdelf.mh | 4 - gdb/config/m68k/obsd.mh | 4 - gdb/config/m88k/obsd.mh | 2 - gdb/config/mips/fbsd.mh | 3 - gdb/config/mips/linux.mh | 11 - gdb/config/mips/nbsd.mh | 2 - gdb/config/mips/obsd64.mh | 2 - gdb/config/pa/linux.mh | 10 - gdb/config/pa/nbsd.mh | 2 - gdb/config/pa/obsd.mh | 2 - gdb/config/powerpc/aix.mh | 8 - gdb/config/powerpc/fbsd.mh | 24 - gdb/config/powerpc/linux.mh | 12 - gdb/config/powerpc/nbsd.mh | 4 - gdb/config/powerpc/obsd.mh | 4 - gdb/config/powerpc/ppc64-linux.mh | 15 - gdb/config/powerpc/spu-linux.mh | 8 - gdb/config/s390/linux.mh | 9 - gdb/config/sh/nbsd.mh | 2 - gdb/config/sparc/fbsd.mh | 7 - gdb/config/sparc/linux.mh | 13 - gdb/config/sparc/linux64.mh | 13 - gdb/config/sparc/nbsd64.mh | 5 - gdb/config/sparc/nbsdelf.mh | 5 - gdb/config/sparc/obsd64.mh | 5 - gdb/config/sparc/sol2.mh | 6 - gdb/config/tilegx/linux.mh | 13 - gdb/config/vax/nbsdelf.mh | 5 - gdb/config/vax/obsd.mh | 5 - gdb/config/xtensa/linux.mh | 11 - gdb/configure | 43 +- gdb/configure.ac | 37 +- gdb/configure.nat | 484 ++++++++++++++++ gdb/contrib/cc-with-tweaks.sh | 33 +- gdb/corelow.c | 80 ++- gdb/cris-tdep.c | 8 +- gdb/doc/ChangeLog | 26 + gdb/doc/Makefile.in | 3 - gdb/doc/python.texi | 108 ++-- gdb/exec.c | 15 +- gdb/frv-linux-tdep.c | 7 +- gdb/gdbarch.c | 2 +- gdb/gdbarch.h | 11 +- gdb/gdbarch.sh | 389 +++++++------- gdb/gdbserver/ChangeLog | 22 + gdb/gdbserver/configure | 4 +- gdb/gdbserver/linux-arm-low.c | 7 +- gdb/gdbserver/linux-low.c | 9 +- gdb/gdbserver/linux-low.h | 2 +- gdb/gdbthread.h | 22 +- gdb/infcmd.c | 31 +- gdb/inferior.c | 29 +- gdb/inferior.h | 23 +- gdb/infrun.c | 65 ++- gdb/linespec.c | 6 +- gdb/mi/mi-main.c | 12 +- gdb/mips-tdep.c | 57 +- gdb/mips-tdep.h | 3 +- gdb/moxie-tdep.c | 26 +- gdb/nios2-tdep.c | 7 +- gdb/ppc-tdep.h | 3 +- gdb/proc-service.c | 18 +- gdb/progspace-and-thread.c | 43 ++ gdb/progspace-and-thread.h | 40 ++ gdb/progspace.c | 80 +--- gdb/progspace.h | 32 +- gdb/python/py-instruction.c | 67 +++ gdb/python/py-instruction.h | 30 + gdb/python/py-record-btrace.c | 596 ++++++++------------ gdb/python/py-record-btrace.h | 42 ++ gdb/python/py-record.c | 424 +++++++++++++- gdb/python/py-record.h | 74 +++ gdb/python/python-internal.h | 2 + gdb/python/python.c | 1 + gdb/regcache.c | 20 + gdb/regcache.h | 2 + gdb/remote.c | 5 +- gdb/rs6000-aix-tdep.c | 10 +- gdb/rs6000-tdep.c | 15 +- gdb/s390-linux-tdep.c | 15 +- gdb/solib-target.c | 61 +-- gdb/sparc-tdep.c | 8 +- gdb/spu-tdep.c | 9 +- gdb/symtab.c | 12 +- gdb/testsuite/ChangeLog | 29 + gdb/testsuite/gdb.cp/oranking.cc | 17 + .../gdb.python/py-record-btrace-threads.c | 58 ++ .../gdb.python/py-record-btrace-threads.exp | 81 +++ gdb/testsuite/gdb.python/py-record-btrace.exp | 6 +- gdb/thread.c | 249 ++++----- gdb/tic6x-tdep.c | 7 +- gdb/tracepoint.c | 6 +- gdb/varobj.c | 5 +- gdb/warning.m4 | 2 +- ld/ChangeLog | 79 +++ ld/testsuite/ld-avr/pr21404-1.d | 12 + ld/testsuite/ld-avr/pr21404-1.s | 11 + ld/testsuite/ld-avr/pr21404-2.d | 16 + ld/testsuite/ld-avr/pr21404-2.s | 25 + ld/testsuite/ld-avr/pr21404-3.d | 10 + ld/testsuite/ld-avr/pr21404-3.s | 10 + ld/testsuite/ld-avr/pr21404-4.d | 10 + ld/testsuite/ld-avr/pr21404-4.s | 10 + ld/testsuite/ld-avr/pr21404-5.d | 11 + ld/testsuite/ld-avr/pr21404-5.s | 9 + ld/testsuite/ld-avr/pr21404-6.d | 16 + ld/testsuite/ld-avr/pr21404-6.s | 19 + ld/testsuite/ld-avr/pr21404-7.d | 10 + ld/testsuite/ld-avr/pr21404-7.s | 9 + ld/testsuite/ld-avr/pr21404-8.d | 10 + ld/testsuite/ld-avr/pr21404-8.s | 9 + ld/testsuite/ld-elf/pr21384.d | 12 + ld/testsuite/ld-elf/pr21384.dl | 4 + ld/testsuite/ld-elf/pr21384.ld | 22 + ld/testsuite/ld-elf/pr21384.s | 2 + ld/testsuite/ld-i386/tls.exp | 9 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 27 + .../ld-mips-elf/mips16-branch-absolute-1.d | 6 + .../ld-mips-elf/mips16-branch-absolute-2.d | 6 + .../ld-mips-elf/mips16-branch-absolute-addend-1.d | 6 + .../mips16-branch-absolute-addend-n32-1.d | 6 + .../mips16-branch-absolute-addend-n64-1.d | 6 + .../ld-mips-elf/mips16-branch-absolute-n32-1.d | 6 + .../ld-mips-elf/mips16-branch-absolute-n32-2.d | 6 + .../ld-mips-elf/mips16-branch-absolute-n64-1.d | 6 + .../ld-mips-elf/mips16-branch-absolute-n64-2.d | 6 + ld/testsuite/ld-mips-elf/mips16-pcrel-0.d | 41 ++ ld/testsuite/ld-mips-elf/mips16-pcrel-1.d | 41 ++ ld/testsuite/ld-mips-elf/mips16-pcrel-addend-2.d | 19 + ld/testsuite/ld-mips-elf/mips16-pcrel-addend-6.d | 19 + ld/testsuite/ld-mips-elf/mips16-pcrel-n32-0.d | 6 + ld/testsuite/ld-mips-elf/mips16-pcrel-n32-1.d | 6 + .../ld-mips-elf/mips16-pcrel-n64-sym32-0.d | 6 + .../ld-mips-elf/mips16-pcrel-n64-sym32-1.d | 6 + ld/testsuite/ld-x86-64/tls.exp | 7 +- ld/testsuite/lib/ld-lib.exp | 64 +++ opcodes/ChangeLog | 18 + opcodes/arm-dis.c | 4 +- opcodes/mips-dis.c | 7 +- opcodes/riscv-dis.c | 1 + opcodes/riscv-opc.c | 2 +- 309 files changed, 6290 insertions(+), 2062 deletions(-) create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-1.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-2.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-2.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-n32-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-n64-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n32-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n32-2.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n64-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n64-2.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-1.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-2.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-2.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-3.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-3.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-5.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-5.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-7.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-7.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute.l delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-2.l delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-3.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-4.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-4.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-5.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-5.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-6.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-6.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-7.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-7.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n32-8.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n32-9.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-8.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-9.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-pic-8.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-pic-9.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.l create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.s create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n32-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n32-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-pic-0.d create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-pic-1.d delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-2.l delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-3.l delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-6.l delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-7.l delete mode 100644 gas/testsuite/gas/mips/mips16@relax-swap3.l create mode 100644 gas/testsuite/gas/mips/mips16e@relax-swap3.d delete mode 100644 gdb/config/aarch64/linux.mh delete mode 100644 gdb/config/alpha/alpha-linux.mh delete mode 100644 gdb/config/alpha/nbsd.mh delete mode 100644 gdb/config/arm/linux.mh delete mode 100644 gdb/config/arm/nbsdelf.mh delete mode 100644 gdb/config/i386/cygwin.mh delete mode 100644 gdb/config/i386/cygwin64.mh delete mode 100644 gdb/config/i386/darwin.mh delete mode 100644 gdb/config/i386/fbsd.mh delete mode 100644 gdb/config/i386/fbsd64.mh delete mode 100644 gdb/config/i386/go32.mh rename gdb/config/i386/{i386gnu.mh => i386gnu.mn} (79%) delete mode 100644 gdb/config/i386/i386sol2.mh delete mode 100644 gdb/config/i386/linux.mh delete mode 100644 gdb/config/i386/linux64.mh delete mode 100644 gdb/config/i386/mingw.mh delete mode 100644 gdb/config/i386/mingw64.mh delete mode 100644 gdb/config/i386/nbsd64.mh delete mode 100644 gdb/config/i386/nbsdelf.mh delete mode 100644 gdb/config/i386/nto.mh delete mode 100644 gdb/config/i386/obsd.mh delete mode 100644 gdb/config/i386/obsd64.mh delete mode 100644 gdb/config/i386/sol2-64.mh delete mode 100644 gdb/config/ia64/linux.mh delete mode 100644 gdb/config/m32r/linux.mh delete mode 100644 gdb/config/m68k/linux.mh delete mode 100644 gdb/config/m68k/nbsdelf.mh delete mode 100644 gdb/config/m68k/obsd.mh delete mode 100644 gdb/config/m88k/obsd.mh delete mode 100644 gdb/config/mips/fbsd.mh delete mode 100644 gdb/config/mips/linux.mh delete mode 100644 gdb/config/mips/nbsd.mh delete mode 100644 gdb/config/mips/obsd64.mh delete mode 100644 gdb/config/pa/linux.mh delete mode 100644 gdb/config/pa/nbsd.mh delete mode 100644 gdb/config/pa/obsd.mh delete mode 100644 gdb/config/powerpc/aix.mh delete mode 100644 gdb/config/powerpc/fbsd.mh delete mode 100644 gdb/config/powerpc/linux.mh delete mode 100644 gdb/config/powerpc/nbsd.mh delete mode 100644 gdb/config/powerpc/obsd.mh delete mode 100644 gdb/config/powerpc/ppc64-linux.mh delete mode 100644 gdb/config/powerpc/spu-linux.mh delete mode 100644 gdb/config/s390/linux.mh delete mode 100644 gdb/config/sh/nbsd.mh delete mode 100644 gdb/config/sparc/fbsd.mh delete mode 100644 gdb/config/sparc/linux.mh delete mode 100644 gdb/config/sparc/linux64.mh delete mode 100644 gdb/config/sparc/nbsd64.mh delete mode 100644 gdb/config/sparc/nbsdelf.mh delete mode 100644 gdb/config/sparc/obsd64.mh delete mode 100644 gdb/config/sparc/sol2.mh delete mode 100644 gdb/config/tilegx/linux.mh delete mode 100644 gdb/config/vax/nbsdelf.mh delete mode 100644 gdb/config/vax/obsd.mh delete mode 100644 gdb/config/xtensa/linux.mh create mode 100644 gdb/configure.nat create mode 100644 gdb/progspace-and-thread.c create mode 100644 gdb/progspace-and-thread.h create mode 100644 gdb/python/py-instruction.c create mode 100644 gdb/python/py-instruction.h create mode 100644 gdb/python/py-record.h create mode 100644 gdb/testsuite/gdb.python/py-record-btrace-threads.c create mode 100644 gdb/testsuite/gdb.python/py-record-btrace-threads.exp create mode 100644 ld/testsuite/ld-avr/pr21404-1.d create mode 100644 ld/testsuite/ld-avr/pr21404-1.s create mode 100644 ld/testsuite/ld-avr/pr21404-2.d create mode 100644 ld/testsuite/ld-avr/pr21404-2.s create mode 100644 ld/testsuite/ld-avr/pr21404-3.d create mode 100644 ld/testsuite/ld-avr/pr21404-3.s create mode 100644 ld/testsuite/ld-avr/pr21404-4.d create mode 100644 ld/testsuite/ld-avr/pr21404-4.s create mode 100644 ld/testsuite/ld-avr/pr21404-5.d create mode 100644 ld/testsuite/ld-avr/pr21404-5.s create mode 100644 ld/testsuite/ld-avr/pr21404-6.d create mode 100644 ld/testsuite/ld-avr/pr21404-6.s create mode 100644 ld/testsuite/ld-avr/pr21404-7.d create mode 100644 ld/testsuite/ld-avr/pr21404-7.s create mode 100644 ld/testsuite/ld-avr/pr21404-8.d create mode 100644 ld/testsuite/ld-avr/pr21404-8.s create mode 100644 ld/testsuite/ld-elf/pr21384.d create mode 100644 ld/testsuite/ld-elf/pr21384.dl create mode 100644 ld/testsuite/ld-elf/pr21384.ld create mode 100644 ld/testsuite/ld-elf/pr21384.s create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-2.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-n32-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-n64-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n32-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n32-2.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n64-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n64-2.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-0.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-addend-2.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-addend-6.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n32-0.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n32-1.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-0.d create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-1.d First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dff6a59..27ac8c3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,24 @@ +2017-05-01 Senthil Kumar Selvaraj + + PR ld/21404 + * elf32-avr.c (avr_should_move_sym): New function. + (avr_should_reduce_sym_size): Likewise. + (avr_should_increase_sym_size): Likewise. + (elf32_avr_relax_delete_bytes): Adjust symbol values + and sizes by calling new functions. + +2017-05-01 Palmer Dabbelt + + * config.bfd (riscv32-*): Enable rv64. + +2017-05-02 Alan Modra + + PR 21384 + * elflink.c (bfd_elf_link_mark_dynamic_symbol): Test h->non_elf + rather than h->root.type == bfd_link_hash_new. + (bfd_elf_record_link_assignment): Similarly, call + bfd_elf_link_mark_dynamic_symbol when h->non_elf. + 2017-04-29 Alan Modra PR 21432 diff --git a/bfd/config.bfd b/bfd/config.bfd index 151de95..eb6a958 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1441,10 +1441,9 @@ case "${targ}" in #ifdef BFD64 riscv32-*-*) targ_defvec=riscv_elf32_vec - targ_selvecs="riscv_elf32_vec" + targ_selvecs="riscv_elf32_vec riscv_elf64_vec" want64=true ;; - riscv64-*-*) targ_defvec=riscv_elf64_vec targ_selvecs="riscv_elf32_vec riscv_elf64_vec" diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c index 0f6c188..f140aa7 100644 --- a/bfd/elf32-avr.c +++ b/bfd/elf32-avr.c @@ -1854,6 +1854,40 @@ elf32_avr_adjust_reloc_if_spans_insn (bfd *abfd, } } +static bfd_boolean +avr_should_move_sym (symvalue symval, + bfd_vma start, + bfd_vma end, + bfd_boolean did_pad) +{ + bfd_boolean sym_within_boundary = + did_pad ? symval < end : symval <= end; + return (symval > start && sym_within_boundary); +} + +static bfd_boolean +avr_should_reduce_sym_size (symvalue symval, + symvalue symend, + bfd_vma start, + bfd_vma end, + bfd_boolean did_pad) +{ + bfd_boolean sym_end_within_boundary = + did_pad ? symend < end : symend <= end; + return (symval <= start && symend > start && sym_end_within_boundary); +} + +static bfd_boolean +avr_should_increase_sym_size (symvalue symval, + symvalue symend, + bfd_vma start, + bfd_vma end, + bfd_boolean did_pad) +{ + return avr_should_move_sym (symval, start, end, did_pad) + && symend >= end && did_pad; +} + /* Delete some bytes from a section while changing the size of an instruction. The parameter "addr" denotes the section-relative offset pointing just behind the shrinked instruction. "addr+count" point at the first @@ -1875,13 +1909,14 @@ elf32_avr_relax_delete_bytes (bfd *abfd, Elf_Internal_Rela *irel, *irelend; Elf_Internal_Sym *isym; Elf_Internal_Sym *isymbuf = NULL; - bfd_vma toaddr, reloc_toaddr; + bfd_vma toaddr; struct elf_link_hash_entry **sym_hashes; struct elf_link_hash_entry **end_hashes; unsigned int symcount; struct avr_relax_info *relax_info; struct avr_property_record *prop_record = NULL; bfd_boolean did_shrink = FALSE; + bfd_boolean did_pad = FALSE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec); @@ -1912,17 +1947,6 @@ elf32_avr_relax_delete_bytes (bfd *abfd, } } - /* We need to look at all relocs with offsets less than toaddr. prop - records handling adjusts toaddr downwards to avoid moving syms at the - address of the property record, but all relocs with offsets between addr - and the current value of toaddr need to have their offsets adjusted. - Assume addr = 0, toaddr = 4 and count = 2. After prop records handling, - toaddr becomes 2, but relocs with offsets 2 and 3 still need to be - adjusted (to 0 and 1 respectively), as the first 2 bytes are now gone. - So record the current value of toaddr here, and use it when adjusting - reloc offsets. */ - reloc_toaddr = toaddr; - irel = elf_section_data (sec)->relocs; irelend = irel + sec->reloc_count; @@ -1962,10 +1986,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd, to remember we didn't delete anything i.e. don't set did_shrink, so that we don't corrupt reloc offsets or symbol values.*/ memset (contents + toaddr - count, fill, count); - - /* Adjust the TOADDR to avoid moving symbols located at the address - of the property record, which has not moved. */ - toaddr -= count; + did_pad = TRUE; } if (!did_shrink) @@ -1981,7 +2002,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd, /* Get the new reloc address. */ if ((irel->r_offset > addr - && irel->r_offset < reloc_toaddr)) + && irel->r_offset < toaddr)) { if (debug_relax) printf ("Relocation at address 0x%x needs to be moved.\n" @@ -2059,7 +2080,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd, { /* If there is an alignment boundary, we only need to adjust addends that end up below the boundary. */ - bfd_vma shrink_boundary = (reloc_toaddr + bfd_vma shrink_boundary = (toaddr + sec->output_section->vma + sec->output_offset); @@ -2102,12 +2123,10 @@ elf32_avr_relax_delete_bytes (bfd *abfd, { if (isym->st_shndx == sec_shndx) { - if (isym->st_value > addr - && isym->st_value <= toaddr) - isym->st_value -= count; - - if (isym->st_value <= addr - && isym->st_value + isym->st_size > addr) + symvalue symval = isym->st_value; + symvalue symend = symval + isym->st_size; + if (avr_should_reduce_sym_size (symval, symend, + addr, toaddr, did_pad)) { /* If this assert fires then we have a symbol that ends part way through an instruction. Does that make @@ -2115,6 +2134,12 @@ elf32_avr_relax_delete_bytes (bfd *abfd, BFD_ASSERT (isym->st_value + isym->st_size >= addr + count); isym->st_size -= count; } + else if (avr_should_increase_sym_size (symval, symend, + addr, toaddr, did_pad)) + isym->st_size += count; + + if (avr_should_move_sym (symval, addr, toaddr, did_pad)) + isym->st_value -= count; } } } @@ -2131,20 +2156,24 @@ elf32_avr_relax_delete_bytes (bfd *abfd, || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec) { - if (sym_hash->root.u.def.value > addr - && sym_hash->root.u.def.value <= toaddr) - sym_hash->root.u.def.value -= count; + symvalue symval = sym_hash->root.u.def.value; + symvalue symend = symval + sym_hash->size; - if (sym_hash->root.u.def.value <= addr - && (sym_hash->root.u.def.value + sym_hash->size > addr)) + if (avr_should_reduce_sym_size (symval, symend, + addr, toaddr, did_pad)) { /* If this assert fires then we have a symbol that ends part way through an instruction. Does that make sense? */ - BFD_ASSERT (sym_hash->root.u.def.value + sym_hash->size - >= addr + count); + BFD_ASSERT (symend >= addr + count); sym_hash->size -= count; } + else if (avr_should_increase_sym_size (symval, symend, + addr, toaddr, did_pad)) + sym_hash->size += count; + + if (avr_should_move_sym (symval, addr, toaddr, did_pad)) + sym_hash->root.u.def.value -= count; } } diff --git a/bfd/elflink.c b/bfd/elflink.c index 4af4b1c..9acc069 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -580,7 +580,7 @@ bfd_elf_link_mark_dynamic_symbol (struct bfd_link_info *info, && (ELF_ST_TYPE (sym->st_info) == STT_OBJECT || ELF_ST_TYPE (sym->st_info) == STT_COMMON)))) || (d != NULL - && h->root.type == bfd_link_hash_new + && h->non_elf && (*d->match) (&d->head, NULL, h->root.root.string))) h->dynamic = 1; } @@ -623,6 +623,14 @@ bfd_elf_record_link_assignment (bfd *output_bfd, } } + /* Symbols defined in a linker script but not referenced anywhere + else will have non_elf set. */ + if (h->non_elf) + { + bfd_elf_link_mark_dynamic_symbol (info, h, NULL); + h->non_elf = 0; + } + switch (h->root.type) { case bfd_link_hash_defined: @@ -639,8 +647,6 @@ bfd_elf_record_link_assignment (bfd *output_bfd, bfd_link_repair_undef_list (&htab->root); break; case bfd_link_hash_new: - bfd_elf_link_mark_dynamic_symbol (info, h, NULL); - h->non_elf = 0; break; case bfd_link_hash_indirect: /* We had a versioned symbol in a dynamic library. We make the diff --git a/bfd/version.h b/bfd/version.h index a5c3e29..53986ea 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20170429 +#define BFD_VERSION_DATE 20170507 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9eea3a0..b3a539a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,29 @@ +2017-05-02 H.J. Lu + + * objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned + long when comparing with sec->reloc_count. + +2017-05-02 Nick Clifton + + * objcopy.c (merge_gnu_build_notes): Disable merge if there are + more internal relocs than external relocs. + +2017-05-02 Maciej W. Rozycki + + * testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the + disassembly of PC-relative LA and LW synthetic instructions. + +2017-05-02 Nick Clifton + + PR 21440 + * objdump.c (dump_relocs_in_section): Check for an excessive + number of relocs before attempting to dump them. + +2017-05-01 Alan Modra + + * objcopy.c (merge_gnu_build_notes): Correct code deleting + relocs. + 2017-04-28 Nick Clifton PR binutils/21439 diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 9bad4b7..ccb5e12 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -2137,6 +2137,13 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte relcount = 0; } + /* A few targets (eg MIPS, SPARC) create multiple internal relocs to + represent a single external reloc. Unfortunately the current BFD + API does not handle deleting relocs in such situations very well + and so it is unsafe to proceed. */ + if ((unsigned long) relcount > sec->reloc_count) + goto done; + /* Eliminate the duplicates. */ new = new_contents = xmalloc (size); for (pnote = pnotes, old = contents; @@ -2185,15 +2192,18 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte if (relcount > 0) { - arelent ** rel; + arelent **rel = relpp; - for (rel = relpp; rel < relpp + relcount; rel ++) - if ((* rel)->howto == NULL) + while (rel < relpp + relcount) + if ((*rel)->howto != NULL) + rel++; + else { /* Delete eliminated relocs. FIXME: There are better ways to do this. */ - memmove (rel, rel + 1, ((relcount - (rel - relpp)) - 1) * sizeof (* rel)); - relcount --; + memmove (rel, rel + 1, + ((relcount - (rel - relpp)) - 1) * sizeof (*rel)); + relcount--; } bfd_set_reloc (abfd, sec, relpp, relcount); } diff --git a/binutils/objdump.c b/binutils/objdump.c index bc61000..5972da1 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -3379,6 +3379,14 @@ dump_relocs_in_section (bfd *abfd, return; } + if ((bfd_get_file_flags (abfd) & (BFD_IN_MEMORY | BFD_LINKER_CREATED)) == 0 + && relsize > get_file_size (bfd_get_filename (abfd))) + { + printf (" (too many: 0x%x)\n", section->reloc_count); + bfd_set_error (bfd_error_file_truncated); + bfd_fatal (bfd_get_filename (abfd)); + } + relpp = (arelent **) xmalloc (relsize); relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms); diff --git a/binutils/testsuite/binutils-all/mips/mips16-undecoded.d b/binutils/testsuite/binutils-all/mips/mips16-undecoded.d index 42a5cdf..b455419 100644 --- a/binutils/testsuite/binutils-all/mips/mips16-undecoded.d +++ b/binutils/testsuite/binutils-all/mips/mips16-undecoded.d @@ -11,11 +11,11 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> f008 0231 addiu v0,sp,16401 [0-9a-f]+ <[^>]*> f008 0251 addiu v0,sp,16401 [0-9a-f]+ <[^>]*> f008 0291 addiu v0,sp,16401 -[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004024 -[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004028 -[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402c -[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004030 -[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004034 +[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004025 +[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004029 +[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402d +[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004031 +[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004035 [0-9a-f]+ <[^>]*> f008 1011 b 0000804e [0-9a-f]+ <[^>]*> f008 1011 b 00008052 [0-9a-f]+ <[^>]*> f008 1031 b 00008056 @@ -64,11 +64,11 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> f008 9231 lw v0,16401\(sp\) [0-9a-f]+ <[^>]*> f008 9251 lw v0,16401\(sp\) [0-9a-f]+ <[^>]*> f008 9291 lw v0,16401\(sp\) -[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040f8 -[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fc -[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004100 -[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004104 -[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004108 +[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040f9 +[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fd +[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004101 +[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004105 +[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004109 [0-9a-f]+ <[^>]*> f008 d211 sw v0,16401\(sp\) [0-9a-f]+ <[^>]*> f008 d211 sw v0,16401\(sp\) [0-9a-f]+ <[^>]*> f008 d231 sw v0,16401\(sp\) diff --git a/gas/ChangeLog b/gas/ChangeLog index d5849c0..37a0b9b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,188 @@ +2017-05-03 Maciej W. Rozycki + + * config/tc-mips.c (RELAX_MIPS16_ENCODE): Add `pic', `sym32' and + `nomacro' flags. + (RELAX_MIPS16_PIC, RELAX_MIPS16_SYM32, RELAX_MIPS16_NOMACRO): + New macros. + (RELAX_MIPS16_USER_SMALL, RELAX_MIPS16_USER_EXT) + (RELAX_MIPS16_DSLOT, RELAX_MIPS16_JAL_DSLOT) + (RELAX_MIPS16_EXTENDED, RELAX_MIPS16_MARK_EXTENDED) + (RELAX_MIPS16_CLEAR_EXTENDED, RELAX_MIPS16_ALWAYS_EXTENDED) + (RELAX_MIPS16_MARK_ALWAYS_EXTENDED) + (RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): Shift bits. + (RELAX_MIPS16_MACRO, RELAX_MIPS16_MARK_MACRO) + (RELAX_MIPS16_CLEAR_MACRO): New macros. + (append_insn): Pass `mips_pic', HAVE_32BIT_SYMBOLS and + `mips_opts.warn_about_macros' settings to RELAX_MIPS16_ENCODE. + (mips16_macro_frag): New function. + (md_estimate_size_before_relax): Handle HI16/LO16 relaxation. + (mips_relax_frag): Likewise. + (md_convert_frag): Likewise. + + * testsuite/gas/mips/mips16@relax-swap3.d: Remove error output, + add dump patterns. + * testsuite/gas/mips/mips16e@relax-swap3.d: New test + subarchitecture. + * testsuite/gas/mips/micromips@relax-swap3.d: Remove trailing + NOP padding. + * testsuite/gas/mips/mips16-pcrel-reloc-2.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-reloc-3.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-reloc-6.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-reloc-7.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-addend-2.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-addend-3.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-absolute.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16-pcrel-absolute-1.d: Remove error + output, add dump patterns. + * testsuite/gas/mips/mips16@relax-swap3.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-reloc-2.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-reloc-3.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-reloc-6.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-reloc-7.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-addend-2.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-addend-3.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-absolute.l: Remove file. + * testsuite/gas/mips/mips16-pcrel-absolute-1.l: Remove file. + * testsuite/gas/mips/relax-swap3.s: Adjust trailing padding. + + * testsuite/gas/mips/mips16-pcrel-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-2.d: New test. + * testsuite/gas/mips/mips16-pcrel-3.d: New test. + * testsuite/gas/mips/mips16-pcrel-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-5.d: New test. + * testsuite/gas/mips/mips16-pcrel-pic-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-pic-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-n32-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-n32-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-n64-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-n64-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-delay-0.d: New test. + * testsuite/gas/mips/mips16-pcrel-delay-1.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-5.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-6.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-7.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-8.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-9.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-pic-8.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-pic-9.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n32-8.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n32-9.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n64-8.d: New test. + * testsuite/gas/mips/mips16-pcrel-addend-n64-9.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-2.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-3.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-5.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-6.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-7.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-pic-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d: New test. + * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d: New + test. + * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d: New hooks/post-receive -- Repository for Project Archer.