The branch, users/jkratoch/indexcxx has been updated via 0c0575d9bce26a219a5db55b10aa4e28650150ff (commit) via ddb9ad345c9b4a8cfe2c9a71190ecf408454e745 (commit) via 97f00e367c8222cda51bc7c0e9d3073a487a5976 (commit) via db7b55faa1a11e632ddf57505c9bb64bc783471a (commit) via 221855059a11ab76aa909a5df4104354f9384139 (commit) via 4c4067e410581fe5c6190407b4fd410e7b71f9e4 (commit) via a961cdd5f139d3c3e09170db52bd8df7dafae13f (commit) via 02aa377fbdd17b763b1e32ad72ccfd1c617ce463 (commit) via cadf97cf20cf76af35e41075dff81197fbec0e51 (commit) via 5e7fc731f80e0d08385a05ad47dda332a49d9341 (commit) via 8184783a4069e04deb2e43b4ad0d66d80f1ad2df (commit) via eefc3365838ed15c02bd7da39fbc31c00d07b398 (commit) via 353abf7c10561aab3e8e7ffce6e270c3743376f0 (commit) via 63e014fccdd91a89873554f6b33d7128d7112813 (commit) via c1fc2d7ee590f3bc87ee79c36e7216b0b6bb054b (commit) via 7acd51d6971f12b832cd7281f669a7ae7feddf45 (commit) via 98fa61facff8fb041205950d642f5403372bfd96 (commit) via a02c3512655cc2c8ad68e4b656959b7d284acc7d (commit) via 6650f7bd18f8161b9f666d3e65a6346e23a9d85f (commit) via fc8e0108db6c60f2ecefb4004cddb94e8824fd42 (commit) via 591be3e4a841ac56bb3ee094447b708d58a6d4b8 (commit) via 03fb64f837bd8466ba6e7b7cb8880f5c6c87daab (commit) via a6a51754740513db76fdee3aa153cdd51e87a24a (commit) via aa785360cfa271505394080c8e367017782ca57a (commit) via 963201cf5d29c4dc718b5fb3507e085b302ff896 (commit) via 9282b95ab7bfe1cdf471e9dd609ae0ea7bbed925 (commit) via 971f1d27d2ee2732f9ab2fa75923007b40e2bbec (commit) via 1bec0c8632397f3c5cdcf27bbb53318f6a6af7e0 (commit) via 1336427510a5ffe7ed8f0c402cc9d315cc679952 (commit) via bfbf34de2f27672282d4fa4c0916cc41890dcc6c (commit) via d81222d3863037a90e0402cf438f7e45600feea2 (commit) via 75c6202b1d13b892581e8dd56b8e0664815390c1 (commit) via 22b05d33b4c870d65972ff8aefdd297ddc66d139 (commit) via 6392030005291f7c783da2247b63ae31dc8352e0 (commit) via ea0ffd5be2dfd6ee696fc15294d7b2bf29f267a7 (commit) via d32a48b9f2d8a374b7ce3f2c47cc9a1c3b184838 (commit) via 88acc2e16743fc1e6384758c9a68cd6d2a8bbd46 (commit) via d36cab83a963f5bb3773e0218cc02f63b0851d0b (commit) via 029e9d52de3ac7fe984dc079ebd24506fd1eace7 (commit) via 3a0b8f7ddb874283879baaf8af6d11094f4c4999 (commit) via cc90de49738ad220bd1d3d001b492679fc488fe1 (commit) via 5d9f66cb84b9f228c1082d3a1037355edceddded (commit) via e83563a9ed0dd6ccc415c4b0cce373fc3264b7a5 (commit) via 98fdf25a43abdad5784e762466fdd7bd59b0899e (commit) via ec6f610ffcc411237e9f8955dd2227cefd255af2 (commit) via 4783ebbcfa35032ac2742f403258a14b647d9ba6 (commit) via 64c111834081a117f902cffc15dadbc535f1c65e (commit) via f17ecb4baca990b57cc57e8337c4e03ecee02742 (commit) via 55af478400524cba7994e353fd9a98ef1543df2f (commit) via 1736a7bd96e8927c3f889a35f9153df4fd19d833 (commit) via f94f411b8308674eb4f790a9fcad0ffa30b568e5 (commit) via a28aa6edd4ba848c110cd73fd4e29c2bbdb2cb72 (commit) via 1a31b34a18d61dee55042f2ab23c8fa9203fe6ef (commit) via f1b5deee16144a75aa605bf37ed38d461587d399 (commit) via fc2f703edb656c69b0026a006c6063cdb255e06a (commit) via 198cd59d289209ad63cdd6da45e02a1c12b423a7 (commit) via 364ca42e71dfdce3f34e97ef028f7e3d5b5d880e (commit) via c752a4cccb99ba73f51eff74b394dcdcd26d4c59 (commit) via 53488a6e194af11c2528e5e284facb8a6171b695 (commit) via cfccf141f0db8de28ba21a8920939c30e123d73e (commit) via 39f66f3ae25ebd3a065218ce880280fd5b4b861c (commit) via 860b03a8f357d1565bd9d79ae25121059b2d28ae (commit) via 731f7c4ea30cc409c45412eec15e3d66afe051f5 (commit) via bf355b690f07315bf2704e349c4f1c9ca611f031 (commit) via 329d01f70ea6367a9593c9b31e268c06dd729ec9 (commit) via 3a2488dd21a895df3ffb49048f5de1a83ce2ddd4 (commit) via 1d262527cf7ef3cdd2c015dc3540b47996e94d37 (commit) via 980d0cdd2fc40c30f3ddef644659d7d0dc00ed40 (commit) via 69a2af1016e03239f7af4e55268bd27fc500f800 (commit) via da17fe9de923fcee29e6f809693eb7e590966575 (commit) via 8e2a4f11d477986aa360a3b588d35a194efe58f8 (commit) via c3187fa5cc72734e6fc766a85d657018c0516bad (commit) via 21389b7f3451a482e14fef9bd32257c4c87f4317 (commit) via 0947023d1d4b5d8803a1065d622f707010b2bcdc (commit) via 785102a7d34f2d48f9a1616bf931fea6de2385fb (commit) via a9617a426d001a748168fbc399fcc77e6d8d3cac (commit) via e9e431d19426a6dd6b8923850398b847af0a1532 (commit) via e2f9914792465953ca945333d0cbedf0b2d7b3d6 (commit) via 14f6890677849172a4b13779acd9089c9baa3a81 (commit) via 4b0781150f69b6ff251dac447c77e4d4f6598da8 (commit) via 5f5c6e032e8d5303e9903c0538f84f76bb4d8733 (commit) via 343fa6906329eb5ec070cf2c05884e49a1cb9d46 (commit) via 6725647ca2a0adc9206059814725102b53ea6478 (commit) via b8760d2cb51517789110c7b2dbd8f61dce08291d (commit) via be0fcbee1d47558af13288c6aece922dd4be6df5 (commit) via c2596ca5d7f6ab6d38882bf0f0fc44fe352afcb1 (commit) via 1c3a5fbe155614a0f87079b953df0d7618e0ab50 (commit) via a5018ae555cdf491005907c03f997558ba15fc47 (commit) via dc60b26d983494a3cdec0d4f167ed98fde1a832a (commit) via 86a6934561f0048624f3ff83f5d3c2565514f0aa (commit) via 5590c2bae0fb41e90bc9698e55d8ec1fe22a9173 (commit) via 4f3ca05b487e9755018b4c9a053a2e6c35d8a7df (commit) via 8b929e420a810afe23d5ba57a98109c74d1d5816 (commit) via 92744f058094edd0b29bf9762f4ac26e4c6743c2 (commit) via 5eecd8621b955fb99860fc1b0d87074071f42f72 (commit) via 005304aae36522a90bbe169faea36db559d0f3d6 (commit) via 7c2ba67e6ab10879968c938aefd4d0d0b4ce79bc (commit) via 5e359a63b7a39e0ff0f750ca8fc97d27b14c0ef7 (commit) via 39eeab253474493bc9477dbb2bd9c8041f05764b (commit) via fc72affa6875e81fc9d495a216a8bcb34045ffcd (commit) via e99f7af2bfbdb08c9cc454d6e5c82e70d34b957e (commit) via efe4db3f06b77934bd81f393194e0fdcfeecf811 (commit) via 82d93790a85300d8452450b6d43efb6b15b53788 (commit) via f49547a604b4dd2c75e3636d4a422d52edc4fa6c (commit) via 14c1428b29fff12d8119ce6f4703be0de08197af (commit) via fa6631b4eecfcca00c13b9594e6336dffd40982f (commit) via 406bd128dba2a59d0736839fc87a59bce319076c (commit) via 9b5481c63ab5e1e66e8f23681741039754eabcce (commit) via 52c4f3bdd5957a31b671a9791f462be5e8eadd85 (commit) via e2996cc315d6ea242e1a954dc20246485ccc8512 (commit) via c28eeff2eabbba2246799470f3713716fa629680 (commit) via 0691188992efa4afab80bfdf966479bc331ce0a4 (commit) via 49e8a725825c77aacc7458b9d7771cb2fa2f64c7 (commit) via a12fd8e1b1c9c6a16e3cc9fc477d7e459776b587 (commit) via 597e138ca0cf96889a1965d06d28552c1d1174d2 (commit) via a55c9876bb111fd301b4762cf501de0040b8f9db (commit) via 88add6d8e794073758b5398c52bbb76ab40a2923 (commit) via daae68f4f372e0618d6b9c64ec0f1f74eae6ab3d (commit) via 39d4daf68e696bbf2db417abe677b2e68f3aace9 (commit) via e9a1e93ecab4e67aacb9cd6a5a953c8c0bc23027 (commit) via df9236f89620c3897b2257854b9a4eedc89217ba (commit) via 668650d58d61d9d170f3e5b5c1657ed1c3e2b34b (commit) via 4132f1c0dfe6bb8984c0dd521388ba6b7b32a4af (commit) via 8c5b4e5228ec94923fbdfb0008926b0b2a3f51c2 (commit) via 4e95fbcd79b84308417fc25ce12cacdb2a61c0d0 (commit) via ca16c5b392b1c78019fea1710c4f4433161626c5 (commit) via f522190fa7f04a8d9a1dfc51d0cf69973c08afb5 (commit) via b8ac28419be22fe0cc72f6eaaba1ab029610fc71 (commit) via 35dc6e06960790cd60b890c14e45f82f110b898f (commit) via 8400d40d954ec3b4a3fe9200645a1b6e90ba46f4 (commit) via 474436e67c72d2426e79e600d725812514db0dbe (commit) via 4193bc588b4e66da0ed502eaef6e7ce85272fb42 (commit) via 10c56208ee8ce4d51de64277207b84a5d1be8c95 (commit) via bef721e278d9ba3178e679eda38ac86ef2dc0d5d (commit) via 107c2d628b924de1854d6d254d60e97e1887ce4a (commit) via df3ee9ca894f7e831713c332aa7820a6463c2435 (commit) via ec835369f121c11d6e9484ed8c6c11097ad545c5 (commit) via 01770bbde902e075e524b518ac6c1087a4cc1cfb (commit) via 7ed7e438bf8a21983eeaeec0617868f8bab06197 (commit) via d7f399a8de4c55eb841db6493597a587fac002de (commit) via 008459ea88ad4fdcb7da37dad7f68888ef6ecc47 (commit) via 531336e3a0b79ed60cfc36ad2d6579b6a71175da (commit) via 0c1b455e294c6debb4efedc7f1346f3c43249f15 (commit) via f5ac6ab387ef0974f6348ac7febc691fbb6c0eb4 (commit) via a9752fdf83985f62a0c343311a9cb42ad13f9876 (commit) via e5a873b7071d74320d4e0cbbc2f358dcf2322557 (commit) via fe6fae079099c0eeb3186086d6b150800c0e8770 (commit) via 233c8c27eb81b0a3ab5182dcb59c7306ba9bd3f3 (commit) via 68c638d6e655a937a48770a5df765e6ebbc5b890 (commit) via 08698b7b46c9c932530dcbcd7e851d27a7d2c503 (commit) via d5451cd45325d12b2cc3d10ffe67f09b0e26b967 (commit) via 432ec0814b01a93b88eddf13092ea6abef34652d (commit) via 4d9a9006139d1ceea787cdda871dff8943e493f0 (commit) via 018572b88885ae67d22612937fa1e4fd98d5f5ad (commit) via 397b8d2a9fb6651924c311f41b90cabeb3fc3ae9 (commit) via be2884c1ea9b96fdb04c6d244d9e7aa1b654a47a (commit) via 376c3ecd17d0636bcf4e527c2e2ca2f94822fe64 (commit) via 6a67d49e559b432ead2859e9bb327852adb53112 (commit) via 36d18bc526b055be896d8dc319cb3ade42238534 (commit) via 77a179e77b38161e461f5e37512f0b3fc3582181 (commit) via 33b2fac610fff1255a24763277a4bf77f1b59ef1 (commit) via 909c0aa5824080c287b390f82726cf5bfb7011e3 (commit) via 37e20dd6599203c4e261fc3a2e86711c90cbbed9 (commit) via c5209615263fd0444da28cdfb6661ad287909a70 (commit) via 78afa7f8599e46eb94a93510b383dfb35e549f7e (commit) via 0f1254327820d7b3f67f873aa40e76679f067288 (commit) via 84c93cd5f1ff869eb8c04314738eaa2cddb3c29e (commit) via fb9feb35913d4cf26baf01e1638b18af301f5387 (commit) via cd2ddb6cde55a20d191e1002dbe1977df695cda9 (commit) via bb95117e107fe58ecd35683bf0e8da3b414378ff (commit) via de97fdd4a05cd7ad0b05444f1721f26c1ad9322f (commit) via 9f058c10cef5987ee1f1cb28c9a8cf5ef1ec4d11 (commit) via cdc7edd7b17dddd3558bd04d9b2fb5a73dc75f1c (commit) via bc6c7af4a2f23c48a38139fc7e0ed2ac7b12bb69 (commit) via 88256e713c707aeb850688071150d32f9cca5a91 (commit) via 88ddd4a1ef8818984f87f574b424ccdc7db19660 (commit) via 69ace2200106348a1b00d509a6a234337c104c17 (commit) via 4cbd84083ea89e870526ed0c80d462084887ba6e (commit) via 4ee1d7e401a8c1aedfdc86aac7faa8267eab1e5c (commit) via cec4b2e3fee8ae2c41089fc7454da56f676f653c (commit) via 5cd1d8bcc24e948e86a636161e6d72f6316545a7 (commit) via 40a0bfddf07620f5321927b3231502debb3b73bc (commit) via e82ab856bb4689330c29fb9f1c57a8555b26380e (commit) via 6d6ad65b43efa17a825702297331fcb290445a18 (commit) via a37a2806e3289294ed214aed3c8a45db46026b39 (commit) via 50455f1ab2935f7321215dfa681745c9b1cb5b19 (commit) via 95a23284a3db0ec85bb0b11c70e6b5acf00563f6 (commit) via b9b118c3bb29052ee76c6bf32b99962cda5113ba (commit) via 4a9d4ea535a6c9b8c2e7cdf91377abe284d0b277 (commit) via 56df3084847984aeddd8c24ca997242ec8c5a369 (commit) via 5486f16481dffa1c1a0d1fd9e38b97e3678078ed (commit) via 5084b13657023904cb60737abdf4cefb539a5fc4 (commit) via ad02e4fe877f3a874145dd045626501245e65624 (commit) via 7913a64cab3930fe524f0e38f85cfca11bd52dcb (commit) via e9a38e0f5287ce7b4629f5f923191e38dd7355c0 (commit) via 502d895cd1ca5d4abf4ef55984cbf5239aeaef0c (commit) via ea3d7d1cab4221ab729327bb4d957352c79d05f0 (commit) via f0e9390be5bbfa3ee777d81dacfccd713ebddb68 (commit) via abe7c33b45288b407e6d001aad713183d4bab5c6 (commit) via ee881e5d3312ea5396bddc37e8673b77bf549b4b (commit) via 0a0640e3ba9a668c4c317520c48246e1cc8d75ca (commit) via aec6cd371d194f93cb7651c219b75eed05bdda98 (commit) via 268ebe95201d2ebdcf68cad9dc67ff6d1e25be9e (commit) via 157686a88644b111658c661fc225881e75f3b0db (commit) via cd58485720b47d80fed0b281d15a9198f43eaf0c (commit) via abfcb414b9900ef996b1665323a950610dbdca43 (commit) via 1a0884415891b197972f8acf59131c3c9376807f (commit) via 7dc54575d91a2b41f6c3e838eec44a7017a24436 (commit) via ee40d8d45213caf0cfb63e603f0fd5a58532e751 (commit) via 4deb8f714d555a2f530e37c3e7af32bc42fdda58 (commit) from 4951936409ad913e04f1a9f6a7cdbb21c1da926f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0c0575d9bce26a219a5db55b10aa4e28650150ff Merge: 4951936 ddb9ad3 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Dec 17 16:01:12 2016 +0100 Merge remote-tracking branch 'gdb/master' into indexcxx ----------------------------------------------------------------------- Summary of changes: ChangeLog | 9 + bfd/ChangeLog | 213 + bfd/aoutx.h | 65 +- bfd/bfd-in.h | 4 + bfd/bfd-in2.h | 4 + bfd/config.bfd | 11 +- bfd/elf.c | 101 +- bfd/elf32-rx.c | 16 +- bfd/elf64-hppa.c | 37 +- bfd/elf64-ppc.c | 413 +- bfd/elf64-ppc.h | 2 - bfd/elflink.c | 112 +- bfd/elfnn-aarch64.c | 37 +- bfd/elfxx-mips.c | 11 +- bfd/elfxx-sparc.c | 4 +- bfd/peicode.h | 7 +- bfd/version.h | 2 +- binutils/ChangeLog | 69 + binutils/MAINTAINERS | 11 +- binutils/nm.c | 7 +- binutils/objcopy.c | 5 +- binutils/readelf.c | 9 +- binutils/testsuite/binutils-all/arc/objdump.exp | 2 +- binutils/testsuite/binutils-all/mips/mips-ase-1.d | 29 + binutils/testsuite/binutils-all/mips/mips-ase-1.s | 12 + binutils/testsuite/binutils-all/mips/mips-ase-2.d | 29 + binutils/testsuite/binutils-all/mips/mips-ase-2.s | 12 + binutils/testsuite/binutils-all/mips/mips-ase-3.d | 18 + binutils/testsuite/binutils-all/mips/mips.exp | 5 + .../binutils-all/mips/mips16-extend-noinsn.d | 33 + .../binutils-all/mips/mips16-extend-noinsn.s | 25 + .../testsuite/binutils-all/mips/mips16-pcrel.d | 200 + .../testsuite/binutils-all/mips/mips16-pcrel.s | 219 + config/ChangeLog | 6 + config/acx.m4 | 2 +- config/bootstrap-asan.mk | 2 +- config/multi.m4 | 3 +- configure | 4 +- configure.ac | 2 +- gas/ChangeLog | 284 ++ gas/app.c | 2 +- gas/config/tc-aarch64.c | 30 +- gas/config/tc-arc.c | 169 +- gas/config/tc-arm.c | 107 +- gas/config/tc-mips.c | 12 +- gas/configure | 2 +- gas/configure.tgt | 3 + gas/doc/c-arc.texi | 104 + gas/doc/c-arm.texi | 1 + gas/expr.c | 2 +- gas/read.c | 31 +- gas/read.h | 5 +- gas/subsegs.c | 4 + gas/symbols.c | 11 +- gas/testsuite/gas/aarch64/addsub.d | 2 +- gas/testsuite/gas/aarch64/adr_1.d | 1 + gas/testsuite/gas/aarch64/advsimd-across.d | 2 +- gas/testsuite/gas/aarch64/advsimd-armv8_3.d | 2 +- gas/testsuite/gas/aarch64/advsimd-fp16.d | 2 +- gas/testsuite/gas/aarch64/advsimd-misc.d | 2 +- gas/testsuite/gas/aarch64/advsisd-copy.d | 2 +- gas/testsuite/gas/aarch64/advsisd-misc.d | 2 +- gas/testsuite/gas/aarch64/alias.d | 2 +- gas/testsuite/gas/aarch64/armv8-ras-1.d | 2 +- gas/testsuite/gas/aarch64/b_1.d | 4 +- gas/testsuite/gas/aarch64/beq_1.d | 4 +- gas/testsuite/gas/aarch64/bitfield-dump | 2 +- gas/testsuite/gas/aarch64/bitfield-no-aliases.d | 2 +- gas/testsuite/gas/aarch64/codealign.d | 2 +- gas/testsuite/gas/aarch64/codealign_1.d | 2 +- gas/testsuite/gas/aarch64/crc32-directive.d | 2 +- gas/testsuite/gas/aarch64/crc32.d | 2 +- gas/testsuite/gas/aarch64/crypto-directive.d | 2 +- gas/testsuite/gas/aarch64/crypto.d | 2 +- gas/testsuite/gas/aarch64/diagnostic.l | 217 +- gas/testsuite/gas/aarch64/diagnostic.s | 1 + gas/testsuite/gas/aarch64/dwarf.d | 32 +- gas/testsuite/gas/aarch64/float-fp16.d | 2 +- gas/testsuite/gas/aarch64/floatdp2.d | 2 +- gas/testsuite/gas/aarch64/fp-armv8_3.d | 2 +- gas/testsuite/gas/aarch64/fp-const0-parse.d | 2 +- gas/testsuite/gas/aarch64/fp_cvt_int.d | 2 +- gas/testsuite/gas/aarch64/fpmov.d | 2 +- gas/testsuite/gas/aarch64/inst-directive.d | 2 +- gas/testsuite/gas/aarch64/int-insns.d | 2 +- gas/testsuite/gas/aarch64/ldr_1.d | 4 +- gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d | 2 +- gas/testsuite/gas/aarch64/ldst-exclusive.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-pair.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-uns-imm.d | 2 +- gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.d | 2 +- gas/testsuite/gas/aarch64/lor-directive.d | 2 +- gas/testsuite/gas/aarch64/lor.d | 2 +- gas/testsuite/gas/aarch64/lse-atomic.d | 2 +- gas/testsuite/gas/aarch64/mapmisc.d | 78 +- gas/testsuite/gas/aarch64/mov-no-aliases.d | 2 +- gas/testsuite/gas/aarch64/mov.d | 2 +- gas/testsuite/gas/aarch64/movi.d | 2 +- gas/testsuite/gas/aarch64/movw_label.d | 16 +- gas/testsuite/gas/aarch64/msr.d | 2 +- gas/testsuite/gas/aarch64/neon-fp-cvt-int.d | 2 +- gas/testsuite/gas/aarch64/neon-frint.d | 2 +- gas/testsuite/gas/aarch64/neon-ins.d | 2 +- gas/testsuite/gas/aarch64/neon-not.d | 2 +- gas/testsuite/gas/aarch64/neon-vfp-reglist-post.d | 2 +- gas/testsuite/gas/aarch64/neon-vfp-reglist.d | 2 +- gas/testsuite/gas/aarch64/no-aliases.d | 2 +- gas/testsuite/gas/aarch64/optional.d | 12 +- gas/testsuite/gas/aarch64/pac.d | 2 +- gas/testsuite/gas/aarch64/pan-directive.d | 2 +- gas/testsuite/gas/aarch64/pan.d | 2 +- gas/testsuite/gas/aarch64/programmer-friendly.d | 1 + gas/testsuite/gas/aarch64/rdma-directive.d | 2 +- gas/testsuite/gas/aarch64/rdma.d | 2 +- gas/testsuite/gas/aarch64/reloc-data.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g0.d | 4 +- gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d | 4 +- gas/testsuite/gas/aarch64/reloc-dtprel_g1.d | 4 +- gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_g2.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d | 4 +- gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d | 4 +- .../gas/aarch64/reloc-dtprel_lo12-ldst16.d | 1 + .../gas/aarch64/reloc-dtprel_lo12-ldst32.d | 1 + .../gas/aarch64/reloc-dtprel_lo12-ldst64.d | 1 + .../gas/aarch64/reloc-dtprel_lo12-ldst8.d | 1 + .../gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d | 1 + .../gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d | 1 + .../gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d | 1 + .../gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d | 1 + gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d | 4 +- gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gotoff_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-gottprel_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-insn.d | 1 + .../gas/aarch64/reloc-tlsdesc_off_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d | 1 + gas/testsuite/gas/aarch64/reloc-tlsldm-1.d | 4 +- gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d | 4 +- gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d | 4 +- gas/testsuite/gas/aarch64/shifted.d | 2 +- gas/testsuite/gas/aarch64/sve.d | 2 +- gas/testsuite/gas/aarch64/symbol.d | 2 +- gas/testsuite/gas/aarch64/sysreg-1.d | 2 +- gas/testsuite/gas/aarch64/sysreg-2.d | 2 +- gas/testsuite/gas/aarch64/sysreg-3.d | 2 +- gas/testsuite/gas/aarch64/sysreg.d | 2 +- gas/testsuite/gas/aarch64/system-2.d | 2 +- gas/testsuite/gas/aarch64/system-3.d | 2 +- gas/testsuite/gas/aarch64/system.d | 66 +- gas/testsuite/gas/aarch64/tail_padding.d | 1 + gas/testsuite/gas/aarch64/tbz_1.d | 4 +- gas/testsuite/gas/aarch64/tlbi_op.d | 2 +- gas/testsuite/gas/aarch64/tls-desc.d | 1 + gas/testsuite/gas/aarch64/tls.d | 32 +- gas/testsuite/gas/aarch64/uao-directive.d | 2 +- gas/testsuite/gas/aarch64/uao.d | 2 +- gas/testsuite/gas/aarch64/virthostext-directive.d | 2 +- gas/testsuite/gas/aarch64/virthostext.d | 2 +- gas/testsuite/gas/arc/add_s-err.s | 2 +- gas/testsuite/gas/arc/cpu-em-err.s | 4 + gas/testsuite/gas/arc/cpu-em4-err.s | 4 + gas/testsuite/gas/arc/cpu-fpuda-err.s | 6 + gas/testsuite/gas/arc/cpu-hs-err.s | 5 + gas/testsuite/gas/arc/cpu-quarkse-err.s | 7 + gas/testsuite/gas/arc/lpcount-err.s | 9 + gas/testsuite/gas/arc/noargs_a7.s | 1 + gas/testsuite/gas/arc/textauxregister-1.d | 10 + gas/testsuite/gas/arc/textauxregister-1.s | 5 + gas/testsuite/gas/arc/textcondcode-err.s | 2 + gas/testsuite/gas/arc/textcoreregister-err.s | 2 + gas/testsuite/gas/arm/armv8_3-a-fp-bad.d | 2 + gas/testsuite/gas/arm/armv8_3-a-fp-bad.l | 7 + gas/testsuite/gas/arm/armv8_3-a-fp-bad.s | 8 + gas/testsuite/gas/arm/armv8_3-a-fp.d | 15 + gas/testsuite/gas/arm/armv8_3-a-fp.s | 8 + gas/testsuite/gas/arm/armv8_3-a-simd-bad.d | 2 + gas/testsuite/gas/arm/armv8_3-a-simd-bad.l | 39 + gas/testsuite/gas/arm/armv8_3-a-simd-bad.s | 51 + gas/testsuite/gas/arm/armv8_3-a-simd.d | 47 + gas/testsuite/gas/arm/armv8_3-a-simd.s | 49 + gas/testsuite/gas/i386/i386.exp | 1 + gas/testsuite/gas/i386/xop32reg.d | 15 + gas/testsuite/gas/i386/xop32reg.s | 13 + gas/testsuite/gas/mips/mips.exp | 5 + .../gas/mips/mips16-branch-unextended-1.d | 3 + .../gas/mips/mips16-branch-unextended-1.s | 8 + .../gas/mips/mips16-branch-unextended-2.d | 3 + .../gas/mips/mips16-branch-unextended-2.s | 8 + gas/testsuite/gas/mips/mips16-branch-unextended.l | 6 + gas/testsuite/gas/mips/mips16-extend.d | 16 + gas/testsuite/gas/mips/mips16-extend.s | 23 + gas/testsuite/gas/mips/mips16-sprel-swap.d | 20 + gas/testsuite/gas/mips/mips16-sprel-swap.s | 24 + gas/testsuite/gas/mmix/err-byte1.s | 5 +- gdb/ChangeLog | 565 +++ gdb/Makefile.in | 4 +- gdb/NEWS | 15 + gdb/aarch64-tdep.c | 196 +- gdb/ada-lang.c | 2 +- gdb/alpha-fbsd-tdep.c | 2 +- gdb/alpha-nbsd-tdep.c | 22 +- gdb/alpha-obsd-tdep.c | 2 +- gdb/amd64-fbsd-tdep.c | 2 +- gdb/amd64-nbsd-tdep.c | 2 +- gdb/amd64-obsd-tdep.c | 55 +- gdb/arm-nbsd-nat.c | 29 - gdb/arm-nbsd-tdep.c | 27 +- gdb/arm-obsd-tdep.c | 15 +- gdb/arm-tdep.c | 60 +- gdb/breakpoint.c | 10 +- gdb/cli-out.c | 46 +- gdb/cli-out.h | 9 +- gdb/cli/cli-script.c | 200 +- gdb/cli/cli-script.h | 6 + gdb/config/i386/i386gnu.mh | 3 + gdb/configure.tgt | 8 +- gdb/cris-tdep.c | 5 +- gdb/darwin-nat-info.c | 5 +- gdb/data-directory/Makefile.in | 3 + gdb/dbxread.c | 201 +- gdb/defs.h | 10 +- gdb/disable-implicit-rules.mk | 27 + gdb/doc/ChangeLog | 16 + gdb/doc/Makefile.in | 3 + gdb/doc/gdb.texinfo | 22 +- gdb/dwarf2loc.c | 24 +- gdb/dwarf2read.c | 33 +- gdb/elfread.c | 2 + gdb/fbsd-tdep.c | 2 +- gdb/frame.c | 5 +- gdb/gdbserver/ChangeLog | 4 + gdb/gdbserver/Makefile.in | 3 + gdb/gnu-nat.c | 174 +- gdb/gnulib/Makefile.in | 3 + gdb/hppa-nbsd-tdep.c | 2 +- gdb/hppa-obsd-tdep.c | 20 +- gdb/hppa-tdep.c | 23 - gdb/i386-bsd-tdep.c | 35 - gdb/i386-fbsd-tdep.c | 16 +- gdb/i386-gnu-nat.c | 26 +- gdb/i386-nbsd-tdep.c | 2 +- gdb/i386-obsd-tdep.c | 71 +- gdb/inferior.c | 18 +- gdb/m68k-bsd-tdep.c | 111 +- gdb/mi/mi-out.c | 80 +- gdb/mips-nbsd-tdep.c | 2 +- gdb/mips64-obsd-tdep.c | 2 +- gdb/osabi.c | 44 +- gdb/ppc-fbsd-tdep.c | 7 +- gdb/ppc-nbsd-tdep.c | 2 +- gdb/ppc-obsd-tdep.c | 22 +- gdb/printcmd.c | 3 + gdb/record-full.c | 2 +- gdb/rl78-tdep.c | 36 +- gdb/rs6000-tdep.c | 3 +- gdb/rx-tdep.c | 103 +- gdb/sh-nbsd-tdep.c | 21 +- gdb/solib.c | 24 +- gdb/sparc-nbsd-tdep.c | 58 +- gdb/sparc-obsd-tdep.c | 4 +- gdb/sparc-tdep.h | 4 +- gdb/sparc64-fbsd-tdep.c | 2 +- gdb/sparc64-nbsd-tdep.c | 2 +- gdb/sparc64-obsd-tdep.c | 2 +- gdb/stabsread.c | 9 +- gdb/symmisc.c | 2 +- gdb/testsuite/ChangeLog | 858 ++++ gdb/testsuite/Makefile.in | 3 + gdb/testsuite/gdb.ada/array_return.exp | 8 +- gdb/testsuite/gdb.ada/assign_1.exp | 2 +- gdb/testsuite/gdb.ada/boolean_expr.exp | 2 +- gdb/testsuite/gdb.ada/catch_ex.exp | 6 +- gdb/testsuite/gdb.ada/expr_delims.exp | 10 +- gdb/testsuite/gdb.ada/info_exc.exp | 2 +- gdb/testsuite/gdb.ada/mi_catch_ex.exp | 6 +- gdb/testsuite/gdb.ada/mi_dyn_arr.exp | 4 +- gdb/testsuite/gdb.ada/mi_ex_cond.exp | 2 +- gdb/testsuite/gdb.ada/mi_exc_info.exp | 2 +- gdb/testsuite/gdb.ada/mi_interface.exp | 4 +- gdb/testsuite/gdb.ada/mi_task_arg.exp | 2 +- gdb/testsuite/gdb.ada/mi_task_info.exp | 2 +- gdb/testsuite/gdb.ada/mi_var_array.exp | 4 +- gdb/testsuite/gdb.ada/start.exp | 4 +- gdb/testsuite/gdb.ada/watch_arg.exp | 4 +- gdb/testsuite/gdb.arch/alpha-step.exp | 6 +- gdb/testsuite/gdb.arch/altivec-regs.exp | 4 +- gdb/testsuite/gdb.arch/amd64-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/arm-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp | 4 +- gdb/testsuite/gdb.arch/e500-prologue.exp | 2 +- gdb/testsuite/gdb.arch/e500-regs.exp | 4 +- gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp | 10 +- gdb/testsuite/gdb.arch/gdb1291.exp | 2 +- gdb/testsuite/gdb.arch/gdb1431.exp | 2 +- gdb/testsuite/gdb.arch/gdb1558.exp | 4 +- gdb/testsuite/gdb.arch/i386-bp_permanent.exp | 4 +- gdb/testsuite/gdb.arch/i386-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/i386-dr3-watch.exp | 2 +- gdb/testsuite/gdb.arch/i386-float.exp | 2 +- gdb/testsuite/gdb.arch/i386-gnu-cfi.exp | 8 +- gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp | 6 +- gdb/testsuite/gdb.arch/i386-mpx.exp | 16 +- gdb/testsuite/gdb.arch/i386-permbkpt.exp | 4 +- gdb/testsuite/gdb.arch/i386-sse-stack-align.exp | 2 +- gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp | 2 +- gdb/testsuite/gdb.arch/mips16-thunks.exp | 10 +- gdb/testsuite/gdb.arch/pa-nullify.exp | 8 +- gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-d128-regs.exp | 12 +- gdb/testsuite/gdb.arch/powerpc-power.exp | 2 +- gdb/testsuite/gdb.arch/ppc-dfp.exp | 4 +- gdb/testsuite/gdb.arch/s390-tdbregs.exp | 4 +- gdb/testsuite/gdb.arch/spu-info.exp | 2 +- gdb/testsuite/gdb.arch/spu-ls.exp | 2 +- gdb/testsuite/gdb.arch/thumb-bx-pc.exp | 2 +- gdb/testsuite/gdb.arch/vsx-regs.exp | 4 +- gdb/testsuite/gdb.base/advance.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-0.exp | 17 + gdb/testsuite/gdb.base/all-architectures-1.exp | 17 + gdb/testsuite/gdb.base/all-architectures-2.exp | 17 + gdb/testsuite/gdb.base/all-architectures-3.exp | 17 + gdb/testsuite/gdb.base/all-architectures-4.exp | 17 + gdb/testsuite/gdb.base/all-architectures-5.exp | 17 + gdb/testsuite/gdb.base/all-architectures-6.exp | 17 + gdb/testsuite/gdb.base/all-architectures-7.exp | 17 + gdb/testsuite/gdb.base/all-architectures.exp.in | 336 ++ .../gdb.base/annota-input-while-running.exp | 2 +- gdb/testsuite/gdb.base/annota1.exp | 2 +- gdb/testsuite/gdb.base/annota3.exp | 2 +- gdb/testsuite/gdb.base/arrayidx.exp | 10 +- gdb/testsuite/gdb.base/asmlabel.exp | 2 +- gdb/testsuite/gdb.base/assign.exp | 2 +- gdb/testsuite/gdb.base/async.exp | 2 +- gdb/testsuite/gdb.base/attach-wait-input.exp | 2 +- gdb/testsuite/gdb.base/attach.exp | 4 +- .../gdb.base/auto-connect-native-target.exp | 8 +- gdb/testsuite/gdb.base/auxv.exp | 2 +- gdb/testsuite/gdb.base/bang.exp | 2 +- .../gdb.base/batch-preserve-term-settings.exp | 2 +- gdb/testsuite/gdb.base/bfp-test.exp | 20 +- gdb/testsuite/gdb.base/bigcore.exp | 8 +- gdb/testsuite/gdb.base/bitfields2.exp | 2 +- gdb/testsuite/gdb.base/bp-permanent.exp | 2 +- gdb/testsuite/gdb.base/break-always.exp | 2 +- gdb/testsuite/gdb.base/break-fun-addr.exp | 4 +- gdb/testsuite/gdb.base/break-idempotent.exp | 4 +- .../gdb.base/break-main-file-remove-fail.exp | 2 +- gdb/testsuite/gdb.base/break-probes.exp | 2 +- gdb/testsuite/gdb.base/break-unload-file.exp | 2 +- gdb/testsuite/gdb.base/break.exp | 16 +- gdb/testsuite/gdb.base/breakpoint-shadow.exp | 4 +- gdb/testsuite/gdb.base/call-ar-st.exp | 2 +- gdb/testsuite/gdb.base/call-rt-st.exp | 4 +- gdb/testsuite/gdb.base/call-sc.exp | 2 +- gdb/testsuite/gdb.base/call-signal-resume.exp | 4 +- gdb/testsuite/gdb.base/call-strs.exp | 2 +- gdb/testsuite/gdb.base/callexit.exp | 6 +- gdb/testsuite/gdb.base/callfuncs.exp | 6 +- gdb/testsuite/gdb.base/catch-fork-kill.exp | 2 +- .../gdb.base/catch-gdb-caused-signals.exp | 2 +- .../gdb.base/catch-signal-siginfo-cond.exp | 2 +- gdb/testsuite/gdb.base/catch-syscall.exp | 2 +- gdb/testsuite/gdb.base/charset.exp | 6 +- gdb/testsuite/gdb.base/checkpoint.exp | 16 +- gdb/testsuite/gdb.base/commands.exp | 138 +- gdb/testsuite/gdb.base/compare-sections.exp | 2 +- gdb/testsuite/gdb.base/completion.exp | 2 +- gdb/testsuite/gdb.base/comprdebug.exp | 4 +- gdb/testsuite/gdb.base/cond-eval-mode.exp | 2 +- gdb/testsuite/gdb.base/condbreak-call-false.exp | 2 +- gdb/testsuite/gdb.base/consecutive-step-over.exp | 2 +- gdb/testsuite/gdb.base/constvars.exp | 2 +- gdb/testsuite/gdb.base/coredump-filter.exp | 2 +- gdb/testsuite/gdb.base/cursal.exp | 2 +- gdb/testsuite/gdb.base/cvexpr.exp | 2 +- gdb/testsuite/gdb.base/debug-expr.exp | 2 +- gdb/testsuite/gdb.base/del.exp | 2 +- gdb/testsuite/gdb.base/detach.exp | 2 +- gdb/testsuite/gdb.base/dfp-test.exp | 18 +- gdb/testsuite/gdb.base/disabled-location.exp | 2 +- gdb/testsuite/gdb.base/disasm-end-cu.exp | 10 +- gdb/testsuite/gdb.base/display.exp | 4 +- gdb/testsuite/gdb.base/dmsym.exp | 6 +- .../gdb.base/double-prompt-target-event-error.exp | 2 +- gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp | 2 +- gdb/testsuite/gdb.base/dprintf-detach.exp | 2 +- gdb/testsuite/gdb.base/dprintf-next.exp | 2 +- gdb/testsuite/gdb.base/dprintf-non-stop.exp | 4 +- gdb/testsuite/gdb.base/dprintf-pending.exp | 2 +- gdb/testsuite/gdb.base/dso2dso.exp | 4 +- gdb/testsuite/gdb.base/dtrace-probe.exp | 2 +- gdb/testsuite/gdb.base/dump.exp | 4 +- gdb/testsuite/gdb.base/echo.exp | 2 +- gdb/testsuite/gdb.base/ending-run.exp | 6 +- gdb/testsuite/gdb.base/enum_cond.exp | 2 +- gdb/testsuite/gdb.base/eval.exp | 6 +- gdb/testsuite/gdb.base/examine-backward.exp | 2 +- gdb/testsuite/gdb.base/exe-lock.exp | 2 +- gdb/testsuite/gdb.base/exec-invalid-sysroot.exp | 6 +- .../gdb.base/execl-update-breakpoints.exp | 8 +- gdb/testsuite/gdb.base/execution-termios.exp | 2 +- gdb/testsuite/gdb.base/expand-psymtabs.exp | 2 +- gdb/testsuite/gdb.base/exprs.exp | 2 +- gdb/testsuite/gdb.base/fileio.exp | 4 +- gdb/testsuite/gdb.base/find.exp | 2 +- gdb/testsuite/gdb.base/finish.exp | 2 +- gdb/testsuite/gdb.base/fixsection.exp | 4 +- gdb/testsuite/gdb.base/float128.exp | 12 +- gdb/testsuite/gdb.base/floatn.exp | 40 +- gdb/testsuite/gdb.base/foll-exec-mode.exp | 6 +- gdb/testsuite/gdb.base/foll-exec.exp | 12 +- gdb/testsuite/gdb.base/foll-vfork.exp | 4 +- gdb/testsuite/gdb.base/fork-running-state.exp | 2 +- gdb/testsuite/gdb.base/frame-args.exp | 2 +- gdb/testsuite/gdb.base/fullpath-expand.exp | 2 +- gdb/testsuite/gdb.base/func-ptr.exp | 2 +- gdb/testsuite/gdb.base/gcore-buffer-overflow.exp | 2 +- gdb/testsuite/gdb.base/gcore-relro-pie.exp | 2 +- gdb/testsuite/gdb.base/gcore.exp | 4 +- gdb/testsuite/gdb.base/gdb1056.exp | 2 +- gdb/testsuite/gdb.base/gdb1090.exp | 2 +- gdb/testsuite/gdb.base/gdb11531.exp | 2 +- gdb/testsuite/gdb.base/gdb1250.exp | 2 +- gdb/testsuite/gdb.base/gdb1555.exp | 2 +- .../gdb.base/global-var-nested-by-dso.exp | 4 +- gdb/testsuite/gdb.base/gnu-ifunc.exp | 6 +- gdb/testsuite/gdb.base/hashline1.exp | 2 +- gdb/testsuite/gdb.base/hashline2.exp | 2 +- gdb/testsuite/gdb.base/hashline3.exp | 2 +- .../gdb.base/hbreak-in-shr-unsupported.exp | 4 +- gdb/testsuite/gdb.base/hbreak-unmapped.exp | 4 +- gdb/testsuite/gdb.base/hook-stop.exp | 2 +- gdb/testsuite/gdb.base/huge.exp | 4 +- gdb/testsuite/gdb.base/infcall-input.exp | 4 +- gdb/testsuite/gdb.base/info-fun.exp | 6 +- gdb/testsuite/gdb.base/info-shared.exp | 4 +- gdb/testsuite/gdb.base/interrupt-noterm.exp | 2 +- gdb/testsuite/gdb.base/jit-simple.exp | 4 +- gdb/testsuite/gdb.base/jit-so.exp | 13 +- gdb/testsuite/gdb.base/jit.exp | 7 +- gdb/testsuite/gdb.base/jump.exp | 2 +- gdb/testsuite/gdb.base/label.exp | 2 +- gdb/testsuite/gdb.base/line-symtabs.exp | 2 +- gdb/testsuite/gdb.base/lineinc.exp | 2 +- gdb/testsuite/gdb.base/list.exp | 2 +- gdb/testsuite/gdb.base/logical.exp | 2 +- gdb/testsuite/gdb.base/longjmp.exp | 4 +- gdb/testsuite/gdb.base/macscp.exp | 6 +- gdb/testsuite/gdb.base/maint.exp | 29 +- gdb/testsuite/gdb.base/max-value-size.exp | 2 +- gdb/testsuite/gdb.base/miscexprs.exp | 2 +- gdb/testsuite/gdb.base/multi-forks.exp | 16 +- gdb/testsuite/gdb.base/new-ui-echo.exp | 2 +- gdb/testsuite/gdb.base/new-ui-pending-input.exp | 2 +- gdb/testsuite/gdb.base/new-ui.exp | 2 +- gdb/testsuite/gdb.base/nodebug.exp | 2 +- gdb/testsuite/gdb.base/nofield.exp | 2 +- gdb/testsuite/gdb.base/offsets.exp | 2 +- gdb/testsuite/gdb.base/overlays.exp | 24 +- .../gdb.base/paginate-after-ctrl-c-running.exp | 2 +- gdb/testsuite/gdb.base/paginate-bg-execution.exp | 4 +- gdb/testsuite/gdb.base/paginate-inferior-exit.exp | 2 +- gdb/testsuite/gdb.base/pending.exp | 10 +- gdb/testsuite/gdb.base/pointers.exp | 2 +- gdb/testsuite/gdb.base/pr11022.exp | 4 +- gdb/testsuite/gdb.base/printcmds.exp | 8 +- gdb/testsuite/gdb.base/prologue.exp | 2 +- gdb/testsuite/gdb.base/ptr-typedef.exp | 4 +- gdb/testsuite/gdb.base/ptype.exp | 2 +- gdb/testsuite/gdb.base/radix.exp | 10 +- gdb/testsuite/gdb.base/randomize.exp | 6 +- gdb/testsuite/gdb.base/range-stepping.exp | 2 +- gdb/testsuite/gdb.base/realname-expand.exp | 4 +- gdb/testsuite/gdb.base/relativedebug.exp | 2 +- gdb/testsuite/gdb.base/relocate.exp | 2 +- gdb/testsuite/gdb.base/remote.exp | 4 +- gdb/testsuite/gdb.base/reread.exp | 4 +- gdb/testsuite/gdb.base/return2.exp | 4 +- gdb/testsuite/gdb.base/savedregs.exp | 4 +- gdb/testsuite/gdb.base/sep.exp | 2 +- gdb/testsuite/gdb.base/sepdebug.exp | 14 +- gdb/testsuite/gdb.base/sepsymtab.exp | 2 +- gdb/testsuite/gdb.base/set-inferior-tty.exp | 2 +- gdb/testsuite/gdb.base/set-noassign.exp | 2 +- gdb/testsuite/gdb.base/setshow.exp | 2 +- gdb/testsuite/gdb.base/shlib-call.exp | 2 +- gdb/testsuite/gdb.base/shreloc.exp | 12 +- gdb/testsuite/gdb.base/sigaltstack.exp | 2 +- gdb/testsuite/gdb.base/sigbpt.exp | 4 +- gdb/testsuite/gdb.base/siginfo-addr.exp | 2 +- gdb/testsuite/gdb.base/siginfo-obj.exp | 10 +- gdb/testsuite/gdb.base/siginfo-thread.exp | 8 +- gdb/testsuite/gdb.base/signals.exp | 2 +- gdb/testsuite/gdb.base/signest.exp | 2 +- gdb/testsuite/gdb.base/signull.exp | 4 +- gdb/testsuite/gdb.base/sigrepeat.exp | 2 +- gdb/testsuite/gdb.base/skip.exp | 20 +- gdb/testsuite/gdb.base/so-impl-ld.exp | 2 +- gdb/testsuite/gdb.base/solib-corrupted.exp | 2 +- gdb/testsuite/gdb.base/solib-disc.exp | 2 +- gdb/testsuite/gdb.base/solib-display.exp | 14 +- gdb/testsuite/gdb.base/solib-overlap.exp | 6 +- gdb/testsuite/gdb.base/solib-search.exp | 6 +- gdb/testsuite/gdb.base/solib-symbol.exp | 4 +- gdb/testsuite/gdb.base/source-execution.exp | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp | 2 +- gdb/testsuite/gdb.base/stack-checking.exp | 2 +- gdb/testsuite/gdb.base/stale-infcall.exp | 2 +- gdb/testsuite/gdb.base/step-break.exp | 2 +- gdb/testsuite/gdb.base/step-line.exp | 2 +- gdb/testsuite/gdb.base/step-over-exit.exp | 2 +- gdb/testsuite/gdb.base/step-test.exp | 2 +- gdb/testsuite/gdb.base/structs.exp | 4 +- gdb/testsuite/gdb.base/structs2.exp | 2 +- gdb/testsuite/gdb.base/sym-file.exp | 2 +- gdb/testsuite/gdb.base/symtab-search-order.exp | 4 +- gdb/testsuite/gdb.base/term.exp | 2 +- gdb/testsuite/gdb.base/testenv.exp | 22 +- gdb/testsuite/gdb.base/twice.exp | 2 +- gdb/testsuite/gdb.base/type-opaque.exp | 2 +- gdb/testsuite/gdb.base/unload.exp | 2 +- gdb/testsuite/gdb.base/until-nodebug.exp | 2 +- gdb/testsuite/gdb.base/until.exp | 2 +- gdb/testsuite/gdb.base/unwindonsignal.exp | 4 +- gdb/testsuite/gdb.base/varargs.exp | 2 +- gdb/testsuite/gdb.base/watch-cond.exp | 6 +- gdb/testsuite/gdb.base/watch-non-mem.exp | 2 +- gdb/testsuite/gdb.base/watch_thread_num.exp | 12 +- gdb/testsuite/gdb.base/watchpoint-cond-gone.exp | 4 +- gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-solib.exp | 2 +- gdb/testsuite/gdb.base/watchpoint.exp | 16 +- gdb/testsuite/gdb.base/watchpoints.exp | 14 +- gdb/testsuite/gdb.base/whatis.exp | 2 +- gdb/testsuite/gdb.base/wrong_frame_bt_full.exp | 2 +- gdb/testsuite/gdb.btrace/dlopen.exp | 2 +- gdb/testsuite/gdb.cell/arch.exp | 14 +- gdb/testsuite/gdb.cell/break.exp | 12 +- gdb/testsuite/gdb.cell/bt.exp | 12 +- gdb/testsuite/gdb.cell/core.exp | 6 +- gdb/testsuite/gdb.cell/data.exp | 8 +- gdb/testsuite/gdb.cell/dwarfaddr.exp | 4 +- gdb/testsuite/gdb.cell/ea-cache.exp | 10 +- gdb/testsuite/gdb.cell/ea-standalone.exp | 4 +- gdb/testsuite/gdb.cell/ea-test.exp | 4 +- gdb/testsuite/gdb.cell/f-regs.exp | 8 +- gdb/testsuite/gdb.cell/fork.exp | 8 +- gdb/testsuite/gdb.cell/gcore.exp | 8 +- gdb/testsuite/gdb.cell/mem-access.exp | 8 +- gdb/testsuite/gdb.cell/ptype.exp | 8 +- gdb/testsuite/gdb.cell/registers.exp | 8 +- gdb/testsuite/gdb.cell/sizeof.exp | 8 +- gdb/testsuite/gdb.cell/solib-symbol.exp | 8 +- gdb/testsuite/gdb.cell/solib.exp | 8 +- gdb/testsuite/gdb.compile/compile-tls.exp | 2 +- gdb/testsuite/gdb.compile/compile.exp | 16 +- gdb/testsuite/gdb.cp/arg-reference.exp | 2 +- gdb/testsuite/gdb.cp/baseenum.exp | 2 +- gdb/testsuite/gdb.cp/dispcxx.exp | 2 +- gdb/testsuite/gdb.cp/exception.exp | 4 +- gdb/testsuite/gdb.cp/gdb2384.exp | 2 +- gdb/testsuite/gdb.cp/gdb2495.exp | 28 +- gdb/testsuite/gdb.cp/local.exp | 4 +- gdb/testsuite/gdb.cp/mb-inline.exp | 2 +- gdb/testsuite/gdb.cp/mb-templates.exp | 2 +- gdb/testsuite/gdb.cp/method2.exp | 2 +- gdb/testsuite/gdb.cp/nextoverthrow.exp | 2 +- gdb/testsuite/gdb.cp/operator.exp | 2 +- gdb/testsuite/gdb.cp/ovldbreak.exp | 8 +- gdb/testsuite/gdb.cp/pr10687.exp | 2 +- gdb/testsuite/gdb.cp/pr10728.exp | 6 +- gdb/testsuite/gdb.cp/pr9167.exp | 2 +- gdb/testsuite/gdb.cp/scope-err.exp | 2 +- gdb/testsuite/gdb.cp/shadow.exp | 10 +- gdb/testsuite/gdb.cp/templates.exp | 2 +- gdb/testsuite/gdb.cp/virtfunc.exp | 2 +- gdb/testsuite/gdb.disasm/am33.exp | 2 +- gdb/testsuite/gdb.disasm/h8300s.exp | 2 +- gdb/testsuite/gdb.disasm/mn10300.exp | 2 +- gdb/testsuite/gdb.disasm/sh3.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp | 8 +- gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp | 2 +- .../gdb.dwarf2/dw2-single-line-discriminators.exp | 2 +- gdb/testsuite/gdb.dwarf2/main-subprogram.c | 29 + gdb/testsuite/gdb.dwarf2/main-subprogram.exp | 73 + gdb/testsuite/gdb.fortran/complex.exp | 2 +- gdb/testsuite/gdb.fortran/library-module.exp | 4 +- gdb/testsuite/gdb.gdb/selftest.exp | 2 +- gdb/testsuite/gdb.gdb/xfullpath.exp | 2 +- gdb/testsuite/gdb.go/chan.exp | 4 +- gdb/testsuite/gdb.go/hello.exp | 6 +- gdb/testsuite/gdb.go/integers.exp | 18 +- gdb/testsuite/gdb.go/methods.exp | 4 +- gdb/testsuite/gdb.go/package.exp | 2 +- gdb/testsuite/gdb.guile/guile.exp | 2 +- gdb/testsuite/gdb.guile/scm-cmd.exp | 2 +- gdb/testsuite/gdb.guile/scm-frame-inline.exp | 2 +- gdb/testsuite/gdb.guile/scm-objfile.exp | 2 +- gdb/testsuite/gdb.guile/scm-parameter.exp | 8 +- gdb/testsuite/gdb.guile/scm-pretty-print.exp | 2 +- gdb/testsuite/gdb.guile/scm-progspace.exp | 6 +- gdb/testsuite/gdb.guile/scm-symbol.exp | 2 +- gdb/testsuite/gdb.guile/scm-type.exp | 2 +- gdb/testsuite/gdb.guile/scm-value.exp | 8 +- gdb/testsuite/gdb.linespec/keywords.exp | 2 +- gdb/testsuite/gdb.linespec/linespec.exp | 2 +- gdb/testsuite/gdb.linespec/ls-errs.exp | 2 +- gdb/testsuite/gdb.linespec/macro-relative.exp | 2 +- gdb/testsuite/gdb.linespec/thread.exp | 2 +- gdb/testsuite/gdb.mi/gdb701.exp | 2 +- gdb/testsuite/gdb.mi/gdb792.exp | 2 +- gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp | 4 +- gdb/testsuite/gdb.mi/mi-dprintf-pending.exp | 4 +- gdb/testsuite/gdb.mi/mi-dprintf.exp | 2 +- gdb/testsuite/gdb.mi/mi-exit-code.exp | 2 +- gdb/testsuite/gdb.mi/mi-fullname-deleted.exp | 4 +- gdb/testsuite/gdb.mi/mi-logging.exp | 8 +- gdb/testsuite/gdb.mi/mi-pending.exp | 8 +- gdb/testsuite/gdb.mi/mi-solib.exp | 2 +- gdb/testsuite/gdb.mi/new-ui-mi-sync.exp | 4 +- gdb/testsuite/gdb.mi/pr11022.exp | 2 +- .../gdb.mi/user-selected-context-sync.exp | 6 +- gdb/testsuite/gdb.multi/dummy-frame-restore.exp | 4 +- gdb/testsuite/gdb.multi/multi-arch-exec.exp | 2 +- gdb/testsuite/gdb.multi/remove-inferiors.exp | 2 +- gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp | 2 +- gdb/testsuite/gdb.objc/basicclass.exp | 8 +- gdb/testsuite/gdb.opencl/datatypes.exp | 6 +- gdb/testsuite/gdb.opt/clobbered-registers-O2.exp | 2 +- gdb/testsuite/gdb.opt/solib-intra-step.exp | 2 +- gdb/testsuite/gdb.pascal/floats.exp | 28 +- gdb/testsuite/gdb.pascal/hello.exp | 4 +- gdb/testsuite/gdb.pascal/integers.exp | 18 +- gdb/testsuite/gdb.perf/backtrace.exp | 2 +- gdb/testsuite/gdb.perf/single-step.exp | 2 +- gdb/testsuite/gdb.perf/skip-command.exp | 2 +- gdb/testsuite/gdb.perf/skip-prologue.exp | 11 +- gdb/testsuite/gdb.perf/solib.exp | 2 +- gdb/testsuite/gdb.python/lib-types.exp | 2 +- gdb/testsuite/gdb.python/py-as-string.exp | 2 +- gdb/testsuite/gdb.python/py-bad-printers.exp | 2 +- gdb/testsuite/gdb.python/py-block.exp | 24 +- gdb/testsuite/gdb.python/py-breakpoint.exp | 20 +- gdb/testsuite/gdb.python/py-cmd.exp | 4 +- gdb/testsuite/gdb.python/py-events.exp | 4 +- gdb/testsuite/gdb.python/py-evsignal.exp | 2 +- gdb/testsuite/gdb.python/py-evthreads.exp | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint.exp | 16 +- gdb/testsuite/gdb.python/py-finish-breakpoint2.exp | 2 +- gdb/testsuite/gdb.python/py-frame-inline.exp | 2 +- gdb/testsuite/gdb.python/py-frame.exp | 2 +- .../gdb.python/py-framefilter-invalidarg.exp | 4 +- gdb/testsuite/gdb.python/py-framefilter.exp | 6 +- gdb/testsuite/gdb.python/py-function.exp | 4 +- gdb/testsuite/gdb.python/py-inferior.exp | 2 +- gdb/testsuite/gdb.python/py-infthread.exp | 2 +- gdb/testsuite/gdb.python/py-linetable.exp | 4 +- gdb/testsuite/gdb.python/py-mi.exp | 2 +- gdb/testsuite/gdb.python/py-objfile.exp | 4 +- gdb/testsuite/gdb.python/py-parameter.exp | 82 +- gdb/testsuite/gdb.python/py-pp-maint.exp | 2 +- gdb/testsuite/gdb.python/py-pp-registration.exp | 2 +- gdb/testsuite/gdb.python/py-prettyprint.exp | 2 +- gdb/testsuite/gdb.python/py-recurse-unwind.exp | 2 +- gdb/testsuite/gdb.python/py-shared.exp | 6 +- gdb/testsuite/gdb.python/py-symbol.exp | 74 +- gdb/testsuite/gdb.python/py-symtab.exp | 40 +- gdb/testsuite/gdb.python/py-template.exp | 2 +- gdb/testsuite/gdb.python/py-type.exp | 60 +- gdb/testsuite/gdb.python/py-unwind-maint.exp | 2 +- gdb/testsuite/gdb.python/py-unwind.exp | 2 +- gdb/testsuite/gdb.python/py-value.exp | 52 +- gdb/testsuite/gdb.python/py-xmethods.exp | 70 +- gdb/testsuite/gdb.python/python.exp | 70 +- gdb/testsuite/gdb.reverse/break-precsave.exp | 4 +- gdb/testsuite/gdb.reverse/break-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/consecutive-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/consecutive-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/finish-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp | 4 +- gdb/testsuite/gdb.reverse/finish-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/fstatat-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/getresuid-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/i386-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/i386-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/i386-sse-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/i387-stack-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/insn-reverse.exp | 4 +- .../gdb.reverse/machinestate-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/machinestate.exp | 2 +- .../gdb.reverse/next-reverse-bkpt-over-sr.exp | 4 +- gdb/testsuite/gdb.reverse/pipe-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/readv-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/recvmsg-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/rerun-prec.exp | 2 +- gdb/testsuite/gdb.reverse/s390-mvcle.exp | 2 +- gdb/testsuite/gdb.reverse/sigall-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/sigall-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/solib-precsave.exp | 12 +- gdb/testsuite/gdb.reverse/solib-reverse.exp | 8 +- gdb/testsuite/gdb.reverse/step-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/step-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/time-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/until-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/until-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/waitpid-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/watch-precsave.exp | 6 +- gdb/testsuite/gdb.reverse/watch-reverse.exp | 2 +- gdb/testsuite/gdb.server/solib-list.exp | 2 +- gdb/testsuite/gdb.stabs/gdb11479.exp | 6 +- gdb/testsuite/gdb.stabs/weird.exp | 12 +- gdb/testsuite/gdb.threads/fork-child-threads.exp | 2 +- gdb/testsuite/gdb.threads/fork-plus-threads.exp | 2 +- gdb/testsuite/gdb.threads/fork-thread-pending.exp | 4 +- .../forking-threads-plus-breakpoint.exp | 4 +- gdb/testsuite/gdb.threads/hand-call-in-threads.exp | 4 +- .../gdb.threads/interrupted-hand-call.exp | 4 +- gdb/testsuite/gdb.threads/leader-exit.exp | 2 +- gdb/testsuite/gdb.threads/linux-dp.exp | 2 +- .../gdb.threads/local-watch-wrong-thread.exp | 2 +- .../next-while-other-thread-longjmps.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exit.exp | 2 +- gdb/testsuite/gdb.threads/pending-step.exp | 2 +- gdb/testsuite/gdb.threads/print-threads.exp | 8 +- .../gdb.threads/process-dies-while-detaching.exp | 6 +- .../gdb.threads/process-dies-while-handling-bp.exp | 2 +- gdb/testsuite/gdb.threads/pthreads.exp | 8 +- gdb/testsuite/gdb.threads/queue-signal.exp | 2 +- gdb/testsuite/gdb.threads/reconnect-signal.exp | 4 +- .../gdb.threads/signal-command-handle-nopass.exp | 2 +- .../signal-command-multiple-signals-pending.exp | 2 +- .../gdb.threads/signal-delivered-right-thread.exp | 2 +- gdb/testsuite/gdb.threads/signal-sigtrap.exp | 2 +- gdb/testsuite/gdb.threads/sigthread.exp | 2 +- gdb/testsuite/gdb.threads/staticthreads.exp | 4 +- gdb/testsuite/gdb.threads/stepi-random-signal.exp | 2 +- .../gdb.threads/thread-unwindonsignal.exp | 4 +- gdb/testsuite/gdb.threads/thread_check.exp | 2 +- gdb/testsuite/gdb.threads/thread_events.exp | 2 +- gdb/testsuite/gdb.threads/tid-reuse.exp | 2 +- gdb/testsuite/gdb.threads/tls-nodebug.exp | 2 +- gdb/testsuite/gdb.threads/tls-shared.exp | 2 +- gdb/testsuite/gdb.threads/tls-so_extern.exp | 2 +- gdb/testsuite/gdb.threads/tls.exp | 8 +- gdb/testsuite/gdb.threads/watchpoint-fork.exp | 4 +- gdb/testsuite/gdb.threads/wp-replication.exp | 6 +- gdb/testsuite/gdb.trace/actions-changed.exp | 4 +- gdb/testsuite/gdb.trace/actions.exp | 8 +- gdb/testsuite/gdb.trace/ax.exp | 2 +- gdb/testsuite/gdb.trace/backtrace.exp | 10 +- gdb/testsuite/gdb.trace/change-loc.exp | 10 +- gdb/testsuite/gdb.trace/collection.exp | 2 +- gdb/testsuite/gdb.trace/deltrace.exp | 4 +- gdb/testsuite/gdb.trace/disconnected-tracing.exp | 4 +- gdb/testsuite/gdb.trace/entry-values.exp | 6 +- gdb/testsuite/gdb.trace/ftrace-lock.exp | 10 +- gdb/testsuite/gdb.trace/ftrace.exp | 8 +- gdb/testsuite/gdb.trace/infotrace.exp | 6 +- .../gdb.trace/mi-trace-frame-collected.exp | 4 +- gdb/testsuite/gdb.trace/mi-trace-unavailable.exp | 4 +- gdb/testsuite/gdb.trace/mi-traceframe-changed.exp | 4 +- gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp | 10 +- gdb/testsuite/gdb.trace/mi-tsv-changed.exp | 12 +- gdb/testsuite/gdb.trace/no-attach-trace.exp | 4 +- gdb/testsuite/gdb.trace/packetlen.exp | 4 +- gdb/testsuite/gdb.trace/passc-dyn.exp | 4 +- gdb/testsuite/gdb.trace/passcount.exp | 4 +- gdb/testsuite/gdb.trace/pending.exp | 20 +- gdb/testsuite/gdb.trace/pr16508.exp | 2 +- gdb/testsuite/gdb.trace/qtro.exp | 4 +- gdb/testsuite/gdb.trace/range-stepping.exp | 8 +- gdb/testsuite/gdb.trace/read-memory.exp | 4 +- gdb/testsuite/gdb.trace/report.exp | 10 +- gdb/testsuite/gdb.trace/save-trace.exp | 2 +- gdb/testsuite/gdb.trace/signal.exp | 4 +- gdb/testsuite/gdb.trace/stap-trace.exp | 2 +- gdb/testsuite/gdb.trace/status-stop.exp | 8 +- gdb/testsuite/gdb.trace/strace.exp | 14 +- gdb/testsuite/gdb.trace/tfile.exp | 2 +- gdb/testsuite/gdb.trace/tfind.exp | 6 +- gdb/testsuite/gdb.trace/trace-break.exp | 20 +- gdb/testsuite/gdb.trace/trace-condition.exp | 10 +- gdb/testsuite/gdb.trace/trace-enable-disable.exp | 8 +- gdb/testsuite/gdb.trace/trace-mt.exp | 14 +- gdb/testsuite/gdb.trace/tracecmd.exp | 10 +- gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp | 2 +- gdb/testsuite/gdb.trace/tspeed.exp | 4 +- gdb/testsuite/gdb.trace/tstatus.exp | 2 +- gdb/testsuite/gdb.trace/tsv.exp | 20 +- gdb/testsuite/gdb.trace/unavailable.exp | 2 +- gdb/testsuite/gdb.trace/while-dyn.exp | 2 +- gdb/testsuite/gdb.trace/while-stepping.exp | 4 +- gdb/testsuite/lib/gdb-guile.exp | 2 +- gdb/testsuite/lib/gdb.exp | 10 +- gdb/testsuite/lib/mi-support.exp | 8 +- gdb/testsuite/lib/pascal.exp | 2 +- gdb/testsuite/lib/perftest.exp | 2 +- gdb/testsuite/lib/prelink-support.exp | 2 +- gdb/testsuite/lib/selftest-support.exp | 2 +- gdb/tracefile-tfile.c | 2 +- gdb/tracefile.c | 4 +- gdb/tracepoint.c | 88 +- gdb/tracepoint.h | 2 +- gdb/trad-frame.c | 21 +- gdb/trad-frame.h | 1 + gdb/tui/tui-out.c | 4 +- gdb/ui-out.c | 609 ++-- gdb/ui-out.h | 36 +- gdb/valops.c | 1 - gdb/value.c | 63 +- gdb/value.h | 2 +- gdb/vax-nbsd-tdep.c | 2 +- gdb/vax-obsd-tdep.c | 178 - gold/ChangeLog | 178 + gold/Makefile.in | 4 +- gold/aarch64.cc | 2 + gold/arm.cc | 2 + gold/layout.cc | 42 +- gold/layout.h | 2 +- gold/object.cc | 5 +- gold/options.cc | 63 +- gold/options.h | 54 +- gold/output.cc | 65 +- gold/output.h | 4 +- gold/powerpc.cc | 196 +- gold/script-sections.cc | 142 +- gold/target.h | 12 +- gold/testsuite/Makefile.am | 58 + gold/testsuite/Makefile.in | 92 +- gold/testsuite/file_in_many_sections.c | 34 + gold/testsuite/file_in_many_sections_test.sh | 31 + gold/testsuite/pr20717.c | 3 + gold/testsuite/pr20717.sh | 40 + gold/testsuite/pr20717.t | 5 + gold/testsuite/script_test_13.c | 2 + gold/testsuite/script_test_13.sh | 41 + gold/testsuite/script_test_13.t | 7 + gold/testsuite/script_test_15.c | 10 + gold/testsuite/script_test_15a.sh | 41 + gold/testsuite/script_test_15a.t | 40 + gold/testsuite/script_test_15b.sh | 42 + gold/testsuite/script_test_15b.t | 49 + gold/testsuite/script_test_15c.sh | 42 + gold/testsuite/script_test_15c.t | 41 + gold/testsuite/script_test_2.cc | 18 +- include/ChangeLog | 39 + include/bfdlink.h | 3 + include/elf/mips.h | 2 +- include/opcode/aarch64.h | 6 +- include/opcode/arc.h | 5 + include/opcode/arm.h | 4 + include/opcode/mips.h | 6 +- ld/ChangeLog | 232 + ld/Makefile.am | 10 + ld/Makefile.in | 12 + ld/configure | 2 +- ld/configure.tgt | 7 +- ld/emulparams/arclinux_prof.sh | 1 - ld/emulparams/armelf_fuchsia.sh | 32 + ld/emulparams/armelfb_fuchsia.sh | 2 + ld/emultempl/elf32.em | 6 +- ld/emultempl/ppc64elf.em | 1 - ld/ld.texinfo | 12 + ld/ldctor.c | 15 +- ld/ldexp.c | 14 +- ld/ldlex.h | 1 + ld/ldlex.l | 10 +- ld/ldmain.c | 2 +- ld/lexsup.c | 6 + ld/pe-dll.c | 11 +- ld/scripttempl/pe.sc | 6 +- ld/testsuite/ld-aarch64/aarch64-elf.exp | 271 +- ld/testsuite/ld-aarch64/erratum843419.d | 92 +- ld/testsuite/ld-aarch64/farcall-b-defsym.d | 4 +- ld/testsuite/ld-aarch64/farcall-b-plt.d | 8 +- ld/testsuite/ld-aarch64/farcall-b.d | 6 +- ld/testsuite/ld-aarch64/farcall-bl-defsym.d | 4 +- ld/testsuite/ld-aarch64/farcall-bl-plt.d | 8 +- ld/testsuite/ld-aarch64/farcall-bl.d | 6 +- ld/testsuite/ld-aarch64/ifunc-15.d | 4 +- ld/testsuite/ld-aarch64/ifunc-16.d | 4 +- ld/testsuite/ld-aarch64/ifunc-5a-local.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5b-local.d | 2 +- ld/testsuite/ld-aarch64/ifunc-5b.d | 4 +- ld/testsuite/ld-aarch64/ifunc-5r-local.d | 6 +- ld/testsuite/ld-aarch64/ifunc-6a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-6b.d | 4 +- ld/testsuite/ld-aarch64/ifunc-7a.d | 2 +- ld/testsuite/ld-aarch64/ifunc-7b.d | 2 +- ld/testsuite/ld-aarch64/ifunc-8.d | 2 +- ld/testsuite/ld-aarch64/limit-b.d | 4 +- ld/testsuite/ld-aarch64/limit-bl.d | 4 +- ld/testsuite/ld-aarch64/relocs-ilp32.ld | 19 + ld/testsuite/ld-aarch64/tls-relax-gd-ie-ilp32.d | 10 + .../ld-aarch64/tls-relax-ld-le-small-ilp32.d | 14 + .../ld-aarch64/tls-relax-ld-le-tiny-ilp32.d | 13 + ld/testsuite/ld-cdtest/cdtest-foo.cc | 2 +- ld/testsuite/ld-elf/flags1.d | 1 - ld/testsuite/ld-elf/indirect.exp | 3 + ld/testsuite/ld-elf/indirect1b.c | 3 + ld/testsuite/ld-elf/indirect2.c | 3 + ld/testsuite/ld-elf/indirect3b.c | 3 + ld/testsuite/ld-elf/indirect4b.c | 6 + ld/testsuite/ld-elf/loadaddr1.d | 2 +- ld/testsuite/ld-elf/nobits-1.d | 2 - ld/testsuite/ld-elf/note-1.d | 2 - ld/testsuite/ld-elf/note-2.d | 2 - ld/testsuite/ld-elf/pr18718.c | 3 + ld/testsuite/ld-elf/pr18720.rd | 4 + ld/testsuite/ld-elf/pr18720b.c | 5 + ld/testsuite/ld-elf/pr19553c.c | 3 + ld/testsuite/ld-elf/shared.exp | 4 +- ld/testsuite/ld-elfvers/vers.exp | 32 +- ld/testsuite/ld-elfvers/vers.h | 7 + ld/testsuite/ld-elfvers/vers1.c | 16 +- ld/testsuite/ld-elfvers/vers1.sym | 8 +- ld/testsuite/ld-elfvers/vers15.c | 6 +- ld/testsuite/ld-elfvers/vers15.sym | 6 +- ld/testsuite/ld-elfvers/vers18.c | 8 +- ld/testsuite/ld-elfvers/vers18.sym | 8 +- ld/testsuite/ld-elfvers/vers21.c | 7 +- ld/testsuite/ld-elfvers/vers21.sym | 6 +- ld/testsuite/ld-elfvers/vers22a.c | 2 +- ld/testsuite/ld-elfvers/vers22a.sym | 2 +- ld/testsuite/ld-elfvers/vers23a.c | 2 +- ld/testsuite/ld-elfvers/vers23a.sym | 2 +- ld/testsuite/ld-elfvers/vers27d.sym | 2 +- ld/testsuite/ld-elfvers/vers27d1.c | 2 +- ld/testsuite/ld-elfvers/vers4.c | 2 +- ld/testsuite/ld-elfvers/vers4.sym | 2 +- ld/testsuite/ld-elfvers/vers4a.sym | 2 +- ld/testsuite/ld-elfvers/vers5.c | 8 +- ld/testsuite/ld-elfvers/vers6.c | 8 +- ld/testsuite/ld-elfvers/vers6.sym | 8 +- ld/testsuite/ld-elfvers/vers7a.c | 4 +- ld/testsuite/ld-elfvers/vers7a.sym | 4 +- ld/testsuite/ld-elfvers/vers9.c | 8 +- ld/testsuite/ld-elfvers/vers9.sym | 8 +- ld/testsuite/ld-elfweak/elfweak.exp | 18 +- ld/testsuite/ld-elfweak/strong.sym | 2 +- ld/testsuite/ld-elfweak/strongcomm.sym | 4 +- ld/testsuite/ld-elfweak/strongdata.sym | 4 +- ld/testsuite/ld-ifunc/pr16467b.c | 3 + ld/testsuite/ld-plugin/lto.exp | 12 +- ld/testsuite/ld-plugin/plugin-13.d | 2 +- ld/testsuite/ld-plugin/plugin-14.d | 2 +- ld/testsuite/ld-plugin/plugin-15.d | 2 +- ld/testsuite/ld-plugin/plugin-16.d | 2 +- ld/testsuite/ld-plugin/plugin-20.d | 2 +- ld/testsuite/ld-plugin/plugin-21.d | 2 +- ld/testsuite/ld-plugin/plugin-22.d | 2 +- ld/testsuite/ld-plugin/plugin-23.d | 2 +- ld/testsuite/ld-plugin/plugin-6.d | 2 +- ld/testsuite/ld-plugin/plugin-7.d | 2 +- ld/testsuite/ld-plugin/plugin-8.d | 2 +- ld/testsuite/ld-plugin/plugin.exp | 7 + ld/testsuite/ld-plugin/pr12760b.c | 15 +- ld/testsuite/ld-plugin/pr16746a.c | 8 +- ld/testsuite/ld-plugin/pr16746b.c | 6 + ld/testsuite/ld-powerpc/dotsym1.d | 15 + ld/testsuite/ld-powerpc/dotsym2.d | 16 + ld/testsuite/ld-powerpc/dotsym3.d | 16 + ld/testsuite/ld-powerpc/dotsym4.d | 17 + ld/testsuite/ld-powerpc/dotsymref.s | 4 + ld/testsuite/ld-powerpc/nodotsym.s | 11 + ld/testsuite/ld-powerpc/powerpc.exp | 8 + ld/testsuite/ld-powerpc/tocopt7.d | 54 + ld/testsuite/ld-powerpc/tocopt7.out | 26 + ld/testsuite/ld-powerpc/tocopt7.s | 216 + ld/testsuite/ld-powerpc/tocopt8.d | 46 + ld/testsuite/ld-powerpc/tocopt8.s | 188 + ld/testsuite/ld-powerpc/vle-multiseg-5.d | 6 +- ld/testsuite/ld-scripts/phdrs.exp | 8 - ld/testsuite/ld-scripts/phdrs3a.d | 2 +- ld/testsuite/ld-scripts/pr14962-2.d | 2 +- ld/testsuite/ld-scripts/pr14962.d | 2 +- ld/testsuite/ld-sparc/sparc.exp | 3 + ld/testsuite/ld-sparc/wdispcall.dd | 18 + ld/testsuite/ld-sparc/wdispcall.s | 14 + libiberty/ChangeLog | 22 + libiberty/argv.c | 19 + libiberty/configure | 3 +- libiberty/cp-demangle.c | 61 +- libiberty/testsuite/demangle-expected | 29 + opcodes/ChangeLog | 180 + opcodes/aarch64-asm-2.c | 4 +- opcodes/aarch64-asm.c | 16 +- opcodes/aarch64-dis-2.c | 4 +- opcodes/aarch64-opc-2.c | 4 +- opcodes/aarch64-opc.c | 17 +- opcodes/aarch64-tbl.h | 12 +- opcodes/arc-dis.c | 99 +- opcodes/arc-opc.c | 83 +- opcodes/arc-tbl.h | 4472 ++++++++++---------- opcodes/arm-dis.c | 36 +- opcodes/i386-dis.c | 15 +- opcodes/mips-dis.c | 143 +- opcodes/mips16-opc.c | 18 +- opcodes/ppc-dis.c | 2 +- opcodes/rl78-dis.c | 32 +- opcodes/rx-dis.c | 32 +- sim/ChangeLog | 5 + sim/MAINTAINERS | 1 + sim/aarch64/ChangeLog | 16 + sim/aarch64/simulator.c | 69 +- sim/testsuite/sim/aarch64/ChangeLog | 9 + sim/testsuite/sim/aarch64/adds.s | 81 + sim/testsuite/sim/aarch64/fstur.s | 136 + sim/testsuite/sim/aarch64/tbnz.s | 55 + sim/testsuite/sim/aarch64/testutils.inc | 16 +- zlib/configure | 1 - 1021 files changed, 13526 insertions(+), 7076 deletions(-) create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-1.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-1.s create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-2.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-2.s create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-3.d create mode 100644 binutils/testsuite/binutils-all/mips/mips16-extend-noinsn.d create mode 100644 binutils/testsuite/binutils-all/mips/mips16-extend-noinsn.s create mode 100644 binutils/testsuite/binutils-all/mips/mips16-pcrel.d create mode 100644 binutils/testsuite/binutils-all/mips/mips16-pcrel.s create mode 100644 gas/testsuite/gas/arc/cpu-em-err.s create mode 100644 gas/testsuite/gas/arc/cpu-em4-err.s create mode 100644 gas/testsuite/gas/arc/cpu-fpuda-err.s create mode 100644 gas/testsuite/gas/arc/cpu-hs-err.s create mode 100644 gas/testsuite/gas/arc/cpu-quarkse-err.s create mode 100644 gas/testsuite/gas/arc/lpcount-err.s create mode 100644 gas/testsuite/gas/arc/textauxregister-1.d create mode 100644 gas/testsuite/gas/arc/textauxregister-1.s create mode 100644 gas/testsuite/gas/arc/textcondcode-err.s create mode 100644 gas/testsuite/gas/arc/textcoreregister-err.s create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp.d create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp.s create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd.d create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd.s create mode 100644 gas/testsuite/gas/i386/xop32reg.d create mode 100644 gas/testsuite/gas/i386/xop32reg.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-1.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-1.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-2.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-2.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended.l create mode 100644 gas/testsuite/gas/mips/mips16-extend.d create mode 100644 gas/testsuite/gas/mips/mips16-extend.s create mode 100644 gas/testsuite/gas/mips/mips16-sprel-swap.d create mode 100644 gas/testsuite/gas/mips/mips16-sprel-swap.s create mode 100644 gdb/disable-implicit-rules.mk create mode 100644 gdb/testsuite/gdb.base/all-architectures-0.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-1.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-2.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-3.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-4.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-5.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-6.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures-7.exp create mode 100644 gdb/testsuite/gdb.base/all-architectures.exp.in create mode 100644 gdb/testsuite/gdb.dwarf2/main-subprogram.c create mode 100644 gdb/testsuite/gdb.dwarf2/main-subprogram.exp delete mode 100644 gdb/vax-obsd-tdep.c create mode 100644 gold/testsuite/file_in_many_sections.c create mode 100755 gold/testsuite/file_in_many_sections_test.sh create mode 100644 gold/testsuite/pr20717.c create mode 100755 gold/testsuite/pr20717.sh create mode 100644 gold/testsuite/pr20717.t create mode 100644 gold/testsuite/script_test_13.c create mode 100755 gold/testsuite/script_test_13.sh create mode 100644 gold/testsuite/script_test_13.t create mode 100644 gold/testsuite/script_test_15.c create mode 100755 gold/testsuite/script_test_15a.sh create mode 100644 gold/testsuite/script_test_15a.t create mode 100755 gold/testsuite/script_test_15b.sh create mode 100644 gold/testsuite/script_test_15b.t create mode 100755 gold/testsuite/script_test_15c.sh create mode 100644 gold/testsuite/script_test_15c.t create mode 100644 ld/emulparams/armelf_fuchsia.sh create mode 100644 ld/emulparams/armelfb_fuchsia.sh create mode 100644 ld/testsuite/ld-aarch64/relocs-ilp32.ld create mode 100644 ld/testsuite/ld-aarch64/tls-relax-gd-ie-ilp32.d create mode 100644 ld/testsuite/ld-aarch64/tls-relax-ld-le-small-ilp32.d create mode 100644 ld/testsuite/ld-aarch64/tls-relax-ld-le-tiny-ilp32.d create mode 100644 ld/testsuite/ld-elf/pr18720.rd create mode 100644 ld/testsuite/ld-powerpc/dotsym1.d create mode 100644 ld/testsuite/ld-powerpc/dotsym2.d create mode 100644 ld/testsuite/ld-powerpc/dotsym3.d create mode 100644 ld/testsuite/ld-powerpc/dotsym4.d create mode 100644 ld/testsuite/ld-powerpc/dotsymref.s create mode 100644 ld/testsuite/ld-powerpc/nodotsym.s create mode 100644 ld/testsuite/ld-powerpc/tocopt7.d create mode 100644 ld/testsuite/ld-powerpc/tocopt7.out create mode 100644 ld/testsuite/ld-powerpc/tocopt7.s create mode 100644 ld/testsuite/ld-powerpc/tocopt8.d create mode 100644 ld/testsuite/ld-powerpc/tocopt8.s create mode 100644 ld/testsuite/ld-sparc/wdispcall.dd create mode 100644 ld/testsuite/ld-sparc/wdispcall.s create mode 100644 sim/testsuite/sim/aarch64/adds.s create mode 100644 sim/testsuite/sim/aarch64/fstur.s create mode 100644 sim/testsuite/sim/aarch64/tbnz.s First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index 84ad164..1852129 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2016-12-08 Alan Modra <amodra@gmail.com> + + * configure: Regenerate. + +2016-12-02 Josh Conner <joshconner@google.com> + + * configure.ac: Add fuchsia to targets that use ELF. + * configure: Regenerated. + 2016-11-07 Doug Evans <dje@google.com> * config.sub: Sync with upstream version 2016-11-03. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0d79764..8c09c2c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,216 @@ +2016-12-16 fincs <fincs.alt1@gmail.com> + + * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Add handling + for info->gc_keep_exported. + (bfd_elf_gc_sections): Likewise. + +2016-12-15 Alan Modra <amodra@gmail.com> + + PR ld/20968 + PR ld/20908 + * elflink.c (bfd_elf_final_link): Revert 2016-12-02 change. Move + reloc counting code later after ELF flavour test. + +2016-12-14 Maciej W. Rozycki <macro@imgtec.com> + + * bfd-in.h (elf_internal_abiflags_v0): New struct declaration. + (bfd_mips_elf_get_abiflags): New prototype. + * elfxx-mips.c (bfd_mips_elf_get_abiflags): New function. + * bfd-in2.h: Regenerate. + +2016-12-14 Yury Norov <ynorov@caviumnetworks.com> + + * bfd/elfnn-aarch64.c: fix TLS relaxations for ilp32 where + TCB_SIZE is used. + +2016-12-13 Alan Modra <amodra@gmail.com> + + * elf64-hppa.c (elf64_hppa_modify_segment_map): Don't add PHDR + for objcopy/strip or when a ld script specifies PHDRS. + +2016-12-13 Alan Modra <amodra@gmail.com> + + * elf32-rx.c (elf32_rx_modify_program_headers): Don't adjust + segments that include the ELF file header or program headers. + +2016-12-08 Alan Modra <amodra@gmail.com> + + PR ld/20932 + * elflink.c (bfd_elf_record_link_assignment): Handle warning symbols. + +2016-12-07 Nick Clifton <nickc@redhat.com> + + PR ld/20932 + * elflink.c (bfd_elf_record_link_assignment): Replace call to + abort with an error message and error return value. + +2016-12-06 Nick Clifton <nickc@redhat.com> + + PR binutils/20931 + * elf.c (copy_special_section_fields): Check for an invalid + sh_link field before attempting to follow it. + + PR binutils/20929 + * aoutx.h (squirt_out_relocs): Check for relocs without an + associated symbol. + +2016-12-06 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ok_lo_toc_insn): Add r_type param. Recognize + lq,lfq,lxv,lxsd,lxssp,lfdp,stq,stfq,stxv,stxsd,stxssp,stfdp. + Don't match lmd and stmd. + +2016-12-05 Alyssa Milburn <amilburn@zall.org> + + * elfxx-sparc.c: Do not stop processing relocations after + partially relaxing a call with WDISP30. + +2016-12-05 Nick Clifton <nickc@redhat.com> + + PR binutils/20905 + * peicode.h (pe_ILF_object_p): Use strnlen to avoid running over + the end of the string buffer. + + PR binutils/20907 + * peicode.h (pe_ILF_build_a_bfd): Replace abort with error return. + + PR binutils/20921 + * aoutx.h (squirt_out_relocs): Check for and report any relocs + that could not be recognised. + + PR binutils/20922 + * elf.c (find_link): Check for null headers before attempting to + match them. + + PR ld/20925 + * aoutx.h (aout_link_add_symbols): Replace BFD_ASSERT with return + FALSE. + + PR ld/20924 + (aout_link_add_symbols): Fix off by one error checking for + overflow of string offset. + +2016-12-03 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (struct ppc_link_hash_entry): Delete "was_undefined". + (struct ppc_link_hash_table): Delete "twiddled_syms". Add + "need_func_desc_adj". + (lookup_fdh): Link direct fdh sym via oh field and set flags. + (make_fdh): Make strong and weak undefined function descriptor + symbols. + (ppc64_elf_merge_symbol): New function. + (elf_backend_merge_symbol): Define. + (ppc64_elf_archive_symbol_lookup): Don't test undefweak for fake + function descriptors. + (add_symbol_adjust): Don't twiddle symbols to undefweak. + Propagate more ref flags to function descriptor symbol. Make + some function descriptor symbols dynamic. + (ppc64_elf_before_check_relocs): Only run add_symbol_adjust for + ELFv1. Set need_func_desc_adj. Don't fix undefs list. + (ppc64_elf_check_relocs): Set non_ir_ref for descriptors. + Don't call lookup_fdh here. + (ppc64_elf_gc_sections): New function. + (bfd_elf64_bfd_gc_sections): Define. + (ppc64_elf_gc_mark_hook): Mark descriptor. + (func_desc_adjust): Don't make fake function descriptor syms strong + here. Exit earlier on non-dotsyms. Take note of elf.dynamic + flag when deciding whether a dynamic function descriptor might + be needed. Transfer elf.dynamic and set elf.needs_plt. Move + plt regardless of visibility. Make descriptor dynamic if + entry sym is dynamic, not for other cases. + (ppc64_elf_func_desc_adjust): Don't run func_desc_adjust if + already done. + (ppc64_elf_edit_opd): Use oh field rather than lookup_fdh. + (ppc64_elf_size_stubs): Likewise. + (ppc_build_one_stub): Don't clear was_undefined. Only set sym + undefweak if stub symbol is defined. + (undo_symbol_twiddle, ppc64_elf_restore_symbols): Delete. + * elf64-ppc.h (ppc64_elf_restore_symbols): Don't declare. + +2016-12-03 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_hide_symbol): Access hash table as + elf_link_hash_table rather than ppc_link_hash_table. + +2016-12-03 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (add_symbol_adjust): Delete dead code. + +2016-12-03 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (add_symbol_adjust): Correct order of tests for + warning and indirect symbols. + +2016-12-03 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic + flags when direct symbol is versioned_hidden. + +2016-12-02 Nick Clifton <nickc@redhat.com> + + PR ld/20908 + * elflink.c (bfd_elf_final_link): Check for ELF flavour binaries + when following indirect links. + + PR ld/20909 + * aoutx.h (aout_link_add_symbols): Fix off-by-one error in check + for an illegal string offset. + +2016-12-02 Gary Benson <gbenson@redhat.com> + + * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to + elf_parse_notes. + +2016-12-02 Josh Conner <joshconner@google.com> + + * config.bfd: Add support for fuchsia (OS). + +2016-12-01 Yury Norov <ynorov@caviumnetworks.com> + + PR ld/20868 + * elfnn-aarch64.c (elfNN_aarch64_tls_relax): Use 32-bit accesses + to the GOT when operating in 32-bit mode. + +2016-12-01 Ma Jiang <ma.jiang@zte.com.cn> + + PR ld/16720 + * elfxx-mips.c (mips_elf_calculate_relocation): Remove overflow + test for HI16 relocs. + +2016-12-01 Nick Clifton <nickc@redhat.com> + + PR binutils/20891 + * aoutx.h (find_nearest_line): Handle the case where the main file + name and the directory name are both empty. + + PR binutils/20892 + * aoutx.h (find_nearest_line): Handle the case where the function + name is empty. + +2016-11-30 Alan Modra <amodra@gmail.com> + + * elf.c (get_program_header_size): Revert accidental change. + +2016-11-30 Alan Modra <amodra@gmail.com> + + PR ld/20886 + * elf64-ppc.c (ppc64_elf_size_stubs): Make rawsize max size seen + on any pass past STUB_SHRINK_ITER. + +2016-11-28 H.J. Lu <hongjiu.lu@intel.com> + + * elflink.c (_bfd_elf_fix_symbol_flags): Hide hidden versioned + symbol in executable. + (elf_link_output_extsym): Don't change bind from global to + local when linking executable. + +2016-11-28 Nick Clifton <nickc@redhat.com> + + PR ld/20815 + * elf.c (phdr_sorter): Delete. + (assign_file_positions_except_relocs): Do not sort program + headers. + 2016-11-25 Jon Turney <jon.turney@dronecode.org.uk> PR ld/20193 diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 089fe57..c64f288 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -1955,6 +1955,7 @@ NAME (aout, swap_std_reloc_out) (bfd *abfd, PUT_WORD (abfd, g->address, natptr->r_address); + BFD_ASSERT (g->howto != NULL); r_length = g->howto->size ; /* Size as a power of two. */ r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */ /* XXX This relies on relocs coming from a.out files. */ @@ -2393,16 +2394,39 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section) for (natptr = native; count != 0; --count, natptr += each_size, ++generic) - MY_swap_ext_reloc_out (abfd, *generic, - (struct reloc_ext_external *) natptr); + { + /* PR 20921: If the howto field has not been initialised then skip + this reloc. + PR 20929: Similarly for the symbol field. */ + if ((*generic)->howto == NULL + || (*generic)->sym_ptr_ptr == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + _bfd_error_handler (_("\ +%B: attempt to write out unknown reloc type"), abfd); + return FALSE; + } + MY_swap_ext_reloc_out (abfd, *generic, + (struct reloc_ext_external *) natptr); + } } else { for (natptr = native; count != 0; --count, natptr += each_size, ++generic) - MY_swap_std_reloc_out (abfd, *generic, - (struct reloc_std_external *) natptr); + { + if ((*generic)->howto == NULL + || (*generic)->sym_ptr_ptr == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + _bfd_error_handler (_("\ +%B: attempt to write out unknown reloc type"), abfd); + return FALSE; + } + MY_swap_std_reloc_out (abfd, *generic, + (struct reloc_std_external *) natptr); + } } if (bfd_bwrite ((void *) native, natsize, abfd) != natsize) @@ -2666,7 +2690,7 @@ NAME (aout, find_nearest_line) (bfd *abfd, char *buf; *filename_ptr = abfd->filename; - *functionname_ptr = 0; + *functionname_ptr = NULL; *line_ptr = 0; if (disriminator_ptr) *disriminator_ptr = 0; @@ -2811,9 +2835,17 @@ NAME (aout, find_nearest_line) (bfd *abfd, *filename_ptr = main_file_name; else { - sprintf (buf, "%s%s", directory_name, main_file_name); - *filename_ptr = buf; - buf += filelen + 1; + if (buf == NULL) + /* PR binutils/20891: In a corrupt input file both + main_file_name and directory_name can be empty... */ + * filename_ptr = NULL; + else + { + snprintf (buf, filelen + 1, "%s%s", directory_name, + main_file_name); + *filename_ptr = buf; + buf += filelen + 1; + } } } @@ -2822,6 +2854,12 @@ NAME (aout, find_nearest_line) (bfd *abfd, const char *function = func->name; char *colon; + if (buf == NULL) + { + /* PR binutils/20892: In a corrupt input file func can be empty. */ + * functionname_ptr = NULL; + return TRUE; + } /* The caller expects a symbol name. We actually have a function name, without the leading underscore. Put the underscore back in, so that the caller gets a symbol name. */ @@ -3017,10 +3055,9 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info) continue; /* PR 19629: Corrupt binaries can contain illegal string offsets. */ - if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd)) + if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd)) return FALSE; name = strings + GET_WORD (abfd, p->e_strx); - value = GET_WORD (abfd, p->e_value); flags = BSF_GLOBAL; string = NULL; @@ -3076,10 +3113,12 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info) case N_INDR | N_EXT: /* An indirect symbol. The next symbol is the symbol which this one really is. */ - BFD_ASSERT (p + 1 < pend); + /* See PR 20925 for a reproducer. */ + if (p + 1 >= pend) + return FALSE; ++p; /* PR 19629: Corrupt binaries can contain illegal string offsets. */ - if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd)) + if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd)) return FALSE; string = strings + GET_WORD (abfd, p->e_strx); section = bfd_ind_section_ptr; @@ -3115,7 +3154,7 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info) ++p; string = name; /* PR 19629: Corrupt binaries can contain illegal string offsets. */ - if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd)) + if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd)) return FALSE; name = strings + GET_WORD (abfd, p->e_strx); section = bfd_und_section_ptr; diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index 4b3bcfd..14f55ab 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -1045,3 +1045,7 @@ extern bfd_boolean v850_elf_create_sections extern bfd_boolean v850_elf_set_note (bfd *, unsigned int, unsigned int); + +/* MIPS ABI flags data access. For the disassembler. */ +struct elf_internal_abiflags_v0; +extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index fdb7878..1c6b70f 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1052,6 +1052,10 @@ extern bfd_boolean v850_elf_create_sections extern bfd_boolean v850_elf_set_note (bfd *, unsigned int, unsigned int); + +/* MIPS ABI flags data access. For the disassembler. */ +struct elf_internal_abiflags_v0; +extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *); /* Extracted from init.c. */ void bfd_init (void); diff --git a/bfd/config.bfd b/bfd/config.bfd index b692f0a..5bca5d9 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -260,6 +260,11 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec" want64=true ;; + aarch64-*-fuchsia*) + targ_defvec=aarch64_elf64_le_vec + targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec" + want64=true + ;; aarch64-*-cloudabi*) targ_defvec=aarch64_elf64_le_cloudabi_vec targ_selvecs=aarch64_elf64_be_cloudabi_vec @@ -359,6 +364,10 @@ case "${targ}" in targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec" targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" ;; + arm-*-fuchsia*) + targ_defvec=arm_elf32_le_vec + targ_selvecs="arm_elf32_be_vec" + ;; arm-*-nacl*) targ_defvec=arm_elf32_nacl_le_vec targ_selvecs="arm_elf32_nacl_be_vec i386_elf32_nacl_vec" @@ -766,7 +775,7 @@ case "${targ}" in targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec" want64=true ;; - x86_64-*-elf* | x86_64-*-rtems*) + x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia) targ_defvec=x86_64_elf64_vec targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec" want64=true diff --git a/bfd/elf.c b/bfd/elf.c index 936255e..678c043 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -1062,7 +1062,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, if (!bfd_malloc_and_get_section (abfd, newsect, &contents)) return FALSE; - elf_parse_notes (abfd, (char *) contents, hdr->sh_size, -1); + elf_parse_notes (abfd, (char *) contents, hdr->sh_size, hdr->sh_offset); free (contents); } @@ -1271,13 +1271,19 @@ find_link (const bfd * obfd, const Elf_Internal_Shdr * iheader, const unsigned i Elf_Internal_Shdr ** oheaders = elf_elfsections (obfd); unsigned int i; - if (section_match (oheaders[hint], iheader)) + BFD_ASSERT (iheader != NULL); + + /* See PR 20922 for a reproducer of the NULL test. */ + if (oheaders[hint] != NULL + && section_match (oheaders[hint], iheader)) return hint; for (i = 1; i < elf_numsections (obfd); i++) { Elf_Internal_Shdr * oheader = oheaders[i]; + if (oheader == NULL) + continue; if (section_match (oheader, iheader)) /* FIXME: Do we care if there is a potential for multiple matches ? */ @@ -1340,6 +1346,16 @@ copy_special_section_fields (const bfd *ibfd, in the input bfd. */ if (iheader->sh_link != SHN_UNDEF) { + /* See PR 20931 for a reproducer. */ + if (iheader->sh_link >= elf_numsections (ibfd)) + { + (* _bfd_error_handler) + /* xgettext:c-format */ + (_("%B: Invalid sh_link field (%d) in section number %d"), + ibfd, iheader->sh_link, secnum); + return FALSE; + } + sh_link = find_link (obfd, iheaders[iheader->sh_link], iheader->sh_link); if (sh_link != SHN_UNDEF) { @@ -4254,7 +4270,7 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info) PT_INTERP segment. In this case, assume we also need a PT_PHDR segment, although that may not be true for all targets. */ - segs += 3; + segs += 2; } if (bfd_get_section_by_name (abfd, ".dynamic") != NULL) @@ -5854,52 +5870,6 @@ find_section_in_list (unsigned int i, elf_section_list * list) return list; } hooks/post-receive -- Repository for Project Archer.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 250195 bytes --] The branch, users/jkratoch/indexcxx has been updated via 025edc48851da0e21aea57628f5fb8cd305a281f (commit) via 24e5b4e682a92788ffa676e963b7f1dec2101333 (commit) via b67aeab02c05fdd654f132a550dd4f196cb1f6d3 (commit) via 11997a83a040245406b6e2e9978c6720f17e80c4 (commit) via 79778b30dc5881a8d88b55744cab53d95fa6fda2 (commit) via ffdbe8642e74527795b695988a176f0920d58f96 (commit) via 9d736fbf01d20bc03804fa0cb49d99fdf6628fab (commit) via 3e6c75670009a5e9eaa72eb456b296451b3c46fe (commit) via 4c8798c9923de48c71430ce262d83042179232c6 (commit) via 3de88e9afbf0d8d10a8c4ce1415c219120e0a0c1 (commit) via 0e7b8f61069f1219ca53a9dd927ba55c9a7eefd4 (commit) via 2253c8f089193b90141e08436417bc8ea1dd6015 (commit) via 4a14e306468af630a27302d68b8d4c59733141b4 (commit) via 645d3342ba2b920722991255513030bb903b794e (commit) via 75d7d2986cf896fac8f0690db68ebc552e0b0339 (commit) via 5badf10a18af78c57dd4ce8e6a6ead7f46e1a878 (commit) via 21701718895d186285e6daf04cc7342c6c88fb03 (commit) via cee59b3feac9a8f6300a5b788e3db4e15af2a894 (commit) via 09220eae9df07c40d206a35e6caaecba92ab8f46 (commit) via 639a9038c9f4fc50b6a57c18fe84db4559367a96 (commit) via bcc0c096d5b0f77482cdb3154acd2515a0ca832f (commit) via c0f55cc689a57deb342b988b8f0ecb908f0a76e1 (commit) via 15c0a2a9305648095f5586a02b5a5017e1643e99 (commit) via aa0061181ab00081e9907447561e589d6edee9f2 (commit) via 3fcf899da106890f3948093c2424f9dff67d6fe0 (commit) via 4297a3f0029974c62628d69b6f3f9ef25f01ea7d (commit) via e1cb3213476485a01aa11ecedfa186e386cb4bdb (commit) via e4347c89f3a14b480fc88581d1363835f7b99b68 (commit) via 53cc15f5fe1f5e2358994d4f60f1c2aa9115004d (commit) via a65cfae5f8b268158c23a862e7a996d15bbcef0e (commit) via 3b22433085e4cfee83f5c52f3baa8fb9bc67f8dd (commit) via f9aeb8d499fa12610610dc19618230304c698f6c (commit) via 51457a05780da82b5321a1574caed95ac0e6923e (commit) via 5b291c049658614196197e4ea4bb42bcc176b876 (commit) via e696b3ad342dde596dcdad4cff6b875c361ed6d0 (commit) via 59a561480d547d041127630b1ba17a284eef8225 (commit) via 39e224f6f9ee3f6123d4c9ddb7c0955e0604c1b4 (commit) via e406e428dfe9d64e3be0b7a3c1c97c09edc5bdba (commit) via dcb84eda0c5f25835251a311c4d6704e70cfa498 (commit) via 4ea0266c22eccf6e7719469a981267659e47ef3a (commit) via d5e0ba9cdb0d002b97bab722cce673ce86cf7b11 (commit) via d3375ddde4011242ef576083459fc51d0ddc53c8 (commit) via 5c62b69b91e13c6b9c126480680cff836c0b282d (commit) via aaed6f5be3a41a88cc13c744e88af78f5a42dd5b (commit) via 84e8538ee3c8139a99e75e661fff500bb93c8cd5 (commit) via bbdf9b697fc0652379794267b23f597e15c7db57 (commit) via 82e66161e649e5e801c40a52cba759292a76a59a (commit) via d9cb6cdcfa12368f2f639f8cd06d18b94bd98a39 (commit) via 1afaf9f42fe201872d758214beceff85325a988a (commit) via aac12e2497a42b47223680ab1b5924137de77c9a (commit) via bbe1eef1e585e19d5493882e55f2b7902df9827a (commit) via 10799020a9336b6a88c1ace53c601960b840d580 (commit) via 00204cf7da01d99205aacc994e5c594ed12bba64 (commit) via 11a3371447f15af26def26646ad2eb7a4386462d (commit) via 317cd4925a9d6ef6f8752a771cb56e85ddfb30f0 (commit) via 9ac8a7c281aa949cf588cccb9977ea51eaff8130 (commit) via 4ac4bb6ad5ead16be5ca6996a3e325c26ddf71da (commit) via 0dd6ae21da832f351a3722d2f8bac187fc3bdfef (commit) via 9bcbdca808b5f9fec6217d20bd4b48a56008c460 (commit) via 7503099f3e29739d34cb1224d54fba96404e6e61 (commit) via 4b94dd2de12dd0389615700b13b63260e162ccf0 (commit) via 1d3fa25f5802fe2250f32f335ad57897a62e0fe2 (commit) via b4fcfd3b4d173129207f804f5eee4557c788d66b (commit) via 7942e96e435d1cf4d4dbf58c47bb28d9f628c9e6 (commit) via 6ebac3fbacebaebd9e2c9393da3b612342d953a9 (commit) via 2cc36e25db366d70a975702b61c7700ae934d4d0 (commit) via a8be5506b626a57f84771c5ddfaefabf2d61c017 (commit) via ba14f3792fe007bedd88b62e554c79258adc53d9 (commit) via b121eeb9971ebfceffc38e6131fdc15ec4188599 (commit) via 728a79135f51a1c20719ebaf3c98446d9ee248db (commit) via a7c0469f992721b30665ba92f4f2f74d29032a84 (commit) via 34b433203b5f56149c27a8dfea21a921392cb158 (commit) via a3a5feccd26be653efbdf1408874b98962baaa50 (commit) via f8d995870f957d5fd32fb21fb4afe76a754ddf31 (commit) via 28f1c60507ad4ca2252cebada30d2f63ec3b772f (commit) via ec3b243d4308ee56c9e3c62470b10ed2a822eb51 (commit) via 2c52e2e8c9e8f733cc0772d1400b0f4d3eb7379c (commit) via e189bfe660d335f3b7c61446c9b5d3b0f0701606 (commit) via aab2c17756ee5bef0ea5783a460a0990450b3bd5 (commit) via 4d78db49e6eee097365e31f9b5b47e5391243979 (commit) via 152c92b261fd9e4655688bef746ca32352f56bc4 (commit) via 1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca (commit) via 1728969e93010862fe0ef7985cabe03a4494a63e (commit) via c3847462f86778e97222a72378a84182f92c644a (commit) via 453018bf4490421a995cd76b3d2a3f322359c6a5 (commit) via b416fe873ef44b2a613c9266c6462a481926d986 (commit) via 03b039a518fa0f89a9900a44a8b874cc91061305 (commit) via 9494d9636612cd9bd22e38625fbc89147beafea7 (commit) via 7cb7b948ce62831a999f88054a6b2d39afbe926e (commit) via cc7e96c25d59db0a5279da0a0ff36d61151f3021 (commit) via c98763221af696a9e0c6686da7d65881bfd6bdd0 (commit) via 87c336f60eccc6506ff19369c29575f43fea02ea (commit) via d47c3ff7d55122befac848fe64b7445789c78787 (commit) via 2aece2ba02457e83fd2a780a8ac596b6a90adf29 (commit) via c1b465c94e26be629315bf28e3763dea9dea8336 (commit) via 2c232b8361a044d689d12161b7a645d238586f5e (commit) via 9216a6f33592c350ad50696d5571c82e47b71a5e (commit) via cf81cf6081d1a8c15c477f903d15d7b88f31b686 (commit) via c799a79d66d09c442d85467986c2e8873f09297c (commit) via 0efcde634d45f4cda03fd18c43ff449103559d7a (commit) via a379284af268ed768674e7f452ca78dad2aaaf55 (commit) via 8a6200ba863f207d93467312431d107f50f0e2ab (commit) via 9c7272f0833da2bfdf513d41bc41cdbc5f4fc5f7 (commit) via f79ec2066662b2c32c9e62ee372c9c230d206b89 (commit) via edb5fb00a6865884f99be01a9e97f44243a9deb9 (commit) via 551196862e4e9dfda510f59c53b0a3ff3153e4ed (commit) via 6a06fbb7b73fe55d6b9057f8154652e1ae8f883c (commit) via c6386875ba57a806c896ba097afef525671de4a0 (commit) via ddaaf0fb8605fced72e84410fc7ac834e529eb53 (commit) via 1a01e7c6b0eaed1bfe70d48692e1103c6e9ee2d9 (commit) via 36bc18a810a13f884d826842abbdd6d744ff6481 (commit) via a8ebe3d5f17f12490012a1a3c69d17b6e9362805 (commit) via 50cfacb78f3998e5ecc653090e4f1a11dfb3d8dd (commit) via c5a22423d09e3bf670fb0de0a98e6feb6176eb3f (commit) via 6bda016bec556855c6d4e191f360f921faa40ded (commit) via 21122961ecea30b3be7c788e09179d297e3233f0 (commit) via c362e6217b556ce932250c340218f1ca16391070 (commit) via 7978d7c385b072a344d969f71cdc68e1a1171ec2 (commit) via 896c0c1edee117ea333c66b1adac8c6f4def3f2b (commit) via b9da89d161e3903faa335f444af2bf05e40f926e (commit) via c793cac124dd2eb34042f2e43abb099a26e34cb0 (commit) via 5ef2d51bd6ae49b28282835156d1d6622beac4a6 (commit) via f955cccff399ccc4e16b8e90f140f2e9a785a07b (commit) via d40e34db392f834793fb9af487121776b4cec6e7 (commit) via 4b5900d8b81522bd6ebe4d94d45dfb54d1982c62 (commit) via b9d62f893fcc0b4c36aad0552810dcde304979d0 (commit) via d5bb792ca130aac17e080325e4005ef417ceabd5 (commit) via 118aa6cf395aec093fe12d7fb2d05441791a93fa (commit) via 316a1245fe31e327223ca66797b789eaf9544c2c (commit) via 4aef764338ed40a7fa9573b0e6e2ade817acd688 (commit) via bb4287c562027eafe63ddac9fd4c7e1730335795 (commit) via e299b3551edbe81be2062fcaef9319d681d0d15b (commit) via a08f8d99b87b0b0f681a27eba8e25e2fb0abd034 (commit) via 5f4d10850850cd95af5e95a16848c8c07a273d88 (commit) via 7b5d48229b7faa16f69e87fb269f17db0291d89f (commit) via 8b1e5da10ab58d2aa5eb84bf27de511294f061ef (commit) via 55e22ca83ae50d6fe422cd0542f2a1a5934b2dd2 (commit) via f9f791a1b147c404a489485dba5eca49f8dbcbb9 (commit) via 14ea2c1b230a62f312346fb16716b3dd4850815b (commit) via 77f5e65ecfb669ea1d2fd74b74fbbf0d0c20daf8 (commit) via a87ded7b88a85b40f2aec5e5b6c972dd7b74b3a9 (commit) via 86fa6981e7487e2c2df4337aa75ed2d93c32eaf2 (commit) via f03265d9cda1f5f8df238efa9b7a20330e5711f1 (commit) via c1fe188b154a4e81372629316be3d3a7820efdac (commit) via 4b8b687e885287ed85dafffcebbb8d03d7ea2c38 (commit) via c7341d5a6b334464d84672229d9912d99347db34 (commit) via 1de05205afe1ecd1f1fa2befc6843d0dc70adefc (commit) via 1437d0631b209500db8371c425e896deb66ec9f9 (commit) via c65d6b55b3a592906c470c566f57ad8ceacc1605 (commit) via 15c22686d0e33d87262bc9075296eeddd7d955f7 (commit) via 1fc87489b40b3100badf184a7c266387bae47def (commit) via 2e86a2830cfef688a27e17353b84f59f8147ab23 (commit) via 25dcbff6ef0088e080d92b3cbc346ae0b5071d9d (commit) via dc9366eb0592157e2125967690f0aed61b17bcf7 (commit) via 6e5d74e74756fafe59e8198c4cc462cf7c57e12c (commit) via 5cf70512f835032c413f2554af07814e1dc05cd6 (commit) via 9753a2f6d74dc92d2ad94993a5479ee0edbc6887 (commit) via 1a4dd9ddae4ce51724b4e08c6304e7c64f8f916f (commit) via 7cbbff33a502dcba0264a1935840345274b8aee2 (commit) via 50dbe6e1bc8589db8e900299ef03ce9ead4ef3d7 (commit) via 1672e0d98d88d11b5c7d5793bd2cf29cbb56696f (commit) via f7bb4e3a0d3738e8cce3dcded6ef12c9949cb85f (commit) via e45ced6c5e06b0092ac9f5497aa580cfad0c953c (commit) via 5f6fd321915fae0194e01322d22cad4e451e8d20 (commit) via 44959fa81858df7d06fd83b0595b66709e344074 (commit) via f8c4e718c26a0181821398e09d96113c0ff49c15 (commit) via 6dbb839a78d343b0a7435ec7db46ee359b1f62ec (commit) via 4a612d6f67d605f480ce7eec7fd9ca1cd1087b35 (commit) via ea86f5344298e24801c262d9b52afcc9cb692959 (commit) via 2b841ec2066db4870beaa5298feb02f5e20faf7b (commit) via d933941d6c5ce5b2dcaaa869919b6f3de06b725d (commit) via b1b07054c08eea65ba8d1a9f771796d686f337e5 (commit) via bb98f85480da563f4f6438abdabb68a69bc746b8 (commit) via 603555e563725616246912711419637add54c961 (commit) via 1cccfb31f5ba0dbc1cd3c679daf2f5b40252c6e0 (commit) via d274ecf4ddf76768af57e27f654b9ce6784b391c (commit) via 79a964dca572024447adf92e50959dc88aa4f27a (commit) via 73f07bffaf8d423295a38dde51dfe6ec7b273280 (commit) via ea0de82ec2d7f109ba179d8d55130805e680f02d (commit) via 9e1a8675d49a5bbb881f664f8b7a1081432c994d (commit) via 1f5345a614203185f7fdacbf4b000d2676de26dd (commit) via 62e755d208d7359e722a248df3e74278779272c8 (commit) via 49fced1206db40c71208c201165d65f92c69cebe (commit) via 2e0ce1c84d328bde4dca24b7cfc8b9c033ed271c (commit) via 0792e0e1199e76dce19a0f9fbdb29c75b8be8a9b (commit) via 921ea8830c62bf4a60af1783bdd443fd43286359 (commit) via 8ecbe595e69a84a0e3053884832d63af37113680 (commit) via df97be551faa262732128493c8ac159ae4b7f6d3 (commit) via 7d45f3df96ca108f6d7d0c5e4279e22b820145fa (commit) via 611a3ca929d6529f4e7576b0e2ffb588839c1b21 (commit) via d20928fac9ab65449db910bd99a0f48ad29fb22b (commit) via b565cf21c80945d5e9baa6871653aae5add2d493 (commit) via 05ed43104ef2c3f75779438111e2913dbd4555a6 (commit) via f98450c6eee6878ebf5b052d231758026d250427 (commit) via c871dadee1817d4b9f3ba6ee792730c9eccf88e0 (commit) via b451e98a909e1a6afa71c4a4655adc4cfeea5249 (commit) via d4620bee57be53f7a6b14c01b2ea22d22a61bef0 (commit) via 9875b36538d35f2292ddc3bb5e7c60e1582aa087 (commit) via 673cff9b8b3105f74ce97c202a0727f9e83e56e6 (commit) via 199add01b6704e1cd8a48945bd775fbe8524fa75 (commit) via ecd78df2707734ccb2d0f6e5426321fa399befaa (commit) via 134e805d3e18cf700a5046912b8dca9301fe6f2e (commit) via 01cca2f95e4a448cbfb7dc940cc38fe89300b15f (commit) via 9ef920e933bf2ea228c909cf81636e6d9577e51e (commit) via a7e8b06b8901309632fad842ffd7d90a81447c80 (commit) via 65b48a81404cb058c75c562f7dfdeb74f07eba72 (commit) via 2979a883540d9ce6e41dd0509ea2a345de9cf050 (commit) via 3de43e7beb9839fa268a73be77de73a7b7cd97db (commit) via 15c7c1d8a535000e94ed36f4259d0ede32001408 (commit) via 4ef97a1b459849ad190244c36b36d45bdd078030 (commit) via 7ba71655a425ac44721f97cc0ad7922ca15bce43 (commit) via afbf7e8e3aa24152ad58e430c8d37d82e5751f1c (commit) via 0e39210161e7c547ab53afb86997303e24a42c0c (commit) via 279a558a4d0fad268738ec916628c9c12cfcaf5b (commit) via 9dfd0db952fc07dccebbc244df2a20a6eda14b2c (commit) via d538e36decd5628c084dbd5a7de13719b8b92121 (commit) via 8362122330c97c8c4a15da4e7ba8aa29f0c11157 (commit) via 2123df0ebfc7ade46784ef412226490d59f8ce05 (commit) via fbf25dfdfdba2c057e7ccdae4e0d6a2139c66dd5 (commit) from bf7bf0b1083e2748d04205c67e245614e0b42929 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 025edc48851da0e21aea57628f5fb8cd305a281f Merge: bf7bf0b 24e5b4e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Wed Mar 22 22:51:17 2017 +0100 Merge remote-tracking branch 'gdb/master' into indexcxx commit 24e5b4e682a92788ffa676e963b7f1dec2101333 Author: Max Filippov <jcmvbkbc@gmail.com> Date: Wed Mar 22 10:19:14 2017 -0700 gas: xtensa: make trampolines relaxation work with jumps in slots other than 0 add_jump_to_trampoline assumes that jump instruction is in slot 0, when it's in other slot that results in fixup that references NULL symbol, which results in segfault later in xtensa_make_cached_fixup. Search for the non-NULL symbol in the tc_frag_data.slot_symbols and check that there's exactly one such slot. xtensa_relax_frag for RELAX_TRAMPOLINE reassigns fixup from the original instruction with jump to generated jump in the trampoline frag, but does not fix its fx_r_type or fx_size. That results in "undecodable fix" or "fixup not contained within frag" error messages during relaxation. Fix both these fields. gas/ 2017-03-22 Max Filippov <jcmvbkbc@gmail.com> * config/tc-xtensa.c (xtensa_relax_frag): Change fx_size of the reassigned fixup to size of jump instruction (3) and fx_r_type to BFD_RELOC_XTENSA_SLOT0_OP, as there's only one slot. (add_jump_to_trampoline): Search origfrag->tc_frag_data.slot_symbols for the slot with non-NULL symbol and use that slot instead of slot 0. commit b67aeab02c05fdd654f132a550dd4f196cb1f6d3 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Wed Mar 22 10:35:07 2017 -0400 Remove lwp -> pid conversion in linux_nat_xfer_partial The linux_nat_xfer_partial does a conversion of inferior_ptid: if it's an LWP (ptid::lwp != 0), it builds a new ptid with the lwp as the pid and assigns that temporarily to inferior_ptid. For example, if inferior_ptid is: { .pid = 1234, .lwp = 1235 } it will assign this to inferior_ptid for the duration of the call: { .pid = 1235, .lwp = 0 } Instead of doing this, this patch teaches the inf-ptrace implementation of xfer_partial to deal with ptids representing lwps by using get_ptrace_pid. Also, in linux_proc_xfer_spu and linux_proc_xfer_partial, we use ptid_get_lwp instead of ptid_get_pid. While not strictly necessary, since the content of /proc/<pid> and /proc/<lwp> should be the same, it's a bit safer, because: - some files under /proc/<pid>/ may not work if the <pid> thread is running, just like ptrace requires a stopped thread. The current thread's lwp id is more likely to be in the necessary state (stopped). - if the leader (<pid>) had exited and is thus now zombie, then several files under "/proc/<pid>" won't work, while they will if you use "/proc/<lwp>". The testsuite found no regression on native amd64 linux. gdb/ChangeLog: * inf-ptrace.c (inf_ptrace_xfer_partial): Get pid from ptid using get_ptrace_pid. * linux-nat.c (linux_nat_xfer_partial): Don't set/restore inferior_ptid. (linux_proc_xfer_partial, linux_proc_xfer_spu): Use lwp of inferior_ptid instead of pid. commit 11997a83a040245406b6e2e9978c6720f17e80c4 Author: Nick Clifton <nickc@redhat.com> Date: Wed Mar 22 14:01:03 2017 +0000 Sync top level config files with master versions in the FSF config project. * config.sub: Sync with master version in config project. * config.guess: Likewise. commit 79778b30dc5881a8d88b55744cab53d95fa6fda2 Author: Yao Qi <yao.qi@linaro.org> Date: Wed Mar 22 12:40:24 2017 +0000 Remove @code for python There's no reason to use @code for Python the name of a programming language. gdb/doc: 2017-03-22 Yao Qi <yao.qi@linaro.org> * python.texi (Inferiors In Python): Remove @code from Python. commit ffdbe8642e74527795b695988a176f0920d58f96 Author: Yao Qi <yao.qi@linaro.org> Date: Wed Mar 22 12:35:31 2017 +0000 Wrap locally used classes in anonymous namespace Both aarch64-tdep.c and arm-tdep.c defines a class instruction_reader, which violates ODR, but linker doesn't an emit error. I fix this issue by wrapping them by anonymous namespace, but I think it is better to apply this for all locally used classes. If it is a good idea to put locally used class into anonymous namespace, we should document this rule into GDB coding convention, or even GCC coding convention. Note that anonymous namespace has been used in GCC but GCC coding convention doesn't mention the it. gdb: 2017-03-22 Yao Qi <yao.qi@linaro.org> * aarch64-tdep.c: Wrap locally used classes in anonymous namespace. * arm-tdep.c: Likewise. * linespec.c: Likewise. * ui-out.c: Likewise. commit 9d736fbf01d20bc03804fa0cb49d99fdf6628fab Author: Jonah Graham <jonah@kichwacoders.com> Date: Wed Mar 22 11:19:44 2017 +0000 Import sys in gdb/python/lib/gdb/printer/bound_registers.py Pick up missing bits from the patch merged in. 2017-03-22 Jonah Graham <jonah@kichwacoders.com> PR gdb/19637 * python/lib/gdb/printer/bound_registers.py: Import sys. commit 3e6c75670009a5e9eaa72eb456b296451b3c46fe Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Mar 22 00:00:28 2017 +0000 Automatic date update in version.in commit 4c8798c9923de48c71430ce262d83042179232c6 Author: Sandra Loosemore <sandra@codesourcery.com> Date: Tue Mar 21 13:25:09 2017 -0700 Disable shared library tests for nios2-*-elf. The Nios II processor documentation defines relocations for PIC and shared libraries as part of the GNU/Linux ABI only; GCC rejects -fpic on bare-metal. 2017-03-21 Sandra Loosemore <sandra@codesourcery.com> ld/ * testsuite/lib/ld-lib.exp (check_shared_lib_support): Return false for nios2-*-elf. commit 3de88e9afbf0d8d10a8c4ce1415c219120e0a0c1 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Tue Mar 21 11:35:54 2017 -0400 windows: Use ptid from regcache in register fetch/store Use the ptid from the regcache so we don't depend on the current value of the inferior_ptid global. Also, change how the current thread is passed to sub-functions. The windows_fetch_inferior_registers function sets current_thread then calls do_windows_fetch_inferior_registers, which reads current_thread. This very much looks like passing a parameter through a global variable. I think it would be more straightforward to pass the thread as a parameter. gdb/ChangeLog: * windows-nat.c (do_windows_fetch_inferior_registers): Add windows_thread_info parameter and use it instead of current_thread. (windows_fetch_inferior_registers): Don't set current_thread, pass the thread to do_windows_fetch_inferior_registers. Use ptid from regcache instead of inferior_ptid. (do_windows_store_inferior_registers): Add windows_thread_info parameter and use it instead of current_thread. (windows_store_inferior_registers): Don't set current_thread, pass the thread to do_windows_store_inferior_registers. Use ptid from regcache instead of inferior_ptid. commit 0e7b8f61069f1219ca53a9dd927ba55c9a7eefd4 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Tue Mar 21 11:35:42 2017 -0400 Remove remaining reference to struct serial::current_timeout I get this when trying to build for --host=x68_64-w64-mingw32: /home/emaisin/src/binutils-gdb/gdb/ser-mingw.c: In function 'void ser_windows_raw(serial*)': /home/emaisin/src/binutils-gdb/gdb/ser-mingw.c:166:8: error: 'struct serial' has no member named 'current_timeout' scb->current_timeout = 0; ^~~~~~~~~~~~~~~ It is just a leftover from 9bcbdca808b5f9fec6217d20bd4b48a56008c460 PR remote/21188: Fix remote serial timeout gdb/ChangeLog: * ser-mingw.c (ser_windows_raw): Remove reference to struct serial::current_timeout. commit 2253c8f089193b90141e08436417bc8ea1dd6015 Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com> Date: Tue Mar 21 14:21:02 2017 +0100 S/390: Remove vx2 facility flag This patch removes the vx2 facility flag. It will not be used by GCC and was a misnomer anyway. Committed to mainline and 2.28 branch. include/ChangeLog: 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * opcode/s390.h (S390_INSTR_FLAG_VX2): Remove. (S390_INSTR_FLAG_FACILITY_MASK): Adjust value. gas/ChangeLog: 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/tc-s390.c (s390_parse_cpu): Remove S390_INSTR_FLAG_VX2 from cpu_table. Remove vx2, and novx2 from cpu_flags. opcodes/ChangeLog: 2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * s390-mkopc.c (main): Remove vx2 check. * s390-opc.txt: Remove vx2 instruction flags. commit 4a14e306468af630a27302d68b8d4c59733141b4 Author: Andi Kleen <ak@linux.intel.com> Date: Tue Mar 21 13:05:19 2017 +0000 Add --inlines option to objdump to include scope backtrace of inlined functions when generating source line number information. * objdump.c (unwind_inlines): Add. (option_values): Add OPTION_INLINES. (show_line): Unwind inlines if requested. (main): Parse OPTION_INLINES. (usage): Document --inlines. * doc/binutils.texi: Document --inlines. * NEWS: Likewise. commit 645d3342ba2b920722991255513030bb903b794e Author: Rinat Zelig <rinat@mellanox.com> Date: Tue Mar 21 11:37:33 2017 +0000 arc/nps400: Add cp16/cp32 instructions to opcodes library Instructions for loading or storing 16/32B data from one address type to another. gas/ChangeLog * testsuite/gas/arc/nps400-11.s: New file. * testsuite/gas/arc/nps400-11.d: New file. include/ChangeLog * opcode/arc.h (insn_class_t): Add DMA class. opcodes/ChangeLog * arc-nps400-tbl.h: Add cp32/cp16 instructions format. * arc-opc.c: Add F_NPS_NA, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET. (insert_nps_imm_offset): New function. (extract_nps_imm_offset): New function. (insert_nps_imm_entry): New function. (extract_nps_imm_entry): New function. commit 75d7d2986cf896fac8f0690db68ebc552e0b0339 Author: Nick Clifton <nickc@redhat.com> Date: Tue Mar 21 11:48:57 2017 +0000 Update support for GNU BUILD notes so that version notes can contain extra information, and stack protection notes can contain numeric values. * readelf.c (print_gnu_build_attribute_name): Allow stack protection notes to contain numeric values. Use a colon rather than a space to separate a string name from its values. Decode the numeric value of a stack protection note. * objcopy.c (merge_gnu_build_notes): Allow version notes to contain extra text after the protocol version number. commit 5badf10a18af78c57dd4ce8e6a6ead7f46e1a878 Author: Ivo Raisr <ivo.raisr@oracle.com> Date: Tue Mar 21 04:39:33 2017 -0700 Decode properly flags of %ccr register on sparc64. While at it, decode also properly one-bit flags for %fsr (accrued and current exception flags were mixed up). ChangeLog entry: 2017-03-21 Ivo Raisr <ivo.raisr@oracle.com> PR tdep/20928 * gdb/sparc-tdep.h (gdbarch_tdep) <sparc64_ccr_type>: New field. * gdb/sparc64-tdep.c (sparc64_ccr_type): New function. (sparc64_fsr_type): Fix %fsr decoding. ChangeLog entry for testsuite: 2017-03-21 Ivo Raisr <ivo.raisr@oracle.com> PR tdep/20928 * gdb.arch/sparc64-regs.exp: New file. * gdb.arch/sparc64-regs.S: Likewise. commit 21701718895d186285e6daf04cc7342c6c88fb03 Author: Tristan Gingold <gingold@adacore.com> Date: Fri Mar 17 11:12:05 2017 +0100 ld: check overflow only for allocated sections. * ldlang.c (lang_check_section_addresses): Check only for allocated sections. commit cee59b3feac9a8f6300a5b788e3db4e15af2a894 Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue Mar 21 08:19:59 2017 +0100 Fix break on Python 2 This changes the return type of "gdb.BtraceInstruction.data ()" from "memoryview" to "buffer" on Python 2.7 and below, similar to what "gdb.Inferior.read_memory ()" does. commit 09220eae9df07c40d206a35e6caaecba92ab8f46 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Mar 21 00:00:24 2017 +0000 Automatic date update in version.in commit 639a9038c9f4fc50b6a57c18fe84db4559367a96 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 20 18:23:47 2017 -0400 spu: Use ptid from regcache instead of inferior_ptid The implementations of to_fetch_registers/to_store_registers in the spu code use some functions that rely on inferior_ptid. It's simpler for now to set/restore inferior_ptid. gdb/ChangeLog: * spu-linux-nat.c (spu_fetch_inferior_registers, spu_store_inferior_registers): Use ptid from regcache, set and restore inferior_ptid. * spu-multiarch.c (spu_fetch_registers, spu_store_registers): Likewise. commit bcc0c096d5b0f77482cdb3154acd2515a0ca832f Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 20 17:37:36 2017 -0400 Use ptid from regcache in almost all remaining nat files This patch contains almost all of the remaining changes needed to make to_fetch_registers/to_store_registers/to_prepare_to_store independent of inferior_ptid. It contains only some "trivial" changes, the more complicated ones are in separate patches. gdb/ChangeLog: * i386-linux-nat.c (fetch_register, store_register, i386_linux_fetch_inferior_registers, i386_linux_store_inferior_registers): Use ptid from regcache. * ia64-linux-nat.c (ia64_linux_fetch_register, ia64_linux_store_register): Likewise. * inf-ptrace.c (inf_ptrace_fetch_register, inf_ptrace_store_register): Likewise. * m32r-linux-nat.c (m32r_linux_fetch_inferior_registers, m32r_linux_store_inferior_registers): Likewise. * m68k-bsd-nat.c (m68kbsd_fetch_inferior_registers, m68kbsd_store_inferior_registers): Likewise. * m68k-linux-nat.c (fetch_register, store_register, m68k_linux_fetch_inferior_registers, m68k_linux_store_inferior_registers): Likewise. * m88k-bsd-nat.c (m88kbsd_fetch_inferior_registers, m88kbsd_store_inferior_registers): Likewise. * mips-fbsd-nat.c (mips_fbsd_fetch_inferior_registers, mips_fbsd_store_inferior_registers): Likewise. * mips-linux-nat.c (mips64_linux_regsets_fetch_registers, mips64_linux_regsets_store_registers): Likewise. * mips-nbsd-nat.c (mipsnbsd_fetch_inferior_registers, mipsnbsd_store_inferior_registers): Likewise. * mips-obsd-nat.c (mips64obsd_fetch_inferior_registers, mips64obsd_store_inferior_registers): Likewise. * nto-procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise. * ppc-fbsd-nat.c (ppcfbsd_fetch_inferior_registers, ppcfbsd_store_inferior_registers): Likewise. * ppc-linux-nat.c (ppc_linux_fetch_inferior_registers, ppc_linux_store_inferior_registers): Likewise. * ppc-nbsd-nat.c (ppcnbsd_fetch_inferior_registers, ppcnbsd_store_inferior_registers): Likewise. * ppc-obsd-nat.c (ppcobsd_fetch_registers, ppcobsd_store_registers): Likewise. * procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise. * ravenscar-thread.c (ravenscar_fetch_registers, ravenscar_store_registers, ravenscar_prepare_to_store): Likewise. * record-btrace.c (record_btrace_fetch_registers, record_btrace_store_registers, record_btrace_prepare_to_store): Likewise. * remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): Lookup inferior using ptid from regcache, instead of current_inferior. * remote.c (remote_fetch_registers, remote_store_registers): Use ptid from regcache. * rs6000-nat.c (fetch_register, store_register): Likewise. * s390-linux-nat.c (s390_linux_fetch_inferior_registers, s390_linux_store_inferior_registers): Likewise. * sh-nbsd-nat.c (shnbsd_fetch_inferior_registers, shnbsd_store_inferior_registers): Likewise. * sol-thread.c (sol_thread_fetch_registers, sol_thread_store_registers): Likewise. * sparc-nat.c (sparc_fetch_inferior_registers, sparc_store_inferior_registers): Likewise. * tilegx-linux-nat.c (fetch_inferior_registers, store_inferior_registers): Likewise. * vax-bsd-nat.c (vaxbsd_fetch_inferior_registers, vaxbsd_store_inferior_registers): Likewise. * xtensa-linux-nat.c (fetch_gregs, store_gregs, fetch_xtregs, store_xtregs): Likewise. commit c0f55cc689a57deb342b988b8f0ecb908f0a76e1 Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:59 2017 -0700 Add rvalue reference tests and docs This patch adds tests for the initial rvalue reference support patchset. All of the new tests are practically mirrored regular references tests and, except for the demangler ones, are introduced in new files, which are set to be compiled with -std=gnu++11. Tested are printing of rvalue reference types and values, rvalue reference parameters in function overloading, demangling of function names containing rvalue reference parameters, casts to rvalue reference types, application of the sizeof operator to rvalue reference types and values, and support for rvalue references within the gdb python module. gdb/ChnageLog PR gdb/14441 * NEWS: Mention support for rvalue references in GDB and python. * doc/gdb.texinfo (C Plus Plus Expressions): Mention that GDB supports both lvalue and rvalue references. gdb/testsuite/ChangeLog PR gdb/14441 * gdb.cp/demangle.exp: Add rvalue reference tests. * gdb.cp/rvalue-ref-casts.cc: New file. * gdb.cp/rvalue-ref-casts.exp: New file. * gdb.cp/rvalue-ref-overload.cc: New file. * gdb.cp/rvalue-ref-overload.exp: New file. * gdb.cp/rvalue-ref-params.cc: New file. * gdb.cp/rvalue-ref-params.exp: New file. * gdb.cp/rvalue-ref-sizeof.cc: New file. * gdb.cp/rvalue-ref-sizeof.exp: New file. * gdb.cp/rvalue-ref-types.cc: New file. * gdb.cp/rvalue-ref-types.exp: New file. * gdb.python/py-rvalue-ref-value-cc.cc: New file. * gdb.python/py-rvalue-ref-value-cc.exp: New file. commit 15c0a2a9305648095f5586a02b5a5017e1643e99 Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:57 2017 -0700 Add rvalue references to overloading resolution This patch introduces changes to rank_one_type() dealing with ranking an rvalue reference type when selecting a best viable function from a set of candidate functions. The 4 new added rules for rvalue references are: 1) An rvalue argument cannot be bound to a non-const lvalue reference parameter and an lvalue argument cannot be bound to an rvalue reference parameter. [C++11 13.3.3.1.4p3] 2) If a conversion to one type of reference is an identity conversion, and a conversion to the second type of reference is a non-identity conversion, choose the first type. [C++11 13.3.3.2p3] 3) An rvalue should be first tried to bind to an rvalue reference, and then to an lvalue reference. [C++11 13.3.3.2p3] 4) An lvalue reference to a function gets higher priority than an rvalue reference to a function. [C++11 13.3.3.2p3] This patch is not exactly correct. See c++/15372 for tracking overload resolution bugs. gdb/ChangeLog PR gdb/14441 * gdbtypes.c (rank_one_type): Implement overloading resolution rules regarding rvalue references. commit aa0061181ab00081e9907447561e589d6edee9f2 Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:54 2017 -0700 Convert lvalue reference type check to general reference type check In almost all contexts (except for overload resolution rules and expression semantics), lvalue and rvalue references are equivalent. That means that in all but these cases we can replace a TYPE_CODE_REF check to a TYPE_IS_REFERENCE check and, for switch statements, add a case label for a rvalue reference type next to a case label for an lvalue reference type. This patch does exactly that. gdb/ChangeLog PR gdb/14441 * aarch64-tdep.c (aarch64_type_align) (aarch64_extract_return_value, aarch64_store_return_value): Change lvalue reference type checks to general reference type checks. * amd64-tdep.c (amd64_classify): Likewise. * amd64-windows-tdep.c (amd64_windows_passed_by_integer_register): Likewise. * arm-tdep.c (arm_type_align, arm_extract_return_value) (arm_store_return_value): Likewise. * ax-gdb.c (gen_fetch, gen_cast): Likewise. * c-typeprint.c (c_print_type): Likewise. * c-varobj.c (adjust_value_for_child_access, c_value_of_variable) (cplus_number_of_children, cplus_describe_child): Likewise. * compile/compile-c-symbols.c (generate_vla_size): Likewise. * completer.c (expression_completer): Likewise. * cp-support.c (make_symbol_overload_list_adl_namespace): Likewise. * darwin-nat-info.c (info_mach_region_command): Likewise. * dwarf2loc.c (entry_data_value_coerce_ref) (value_of_dwarf_reg_entry): Likewise. * eval.c (ptrmath_type_p, evaluate_subexp_standard) (evaluate_subexp_for_address, evaluate_subexp_for_sizeof): Likewise. * findvar.c (extract_typed_address, store_typed_address): Likewise. * gdbtypes.c (rank_one_type): Likewise. * hppa-tdep.c (hppa64_integral_or_pointer_p): Likewise. * infcall.c (value_arg_coerce): Likewise. * language.c (pointer_type): Likewise. * m32c-tdep.c (m32c_reg_arg_type, m32c_m16c_address_to_pointer): Likewise. * m88k-tdep.c (m88k_integral_or_pointer_p): Likewise. * mn10300-tdep.c (mn10300_type_align): Likewise. * msp430-tdep.c (msp430_push_dummy_call): Likewise. * ppc-sysv-tdep.c (do_ppc_sysv_return_value) (ppc64_sysv_abi_push_param, ppc64_sysv_abi_return_value): Likewise. * printcmd.c (print_formatted, x_command): Likewise. * python/py-type.c (typy_get_composite, typy_template_argument): Likewise. * python/py-value.c (valpy_referenced_value) (valpy_get_dynamic_type, value_has_field): Likewise. * s390-linux-tdep.c (s390_function_arg_integer): Likewise. * sparc-tdep.c (sparc_integral_or_pointer_p): Likewise. * sparc64-tdep.c (sparc64_integral_or_pointer_p): Likewise. * spu-tdep.c (spu_scalar_value_p): Likewise. * symtab.c (lookup_symbol_aux): Likewise. * typeprint.c (whatis_exp, print_type_scalar): Likewise. * valarith.c (binop_types_user_defined_p, unop_user_defined_p): Likewise. * valops.c (value_cast_pointers, value_cast) (value_reinterpret_cast, value_dynamic_cast, value_addr, typecmp) (value_struct_elt, value_struct_elt_bitpos) (value_find_oload_method_list, find_overload_match) (value_rtti_indirect_type): Likewise. * valprint.c (val_print_scalar_type_p, generic_val_print): Likewise. * value.c (value_actual_type, value_as_address, unpack_long) (pack_long, pack_unsigned_long, coerce_ref_if_computed) (coerce_ref): Likewise. * varobj.c (varobj_get_value_type): Likewise. commit 3fcf899da106890f3948093c2424f9dff67d6fe0 Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:52 2017 -0700 Support rvalue references in the gdb python module (includes doc/) This patch adds the ability to inspect rvalue reference types and values using the gdb python module. This is achieved by creating two wrappers for valpy_reference_value(), using the ReferenceExplorer class to handle the objects of rvalue reference types and placing necessary checks for a TYPE_CODE_RVALUE_REF type code next to the checks for a TYPE_CODE_REF type code. gdb/ChangeLog PR gdb/14441 * doc/python.texi (Types in Python): Add TYPE_CODE_RVALUE_REF to table of constants. * python/lib/gdb/command/explore.py: Support exploring values of rvalue reference types. * python/lib/gdb/types.py: Implement get_basic_type() for rvalue reference types. * python/py-type.c (pyty_codes) <TYPE_CODE_RVALUE_REF>: New constant. * python/py-value.c (valpy_getitem): Add an rvalue reference check. (valpy_reference_value): Add new parameter "refcode". (valpy_lvalue_reference_value, valpy_rvalue_reference_value): New wrappers for valpy_reference_value(). * python/py-xmethods.c (gdbpy_get_xmethod_result_type) (gdbpy_invoke_xmethod): Likewise. commit 4297a3f0029974c62628d69b6f3f9ef25f01ea7d Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:50 2017 -0700 Support DW_TAG_rvalue_reference type Make gdb DWARF reader understand the DW_TAG_rvalue_reference type tag. Handling of this tag is done in the existing read_tag_reference_type() function, to which we add a new parameter representing the kind of reference type (lvalue vs rvalue). gdb/ChangeLog PR gdb/14441 * dwarf2read.c (process_die, read_type_die_1): Handle the DW_TAG_rvalue_reference_type DIE. (read_tag_reference_type): Add new parameter "refcode". commit e1cb3213476485a01aa11ecedfa186e386cb4bdb Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:48 2017 -0700 Implement printing of rvalue reference types and values This patch provides the ability to print out names of rvalue reference types and values of those types. This is done in full similarity to regular references, and as with them, we don't print out "const" suffix because all rvalue references are const. gdb/ChangeLog PR gdb/14441 * c-typeprint.c (c_print_type, c_type_print_varspec_prefix) (c_type_print_modifier, c_type_print_varspec_suffix) (c_type_print_base): Support printing rvalue reference types. * c-valprint.c (c_val_print, c_value_print): Support printing rvalue reference values. commit e4347c89f3a14b480fc88581d1363835f7b99b68 Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:46 2017 -0700 Implement demangling for rvalue reference type names This patch fixes demangling of names containing rvalue reference typenames by handling DEMANGLE_COMPONENT_RVALUE_REFERENCE demangle component. gdb/ChangeLog PR gdb/14441 * cp-name-parser.y (ptr_operator): Handle the '&&' token in typename. * cp-support.c (replace_typedefs): Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE. * python/py-type.c (typy_lookup_type): Likewise. commit 53cc15f5fe1f5e2358994d4f60f1c2aa9115004d Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:43 2017 -0700 Support rvalue reference type in parser This patch implements correct parsing of C++11 rvalue reference typenames. This is done in full similarity to the handling of regular references by adding a '&&' token handling in c-exp.y, defining an rvalue reference type piece, and implementing a follow type derivation in follow_types(). gdb/ChangeLog PR gdb/14441 * c-exp.y (ptr_operator): Handle the '&&' token in the typename. * parse.c (insert_type): Change assert statement. (follow_types): Handle rvalue reference types. * parser-defs.h (enum type_pieces) <tp_rvalue_reference>: New constant. commit a65cfae5f8b268158c23a862e7a996d15bbcef0e Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:41 2017 -0700 Add ability to return rvalue reference values from value_ref Parameterize value_ref() by the kind of reference type the value of which is requested. Change all callers to use the new API. gdb/ChangeLog PR gdb/14441 * ada-lang.c (ada_evaluate_subexp): Adhere to the new value_ref() interface. * c-valprint.c (c_value_print): Likewise. * infcall.c (value_arg_coerce): Likewise. * python/py-value.c (valpy_reference_value): Likewise. * valops.c (value_cast, value_reinterpret_cast) (value_dynamic_cast, typecmp): Likewise. (value_ref): Parameterize by kind of return value reference type. * value.h (value_ref): Add new parameter "refcode". commit 3b22433085e4cfee83f5c52f3baa8fb9bc67f8dd Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:39 2017 -0700 Change {lookup,make}_reference_type API Parameterize lookup_reference_type() and make_reference_type() by the kind of reference type we want to look up. Create two wrapper functions lookup_{lvalue,rvalue}_reference_type() for lookup_reference_type() to simplify the API. Change all callers to use the new API. gdb/Changelog PR gdb/14441 * dwarf2read.c (read_tag_reference_type): Use lookup_lvalue_reference_type() instead of lookup_reference_type(). * eval.c (evaluate_subexp_standard): Likewise. * f-exp.y: Likewise. * gdbtypes.c (make_reference_type, lookup_reference_type): Generalize with rvalue reference types. (lookup_lvalue_reference_type, lookup_rvalue_reference_type): New convenience wrappers for lookup_reference_type(). * gdbtypes.h (make_reference_type, lookup_reference_type): Add a reference kind parameter. (lookup_lvalue_reference_type, lookup_rvalue_reference_type): Add wrappers for lookup_reference_type(). * guile/scm-type.c (gdbscm_type_reference): Use lookup_lvalue_reference_type() instead of lookup_reference_type(). * guile/scm-value.c (gdbscm_value_dynamic_type): Likewise. * parse.c (follow_types): Likewise. * python/py-type.c (typy_reference, typy_lookup_type): Likewise. * python/py-value.c (valpy_get_dynamic_type, valpy_getitem): Likewise. * python/py-xmethods.c (gdbpy_get_xmethod_result_type) (gdbpy_invoke_xmethod): Likewise. * stabsread.c: Provide extra argument to make_reference_type() call. * valops.c (value_ref, value_rtti_indirect_type): Use lookup_lvalue_reference_type() instead of lookup_reference_type(). commit f9aeb8d499fa12610610dc19618230304c698f6c Author: Artemiy Volkov <artemiyv@acm.org> Date: Mon Mar 20 13:47:30 2017 -0700 Add definitions for rvalue reference types This patch introduces preliminal definitions regarding C++11 rvalue references to the gdb type system. In addition to an enum type_code entry, a field in struct type and an accessor macro for that which are created similarly to the lvalue references counterparts, we also introduce a TYPE_REFERENCE convenience macro used to check for both kinds of references simultaneously as they are equivalent in many contexts. gdb/Changelog PR gdb/14441 * gdbtypes.h (enum type_code) <TYPE_CODE_RVALUE_REF>: New constant. (TYPE_IS_REFERENCE): New macro. (struct type): Add rvalue_reference_type field. (TYPE_RVALUE_REFERENCE_TYPE): New macro. commit 51457a05780da82b5321a1574caed95ac0e6923e Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Date: Mon Mar 20 14:57:51 2017 -0400 Add -file-list-shared-libraries MI command This change adds the MI equivalent for the "info sharedlibrary" command. The command was already partially documented but ignored as it was not implemented. The new MI command works similarly to the CLI command, taking an optional regular expression as an argument and outputting the library information. I included a test for the new command in mi-solib.exp. gdb/doc/ChangeLog: * gdb.texinfo (gdb/mi Symbol Query Commands): Document new MI command file-list-shared-libraries (GDB/MI Async Records): Update documentation of library-loaded with new field. gdb/ChangeLog: * NEWS: Add an entry about new '-file-list-shared-libraries' command. * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): New function definition. * mi/mi-cmds.c (mi_cmds): Add -file-list-shared-libraries command. * mi/mi-cmds.h (mi_cmd_file_list_shared_libraries): New function declaration. * mi/mi-interp.c (mi_output_solib_attribs): New Function. * mi/mi-interp.h: New file. * solib.c (info_sharedlibrary_command): Replace for loop with ALL_SO_LIBS macro * solib.h (update_solib_list): New function declaration. (so_list_head): Move macro. * solist.h (ALL_SO_LIBS): New macro. gdb/testsuite/ChangeLog: * gdb.mi/mi-solib.exp (test_file_list_shared_libraries): New procedure. Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> commit 5b291c049658614196197e4ea4bb42bcc176b876 Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Date: Mon Mar 20 14:57:45 2017 -0400 Add a better diagnostic message in mi_gdb_test When using mi_gdb_test, if it fails because of the presence of unexpected output, the error message is only the message passed as the argument with no indication that there was an unexpected output. This change adds an additional text to the failure message to indicate that there was an unexpected output. gdb/testsuite/ChangeLog: * lib/mi-support.exp (mi_gdb_test): Add additional message for unexpected output. Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> commit e696b3ad342dde596dcdad4cff6b875c361ed6d0 Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Date: Mon Mar 20 14:57:32 2017 -0400 Remove unused parameter in solib_add and update_solib_list The target parameter in both solib_add and update_solib_list functions is not used anymore and as not been used for a while. This change removes the parameter to clean up the code a little bit. gdb/ChangeLog: * infcmd.c (post_create_inferior): Remove unused argument in call to solib_add. * remote.c (remote_start_remote): Likewise. * solib-frv.c (frv_fetch_objfile_link_map): Likewise. * solib-svr4.c: (svr4_fetch_objfile_link_map): Likewise. (enable_break): Likewise. * solib.c (update_solib_list): Remove unused target argument and its documentation. (solib_add): Remove unused target argument. Remove unused argument in call to update_solib_list. (info_sharedlibrary_command): Remove unused argument in call to update_solib_list. (sharedlibrary_command): Remove unused argument in call to solib_add. (handle_solib_event): Likewise. (reload_shared_libraries): Likewise. * solib.h (solib_add): Remove unused target argument. Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> commit 59a561480d547d041127630b1ba17a284eef8225 Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Mon Mar 20 18:55:39 2017 +0100 Fix spurious FAILs with examine-backward.exp The test case examine-backward.exp issues the command "x/-s" after the end of the first string in TestStrings, but without making sure that this string is preceded by a string terminator. Thus GDB may spuriously print some random characters from before that string, and then the test fails. This patch assures that TestStrings is preceded by a string terminator. gdb/testsuite/ChangeLog: * gdb.base/examine-backward.c (Barrier): New character array constant, to ensure that TestStrings is preceded by a string terminator. commit 39e224f6f9ee3f6123d4c9ddb7c0955e0604c1b4 Author: Mark Wielaard <mark@klomp.org> Date: Mon Mar 20 15:32:34 2017 +0100 readelf: Don't error on .debug files with NOBITS .dynamic section. The fix for PR binutils/17512 added a check for the dynamic segment being inside the actual ELF file. If not an error message would be produced: readelf: Error: the dynamic segment offset + size exceeds the size of the file Unfortunately for separate debuginfo files it is common for the dynamic segment not being inside the file because the .dynamic section is NOBITS. Since the check is done unconditionally in process_program_headers and process_program_headers is always called (to setup dynamic_addr in case it is needed). The error is produced on any operations done on any .debug file (even if no program headers or the dynamic segment is used). If there are section headers then a cross check is done to see if the .dynamic section is NOBITS in which case dynamic_addr is set to zero without a warning or error (which is then checked first before any operation on the dynamic segement is done). Move the check for the dynamic segment being inside the actual ELF file after the cross check with the section headers to suppress the error for .debug files. binutils/ChangeLog: * readelf.c (process_program_headers): Move dynamic_addr check after .dynamic section cross check. commit e406e428dfe9d64e3be0b7a3c1c97c09edc5bdba Author: Nick Clifton <nickc@redhat.com> Date: Mon Mar 20 16:57:07 2017 +0000 Update descriptions of the .2byte, .4byte and .8byte directives. * doc/as.texinfo (2byte): Note that if no expressions are present the directive does nothing. Emphasize that the output is unaligned, and that this can have an effect on the relocations generated. (4byte): Simplify description. Refer back to the 2byte description. (8byte): Likewise. commit dcb84eda0c5f25835251a311c4d6704e70cfa498 Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Mon Mar 20 17:30:01 2017 +0100 s390: Fix displaced-stepping certain relative branch insns On s390x targets GDB can not handle displaced stepping correctly for some relative branch instructions, such as cij (compare immediate and branch relative). When setting a breakpoint on such an instruction and single-stepping over it, the branch is never taken. This is because the check in s390_displaced_step_fixup for relative branch instructions is incomplete. Instead of completing the list of relative branch instructions to check against, this patch just treats relative branches and non-branching instructions in the same way and adjusts the PC with the negated displacement in both cases. gdb/ChangeLog: * s390-linux-tdep.c (is_rsi, is_rie): Remove functions. (s390_displaced_step_fixup): Cover relative branches with the default fixup handling. This fixes lack of support for some relative branch instructions. commit 4ea0266c22eccf6e7719469a981267659e47ef3a Author: Stafford Horne <shorne@gmail.com> Date: Mon Mar 20 15:33:51 2017 +0000 Update the openrisc previous program counter (ppc) when running code in the cgen based simulator. * or1kcommon.cpu: Add pc set semantics to also update ppc. commit d5e0ba9cdb0d002b97bab722cce673ce86cf7b11 Author: Richard Earnshaw <Richard.Earnshaw@arm.com> Date: Mon Mar 20 14:56:22 2017 +0000 [arm] Document missing -mfpu entries. Nick pointed out that I hadn't documented the new -mfpu option neon-vfpv3 and mentioned that some others were missing. Having looked through the list only one (neon-fp16) really should be documented; the other two entries in the real table should not be documented as they are aliases kept for legacy compatibility reasons. This patch adds the missing entries and notes in the main table that the other two entries should not be documented. I've also fixed a small spelling error in the accompanying text. * config/tc-arm.c (arm_fpus): Note entires that should not be documented. * doc/c-arm.texi (-mfpu): Add missing FPU entries for neon-vfpv3 and neon-fp16. Fix spelling error. commit d3375ddde4011242ef576083459fc51d0ddc53c8 Author: Richard Earnshaw <Richard.Earnshaw@arm.com> Date: Mon Mar 20 10:03:15 2017 +0000 [arm] Add neon-vfp3 as an alias for neon to -mfpu. GCC recently added neon-vfpv3 as an alias for neon in -mfpu. This patch adds a similar alias in GAS. * config/tc-arm.c (arm_fpus): Add neon-vfpv3 as an alias for neon. commit 5c62b69b91e13c6b9c126480680cff836c0b282d Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Mar 20 00:00:40 2017 +0000 Automatic date update in version.in commit aaed6f5be3a41a88cc13c744e88af78f5a42dd5b Author: Alan Modra <amodra@gmail.com> Date: Mon Mar 20 08:25:50 2017 +1030 PR 21266, unstable qsort in bfd/elf64-ppc.c PR 21266 * elf64-ppc.c (compare_symbols): Stabilize sort. commit 84e8538ee3c8139a99e75e661fff500bb93c8cd5 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Mar 19 00:00:24 2017 +0000 Automatic date update in version.in commit bbdf9b697fc0652379794267b23f597e15c7db57 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Mar 18 00:00:41 2017 +0000 Automatic date update in version.in commit 82e66161e649e5e801c40a52cba759292a76a59a Author: Alan Modra <amodra@gmail.com> Date: Fri Mar 17 08:37:15 2017 +1030 DT_TEXTREL vs IFUNC If you should somehow link non-pic objects into a PIE or shared library, resulting in an object with DT_TEXTREL (text relocations) set, and your executable or shared library also contains GNU indirect functions, then you're in trouble. To apply dynamic relocations ld.so will make the text segment writable. On most systems this will make the text segment non-executable, which will then result in a segfault when ld.so tries to run ifunc resolvers when applying relocations against ifuncs. This patch teaches PowerPC ld to detect the situation, and warn. * elf64-ppc.c (struct ppc_link_hash_table): Add local_ifunc_resolver and maybe_local_ifunc_resolver. (ppc_build_one_stub): Set flags on emitting dynamic relocation to ifunc. (ppc64_elf_relocate_section): Likewise. (ppc64_elf_finish_dynamic_symbol): Likewise. (ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with local dynamic relocs to ifuncs. * elf32-ppc.c (struct ppc_elf_link_hash_table): Add local_ifunc_resolver and maybe_local_ifunc_resolver. (ppc_elf_relocate_section): Set flag on emitting dynamic relocation to ifuncs. (ppc_elf_finish_dynamic_symbol): Likewise. (ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local dynamic relocs to ifuncs. commit d9cb6cdcfa12368f2f639f8cd06d18b94bd98a39 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:57 2017 -0400 i386-gnu-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * i386-gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Use ptid from regcache. commit 1afaf9f42fe201872d758214beceff85325a988a Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:56 2017 -0400 i386-darwin-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * i386-darwin-nat.c (i386_darwin_fetch_inferior_registers, i386_darwin_store_inferior_registers): Use ptid from regcache. commit aac12e2497a42b47223680ab1b5924137de77c9a Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:55 2017 -0400 i386-bsd-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * i386-bsd-nat.c (i386bsd_fetch_inferior_registers, i386bsd_store_inferior_registers): Use ptid from regcache. commit bbe1eef1e585e19d5493882e55f2b7902df9827a Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:55 2017 -0400 hppa-obsd-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * hppa-obsd-nat.c (hppaobsd_fetch_registers, hppaobsd_store_registers): Use ptid from regcache. commit 10799020a9336b6a88c1ace53c601960b840d580 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:54 2017 -0400 hppa-nbsd-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * hppa-nbsd-nat.c (hppanbsd_fetch_registers, hppanbsd_store_registers): Use ptid from regcache. commit 00204cf7da01d99205aacc994e5c594ed12bba64 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:53 2017 -0400 hppa-linux-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * hppa-linux-nat.c (fetch_register, store_register): Use ptid from regcache. Use get_ptrace_pid. commit 11a3371447f15af26def26646ad2eb7a4386462d Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:52 2017 -0400 corelow: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * corelow.c (get_core_register_section): Use ptid from regcache, update doc. commit 317cd4925a9d6ef6f8752a771cb56e85ddfb30f0 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:51 2017 -0400 bsd-uthread: Use ptid from regcache instead of inferior_ptid This is one of the rare to_fetch/store_registers implementations that will still rely (for now) on inferior_ptid (because of the memory read/write operations). We therefore have to add a save/restore of inferior_ptid. We'll be able to remove it when we make the memory operations accept the ptid as a parameter. gdb/ChangeLog: * bsd-uthread.c (bsd_uthread_fetch_registers, bsd_uthread_store_registers): Use ptid from regcache, set and restore inferior_ptid. commit 9ac8a7c281aa949cf588cccb9977ea51eaff8130 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:50 2017 -0400 arm-nbsd-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * arm-nbsd-nat.c (fetch_register, fetch_regs, fetch_fp_register, fetch_fp_regs, store_register, store_regs, store_fp_register, store_fp_regs): Use ptid from regcache. commit 4ac4bb6ad5ead16be5ca6996a3e325c26ddf71da Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Fri Mar 17 13:55:49 2017 -0400 arm-linux-nat.c: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * arm-linux-nat.c (fetch_fpregs, store_fpregs, fetch_regs, store_regs, fetch_wmmx_regs, store_wmmx_regs, fetch_vfp_regs, store_vfp_regs): Use ptid from regcache. commit 0dd6ae21da832f351a3722d2f8bac187fc3bdfef Author: Nick Clifton <nickc@redhat.com> Date: Fri Mar 17 17:36:51 2017 +0000 Fix displaying the value associated a GNU BUILD note that uses an ascii name. * readelf.c (print_gnu_build_attribute_name): Fix off by one error printing the value for a build note with an ascii name. commit 9bcbdca808b5f9fec6217d20bd4b48a56008c460 Author: Pedro Alves <palves@redhat.com> Date: Fri Mar 17 16:08:12 2017 +0000 PR remote/21188: Fix remote serial timeout As Gareth McMullin <gareth@blacksphere.co.nz> reports at <https://sourceware.org/ml/gdb-patches/2017-02/msg00560.html>, the timeout mechanism in ser-unix.c was broken by commit 048094acc ("target remote: Don't rely on immediate_quit (introduce quit handlers)"). Instead of applying a local fix, and since we now finally always use interrupt_select [1], let's get rid of hardwire_readchar entirely, and use ser_base_readchar instead, which has similar timeout handling, except for the bug. Smoke tested with: $ socat -d -d pty,raw,echo=0 pty,raw,echo=0 2017/03/14 14:08:13 socat[4994] N PTY is /dev/pts/14 2017/03/14 14:08:13 socat[4994] N PTY is /dev/pts/15 2017/03/14 14:08:13 socat[4994] N starting data transfer loop with FDs [3,3] and [5,5] $ gdbserver /dev/pts/14 PROG $ gdb PROG -ex "tar rem /dev/pts/15" and then a few continues/ctrl-c's, plus killing gdbserver and socat. [1] - See FIXME comments being removed. gdb/ChangeLog: 2017-03-17 Pedro Alves <palves@redhat.com> PR remote/21188 * ser-base.c (ser_base_wait_for): Add comment. (do_ser_base_readchar): Improve comment based on the ser-unix.c's version. * ser-unix.c (hardwire_raw): Remove reference to scb->current_timeout. (wait_for, do_hardwire_readchar, hardwire_readchar): Delete. (hardwire_ops): Install ser_base_readchar instead of hardwire_readchar. * serial.h (struct serial) <current_timeout, timeout_remaining>: Remove fields. commit 7503099f3e29739d34cb1224d54fba96404e6e61 Author: Jonah Graham <jonah@kichwacoders.com> Date: Fri Mar 17 14:57:44 2017 +0000 Fix PR gdb/19637: bound_registers.py: Add support for Python 3 Fix this the same way gdb/python/lib/gdb/printing.py handles it. gdb/Changelog: 2017-03-17 Jonah Graham <jonah@kichwacoders.com> PR gdb/19637 * python/lib/gdb/printer/bound_registers.py: Add support for Python 3. commit 4b94dd2de12dd0389615700b13b63260e162ccf0 Author: Alan Modra <amodra@gmail.com> Date: Fri Mar 17 19:06:12 2017 +1030 E6500 spr mnemonics PR 21248 * ppc-opc.c (powerpc_opcodes): Enable mfivor32, mfivor33, mtivor32, and mtivor33 for e6500. Move mfibatl and mfibatu after those spr mnemonics they alias. Similarly for mtibatl, mtibatu. commit 1d3fa25f5802fe2250f32f335ad57897a62e0fe2 Author: Alan Modra <amodra@gmail.com> Date: Tue Mar 14 22:01:34 2017 +1030 ld sec64k test fix * testsuite/ld-elf/sec64k.exp: Don't run on h8300 and ip2k. commit b4fcfd3b4d173129207f804f5eee4557c788d66b Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri Mar 17 00:00:34 2017 +0000 Automatic date update in version.in commit 7942e96e435d1cf4d4dbf58c47bb28d9f628c9e6 Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Thu Mar 16 19:50:24 2017 +0100 Big-endian targets: Don't ignore offset into DW_OP_stack_value Recently I fixed a bug that caused a DW_OP_implicit_pointer with non-zero offset into a DW_OP_implicit_value to be handled incorrectly on big-endian targets. GDB ignored the offset and copied the wrong bytes: https://sourceware.org/ml/gdb-patches/2017-01/msg00251.html But there is still a similar issue when a DW_OP_implicit_pointer points into a DW_OP_stack_value instead; and again, the offset is ignored. There is an important difference, though: While implicit values are treated like blocks of data and anchored at the lowest-addressed byte, stack values traditionally contain integer numbers and are anchored at the *least significant* byte. Also, stack values do not come in varying sizes, but are cut down appropriately when used. Thus, on big-endian targets the scenario looks like this (higher addresses shown right): |<- - - - - Stack value - - - - - - ->| | | |<- original object ->| | | offset ->|####| ^^^^ de-referenced implicit pointer (Note how the original object's size influences the position of the de-referenced implicit pointer within the stack value. This is not the case for little-endian targets, where the original object starts at offset zero within the stack value.) This patch implements the logic indicated in the above diagram and adds an appropriate test case. A new function dwarf2_fetch_die_type_sect_off is added; it is used for retrieving the original object's type, so its size can be determined. That type is passed to dwarf2_evaluate_loc_desc_full via a new parameter. gdb/ChangeLog: * dwarf2loc.c (indirect_synthetic_pointer): Get data type of pointed-to DIE and pass it to dwarf2_evaluate_loc_desc_full. (dwarf2_evaluate_loc_desc_full): New parameter subobj_type; rename byte_offset to subobj_byte_offset. Fix the handling of DWARF_VALUE_STACK on big-endian targets when coming via an implicit pointer. (dwarf2_evaluate_loc_desc): Adjust call to dwarf2_evaluate_loc_desc_full. * dwarf2loc.h (dwarf2_fetch_die_type_sect_off): New declaration. * dwarf2read.c (dwarf2_fetch_die_type_sect_off): New function. gdb/testsuite/ChangeLog: * lib/dwarf.exp: Add support for DW_OP_implicit_pointer. * gdb.dwarf2/nonvar-access.exp: Add test for stack value location and implicit pointer into such a location. commit 6ebac3fbacebaebd9e2c9393da3b612342d953a9 Author: Doug Evans <dje@google.com> Date: Thu Mar 16 10:43:21 2017 -0700 gdb.python/py-lazy-string (pointer): Really add new typedef. Somehow got dropped in earlier commit. gdb/testsuite/ChangeLog: * gdb.python/py-lazy-string (pointer): Really add new typedef. commit 2cc36e25db366d70a975702b61c7700ae934d4d0 Author: Doug Evans <dje@google.com> Date: Thu Mar 16 10:39:26 2017 -0700 Remove collision markers from earlier commit commit a8be5506b626a57f84771c5ddfaefabf2d61c017 Author: Nick Clifton <nickc@redhat.com> Date: Thu Mar 16 16:44:55 2017 +0000 Add support for a GNU BUILD note type to record the enum size. include * elf/common.h (GNU_BUILD_ATTRIBUTE_SHORT_ENUM): New GNU BUILD note type. binutils * readelf.c (print_gnu_build_attribute_name): Add support for GNU_BUILD_ATTRIBUTE_SHORT_ENUM. commit ba14f3792fe007bedd88b62e554c79258adc53d9 Author: Yao Qi <yao.qi@linaro.org> Date: Thu Mar 16 16:35:18 2017 +0000 Support CBNZ, CBZ, REV, REV16 and REVSH in arm process record This patch adds the support for these instructions in arm process record. gdb: 2017-03-16 Yao Qi <yao.qi@linaro.org> * arm-tdep.c (thumb_record_misc): Decode CBNZ, CBZ, REV16, and REVSH instructions. commit b121eeb9971ebfceffc38e6131fdc15ec4188599 Author: Yao Qi <yao.qi@linaro.org> Date: Thu Mar 16 16:35:18 2017 +0000 Fix arm process record for some instructions I look at some fails in gdb.reverse/solib-precsave.exp in -mthumb, they are caused by some bugs on decoding these three instructions, uxtb, ldr and mrc. This patch adds unit tests against these three instructions, and fix these bugs by re-organizing the code to match the table in ARM ARM. gdb: 2017-03-16 Yao Qi <yao.qi@linaro.org> * arm-tdep.c [GDB_SELF_TEST]: include "selftests.h". (arm_record_test): Declare. (_initialize_arm_tdep) [GDB_SELF_TEST]: call register_self_test. (thumb_record_ld_st_reg_offset): Rewrite the opcode matching to align with the manual. (thumb_record_misc): Adjust the code order to align with the manual. (thumb2_record_decode_insn_handler): Fix instruction matching. (instruction_reader_thumb): New class. (arm_record_test): New function. commit 728a79135f51a1c20719ebaf3c98446d9ee248db Author: Yao Qi <yao.qi@linaro.org> Date: Thu Mar 16 16:35:18 2017 +0000 Add instruction_reader to arm process record This patch adds an abstract class abstract_memory_reader a and pass it to the code reading instructions in arm process record, rather than using target_read_memory to read from real target. This paves the way for adding more unit tests to arm process record. gdb: 2017-03-16 Yao Qi <yao.qi@linaro.org> * arm-tdep.c (abstract_memory_reader): New class. (instruction_reader): New class. (extract_arm_insn): Add argument 'reader'. Callers updated. (decode_insn): Likewise. commit a7c0469f992721b30665ba92f4f2f74d29032a84 Author: Doug Evans <dje@google.com> Date: Wed Mar 15 15:44:45 2017 -0700 Copy lazy string handling fixes from Python. This patch keeps the Scheme side of lazy string handling in sync with the python size, bringing over fixes for PRs python/17728, python/18439, python/18779. gdb/ChangeLog: * guile/scm-lazy-string.c (lazy_string_smob): Clarify use of LENGTH member. Change type of TYPE member to SCM. All uses updated. (lsscm_make_lazy_string_smob): Add assert. (lsscm_make_lazy_string): Flag bad length values. (lsscm_elt_type): New function. (gdbscm_lazy_string_to_value): Rewrite to use lsscm_safe_lazy_string_to_value. (lsscm_safe_lazy_string_to_value): Fix handling of TYPE_CODE_PTR. * guile/scm-value.c (gdbscm_value_to_lazy_string): Flag bad length values. Fix TYPE_CODE_PTR. Handle TYPE_CODE_ARRAY. Handle typedefs in incoming type. * guile/guile-internal.h (tyscm_scm_to_type): Declare. * guile/scm-type.c (tyscm_scm_to_type): New function. gdb/testsuite/ChangeLog: * gdb.guile/scm-value.c (main) Delete locals sptr, sn. * gdb.guile/scm-lazy-string.c: New file. * gdb.guile/scm-value.exp: Move lazy string tests to ... * gdb.guile/scm-lazy-string.exp: ... here, new file. Add more tests for pointer, array, typedef lazy strings. commit 34b433203b5f56149c27a8dfea21a921392cb158 Author: Doug Evans <dje@google.com> Date: Wed Mar 15 15:35:13 2017 -0700 Fix various python lazy string bugs. gdb/ChangeLog: PR python/17728, python/18439, python/18779 * python/py-lazy-string.c (lazy_string_object): Clarify use of LENGTH member. Change type of TYPE member to PyObject *. All uses updated. (stpy_convert_to_value): Fix handling of TYPE_CODE_PTR. (gdbpy_create_lazy_string_object): Flag bad length values. Handle TYPE_CODE_ARRAY with possibly different user-provided length. Handle typedefs in incoming type. (stpy_lazy_string_elt_type): New function. (gdbpy_extract_lazy_string): Call it. * python/py-value.c (valpy_lazy_string): Flag bad length values. Fix handling of TYPE_CODE_PTR. Handle TYPE_CODE_ARRAY. Handle typedefs in incoming type. gdb/testsuite/ChangeLog: PR python/17728, python/18439, python/18779 * gdb.python/py-value.c (main) Delete locals sptr, sn. * gdb.python/py-lazy-string.c (pointer): New typedef. (main): New locals ptr, array, typedef_ptr. * gdb.python/py-value.exp: Move lazy string tests to ... * gdb.python/py-lazy-string.exp: ... here. Add more tests for pointer, array, typedef lazy strings. commit a3a5feccd26be653efbdf1408874b98962baaa50 Author: Doug Evans <dje@google.com> Date: Sun Nov 6 16:10:00 2016 -0800 New function tyscm_scm_to_type. gdb/ChangeLog: * guile/guile-internal.h (tyscm_scm_to_type): Declare. * guile/scm-type.c (tyscm_scm_to_type): New function. commit f8d995870f957d5fd32fb21fb4afe76a754ddf31 Author: Doug Evans <dje@google.com> Date: Sun Nov 6 16:03:56 2016 -0800 Lazy strings can be made from arrays too. gdb/doc/ChangeLog: * guile.texi (Lazy Strings In Guile): Mention arrays. * python.texi (Lazy Strings In Python): Ditto. commit 28f1c60507ad4ca2252cebada30d2f63ec3b772f Author: Jiong Wang <jiong.wang@arm.com> Date: Thu Mar 16 09:55:18 2017 +0000 [Patch] Fix variable type glitch in inf-ptrace.c gdb/ * inf-ptrace.c (inf_ptrace_peek_poke): Change the type to "ULONGEST" for "skip". commit ec3b243d4308ee56c9e3c62470b10ed2a822eb51 Author: Thomas Preud'homme <thomas.preudhomme@arm.com> Date: Thu Mar 16 14:02:31 2017 +0000 Fix expect for gdb.cp/m-static.exp The expectation in gdb.cp/m-static.exp for the ptype of single_constructor is to get in the result of destructor with the following prototype: ~single_constructor(int). Yet, m-static.cc declares the destructor as ~single_constructor(). This commit fixes the expectation. 2017-03-16 Thomas Preud'homme <thomas.preudhomme@arm.com> gdb/testsuite/ * gdb.cp/m-static.exp: Fix expectation for prototype of test5.single_constructor and single_constructor::single_constructor. commit 2c52e2e8c9e8f733cc0772d1400b0f4d3eb7379c Author: Rinat Zelig <rinat@mellanox.com> Date: Thu Mar 16 10:05:22 2017 +0000 gas/arc: Limit special handling of t/nt flag to ARCv2 In a later commit I'll be adding a new version of the ".nt" flag for an ARC700 extension (NPS400) which does not require this same special handling. In this commit I have restricted the special flag handling to only apply if we are assembling for ARCv2. This is a restructuring commit, and there should be no user visible changes after this commit. gas/ChangeLog: * config/tc-arc.c (assemble_insn): Only handle ".t" and ".nt" specially for ARCv2. commit e189bfe660d335f3b7c61446c9b5d3b0f0701606 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu Mar 16 00:00:45 2017 +0000 Automatic date update in version.in commit aab2c17756ee5bef0ea5783a460a0990450b3bd5 Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 16:49:16 2017 -0700 Mips: Fix TLS LDM GOT entry. gold/ * mips.cc (Mips_got_entry::hash()): Shift addend to reduce possibility of collisions. (Mips_got_entry::equals): Fix case for GOT_TLS_LDM entries. commit 4d78db49e6eee097365e31f9b5b47e5391243979 Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 16:46:26 2017 -0700 Mips: Omit empty objects for merging processor-specific data. gold/ * mips.cc (Mips_relobj::merge_processor_specific_data_): New data member. (Mips_relobj::merge_processor_specific_data): New method. (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_ to false, only if the input file is a binary or if object has no contents except the section name string table and an empty symbol table with the undefined symbol. (Target_mips::do_finalize_sections): Refactor. Skip empty object files for merging processor-specific data. commit 152c92b261fd9e4655688bef746ca32352f56bc4 Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 16:41:48 2017 -0700 Mips: Add support for resolving multiple consecutive relocations. gold/ * mips.cc (Target_mips::Relocate::calculated_value_): New data member. (Target_mips::Relocate::calculate_only_): Likewise. (Target_mips::Relocate::relocate): Handle multiple consecutive relocations with the same offset. commit 1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 15:52:12 2017 -0700 Remove redundant checks for relocatable link (MIPS). gold/ * mips.cc (Target_mips::Relocate::relocate): Remove redundant checks for relocatable link. (Mips_relocate_functions::reljalr): Likewise. commit 1728969e93010862fe0ef7985cabe03a4494a63e Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 15:47:58 2017 -0700 Add support for .MIPS.options section. gold/ * mips.cc (class Mips_output_section_options): New class. (Target_mips::do_make_output_section): New method. commit c3847462f86778e97222a72378a84182f92c644a Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 15:43:25 2017 -0700 Improve relocation overflow errors on MIPS. gold/ * mips.cc (Mips_relocate_functions::rel26): Don't print relocation overflow error message. (Target_mips::relocate_special_relocatable): Improve relocation overflow error message. (Target_mips::Relocate::relocate): Likewise. commit 453018bf4490421a995cd76b3d2a3f322359c6a5 Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> Date: Wed Mar 15 15:35:15 2017 -0700 Correct the definition of _gp and _GLOBAL_OFFSET_TABLE_ symbols for MIPS. gold/ * mips.cc (symbol_refs_local): Return false if a symbol is from a dynamic object. (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN. (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and STB_LOCAL. (Target_mips::do_finalize_sections): Set _gp after all the checks for creating .got are done. (Target_mips::Scan::global): Remove unused code. commit b416fe873ef44b2a613c9266c6462a481926d986 Author: Kito Cheng <kito.cheng@gmail.com> Date: Tue Mar 7 18:15:02 2017 +0800 RISC-V: Fix assembler for c.li, c.andi and c.addiw - They can accept 0 in imm field 2017-03-14 Kito Cheng <kito.cheng@gmail.com> * riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding. <c.andi>: Likewise. <c.addiw> Likewise. commit 03b039a518fa0f89a9900a44a8b874cc91061305 Author: Kito Cheng <kito.cheng@gmail.com> Date: Tue Mar 7 19:56:40 2017 +0800 RISC-V: Fix assembler for c.addi, rd can be x0 opcodes/ChangeLog: 2017-03-14 Kito Cheng <kito.cheng@gmail.com> * riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode. commit 9494d9636612cd9bd22e38625fbc89147beafea7 Author: Tristan Gingold <gingold@adacore.com> Date: Tue Mar 14 14:54:37 2017 +0100 ld-checks: tweak overflow checks. * testsuite/ld-checks/checks.exp (overflow_check): Disable for non-elf targets. commit 7cb7b948ce62831a999f88054a6b2d39afbe926e Author: Nick Clifton <nickc@redhat.com> Date: Wed Mar 15 09:19:42 2017 +0000 Fix building riscv targets with gcc v6.3.1 * config/tc-riscv.c (riscv_pre_output_hook): Fix compile time warning about discarding a const qualifier. commit cc7e96c25d59db0a5279da0a0ff36d61151f3021 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Mar 15 00:00:36 2017 +0000 Automatic date update in version.in commit c98763221af696a9e0c6686da7d65881bfd6bdd0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Mar 14 12:56:49 2017 -0700 Add DW_OP_GNU_variable_value Sync GCC dwarf.def change 2017-03-14 Jakub Jelinek <jakub@redhat.com> PR debug/77589 * dwarf2.def (DW_OP_GNU_variable_value): New opcode. commit 87c336f60eccc6506ff19369c29575f43fea02ea Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Tue Mar 14 19:20:46 2017 +0100 inf-ptrace: Do not stop memory transfers after a single word When inf_ptrace_xfer_partial performs a memory transfer via ptrace with PT_READ_I, PT_WRITE_I (aka PTRACE_PEEKTEXT, PTRACE_POKETEXT), etc., then it currently transfers at most one word. This behavior yields degraded performance, particularly if the caller has significant preparation work for each invocation. And indeed it has for writing, in memory_xfer_partial in target.c, where all of the remaining data to be transferred is copied to a temporary buffer each time, for breakpoint shadow handling. Thus large writes have quadratic runtime and can take hours. Note: On GNU/Linux targets GDB usually does not use inf_ptrace_xfer_partial for large memory transfers, but attempts a single read/write from/to /proc/<pid>/mem instead. However, the kernel may reject writes to /proc/<pid>/mem (such as kernels prior to 2.6.39), or /proc may not be mounted. In both cases GDB falls back to the ptrace mechanism. This patch fixes the performance issue by attempting to fulfill the whole transfer request in inf_ptrace_xfer_partial, using a loop around the ptrace call. gdb/ChangeLog: PR gdb/21220 * inf-ptrace.c (inf_ptrace_xfer_partial): In "case TARGET_OBJECT_MEMORY", extract the logic for ptrace peek/poke... (inf_ptrace_peek_poke): ...here. New function. Now also loop over ptrace peek/poke until end of buffer or error. commit d47c3ff7d55122befac848fe64b7445789c78787 Author: Kuan-Lin Chen <rufus@andestech.com> Date: Thu Mar 2 14:54:32 2017 +0800 RISC-V: Define DWARF2_USE_FIXED_ADVANCE_PC. gas/ChangeLog 2017-03-02 Kuan-Lin Chen <rufus@andestech.com> * config/tc-riscv.h (HWARD2_USE_FIXED_ADVANCE_PC): New define. commit 2aece2ba02457e83fd2a780a8ac596b6a90adf29 Author: Kuan-Lin Chen <rufus@andestech.com> Date: Fri Feb 10 14:58:52 2017 +0800 RISC-V: Fix DW_CFA_advance_loc relocation. gas/ChangeLog: 2017-03-02 Kuan-Lin Chen <rufus@andestech.com> * config/tc-riscv.c (md_apply_fix): Set fx_frag and fx_next->fx_frag for CFA_advance_loc relocations. commit c1b465c94e26be629315bf28e3763dea9dea8336 Author: Kuan-Lin Chen <rufus@andestech.com> Date: Thu Feb 2 15:27:18 2017 +0800 RISC-V: Fix the offset of CFA relocation. gas/ChangeLog: 2017-03-02 Kuan-Lin Chen <rufus@andestech.com> * config/tc-riscv.c (md_apply_fix): Compute the correct offsets for CFA relocations. commit 2c232b8361a044d689d12161b7a645d238586f5e Author: Andrew Waterman <andrew@sifive.com> Date: Mon Mar 13 12:46:33 2017 -0700 RISC-V: Fix [dis]assembly of srai/srli These were simple copy/paste errors from the compressed left shift pattern, which can't have a 0-register. commit 9216a6f33592c350ad50696d5571c82e47b71a5e Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Mar 14 09:09:54 2017 -0700 Use addr_mask to check VMA and LMA Since BFD64 may be used on 32-bit address, we need to apply addr_mask to check VMA and LMA. * ldlang.c (lang_check_section_addresses): Use addr_mask to check VMA and LMA. commit cf81cf6081d1a8c15c477f903d15d7b88f31b686 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Tue Mar 14 10:25:39 2017 -0400 Make length_of_subexp static It isn't used anywhere else than the file it's defined in. gdb/ChangeLog: * parse.c (length_of_subexp): Make static. * parser-defs.h (length_of_subexp): Remove. commit c799a79d66d09c442d85467986c2e8873f09297c Author: Nick Clifton <nickc@redhat.com> Date: Tue Mar 14 12:57:09 2017 +0000 Try harder to find the correct symbol to associate with OPEN GNU BUILD notes. * readelf.c (print_gnu_build_attribute_description): Move symbol printing code to... (print_symbol_for_build_attribute): New function. ...here. Add to find the best symbol to associate with an OPEN note. Add code to cache the symbol table and string table, so that they are not loaded every time a note is displayed. * testsuite/binutils-all/note-2-32.s: Add a function symbol. * testsuite/binutils-all/note-2-64.s: Likewise. * testsuite/binutils-all/note-2-32.d: Update expected note output. * testsuite/binutils-all/note-2-64.d: Likewise. commit 0efcde634d45f4cda03fd18c43ff449103559d7a Author: Anton Kolesov <Anton.Kolesov@synopsys.com> Date: Mon Mar 6 21:24:38 2017 +0300 Add test name argument to get_valueof, get_integer_valueof and get_sizeof An optional parameter TEST has been added to get_hexadecimal_valueof in commit: https://sourceware.org/ml/gdb-patches/2016-06/msg00469.html This patch adds a similar optional parameter to other related methods that retrieve expression values: get_valueof, get_integer_valueof and get_sizeof. Thus tests that evaluate same expression multiple times can provide custom test names, ensuring that test names will be unique. gdb/testsuite/ChangeLog: 2017-03-14 Anton Kolesov <anton.kolesov@synopsys.com> * lib/gdb.exp (get_valueof, get_integer_valueof, get_sizeof): Add optional 'test' parameter. commit a379284af268ed768674e7f452ca78dad2aaaf55 Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Tue Mar 14 11:14:49 2017 +0100 linux-nat: Exploit /proc/<pid>/mem for writing So far linux_proc_xfer_partial refused to handle write requests. This is still based on the assumption that the Linux kernel does not support writes to /proc/<pid>/mem. That used to be true, but has changed with Linux 2.6.39 released in May 2011. This patch lifts this restriction and now exploits /proc/<pid>/mem for writing to inferior memory as well, if possible. gdb/ChangeLog: * linux-nat.c (linux_proc_xfer_partial): Handle write operations as well. commit 8a6200ba863f207d93467312431d107f50f0e2ab Author: Pedro Alves <palves@redhat.com> Date: Tue Mar 14 00:11:09 2017 +0000 Restore test-cp-name-parser build Commit c8b23b3f89fbb0 ("Add constructor and destructor to demangle_parse_info") a while ago broke the "test-cp-name-parser" build: $ make test-cp-name-parser [...] src/gdb/cp-name-parser.y: In function âint main(int, char**)â: src/gdb/cp-name-parser.y:2190:9: error: cannot convert âstd::unique_ptr<demangle_parse_info>â to âdemangle_parse_info*â in assignment result = cp_demangled_name_to_comp (str2, &errmsg); ^ src/gdb/cp-name-parser.y:2199:38: error: âcp_demangled_name_parse_freeâ was not declared in this scope cp_demangled_name_parse_free (result); ^ src/gdb/cp-name-parser.y:2211:14: error: cannot convert âstd::unique_ptr<demangle_parse_info>â to âdemangle_parse_info*â in assignment result = cp_demangled_name_to_comp (argv[arg], &errmsg); ^ src/gdb/cp-name-parser.y:2219:43: error: âcp_demangled_name_parse_freeâ was not declared in this scope cp_demangled_name_parse_free (result); ^ Makefile:2107: recipe for target 'test-cp-name-parser.o' failed make: *** [test-cp-name-parser.o] Error 1 This commit restores it. gdb/ChangeLog: 2017-03-14 Pedro Alves <palves@redhat.com> * cp-name-parser.y (cp_demangled_name_to_comp): Update comment. (main): Use std::unique_ptr. Remove calls to cp_demangled_name_parse_free. commit 9c7272f0833da2bfdf513d41bc41cdbc5f4fc5f7 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Mar 14 00:00:40 2017 +0000 Automatic date update in version.in commit f79ec2066662b2c32c9e62ee372c9c230d206b89 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:40 2017 -0400 alpha-bsd-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * alpha-bsd-nat.c (alphabsd_fetch_inferior_registers, alphabsd_store_inferior_registers): Use regcache->ptid instead of inferior_ptid. commit edb5fb00a6865884f99be01a9e97f44243a9deb9 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:40 2017 -0400 aix-thread: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * aix-thread.c (aix_thread_fetch_registers, aix_thread_store_registers): Use regcache->ptid instead of inferior_ptid. commit 551196862e4e9dfda510f59c53b0a3ff3153e4ed Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:39 2017 -0400 aarc64-linux-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * aarch64-linux-nat.c (fetch_gregs_from_thread, store_gregs_to_thread, fetch_fpregs_from_thread, store_fpregs_to_thread): Use regcache->ptid instead of inferior_ptid. commit 6a06fbb7b73fe55d6b9057f8154652e1ae8f883c Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:39 2017 -0400 amd64-linux-nat: Use ptid from regcache instead of inferior_ptid gdb/ChangeLog: * amd64-linux-nat.c (amd64_linux_fetch_inferior_registers, amd64_linux_fetch_inferior_registers): Use regcache->ptid instead of inferior_ptid. commit c6386875ba57a806c896ba097afef525671de4a0 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:38 2017 -0400 Add asserts in target_fetch/store_registers We are currently assuming that regcache->ptid is equal to inferior_ptid when we call target_fetch/store_registers. These asserts just validate that assumption. Also, since the following patches will change target code to use regcache->ptid instead of inferior_ptid, asserting that they are the same should ensure that our changes don't have any unintended consequences. gdb/ChangeLog: * target.c (target_fetch_registers, target_store_registers): Add assert. commit ddaaf0fb8605fced72e84410fc7ac834e529eb53 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:51:38 2017 -0400 Introduce regcache_get_ptid This patch introduces the regcache_get_ptid function, which can be used to retrieve the ptid a regcache is connected to. It is used in subsequent patches. gdb/ChangeLog: * regcache.h (regcache_get_ptid): New function. * regcache.c (regcache_get_ptid): New function. commit 1a01e7c6b0eaed1bfe70d48692e1103c6e9ee2d9 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:05 2017 -0400 gdbserver: Use pattern rule for the remaining %-ipa.o objects gdb/gdbserver/ChangeLog: * Makefile.in (%-ipa.o: %-ipa.c): New rule. (ax-ipa.o: ax.c): Remove. (linux-i386-ipa.o: linux-i386-ipa.c): Remove. (linux-amd64-ipa.o: linux-amd64-ipa.c): Remove. (linux-aarch64-ipa.o: linux-aarch64-ipa.c): Remove. (linux-s390-ipa.o: linux-s390-ipa.c): Remove. (linux-ppc-ipa.o: linux-ppc-ipa.c): Remove. commit 36bc18a810a13f884d826842abbdd6d744ff6481 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:04 2017 -0400 gdbserver: Use pattern rule for IPA objects from common/ gdb/gdbserver/ChangeLog: * Makefile.in (%-ipa.o: ../common/%.c): New rule. (print-utils-ipa.o: ../common/print-utils.c): Remove. (rsp-low-ipa.o: ../common/rsp-low.c): Remove. (errors-ipa.o: ../common/errors.c): Remove. (format-ipa.o: ../common/format.c): Remove. (common-utils-ipa.o: ../common/common-utils.c): Remove. commit a8ebe3d5f17f12490012a1a3c69d17b6e9362805 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:04 2017 -0400 gdbserver: Use pattern rule for IPA objects from gdbserver/ gdb/gdbserver/ChangeLog: * Makefile.in (%-ipa.o: %.c): New rule. (tracepoint-ipa.o: tracepoint.c): Remove. (utils-ipa.o: utils.c): Remove. (remote-utils-ipa.o: remote-utils.c): Remove. (regcache-ipa.o: regcache.c): Remove. (i386-linux-ipa.o: i386-linux.c): Remove. (i386-mmx-linux-ipa.o: i386-mmx-linux.c): Remove. (i386-avx-linux-ipa.o: i386-avx-linux.c): Remove. (i386-mpx-linux-ipa.o: i386-mpx-linux.c): Remove. (i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c): Remove. (i386-avx-avx512-linux-ipa.o: i386-avx-avx512-linux.c): Remove. (i386-avx-mpx-avx512-pku-linux-ipa.o: i386-avx-mpx-avx512-pku-linux.c): Remove. (amd64-linux-ipa.o: amd64-linux.c): Remove. (amd64-avx-linux-ipa.o: amd64-avx-linux.c): Remove. (amd64-mpx-linux-ipa.o: amd64-mpx-linux.c): Remove. (amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c): Remove. (amd64-avx-avx512-linux-ipa.o: amd64-avx-avx512-linux.c): Remove. (amd64-avx-mpx-avx512-pku-linux-ipa.o: amd64-avx-mpx-avx512-pku-linux.c): Remove. (aarch64-ipa.o: aarch64.c): Remove. (s390-linux32-ipa.o: s390-linux32.c): Remove. (s390-linux32v1-ipa.o: s390-linux32v1.c): Remove. (s390-linux32v2-ipa.o: s390-linux32v2.c): Remove. (s390-linux64-ipa.o: s390-linux64.c): Remove. (s390-linux64v1-ipa.o: s390-linux64v1.c): Remove. (s390-linux64v2-ipa.o: s390-linux64v2.c): Remove. (s390-te-linux64-ipa.o: s390-te-linux64.c): Remove. (s390-vx-linux64-ipa.o: s390-vx-linux64.c): Remove. (s390-tevx-linux64-ipa.o: s390-tevx-linux64.c): Remove. (s390x-linux64-ipa.o: s390x-linux64.c): Remove. (s390x-linux64v1-ipa.o: s390x-linux64v1.c): Remove. (s390x-linux64v2-ipa.o: s390x-linux64v2.c): Remove. (s390x-te-linux64-ipa.o: s390x-te-linux64.c): Remove. (s390x-vx-linux64-ipa.o: s390x-vx-linux64.c): Remove. (s390x-tevx-linux64-ipa.o: s390x-tevx-linux64.c): Remove. (powerpc-32l-ipa.o: powerpc-32l.c): Remove. (powerpc-altivec32l-ipa.o: powerpc-altivec32l.c): Remove. (powerpc-cell32l-ipa.o: powerpc-cell32l.c): Remove. (powerpc-vsx32l-ipa.o: powerpc-vsx32l.c): Remove. (powerpc-isa205-32l-ipa.o: powerpc-isa205-32l.c): Remove. (powerpc-isa205-altivec32l-ipa.o: powerpc-isa205-altivec32l.c): Remove. (powerpc-isa205-vsx32l-ipa.o: powerpc-isa205-vsx32l.c): Remove. (powerpc-e500l-ipa.o: powerpc-e500l.c): Remove. (powerpc-64l-ipa.o: powerpc-64l.c): Remove. (powerpc-altivec64l-ipa.o: powerpc-altivec64l.c): Remove. (powerpc-cell64l-ipa.o: powerpc-cell64l.c): Remove. (powerpc-vsx64l-ipa.o: powerpc-vsx64l.c): Remove. (powerpc-isa205-64l-ipa.o: powerpc-isa205-64l.c): Remove. (powerpc-isa205-altivec64l-ipa.o: powerpc-isa205-altivec64l.c): Remove. (powerpc-isa205-vsx64l-ipa.o: powerpc-isa205-vsx64l.c): Remove. (tdesc-ipa.o: tdesc.c): Remove. (x32-linux-ipa.o: x32-linux.c): Remove. (x32-avx-linux-ipa.o: x32-avx-linux.c): Remove. (x32-avx512-linux-ipa.o: x32-avx512-linux.c): Remove. commit 50cfacb78f3998e5ecc653090e4f1a11dfb3d8dd Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:03 2017 -0400 gdbserver: Use pattern rule for objects from arch/ gdb/gdbserver/ChangeLog: * Makefile.in (%.o: ../arch/%.c): New rule. (arm.o: ../arch/arm.c): Remove. (arm-linux.o: ../arch/arm-linux.c): Remove. (arm-get-next-pcs.o: ../arch/arm-get-next-pcs.c): Remove. (aarch64-insn.o: ../arch/aarch64-insn.c): Remove. commit c5a22423d09e3bf670fb0de0a98e6feb6176eb3f Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:03 2017 -0400 gdbserver: Use pattern rule for objects from nat/ gdb/gdbserver/ChangeLog: * Makefile.in (%.o: ../nat/%.c): New rule. (x86-dregs.o: ../nat/x86-dregs.c): Remove. (amd64-linux-siginfo.o: ../nat/amd64-linux-siginfo.c): Remove. (linux-btrace.o: ../nat/linux-btrace.c): Remove. (linux-osdata.o: ../nat/linux-osdata.c): Remove. (linux-procfs.o: ../nat/linux-procfs.c): Remove. (linux-ptrace.o: ../nat/linux-ptrace.c): Remove. (linux-waitpid.o: ../nat/linux-waitpid.c): Remove. (mips-linux-watch.o: ../nat/mips-linux-watch.c): Remove. (ppc-linux.o: ../nat/ppc-linux.c): Remove. (linux-personality.o: ../nat/linux-personality.c): Remove. (aarch64-linux-hw-point.o: ../nat/aarch64-linux-hw-point.c): Remove. (aarch64-linux.o: ../nat/aarch64-linux.c): Remove. (x86-linux.o: ../nat/x86-linux.c): Remove. (x86-linux-dregs.o: ../nat/x86-linux-dregs.c): Remove. (linux-namespaces.o: ../nat/linux-namespaces.c): Remove. commit 6bda016bec556855c6d4e191f360f921faa40ded Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:02 2017 -0400 gdbserver: Use pattern rule for objects from common/ gdb/gdbserver/ChangeLog: * Makefile.in (%.o: ../common/%.c): New rule. (signals.o: ../common/signals.c): Remove. (print-utils.o: ../common/print-utils.c): Remove. (rsp-low.o: ../common/rsp-low.c): Remove. (common-utils.o: ../common/common-utils.c): Remove. (posix-strerror.o: ../common/posix-strerror.c): Remove. (mingw-strerror.o: ../common/mingw-strerror.c): Remove. (vec.o: ../common/vec.c): Remove. (gdb_vecs.o: ../common/gdb_vecs.c): Remove. (xml-utils.o: ../common/xml-utils.c): Remove. (ptid.o: ../common/ptid.c): Remove. (buffer.o: ../common/buffer.c): Remove. (format.o: ../common/format.c): Remove. (filestuff.o: ../common/filestuff.c): Remove. (agent.o: ../common/agent.c): Remove. (errors.o: ../common/errors.c): Remove. (environ.o: ../common/environ.c): Remove. (common-debug.o: ../common/common-debug.c): Remove. (cleanups.o: ../common/cleanups.c): Remove. (common-exceptions.o: ../common/common-exceptions.c): Remove. (fileio.o: ../common/fileio.c): Remove. (common-regcache.o: ../common/common-regcache.c): Remove. (signals-state-save-restore.o: ../common/signals-state-save-restore.c): Remove. (new-op.o: ../common/new-op.c): Remove. (btrace-common.o: ../common/btrace-common.c): Remove. commit 21122961ecea30b3be7c788e09179d297e3233f0 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:02 2017 -0400 gdbserver: Use pattern rule for objects from target/ gdb/gdbserver/ChangeLog: * Makefile.in (%.o: ../target/%.c): New rule. (waitstatus.o: ../target/waitstatus.c): Remove. commit c362e6217b556ce932250c340218f1ca16391070 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Mon Mar 13 18:44:01 2017 -0400 gdbserver: Use pattern rule for regformats source file generation gdb/gdbserver/ChangeLog: * Makefile.in (%.c: ../regformats/%.dat, (%.c: ../regformats/arm/%.dat, (%.c: ../regformats/i386/%.dat, (%.c: ../regformats/rs6000/%.dat): New rules. (aarch64.c): Remove. (reg-arm.c): Remove. (arm-with-iwmmxt.c): Remove. (arm-with-vfpv2.c): Remove. (arm-with-vfpv3.c): Remove. (arm-with-neon.c): Remove. (reg-bfin.c): Remove. (reg-cris.c): Remove. (reg-crisv32.c): Remove. (i386.c): Remove. (i386-linux.c): Remove. (i386-avx.c): Remove. (i386-avx-linux.c): Remove. (i386-avx-avx512.c): Remove. (i386-avx-avx512-linux.c): Remove. (i386-mpx.c): Remove. (i386-mpx-linux.c): Remove. (i386-avx-mpx-avx512-pku.c): Remove. (i386-avx-mpx-avx512-pku-linux.c): Remove. (i386-avx-mpx.c): Remove. (i386-avx-mpx-linux.c): Remove. (i386-mmx.c): Remove. (i386-mmx-linux.c): Remove. (reg-ia64.c): Remove. (reg-m32r.c): Remove. (reg-m68k.c): Remove. (reg-cf.c): Remove. (mips-linux.c): Remove. (mips-dsp-linux.c): Remove. (mips64-linux.c): Remove. (mips64-dsp-linux.c): Remove. (nios2-linux.c): Remove. (powerpc-32.c): Remove. (powerpc-32l.c): Remove. (powerpc-altivec32l.c): Remove. (powerpc-cell32l.c): Remove. (powerpc-vsx32l.c): Remove. (powerpc-isa205-32l.c): Remove. (powerpc-isa205-altivec32l.c): Remove. (powerpc-isa205-vsx32l.c): Remove. (powerpc-e500l.c): Remove. (powerpc-64l.c): Remove. (powerpc-altivec64l.c): Remove. (powerpc-cell64l.c): Remove. (powerpc-vsx64l.c): Remove. (powerpc-isa205-64l.c): Remove. (powerpc-isa205-altivec64l.c): Remove. (powerpc-isa205-vsx64l.c): Remove. (s390-linux32.c): Remove. (s390-linux32v1.c): Remove. (s390-linux32v2.c): Remove. (s390-linux64.c): Remove. (s390-linux64v1.c): Remove. (s390-linux64v2.c): Remove. (s390-te-linux64.c): Remove. (s390-vx-linux64.c): Remove. (s390-tevx-linux64.c): Remove. (s390x-linux64.c): Remove. (s390x-linux64v1.c): Remove. (s390x-linux64v2.c): Remove. (s390x-te-linux64.c): Remove. (s390x-vx-linux64.c): Remove. (s390x-tevx-linux64.c): Remove. (tic6x-c64xp-linux.c): Remove. (tic6x-c64x-linux.c): Remove. (tic6x-c62x-linux.c): Remove. (reg-sh.c): Remove. (reg-sparc64.c): Remove. (reg-spu.c): Remove. (amd64.c): Remove. (amd64-linux.c): Remove. (amd64-avx.c): Remove. (amd64-avx-linux.c): Remove. (amd64-avx-avx512.c): Remove. (amd64-avx-avx512-linux.c): Remove. (amd64-mpx.c): Remove. (amd64-mpx-linux.c): Remove. (amd64-avx-mpx-avx512-pku.c): Remove. (amd64-avx-mpx-avx512-pku-linux.c): Remove. (amd64-avx-mpx.c): Remove. (amd64-avx-mpx-linux.c): Remove. (x32.c): Remove. (x32-linux.c): Remove. (x32-avx.c): Remove. (x32-avx-linux.c): Remove. (x32-avx-avx512.c): Remove. (x32-avx-avx512-linux.c): Remove. (reg-xtensa.c): Remove. (reg-tilegx.c): Remove. (reg-tilegx32.c): Remove. commit 7978d7c385b072a344d969f71cdc68e1a1171ec2 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Mon Mar 13 18:02:08 2017 -0400 testsuite: Disable backslash_in_multi_line_command_test for old DejaGnus I noticed that backslash_in_multi_line_command_test in gdb.base/commands.exp failed on our RHEL6 servers. I traced it to the old version of DejaGnu (1.4.4). I have found that instead of receiving the expected: "print \\\nargc\n" gdb received: "print argc\n" thus breaking the test and its purpose. Versionof DejaGnu < 1.5 mess up sending "\\\n", it somehow gets replaced with a space. I found that the following commit in DejaGnu fixed the issue: http://git.savannah.gnu.org/cgit/dejagnu.git/commit/lib/remote.exp?id=3f39294f5cd6802858838d3bcc0ccce847ae17f2 Even though the commit is almost 10 years old, the following release of DejaGnu was only in 2013, which is why we still have systems with the old code. If the DejaGnu version is < 1.5, we just skip the test. gdb/testsuite/ChangeLog: * gdb.base/commands.exp (backslash_in_multi_line_command_test): Skip for versions of DejaGnu < 1.5. commit 896c0c1edee117ea333c66b1adac8c6f4def3f2b Author: Simon Marchi <simon.marchi@ericsson.com> Date: Mon Mar 13 18:02:07 2017 -0400 testsuite: Introduce dejagnu_version The next patch will require checking the DejaGnu version. There is already a test that does this, gdb.threads/attach-many-short-lived-threads.exp. This patch introduces a new procedure, dejagnu_version, and makes that test use it. The version number is "right-padded" with zeroes, to make sure that we always return a triplet (major, minor, patch). The procedure does not consider the DejaGnu versions from git. For example, if you used DejaGnu from its current master branch, the version would be "1.6.1-git", meaning that 1.6.1 will be the next release. I figured we'll cross that bridge when (and if) we get there. gdb/testsuite/ChangeLog: * lib/gdb.exp (dejagnu_version): New proc. * gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu): Use dejagnu_version. commit b9da89d161e3903faa335f444af2bf05e40f926e Author: mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon Mar 13 18:26:47 2017 +0000 Merge libiberty: Initialize d_printing in all cplus_demangle_fill_* functions. While integrating the d_printing recursion guard change into gdb I noticed we forgot to initialize the demangle_component d_printing field in cplus_demangle_fill_{name,extended_operator,ctor,dtor}. As is done in cplus_demangle_fill_{component,builtin_type,operator}. It happened to work because in gcc all demangle_components were allocated through d_make_empty. But gdb has its own allocation mechanism (as might other users). libiberty/ChangeLog: * cp-demangle.c (cplus_demangle_fill_name): Initialize demangle_component d_printing. (cplus_demangle_fill_extended_operator): Likewise. (cplus_demangle_fill_ctor): Likewise. (cplus_demangle_fill_dtor): Likewise. gdb/ChangeLog: * cp-name-parser.y (make_empty): Initialize d_printing to zero. commit c793cac124dd2eb34042f2e43abb099a26e34cb0 Author: Nick Clifton <nickc@redhat.com> Date: Mon Mar 13 17:49:32 2017 +0000 Sync libiberty sources with GCC. PR demangler/70909 PR demangler/67264 * cp-demangle.c: Fix endless recursion. Pass struct demangle_component as non const. (d_make_empty): Initialize variable. (d_print_comp_inner): Limit recursion. (d_print_comp): Decrement variable. * cp-demint.c (cplus_demangle_fill_component): Initialize variable. (cplus_demangle_fill_builtin_type): Likewise. (cplus_demangle_fill_operator): Likewise. * testsuite/demangle-expected: Add tests. commit 5ef2d51bd6ae49b28282835156d1d6622beac4a6 Author: Alan Modra <amodra@gmail.com> Date: Mon Mar 13 20:56:25 2017 +1030 objdump -dS: warn if source is more recent than object If the source file is more recent than the object file, line number information in the object may no longer match the source. So print a warning message. * objdump.c (update_source_path): Add abfd param. Add struct stat vars. Pass to try_print_file_open. Warn if source is more recent than object. (try_print_file_open, slurp_file): Add struct stat param to return fstat. (show_line): Call update_source_path with bfd. commit f955cccff399ccc4e16b8e90f140f2e9a785a07b Author: Nick Clifton <nickc@redhat.com> Date: Mon Mar 13 09:58:04 2017 +0000 Rename R_AARCH64_TLSDESC_LD64_LO12_NC to R_AARCH64_TLSDESC_LD64_LO12 and R_AARCH64_TLSDESC_ADD_LO12_NC to R_AARCH64_TLSDESC_ADD_LO12. PR binutils/21202 include * elf/aarch64.h (R_AARCH64_TLSDESC_LD64_LO12_NC): Rename to R_AARCH64_TLSDESC_LD64_LO12. (R_AARCH64_TLSDESC_ADD_LO12_NC): Rename to R_AARCH64_TLSDESC_ADD_LO12_NC. bfd * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc names. (IS_AARCH64_TLSDESC_RELOC): Likewise. (elfNN_aarch64_howto_table): Likewise. (aarch64_tls_transition_without_check): Likewise. (aarch64_reloc_got_type): Likewise. (elfNN_aarch64_final_link_relocate): Likewise. (elfNN_aarch64_tls_relax): Likewise. (elfNN_aarch64_relocate_section): Likewise. (elfNN_aarch64_gc_sweep_hook): Likewise. (elfNN_aarch64_check_relocs): Likewise. * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. (_bfd_aarch64_elf_resolve_relocation): Likewise. gas * config/tc-aarch64.c (reloc_table): Rename BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC to BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. Rname BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC to BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. (md_apply_fix): Likewise. (aarch64_force_relocation): Likewise. * testsuite/gas/aarch64/tls.d: Update regexp. ld * testsuite/ld-aarch64/ifunc-5r-local.d: Update regexp. commit d40e34db392f834793fb9af487121776b4cec6e7 Author: Tristan Gingold <gingold@adacore.com> Date: Fri Mar 10 15:16:19 2017 +0100 ld: add an error in case of address space overflow. ld/ * ldlang.c (lang_check_section_addresses): Check for address space overflow. * testsuite/ld-checks/checks.exp (overflow_check): New procedure * testsuite/ld-checks/over.s: New test source. * testsuite/ld-checks/over.d: New test. * testsuite/ld-checks/over2.s: New test source. * testsuite/ld-checks/over2.d: New test. commit 4b5900d8b81522bd6ebe4d94d45dfb54d1982c62 Author: Alexey Neyman <stilor@att.net> Date: Sun Mar 12 20:49:46 2017 -0700 PowerPC: incorrect library search order First, need to match against just the CPU name, not the whole triplet. Otherwise, the test picks up "*le-*" pattern from x86_64-apple-darwin triplet. Second, it should be testing for $target, not $host. Host may be little endian by default, and the sysroot directory layout shouldn't depend on whether it is built on LE or BE machine. * emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target cpu, not host. commit b9d62f893fcc0b4c36aad0552810dcde304979d0 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Mar 13 00:00:21 2017 +0000 Automatic date update in version.in commit d5bb792ca130aac17e080325e4005ef417ceabd5 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Mar 12 00:00:28 2017 +0000 Automatic date update in version.in commit 118aa6cf395aec093fe12d7fb2d05441791a93fa Author: Alan Modra <amodra@gmail.com> Date: Sat Mar 11 23:37:02 2017 +1030 Add sysroot for ld -rpath search * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Add sysroot for -rpath search. commit 316a1245fe31e327223ca66797b789eaf9544c2c Author: Alan Modra <amodra@gmail.com> Date: Sat Mar 11 22:57:29 2017 +1030 Rewrite add_sysroot Relative paths shouldn't have the sysroot prefix added. The patch also makes some attempt at supporting DOS paths, and tidies code using the new add_sysroot. * emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Rewrite. Only prefix absolute paths with sysroot. Handle DOS paths. (gld${EMULATION_NAME}_check_ld_elf_hints): Constify variable. (gld${EMULATION_NAME}_check_ld_so_conf): Likewise. (gld${EMULATION_NAME}_after_open): Short-circuit NULL path searches. Rename variable. Simplify get_runpath search. commit 4aef764338ed40a7fa9573b0e6e2ade817acd688 Author: Alan Modra <amodra@gmail.com> Date: Sat Mar 11 20:56:51 2017 +1030 Remove bogus ATTRIBUTE_UNUSED * elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function parameter is in fact used. Whitespace fixes. * elf64-ppc.c: Likewise. commit bb4287c562027eafe63ddac9fd4c7e1730335795 Author: Alan Modra <amodra@gmail.com> Date: Sat Mar 11 11:04:02 2017 +1030 Don't use -rdynamic in ld test This gcc option isn't well supported, so use the actual linker option we want to test. * testsuite/ld-elf/shared.exp: Use -Wl,-export-dynamic rather than -rdynamic. commit e299b3551edbe81be2062fcaef9319d681d0d15b Author: Alan Modra <amodra@gmail.com> Date: Sat Mar 11 10:51:56 2017 +1030 Don't run new orphan tests on i860 and i960 These targets use the generic ELF support, so don't handle orphans well. The patch also updates the orphan doco to reflect this fact, and deletes some ELF details that don't really add anything. * ld.texinfo (Orphan Sections): Mention that not all targets handle orphans well. Delete ELF details. * testsuite/ld-elf/orphan-9.d: Don't run for i860 and i960. * testsuite/ld-elf/orphan-10.d: Likewise. commit a08f8d99b87b0b0f681a27eba8e25e2fb0abd034 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Mar 11 00:00:23 2017 +0000 Automatic date update in version.in commit 5f4d10850850cd95af5e95a16848c8c07a273d88 Author: Keith Seitz <keiths@redhat.com> Date: Fri Mar 10 10:32:09 2017 -0800 c++/8218: Destructors w/arguments. For a long time now, c++/8218 has noted that GDB is printing argument types for destructors: (gdb) ptype A type = class A { public: ~A(int); } This happens because cp_type_print_method_args doesn't ignore artificial arguments. [It ignores the first `this' pointer because it simply skips the first argument for any non-static function.] This patch fixes this: (gdb) ptype A type = class A { public: ~A(); } I've adjusted gdb.cp/templates.exp to account for this and added a new passing regexp. gdb/ChangeLog PR c++/8218 * c-typeprint.c (cp_type_print_method_args): Skip artificial arguments. gdb/testsuite/ChangeLog PR c++/8128 * gdb.cp/templates.exp (test_ptype_of_templates): Remove argument type from destructor regexps. Add a branch which actually passes the test. Adjust "ptype t5i" test names. commit 7b5d48229b7faa16f69e87fb269f17db0291d89f Author: Chia-Hao Lo <fcamel@gmail.com> Date: Fri Mar 10 16:29:58 2017 +0000 Make objdump's --wide command line option affect its output of DWARF debug information. PR binutils/21235 * objdump.c (main): Set do_wide with --wide. commit 8b1e5da10ab58d2aa5eb84bf27de511294f061ef Author: Nick Clifton <nickc@redhat.com> Date: Fri Mar 10 15:42:04 2017 +0000 Document that the .2byte and .4byte directives warn about overlarge values. * doc/as.texinfo (2byte): Tidy up wording. Add note that overlarge values will produce a warning message and be trunacted. (4byte): Likewise. commit 55e22ca83ae50d6fe422cd0542f2a1a5934b2dd2 Author: Nick Clifton <nickc@redhat.com> Date: Fri Mar 10 10:50:34 2017 +0000 Add basic recognition of new EM_ ELF machine numbers. include * elf/common.h (EM_LANAI): New machine number. (EM_BPF): Likewise. (EM_WEBASSEMBLY): Likewise. Move low value, deprecated, numbers to their numerical equivalents. binutils * readelf.c (get_machine_name): Rearrange switch table in order of increasing machine number. Add missing entries. commit f9f791a1b147c404a489485dba5eca49f8dbcbb9 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri Mar 10 00:00:28 2017 +0000 Automatic date update in version.in commit 14ea2c1b230a62f312346fb16716b3dd4850815b Author: Andrew Burgess <andrew.burgess@embecosm.com> Date: Tue Jan 17 19:13:29 2017 +0000 ld: Track changes to default region LMA even for empty sections Given a linker script fragment like this: SECTIONS { . = 0x1000; .text : AT(0x100) { *(.text) } .data : AT(0x200) { *(.data) } .rodata : AT(0x300) { *(.rodata) } } and an input file containing sections, '.text', '.data.1', and '.rodata', then we'd expect the linker to place '.text' and '.rodata' in the obvious way, and the '.data.1' orphan section would be located after the '.data' section (assuming similar section properties). Further, I believe that the expectation would be that the LMA for the orphan '.data.1' section would start from 0x200 (as there is no '.data' content). However, right now, the LMA for '.data.1' would be 0x101, following on from the '.text' section, this is because the change in LMA for the '.data' section is not noticed by the linker, if there's no content in the '.data' section. What can be even more confusing to a user (though the cause is obvious once you understand what's going on) is that adding some content to '.data' will cause the orphan '.data.1' to switch to an LMA based off of 0x200. This commit changes the behaviour so that an empty section that is in the default lma region, and sets its lma, will adjust the lma of the default region, this change will then be reflected in following sections within the default lma memory region. There's a new test to cover this issue that passes on a range of targets, however, some targets generate additional sections, or have stricter memory region size requirements that make it harder to come up with a generic pass pattern, that still tests the required features. For now I've set the test to ignore these targets. ld/ChangeLog: * ldlang.c (lang_size_sections_1): Shortcut loop only after tracking changes to the default regions LMA. * testsuite/ld-elf/orphan-9.ld: Extend header comment. * testsuite/ld-elf/orphan-10.d: New file. * testsuite/ld-elf/orphan-10.s: New file. * NEWS: Mention change in behaviour. commit 77f5e65ecfb669ea1d2fd74b74fbbf0d0c20daf8 Author: Andrew Burgess <andrew.burgess@embecosm.com> Date: Tue Jan 17 19:12:54 2017 +0000 ld: better handling of lma region for orphan sections When picking an lma_region for an orphan section we currently create a new lang_output_section_statement_type and then populate this with the orphan section. The problem is that the lang_output_section_statement_type has a prev pointer that links back to the previous output section. For non-orphan output sections, that are created in linker script order, the prev pointer will point to the output section that appears previous in linker script order, as you'd probably expect. The problem is that orphan sections are placed after processing the linker script, and so, in the case of an output section created for an orphan input section, the prev pointer actually points to the last output section created. This causes some unexpected behaviour when the orphan section is not placed after the last non-orphan section that was created. For example, consider this linker script: MEMORY { TEXT : ORIGIN = 0x200, LENGTH = 0x10 RODATA : ORIGIN = 0x400, LENGTH = 0x10 } SECTIONS { .text : {*(.text) } AT>TEXT .data : AT(0x300) { *(.data) } .rodata : { *(.rodata) } AT>RODATA } If we are processing an orphan section '.data.1' and decide to place this after '.data', then the output section created will have a prev pointer that references the '.rodata' output section. The result of this is that '.data.1' will actually be assigned to the RODATA lma region, which is probably not the expected behaviour. The reason why '.data.1' is placed into the lma region of the '.rodata' section is that lma region propagation is done at the time we create the output section, based on the previous output section pointer, which is really just a last-output-section-created pointer at that point in time, though the prev point is fixed up later to reflect the true order of the output sections. The solution I propose in this commit is to move the propagation of lma regions into a separate pass of the linker, rather than performing this as part of the enter/exit of output sections during linker script parsing. During this later phase we have all of the output sections to hand, and the prev/next points have been fixed up by this point to reflect the actual placement ordering. There's a new test to cover this issue that passes on a range of targets, however, some targets generate additional sections, or have stricter memory region size requirements that make it harder to come up with a generic pass pattern, that still tests the required features. For now I've set the test to ignore these targets. ld/ChangeLog: * ldlang.c (lang_leave_output_section_statement): Move lma_region logic to... (lang_propagate_lma_regions): ...this new function. (lang_process): Call new function. * testsuite/ld-elf/orphan-9.d: New file. * testsuite/ld-elf/orphan-9.ld: New file. * testsuite/ld-elf/orphan-9.s: New file. * NEWS: Mention change in behaviour. commit a87ded7b88a85b40f2aec5e5b6c972dd7b74b3a9 Author: Andrew Burgess <andrew.burgess@embecosm.com> Date: Tue Jan 17 18:08:17 2017 +0000 ld: Orphan section documentation Make more explicit mention of the fact that orphan sections can cause a new output section to be created. Though this information is clearly implied in the manual it might not be clear enough. A user _might_ (incorrectly) think that orphan sections can only be inserted into an existing output section. ld/ChangeLog: * ld.texinfo (Orphan Sections): Add more detail. commit 86fa6981e7487e2c2df4337aa75ed2d93c32eaf2 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Mar 9 09:58:46 2017 -0800 X86: Add pseudo prefixes to control encoding Many x86 instructions have more than one encodings. Assembler picks the default one, usually the shortest one. Although the ".s", ".d8" and ".d32" suffixes can be used to swap register operands or specify displacement size, they aren't very flexible. This patch adds pseudo prefixes, {xxx}, to control instruction encoding. The available pseudo prefixes are {disp8}, {disp32}, {load}, {store}, {vex2}, {vex3} and {evex}. Pseudo prefixes are preferred over the ".s", ".d8" and ".d32" suffixes, which are deprecated. gas/ * config/tc-i386.c (_i386_insn): Add dir_encoding and vec_encoding. Remove swap_operand and need_vrex. (extra_symbol_chars): Add '}'. (md_begin): Mark '}' with LEX_BEGIN_NAME. Allow '}' in mnemonic. (build_vex_prefix): Don't use 2-byte VEX encoding with {vex3}. Check dir_encoding and load. (parse_insn): Check pseudo prefixes. Set dir_encoding. (VEX_check_operands): Likewise. (match_template): Check dir_encoding and load. (parse_real_register): Set vec_encoding instead of need_vrex. (parse_register): Likewise. * doc/c-i386.texi: Document {disp8}, {disp32}, {load}, {store}, {vex2}, {vex3} and {evex}. Remove ".s", ".d8" and ".d32" * testsuite/gas/i386/i386.exp: Run pseudos and x86-64-pseudos. * testsuite/gas/i386/pseudos.d: New file. * testsuite/gas/i386/pseudos.s: Likewise. * testsuite/gas/i386/x86-64-pseudos.d: Likewise. * testsuite/gas/i386/x86-64-pseudos.s: Likewise. opcodes/ * i386-gen.c (opcode_modifiers): Replace S with Load. * i386-opc.h (S): Removed. (Load): New. (i386_opcode_modifier): Replace s with load. * i386-opc.tbl: Add {disp8}, {disp32}, {swap}, {vex2}, {vex3} and {evex}. Replace S with Load. * i386-tbl.h: Regenerated. commit f03265d9cda1f5f8df238efa9b7a20330e5711f1 Author: Sam Thursfield <sam.thursfield@codethink.co.uk> Date: Thu Mar 9 15:58:39 2017 +0000 Fix compile time warnings about using possibly uninitialised variables in rs6000-core.c. * rs6000-core.c (CORE_NEW): Simplify macro when AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning. commit c1fe188b154a4e81372629316be3d3a7820efdac Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Mar 9 07:43:48 2017 -0800 Use CpuCET on rdsspq * i386-opc.tbl: Use CpuCET on rdsspq. * i386-tbl.h: Regenerated. commit 4b8b687e885287ed85dafffcebbb8d03d7ea2c38 Author: Peter Bergner <bergner@vnet.ibm.com> Date: Wed Mar 8 20:49:03 2017 -0600 Update -maltivec and -mvsx options to only enable their oldest instructions. Currently, the -maltivec and -mvsx GAS options enable *all* of the altivec and vsx instructions respecitively that have ever been added. This is in constract to GCC's -maltivec and -mvsx options, which only enable the oldest (ie, first) set of altivec and vsx instructions. This patch changes GAS to mimic GCC's behaviour with respect to -maltivec and -mvsx and it solves a problem with trying to assemble the lxvx instruction which is different between POWER8 and POWER9. opcodes/ * ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2; <vsx>: Do not use PPC_OPCODE_VSX3; gas/ * testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option. (objdump): Use the -Mpower8 option. commit c7341d5a6b334464d84672229d9912d99347db34 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu Mar 9 00:00:31 2017 +0000 Automatic date update in version.in commit 1de05205afe1ecd1f1fa2befc6843d0dc70adefc Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 22:05:36 2017 +0000 Avoid unstable test message in gdb.base/step-over-exit.exp Currently diffing testrun results shows: -PASS: gdb.base/step-over-exit.exp: break *0x7ffff77e18c6 if main == 0 +PASS: gdb.base/step-over-exit.exp: break *0x2aaaab0988c6 if main == 0 gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.base/step-over-exit.exp: Add explicit test message. commit 1437d0631b209500db8371c425e896deb66ec9f9 Author: Peter Bergner <bergner@vnet.ibm.com> Date: Wed Mar 8 14:00:42 2017 -0600 Add support for the new 'lnia' extended mnemonic. opcodes/ * ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic. gas/ * testsuite/gas/ppc/power9.d <lnia> New test. * testsuite/gas/ppc/power9.s: Likewise. commit c65d6b55b3a592906c470c566f57ad8ceacc1605 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 18:54:34 2017 +0000 Fix PR18360 - internal error when using "interrupt -a" If you do "interrupt -a" just while some thread is stepping over a breakpoint, gdb trips on an internal error. The test added by this patch manages to trigger this consistently by spawning a few threads that are constantly tripping on a conditional breakpoint whose condition always evaluates to false. With current gdb, you get: ~~~ interrupt -a .../src/gdb/inline-frame.c:343: internal-error: void skip_inline_frames(ptid_t): Assertion `find_inline_frame_state (ptid) == NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=on: iter=0: interrupt -a (GDB internal error) [...] .../src/gdb/inline-frame.c:343: internal-error: void skip_inline_frames(ptid_t): Assertion `find_inline_frame_state (ptid) == NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops (GDB internal error) ~~~ The assertion triggers because we're processing a stop for a thread that had already stopped before and thus had already its inline-frame state filled in. Calling handle_inferior_event_1 directly within a "thread_stop_requested" observer is something that I've wanted to get rid of before, for being fragile. Nowadays, infrun is aware of threads with pending events, so we can use that instead, and let the normal fetch_inferior_event -> handle_inferior_event code path handle the forced stop. The change to finish_step_over is necessary because sometimes a thread that was told to PTRACE_SINGLESTEP reports back a SIGSTOP instead of a SIGTRAP (i.e., we tell it to single-step, and then interrupt it quick enough that on the kernel side the thread dequeues the SIGTOP before ever having had a chance of executing the instruction to be stepped). SIGSTOP gets translated to a GDB_SIGNAL_0. And then finish_step_over would miss calling clear_step_over_info, and thus miss restarting the other threads (which in this case of threads with pending events, means setting their "resumed" flag, so their pending events can be consumed). And now that we always restart threads in finish_step_over, we no longer need to do that in handle_signal_stop. Tested on x86_64 Fedora 23, native and gdbserver. gdb/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR gdb/18360 * infrun.c (start_step_over, do_target_resume, resume) (restart_threads): Assert we're not resuming a thread that is meant to be stopped. (infrun_thread_stop_requested_callback): Delete. (infrun_thread_stop_requested): If the thread is internally stopped, queue a pending stop event and clear the thread's inline-frame state. (handle_stop_requested): New function. (handle_syscall_event, handle_inferior_event_1): Use handle_stop_requested. (handle_stop_requested): New function. (handle_signal_stop): Set the thread's stop_signal here instead of at caller. (finish_step_over): Clear step over info unconditionally. (handle_signal_stop): If the user had interrupted the event thread, consider the stop a random signal. (handle_signal_stop) <signal arrived while stepping over breakpoint>: Don't restart threads here. (stop_waiting): Don't clear step-over info here. gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR gdb/18360 * gdb.threads/interrupt-while-step-over.c: New file. * gdb.threads/interrupt-while-step-over.exp: New file. commit 15c22686d0e33d87262bc9075296eeddd7d955f7 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 15:52:16 2017 +0000 gdb: Fix ATTRIBUTE_NONNULL usage Should fix the build failure with Clang mentioned at <https://sourceware.org/bugzilla/show_bug.cgi?id=21206#c2>: In file included from ../../binutils-gdb/gdb/dwarf2read.c:72: ../../binutils-gdb/gdb/common/gdb_unlinker.h:35:35: error: '__nonnull__' attribute is invalid for the implicit this argument unlinker (const char *filename) ATTRIBUTE_NONNULL (1) ^ ~ ../../binutils-gdb/gdb/../include/ansidecl.h:169:48: note: expanded from macro 'ATTRIBUTE_NONNULL' # define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) gdb/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR 21206 * common/gdb_unlinker.h (unlinker::unlinker): Attribute nonnull goes to argument 2, not 1. commit 1fc87489b40b3100badf184a7c266387bae47def Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Mar 8 07:44:04 2017 -0800 Properly dump NT_GNU_PROPERTY_TYPE_0 Property type and datasz are always 4 bytes for both 32-bit and 64-bit objects. Property values for GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED are 4 bytes for both i386 and x86-64 objects. We should also check GNU_PROPERTY_LOPROC and GNU_PROPERTY_LOUSER. binutils/ PR binutils/21231 * readelf.c (decode_x86_isa): Change argument to unsigned int. (print_gnu_property_note): Retrieve property type and datasz as 4-byte integer. Consolidate property datasz check. Check GNU_PROPERTY_LOPROC and GNU_PROPERTY_LOUSER. * testsuite/binutils-all/i386/pr21231a.d: New file. * testsuite/binutils-all/i386/pr21231a.s: Likewise. * testsuite/binutils-all/i386/pr21231b.d: Likewise. * testsuite/binutils-all/i386/pr21231b.s: Likewise. * testsuite/binutils-all/x86-64/pr21231a.d: Likewise. * testsuite/binutils-all/x86-64/pr21231a.s: Likewise. * testsuite/binutils-all/x86-64/pr21231b.d: Likewise. * testsuite/binutils-all/x86-64/pr21231b.s: Likewise. include/ PR binutils/21231 * elf/common.h (GNU_PROPERTY_LOPROC): New. (GNU_PROPERTY_HIPROC): Likewise. (GNU_PROPERTY_LOUSER): Likewise. (GNU_PROPERTY_HIUSER): Likewise. commit 2e86a2830cfef688a27e17353b84f59f8147ab23 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 14:05:41 2017 +0000 gdb.arch/amd64-entry-value-param*.exp: Make sure test messages are unique gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.arch/amd64-entry-value-param-dwarf5.exp: Use with_test_prefix. * gdb.arch/amd64-entry-value-param.exp: Use with_test_prefix. commit 25dcbff6ef0088e080d92b3cbc346ae0b5071d9d Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 13:09:45 2017 +0000 "gdb.arch/i386-pkru.exp: probe PKRU support" shouldn't FAIL if not supported Currently I get: (gdb) print have_pkru() $1 = 0 (gdb) FAIL: gdb.arch/i386-pkru.exp: probe PKRU support UNSUPPORTED: gdb.arch/i386-pkru.exp: processor does not support protection key feature. Probing suceeded, so that should be a PASS -> UNSUPPORTED. gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.arch/i386-pkru.exp (probe PKRU support): Handle detecting PKRU as not supported as a PASS. commit dc9366eb0592157e2125967690f0aed61b17bcf7 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 12:46:44 2017 +0000 gdb: Fix a few unstable test names Avoid putting unstable path names in test messages, in order to avoid spurious testrun result diffs like: [....] -PASS: gdb.base/break-fun-addr.exp: /home/pedro/gdb/test-build1/gdb/testsuite/outputs/gdb.base/break-fun-addr/break-fun-addr1: break *main +PASS: gdb.base/break-fun-addr.exp: /home/pedro/gdb/test-build2/gdb/testsuite/outputs/gdb.base/break-fun-addr/break-fun-addr1: break *main [....] gdb/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.base/break-fun-addr.exp: Use $testfile1/$testfile2 for test prefix instead of $binfile1/$binfile2. * gdb.btrace/gcore.exp: Use "core" instead of unstable path name in test message. * gdb.python/py-completion.exp: Use "load python file" as test messages instead of unstable path names. commit 6e5d74e74756fafe59e8198c4cc462cf7c57e12c Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 11:41:35 2017 +0000 Fix PR 21218: GDB dumps core when escaping newline in multi-line command With commit 3b12939dfc2399 ("Replace the sync_execution global with a new enum prompt_state tristate"), GDB started aborting if you try splitting an input line with a continuation char (backslash) while in a multi-line command: (gdb) commands Type commands for breakpoint(s) 1, one per line. End with a line saying just "end". >print \ (gdb) 1 # note "(gdb)" incorrectly printed here. >end readline: readline_callback_read_char() called with no handler! $ That abort is actually a symptom of an old problem introduced when gdb_readline_wrapper was rewritten to use asynchronous readline, back in 2007. Note how the "(gdb)" prompt is printed above in the "(gdb) 1" line. Clearly it shouldn't be there, but it already was before the commit mentioned above. Fixing that also fixes the readline abort shown above. The problem starts when command_line_input passes a NULL prompt to gdb_readline_wrapper when it finds previous incomplete input due to a backslash, trying to fetch more input without printing another ">" secondary prompt. That itself should not be a problem, because passing NULL to gdb_readline_wrapper has the same meaning as passing a pointer to empty string, since gdb_readline_wrapper exposes the same interface as 'readline(char *)'. However, gdb_readline_wrapper passes the prompt argument directly to display_gdb_prompt, and for the latter, a NULL prompt argument has a different meaning - it requests printing the primary prompt. Before commit 782a7b8ef9c096 (which rewrote gdb_readline_wrapper to use asynchronous readline), GDB behaved like this: (gdb) commands [....] >print \ 1 >end (gdb) The above is what this commit restores GDB back to. New test included. gdb/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR cli/21218 * top.c (gdb_readline_wrapper): Avoid passing NULL to display_gdb_prompt. (command_line_input): Add comment. gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> Jan Kratochvil <jan.kratochvil@redhat.com> PR cli/21218 * gdb.base/commands.exp (backslash_in_multi_line_command_test): New proc. (top level): Call it. commit 5cf70512f835032c413f2554af07814e1dc05cd6 Author: Jiong Wang <jiong.wang@arm.com> Date: Wed Mar 8 11:14:41 2017 +0000 [gdb, doc] Add missing escape character '@' gdb/doc/ * gdb.texinfo (Memory Protection Extensions): Add missing escape character "@". commit 9753a2f6d74dc92d2ad94993a5479ee0edbc6887 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 00:14:59 2017 +0000 Fix PR tui/21216: TUI line breaks regression Commit d7e747318f4d04 ("Eliminate make_cleanup_ui_file_delete / make ui_file a class hierarchy") regressed the TUI's command window. Newlines miss doing a "carriage return", resulting in output like: ~~~~~~~~~~~~~~~~~~ (gdb) helpList of classes of commands: aliases -- Aliases of other commands breakpoints -- Making program stop at certain points ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Before the commit mentioned above, the default ui_file->to_write implementation had a hack that would defer into the ui_file->to_fputs method. The TUI's ui_file did not implement the to_write method, so all writes would end up going to the ncurses window via tui_file_fputs -> tui_puts. After the commit above, the hack is gone, but the TUI's ui_file still does not implement the ui_file::write method. Since tui_file inherits from stdio_file, writing to a tui_file ends up doing fwrite on the FILE stream the TUI is "associated" with, via stdio_file::write, instead of writing to the ncurses window. The fix is to have tui_file override the "write" method. New test included. gdb/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR tui/21216 * tui/tui-file.c (tui_file::write): New. * tui/tui-file.h (tui_file): Override "write". * tui/tui-io.c (do_tui_putc, update_start_line): New functions, factored out from ... (tui_puts): ... here. (tui_putc): Use them. (tui_write): New function. * tui/tui-io.h (tui_write): Declare. gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> PR tui/21216 * gdb.tui/tui-nl-filtered-output.exp: New file. commit 1a4dd9ddae4ce51724b4e08c6304e7c64f8f916f Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 00:14:58 2017 +0000 Move TUI completion tests to gdb.tui/completion.exp gdb/testsuite/ChangeLog: 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.base/completion.exp: Move TUI completion tests to ... * gdb.tui/completion.exp: ... this new file. commit 7cbbff33a502dcba0264a1935840345274b8aee2 Author: Pedro Alves <palves@redhat.com> Date: Wed Mar 8 00:14:58 2017 +0000 Move TUI testcases to new gdb/testsuite/gdb.tui/ directory Let's start putting TUI tests in their own dir. gdb/testsuite/ 2017-03-08 Pedro Alves <palves@redhat.com> * gdb.base/tui-disasm-long-lines.c, gdb.base/tui-disasm-long-lines.exp, gdb.base/tui-layout.c, gdb.base/tui-layout.exp: Move to ... * gdb.tui/: ... this new directory. commit 50dbe6e1bc8589db8e900299ef03ce9ead4ef3d7 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Mar 8 00:00:42 2017 +0000 Automatic date update in version.in commit 1672e0d98d88d11b5c7d5793bd2cf29cbb56696f Author: Sergio Durigan Junior <sergiodj@redhat.com> Date: Thu Dec 22 09:20:00 2016 -0500 Share gdb/environ.[ch] with gdbserver We will need access to the environment functions when we share fork_inferior between GDB and gdbserver, therefore we simply make the API on gdb/environ.[ch] available on common/. No extra adjustments are needed to make it compile on gdbserver. gdb/ChangeLog: 2017-03-07 Sergio Durigan Junior <sergiodj@redhat.com> * Makefile.in (SFILES): Replace "environ.c" with "common/environ.c". (HFILES_NO_SRCDIR): Likewise, for "environ.h". * environ.c: Include "common-defs.h" instead of "defs.h. Moved to... * common/environ.c: ... here. * environ.h: Moved to... * common/environ.h: ... here. gdb/gdbserver/ChangeLog: 2017-03-07 Sergio Durigan Junior <sergiodj@redhat.com> * Makefile.in (SFILES): Add "common/environ.c". (OBJS): Add "common/environ.h". commit f7bb4e3a0d3738e8cce3dcded6ef12c9949cb85f Author: Peter Bergner <bergner@vnet.ibm.com> Date: Tue Mar 7 09:49:10 2017 -0600 GDB: Fix some null pointer dereferences due to disassembler-options patch. gdb/ * gdbarch.sh (pstring_ptr): New static function. (gdbarch_disassembler_options): Use it. (gdbarch_verify_disassembler_options): Print valid_disassembler_options, not valid_disassembler_option->name. * gdbarch.c: Regenerate. commit e45ced6c5e06b0092ac9f5497aa580cfad0c953c Author: Peter Bergner <bergner@vnet.ibm.com> Date: Tue Mar 7 09:39:13 2017 -0600 Remove use of the no longer needed -mminimal-toc option. * config/powerpc/ppc64-linux.mh (MH_CFLAGS): Delete. commit 5f6fd321915fae0194e01322d22cad4e451e8d20 Author: Pedro Alves <palves@redhat.com> Date: Tue Mar 7 12:44:58 2017 +0000 Fix "layout reg" crash Commit d7e747318f4d04 ("Eliminate make_cleanup_ui_file_delete / make ui_file a class hierarchy") introduced a problem when using "layout regs", that leads gdb to crash when issuing: ./gdb ./a.out -ex 'layout regs' -ex start From the backtrace, it's caused by this 'delete' on tui_restore_gdbout(): (gdb) bt #0 0x00007ffff6b962b2 in free () from /lib64/libc.so.6 #1 0x000000000059fa47 in tui_restore_gdbout (ui=0x22997b0) at ../../gdb/tui/tui-regs.c:714 #2 0x0000000000619996 in do_my_cleanups (pmy_chain=pmy_chain@entry=0x1e08320 <cleanup_chain>, old_chain=old_chain@entry=0x235b4b0) at ../../gdb/common/cleanups.c:154 #3 0x0000000000619b1d in do_cleanups (old_chain=old_chain@entry=0x235b4b0) at ../../gdb/common/cleanups.c:176 #4 0x000000000059fb0d in tui_register_format (frame=frame@entry=0x22564e0, regnum=regnum@entry=0) at ../../gdb/tui/tui-regs.c:747 #5 0x000000000059ffeb in tui_get_register (data=0x2434d18, changedp=0x0, regnum=0, frame=0x22564e0) at ../../gdb/tui/tui-regs.c:768 #6 tui_show_register_group (refresh_values_only=<optimized out>, frame=0x22564e0, group=0x1e09250 <general_group>) at ../../gdb/tui/tui-regs.c:287 #7 tui_show_registers (group=0x1e09250 <general_group>) at ../../gdb/tui/tui-regs.c:156 #8 0x00000000005a07cf in tui_check_register_values (frame=frame@entry=0x22564e0) at ../../gdb/tui/tui-regs.c:496 #9 0x00000000005a3e65 in tui_check_data_values (frame=frame@entry=0x22564e0) at ../../gdb/tui/tui-windata.c:232 #10 0x000000000059cf65 in tui_refresh_frame_and_register_information (registers_too_p=1) at ../../gdb/tui/tui-hooks.c:156 #11 0x00000000006d5c05 in generic_observer_notify (args=0x7fffffffdbe0, subject=<optimized out>) at ../../gdb/observer.c:167 #12 observer_notify_normal_stop (bs=<optimized out>, print_frame=print_frame@entry=1) at ./observer.inc:61 #13 0x00000000006a6409 in normal_stop () at ../../gdb/infrun.c:8364 #14 0x00000000006af8f5 in fetch_inferior_event (client_data=<optimized out>) at ../../gdb/infrun.c:3990 #15 0x000000000066f0fd in gdb_wait_for_event (block=block@entry=0) at ../../gdb/event-loop.c:859 #16 0x000000000066f237 in gdb_do_one_event () at ../../gdb/event-loop.c:322 #17 0x000000000066f386 in gdb_do_one_event () at ../../gdb/event-loop.c:353 #18 0x00000000007411bc in wait_sync_command_done () at ../../gdb/top.c:570 #19 0x0000000000741426 in maybe_wait_sync_command_done (was_sync=0) at ../../gdb/top.c:587 #20 execute_command (p=<optimized out>, p@entry=0x7fffffffe43a "start", from_tty=from_tty@entry=1) at ../../gdb/top.c:676 #21 0x00000000006c2048 in catch_command_errors (command=0x741200 <execute_command(char*, int)>, arg=0x7fffffffe43a "start", from_tty=1) at ../../gdb/main.c:376 #22 0x00000000006c2b60 in captured_main_1 (context=0x7fffffffde70) at ../../gdb/main.c:1119 #23 captured_main (data=0x7fffffffde70) at ../../gdb/main.c:1140 #24 gdb_main (args=args@entry=0x7fffffffdf90) at ../../gdb/main.c:1158 #25 0x0000000000408cf5 in main (argc=<optimized out>, argv=<optimized out>) at ../../gdb/gdb.c:32 (gdb) f 1 #1 0x000000000059fa47 in tui_restore_gdbout (ui=0x22997b0) at ../../gdb/tui/tui-regs.c:714 714 delete gdb_stdout; The problem is simply that the commit mentioned above made the ui_file that gdb_stdout is temporarily set to be a stack-allocated string_file, while before it used to be a heap-allocated ui_file. The fix is simply to remove the now-incorrect delete. New test included, which exercises enabling all TUI layouts, with and without execution. (This particular crash only triggers with execution.) gdb/ChangeLog: 2017-03-07 Pedro Alves <palves@redhat.com> * tui/tui-regs.c (tui_restore_gdbout): Don't delete gdb_stdout. gdb/testsuite/ChangeLog: 2017-03-07 Pedro Alves <palves@redhat.com> * gdb.base/tui-layout.c: New file. * gdb.base/tui-layout.exp: New file. commit 44959fa81858df7d06fd83b0595b66709e344074 Author: Pedro Alves <palves@redhat.com> Date: Tue Mar 7 12:21:00 2017 +0000 Rename gdb.base/tui-layout.exp -> gdb.base/tui-disasm-long-lines.exp To better reflect what the testcase is about, and to make room for a different testcase. gdb/testsuite/ChangeLog: 2017-03-07 Pedro Alves <palves@redhat.com> * gdb.base/tui-layout.c: Rename to ... * gdb.base/tui-disasm-long-lines.c: ... this. * gdb.base/tui-layout.exp: Rename to ... * gdb.base/tui-disasm-long-lines.exp: ... this. commit f8c4e718c26a0181821398e09d96113c0ff49c15 Author: Pedro Alves <palves@redhat.com> Date: Tue Mar 7 12:11:45 2017 +0000 Add describing intro comment to gdb.base/tui-layout.exp gdb/testsuite/ChangeLog: 2017-03-07 Pedro Alves <palves@redhat.com> * gdb.base/tui-layout.exp: Add intro comment and fix typo. commit 6dbb839a78d343b0a7435ec7db46ee359b1f62ec Author: Pedro Alves <palves@redhat.com> Date: Tue Mar 7 13:51:33 2017 +0000 Fix whitespace/typos in gdb/ChangeLog and gdb/testsuite/ChangeLog commit 4a612d6f67d605f480ce7eec7fd9ca1cd1087b35 Author: Walfred Tedeschi <walfred.tedeschi@intel.com> Date: Tue Mar 7 13:53:41 2017 +0100 amd64-mpx: initialize BND register before performing inferior calls. This patch initializes the BND registers before executing the inferior call. BND registers can be in arbitrary values at the moment of the inferior call. In case the function being called uses as part of the parameters BND register, e.g. when passing a pointer as parameter, the current value of the register will be used. This can cause boundary violations that are not due to a real bug or even desired by the user. In this sense the best to be done is set the BND registers to allow access to the whole memory, i.e. initialized state, before pushing the inferior call. 2017-03-07 Walfred Tedeschi <walfred.tedeschi@intel.com> gdb/ChangeLog: * i387-tdep.h (i387_reset_bnd_regs): Add function definition. * i387-tdep.c (i387_reset_bnd_regs): Add function implementation. * i386-tdep.c (i386_push_dummy_call): Call i387_reset_bnd_regs. * amd64-tdep (amd64_push_dummy_call): Call i387_reset_bnd_regs. gdb/testsuite/ChangeLog: * i386-mpx-call.c: New file. * i386-mpx-call.exp: New file. gdb/doc/ChangeLog: * Memory Protection Extensions: Add information about inferior calls. commit ea86f5344298e24801c262d9b52afcc9cb692959 Author: Alan Modra <amodra@gmail.com> Date: Tue Mar 7 19:39:32 2017 +1030 Correct @section placement for makeinfo 4.13 * doc/as.texinfo (2byte, 4byte, 8byte): Correct @section placement. commit 2b841ec2066db4870beaa5298feb02f5e20faf7b Author: Alan Modra <amodra@gmail.com> Date: Tue Mar 7 16:46:36 2017 +1030 Document .Nbyte assembler directives * doc/as.texinfo (2byte, 4byte, 8byte): Document. * doc/c-arm.texi (2byte, 4byte, 8byte): Omit if ELF. commit d933941d6c5ce5b2dcaaa869919b6f3de06b725d Author: Alan Modra <amodra@gmail.com> Date: Tue Mar 7 12:20:00 2017 +1030 Fix ld uninitialized read of script ASSERT data structure lang_assignment_statement serves both assignments and asserts. * ldlang.c (open_input_bfds): Check that lang_assignment_statement is not an assert before referencing defsym. commit b1b07054c08eea65ba8d1a9f771796d686f337e5 Author: Alan Modra <amodra@gmail.com> Date: Tue Mar 7 11:04:19 2017 +1030 PowerPC64 abort due to dynamic relocs on hidden undefweak ppc64_elf_relocate_section lacked a check which meant that it emitted dynamic relocs against a hidden undefweak symbol for which no dynamic relocs had been allocated. PR 21224 PR 20519 * elf64-ppc.c (ppc64_elf_relocate_section): Add missing dyn_relocs check. commit bb98f85480da563f4f6438abdabb68a69bc746b8 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Mar 7 00:00:39 2017 +0000 Automatic date update in version.in commit 603555e563725616246912711419637add54c961 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Mar 6 15:26:37 2017 -0800 Add support for Intel CET instructions Support Intel Control-flow Enforcement Technology (CET) instructions: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf gas/ * config/tc-i386.c (cpu_arch): Add .cet. * doc/c-i386.texi: Document cet. * testsuite/gas/i386/cet-intel.d: New file. * testsuite/gas/i386/cet.d: Likewise. * testsuite/gas/i386/cet.s: Likewise. * testsuite/gas/i386/x86-64-cet-intel.d: Likewise. * testsuite/gas/i386/x86-64-cet.d: Likewise. * testsuite/gas/i386/x86-64-cet.s: Likewise. * testsuite/gas/i386/i386.exp: Run Intel CET tests. opcodes/ * i386-dis.c (REG_0F1E_MOD_3): New enum. (MOD_0F1E_PREFIX_1): Likewise. (MOD_0F38F5_PREFIX_2): Likewise. (MOD_0F38F6_PREFIX_0): Likewise. (RM_0F1E_MOD_3_REG_7): Likewise. (PREFIX_MOD_0_0F01_REG_5): Likewise. (PREFIX_MOD_3_0F01_REG_5_RM_1): Likewise. (PREFIX_MOD_3_0F01_REG_5_RM_2): Likewise. (PREFIX_0F1E): Likewise. (PREFIX_MOD_0_0FAE_REG_5): Likewise. (PREFIX_0F38F5): Likewise. (dis386_twobyte): Use PREFIX_0F1E. (reg_table): Add REG_0F1E_MOD_3. (prefix_table): Add PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_3_0F01_REG_5_RM_1, PREFIX_MOD_3_0F01_REG_5_RM_2, PREFIX_0F1E, PREFIX_MOD_0_0FAE_REG_5 and PREFIX_0F38F5. Update PREFIX_0FAE_REG_6 and PREFIX_0F38F6. (three_byte_table): Use PREFIX_0F38F5. (mod_table): Use PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_0_0FAE_REG_5. Add MOD_0F1E_PREFIX_1, MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0. (rm_table): Add MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0, RM_0F1E_MOD_3_REG_7. Use PREFIX_MOD_3_0F01_REG_5_RM_1 and PREFIX_MOD_3_0F01_REG_5_RM_2. * i386-gen.c (cpu_flag_init): Add CPU_CET_FLAGS. (cpu_flags): Add CpuCET. * i386-opc.h (CpuCET): New enum. (CpuUnused): Commented out. (i386_cpu_flags): Add cpucet. * i386-opc.tbl: Add Intel CET instructions. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. commit 1cccfb31f5ba0dbc1cd3c679daf2f5b40252c6e0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Mar 6 15:00:52 2017 -0800 Update x86-64-mpx-inval-2 test for COFF Assembler displays upper case hex numbers and we need to force a good alignment to avoid matching NOPs at the end. * testsuite/gas/i386/x86-64-mpx-inval-2.s: Force a good alignment. * testsuite/gas/i386/x86-64-mpx-inval-2.l: Expect [0-9A-F]+. commit d274ecf4ddf76768af57e27f654b9ce6784b391c Author: Simon Marchi <simon.marchi@ericsson.com> Date: Mon Mar 6 16:06:42 2017 -0500 Remove const in xtensa-linux-nat.c:fetch_gregs Fixes: /home/emaisin/src/binutils-gdb/gdb/xtensa-linux-nat.c: In function 'void fetch_gregs(regcache*, ptid_t, int)': /home/emaisin/src/binutils-gdb/gdb/xtensa-linux-nat.c:178:23: error: uninitialized const 'regs' [-fpermissive] const gdb_gregset_t regs; ^ gdb/ChangeLog: * xtensa-linux-nat.c (fetch_gregs): Remove const. commit 79a964dca572024447adf92e50959dc88aa4f27a Author: Nick Clifton <nickc@redhat.com> Date: Mon Mar 6 17:21:04 2017 +0000 Fix reading numeric values from GNU BUILD NOTEs. * readelf.c (print_gnu_build_attribute_name): Read byte values from the name string as unsigned bytes. (process_notes_at): Use memcpy to copy an unterminated name string. commit 73f07bffaf8d423295a38dde51dfe6ec7b273280 Author: Alan Modra <amodra@gmail.com> Date: Mon Mar 6 19:39:34 2017 +1030 Don't decode powerpc insns with invalid fields Certain insns have restrictions on fields. For example, the insn mentioned in the PR, lqarx, must specify an even general purpose register as its destination and that register cannot appear in either of the base or index reg fields. This holds even when the RA0 field is 0 (meaning a zero rather than r0). PR 21124 * ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram) (extract_raq, extract_ras, extract_rbx): New functions. (powerpc_operands): Use opposite corresponding insert function. (Q_MASK): Define. (powerpc_opcodes): Apply Q_MASK to all quad insns with even register restriction. commit ea0de82ec2d7f109ba179d8d55130805e680f02d Author: Alan Modra <amodra@gmail.com> Date: Sun Mar 5 23:25:16 2017 +1030 dw2gencfi.c DWARF2_FDE_RELOC_SIZE Add asserts that reloc size matches encoding size, and tidy. * dw2gencfi.c (encoding_size): Return unsigned int. (emit_expr_encoded): Assert size matches reloc bitsize. (output_fde): Use unsigned for offset_size and addr_size. Set addr_size earlier and use in place of constant 4 and uses of DWARF2_FDE_RELOC_SIZE. Assert it matches reloc bitsize. commit 9e1a8675d49a5bbb881f664f8b7a1081432c994d Author: Alan Modra <amodra@gmail.com> Date: Sun Mar 5 22:55:29 2017 +1030 gas/dw2gencfi.c formatting * dw2gencfi.c: Wrap overlong lines. Add parens for emacs auto reformat. Formatting and whitespace fixes. commit 1f5345a614203185f7fdacbf4b000d2676de26dd Author: Sam Thursfield <sam.thursfield@codethink.co.uk> Date: Fri Mar 3 14:14:35 2017 +0000 binutils: Fix warning on platforms that don't have asprintf * configure.ac (AC_CHECK_DECLS): Add asprintf. * config.in: Regenerate. * configure: Regenerate. commit 62e755d208d7359e722a248df3e74278779272c8 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Mar 6 00:00:34 2017 +0000 Automatic date update in version.in commit 49fced1206db40c71208c201165d65f92c69cebe Author: Mark Wielaard <mark@klomp.org> Date: Sun Mar 5 23:37:54 2017 +0100 gas: Emit name, comp_dir and producer strings in .debug_str. Putting the name, comp_dir and producer strings in the .debug_str section makes it possible to share them across CUs. This saves a small amount of space (about ~20K on a glibc libc.so.6 build with debuginfo). And makes it easier for tools like rpm debugedit to adjust the source paths when generating separate debuginfo files. gas/ * dwarf2dbg.c (out_debug_abbrev): Use DW_FORM_strp instead of DW_FORM_string for DW_AT_name, DW_AT_comp_dir and DW_AT_producer. (out_debug_info): Accept symbols to name, comp_dir and producer in the .debug_str section and emit those offsets not full strings. (out_debug_str): New function that outputs the strings for name, comp_dir and producer in .debug_str and generates symbols to those strings. (out_debug_line): Create a .debug_str section if necessary and call out_debug_str before calling out_debug_info. * testsuite/gas/aarch64/dwarf.d: Add extra section symbol to expected output. commit 2e0ce1c84d328bde4dca24b7cfc8b9c033ed271c Author: Alan Modra <amodra@gmail.com> Date: Sun Mar 5 14:49:54 2017 +1030 Align eh_frame FDEs according to their encoding bfd/ * elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8. * elf-eh-frame.c (size_of_output_cie_fde): Don't align here. (next_cie_fde_offset): New function. (_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8. (_bfd_elf_discard_section_eh_frame): Align zero terminator to four bytes. Align CIEs to four or eight bytes depending on per_encoding_aligned8. Align FDEs according to their encoding. Pad last FDE to output section alignment. (_bfd_elf_write_section_eh_frame): Adjust to suit. Remove assertion. * elf64-ppc.c (glink_eh_frame_cie): Delete padding. (ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c. (ppc64_elf_finish_dynamic_sections): Adjust to suit. ld/ * testsuite/ld-elf/eh3.d: Adjust for eh_frame alignment change. * testsuite/ld-elf/eh6.d: Likewise. * testsuite/ld-alpha/tlsbin.dd: Likewise. * testsuite/ld-alpha/tlsbin.td: Likewise. * testsuite/ld-alpha/tlsbinr.dd: Likewise. * testsuite/ld-alpha/tlspic.dd: Likewise. * testsuite/ld-alpha/tlspic.rd: Likewise. * testsuite/ld-alpha/tlspic.sd: Likewise. * testsuite/ld-alpha/tlspic.td: Likewise. * testsuite/ld-mips-elf/eh-frame1-n64.d: Likewise. * testsuite/ld-mips-elf/eh-frame2-n64.d: Likewise. * testsuite/ld-mips-elf/eh-frame3.d: Likewise. * testsuite/ld-x86-64/pr20830a.d: Likewise. * testsuite/ld-x86-64/pr21038a.d: Likewise. * testsuite/ld-x86-64/pr21038b.d: Likewise. * testsuite/ld-x86-64/pr21038c.d: Likewise. commit 0792e0e1199e76dce19a0f9fbdb29c75b8be8a9b Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Mar 5 00:00:22 2017 +0000 Automatic date update in version.in commit 921ea8830c62bf4a60af1783bdd443fd43286359 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Mar 4 00:00:25 2017 +0000 Automatic date update in version.in commit 8ecbe595e69a84a0e3053884832d63af37113680 Author: Jim Wilson <jim.wilson@linaro.org> Date: Fri Mar 3 13:10:45 2017 -0800 Fix umulh and smulh bugs. Fix bugs in last week's sumov.s testsuite. sim/aarch64/ * simulator.c (mul64hi): Shift carry left by 32. (smulh): Change signum to negate. If negate, invert result, and add carry bit if low part of multiply result is zero. sim/testsuite/sim/aarch64/ * sumov.s: Correct compare test values. * sumulh.s: New. commit df97be551faa262732128493c8ac159ae4b7f6d3 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Mar 3 12:58:24 2017 -0500 Use range-based for loop in remote_add_target_side_commands gdb/ChangeLog: * remote.c (remote_add_target_side_commands): Use range-based for loop. commit 7d45f3df96ca108f6d7d0c5e4279e22b820145fa Author: Yao Qi <yao.qi@linaro.org> Date: Fri Mar 3 17:16:19 2017 +0000 Fetch lazy value before calling val_print As reported in PR 21165, (gdb) info locals^M gv = /home/yao/SourceCode/gnu/gdb/git/gdb/value.c:372: internal-error: int value_bits_any_optimized_out(const value*, int, int): Assertion `!value->lazy' failed.^M A problem internal to GDB has been detected,^M further debugging may prove unreliable.^M Quit this debugging session? (y or n) FAIL: gdb.ada/info_locals_renaming.exp: info locals (GDB internal error) Resyncing due to internal error. This internal error is caused by e8b24d9 (Remove parameter valaddr from la_val_print). Commit e8b24d9 removes some calls to value_contents_for_printing, but value_fetch_lazy is not called, so the internal error above is triggered. This patch adds value_fetch_lazy call before val_print. gdb: 2017-03-03 Yao Qi <yao.qi@linaro.org> PR gdb/21165 * ada-valprint.c (ada_val_print_ref): Call value_fetch_lazy if value is lazy. * valprint.c (common_val_print): Likewise. commit 611a3ca929d6529f4e7576b0e2ffb588839c1b21 Author: Nick Clifton <nickc@redhat.com> Date: Fri Mar 3 11:35:03 2017 +0000 Make the linker fail if asked to create more than 1^16 ordinal values for PE targets. PR 12969 * pe-dll.c (generate_edata): Fail if the input file(s) require too many ordinals. commit d20928fac9ab65449db910bd99a0f48ad29fb22b Author: Nick Clifton <nickc@redhat.com> Date: Fri Mar 3 10:22:16 2017 +0000 Fix thinko in previous changelog entry. PR ld/21212 * elf.c (rewrite_elf_program_header): Do not issue a warning for empty segments which have a zero filesz, but a non-zero memsz. commit b565cf21c80945d5e9baa6871653aae5add2d493 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri Mar 3 00:00:23 2017 +0000 Automatic date update in version.in commit 05ed43104ef2c3f75779438111e2913dbd4555a6 Author: Nick Clifton <nickc@redhat.com> Date: Thu Mar 2 17:10:20 2017 +0000 Support merging build notes in sections without the SHF_GNU_BUILD_NOTE flag set. * objcopy.c (is_merged_note_section): Support build note sections without the SHF_GNU_BUILD_NOTE section flag set. commit f98450c6eee6878ebf5b052d231758026d250427 Author: Nick Clifton <nickc@redhat.com> Date: Thu Mar 2 14:47:29 2017 +0000 Disable warning message about a program header with no associated sections when that header's file size is non-zero. PR ld/21212 * elf.c (rewrite_elf_program_header): Do not issue a warning for empty segments which have a non-zero filesz. commit c871dadee1817d4b9f3ba6ee792730c9eccf88e0 Author: Nick Clifton <nickc@redhat.com> Date: Thu Mar 2 10:52:51 2017 +0000 Fix snafu parsing GNU_BUILD_NOTEs on ARM and AArch64 architectures. * readelf.c (print_gnu_build_attribute_description): Use global symbols for OPEN attributes if at all possible. commit b451e98a909e1a6afa71c4a4655adc4cfeea5249 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Thu Mar 2 10:58:19 2017 +0100 New debug_displays_assert binutils/ 2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.c (debug_displays_assert): New static assertion. commit d4620bee57be53f7a6b14c01b2ea22d22a61bef0 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Thu Mar 2 10:06:00 2017 +0100 Fix dwarf_section_display_enum regression by DWARF-5 binutils/ 2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.h (enum dwarf_section_display_enum): Add loclists and rnglists. commit 9875b36538d35f2292ddc3bb5e7c60e1582aa087 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Mar 2 01:24:15 2017 +0000 GAS: Fix bogus "attempt to move .org backwards" relaxation errors Fix a commit 6afe8e98a664 ("internal error for backwards .org"), <https://www.sourceware.org/ml/binutils/2008-06/msg00212.html>, GAS regression that caused legitimate code to fail assembly with an "attempt to move .org backwards" error. For example with the `mips-linux' target we get: $ cat org.s .set mips16 la $2, foo .org 0x1000 .align 2 foo: .half 0 $ as -o org.o org.s org.s: Assembler messages: org.s:3: Error: attempt to move .org backwards $ where the location pointer is obviously not moved backwards with `.org'. The cause is positive `stretch' in relaxation due to a PC-relative ADDIU instruction (produced from the LA macro used) getting expanded from 2 to 4 bytes as `foo' is noticed to be out of range for the short encoding. This in turn triggers logic in `relax_segment' which concludes in the processing of an `rs_org' frag produced that the location pointer is moved backwards while in fact only the amount to space forward to the location requested has shrunk, resulting in a negative growth of the frag. Correct the bad logic then and instead verify that the fixed part of an `rs_org' frag has not overrun the location requested, as per the comment already included with the error message: /* Growth may be negative, but variable part of frag cannot have fewer than 0 chars. That is, we can't .org backwards. */ which accurately describes the regression scenario. Move the comment ahead the conditional noted, for clarity. Add generic and MIPS test cases for the `.org' pseudo-op, including the test case discussed though not integrated with the offending commit in particular, adjusted to work across all targets. gas/ * write.c (relax_segment) <rs_org>: Only bail out if the fixed part of the frag has overrun the location requested. * testsuite/gas/all/org-1.d: New test. * testsuite/gas/all/org-2.d: New test. * testsuite/gas/all/org-3.d: New test. * testsuite/gas/all/org-4.d: New test. * testsuite/gas/all/org-5.d: New test. * testsuite/gas/all/org-6.d: New test. * testsuite/gas/all/org-1.l: New stderr output. * testsuite/gas/all/org-2.l: New stderr output. * testsuite/gas/all/org-3.l: New stderr output. * testsuite/gas/all/org-1.s: New test source. * testsuite/gas/all/org-2.s: New test source. * testsuite/gas/all/org-3.s: New test source. * testsuite/gas/all/org-4.s: New test source. * testsuite/gas/all/org-5.s: New test source. * testsuite/gas/all/org-6.s: New test source. * testsuite/gas/all/gas.exp: Run the new tests. * testsuite/gas/mips/org-1.d: New test. * testsuite/gas/mips/org-2.d: New test. * testsuite/gas/mips/org-3.d: New test. * testsuite/gas/mips/org-4.d: New test. * testsuite/gas/mips/org-5.d: New test. * testsuite/gas/mips/org-6.d: New test. * testsuite/gas/mips/org-7.d: New test. * testsuite/gas/mips/org-8.d: New test. * testsuite/gas/mips/org-9.d: New test. * testsuite/gas/mips/org-10.d: New test. * testsuite/gas/mips/org-11.d: New test. * testsuite/gas/mips/org-12.d: New test. * testsuite/gas/mips/org-1.l: New stderr output. * testsuite/gas/mips/org-4.l: New stderr output. * testsuite/gas/mips/org-5.l: New stderr output. * testsuite/gas/mips/org-6.l: New stderr output. * testsuite/gas/mips/org-10.l: New stderr output. * testsuite/gas/mips/org-1.s: New test source. * testsuite/gas/mips/org-2.s: New test source. * testsuite/gas/mips/org-3.s: New test source. * testsuite/gas/mips/org-4.s: New test source. * testsuite/gas/mips/org-5.s: New test source. * testsuite/gas/mips/org-6.s: New test source. * testsuite/gas/mips/org-7.s: New test source. * testsuite/gas/mips/org-8.s: New test source. * testsuite/gas/mips/org-9.s: New test source. * testsuite/gas/mips/org-10.s: New test source. * testsuite/gas/mips/org-11.s: New test source. * testsuite/gas/mips/org-12.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. commit 673cff9b8b3105f74ce97c202a0727f9e83e56e6 Author: Alan Modra <amodra@gmail.com> Date: Thu Mar 2 10:24:14 2017 +1030 PowerPC VLE typo fix * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo. commit 199add01b6704e1cd8a48945bd775fbe8524fa75 Author: Alan Modra <amodra@gmail.com> Date: Thu Mar 2 10:23:42 2017 +1030 Avoid gcc-7 warning killing ld testcases * testsuite/ld-elf/shared.exp: Pass -ansi when compiling new.cc and dl3.cc. commit ecd78df2707734ccb2d0f6e5426321fa399befaa Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu Mar 2 00:00:42 2017 +0000 Automatic date update in version.in commit 134e805d3e18cf700a5046912b8dca9301fe6f2e Author: Nick Clifton <nickc@redhat.com> Date: Wed Mar 1 15:09:29 2017 +0000 Sync libiberty sources with GCC mainline. Brings in: 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> PR PR c++/70182 * cp-demangle.c (d_unqualified_name): Handle "on" for operator names. * testsuite/demangle-expected: Add tests. 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> PR c++/77489 * cp-demangle.c (d_discriminator): Handle discriminator >= 10. * testsuite/demangle-expected: Add tests for discriminator. 2016-12-13 Jakub Jelinek <jakub@redhat.com> PR c++/78761 * cp-demangle.c (cplus_demangle_type): Demangle Dc as decltype(auto). * testsuite/demangle-expected: Add test for decltype(auto). commit 01cca2f95e4a448cbfb7dc940cc38fe89300b15f Author: Szabolcs Nagy <szabolcs.nagy@arm.com> Date: Wed Mar 1 14:51:13 2017 +0000 [AArch64] Document +rcpc weak release consistency extension gas/ * doc/c-aarch64.texi (AArch64 Extensions): Document rcpc. commit 9ef920e933bf2ea228c909cf81636e6d9577e51e Author: Nick Clifton <nickc@redhat.com> Date: Wed Mar 1 11:09:46 2017 +0000 Add support for displaying and merging GNU_BUILD_NOTEs. include * elf/common.h (SHF_GNU_BUILD_NOTE): Define. (NT_GNU_PROPERTY_TYPE_0): Define. (NT_GNU_BUILD_ATTRIBUTE_OPEN): Define. (NT_GNU_BUILD_ATTRIBUTE_FUN): Define. (GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC): Define. (GNU_BUILD_ATTRIBUTE_TYPE_STRING): Define. (GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE): Define. (GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE): Define. (GNU_BUILD_ATTRIBUTE_VERSION): Define. (GNU_BUILD_ATTRIBUTE_STACK_PROT): Define. (GNU_BUILD_ATTRIBUTE_RELRO): Define. (GNU_BUILD_ATTRIBUTE_STACK_SIZE): Define. (GNU_BUILD_ATTRIBUTE_TOOL): Define. (GNU_BUILD_ATTRIBUTE_ABI): Define. (GNU_BUILD_ATTRIBUTE_PIC): Define. (NOTE_GNU_PROPERTY_SECTION_NAME): Define. (GNU_BUILD_ATTRS_SECTION_NAME): Define. (GNU_PROPERTY_STACK_SIZE): Define. (GNU_PROPERTY_NO_COPY_ON_PROTECTED): Define. (GNU_PROPERTY_X86_ISA_1_USED): Define. (GNU_PROPERTY_X86_ISA_1_NEEDED): Define. (GNU_PROPERTY_X86_ISA_1_486): Define. (GNU_PROPERTY_X86_ISA_1_586): Define. (GNU_PROPERTY_X86_ISA_1_686): Define. (GNU_PROPERTY_X86_ISA_1_SSE): Define. (GNU_PROPERTY_X86_ISA_1_SSE2): Define. (GNU_PROPERTY_X86_ISA_1_SSE3): Define. (GNU_PROPERTY_X86_ISA_1_SSSE3): Define. (GNU_PROPERTY_X86_ISA_1_SSE4_1): Define. (GNU_PROPERTY_X86_ISA_1_SSE4_2): Define. (GNU_PROPERTY_X86_ISA_1_AVX): Define. (GNU_PROPERTY_X86_ISA_1_AVX2): Define. (GNU_PROPERTY_X86_ISA_1_AVX512F): Define. (GNU_PROPERTY_X86_ISA_1_AVX512CD): Define. (GNU_PROPERTY_X86_ISA_1_AVX512ER): Define. (GNU_PROPERTY_X86_ISA_1_AVX512PF): Define. (GNU_PROPERTY_X86_ISA_1_AVX512VL): Define. (GNU_PROPERTY_X86_ISA_1_AVX512DQ): Define. (GNU_PROPERTY_X86_ISA_1_AVX512BW): Define. binutils* readelf.c (get_note_type): Add support for GNU_BUILD_NOTEs. (get_gnu_elf_note_type): Add support for GNU_PROPERTY_NOTEs. (decode_x86_isa): New function. (print_gnu_property_note): New function. (print_gnu_note): Handle GNU_PROPERTY_NOTEs. (print_gnu_build_attribute_description): New function. (print_gnu_build_attribute_name): New function. (process_note): Add support for GNU_BUILD_NOTEs. * objcopy.c (--merge-notes): New command line option. (copy_options): Add merge-notes. (copy_usage): Likewise. (is_merge_note_section): New function. (merge_gnu_build_notes): New function. (copy_object): Merge note sections if asked to do so. (skip_section): Add skip_copy parameter. Add support for skipping merged note sections. (copy_relocations_in_section): Update call to skip_section. (copy_section): Likewise. (copy_main): Add support for merge-notes option. * doc/binutils.texi: Document the new option to objcopy. * NEWS: Mention the new feature. * testsuite/binutils-all/note-2-32.d: New test. Checks note merging on 32-bit targets. * testsuite/binutils-all/note-2-32.s: New test source file. * testsuite/binutils-all/note-2-64.d: New test. Like note-2-32.d but for 64-bit targets. * testsuite/binutils-all/note-2-64.s: New test source file. * testsuite/binutils-all/objcopy.exp: Run the new test. commit a7e8b06b8901309632fad842ffd7d90a81447c80 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Mar 1 00:01:00 2017 +0000 Automatic date update in version.in commit 65b48a81404cb058c75c562f7dfdeb74f07eba72 Author: Peter Bergner <bergner@vnet.ibm.com> Date: Tue Feb 28 12:32:07 2017 -0600 GDB: Add support for the new set/show disassembler-options commands. This commit adds support to GDB so that it can modify the disassembler-options value that is passed to the disassembler, similar to objdump's -M option. Currently, the only supported targets are ARM, PowerPC and S/390, but adding support for a new target(s) is not difficult. include/ * dis-asm.h (disasm_options_t): New typedef. (parse_arm_disassembler_option): Remove prototype. (set_arm_regname_option): Likewise. (get_arm_regnames): Likewise. (get_arm_regname_num_options): Likewise. (disassemble_init_s390): New prototype. (disassembler_options_powerpc): Likewise. (disassembler_options_arm): Likewise. (disassembler_options_s390): Likewise. (remove_whitespace_and_extra_commas): Likewise. (disassembler_options_cmp): Likewise. (next_disassembler_option): New inline function. (FOR_EACH_DISASSEMBLER_OPTION): New macro. opcodes/ * disassemble.c Include "safe-ctype.h". (disassemble_init_for_target): Handle s390 init. (remove_whitespace_and_extra_commas): New function. (disassembler_options_cmp): Likewise. * arm-dis.c: Include "libiberty.h". (NUM_ELEM): Delete. (regnames): Use long disassembler style names. Add force-thumb and no-force-thumb options. (NUM_ARM_REGNAMES): Rename from this... (NUM_ARM_OPTIONS): ...to this. Use ARRAY_SIZE. (get_arm_regname_num_options): Delete. (set_arm_regname_option): Likewise. (get_arm_regnames): Likewise. (parse_disassembler_options): Likewise. (parse_arm_disassembler_option): Rename from this... (parse_arm_disassembler_options): ...to this. Make static. Use new FOR_EACH_DISASSEMBLER_OPTION macro to scan over options. (print_insn): Use parse_arm_disassembler_options. (disassembler_options_arm): New function. (print_arm_disassembler_options): Handle updated regnames. * ppc-dis.c: Include "libiberty.h". (ppc_opts): Add "32" and "64" entries. (ppc_parse_cpu): Use ARRAY_SIZE and disassembler_options_cmp. (powerpc_init_dialect): Add break to switch statement. Use new FOR_EACH_DISASSEMBLER_OPTION macro. (disassembler_options_powerpc): New function. (print_ppc_disassembler_options): Use ARRAY_SIZE. Remove printing of "32" and "64". * s390-dis.c: Include "libiberty.h". (init_flag): Remove unneeded variable. (struct s390_options_t): New structure type. (options): New structure. (init_disasm): Rename from this... (disassemble_init_s390): ...to this. Add initializations for current_arch_mask and option_use_insn_len_bits_p. Remove init_flag. (print_insn_s390): Delete call to init_disasm. (disassembler_options_s390): New function. (print_s390_disassembler_options): Print using information from struct 'options'. * po/opcodes.pot: Regenerate. binutils/ * objdump.c (main): Use remove_whitespace_and_extra_commas. gdb/ * NEWS: Mention new set/show disassembler-options commands. * doc/gdb.texinfo: Document new set/show disassembler-options commands. * disasm.c: Include "arch-utils.h", "gdbcmd.h" and "safe-ctype.h". (prospective_options): New static variable. (gdb_disassembler::gdb_disassembler): Initialize m_di.disassembler_options. (gdb_buffered_insn_length_init_dis): Initilize di->disassembler_options. (get_disassembler_options): New function. (set_disassembler_options): Likewise. (set_disassembler_options_sfunc): Likewise. (show_disassembler_options_sfunc): Likewise. (disassembler_options_completer): Likewise. (_initialize_disasm): Likewise. * disasm.h (get_disassembler_options): New prototype. (set_disassembler_options): Likewise. * gdbarch.sh (gdbarch_disassembler_options): New variable. (gdbarch_verify_disassembler_options): Likewise. * gdbarch.c: Regenerate. * gdbarch.h: Likewise. * arm-tdep.c (num_disassembly_options): Delete. (set_disassembly_style): Likewise. (arm_disassembler_options): New static variable. (set_disassembly_style_sfunc): Convert short style name into long option name. Call set_disassembler_options. (show_disassembly_style_sfunc): New function. (arm_gdbarch_init): Call set_gdbarch_disassembler_options and set_gdbarch_verify_disassembler_options. (_initialize_arm_tdep): Delete regnames variable and update callers. (arm_disassembler_options): Initialize. (disasm_options): New variable. (num_disassembly_options): Rename from this... (num_disassembly_styles): ...to this. Compute by scanning through disasm_options. (valid_disassembly_styles): Initialize using disasm_options. Remove calls to parse_arm_disassembler_option, get_arm_regnames and set_arm_regname_option. Pass show_disassembly_style_sfunc to the "disassembler" setshow command. * rs6000-tdep.c (powerpc_disassembler_options): New static variable. (rs6000_gdbarch_init): Call set_gdbarch_disassembler_options and set_gdbarch_verify_disassembler_options. * s390-tdep.c (s390_disassembler_options): New static variable. (s390_gdbarch_init):all set_gdbarch_disassembler_options and set_gdbarch_verify_disassembler_options. gdb/testsuite/ * gdb.arch/powerpc-power.exp: Delete test. * gdb.arch/powerpc-power.s: Likewise. * gdb.disasm/disassembler-options.exp: New test. * gdb.arch/powerpc-altivec.exp: Likewise. * gdb.arch/powerpc-altivec.s: Likewise. * gdb.arch/powerpc-altivec2.exp: Likewise. * gdb.arch/powerpc-altivec2.s: Likewise. * gdb.arch/powerpc-altivec3.exp: Likewise. * gdb.arch/powerpc-altivec3.s: Likewise. * gdb.arch/powerpc-power7.exp: Likewise. * gdb.arch/powerpc-power7.s: Likewise. * gdb.arch/powerpc-power8.exp: Likewise. * gdb.arch/powerpc-power8.s: Likewise. * gdb.arch/powerpc-power9.exp: Likewise. * gdb.arch/powerpc-power9.s: Likewise. * gdb.arch/powerpc-vsx.exp: Likewise. * gdb.arch/powerpc-vsx.s: Likewise. * gdb.arch/powerpc-vsx2.exp: Likewise. * gdb.arch/powerpc-vsx2.s: Likewise. * gdb.arch/powerpc-vsx3.exp: Likewise. * gdb.arch/powerpc-vsx3.s: Likewise. * gdb.arch/arm-disassembler-options.exp: Likewise. * gdb.arch/powerpc-disassembler-options.exp: Likewise. * gdb.arch/s390-disassembler-options.exp: Likewise. commit 2979a883540d9ce6e41dd0509ea2a345de9cf050 Author: Nick Clifton <nickc@redhat.com> Date: Tue Feb 28 16:54:16 2017 +0000 Revert "Add symbol called __nm_<name> to exported symbols created by dlltool." This reverts commit 47612ae91c5f2de8960df1d96adf225d2455123f. commit 3de43e7beb9839fa268a73be77de73a7b7cd97db Author: Alan Modra <amodra@gmail.com> Date: Tue Feb 28 23:42:29 2017 +1030 PowerPC addpcis fix again In the last patch I said "The patch also fixes overflow checking". In fact, there wasn't anything wrong with the previous code. So, revert that change. The new checks are OK too, so this is just a tidy. * elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change. (ppc64_elf_relocate_section): Likewise. commit 15c7c1d8a535000e94ed36f4259d0ede32001408 Author: Jan Beulich <jbeulich@novell.com> Date: Tue Feb 28 10:53:35 2017 +0100 x86: fix handling of 64-bit operand size VPCMPESTR{I,M} Just like REX.W affects operand size of the implicit rAX/rDX inputs to PCMPESTR{I,M}, VEX.W does for VPCMPESTR{I,M}. Allow Q or L suffixes on the instructions. Similarly the disassembler needs to be adjusted to no longer require VEX.W to be zero for the instructions to be valid, and to emit proper suffixes. Note, however, that this doesn't address the problem of there being no way to control (at least) {,E}VEX.W for 32- or 16-bit code. Nor does it address the problem of the many WIG instructions not getting properly disassembled when VEX.W=1. commit 4ef97a1b459849ad190244c36b36d45bdd078030 Author: Alan Modra <amodra@gmail.com> Date: Tue Feb 28 10:38:51 2017 +1030 Nios2 dynobj handling fixes A number of places in elf32-nios.c created dynamic sections but didn't set the hash table dynobj. That meant we could have duplicate dynamic sections connected to a number of bfds, so size_dynamic_sections didn't properly discard or allocate contents. Also, the entire set of dynamic sections was created in check_relocs on seeing GOT relocs, when only .got related sections are needed, probably done to hide segfaults later in finish_dynamic_sections. The patch fixes these issues and makes the assembler emit errors when nios2 lacks the necessary pc-relative relocs for subtraction expressions, rather than silently generating bad code. eg. ld-elf/merge. I've also tidied uses of elf32_nios2_hash_table and elf_hash_table. bfd/ PR 20995 * elf32-nios2.c (nios2_elf32_relocate_section): Use htab rather than elf32_nios2_hash_table or elf_hash_table. (create_got_section): Likewise. (nios2_elf32_finish_dynamic_symbol): Likewise. (nios2_elf32_adjust_dynamic_symbol): Likewise. (nios2_elf32_size_dynamic_sections): Likewise. (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot vars. Use htab equivalents directly instead. Don't create all dynamic sections on needing just the GOT. Use a goto rather than a fall-through with reloc test. Ensure htab->dynobj is set when making dynamic sreloc section. (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab equivalent directly instead. Don't segfault on looking for .dynamic when dynamic sections have not been created. Don't segfault on .got.plt being discarded. (nios2_elf32_size_dynamic_sections): Delete plt and got vars. Don't set "relocs" on .rela.plt. Do handle .sbss. Delete fixme and another not so relevant comment. (nios2_elf_add_symbol_hook): Delete dynobj var. If not already set, set hash table dynobj on creating .sbss. gas/ * config/tc-nios2.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define. ld/ * testsuite/ld-elf/merge.d: xfail for nios. commit 7ba71655a425ac44721f97cc0ad7922ca15bce43 Author: Alan Modra <amodra@gmail.com> Date: Tue Feb 28 08:32:36 2017 +1030 PowerPC addpcis fix This came up because I was looking at ld/tmpdir/addpcis.o and noticed the odd addends on REL16DX_HA. They ought to both be -4. The error crept in due REL16DX_HA howto being pc-relative (as indeed it should be), and code at gas/write.c:1001 after this comment /* Make it pc-relative. If the back-end code has not selected a pc-relative reloc, cancel the adjustment we do later on all pc-relative relocs. */ *not* cancelling the pc-relative adjustment. So I've made a dummy non-relative split reloc so that the generic code handles this, rather than attempting to add hacks later in md_apply_fix which would not be very robust. Having the new internal reloc also makes it easy to support addpcis rx,sym@ha as an equivalent to addpcis rx,(sym-0f)@ha 0: The patch also fixes overflow checking, which must test whether the addi will overflow too since @l relocs don't have any overflow check. Lastly, since I was poking at md_apply_fix, I arranged to have the generic gas/write.c code emit errors for subtraction expressions where we lack reloc support. include/ * elf/ppc64.h (R_PPC64_16DX_HA): New. Expand fake reloc comment. * elf/ppc.h (R_PPC_16DX_HA): Likewise. bfd/ * reloc.c (BFD_RELOC_PPC_16DX_HA): New. * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto. (ppc64_elf_reloc_type_lookup): Translate new bfd reloc. (ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA. (ppc64_elf_relocate_section): Likewise. * elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto. (ppc_elf_reloc_type_lookup): Translate new bfd reloc. (ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. gas/ * config/tc-ppc.c (md_assemble): Use BFD_RELOC_PPC_16DX_HA for addpcis. (md_apply_fix): Remove fx_subsy check. Move code converting to pcrel reloc earlier and handle BFD_RELOC_PPC_16DX_HA. Remove code emiiting errors on seeing fx_pcrel set on unexpected relocs, as that is done now by the generic code via.. * config/tc-ppc.h (TC_FORCE_RELOCATION_SUB_LOCAL): ..this. Define. (TC_VALIDATE_FIX_SUB): Define. ld/ * testsuite/ld-powerpc/addpcis.d: Define ext1 and ext2 at limits of addpcis range. commit afbf7e8e3aa24152ad58e430c8d37d82e5751f1c Author: Alan Modra <amodra@gmail.com> Date: Tue Feb 28 08:06:02 2017 +1030 Don't make dynamic .data.rel.ro SEC_READONLY I'd made this dynamic section read-only so a flag test distinguished it from .dynbss, but like any other .data.rel.ro section it really should be marked read-write. (It is read-only after relocation, not before.) When using the standard linker scripts this usually doesn't matter since the output section is among other read-write sections and not page aligned. However, it might matter in the extraordinary case of the dynamic section being the only .data.rel.ro section with the output section just happening to be page aligned and a multiple of a page in size. In that case the output section would be read-only, and live it its own read-only PT_LOAD segment, which is incorrect. * elflink.c (_bfd_elf_create_dynamic_sections): Don't make dynamic .data.rel.ro read-only. * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section rather than section flags when deciding where copy reloc goes. * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise. * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise. * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise. * elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise. * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise. * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise. * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise. * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise. * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise. * elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise. * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise. * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise. * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise. * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise. * elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise. commit 0e39210161e7c547ab53afb86997303e24a42c0c Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue Feb 28 00:14:08 2017 +0000 MIPS/BFD: Also handle `jalr $0, $25' with R_MIPS_JALR Interpret the `jalr $0, $25' instruction encoding with an R_MIPS_JALR relocation attached as an alias to `jr $25' and convert the jump to an equivalent branch where possible, consequently covering the MIPSr6 architecture for the purpose of this optimization too. bfd/ * elfxx-mips.c (mips_elf_perform_relocation): Also handle the `jalr $0, $25' instruction encoding. gas/ * testsuite/gas/mips/jalr4.s: Add `jalr $0, $25' instructions. * testsuite/gas/mips/jalr4.d: Adjust accordingly. Remove MIPSr6 encoding patterns. * testsuite/gas/mips/jalr4-n64.d: Likewise. * testsuite/gas/mips/mipsr6@jalr4.d: New test. * testsuite/gas/mips/mipsr6@jalr4-n32.d: New test. * testsuite/gas/mips/mipsr6@jalr4-n64.d: New test. ld/ * testsuite/ld-mips-elf/jalr4.dd: Adjust for `jalr $0, $25' instructions. * testsuite/ld-mips-elf/jalr4-r6.dd: New test. * testsuite/ld-mips-elf/mips-elf.exp: Run the new test. commit 279a558a4d0fad268738ec916628c9c12cfcaf5b Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Feb 28 00:00:25 2017 +0000 Automatic date update in version.in commit 9dfd0db952fc07dccebbc244df2a20a6eda14b2c Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Mon Feb 27 23:22:53 2017 +0100 Fix compilation with GCC 4.4.7. binutils/ 2017-02-27 Jan Kratochvil <jan.kratochvil@redhat.com> Fix compilation with GCC 4.4.7. * dwarf.c (display_loclists_list, display_debug_rnglists_list): Initialize begin and end. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 5 + bfd/ChangeLog | 163 +++ bfd/bfd-in2.h | 5 +- bfd/elf-bfd.h | 6 +- bfd/elf-eh-frame.c | 83 +- bfd/elf.c | 13 +- bfd/elf32-arm.c | 2 +- bfd/elf32-cris.c | 2 +- bfd/elf32-hppa.c | 2 +- bfd/elf32-i386.c | 2 +- bfd/elf32-metag.c | 2 +- bfd/elf32-microblaze.c | 2 +- bfd/elf32-nios2.c | 156 +-- bfd/elf32-or1k.c | 2 +- bfd/elf32-ppc.c | 116 ++- bfd/elf32-s390.c | 2 +- bfd/elf32-tic6x.c | 2 +- bfd/elf32-tilepro.c | 2 +- bfd/elf64-ppc.c | 123 ++- bfd/elf64-s390.c | 2 +- bfd/elf64-x86-64.c | 2 +- bfd/elflink.c | 9 +- bfd/elfnn-aarch64.c | 47 +- bfd/elfnn-riscv.c | 2 +- bfd/elfxx-aarch64.c | 8 +- bfd/elfxx-mips.c | 10 +- bfd/elfxx-sparc.c | 2 +- bfd/elfxx-tilegx.c | 2 +- bfd/libbfd.h | 5 +- bfd/reloc.c | 6 +- bfd/rs6000-core.c | 4 +- bfd/version.h | 2 +- binutils/ChangeLog | 155 ++- binutils/NEWS | 6 + binutils/config.in | 4 + binutils/configure | 10 + binutils/configure.ac | 2 +- binutils/dlltool.c | 20 +- binutils/doc/binutils.texi | 18 +- binutils/dwarf.c | 11 +- binutils/dwarf.h | 2 + binutils/objcopy.c | 397 +++++- binutils/objdump.c | 98 +- binutils/readelf.c | 722 +++++++++- binutils/testsuite/binutils-all/i386/pr21231a.d | 9 + binutils/testsuite/binutils-all/i386/pr21231a.s | 14 + binutils/testsuite/binutils-all/i386/pr21231b.d | 12 + binutils/testsuite/binutils-all/i386/pr21231b.s | 35 + binutils/testsuite/binutils-all/note-2-32.d | 17 + binutils/testsuite/binutils-all/note-2-32.s | 95 ++ binutils/testsuite/binutils-all/note-2-64.d | 17 + binutils/testsuite/binutils-all/note-2-64.s | 97 ++ binutils/testsuite/binutils-all/objcopy.exp | 5 + binutils/testsuite/binutils-all/x86-64/pr21231a.d | 9 + binutils/testsuite/binutils-all/x86-64/pr21231a.s | 14 + binutils/testsuite/binutils-all/x86-64/pr21231b.d | 12 + binutils/testsuite/binutils-all/x86-64/pr21231b.s | 35 + config.guess | 16 +- config.sub | 14 +- cpu/ChangeLog | 4 + cpu/or1kcommon.cpu | 5 + gas/ChangeLog | 274 ++++ gas/config/tc-aarch64.c | 12 +- gas/config/tc-arc.c | 18 +- gas/config/tc-arm.c | 7 +- gas/config/tc-i386.c | 160 ++- gas/config/tc-nios2.h | 8 + gas/config/tc-ppc.c | 126 +-- gas/config/tc-ppc.h | 16 + gas/config/tc-riscv.c | 32 +- gas/config/tc-riscv.h | 3 + gas/config/tc-s390.c | 6 +- gas/config/tc-xtensa.c | 20 +- gas/doc/as.texinfo | 47 + gas/doc/c-aarch64.texi | 2 + gas/doc/c-arm.texi | 6 +- gas/doc/c-i386.texi | 30 +- gas/dw2gencfi.c | 81 +- gas/dwarf2dbg.c | 65 +- gas/testsuite/gas/aarch64/dwarf.d | 7 +- gas/testsuite/gas/aarch64/tls.d | 4 +- gas/testsuite/gas/all/gas.exp | 28 + gas/testsuite/gas/all/org-1.d | 3 + gas/testsuite/gas/all/org-1.l | 2 + gas/testsuite/gas/all/org-1.s | 25 + gas/testsuite/gas/all/org-2.d | 2 + gas/testsuite/gas/all/org-2.l | 2 + gas/testsuite/gas/all/org-2.s | 9 + gas/testsuite/gas/all/org-3.d | 2 + gas/testsuite/gas/all/org-3.l | 2 + gas/testsuite/gas/all/org-3.s | 9 + gas/testsuite/gas/all/org-4.d | 5 + gas/testsuite/gas/all/org-4.s | 9 + gas/testsuite/gas/all/org-5.d | 5 + gas/testsuite/gas/all/org-5.s | 9 + gas/testsuite/gas/all/org-6.d | 5 + gas/testsuite/gas/all/org-6.s | 9 + gas/testsuite/gas/arc/nps400-11.d | 303 +++++ gas/testsuite/gas/arc/nps400-11.s | 308 +++++ gas/testsuite/gas/i386/cet-intel.d | 31 + gas/testsuite/gas/i386/cet.d | 29 + gas/testsuite/gas/i386/cet.s | 25 + gas/testsuite/gas/i386/i386.exp | 6 + gas/testsuite/gas/i386/ilp32/x86-64-avx-intel.d | 88 +- gas/testsuite/gas/i386/ilp32/x86-64-avx.d | 96 +- gas/testsuite/gas/i386/ilp32/x86-64-sse2avx.d | 12 +- gas/testsuite/gas/i386/ilp32/x86-64-sse4_2-intel.d | 4 + gas/testsuite/gas/i386/ilp32/x86-64-sse4_2.d | 12 +- gas/testsuite/gas/i386/pseudos.d | 66 + gas/testsuite/gas/i386/pseudos.s | 62 + gas/testsuite/gas/i386/x86-64-avx-intel.d | 88 +- gas/testsuite/gas/i386/x86-64-avx.d | 96 +- gas/testsuite/gas/i386/x86-64-avx.s | 4 + gas/testsuite/gas/i386/x86-64-cet-intel.d | 38 + gas/testsuite/gas/i386/x86-64-cet.d | 37 + gas/testsuite/gas/i386/x86-64-cet.s | 33 + gas/testsuite/gas/i386/x86-64-mpx-inval-2.l | 8 +- gas/testsuite/gas/i386/x86-64-mpx-inval-2.s | 3 + gas/testsuite/gas/i386/x86-64-pseudos.d | 66 + gas/testsuite/gas/i386/x86-64-pseudos.s | 62 + gas/testsuite/gas/i386/x86-64-sse2avx.d | 12 +- gas/testsuite/gas/i386/x86-64-sse2avx.s | 4 + gas/testsuite/gas/i386/x86-64-sse4_2-intel.d | 4 + gas/testsuite/gas/i386/x86-64-sse4_2.d | 12 +- gas/testsuite/gas/i386/x86-64-sse4_2.s | 4 + gas/testsuite/gas/mips/jalr4-n64.d | 21 +- gas/testsuite/gas/mips/jalr4.d | 15 +- gas/testsuite/gas/mips/jalr4.s | 6 + gas/testsuite/gas/mips/mips.exp | 13 + gas/testsuite/gas/mips/mipsr6@jalr4-n32.d | 5 + gas/testsuite/gas/mips/mipsr6@jalr4-n64.d | 57 + gas/testsuite/gas/mips/mipsr6@jalr4.d | 39 + gas/testsuite/gas/mips/org-1.d | 7 + gas/testsuite/gas/mips/org-1.l | 2 + gas/testsuite/gas/mips/org-1.s | 9 + gas/testsuite/gas/mips/org-10.d | 7 + gas/testsuite/gas/mips/org-10.l | 2 + gas/testsuite/gas/mips/org-10.s | 11 + gas/testsuite/gas/mips/org-11.d | 6 + gas/testsuite/gas/mips/org-11.s | 13 + gas/testsuite/gas/mips/org-12.d | 5 + gas/testsuite/gas/mips/org-12.s | 13 + gas/testsuite/gas/mips/org-2.d | 6 + gas/testsuite/gas/mips/org-2.s | 11 + gas/testsuite/gas/mips/org-3.d | 5 + gas/testsuite/gas/mips/org-3.s | 11 + gas/testsuite/gas/mips/org-4.d | 3 + gas/testsuite/gas/mips/org-4.l | 3 + gas/testsuite/gas/mips/org-4.s | 11 + gas/testsuite/gas/mips/org-5.d | 3 + gas/testsuite/gas/mips/org-5.l | 2 + gas/testsuite/gas/mips/org-5.s | 13 + gas/testsuite/gas/mips/org-6.d | 2 + gas/testsuite/gas/mips/org-6.l | 2 + gas/testsuite/gas/mips/org-6.s | 13 + gas/testsuite/gas/mips/org-7.d | 6 + gas/testsuite/gas/mips/org-7.s | 11 + gas/testsuite/gas/mips/org-8.d | 6 + gas/testsuite/gas/mips/org-8.s | 13 + gas/testsuite/gas/mips/org-9.d | 5 + gas/testsuite/gas/mips/org-9.s | 13 + gas/testsuite/gas/ppc/altivec2.d | 4 +- gas/testsuite/gas/ppc/power9.d | 5 +- gas/testsuite/gas/ppc/power9.s | 1 + gas/write.c | 9 +- gdb/ChangeLog | 731 ++++++++++- gdb/Makefile.in | 4 +- gdb/NEWS | 17 + gdb/aarch64-linux-nat.c | 8 +- gdb/aarch64-tdep.c | 9 +- gdb/ada-lang.c | 2 +- gdb/ada-valprint.c | 3 + gdb/aix-thread.c | 14 +- gdb/alpha-bsd-nat.c | 12 +- gdb/amd64-linux-nat.c | 8 +- gdb/amd64-tdep.c | 9 +- gdb/amd64-windows-tdep.c | 1 + gdb/arm-linux-nat.c | 16 +- gdb/arm-nbsd-nat.c | 20 +- gdb/arm-tdep.c | 465 +++++-- gdb/ax-gdb.c | 2 + gdb/bsd-uthread.c | 20 +- gdb/c-exp.y | 6 +- gdb/c-typeprint.c | 22 +- gdb/c-valprint.c | 14 +- gdb/c-varobj.c | 10 +- gdb/common/environ.c | 182 +++ gdb/{ => common}/environ.h | 0 gdb/common/gdb_unlinker.h | 2 +- gdb/compile/compile-c-symbols.c | 2 +- gdb/completer.c | 3 +- gdb/config/powerpc/ppc64-linux.mh | 6 - gdb/corelow.c | 11 +- gdb/cp-name-parser.y | 22 +- gdb/cp-support.c | 3 +- gdb/darwin-nat-info.c | 2 +- gdb/disasm.c | 179 +++ gdb/disasm.h | 8 + gdb/doc/ChangeLog | 31 + gdb/doc/gdb.texinfo | 90 ++- gdb/doc/guile.texi | 2 +- gdb/doc/python.texi | 11 +- gdb/dwarf2loc.c | 103 +- gdb/dwarf2loc.h | 3 + gdb/dwarf2read.c | 40 +- gdb/environ.c | 182 --- gdb/eval.c | 16 +- gdb/f-exp.y | 2 +- gdb/f-typeprint.c | 6 +- gdb/findvar.c | 6 +- gdb/gdbarch.c | 52 + gdb/gdbarch.h | 9 + gdb/gdbarch.sh | 13 + gdb/gdbserver/ChangeLog | 238 ++++ gdb/gdbserver/Makefile.in | 532 +------- gdb/gdbtypes.c | 105 ++- gdb/gdbtypes.h | 20 +- gdb/guile/guile-internal.h | 2 + gdb/guile/scm-lazy-string.c | 119 ++- gdb/guile/scm-type.c | 15 +- gdb/guile/scm-value.c | 67 +- gdb/hppa-linux-nat.c | 15 +- gdb/hppa-nbsd-nat.c | 22 +- gdb/hppa-obsd-nat.c | 20 +- gdb/hppa-tdep.c | 1 + gdb/i386-bsd-nat.c | 37 +- gdb/i386-darwin-nat.c | 4 +- gdb/i386-gnu-nat.c | 12 +- gdb/i386-linux-nat.c | 29 +- gdb/i386-tdep.c | 7 + gdb/i387-tdep.c | 17 + gdb/i387-tdep.h | 4 + gdb/ia64-linux-nat.c | 20 +- gdb/inf-ptrace.c | 162 +-- gdb/infcall.c | 5 +- gdb/infcmd.c | 2 +- gdb/infrun.c | 196 ++-- gdb/language.c | 3 +- gdb/linespec.c | 8 + gdb/linux-nat.c | 45 +- gdb/m32c-tdep.c | 8 +- gdb/m32r-linux-nat.c | 14 +- gdb/m68k-bsd-nat.c | 22 +- gdb/m68k-linux-nat.c | 32 +- gdb/m88k-bsd-nat.c | 6 +- gdb/m88k-tdep.c | 1 + gdb/mi/mi-cmd-file.c | 57 + gdb/mi/mi-cmds.c | 2 + gdb/mi/mi-cmds.h | 1 + gdb/mi/mi-interp.c | 36 +- gdb/mi/mi-interp.h | 27 + gdb/mips-fbsd-nat.c | 22 +- gdb/mips-linux-nat.c | 9 +- gdb/mips-nbsd-nat.c | 22 +- gdb/mips64-obsd-nat.c | 11 +- gdb/mn10300-tdep.c | 1 + gdb/msp430-tdep.c | 2 +- gdb/nto-procfs.c | 7 +- gdb/parse.c | 41 +- gdb/parser-defs.h | 3 +- gdb/ppc-fbsd-nat.c | 20 +- gdb/ppc-linux-nat.c | 15 +- gdb/ppc-nbsd-nat.c | 20 +- gdb/ppc-obsd-nat.c | 20 +- gdb/ppc-sysv-tdep.c | 7 +- gdb/printcmd.c | 2 +- gdb/procfs.c | 14 +- gdb/python/lib/gdb/command/explore.py | 2 +- gdb/python/lib/gdb/printer/bound_registers.py | 7 + gdb/python/lib/gdb/types.py | 4 +- gdb/python/py-lazy-string.c | 117 ++- gdb/python/py-record-btrace.c | 5 + gdb/python/py-type.c | 14 +- gdb/python/py-value.c | 113 ++- gdb/python/py-xmethods.c | 10 +- gdb/ravenscar-thread.c | 15 +- gdb/record-btrace.c | 6 +- gdb/regcache.c | 10 + gdb/regcache.h | 4 + gdb/remote-sim.c | 6 +- gdb/remote.c | 16 +- gdb/rs6000-nat.c | 18 +- gdb/rs6000-tdep.c | 7 + gdb/s390-linux-nat.c | 5 +- gdb/s390-linux-tdep.c | 64 +- gdb/ser-base.c | 14 +- gdb/ser-mingw.c | 2 - gdb/ser-unix.c | 152 +-- gdb/serial.h | 5 - gdb/sh-nbsd-nat.c | 10 +- gdb/sol-thread.c | 14 +- gdb/solib-frv.c | 2 +- gdb/solib-svr4.c | 6 +- gdb/solib.c | 47 +- gdb/solib.h | 23 +- gdb/solist.h | 10 +- gdb/sparc-nat.c | 12 +- gdb/sparc-tdep.c | 1 + gdb/sparc-tdep.h | 1 + gdb/sparc64-tdep.c | 48 +- gdb/spu-linux-nat.c | 10 + gdb/spu-multiarch.c | 10 + gdb/spu-tdep.c | 1 + gdb/stabsread.c | 3 +- gdb/symtab.c | 3 +- gdb/target.c | 4 + gdb/testsuite/ChangeLog | 204 +++ .../gdb.arch/amd64-entry-value-param-dwarf5.exp | 24 +- gdb/testsuite/gdb.arch/amd64-entry-value-param.exp | 24 +- .../gdb.arch/arm-disassembler-options.exp | 56 + gdb/testsuite/gdb.arch/i386-mpx-call.c | 131 ++ gdb/testsuite/gdb.arch/i386-mpx-call.exp | 387 ++++++ gdb/testsuite/gdb.arch/i386-pkru.exp | 3 + gdb/testsuite/gdb.arch/powerpc-altivec.exp | 261 ++++ gdb/testsuite/gdb.arch/powerpc-altivec.s | 217 +++ gdb/testsuite/gdb.arch/powerpc-altivec2.exp | 178 +++ gdb/testsuite/gdb.arch/powerpc-altivec2.s | 135 ++ gdb/testsuite/gdb.arch/powerpc-altivec3.exp | 131 ++ gdb/testsuite/gdb.arch/powerpc-altivec3.s | 88 ++ .../gdb.arch/powerpc-disassembler-options.exp | 56 + gdb/testsuite/gdb.arch/powerpc-power.exp | 1429 -------------------- gdb/testsuite/gdb.arch/powerpc-power.s | 1389 ------------------- gdb/testsuite/gdb.arch/powerpc-power7.exp | 164 +++ gdb/testsuite/gdb.arch/powerpc-power7.s | 121 ++ gdb/testsuite/gdb.arch/powerpc-power8.exp | 248 ++++ gdb/testsuite/gdb.arch/powerpc-power8.s | 205 +++ gdb/testsuite/gdb.arch/powerpc-power9.exp | 445 ++++++ gdb/testsuite/gdb.arch/powerpc-power9.s | 402 ++++++ gdb/testsuite/gdb.arch/powerpc-vsx.exp | 225 +++ gdb/testsuite/gdb.arch/powerpc-vsx.s | 182 +++ gdb/testsuite/gdb.arch/powerpc-vsx2.exp | 118 ++ gdb/testsuite/gdb.arch/powerpc-vsx2.s | 75 + gdb/testsuite/gdb.arch/powerpc-vsx3.exp | 184 +++ gdb/testsuite/gdb.arch/powerpc-vsx3.s | 141 ++ .../gdb.arch/s390-disassembler-options.exp | 56 + gdb/testsuite/gdb.arch/sparc64-regs.S | 136 ++ gdb/testsuite/gdb.arch/sparc64-regs.exp | 118 ++ gdb/testsuite/gdb.base/break-fun-addr.exp | 4 +- gdb/testsuite/gdb.base/commands.exp | 40 + gdb/testsuite/gdb.base/completion.exp | 37 - gdb/testsuite/gdb.base/examine-backward.c | 8 + gdb/testsuite/gdb.base/step-over-exit.exp | 3 +- gdb/testsuite/gdb.base/tui-layout.exp | 40 - gdb/testsuite/gdb.btrace/gcore.exp | 3 +- gdb/testsuite/gdb.cp/demangle.exp | 42 +- gdb/testsuite/gdb.cp/m-static.exp | 4 +- gdb/testsuite/gdb.cp/rvalue-ref-casts.cc | 75 + gdb/testsuite/gdb.cp/rvalue-ref-casts.exp | 77 ++ gdb/testsuite/gdb.cp/rvalue-ref-overload.cc | 86 ++ gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 69 + gdb/testsuite/gdb.cp/rvalue-ref-params.cc | 83 ++ gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 69 + gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc | 75 + gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp | 43 + gdb/testsuite/gdb.cp/rvalue-ref-types.cc | 79 ++ gdb/testsuite/gdb.cp/rvalue-ref-types.exp | 128 ++ gdb/testsuite/gdb.cp/templates.exp | 24 +- gdb/testsuite/gdb.disasm/disassembler-options.exp | 34 + gdb/testsuite/gdb.dwarf2/nonvar-access.exp | 28 +- gdb/testsuite/gdb.guile/scm-lazy-string.c | 29 + gdb/testsuite/gdb.guile/scm-lazy-string.exp | 82 ++ gdb/testsuite/gdb.guile/scm-value.c | 2 - gdb/testsuite/gdb.guile/scm-value.exp | 31 - gdb/testsuite/gdb.mi/mi-solib.exp | 49 +- gdb/testsuite/gdb.python/py-completion.exp | 6 +- gdb/testsuite/gdb.python/py-lazy-string.c | 5 + gdb/testsuite/gdb.python/py-lazy-string.exp | 42 +- gdb/testsuite/gdb.python/py-record-btrace.exp | 6 +- gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc | 59 + .../gdb.python/py-rvalue-ref-value-cc.exp | 57 + gdb/testsuite/gdb.python/py-value.c | 2 - gdb/testsuite/gdb.python/py-value.exp | 24 - .../attach-many-short-lived-threads.exp | 8 +- .../gdb.threads/interrupt-while-step-over.c | 75 + .../gdb.threads/interrupt-while-step-over.exp | 204 +++ .../signal-while-stepping-over-bp-other-thread.exp | 1 - gdb/testsuite/gdb.tui/completion.exp | 58 + .../tui-disasm-long-lines.c} | 0 gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp | 43 + gdb/testsuite/gdb.tui/tui-layout.c | 22 + gdb/testsuite/gdb.tui/tui-layout.exp | 56 + gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp | 57 + gdb/testsuite/lib/dwarf.exp | 3 +- gdb/testsuite/lib/gdb.exp | 60 +- gdb/testsuite/lib/mi-support.exp | 2 +- gdb/tilegx-linux-nat.c | 13 +- gdb/top.c | 10 +- gdb/tui/tui-file.c | 10 + gdb/tui/tui-file.h | 3 +- gdb/tui/tui-io.c | 114 +- gdb/tui/tui-io.h | 4 + gdb/tui/tui-regs.c | 1 - gdb/typeprint.c | 4 +- gdb/ui-out.c | 4 + gdb/valarith.c | 6 +- gdb/valops.c | 70 +- gdb/valprint.c | 8 +- gdb/value.c | 12 +- gdb/value.h | 2 +- gdb/varobj.c | 2 +- gdb/vax-bsd-nat.c | 11 +- gdb/windows-nat.c | 52 +- gdb/xtensa-linux-nat.c | 10 +- gold/ChangeLog | 57 + gold/mips.cc | 579 +++++--- include/ChangeLog | 115 ++ include/demangle.h | 9 +- include/dis-asm.h | 41 +- include/dwarf2.def | 3 + include/elf/aarch64.h | 4 +- include/elf/common.h | 87 +- include/elf/ppc.h | 6 +- include/elf/ppc64.h | 6 +- include/opcode/arc.h | 1 + include/opcode/s390.h | 3 +- ld/ChangeLog | 148 ++ ld/NEWS | 6 + ld/emulparams/elf32ppccommon.sh | 10 +- ld/emultempl/elf32.em | 153 ++- ld/ld.texinfo | 29 +- ld/ldlang.c | 72 +- ld/pe-dll.c | 55 +- ld/scripttempl/avrtiny.sc | 10 +- ld/testsuite/ld-aarch64/ifunc-5r-local.d | 4 +- ld/testsuite/ld-alpha/tlsbin.dd | 10 +- ld/testsuite/ld-alpha/tlsbin.td | 12 +- ld/testsuite/ld-alpha/tlsbinr.dd | 2 +- ld/testsuite/ld-alpha/tlspic.dd | 10 +- ld/testsuite/ld-alpha/tlspic.rd | 2 +- ld/testsuite/ld-alpha/tlspic.sd | 14 +- ld/testsuite/ld-alpha/tlspic.td | 12 +- ld/testsuite/ld-checks/checks.exp | 16 + ld/testsuite/ld-checks/over.d | 4 + ld/testsuite/ld-checks/over.s | 7 + ld/testsuite/ld-checks/over2.d | 8 + ld/testsuite/ld-checks/over2.s | 4 + ld/testsuite/ld-elf/eh3.d | 12 +- ld/testsuite/ld-elf/eh6.d | 2 +- ld/testsuite/ld-elf/merge.d | 2 +- ld/testsuite/ld-elf/orphan-10.d | 10 + ld/testsuite/ld-elf/orphan-10.s | 8 + ld/testsuite/ld-elf/orphan-9.d | 12 + ld/testsuite/ld-elf/orphan-9.ld | 32 + ld/testsuite/ld-elf/orphan-9.s | 11 + ld/testsuite/ld-elf/sec64k.exp | 6 +- ld/testsuite/ld-elf/shared.exp | 10 +- ld/testsuite/ld-mips-elf/eh-frame1-n64.d | 76 +- ld/testsuite/ld-mips-elf/eh-frame2-n64.d | 84 +- ld/testsuite/ld-mips-elf/eh-frame3.d | 46 +- ld/testsuite/ld-mips-elf/jalr4-r6.dd | 25 + ld/testsuite/ld-mips-elf/jalr4.dd | 10 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 11 + ld/testsuite/ld-powerpc/addpcis.d | 8 +- ld/testsuite/ld-x86-64/pr20830a.d | 6 +- ld/testsuite/ld-x86-64/pr21038a.d | 6 +- ld/testsuite/ld-x86-64/pr21038b.d | 6 +- ld/testsuite/ld-x86-64/pr21038c.d | 6 +- ld/testsuite/lib/ld-lib.exp | 1 + libiberty/ChangeLog | 87 +- libiberty/cp-demangle.c | 87 +- libiberty/cp-demint.c | 3 + libiberty/testsuite/demangle-expected | 54 + opcodes/ChangeLog | 161 +++ opcodes/arc-nps400-tbl.h | 191 +++ opcodes/arc-opc.c | 82 ++- opcodes/arm-dis.c | 169 +-- opcodes/disassemble.c | 70 + opcodes/i386-dis.c | 145 ++- opcodes/i386-gen.c | 5 +- opcodes/i386-init.h | 119 +- opcodes/i386-opc.h | 12 +- opcodes/i386-opc.tbl | 183 ++- opcodes/i386-tbl.h | 923 +++++++++---- opcodes/po/opcodes.pot | 199 ++-- opcodes/ppc-dis.c | 63 +- opcodes/ppc-opc.c | 226 +++- opcodes/riscv-opc.c | 16 +- opcodes/s390-dis.c | 72 +- opcodes/s390-mkopc.c | 4 - opcodes/s390-opc.txt | 284 ++-- sim/aarch64/ChangeLog | 6 + sim/aarch64/simulator.c | 19 +- sim/testsuite/sim/aarch64/ChangeLog | 5 + sim/testsuite/sim/aarch64/sumov.s | 12 +- sim/testsuite/sim/aarch64/sumulh.s | 56 + 485 files changed, 18562 insertions(+), 7390 deletions(-) create mode 100644 binutils/testsuite/binutils-all/i386/pr21231a.d create mode 100644 binutils/testsuite/binutils-all/i386/pr21231a.s create mode 100644 binutils/testsuite/binutils-all/i386/pr21231b.d create mode 100644 binutils/testsuite/binutils-all/i386/pr21231b.s create mode 100644 binutils/testsuite/binutils-all/note-2-32.d create mode 100644 binutils/testsuite/binutils-all/note-2-32.s create mode 100644 binutils/testsuite/binutils-all/note-2-64.d create mode 100644 binutils/testsuite/binutils-all/note-2-64.s create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231a.d create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231a.s create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231b.d create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231b.s create mode 100644 gas/testsuite/gas/all/org-1.d create mode 100644 gas/testsuite/gas/all/org-1.l create mode 100644 gas/testsuite/gas/all/org-1.s create mode 100644 gas/testsuite/gas/all/org-2.d create mode 100644 gas/testsuite/gas/all/org-2.l create mode 100644 gas/testsuite/gas/all/org-2.s create mode 100644 gas/testsuite/gas/all/org-3.d create mode 100644 gas/testsuite/gas/all/org-3.l create mode 100644 gas/testsuite/gas/all/org-3.s create mode 100644 gas/testsuite/gas/all/org-4.d create mode 100644 gas/testsuite/gas/all/org-4.s create mode 100644 gas/testsuite/gas/all/org-5.d create mode 100644 gas/testsuite/gas/all/org-5.s create mode 100644 gas/testsuite/gas/all/org-6.d create mode 100644 gas/testsuite/gas/all/org-6.s create mode 100644 gas/testsuite/gas/arc/nps400-11.d create mode 100644 gas/testsuite/gas/arc/nps400-11.s create mode 100644 gas/testsuite/gas/i386/cet-intel.d create mode 100644 gas/testsuite/gas/i386/cet.d create mode 100644 gas/testsuite/gas/i386/cet.s create mode 100644 gas/testsuite/gas/i386/pseudos.d create mode 100644 gas/testsuite/gas/i386/pseudos.s create mode 100644 gas/testsuite/gas/i386/x86-64-cet-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-cet.d create mode 100644 gas/testsuite/gas/i386/x86-64-cet.s create mode 100644 gas/testsuite/gas/i386/x86-64-pseudos.d create mode 100644 gas/testsuite/gas/i386/x86-64-pseudos.s create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4-n32.d create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4-n64.d create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4.d create mode 100644 gas/testsuite/gas/mips/org-1.d create mode 100644 gas/testsuite/gas/mips/org-1.l create mode 100644 gas/testsuite/gas/mips/org-1.s create mode 100644 gas/testsuite/gas/mips/org-10.d create mode 100644 gas/testsuite/gas/mips/org-10.l create mode 100644 gas/testsuite/gas/mips/org-10.s create mode 100644 gas/testsuite/gas/mips/org-11.d create mode 100644 gas/testsuite/gas/mips/org-11.s create mode 100644 gas/testsuite/gas/mips/org-12.d create mode 100644 gas/testsuite/gas/mips/org-12.s create mode 100644 gas/testsuite/gas/mips/org-2.d create mode 100644 gas/testsuite/gas/mips/org-2.s create mode 100644 gas/testsuite/gas/mips/org-3.d create mode 100644 gas/testsuite/gas/mips/org-3.s create mode 100644 gas/testsuite/gas/mips/org-4.d create mode 100644 gas/testsuite/gas/mips/org-4.l create mode 100644 gas/testsuite/gas/mips/org-4.s create mode 100644 gas/testsuite/gas/mips/org-5.d create mode 100644 gas/testsuite/gas/mips/org-5.l create mode 100644 gas/testsuite/gas/mips/org-5.s create mode 100644 gas/testsuite/gas/mips/org-6.d create mode 100644 gas/testsuite/gas/mips/org-6.l create mode 100644 gas/testsuite/gas/mips/org-6.s create mode 100644 gas/testsuite/gas/mips/org-7.d create mode 100644 gas/testsuite/gas/mips/org-7.s create mode 100644 gas/testsuite/gas/mips/org-8.d create mode 100644 gas/testsuite/gas/mips/org-8.s create mode 100644 gas/testsuite/gas/mips/org-9.d create mode 100644 gas/testsuite/gas/mips/org-9.s create mode 100644 gdb/common/environ.c rename gdb/{ => common}/environ.h (100%) delete mode 100644 gdb/environ.c create mode 100644 gdb/mi/mi-interp.h create mode 100644 gdb/testsuite/gdb.arch/arm-disassembler-options.exp create mode 100644 gdb/testsuite/gdb.arch/i386-mpx-call.c create mode 100644 gdb/testsuite/gdb.arch/i386-mpx-call.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec2.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec2.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec3.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec3.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp delete mode 100644 gdb/testsuite/gdb.arch/powerpc-power.exp delete mode 100644 gdb/testsuite/gdb.arch/powerpc-power.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-power8.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-power8.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-power9.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-power9.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx2.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx2.s create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx3.exp create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx3.s create mode 100644 gdb/testsuite/gdb.arch/s390-disassembler-options.exp create mode 100644 gdb/testsuite/gdb.arch/sparc64-regs.S create mode 100644 gdb/testsuite/gdb.arch/sparc64-regs.exp delete mode 100644 gdb/testsuite/gdb.base/tui-layout.exp create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.cc create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.exp create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.cc create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.exp create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.cc create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.exp create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.cc create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.exp create mode 100644 gdb/testsuite/gdb.disasm/disassembler-options.exp create mode 100644 gdb/testsuite/gdb.guile/scm-lazy-string.c create mode 100644 gdb/testsuite/gdb.guile/scm-lazy-string.exp create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp create mode 100644 gdb/testsuite/gdb.threads/interrupt-while-step-over.c create mode 100644 gdb/testsuite/gdb.threads/interrupt-while-step-over.exp create mode 100644 gdb/testsuite/gdb.tui/completion.exp rename gdb/testsuite/{gdb.base/tui-layout.c => gdb.tui/tui-disasm-long-lines.c} (100%) create mode 100644 gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp create mode 100644 gdb/testsuite/gdb.tui/tui-layout.c create mode 100644 gdb/testsuite/gdb.tui/tui-layout.exp create mode 100644 gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp create mode 100644 ld/testsuite/ld-checks/over.d create mode 100644 ld/testsuite/ld-checks/over.s create mode 100644 ld/testsuite/ld-checks/over2.d create mode 100644 ld/testsuite/ld-checks/over2.s create mode 100644 ld/testsuite/ld-elf/orphan-10.d create mode 100644 ld/testsuite/ld-elf/orphan-10.s create mode 100644 ld/testsuite/ld-elf/orphan-9.d create mode 100644 ld/testsuite/ld-elf/orphan-9.ld create mode 100644 ld/testsuite/ld-elf/orphan-9.s create mode 100644 ld/testsuite/ld-mips-elf/jalr4-r6.dd create mode 100644 sim/testsuite/sim/aarch64/sumulh.s First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index c9a95fe..8565325 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-03-22 Nick Clifton <nickc@redhat.com> + + * config.sub: Sync with master version in config project. + * config.guess: Likewise. + 2017-01-23 Nick Clifton <nickc@redhat.com> * configure.ac: Update year in copyright notice. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0f8d9ee..50e76c2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,166 @@ +2017-03-20 Alan Modra <amodra@gmail.com> + + PR 21266 + * elf64-ppc.c (compare_symbols): Stabilize sort. + +2017-03-18 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (struct ppc_link_hash_table): Add + local_ifunc_resolver and maybe_local_ifunc_resolver. + (ppc_build_one_stub): Set flags on emitting dynamic + relocation to ifunc. + (ppc64_elf_relocate_section): Likewise. + (ppc64_elf_finish_dynamic_symbol): Likewise. + (ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with + local dynamic relocs to ifuncs. + * elf32-ppc.c (struct ppc_elf_link_hash_table): Add + local_ifunc_resolver and maybe_local_ifunc_resolver. + (ppc_elf_relocate_section): Set flag on emitting dynamic + relocation to ifuncs. + (ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local + dynamic relocs to ifuncs. + +2017-03-13 Nick Clifton <nickc@redhat.com> + + PR binutils/21202 + * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to + BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. + (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to + BFD_RELOC_AARCH64_TLSDESC_ADD_LO12. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc + names. + (IS_AARCH64_TLSDESC_RELOC): Likewise. + (elfNN_aarch64_howto_table): Likewise. + (aarch64_tls_transition_without_check): Likewise. + (aarch64_reloc_got_type): Likewise. + (elfNN_aarch64_final_link_relocate): Likewise. + (elfNN_aarch64_tls_relax): Likewise. + (elfNN_aarch64_relocate_section): Likewise. + (elfNN_aarch64_gc_sweep_hook): Likewise. + (elfNN_aarch64_check_relocs): Likewise. + * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise. + (_bfd_aarch64_elf_resolve_relocation): Likewise. + +2017-03-11 Alan Modra <amodra@gmail.com> + + * elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function + parameter is in fact used. Whitespace fixes. + * elf64-ppc.c: Likewise. + +2017-03-09 Sam Thursfield <sam.thursfield@codethink.co.uk> + + * rs6000-core.c (CORE_NEW): Simplify macro when + AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning. + +2017-03-07 Alan Modra <amodra@gmail.com> + + PR 21224 + PR 20519 + * elf64-ppc.c (ppc64_elf_relocate_section): Add missing + dyn_relocs check. + +2017-03-05 Alan Modra <amodra@gmail.com> + + * elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8. + * elf-eh-frame.c (size_of_output_cie_fde): Don't align here. + (next_cie_fde_offset): New function. + (_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8. + (_bfd_elf_discard_section_eh_frame): Align zero terminator to + four bytes. Align CIEs to four or eight bytes depending on + per_encoding_aligned8. Align FDEs according to their encoding. + Pad last FDE to output section alignment. + (_bfd_elf_write_section_eh_frame): Adjust to suit. Remove + assertion. + * elf64-ppc.c (glink_eh_frame_cie): Delete padding. + (ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c. + (ppc64_elf_finish_dynamic_sections): Adjust to suit. + +2017-03-02 Martin Bickel <binutils@ineranves.de> + + PR ld/21212 + * elf.c (rewrite_elf_program_header): Do not issue a warning for + empty segments which have a zero filesz, but a non-zero memsz. + +2017-03-02 Alan Modra <amodra@gmail.com> + + * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo. + +2017-02-28 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change. + (ppc64_elf_relocate_section): Likewise. + +2017-02-28 Alan Modra <amodra@gmail.com> + + PR 20995 + * elf32-nios2.c (nios2_elf32_relocate_section): Use htab + rather than elf32_nios2_hash_table or elf_hash_table. + (create_got_section): Likewise. + (nios2_elf32_finish_dynamic_symbol): Likewise. + (nios2_elf32_adjust_dynamic_symbol): Likewise. + (nios2_elf32_size_dynamic_sections): Likewise. + (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot + vars. Use htab equivalents directly instead. Don't create + all dynamic sections on needing just the GOT. Use a goto + rather than a fall-through with reloc test. Ensure + htab->dynobj is set when making dynamic sreloc section. + (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab + equivalent directly instead. Don't segfault on looking for + .dynamic when dynamic sections have not been created. Don't + segfault on .got.plt being discarded. + (nios2_elf32_size_dynamic_sections): Delete plt and got vars. + Don't set "relocs" on .rela.plt. Do handle .sbss. Delete + fixme and another not so relevant comment. + (nios2_elf_add_symbol_hook): Delete dynobj var. If not + already set, set hash table dynobj on creating .sbss. + +2017-02-28 Alan Modra <amodra@gmail.com> + + * reloc.c (BFD_RELOC_PPC_16DX_HA): New. + * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto. + (ppc64_elf_reloc_type_lookup): Translate new bfd reloc. + (ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA. + (ppc64_elf_relocate_section): Likewise. + * elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto. + (ppc_elf_reloc_type_lookup): Translate new bfd reloc. + (ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2017-02-28 Alan Modra <amodra@gmail.com> + + * elflink.c (_bfd_elf_create_dynamic_sections): Don't make + dynamic .data.rel.ro read-only. + * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section + rather than section flags when deciding where copy reloc goes. + * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise. + * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise. + * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise. + * elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise. + * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise. + * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise. + * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise. + * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise. + * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. + * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise. + * elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise. + * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise. + * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. + * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. + * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise. + * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise. + * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise. + * elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise. + +2017-02-28 Maciej W. Rozycki <macro@imgtec.com> + + * elfxx-mips.c (mips_elf_perform_relocation): Also handle the + `jalr $0, $25' instruction encoding. + 2017-02-27 Nick Clifton <nickc@redhat.com> PR ld/21180 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index f17813a..59403af 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3362,6 +3362,7 @@ instruction. */ BFD_RELOC_PPC_VLE_SDAREL_HI16D, BFD_RELOC_PPC_VLE_SDAREL_HA16A, BFD_RELOC_PPC_VLE_SDAREL_HA16D, + BFD_RELOC_PPC_16DX_HA, BFD_RELOC_PPC_REL16DX_HA, BFD_RELOC_PPC64_HIGHER, BFD_RELOC_PPC64_HIGHER_S, @@ -6155,13 +6156,13 @@ instructions. */ BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21, /* AArch64 TLS DESC relocation. */ - BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC, + BFD_RELOC_AARCH64_TLSDESC_LD64_LO12, /* AArch64 TLS DESC relocation. */ BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC, /* AArch64 TLS DESC relocation. */ - BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC, + BFD_RELOC_AARCH64_TLSDESC_ADD_LO12, /* AArch64 TLS DESC relocation. */ BFD_RELOC_AARCH64_TLSDESC_OFF_G1, diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index f5a8d75..9e3d6f5 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -342,6 +342,10 @@ struct eh_cie_fde make_per_encoding_relative is. */ unsigned int per_encoding_relative : 1; + /* True if the CIE contains personality data aligned to a + multiple of eight bytes. */ + unsigned int per_encoding_aligned8 : 1; + /* True if we need to add an 'R' (FDE encoding) entry to the CIE's augmentation data. */ unsigned int add_fde_encoding : 1; @@ -350,7 +354,7 @@ struct eh_cie_fde unsigned int merged : 1; /* Unused bits. */ - unsigned int pad1 : 18; + unsigned int pad1 : 17; } cie; } u; unsigned int reloc_index; diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 1b03b9b..6967f37 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -309,11 +309,10 @@ extra_augmentation_data_bytes (struct eh_cie_fde *entry) return size; } -/* Return the size that ENTRY will have in the output. ALIGNMENT is the - required alignment of ENTRY in bytes. */ +/* Return the size that ENTRY will have in the output. */ static unsigned int -size_of_output_cie_fde (struct eh_cie_fde *entry, unsigned int alignment) +size_of_output_cie_fde (struct eh_cie_fde *entry) { if (entry->removed) return 0; @@ -321,8 +320,22 @@ size_of_output_cie_fde (struct eh_cie_fde *entry, unsigned int alignment) return 4; return (entry->size + extra_augmentation_string_bytes (entry) - + extra_augmentation_data_bytes (entry) - + alignment - 1) & -alignment; + + extra_augmentation_data_bytes (entry)); +} + +/* Return the offset of the FDE or CIE after ENT. */ + +static unsigned int +next_cie_fde_offset (struct eh_cie_fde *ent, + struct eh_cie_fde *last, + asection *sec) +{ + while (++ent < last) + { + if (!ent->removed) + return ent->new_offset; + } + return sec->size; } /* Assume that the bytes between *ITER and END are CFA instructions. @@ -811,6 +824,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, { length = -(buf - ehbuf) & (per_width - 1); REQUIRE (skip_bytes (&buf, end, length)); + if (per_width == 8) + this_inf->u.cie.per_encoding_aligned8 = 1; } this_inf->u.cie.personality_offset = buf - start; ENSURE_NO_RELOCS (buf); @@ -1326,7 +1341,7 @@ _bfd_elf_discard_section_eh_frame struct eh_cie_fde *ent; struct eh_frame_sec_info *sec_info; struct eh_frame_hdr_info *hdr_info; - unsigned int ptr_size, offset; + unsigned int ptr_size, offset, eh_alignment; if (sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME) return FALSE; @@ -1406,14 +1421,46 @@ _bfd_elf_discard_section_eh_frame sec_info->cies = NULL; } + /* It may be that some .eh_frame input section has greater alignment + than other .eh_frame sections. In that case we run the risk of + padding with zeros before that section, which would be seen as a + zero terminator. Alignment padding must be added *inside* the + last FDE instead. For other FDEs we align according to their + encoding, in order to align FDE address range entries naturally. */ offset = 0; for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent) if (!ent->removed) { + eh_alignment = 4; + if (ent->size == 4) + ; + else if (ent->cie) + { + if (ent->u.cie.per_encoding_aligned8) + eh_alignment = 8; + } + else + { + eh_alignment = get_DW_EH_PE_width (ent->fde_encoding, ptr_size); + if (eh_alignment < 4) + eh_alignment = 4; + } + offset = (offset + eh_alignment - 1) & -eh_alignment; ent->new_offset = offset; - offset += size_of_output_cie_fde (ent, ptr_size); + offset += size_of_output_cie_fde (ent); } + /* Pad the last FDE out to the output section alignment if there are + following sections, in order to ensure no padding between this + section and the next. (Relies on the output section alignment + being the maximum of all input sections alignments, which is the + case unless someone is overriding alignment via scripts.) */ + eh_alignment = 4; + if (sec->map_head.s != NULL + && (sec->map_head.s->size != 4 + || sec->map_head.s->map_head.s != NULL)) + eh_alignment = 1 << sec->output_section->alignment_power; + offset = (offset + eh_alignment - 1) & -eh_alignment; sec->rawsize = sec->size; sec->size = offset; return offset != sec->rawsize; @@ -1732,8 +1779,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, struct elf_link_hash_table *htab; struct eh_frame_hdr_info *hdr_info; unsigned int ptr_size; - struct eh_cie_fde *ent; - bfd_size_type sec_size; + struct eh_cie_fde *ent, *last_ent; if (sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME) /* FIXME: octets_per_byte. */ @@ -1771,7 +1817,8 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, if (!ent->removed && ent->new_offset < ent->offset) memmove (contents + ent->new_offset, contents + ent->offset, ent->size); - for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent) + last_ent = sec_info->entry + sec_info->count; + for (ent = sec_info->entry; ent < last_ent; ++ent) { unsigned char *buf, *end; unsigned int new_size; @@ -1782,13 +1829,13 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, if (ent->size == 4) { /* Any terminating FDE must be at the end of the section. */ - BFD_ASSERT (ent == sec_info->entry + sec_info->count - 1); + BFD_ASSERT (ent == last_ent - 1); continue; } buf = contents + ent->new_offset; end = buf + ent->size; - new_size = size_of_output_cie_fde (ent, ptr_size); + new_size = next_cie_fde_offset (ent, last_ent, sec) - ent->new_offset; /* Update the size. It may be shrinked. */ bfd_put_32 (abfd, new_size - 4, buf); @@ -2059,18 +2106,6 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, } } - /* We don't align the section to its section alignment since the - runtime library only expects all CIE/FDE records aligned at - the pointer size. _bfd_elf_discard_section_eh_frame should - have padded CIE/FDE records to multiple of pointer size with - size_of_output_cie_fde. */ - sec_size = sec->size; - if (sec_info->count != 0 - && sec_info->entry[sec_info->count - 1].size == 4) - sec_size -= 4; - if ((sec_size % ptr_size) != 0) - abort (); - /* FIXME: octets_per_byte. */ return bfd_set_section_contents (abfd, sec->output_section, contents, (file_ptr) sec->output_offset, diff --git a/bfd/elf.c b/bfd/elf.c index 94726ba..9418e51 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -6689,11 +6689,16 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd) /* Special segments, such as the PT_PHDR segment, may contain no sections, but ordinary, loadable segments should contain something. They are allowed by the ELF spec however, so only - a warning is produced. */ - if (segment->p_type == PT_LOAD) + a warning is produced. + There is however the valid use case of embedded systems which + have segments with p_filesz of 0 and a p_memsz > 0 to initialize + flash memory with zeros. No warning is shown for that case. */ + if (segment->p_type == PT_LOAD + && (segment->p_filesz > 0 || segment->p_memsz == 0)) + /* xgettext:c-format */ _bfd_error_handler (_("\ -%B: warning: Empty loadable segment detected, is this intentional ?"), - ibfd); +%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this intentional ?"), + ibfd, segment->p_vaddr); map->count = 0; *pointer_to_map = map; diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 8171b0b..0a78595 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -16311,7 +16311,7 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd, + h->root.u.def.section->output_section->vma + h->root.u.def.section->output_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_COPY); - if ((h->root.u.def.section->flags & SEC_READONLY) != 0) + if (h->root.u.def.section == htab->root.sdynrelro) s = htab->root.sreldynrelro; else s = htab->root.srelbss; diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index a69c7e4..97b8cc3 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -2275,7 +2275,7 @@ elf_cris_finish_dynamic_symbol (bfd *output_bfd, && (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak)); - if ((h->root.u.def.section->flags & SEC_READONLY) != 0) + if (h->root.u.def.section == htab->root.sdynrelro) s = htab->root.sreldynrelro; else s = htab->root.srelbss; diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index d5b911c..1deebf4 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -4432,7 +4432,7 @@ elf32_hppa_finish_dynamic_symbol (bfd *output_bfd, + eh->root.u.def.section->output_section->vma); rela.r_addend = 0; rela.r_info = ELF32_R_INFO (eh->dynindx, R_PARISC_COPY); - if ((eh->root.u.def.section->flags & SEC_READONLY) != 0) + if (eh->root.u.def.section == htab->etab.sdynrelro) sec = htab->etab.sreldynrelro; else sec = htab->etab.srelbss; diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index e6e70d8..2784ef7 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -5666,7 +5666,7 @@ do_glob_dat: + h->root.u.def.section->output_section->vma + h->root.u.def.section->output_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_386_COPY); - if ((h->root.u.def.section->flags & SEC_READONLY) != 0) + if (h->root.u.def.section == htab->elf.sdynrelro) s = htab->elf.sreldynrelro; else s = htab->elf.srelbss; diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c index 40a2baf..c45d719 100644 --- a/bfd/elf32-metag.c +++ b/bfd/elf32-metag.c @@ -3229,7 +3229,7 @@ elf_metag_finish_dynamic_symbol (bfd *output_bfd, + eh->root.u.def.section->output_section->vma); rel.r_addend = 0; rel.r_info = ELF32_R_INFO (eh->dynindx, R_METAG_COPY); - if ((eh->root.u.def.section->flags & SEC_READONLY) != 0) + if (eh->root.u.def.section == htab->etab.sdynrelro) s = htab->etab.sreldynrelro; else s = htab->etab.srelbss; diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index 27118c1..325a0d6 100644 --- a/bfd/elf32-microblaze.c +++ b/bfd/elf32-microblaze.c @@ -3277,7 +3277,7 @@ microblaze_elf_finish_dynamic_symbol (bfd *output_bfd, + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_MICROBLAZE_COPY); rela.r_addend = 0; - if ((h->root.u.def.section->flags & SEC_READONLY) != 0) + if (h->root.u.def.section == htab->elf.sdynrelro) hooks/post-receive -- Repository for Project Archer.
The branch, users/jkratoch/indexcxx has been updated via 828d7c2b97ad76c73c1a718d1bbaf434d045b937 (commit) via 2cad08ea7dbc96103da9957da6973f9d0dbc33a8 (commit) via 55a98976756cb2df83ac8f8e9799331fbcc4f669 (commit) via 8dea77f0254d6a76d71092c922e9409ef1b67df4 (commit) via 4ac40124eef08045bf99ad9f4fcc277961953109 (commit) via 4d5efb852be6554305dfaf17c1e4f07bb9514273 (commit) via c053b65441eb70ac78a514fabc3431b857a30d2e (commit) via f3b8f8ee35bd62a2ae7d21561f5d23f00dad004f (commit) via 80070c0d3491347f11283c5791b9dd040fedbd4f (commit) via 4c7bf4f91b7dd3ccbd12be55316fca8817059a24 (commit) via 1e1a8bef60db2f524c5eb1d27be22cfa9ff82a84 (commit) via 499079343549348e270047ffa2687a8a76523700 (commit) via 6f77053d2ae56f16c10a8817732ed9fb43893507 (commit) via 9c5417255690af00751c7d506172459afe856894 (commit) via ecfb656c37b982479d8eb07f240b434772d98fd6 (commit) via d194f1fe51cb85b8a919b7ee9e3a7715b0ec9744 (commit) via fff8551cf549f4047c9276a836408d802db6ce6d (commit) via 477bdd393c8145ad44899cb4681d57a61c82aad3 (commit) via a91e1603afb6704545793e967a1a3dfe96b389de (commit) via b52920324fabbcad93042f2e17de52696d0dab42 (commit) via 65dd1e590e519eba10bc29fb6e952271e0604c9b (commit) via d62a8ae2dd0fbb6235f4e8f2fb61b83fe4ba1d90 (commit) via ad32986fdf9da1c8748e47b8b45100398223dba8 (commit) via db3a1dc7c9404e203c54576db3335e69d995e83e (commit) via 4c220b4625df0b08cbb22e5c7ca04dc7a629de1b (commit) via c41cf6fdf514fce6b69f8f875b6903b2a3910f89 (commit) via 2f5f29cada3c06c9c26f4da5994951effee7d6f7 (commit) via 2514e33e01890ad28023359b110d1c9c1ad201d4 (commit) via 46bed6796d5821832e8ba373ddb2e7fdc45a109d (commit) via 82156ab704b08b124d319c0decdbd48b3ca2dac5 (commit) via 75ec1fdbb797a389e4fe4aaf2e15358a070dcc19 (commit) via f32ba72991d2406b21ab17edc234a2f3fa7fb23d (commit) via 12bfb8fec326e847f6300874ca656e47ee027f5d (commit) via 450b68da0169dcfa1c36987ec80e2655abb3f8e6 (commit) via 5e6a0e73317915b0685249606538ea739acc3a23 (commit) from 590d37ae8d079e541cf184782899ef84b2b3f569 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 828d7c2b97ad76c73c1a718d1bbaf434d045b937 Merge: 590d37a 2cad08e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Wed Apr 5 18:08:31 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 2cad08ea7dbc96103da9957da6973f9d0dbc33a8 Author: Yao Qi <yao.qi@linaro.org> Date: Wed Apr 5 14:55:43 2017 +0100 Use frame_unwind_register_value in frame_unwind_register_unsigned gdb: 2017-04-05 Yao Qi <yao.qi@linaro.org> * frame.c (frame_unwind_register_unsigned): Call frame_unwind_register_value. commit 55a98976756cb2df83ac8f8e9799331fbcc4f669 Author: Yao Qi <yao.qi@linaro.org> Date: Wed Apr 5 14:46:13 2017 +0100 Fix racy test in gdb.threads/thread-specific-bp.exp I see the following test fail from time to time, due to the racy test in gdb.threads/thread-specific-bp.exp. continue -a^M Continuing.^M ^M Thread 1 "thread-specific" hit Breakpoint 4, end () at binutils-gdb/gdb/testsuite/gdb.threads/thread-specific-bp.c:29^M 29 }^M (gdb) [Thread 0x40322460 (LWP 12950) exited]^M Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M FAIL: gdb.threads/thread-specific-bp.exp: non-stop: continue to end (timeout) This patch changes gdb_test to gdb_test_multiple to match prompt only instead of both prompt and anchor. gdb/testsuite: 2017-04-05 Yao Qi <yao.qi@linaro.org> * gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint): Use gdb_test_multiple, and don't match anchor. commit 8dea77f0254d6a76d71092c922e9409ef1b67df4 Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 5 12:47:41 2017 +0930 PowerPC64le PLT reference counting A fix for ELFv2 ABI garbage-collection. * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT reference counting. commit 4ac40124eef08045bf99ad9f4fcc277961953109 Author: Pedro Alves <palves@redhat.com> Date: Wed Apr 5 09:39:49 2017 +0100 New global maintainer - Simon Marchi gdb/ChangeLog: 2017-04-05 Pedro Alves <palves@redhat.com> * MAINTAINERS (Global Maintainers): Add Simon Marchi. (Write After Approval): Remove Simon Marchi. commit 4d5efb852be6554305dfaf17c1e4f07bb9514273 Author: Hans-Peter Nilsson <hp@bitrange.com> Date: Wed Apr 5 03:00:40 2017 +0200 PR ld/21233: xfail failing test-parts for cris*-*-* commit c053b65441eb70ac78a514fabc3431b857a30d2e Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 23:49:27 2017 +0100 Initialize gdb::optional empty payload to quiet false -Wmaybe-uninitialized warnings Commit ecfb656c37b982 ("dwarf2read.c: Make dir_index and file_name_index strong typedefs") added a use of gdb::optional that triggers bogus -Wmaybe-uninitialized warnings: GCC trunk is complaining like this: ../../binutils-gdb/gdb/dwarf2read.c: In function void read_formatted_entries(bfd*, const gdb_byte**, line_header*, const comp_unit_head*, void (*)(line_header*, const char*, dir_index, unsigned int, unsigned int)): ../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::length may be used uninitialized in this function [-Werror=maybe-uninitialized] callback (lh, fe.name, fe.d_index, fe.mod_time, fe.length); ^ ../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: *((void*)& fe +8) may be used uninitialized in this function [-Werror=maybe-uninitialized] ../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::mod_time may be used uninitialized in this function [-Werror=maybe-uninitialized] ../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::name may be used uninitialized in this function [-Werror=maybe-uninitialized] While some older GCCs are complaining like this: ../../binutils-gdb/gdb/dwarf2read.c: In function void read_formatted_entries(bfd*, const gdb_byte**, line_header*, const comp_unit_head*, void (*)(line_header*, const char*, dir_index, unsigned int, unsigned int)): ../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: uint may be used uninitialized in this function [-Werror=maybe-uninitialized] callback (lh, fe.name, fe.d_index, fe.mod_time, fe.length); Looking around the web, I see that boost's optional implementation triggers this kind of issue often too. See: http://www.boost.org/doc/libs/1_63_0/libs/optional/doc/html/boost_optional/tutorial/gotchas/false_positive_with__wmaybe_uninitialized.html I noticed that replacing the gdb::optional uses with real C++17 std::optional uses against GCC 7/trunk makes the warnings go away. Looking at the implementation, AFAICS, libstdc++ always initializes its "empty" union payload member (_M_empty, which is defined as an empty class, like ours). I.e., all payload types have this ctor: struct _Optional_payload..... { constexpr _Optional_payload() : _M_empty() {} The constexpr makes a diference too. Without it, GCC7 still warns. So I'm applying the same treatment to our gdb::optional. gdb/ChangeLog: 2017-04-05 Pedro Alves <palves@redhat.com> * common/gdb_optional.h (optional::optional): Make constexpr and initialize m_dummy. commit f3b8f8ee35bd62a2ae7d21561f5d23f00dad004f Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Apr 5 00:00:36 2017 +0000 Automatic date update in version.in commit 80070c0d3491347f11283c5791b9dd040fedbd4f Author: Maciej W. Rozycki <macro@imgtec.com> Date: Mon Mar 27 12:39:07 2017 +0100 PR ld/21233: Avoid sweeping forced-undefined symbols in section GC Complement commit 902e9fc76a0e ("PR ld/20828: Move symbol version processing ahead of GC symbol sweep"), commit b531344c34b0 ("PR ld/20828: Reorder the symbol sweep stage of section GC") and commit 81ff47b3a546 ("PR ld/20828: Fix linker script symbols wrongly forced local with section GC"), and prevent symbols forcibly entered in the output file with the use of the `--undefined=' or `--require-defined=' linker command line options or the EXTERN linker script command from being swept in section garbage collection and consequently recorded in the dynamic symbol table as local entries. This happens in certain circumstances, where a symbol reference also exists in one of the static input files, however only in a section which is garbage-collected and does not make it to the output file, and the symbol is defined in a dynamic object present in the link. For example with the `i386-linux' target and the `pr21233.s' and `pr21233-l.s' sources, and the `pr21233.ld' linker script included with this change we get: $ as -o pr21233-l.o pr21233-l.s $ ld -shared -T pr21233.ld -o libpr21233.so pr21233-l.o $ as -o pr21233.o pr21233.s $ ld --gc-sections -e foo --require-defined=bar -T pr21233.ld -o pr21233 pr21233.o libpr21233.so $ readelf --dyn-syms pr21233 Symbol table '.dynsym' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 OBJECT LOCAL DEFAULT UND bar $ which makes the run-time `bar' dependency of the `pr21233' executable different from its corresponding link-time dependency, i.e. the presence of `libpr21233.so' and its `bar' symbol is required at the link time, however at the run time a copy of `libpr21233.so' without `bar' will do. Similarly with `--undefined=' and EXTERN which do not actually require the reference to the symbol requested to be satisfied with a definition at the link time, however once the definition has been pulled at the link time, so it should at the dynamic load time. Additionally with the `mips-linux' target we get: $ ld --gc-sections -e foo --require-defined=bar -T pr21233.ld -o pr21233 pr21233.o libpr21233.so ld: BFD (GNU Binutils) 2.28.51.20170324 assertion fail .../bfd/elfxx-mips.c:3861 $ as the target is not prepared to handle such a local dynamic symbol. With this change in effect we get: $ readelf --dyn-syms pr21233 Symbol table '.dynsym' contains 2 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 OBJECT GLOBAL DEFAULT UND bar $ instead, for both targets. ld/ PR ld/21233 * ldlang.c (insert_undefined): Set `mark' for ELF symbols. * testsuite/ld-elf/pr21233.sd: New test. * testsuite/ld-elf/pr21233-l.sd: New test. * testsuite/ld-elf/pr21233.ld: New test linker script. * testsuite/ld-elf/pr21233-e.ld: New test linker script. * testsuite/ld-elf/pr21233.s: New test source. * testsuite/ld-elf/pr21233-l.s: New test source. * testsuite/ld-elf/shared.exp: Run the new tests. commit 4c7bf4f91b7dd3ccbd12be55316fca8817059a24 Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 4 14:28:07 2017 -0700 Remove support for using the bsd-uthread target on FreeBSD. The bsd-uthread target supports an old thread library ("libc_r") that was last included in FreeBSD release 6.4 released in 2008. However, this library has not been used as the default library since FreeBSD 5.0 (2003) and 4.11 (2005). Thread support for modern FreeBSD binaries is provided via "normal" LWP support in core files and the native FreeBSD target. gdb/ChangeLog: * amd64-fbsd-tdep.c: Remove "bsd-uthread.h" include. (amd64fbsd_jmp_buf_reg_offset): Remove. (amd64fbsd_supply_uthread): Remove function. (amd64fbsd_collect_uthread): Remove function. (amd64fbsd_init_abi): Don't set bsd-uthread callbacks. * configure.tgt (i[34567]86-*-freebsd*): Remove bsd-uthread.o. (x86_64-*-freebsd*): Remove bsd-uthread.o. (fbsd-nat.c): Update comment. * i386-fbsd-tdep.c: Remove "bsd-uthread.h" include. (i386fbsd_jmp_buf_reg_offset): Remove. (i386fbsd_supply_uthread): Remove function. (i386fbsd_collect_uthread): Remove function. (i386fbsd_init_abi): Don't set bsd-uthread callbacks. commit 1e1a8bef60db2f524c5eb1d27be22cfa9ff82a84 Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 4 14:20:37 2017 -0700 Remove support for FreeBSD/alpha. FreeBSD last shipped a release for Alpha (6.3) in 2008. This also removes support for GNU/kFreeBSD on Alpha. gdb/ChangeLog: * Makefile.in (ALL_64_TARGET_OBS): Remove alpha-fbsd-tdep.o. (ALLDEPFILES): Remove alpha-fbsd-tdep.c * NEWS: Mention that support for FreeBSD/alpha was removed. * alpha-fbsd-tdep.c: Delete file. * config/alpha/fbsd.mh: Delete file. * configure.host: Delete alpha*-*-freebsd* and alpha*-*-kfreebsd*-gnu. * configure.tgt: Delete alpha*-*-freebsd* and alpha*-*-kfreebsd*-gnu. commit 499079343549348e270047ffa2687a8a76523700 Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 4 13:57:47 2017 -0700 Use ptid from regcache instead of inferior_ptid. gdb/ChangeLog: * amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers, amd64bsd_store_inferior_registers): Use ptid from regcache. commit 6f77053d2ae56f16c10a8817732ed9fb43893507 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 20:03:26 2017 +0100 dwarf2read.c: C++fy lnp_state_machine While I was looking at the file, I noticed that this struct could be nicely converted to a class. As I was progressing, I ended up moving all state machine actual internal state manipulation to methods of lnp_state_machine, essentially decoupling DWARF parsing from state tracking. I also noticed that the lnp_reader_state doesn't really serve any good use, so that's eliminated in the process. gdb/ChangeLog: 2017-04-04 Pedro Alves <palves@redhat.com> * dwarf2read.c (lnp_state_machine): Now a class. Initialize all data fields, make them private and add "m_" prefixes. (lnp_state_machine::lnp_state_machine): New ctor. (record_line, check_line_address, handle_set_discriminator) (handle_set_address, handle_advance_pc, handle_special_opcode) (handle_advance_line, handle_set_file, handle_negate_stmt) (handle_const_add_pc, handle_fixed_advance_pc, handle_copy) (end_sequence, advance_line): New methods. (m_gdbarch, m_record_lines_p): New fields. (lnp_reader_state): Delete. (dwarf_record_line): Rename to ... (lnp_state_machine::record_line): ... adjust. (init_lnp_state_machine): Delete. (lnp_state_machine::lnp_state_machine): New. (check_line_address): Rename to ... (lnp_state_machine::check_line_address): This. (dwarf_decode_lines_1): Remove reference to "reader_state". Adjust lnp_state_machine having a non-default ctor. Use bool. State machine internal state manipulation moved to lnp_state_machine methods. commit 9c5417255690af00751c7d506172459afe856894 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 20:03:26 2017 +0100 Make sect_offset and cu_offset strong typedefs instead of structs A while ago, back when GDB was a C program, the sect_offset and cu_offset types were made structs in order to prevent incorrect mixing of those offsets. Now that we require C++11, we can make them integers again, while keeping the safety, by exploiting "enum class". We can add a bit more safety, even, by defining operators that the types _should_ support, helping making the suspicious uses stand out more. Getting at the underlying type is done with the new to_underlying function added by the previous patch, which also helps better spot where do we need to step out of the safety net. Mostly, that's around parsing the DWARF, and when we print the offset for complaint/debug purposes. But there are other occasional uses. Since we have to define the sect_offset/cu_offset types in a header anyway, I went ahead and generalized/library-fied the idea of "offset" types, making it trivial to add more such types if we find a use. See common/offset-type.h and the DEFINE_OFFSET_TYPE macro. I needed a couple generaly-useful preprocessor bits (e.g., yet another CONCAT implementation), so I started a new common/preprocessor.h file. I included units tests covering the "offset" types API. These are mostly compile-time tests, using SFINAE to check that expressions that shouldn't compile (e.g., comparing unrelated offset types) really are invalid and would fail to compile. This same idea appeared in my pending enum-flags revamp from a few months ago (though this version is a bit further modernized compared to what I had posted), and I plan on reusing the "check valid expression" bits added here in that series, so I went ahead and defined the CHECK_VALID_EXPR macro in its own header -- common/valid-expr.h. I think that's nicer regardless. I was borderline between calling the new types "offset" types, or "index" types, BTW. I stuck with "offset" simply because that's what we're already calling them, mostly. gdb/ChangeLog: 2017-04-04 Pedro Alves <palves@redhat.com> * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add unittests/offset-type-selftests.c. (SUBDIR_UNITTESTS_OBS): Add offset-type-selftests.o. * common/offset-type.h: New file. * common/preprocessor.h: New file. * common/traits.h: New file. * common/valid-expr.h: New file. * dwarf2expr.c: Include "common/underlying.h". Adjust to use sect_offset and cu_offset strong typedefs throughout. * dwarf2expr.h: Adjust to use sect_offset and cu_offset strong typedefs throughout. * dwarf2loc.c: Include "common/underlying.h". Adjust to use sect_offset and cu_offset strong typedefs throughout. * dwarf2read.c: Adjust to use sect_offset and cu_offset strong typedefs throughout. * gdbtypes.h: Include "common/offset-type.h". (cu_offset): Now an offset type (strong typedef) instead of a struct. (sect_offset): Likewise. (union call_site_parameter_u): Rename "param_offset" field to "param_cu_off". * unittests/offset-type-selftests.c: New file. commit ecfb656c37b982479d8eb07f240b434772d98fd6 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 20:03:25 2017 +0100 dwarf2read.c: Make dir_index and file_name_index strong typedefs This should help catch mistakes related to mixing the 1-based DWARF indexes with 0-based std::vector indexes, since the new types do not implicitly convert to anything. The change in read_formatted_entries relates to the fact that doing the seemingly simpler: - uintp = &fe.dir_index; + uintp = (unsigned int *) &fe.dir_index; would be undefined C/C++. So to address that, I made the function extract the form before assigning to the file_entry. It felt natural to use gdb::optional for "do I have this value", and this is what motivated the previous patch that added the missing observer methods to gdb::optional. gdb/ChangeLog: 2017-04-04 Pedro Alves <palves@redhat.com> * common/underlying.h: New file. * dwarf2read.c: Include "common/gdb_optional.h" and "common/underlying.h". (dir_index, file_name_index): New types. (file_entry): Use them. (file_entry::include): Use to_underlying. (line_header::add_file_name): Use dir_index. (read_formatted_entries): Use gdb::optional. Read form before writting to file_entry. (dwarf_decode_line_header): Use dir_index. (lnp_state_machine::current_file): Use to_underlying. (lnp_state_machine::file): Change type to file_name_index. (dwarf_record_line): Use to_underlying. (init_lnp_state_machine): Use file_name_index. (dwarf_decode_lines_1): Use dir_index and file_name_index. commit d194f1fe51cb85b8a919b7ee9e3a7715b0ec9744 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 20:03:25 2017 +0100 gdb::optional: Add observers Currently, gdb::optional is really minimal and can only be used for lazy initialization. There's no way to get at the value contained inside the optinal. This commit corrects that, by adding observer methods, mostly copied from libstdc++'s implementation of C++17 std::optional. This will be used in the following patch. gdb/ChangeLog: 2017-04-04 Pedro Alves <palves@redhat.com> * common/gdb_optional.h (gdb::optiona): Add operator->, operator*, operator bool, has_value and get methods. commit fff8551cf549f4047c9276a836408d802db6ce6d Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 4 20:03:25 2017 +0100 dwarf2read.c: Some C++fycation, use std::vector, std::unique_ptr This starts off as replacing a couple custom open coded vector implementations in the file with std::vector, and then the rest falls off of that. I.e., use new/delete instead of XCNEW/xfree, add ctors/dtors/initializers where appropriate. And then use std::unique_ptr instead of cleanups. Some functions became methods, and in a couple spots, some single-use callback functions that would have to be tweaked anyway are converted to lambdas instead. gdb/ChangeLog: 2017-04-04 Pedro Alves <palves@redhat.com> * dwarf2read.c (struct file_entry): Add ctors, and initialize all fields. (line_header): Initialize all data fields. Change type of standard_opcode_lengths to std::unique_ptr<unsigned char[]>. Change type of include_dirs to std::vector<const char *>. Remove num_include_dirs, include_dirs_size. Change type of file_names to std::vector<file_entry>. Remove num_file_names, file_names_size. (line_header::line_header): New. (line_header::add_include_dir, line_header::add_file_name): New methods. (line_header::include_dir_at): Remove NULL check. (line_header::file_name_at): Add const overload. (line_header_up): New unique_ptr typedef. (dw2_get_file_names_reader): Use line_header_up. Adjust to use std::vector. Remove free_line_header call. (dwarf2_build_include_psymtabs): Use line_header_up. Remove free_line_header call. (free_cu_line_header): Delete. (handle_DW_AT_stmt_list, handle_DW_AT_stmt_list) (setup_type_unit_groups): Use line_header_up instead of cleanups. Adjust to use std::vector. (free_line_header): Delete. (free_line_header_voidp): Use delete. (add_include_dir): Replace with ... (line_header::add_include_dir): ... this method. Use std::vector. (add_file_name): Replace with ... (line_header::add_file_name): ... this method. Use std::vector. (add_include_dir_stub): Delete. (read_formatted_entries): Remove memset. (dwarf_decode_line_header): Return a line_header_up instead of a raw pointer. Remove cleanup handling. Pass lambdas to read_formatted_entries. Adjust to use line_header methods. (dwarf_decode_lines_1): Adjust to use line_header methods. (dwarf_decode_lines, file_file_name, file_full_name): Adjust to use std::vector. commit 477bdd393c8145ad44899cb4681d57a61c82aad3 Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Thu Jun 2 13:46:58 2016 +0000 Use symbolic constants instead of magic numbers with add_data_entry() Use symbolic constants from include/coff/internal.h instead of magic numbers with add_data_entry() bfd/ChangeLog: 2017-04-02 Jon Turney <jon.turney@dronecode.org.uk> (_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than numbers for DataDirectory entry indicies passed to add_data_entry(). commit a91e1603afb6704545793e967a1a3dfe96b389de Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Apr 4 09:05:48 2017 -0700 Support ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX Mark an ALLOC section, which should be placed in special memory area, with SHF_GNU_MBIND. Its sh_info field indicates the special memory type. GNU_MBIND section names start with ".mbind" so that they are placed as orphan sections by linker. All input GNU_MBIND sections with the same sh_type, sh_flags and sh_info are placed in one output GNU_MBIND section. In executable and shared object, create a GNU_MBIND segment for each GNU_MBIND section and its segment type is PT_GNU_MBIND_LO plus the sh_info value. Each GNU_MBIND segment is aligned at page boundary. The assembler syntax: .section .mbind.foo,"adx",%progbits ^ 0: Special memory type. | 'd' for SHF_GNU_MBIND. .section .mbind.foo,"adx",%progbits,0x1 ^ 1: Special memory type. | 'd' for SHF_GNU_MBIND. .section .mbind.bar,"adG",%progbits,.foo_group,comdat,0x2 ^ 2: Special memory type. | 'd' for SHF_GNU_MBIND. bfd/ * elf.c (get_program_header_size): Add a GNU_MBIND segment for each GNU_MBIND section and align GNU_MBIND section to page size. (_bfd_elf_map_sections_to_segments): Create a GNU_MBIND segment for each GNU_MBIND section. (_bfd_elf_init_private_section_data): Copy sh_info from input for GNU_MBIND section. binutils/ * NEWS: Mention support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX. * readelf.c (get_segment_type): Handle PT_GNU_MBIND_XXX. (get_elf_section_flags): Handle SHF_GNU_MBIND. (process_section_headers): Likewise. * testsuite/binutils-all/mbind1.s: New file. * testsuite/binutils-all/objcopy.exp: Run readelf test on mbind1.s. gas/ * NEWS: Mention support for ELF SHF_GNU_MBIND. * config/obj-elf.c (section_match): New. (get_section): Match both sh_info and group name. (obj_elf_change_section): Add argument for sh_info. Pass both sh_info and group name to get_section. Issue an error for SHF_GNU_MBIND section without SHF_ALLOC. Set sh_info. (obj_elf_parse_section_letters): Set SHF_GNU_MBIND for 'd'. (obj_elf_section): Support SHF_GNU_MBIND section info. * config/obj-elf.h (obj_elf_change_section): Add argument for sh_info. * config/tc-arm.c (start_unwind_section): Pass 0 as sh_info to obj_elf_change_section. * config/tc-ia64.c (obj_elf_vms_common): Likewise. * config/tc-microblaze.c (microblaze_s_data): Likewise. (microblaze_s_sdata): Likewise. (microblaze_s_rdata): Likewise. (microblaze_s_bss): Likewise. * config/tc-mips.c (s_change_section): Likewise. * config/tc-msp430.c (msp430_profiler): Likewise. * config/tc-rx.c (parse_rx_section): Likewise. * config/tc-tic6x.c (tic6x_start_unwind_section): Likewise. * doc/as.texinfo: Document 'd' for SHF_GNU_MBIND. * testsuite/gas/elf/elf.exp: Run section12a, section12b and section13. * testsuite/gas/elf/section10.d: Updated. * testsuite/gas/elf/section10.s: Likewise. * testsuite/gas/elf/section12.s: New file. * testsuite/gas/elf/section12a.d: Likewise. * testsuite/gas/elf/section12b.d: Likewise. * testsuite/gas/elf/section13.l: Likewise. * testsuite/gas/elf/section13.d: Likewise. * testsuite/gas/elf/section13.s: Likewise. include/ * elf/common.h (PT_GNU_MBIND_NUM): New. (PT_GNU_MBIND_LO): Likewise. (PT_GNU_MBIND_HI): Likewise. (SHF_GNU_MBIND): Likewise. ld/ * NEWS: Mention support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX. * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Place input GNU_MBIND sections with the same type, attributes and sh_info field into a single output GNU_MBIND section. * testsuite/ld-elf/elf.exp: Run mbind2a and mbind2b. * testsuite/ld-elf/mbind1.s: New file. * testsuite/ld-elf/mbind1a.d: Likewise. * testsuite/ld-elf/mbind1b.d: Likewise. * testsuite/ld-elf/mbind1c.d: Likewise. * testsuite/ld-elf/mbind2a.s: Likewise. * testsuite/ld-elf/mbind2b.c: Likewise. commit b52920324fabbcad93042f2e17de52696d0dab42 Author: Palmer Dabbelt <palmer@dabbelt.com> Date: Mon Apr 3 10:08:29 2017 -0700 RISC-V: Resurrect GP-relative disassembly hints We missed a "_gp" when changing the GP symbol. To make sure that doesn't happen again, we now use the same definition everywhere (thanks, Nick). include/ChangeLog: 2017-04-03 Palmer Dabbelt <palmer@dabbelt.com> * elf/riscv.h (RISCV_GP_SYMBOL): New define. bfd/ChangeLog: 2017-04-03 Palmer Dabbelt <palmer@dabbelt.com> * elfnn-riscv.c (GP_NAME): Delete. (riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL. (_bfd_riscv_relax_lui): Likewise. opcodes/ChangeLog: 2017-04-03 Palmer Dabbelt <palmer@dabbelt.com> * riscv-dis.c (riscv_disassemble_insn): Change "_gp" to RISCV_GP_SYMBOL. commit 65dd1e590e519eba10bc29fb6e952271e0604c9b Author: Simon Marchi <simon.marchi@ericsson.com> Date: Tue Apr 4 10:48:24 2017 -0400 gdbserver: Clear .deps on clean In some situations, the dependency tracking files in .deps can refer to source files that were removed or renamed, leading to errors like: make: *** No rule to make target `version.c', needed by `version.o'. Stop. This patch makes the clean target clear the .deps directory, which gives the user a chance to recover from the error wihtout knowing about the internals of the build system. It is already done for GDB. See here for more details: https://sourceware.org/ml/gdb-patches/2009-03/msg00000.html gdb/gdbserver/ChangeLog: * Makefile.in (clean): Clear .deps. commit d62a8ae2dd0fbb6235f4e8f2fb61b83fe4ba1d90 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Tue Apr 4 10:31:50 2017 -0400 remote.c: Use ptid_t instead of struct ptid It's the only place in the codebase that uses "struct ptid", so change it to ptid_t for consistency. gdb/ChangeLog: * remote.c (set_general_thread, set_continue_thread): Use ptid_t instead of struct ptid. commit ad32986fdf9da1c8748e47b8b45100398223dba8 Author: Nick Clifton <nickc@redhat.com> Date: Tue Apr 4 11:23:36 2017 +0100 Fix null pointer dereferences when using a link built with clang. PR binutils/21342 * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer dereference. (bfd_elf_final_link): Only initialize the extended symbol index section if there are extended symbol tables to list. commit db3a1dc7c9404e203c54576db3335e69d995e83e Author: Alan Hayward <alan.hayward@arm.com> Date: Tue Apr 4 08:42:30 2017 +0100 Remove MAX_REGISTER_SIZE from frame.c gdb/ * frame.c (get_frame_register_bytes): Unwind using value. (put_frame_register_bytes): Likewise. commit 4c220b4625df0b08cbb22e5c7ca04dc7a629de1b Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Apr 4 00:00:42 2017 +0000 Automatic date update in version.in commit c41cf6fdf514fce6b69f8f875b6903b2a3910f89 Author: Palmer Dabbelt <palmer@dabbelt.com> Date: Mon Apr 3 09:03:57 2017 -0700 RISC-V: Avoid a const warning 2017-04-03 Palmer Dabbelt <palmer@dabbelt.com> * config/tc-riscv.c (riscv_clear_subsets): Cast argument to free to avoid const warnings. commit 2f5f29cada3c06c9c26f4da5994951effee7d6f7 Author: Andrew Jenner <andrew@codesourcery.com> Date: Mon Apr 3 09:13:19 2017 -0700 IA16 support * config.sub: Handle ia16 in $basic_machine. bfd/ * config.bfd: Handle ia16. gas/ * configure.tgt: Handle ia16. ld/ * configure.tgt: Handle ia16. commit 2514e33e01890ad28023359b110d1c9c1ad201d4 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 3 08:25:36 2017 -0700 Correct the ChangeLog entry commit 46bed6796d5821832e8ba373ddb2e7fdc45a109d Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 3 08:03:14 2017 -0700 ld: Support ELF GNU program properties From .note.gnu.property section in each ELF input, we build a list of GNU properties if .note.gnu.property section isn't corrupt. The unknown properties are ignored. All property lists in relocatable inputs are merged into an output property list. When -z stack-size=N is used and N isn't 0, the GNU_PROPERTY_STACK_SIZE property will be merged with or added to the output property list. .note.gnu.property section is generated in output from the output property list. bfd/ * Makefile.am (BFD32_BACKENDS): Add elf-properties.lo. (BFD32_BACKENDS_CFILES): Add elf-properties.c. * configure.ac (elf): Add elf-properties.lo. * Makefile.in: Regenerated. * configure: Likewise. * elf-bfd.h (elf_property_kind): New. (elf_property): Likewise. (elf_property_list): Likewise. (elf_properties): Likewise. (_bfd_elf_parse_gnu_properties): Likewise. (_bfd_elf_get_property): Likewise. (_bfd_elf_link_setup_gnu_properties): Likewise. (elf_backend_data): Add parse_gnu_properties, merge_gnu_properties and setup_gnu_properties. (elf_obj_tdata): Add properties. * elf-properties.c: New file. * elf32-i386.c (elf_i386_parse_gnu_properties): New. (elf_i386_merge_gnu_properties): Likewise. (elf_backend_parse_gnu_properties): Likewise. (elf_backend_merge_gnu_properties): Likewise. * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. (elf_x86_64_merge_gnu_properties): Likewise. (elf_backend_parse_gnu_properties): Likewise. (elf_backend_merge_gnu_properties): Likewise. * elfxx-target.h (elf_backend_merge_gnu_properties): Likewise. (elf_backend_parse_gnu_properties): Likewise. (elf_backend_setup_gnu_properties): Likewise. (elfNN_bed): Add elf_backend_parse_gnu_properties, elf_backend_merge_gnu_properties and elf_backend_setup_gnu_properties. ld/ * ld/NEWS: Mention support for ELF GNU program properties. * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Call ELF setup_gnu_properties. * testsuite/ld-i386/i386.exp: Run property tests for Linux/i386. * testsuite/ld-i386/pass.c: New file. * testsuite/ld-i386/property-1.r: Likewise. * testsuite/ld-i386/property-2.r: Likewise. * testsuite/ld-i386/property-3.r: Likewise. * testsuite/ld-i386/property-4.r: Likewise. * testsuite/ld-i386/property-5.r: Likewise. * testsuite/ld-i386/property-6.r: Likewise. * testsuite/ld-i386/property-6a.c: Likewise. * testsuite/ld-i386/property-6b.c: Likewise. * testsuite/ld-i386/property-6c.S: Likewise. * testsuite/ld-i386/property-7.r: Likewise. * testsuite/ld-i386/property-no-copy.S: Likewise. * testsuite/ld-i386/property-stack.S: Likewise. * testsuite/ld-i386/property-unsorted-1.S: Likewise. * testsuite/ld-i386/property-unsorted-2.S: Likewise. * testsuite/ld-i386/property-x86-1.S: Likewise. * testsuite/ld-i386/property-x86-2.S: Likewise. * testsuite/ld-x86-64/pass.c: Likewise. * testsuite/ld-x86-64/property-1.r: Likewise. * testsuite/ld-x86-64/property-2.r: Likewise. * testsuite/ld-x86-64/property-3.r: Likewise. * testsuite/ld-x86-64/property-4.r: Likewise. * testsuite/ld-x86-64/property-5.r: Likewise. * testsuite/ld-x86-64/property-6.r: Likewise. * testsuite/ld-x86-64/property-6a.c: Likewise. * testsuite/ld-x86-64/property-6b.c: Likewise. * testsuite/ld-x86-64/property-6c.S: Likewise. * testsuite/ld-x86-64/property-7.r: Likewise. * testsuite/ld-x86-64/property-no-copy.S: Likewise. * testsuite/ld-x86-64/property-stack.S: Likewise. * testsuite/ld-x86-64/property-unsorted-1.S: Likewise. * testsuite/ld-x86-64/property-unsorted-2.S: Likewise. * testsuite/ld-x86-64/property-x86-1.S: Likewise. * testsuite/ld-x86-64/property-x86-2.S: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run property tests for Linux/x86-64. commit 82156ab704b08b124d319c0decdbd48b3ca2dac5 Author: Nick Clifton <nickc@redhat.com> Date: Mon Apr 3 12:14:06 2017 +0100 readelf: Fix overlarge memory allocation when reading a binary with an excessive number of program headers. PR binutils/21345 * readelf.c (get_program_headers): Check for there being too many program headers before attempting to allocate space for them. commit 75ec1fdbb797a389e4fe4aaf2e15358a070dcc19 Author: Nick Clifton <nickc@redhat.com> Date: Mon Apr 3 11:13:21 2017 +0100 Fix runtime seg-fault in readelf when parsing a corrupt MIPS binary. PR binutils/21344 * readelf.c (process_mips_specific): Check for an out of range GOT entry before reading the module pointer. commit f32ba72991d2406b21ab17edc234a2f3fa7fb23d Author: Nick Clifton <nickc@redhat.com> Date: Mon Apr 3 11:01:45 2017 +0100 readelf: Update check for invalid word offsets in ARM unwind information. PR binutils/21343 * readelf.c (get_unwind_section_word): Fix snafu checking for invalid word offsets in ARM unwind information. commit 12bfb8fec326e847f6300874ca656e47ee027f5d Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Apr 3 00:00:37 2017 +0000 Automatic date update in version.in commit 450b68da0169dcfa1c36987ec80e2655abb3f8e6 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Apr 2 00:00:36 2017 +0000 Automatic date update in version.in commit 5e6a0e73317915b0685249606538ea739acc3a23 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Apr 1 00:00:39 2017 +0000 Automatic date update in version.in ----------------------------------------------------------------------- Summary of changes: ChangeLog | 13 + bfd/ChangeLog | 67 + bfd/Makefile.am | 2 + bfd/Makefile.in | 3 + bfd/config.bfd | 6 + bfd/configure | 2 +- bfd/configure.ac | 2 +- bfd/elf-bfd.h | 58 + bfd/elf-properties.c | 483 +++++++ bfd/elf.c | 69 +- bfd/elf32-i386.c | 74 ++ bfd/elf64-ppc.c | 41 +- bfd/elf64-x86-64.c | 78 ++- bfd/elflink.c | 35 +- bfd/elfnn-riscv.c | 9 +- bfd/elfxx-target.h | 12 + bfd/peXXigen.c | 10 +- bfd/version.h | 2 +- binutils/ChangeLog | 29 + binutils/NEWS | 2 + binutils/readelf.c | 64 +- binutils/testsuite/binutils-all/mbind1.s | 33 + binutils/testsuite/binutils-all/objcopy.exp | 1 + config.sub | 2 +- gas/ChangeLog | 40 + gas/NEWS | 2 + gas/config/obj-elf.c | 54 +- gas/config/obj-elf.h | 3 +- gas/config/tc-arm.c | 3 +- gas/config/tc-ia64.c | 2 +- gas/config/tc-microblaze.c | 18 +- gas/config/tc-mips.c | 2 +- gas/config/tc-msp430.c | 2 +- gas/config/tc-riscv.c | 2 +- gas/config/tc-rx.c | 4 +- gas/config/tc-tic6x.c | 3 +- gas/configure.tgt | 3 + gas/doc/as.texinfo | 2 + gas/testsuite/gas/elf/elf.exp | 3 + gas/testsuite/gas/elf/section10.d | 4 +- gas/testsuite/gas/elf/section10.s | 4 +- gas/testsuite/gas/elf/section12.s | 33 + gas/testsuite/gas/elf/section12a.d | 35 + gas/testsuite/gas/elf/section12b.d | 32 + gas/testsuite/gas/elf/section13.d | 2 + gas/testsuite/gas/elf/section13.l | 2 + gas/testsuite/gas/elf/section13.s | 2 + gdb/ChangeLog | 172 +++ gdb/MAINTAINERS | 2 +- gdb/Makefile.in | 8 +- gdb/NEWS | 5 + gdb/alpha-fbsd-tdep.c | 132 -- gdb/amd64-bsd-nat.c | 32 +- gdb/amd64-fbsd-tdep.c | 67 - gdb/common/gdb_optional.h | 34 +- gdb/common/offset-type.h | 149 +++ gdb/common/preprocessor.h | 31 + gdb/common/traits.h | 34 + gdb/common/underlying.h | 32 + gdb/common/valid-expr.h | 108 ++ gdb/config/alpha/fbsd.mh | 6 - gdb/configure.host | 4 +- gdb/configure.tgt | 11 +- gdb/dwarf2expr.c | 45 +- gdb/dwarf2expr.h | 16 +- gdb/dwarf2loc.c | 37 +- gdb/dwarf2read.c | 1523 +++++++++++----------- gdb/fbsd-nat.c | 2 +- gdb/frame.c | 58 +- gdb/gdbserver/ChangeLog | 4 + gdb/gdbserver/Makefile.in | 1 + gdb/gdbtypes.h | 14 +- gdb/i386-fbsd-tdep.c | 59 - gdb/remote.c | 10 +- gdb/testsuite/gdb.threads/thread-specific-bp.exp | 9 +- gdb/unittests/offset-type-selftests.c | 178 +++ include/ChangeLog | 11 + include/elf/common.h | 7 + include/elf/riscv.h | 3 + ld/ChangeLog | 76 ++ ld/NEWS | 4 + ld/configure.tgt | 1 + ld/emultempl/elf32.em | 48 +- ld/ldlang.c | 2 + ld/testsuite/ld-elf/elf.exp | 21 + ld/testsuite/ld-elf/mbind1.s | 43 + ld/testsuite/ld-elf/mbind1a.d | 44 + ld/testsuite/ld-elf/mbind1b.d | 44 + ld/testsuite/ld-elf/mbind1c.d | 44 + ld/testsuite/ld-elf/mbind2a.s | 15 + ld/testsuite/ld-elf/mbind2b.c | 17 + ld/testsuite/ld-elf/pr21233-e.ld | 2 + ld/testsuite/ld-elf/pr21233-l.s | 6 + ld/testsuite/ld-elf/pr21233-l.sd | 6 + ld/testsuite/ld-elf/pr21233.ld | 17 + ld/testsuite/ld-elf/pr21233.s | 8 + ld/testsuite/ld-elf/pr21233.sd | 9 + ld/testsuite/ld-elf/shared.exp | 40 + ld/testsuite/ld-i386/i386.exp | 273 ++++ ld/testsuite/ld-i386/pass.c | 8 + ld/testsuite/ld-i386/property-1.r | 7 + ld/testsuite/ld-i386/property-2.r | 7 + ld/testsuite/ld-i386/property-3.r | 8 + ld/testsuite/ld-i386/property-4.r | 8 + ld/testsuite/ld-i386/property-5.r | 8 + ld/testsuite/ld-i386/property-6.r | 7 + ld/testsuite/ld-i386/property-6a.c | 7 + ld/testsuite/ld-i386/property-6b.c | 8 + ld/testsuite/ld-i386/property-6c.S | 18 + ld/testsuite/ld-i386/property-7.r | 6 + ld/testsuite/ld-i386/property-no-copy.S | 15 + ld/testsuite/ld-i386/property-stack.S | 18 + ld/testsuite/ld-i386/property-unsorted-1.S | 34 + ld/testsuite/ld-i386/property-unsorted-2.S | 22 + ld/testsuite/ld-i386/property-x86-1.S | 32 + ld/testsuite/ld-i386/property-x86-2.S | 25 + ld/testsuite/ld-x86-64/pass.c | 8 + ld/testsuite/ld-x86-64/property-1.r | 7 + ld/testsuite/ld-x86-64/property-2.r | 7 + ld/testsuite/ld-x86-64/property-3.r | 8 + ld/testsuite/ld-x86-64/property-4.r | 8 + ld/testsuite/ld-x86-64/property-5.r | 8 + ld/testsuite/ld-x86-64/property-6.r | 7 + ld/testsuite/ld-x86-64/property-6a.c | 7 + ld/testsuite/ld-x86-64/property-6b.c | 8 + ld/testsuite/ld-x86-64/property-6c.S | 23 + ld/testsuite/ld-x86-64/property-7.r | 6 + ld/testsuite/ld-x86-64/property-no-copy.S | 20 + ld/testsuite/ld-x86-64/property-stack.S | 23 + ld/testsuite/ld-x86-64/property-unsorted-1.S | 39 + ld/testsuite/ld-x86-64/property-unsorted-2.S | 27 + ld/testsuite/ld-x86-64/property-x86-1.S | 37 + ld/testsuite/ld-x86-64/property-x86-2.S | 30 + ld/testsuite/ld-x86-64/x86-64.exp | 273 ++++ opcodes/ChangeLog | 5 + opcodes/riscv-dis.c | 2 +- 136 files changed, 4447 insertions(+), 1222 deletions(-) create mode 100644 bfd/elf-properties.c create mode 100644 binutils/testsuite/binutils-all/mbind1.s create mode 100644 gas/testsuite/gas/elf/section12.s create mode 100644 gas/testsuite/gas/elf/section12a.d create mode 100644 gas/testsuite/gas/elf/section12b.d create mode 100644 gas/testsuite/gas/elf/section13.d create mode 100644 gas/testsuite/gas/elf/section13.l create mode 100644 gas/testsuite/gas/elf/section13.s delete mode 100644 gdb/alpha-fbsd-tdep.c create mode 100644 gdb/common/offset-type.h create mode 100644 gdb/common/preprocessor.h create mode 100644 gdb/common/traits.h create mode 100644 gdb/common/underlying.h create mode 100644 gdb/common/valid-expr.h delete mode 100644 gdb/config/alpha/fbsd.mh create mode 100644 gdb/unittests/offset-type-selftests.c create mode 100644 ld/testsuite/ld-elf/mbind1.s create mode 100644 ld/testsuite/ld-elf/mbind1a.d create mode 100644 ld/testsuite/ld-elf/mbind1b.d create mode 100644 ld/testsuite/ld-elf/mbind1c.d create mode 100644 ld/testsuite/ld-elf/mbind2a.s create mode 100644 ld/testsuite/ld-elf/mbind2b.c create mode 100644 ld/testsuite/ld-elf/pr21233-e.ld create mode 100644 ld/testsuite/ld-elf/pr21233-l.s create mode 100644 ld/testsuite/ld-elf/pr21233-l.sd create mode 100644 ld/testsuite/ld-elf/pr21233.ld create mode 100644 ld/testsuite/ld-elf/pr21233.s create mode 100644 ld/testsuite/ld-elf/pr21233.sd create mode 100644 ld/testsuite/ld-i386/pass.c create mode 100644 ld/testsuite/ld-i386/property-1.r create mode 100644 ld/testsuite/ld-i386/property-2.r create mode 100644 ld/testsuite/ld-i386/property-3.r create mode 100644 ld/testsuite/ld-i386/property-4.r create mode 100644 ld/testsuite/ld-i386/property-5.r create mode 100644 ld/testsuite/ld-i386/property-6.r create mode 100644 ld/testsuite/ld-i386/property-6a.c create mode 100644 ld/testsuite/ld-i386/property-6b.c create mode 100644 ld/testsuite/ld-i386/property-6c.S create mode 100644 ld/testsuite/ld-i386/property-7.r create mode 100644 ld/testsuite/ld-i386/property-no-copy.S create mode 100644 ld/testsuite/ld-i386/property-stack.S create mode 100644 ld/testsuite/ld-i386/property-unsorted-1.S create mode 100644 ld/testsuite/ld-i386/property-unsorted-2.S create mode 100644 ld/testsuite/ld-i386/property-x86-1.S create mode 100644 ld/testsuite/ld-i386/property-x86-2.S create mode 100644 ld/testsuite/ld-x86-64/pass.c create mode 100644 ld/testsuite/ld-x86-64/property-1.r create mode 100644 ld/testsuite/ld-x86-64/property-2.r create mode 100644 ld/testsuite/ld-x86-64/property-3.r create mode 100644 ld/testsuite/ld-x86-64/property-4.r create mode 100644 ld/testsuite/ld-x86-64/property-5.r create mode 100644 ld/testsuite/ld-x86-64/property-6.r create mode 100644 ld/testsuite/ld-x86-64/property-6a.c create mode 100644 ld/testsuite/ld-x86-64/property-6b.c create mode 100644 ld/testsuite/ld-x86-64/property-6c.S create mode 100644 ld/testsuite/ld-x86-64/property-7.r create mode 100644 ld/testsuite/ld-x86-64/property-no-copy.S create mode 100644 ld/testsuite/ld-x86-64/property-stack.S create mode 100644 ld/testsuite/ld-x86-64/property-unsorted-1.S create mode 100644 ld/testsuite/ld-x86-64/property-unsorted-2.S create mode 100644 ld/testsuite/ld-x86-64/property-x86-1.S create mode 100644 ld/testsuite/ld-x86-64/property-x86-2.S First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index 8565325..bb87497 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2017-04-03 Andrew Jenner <andrew@codesourcery.com> + + * config.sub: Handle ia16 in $basic_machine. + + bfd/ + * config.bfd: Handle ia16. + + gas/ + * configure.tgt: Handle ia16. + + ld/ + * configure.tgt: Handle ia16. + 2017-03-22 Nick Clifton <nickc@redhat.com> * config.sub: Sync with master version in config project. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bb851c7..0e4ad30 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,70 @@ +2017-04-05 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT + reference counting. + +2017-04-02 Jon Turney <jon.turney@dronecode.org.uk> + + (_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than + numbers for DataDirectory entry indicies passed to + add_data_entry(). + +2017-04-04 H.J. Lu <hongjiu.lu@intel.com> + + * elf.c (get_program_header_size): Add a GNU_MBIND segment for + each GNU_MBIND section and align GNU_MBIND section to page size. + (_bfd_elf_map_sections_to_segments): Create a GNU_MBIND + segment for each GNU_MBIND section. + (_bfd_elf_init_private_section_data): Copy sh_info from input + for GNU_MBIND section. + +2017-04-03 Palmer Dabbelt <palmer@dabbelt.com> + + * elfnn-riscv.c (GP_NAME): Delete. + (riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL. + (_bfd_riscv_relax_lui): Likewise. + +2017-04-04 Nick Clifton <nickc@redhat.com> + + PR binutils/21342 + * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer + dereference. + (bfd_elf_final_link): Only initialize the extended symbol index + section if there are extended symbol tables to list. + +2017-04-03 H.J. Lu <hongjiu.lu@intel.com> + + * Makefile.am (BFD32_BACKENDS): Add elf-properties.lo. + (BFD32_BACKENDS_CFILES): Add elf-properties.c. + * configure.ac (elf): Add elf-properties.lo. + * Makefile.in: Regenerated. + * configure: Likewise. + * elf-bfd.h (elf_property_kind): New. + (elf_property): Likewise. + (elf_property_list): Likewise. + (elf_properties): Likewise. + (_bfd_elf_parse_gnu_properties): Likewise. + (_bfd_elf_get_property): Likewise. + (_bfd_elf_link_setup_gnu_properties): Likewise. + (elf_backend_data): Add parse_gnu_properties, merge_gnu_properties + and setup_gnu_properties. + (elf_obj_tdata): Add properties. + * elf-properties.c: New file. + * elf32-i386.c (elf_i386_parse_gnu_properties): New. + (elf_i386_merge_gnu_properties): Likewise. + (elf_backend_parse_gnu_properties): Likewise. + (elf_backend_merge_gnu_properties): Likewise. + * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. + (elf_x86_64_merge_gnu_properties): Likewise. + (elf_backend_parse_gnu_properties): Likewise. + (elf_backend_merge_gnu_properties): Likewise. + * elfxx-target.h (elf_backend_merge_gnu_properties): Likewise. + (elf_backend_parse_gnu_properties): Likewise. + (elf_backend_setup_gnu_properties): Likewise. + (elfNN_bed): Add elf_backend_parse_gnu_properties, + elf_backend_merge_gnu_properties and + elf_backend_setup_gnu_properties. + 2017-03-30 Pip Cet <pipcet@gmail.com> * elf32-wasm32.c: Add relocation code, two relocs. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 49ab092..97b608c 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -321,6 +321,7 @@ BFD32_BACKENDS = \ elf-m10200.lo \ elf-m10300.lo \ elf-nacl.lo \ + elf-properties.lo \ elf-strtab.lo \ elf-vxworks.lo \ elf.lo \ @@ -516,6 +517,7 @@ BFD32_BACKENDS_CFILES = \ elf-m10200.c \ elf-m10300.c \ elf-nacl.c \ + elf-properties.c \ elf-strtab.c \ elf-vxworks.c \ elf.c \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index fed5117..e48abaf 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -655,6 +655,7 @@ BFD32_BACKENDS = \ elf-m10200.lo \ elf-m10300.lo \ elf-nacl.lo \ + elf-properties.lo \ elf-strtab.lo \ elf-vxworks.lo \ elf.lo \ @@ -850,6 +851,7 @@ BFD32_BACKENDS_CFILES = \ elf-m10200.c \ elf-m10300.c \ elf-nacl.c \ + elf-properties.c \ elf-strtab.c \ elf-vxworks.c \ elf.c \ @@ -1471,6 +1473,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10200.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10300.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-nacl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-properties.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-strtab.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-vxworks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@ diff --git a/bfd/config.bfd b/bfd/config.bfd index 1235c2c..b00958d 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -173,6 +173,7 @@ fido*) targ_archs=bfd_m68k_arch ;; hppa*) targ_archs=bfd_hppa_arch ;; i[3-7]86) targ_archs=bfd_i386_arch ;; i370) targ_archs=bfd_i370_arch ;; +ia16) targ_archs=bfd_i386_arch ;; lm32) targ_archs=bfd_lm32_arch ;; m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; @@ -906,6 +907,11 @@ case "${targ}" in targ_selvecs="icoff_le_vec icoff_be_vec" ;; + ia16-*-elf) + targ_defvec=i386_elf32_vec + targ_selvecs="i386_msdos_vec i386_aout_vec" + ;; + ip2k-*-elf) targ_defvec=ip2k_elf32_vec ;; diff --git a/bfd/configure b/bfd/configure index 7cae4ae..24e3e2f 100755 --- a/bfd/configure +++ b/bfd/configure @@ -14234,7 +14234,7 @@ selarchs="$f" # Target backend .o files. tb= -elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo +elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-properties.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo" coffgen="coffgen.lo dwarf2.lo" coff="cofflink.lo $coffgen" diff --git a/bfd/configure.ac b/bfd/configure.ac index feb1231..e568847 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -365,7 +365,7 @@ selarchs="$f" # Target backend .o files. tb= -elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo +elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-properties.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo" coffgen="coffgen.lo dwarf2.lo" coff="cofflink.lo $coffgen" diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 9e3d6f5..af377ee 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -766,6 +766,39 @@ typedef asection * (*elf_gc_mark_hook_fn) (asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *); +enum elf_property_kind + { + /* A new property. */ + property_unknown = 0, + /* A property ignored by backend. */ + property_ignored, + /* A corrupt property reported by backend. */ + property_corrupt, + /* A property should be removed due to property merge. */ + property_remove, + /* A property which is a number. */ + property_number + }; + +typedef struct elf_property +{ + unsigned int pr_type; + unsigned int pr_datasz; + union + { + /* For property_number, this is a number. */ + bfd_vma number; + /* Add a new one if elf_property_kind is updated. */ + } u; + enum elf_property_kind pr_kind; +} elf_property; + +typedef struct elf_property_list +{ + struct elf_property_list *next; + struct elf_property property; +} elf_property_list; + struct bfd_elf_section_reloc_data; struct elf_backend_data @@ -1389,6 +1422,19 @@ struct elf_backend_data or give an error and return FALSE. */ bfd_boolean (*obj_attrs_handle_unknown) (bfd *, int); + /* Parse GNU properties. Return the property kind. If the property + is corrupt, issue an error message and return property_corrupt. */ + enum elf_property_kind (*parse_gnu_properties) (bfd *, unsigned int, + bfd_byte *, + unsigned int); + + /* Merge GNU properties. Return TRUE if property is updated. */ + bfd_boolean (*merge_gnu_properties) (bfd *, elf_property *, + elf_property *); + + /* Set up GNU properties. */ + void (*setup_gnu_properties) (struct bfd_link_info *); + /* Encoding used for compact EH tables. */ int (*compact_eh_encoding) (struct bfd_link_info *); @@ -1798,6 +1844,10 @@ struct elf_obj_tdata /* Symbol buffer. */ void *symbuf; + /* List of GNU properties. Will be updated by setup_gnu_properties + after all input GNU properties are merged for output. */ + elf_property_list *properties; + obj_attribute known_obj_attributes[2][NUM_KNOWN_OBJ_ATTRIBUTES]; obj_attribute_list *other_obj_attributes[2]; @@ -1882,6 +1932,7 @@ struct elf_obj_tdata (elf_known_obj_attributes (bfd) [OBJ_ATTR_PROC]) #define elf_other_obj_attributes_proc(bfd) \ (elf_other_obj_attributes (bfd) [OBJ_ATTR_PROC]) +#define elf_properties(bfd) (elf_tdata (bfd) -> properties) \f extern void _bfd_elf_swap_verdef_in (bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *); @@ -2538,6 +2589,13 @@ extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int); extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *); extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr (asection *sec); +extern bfd_boolean _bfd_elf_parse_gnu_properties + (bfd *, Elf_Internal_Note *); +extern elf_property * _bfd_elf_get_property + (bfd *, unsigned int, unsigned int); +extern void _bfd_elf_link_setup_gnu_properties + (struct bfd_link_info *); + /* The linker may need to keep track of the number of relocs that it decides to copy as dynamic relocs in check_relocs for each symbol. This is so that it can later discard them if they are found to be diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c new file mode 100644 index 0000000..a0456f8 --- /dev/null +++ b/bfd/elf-properties.c @@ -0,0 +1,483 @@ +/* ELF program property support. + Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program 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 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +/* GNU program property draft is at: + + https://github.com/hjl-tools/linux-abi/wiki/property-draft.pdf + */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" +#include "elf-bfd.h" + +/* Get a property, allocate a new one if needed. */ + +elf_property * +_bfd_elf_get_property (bfd *abfd, unsigned int type, unsigned int datasz) +{ + elf_property_list *p, **lastp; + + if (bfd_get_flavour (abfd) != bfd_target_elf_flavour) + { + /* Never should happen. */ + abort (); + } + + /* Keep the property list in order of type. */ + lastp = &elf_properties (abfd); + for (p = *lastp; p; p = p->next) + { + /* Reuse the existing entry. */ + if (type == p->property.pr_type) + { + if (datasz > p->property.pr_datasz) + { + /* This can happen when mixing 32-bit and 64-bit objects. */ + p->property.pr_datasz = datasz; + } + return &p->property; + } + else if (type < p->property.pr_type) + break; + lastp = &p->next; + } + p = (elf_property_list *) bfd_alloc (abfd, sizeof (*p)); + if (p == NULL) + { + _bfd_error_handler (_("%B: out of memory in _bfd_elf_get_property"), + abfd); + _exit (EXIT_FAILURE); + } + memset (p, 0, sizeof (*p)); + p->property.pr_type = type; + p->property.pr_datasz = datasz; + p->next = *lastp; + *lastp = p; + return &p->property; +} + +/* Parse GNU properties. */ + +bfd_boolean +_bfd_elf_parse_gnu_properties (bfd *abfd, Elf_Internal_Note *note) +{ + const struct elf_backend_data *bed = get_elf_backend_data (abfd); + unsigned int align_size = bed->s->elfclass == ELFCLASS64 ? 8 : 4; + bfd_byte *ptr = (bfd_byte *) note->descdata; + bfd_byte *ptr_end = ptr + note->descsz; + + if (note->descsz < 8 || (note->descsz % align_size) != 0) + { +bad_size: + _bfd_error_handler + (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx\n"), + abfd, note->type, note->descsz); + return FALSE; + } + + while (1) + { + unsigned int type = bfd_h_get_32 (abfd, ptr); + unsigned int datasz = bfd_h_get_32 (abfd, ptr + 4); + elf_property *prop; + + ptr += 8; + + if ((ptr + datasz) > ptr_end) + { + _bfd_error_handler + (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x\n"), + abfd, note->type, type, datasz); + /* Clear all properties. */ + elf_properties (abfd) = NULL; + return FALSE; + } + + if (type >= GNU_PROPERTY_LOPROC) + { + if (type < GNU_PROPERTY_LOUSER && bed->parse_gnu_properties) + { + enum elf_property_kind kind + = bed->parse_gnu_properties (abfd, type, ptr, datasz); + if (kind == property_corrupt) + { + /* Clear all properties. */ + elf_properties (abfd) = NULL; + return FALSE; + } + else if (kind != property_ignored) + goto next; + } + } + else + { + switch (type) + { + case GNU_PROPERTY_STACK_SIZE: + if (datasz != align_size) + { + _bfd_error_handler + (_("warning: %B: corrupt stack size: 0x%x\n"), + abfd, datasz); + /* Clear all properties. */ + elf_properties (abfd) = NULL; + return FALSE; + } + prop = _bfd_elf_get_property (abfd, type, datasz); + if (datasz == 8) + prop->u.number = bfd_h_get_64 (abfd, ptr); + else + prop->u.number = bfd_h_get_32 (abfd, ptr); + prop->pr_kind = property_number; + goto next; + + case GNU_PROPERTY_NO_COPY_ON_PROTECTED: + if (datasz != 0) + { + _bfd_error_handler + (_("warning: %B: corrupt no copy on protected size: 0x%x\n"), + abfd, datasz); + /* Clear all properties. */ + elf_properties (abfd) = NULL; + return FALSE; + } + prop = _bfd_elf_get_property (abfd, type, datasz); + prop->pr_kind = property_number; + goto next; + + default: + break; + } + } + + _bfd_error_handler + (_("warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x\n"), + abfd, note->type, type); + +next: + ptr += (datasz + (align_size - 1)) & ~ (align_size - 1); + if (ptr == ptr_end) + break; + + if (ptr > (ptr_end - 8)) + goto bad_size; + } + + return TRUE; +} + +/* Merge GNU property BPROP with APROP. If APROP isn't NULL, return TRUE + if APROP is updated. Otherwise, return TRUE if BPROP should be merged + with ABFD. */ + +static bfd_boolean +elf_merge_gnu_properties (bfd *abfd, elf_property *aprop, + elf_property *bprop) +{ + const struct elf_backend_data *bed = get_elf_backend_data (abfd); + unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type; + + if (bed->merge_gnu_properties != NULL + && pr_type >= GNU_PROPERTY_LOPROC + && pr_type < GNU_PROPERTY_LOUSER) + return bed->merge_gnu_properties (abfd, aprop, bprop); + + switch (pr_type) hooks/post-receive -- Repository for Project Archer.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 102673 bytes --] The branch, users/jkratoch/indexcxx has been updated via 19072274ff8508f49bba532d84a6a2039b6ffad0 (commit) via a8cc8a548eccdfd78ad76c826339f56db815bdb8 (commit) via ebe553db6c639d7533650f8482d611109c2f98a9 (commit) via 9be21bb4d4f30975766dfaa7d40b53ba10dcc3a0 (commit) via b8ac4fa43d5d37e4028ba2a7cc2d9b100ee85418 (commit) via e133d00576f3da89e7772149e8d2b6a059d26919 (commit) via 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 (commit) via 0d4c07afb1e5e37e8e296858f8b14a3b4adf950b (commit) via 4daf993d4d4686f2707810af3725038d2f289bbb (commit) via 3ab87b688320e02db1bb7ed4bd45323d57737c77 (commit) via ddef72cdc10d82ba011a7ff81cafbbd3466acf54 (commit) via 792f174f8af4291c222d0a6de919118e488258bc (commit) via 73b58fda3b5976ad1a60feb43695eaf61cdf62b9 (commit) via afe9edbf486c4b27cceb258c11e104377512ec24 (commit) via 0fad29560ee055f1253a8e40bfc09b413117480d (commit) via 31321c8031315c8b5f7c6b73e464f14ad90310b6 (commit) via 64575f782b79e310852e43947bc1b06f24af388e (commit) via 59fa66c53823dc695f78669f40ec2eebab3aec42 (commit) via c76886885987e543f9162809ad86a0a37b394e82 (commit) via e492d2f8ac653b050019865ba1418fc5b057c00b (commit) via a6c21d4a553de184562fd8409a5bcd3f2cc2561a (commit) via 3a3fd0fd2c4c87fdd588c51d879961a49e38f0c1 (commit) via 9bcb1f1630b05594fa86bfd017639cfcc966b11c (commit) via 26fcd539dd38a27259d8179152d617118f016706 (commit) via 101691343ce5f815dc70f6cfd083393e259a18d8 (commit) via 954b63d4c8645f86e40c7ef6c6d60acd2bf019de (commit) via 951787ed6d13f8f441d93fc3f6fb870c234774af (commit) via fdd243b001585c5ca078342608332af77050c867 (commit) via 4895cde29761f6c39fdb6c319ff4666ee39f5d28 (commit) via bd8a901f9e34191e0645a5527556d124ba5c345a (commit) via d35d19584cf56a50b4833ff9c003597e01022f27 (commit) via 22796e972f18c5601cecb0251222411a352836b6 (commit) via a7fc9b6193f830293066479aa439cea924418393 (commit) via 010151c9146eb2a299686e41c714e57c344be8e8 (commit) via d56060f08aa4ed5786042a066f62aa8e474cc0fd (commit) via 6631d36456babbaf4c78b955165c3344f95ac5dd (commit) via e6699019c4f363f804f9646974ab1d5e78785ffc (commit) via 305d16a9beff2a817ee03b3881da68eb3a29edec (commit) via 8bb5723165d4e7308fb69b21a95f396f9e61caaf (commit) via c5d37467b152fe98f02ac1ff8188e32ecd0def95 (commit) via c661778cb6b406d5b55fbf22ff88fbc85ee3f4c2 (commit) via 94522e5f36e542a7f7eccc4e2fa31682e58f812c (commit) via 725bf5cf125783c2a7ca4ab63d3768e220bab2db (commit) via 096c92ddb3a5a959bc638cff3c4ffa0f48a737d7 (commit) via 5dc74d659d1c84b8ffdb4fcbf2ef73dc974d8a5b (commit) via 0550c9559522c84341edcb334af30bc9bf2df9fb (commit) via e3d60dfc000a29959c78bd69b85100aab33f7ab5 (commit) via 5fd69d0ab2c42d2be0781bf3a5d60e1d5b8d05dc (commit) via c6609450b33960a0e9f8c1df045b02f0677e866a (commit) via 2a00d7ce26a6ee15e3712b045c8b7932278ea23b (commit) via 441d7c93782a1b1877bfa903dc8da56a6041bfb4 (commit) via 7296a62a2a237f6b1ad8db8c38b090e9f592c8cf (commit) via 1d15e434f43bc41a07bc7b0648fcb7e6ccbe8dcc (commit) via 4274208406762da7af6dd697f44d8e6895061530 (commit) via 808480f667e41e2fdb66bfdc9d5e047f1aa34a68 (commit) via 8f0dd45fde9de100160f45cad3e537e4e01a5493 (commit) via b1b45502bdef95b57125b56287b45c2eb26707d3 (commit) via 63a5468afa8e2cf8843d87b99e780e9266b31014 (commit) via dae82561a286618acf097ad9894eafba98377f66 (commit) via c08bb8dd9bd9fd101018b287726187d7ed6a0035 (commit) via 10463f39c79843c2c141481a0781091870695b17 (commit) via 4af8774e1559b2a4e098ca0e4fc5daf857c633c1 (commit) via ad3d022a77afdbaba4bb36ff4aa99be52892de42 (commit) via e6ddc3bfedb4665c9d4baa2c85037af25167cdf3 (commit) via bfb8cf9091a174b42beeff3d014173084413af4d (commit) via f5336ca55ca0aca2507ac8c0f1d573d7f6b877ab (commit) via 4f70a994900c2f7b235add7d4131cc069c181cea (commit) via be628ab814f1c90e185d7482d27aa8a991ab5837 (commit) via 8e9e35b1808481735e2d1efbf70ed7396a845d8e (commit) via 16e802b9c085ce354b1ab9e2fd25d00bf7626fa8 (commit) via d28cd78ad820e3a40ac5064b6a30f3a12ce70bf0 (commit) via 711799d513206f6d8fc3dbfa81dcdecdb2ce6ece (commit) via 52d214d3e1b2f6a1382feafbf2984acdb24c0c95 (commit) via 4c404b8be6b1d8759eed50366207fc0e2e47d2b1 (commit) via 156d9eab863f40fc812245cf1213abbe12d192b3 (commit) via 4d89769a7b4e38e94a6e027281b36eff71fc8214 (commit) via 4b217cc72b7ab04e2bea519f9fbd47d8952e08f5 (commit) via 59d3651be7419fafa959f75a3fd46914f5ce395a (commit) via b24b0d6c3be6b95d4b5e8da901e1ef315bd458b4 (commit) via 80a3b8c578e93119183db5f5e34248f843e410a7 (commit) via c83dd8672698bcdf48d27e267e481230075f5900 (commit) via 0e8621a0bec2d0840b853c4104614f345f0569ca (commit) via 67d89901506da74d00a482b7560237dce404b41c (commit) via 93921405a46c0a58eae19fffb92e02416082801a (commit) via ffc2605c41d026cf5710704848b7c3b1cdbdcf49 (commit) via 8f10c9323357ad190c0383f2fc9d394316447905 (commit) via 0a31ccfbd84660a91b133a9915e6f63c30033189 (commit) via e9bb3fbbe81115b196b436cf513f0fd7b41d6a4a (commit) via 53375380e934928af133bca69c1e1912c35e9c73 (commit) via 53e710acd249e1861029b19b7a3d8195e7f28929 (commit) via 5e0e0422137063ff3846886c8eeb64e98e7669d6 (commit) via ab0538b875c054468aa205d8d36550d1223a3bfd (commit) via 5430098f1807e084fe4ff5057040d68435f3d8a2 (commit) via 7c5ded6a00c4817d56cdf04fbc1969bc33b2a930 (commit) via ef6a5ae7bd1dd7b528f5cf368d98056603003c35 (commit) via e4097f5ee55a0d14a6213bccb9da39d4878714c8 (commit) via 537616aaeb44bc698af9848987e7c8e96d550595 (commit) via ae0eee42821865ead8d391bb4f92bd2c136c6d43 (commit) via a6acac06113f4b04fa0333ee2a3ab3025b43ee7c (commit) via 64403bd1832e10aa8324194968f72bdc5feb5aeb (commit) via fbea15088db59186960134d11b8bf98070224d6c (commit) via b43c520dba2f909c9bbb3ff5f2657c1c9010939b (commit) via c03dc33b606c17231e47f37ae0f00d1c9a6c0506 (commit) via ef85eab0ec3d7c88ea05047538d11fe704806cd8 (commit) via 9570835e5597037bee5042edf822675e715b3caf (commit) via 9a85b496ac4e6488d427155c24f87367ab1f6b1b (commit) via a5bef50fdbfadbc6b8911b458580ee91cbfcdafd (commit) via 28d909e539567ab5ecd2bc20680e933869fdf889 (commit) via a70f34c01c7f250858bd62df245c241263200f63 (commit) via 9295a5a95da871bfdeec225a6fc2f52f7655bd1c (commit) via 996812e3d43f78b17b6454d2948cd825ec98c63b (commit) via 845b344fd54ba381a826b271dd33682d1f148438 (commit) via 803bdfe43083475c7df3db38dc96f4e20d05457d (commit) via 8c25b49760b854d0b8451e8ecffeb9860fc41158 (commit) via 947fa9141488c1d39303fcdaa056332d2d0b2599 (commit) via bb1dd176fb6f38ae3cc30dc61ce55a7fbf9d0d7b (commit) via d236cfd444630bd9ddb63edca54c056d5825e673 (commit) via 62adc51030ad83d09e6d20c455616fd9216e4783 (commit) via 6f9dbcd42f2cf034a9a21f46842c08d2e88449db (commit) via 37095d07b470ea94d578cd5ca2da032617200c52 (commit) via aa808707033a46ee063263f4bc1bd06449851621 (commit) via 8473b4472dce9ce87aaad35ff8e975e1487f914e (commit) via 4a44171e07147c6b943412c90184736ca5dbfb4c (commit) via 5e8bf44f4c94d430ac21257a1a953cfccd2ce79b (commit) via b630840c9c22a877b2c6270880a214f7b451f546 (commit) via ae27d3fe76ffb54e7d413a67d8c8d76ca78a9681 (commit) via aebcde5eb475befba571ca9ae7b6c58126d41160 (commit) via a7eaf017f95932eb2d654bd61f4c4a873ba71f77 (commit) via 8170f7693bc0a9442c0aa280197925db92d48ca6 (commit) via 6670ec13726c3afca789672f6235378a5e1f7d71 (commit) via 49f4617bf4b86a0b057f3477d57ffbf7c998b229 (commit) via ae3f8c28134b52414a4c31df2e156615087c46e5 (commit) via ac8f0f721bf0db9ffd0c6602744f1859cb4dd8d2 (commit) via 5c1f54ce0b21b19ac0b2a2c921c9ea2f33bbf5fd (commit) via 498e34425b38f69ceba28707962e3593c281261a (commit) via ba2f91bb5d69127da41b368c7226f596ee449eca (commit) via 1fd6d111905e76dfa7af9fbee5229f3f1d360b4c (commit) via 436252de3e9de546001c4312d0863ce7e10aa200 (commit) via 1379e3aaea5e9454d7e75f293c3fe24c0d11c688 (commit) via 62ecb94c4a2929c1aace3fb5470d2a5100255811 (commit) via 0dedf3777db42712f460123ac0c63c49de5456f5 (commit) via 3944e22b463a62bfc4f6f0a892c6b0ac705e3c43 (commit) via 86abf93a3a56ccdf1c5f15b841ee9d6a0516a2cf (commit) via 0f65a5d84d0a83e5594cf17d04e9f98ab66652a4 (commit) via 9014582538e38055e438b6cce28d165a73abcc60 (commit) via 6ca30fa5613cfa935834f27114d6db4f3854a13e (commit) via 4e9868d4e0c8e45505876901d22c021dd36972a8 (commit) via 9bf2a700667c53003ece783c05e8b355801105f2 (commit) via a121b7c1ac76833018f4fc3adaeddc3147272dd0 (commit) via 995816ba55d952b2823d2ead66495c5cad6dfe58 (commit) via 3e83a920090130052a407621b94b94513f539fda (commit) via 63160a43508fb50d9013df061b2191de71f67b50 (commit) via 9b2eba3dcc6b41f17180e1aee29ed133f942c733 (commit) via 2adadf517063fb1c3b9240bf99ad339968c12f15 (commit) via 0d1f4ceb3904c4c82231adf98f0e84f37bc8d4ea (commit) via 4d75997912d77497fd395fde222513436a7df046 (commit) via 21c8a587ab81a58d3e067551d5503a765f00ec6e (commit) via fb32b4f7005ef8f1bde02394b58b5c5eda9cbf10 (commit) via fdf9e36fa2ed39f0da0dfa5dfdbd8e2452c6cb45 (commit) via 9f33b8b7c19413efbb37638bdba54706e4da8573 (commit) via 67cb5b2da285175d37782f3606992b8052234b00 (commit) via 7a1149643d8621541025e2c70e6391e901c8c7ef (commit) via 69bbf465237819bd7bf2a21a682d695273b3c8cb (commit) via be47f9e8180d7275b0e2b26998472e99be9a2d7b (commit) via bde6261aed330cd8d108c387bfe659a6171525dd (commit) via b38ef47f47bda5509babd768092ceb09ab98828d (commit) via f995bbe8e62fdb5607acb1ee127240cfe50d2b8f (commit) via 0ad9d8c73486e60c5a4963c1b7a0ea7063d69cd2 (commit) via 4a596fe20e93109300e841a3d0ee5f198146ab6d (commit) from 828d7c2b97ad76c73c1a718d1bbaf434d045b937 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 19072274ff8508f49bba532d84a6a2039b6ffad0 Merge: 828d7c2 a8cc8a5 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Apr 22 16:35:04 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit a8cc8a548eccdfd78ad76c826339f56db815bdb8 Author: Alan Modra <amodra@gmail.com> Date: Sat Apr 22 14:09:21 2017 +0930 PowerPC VLE insn set additions opcodes/ * ppc-opc.c (ELEV): Define. (vle_opcodes): Add se_rfgi and e_sc. (powerpc_opcodes): Enable lbdx, lhdx, lwdx, stbdx, sthdx, stwdx for E200Z4. gas/ * testsuite/gas/ppc/vle.s: Format. Add se_rfgi and e_sc. * testsuite/gas/ppc/vle.d: Update. commit ebe553db6c639d7533650f8482d611109c2f98a9 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 21 21:50:22 2017 -0400 doc: Improve documentation about MI thread output I noticed that the documentation on how the info about threads is output in MI is duplicated and not up to date. The duplication is between the "GDB/MI Thread Information" page and the -thread-info result description. I improved the "GDB/MI Thread Information" page a bit and referred to it in the -thread-info doc. This way, the -thread-info doc is more precise (it did not mention the "threads" and "current-thread-id" attributes) and concise. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Thread Information): Add missing fields, re-word some things. (GDB/MI Thread Commands): Describe fields found in the output of -thread-info, remove description of fields in the thread output tuple, replace with a cross-reference to "GDB/MI Thread Information". commit 9be21bb4d4f30975766dfaa7d40b53ba10dcc3a0 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 21 21:45:15 2017 -0400 Remove dead code and "current" field from MI thread output doc The MI documentation says that -thread-info output contains a "current" field in the current thread tuple, with the value "*". Current GDB master does not do this, and I couldn't find any GDB version that did. I suspect that it was never the case. The code that would correspond to this in print_thread_info_1 is essentially dead code. The calls to uiout->text end up in mi_out::do_text, which is empty. This patch removes the documentation bit and the dead code. This "current" field is not necessary, since -thread-info outputs a "current-thread-id" field. gdb/ChangeLog: * thread.c (print_thread_info_1): Remove dead code. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Thread Commands): Remove "current" field from -thread-info output. commit b8ac4fa43d5d37e4028ba2a7cc2d9b100ee85418 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Apr 22 00:00:47 2017 +0000 Automatic date update in version.in commit e133d00576f3da89e7772149e8d2b6a059d26919 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Apr 21 12:03:14 2017 -0700 i386: Avoid dynamic symbol with GOT reference in PIE GOT reference to global symbol in PIE will lead to dynamic symbol. It becomes a problem when "time" or "times" is defined as a variable in an executable, clashing with functions of the same name in libc. If a symbol isn't undefined weak symbol, don't make it dynamic in PIE and generate R_386_RELATIVE relocation. bfd/ PR ld/21402 * elf32-i386.c (elf_i386_link_hash_entry): Add no_finish_dynamic_symbol. (elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0. (elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak symbol, don't make it dynamic in PIE. (elf_i386_relocate_section): If a symbol isn't dynamic in PIE, set no_finish_dynamic_symbol and generate R_386_RELATIVE relocation for R_386_GOT32 (elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol isn't 0. ld/ PR ld/21402 * testsuite/ld-elf/indirect.exp: Don't skip PIE indirect5 and indirect6 tests on i386. commit 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Apr 21 12:00:55 2017 -0700 Require --no-dynamic-linker with -static -E/--dynamic-list When -static -E/--dynamic-list are passed to linker, linker may create executable with dynamic sections which aren't supported by run-time. We require --no-dynamic-linker together with -static -E/--dynamic-list before adding dynamic symbol table to static executable. bfd/ PR ld/19617 PR ld/21086 * elflink.c (elf_link_add_object_symbols): Require --no-dynamic-linker with -E/--dynamic-list when creating dynamic sections. ld/ PR ld/19617 PR ld/21086 * testsuite/ld-elf/pr19617a.d: Pass --no-dynamic-linker to ld. * testsuite/ld-elf/pr19617b.d: Likewise. * testsuite/ld-elf/pr19617c.d: Likewise. *testsuite/ld-i386/pr19636-4d.d: Likewise. * testsuite/ld-elf/readelf.exp: Pass --no-dynamic-linker to ld with --export-dynamic. * testsuite/ld-elf/shared.exp: Pass --no-dynamic-linker to ld with -E. commit 0d4c07afb1e5e37e8e296858f8b14a3b4adf950b Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Fri Apr 21 16:14:37 2017 +0200 release branch: Fix: --enable-werror gdb-8.0-branch ./configure --enable-werror --enable-targets=all aarch64-tdep.c:3045:13: error: âvoid selftests::aarch64_process_record_test()â declared âstaticâ but never defined [-Werror=unused-function] arm-tdep.c:9601:13: error: âvoid selftests::arm_record_test()â declared âstaticâ but never defined [-Werror=unused-function] gdb/ChangeLog 2017-04-21 Jan Kratochvil <jan.kratochvil@redhat.com> * aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if GDB_SELF_TEST. * arm-tdep.c (selftests::arm_record_test): Likewise. commit 4daf993d4d4686f2707810af3725038d2f289bbb Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 21 14:59:27 2017 +0100 Simplify regcache_restore This patches removes the 2nd argument of regcache_restore, because it is only called by regcache_cpy. In regcache_cpy, if regcache_restore is called, dst is not readonly, but src is readonly. So this patch adds an assert that src is readonly in regcache_restore. regcache_cook_read read everything from a readonly regcache cache (src)'s register_buffer, and register status is from ->register_status. gdb: 2017-04-21 Yao Qi <yao.qi@linaro.org> * regcache.c (regcache_restore): Remove argument 2. Replace argument 3 with regcache. Get register status from src->register_status and get register contents from register_buffer (src, regnum). (regcache_cpy): Update. commit 3ab87b688320e02db1bb7ed4bd45323d57737c77 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Fri Apr 21 05:19:06 2017 -0700 opcodes: mark SPARC RETT instructions as v6notv9. This prevents the disassembler to show `return' instructions as `rett' in V9 and later architectures. opcodes/ChangeLog: 2017-04-21 Jose E. Marchesi <jose.marchesi@oracle.com> * sparc-opc.c (sparc_opcodes): Mark RETT instructions as v6notv9. commit ddef72cdc10d82ba011a7ff81cafbbd3466acf54 Author: Nick Clifton <nickc@redhat.com> Date: Fri Apr 21 12:31:59 2017 +0100 Fix shift overflow when parsing an overlarge note value. PR binutils/21378 * readelf.c (print_gnu_build_attribute_name): Check for an overlarge name field. commit 792f174f8af4291c222d0a6de919118e488258bc Author: Nick Clifton <nickc@redhat.com> Date: Fri Apr 21 12:18:06 2017 +0100 Fix detection of illegal AArch64 opcodes that resemble LD1R, LD2R, LD3R and LD4R. PR binutils/21380 opcodes * aarch64-tbl.h (aarch64_opcode_table): Fix masks for LD1R, LD2R, LD3R and LD4R. gas * testsuite/gas/aarch64/illegal-3.s: New file. * testsuite/gas/aarch64/illegal-3.d: New file. commit 73b58fda3b5976ad1a60feb43695eaf61cdf62b9 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri Apr 21 00:00:18 2017 +0000 Automatic date update in version.in commit afe9edbf486c4b27cceb258c11e104377512ec24 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 20 12:33:55 2017 -0700 Skip PIE indirect5 and indirect6 tests on i386 On i386, since GOT reference is needed to access global symbols in PIE, those symbols are made dynamic. Crash happens when there is a reference to the same global symbol with a different symbol type in a shared object. Since mixing different types of the same symbol doesn't work in general, this patch skips those tests on i386 as well as compiles non-PIE indirect5 and indirect6 tests with $NOPIE_LDFLAGS and $NOPIE_CFLAGS. PR ld/21402 * testsuite/ld-elf/indirect.exp: Pass $NOPIE_LDFLAGS and $NOPIE_CFLAGS to non-PIE indirect5 and indirect6 tests. Skip PIE indirect5 and indirect6 tests on i386. commit 0fad29560ee055f1253a8e40bfc09b413117480d Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Apr 13 10:26:05 2017 +0100 ELF/LD: Always consider STB_LOCAL symbols local Do not require forced local (STB_LOCAL) symbols to have a definition in a regular file to be considered to resolve local to the current module, matching `elf_link_renumber_local_hash_table_dynsyms'. In the absence of a regular definition any reference to a STB_LOCAL symbol will have to be garbage collected along with the undefined symbol itself, or the link will eventually fail. Either way the symbol concerned is not going to be external. bfd/ * elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE if forced local. commit 31321c8031315c8b5f7c6b73e464f14ad90310b6 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Apr 20 01:39:30 2017 +0100 MIPS/LD/testsuite: Join `__ehdr_start' tests Complement commit 3807734dbe48 ("PR ld/15428: MIPS/LD/testsuite: Un-KFAIL `__ehdr_start' test 2") and join tests that do not need to be split anymore. ld/ * testsuite/ld-mips-elf/mips-elf.exp: Join `__ehdr_start' tests. commit 64575f782b79e310852e43947bc1b06f24af388e Author: Maciej W. Rozycki <macro@imgtec.com> Date: Wed Apr 19 16:51:17 2017 +0100 MIPS/BFD: Reorder comment about dynamic symbol sorting Move the comment about dynamic symbol sorting next to where it happens. bfd/ * elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about dynamic symbol sorting. commit 59fa66c53823dc695f78669f40ec2eebab3aec42 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 20 07:48:24 2017 -0700 Handle symbol defined in IR and referenced in DSO We need to make an IR symbol visible if it is defined in an IR object and referenced in a dynamic object. When --as-needed is used, since linker removes the IR symbol reference of the dynamic object if the dynamic object isn't needed in the first pass, the IR definition isn't visible to the dynamic object even if the dynamic object becomes needed in the second pass. Add dynamic_ref_after_ir_def to bfd_link_hash_entry to track IR symbol which is defined in an IR object and later referenced in a dynamic object. dynamic_ref_after_ir_def is preserved when restoring the symbol table for unneeded dynamic object. bfd/ PR ld/21382 * elflink.c (elf_link_add_object_symbols): Preserve dynamic_ref_after_ir_def when restoring the symbol table for unneeded dynamic object. include/ PR ld/21382 * bfdlink.h (bfd_link_hash_entry): Add dynamic_ref_after_ir_def. ld/ PR ld/21382 * plugin.c (is_visible_from_outside): Symbol may be visible from outside if dynamic_ref_after_ir_def is set. (plugin_notice): Set dynamic_ref_after_ir_def if the symbol is defined in an IR object and referenced in a dynamic object. * testsuite/ld-plugin/lto.exp: Run PR ld/21382 tests. * testsuite/ld-plugin/pr21382a.c: New file. * testsuite/ld-plugin/pr21382b.c: Likewise. commit c76886885987e543f9162809ad86a0a37b394e82 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu Apr 20 00:00:41 2017 +0000 Automatic date update in version.in commit e492d2f8ac653b050019865ba1418fc5b057c00b Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Apr 19 09:59:14 2017 -0700 x86-64: Handle undefined IFUNC symbol with -z now Since undefined IFUNC symbol is treated as normal FUNC symbol, don't abort on undefined IFUNC symbol in the second PLT. bfd/ PR ld/21401 * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort on on undefined IFUNC symbol in the second PLT. ld/ PR ld/21401 * testsuite/ld-ifunc/ifunc.exp: Add a libtest-2-now.so test with -z now. commit a6c21d4a553de184562fd8409a5bcd3f2cc2561a Author: Pedro Alves <palves@redhat.com> Date: Wed Apr 19 13:16:05 2017 +0100 gdbthread.h: Fix comment typo gdb/ChangeLog: 2017-04-19 Pedro Alves <palves@redhat.com> * gdbthread.h (thread): Add missing closing parenthesis in comment. commit 3a3fd0fd2c4c87fdd588c51d879961a49e38f0c1 Author: Pedro Alves <palves@redhat.com> Date: Wed Apr 19 13:12:23 2017 +0100 Fix removing inferiors from within "thread apply" commands This patch fixes an internal error exposed by a test that does something like: define kill-and-remove kill inferiors 2 remove-inferiors 2 end # Start one inferior. start # Start another inferior. add-inferior 2 inferior 2 start # Kill and remove inferior 1 while inferior 2 is selected. thread apply 1.1 kill-and-remove The internal error looks like this: Thread 1.1 (Thread 0x7ffff7fc2700 (LWP 20677)): [Switching to inferior 1 [process 20677] (gdb/testsuite/outputs/gdb.threads/threadapply/threadapply)] [Switching to thread 1.1 (Thread 0x7ffff7fc2700 (LWP 20677))] #0 main () at src/gdb/testsuite/gdb.threads/threadapply.c:38 38 for (i = 0; i < NUM; i++) src/gdb/inferior.c:66: internal-error: void set_current_inferior(inferior*): Assertion `inf != NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) FAIL: gdb.threads/threadapply.exp: kill_and_remove_inferior: try kill-and-remove: thread apply 1.1 kill-and-remove (GDB internal error) There are several problems around this area of the code. One is that in do_restore_current_thread_cleanup, we do a look up of inferior by ptid, which can find the wrong inferior if the previously selected inferior exited and some other inferior was started with a reused pid (rare, but still...). The other problem is that the "remove-inferiors" command rejects attempts to remove the current inferior, but when we get to "remove-inferiors" in a "thread apply THR remove-inferiors 2" command, the current inferior is the inferior of thread THR, not the previously selected inferior, so if the previously selected inferior was inferior 2, that command still manages to wipe it, and then gdb restores the old selected inferior, which is now a dangling pointer... So the fix here is: - Make make_cleanup_restore_current_thread store a pointer to the previously selected inferior directly, and use it directly instead of doing ptid look ups. - Add a refcount to inferiors, very similar to thread_info's refcount, that is incremented/decremented by make_cleanup_restore_current_thread, and checked before deleting an inferior. To avoid duplication, a new refcounted_object type is added, that both thread_info and inferior inherit from. gdb/ChangeLog: 2017-04-19 Pedro Alves <palves@redhat.com> * common/refcounted-object.h: New file. * gdbthread.h: Include "common/refcounted-object.h". (thread_info): Inherit from refcounted_object and add comments. (thread_info::incref, thread_info::decref) (thread_info::m_refcount): Delete. (thread_info::deletable): Use the refcounted_object::refcount() method. * inferior.c (current_inferior_): Add comment. (set_current_inferior): Increment/decrement refcounts. (prune_inferiors, remove_inferior_command): Skip inferiors marked not-deletable instead of comparing with the current inferior. (initialize_inferiors): Increment the initial inferior's refcount. * inferior.h (struct inferior): Forward declare. Include "common/refcounted-object.h". (current_inferior, set_current_inferior): Move declaration to before struct inferior's definition, and fix comment. (inferior): Inherit from refcounted_object. Add comments. * thread.c (switch_to_thread_no_regs): Reference the thread's inferior pointer directly instead of doing a ptid lookup. (switch_to_no_thread): New function. (switch_to_thread(thread_info *)): New function, factored out from ... (switch_to_thread(ptid_t)): ... this. (restore_current_thread): Delete. (current_thread_cleanup): Remove 'inf_id' and 'was_removable' fields, and add 'inf' field. (do_restore_current_thread_cleanup): Check whether old->inf is alive instead of looking up an inferior by ptid. Use switch_to_thread and switch_to_no_thread. (restore_current_thread_cleanup_dtor): Use old->inf directly instead of lookup up an inferior by id. Decref the inferior. Don't restore 'removable'. (make_cleanup_restore_current_thread): Same the inferior pointer in old, instead of the inferior number. Incref the inferior. Don't save/clear 'removable'. gdb/testsuite/ChangeLog: 2017-04-19 Pedro Alves <palves@redhat.com> * gdb.threads/threadapply.exp (kill_and_remove_inferior): New procedure. (top level): Call it. * lib/gdb.exp (gdb_define_cmd): New procedure. commit 9bcb1f1630b05594fa86bfd017639cfcc966b11c Author: Pedro Alves <palves@redhat.com> Date: Wed Apr 19 13:12:23 2017 +0100 Make inferior::detaching a bool, and introduce scoped_restore::release() I left making inferior::detaching a bool to a separate patch, because doing that makes a make_cleanup_restore_integer call in infrun.c:prepare_for_detach no longer compile (passing a 'bool *' when an 'int *' is expected). Since we want to get rid of cleanups anyway, I looked at converting that to a scoped_restore. However, prepare_for_detach wants to discard the cleanup on success, and scoped_restore doesn't have an equivalent for that. So I added one -- I called it "release()" because it seems like a natural fit in the way standard components call similarly-spirited methods, and, it's also what the proposal for a generic scope guard calls it too, AFAICS: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4189.pdf I've added some scoped_guard unit tests, while at it. gdb/ChangeLog: 2017-04-19 Pedro Alves <palves@redhat.com> * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add unittests/scoped_restore-selftests.c. (SUBDIR_UNITTESTS_OBS): Add scoped_restore-selftests.o. * common/scoped_restore.h (scoped_restore_base): Make "class". (scoped_restore_base::release): New public method. (scoped_restore_base::scoped_restore_base): New protected ctor. (scoped_restore_base::m_saved_var): New protected field. (scoped_restore_tmpl::scoped_restore_tmpl(T*)): Initialize the scoped_restore_base base class instead of m_saved_var directly. (scoped_restore_tmpl::scoped_restore_tmpl(T*, T2)): Likewise. (scoped_restore_tmpl::scoped_restore_tmpl(const scoped_restore_tmpl<T>&)): Likewise. (scoped_restore_tmpl::~scoped_restore_tmpl): Use the saved_var method. (scoped_restore_tmpl::saved_var): New method. (scoped_restore_tmpl::m_saved_var): Delete. * inferior.h (inferior::detaching): Now a bool. * infrun.c (prepare_for_detach): Use a scoped_restore instead of a cleanup. * unittests/scoped_restore-selftests.c: New file. commit 26fcd539dd38a27259d8179152d617118f016706 Author: Pedro Alves <palves@redhat.com> Date: Wed Apr 19 13:06:20 2017 +0100 gdb/Makefile.in: Re-sort SUBDIR_UNITTESTS_SRCS/SUBDIR_UNITTESTS_OBS Note to self: 'o' before 'p'. gdb/ChangeLog: 2017-04-19 Pedro Alves <palves@redhat.com> * Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS): Re-sort in alphabetic order. commit 101691343ce5f815dc70f6cfd083393e259a18d8 Author: Wedson Almeida Filho <wedsonaf@gmail.com> Date: Wed Apr 19 18:02:53 2017 +0930 Correct PE reloc display * peXXigen.c (pe_print_reloc): Correct chunk_end. commit 954b63d4c8645f86e40c7ef6c6d60acd2bf019de Author: Alan Modra <amodra@gmail.com> Date: Wed Apr 19 01:26:57 2017 +0930 Implement -z dynamic-undefined-weak -z nodynamic-undefined-weak is only implemented for x86. (The sparc backend has some support code but doesn't enable the option by including ld/emulparams/dynamic_undefined_weak.sh, and since the support looks like it may be broken I haven't enabled it.) This patch adds the complementary -z dynamic-undefined-weak, extends both options to affect building of shared libraries as well as executables, and adds support for the option on powerpc. include/ * bfdlink.h (struct bfd_link_info <dynamic_undefined_weak>): Revise comment. bfd/ * elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak or make dynamic for info->dynamic_undefined_weak 0 and 1. * elf32-ppc.c:Formatting. (ensure_undefweak_dynamic): Don't make dynamic when info->dynamic_undefined_weak is zero. (allocate_dynrelocs): Discard undefweak dyn_relocs for info->dynamic_undefined_weak. Discard undef dyn_relocs when not default visibility. Discard undef and undefweak dyn_relocs earlier. (ppc_elf_relocate_section): Adjust to suit. * elf64-ppc.c: Formatting. (ensure_undefweak_dynamic): Don't make dynamic when info->dynamic_undefined_weak is zero. (allocate_dynrelocs): Discard undefweak dyn_relocs for info->dynamic_undefined_weak. Discard them earlier. ld/ * ld.texinfo (dynamic-undefined-weak): Document. (nodynamic-undefined-weak): Document that this option now can be used with shared libs. * emulparams/dynamic_undefined_weak.sh: Support -z dynamic-undefined-weak. * emulparams/elf32ppccommon.sh: Include dynamic_undefined_weak.sh. * testsuite/ld-undefined/weak-undef.exp (undef_weak_so), (undef_weak_exe): New. Use them. Add -z dynamic-undefined-weak and -z nodynamic-undefined-weak tests. * Makefile.am: Update powerpc dependencies. * Makefile.in: Regenerate. commit 951787ed6d13f8f441d93fc3f6fb870c234774af Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Apr 19 00:00:40 2017 +0000 Automatic date update in version.in commit fdd243b001585c5ca078342608332af77050c867 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:25 2017 +0100 Eliminate obstack_printf Not used anywhere. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * xml-support.c (obstack_xml_printf): Delete. * xml-support.h (obstack_xml_printf): Delete. commit 4895cde29761f6c39fdb6c319ff4666ee39f5d28 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:25 2017 +0100 gdb_xml_parser: make data fields private and make more functions methods This patch makes the data fields of gdb_xml_parser private, and makes more functions be gdb_xml_parser methods. This is mostly for better encapsulation. Some free functions have their parsing-related guts converted to methods, while the free functions remain, as they're used as expat callbacks. Now their only job is to be small shims that restore back the gdb_xml_parser type, defer work to the corresponding method, and make sure C++ exceptions don't cross expat. More C++-fycation of the XML parsers built on top of gdb_xml_parser could follow, but this was my stopping point. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * xml-support.c (gdb_xml_parser) <use_dtd, dtd_name, parse, vdebug, verror, body_text, start_element, end_element, name, user_data, set_is_xinclude, set_error, expat_parser>: New methods. <name, user_data, expat_parser, scopes, error, last_line, dtd_name, is_xinclude>: Make private and add m_ prefix. (gdb_xml_parser::body_text): New method, based on ... (gdb_xml_body_text): ... this. Adjust. (gdb_xml_parser::vdebug): New method, based on ... (gdb_xml_debug): ... this. Adjust. (gdb_xml_parser::verror): New method, based on ... (gdb_xml_error): ... this. Adjust. (gdb_xml_parser::start_element): New method, based on ... (gdb_xml_start_element): ... this. Adjust. (gdb_xml_start_element_wrapper): Defer to gdb_xml_parser::start_element and gdb_xml_parser::set_error. (gdb_xml_parser::end_element): New method, based on ... (gdb_xml_end_element_wrapper): ... this. Adjust. (gdb_xml_parser::~gdb_xml_parser): Adjust. (gdb_xml_parser::gdb_xml_parser): Adjust to field renames. (gdb_xml_parser::use_dtd): New method, based on ... (gdb_xml_use_dtd): ... this. Adjust. (gdb_xml_parser::parse): New method, based on ... (gdb_xml_parse): ... this. Adjust. (gdb_xml_parse_quick): Adjust to call the parser's parse method. (xinclude_start_include): Adjust to call the parser's name method. (xml_xinclude_default, xml_xinclude_start_doctype) (xml_xinclude_end_doctype): Adjust to call the parser's user_data method. (xml_process_xincludes): Adjust to call parser methods. * xml-support.h (gdb_xml_use_dtd, gdb_xml_parse): Delete declarations. commit bd8a901f9e34191e0645a5527556d124ba5c345a Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:25 2017 +0100 xml-support.c: Use std::string for growing string buffer This main idea behind this patch is this change to xml-support.c:scope_level - /* Body text accumulation. This is an owning pointer. */ - struct obstack *body; + /* Body text accumulation. */ + std::string body; ... which allows simplifying other parts of the code. In target_fetch_description_xml, we want to distinguish between returning "success + empty std::string" and "no success", and gdb::optional is a natural fit for that. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * tracefile-tfile.c (tfile_write_tdesc): Adjust to use gdb::optional<std::string>. * xml-support.c: Include <string>. (scope_level::scope_level(scope_level &&)) (scope_level::~scope_level): Delete. (scope_level::body): Now a std::string. (gdb_xml_body_text, gdb_xml_end_element): Adjust. (xinclude_parsing_data::xinclude_parsing_data): Add 'output' parameter. (xinclude_parsing_data::~xinclude_parsing_data): Delete. (xinclude_parsing_data::output): Now a std::string reference. (xinclude_start_include): Adjust. (xml_xinclude_default): Adjust. (xml_process_xincludes): Add 'output' parameter, and return bool. * xml-support.h (xml_process_xincludes): Add 'output' parameter, and return bool. * xml-tdesc.c: Include <unordered_map> and <string>. (tdesc_xml_cache): Delete. (tdesc_xml_cache_s): Delete. (xml_cache): Now an std::unordered_map. (tdesc_parse_xml): Adjust to use std::string and unordered_map. (target_fetch_description_xml): Change return type to gdb::optional<std::string>, and adjust. * xml-tdesc.h: Include "common/gdb_optional.h" and <string>. (target_fetch_description_xml): Change return type to gdb::optional<std::string>. commit d35d19584cf56a50b4833ff9c003597e01022f27 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:24 2017 +0100 gdb::optional unit tests I thought I'd add some unit tests to make sure gdb::optional behaved correctly, and started writing some, but then thought/realized that libstdc++ already has extensive testing for C++17 std::optional, which gdb::optional is a subset of, and thought why bother writing something from scratch. So I tried copying over a subset of libstdc++'s tests (that ones that cover the subset supported by gdb::optional), and was positively surprised that they mostly work OOTB. This did help shake out a few bugs from what I was implementing in the previous patch to gdb::optional. Still, it's a good chunk of code being copied over, so if people dislike this copying/duplication, I can drop this patch. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add unittests/optional-selftests.c. (SUBDIR_UNITTESTS_OBS): Add optional-selftests.o. * unittests/optional-selftests.c: New file. * unittests/optional/assignment/1.cc: New file. * unittests/optional/assignment/2.cc: New file. * unittests/optional/assignment/3.cc: New file. * unittests/optional/assignment/4.cc: New file. * unittests/optional/assignment/5.cc: New file. * unittests/optional/assignment/6.cc: New file. * unittests/optional/assignment/7.cc: New file. * unittests/optional/cons/copy.cc: New file. * unittests/optional/cons/default.cc: New file. * unittests/optional/cons/move.cc: New file. * unittests/optional/cons/value.cc: New file. * unittests/optional/in_place.cc: New file. * unittests/optional/observers/1.cc: New file. * unittests/optional/observers/2.cc: New file. commit 22796e972f18c5601cecb0251222411a352836b6 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:24 2017 +0100 More gdb::optional features Currently we can't use gdb::optional<T> as function return type, because gdb::optional's copy ctor is deleted. For example, with: gdb::optional<int> function () { gdb::optional<int> opt; .... return opt; we get: src/gdb/foo.c: In function âgdb::optional<int> foo()â: src/gdb/foo.c:75:10: error: use of deleted function âgdb::optional<T>::optional(const gdb::optional<T>&) [with T = int]â return opt; ^ In file included from src/gdb/foo.c:68:0: src/gdb/common/gdb_optional.h:53:3: note: declared here optional (const optional &other) = delete; ^ I started by fixing that, and then ran into another missing feature, also fixed by this patch. The next feature I'm missing most from gdb::optional<T> compared to std::optional<T> is construction/move/assignment from a T, instead of having to default construct an gdb::optional and then use optional::emplace(....). For example: gdb::optional<std::string> function () { gdb::optional<std::string> opt; std::string str; ... opt.emplace (std::move (str)); return opt; vs gdb::optional<std::string> function () { std::string str; ... return str; The copy/move ctor/assign methods weren't initialy implemented because std::optional supports construction from a type U if U is convertible to T too, and has rules to decide whether the ctors are explicit/implicit based on that, and rules for whether the ctor should be trivial or not, etc., which leads to a much more complicated implementation. If we stick to supporting copy/move construction/assignment of/to an optional<T> from exactly only optional<T> and T, then all that conversion-related complication disappears, and we still gain convenience in most use cases. The patch also makes emplace return a reference to the constructor object, per C++17 std::optional, and adds a reset method, againt because std::optional has one and it's trivial to support it. These two changes are a requirement of the gdb::optional unit testing patch that will follow. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * common/gdb_optional.h: Include common/traits.h. (in_place_t): New type. (in_place): New constexpr variable. (optional::optional): Remove member initialization of m_instantiated. (optional::optional(in_place_t...)): New constructor. (optional::~optional): Use reset. (optional::optional(const optional&)): New. (optional::optional(const optional&&)): New. (optional::optional(T &)): New. (optional::optional(T &&)): New. (operator::operator=(const optional &)): New. (operator::operator=(optional &&)): New. (operator::operator= (const T &)) (operator::operator= (T &&)) (operator::emplace (Args &&... args)): Return a T&. Use reset. (operator::reset): New. (operator::m_instantiated):: Add in-class initializer. * common/traits.h: Include <type_traits>. (struct And): New types. commit a7fc9b6193f830293066479aa439cea924418393 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:24 2017 +0100 xml-support.c: Use std::vector scope_level::scope_level needed both a move ctor and a dtor explicitly coded, but those will be eliminated in a following patch. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * xml-support.c: Include <vector>. (scope_level::scope_level(const gdb_xml_element *)) (scope_level::scope_level(scope_level&&)): New. (scope_level::~scope_level): New. (scope_level_s): Delete. (gdb_xml_parser::scopes): Now a std::vector. (gdb_xml_body_text, gdb_xml_start_element, gdb_xml_end_element): Use std::vector. (gdb_xml_parser::~gdb_xml_parser): Remove now unnecessary scope cleanup code. (gdb_xml_parser::gdb_xml_parser): Remove explicit initialization of the scopes member. Use std::vector::emplace_back. commit 010151c9146eb2a299686e41c714e57c344be8e8 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 18 21:39:24 2017 +0100 C++-ify gdb/xml-support.c a bit to eliminate cleanups Basically convert cleanups to destructors in gdb_xml_parser and xinclude_parsing_data, and then allocate objects of those types on the stack. More C++-ification is possible / will follow, but this removes a few make_cleanup calls already. gdb/ChangeLog: 2017-04-18 Pedro Alves <palves@redhat.com> * xml-support.c (gdb_xml_parser): Add ctor/dtor. Make is_xinclude a bool. (gdb_xml_end_element): Change type of first parameter. (gdb_xml_cleanup): Rename to ... (gdb_xml_parser::~gdb_xml_parser): ... this. (gdb_xml_create_parser_and_cleanup): Delete with ... (gdb_xml_parser::gdb_xml_parser): ... creation parts factored out to this new ctor. (gdb_xml_parse_quick): Create a local gdb_xml_parser instead of using gdb_xml_create_parser_and_cleanup. (xinclude_parsing_data): Add ctor/dtor. (xml_xinclude_cleanup): Delete. (xml_process_xincludes): Create a local xinclude_parsing_data instead of heap-allocating one. Create a local gdb_xml_parser instead of heap-allocating one with gdb_xml_create_parser_and_cleanup. commit d56060f08aa4ed5786042a066f62aa8e474cc0fd Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 18 09:44:32 2017 -0700 PR threads/20743: Don't attempt to suspend or resume exited threads. When resuming a native FreeBSD process, ignore exited threads when suspending/resuming individual threads prior to continuing the process. gdb/ChangeLog: PR threads/20743 * fbsd-nat.c (resume_one_thread_cb): Remove. (resume_all_threads_cb): Remove. (fbsd_resume): Use ALL_NON_EXITED_THREADS instead of iterate_over_threads. commit 6631d36456babbaf4c78b955165c3344f95ac5dd Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Apr 18 00:00:36 2017 +0000 Automatic date update in version.in commit e6699019c4f363f804f9646974ab1d5e78785ffc Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 17 07:47:17 2017 -0700 Put soname in the version definition section commit 902e9fc76a0ec9f642cefa71ef88cca1c675ad54 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue Feb 21 01:46:42 2017 +0000 PR ld/20828: Move symbol version processing ahead of GC symbol sweep breaks version definition with --version-script --soname. This patch fixes it by getting soname index before generating the version definition section. bfd/ PR ld/21389 * elflink.c (bfd_elf_size_dynamic_sections): Get soname index before generating the version definition section. ld/ PR ld/21389 * testsuite/ld-elf/pr21389.map: New file. * testsuite/ld-elf/pr21389.s: Likewise. * testsuite/ld-elf/pr21389a.d: Likewise. * testsuite/ld-elf/pr21389b.d: Likewise. * testsuite/ld-elf/pr21389c.d: Likewise. commit 305d16a9beff2a817ee03b3881da68eb3a29edec Author: Joel Brobecker <brobecker@adacore.com> Date: Mon Apr 17 07:30:29 2017 -0700 Update NEWS post GDB 8.0 branch creation. gdb/ChangeLog: * NEWS: Create a new section for the next release branch. Rename the section of the current branch, now that it has been cut. commit 8bb5723165d4e7308fb69b21a95f396f9e61caaf Author: Joel Brobecker <brobecker@adacore.com> Date: Mon Apr 17 07:20:49 2017 -0700 Bump version to 8.0.50.DATE-git Now that the GDB 8.0 branch has been created, we should bump the GDB version accordingly. gdb/ChangeLog: GDB 8.0 branch created (725bf5cf125783c2a7ca4ab63d3768e220bab2db): * version.in: Bump version to 7.99.90.DATE-git. commit c5d37467b152fe98f02ac1ff8188e32ecd0def95 Author: Alan Modra <amodra@gmail.com> Date: Mon Apr 17 18:33:52 2017 +0930 Undo dynamic symbol state after regular object sym type mismatch We already handle the case of an object file first defining a symbol that a later shared library also defines where the symbol types are incompatible. This patch handles the reverse, when a later object file defines an incompatible symbol defined by an earlier shared library. bfd/ * elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking state when a regular object file defines a symbol with incompatible type to that defined by an earlier shared lib. ld/ * testsuite/ld-elf/indirect5a.c, * testsuite/ld-elf/indirect5b.c, * testsuite/ld-elf/indirect5.map, * testsuite/ld-elf/indirect5.out: New test. * testsuite/ld-elf/indirect6a.c: Likewise. * testsuite/ld-elf/indirect.exp (check_dynamic_syms): New proc. Run new tests and check dynsyms. commit c661778cb6b406d5b55fbf22ff88fbc85ee3f4c2 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Apr 17 00:00:33 2017 +0000 Automatic date update in version.in commit 94522e5f36e542a7f7eccc4e2fa31682e58f812c Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Apr 16 00:00:35 2017 +0000 Automatic date update in version.in commit 725bf5cf125783c2a7ca4ab63d3768e220bab2db Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Apr 15 00:00:36 2017 +0000 Automatic date update in version.in ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 + bfd/ChangeLog | 284 ++++ bfd/aout-cris.c | 4 +- bfd/aoutx.h | 17 +- bfd/archive.c | 4 +- bfd/bfd-in2.h | 3 +- bfd/bfd.c | 360 +++--- bfd/binary.c | 5 +- bfd/coff-arm.c | 11 +- bfd/coff-mcore.c | 2 +- bfd/coff-ppc.c | 2 +- bfd/coff-rs6000.c | 9 +- bfd/coff-tic4x.c | 4 +- bfd/coff-tic80.c | 2 +- bfd/coffcode.h | 23 +- bfd/coffgen.c | 21 +- bfd/cofflink.c | 19 +- bfd/coffswap.h | 10 +- bfd/config.bfd | 1 - bfd/cpu-arm.c | 4 +- bfd/elf-eh-frame.c | 16 +- bfd/elf-m10300.c | 4 +- bfd/elf-properties.c | 20 +- bfd/elf-s390-common.c | 2 +- bfd/elf.c | 64 +- bfd/elf32-arc.c | 8 +- bfd/elf32-arm.c | 78 +- bfd/elf32-avr.c | 3 +- bfd/elf32-bfin.c | 13 +- bfd/elf32-frv.c | 23 +- bfd/elf32-i386.c | 84 +- bfd/elf32-iq2000.c | 8 +- bfd/elf32-m32c.c | 9 +- bfd/elf32-m32r.c | 4 +- bfd/elf32-mep.c | 6 +- bfd/elf32-microblaze.c | 20 +- bfd/elf32-msp430.c | 19 +- bfd/elf32-nds32.c | 8 +- bfd/elf32-ppc.c | 46 +- bfd/elf32-rl78.c | 20 +- bfd/elf32-rx.c | 5 +- bfd/elf32-s390.c | 2 +- bfd/elf32-score.c | 5 +- bfd/elf32-score7.c | 5 +- bfd/elf32-sh64.c | 27 +- bfd/elf32-sparc.c | 1 + bfd/elf32-spu.c | 2 +- bfd/elf32-v850.c | 28 +- bfd/elf32-vax.c | 27 +- bfd/elf32-visium.c | 5 +- bfd/elf64-ia64-vms.c | 45 +- bfd/elf64-mmix.c | 41 +- bfd/elf64-ppc.c | 24 +- bfd/elf64-s390.c | 2 +- bfd/elf64-sh64.c | 20 +- bfd/elf64-sparc.c | 20 +- bfd/elf64-x86-64.c | 34 +- bfd/elfcode.h | 13 +- bfd/elflink.c | 176 ++- bfd/elfnn-aarch64.c | 4 +- bfd/elfnn-ia64.c | 30 +- bfd/elfxx-mips.c | 52 +- bfd/elfxx-sparc.c | 214 +++- bfd/elfxx-sparc.h | 5 + bfd/hpux-core.c | 6 +- bfd/ieee.c | 8 +- bfd/ihex.c | 4 +- bfd/linker.c | 3 +- bfd/merge.c | 4 +- bfd/mmo.c | 116 +- bfd/oasys.c | 3 +- bfd/opncls.c | 231 ++-- bfd/pdp11.c | 9 +- bfd/peXXigen.c | 15 +- bfd/po/SRC-POTFILES.in | 1 + bfd/rs6000-core.c | 3 +- bfd/version.h | 2 +- bfd/vms-alpha.c | 9 +- bfd/xcofflink.c | 8 +- binutils/ChangeLog | 51 + binutils/doc/binutils.texi | 16 +- binutils/dwarf.c | 2 +- binutils/objcopy.c | 205 +++- binutils/readelf.c | 63 +- config.sub | 6 +- gas/ChangeLog | 61 + gas/config/tc-ppc.c | 1 - gas/config/tc-xtensa.c | 66 +- gas/testsuite/gas/aarch64/illegal-3.d | 14 + gas/testsuite/gas/aarch64/illegal-3.s | 9 + gas/testsuite/gas/elf/section12a.d | 4 +- gas/testsuite/gas/ppc/altivec2.d | 182 +-- gas/testsuite/gas/ppc/altivec2.s | 48 - gas/testsuite/gas/ppc/htm.d | 4 +- gas/testsuite/gas/ppc/vle.d | 4 + gas/testsuite/gas/ppc/vle.s | 258 ++-- gas/testsuite/gas/wasm32/allinsn.d | 64 +- gas/testsuite/gas/wasm32/disass-2.d | 9 + gas/testsuite/gas/wasm32/disass-2.s | 3 + gas/testsuite/gas/wasm32/disass.d | 9 + gas/testsuite/gas/wasm32/disass.s | 3 + gas/testsuite/gas/wasm32/reloc.d | 7 +- gas/testsuite/gas/wasm32/reloc.s | 2 +- gas/testsuite/gas/wasm32/wasm32.exp | 4 +- gas/testsuite/gas/xtensa/all.exp | 2 + gas/testsuite/gas/xtensa/auto-litpools-first1.d | 12 + gas/testsuite/gas/xtensa/auto-litpools-first1.s | 3 + gas/testsuite/gas/xtensa/auto-litpools-first2.d | 15 + gas/testsuite/gas/xtensa/auto-litpools-first2.s | 3 + gas/testsuite/gas/xtensa/auto-litpools.d | 6 +- gdb/ChangeLog | 1354 ++++++++++++++++++++ gdb/Makefile.in | 12 +- gdb/NEWS | 4 +- gdb/aarch64-tdep.c | 4 + gdb/ada-exp.y | 4 +- gdb/ada-lang.c | 60 +- gdb/ada-lang.h | 8 +- gdb/aix-thread.c | 6 +- gdb/alpha-tdep.c | 2 + gdb/arc-tdep.c | 2 +- gdb/arm-tdep.c | 15 +- gdb/avr-tdep.c | 3 + gdb/ax-gdb.c | 32 +- gdb/bcache.c | 2 +- gdb/bcache.h | 2 +- gdb/bfin-tdep.c | 6 +- gdb/break-catch-throw.c | 37 +- gdb/breakpoint.c | 422 +++---- gdb/breakpoint.h | 217 ++-- gdb/bsd-kvm.c | 2 +- gdb/bsd-uthread.c | 6 +- gdb/buildsym.c | 2 +- gdb/buildsym.h | 4 +- gdb/c-exp.y | 10 +- gdb/c-lang.c | 9 + gdb/c-lang.h | 4 +- gdb/c-varobj.c | 2 +- gdb/charset.c | 54 +- gdb/charset.h | 6 +- gdb/cli/cli-cmds.c | 83 +- gdb/cli/cli-decode.c | 13 +- gdb/cli/cli-dump.c | 15 +- gdb/cli/cli-script.c | 87 +- gdb/cli/cli-script.h | 9 +- gdb/cli/cli-utils.c | 6 +- gdb/cli/cli-utils.h | 22 +- gdb/coff-pe-read.c | 2 +- gdb/command.h | 3 +- gdb/common/common-utils.c | 11 + gdb/common/common-utils.h | 5 + gdb/common/common.m4 | 3 +- gdb/common/gdb_optional.h | 132 ++- gdb/{terminal.h => common/gdb_termios.h} | 42 +- gdb/common/print-utils.c | 2 +- gdb/common/ptid.c | 69 +- gdb/common/ptid.h | 173 ++- gdb/common/refcounted-object.h | 56 + gdb/common/scoped_restore.h | 36 +- gdb/common/traits.h | 26 + gdb/compile/compile-c-support.c | 6 +- gdb/compile/compile-loc2c.c | 20 +- gdb/compile/compile.c | 12 +- gdb/completer.c | 76 +- gdb/completer.h | 8 +- gdb/configure | 2 +- gdb/configure.tgt | 4 + gdb/corefile.c | 2 +- gdb/corelow.c | 2 +- gdb/cp-name-parser.y | 4 +- gdb/cp-valprint.c | 2 +- gdb/cris-tdep.c | 6 +- gdb/d-exp.y | 10 +- gdb/d-lang.h | 2 +- gdb/darwin-nat.c | 16 +- gdb/dbxread.c | 80 +- gdb/defs.h | 35 +- gdb/disasm.c | 2 +- gdb/doc/ChangeLog | 14 + gdb/doc/gdb.texinfo | 77 +- gdb/dwarf2read.c | 29 +- gdb/elfread.c | 2 +- gdb/event-top.c | 4 +- gdb/exceptions.c | 4 +- gdb/exceptions.h | 3 +- gdb/expprint.c | 14 +- gdb/expression.h | 6 +- gdb/f-exp.y | 8 +- gdb/f-lang.c | 2 +- gdb/f-lang.h | 2 +- gdb/fbsd-nat.c | 62 +- gdb/fbsd-tdep.c | 2 +- gdb/fork-child.c | 383 ++++--- gdb/frv-tdep.c | 6 +- gdb/gdb-dlfcn.c | 45 +- gdb/gdb-dlfcn.h | 24 +- gdb/gdbarch.c | 54 +- gdb/gdbarch.h | 15 +- gdb/gdbarch.sh | 12 +- gdb/gdbcore.h | 2 +- gdb/gdbserver/ChangeLog | 41 + gdb/gdbserver/configure | 2 +- gdb/gdbserver/gdbreplay.c | 2 +- gdb/gdbserver/linux-x86-low.c | 2 +- gdb/gdbserver/remote-utils.c | 10 +- gdb/gdbserver/remote-utils.h | 4 +- gdb/gdbserver/server.c | 123 +- gdb/gdbserver/terminal.h | 51 - gdb/gdbserver/win32-low.c | 5 - gdb/gdbthread.h | 32 +- gdb/gdbtypes.c | 8 +- gdb/gdbtypes.h | 1 + gdb/gnu-nat.c | 5 +- gdb/gnu-v3-abi.c | 54 +- gdb/go-exp.y | 10 +- gdb/go-lang.h | 2 +- gdb/go32-nat.c | 10 +- gdb/guile/guile.c | 35 +- gdb/guile/scm-breakpoint.c | 16 +- gdb/guile/scm-cmd.c | 4 +- gdb/guile/scm-param.c | 2 +- gdb/guile/scm-ports.c | 3 +- gdb/h8300-tdep.c | 10 +- gdb/hppa-tdep.c | 4 +- gdb/i386-cygwin-tdep.c | 2 +- gdb/i386-go32-tdep.c | 72 + gdb/i386-nto-tdep.c | 3 + gdb/i386-tdep.c | 49 +- gdb/i386-tdep.h | 5 + gdb/ia64-tdep.c | 2 +- gdb/inf-ptrace.c | 6 +- gdb/infcmd.c | 19 +- gdb/inferior.c | 61 +- gdb/inferior.h | 105 +- gdb/inflow.c | 1 + gdb/inflow.h | 2 +- gdb/infrun.c | 17 +- gdb/jit.c | 42 +- gdb/language.c | 10 +- gdb/language.h | 8 +- gdb/linespec.c | 69 +- gdb/linespec.h | 45 +- gdb/linux-nat.c | 7 +- gdb/linux-tdep.c | 2 +- gdb/linux-thread-db.c | 6 +- gdb/lm32-tdep.c | 2 +- gdb/location.c | 121 +-- gdb/location.h | 55 +- gdb/m2-exp.y | 4 +- gdb/m2-lang.h | 2 +- gdb/m32r-tdep.c | 10 +- gdb/m68hc11-tdep.c | 2 +- gdb/m88k-tdep.c | 2 +- gdb/macroexp.c | 28 +- gdb/main.c | 6 +- gdb/mdebugread.c | 46 +- gdb/memattr.c | 2 +- gdb/mep-tdep.c | 2 +- gdb/mi/mi-cmd-break.c | 27 +- gdb/mi/mi-cmd-catch.c | 8 +- gdb/mi/mi-cmd-disas.c | 2 +- gdb/mi/mi-cmd-env.c | 16 +- gdb/mi/mi-cmd-file.c | 6 +- gdb/mi/mi-cmd-info.c | 10 +- gdb/mi/mi-cmd-stack.c | 18 +- gdb/mi/mi-cmd-target.c | 6 +- gdb/mi/mi-cmd-var.c | 36 +- gdb/mi/mi-cmds.h | 2 +- gdb/mi/mi-interp.c | 2 +- gdb/mi/mi-main.c | 119 +- gdb/mi/mi-parse.c | 55 +- gdb/mi/mi-parse.h | 13 +- gdb/mi/mi-symbol-cmds.c | 2 +- gdb/mips-tdep.c | 6 +- gdb/mn10300-tdep.c | 10 +- gdb/moxie-tdep.c | 5 +- gdb/msp430-tdep.c | 6 +- gdb/nat/linux-osdata.c | 6 +- gdb/nds32-tdep.c | 3 + gdb/nto-procfs.c | 9 +- gdb/nto-tdep.c | 4 +- gdb/nto-tdep.h | 2 +- gdb/objc-lang.c | 8 +- gdb/objc-lang.h | 7 +- gdb/objfiles.c | 2 +- gdb/objfiles.h | 2 +- gdb/obsd-nat.c | 2 +- gdb/osdata.c | 15 +- gdb/osdata.h | 6 +- gdb/p-exp.y | 6 +- gdb/p-lang.h | 2 +- gdb/parser-defs.h | 6 +- gdb/printcmd.c | 18 +- gdb/proc-api.c | 12 +- gdb/proc-events.c | 6 +- gdb/proc-flags.c | 4 +- gdb/proc-utils.h | 2 +- gdb/proc-why.c | 4 +- gdb/procfs.c | 28 +- gdb/psymtab.c | 5 +- gdb/python/py-arch.c | 7 +- gdb/python/py-block.c | 2 +- gdb/python/py-breakpoint.c | 28 +- gdb/python/py-cmd.c | 20 +- gdb/python/py-event.c | 6 +- gdb/python/py-event.h | 4 +- gdb/python/py-evts.c | 2 +- gdb/python/py-finishbreakpoint.c | 20 +- gdb/python/py-framefilter.c | 2 +- gdb/python/py-inferior.c | 40 +- gdb/python/py-infthread.c | 2 +- gdb/python/py-lazy-string.c | 2 +- gdb/python/py-linetable.c | 26 +- gdb/python/py-objfile.c | 12 +- gdb/python/py-param.c | 2 +- gdb/python/py-progspace.c | 2 +- gdb/python/py-record-btrace.c | 4 +- gdb/python/py-record.c | 2 +- gdb/python/py-symbol.c | 15 +- gdb/python/py-symtab.c | 4 +- gdb/python/py-type.c | 10 +- gdb/python/py-unwind.c | 2 +- gdb/python/py-value.c | 14 +- gdb/python/python-internal.h | 121 ++ gdb/python/python.c | 45 +- gdb/ravenscar-thread.c | 8 +- gdb/record-btrace.c | 8 +- gdb/record-full.c | 2 +- gdb/record.c | 14 +- gdb/regcache.c | 15 +- gdb/remote-fileio.c | 2 +- gdb/remote-sim.c | 9 +- gdb/remote.c | 26 +- gdb/reverse.c | 2 +- gdb/rl78-tdep.c | 2 +- gdb/rs6000-aix-tdep.c | 5 + gdb/rs6000-nat.c | 10 +- gdb/rs6000-tdep.c | 4 +- gdb/rust-exp.y | 2 +- gdb/rust-lang.c | 2 +- gdb/rust-lang.h | 2 +- gdb/rx-tdep.c | 4 +- gdb/ser-unix.c | 1 + gdb/serial.h | 2 +- gdb/sh-tdep.c | 26 +- gdb/sh64-tdep.c | 2 +- gdb/sol-thread.c | 8 +- gdb/sol2-tdep.c | 2 +- gdb/sol2-tdep.h | 2 +- gdb/solib-darwin.c | 2 +- gdb/sparc-tdep.c | 3 + gdb/sparc64-tdep.c | 3 + gdb/spu-tdep.c | 12 +- gdb/stabsread.c | 129 +- gdb/stabsread.h | 10 +- gdb/symfile.c | 50 +- gdb/symfile.h | 4 +- gdb/symtab.c | 11 +- gdb/symtab.h | 6 +- gdb/target-delegates.c | 18 +- gdb/target-descriptions.c | 8 +- gdb/target.c | 18 +- gdb/target.h | 14 +- gdb/terminal.h | 57 - gdb/testsuite/ChangeLog | 32 + .../gdb.cp/wide_char_types.c} | 27 +- gdb/testsuite/gdb.cp/wide_char_types.exp | 181 +++ gdb/testsuite/gdb.threads/threadapply.exp | 166 +++- gdb/testsuite/gdb.trace/tsv.exp | 4 + gdb/testsuite/lib/gdb.exp | 19 + gdb/thread.c | 453 +++---- gdb/top.c | 7 +- gdb/top.h | 2 +- gdb/tracefile-tfile.c | 18 +- gdb/tracefile.c | 2 +- gdb/tracepoint.c | 50 +- gdb/tracepoint.h | 2 +- gdb/tui/tui-data.c | 2 +- gdb/tui/tui-data.h | 2 +- gdb/tui/tui-source.c | 2 +- gdb/tui/tui-source.h | 2 +- gdb/tui/tui-win.c | 11 +- gdb/tui/tui-windata.c | 2 +- gdb/tui/tui-windata.h | 2 +- gdb/tui/tui-winsource.c | 2 +- gdb/tui/tui.c | 2 +- gdb/unittests/optional-selftests.c | 94 ++ gdb/unittests/optional/assignment/1.cc | 195 +++ gdb/unittests/optional/assignment/2.cc | 193 +++ gdb/unittests/optional/assignment/3.cc | 156 +++ gdb/unittests/optional/assignment/4.cc | 156 +++ gdb/unittests/optional/assignment/5.cc | 80 ++ gdb/unittests/optional/assignment/6.cc | 90 ++ gdb/unittests/optional/assignment/7.cc | 29 + gdb/unittests/optional/cons/copy.cc | 126 ++ gdb/unittests/optional/cons/default.cc | 58 + gdb/unittests/optional/cons/move.cc | 124 ++ gdb/unittests/optional/cons/value.cc | 294 +++++ gdb/unittests/optional/in_place.cc | 65 + gdb/unittests/optional/observers/1.cc | 31 + gdb/unittests/optional/observers/2.cc | 35 + gdb/unittests/ptid-selftests.c | 153 +++ gdb/unittests/scoped_restore-selftests.c | 110 ++ gdb/utils.c | 13 +- gdb/utils.h | 4 +- gdb/varobj.c | 2 +- gdb/varobj.h | 2 +- gdb/vax-tdep.c | 2 +- gdb/version.in | 2 +- gdb/warning.m4 | 2 +- gdb/windows-nat.c | 14 +- gdb/windows-tdep.c | 3 + gdb/xcoffread.c | 8 +- gdb/xml-support.c | 573 ++++----- gdb/xml-support.h | 36 +- gdb/xml-tdesc.c | 84 +- gdb/xml-tdesc.h | 17 +- gdb/xstormy16-tdep.c | 5 +- gdb/xtensa-tdep.c | 5 +- gdb/xtensa-tdep.h | 2 +- include/ChangeLog | 28 + include/bfdlink.h | 9 +- include/dis-asm.h | 11 +- include/opcode/ppc.h | 100 +- ld/ChangeLog | 166 +++ ld/Makefile.am | 21 +- ld/Makefile.in | 21 +- ld/emulparams/dynamic_undefined_weak.sh | 13 +- ld/emulparams/elf32ppccommon.sh | 2 + ld/emultempl/pe.em | 64 +- ld/emultempl/pep.em | 116 +- ld/ld.texinfo | 40 +- ld/pe-dll.c | 58 +- ld/pe-dll.h | 4 +- ld/pep-dll.h | 5 +- ld/plugin.c | 23 +- ld/testsuite/ld-elf/indirect.exp | 76 ++ ld/testsuite/ld-elf/indirect5.map | 6 + ld/testsuite/ld-elf/indirect5.out | 2 + ld/testsuite/ld-elf/indirect5a.c | 9 + ld/testsuite/ld-elf/indirect5b.c | 15 + ld/testsuite/ld-elf/indirect6a.c | 9 + ld/testsuite/ld-elf/init-fini-arrays.d | 4 +- ld/testsuite/ld-elf/init-fini-arrays.s | 13 +- ld/testsuite/ld-elf/mbind1a.d | 8 - ld/testsuite/ld-elf/mbind1b.d | 8 - ld/testsuite/ld-elf/mbind1c.d | 8 - ld/testsuite/ld-elf/mbind2a.s | 8 +- ld/testsuite/ld-elf/pr19579a.c | 2 +- ld/testsuite/ld-elf/pr19617a.d | 2 +- ld/testsuite/ld-elf/pr19617b.d | 2 +- ld/testsuite/ld-elf/pr19617c.d | 2 +- ld/testsuite/ld-elf/pr21086.c | 8 + ld/testsuite/ld-elf/pr21086.list | 3 + ld/testsuite/ld-elf/pr21389.map | 6 + ld/testsuite/ld-elf/pr21389.s | 5 + ld/testsuite/ld-elf/pr21389a.d | 10 + ld/testsuite/ld-elf/pr21389b.d | 8 + ld/testsuite/ld-elf/pr21389c.d | 8 + ld/testsuite/ld-elf/readelf.exp | 2 +- ld/testsuite/ld-elf/shared.exp | 21 +- ld/testsuite/ld-elfvsb/elfvsb.exp | 10 +- ld/testsuite/ld-i386/pr19636-4d.d | 2 +- ld/testsuite/ld-ifunc/ifunc.exp | 8 + ld/testsuite/ld-mips-elf/mips-elf.exp | 3 +- ld/testsuite/ld-pe/pe.exp | 2 + ld/testsuite/ld-pe/weakdef-1.d | 8 + ld/testsuite/ld-pe/weakdef-1.s | 19 + ld/testsuite/ld-plugin/lto.exp | 9 + ld/testsuite/ld-plugin/pr21382a.c | 17 + ld/testsuite/ld-plugin/pr21382b.c | 7 + ld/testsuite/ld-undefined/weak-undef.exp | 103 ++- ld/testsuite/ld-x86-64/x86-64.exp | 4 +- ld/testsuite/lib/ld-lib.exp | 11 +- opcodes/ChangeLog | 84 ++ opcodes/Makefile.am | 1 + opcodes/Makefile.in | 2 + opcodes/aarch64-tbl.h | 16 +- opcodes/arc-dis.c | 4 +- opcodes/arm-dis.c | 4 +- opcodes/configure | 2 +- opcodes/configure.ac | 2 +- opcodes/disassemble.c | 14 + opcodes/epiphany-desc.c | 5 +- opcodes/fr30-desc.c | 5 +- opcodes/frv-desc.c | 1 + opcodes/ip2k-desc.c | 5 +- opcodes/iq2000-desc.c | 5 +- opcodes/lm32-desc.c | 5 +- opcodes/m32c-desc.c | 5 +- opcodes/m32r-desc.c | 5 +- opcodes/mep-desc.c | 5 +- opcodes/mt-desc.c | 5 +- opcodes/or1k-desc.c | 5 +- opcodes/po/POTFILES.in | 1 + opcodes/po/opcodes.pot | 18 +- opcodes/ppc-dis.c | 27 +- opcodes/ppc-opc.c | 164 ++-- opcodes/sparc-opc.c | 14 +- opcodes/vax-dis.c | 2 +- opcodes/wasm32-dis.c | 520 ++++++++ opcodes/xc16x-desc.c | 5 +- opcodes/xstormy16-desc.c | 5 +- sim/aarch64/ChangeLog | 9 + sim/aarch64/simulator.c | 193 +++ sim/testsuite/sim/aarch64/ChangeLog | 6 + sim/testsuite/sim/aarch64/fcmXX.s | 77 ++ sim/testsuite/sim/aarch64/fcvtl.s | 59 + 507 files changed, 11533 insertions(+), 5021 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/illegal-3.d create mode 100644 gas/testsuite/gas/aarch64/illegal-3.s create mode 100644 gas/testsuite/gas/wasm32/disass-2.d create mode 100644 gas/testsuite/gas/wasm32/disass-2.s create mode 100644 gas/testsuite/gas/wasm32/disass.d create mode 100644 gas/testsuite/gas/wasm32/disass.s create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first1.d create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first1.s create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first2.d create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first2.s copy gdb/{terminal.h => common/gdb_termios.h} (68%) create mode 100644 gdb/common/refcounted-object.h delete mode 100644 gdb/gdbserver/terminal.h create mode 100644 gdb/i386-go32-tdep.c copy gdb/{sol2-tdep.h => testsuite/gdb.cp/wide_char_types.c} (64%) create mode 100644 gdb/testsuite/gdb.cp/wide_char_types.exp create mode 100644 gdb/unittests/optional-selftests.c create mode 100644 gdb/unittests/optional/assignment/1.cc create mode 100644 gdb/unittests/optional/assignment/2.cc create mode 100644 gdb/unittests/optional/assignment/3.cc create mode 100644 gdb/unittests/optional/assignment/4.cc create mode 100644 gdb/unittests/optional/assignment/5.cc create mode 100644 gdb/unittests/optional/assignment/6.cc create mode 100644 gdb/unittests/optional/assignment/7.cc create mode 100644 gdb/unittests/optional/cons/copy.cc create mode 100644 gdb/unittests/optional/cons/default.cc create mode 100644 gdb/unittests/optional/cons/move.cc create mode 100644 gdb/unittests/optional/cons/value.cc create mode 100644 gdb/unittests/optional/in_place.cc create mode 100644 gdb/unittests/optional/observers/1.cc create mode 100644 gdb/unittests/optional/observers/2.cc create mode 100644 gdb/unittests/ptid-selftests.c create mode 100644 gdb/unittests/scoped_restore-selftests.c create mode 100644 ld/testsuite/ld-elf/indirect5.map create mode 100644 ld/testsuite/ld-elf/indirect5.out create mode 100644 ld/testsuite/ld-elf/indirect5a.c create mode 100644 ld/testsuite/ld-elf/indirect5b.c create mode 100644 ld/testsuite/ld-elf/indirect6a.c create mode 100644 ld/testsuite/ld-elf/pr21086.c create mode 100644 ld/testsuite/ld-elf/pr21086.list create mode 100644 ld/testsuite/ld-elf/pr21389.map create mode 100644 ld/testsuite/ld-elf/pr21389.s create mode 100644 ld/testsuite/ld-elf/pr21389a.d create mode 100644 ld/testsuite/ld-elf/pr21389b.d create mode 100644 ld/testsuite/ld-elf/pr21389c.d create mode 100644 ld/testsuite/ld-pe/weakdef-1.d create mode 100644 ld/testsuite/ld-pe/weakdef-1.s create mode 100644 ld/testsuite/ld-plugin/pr21382a.c create mode 100644 ld/testsuite/ld-plugin/pr21382b.c create mode 100644 opcodes/wasm32-dis.c create mode 100644 sim/testsuite/sim/aarch64/fcmXX.s create mode 100644 sim/testsuite/sim/aarch64/fcvtl.s First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index bb87497..4ac2d63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2017-04-13 Andrew Jenner <andrew@codesourcery.com> + + * config.sub: Sync with master version in config project. + 2017-04-03 Andrew Jenner <andrew@codesourcery.com> * config.sub: Handle ia16 in $basic_machine. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0e4ad30..ba2d134 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,287 @@ +2017-04-21 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21402 + * elf32-i386.c (elf_i386_link_hash_entry): Add + no_finish_dynamic_symbol. + (elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0. + (elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak + symbol, don't make it dynamic in PIE. + (elf_i386_relocate_section): If a symbol isn't dynamic in PIE, + set no_finish_dynamic_symbol and generate R_386_RELATIVE + relocation for R_386_GOT32 + (elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol + isn't 0. + +2017-04-21 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/19617 + PR ld/21086 + * elflink.c (elf_link_add_object_symbols): Require + --no-dynamic-linker with -E/--dynamic-list when creating + dynamic sections. + +2017-04-20 Maciej W. Rozycki <macro@imgtec.com> + + * elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE + if forced local. + +2017-04-20 Maciej W. Rozycki <macro@imgtec.com> + + * elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about + dynamic symbol sorting. + +2017-04-20 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21382 + * elflink.c (elf_link_add_object_symbols): Preserve + dynamic_ref_after_ir_def when restoring the symbol table for + unneeded dynamic object. + +2017-04-19 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21401 + * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort + on on undefined IFUNC symbol in the second PLT. + +2017-04-19 Wedson Almeida Filho <wedsonaf@gmail.com> + + * peXXigen.c (pe_print_reloc): Correct chunk_end. + +2017-04-19 Alan Modra <amodra@gmail.com> + + * elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak + or make dynamic for info->dynamic_undefined_weak 0 and 1. + * elf32-ppc.c:Formatting. + (ensure_undefweak_dynamic): Don't make dynamic when + info->dynamic_undefined_weak is zero. + (allocate_dynrelocs): Discard undefweak dyn_relocs for + info->dynamic_undefined_weak. Discard undef dyn_relocs when + not default visibility. Discard undef and undefweak + dyn_relocs earlier. + (ppc_elf_relocate_section): Adjust to suit. + * elf64-ppc.c: Formatting. + (ensure_undefweak_dynamic): Don't make dynamic when + info->dynamic_undefined_weak is zero. + (allocate_dynrelocs): Discard undefweak dyn_relocs for + info->dynamic_undefined_weak. Discard them earlier. + +2017-04-17 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21389 + * elflink.c (bfd_elf_size_dynamic_sections): Get soname index + before generating the version definition section. + +2017-04-17 Alan Modra <amodra@gmail.com> + + * elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking + state when a regular object file defines a symbol with + incompatible type to that defined by an earlier shared lib. + +2017-04-13 Alan Modra <amodra@gmail.com> + + * coffcode.h: Wrap some overly long _bfd_error_handler args. + * elf.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-mep.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-x86-64.c: Likewise. + * elflink.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + +2017-04-13 Alan Modra <amodra@gmail.com> + + * aoutx.h: Use %B and %A in error messages throughout file. + * aout-cris.c: Likewise. + * archive.c: Likewise. + * binary.c: Likewise. + * coff-rs6000.c: Likewise. + * coff-tic4x.c: Likewise. + * coffcode.h: Likewise. + * coffgen.c: Likewise. + * cofflink.c: Likewise. + * coffswap.h: Likewise. + * cpu-arm.c: Likewise. + * elf-eh-frame.c: Likewise. + * elf-m10300.c: Likewise. + * elf.c: Likewise. + * elf32-arc.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-iq2000.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-rl78.c: Likewise. + * elf32-rx.c: Likewise. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-v850.c: Likewise. + * elf32-vax.c: Likewise. + * elf32-visium.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-mmix.c: Likewise. + * elf64-sh64.c: Likewise. + * elfcode.h: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * hpux-core.c: Likewise. + * ieee.c: Likewise. + * ihex.c: Likewise. + * linker.c: Likewise. + * merge.c: Likewise. + * mmo.c: Likewise. + * oasys.c: Likewise. + * pdp11.c: Likewise. + * peXXigen.c: Likewise. + * rs6000-core.c: Likewise. + * vms-alpha.c: Likewise. + * xcofflink.c: Likewise. + +2017-04-13 Alan Modra <amodra@gmail.com> + + * bfd.c (PRINT_TYPE): Define. + (_doprnt): New function. + (error_handler_internal): Use _doprnt. + * coff-arm.c: Put %A and %B arguments to _bfd_error_handler + calls in their natural order, throughout file. + * coff-mcore.c: Likewise. + * coff-ppc.c: Likewise. + * coff-tic80.c: Likewise. + * cofflink.c: Likewise. + * elf-s390-common.c: Likewise. + * elf.c: Likewise. + * elf32-arm.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-spu.c: Likewise. + * elf64-ia64-vms.c: Likewise. + * elf64-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + +2017-04-13 Alan Modra <amodra@gmail.com> + + * elf32-arm.c (arm_type_of_stub): Supply missing args to "long + branch veneers" error. Fix double space and format message. + * elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg. + * elf64-ppc.c (tocsave_find): Supply missing %B arg. + +2017-04-13 Alan Modra <amodra@gmail.com> + + * bfd-in2.h: Regenerate. + +2017-04-11 H.J. Lu <hongjiu.lu@intel.com> + + * elf-properties.c (_bfd_elf_parse_gnu_properties): Remove the + extra `\n' in warning/error messages. + * elf32-i386.c (elf_i386_parse_gnu_properties): Likewise. + * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise. + +2017-04-11 H.J. Lu <hongjiu.lu@intel.com> + + * elf-properties.c (_bfd_elf_parse_gnu_properties): Ignore + processor-specific properties with generic ELF target vector. + +2017-04-10 Qing Zhao <qing.zhao@oracle.com> + + * elf32-sparc.c (elf_backend_fixup_symbol): New. + * elf64-sparc.c (elf_backend_fixup_symbol): New. + * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New. + (_bfd_sparc_elf_link_hash_entry): Add has_got_reloc and + has_non_got_reloc. + (link_hash_newfunc): Initialize has_got_reloc and + has_non_got_reloc. + (_bfd_sparc_elf_size_dynamic_sections): Set interp to .interp + section. + (_bfd_sparc_elf_copy_indirect_symbol): Copy has_got_reloc and + has_non_got_reloc. + (_bfd_sparc_elf_check_relocs): Set has_got_reloc and + has_non_got_reloc. + (_bfd_sparc_elf_fixup_symbol): New function. + (allocate_dynrelocs): Don't allocate space for dynamic + relocations and discard relocations against resolved undefined + weak symbols in executable. Don't make resolved undefined weak + symbols in executable dynamic. Keep dynamic non-GOT/non-PLT + relocation against undefined weak symbols in PIE. + (_bfd_sparc_elf_relocate_section): Don't generate dynamic + relocations against resolved undefined weak symbols in PIE + (_bfd_sparc_elf_finish_dynamic_symbol): Keep PLT/GOT entries + without ynamic PLT/GOT relocations for resolved undefined weak + symbols. + Don't generate dynamic relocation against resolved undefined + weak symbol in executable. + (pie_finish_undefweak_symbol): New function. + (_bfd_sparc_elf_finish_dynamic_sections): Call + pie_finish_undefweak_symbol on all symbols in PIE. + * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add interp. + (_bfd_sparc_elf_fixup_symbol): New function. + +2017-04-10 Nick Clifton <nickc@redhat.com> + + * config.bfd: Remove ns32k from obsolete list. + +2017-04-10 Alan Modra <amodra@gmail.com> + + PR 21287 + * elf.c (special_sections_f): Match .fini_array and .fini_array.*. + (special_sections_i): Likewise for .init_array. + (special_sections_p): Likewise for .preinit_array. + +2017-04-07 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/19579 + PR ld/21306 + * elf32-s390.c (elf_s390_finish_dynamic_symbol): Check + ELF_COMMON_DEF_P for common symbols. + * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. + * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. + * elflink.c (_bfd_elf_merge_symbol): Revert commits + 202ac193bbbecc96a4978d1ac3d17148253f9b01 and + 07492f668d2173da7a2bda3707ff0985e0f460b6. + +2017-04-07 Pedro Alves <palves@redhat.com> + + * opncls.c (bfd_get_debug_link_info): Rename to... + (bfd_get_debug_link_info_1): ... this. Change type of second + parameter to void pointer. Adjust. + (bfd_get_debug_link_info): Reimplement on top of + bfd_get_debug_link_info_1. + (separate_debug_file_exists, separate_alt_debug_file_exists): + Change type of second parameter to void pointer. Adjust. + (get_func_type, check_func_type): Change type of second parameter + to void pointer. + (find_separate_debug_file): Add 'func_data' parameter. Pass it to + the callback functions instead of passing the address of a local. + (bfd_follow_gnu_debuglink): Pass address of unsigned long local to + find_separate_debug_file. + (get_alt_debug_link_info_shim): Change type of second parameter to + void pointer. Adjust. + (bfd_follow_gnu_debugaltlink): Adjust to pass NULL to + find_separate_debug_file. + (get_build_id_name, bfd_boolean check_build_id_file): Change type + of second parameter to void pointer. Adjust. + (bfd_follow_build_id_debuglink): Pass address of bfd_build_id + pointer local to find_separate_debug_file. + +2017-04-07 Tristan Gingold <gingold@gingold-Precision-7510> + + * coffgen.c (_bfd_coff_gc_mark_hook): Handle PE weak + external symbols with a definition. + (_bfd_coff_gc_mark_extra_sections): Fix typo. + +2017-04-07 Alan Modra <amodra@gmail.com> + + * po/SRC-POTFILES.in: Regenerate. + 2017-04-05 Alan Modra <amodra@gmail.com> * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT diff --git a/bfd/aout-cris.c b/bfd/aout-cris.c index 2e36e9d..6cd14e3 100644 --- a/bfd/aout-cris.c +++ b/bfd/aout-cris.c @@ -197,8 +197,8 @@ MY (swap_ext_reloc_out) (bfd *abfd, if (r_type > 2) { /* xgettext:c-format */ - _bfd_error_handler (_("%s: Invalid relocation type exported: %d"), - bfd_get_filename (abfd), r_type); + _bfd_error_handler (_("%B: Invalid relocation type exported: %d"), + abfd, r_type); bfd_set_error (bfd_error_wrong_format); } diff --git a/bfd/aoutx.h b/bfd/aoutx.h index d30e8b8..9a5f7ce 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -1279,8 +1279,8 @@ NAME (aout, set_section_contents) (bfd *abfd, { _bfd_error_handler /* xgettext:c-format */ - (_("%s: can not represent section `%s' in a.out object file format"), - bfd_get_filename (abfd), bfd_get_section_name (abfd, section)); + (_("%B: can not represent section `%A' in a.out object file format"), + abfd, section); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; } @@ -1580,9 +1580,9 @@ translate_to_native_sym_flags (bfd *abfd, file. */ _bfd_error_handler /* xgettext:c-format */ - (_("%s: can not represent section for symbol `%s' in a.out " + (_("%B: can not represent section for symbol `%s' in a.out " "object file format"), - bfd_get_filename (abfd), + abfd, cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*")); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; @@ -1616,8 +1616,8 @@ translate_to_native_sym_flags (bfd *abfd, { _bfd_error_handler /* xgettext:c-format */ - (_("%s: can not represent section `%s' in a.out object file format"), - bfd_get_filename (abfd), bfd_get_section_name (abfd, sec)); + (_("%B: can not represent section `%A' in a.out object file format"), + abfd, sec); bfd_set_error (bfd_error_nonrepresentable_section); return FALSE; } @@ -5419,9 +5419,8 @@ NAME (aout, final_link) (bfd *abfd, by the reloc size. */ _bfd_error_handler /* xgettext:c-format */ - (_("%s: relocatable link from %s to %s not supported"), - bfd_get_filename (abfd), - sub->xvec->name, abfd->xvec->name); + (_("%B: relocatable link from %s to %s not supported"), + abfd, sub->xvec->name, abfd->xvec->name); bfd_set_error (bfd_error_invalid_operation); goto error_return; } diff --git a/bfd/archive.c b/bfd/archive.c index d96c866..f209bab 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -2402,8 +2402,8 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength) if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0) _bfd_error_handler - (_("%s: plugin needed to handle lto object"), - bfd_get_filename (current)); + (_("%B: plugin needed to handle lto object"), + current); namelen = strlen (syms[src_count]->name); amt = sizeof (char *); map[orl_count].name = (char **) bfd_alloc (arch, amt); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index fbd379f..1d73134 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1069,7 +1069,8 @@ bfd *bfd_openr (const char *filename, const char *target); bfd *bfd_fdopenr (const char *filename, const char *target, int fd); -bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); +bfd *bfd_openstreamr (const char * filename, const char * target, + void * stream); bfd *bfd_openr_iovec (const char *filename, const char *target, void *(*open_func) (struct bfd *nbfd, diff --git a/bfd/bfd.c b/bfd/bfd.c index a9402e4..23a4350 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -611,176 +611,240 @@ CODE_FRAGMENT static const char *_bfd_error_program_name; -/* This is the default routine to handle BFD error messages. - Like fprintf (stderr, ...), but also handles some extra format specifiers. - - %A section name from section. For group components, print group name too. - %B file name from bfd. For archive components, prints archive too. - - Note - because these two extra format specifiers require special handling - they are scanned for and processed in this function, before calling - vfprintf. This means that the *arguments* for these format specifiers - must be the first ones in the variable argument list, regardless of where - the specifiers appear in the format string. Thus for example calling - this function with a format string of: - - "blah %s blah %A blah %d blah %B" - - would involve passing the arguments as: - - "blah %s blah %A blah %d blah %B", - asection_for_the_%A, - bfd_for_the_%B, - string_for_the_%s, - integer_for_the_%d); - */ - -static void -error_handler_internal (const char *fmt, va_list ap) +/* This macro and _doprnt taken from libiberty _doprnt.c, tidied a + little and extended to handle '%A' and '%B'. */ + +#define PRINT_TYPE(TYPE) \ + do \ + { \ + TYPE value = va_arg (ap, TYPE); \ + result = fprintf (stream, specifier, value); \ + } while (0) + +static int +_doprnt (FILE *stream, const char *format, va_list ap) { - char *bufp; - const char *new_fmt, *p; - size_t avail = 1000; - char buf[1000]; - - /* PR 4992: Don't interrupt output being sent to stdout. */ - fflush (stdout); + const char *ptr = format; + char specifier[128]; + int total_printed = 0; - if (_bfd_error_program_name != NULL) - fprintf (stderr, "%s: ", _bfd_error_program_name); - else - fprintf (stderr, "BFD: "); - - new_fmt = fmt; - bufp = buf; - - /* Reserve enough space for the existing format string. */ - avail -= strlen (fmt) + 1; - if (avail > 1000) - _exit (EXIT_FAILURE); - - p = fmt; - while (1) + while (*ptr != '\0') { - char *q; - size_t len, extra, trim; + int result; - p = strchr (p, '%'); - if (p == NULL || p[1] == '\0') + if (*ptr != '%') { - if (new_fmt == buf) - { - len = strlen (fmt); - memcpy (bufp, fmt, len + 1); - } - break; + /* While we have regular characters, print them. */ + char *end = strchr (ptr, '%'); + if (end != NULL) + result = fprintf (stream, "%.*s", (int) (end - ptr), ptr); + else + result = fprintf (stream, "%s", ptr); + ptr += result; } - - if (p[1] == 'A' || p[1] == 'B') + else { - len = p - fmt; hooks/post-receive -- Repository for Project Archer.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 123800 bytes --] The branch, users/jkratoch/indexcxx has been updated via 98bebcd98b51d05daf04b0d5c4d7f6e112597c57 (commit) via a941291cab71b9ac356e1c03968c177c03e602ab (commit) via 45ce1b47e4490993b5c1a04f4a8acb62d9ec5039 (commit) via a93866c8bfd4ad4b32c81e73e6a73aa9d831d350 (commit) via 0749542484129e77a30f1089d6d671197be5035f (commit) via deb1fa3edaf10c65d1f39951779927da955e3a57 (commit) via b421c83cb866120ab347d60fda20fb0e2011be8c (commit) via ef79d9a3c6ed1e3ccd466bae76956019a7c5d376 (commit) via f8fdb78eafb3f70661f6e4a43beb004dde9e0921 (commit) via 9ccbfd7bc1b7228d67f2d4ca878224d493918264 (commit) via 76e75227c37bc058449a09fe5017eeb40cda0781 (commit) via 51046d9e60727cd6a4cfeae29a05ce2e1e394dc9 (commit) via 4023ae762ed9b52e4925242b705d0b3a50f6ed13 (commit) via af43057bafa7260dbcc453d2acc47eb63b974c50 (commit) via b091120773f8a740065b6449617cfbf1e0e789f4 (commit) via 6c401f72e979ddd7e2f890dcc88f93f683233d74 (commit) via d0e449a1865c741c5e0c9d43a7d61a0621163aa7 (commit) via 434a40239548115cf04a80410e4f570f35c361c1 (commit) via 1670f9c1546818c4ffe02e8f460df1c1c4b1601d (commit) via d6f48aed23d1004a4ed8ab3b2742b0bf7c838c1c (commit) via 428544e8ae6252a615a3100889f3df7d2c5483c4 (commit) via 750eaa47f10f48d19aacbec74ab6867da0164677 (commit) via 4621115fe529869e938dca605bb90190ea52316a (commit) via b06b2c92c06cf100f259f218337d007ee0b1c884 (commit) via 4e3afec278d1fb55b983751d02119f65566bd094 (commit) via d949ff5607b9f595e0eed2ff15fbe5eb84eb3a34 (commit) via 339053c29abac25e5f86a1ccccd4e8e3b2d362df (commit) via 7974a6050b6e2c44722a533e2d5d9131e7db00ff (commit) via 343b374c61f793f745b820c3cf61f69186566b18 (commit) via e15c3eb45bdc8bd5717fd5ceddcc30c3de07b58f (commit) via 5b66fac4bad619766fb1a5f5179c08b67d48a8c5 (commit) via 72bc1d246686ff38ef01f5a35769ebdbe39f023c (commit) via de9a3c4285fad1914929ee304ddaa26e76af8031 (commit) via da3d25afa26476bf24247b8696fd00ab31f39db9 (commit) via fba37edd96c8dc65a63bd5b4fef5366de45b165a (commit) via 1f78f649e868979d36490d7c2ea0b3d41abc5ec6 (commit) via 55bcecda5703eb4647165cb3ddb86aed63fd44d2 (commit) via 14f72d45a22f25f6d00a62fc03bcf9827df226f5 (commit) via 1425c41dcd68350d9be9670910c547cc7ab91e0e (commit) via 5c99fcf8031bcf96f2c948e9fc5d3b03c97f631a (commit) via f2d830a50def7a00a911620a3e9c7d920e5ef0f0 (commit) via 76c20d54ca5042e11af9ddf5723cc24cf47736ec (commit) via d7153c4ac333c9127c18efcf184607d368bb142d (commit) via 641338d8e9b62bde9672f13f0dca2324b61e46e2 (commit) via 21d68fcd0c2f9113369d860ee1e5841bfacc35ff (commit) via a61d92b7bd4da998dd5d73e9205b4871f7c4825d (commit) via 7a81a73b2e5d00b76e15d97db7b8f0c9809ba1b7 (commit) via ce8ad8721313d288a05a95b62d95ca43db584ebb (commit) via 97d343d40012b1030f1fd219f91efcab180fb3ef (commit) via 04b31182bf3f8a1a76e995bdfaaaab4c009b9cb2 (commit) via d21f3ddb0d5f95aff5c769ae283ce5522262f48d (commit) via 740a463062bd5d1641bdfb639295dafe89341b9b (commit) via 3e6b644558f941d3fe482e15efbc53d8f39ef8b7 (commit) via b41c5a85a734b9ca813d4a314b66ef4b4b4d1b11 (commit) via 23ec1e32b1ab714649a7c25e49b5d721fe3bd3db (commit) via c46cec3a8cfe02fbe0f6c67ba53abc5369c5c659 (commit) via bbdd9a6894d7875407da59d490faf5588163d21c (commit) via e63d123268f23a4cbc45ee55fb6dbc7d84729da3 (commit) via c185f580b2b3baf7cee762c8ab31ab6925b9534a (commit) via 19c4559475791cd70e319eaf5c1e23d23d9ae81e (commit) via 03def0812a9ee962d9dcfe9b0ba37783e58acfb8 (commit) via 4658f12e9c5ec0d2efb04f1688f6cd6bd9f1a47d (commit) via c4ab9505b53cdc899506ed421fddb7e1f8faf7a3 (commit) via 919383ac718c2a3187ee2a9ad659daa22da26258 (commit) via 126124cc0f3f0417913bfd84d83e4e525b6facf9 (commit) via be6a24d8eabdbeef32a9d79e81307af4491fcf56 (commit) via d581dda88162831ebbd0757312fa93681d945327 (commit) via 0348fd79d4c32243d91e8a55f20f408a9b4ec20d (commit) via 6e3d1f0728d980a384c5aa63ce7f2ff3919c5024 (commit) via adc1273cb27286452ed8b32c5ca3ea263b4854f0 (commit) via debed3db4887483552103da36d180967ef0dca5f (commit) via d28b6364b1fba1c0270c001f0d82a69e351e1922 (commit) via b0b92aeb3828219075fce23543fb39fee8608e99 (commit) via 16c4d54a71d8052988ed9c8005a03a7f934245f4 (commit) via b5c3668253b909fd1f5b011893a35bb8dfd3be9b (commit) via 5625a2864147f4d92b22edfeeab7600818988be2 (commit) via 23bcc18f470ee4364bd362a8b78c6c1415a9dadb (commit) via a49abe0bb18e04d3a4b692995fcfae70cd470775 (commit) via 9e9821ddd80c0d0b3dda54d34cc8867f256d4583 (commit) via 0dc9a308a1ec9675bf6b33bae9e8b1faa0bad9ed (commit) via e1ba30532c6de26a14404ab4919bb591e8da3eab (commit) via e662f84f5d6d014746550ce3d3f623583c043ff0 (commit) via 1587442d37ee4266e54d59bfdc783574f0587aff (commit) via 534455547021f3262fa60d32cabb626af01692a3 (commit) via 8b353c47b70568ab9f0cfd619b7a19e931c2b0c8 (commit) via 957f6b39cab6cac0e4c54e650c7f75109544ac1d (commit) via 9ad8982091eeb76b380e459fe721aaeacf7b8f24 (commit) via 42354845ae5e00ec1c3519e1f2166b79a9533401 (commit) via 7034215fd6d99f275998f7f0f8a346ab35fcbee6 (commit) via b02cd3e978e9273074f7cbe2ca1d5b372225a56d (commit) via 7eacd66b086cabb1daab20890d5481894d4f56b2 (commit) via bce964aa6c777d236fbd641f2bc7bb931cfe4bf3 (commit) via 97e83a100aa8250be783304bfe0429761c6e6b6b (commit) via f082820db966c79e47a143da774700055a1fad41 (commit) via b43eea27e99f5fd270b3bec455054ea53ac700bb (commit) via bf1554384b186b448904dbc13ee5374239c88520 (commit) via 10f489e57677e670bf980e93896762594e9ad908 (commit) via 0092b74da6d86185c4d0c0fa0f540b97647bf44a (commit) via a14a62ddff9eadbb8a7ad101ab06b02e44b6c00a (commit) via 46b9c12945629fffb61001a8f13a37c96675c0b7 (commit) via 2e78302469502f4f8a98144b60c09d4d9b6438fd (commit) from c5141d02425a95ed688b640eebfc99ede92e61de (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 98bebcd98b51d05daf04b0d5c4d7f6e112597c57 Merge: c5141d0 a941291 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Apr 29 23:58:43 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit a941291cab71b9ac356e1c03968c177c03e602ab Author: Alan Modra <amodra@gmail.com> Date: Sat Apr 29 14:48:16 2017 +0930 PR21432, buffer overflow in perform_relocation The existing reloc offset range tests didn't catch small negative offsets less than the size of the reloc field. PR 21432 * reloc.c (reloc_offset_in_range): New function. (bfd_perform_relocation, bfd_install_relocation): Use it. (_bfd_final_link_relocate): Likewise. commit 45ce1b47e4490993b5c1a04f4a8acb62d9ec5039 Author: Sergio Durigan Junior <sergiodj@redhat.com> Date: Fri Mar 31 13:24:36 2017 -0400 Make environ.exp run on all platforms (and create info-program.exp) This has been on my TODO list for a while. There's a really old bug about this (PR testsuite/8595), and there was no reason for environ.exp to be specific for hppa* targets. So this patch removes this constraint, modernizes the testcase, and cleans up some things. Most of the tests remained, and some were rewritten (especially the one that checks if "show environment" works, which is something kind of hard to do). As a bonus, I'm adding a separated info-program.exp file containing all the tests related to "info program" that were present on environ.exp. Tested locally, everything still passes. gdb/testsuite/ChangeLog: 2017-04-28 Sergio Durigan Junior <sergiodj@redhat.com> PR testsuite/8595 * gdb.base/environ.exp: Make test available in all architectures. Move bits related to "info program" testing to gdb.base/info-program.exp. Rewrite tests to use the two new procedures mentione below. (test_set_show_env_var) New procedure. (test_set_show_env_var_equal): Likewise. * gdb.base/info-program.exp: New file. commit a93866c8bfd4ad4b32c81e73e6a73aa9d831d350 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat Apr 29 00:00:38 2017 +0000 Automatic date update in version.in commit 0749542484129e77a30f1089d6d671197be5035f Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 22:48:42 2017 +0100 Remove cleanup in get_return_value With regcache ctor, we can use it to create local object in get_return_value (), so that the cleanup can be removed. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * infcmd.c (get_return_value): Use regcache ctor, and remove cleanup. commit deb1fa3edaf10c65d1f39951779927da955e3a57 Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 22:48:42 2017 +0100 Use tag dispatch regcache ctor in regcache_dup This patch adds a tag dispatch ctor to create read-only regcache from a write-through regcache, also this patch deletes copy ctor and assignment operator. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> Pedro Alves <palves@redhat.com> * regcache.c (regcache::regcache): New tag dispatch ctor. (do_cooked_read): Moved above. (regcache_dup): Use the tag dispatch ctor.. * regcache.h (regcache): Declare ctor, delete copy ctor and assignment operator, remove friend regcache_dup. commit b421c83cb866120ab347d60fda20fb0e2011be8c Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 22:48:42 2017 +0100 Simplify regcache_dup regcache_dup, in fact, is to create a readonly regcache from a non-readonly regcache. This patch adds an assert that src is not readonly. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * regcache.c (regcache_dup): Assert !src->m_readonly_p and call method save instead of regcache_cpy. * regcache.h (struct regcache): Make regcache_dup a friend. commit ef79d9a3c6ed1e3ccd466bae76956019a7c5d376 Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 22:48:42 2017 +0100 Class-fy regcache This patch moves regcache declaration to regcache.h, and converts regcache apis to member functions, for example, regcache_invalidate is changed to regcache::invalidate. This patch also add "m_" prefix to these private fields. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * regcache.c (struct regcache): Move to regcache.h (regcache::arch): New method. (regcache_get_ptid): Update. (get_regcache_arch): Call arch method. (get_regcache_aspace): Call method aspace. (register_buffer): Change it to method. (regcache_save): Change it to regcache::save. (regcache_restore): Likewise. (regcache_cpy_no_passthrough): Remove the declaration. (regcache_cpy): Call methods restore and cpy_no_passthrough. (regcache_cpy_no_passthrough): Change it to method cpy_no_passthrough. (regcache_register_status): Change it to method get_register_status. (regcache_invalidate): Change it to method invalidate. (regcache_thread_ptid_changed): Use methods ptid and set_ptid. (regcache_raw_update): Change it to method raw_update. (regcache_raw_read): Likewise. (regcache_raw_read_signed): Likewise. (regcache_raw_read_unsigned): Likewise. (regcache_raw_write_signed): Likewise. (regcache_raw_write_unsigned): Likewise. (regcache_cooked_read): Likewise. (regcache_cooked_read_value): Likewise. (regcache_cooked_read_signed): Likewise. (regcache_cooked_read_unsigned): Likewise. (regcache_cooked_write_signed): Likewise. (regcache_cooked_write_unsigned): Likewise. (regcache_raw_set_cached_value): Likewise. (regcache_raw_write): Likewise. (regcache_cooked_write): Likewise. (regcache_xfer_part): Likewise. (regcache_raw_read_part): Likewise. (regcache_raw_write_part): Likewise. (regcache_cooked_read_part): Likewise. (regcache_cooked_write_part): Likewise. (regcache_raw_supply): Likewise. (regcache_raw_collect): Likewise. (regcache_transfer_regset): Likewise. (regcache_supply_regset): Likewise. (regcache_collect_regset): Likewise. (regcache_debug_print_register): Likewise. (enum regcache_dump_what): Move it to regcache.h. (regcache_dump): Change it to method dump. * regcache.h (enum regcache_dump_what): New. (class regcache): New. * target.c (target_fetch_registers): Call method debug_print_register. (target_store_registers): Likewise. commit f8fdb78eafb3f70661f6e4a43beb004dde9e0921 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:18 2017 -0400 Class-ify lm_info_windows This patch makes lm_info_windows a "real" class. It initializes the field and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * windows-nat.c (struct lm_info_windows): Initialize field. (windows_make_so): Allocate lm_info_windows with new. (windows_free_so): Free lm_info_windows with delete. commit 9ccbfd7bc1b7228d67f2d4ca878224d493918264 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:18 2017 -0400 Class-ify lm_info_darwin This patch makes lm_info_darwin a "real" class. It initializes the field and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * solib-darwin.c (struct lm_info_darwin): Initialize field. (darwin_current_sos): Allocate lm_info_darwin with new, remove cleanup. (darwin_free_so): Free lm_info_darwin with delete. commit 76e75227c37bc058449a09fe5017eeb40cda0781 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:17 2017 -0400 Class-ify lm_info_svr4 This patch makes lm_info_svr4 a "real" class. It initializes fields, uses bool and replaces XCNEW/xfree with new/delete. The memcpy in svr4_copy_library_list is replaced by a usage of the default copy constructor. gdb/ChangeLog: * solib-svr4.h (struct lm_info_svr4): Initialize fields. <l_addr_p>: Change type to bool. * solib-svr4.c (lm_info_read): Allocate lm_info_svr4 with new. (svr4_free_so): Free lm_info_svr4 with delete. (svr4_copy_library_list): Replace memcpy with call to copy constructor. (library_list_start_library, svr4_default_sos): Allocate lm_info_svr4 with new. commit 51046d9e60727cd6a4cfeae29a05ce2e1e394dc9 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:16 2017 -0400 Class-ify lm_info_target This patch makes lm_info_target a "real" class. It adds a destructor, uses std::string, initializes the fields and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * solib-target.c (struct lm_info_target): Add destructor, initialize fields. <name>: Change type to std::string. (library_list_start_library): Allocate lm_info_target with new. (solib_target_free_library_list): Free lm_info_target with delete. (solib_target_current_sos): Adapt to std::string. (solib_target_free_so): Free lm_info_target with delete. commit 4023ae762ed9b52e4925242b705d0b3a50f6ed13 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:16 2017 -0400 Class-ify lm_info_frv This patches makes lm_info_frv a "real" class. It adds a destructor, initializes the fields and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * solib-frv.c (struct lm_info_frv): Add destructor, initialize fields. (frv_current_sos): Allocate lm_info_frv with new. (frv_relocate_main_executable): Free lm_info_frv with delete, allocate with new. (frv_clear_solib, frv_free_so): Free lm_info_frv with delete. commit af43057bafa7260dbcc453d2acc47eb63b974c50 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:15 2017 -0400 Fix indentation of lm_info_frv This patch fixes the indentation of lm_info_frv, so that the real changes of the following patch are not lost in the reformatting. gdb/ChangeLog: * solib-frv.c (struct lm_info_frv): Fix indentation. commit b091120773f8a740065b6449617cfbf1e0e789f4 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:14 2017 -0400 Class-ify lm_info_dsbt This patches makes lm_info_dsbt a "real" class. It introduces a destructor, initializes the field and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * solib-dsbt.c (struct lm_info_dsbt): Add destructor, initialize map field. (dsbt_current_sos): Allocate lm_info_dsbt with new. (dsbt_relocate_main_executable): Free lm_info_dsbt with delete and allocate with new. (dsbt_clear_solib, dsbt_free_so): Free lm_info_dsbt with delete. commit 6c401f72e979ddd7e2f890dcc88f93f683233d74 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:14 2017 -0400 Class-ify lm_info_aix This patch makes lm_info_aix a "real" class. It uses std::string, initializes fields in-class and replaces XCNEW/xfree with new/delete. The solib_aix_new_lm_info can be replaced by using the default copy constructor. gdb/ChangeLog: * solib-aix.c (struct lm_info_aix): Initialize fields in-class. <filename, member_name>: Change type to std::string. (solib_aix_new_lm_info, solib_aix_xfree_lm_info): Remove. (library_list_start_library): Allocate lm_info_aix with new. (solib_aix_free_library_list, solib_aix_free_so): Free with delete. (solib_aix_current_sos): Adapt to std::string, copy lm_info_aix with copy constructor. commit d0e449a1865c741c5e0c9d43a7d61a0621163aa7 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:13 2017 -0400 Make various lm_info implementations inherit from a base class The lm_info structure is used to store target specific information about mapped libraries. It is currently defined as an opaque type in solist.h and a pointer to it is included in solist, the target-agnostic object representing a loaded shared library. Multiple targets define their own implementation of lm_info. In anticipation of using C++ stuff (e.g. vector) in the lm_info objects, we first need to avoid different definitions of classes with the same name (which violates the one definition rule). This patch does it by having a base class (lm_info_base) from which all the specific lm_info derive. Each implementation is renamed to something that makes sense (e.g. lm_info_aix for AIX). The next logical step would probably be to derive directly from so_list, it's not really obvious, so I'll keep that for another day. One special case is the Neutrino (nto) support. It uses SVR4-style libraries, but overrides some methods. To do that, it needed to have its own copy of SVR4's lm_info structure in nto-tdep.c, because it was just not possible to put it in solib-svr4.h and include that file. Over time, that copy got out of sync, which is still the case today. I can only assume that the lm_addr function in nto-tdep.c is broken right now. The first field of the old lm_info was a pointer (gdb_byte *), whereas in the new lm_info it's an address in the inferior (CORE_ADDR). Trying to use that field today probably results in a crash. With this refactor, it's now possible to put lm_info_svr4 in solib-svr4.h and just include it. I have adapted the code in nto-tdep.c to that it builds, but it's probably not correct. Since I don't have the knowledge nor setup to try this on Neutrino, somebody else would have to fix it. But I am confident that I am not making things worse than they already are. gdb/ChangeLog: * solist.h (struct lm_info): Remove. (struct lm_info_base): New class. (struct so_list) <lm_info>: Change type to lm_info_base *. * nto-tdep.c (struct lm_info): Remove. (lm_addr): Adjust. * solib-aix.c (struct lm_info): Rename to ... (struct lm_info_aix): ... this. Extend lm_info_base. (lm_info_p): Rename to ... (lm_info_aix_p): ... this, and adjust. (solib_aix_new_lm_info, solib_aix_xfree_lm_info, solib_aix_parse_libraries, library_list_start_library, solib_aix_free_library_list, solib_aix_parse_libraries, solib_aix_get_library_list, solib_aix_relocate_section_addresses, solib_aix_free_so, solib_aix_get_section_offsets, solib_aix_solib_create_inferior_hook, solib_aix_current_sos): Adjust. (struct solib_aix_inferior_data) <library_list>: Adjust. * solib-darwin.c (struct lm_info): Rename to ... (struct lm_info_darwin): ... this. Extend lm_info_base. (darwin_current_sos, darwin_relocate_section_addresses): Adjust. * solib-dsbt.c (struct lm_info): Rename to ... (struct lm_info_dsbt): ... this. Extend lm_info_base. (struct dsbt_info) <main_executable_lm_info): Adjust. (dsbt_current_sos, dsbt_relocate_main_executable, dsbt_free_so, dsbt_relocate_section_addresses): Adjust. * solib-frv.c (struct lm_info): Rename to ... (struct lm_info_frv): ... this. Extend lm_info_base. (main_executable_lm_info): Adjust. (frv_current_sos, frv_relocate_main_executable, frv_free_so, frv_relocate_section_addresses, frv_fdpic_find_global_pointer, find_canonical_descriptor_in_load_object, frv_fdpic_find_canonical_descriptor): Adjust. * solib-svr4.c (struct lm_info): Move to solib-svr4.h, renamed to lm_info_svr4. (lm_info_read, lm_addr_check, svr4_keep_data_in_core, svr4_clear_so, svr4_copy_library_list, library_list_start_library, svr4_default_sos, svr4_read_so_list, svr4_current_sos, svr4_fetch_objfile_link_map, solist_update_incremental): Adjust. * solib-svr4.h (struct lm_info_svr4): Move here from solib-svr4.c. * solib-target.c (struct lm_info): Rename to ... (struct lm_info_target): ... this. Extend lm_info_base. (lm_info_p): Rename to ... (lm_info_target_p): ... this. (solib_target_parse_libraries, library_list_start_segment, library_list_start_section, library_list_start_library, library_list_end_library, solib_target_free_library_list, solib_target_current_sos, solib_target_free_so, solib_target_relocate_section_addresses): Adjust. * windows-nat.c (struct lm_info): Rename to ... (struct lm_info_windows): ... this. Extend lm_info_base. (windows_make_so, handle_load_dll, handle_unload_dll, windows_xfer_shared_libraries): Adjust. commit 434a40239548115cf04a80410e4f570f35c361c1 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Fri Apr 28 17:16:12 2017 -0400 Standardize darwin's lm_info Darwin's lm_info structure is used a little bit differently than the other solib implementations. The other implementations first allocate an so_list object, then instanciate their specific lm_info structure, and assign it to so_list::lm_info. The Darwin implementation allocates both at the same time (darwin_so_list). This patch changes it to be like the others, so that we'll be able to do some generalizations later. gdb/ChangeLog: * solib-darwin.c (struct darwin_so_list): Remove. (darwin_current_sos): Allocate an so_list object instead of a darwin_so_list, separately allocate an lm_info object. (darwin_free_so): Free lm_info. commit 1670f9c1546818c4ffe02e8f460df1c1c4b1601d Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Apr 28 12:42:05 2017 -0700 x86: Add run-time tests for -mtls-dialect=gnu2 * testsuite/config/default.exp (GNU2_CFLAGS): New. Set to -mtls-dialect=gnu2 if target compiler supports it. * testsuite/ld-i386/tls.exp: Run -mtls-dialect=gnu2 tests. * testsuite/ld-x86-64/tls.exp: Likewise. * testsuite/ld-i386/tlsdesc1a.c: New file. * testsuite/ld-i386/tlsdesc1b.c: Likewise. * testsuite/ld-x86-64/tlsdesc1a.c: Likewise. * testsuite/ld-x86-64/tlsdesc1b.c: Likewise. commit d6f48aed23d1004a4ed8ab3b2742b0bf7c838c1c Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Apr 28 12:29:29 2017 -0700 ELF: Add run-time tests for -z now * testsuite/ld-elf/shared.exp: Add run-time tests for -z now. * testsuite/ld-i386/tls.exp: Likewise. * testsuite/ld-ifunc/ifunc.exp: Likewise. * testsuite/ld-x86-64/tls.exp: Likewise. commit 428544e8ae6252a615a3100889f3df7d2c5483c4 Author: John Baldwin <jhb@FreeBSD.org> Date: Fri Apr 28 09:34:52 2017 -0700 Consistently use fprintf_filtered when displaying MIPS registers. One line was using printf_filtered instead of fprintf_filtered to the requested file. gdb/ChangeLog: * mips-tdep.c (print_gp_register_row): Replace printf_filtered with fprintf_filtered. commit 750eaa47f10f48d19aacbec74ab6867da0164677 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Apr 28 07:26:45 2017 -0700 x86: Check plt_got before using .plt.got Since the GOT procedure linkage table is supported only if plt_got isn't NULL, we need to check plt_got before using it. * elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got before using .plt.got. * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. commit 4621115fe529869e938dca605bb90190ea52316a Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 14:43:13 2017 +0100 Add constructor and destructor to regcache This patch adds ctor and dtor to regcache. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * regcache.c (regcache::regcache): New function. (regcache::~regcache): New function. (regcache_xmalloc_1): Remove. (regcache_xmalloc): Call new regcache. (regcache_xfree): Call delete regcache. (get_thread_arch_aspace_regcache): Call new regcache. commit b06b2c92c06cf100f259f218337d007ee0b1c884 Author: Nick Clifton <nickc@redhat.com> Date: Fri Apr 28 12:09:14 2017 +0100 Fix off by one error when checking for empty note names. PR binutils/21439 * readelf.c (print_gnu_build_attribute_name): Allow for an empty name field. commit 4e3afec278d1fb55b983751d02119f65566bd094 Author: Nick Clifton <nickc@redhat.com> Date: Fri Apr 28 11:21:53 2017 +0100 Fix heap-buffer address violation when reading version data from a corrupt binary. PR binutils/21437 * readelf.c (process_version_sections): Check for underflow when computing the start address of the auxillary version data. commit d949ff5607b9f595e0eed2ff15fbe5eb84eb3a34 Author: Nick Clifton <nickc@redhat.com> Date: Fri Apr 28 10:28:04 2017 +0100 Fix heap-buffer overflow bugs caused when dumping debug information from a corrupt binary. PR binutils/21438 * dwarf.c (process_extended_line_op): Do not assume that the string extracted from the section is NUL terminated. (fetch_indirect_string): If the string retrieved from the section is not NUL terminated, return an error message. (fetch_indirect_line_string): Likewise. (fetch_indexed_string): Likewise. commit 339053c29abac25e5f86a1ccccd4e8e3b2d362df Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 09:50:51 2017 +0100 Use ptid method lwp in mips_linux_new_thread gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * mips-linux-nat.c (mips_linux_new_thread): Use ptid method lwp instead of ptid_get_lwp. commit 7974a6050b6e2c44722a533e2d5d9131e7db00ff Author: Yao Qi <yao.qi@linaro.org> Date: Fri Apr 28 09:33:16 2017 +0100 [MIPS] Use lwpid from lwp_info instead of inferior_ptid RAJESH reported that GDB gets "Couldn't write debug register: No such process." on mips64 when GDB attaches to a multi threaded application. Looks GDB nows PTRACE_GET_WATCH_REGS for inferior_ptid but PTRACE_SET_WATCH_REGS for lwp->ptid, they may be different. gdb: 2017-04-28 Yao Qi <yao.qi@linaro.org> * mips-linux-nat.c (mips_linux_new_thread): Get lwpid from lwp_info instead of getting from inferior_ptid. commit 343b374c61f793f745b820c3cf61f69186566b18 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri Apr 28 00:00:34 2017 +0000 Automatic date update in version.in commit e15c3eb45bdc8bd5717fd5ceddcc30c3de07b58f Author: Keith Seitz <keiths@redhat.com> Date: Thu Apr 27 15:55:26 2017 -0700 Fix overload resolution involving rvalue references and cv qualifiers. The following patch fixes several outstanding overload resolution problems with rvalue references and cv qualifiers in the test suite. The tests for these problems typically passed with one compiler version and failed with another. This behavior occurs because of the ordering of the overloaded functions in the debug info. So the first best match "won out" over the a subsequent better match. One of the bugs addressed by this patch is the failure of rank_one_type to account for type equality of two overloads based on CV qualifiers. This was leading directly to problems evaluating rvalue reference overload quality, but it is also highlighted in gdb.cp/oranking.exp, where two test KFAIL as a result of this shortcoming. I found the overload resolution code committed with the rvalue reference patch (f9aeb8d49) needlessly over-complicated, and I have greatly simplified it. This fixes some KFAILing tests in gdb.exp/rvalue-ref-overload.exp. gdb/ChangeLog * gdbtypes.c (LVALUE_REFERENCE_TO_RVALUE_BINDING_BADNESS) DIFFERENT_REFERENCE_TYPE_BADNESS): Remove. (CV_CONVERSION_BADNESS): Define. (rank_one_type): Remove overly restrictive rvalue reference rank checks. Add cv-qualifier checks and subranks for type equality. * gdbtypes.h (REFERENCE_CONVERSION_RVALUE, REFERENCE_CONVERSION_CONST_LVALUE, CV_CONVERSION_BADNESS, CV_CONVERSION_CONST, CV_CONVERSION_VOLATILE): Declare. gdb/testsuite/ChangeLog * gdb.cp/oranking.cc (test15): New function. (main): Call test15 and declare additional variables for testing. * gdb.cp/oranking.exp: Remove kfail status for "p foo4(&a)" and "p foo101('abc')" tests. * gdb.cp/rvalue-ref-overloads.exp: Remove kfail status for "lvalue reference overload" test. * gdb.cp/rvalue-ref-params.exp: Remove kfail status for "print value of f1 on Child&& in f2" test. commit 5b66fac4bad619766fb1a5f5179c08b67d48a8c5 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 27 15:24:08 2017 -0700 x86-64: Use "=" instead of "+=" to update 0 Use if (htab->elf.splt->size == 0) htab->elf.splt->size = GET_PLT_ENTRY_SIZE (output_bfd); instead of if (htab->elf.splt->size == 0) htab->elf.splt->size += GET_PLT_ENTRY_SIZE (output_bfd); * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "=" instead of "+=" to update 0. commit 72bc1d246686ff38ef01f5a35769ebdbe39f023c Author: Simon Marchi <simon.marchi@ericsson.com> Date: Thu Apr 27 17:03:20 2017 -0400 Add missing incref when creating Inferior Python object The test py-inferior.exp fails when using a debug build of Python 3.6. I don't see it failing with my system's default Python, but it might be related to the different memory allocation scheme used when doing a build with pydebug. The issue is that we are missing a Py_INCREF in inferior_to_inferior_object. The PyObject_New function initializes the object with a refcount of 1. If we assume that this refcount corresponds to the reference we are returning, then we are missing an incref for the reference in the inferior data. The counterpart for the incref that corresponds to the reference in the inferior data is in py_free_inferior, in the form the gdbpy_ref instance. Here's how I can get it to crash (with some debug output): $ ./gdb -nx -ex "set debug python 1" (gdb) add-inferior Added inferior 2 (gdb) python infs = gdb.inferiors() Creating Python Inferior object inf = 1 Creating Python Inferior object inf = 2 (gdb) remove-inferiors 2 py_free_inferior inf = 2 infpy_dealloc inf = <unknown> (gdb) python infs = None Fatal Python error: Objects/tupleobject.c:243 object at 0x7f9cf1a568d8 has negative ref count -1 Current thread 0x00007f9cf1b68780 (most recent call first): File "<string>", line 1 in <module> [1] 408 abort (core dumped) ./gdb -nx -ex "set debug python 1" After having created the inferiors object, their refcount is 1 (which comes from PyObject_New), but it should be two. The gdb inferior object has a reference and the "infs" list has a reference. When invoking remove-inferiors, py_free_inferior gets called. It does the decref that corresponds to the reference that the gdb inferior object kept. At this moment, the refcount drops to 0 and the object gets deallocated, even though the "infs" list still has a reference. When we set "infs" to None, Python tries to decref the already zero refcount and the assert triggers. With this patch, it looks better: (gdb) add-inferior Added inferior 2 (gdb) python infs = gdb.inferiors() Creating Python Inferior object inf = 1 Creating Python Inferior object inf = 2 (gdb) remove-inferiors 2 py_free_inferior inf = 2 (gdb) python infs = None infpy_dealloc inf = <unknown> gdb/ChangeLog: * python/py-inferior.c (inferior_to_inferior_object): Increment reference count when creating the object. commit de9a3c4285fad1914929ee304ddaa26e76af8031 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 27 13:55:31 2017 -0700 x86: Create dynamic sections in create_dynamic_sections This patch creates dynamic sections in i386/x86-64 create_dynamic_sections instead of creating them on demend. Linker will strip them if they are empty. It changes order in x86-64 .eh_frame section. The extra DW_CFA_nop paddings is due to https://sourceware.org/bugzilla/show_bug.cgi?id=21441 bfd/ * elf32-i386.c (elf_i386_create_dynamic_sections): Create the .plt.got section here. (elf_i386_check_relocs): Don't create the .plt.got section. * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create the .plt.got and .plt.bnd sections here. (elf_x86_64_check_relocs): Don't create the .plt.got nor .plt.bnd sections. ld/ * testsuite/ld-x86-64/pr21038a.d: Update DW_CFA_nop paddings in .eh_frame section. * testsuite/ld-x86-64/pr21038c.d: Update .eh_frame order. commit da3d25afa26476bf24247b8696fd00ab31f39db9 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 27 09:32:35 2017 -0700 Remove has_bnd_reloc from elf_x86_64_link_hash_entry has_bnd_reloc was added to elf_x86_64_link_hash_entry track BND relocations by commit 0ff2b86e7c14177ec7f9e1257f8e697814794017 Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Nov 20 09:01:04 2013 -0800 Create the second PLT for BND relocations Since BND relocations have been deprecated by commit d258b828287a863376af60a1ef7ceafbccc83d93 Author: Igor Zamyatin <igor.zamyatin@intel.com> Date: Tue Nov 18 10:52:36 2014 +0300 Add -z bndplt to generate BND prefix in PLT entries This patch removes has_bnd_reloc from elf_x86_64_link_hash_entry and checks bndplt instead of has_bnd_reloc. * elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove has_bnd_reloc. (elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc. (elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc. (elf_x86_64_check_relocs): Don't set has_bnd_reloc. (elf_x86_64_finish_dynamic_symbol): Check bndplt instead of has_bnd_reloc. Remove has_bnd_reloc commit fba37edd96c8dc65a63bd5b4fef5366de45b165a Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 27 09:07:23 2017 -0700 Change _bfd_elf_link_setup_gnu_properties to bfd * Change setup_gnu_properties to return the first relocatable ELF input with GNU properties so that a backend can make decision based on GNU properties. * elf-bfd.h (elf_backend_data): Change setup_gnu_properties to return bfd *. (_bfd_elf_link_setup_gnu_properties): Return bfd *. * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return the first relocatable ELF input with GNU properties. commit 1f78f649e868979d36490d7c2ea0b3d41abc5ec6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Thu Apr 27 08:55:36 2017 -0700 i386: Simplify VxWorks for non-PIC Change if (PIC) { #1 } else { #2 if (VxWorks) { #3 } } #4 if (VxWorks && !PIC) { #5 } to #4 if (PIC) { #1 } else { #2 if (VxWorks) { #3 #5 } } * elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify VxWorks for non-PIC. commit 55bcecda5703eb4647165cb3ddb86aed63fd44d2 Author: Ulrich Weigand <ulrich.weigand@de.ibm.com> Date: Thu Apr 27 15:57:08 2017 +0200 Read corrrect auxiliary entry in AIX Fix handling of XCOFF function auxiliary entries, in particular when the xlc -qfuncsect or gcc -ffunction-sections compiler option is used in AIX. Also handle C_WEAKEXT storage class. gdb/ 2016-10-21 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com> Ulrich Weigand <uweigand@de.ibm.com> * xcoffread.c (read_xcoff_symtab): Read correct function auxiliary entry if xlc -qfuncsect or gcc -ffunction-sections compiler option is used in AIX. (read_xcoff_symtab): Handle C_WEAKEXT storage class. (process_xcoff_symbol): Likewise. (scan_xcoff_symtab): Likewise. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> commit 14f72d45a22f25f6d00a62fc03bcf9827df226f5 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Apr 27 02:25:33 2017 +0100 MIPS16/GAS: Factor out duplicate symbol value conversion code Factor out and consolidate duplicate section-relative to PC-relative symbol value conversion in `mips16_extended_frag' and `md_convert_frag' used for MIPS16 relaxation, observing that the final calculation in the latter function implies `stretch == 0'. Sanitize the formatting of code moved. gas/ * config/tc-mips.c (mips16_pcrel_val): New function, factored out from... (mips16_extended_frag): ... here. (md_convert_frag): Use `mips16_pcrel_val' rather than repeated code in MIPS16 relaxation, with `stretch' hardcoded to 0. commit 1425c41dcd68350d9be9670910c547cc7ab91e0e Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Apr 27 02:13:21 2017 +0100 MIPS16/GAS: Rename the LONG_BRANCH relaxation flag Following commit 177b4a6ad004 ("infinite loop in mips16 assembler relaxation"), <https://sourceware.org/ml/binutils/2002-03/msg00345.html> the LONG_BRANCH flag used in MIPS16 relaxation has lost its use for branches. Complement commit 88a7ef168927 ("MIPS16/GAS: Restore unsupported relocation diagnostics") then, which has removed the remains of code deactivated by the former commit, and rename the flag to ALWAYS_EXTENDED, more accurately reflecting its current use to select the extended form of PC-relative ADDIU, DADDIU, LD and LW instructions. gas/ * config/tc-mips.c (RELAX_MIPS16_LONG_BRANCH): Rename to... (RELAX_MIPS16_ALWAYS_EXTENDED): ... this. (RELAX_MIPS16_MARK_LONG_BRANCH): Rename to... (RELAX_MIPS16_MARK_ALWAYS_EXTENDED): ... this. (RELAX_MIPS16_CLEAR_LONG_BRANCH): Rename to... (RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): ... this. (mips16_extended_frag): Adjust accordingly. commit 5c99fcf8031bcf96f2c948e9fc5d3b03c97f631a Author: Alan Hayward <alan.hayward@arm.com> Date: Thu Apr 27 11:38:14 2017 +0100 Remove some MAX_REGISTER_SIZE uses in ia64-tdep.c gdb/ * ia64-tdep.c (examine_prologue): Use get_frame_register_unsigned. (ia64_sigtramp_frame_prev_register): Use read_memory_unsigned_integer. (ia64_access_reg): Use get_frame_register_unsigned. (ia64_access_rse_reg): Likewise. (ia64_libunwind_frame_prev_register): Likewise. commit f2d830a50def7a00a911620a3e9c7d920e5ef0f0 Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 12:20:10 2017 +0930 Tidy S_FORCE_RELOC Separate out symbol flag reasons from section reasons to force a reloc. Yes, this adds another section test to the local symbol case too. * symbols.c (S_FORCE_RELOC): Separate section and symbol tests. commit 76c20d54ca5042e11af9ddf5723cc24cf47736ec Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 12:03:39 2017 +0930 Constify elf_backend_eh_frame_address_size * elf-bfd.h (struct elf_backend_data): Make asection param of elf_backend_eh_frame_address_size const. (_bfd_elf_eh_frame_address_size): Likewise. * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise. * elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise. * elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise. * elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise. * elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise. (next_cie_fde_offset): Constify params. (offset_adjust, adjust_eh_frame_local_symbols): Likewise. commit d7153c4ac333c9127c18efcf184607d368bb142d Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 11:08:14 2017 +0930 Edit .eh_frame symbols Experimental support for moving symbols defined in .eh_frame as their CIEs/FDEs are edited or merged. * elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len. (_bfd_elf_adjust_eh_frame_global_symbol): Declare. * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and aug_data_len. (offset_adjust): New function. (_bfd_elf_adjust_eh_frame_global_symbol): Likewise. (adjust_eh_frame_local_symbols): Likewise. (_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols after changing anything. Return true if anything changed. * elflink.c (bfd_elf_discard_info): If .eh_frame changed, call _bfd_elf_adjust_eh_frame_global_symbol for globals. commit 641338d8e9b62bde9672f13f0dca2324b61e46e2 Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 11:06:33 2017 +0930 Clear dynstr_index when forcing symbols local This is really just cosmetic, but it does protect a little from accidentally reading a stale value. * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index when force_local. commit 21d68fcd0c2f9113369d860ee1e5841bfacc35ff Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 09:19:26 2017 +0930 PowerPC undefweak handling This patch fixes a number of cases where -z nodynamic-undefined-weak was not effective in preventing dynamic relocations or linkage stubs. * elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. (ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it. (ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise. (ppc_elf_relocate_section): Likewise. Delete silly optimisation for undef and undefweak dyn_relocs. * elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. (ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it. (allocate_got, allocate_dynrelocs): Likewise. (ppc64_elf_relocate_section): Likewise. commit a61d92b7bd4da998dd5d73e9205b4871f7c4825d Author: Alan Modra <amodra@gmail.com> Date: Thu Apr 27 09:08:09 2017 +0930 [GOLD] testsuite/plugin_section_order.c fix * testsuite/plugin_section_order.c (onload): Add missing break. commit 7a81a73b2e5d00b76e15d97db7b8f0c9809ba1b7 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu Apr 27 00:00:56 2017 +0000 Automatic date update in version.in commit ce8ad8721313d288a05a95b62d95ca43db584ebb Author: Maciej W. Rozycki <macro@imgtec.com> Date: Thu Apr 27 00:47:15 2017 +0100 MIPS/GAS: Fix `.option picX' handling with relaxation Correct the handling of `.option pic0' and `.option pic2' GAS pseudo-ops in relaxation and use the setting of `mips_pic' (which these directives control) as at the time a relaxed frag has been created rather than the final `mips_pic' setting at the end of the source file processed. To do so record whether `mips_pic' is NO_PIC or not in the frag itself and use this information throughout relaxation instead of `mips_pic' to decide which of NO_PIC or SVR4_PIC to produce machine code for, fixing code generation and removing a possible fatal failure reproducible with: $ as -32 --relax-branch -o option-pic-relax-3.o option-pic-relax-3.s option-pic-relax-3.s: Assembler messages: option-pic-relax-3.s:7: Warning: relaxed out-of-range branch into a jump option-pic-relax-3.s: Internal error in cvt_frag_to_fill at .../gas/write.c:490. Please report this bug. $ using the test source included, due to a buffer overrun in filling the variable part of a frag. Likewise use the `fx_tcbit2' flag of a BFD_RELOC_16_PCREL_S2 fixup to handle the simple case of substituting an out of range unconditional branch with an equivalent absolute jump in NO_PIC code. Retain the current way of VXWORKS_PIC use, which commit 41a1578ed17c ("MIPS/GAS: Sanitize `.option picX' pseudo-op") has forbidden the use of `.option picX' with. gas/ * config/tc-mips.c (RELAX_ENCODE): Add `PIC' flag. (RELAX_PIC): New macro. (RELAX_USE_SECOND, RELAX_SECOND_LONGER, RELAX_NOMACRO) (RELAX_DELAY_SLOT, RELAX_DELAY_SLOT_16BIT) (RELAX_DELAY_SLOT_SIZE_FIRST, RELAX_DELAY_SLOT_SIZE_SECOND): Shift bits. (RELAX_BRANCH_ENCODE): Add `pic' flag. (RELAX_BRANCH_UNCOND, RELAX_BRANCH_LIKELY, RELAX_BRANCH_LINK) (RELAX_BRANCH_TOOFAR): Shift bits. (RELAX_BRANCH_PIC): New macro. (RELAX_MICROMIPS_ENCODE): Add `pic' flag. (RELAX_MICROMIPS_PIC): New macro. (RELAX_MICROMIPS_UNCOND, RELAX_MICROMIPS_COMPACT) (RELAX_MICROMIPS_LINK, RELAX_MICROMIPS_NODS) (RELAX_MICROMIPS_RELAX32): Shift bits. (relax_close_frag): Pass `mips_pic' setting to RELAX_ENCODE. (append_insn): Pass `mips_pic' setting to RELAX_BRANCH_ENCODE and RELAX_MICROMIPS_ENCODE, and record it in `fx_tcbit2' of the first fixup created. (md_apply_fix) <BFD_RELOC_16_PCREL_S2>: Use `fx_tcbit2' of the fixup processed rather than `mips_pic' in choosing to relax an out of range branch to a jump. (relaxed_branch_length): Use the `pic' flag of the relaxed frag rather than `mips_pic'. (relaxed_micromips_32bit_branch_length): Likewise. (md_estimate_size_before_relax): Likewise. (md_convert_frag): Likewise. * testsuite/gas/mips/option-pic-relax-0.d: New test. * testsuite/gas/mips/option-pic-relax-1.d: New test. * testsuite/gas/mips/option-pic-relax-2.d: New test. * testsuite/gas/mips/option-pic-relax-3.d: New test. * testsuite/gas/mips/option-pic-relax-3a.d: New test. * testsuite/gas/mips/option-pic-relax-4.d: New test. * testsuite/gas/mips/option-pic-relax-5.d: New test. * testsuite/gas/mips/option-pic-relax-2.l: New stderr output. * testsuite/gas/mips/option-pic-relax-3.l: New stderr output. * testsuite/gas/mips/option-pic-relax-4.l: New stderr output. * testsuite/gas/mips/option-pic-relax-5.l: New stderr output. * testsuite/gas/mips/option-pic-relax-0.s: New test source. * testsuite/gas/mips/option-pic-relax-1.s: New test source. * testsuite/gas/mips/option-pic-relax-2.s: New test source. * testsuite/gas/mips/option-pic-relax-3.s: New test source. * testsuite/gas/mips/option-pic-relax-4.s: New test source. * testsuite/gas/mips/option-pic-relax-5.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. commit 97d343d40012b1030f1fd219f91efcab180fb3ef Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Apr 26 15:34:00 2017 -0700 x86: Add DT_PLTRELSZ/DT_PLTREL/DT_JMPREL for PLT relocation x86, PLT relocation may contain R_386_TLS_DESC or R_X86_64_TLSDESC even though there is no real PLT. We need to add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL if there is a .rel.plt/.rela.plt section. bfd/ * elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section. * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section. ld/ * testsuite/ld-i386/tlsdesc2.d: New test. * testsuite/ld-x86-64/tlsdesc2.d: Likewise. commit 04b31182bf3f8a1a76e995bdfaaaab4c009b9cb2 Author: Nick Clifton <nickc@redhat.com> Date: Wed Apr 26 16:30:22 2017 +0100 Fix a seg-fault when processing a corrupt binary containing reloc(s) with negative addresses. PR binutils/21434 * reloc.c (bfd_perform_relocation): Check for a negative address in the reloc. commit d21f3ddb0d5f95aff5c769ae283ce5522262f48d Author: Nick Clifton <nickc@redhat.com> Date: Wed Apr 26 15:45:41 2017 +0100 Fix PR number in ChangeLog comment. commit 740a463062bd5d1641bdfb639295dafe89341b9b Author: Nick Clifton <nickc@redhat.com> Date: Wed Apr 26 15:42:03 2017 +0100 Fix invocation of stat() on a NULL pointer. PR binutils/21407 * bucomm.c (get_file_size): Return -1 if file_name is NULL. * ar.c (main): Fail with usage() invocation if no file names are provided. commit 3e6b644558f941d3fe482e15efbc53d8f39ef8b7 Author: Nick Clifton <nickc@redhat.com> Date: Wed Apr 26 14:23:26 2017 +0100 Improve decoding of corrupt/unrecognised gnu build attribute notes. * readelf.c (process_section_headers): Warn about overlarge sections. (print_gnu_build_attribute_name): Print the number of unrecognised note types. Fix formatting in the presence of errors. (testsuite/binutils-all/note-2-32.s): Fix encoding of numeric notes. (testsuite/binutils-all/note-2-64.s): Likewise. commit b41c5a85a734b9ca813d4a314b66ef4b4b4d1b11 Author: Jiong Wang <jiong.wang@arm.com> Date: Wed Apr 26 14:05:03 2017 +0100 [gdbarch] New method "execute_dwarf_cfa_vendor_op" and migrate SPARC to it Recently a feature called "return address signing" has been added to GCC to prevent stack smash stack on AArch64. For details please refer: https://gcc.gnu.org/ml/gcc-patches/2017-01/msg00376.html GDB needs to be aware of this feature so it can restore the original return address which is critical for unwinding. On compiler side, whenever return address, i.e. LR register, is mangled or restored by hardware instruction, compiler is expected to generate a DW_CFA_AARCH64_negate_ra_state to toggle return address signing status. DW_CFA_AARCH64_negate_ra_state is using the same CFI number and therefore need to be multiplexed with DW_CFA_GNU_window_save which was designed for SPARC. A new gdbarch method "execute_dwarf_cfa_vendor_op" is introduced by this patch. It's parameters has been restricted to those only needed by SPARC and AArch64 for multiplexing DW_CFA_GNU_window_save which is a CFI operation takes none operand. Should any further DWARF CFI operation want to be multiplexed in the future, the parameter list can be extended. Below is the current function prototype. typedef int (gdbarch_execute_dwarf_cfa_vendor_op_ftype) (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs); DW_CFA_GNU_window_save support for SPARC is migrated to this new gdbarch method by this patch. gdb/ * gdbarch.sh: New gdbarch method execute_dwarf_cfa_vendor_op. * gdbarch.c: Regenerated. * gdbarch.h: Regenerated. * dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Made the visibility external. (execute_cfa_program): Call execute_dwarf_cfa_vendor_op for CFI between DW_CFA_lo_user and DW_CFA_high_user inclusive. (enum cfa_how_kind): Move to ... (struct dwarf2_frame_state_reg_info): Likewise. (struct dwarf2_frame_state): Likewise. * dwarf2-frame.h: ... here. (dwarf2_frame_state_alloc_regs): New declaration. * sparc-tdep.c (sparc_execute_dwarf_cfa_vendor_op): New function. (sparc32_gdbarch_init): Register execute_dwarf_cfa_vendor_op hook. commit 23ec1e32b1ab714649a7c25e49b5d721fe3bd3db Author: Maciej W. Rozycki <macro@imgtec.com> Date: Mon Apr 24 20:15:31 2017 +0100 PR ld/21334: Always call `_bfd_elf_link_renumber_dynsyms' if required Complement commit e17b0c351f0b ("MIPS/BFD: Respect the ELF gABI dynamic symbol table sort requirement") and correct an inconsistency in dynamic symbol accounting data causing an assertion failure in the MIPS backend: ld: BFD (GNU Binutils) 2.28.51.20170330 assertion fail ../../binutils-gdb/bfd/elfxx-mips.c:3860 in the course of making a GOT entry in a static binary to satisfy a GOT relocation present in input, due to the local dynamic symbol count not having been established. To do so let backends request `_bfd_elf_link_renumber_dynsyms' to be always called, rather than where a dynamic binary is linked only, and then make this request in the MIPS backend. bfd/ PR ld/21334 * elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms' member. * elfxx-target.h [!elf_backend_always_renumber_dynsyms] (elf_backend_always_renumber_dynsyms): Define. (elfNN_bed): Initialize `always_renumber_dynsyms' member. * elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define. * elflink.c (bfd_elf_size_dynamic_sections): Also call `_bfd_elf_link_renumber_dynsyms' if the backend has requested it. (bfd_elf_size_dynsym_hash_dynstr): Likewise. ld/ PR ld/21334 * testsuite/ld-mips-elf/pr21334.dd: New test. * testsuite/ld-mips-elf/pr21334.gd: New test. * testsuite/ld-mips-elf/pr21334.ld: New test linker script. * testsuite/ld-mips-elf/pr21334.s: New test source. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. commit c46cec3a8cfe02fbe0f6c67ba53abc5369c5c659 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Mon Apr 24 20:13:28 2017 +0100 ELF/BFD: Limit `_bfd_elf_link_renumber_dynsyms' call in section GC Consistently call `_bfd_elf_link_renumber_dynsyms' only if linking a dynamic binary, complementing code in `bfd_elf_size_dynsym_hash_dynstr' and commit ccabcbe51e85 ("New attempt at fixing MIPS --gc-sections et al."), <https://sourceware.org/ml/binutils/2005-08/msg00258.html>. bfd/ * elflink.c (bfd_elf_size_dynamic_sections): Only call `_bfd_elf_link_renumber_dynsyms' after section GC if dynamic sections have been created. commit bbdd9a6894d7875407da59d490faf5588163d21c Author: Maciej W. Rozycki <macro@imgtec.com> Date: Mon Apr 24 20:41:33 2017 +0100 MIPS/readelf: With `-A' also dump GOT in static binaries A static, non-relocated global offset table will be embedded in static binaries produced from objects containing any kind of GOT relocations, generally PIC code. All symbols will have been resolved in static link in such binaries making all GOT entries local and their values final as there is no run-time load processing further performed. Dump such GOT with `readelf -A' like already done with regular GOT, to make it easier to examine static code that uses accesses via the GOT pointer. There will be no dynamic segment or section in a static binary to get the GOT pointer (DT_PLTGOT) from, so use section headers to find a `.got' section instead. binutils/ * readelf.c (process_mips_specific): Add static GOT support. commit e63d123268f23a4cbc45ee55fb6dbc7d84729da3 Author: Nick Clifton <nickc@redhat.com> Date: Wed Apr 26 13:07:49 2017 +0100 Fix seg-fault attempting to compress a debug section in a corrupt binary. PR binutils/21431 * compress.c (bfd_init_section_compress_status): Check the return value from bfd_malloc. commit c185f580b2b3baf7cee762c8ab31ab6925b9534a Author: Alan Hayward <alan.hayward@arm.com> Date: Wed Apr 26 10:32:35 2017 +0100 xtensa_pseudo_register_read/write - Use regcache_raw_read_unsigned gdb/ * xtensa-tdep.c (xtensa_pseudo_register_read): Use regcache_raw_read_unsigned. (xtensa_pseudo_register_write): Likewise. commit 19c4559475791cd70e319eaf5c1e23d23d9ae81e Author: Alan Hayward <alan.hayward@arm.com> Date: Wed Apr 26 09:57:15 2017 +0100 nds32: Abort instead of returning REG_UNKNOWN gdb/ * nds32-tdep.c (nds32_pseudo_register_read): Abort on errors. (nds32_pseudo_register_write): Likewise. commit 03def0812a9ee962d9dcfe9b0ba37783e58acfb8 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed Apr 26 00:00:36 2017 +0000 Automatic date update in version.in commit 4658f12e9c5ec0d2efb04f1688f6cd6bd9f1a47d Author: Yao Qi <yao.qi@linaro.org> Date: Tue Apr 25 21:32:05 2017 +0100 Change readonly_p to bool This patch changes readonly_p type to bool. gdb: 2017-04-25 Yao Qi <yao.qi@linaro.org> * regcache.c (struct regcache) <readonly_p>: Change its type to bool. (regcache_xmalloc_1): Update parameter type and callers update. commit c4ab9505b53cdc899506ed421fddb7e1f8faf7a3 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Wed Apr 12 00:03:41 2017 +0100 MIPS/readelf: Simplify GOT[1] data availability check Unavailable data is handled gracefully in MIPS GOT processing done by `print_mips_got_entry', so all that is needed in special GOT[1] handling is to verify whether data can be retrieved for the purpose of the GNU marker check done with `byte_get'. Remove the extra error reporting code then, introduced with commit 75ec1fdbb797 ("Fix runtime seg-fault in readelf when parsing a corrupt MIPS binary.") in the course of addressing PR binutils/21344, and defer the error case to regular local GOT entry processing. binutils/ * readelf.c (process_mips_specific): Remove error reporting from GOT[1] processing. commit 919383ac718c2a3187ee2a9ad659daa22da26258 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Wed Apr 12 00:02:13 2017 +0100 MIPS/readelf: Remove extraneous null GOT data check Null data is handled gracefully throughout in MIPS GOT processing, with addresses printed normally and unavailable data shown as `<unknown>' by `print_mips_got_entry', and special processing code for GOT[1] doing an explicit check. Remove an unwanted null GOT data check then, introduced with commit 592458412fb2 in the course of addressing PR binutils/12855. binutils/ * readelf.c (process_mips_specific): Remove null GOT data check. commit 126124cc0f3f0417913bfd84d83e4e525b6facf9 Author: Claudiu Zissulescu <claziss@synopsys.com> Date: Tue Apr 25 17:07:00 2017 +0200 [ARC] Enhance enter/leave mnemonics. enter/leave mnemonics are enhanced to not only accept register ranges but also single register (i.e., r13) or even no GPR register at all. gas/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * testsuite/gas/arc/leave_enter.d: Update test. * testsuite/gas/arc/leave_enter.s: Likewise. opcodes/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * arc-dis.c (print_insn_arc): Smartly print enter/leave mnemonics. * arc-opc.c (insert_r13el): New function. (R13_EL): Define. * arc-tbl.h: Add new enter/leave variants. commit be6a24d8eabdbeef32a9d79e81307af4491fcf56 Author: Claudiu Zissulescu <claziss@synopsys.com> Date: Tue Apr 25 17:07:00 2017 +0200 [ARC] Prefer NOP instead of MOV 0,0 NOP and MOV 0,0 are having the same encoding. As MOV mnemonic is located before NOP in the instruction table, the disassembler prints MOV 0,0 for NOP. Reorder the instructions such that NOP is first. gas/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * testsuite/gas/arc/b.d: Update test. * testsuite/gas/arc/noargs_hs.d: Likewise. opcode/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * arc-tbl.h: Reorder NOP entry to be before MOV instructions. commit d581dda88162831ebbd0757312fa93681d945327 Author: Yao Qi <yao.qi@linaro.org> Date: Tue Apr 25 15:15:54 2017 +0100 Change gdbarch_wchar_bit for AArch64 and ARM The size of wchar_t on AArch64 and ARM is 4-byte, so we can use the default value (4*TARGET_CHAR_BIT). This patch fixes some fails in gdb.cp/wide_char_types.exp on aarch64-linux. gdb: 2017-04-25 Yao Qi <yao.qi@linaro.org> * aarch64-tdep.c (aarch64_gdbarch_init): Don't call set_gdbarch_wchar_bit. * arm-tdep.c (arm_gdbarch_init): Likewise. commit 0348fd79d4c32243d91e8a55f20f408a9b4ec20d Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue Apr 25 11:49:37 2017 +0100 MIPS16/opcodes: Add `-M no-aliases' disassembler option help text Complement commit 986e18a5a9fd ("Add a second 'pinfo' member to mips_opcode to extend number of available bits"), <https://sourceware.org/ml/binutils/2005-01/msg00261.html>, and add a help text for the `-M no-aliases' disassembler option. opcodes/ * mips-dis.c (print_mips_disassembler_options): Add `no-aliases'. commit 6e3d1f0728d980a384c5aa63ce7f2ff3919c5024 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue Apr 25 11:44:29 2017 +0100 MIPS16/opcodes: Annotate instruction aliases Complement commit 986e18a5a9fd ("Add a second 'pinfo' member to mips_opcode to extend number of available bits"), <https://sourceware.org/ml/binutils/2005-01/msg00261.html>, and annotate MIPS16 NOP, LA, DLA and the synthetic forms of LD and LW instructions as aliases. These correspond to MOVE, and the PC-relative ADDIU, DADDIU, LD and LW hardware instructions respectively. binutils/ * testsuite/binutils-all/mips/mips16-alias.d: New test. * testsuite/binutils-all/mips/mips16-noalias.d: New test. * testsuite/binutils-all/mips/mips16-alias.s: New test source. * testsuite/binutils-all/mips/mips.exp: Run the new tests. opcodes/ * mips16-opc.c (AL): New macro. (mips16_opcodes): Mark "nop", "la", "dla", and synthetic forms of "ld" and "lw" as aliases. commit adc1273cb27286452ed8b32c5ca3ea263b4854f0 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue Apr 25 10:20:14 2017 +0100 MIPS/GAS: Correct BFD_RELOC_MIPS16_16_PCREL_S1 fixup size Correct the size of a BFD_RELOC_MIPS16_16_PCREL_S1 fixup made in `md_convert_frag', fixing a bug introduced with commit c9775dde3277 ("MIPS16: Add R_MIPS16_PC16_S1 branch relocation support)". Add test cases to verify that the overflow of this fixup's in-place addend is still correctly detected. gas/ * config/tc-mips.c (md_convert_frag): Correct BFD_RELOC_MIPS16_16_PCREL_S1 fixup size. * testsuite/gas/mips/mips16-branch-addend-4.d: New test. * testsuite/gas/mips/mips16-branch-addend-5.d: New test. * testsuite/gas/mips/mips16-branch-addend-5.l: New stderr output. * testsuite/gas/mips/mips16-branch-addend-4.s: New test source. * testsuite/gas/mips/mips16-branch-addend-5.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. commit debed3db4887483552103da36d180967ef0dca5f Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 10:58:57 2017 +0100 Fix build on gcc < 5 (std::is_trivially_copyable missing) Ref: https://sourceware.org/ml/gdb-patches/2017-04/msg00660.html Simply skip the poisoning on older compilers. gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * common/poison.h [!HAVE_IS_TRIVIALLY_COPYABLE] (IsRelocatable) (BothAreRelocatable, memcopy, memmove): Don't define. * common/traits.h (__has_feature, HAVE_IS_TRIVIALLY_COPYABLE): New macros. commit d28b6364b1fba1c0270c001f0d82a69e351e1922 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Tue Apr 25 02:40:43 2017 -0700 gas: sparc: fix relaxation of CALL instruction into branches in a.out targets This patch avoids CALL instructions to be optimized into branches if the symbols referred to in the CALL instruction are not fully resolved at the time the assembler writes its output. Tested in sparc64-linux-gnu and sparc-sun-sunos4.1.3 targets. No regressions. gas/ChangeLog: 2017-04-25 Jose E. Marchesi <jose.marchesi@oracle.com> PR gas/21407 * config/tc-sparc.c (md_apply_fix): Do not transform `call' instructions into branch instructions in fixups generating additional relocations. * testsuite/gas/sparc/call-relax.s: New file. * testsuite/gas/sparc/call-relax.d: Likewise. * testsuite/gas/sparc/call-relax-aout.d: Likewise. * testsuite/gas/sparc/sparc.exp: Test call-relax and call-relax-aout. commit b0b92aeb3828219075fce23543fb39fee8608e99 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 01:27:41 2017 +0100 Poison non-POD memset & non-trivially-copyable memcpy/memmove This patch catches invalid initialization of non-POD types with memset, at compile time. This is what I used to catch the problems fixed by the previous patches in the series: $ make -k 2>&1 | grep "deleted function" src/gdb/breakpoint.c:951:53: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â src/gdb/breakpoint.c:7325:32: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â src/gdb/btrace.c:1153:42: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = btrace_insn; <template-parameter-1-2> = void; size_t = long unsigned int]â ... gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * common/common-defs.h: Include "common/poison.h". * common/function-view.h: (Not, Or, Requires): Move to traits.h and adjust. * common/poison.h: New file. * common/traits.h: Include <type_traits>. (Not, Or, Requires): New, moved from common/function-view.h. commit 16c4d54a71d8052988ed9c8005a03a7f934245f4 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 01:27:42 2017 +0100 Don't memset non-POD types: struct breakpoint Eh, struct breakpoint was made non-POD just today, with commit d28cd78ad820e3 ("Change breakpoint event locations to event_location_up"). :-) src/gdb/breakpoint.c: In function âvoid init_raw_breakpoint_without_location(breakpoint*, gdbarch*, bptype, const breakpoint_ops*)â: src/gdb/breakpoint.c:7447:28: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = breakpoint; <template-parameter-1-2> = void; size_t = long unsigned int]â memset (b, 0, sizeof (*b)); ^ In file included from src/gdb/common/common-defs.h:85:0, from src/gdb/defs.h:28, from src/gdb/breakpoint.c:20: src/gdb/common/poison.h:56:7: note: declared here void *memset (T *s, int c, size_t n) = delete; ^ gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * breakpoint.h (struct breakpoint): In-class initialize all fields. Make boolean fields "bool". * breakpoint.c (init_raw_breakpoint_without_location): Remove memset call and initializations no longer necessary. commit b5c3668253b909fd1f5b011893a35bb8dfd3be9b Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 01:27:42 2017 +0100 Don't memset non-POD types: struct btrace_insn struct btrace_insn is not a POD [1] so we shouldn't be using memset to initialize it [2]. Use list-initialization instead, wrapped in a "pt insn to btrace insn" function, which looks like just begging to be added next to the existing pt_reclassify_insn/pt_btrace_insn_flags functions. [1] - because its field "flags" is not POD, because enum_flags has a non-trivial default ctor. gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * btrace.c (pt_btrace_insn_flags): Change parameter type to reference. (pt_btrace_insn): New function. (ftrace_add_pt): Remove memset call and use pt_btrace_insn. commit 5625a2864147f4d92b22edfeeab7600818988be2 Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 01:27:42 2017 +0100 Don't memset non-POD types: struct bp_location struct bp_location is not a POD, so we shouldn't be using memset to initialize it. Caught like this: src/gdb/breakpoint.c: In function âbp_location** get_first_locp_gte_addr(CORE_ADDR)â: src/gdb/breakpoint.c:950:53: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â memset (&dummy_loc, 0, sizeof (struct bp_location)); ^ In file included from src/gdb/defs.h:28:0, from src/gdb/breakpoint.c:20: src/gdb/common/common-defs.h:126:7: note: declared here void *memset (T *s, int c, size_t n) = delete; ^ gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * ada-lang.c (ada_catchpoint_location): Now a "class". Remove "base" field and inherit from "bp_location" instead. Add non-default ctor. (allocate_location_exception): Use new non-default ctor. * breakpoint.c (get_first_locp_gte_addr): Remove memset call. (init_bp_location): Convert to ... (bp_location::bp_location): ... this new ctor, and remove memset call. (base_breakpoint_allocate_location): Use the new non-default ctor. * breakpoint.h (bp_location): Now a class. Declare default and non-default ctors. In-class initialize all members. (init_bp_location): Remove declaration. commit 23bcc18f470ee4364bd362a8b78c6c1415a9dadb Author: Pedro Alves <palves@redhat.com> Date: Tue Apr 25 01:27:42 2017 +0100 Don't memcpy non-trivially-copyable types: Make enum_flags triv. copyable The delete-memcpy-with-non-trivial-types patch exposed many instances of this problem: src/gdb/btrace.h: In function âbtrace_insn_s* VEC_btrace_insn_s_quick_insert(VEC_btrace_insn_s*, unsigned int, const btrace_insn_s*, const char*, unsigned int)â: src/gdb/common/vec.h:948:62: error: use of deleted function âvoid* memmove(T*, const U*, size_t) [with T = btrace_insn; U = btrace_insn; <template-parameter-1-3> = void; size_t = long unsigned int]â memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (T)); \ ^ src/gdb/common/vec.h:436:1: note: in expansion of macro âDEF_VEC_FUNC_Oâ DEF_VEC_FUNC_O(T) \ ^ src/gdb/btrace.h:84:1: note: in expansion of macro âDEF_VEC_Oâ DEF_VEC_O (btrace_insn_s); ^ [...] src/gdb/common/vec.h:1060:31: error: use of deleted function âvoid* memcpy(T*, const U*, size_t) [with T = btrace_insn; U = btrace_insn; <template-parameter-1-3> = void; size_t = long unsigned int]â sizeof (T) * vec2_->num); \ ^ src/gdb/common/vec.h:437:1: note: in expansion of macro âDEF_VEC_ALLOC_FUNC_Oâ DEF_VEC_ALLOC_FUNC_O(T) \ ^ src/gdb/btrace.h:84:1: note: in expansion of macro âDEF_VEC_Oâ DEF_VEC_O (btrace_insn_s); ^ So, VECs (given it's C roots) rely on memcpy/memcpy of VEC elements to be well defined, in order to grow/reallocate its internal elements array. This means that we can only put trivially copyable types in VECs. E.g., if a type requires using a custom copy/move ctor to relocate, then we can't put it in a VEC (so we use std::vector instead). But, as shown above, we're violating that requirement. btrace_insn is currently not trivially copyable, because it contains an enum_flags field, and that is itself not trivially copyable. This patch corrects that, by simply removing the user-provided copy constructor and assignment operator. The compiler-generated versions work just fine. Note that std::vector relies on std::is_trivially_copyable too to know whether it can reallocate its elements with memcpy/memmove instead of having to call copy/move ctors and dtors, so if we have types in std::vectors that weren't trivially copyable because of enum_flags, this will make such vectors more efficient. gdb/ChangeLog: 2017-04-25 Pedro Alves <palves@redhat.com> * common/enum-flags.h (enum_flags): Don't implement copy ctor and assignment operator. commit a49abe0bb18e04d3a4b692995fcfae70cd470775 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue Apr 25 00:00:36 2017 +0000 Automatic date update in version.in commit 9e9821ddd80c0d0b3dda54d34cc8867f256d4583 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 24 14:37:12 2017 -0700 x86-64: Force symbol dynamic if it isn't undefined weak Force symbol dynamic if it isn't undefined weak. Generate relative relocation for GOT reference against non-dynamic symbol in PIC to avoid unnecessary dynamic symbols. bfd/ * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add no_finish_dynamic_symbol. (elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to 0. (elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined weak symbol, don't make it dynamic. (elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC, set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE relocation for GOT reference. (elf_x86_64_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol isn't 0. ld/ * testsuite/ld-x86-64/no-plt.exp: Also check no-plt-1e.nd. * testsuite/ld-x86-64/no-plt-1e.nd: New file. commit 0dc9a308a1ec9675bf6b33bae9e8b1faa0bad9ed Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 24 13:42:33 2017 -0700 i386: Force symbol dynamic if it isn't undefined weak Force symbol dynamic if it isn't undefined weak. Generate R_386_RELATIVE relocation for R_386_GOT32 relocation against non-dynamic symbol in PIC. PR ld/21402 * elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak symbol, don't make it dynamic. (elf_i386_relocate_section): If a symbol isn't dynamic in PIC, set no_finish_dynamic_symbol and generate R_386_RELATIVE relocation for R_386_GOT32. commit e1ba30532c6de26a14404ab4919bb591e8da3eab Author: Yao Qi <yao.qi@linaro.org> Date: Mon Apr 24 21:29:12 2017 +0100 Use floatformat_totalsize_bytes The code can be replaced by floatformat_totalsize_bytes. gdb: 2017-04-24 Yao Qi <yao.qi@linaro.org> * doublest.c (convert_doublest_to_floatformat): Call floatformat_totalsize_bytes. commit e662f84f5d6d014746550ce3d3f623583c043ff0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 24 09:46:04 2017 -0700 i386: Skip pr12570 tests for nacl targets commit f129e49f4d07f4d36319ac757fdcf3a8ce7d605b Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue Jan 10 11:30:25 2017 -0800 Don't use elf_i386_eh_frame_plt directly fixed i386 PLT eh_frame generation. Skip pr12570 tests since they are for non-nacl targets. * testsuite/ld-i386/pr12570a.d: Skip for nacl targets. * testsuite/ld-i386/pr12570b.d: Likewise. commit 1587442d37ee4266e54d59bfdc783574f0587aff Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon Apr 24 09:37:10 2017 -0700 i386: Set ELF_MAXPAGESIZE to 0x1000 for VxWorks commit a27e437177412e5b52999723f3c5d5d0d37b9087 Author: Roland McGrath <roland@gnu.org> Date: Thu Jul 28 22:35:15 2011 +0000 BFD vector for elf32-i386-nacl: changed ELF_MAXPAGESIZE to 0x10000 for VxWorks. This patch fixes it and updated testsuite/ld-i386/vxworks2.sd to add space for program headers. bfd/ PR ld/21425 * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks. ld/ PR ld/20815 * testsuite/ld-i386/vxworks2.sd: Add space for program headers. commit 534455547021f3262fa60d32cabb626af01692a3 Author: Thomas Preud'homme <thomas.preudhomme@arm.com> Date: Mon Apr 24 14:49:48 2017 +0100 [GAS/ARM] Fix expansion of ldr pseudo instruction The LDR rX, =cst pseudo-instruction suffers from two issues for loading integer constants in Thumb mode: - movs is used if the constant and register can be encoded using that instruction which leads to unexpected behavior due to its flag-setting behavior - mov.w, movw and mvn are used for r13 (sp) and r15 (pc) but these encoding are marked as UNPREDICTABLE This patch fixes those issues and update testing accordingly. 2017-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com> gas/ * config/tc-arm.c (move_or_literal_pool): Remove code generating MOVS. Forbid MOV.W and MOVW if destination is SP or PC. * testsuite/gas/arm/thumb2_ldr_immediate_highregs_armv6t2.s: Explain expectation of LDR not generating a MOVS for low registers and small constants. Add tests of MOVW generation. * testsuite/gas/arm/thumb2_ldr_immediate_highregs_armv6t2.d: Update expected disassembly. commit 8b353c47b70568ab9f0cfd619b7a19e931c2b0c8 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Mon Apr 24 05:31:31 2017 -0700 ld: fix regressions with rett instructions in sparc tests. A few tests in the ld testsuite were expecting the disassembler to emit `rett' instructions in V9. This patch updates the tests to expect `return' instead. ld/ChangeLog: 2017-04-24 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/ld-sparc/tlssunbin64.dd: Expect `return' instructions instead of `rett' in V9. * testsuite/ld-sparc/tlssunnopic64.dd: Likewise. * testsuite/ld-sparc/tlssunpic64.dd: Likewise. commit 957f6b39cab6cac0e4c54e650c7f75109544ac1d Author: Tamar Christina <tamar.christina@arm.com> Date: Mon Apr 24 11:55:44 2017 +0100 Fix snafu in aarch64 opcodes debugging statement. * aarch64-opc.c (aarch64_logical_immediate_p): Update DEBUG_TRACE arguments. commit 9ad8982091eeb76b380e459fe721aaeacf7b8f24 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon Apr 24 00:00:39 2017 +0000 Automatic date update in version.in commit 42354845ae5e00ec1c3519e1f2166b79a9533401 Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 17:39:48 2017 +0930 PR 21418, ar -N lacks arg check PR 21418 * ar.c (main): Check -a, -b, -i and -N args are given. commit 7034215fd6d99f275998f7f0f8a346ab35fcbee6 Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 17:28:14 2017 +0930 PR 21417, ar arg check failure PR 21417 * ar.c (main): Check that an archive file is given after options. commit b02cd3e978e9273074f7cbe2ca1d5b372225a56d Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 18:31:40 2017 +0930 PR 21415, objdump fails to check bfd_get_section_contents status PR 21415 * objdump.c (disassemble_section): Check bfd_get_section_contents status. commit 7eacd66b086cabb1daab20890d5481894d4f56b2 Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 15:21:11 2017 +0930 PR 21414, null pointer deref of _bfd_elf_large_com_section sym PR 21414 * section.c (GLOBAL_SYM_INIT): Make available in bfd.h. * elf.c (lcomm_sym): New. (_bfd_elf_large_com_section): Use lcomm_sym section symbol. * bfd-in2.h: Regenerate. commit bce964aa6c777d236fbd641f2bc7bb931cfe4bf3 Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 11:03:34 2017 +0930 PR 21412, get_reloc_section assumes .rel/.rela name for SHT_REL/RELA. This patch fixes an assumption made by code that runs for objcopy and strip, that SHT_REL/SHR_RELA sections are always named starting with a .rel/.rela prefix. I'm also modifying the interface for elf_backend_get_reloc_section, so any backend function just needs to handle name mapping. PR 21412 * elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change parameters and comment. (_bfd_elf_get_reloc_section): Delete. (_bfd_elf_plt_get_reloc_section): Declare. * elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section): New functions. Don't blindly skip over assumed .rel/.rela prefix. Extracted from.. (_bfd_elf_get_reloc_section): ..here. Delete. (assign_section_numbers): Call elf_get_reloc_section. * elf64-ppc.c (elf_backend_get_reloc_section): Define. * elfxx-target.h (elf_backend_get_reloc_section): Update. commit 97e83a100aa8250be783304bfe0429761c6e6b6b Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 13:55:49 2017 +0930 PR 21409, segfault in _bfd_dwarf2_find_nearest_line PR 21409 * dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when no symbols. commit f082820db966c79e47a143da774700055a1fad41 Author: Alan Modra <amodra@gmail.com> Date: Sun Apr 23 13:49:50 2017 +0930 PR 21408, segfault in display_debug_lines_decoded PR 21408 * dwarf.c (display_debug_lines_decoded): Don't segfault on NULL file_table. commit b43eea27e99f5fd270b3bec455054ea53ac700bb Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Apr 23 00:00:35 2017 +0000 Automatic date update in version.in commit bf1554384b186b448904dbc13ee5374239c88520 Author: Jim Wilson <jim.wilson@linaro.org> Date: Sat Apr 22 16:36:01 2017 -0700 Fix ldn/stn multiple instructions. Fix testcases with unaligned data. sim/aarch64/ * simulator.c (vec_load): Add M argument. Rewrite to iterate over registers based on structure size. (LD4, LD3, LD2, LD1_2, LD1_3, LD1_4): Pass new arg to vec_load. (LD1_1): Replace with call to vec_load. (vec_store): Add new M argument. Rewrite to iterate over registers based on structure size. (ST4, ST3, ST2, ST1_2, ST1_3, ST1_4): Pass new arg to vec_store. (ST1_1): Replace with call to vec_store. sim/testsuite/sim/aarch64/ * fcvtz.s, fstur.s, ldn_single.s, ldnr.s, mla.s, mls.s, uzp.s: Align data. * sumulh.s: Delete unnecessary data alignment. * stn_single.s: Align data. Fix unaligned ldr insns. Adjust cmp arguments to match change. * ldn_multiple.s, stn_multiple.s: New. commit 10f489e57677e670bf980e93896762594e9ad908 Author: Tom Tromey <tom@tromey.com> Date: Wed Apr 12 16:30:21 2017 -0600 Use ui_out_emit_list This changes some spots to use ui_out_emit_list. This only touches "easy" cases, where the cleanup was used in a block-structured way. There's also one more use of ui_out_emit_tuple in here. ChangeLog 2017-04-22 Tom Tromey <tom@tromey.com> * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Use ui_out_emit_list. * stack.c (print_frame): Use ui_out_emit_list. * mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use ui_out_emit_list. * mi/mi-main.c (print_one_inferior) (mi_cmd_data_list_register_names) (mi_cmd_data_list_register_values, mi_cmd_list_features) (mi_cmd_list_target_features, mi_cmd_trace_frame_collected): Use ui_out_emit_list. * mi/mi-interp.c (mi_on_normal_stop_1): Use ui_out_emit_list. (mi_output_solib_attribs): Use ui_out_emit_list, ui_out_emit_tuple. * mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_list. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames) (mi_cmd_stack_list_args, list_args_or_locals): Use ui_out_emit_list. * disasm.c (do_assembly_only): Use ui_out_emit_list. * breakpoint.c (print_solib_event, output_thread_groups): Use ui_out_emit_list. commit 0092b74da6d86185c4d0c0fa0f540b97647bf44a Author: Tom Tromey <tom@tromey.com> Date: Wed Apr 12 16:16:10 2017 -0600 Use ui_out_emit_tuple in more places in MI This patch changes a few more spots in MI to use ui_out_emit_tuple. These changes required the use of gdb::optional. ChangeLog 2017-04-22 Tom Tromey <tom@tromey.com> * mi/mi-main.c (print_variable_or_computed): Use ui_out_emit_tuple. * mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_tuple. * mi/mi-cmd-stack.c (list_arg_or_local): Use ui_out_emit_tuple. commit a14a62ddff9eadbb8a7ad101ab06b02e44b6c00a Author: Tom Tromey <tom@tromey.com> Date: Wed Apr 12 16:15:14 2017 -0600 Use ui_out_emit_tuple in tracepoint.c This changes some code in tracepoint.c to use ui_out_emit_tuple. One of these involved removing an otherwise unrelated cleanup (changing type to std::string) and the other involved introducing a new block. ChangeLog 2017-04-22 Tom Tromey <tom@tromey.com> * tracepoint.c (tvariables_info_1) (print_one_static_tracepoint_marker): Use ui_out_emit_tuple. commit 46b9c12945629fffb61001a8f13a37c96675c0b7 Author: Tom Tromey <tom@tromey.com> Date: Wed Apr 12 16:10:02 2017 -0600 More uses of ui_out_emit_tuple This patch adds a few more uses of ui_out_emit_tuple. In these cases a slightly more complicated change was needed. This also adds annotate_arg_emitter, for use in stack.c, to avoid having to introduce a new scope and reindent the code for a single call. ChangeLog 2017-04-22 Tom Tromey <tom@tromey.com> * stack.c (print_frame_arg): Use ui_out_emit_tuple, annotate_arg_emitter. * breakpoint.c (print_mention_watchpoint) (print_mention_masked_watchpoint): Use ui_out_emit_tuple. * annotate.h (struct annotate_arg_emitter): New. commit 2e78302469502f4f8a98144b60c09d4d9b6438fd Author: Tom Tromey <tom@tromey.com> Date: Wed Apr 12 08:23:08 2017 -0600 Use ui_out_emit_tuple This patch changes various places to use ui_out_emit_tuple, eliminating a number of cleanups. This patch only tackles "easy" cases, which are ones where the cleanups in question were block-structured and did not involve any changes other than the obvious replacement. ChangeLog 2017-04-22 Tom Tromey <tom@tromey.com> * record-btrace.c (record_btrace_insn_history) (record_btrace_insn_history_range, record_btrace_call_history) (record_btrace_call_history_range): Use ui_out_emit_tuple. * thread.c (do_captured_list_thread_ids, print_thread_info_1): Use ui_out_emit_tuple. * stack.c (print_frame_info): Use ui_out_emit_tuple. * solib.c (info_sharedlibrary_command): Use ui_out_emit_tuple. * skip.c (skip_info): Use ui_out_emit_tuple. * remote.c (show_remote_cmd): Use ui_out_emit_tuple. * progspace.c (print_program_space): Use ui_out_emit_tuple. * probe.c (info_probes_for_ops): Use ui_out_emit_tuple. * osdata.c (info_osdata): Use ui_out_emit_tuple. * mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use ui_out_emit_tuple. * mi/mi-main.c (print_one_inferior, list_available_thread_groups) (output_register, mi_cmd_data_read_memory) (mi_cmd_data_read_memory_bytes, mi_load_progress) (mi_cmd_trace_frame_collected): Use ui_out_emit_tuple. * mi/mi-cmd-var.c (mi_cmd_var_list_children, varobj_update_one): Use ui_out_emit_tuple. * mi/mi-cmd-stack.c (mi_cmd_stack_list_args): Use ui_out_emit_tuple. * mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions) (mi_cmd_info_gdb_mi_command): Use ui_out_emit_tuple. * linux-thread-db.c (info_auto_load_libthread_db): Use ui_out_emit_tuple. * inferior.c (print_inferior): Use ui_out_emit_tuple. * gdb_bfd.c (print_one_bfd): Use ui_out_emit_tuple. * disasm.c (do_mixed_source_and_assembly_deprecated) (do_mixed_source_and_assembly): Use ui_out_emit_tuple. * cp-abi.c (list_cp_abis): Use ui_out_emit_tuple. * cli/cli-setshow.c (cmd_show_list): Use ui_out_emit_tuple. * breakpoint.c (print_one_breakpoint_location) (print_one_breakpoint): Use ui_out_emit_tuple. * auto-load.c (print_script, info_auto_load_cmd): Use ui_out_emit_tuple. * ada-tasks.c (print_ada_task_info): Use ui_out_emit_tuple. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 191 +++++ bfd/bfd-in2.h | 12 + bfd/compress.c | 19 +- bfd/dwarf2.c | 2 +- bfd/elf-bfd.h | 30 +- bfd/elf-eh-frame.c | 162 ++++- bfd/elf-properties.c | 11 +- bfd/elf.c | 67 +- bfd/elf32-i386.c | 230 +++--- bfd/elf32-m32c.c | 3 +- bfd/elf32-msp430.c | 3 +- bfd/elf32-ppc.c | 38 +- bfd/elf64-ppc.c | 28 +- bfd/elf64-x86-64.c | 326 ++++---- bfd/elflink.c | 48 +- bfd/elfxx-mips.c | 2 +- bfd/elfxx-mips.h | 3 +- bfd/elfxx-target.h | 8 +- bfd/reloc.c | 29 +- bfd/section.c | 24 +- bfd/version.h | 2 +- binutils/ChangeLog | 80 ++ binutils/ar.c | 13 +- binutils/bucomm.c | 3 + binutils/dwarf.c | 78 ++- binutils/objdump.c | 7 +- binutils/readelf.c | 175 ++++- binutils/testsuite/binutils-all/mips/mips.exp | 2 + .../testsuite/binutils-all/mips/mips16-alias.d | 15 + .../testsuite/binutils-all/mips/mips16-alias.s | 20 + .../testsuite/binutils-all/mips/mips16-noalias.d | 16 + binutils/testsuite/binutils-all/note-2-32.s | 32 +- binutils/testsuite/binutils-all/note-2-64.s | 34 +- gas/ChangeLog | 114 +++ gas/config/tc-arm.c | 14 +- gas/config/tc-mips.c | 316 ++++---- gas/config/tc-sparc.c | 9 +- gas/symbols.c | 16 +- gas/testsuite/gas/arc/b.d | 8 +- gas/testsuite/gas/arc/leave_enter.d | 41 +- gas/testsuite/gas/arc/leave_enter.s | 11 + gas/testsuite/gas/arc/noargs_hs.d | 2 +- .../arm/thumb2_ldr_immediate_highregs_armv6t2.d | 24 +- .../arm/thumb2_ldr_immediate_highregs_armv6t2.s | 16 +- gas/testsuite/gas/mips/mips.exp | 9 + gas/testsuite/gas/mips/mips16-branch-addend-4.d | 30 + gas/testsuite/gas/mips/mips16-branch-addend-4.s | 24 + gas/testsuite/gas/mips/mips16-branch-addend-5.d | 4 + gas/testsuite/gas/mips/mips16-branch-addend-5.l | 11 + gas/testsuite/gas/mips/mips16-branch-addend-5.s | 24 + gas/testsuite/gas/mips/option-pic-relax-0.d | 21 + gas/testsuite/gas/mips/option-pic-relax-0.s | 15 + gas/testsuite/gas/mips/option-pic-relax-1.d | 18 + gas/testsuite/gas/mips/option-pic-relax-1.s | 12 + gas/testsuite/gas/mips/option-pic-relax-2.d | 28 + gas/testsuite/gas/mips/option-pic-relax-2.l | 2 + gas/testsuite/gas/mips/option-pic-relax-2.s | 19 + gas/testsuite/gas/mips/option-pic-relax-3.d | 20 + gas/testsuite/gas/mips/option-pic-relax-3.l | 2 + gas/testsuite/gas/mips/option-pic-relax-3.s | 16 + gas/testsuite/gas/mips/option-pic-relax-3a.d | 9 + gas/testsuite/gas/mips/option-pic-relax-4.d | 28 + gas/testsuite/gas/mips/option-pic-relax-4.l | 2 + gas/testsuite/gas/mips/option-pic-relax-4.s | 20 + gas/testsuite/gas/mips/option-pic-relax-5.d | 20 + gas/testsuite/gas/mips/option-pic-relax-5.l | 2 + gas/testsuite/gas/mips/option-pic-relax-5.s | 17 + gas/testsuite/gas/sparc/call-relax-aout.d | 19 + gas/testsuite/gas/sparc/call-relax.d | 18 + gas/testsuite/gas/sparc/call-relax.s | 10 + gas/testsuite/gas/sparc/sparc.exp | 4 + gdb/ChangeLog | 440 +++++++++++ gdb/aarch64-tdep.c | 1 - gdb/ada-lang.c | 19 +- gdb/ada-tasks.c | 4 +- gdb/annotate.h | 11 + gdb/arch-utils.c | 9 + gdb/arch-utils.h | 6 + gdb/arm-tdep.c | 1 - gdb/auto-load.c | 16 +- gdb/breakpoint.c | 81 +-- gdb/breakpoint.h | 125 ++-- gdb/btrace.c | 23 +- gdb/cli/cli-setshow.c | 15 +- gdb/common/common-defs.h | 1 + gdb/common/enum-flags.h | 10 - gdb/common/function-view.h | 40 +- gdb/common/poison.h | 87 +++ gdb/common/traits.h | 43 +- gdb/cp-abi.c | 5 +- gdb/disasm.c | 19 +- gdb/doublest.c | 3 +- gdb/dwarf2-frame.c | 92 +-- gdb/dwarf2-frame.h | 58 ++ gdb/gdb_bfd.c | 4 +- gdb/gdbarch.c | 23 + gdb/gdbarch.h | 7 + gdb/gdbarch.sh | 3 + gdb/gdbtypes.c | 106 ++-- gdb/gdbtypes.h | 13 +- gdb/ia64-tdep.c | 61 +- gdb/infcmd.c | 14 +- gdb/inferior.c | 5 +- gdb/linux-thread-db.c | 3 +- gdb/mi/mi-cmd-file.c | 5 +- gdb/mi/mi-cmd-info.c | 10 +- gdb/mi/mi-cmd-stack.c | 28 +- gdb/mi/mi-cmd-var.c | 21 +- gdb/mi/mi-interp.c | 12 +- gdb/mi/mi-main.c | 110 +-- gdb/mi/mi-symbol-cmds.c | 8 +- gdb/mips-linux-nat.c | 5 +- gdb/mips-tdep.c | 2 +- gdb/nds32-tdep.c | 23 +- gdb/nto-tdep.c | 35 +- gdb/osdata.c | 29 +- gdb/probe.c | 5 +- gdb/progspace.c | 4 +- gdb/python/py-inferior.c | 7 +- gdb/record-btrace.c | 22 +- gdb/regcache.c | 785 +++++++++++--------- gdb/regcache.h | 166 ++++- gdb/remote.c | 11 +- gdb/skip.c | 5 +- gdb/solib-aix.c | 110 ++-- gdb/solib-darwin.c | 32 +- gdb/solib-dsbt.c | 39 +- gdb/solib-frv.c | 110 ++-- gdb/solib-svr4.c | 115 ++-- gdb/solib-svr4.h | 23 + gdb/solib-target.c | 114 ++-- gdb/solib.c | 6 +- gdb/solist.h | 10 +- gdb/sparc-tdep.c | 32 + gdb/stack.c | 44 +- gdb/target.c | 5 +- gdb/testsuite/ChangeLog | 23 + gdb/testsuite/gdb.base/environ.exp | 302 ++------- gdb/testsuite/gdb.base/info-program.exp | 45 ++ gdb/testsuite/gdb.cp/oranking.cc | 22 + gdb/testsuite/gdb.cp/oranking.exp | 9 +- gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 1 - gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 1 - gdb/thread.c | 30 +- gdb/tracepoint.c | 44 +- gdb/windows-nat.c | 52 +- gdb/xcoffread.c | 68 ++- gdb/xtensa-tdep.c | 21 +- gold/ChangeLog | 4 + gold/testsuite/plugin_section_order.c | 1 + ld/ChangeLog | 60 ++ ld/testsuite/config/default.exp | 37 + ld/testsuite/ld-elf/shared.exp | 86 +++ ld/testsuite/ld-i386/i386.exp | 1 + ld/testsuite/ld-i386/pr12570a.d | 1 + ld/testsuite/ld-i386/pr12570b.d | 1 + ld/testsuite/ld-i386/tls.exp | 111 +++ ld/testsuite/ld-i386/tlsdesc1a.c | 19 + ld/testsuite/ld-i386/tlsdesc1b.c | 8 + ld/testsuite/ld-i386/tlsdesc2.d | 10 + ld/testsuite/ld-i386/vxworks2.sd | 2 +- ld/testsuite/ld-ifunc/ifunc.exp | 99 +++ ld/testsuite/ld-mips-elf/mips-elf.exp | 10 + ld/testsuite/ld-mips-elf/pr21334.dd | 10 + ld/testsuite/ld-mips-elf/pr21334.gd | 11 + ld/testsuite/ld-mips-elf/pr21334.ld | 9 + ld/testsuite/ld-mips-elf/pr21334.s | 20 + ld/testsuite/ld-sparc/tlssunbin64.dd | 2 +- ld/testsuite/ld-sparc/tlssunnopic64.dd | 2 +- ld/testsuite/ld-sparc/tlssunpic64.dd | 2 +- ld/testsuite/ld-x86-64/no-plt-1e.nd | 7 + ld/testsuite/ld-x86-64/no-plt.exp | 2 +- ld/testsuite/ld-x86-64/pr21038a.d | 6 +- ld/testsuite/ld-x86-64/pr21038c.d | 4 +- ld/testsuite/ld-x86-64/tls.exp | 116 +++ ld/testsuite/ld-x86-64/tlsdesc1a.c | 19 + ld/testsuite/ld-x86-64/tlsdesc1b.c | 8 + ld/testsuite/ld-x86-64/tlsdesc2.d | 10 + ld/testsuite/ld-x86-64/x86-64.exp | 1 + opcodes/ChangeLog | 27 + opcodes/aarch64-opc.c | 4 +- opcodes/arc-dis.c | 19 +- opcodes/arc-opc.c | 20 +- opcodes/arc-tbl.h | 8 +- opcodes/mips-dis.c | 3 + opcodes/mips16-opc.c | 12 +- sim/aarch64/ChangeLog | 11 + sim/aarch64/simulator.c | 290 +++----- sim/testsuite/sim/aarch64/ChangeLog | 9 + sim/testsuite/sim/aarch64/fcvtz.s | 1 + sim/testsuite/sim/aarch64/fstur.s | 1 + sim/testsuite/sim/aarch64/ldn_multiple.s | 136 ++++ sim/testsuite/sim/aarch64/ldn_single.s | 2 + sim/testsuite/sim/aarch64/ldnr.s | 2 + sim/testsuite/sim/aarch64/mla.s | 2 + sim/testsuite/sim/aarch64/mls.s | 2 + sim/testsuite/sim/aarch64/stn_multiple.s | 171 +++++ sim/testsuite/sim/aarch64/stn_single.s | 24 +- sim/testsuite/sim/aarch64/sumulh.s | 3 - sim/testsuite/sim/aarch64/uzp.s | 2 + 200 files changed, 5385 insertions(+), 2630 deletions(-) create mode 100644 binutils/testsuite/binutils-all/mips/mips16-alias.d create mode 100644 binutils/testsuite/binutils-all/mips/mips16-alias.s create mode 100644 binutils/testsuite/binutils-all/mips/mips16-noalias.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-4.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-4.s create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.d create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.l create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-0.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-0.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-1.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-1.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.l create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.l create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3a.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.l create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.s create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.d create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.l create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.s create mode 100644 gas/testsuite/gas/sparc/call-relax-aout.d create mode 100644 gas/testsuite/gas/sparc/call-relax.d create mode 100644 gas/testsuite/gas/sparc/call-relax.s create mode 100644 gdb/common/poison.h create mode 100644 gdb/testsuite/gdb.base/info-program.exp create mode 100644 ld/testsuite/ld-i386/tlsdesc1a.c create mode 100644 ld/testsuite/ld-i386/tlsdesc1b.c create mode 100644 ld/testsuite/ld-i386/tlsdesc2.d create mode 100644 ld/testsuite/ld-mips-elf/pr21334.dd create mode 100644 ld/testsuite/ld-mips-elf/pr21334.gd create mode 100644 ld/testsuite/ld-mips-elf/pr21334.ld create mode 100644 ld/testsuite/ld-mips-elf/pr21334.s create mode 100644 ld/testsuite/ld-x86-64/no-plt-1e.nd create mode 100644 ld/testsuite/ld-x86-64/tlsdesc1a.c create mode 100644 ld/testsuite/ld-x86-64/tlsdesc1b.c create mode 100644 ld/testsuite/ld-x86-64/tlsdesc2.d create mode 100644 sim/testsuite/sim/aarch64/ldn_multiple.s create mode 100644 sim/testsuite/sim/aarch64/stn_multiple.s First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ba2d134..dff6a59 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,194 @@ +2017-04-29 Alan Modra <amodra@gmail.com> + + PR 21432 + * reloc.c (reloc_offset_in_range): New function. + (bfd_perform_relocation, bfd_install_relocation): Use it. + (_bfd_final_link_relocate): Likewise. + +2017-04-28 H.J. Lu <hongjiu.lu@intel.com> + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got + before using .plt.got. + * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. + +2017-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "=" + instead of "+=" to update 0. + +2017-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * elf32-i386.c (elf_i386_create_dynamic_sections): Create the + .plt.got section here. + (elf_i386_check_relocs): Don't create the .plt.got section. + * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create + the .plt.got and .plt.bnd sections here. + (elf_x86_64_check_relocs): Don't create the .plt.got nor + .plt.bnd sections. + +2017-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove + has_bnd_reloc. + (elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc. + (elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc. + (elf_x86_64_check_relocs): Don't set has_bnd_reloc. + (elf_x86_64_finish_dynamic_symbol): Check bndplt instead of + has_bnd_reloc. + +2017-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * elf-bfd.h (elf_backend_data): Change setup_gnu_properties + to return bfd *. + (_bfd_elf_link_setup_gnu_properties): Return bfd *. + * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return + the first relocatable ELF input with GNU properties. + +2017-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify + VxWorks for non-PIC. + +2017-04-27 Alan Modra <amodra@gmail.com> + + * elf-bfd.h (struct elf_backend_data): Make asection param of + elf_backend_eh_frame_address_size const. + (_bfd_elf_eh_frame_address_size): Likewise. + * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise. + * elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise. + * elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise. + * elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise. + * elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise. + (next_cie_fde_offset): Constify params. + (offset_adjust, adjust_eh_frame_local_symbols): Likewise. + +2017-04-27 Alan Modra <amodra@gmail.com> + + * elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len. + (_bfd_elf_adjust_eh_frame_global_symbol): Declare. + * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and + aug_data_len. + (offset_adjust): New function. + (_bfd_elf_adjust_eh_frame_global_symbol): Likewise. + (adjust_eh_frame_local_symbols): Likewise. + (_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols + after changing anything. Return true if anything changed. + * elflink.c (bfd_elf_discard_info): If .eh_frame changed, call + _bfd_elf_adjust_eh_frame_global_symbol for globals. + +2017-04-27 Alan Modra <amodra@gmail.com> + + * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index + when force_local. + +2017-04-27 Alan Modra <amodra@gmail.com> + + * elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. + (ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it. + (ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise. + (ppc_elf_relocate_section): Likewise. Delete silly optimisation + for undef and undefweak dyn_relocs. + * elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define. + (ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it. + (allocate_got, allocate_dynrelocs): Likewise. + (ppc64_elf_relocate_section): Likewise. + +2017-04-26 H.J. Lu <hongjiu.lu@intel.com> + + * elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add + DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section. + * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys + add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section. + +2017-04-26 Nick Clifton <nickc@redhat.com> + + PR binutils/21434 + * reloc.c (bfd_perform_relocation): Check for a negative address + in the reloc. + +2017-04-26 Maciej W. Rozycki <macro@imgtec.com> + + PR ld/21334 + * elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms' + member. + * elfxx-target.h [!elf_backend_always_renumber_dynsyms] + (elf_backend_always_renumber_dynsyms): Define. + (elfNN_bed): Initialize `always_renumber_dynsyms' member. + * elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define. + * elflink.c (bfd_elf_size_dynamic_sections): Also call + `_bfd_elf_link_renumber_dynsyms' if the backend has requested + it. + (bfd_elf_size_dynsym_hash_dynstr): Likewise. + +2017-04-26 Maciej W. Rozycki <macro@imgtec.com> + + * elflink.c (bfd_elf_size_dynamic_sections): Only call + `_bfd_elf_link_renumber_dynsyms' after section GC if dynamic + sections have been created. + +2017-04-26 Nick Clifton <nickc@redhat.com> + + PR binutils/21431 + * compress.c (bfd_init_section_compress_status): Check the return + value from bfd_malloc. + +2017-04-24 H.J. Lu <hongjiu.lu@intel.com> + + * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add + no_finish_dynamic_symbol. + (elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to + 0. + (elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined + weak symbol, don't make it dynamic. + (elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC, + set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE + relocation for GOT reference. + (elf_x86_64_finish_dynamic_symbol): Abort if + no_finish_dynamic_symbol isn't 0. + +2017-04-24 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21402 + * elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't + undefined weak symbol, don't make it dynamic. + (elf_i386_relocate_section): If a symbol isn't dynamic in PIC, + set no_finish_dynamic_symbol and generate R_386_RELATIVE + relocation for R_386_GOT32. + +2017-04-24 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/21425 + * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks. + +2017-04-23 Alan Modra <amodra@gmail.com> + + PR 21414 + * section.c (GLOBAL_SYM_INIT): Make available in bfd.h. + * elf.c (lcomm_sym): New. + (_bfd_elf_large_com_section): Use lcomm_sym section symbol. + * bfd-in2.h: Regenerate. + +2017-04-23 Alan Modra <amodra@gmail.com> + + PR 21412 + * elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change + parameters and comment. + (_bfd_elf_get_reloc_section): Delete. + (_bfd_elf_plt_get_reloc_section): Declare. + * elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section): + New functions. Don't blindly skip over assumed .rel/.rela prefix. + Extracted from.. + (_bfd_elf_get_reloc_section): ..here. Delete. + (assign_section_numbers): Call elf_get_reloc_section. + * elf64-ppc.c (elf_backend_get_reloc_section): Define. + * elfxx-target.h (elf_backend_get_reloc_section): Update. + +2017-04-23 Alan Modra <amodra@gmail.com> + + PR 21409 + * dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when + no symbols. + 2017-04-21 H.J. Lu <hongjiu.lu@intel.com> PR ld/21402 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 1d73134..17a35c0 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1839,6 +1839,18 @@ extern asection _bfd_std_section[4]; { NULL }, { NULL } \ } +/* We use a macro to initialize the static asymbol structures because + traditional C does not permit us to initialize a union member while + gcc warns if we don't initialize it. + the_bfd, name, value, attr, section [, udata] */ +#ifdef __STDC__ +#define GLOBAL_SYM_INIT(NAME, SECTION) \ + { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }} +#else +#define GLOBAL_SYM_INIT(NAME, SECTION) \ + { 0, NAME, 0, BSF_SECTION_SYM, SECTION } +#endif + void bfd_section_list_clear (bfd *); asection *bfd_get_section_by_name (bfd *abfd, const char *name); diff --git a/bfd/compress.c b/bfd/compress.c index f881c07..c854a20 100644 --- a/bfd/compress.c +++ b/bfd/compress.c @@ -542,7 +542,6 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec) { bfd_size_type uncompressed_size; bfd_byte *uncompressed_buffer; - bfd_boolean ret; /* Error if not opened for read. */ if (abfd->direction != read_direction @@ -558,18 +557,18 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec) /* Read in the full section contents and compress it. */ uncompressed_size = sec->size; uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size); + /* PR 21431 */ + if (uncompressed_buffer == NULL) + return FALSE; + if (!bfd_get_section_contents (abfd, sec, uncompressed_buffer, 0, uncompressed_size)) - ret = FALSE; - else - { - uncompressed_size = bfd_compress_section_contents (abfd, sec, - uncompressed_buffer, - uncompressed_size); - ret = uncompressed_size != 0; - } + return FALSE; - return ret; + uncompressed_size = bfd_compress_section_contents (abfd, sec, + uncompressed_buffer, + uncompressed_size); + return uncompressed_size != 0; } /* diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 132a674..0ef3e1f 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -4205,7 +4205,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd, looking up the function by section + offset uses the DW_AT_decl_line from the function DW_TAG_subprogram for the line, which will be the line of the function name. */ - if ((section->flags & SEC_CODE) == 0) + if (symbols != NULL && (section->flags & SEC_CODE) == 0) { asymbol **tmp; diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index af377ee..4110ace 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -326,6 +326,12 @@ struct eh_cie_fde or 0 if the CIE doesn't have any. */ unsigned int personality_offset : 8; + /* Length of augmentation. aug_str_len is the length of the + string including null terminator. aug_data_len is the length + of the rest up to the initial insns. */ + unsigned int aug_str_len : 3; + unsigned int aug_data_len : 5; + /* True if we have marked relocations associated with this CIE. */ unsigned int gc_mark : 1; @@ -354,7 +360,7 @@ struct eh_cie_fde unsigned int merged : 1; /* Unused bits. */ - unsigned int pad1 : 17; + unsigned int pad1 : 9; } cie; } u; unsigned int reloc_index; @@ -1285,7 +1291,7 @@ struct elf_backend_data that can't be determined for some reason. The default definition goes by the bfd's EI_CLASS. */ unsigned int (*elf_backend_eh_frame_address_size) - (bfd *, asection *); + (bfd *, const asection *); /* These functions tell elf-eh-frame whether to attempt to turn absolute or lsda encodings into pc-relative ones. The default @@ -1360,8 +1366,10 @@ struct elf_backend_data bfd_size_type (*maybe_function_sym) (const asymbol *sym, asection *sec, bfd_vma *code_off); - /* Return the section which RELOC_SEC applies to. */ - asection *(*get_reloc_section) (asection *reloc_sec); + /* Given NAME, the name of a relocation section stripped of its + .rel/.rela prefix, return the section in ABFD to which the + relocations apply. */ + asection *(*get_reloc_section) (bfd *abfd, const char *name); /* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which has a type >= SHT_LOOS. Returns TRUE if the fields were initialised, @@ -1433,7 +1441,7 @@ struct elf_backend_data elf_property *); /* Set up GNU properties. */ - void (*setup_gnu_properties) (struct bfd_link_info *); + bfd *(*setup_gnu_properties) (struct bfd_link_info *); /* Encoding used for compact EH tables. */ int (*compact_eh_encoding) (struct bfd_link_info *); @@ -1529,6 +1537,10 @@ struct elf_backend_data /* Address of protected data defined in the shared library may be external, i.e., due to copy relocation. */ unsigned extern_protected_data : 1; + + /* True if `_bfd_elf_link_renumber_dynsyms' must be called even for + static binaries. */ + unsigned always_renumber_dynsyms : 1; }; /* Information about reloc sections associated with a bfd_elf_section_data @@ -1975,7 +1987,7 @@ extern void bfd_elf_print_symbol (bfd *, void *, asymbol *, bfd_print_symbol_type); extern unsigned int _bfd_elf_eh_frame_address_size - (bfd *, asection *); + (bfd *, const asection *); extern bfd_byte _bfd_elf_encode_eh_address (bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset, asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded); @@ -2174,6 +2186,8 @@ extern bfd_boolean _bfd_elf_end_eh_frame_parsing extern bfd_boolean _bfd_elf_discard_section_eh_frame (bfd *, struct bfd_link_info *, asection *, bfd_boolean (*) (bfd_vma, void *), struct elf_reloc_cookie *); +extern bfd_boolean _bfd_elf_adjust_eh_frame_global_symbol + (struct elf_link_hash_entry *, void *); extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr (bfd *, struct bfd_link_info *); extern bfd_vma _bfd_elf_eh_frame_section_offset @@ -2448,7 +2462,7 @@ extern bfd_boolean _bfd_elf_is_function_type (unsigned int); extern bfd_size_type _bfd_elf_maybe_function_sym (const asymbol *, asection *, bfd_vma *); -extern asection *_bfd_elf_get_reloc_section (asection *); +extern asection *_bfd_elf_plt_get_reloc_section (bfd *, const char *); extern int bfd_elf_get_default_section_type (flagword); @@ -2593,7 +2607,7 @@ extern bfd_boolean _bfd_elf_parse_gnu_properties (bfd *, Elf_Internal_Note *); extern elf_property * _bfd_elf_get_property (bfd *, unsigned int, unsigned int); -extern void _bfd_elf_link_setup_gnu_properties +extern bfd *_bfd_elf_link_setup_gnu_properties (struct bfd_link_info *); /* The linker may need to keep track of the number of relocs that it diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 1743823..52ba9c6 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -326,9 +326,9 @@ size_of_output_cie_fde (struct eh_cie_fde *entry) /* Return the offset of the FDE or CIE after ENT. */ static unsigned int -next_cie_fde_offset (struct eh_cie_fde *ent, - struct eh_cie_fde *last, - asection *sec) +next_cie_fde_offset (const struct eh_cie_fde *ent, + const struct eh_cie_fde *last, + const asection *sec) { while (++ent < last) { @@ -757,6 +757,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, strcpy (cie->augmentation, (char *) buf); buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1; + this_inf->u.cie.aug_str_len = buf - start - 1; ENSURE_NO_RELOCS (buf); if (buf[0] == 'e' && buf[1] == 'h') { @@ -845,6 +846,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, goto free_no_table; } } + this_inf->u.cie.aug_data_len + = buf - start - 1 - this_inf->u.cie.aug_str_len; /* For shared libraries, try to get rid of as many RELATIVE relocs as possible. */ @@ -1327,6 +1330,143 @@ find_merged_cie (bfd *abfd, struct bfd_link_info *info, asection *sec, return new_cie->cie_inf; } +/* For a given OFFSET in SEC, return the delta to the new location + after .eh_frame editing. */ + +static bfd_signed_vma +offset_adjust (bfd_vma offset, const asection *sec) +{ + struct eh_frame_sec_info *sec_info + = (struct eh_frame_sec_info *) elf_section_data (sec)->sec_info; + unsigned int lo, hi, mid; + struct eh_cie_fde *ent; + bfd_signed_vma delta; + + lo = 0; + hi = sec_info->count; + if (hi == 0) + return 0; + + while (lo < hi) + { + mid = (lo + hi) / 2; + ent = &sec_info->entry[mid]; + if (offset < ent->offset) + hi = mid; + else if (mid + 1 >= hi) + break; + else if (offset >= ent[1].offset) + lo = mid + 1; + else + break; + } + + if (!ent->removed) + delta = (bfd_vma) ent->new_offset - (bfd_vma) ent->offset; + else if (ent->cie && ent->u.cie.merged) + { + struct eh_cie_fde *cie = ent->u.cie.u.merged_with; + delta = ((bfd_vma) cie->new_offset + cie->u.cie.u.sec->output_offset + - (bfd_vma) ent->offset - sec->output_offset); + } + else + { + /* Is putting the symbol on the next entry best for a deleted + CIE/FDE? */ + struct eh_cie_fde *last = sec_info->entry + sec_info->count; + delta = ((bfd_vma) next_cie_fde_offset (ent, last, sec) + - (bfd_vma) ent->offset); + return delta; + } + + /* Account for editing within this CIE/FDE. */ + offset -= ent->offset; + if (ent->cie) + { + unsigned int extra + = ent->add_augmentation_size + ent->u.cie.add_fde_encoding; + if (extra == 0 + || offset <= 9u + ent->u.cie.aug_str_len) + return delta; + delta += extra; + if (offset <= 9u + ent->u.cie.aug_str_len + ent->u.cie.aug_data_len) + return delta; + delta += extra; + } + else + { + unsigned int ptr_size, width, extra = ent->add_augmentation_size; + if (offset <= 12 || extra == 0) + return delta; + ptr_size = (get_elf_backend_data (sec->owner) + ->elf_backend_eh_frame_address_size (sec->owner, sec)); + width = get_DW_EH_PE_width (ent->fde_encoding, ptr_size); + if (offset <= 8 + 2 * width) + return delta; + delta += extra; + } + + return delta; +} + +/* Adjust a global symbol defined in .eh_frame, so that it stays + relative to its original CIE/FDE. It is assumed that a symbol + defined at the beginning of a CIE/FDE belongs to that CIE/FDE + rather than marking the end of the previous CIE/FDE. This matters hooks/post-receive -- Repository for Project Archer.
The branch, users/jkratoch/indexcxx has been updated 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 98bebcd98b51d05daf04b0d5c4d7f6e112597c57 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bdbdd8567e59bc6d54749dbfcc001502fffe18a9 Merge: 98bebcd 618a737 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun May 7 22:09:54 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 618a737b59008a0153f6454ae9a6d42814384828 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun May 7 00:00:54 2017 +0000 Automatic date update in version.in commit e50f25ecdb24505bccb695e6c63add45f0032b9a Author: Sergio Durigan Junior <sergiodj@redhat.com> Date: Tue May 2 21:32:33 2017 -0400 Rearrange gdb/configure.nat to make it simpler and less redundant The previous commit introduced gdb/configure.nat, but it was just a copy-and-past (with the necessary adjustments) from the files under gdb/config/. We can do better than that. Instead of using one big 'case' statement that matches the ${gdb_host_cpu} and then match each ${gdb_host}, it is possible to remove a lof of redundancy by matching the most common ${gdb_host}'s first, setting the common variables for each, and then proceed to matching specific ${gdb_host}'s and ${gdb_host_cpu}'s. In other words, reverse the order of the 'case's and take advantage of the fact that a lot of parameters are the same for each host. This commit was tested on x86_64 without regressions. gdb/ChangeLog: 2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com> * configure.nat: Rearrange 'case' statements to match host before cpu. commit 21ea5acdd1bcfe89984b16b5bac730050c5cf05e Author: Sergio Durigan Junior <sergiodj@redhat.com> Date: Tue Apr 25 16:03:39 2017 -0400 Introduce "gdb/configure.nat" (and delete "gdb/config/*/*.mh" files) Due to my ongoing work to make it possible for gdbserver to start the inferior using the shell, I had to share the fork_inferior function under the "nat/" directory. In order to do that, I created a new file and put the function there; however, this meant that I now had to update some of the *.mh files (under "gdb/config") and add the new file as a dependency to be built natively. Bleh... After talking a bit to Pedro about this, the idea came up to write a new "gdb/configure.nat" file, a la "gdb/configure.tgt", which would concentrate all of the native settings for each host/system. I decided to tackle this issue. The patch is simple. All of the previous Makefile variables that were being declared inside the *.mh files are now inside "gdb/Makefile.in", and "gdb/configure" is responsible for AC_SUBST'ing them. The definitions of these variables were put inside "gdb/configure.nat", so now they're shell variables. For excerpts of Makefile code, one must create a file under "gdb/config/${gdb_cpu_host}" and reference it on the "nat_extra_makefile_frag" variable. It should now be easier to update the native dependencies of hosts in this single file. This has been tested on x86_64 without regressions. gdb/ChangeLog: 2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com> * Makefile.in: Remove "@host_makefile_frag@". Add variables NAT_FILE, NATDEPFILES, NAT_CDEPS, LOADLIBES, MH_CFLAGS, XM_CLIBS, NAT_GENERATED_FILES, HAVE_NATIVE_GCORE_HOST. Add "@nat_extra_makefile_frag@". (Makefile): Remove dependency on "@frags@". ($(GNULIB_BUILDDIR)/Makefile): Likewise. (data-directory/Makefile): Likewise. * config/aarch64/linux.mh: Deleted; moved contents to "gdb/configure.nat". * config/alpha/alpha-linux.mh: Likewise. * config/alpha/nbsd.mh: Likewise. * config/arm/linux.mh: Likewise. * config/arm/nbsdelf.mh: Likewise. * config/i386/cygwin.mh: Likewise. * config/i386/cygwin64.mh: Likewise. * config/i386/darwin.mh: Likewise. * config/i386/fbsd.mh: Likewise. * config/i386/fbsd64.mh: Likewise. * config/i386/go32.mh: Likewise. * config/i386/i386gnu.mh: Likewise. * config/i386/i386sol2.mh: Likewise. * config/i386/linux.mh: Likewise. * config/i386/linux64.mh: Likewise. * config/i386/mingw.mh: Likewise. * config/i386/mingw64.mh: Likewise. * config/i386/nbsd64.mh: Likewise. * config/i386/nbsdelf.mh: Likewise. * config/i386/nto.mh: Likewise. * config/i386/obsd.mh: Likewise. * config/i386/obsd64.mh: Likewise. * config/i386/sol2-64.mh: Likewise. * config/ia64/linux.mh: Likewise. * config/m32r/linux.mh: Likewise. * config/m68k/linux.mh: Likewise. * config/m68k/nbsdelf.mh: Likewise. * config/m68k/obsd.mh: Likewise. * config/m88k/obsd.mh: Likewise. * config/mips/fbsd.mh: Likewise. * config/mips/linux.mh: Likewise. * config/mips/nbsd.mh: Likewise. * config/mips/obsd64.mh: Likewise. * config/pa/linux.mh: Likewise. * config/pa/nbsd.mh: Likewise. * config/pa/obsd.mh: Likewise. * config/powerpc/aix.mh: Likewise. * config/powerpc/fbsd.mh: Likewise. * config/powerpc/linux.mh: Likewise. * config/powerpc/nbsd.mh: Likewise. * config/powerpc/obsd.mh: Likewise. * config/powerpc/ppc64-linux.mh: Likewise. * config/powerpc/spu-linux.mh: Likewise. * config/s390/linux.mh: Likewise. * config/sh/nbsd.mh: Likewise. * config/sparc/fbsd.mh: Likewise. * config/sparc/linux.mh: Likewise. * config/sparc/linux64.mh: Likewise. * config/sparc/nbsd64.mh: Likewise. * config/sparc/nbsdelf.mh: Likewise. * config/sparc/obsd64.mh: Likewise. * config/sparc/sol2.mh: Likewise. * config/tilegx/linux.mh: Likewise. * config/vax/nbsdelf.mh: Likewise. * config/vax/obsd.mh: Likewise. * config/xtensa/linux.mh: Likewise. * config/i386/i386gnu.mn: New file, with excerpts from "config/i386/i386gnu.mh". * configure: Regenerate. * configure.ac: Rewrite code to use "gdb/configure.nat" instead of *.mh files under "gdb/config". * configure.nat: New file, with contents from the "gdb/config/*/*.mh" files. gdb/doc/ChangeLog: 2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com> * Makefile: Remove "@host_makefile_frag@". commit 7b937cba77df45962ced7e0e03802561beab549f Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat May 6 00:00:53 2017 +0000 Automatic date update in version.in commit 7ed1acafa0b5d135342f9dcc0eb0387dff95005a Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Fri May 5 08:20:50 2017 +0200 btrace: Fix memory leak in btrace_clear. commit e13cb306f099a8cd450c9fba0dfa22521aaa3c95 Author: Pedro Alves <palves@redhat.com> Date: Fri May 5 01:03:28 2017 +0100 gdb: Disable -Werror for -Wmaybe-uninitialized Newer GCCs are triggering false-positive -Wmaybe-uninitialized warnings around code that uses gdb::optional: https://sourceware.org/ml/gdb-patches/2017-05/msg00118.html Using std::optional wouldn't help, it triggers the same warnings: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635 Initializing the variables to quiet the warning would defeat the purpose of gdb::optional. Making the optional ctor memset its storage would be a pessimization. Wrapping gdb::optional's internals with "#pragma GCC diagnostic push/ignored/pop" doesn't work, we'd have to wrap uses of gdb::optional instead, which I think would get unwieldy and ugly as we start using gdb::optional more and more. The -Wmaybe-uninitialized warning is documented as producing false positives (unlike -Wuninialized), so until we find a better workaround, disable -Werror for this warning. You'll still see the warning when building gdb, but it won't cause a build failure. Tested by building with gcc 4.8.5, 5.3.1, and gcc trunk (20170428). gdb/ChangeLog: 2017-05-05 Pedro Alves <palves@redhat.com> * warning.m4 (build_warnings): Add -Wno-error=maybe-uninitialized. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2017-05-05 Pedro Alves <palves@redhat.com> * configure: Regenerate. commit 323449189c3474d1ab352b49172f4f59670ea73e Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri May 5 00:00:37 2017 +0000 Automatic date update in version.in commit d512d31c395e3c45f83778e01b9824efe45cac5f Author: Pedro Alves <palves@redhat.com> Date: Thu May 4 16:02:36 2017 +0100 Fix gdb.python/py-record-btrace-threads.exp with Python 3 Fix several instances of: ... python print not f1calls File "<string>", line 1 print not f1calls ^ SyntaxError: Missing parentheses in call to 'print' Error while executing Python code. (gdb) FAIL: gdb.python/py-record-btrace-threads.exp: thread=1: checking thread 1: python print not f1calls ... gdb/testsuite/ChangeLog: 2017-05-04 Pedro Alves <palves@redhat.com> * gdb.python/py-record-btrace-threads.exp (check_insn_for_thread): Add parens to print call for Python 3. commit 5ed8105e02d0c6648b7faea9f4e941237b932717 Author: Pedro Alves <palves@redhat.com> Date: Thu May 4 12:46:44 2017 +0100 RAII-fy make_cleanup_restore_current_thread & friends After all the make_cleanup_restore_current_thread fixing, I thought I'd convert that and its relatives (which are all cleanups) to RAII classes. scoped_restore_current_pspace_and_thread was put in a separate file to avoid a circular dependency. Tested on x86-64 Fedora 23, native and gdbserver. gdb/ChangeLog: 2017-05-04 Pedro Alves <palves@redhat.com> * Makefile.in (SFILES): Add progspace-and-thread.c. (HFILES_NO_SRCDIR): Add progspace-and-thread.h. (COMMON_OBS): Add progspace-and-thread.o. * breakpoint.c: Include "progspace-and-thread.h". (update_inserted_breakpoint_locations) (insert_breakpoint_locations, create_longjmp_master_breakpoint): Use scoped_restore_current_pspace_and_thread. (create_std_terminate_master_breakpoint): Use scoped_restore_current_program_space. (remove_breakpoint): Use scoped_restore_current_pspace_and_thread. (print_breakpoint_location): Use scoped_restore_current_program_space. (bp_loc_is_permanent): Use scoped_restore_current_pspace_and_thread. (resolve_sal_pc): Use scoped_restore_current_pspace_and_thread. (download_tracepoint_locations): Use scoped_restore_current_pspace_and_thread. (breakpoint_re_set): Use scoped_restore_current_pspace_and_thread. * exec.c (exec_close_1): Use scoped_restore_current_program_space. (enum step_over_calls_kind): Moved from inferior.h. (class scoped_restore_current_thread): New class. * gdbthread.h (make_cleanup_restore_current_thread): Delete declaration. (scoped_restore_current_thread): New class. * infcmd.c: Include "common/gdb_optional.h". (continue_1, proceed_after_attach): Use scoped_restore_current_thread. (notice_new_inferior): Use scoped_restore_current_thread. * inferior.c: Include "progspace-and-thread.h". (restore_inferior, save_current_inferior): Delete. (add_inferior_command, clone_inferior_command): Use scoped_restore_current_pspace_and_thread. * inferior.h (scoped_restore_current_inferior): New class. * infrun.c: Include "progspace-and-thread.h" and "common/gdb_optional.h". (follow_fork_inferior): Use scoped_restore_current_pspace_and_thread. (scoped_restore_exited_inferior): New class. (handle_vfork_child_exec_or_exit): Use scoped_restore_exited_inferior, scoped_restore_current_pspace_and_thread, scoped_restore_current_thread and scoped_restore. (fetch_inferior_event): Use scoped_restore_current_thread. * linespec.c (decode_line_full, decode_line_1): Use scoped_restore_current_program_space. * mi/mi-main.c: Include "progspace-and-thread.h". (exec_continue): Use scoped_restore_current_thread. (mi_cmd_exec_run): Use scoped_restore_current_pspace_and_thread. (mi_cmd_trace_frame_collected): Use scoped_restore_current_thread. * proc-service.c (ps_pglobal_lookup): Use scoped_restore_current_program_space. * progspace-and-thread.c: New file. * progspace-and-thread.h: New file. * progspace.c (release_program_space, clone_program_space): Use scoped_restore_current_program_space. (restore_program_space, save_current_program_space) (save_current_space_and_thread): Delete. (switch_to_program_space_and_thread): Moved to progspace-and-thread.c. * progspace.h (save_current_program_space) (save_current_space_and_thread): Delete declarations. (scoped_restore_current_program_space): New class. * remote.c (remote_btrace_maybe_reopen): Use scoped_restore_current_thread. * symtab.c: Include "progspace-and-thread.h". (skip_prologue_sal): Use scoped_restore_current_pspace_and_thread. * thread.c (print_thread_info_1): Use scoped_restore_current_thread. (struct current_thread_cleanup): Delete. (do_restore_current_thread_cleanup) (restore_current_thread_cleanup_dtor): Rename/convert both to ... (scoped_restore_current_thread::~scoped_restore_current_thread): ... this new dtor. (make_cleanup_restore_current_thread): Rename/convert to ... (scoped_restore_current_thread::scoped_restore_current_thread): ... this new ctor. (thread_apply_all_command): Use scoped_restore_current_thread. (thread_apply_command): Use scoped_restore_current_thread. * tracepoint.c (tdump_command): Use scoped_restore_current_thread. * varobj.c (value_of_root_1): Use scoped_restore_current_thread. commit f6223dbb50b5d8780df633633adf0742c662173d Author: Pedro Alves <palves@redhat.com> Date: Thu May 4 14:43:34 2017 +0100 make_cleanup_restore_current_thread: Look up thread earlier The unconditional is_stopped call already asserts that the thread exists. gdb/ChangeLog: 2017-05-04 Pedro Alves <palves@redhat.com> * thread.c (make_cleanup_restore_current_thread): Move find_thread_ptid call before the is_stopped call. Assert that the thread is found. Replace is_stopped call by checking the thread's state directly. Remove unnecessary NULL-thread check. commit 3c3ae77e68a9032ef9f174bf6b1cc992b6a4cb35 Author: Pedro Alves <palves@redhat.com> Date: Thu May 4 15:14:37 2017 +0100 Fix get_core_register_section leak, introduce thread_section_name This plugs a leak introduced in the previous change to get_core_register_section, which removed an xfree call that is actually necessary because the 'section_name' local is static. From [1] it looks like the reason the variable was made static to begin with, was just "laziness" to avoid having to think about freeing it on every function return path: https://sourceware.org/ml/gdb-patches/2005-03/msg00237.html The easiest to fix that nowadays is to use a std::string. I don't see a need to xstrdup the section name in the single-threaded case though, and also there's more than one place that computes a multi-threaded section name in the same way. So put the section name computation in a wrapper class with state. gdb/ChangeLog: 2017-05-04 Pedro Alves <palves@redhat.com> * corelow.c (thread_section_name): New class. (get_core_register_section, get_core_siginfo): Use it. commit f91d48deb29d9e6f4b530f586db0140943ed0d83 Author: Kito Cheng <kito.cheng@gmail.com> Date: Wed Apr 5 20:58:28 2017 +0800 RISC-V: Fix disassemble for c.li, c.andi and c.addiw ChangeLog 2017-05-03 Kito Cheng <kito.cheng@gmail.com> * riscv-dis.c (print_insn_args): Handle 'Co' operands. commit 45eba0ab7d26435121facb68847fbd0cd4a313c1 Author: Andreas Arnez <arnez@linux.vnet.ibm.com> Date: Thu May 4 11:06:10 2017 +0200 Remove some superfluous code in corelow.c In corelow.c I stumbled upon an extra semicolon and an xfree of a NULL pointer. Remove them. gdb/ChangeLog: * corelow.c (sniff_core_bfd): Remove extra semicolon. (get_core_register_section): Remove xfree of NULL pointer. commit b660e9eb7a45cfe99e719c5d16af35913a2fdc96 Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> Date: Mon Apr 24 15:17:14 2017 +0530 Fix PR21404 - assertion fail when calculating symbol size Fix a host of problems related to adjustment of symbol values and sizes when relaxing for avr. 1. Adjust symbol size first before adjusting symbol value. Otherwise, a symbol whose value just got adjusted to the relaxed address also ends up getting resized. See pr21404-1.s. 2. Reduce symbol sizes only if their span is below an alignment boundary. Otherwise, the size gets decremented once when the actual instruction is relaxed and padding bytes are added, and again when the padding bytes are deleted (if padding ends up being unnecessary). pr21404-2.s addresses that, and this bug is really the root cause of PR21404. 3. Adjust all symbol values before an alignment boundary. Previous code did not adjust symbol values if they fell in the would-be padded area, resulting in incorrect symbol values in some cases (see pr21404-3.s). 4. Increase symbol sizes if alignment directives require so. As pr21404-4.s shows .global nonzero_sym L1: jmp L1 nonzero_sym: nop nop .p2align 2 .size nonzero_sym, .-nonzero_sym The two nops satisfy the 4 byte alignment at assembly time and therefore the size of nonzero_sym is 4. Relaxation shortens the 4 byte jmp to a 2 byte rjmp, and to satisfy 4 byte alignment the code places 2 extra padding bytes after the nops, increasing nonzero_sym's size by 2. This wasn't handled before. If the assembly code does not have any align directives, then the boundary is the section size, and symbol values and sizes == boundary should also get adjusted. To handle that case, add a did_pad variable and use that to determine whether it should use < boundary or <= boundary. Also get rid of reloc_toaddr, which is now redundant. toaddr is now not adjusted to handle the above case - the newly added did_pad variable does the job. pr21404-{5,6,7,8} are the same testcases written for local symbols, as the code handles them slightly differently. commit 8293e73636484b403150ae94a93619779bcbae96 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu May 4 00:00:55 2017 +0000 Automatic date update in version.in commit 8507b6e79772ffeb83a0142d12a63e02dcc44562 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Wed May 3 20:43:10 2017 +0100 MIPS16/GAS: Relax 32-bit non-PIC PC-relative synthetic instructions Implement the relaxation of MIPS16 PC-relative synthetic LA, DLA, LW and LD instructions to an equivalent sequence of instructions produced where the address operand requested is out of range, absolute or requires linker relocation, for ABIs that use 32-bit addressing and non-PIC code. The sequence generated uses the register specified for the destination operand as a temporary and begins with LI to load the high 16-bit part of the address, then continues with SLL by 16 bits to move that part into place and finally completes with a suitable operation corresponding to the synthetic instruction used, one of: 2-argument ADDIU, 2-argument DADDIU, absolute LW, and absolute LD respectively, providing the low 16-bit part of the address. All instructions use the extended encoding. As a special exception accept absolute addresses for relaxation even in PIC code. For example: la $2, 0x12345678 produces code as: li $2, 0x1234 sll $2, $2, 16 addiu $2, 0x5678 would. Where linker relocation is required emit an R_MIPS16_HI16 relocation on the initial LI instruction and an R_MIPS16_LO16 relocation on the final operation. For example (where `foo' is not local): lw $3, foo produces code as: li $3, %hi(foo) sll $3, $3, 16 lw $3, %lo(foo)($3) would. Emit assembly warnings as appropriate where this new relaxation triggers in the `nomacro' mode or for an instruction manually placed in a branch delay slot in the `noreorder' mode. Refrain from relaxation where an explicit instruction size suffix has been used and in the `noautoextend' mode. gas/ * 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 test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d: New test. * testsuite/gas/mips/mips16-pcrel-0.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-1.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-2.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-3.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-4.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-5.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-delay-0.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-delay-1.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-addend-8.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-addend-9.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-absolute-4.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-absolute-6.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-0.s: New test source. * testsuite/gas/mips/mips16-pcrel-1.s: New test source. * testsuite/gas/mips/mips16-pcrel-2.s: New test source. * testsuite/gas/mips/mips16-pcrel-3.s: New test source. * testsuite/gas/mips/mips16-pcrel-4.s: New test source. * testsuite/gas/mips/mips16-pcrel-5.s: New test source. * testsuite/gas/mips/mips16-pcrel-delay-0.s: New test source. * testsuite/gas/mips/mips16-pcrel-delay-1.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-4.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-5.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-6.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-7.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-8.s: New test source. * testsuite/gas/mips/mips16-pcrel-addend-9.s: New test source. * testsuite/gas/mips/mips16-pcrel-absolute-2.s: New test. * testsuite/gas/mips/mips16-pcrel-absolute-3.s: New test. * testsuite/gas/mips/mips16-pcrel-absolute-4.s: New test. * testsuite/gas/mips/mips16-pcrel-absolute-5.s: New test. * testsuite/gas/mips/mips16-pcrel-absolute-6.s: New test. * testsuite/gas/mips/mips16-pcrel-absolute-7.s: New test. * testsuite/gas/mips/mips.exp: Run the new tests. ld/ * testsuite/ld-mips-elf/mips16-pcrel-0.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-1.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-addend-2.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-addend-6.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-n32-0.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-n32-1.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-0.d: New test. * testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-1.d: New test. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. commit 90cef2edd256c48d2ff9a03d4a6c1bcb575db07c Author: Keith Seitz <keiths@redhat.com> Date: Wed May 3 12:41:09 2017 -0700 Make sure malloc is linked into gdb.cp/oranking.cc. On some platforms, e.g., arm-eabi-none, we need to make certain that malloc is linked into the program because the test suite uses function calls requiring malloc: (gdb) p foo101("abc") evaluation of this expression requires the program to have a function "malloc". gdb/testsuite/ChangeLog * gdb.cp/oranking.cc (dummy): New function to grab malloc. (main): Call it. commit b22908217d8593185af3f76fab6f0f01457b0600 Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed May 3 07:40:51 2017 -0700 Adjust testsuite/ld-elf/pr21384.d Adjust testsuite/ld-elf/pr21384.d to accommodate additional dynamic symbols on some targets. * testsuite/ld-elf/pr21384.d: Adjusted to accommodate additional dynamic symbols on some targets. commit f81fdd350e688bd0216486b30884a52ebc4f32b8 Author: Alan Hayward <alan.hayward@arm.com> Date: Wed May 3 14:51:40 2017 +0100 Remove MAX_REGISTER_SIZE from frv-linux-tdep.c gdb/ * frv-linux-tdep.c (frv_linux_supply_gregset): Use raw_supply_zeroed. * regcache.c (regcache::raw_supply_zeroed): New function. * regcache.h (regcache::raw_supply_zeroed): New declaration. commit 35837774a77d641ba3ae75930a7b08ed853759ad Author: Simon Marchi <simon.marchi@ericsson.com> Date: Wed May 3 09:21:27 2017 -0400 gdbarch.sh: Remove commented out TARGET_CHAR_BIT definition As Pedro commented on the patch "Change field separator in gdbarch.sh", this commented out definition is probably not useful and should be removed. It has been commented out for basically forever, and it probably serves the same intent as addressable_memory_unit_size. gdb/ChangeLog: * gdbarch.sh: Remove commented out definition of TARGET_CHAR_BIT. * gdbarch.h: Re-generate. commit c94fee56f5f8e5e26a115a1ca155ddada9d43b31 Author: Sergio Durigan Junior <sergiodj@redhat.com> Date: Wed May 3 09:13:15 2017 -0400 Regenerate gdb/{,gdbserver/}configure (for commit be628ab814f1c90e185d7482d27aa8a991ab5837) On commit be628ab814f1c90e185d7482d27aa8a991ab5837, both common/common.m4 was modified in order to check for the presence of 'termios.h', 'termio.h' and 'sgtty.h'. However, I forgot to regenerate both gdb/configure and gdb/gdbserver/configure. This commit does that. gdb/ChangeLog: 2017-05-03 Sergio Durigan Junior <sergiodj@redhat.com> * configure: Regenerate. gdb/gdbserver/ChangeLog: 2017-05-03 Sergio Durigan Junior <sergiodj@redhat.com> * configure: Regenerate. commit e78bb25cb636a331f27e9cc4cba5522939567695 Author: Nick Clifton <nickc@redhat.com> Date: Wed May 3 09:52:01 2017 +0100 Prevent a seg-fault in the assembler when provided with a bogus input source file. PR gas/20941 * symbols.c (snapshot_symbol): Handle the case where resolve_expression returns a local symbol. commit 35387fdec5e10b281c218c9dc4f3dc33c3fcc522 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed May 3 00:00:41 2017 +0000 Automatic date update in version.in commit 82d808edbc7a06f706b82064cec6c3ed88f0c4be Author: Maciej W. Rozycki <macro@imgtec.com> Date: Wed May 3 00:05:15 2017 +0100 MIPS16/GAS: Fix absolute references with PC-relative synthetic instructions Complement commit 88a7ef168927 ("MIPS16/GAS: Restore unsupported relocation diagnostics") and also propagate constant expressions, either already reduced from absolute symbol references or created from literals in the first place, used as a PC-relative operand with the MIPS16 LA, LW, DLA and LD synthetic instructions to relaxation, matching the way forward absolute symbol references have been handled as from the commit referred and letting relaxation produce any necessary relocations, if possible, for the absolute value requested to be reproduced at the run time. Call `symbol_append' for any expression symbol created for the purpose of MIPS16 relaxation as with constant expressions now propagated from earlier on such symbols may make it through and have R_MIPS16_PC16_S1 relocations emitted against, and therefore need to appear in the symbol table produced. gas/ * config/tc-mips.c (append_insn): Call `symbol_append' for any expression symbol created for MIPS16 relaxation. (match_mips16_insn): Don't encode a constant value as an immediate with a PC-relative operand. * testsuite/gas/mips/mips16-pcrel-absolute-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-2.d: New test. * testsuite/gas/mips/mips16-branch-absolute-addend-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-n32-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-n32-2.d: New test. * testsuite/gas/mips/mips16-branch-absolute-addend-n32-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-n64-1.d: New test. * testsuite/gas/mips/mips16-branch-absolute-n64-2.d: New test. * testsuite/gas/mips/mips16-branch-absolute-addend-n64-1.d: New test. * testsuite/gas/mips/mips16-pcrel-absolute-1.l: New stderr output. * testsuite/gas/mips/mips16-pcrel-absolute-1.s: New test source. * testsuite/gas/mips/mips16-branch-absolute-1.s: New test source. * testsuite/gas/mips/mips16-branch-absolute-2.s: New test source. * testsuite/gas/mips/mips16-branch-absolute-addend-1.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. ld/ * testsuite/ld-mips-elf/mips16-branch-absolute-1.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-2.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-addend-1.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-n32-1.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-n32-2.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-addend-n32-1.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-n64-1.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-n64-2.d: New test. * testsuite/ld-mips-elf/mips16-branch-absolute-addend-n64-1.d: New test. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. commit 3d8505928a06e00b05bb162c1ad0dd612c1c16af Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 2 16:00:49 2017 -0700 x86: Add -Wl,--no-as-needed to some TLS tests * testsuite/ld-i386/tls.exp: Add -Wl,--no-as-needed to "TLS without PLT (1)" and "TLS without PLT (3)". * testsuite/ld-x86-64/tls.exp: Add -Wl,--no-as-needed to to "TLS without PLT (3)". commit 43e379d74c994fe431368b5f25f778bf601a2981 Author: Michael Clark <michaeljclark@mac.com> Date: Thu Apr 27 16:08:46 2017 +1200 RISC-V: Change CALL macro to use ra as the temporary address register e.g. 1: auipc ra, %pcrel_hi(symbol) jalr ra, %pcrel_lo(1b)(ra) The use of ra instead of t1 for address construction provides an opportunity for a microarchitecture to elide the write of the destination address, and instead read the target address as an immediate spread across the fused auipc+jalr pair. The link register ra in the jalr overwrites the target address temporary. 2017-05-01 Michael Clark <michaeljclark@mac.com> * riscv-opc.c (riscv_opcodes) <call>: Use RA not T1 as a temporary register. commit 763a5fa4f330d6d3859c94a69ba1fcab09330cf9 Author: Palmer Dabbelt <palmer@dabbelt.com> Date: Mon May 1 10:26:32 2017 -0700 RISC-V: Allow 32-bit BFD to handle 64-bit objects We've been telling people that the riscv32-* and riscv64-* toolchains are exactly the same, but it turns out we were lying: the riscv32-* BFD doesn't handle 64-bit objects. This fixes that difference, so the ports are actually the same. bfd/ChangeLog 2017-05-01 Palmer Dabbelt <palmer@dabbelt.com> * config.bfd (riscv32-*): Enable rv64. commit 640226f048b67d79da85742728e40114c9ee5da0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 2 13:54:22 2017 -0700 Add a test for PR ld/21384 PR ld/21384 * testsuite/ld-elf/pr21384.d: New file. * testsuite/ld-elf/pr21384.dl: Likewise. * testsuite/ld-elf/pr21384.ld: Likewise. * testsuite/ld-elf/pr21384.s: Likewise. commit 2ecf0cc317d065cfeb960c61688897351521bce0 Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 2 12:16:26 2017 -0700 Cast relcount to unsigned long when comparing with sec->reloc_count The type of relcount is long and the type of sec->reloc_count is unsigned int. On 32-bit hosts, GCC issues an error: objcopy.c:2144:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] if (relcount > sec->reloc_count) Cast relcount to unsigned long to silence GCC. * objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned long when comparing with sec->reloc_count. commit d17f7b365cf3896b3129b9077d55b3154fc43131 Author: Simon Marchi <simon.marchi@ericsson.com> Date: Tue May 2 14:25:43 2017 -0400 solib-target: Remove local variables Now that we use std::vector, these local variables are not very useful. They're not much shorter than the expressions they stand for. gdb/ChangeLog: * solib-target.c (solib_target_relocate_section_addresses): Remove num_section_bases, num_bases, segment_bases variables. commit b560ebd6605503276e09b2ef75c94e1d10f176f2 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Tue May 2 13:30:09 2017 -0400 Remove definition of VEC (CORE_ADDR) gdb/ChangeLog: * common/gdb_vecs.h (DEF_VEC_I (CORE_ADDR)): Remove. commit f2f46dfcdafe6bd32152d80b5e832d2fab4e6900 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Tue May 2 13:30:08 2017 -0400 Use std::vector in lm_info_target Replace the two VEC fields with std::vector. gdb/ChangeLog: * solib-target.c: Include <vector> (struct lm_info_target) <~lm_info_target>: Remove. <segment_bases, section_bases>: Change type to std::vector<CORE_ADDR>. (library_list_start_segment, library_list_start_section, library_list_end_library, solib_target_relocate_section_addresses): Adjust. commit a0ff9e1ad221c11f58a9d8d12a84c21579132d85 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Tue May 2 13:30:07 2017 -0400 Change return type of gdbarch_software_single_step to vector<CORE_ADDR> This is a relatively straightforward patch that changes gdbarch_software_single_step so it returns an std::vector<CORE_ADDR> instead of a VEC (CORE_ADDR). gdb/ChangeLog: * gdbarch.sh (software_single_step): Change return type to std::vector<CORE_ADDR>. * gdbarch.c, gdbarch.h: Re-generate. * arch/arm-get-next-pcs.c (thumb_deal_with_atomic_sequence_raw): Adjust. (arm_deal_with_atomic_sequence_raw): Adjust. (thumb_get_next_pcs_raw): Adjust. (arm_get_next_pcs_raw): Adjust. (arm_get_next_pcs): Adjust. * arch/arm-get-next-pcs.h (arm_get_next_pcs): Adjust. * aarch64-tdep.c (aarch64_software_single_step): Adjust. * alpha-tdep.c (alpha_deal_with_atomic_sequence): Adjust. (alpha_software_single_step): Adjust. * alpha-tdep.h (alpha_software_single_step): Adjust. * arm-linux-tdep.c (arm_linux_software_single_step): Adjust. * arm-tdep.c (arm_software_single_step): Adjust. (arm_breakpoint_kind_from_current_state): Adjust. * arm-tdep.h (arm_software_single_step): Adjust. * breakpoint.c (insert_single_step_breakpoint): Adjust. * cris-tdep.c (cris_software_single_step): Adjust. * mips-tdep.c (mips_deal_with_atomic_sequence): Adjust. (micromips_deal_with_atomic_sequence): Adjust. (deal_with_atomic_sequence): Adjust. (mips_software_single_step): Adjust. * mips-tdep.h (mips_software_single_step): Adjust. * moxie-tdep.c (moxie_software_single_step): Adjust. * nios2-tdep.c (nios2_software_single_step): Adjust. * ppc-tdep.h (ppc_deal_with_atomic_sequence): Adjust. * rs6000-aix-tdep.c (rs6000_software_single_step): Adjust. * rs6000-tdep.c (ppc_deal_with_atomic_sequence): Adjust. * s390-linux-tdep.c (s390_software_single_step): Adjust. * sparc-tdep.c (sparc_software_single_step): Adjust. * spu-tdep.c (spu_software_single_step): Adjust. * tic6x-tdep.c (tic6x_software_single_step): Adjust. gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_gdbserver_get_next_pcs): Adjust to software_single_step change of return type to std::vector<CORE_ADDR>. * linux-low.c (install_software_single_step_breakpoints): Likewise. * linux-low.h (install_software_single_step_breakpoints): Likewise. commit ea480a306d46efe3dd1839618137f0e73a80e9b3 Author: Simon Marchi <simon.marchi@polymtl.ca> Date: Tue May 2 13:30:07 2017 -0400 Change field separator in gdbarch.sh The fields in the description of the gdbarch interface are separated using colons. That becomes a problem if we want to use things like std::vector in it. This patch changes the field separator to use semicolons instead. I think there's very little chance we'll ever want to use a semicolon in one of the fields, but if you think another character would be more appropriate, let me know. gdb/ChangeLog: * gdbarch.sh: Use semi-colon as field separator instead of colon. * gdbarch.h: Re-generate. commit 1395c6ce47510babad3dcb9892f6f2517a3f2b59 Author: Nick Clifton <nickc@redhat.com> Date: Tue May 2 16:54:53 2017 +0100 Don't merge notes when the relocs associated with them cannot be reliably deleted. * objcopy.c (merge_gnu_build_notes): Disable merge if there are more internal relocs than external relocs. commit 73ec947d59c511411377ad51ef792a5fcdd3f0cc Author: Alan Modra <amodra@gmail.com> Date: Tue May 2 21:56:43 2017 +0930 PR 21384, --dynamic-list regression with f02cb058 The commit to "Always descend into output section statements in lang_do_assignments" meant that linker script symbols were not bfd_link_hash_new when ld called bfd_elf_record_link_assignment. This patch corrects that problem by testing h->non_elf instead. 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. commit a4ddc54ec1cd187c844ca631fe0315bf1d78e96f Author: Maciej W. Rozycki <macro@imgtec.com> Date: Tue May 2 11:53:30 2017 +0100 MIPS16/opcodes: Keep the LSB of PC-relative offsets in disassembly Correct the disassembly of the PC-relative immediate argument of the MIPS16 synthetic LA, LW, DLA and LD instructions and do not mask the LSB, which in this case is a part of the data address rather than the ISA bit and has to be fully presented. opcodes/ * mips-dis.c (print_insn_arg): Only clear the ISA bit for jumps and branches and not synthetic data instructions. binutils/ * testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the disassembly of PC-relative LA and LW synthetic instructions. commit 39ff1b79f687b65f4144ddb379f22587003443fb Author: Nick Clifton <nickc@redhat.com> Date: Tue May 2 11:54:53 2017 +0100 Prevent memory exhaustion from a corrupt PE binary with an overlarge number of relocs. PR 21440 * objdump.c (dump_relocs_in_section): Check for an excessive number of relocs before attempting to dump them. commit d050f7d7f474c7e3ba26902a9cbb185910921a11 Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Introduce gdb.Instruction class This adds a generic instruction class to Python and has gdb.RecordInstruction inherit from it. commit 14f819c8c5f7d080e5eea9256f0ec7453aac750e Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Move and rename gdb.BtraceFunction Remove gdb.BtraceFunctionCall and replace by gdb.FunctionSegment. Additionally, rename prev_segment and next_segment to prev and next. commit 0ed5da759e34c6e85cb2a9ea0fdc7b680f897a81 Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Move and rename gdb.BtraceInstruction Remove gdb.BtraceInstruction and replace by gdb.RecordInstruction. commit 913aeadd9d6b8bdea5131b16dc7ede395097656d Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Introduce gdb.RecordGap class As discussed here: https://sourceware.org/ml/gdb-patches/2017-04/msg00157.html A gap is not an instruction and it should not pretend to be one. gdb.Record.instruction_history is now a list of gdb.RecordInstruction and gdb.RecordGap objects. This allows the user to deal with Gaps in the record in a more sane way. commit a3be24ad59d683d1b08df28e093739743a7cf256 Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Remove ptid from gdb.Record interface As discussed here: https://sourceware.org/ml/gdb-patches/2017-04/msg00166.html commit ae20e79ae852fee8f7d42701a54a95de3b79ecea Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Use correct ptid in btrace recording The user would always get the instruction_history and function_call_history objects of the current thread, not the thread for which the gdb.Record object was created. The attached testcase fails without this patch and passes with the patch. commit 8d0050ea192c41349c1f2b000866c1bdb761abeb Author: Tim Wiederhake <tim.wiederhake@intel.com> Date: Tue May 2 11:35:54 2017 +0200 Python: Fix indentation in py-record-btrace.c commit fe50e98c9a22a89ca2e032b17aa7162452c3ad3b Author: Bernd Edlinger <bernd.edlinger@hotmail.de> Date: Tue May 2 10:28:09 2017 +0100 Fix value in comment of disassembled ARM type A opcodes. * arm-dis.c (print_insn_thumb32): Fix value_in_comment. commit 122a483d4f19c8b0a7f3d265dad882bd4f2c868a Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue May 2 00:00:39 2017 +0000 Automatic date update in version.in commit 0aae7e72a2a11ef1fd2a3b4fd18c8d8d49e0c21b Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon May 1 11:02:55 2017 -0700 x86: Run GNU2 TLS tests with working GNU2 TLS support Check if GNU2 TLS really works before running GNU2 TLS tests. * testsuite/ld-i386/tls.exp: Run GNU2 TLS tests only if there is working GNU2 TLS support. * testsuite/ld-x86-64/tls.exp: Likewise. * testsuite/lib/ld-lib.exp (check_gnu2_tls_available): New proc. commit 3f380b502769e55bbcdf7b9587c62344913c6ee8 Author: Joel Brobecker <brobecker@adacore.com> Date: Mon May 1 09:59:15 2017 -0700 gdb/MAINTAINERS: Move Daniel J and Mark to the Past Maintainers section. gdb/ChangeLog: * MAINTAINERS: Move Daniel Jacobowitz and Mark Kettenis to the past maintainers section. commit ee7e95efb98186c09dc2c39b32263aa15b147bb0 Author: Alan Modra <amodra@gmail.com> Date: Mon May 1 14:11:27 2017 +0930 merge_gnu_build_notes reloc deletion If moving relocs, the next reloc to look at is at the same location. * objcopy.c (merge_gnu_build_notes): Correct code deleting relocs. commit 6224c858130fe5c5e5d8b2abdec1cea35986d9e7 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon May 1 00:00:35 2017 +0000 Automatic date update in version.in commit 020bf56c8e55bfbe5a53989eac0c72b8d2416feb Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun Apr 30 00:00:31 2017 +0000 Automatic date update in version.in ----------------------------------------------------------------------- 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/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 +- 308 files changed, 6270 insertions(+), 2049 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 <senthil_kumar.selvaraj@atmel.com> + + 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 <palmer@dabbelt.com> + + * config.bfd (riscv32-*): Enable rv64. + +2017-05-02 Alan Modra <amodra@gmail.com> + + 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 <amodra@gmail.com> 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 <hongjiu.lu@intel.com> + + * objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned + long when comparing with sec->reloc_count. + +2017-05-02 Nick Clifton <nickc@redhat.com> + + * objcopy.c (merge_gnu_build_notes): Disable merge if there are + more internal relocs than external relocs. + +2017-05-02 Maciej W. Rozycki <macro@imgtec.com> + + * testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the + disassembly of PC-relative LA and LW synthetic instructions. + +2017-05-02 Nick Clifton <nickc@redhat.com> + + 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 <amodra@gmail.com> + + * objcopy.c (merge_gnu_build_notes): Correct code deleting + relocs. + 2017-04-28 Nick Clifton <nickc@redhat.com> 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 <foo\+0x4024> -[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004028 <foo\+0x4028> -[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402c <foo\+0x402c> -[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004030 <foo\+0x4030> -[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004034 <foo\+0x4034> +[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004025 <foo\+0x4025> +[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004029 <foo\+0x4029> +[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402d <foo\+0x402d> +[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004031 <foo\+0x4031> +[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004035 <foo\+0x4035> [0-9a-f]+ <[^>]*> f008 1011 b 0000804e <foo\+0x804e> [0-9a-f]+ <[^>]*> f008 1011 b 00008052 <foo\+0x8052> [0-9a-f]+ <[^>]*> f008 1031 b 00008056 <foo\+0x8056> @@ -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 <foo\+0x40f8> -[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fc <foo\+0x40fc> -[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004100 <foo\+0x4100> -[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004104 <foo\+0x4104> -[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004108 <foo\+0x4108> +[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040f9 <foo\+0x40f9> +[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fd <foo\+0x40fd> +[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004101 <foo\+0x4101> +[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004105 <foo\+0x4105> +[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004109 <foo\+0x4109> [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 <macro@imgtec.com> + + * 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.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 77276 bytes --] The branch, users/jkratoch/indexcxx has been updated via 3c31c689159535ec278253668e1f59155f18da2b (commit) via 56298620acb02ab589ce3ddf398788227ab20211 (commit) via b4f5b984e5e771e75cee43942e56455531a02e68 (commit) via 43cc5389bc4662b31cad02a9f13358bd367d0ab3 (commit) via a9dba87af1aeabffb01769004ab893173f3ef472 (commit) via e5713223cbc1025f484fa2548d58f74173646b8a (commit) via f0681695daa9d4fd493f3ca88f194675c9affbff (commit) via 147c65bdf374e9f9250d20c2428cde8c3c18a9e7 (commit) via 64517994807b0d6bb3c6fd106f117c03242fac72 (commit) via 92f7d783c1038841beacaba28a5f5d740a5ccad6 (commit) via ae0264a6474d777650d65da261732748126f0190 (commit) via f4203b2b8830e66e5229b7f9d30cd29b088566b5 (commit) via 6e7e1744e96abbf1a4229d5f269caf2cc921ec58 (commit) via 7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70 (commit) via 1933fd8ee01ad2e74a9c6341bc40f54962a8f889 (commit) via eb026f09eb6fcb96a5de1e655cdde041ba44affb (commit) via 50e1d299ef1d21b0833c2fe1484d3cc374e6486f (commit) via dd47d677f0164800ceba1ab67f6cd2add0021101 (commit) via 8038128b23576f93a56caf7779a4406a84716727 (commit) via ec8df23454873916c6b6b918967af631b268acd8 (commit) via 3e3e7faebe89bfab0d245040b19fd7347d186065 (commit) via 3aa2d05a728216bbb99dbb5718be9bb36429cf41 (commit) via 59cc050d893d1e8c75547de950a35e809588f12f (commit) via c8f6abd10d62f82874e31959bf986606bd919d39 (commit) via d2a03b77450dce58f6b4f9f7fdd3c346a555bcf7 (commit) via 9d43118ee54de3fbffea27a5a10ae11ba5ee00d0 (commit) via 535b785fb0c97220dea23a18f07baad6b5d77ae5 (commit) via 087ea22225435ab5800e6c29671acab40dc6ca82 (commit) via a406db9163e45ab55c3addff2ce1e61796f1bddc (commit) via c2a79cd51ba9d0823e7efc564938611958138c03 (commit) via b7c871edcd83ccdc5fcd8148a7f433efd6b52255 (commit) via 0d5c69990c1992289f7b286600a43de4d5d44062 (commit) via 21873064e835ffb16e92048482e34f19e6a415da (commit) via 2b351b19efc8dd36ac8a8bda005c7411536b93ec (commit) via a0a110b0dd5077373c4102d1502130eb159c366b (commit) via 4ebcabb38ef8acfb6e26d2b40e00abfe10aea895 (commit) via 854062337d056ffc8b805e0d5a8c1a66b99a4076 (commit) via 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac (commit) via 91cb9803fcf6d1c7001395d80f79120ae8e6338a (commit) via bc4e12ded1d4c8d589d82b2a10ade6b47f219db3 (commit) via 4070765b1a1640ff8f43483cd9ee06727f658dfe (commit) via 8cc2a9796024f2dd472985cc8ed1c65a85ec9a35 (commit) via 0c38a3d1942067100580e9673bcf0cbe27f3d6e8 (commit) via d8cbc93b65ace8a36002839d5ee944efff59d643 (commit) from dfba29cc316c649da098a49b084fbdd8ba3d84f2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3c31c689159535ec278253668e1f59155f18da2b Merge: 147c65b 5629862 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun May 21 08:31:42 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 56298620acb02ab589ce3ddf398788227ab20211 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sun May 21 00:00:39 2017 +0000 Automatic date update in version.in commit b4f5b984e5e771e75cee43942e56455531a02e68 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Fri May 19 23:45:29 2017 -0700 binutils: remove sparc64/mips64 workaround in objcopy build notes merge code This patch removes a workaround recently installed in objcopy that avoided removing duplicated notes in targets for which the number of internal relocations may be bigger than the number of external relocations. With the recent fixes in sparc64 and mips64, this workaround is no longer necessary. 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * objcopy.c (merge_gnu_build_notes): Remove workaround that prevented deleting relocations in duplicated notes in mips64 and sparc. commit 43cc5389bc4662b31cad02a9f13358bd367d0ab3 Author: Tom Tromey <tom@tromey.com> Date: Sun May 14 11:12:14 2017 -0600 Use watchpoint's language when re-parsing expression PR rust/21484 notes that watch -location does not work with Rust: (gdb) watch -location a syntax error in expression, near `) 0x00007fffffffe0f4'. update_watchpoint tries to tell gdb that the new expression it creates has C syntax: /* The above expression is in C. */ b->language = language_c; However, update_watchpoint doesn't actually use this language when re-parsing the expression. Originally I was going to fix this by saving and restoring the language in update_watchpoint, but this regressed gdb.dlang/watch-loc.exp, because the constructed expression actually has D syntax (specifically the name is not parseable by C). Next I looked at directly constructing an expression, and not relying on the parser at all; but it seemed to me that upon a re-set, we'd want to reparse the type, and there is no existing API to do this correctly. So, in the end I made a hook to let each language choose what expression to use. I made all the languages other than Rust use the C expression, because that is the status quo ante. However, this is probably not truly correct. After this patch, at least, it is easy to correct by someone who knows the language(s) in question. Regtested by the buildbot. ChangeLog 2017-05-19 Tom Tromey <tom@tromey.com> PR rust/21484: * rust-lang.c (exp_descriptor_rust): New function. (rust_language_defn): Use it. * p-lang.c (pascal_language_defn): Update. * opencl-lang.c (opencl_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * m2-lang.c (m2_language_defn): Update. * language.h (struct language_defn) <la_watch_location_expression>: New member. * language.c (unknown_language_defn, auto_language_defn) (local_language_defn): Update. * go-lang.c (go_language_defn): Update. * f-lang.c (f_language_defn): Update. * d-lang.c (d_language_defn): Update. * c-lang.h (c_watch_location_expression): Declare. * c-lang.c (c_watch_location_expression): New function. (c_language_defn, cplus_language_defn, asm_language_defn) (minimal_language_defn): Use it. * breakpoint.c (watch_command_1): Call la_watch_location_expression. * ada-lang.c (ada_language_defn): Update. testsuite/ChangeLog 2017-05-19 Tom Tromey <tom@tromey.com> PR rust/21484: * gdb.rust/watch.exp: New file. * gdb.rust/watch.rs: New file. commit a9dba87af1aeabffb01769004ab893173f3ef472 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Sat May 20 00:00:43 2017 +0000 Automatic date update in version.in commit e5713223cbc1025f484fa2548d58f74173646b8a Author: Maciej W. Rozycki <macro@imgtec.com> Date: Fri May 19 15:11:31 2017 +0100 MIPS/BFD: For n64 hold the number of internal relocs in `->reloc_count' Revert parts of commit fee24f1c5bfe ("objdump improvements for mips elf64"), <https://sourceware.org/ml/binutils/2003-03/msg00108.html>, and make the `->reloc_count' member of `struct bfd_section' hold the actual number of internal relocations stored in its `->relocation' vector. To do so adjust `mips_elf64_slurp_one_reloc_table' to set `->reloc_count' to the actual number of internal relocations retrieved and discard `mips_elf64_canonicalize_reloc', `mips_elf64_canonicalize_dynamic_reloc' and their corresponding target macros. Contrary to the description of `mips_elf64_slurp_one_reloc_table', adjusted appropriately, this makes generic relocation processing code happy and satisfies the "merge notes section" binutils test case. Add extra binutils test cases to expand the coverage of the generic "merge notes section" test case, now passing with the n64 ABI, across the MIPS o32, n32 and n64 ABIs regardless of the default ABI selected in target configuration, and also to verify correctness of the relocations produced. Conversely, do not provide any additional test cases for the original issue addressed with the commit referred: - objdump would display only 1/3 of the total number of relocations, because it used the external relocation count, but each external relocation is brought in as 3 internal relocations. as n64 ABI relocation processing with `objdump -r' and `objdump -R' is already widely covered across the GAS and LD test suites. bfd/ * elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype and function. (mips_elf64_canonicalize_dynamic_reloc): Likewise. (mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the actual number of internal relocations retrieved. Adjust function description. (bfd_elf64_canonicalize_reloc): Remove macro. (bfd_elf64_canonicalize_dynamic_reloc): Likewise. binutils/ * testsuite/binutils-all/mips/mips-note-2.d: New test. * testsuite/binutils-all/mips/mips-note-2r.d: New test. * testsuite/binutils-all/mips/mips-note-2-n32.d: New test. * testsuite/binutils-all/mips/mips-note-2-n64.d: New test. * testsuite/binutils-all/mips/mips-note-2r-n32.d: New test. * testsuite/binutils-all/mips/mips-note-2r-n64.d: New test. * testsuite/binutils-all/mips/mips.exp: Define `has_newabi'. Run the new tests. commit f0681695daa9d4fd493f3ca88f194675c9affbff Author: Maciej W. Rozycki <macro@imgtec.com> Date: Fri May 19 15:08:16 2017 +0100 binutils/testsuite: Permit the reuse of dump patterns Complement commit 89210bdc8fd2 ("GAS: Permit the reuse of dump patterns"), <https://sourceware.org/ml/binutils/2010-07/msg00269.html>, and commit ef2b5578f693 ("MIPS: Enable NewABI tests for SDE targets"), <https://sourceware.org/ml/binutils/2012-08/msg00017.html>, and like the GAS and LD versions make the binutils version of `run_dump_test' also support the `dump' keyword, for reusing dump patterns between tests. binutils/ * testsuite/lib/utils-lib.exp (run_dump_test): Handle the `dump' option. commit 147c65bdf374e9f9250d20c2428cde8c3c18a9e7 Merge: c2a79cd 6451799 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Fri May 19 22:25:35 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 64517994807b0d6bb3c6fd106f117c03242fac72 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Fri May 19 09:27:08 2017 -0700 binutils: support for the SPARC M8 processor This patch adds support for the new SPARC M8 processor (implementing OSA 2017) to binutils. New instructions: - Dictionary Unpack + dictunpack - Partitioned Compare with shifted result + Signed variants: fpcmp{le,gt,eq,ne}{8,16,32}shl + Unsigned variants: fpcmpu{le,gt}{8,16,32}shl - Partitioned Dual-Equal compared, with shifted result + fpcmpde{8,16,32}shl - Partitioned Unsigned Range Compare, with shifted result + fpcmpur{8,16,32}shl - 64-bit shifts on Floating-Point registers + fps{ll,ra,rl}64x - Misaligned loads and stores + ldm{sh,uh,sw,uw,x,ux} + ldm{sh,uh,sw,uw,x,ux}a + ldmf{s,d} + ldmf{s,d}a + stm{h,w,x} + stm{h,w,x}a + stmf{s,d} + stmf{s,d}a - Oracle Numbers + on{add,sub,mul,div} - Reverse Bytes/Bits + revbitsb + revbytes{h,w,x} - Run-Length instructions + rle_burst + rle_length - New crypto instructions + sha3 - Instruction to read the new register %entropy + rd %entropy New Alternate Address Identifiers: - 0x24, #ASI_CORE_COMMIT_COUNT - 0x24, #ASI_CORE_SELECT_COUNT - 0x48, #ASI_ARF_ECC_REG - 0x53, #ASI_ITLB_PROBE - 0x58, #ASI_DSFAR - 0x5a, #ASI_DTLB_PROBE_PRIMARY - 0x5b, #ASI_DTLB_PROBE_REAL - 0x64, #ASI_CORE_SELECT_COMMIT_NHT The new assembler command-line options for selecting the M8 architecture are: -Av9m8 or -Asparc6 for 64-bit binaries. -Av8plusm8 for 32-bit (v8+) binaries. The corresponding disassembler command-line options are: -msparc:v9m8 for 64-bit binaries. -msparc:v8plusm8 for 32-bit (v8+) binaries. Tested for regressions in the following targets: sparc-aout sparc-linux sparc-vxworks sparc64-linux bfd/ChangeLog: 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * archures.c (bfd_mach_sparc_v9m8): Define. (bfd_mach_sparc_v8plusm8): Likewise. (bfd_mach_sparc_v9_p): Adjust to M8. (bfd_mach_sparc_64bit_p): Likewise. * aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and bfd_mach_sparc_v8plusm8. * bfd-in2.h: Regenerated. * cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and sparc:v8plusm8. * elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and SHA3. * elf32-sparc.c (elf32_sparc_final_write_processing): Handle bfd_mach_sparc_v8plusm8. binutils/ChangeLog: 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * NEWS: Mention the SPARC M8 support. gas/ChangeLog: 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * config/tc-sparc.c (sparc_arch_table): Entries for `sparc6', `v9m8' and `v8plusm8'. (sparc_md_end): Handle SPARC_OPCODE_ARCH_M8. (get_hwcap_name): Support the M8 hardware capabilities. (sparc_ip): Handle new operand types. * doc/c-sparc.texi (Sparc-Opts): Document -Av9m8, -Av8plusm8 and -Asparc6, and the corresponding -xarch aliases. * testsuite/gas/sparc/sparc6.s: New file. * testsuite/gas/sparc/sparc6.d: Likewise. * testsuite/gas/sparc/sparc6-diag.s: Likewise. * testsuite/gas/sparc/sparc6-diag.l: Likewise. * testsuite/gas/sparc/fpcmpshl.s: Likewise. * testsuite/gas/sparc/fpcmpshl.d: Likewise. * testsuite/gas/sparc/fpcmpshl-diag.s: Likewise. * testsuite/gas/sparc/fpcmpshl-diag.l: Likewise. * testsuite/gas/sparc/ldm-stm.s: Likewise. * testsuite/gas/sparc/ldm-stm.d: Likewise. * testsuite/gas/sparc/ldm-stm-diag.s: Likewise. * testsuite/gas/sparc/ldm-stm-diag.l: Likewise. * testsuite/gas/sparc/ldmf-stmf.s: Likewise. * testsuite/gas/sparc/ldmf-stmf.d: Likewise. * testsuite/gas/sparc/ldmf-stmf-diag.s: Likewise. * testsuite/gas/sparc/ldmf-stmf-diag.l: Likewise. * testsuite/gas/sparc/on.s: Likewise. * testsuite/gas/sparc/on.d: Likewise. * testsuite/gas/sparc/on-diag.s: Likewise. * testsuite/gas/sparc/on-diag.l: Likewise. * testsuite/gas/sparc/rle.s: Likewise. * testsuite/gas/sparc/rle.d: Likewise. * testsuite/gas/sparc/sparc.exp (gas_64_check): Run new tests. * testsuite/gas/sparc/rdasr.s: Add test for RDENTROPY. * testsuite/gas/sparc/rdasr.d: Likewise. include/ChangeLog: 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * elf/sparc.h (ELF_SPARC_HWCAP2_SPARC6): Define. (ELF_SPARC_HWCAP2_ONADDSUB): Likewise. (ELF_SPARC_HWCAP2_ONMUL): Likewise. (ELF_SPARC_HWCAP2_ONDIV): Likewise. (ELF_SPARC_HWCAP2_DICTUNP): Likewise. (ELF_SPARC_HWCAP2_FPCMPSHL): Likewise. (ELF_SPARC_HWCAP2_RLE): Likewise. (ELF_SPARC_HWCAP2_SHA3): Likewise. * opcode/sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_M8 and adjust SPARC_OPCODE_ARCH_MAX. (HWCAP2_SPARC6): Define. (HWCAP2_ONADDSUB): Likewise. (HWCAP2_ONMUL): Likewise. (HWCAP2_ONDIV): Likewise. (HWCAP2_DICTUNP): Likewise. (HWCAP2_FPCMPSHL): Likewise. (HWCAP2_RLE): Likewise. (HWCAP2_SHA3): Likewise. (OPM): Likewise. (OPMI): Likewise. (ONFCN): Likewise. (REVFCN): Likewise. (SIMM10): Likewise. opcodes/ChangeLog: 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * sparc-dis.c (MASK_V9): Include SPARC_OPCODE_ARCH_M8. (X_IMM2): Define. (compute_arch_mask): Handle bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8. (print_insn_sparc): Handle new operand types. * sparc-opc.c (MASK_M8): Define. (v6): Add MASK_M8. (v6notlet): Likewise. (v7): Likewise. (v8): Likewise. (v9): Likewise. (v9a): Likewise. (v9b): Likewise. (v9c): Likewise. (v9d): Likewise. (v9e): Likewise. (v9v): Likewise. (v9m): Likewise. (v9andleon): Likewise. (m8): Define. (HWS_VM8): Define. (HWS2_VM8): Likewise. (sparc_opcode_archs): Add entry for "m8". (sparc_opcodes): Add OSA2017 and M8 instructions dictunpack, fpcmp{ule,ugt,eq,ne,de,ur}{8,16,32}shl, fpx{ll,ra,rl}64x, ldm{sh,uh,sw,uw,x,ux}, ldm{sh,uh,sw,uw,x,ux}a, ldmf{s,d}, ldmf{s,d}a, on{add,sub,mul,div}, rdentropy, revbitsb, revbytes{h,w,x}, rle_burst, rle_length, sha3, stm{h,w,x}, stm{h,w,x}a, stmf{s,d}, stmf{s,d}a. (asi_table): New M8 ASIs ASI_CORE_COMMIT_COUNT, ASI_CORE_SELECT_COUNT, ASI_ARF_ECC_REG, ASI_ITLB_PROBE, ASI_DSFAR, ASI_DTLB_PROBE_PRIMARY, ASI_DTLB_PROBE_REAL, ASI_CORE_SELECT_COMMIT_NHT. commit 92f7d783c1038841beacaba28a5f5d740a5ccad6 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri May 19 08:36:06 2017 -0700 x86: Add GC testcases with property sections Verify that debug section is removed by garbage collection when there is a .note.gnu.property section. * testsuite/ld-i386/i386.exp: Run property-x86-4a and property-x86-4b. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/property-x86-4a.d: New file. * testsuite/ld-i386/property-x86-4a.s: Likewise. * testsuite/ld-i386/property-x86-4b.d: Likewise. * testsuite/ld-i386/property-x86-4b.s: Likewise. * testsuite/ld-x86-64/property-x86-4a.d: Likewise. * testsuite/ld-x86-64/property-x86-4a.s: Likewise. * testsuite/ld-x86-64/property-x86-4b.d: Likewise. * testsuite/ld-x86-64/property-x86-4b.s: Likewise. commit ae0264a6474d777650d65da261732748126f0190 Author: Jose E. Marchesi <jose.marchesi@oracle.com> Date: Fri May 19 06:59:41 2017 -0700 gas: fix tests call-relax and asi-bump-warn in 32-bit SPARC ELF targets Tested in targets: sparc-aout sparc-linux sparc-vxworks sparc64-linux 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * testsuite/gas/sparc/call-relax.d: Support 32-bit targets. * testsuite/gas/sparc/sparc.exp (gas_64_check): Use -64 to run asi-bump-warn. commit f4203b2b8830e66e5229b7f9d30cd29b088566b5 Author: eorg-Johann Lay <avr@gjlay.de> Date: Fri May 19 15:06:33 2017 +0100 Update avrxmega3 linker emulation to support avrxmega2 devices with flash memory visible in the SRAM address range. PR ld/21472 ld * emulparams/avrxmega3.sh (RODATA_PM_OFFSET): Set to 0x8000. * scripttempl/avr.sc (__RODATA_PM_OFFSET__) [RODATA_PM_OFFSET]: Use RODATA_PM_OFFSET as default if not already defined. (.data) [!RODATA_PM_OFFSET]: Don't include .rodata and friends. (.rodata) [RODATA_PM_OFFSET]: Put at an offset of __RODATA_PM_OFFSET__. gas * config/tc-avr.c (mcu_types): Add entries for: attiny416, attiny417, attiny816, attiny817. commit 6e7e1744e96abbf1a4229d5f269caf2cc921ec58 Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Date: Fri May 19 15:08:45 2017 +0200 Fix tui compilation with Solaris libcurses: clear define (PR tui/21482) On both mainline and the 8.0 branch, gdb compilation fails on Solaris 10 with the native libcurses like this: In file included from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/gdb_curses.h:42: 0, from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-data.h:2 6, from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c :31: /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c: In function `CORE_A DDR tui_disassemble(gdbarch*, tui_asm_line*, CORE_ADDR, int)': /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c:71:19: error: `class string_file' has no member named `wclear'; did you mean `clear'? gdb_dis_out.clear (); ^ /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c:78:19: error: `class string_file' has no member named `wclear'; did you mean `clear'? gdb_dis_out.clear (); ^ make[2]: *** [Makefile:1927: tui-disasm.o] Error 1 It turned out this happens because <curses.h> has #define clear() wclear(stdscr) This can be avoided by defining NOMACROS, which the patch below does. ncurses potentially has a similar problem, which can be avoided by defining NCURSES_NOMACROS. PR tui/21482 * gdb_curses.h (NOMACROS): Define. (NCURSES_NOMACROS): Define. commit 7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70 Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Date: Fri May 19 14:16:55 2017 +0200 Fix tui compilation with Solaris libcurses: non-const last arg to mvwaddstr (PR tui/21482) On both mainline and the 8.0 branch, gdb compilation fails on Solaris 10 with the native libcurses in gdb/tui for several instances of the same problem: /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c: In function `void tui_erase_source_content(tui_win_info*, int)': /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:257:18: error: invalid conversion from `const char*' to `char*' [-fpermissive] no_src_str); ^ In file included from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/gdb_curses.h:42:0, from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-data.h:26, from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:33: /vol/gcc-7/lib/gcc/sparc-sun-solaris2.10/7.1.0/include-fixed/curses.h:699:12: note: initializing argument 4 of `int mvwaddstr(WINDOW*, int, int, char*)' extern int mvwaddstr(WINDOW *, int, int, char *); ^~~~~~~~~ make[2]: *** [Makefile:1927: tui-winsource.o] Error 1 Unlike ncurses, <curses.h> declares extern int mvwaddstr(WINDOW *, int, int, char *); i.e. the last arg is char *, not const char *. The patch fixes this by casting the last arg to mvwaddstr to char *, as was recently done on mainline in a newterm() call (the only difference between 8.0 and mainline gdb/tui). * tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr arg to char *. * tui/tui-wingeneral.c (box_win): Likewise. * tui/tui-winsource.c (tui_erase_source_content): Likewise. (tui_show_source_line): Likewise. (tui_show_exec_info_content): Likewise. commit 1933fd8ee01ad2e74a9c6341bc40f54962a8f889 Author: Vladimir Mezentsev <vladimir.mezentsev@oracle.com> Date: Fri May 19 03:06:19 2017 -0700 gdb: fix TYPE_CODE_ARRAY handling in sparc targets gdb has a special type (TYPE_CODE_ARRAY) to support the gcc extension (https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html). TYPE_CODE_ARRAY is handled incorrectly for both (32- and 64-bit) modes on Sparc machines. Tested on sparc64-linux-gnu and sparc-solaris (32- and 64-bit mode). 6 tests ( from gdb/testsuite/gdb.base/gnu_vector.exp) failed on sparc64-Linux and on sparc-Solaris in 32- and 64-bit mode. Now all these tests passed. gdb/testsuite/gdb.base/gnu_vector.exp has 117 different cases for small (and not small) arrays and structures. No regressions. gdb/ChangeLog: 2017-05-19 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> * sparc-tdep.c (sparc_structure_return_p) (sparc_arg_on_registers_p): New functions. (sparc32_store_arguments): Use them. * sparc64-tdep.c (sparc64_16_byte_align_p) (sparc64_store_floating_fields, sparc64_extract_floating_fields): Handle TYPE_CODE_ARRAY. commit eb026f09eb6fcb96a5de1e655cdde041ba44affb Author: Alan Modra <amodra@gmail.com> Date: Fri May 19 12:40:10 2017 +0930 garbage collect debug sections when no alloc sections are kept The pr20882 testcase fails on a number of targets that add attribute or note sections to object files, and the default linker script says those sections should be kept. This patch changes --gc-sections to drop debug and special sections like .comment when no SEC_ALLOC section in an object file is kept. The assumption is that debug sections are describing code and data that will become part of the final image in memory. * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep debug and special sections when no non-note alloc sections in an object are kept. commit 50e1d299ef1d21b0833c2fe1484d3cc374e6486f Author: Eli Zaretskii <eliz@gnu.org> Date: Fri May 19 11:05:59 2017 +0300 Avoid MinGW compilation warning in readline/input.c This change was already accepted upstream in Readline. readline/ChangeLog.gdb: 2017-05-19 Eli Zaretskii <eliz@gnu.org> * input.c [_WIN32]: Include <conio.h> to avoid compiler warning on MinGW. commit dd47d677f0164800ceba1ab67f6cd2add0021101 Author: Maciej W. Rozycki <macro@imgtec.com> Date: Fri May 19 07:53:21 2017 +0100 MIPS/binutils/testsuite: Bail out right away if !ELF We have but ELF binutils tests in the MIPS subset, and non-ELF MIPS/GAS ports are gone, making a future addition of any non-ELF tests unlikely. Bail out right away then if non-ELF, consuming one level of indentation across the actual tests run. binutils/ * testsuite/binutils-all/mips/mips.exp: Bail out right away if non-ELF. commit 8038128b23576f93a56caf7779a4406a84716727 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Fri May 19 00:00:39 2017 +0000 Automatic date update in version.in commit ec8df23454873916c6b6b918967af631b268acd8 Author: Tom Tromey <tom@tromey.com> Date: Thu May 18 17:31:41 2017 -0600 Fix test failure with Rust 1.18 and 1.19 With Rust 1.18 and 1.19, I saw some test suite failures. They were all of the same form -- Box seems to be qualified in the output now, like: print box_some $64 = core::option::Option<alloc::boxed::Box<u8>>::Some(0x7ffff6c21018 "\001\000") ... where the test was expecting Option<Box<u8>>. This patch fixes the problem in a way that should work with earlier versions of Rust. gdb/testsuite/ChangeLog 2017-05-18 Tom Tromey <tom@tromey.com> * gdb.rust/simple.exp: Allow Box to be qualified. commit 3e3e7faebe89bfab0d245040b19fd7347d186065 Author: Thomas Preud'homme <thomas.preudhomme@arm.com> Date: Thu May 18 16:31:40 2017 +0100 Expect prompt after no FPU warning 2017-05-18 Thomas Preud'homme <thomas.preudhomme@arm.com> gdb/testsuite/ * gdb.base/float.exp: Expect GDB prompt for targets without FPU. commit 3aa2d05a728216bbb99dbb5718be9bb36429cf41 Author: Nick Clifton <nickc@redhat.com> Date: Thu May 18 15:07:59 2017 +0100 Treat a prefix of "$SYSROOT" in the same way as "=" when parsing linker search paths. PR ld/21251 * ldfile.c (ldfile_add_library_path): If the path starts with $SYSROOT then use the sysroot as the real prefix. * ldlang.c (lang_add_input_file): Treat $SYSROOT in the same way as =. * ldlex.l: Add $SYSROOT as allow prefix for a filename. * ld.texinfo (-L): Document that $SYSROOT acts like = when prefixing a library search path. (INPUT): Likewise. * testsuite/ld-scripts/sysroot-prefix.exp: Add $SYSROOT prefix tests. commit 59cc050d893d1e8c75547de950a35e809588f12f Author: Pedro Alves <palves@redhat.com> Date: Thu May 18 11:40:08 2017 +0100 gdb.base/fileio.c: Fix several -Wmaybe-uninitialized warnings src/gdb/testsuite/gdb.base/fileio.c: In function âtest_writeâ: src/gdb/testsuite/gdb.base/fileio.c:158:5: warning: âretâ may be used uninitialized in this function [-Wmaybe-uninitialized] printf ("write 1: ret = %d, errno = %d\n", ret, errno); ^ gdb/ChangeLog: 2017-05-18 Pedro Alves <palves@redhat.com> * gdb.base/fileio.c (test_write, test_read, test_close) (test_fstat): Don't print 'ret' in the fail path. commit c8f6abd10d62f82874e31959bf986606bd919d39 Author: Pedro Alves <palves@redhat.com> Date: Thu May 18 11:37:55 2017 +0100 gdb.base/fileio.c: Fix several -Wreturn-type warnings All the "test_" functions warn like: src/gdb/testsuite/gdb.base/fileio.c: In function âtest_closeâ: src/gdb/testsuite/gdb.base/fileio.c:280:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Nothing looks at the return of these functions, so just make them return void. While at it, "()" is not the same as "(void)" in C - fix that too. gdb/ChangeLog: 2017-05-18 Pedro Alves <palves@redhat.com> * gdb.base/fileio.c (stop, test_open, test_write, test_read) (test_lseek, test_close, test_stat, test_fstat, test_isatty) (test_system, test_rename, test_unlink, test_time): Change prototypes. * gdb.base/fileio.exp (stop_msg): Adjust. commit d2a03b77450dce58f6b4f9f7fdd3c346a555bcf7 Author: Pedro Alves <palves@redhat.com> Date: Thu May 18 11:47:05 2017 +0100 gdb.base/fileio.exp: Remove nowarnings ... and quiet -Wnonnull in a different way. gdb/testsuite/ChangeLog: 2017-05-18 Pedro Alves <palves@redhat.com> * gdb.base/fileio.c (null_str): New global. (test_stat): Use it. * gdb.base/fileio.exp: Remove nowarnings. commit 9d43118ee54de3fbffea27a5a10ae11ba5ee00d0 Author: Alan Modra <amodra@gmail.com> Date: Thu May 18 16:51:48 2017 +0930 fix changelog typo commit 535b785fb0c97220dea23a18f07baad6b5d77ae5 Author: Alan Modra <amodra@gmail.com> Date: Thu May 18 14:47:40 2017 +0930 Don't compare boolean values against TRUE or FALSE bfd/ * arc-got.h: Don't compare boolean values against TRUE or FALSE. * elf-m10300.c: Likewise. * elf.c: Likewise. * elf32-arc.c: Likewise. * elf32-bfin.c: Likewise. * elf32-m68k.c: Likewise. * elf32-nds32.c: Likewise. * elf32-tilepro.c: Likewise. * elflink.c: Likewise. * elfnn-aarch64.c: Likewise. * elfnn-riscv.c: Likewise. * elfxx-tilegx.c: Likewise. * mach-o.c: Likewise. * peXXigen.c: Likewise. * vms-alpha.c: Likewise. * vms-lib.c: Likewise. opcodes/ * aarch64-asm.c: Don't compare boolean values against TRUE or FALSE. * aarch64-dis.c: Likewise. * aarch64-gen.c: Likewise. * aarch64-opc.c: Likewise. binutils/ * strings.c: Don't compare boolean values against TRUE or FALSE. gas/ * config/tc-aarch64.c: Don't compare booleans against TRUE or FALSE. * config/tc-hppa.c: Likewise. * config/tc-mips.c: Likewise. * config/tc-score7.c: Likewise. ld/ * emultempl/elf32.em: Don't compare boolean values against TRUE or FALSE. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/xtensaelf.em: Likewise. commit 087ea22225435ab5800e6c29671acab40dc6ca82 Author: Alan Modra <amodra@gmail.com> Date: Thu May 18 14:28:17 2017 +0930 pr20882 testcase -gdwarf-sections doesn't work on targets that lack support to emit address size relative relocs. The testcase as it was avoided -gdwarf-sections doing anything by providing a non-empty .debug_line. It's better to not use -gdwarf-sections. Also, the testcase failed to match the output for 16-bit address targets like avr. PR ld/20882 * testsuite/ld-gc/pr20882.d: Don't pass -gdwarf-sections to gas. Allow for 16-bit address targets and match expected data fully. * testsuite/ld-gc/pr20882a.s: Delete .debug_line section. * testsuite/ld-gc/pr20882b.s: Likewise. * testsuite/ld-gc/pr20882c.s: Likewise. commit a406db9163e45ab55c3addff2ce1e61796f1bddc Author: GDB Administrator <gdbadmin@sourceware.org> Date: Thu May 18 00:00:47 2017 +0000 Automatic date update in version.in commit c2a79cd51ba9d0823e7efc564938611958138c03 Merge: dfba29c b7c871e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Wed May 17 18:48:12 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit b7c871edcd83ccdc5fcd8148a7f433efd6b52255 Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed May 17 07:57:15 2017 -0700 Mark debug sections referenced by kept debug sections If a debug section is referenced by a kept debug section, it should also be kept. Some targets, like mips, keep input files when there are some special sections, like .gnu.attributes, even if input file is unused otherwise. In this case, all debug sections are kept. The new test will fail on such targets. We can either fix those targets or XFAIL the test. bfd/ PR ld/20882 * elflink.c (elf_gc_mark_debug_section): New function. (_bfd_elf_gc_mark_extra_sections): Mark any debug sections referenced by kept debug sections. ld/ PR ld/20882 * testsuite/ld-gc/gc.exp: Run pr20882. * testsuite/ld-gc/pr20882.d: New file. * testsuite/ld-gc/pr20882a.s: Likewise. * testsuite/ld-gc/pr20882b.s: Likewise. * testsuite/ld-gc/pr20882c.s: Likewise. commit 0d5c69990c1992289f7b286600a43de4d5d44062 Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 17 14:46:17 2017 +0100 Add nowarnings in gdb.base/fileio.exp I see the following warning in gdb.base/fileio.c, testsuite/gdb.base/fileio.c:297:3: warning: null argument where non-null required (argument 1) [-Wnonnull] ret = stat (NULL, &st); ^ This patch adds "nowarnings" to the list passed to gdb_compile. gdb/testsuite: 2017-05-17 Yao Qi <yao.qi@linaro.org> * gdb.base/fileio.exp: Pass nowarnings to gdb_compile. commit 21873064e835ffb16e92048482e34f19e6a415da Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 17 14:22:04 2017 +0100 Add alias command to cmd_list_element When we add alias command, we call add_alias_cmd and pass the alias name and command name. This implicitly requires the command and its prefix commands are already added to cmdlist. This may not be true, for example, add_com_alias ("tty", "set inferior-tty", class_alias, 0); "inferior-tty" command is added to setlist, but setlist may not be added to cmdlist (It depends on the order of related _initialize_XXX functions called) so that we can't find "set inferior-tty" from cmdlist. This patch fixes this problem by passing cmd_list_element of "inferior-tty" to add_alias_cmd, so that cmd_list_element of "inferior-tty" doesn't have to be reachable from cmdlist at that moment. gdb: 2017-05-17 Yao Qi <yao.qi@linaro.org> * cli/cli-decode.c (add_alias_cmd): New function. * command.h (add_alias_cmd): Declare. * infcmd.c (_initialize_infcmd): Don't call add_com_alias, instead call add_alias_cmd. gdb/testsuite: 2017-05-17 Simon Marchi <simon.marchi@ericsson.com> * gdb.base/set-inferior-tty.exp (test_set_inferior_tty): Add argument command. (top-level): Invoke test_set_inferior_tty. commit 2b351b19efc8dd36ac8a8bda005c7411536b93ec Author: Pedro Alves <palves@redhat.com> Date: Wed May 17 13:56:19 2017 +0100 nat_extra_makefile_frag -> nat_makefile_frag gdb/ChangeLog: 2017-05-17 Pedro Alves <palves@redhat.com> * Makefile.in (nat_extra_makefile_frag): Rename to ... (nat_makefile_frag): ... this. All references updated. * configure.ac: Likewise. * configure.nat: Likewise. Enhance comments. * configure: Regenerate. commit a0a110b0dd5077373c4102d1502130eb159c366b Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com> Date: Wed May 17 12:39:39 2017 +0200 S/390: Fix arch level of pckmo instruction. Fix wrong architecture level of PCKMO instruction. Committed to mainline. opcodes/ChangeLog: 2017-05-17 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * s390-opc.txt: PCKMO change arch level to z196. gas/ChangeLog: 2017-05-17 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * testsuite/gas/s390/zarch-z10.d: Remove pckmo. * testsuite/gas/s390/zarch-z10.s: Remove pckmo. * testsuite/gas/s390/zarch-z196.d: Add pckmo. * testsuite/gas/s390/zarch-z196.s: Add pckmo. commit 4ebcabb38ef8acfb6e26d2b40e00abfe10aea895 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed May 17 00:00:53 2017 +0000 Automatic date update in version.in commit 854062337d056ffc8b805e0d5a8c1a66b99a4076 Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 16 09:09:20 2017 -0700 Fix commit 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac commit 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 16 08:52:01 2017 -0700 Run PR ld/21481 tests only if IFUNC is supported PR ld/21481 * testsuite/ld-x86-64/x86-64.exp: Run PR ld/21481 tests only if IFUNC is supported by run-time. commit 91cb9803fcf6d1c7001395d80f79120ae8e6338a Author: Alan Modra <amodra@gmail.com> Date: Tue May 16 08:43:24 2017 +0930 Allow target files access to default TC_FORCE_RELOCATION defines * write.c (GENERIC_FORCE_RELOCATION_LOCAL): Define. (TC_FORCE_RELOCATION_LOCAL): Use it. (GENERIC_FORCE_RELOCATION_SUB_SAME): Define. (TC_FORCE_RELOCATION_SUB_SAME): Use it. * config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL, TC_FORCE_RELOCATION_SUB_SAME): Use GENERIC defines. * config/tc-aarch64.h: Similarly. * config/tc-avr.h: Similarly. * config/tc-cris.h: Similarly. * config/tc-i386.h: Similarly. * config/tc-i960.h: Similarly. * config/tc-ia64.h: Similarly. * config/tc-microblaze.h: Similarly. * config/tc-mips.h: Similarly. * config/tc-msp430.h: Similarly. * config/tc-nds32.h: Similarly. * config/tc-pru.h: Similarly. * config/tc-riscv.h: Similarly. * config/tc-rl78.h: Similarly. * config/tc-s390.h: Similarly. * config/tc-sh.h: Similarly. * config/tc-sh64.h: Similarly. * config/tc-sparc.h: Similarly. * config/tc-xtensa.h: Similarly. * config/tc-mn10300.h: Similarly. (GENERIC_FORCE_RELOCATION_LOCAL): Define. * config/tc-msp430.c (msp430_force_relocation_local): Modify to be addition to rather than replacement of standard TC_FORCE_RELOCATION_LOCAL. commit bc4e12ded1d4c8d589d82b2a10ade6b47f219db3 Author: Alan Modra <amodra@gmail.com> Date: Tue May 16 07:58:14 2017 +0930 Rename non_ir_ref to non_ir_ref_regular Since the flag is now set only for regular object refs. include/ * bfdlink.h (struct bfd_link_hash_entry <non_ir_ref>): Rename to non_ir_ref_regular. bfd/ * elf-m10300.c: Rename occurrences of non_ir_ref. * elf32-arm.c: Likewise. * elf32-bfin.c: Likewise. * elf32-cr16.c: Likewise. * elf32-cris.c: Likewise. * elf32-d10v.c: Likewise. * elf32-dlx.c: Likewise. * elf32-fr30.c: Likewise. * elf32-frv.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i370.c: Likewise. * elf32-i386.c: Likewise. * elf32-iq2000.c: Likewise. * elf32-lm32.c: Likewise. * elf32-m32c.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68k.c: Likewise. * elf32-mcore.c: Likewise. * elf32-metag.c: Likewise. * elf32-microblaze.c: Likewise. * elf32-moxie.c: Likewise. * elf32-msp430.c: Likewise. * elf32-mt.c: Likewise. * elf32-nios2.c: Likewise. * elf32-or1k.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-v850.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-mmix.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-x86-64.c: Likewise. * elflink.c: Likewise. * elfnn-aarch64.c: Likewise. * elfnn-ia64.c: Likewise. * elfnn-riscv.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-sparc.c: Likewise. * elfxx-tilegx.c: Likewise. * linker.c: Likewise. ld/ * plugin.c: Rename occurrences of non_ir_ref. commit 4070765b1a1640ff8f43483cd9ee06727f658dfe Author: Alan Modra <amodra@gmail.com> Date: Tue May 16 07:56:41 2017 +0930 non_ir_ref_dynamic dynamic_ref_after_ir_def is a little odd compared to other symbol flags in that as the name suggests, it is set only for certain references after a definition. It turns out that setting a flag for any non-ir reference from a dynamic object can be used to solve the problem for which this flag was invented, which I think is a cleaner. This patch does that, and sets non_ir_ref only for regular object references. include/ * bfdlink.h (struct bfd_link_hash_entry): Update non_ir_ref comment. Rename dynamic_ref_after_ir_def to non_ir_ref_dynamic. ld/ * plugin.c (is_visible_from_outside): Use non_ir_ref_dynamic. (plugin_notice): Set non_ir_ref for references from regular objects, non_ir_ref_dynamic for references from dynamic objects. bfd/ * elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic. * elflink.c (elf_link_add_object_symbols): Update to use non_ir_ref_dynamic. (elf_link_input_bfd): Test non_ir_ref_dynamic in addition to non_ir_ref. * linker.c (_bfd_generic_link_add_one_symbol): Likewise. commit 8cc2a9796024f2dd472985cc8ed1c65a85ec9a35 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue May 16 00:00:31 2017 +0000 Automatic date update in version.in commit 0c38a3d1942067100580e9673bcf0cbe27f3d6e8 Author: Eric Christopher <echristo@gmail.com> Date: Mon May 15 15:59:52 2017 -0700 2017-05-15 Eric Christopher <echristo@gmail.com> * layout.cc (Layout::segment_precedes): Add a case for testing pointer equality when determining which segment precedes another. commit d8cbc93b65ace8a36002839d5ee944efff59d643 Author: Jeff Law <law@redhat.com> Date: Mon May 15 10:48:41 2017 -0600 2017-05-15 Jeff Law <law@redhat.com> * readelf.c (display_arc_attribute): Avoid implicit fallthru. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 127 ++++++++++++ bfd/aoutx.h | 4 +- bfd/arc-got.h | 6 +- bfd/archures.c | 7 +- bfd/bfd-in2.h | 7 +- bfd/cpu-sparc.c | 30 +++ bfd/elf-m10300.c | 4 +- bfd/elf.c | 2 +- bfd/elf32-arc.c | 22 +- bfd/elf32-arm.c | 2 +- bfd/elf32-bfin.c | 6 +- bfd/elf32-cr16.c | 2 +- bfd/elf32-cris.c | 2 +- bfd/elf32-d10v.c | 2 +- bfd/elf32-dlx.c | 2 +- bfd/elf32-fr30.c | 2 +- bfd/elf32-frv.c | 2 +- bfd/elf32-hppa.c | 2 +- bfd/elf32-i370.c | 2 +- bfd/elf32-i386.c | 2 +- bfd/elf32-iq2000.c | 2 +- bfd/elf32-lm32.c | 2 +- bfd/elf32-m32c.c | 2 +- bfd/elf32-m32r.c | 2 +- bfd/elf32-m68hc1x.c | 2 +- bfd/elf32-m68k.c | 4 +- bfd/elf32-mcore.c | 2 +- bfd/elf32-metag.c | 2 +- bfd/elf32-microblaze.c | 2 +- bfd/elf32-moxie.c | 2 +- bfd/elf32-msp430.c | 2 +- bfd/elf32-mt.c | 2 +- bfd/elf32-nds32.c | 8 +- bfd/elf32-nios2.c | 2 +- bfd/elf32-or1k.c | 2 +- bfd/elf32-ppc.c | 2 +- bfd/elf32-rl78.c | 2 +- bfd/elf32-s390.c | 2 +- bfd/elf32-score.c | 2 +- bfd/elf32-score7.c | 2 +- bfd/elf32-sh.c | 2 +- bfd/elf32-sparc.c | 1 + bfd/elf32-tic6x.c | 2 +- bfd/elf32-tilepro.c | 4 +- bfd/elf32-v850.c | 2 +- bfd/elf32-vax.c | 2 +- bfd/elf32-xstormy16.c | 2 +- bfd/elf32-xtensa.c | 2 +- bfd/elf64-alpha.c | 2 +- bfd/elf64-hppa.c | 2 +- bfd/elf64-ia64-vms.c | 2 +- bfd/elf64-mips.c | 82 +------- bfd/elf64-mmix.c | 2 +- bfd/elf64-ppc.c | 7 +- bfd/elf64-s390.c | 2 +- bfd/elf64-sh64.c | 2 +- bfd/elf64-x86-64.c | 2 +- bfd/elflink.c | 111 +++++++---- bfd/elfnn-aarch64.c | 8 +- bfd/elfnn-ia64.c | 2 +- bfd/elfnn-riscv.c | 4 +- bfd/elfxx-mips.c | 2 +- bfd/elfxx-sparc.c | 19 ++- bfd/elfxx-tilegx.c | 4 +- bfd/linker.c | 3 +- bfd/mach-o.c | 2 +- bfd/peXXigen.c | 18 +- bfd/version.h | 2 +- bfd/vms-alpha.c | 32 ++-- bfd/vms-lib.c | 18 +- binutils/ChangeLog | 39 ++++ binutils/NEWS | 3 + binutils/objcopy.c | 7 - binutils/readelf.c | 7 +- binutils/strings.c | 4 +- .../testsuite/binutils-all/mips/mips-note-2-n32.d | 7 + .../testsuite/binutils-all/mips/mips-note-2-n64.d | 7 + binutils/testsuite/binutils-all/mips/mips-note-2.d | 7 + .../testsuite/binutils-all/mips/mips-note-2r-n32.d | 11 + .../testsuite/binutils-all/mips/mips-note-2r-n64.d | 15 ++ .../testsuite/binutils-all/mips/mips-note-2r.d | 11 + binutils/testsuite/binutils-all/mips/mips.exp | 45 +++-- binutils/testsuite/lib/utils-lib.exp | 14 ++- gas/ChangeLog | 86 ++++++++ gas/config/tc-aarch64.c | 10 +- gas/config/tc-aarch64.h | 5 +- gas/config/tc-arm.h | 10 +- gas/config/tc-avr.c | 4 + gas/config/tc-avr.h | 3 +- gas/config/tc-cris.h | 5 +- gas/config/tc-hppa.c | 2 +- gas/config/tc-i386.h | 5 +- gas/config/tc-i960.h | 7 +- gas/config/tc-ia64.h | 5 +- gas/config/tc-microblaze.h | 11 +- gas/config/tc-mips.c | 2 +- gas/config/tc-mips.h | 3 +- gas/config/tc-mn10300.h | 18 ++- gas/config/tc-msp430.c | 5 +- gas/config/tc-msp430.h | 9 +- gas/config/tc-nds32.h | 3 +- gas/config/tc-pru.h | 2 +- gas/config/tc-riscv.h | 4 +- gas/config/tc-rl78.h | 4 +- gas/config/tc-s390.h | 3 +- gas/config/tc-score7.c | 2 +- gas/config/tc-sh.h | 7 +- gas/config/tc-sh64.h | 7 +- gas/config/tc-sparc.c | 76 +++++++- gas/config/tc-sparc.h | 5 +- gas/config/tc-xtensa.h | 3 +- gas/doc/c-sparc.texi | 28 ++- gas/testsuite/gas/s390/zarch-z10.d | 1 - gas/testsuite/gas/s390/zarch-z10.s | 1 - gas/testsuite/gas/s390/zarch-z196.d | 1 + gas/testsuite/gas/s390/zarch-z196.s | 1 + gas/testsuite/gas/sparc/call-relax.d | 2 +- gas/testsuite/gas/sparc/fpcmpshl-diag.l | 6 + gas/testsuite/gas/sparc/fpcmpshl-diag.s | 7 + gas/testsuite/gas/sparc/fpcmpshl.d | 27 +++ gas/testsuite/gas/sparc/fpcmpshl.s | 19 ++ gas/testsuite/gas/sparc/ldm-stm-diag.l | 3 + gas/testsuite/gas/sparc/ldm-stm-diag.s | 4 + gas/testsuite/gas/sparc/ldm-stm.d | 70 +++++++ gas/testsuite/gas/sparc/ldm-stm.s | 63 ++++++ gas/testsuite/gas/sparc/ldmf-stmf-diag.l | 11 + gas/testsuite/gas/sparc/ldmf-stmf-diag.s | 12 + gas/testsuite/gas/sparc/ldmf-stmf.d | 37 ++++ gas/testsuite/gas/sparc/ldmf-stmf.s | 31 +++ gas/testsuite/gas/sparc/on-diag.l | 5 + gas/testsuite/gas/sparc/on-diag.s | 6 + gas/testsuite/gas/sparc/on.d | 13 ++ gas/testsuite/gas/sparc/on.s | 6 + gas/testsuite/gas/sparc/rdasr.d | 3 +- gas/testsuite/gas/sparc/rdasr.s | 1 + gas/testsuite/gas/sparc/rle.d | 12 + gas/testsuite/gas/sparc/rle.s | 4 + gas/testsuite/gas/sparc/sparc.exp | 13 +- gas/testsuite/gas/sparc/sparc6-diag.l | 7 + gas/testsuite/gas/sparc/sparc6-diag.s | 8 + gas/testsuite/gas/sparc/sparc6.d | 18 ++ gas/testsuite/gas/sparc/sparc6.s | 11 + gas/write.c | 10 +- gdb/ChangeLog | 64 ++++++ gdb/Makefile.in | 2 +- gdb/ada-lang.c | 1 + gdb/breakpoint.c | 11 +- gdb/c-lang.c | 14 ++ gdb/c-lang.h | 3 + gdb/cli/cli-decode.c | 29 ++- gdb/command.h | 6 + gdb/configure | 4 +- gdb/configure.ac | 4 +- gdb/configure.nat | 11 +- gdb/d-lang.c | 1 + gdb/f-lang.c | 1 + gdb/gdb_curses.h | 7 + gdb/go-lang.c | 1 + gdb/infcmd.c | 5 +- gdb/language.c | 4 + gdb/language.h | 6 + gdb/m2-lang.c | 1 + gdb/objc-lang.c | 1 + gdb/opencl-lang.c | 1 + gdb/p-lang.c | 2 + gdb/rust-lang.c | 15 ++ gdb/sparc-tdep.c | 72 +++++-- gdb/sparc64-tdep.c | 43 ++++- gdb/testsuite/ChangeLog | 43 ++++ gdb/testsuite/gdb.base/fileio.c | 66 +++--- gdb/testsuite/gdb.base/fileio.exp | 2 +- gdb/testsuite/gdb.base/float.exp | 10 +- gdb/testsuite/gdb.base/set-inferior-tty.exp | 10 +- gdb/testsuite/gdb.rust/simple.exp | 8 +- gdb/testsuite/gdb.rust/watch.exp | 35 +++ gdb/testsuite/gdb.rust/watch.rs | 24 +++ gdb/tui/tui-windata.c | 2 +- gdb/tui/tui-wingeneral.c | 2 +- gdb/tui/tui-winsource.c | 7 +- gold/ChangeLog | 6 + gold/layout.cc | 5 + include/ChangeLog | 36 ++++ include/bfdlink.h | 12 +- include/elf/sparc.h | 9 + include/opcode/sparc.h | 25 ++- ld/ChangeLog | 80 +++++++ ld/emulparams/avrxmega3.sh | 1 + ld/emultempl/elf32.em | 2 +- ld/emultempl/pe.em | 2 +- ld/emultempl/pep.em | 2 +- ld/emultempl/xtensaelf.em | 2 +- ld/ld.texinfo | 11 +- ld/ldfile.c | 2 + ld/ldlang.c | 7 +- ld/ldlex.l | 5 + ld/plugin.c | 67 ++++--- ld/scripttempl/avr.sc | 51 +++++- ld/testsuite/ld-gc/gc.exp | 1 + ld/testsuite/ld-gc/pr20882.d | 9 + ld/testsuite/ld-gc/pr20882a.s | 8 + ld/testsuite/ld-gc/pr20882b.s | 5 + ld/testsuite/ld-gc/pr20882c.s | 5 + ld/testsuite/ld-i386/i386.exp | 2 + ld/testsuite/ld-i386/property-x86-4a.d | 10 + ld/testsuite/ld-i386/property-x86-4a.s | 5 + ld/testsuite/ld-i386/property-x86-4b.d | 10 + ld/testsuite/ld-i386/property-x86-4b.s | 20 ++ ld/testsuite/ld-scripts/sysroot-prefix.exp | 9 +- ld/testsuite/ld-x86-64/property-x86-4a.d | 10 + ld/testsuite/ld-x86-64/property-x86-4a.s | 5 + ld/testsuite/ld-x86-64/property-x86-4b.d | 10 + ld/testsuite/ld-x86-64/property-x86-4b.s | 20 ++ ld/testsuite/ld-x86-64/x86-64.exp | 42 +++-- opcodes/ChangeLog | 44 ++++ opcodes/aarch64-asm.c | 5 +- opcodes/aarch64-dis.c | 8 +- opcodes/aarch64-gen.c | 6 +- opcodes/aarch64-opc.c | 8 +- opcodes/s390-opc.txt | 2 +- opcodes/sparc-dis.c | 26 +++- opcodes/sparc-opc.c | 217 ++++++++++++++++++-- readline/ChangeLog.gdb | 5 + readline/input.c | 1 + 223 files changed, 2332 insertions(+), 556 deletions(-) create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2-n32.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2-n64.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r.d create mode 100644 gas/testsuite/gas/sparc/fpcmpshl-diag.l create mode 100644 gas/testsuite/gas/sparc/fpcmpshl-diag.s create mode 100644 gas/testsuite/gas/sparc/fpcmpshl.d create mode 100644 gas/testsuite/gas/sparc/fpcmpshl.s create mode 100644 gas/testsuite/gas/sparc/ldm-stm-diag.l create mode 100644 gas/testsuite/gas/sparc/ldm-stm-diag.s create mode 100644 gas/testsuite/gas/sparc/ldm-stm.d create mode 100644 gas/testsuite/gas/sparc/ldm-stm.s create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf-diag.l create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf-diag.s create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf.d create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf.s create mode 100644 gas/testsuite/gas/sparc/on-diag.l create mode 100644 gas/testsuite/gas/sparc/on-diag.s create mode 100644 gas/testsuite/gas/sparc/on.d create mode 100644 gas/testsuite/gas/sparc/on.s create mode 100644 gas/testsuite/gas/sparc/rle.d create mode 100644 gas/testsuite/gas/sparc/rle.s create mode 100644 gas/testsuite/gas/sparc/sparc6-diag.l create mode 100644 gas/testsuite/gas/sparc/sparc6-diag.s create mode 100644 gas/testsuite/gas/sparc/sparc6.d create mode 100644 gas/testsuite/gas/sparc/sparc6.s create mode 100644 gdb/testsuite/gdb.rust/watch.exp create mode 100644 gdb/testsuite/gdb.rust/watch.rs create mode 100644 ld/testsuite/ld-gc/pr20882.d create mode 100644 ld/testsuite/ld-gc/pr20882a.s create mode 100644 ld/testsuite/ld-gc/pr20882b.s create mode 100644 ld/testsuite/ld-gc/pr20882c.s create mode 100644 ld/testsuite/ld-i386/property-x86-4a.d create mode 100644 ld/testsuite/ld-i386/property-x86-4a.s create mode 100644 ld/testsuite/ld-i386/property-x86-4b.d create mode 100644 ld/testsuite/ld-i386/property-x86-4b.s create mode 100644 ld/testsuite/ld-x86-64/property-x86-4a.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-4a.s create mode 100644 ld/testsuite/ld-x86-64/property-x86-4b.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-4b.s First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 52c192d..38462fe 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,130 @@ +2017-05-19 Maciej W. Rozycki <macro@imgtec.com> + + * elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype + and function. + (mips_elf64_canonicalize_dynamic_reloc): Likewise. + (mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the + actual number of internal relocations retrieved. Adjust + function description. + (bfd_elf64_canonicalize_reloc): Remove macro. + (bfd_elf64_canonicalize_dynamic_reloc): Likewise. + +2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> + + * archures.c (bfd_mach_sparc_v9m8): Define. + (bfd_mach_sparc_v8plusm8): Likewise. + (bfd_mach_sparc_v9_p): Adjust to M8. + (bfd_mach_sparc_64bit_p): Likewise. + * aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and + bfd_mach_sparc_v8plusm8. + * bfd-in2.h: Regenerated. + * cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and + sparc:v8plusm8. + * elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle + bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw + capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and + SHA3. + * elf32-sparc.c (elf32_sparc_final_write_processing): Handle + bfd_mach_sparc_v8plusm8. + +2017-05-19 Alan Modra <amodra@gmail.com> + + * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep + debug and special sections when no non-note alloc sections in an + object are kept. + +2017-05-18 Alan Modra <amodra@gmail.com> + + * arc-got.h: Don't compare boolean values against TRUE or FALSE. + * elf-m10300.c: Likewise. + * elf.c: Likewise. + * elf32-arc.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-nds32.c: Likewise. + * elf32-tilepro.c: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-riscv.c: Likewise. + * elfxx-tilegx.c: Likewise. + * mach-o.c: Likewise. + * peXXigen.c: Likewise. + * vms-alpha.c: Likewise. + * vms-lib.c: Likewise. + +2017-05-17 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/20882 + * elflink.c (elf_gc_mark_debug_section): New function. + (_bfd_elf_gc_mark_extra_sections): Mark any debug sections + referenced by kept debug sections. + +2017-05-16 Alan Modra <amodra@gmail.com> + + * elf-m10300.c: Rename occurrences of non_ir_ref. + * elf32-arm.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-cr16.c: Likewise. + * elf32-cris.c: Likewise. + * elf32-d10v.c: Likewise. + * elf32-dlx.c: Likewise. + * elf32-fr30.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i370.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-iq2000.c: Likewise. + * elf32-lm32.c: Likewise. + * elf32-m32c.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68k.c: Likewise. + * elf32-mcore.c: Likewise. + * elf32-metag.c: Likewise. + * elf32-microblaze.c: Likewise. + * elf32-moxie.c: Likewise. + * elf32-msp430.c: Likewise. + * elf32-mt.c: Likewise. + * elf32-nios2.c: Likewise. + * elf32-or1k.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-v850.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-mmix.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-sh64.c: Likewise. + * elf64-x86-64.c: Likewise. + * elflink.c: Likewise. + * elfnn-aarch64.c: Likewise. + * elfnn-ia64.c: Likewise. + * elfnn-riscv.c: Likewise. + * elfxx-mips.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-tilegx.c: Likewise. + * linker.c: Likewise. + +2017-05-16 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic. + * elflink.c (elf_link_add_object_symbols): Update to use + non_ir_ref_dynamic. + (elf_link_input_bfd): Test non_ir_ref_dynamic in addition to + non_ir_ref. + * linker.c (_bfd_generic_link_add_one_symbol): Likewise. + 2017-05-15 Maciej W. Rozycki <macro@imgtec.com> * elfxx-mips.c (print_mips_ases): Handle MIPS16e2 ASE. diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 9a5f7ce..3d38fda 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -738,6 +738,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch, || machine == bfd_mach_sparc_v8pluse || machine == bfd_mach_sparc_v8plusv || machine == bfd_mach_sparc_v8plusm + || machine == bfd_mach_sparc_v8plusm8 || machine == bfd_mach_sparc_v9 || machine == bfd_mach_sparc_v9a || machine == bfd_mach_sparc_v9b @@ -745,7 +746,8 @@ NAME (aout, machine_type) (enum bfd_architecture arch, || machine == bfd_mach_sparc_v9d || machine == bfd_mach_sparc_v9e || machine == bfd_mach_sparc_v9v - || machine == bfd_mach_sparc_v9m) + || machine == bfd_mach_sparc_v9m + || machine == bfd_mach_sparc_v9m8) arch_flags = M_SPARC; else if (machine == bfd_mach_sparc_sparclet) arch_flags = M_SPARCLET; diff --git a/bfd/arc-got.h b/bfd/arc-got.h index abf3815..b8a6d15 100644 --- a/bfd/arc-got.h +++ b/bfd/arc-got.h @@ -318,7 +318,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p, } - if (entry && entry->processed == FALSE) + if (entry && !entry->processed) { switch (entry->type) { @@ -427,7 +427,7 @@ create_got_dynrelocs_for_single_entry (struct got_entry *list, bfd_vma got_offset = list->offset; if (list->type == GOT_NORMAL - && list->created_dyn_relocation == FALSE) + && !list->created_dyn_relocation) { if (bfd_link_pic (info) && h != NULL @@ -446,7 +446,7 @@ create_got_dynrelocs_for_single_entry (struct got_entry *list, list->created_dyn_relocation = TRUE; } else if (list->existing_entries != TLS_GOT_NONE - && list->created_dyn_relocation == FALSE) + && !list->created_dyn_relocation) { /* TODO TLS: This is not called for local symbols. In order to correctly implement TLS, this should also diff --git a/bfd/archures.c b/bfd/archures.c index c6e7152..2fefec5 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -147,9 +147,11 @@ DESCRIPTION .#define bfd_mach_sparc_v9v 18 {* with OSA2011 and T4 and IMA and FJMAU add'ns. *} .#define bfd_mach_sparc_v8plusm 19 {* with OSA2015 and M7 add'ns. *} .#define bfd_mach_sparc_v9m 20 {* with OSA2015 and M7 add'ns. *} +.#define bfd_mach_sparc_v8plusm8 21 {* with OSA2017 and M8 add'ns. *} +.#define bfd_mach_sparc_v9m8 22 {* with OSA2017 and M8 add'ns. *} .{* Nonzero if MACH has the v9 instruction set. *} .#define bfd_mach_sparc_v9_p(mach) \ -. ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \ +. ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \ . && (mach) != bfd_mach_sparc_sparclite_le) .{* Nonzero if MACH is a 64 bit sparc architecture. *} .#define bfd_mach_sparc_64bit_p(mach) \ @@ -159,7 +161,8 @@ DESCRIPTION . && (mach) != bfd_mach_sparc_v8plusd \ . && (mach) != bfd_mach_sparc_v8pluse \ . && (mach) != bfd_mach_sparc_v8plusv \ -. && (mach) != bfd_mach_sparc_v8plusm) +. && (mach) != bfd_mach_sparc_v8plusm \ +. && (mach) != bfd_mach_sparc_v8plusm8) . bfd_arch_spu, {* PowerPC SPU *} .#define bfd_mach_spu 256 . bfd_arch_mips, {* MIPS Rxxxx *} diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8617881..ae2fceb 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2004,9 +2004,11 @@ enum bfd_architecture #define bfd_mach_sparc_v9v 18 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ #define bfd_mach_sparc_v8plusm 19 /* with OSA2015 and M7 add'ns. */ #define bfd_mach_sparc_v9m 20 /* with OSA2015 and M7 add'ns. */ +#define bfd_mach_sparc_v8plusm8 21 /* with OSA2017 and M8 add'ns. */ +#define bfd_mach_sparc_v9m8 22 /* with OSA2017 and M8 add'ns. */ /* Nonzero if MACH has the v9 instruction set. */ #define bfd_mach_sparc_v9_p(mach) \ - ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \ + ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \ && (mach) != bfd_mach_sparc_sparclite_le) /* Nonzero if MACH is a 64 bit sparc architecture. */ #define bfd_mach_sparc_64bit_p(mach) \ @@ -2016,7 +2018,8 @@ enum bfd_architecture && (mach) != bfd_mach_sparc_v8plusd \ && (mach) != bfd_mach_sparc_v8pluse \ && (mach) != bfd_mach_sparc_v8plusv \ - && (mach) != bfd_mach_sparc_v8plusm) + && (mach) != bfd_mach_sparc_v8plusm \ + && (mach) != bfd_mach_sparc_v8plusm8) bfd_arch_spu, /* PowerPC SPU */ #define bfd_mach_spu 256 bfd_arch_mips, /* MIPS Rxxxx */ diff --git a/bfd/cpu-sparc.c b/bfd/cpu-sparc.c index ff843ec..a6f54e2 100644 --- a/bfd/cpu-sparc.c +++ b/bfd/cpu-sparc.c @@ -307,6 +307,36 @@ static const bfd_arch_info_type arch_info_struct[] = bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, + &arch_info_struct[19], + }, + { + 32, /* bits in a word */ + 32, /* bits in an address */ + 8, /* bits in a byte */ + bfd_arch_sparc, + bfd_mach_sparc_v8plusm8, + "sparc", + "sparc:v8plusm8", + 3, + FALSE, + bfd_default_compatible, + bfd_default_scan, + bfd_arch_default_fill, + &arch_info_struct[20], + }, + { + 64, /* bits in a word */ + 64, /* bits in an address */ + 8, /* bits in a byte */ + bfd_arch_sparc, + bfd_mach_sparc_v9m8, + "sparc", + "sparc:v9m8", + 3, + FALSE, + bfd_default_compatible, + bfd_default_scan, + bfd_arch_default_fill, 0, } }; diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index f9d8089..e59f083 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -1094,7 +1094,7 @@ mn10300_elf_check_relocs (bfd *abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } r_type = ELF32_R_TYPE (rel->r_info); @@ -1520,7 +1520,7 @@ mn10300_elf_final_link_relocate (reloc_howto_type *howto, /* Do not generate relocs when an R_MN10300_32 has been used with an R_MN10300_SYM_DIFF to compute a difference of two symbols. */ - && is_sym_diff_reloc == FALSE + && !is_sym_diff_reloc /* Also, do not generate a reloc when the symbol associated with the R_MN10300_32 reloc is absolute - there is no need for a run time computation in this case. */ diff --git a/bfd/elf.c b/bfd/elf.c index a08e0f8..863bd61 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -7358,7 +7358,7 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd) for (section = obfd->sections; section != NULL; section = section->next) { - if (section->segment_mark == FALSE) + if (!section->segment_mark) goto rewrite; else section->segment_mark = FALSE; diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index b00207e..3e99cab 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -1259,7 +1259,7 @@ arc_do_relocation (bfd_byte * contents, struct elf_link_hash_table *htab ATTRIBUTE_UNUSED = elf_hash_table (info); bfd_reloc_status_type flag; - if (reloc_data.should_relocate == FALSE) + if (!reloc_data.should_relocate) return bfd_reloc_ok; switch (reloc_data.howto->size) @@ -1464,9 +1464,9 @@ elf_arc_relocate_section (bfd * output_bfd, h2 = elf_link_hash_lookup (elf_hash_table (info), "__SDATA_BEGIN__", FALSE, FALSE, TRUE); - if (reloc_data.sdata_begin_symbol_vma_set == FALSE - && h2 != NULL && h2->root.type != bfd_link_hash_undefined - && h2->root.u.def.section->output_section != NULL) + if (!reloc_data.sdata_begin_symbol_vma_set + && h2 != NULL && h2->root.type != bfd_link_hash_undefined + && h2->root.u.def.section->output_section != NULL) /* TODO: Verify this condition. */ { reloc_data.sdata_begin_symbol_vma = @@ -1784,7 +1784,7 @@ elf_arc_relocate_section (bfd * output_bfd, bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); - if (relocate == FALSE) + if (!relocate) continue; } break; @@ -1793,7 +1793,7 @@ elf_arc_relocate_section (bfd * output_bfd, } if (is_reloc_SDA_relative (howto) - && (reloc_data.sdata_begin_symbol_vma_set == FALSE)) + && !reloc_data.sdata_begin_symbol_vma_set) { _bfd_error_handler ("Error: Linker symbol __SDATA_BEGIN__ not found"); @@ -1907,8 +1907,8 @@ elf_arc_check_relocs (bfd * abfd, howto = arc_elf_howto (r_type); if (dynobj == NULL - && (is_reloc_for_GOT (howto) == TRUE - || is_reloc_for_TLS (howto) == TRUE)) + && (is_reloc_for_GOT (howto) + || is_reloc_for_TLS (howto))) { dynobj = elf_hash_table (info)->dynobj = abfd; if (! _bfd_elf_create_got_section (abfd, info)) @@ -1985,7 +1985,7 @@ elf_arc_check_relocs (bfd * abfd, break; } - if (is_reloc_for_PLT (howto) == TRUE) + if (is_reloc_for_PLT (howto)) { if (h == NULL) continue; @@ -1994,8 +1994,8 @@ elf_arc_check_relocs (bfd * abfd, } /* Add info to the symbol got_entry_list. */ - if (is_reloc_for_GOT (howto) == TRUE - || is_reloc_for_TLS (howto) == TRUE) + if (is_reloc_for_GOT (howto) + || is_reloc_for_TLS (howto)) { arc_fill_got_info_for_reloc ( arc_got_entry_type_for_reloc (howto), diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 23a02c0..1725c22 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -14556,7 +14556,7 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } } diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c index ff1bcc6..b3e09bd 100644 --- a/bfd/elf32-bfin.c +++ b/bfd/elf32-bfin.c @@ -329,11 +329,11 @@ bfin_bfd_reloc (bfd *abfd, /* Here the variable relocation holds the final address of the symbol we are relocating against, plus any addend. */ - if (howto->pc_relative == TRUE) + if (howto->pc_relative) { relocation -= input_section->output_section->vma + input_section->output_offset; - if (howto->pcrel_offset == TRUE) + if (howto->pcrel_offset) relocation -= reloc_entry->address; } @@ -1191,7 +1191,7 @@ bfin_check_relocs (bfd * abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } switch (ELF32_R_TYPE (rel->r_info)) diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c index 92aa0c8..c36388e 100644 --- a/bfd/elf32-cr16.c +++ b/bfd/elf32-cr16.c @@ -738,7 +738,7 @@ cr16_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } /* Some relocs require a global offset table. */ diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index d4bbceb..83c4101 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -3178,7 +3178,7 @@ cris_elf_check_relocs (bfd *abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } r_type = ELF32_R_TYPE (rel->r_info); diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c index 6b6fb34..d284d4f 100644 --- a/bfd/elf32-d10v.c +++ b/bfd/elf32-d10v.c @@ -294,7 +294,7 @@ elf32_d10v_check_relocs (bfd *abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } switch (ELF32_R_TYPE (rel->r_info)) diff --git a/bfd/elf32-dlx.c b/bfd/elf32-dlx.c index 965d866..b12d24a 100644 --- a/bfd/elf32-dlx.c +++ b/bfd/elf32-dlx.c @@ -454,7 +454,7 @@ elf32_dlx_check_relocs (bfd *abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } switch (ELF32_R_TYPE (rel->r_info)) diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c index f668074..94070d8 100644 --- a/bfd/elf32-fr30.c +++ b/bfd/elf32-fr30.c @@ -673,7 +673,7 @@ fr30_elf_check_relocs (bfd *abfd, /* PR15323, ref flags aren't set for references in the same object. */ - h->root.non_ir_ref = 1; + h->root.non_ir_ref_regular = 1; } switch (ELF32_R_TYPE (rel->r_info)) diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index d4b7727..ef609ff 100644 hooks/post-receive -- Repository for Project Archer.
The branch, users/jkratoch/indexcxx has been updated via 480030250901adfbd6e8080e87143fc9959f372e (commit) via 60fd657792228e3eb59e87c26fcdeccbfe94d224 (commit) via f7241d4f27cd59357a75bf802e9ffa7d95036deb (commit) via d489d81d0934c4fda8c8aa68fbec1b1315cf8df0 (commit) via 6e92fed5946111a76064feb8a2a184d224deae1a (commit) via 590b87ffa386ea403e2cb61525c6aafef77097a2 (commit) via 6e3f3473e2136e77d6346d5bca894c38e5389116 (commit) via 8e7f04f17c60069143078dafd3d3eb8cd15f10fb (commit) via 575dcd27f8be6ecd3f89539a8210a8d3f0a271b1 (commit) via 903b2a564d78b8e47f2460a2a452f442e6e5e979 (commit) via 176efed15cabb932a7e9fb2c5e6ef0753e8351a0 (commit) via 04ef582ace91cad765d056cc95624478e0421144 (commit) via 25f94347373b1b6f4bfc79eeb38e79d383195779 (commit) via 9a6465c207ed4e34be92741316d78fc00f0836e4 (commit) via 3c0367d0e2df21717b7345a1ccadef39183457ab (commit) via e11b3cdc565c5e86e43ef79d25fc5e8b88162ec1 (commit) via 0f068fb5e5b65038c3ded3cfd2a4b8805196956c (commit) via ca49a96781f723d43ec49471cbbb50aa511d063e (commit) via e6cf65f283b8be44014fad0ad0aebfbcc71fceac (commit) from 3c31c689159535ec278253668e1f59155f18da2b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 480030250901adfbd6e8080e87143fc9959f372e Merge: 3c31c68 60fd657 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Wed May 24 09:18:58 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 60fd657792228e3eb59e87c26fcdeccbfe94d224 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Wed May 24 00:00:45 2017 +0000 Automatic date update in version.in commit f7241d4f27cd59357a75bf802e9ffa7d95036deb Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 18 10:49:44 2017 -0700 Use mips_regnum instead of constants for FreeBSD/mips register operations. gdb/ChangeLog: * mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove. (MIPS_FP0_REGNUM): Remove. (MIPS_FSR_REGNUM): Remove. (mips_fbsd_supply_fpregs): Use mips_regnum. (mips_fbsd_supply_gregs): Likewise. (mips_fbsd_collect_fpregs): Likewise. (mips_fbsd_collect_gregs): Likewise. commit d489d81d0934c4fda8c8aa68fbec1b1315cf8df0 Author: John Baldwin <jhb@FreeBSD.org> Date: Tue Apr 18 10:49:44 2017 -0700 Cleanups to FreeBSD/mips native register operations. Compare against the "raw" PC register number instead of the cooked register number when determining if a register was handled by PT_GETREGS. Previously the register fetch/store operations only tried PT_GETREGS to fetch any individual register. The result was that fetching or storing an individual register not covered by PT_GETREGS (such as floating point registers) did not work. While here, remove an early exit to simplify the code flow from the PT_GETREGS / PT_SETREGS case, and add a getfpregs_supplies similar to getregs_supplies to describe the registers supplied by PT_GETFPREGS and PT_SETFPREGS. gdb/ChangeLog: * mips-fbsd-nat.c (getregs_supplies): Fix upper bound comparison. (getpfpregs_supplies): New function. (mips_fbsd_fetch_inferior_registers): Remove early exit and use getfpregs_supplies. (mips_fbsd_store_inferior_registers): Likewise. commit 6e92fed5946111a76064feb8a2a184d224deae1a Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 23 06:49:35 2017 -0700 x86: Update notrackbad tests for non-ELF targets * gas/testsuite/gas/i386/notrackbad.l: Updated for non-ELF targets. * gas/testsuite/gas/i386/x86-64-notrackbad.l: Likewise. commit 590b87ffa386ea403e2cb61525c6aafef77097a2 Author: Alan Modra <amodra@gmail.com> Date: Mon May 22 21:31:34 2017 +0930 PR21503, Gold doesn't create linker stub symbols on ppc64 PR 21503 * options.h: Add --emit-stub-syms option. * powerpc.cc (object_id): New. (Powerpc_relobj): Add uniq_ and accessor. Sort variables for better packing. (Powerpc_dynobj): Sort variables for better packing. (Target_powerpc::define_local): New function. (Target_powerpc::group_sections): Pass stub table size to Stub_table constructor. (Target_powerpc::do_relax): Define stub and glink symbols. (Stub_table): Add uniq_ variable, and id param to constructor. (Stub_table::Plt_stub_ent): Add indx_ variable. (Stub_table::Branch_stub_entries): Move typedef earlier. (Stub_table::branch_stub_size): Replace "to" parameter with a Branch_stub_entries iterator. (Stub_table::add_long_branch_entry): Adjust to suit. (Stub_table::add_plt_call_entry): Set indx_. (Stub_table::define_stub_syms): New function. commit 6e3f3473e2136e77d6346d5bca894c38e5389116 Author: claziss <claziss@synopsys.com> Date: Tue May 23 12:18:11 2017 +0200 [ARC] Reformat error messages. gas/ 2017-05-23 Claudiu Zissulescu <claziss@synopsys.com> * config/tc-arc.c (md_apply_fix): Use as_bad_where. (assemble_insn): Use as_bad. commit 8e7f04f17c60069143078dafd3d3eb8cd15f10fb Author: claziss <claziss@synopsys.com> Date: Tue May 23 12:18:10 2017 +0200 [ARC] Fix fall through warnings. bfd/ 2017-05-23 Dilian Palauzov <git-dpa@aegee.org> * elf32-arc.c (arc_elf_merge_attributes): Add fall through comments. commit 575dcd27f8be6ecd3f89539a8210a8d3f0a271b1 Author: claziss <claziss@synopsys.com> Date: Tue May 23 12:18:10 2017 +0200 [ARC] Update MAX_INSN_FLGS. It is required to parse instructions like ldb.x.a.di. include/ 2017-05-23 Claudiu Zissulescu <claziss@synopsys.com> * opcode/arc.h (MAX_INSN_FLGS): Update to 4. commit 903b2a564d78b8e47f2460a2a452f442e6e5e979 Author: GDB Administrator <gdbadmin@sourceware.org> Date: Tue May 23 00:00:37 2017 +0000 Automatic date update in version.in commit 176efed15cabb932a7e9fb2c5e6ef0753e8351a0 Author: Andrew Burgess <andrew.burgess@embecosm.com> Date: Mon May 15 10:11:57 2017 +0100 gdb: Document vMustReplyEmpty remote packet Add mention of the vMustReplyEmpty to the remote serial protocol documentation. It is important that this packet be treated in the same fashion as any other unknown 'v' packet, and I have tried to reflect this in the description of the packet, it is not simply the case that we _must_ return the empty string for this packet. As the intention is that we should treat this packet as unknown then an argument could be made that we should not document it, however, for someone implementing a gdbserver from scratch, seeing an undocumented packet arrive from gdb is confusing, and will probably cause them to have to read the code in order to check how this packet should be handled, which is not ideal. gdb/doc/ChangeLog: * gdb.texinfo (Packets): Document vMustReplyEmpty packet. commit 04ef582ace91cad765d056cc95624478e0421144 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon May 22 11:02:46 2017 -0700 x86: Add NOTRACK prefix support For register indirect branches, NOTRACK prefix (0x3e), which is also the DS segment register prefix, can be used to ignore the CET indirect branch track. gas/ * config/tc-i386.c (REX_PREFIX): Changed to 7. (NOTRACK_PREFIX): New. (MAX_PREFIXES): Changed to 8. (_i386_insn): Add notrack_prefix. (PREFIX_GROUP): Add PREFIX_DS. (add_prefix): Return PREFIX_DS for DS_PREFIX_OPCODE. (md_assemble): Check if NOTRACK prefix is supported. (parse_insn): Set notrack_prefix and issue an error for other prefixes after NOTRACK prefix. * testsuite/gas/i386/i386.exp: Run tests for NOTRACK prefix. * testsuite/gas/i386/notrack-intel.d: New file. * testsuite/gas/i386/notrack.d: Likewise. * testsuite/gas/i386/notrack.s: Likewise. * testsuite/gas/i386/notrackbad.l: Likewise. * testsuite/gas/i386/notrackbad.s: Likewise. * testsuite/gas/i386/x86-64-notrack-intel.d: Likewise. * testsuite/gas/i386/x86-64-notrack.d: Likewise. * testsuite/gas/i386/x86-64-notrack.s: Likewise. * testsuite/gas/i386/x86-64-notrackbad.l: Likewise. * testsuite/gas/i386/x86-64-notrackbad.s: Likewise. include/ * include/opcode/i386.h (NOTRACK_PREFIX_OPCODE): New. opcodes/ * i386-dis.c (NOTRACK_Fixup): New. (NOTRACK): Likewise. (NOTRACK_PREFIX): Likewise. (last_active_prefix): Likewise. (reg_table): Use NOTRACK on indirect call and jmp. (ckprefix): Set last_active_prefix. (prefix_name): Return "notrack" for NOTRACK_PREFIX. * i386-gen.c (opcode_modifiers): Add NoTrackPrefixOk. * i386-opc.h (NoTrackPrefixOk): New. (i386_opcode_modifier): Add notrackprefixok. * i386-opc.tbl: Add NoTrackPrefixOk to indirect call and jmp. Add notrack. * i386-tbl.h: Regenerated. commit 25f94347373b1b6f4bfc79eeb38e79d383195779 Author: H.J. Lu <hjl.tools@gmail.com> Date: Mon May 22 07:41:16 2017 -0700 x86-64: Use dynobj instead of htab->elf.dynobj * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use dynobj instead of htab->elf.dynobj. commit 9a6465c207ed4e34be92741316d78fc00f0836e4 Author: Jiong Wang <jiong.wang@arm.com> Date: Mon May 22 09:50:29 2017 +0100 [AArch64, ld] Support ILP32 triplet aarch64*-linux-gnu_ilp32 This patch allows AArch64 LD defaulting to ILP32 if it is configured with aarch64*-linux-gnu_ilp32. ld/ * configure.tgt: Set "targ_emul" to "aarch64linux32b" for aarch64_be-*-linux-gnu_ilp32. Set "targ_emul" to "aarch64linux32" for aarch64-*-linux-gnu_ilp32. commit 3c0367d0e2df21717b7345a1ccadef39183457ab Author: Jiong Wang <jiong.wang@arm.com> Date: Mon May 22 09:50:19 2017 +0100 [AArch64, gas] Support ILP32 triplet aarch64*-linux-gnu_ilp32 This patch allows AArch64 GAS defaulting to ILP32 if it is configured with aarch64*-linux-gnu_ilp32. "md_after_parse_args" is implemented to update ABI into ILP32 if DEFAULT_ARCH is "aarch64:32". gas/ * configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64". Recognize the new triplet name aarch64*-linux-gnu_ilp32. * configure.ac: Output DEFAULT_ARCH macro for AArch64. * configure: Regenerate. * config/tc-aarch64.h (aarch64_after_parse_args): New declaration. (md_after_parse_args): New define. * config/tc-aarch64.c (aarch64_abi_type): New enumeration AARCH64_ABI_NONE. (DEFAULT_ARCH): New define. (aarch64_abi): Set default value to AARCH64_ABI_NONE. (aarch64_after_parse_args): New function. commit e11b3cdc565c5e86e43ef79d25fc5e8b88162ec1 Author: Pedro Alves <palves@redhat.com> Date: Mon May 22 11:58:19 2017 +0100 gdb: Add John Baldwin as FreeBSD Maintainer gdb/ChangeLog: 2017-05-22 Pedro Alves <palves@redhat.com> * MAINTAINERS (Host/Native): Add John Baldwin as FreeBSD maintainer. commit 0f068fb5e5b65038c3ded3cfd2a4b8805196956c Author: Alan Hayward <alan.hayward@arm.com> Date: Mon May 22 09:23:22 2017 +0100 Add PPC_MAX_REGISTER_SIZE gdb/ * ppc-linux-nat.c (fetch_register): Use PPC_MAX_REGISTER_SIZE. (store_register): Likewise. * ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Likewise. (get_decimal_float_return_value): Likewise. (do_ppc_sysv_return_value): Likewise. (ppc64_sysv_abi_push_integer): Likewise. (ppc64_sysv_abi_push_freg): Likewise. (ppc64_sysv_abi_return_value_base): Likewise. (ppc64_sysv_abi_return_value): Likewise. * rs6000-aix-tdep.c (rs6000_push_dummy_call): Likewise. * rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call): Likewise. * rs6000-nat.c: Likewise. * rs6000-tdep.c (rs6000_register_to_value): Likewise. (rs6000_value_to_register): Likewise. * ppc-tdep.h (PPC_MAX_REGISTER_SIZE): Add. commit ca49a96781f723d43ec49471cbbb50aa511d063e Author: GDB Administrator <gdbadmin@sourceware.org> Date: Mon May 22 00:00:35 2017 +0000 Automatic date update in version.in commit e6cf65f283b8be44014fad0ad0aebfbcc71fceac Author: Tom Tromey <tom@tromey.com> Date: Sun May 21 17:00:10 2017 -0600 Print Rust unsized array types a bit more nicely It's a bit difficult to create an unsized array type in Rust, but if you do, right now ptype will show something like "[u8; ]". It really should print "[u8]", though, which is what this patch implements. This is part of PR 21466. Built and regtested on x86-64 Fedora 25. I'm checking this in. ChangeLog 2017-05-21 Tom Tromey <tom@tromey.com> PR rust/21466: * rust-lang.c (rust_print_type) <TYPE_CODE_ARRAY>: Print unsized arrays as "[T]", not "[T; ]". testsuite/ChangeLog 2017-05-21 Tom Tromey <tom@tromey.com> PR rust/21466: * gdb.rust/unsized.exp: New file. * gdb.rust/unsized.rs: New file. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 10 + bfd/elf32-arc.c | 4 + bfd/elf64-x86-64.c | 3 +- bfd/version.h | 2 +- gas/ChangeLog | 48 + gas/config/tc-aarch64.c | 30 +- gas/config/tc-aarch64.h | 3 + gas/config/tc-arc.c | 21 +- gas/config/tc-i386.c | 75 +- gas/configure | 2 +- gas/configure.ac | 2 +- gas/configure.tgt | 9 +- gas/testsuite/gas/i386/i386.exp | 6 + gas/testsuite/gas/i386/notrack-intel.d | 29 + gas/testsuite/gas/i386/notrack.d | 28 + gas/testsuite/gas/i386/notrack.s | 35 + gas/testsuite/gas/i386/notrackbad.l | 53 + gas/testsuite/gas/i386/notrackbad.s | 22 + gas/testsuite/gas/i386/x86-64-notrack-intel.d | 30 + gas/testsuite/gas/i386/x86-64-notrack.d | 29 + gas/testsuite/gas/i386/x86-64-notrack.s | 40 + gas/testsuite/gas/i386/x86-64-notrackbad.l | 53 + gas/testsuite/gas/i386/x86-64-notrackbad.s | 22 + gdb/ChangeLog | 47 + gdb/MAINTAINERS | 1 + gdb/doc/ChangeLog | 4 + gdb/doc/gdb.texinfo | 13 + gdb/mips-fbsd-nat.c | 24 +- gdb/mips-fbsd-tdep.c | 29 +- gdb/ppc-linux-nat.c | 4 +- gdb/ppc-sysv-tdep.c | 34 +- gdb/ppc-tdep.h | 3 + gdb/rs6000-aix-tdep.c | 6 +- gdb/rs6000-lynx178-tdep.c | 6 +- gdb/rs6000-nat.c | 4 +- gdb/rs6000-tdep.c | 4 +- gdb/rust-lang.c | 5 +- gdb/testsuite/ChangeLog | 6 + gdb/testsuite/gdb.rust/unsized.exp | 35 + gdb/testsuite/gdb.rust/unsized.rs | 33 + gold/ChangeLog | 21 + gold/options.h | 4 + gold/powerpc.cc | 192 +- include/ChangeLog | 8 + include/opcode/arc.h | 2 +- include/opcode/i386.h | 1 + ld/ChangeLog | 6 + ld/configure.tgt | 8 + opcodes/ChangeLog | 16 + opcodes/i386-dis.c | 44 +- opcodes/i386-gen.c | 1 + opcodes/i386-opc.h | 3 + opcodes/i386-opc.tbl | 15 +- opcodes/i386-tbl.h |21299 +++++++++++++------------ 54 files changed, 11660 insertions(+), 10774 deletions(-) create mode 100644 gas/testsuite/gas/i386/notrack-intel.d create mode 100644 gas/testsuite/gas/i386/notrack.d create mode 100644 gas/testsuite/gas/i386/notrack.s create mode 100644 gas/testsuite/gas/i386/notrackbad.l create mode 100644 gas/testsuite/gas/i386/notrackbad.s create mode 100644 gas/testsuite/gas/i386/x86-64-notrack-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-notrack.d create mode 100644 gas/testsuite/gas/i386/x86-64-notrack.s create mode 100644 gas/testsuite/gas/i386/x86-64-notrackbad.l create mode 100644 gas/testsuite/gas/i386/x86-64-notrackbad.s create mode 100644 gdb/testsuite/gdb.rust/unsized.exp create mode 100644 gdb/testsuite/gdb.rust/unsized.rs First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 38462fe..4d15e1a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2017-05-23 Dilian Palauzov <git-dpa@aegee.org> + + * elf32-arc.c (arc_elf_merge_attributes): Add fall through + comments. + +2017-05-22 H.J. Lu <hongjiu.lu@intel.com> + + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use + dynobj instead of htab->elf.dynobj. + 2017-05-19 Maciej W. Rozycki <macro@imgtec.com> * elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 3e99cab..ef0d893 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -728,9 +728,11 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info) case Tag_ARC_ABI_pic: tagname = "PIC"; + /* fall through */ case Tag_ARC_ABI_sda: if (!tagname) tagname = "SDA"; + /* fall through */ case Tag_ARC_ABI_tls: { const char *tagval[] = { "Absent", "MWDT", "GNU" }; @@ -756,9 +758,11 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info) case Tag_ARC_ABI_double_size: tagname = "Double size"; + /* fall through */ case Tag_ARC_ABI_enumsize: if (!tagname) tagname = "Enum size"; + /* fall through */ case Tag_ARC_ABI_exceptions: if (!tagname) tagname = "ABI exceptions"; diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 00cf70a..7beb78e 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -7245,8 +7245,7 @@ error_alignment: /* MPX PLT is supported only for non-NaCl target in 64-bit mode and is needed only for lazy binding. */ if (lazy_plt - && info->bndplt - && ABI_64_P (htab->elf.dynobj)) + && info->bndplt && ABI_64_P (dynobj)) { /* Create the second PLT for Intel MPX support. */ sec = bfd_make_section_anyway_with_flags (dynobj, diff --git a/bfd/version.h b/bfd/version.h index 10ba349..e8c13d4 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20170521 +#define BFD_VERSION_DATE 20170524 #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/gas/ChangeLog b/gas/ChangeLog index 8fff0e4..2e7bb8d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,51 @@ +2017-05-23 H.J. Lu <hongjiu.lu@intel.com> + + * gas/testsuite/gas/i386/notrackbad.l: Updated for non-ELF + targets. + * gas/testsuite/gas/i386/x86-64-notrackbad.l: Likewise. + +2017-05-23 Claudiu Zissulescu <claziss@synopsys.com> + + * config/tc-arc.c (md_apply_fix): Use as_bad_where. + (assemble_insn): Use as_bad. + +2017-05-22 H.J. Lu <hongjiu.lu@intel.com> + + * config/tc-i386.c (REX_PREFIX): Changed to 7. + (NOTRACK_PREFIX): New. + (MAX_PREFIXES): Changed to 8. + (_i386_insn): Add notrack_prefix. + (PREFIX_GROUP): Add PREFIX_DS. + (add_prefix): Return PREFIX_DS for DS_PREFIX_OPCODE. + (md_assemble): Check if NOTRACK prefix is supported. + (parse_insn): Set notrack_prefix and issue an error for + other prefixes after NOTRACK prefix. + * testsuite/gas/i386/i386.exp: Run tests for NOTRACK prefix. + * testsuite/gas/i386/notrack-intel.d: New file. + * testsuite/gas/i386/notrack.d: Likewise. + * testsuite/gas/i386/notrack.s: Likewise. + * testsuite/gas/i386/notrackbad.l: Likewise. + * testsuite/gas/i386/notrackbad.s: Likewise. + * testsuite/gas/i386/x86-64-notrack-intel.d: Likewise. + * testsuite/gas/i386/x86-64-notrack.d: Likewise. + * testsuite/gas/i386/x86-64-notrack.s: Likewise. + * testsuite/gas/i386/x86-64-notrackbad.l: Likewise. + * testsuite/gas/i386/x86-64-notrackbad.s: Likewise. + +2017-05-22 Jiong Wang <jiong.wang@arm.com> + + * configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64". + Recognize the new triplet name aarch64*-linux-gnu_ilp32. + * configure.ac: Output DEFAULT_ARCH macro for AArch64. + * configure: Regenerate. + * config/tc-aarch64.h (aarch64_after_parse_args): New declaration. + (md_after_parse_args): New define. + * config/tc-aarch64.c (aarch64_abi_type): New enumeration + AARCH64_ABI_NONE. + (DEFAULT_ARCH): New define. + (aarch64_abi): Set default value to AARCH64_ABI_NONE. + (aarch64_after_parse_args): New function. + 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * config/tc-sparc.c (sparc_arch_table): Entries for `sparc6', diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 72b98fd..cdb2903 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -62,12 +62,20 @@ static symbolS *GOT_symbol; /* Which ABI to use. */ enum aarch64_abi_type { - AARCH64_ABI_LP64 = 0, - AARCH64_ABI_ILP32 = 1 + AARCH64_ABI_NONE = 0, + AARCH64_ABI_LP64 = 1, + AARCH64_ABI_ILP32 = 2 }; +#ifndef DEFAULT_ARCH +#define DEFAULT_ARCH "aarch64" +#endif + +/* DEFAULT_ARCH is initialized in gas/configure.tgt. */ +static const char *default_arch = DEFAULT_ARCH; + /* AArch64 ABI for the output file. */ -static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_LP64; +static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_NONE; /* When non-zero, program to a 32-bit model, in which the C data types int, long and all pointer types are 32-bit objects (ILP32); or to a @@ -7975,6 +7983,22 @@ aarch64_force_relocation (struct fix *fixp) #ifdef OBJ_ELF +/* Implement md_after_parse_args. This is the earliest time we need to decide + ABI. If no -mabi specified, the ABI will be decided by target triplet. */ + +void +aarch64_after_parse_args (void) +{ + if (aarch64_abi != AARCH64_ABI_NONE) + return; + + /* DEFAULT_ARCH will have ":32" extension if it's configured for ILP32. */ + if (strlen (default_arch) > 7 && strcmp (default_arch + 7, ":32") == 0) + aarch64_abi = AARCH64_ABI_ILP32; + else + aarch64_abi = AARCH64_ABI_LP64; +} + const char * elf64_aarch64_target_format (void) { diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index 5bf1399..4aa3494 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -192,6 +192,9 @@ struct aarch64_segment_info_type #define tc_regname_to_dw2regnum tc_aarch64_regname_to_dw2regnum #define tc_cfi_frame_initial_instructions tc_aarch64_frame_initial_instructions +extern void aarch64_after_parse_args (void); +#define md_after_parse_args() aarch64_after_parse_args () + #else /* Not OBJ_ELF. */ #define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_" #endif diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c index a092892..173a1a0 100644 --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -2966,8 +2966,10 @@ md_apply_fix (fixS *fixP, break; default: if ((int) fixP->fx_r_type < 0) - as_fatal (_("PC relative relocation not allowed for (internal) type %d"), - fixP->fx_r_type); + as_bad_where (fixP->fx_file, fixP->fx_line, + _("PC relative relocation not allowed for (internal)" + " type %d"), + fixP->fx_r_type); break; } } @@ -3942,9 +3944,8 @@ assemble_insn (const struct arc_opcode *opcode, { case O_plt: if (opcode->insn_class == JUMP) - as_bad_where (frag_now->fr_file, frag_now->fr_line, - _("Unable to use @plt relocation for insn %s"), - opcode->name); + as_bad (_("Unable to use @plt relocation for insn %s"), + opcode->name); needGOTSymbol = TRUE; reloc = find_reloc ("plt", opcode->name, pflags, nflg, @@ -3962,9 +3963,8 @@ assemble_insn (const struct arc_opcode *opcode, reloc = ARC_RELOC_TABLE (t->X_md)->reloc; if (arc_opcode_len (opcode) == 2 || opcode->insn_class == JUMP) - as_bad_where (frag_now->fr_file, frag_now->fr_line, - _("Unable to use @pcl relocation for insn %s"), - opcode->name); + as_bad (_("Unable to use @pcl relocation for insn %s"), + opcode->name); } else { @@ -4130,8 +4130,9 @@ assemble_insn (const struct arc_opcode *opcode, /* Check if the current instruction is legally used. */ if (arc_last_insns[1].has_delay_slot && is_br_jmp_insn_p (arc_last_insns[0].opcode)) - as_bad_where (frag_now->fr_file, frag_now->fr_line, - _("A jump/branch instruction in delay slot.")); + as_bad (_("Insn %s has a jump/branch instruction %s in its delay slot."), + arc_last_insns[1].opcode->name, + arc_last_insns[0].opcode->name); } void diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 6250793..6c1091e 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -66,8 +66,11 @@ #define HLE_PREFIX REP_PREFIX #define BND_PREFIX REP_PREFIX #define LOCK_PREFIX 5 -#define REX_PREFIX 6 /* must come last. */ -#define MAX_PREFIXES 7 /* max prefixes per opcode */ +/* Only one of NOTRACK_PREFIX and SEG_PREFIX can be used at the same + time. */ +#define NOTRACK_PREFIX 6 +#define REX_PREFIX 7 /* must come last. */ +#define MAX_PREFIXES 8 /* max prefixes per opcode */ /* we define the syntax here (modulo base,index,scale syntax) */ #define REGISTER_PREFIX '%' @@ -388,6 +391,9 @@ struct _i386_insn /* Have BND prefix. */ const char *bnd_prefix; + /* Have NOTRACK prefix. */ + const char *notrack_prefix; + /* Error message. */ enum i386_error error; }; @@ -2144,6 +2150,7 @@ enum PREFIX_GROUP PREFIX_EXIST = 0, PREFIX_LOCK, PREFIX_REP, + PREFIX_DS, PREFIX_OTHER }; @@ -2152,7 +2159,8 @@ enum PREFIX_GROUP same class already exists. b. PREFIX_LOCK if lock prefix is added. c. PREFIX_REP if rep/repne prefix is added. - d. PREFIX_OTHER if other prefix is added. + d. PREFIX_DS if ds prefix is added. + e. PREFIX_OTHER if other prefix is added. */ static enum PREFIX_GROUP @@ -2177,8 +2185,10 @@ add_prefix (unsigned int prefix) default: abort (); - case CS_PREFIX_OPCODE: case DS_PREFIX_OPCODE: + ret = PREFIX_DS; + /* Fall through. */ + case CS_PREFIX_OPCODE: case ES_PREFIX_OPCODE: case FS_PREFIX_OPCODE: case GS_PREFIX_OPCODE: @@ -3702,6 +3712,15 @@ md_assemble (char *line) if (i.bnd_prefix && !i.tm.opcode_modifier.bndprefixok) as_bad (_("expecting valid branch instruction after `bnd'")); + /* Check NOTRACK prefix. */ + if (i.notrack_prefix + && (!i.tm.opcode_modifier.notrackprefixok + || i.reg_operands != 1 + || i.disp_operands != 0 + || i.mem_operands != 0 + || i.imm_operands != 0)) + as_bad (_("expecting register indirect branch instruction after `notrack'")); + if (i.tm.cpu_flags.bitfield.cpumpx) { if (flag_code == CODE_64BIT && i.prefix[ADDR_PREFIX]) @@ -3964,20 +3983,42 @@ parse_insn (char *line, char *mnemonic) else { /* Add prefix, checking for repeated prefixes. */ - switch (add_prefix (current_templates->start->base_opcode)) + enum PREFIX_GROUP p + = add_prefix (current_templates->start->base_opcode); + if (p == PREFIX_DS + && current_templates->start->cpu_flags.bitfield.cpucet) { - case PREFIX_EXIST: - return NULL; - case PREFIX_REP: - if (current_templates->start->cpu_flags.bitfield.cpuhle) - i.hle_prefix = current_templates->start->name; - else if (current_templates->start->cpu_flags.bitfield.cpumpx) - i.bnd_prefix = current_templates->start->name; - else - i.rep_prefix = current_templates->start->name; - break; - default: - break; + i.notrack_prefix = current_templates->start->name; + /* Move NOTRACK_PREFIX_OPCODE to NOTRACK_PREFIX slot so + that it is placed before others. */ + i.prefix[SEG_PREFIX] = 0; + i.prefix[NOTRACK_PREFIX] = NOTRACK_PREFIX_OPCODE; + } + else + { + switch (p) + { + case PREFIX_EXIST: + return NULL; + case PREFIX_REP: + if (current_templates->start->cpu_flags.bitfield.cpuhle) + i.hle_prefix = current_templates->start->name; + else if (current_templates->start->cpu_flags.bitfield.cpumpx) + i.bnd_prefix = current_templates->start->name; + else + i.rep_prefix = current_templates->start->name; + break; + default: + break; + } + + if (i.notrack_prefix != NULL) + { + /* There must be no other prefixes after NOTRACK + prefix. */ + as_bad (_("expecting no other prefixes after `notrack'")); + return NULL; + } } } /* Skip past PREFIX_SEPARATOR and reset token_start. */ diff --git a/gas/configure b/gas/configure index d3ae96e..96fa7cb 100755 --- a/gas/configure +++ b/gas/configure @@ -12583,7 +12583,7 @@ $as_echo "#define NDS32_DEFAULT_AUDIO_EXT 1" >>confdefs.h $as_echo "$enable_audio_ext" >&6; } ;; - i386 | riscv | s390 | sparc) + aarch64 | i386 | riscv | s390 | sparc) if test $this_target = $target ; then cat >>confdefs.h <<_ACEOF diff --git a/gas/configure.ac b/gas/configure.ac index cc70aa7..da161b7 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -511,7 +511,7 @@ changequote([,])dnl AC_MSG_RESULT($enable_audio_ext) ;; - i386 | riscv | s390 | sparc) + aarch64 | i386 | riscv | s390 | sparc) if test $this_target = $target ; then AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.]) fi diff --git a/gas/configure.tgt b/gas/configure.tgt index ca58b69..9d5e781 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -46,8 +46,8 @@ eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'` # endian and arch. # Note: This table is alpha-sorted, please try to keep it that way. case ${cpu} in - aarch64) cpu_type=aarch64 endian=little ;; - aarch64_be) cpu_type=aarch64 endian=big ;; + aarch64) cpu_type=aarch64 endian=little arch=aarch64;; + aarch64_be) cpu_type=aarch64 endian=big arch=aarch64;; alpha*) cpu_type=alpha ;; am33_2.0) cpu_type=mn10300 endian=little ;; arc*eb) cpu_type=arc endian=big ;; @@ -126,7 +126,10 @@ generic_target=${cpu_type}-$vendor-$os case ${generic_target} in aarch64*-*-elf*) fmt=elf;; aarch64*-*-fuchsia*) fmt=elf;; - aarch64*-*-linux*) fmt=elf em=linux ;; + aarch64*-*-linux*) fmt=elf em=linux + case ${cpu}-${os} in + aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;; + esac ;; alpha-*-*vms*) fmt=evax ;; alpha-*-osf*) fmt=ecoff ;; diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index c1d6af7..67a7a13 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -385,6 +385,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "cet" run_dump_test "cet-intel" run_dump_test "pseudos" + run_dump_test "notrack" + run_dump_test "notrack-intel" + run_list_test "notrackbad" "-al" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. @@ -805,6 +808,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-cet" run_dump_test "x86-64-cet-intel" run_dump_test "x86-64-pseudos" + run_dump_test "x86-64-notrack" + run_dump_test "x86-64-notrack-intel" + run_list_test "x86-64-notrackbad" "-al" if { ![istarget "*-*-aix*"] && ![istarget "*-*-beos*"] diff --git a/gas/testsuite/gas/i386/notrack-intel.d b/gas/testsuite/gas/i386/notrack-intel.d new file mode 100644 index 0000000..b99e194 --- /dev/null +++ b/gas/testsuite/gas/i386/notrack-intel.d @@ -0,0 +1,29 @@ +#source: notrack.s +#objdump: -dw -Mintel +#name: i386 NOTRACK prefix (Intel disassembly) + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 3e ff d0 notrack call eax +[ ]*[a-f0-9]+: 66 3e ff d0 notrack call ax +[ ]*[a-f0-9]+: 3e ff e0 notrack jmp eax +[ ]*[a-f0-9]+: 66 3e ff e0 notrack jmp ax +[ ]*[a-f0-9]+: f2 3e ff d0 bnd notrack call eax +[ ]*[a-f0-9]+: 66 f2 3e ff d0 bnd notrack call ax +[ ]*[a-f0-9]+: f2 3e ff e0 bnd notrack jmp eax +[ ]*[a-f0-9]+: 66 f2 3e ff e0 bnd notrack jmp ax +[ ]*[a-f0-9]+: 3e ff d0 notrack call eax +[ ]*[a-f0-9]+: 66 3e ff d0 notrack call ax +[ ]*[a-f0-9]+: 3e ff e0 notrack jmp eax +[ ]*[a-f0-9]+: 66 3e ff e0 notrack jmp ax +[ ]*[a-f0-9]+: f2 3e ff d0 bnd notrack call eax +[ ]*[a-f0-9]+: 66 f2 3e ff d0 bnd notrack call ax +[ ]*[a-f0-9]+: f2 3e ff e0 bnd notrack jmp eax +[ ]*[a-f0-9]+: 66 f2 3e ff e0 bnd notrack jmp ax +[ ]*[a-f0-9]+: 3e f2 ff d0 ds bnd call eax +[ ]*[a-f0-9]+: 3e 66 ff d0 ds call ax +#pass diff --git a/gas/testsuite/gas/i386/notrack.d b/gas/testsuite/gas/i386/notrack.d new file mode 100644 index 0000000..eda09eb --- /dev/null +++ b/gas/testsuite/gas/i386/notrack.d @@ -0,0 +1,28 @@ +#objdump: -dw +#name: i386 NOTRACK prefix + +.*: +file format .* + + +Disassembly of section .text: + hooks/post-receive -- Repository for Project Archer.
The branch, users/jkratoch/indexcxx has been updated via a5a2c6c693bd290b3a5ffe924aa2c2e30b7d221f (commit) via 88c1242dc0a1e1ab582a65ea8bd05eb5f244c59b (commit) via f4985dba0f53b38efcca4eef42cfbfca5ef44ee2 (commit) via ab20fa4ae95212c58e369916de347f3d518530c2 (commit) via f532ab94387d1bc47de619ae08ead522753d89fa (commit) via 39503f82427e22ed8e04d986ccdc8562091ec62e (commit) via 003ca0fd22863aaf1a9811c8a35a0133a2d27fb1 (commit) from 480030250901adfbd6e8080e87143fc9959f372e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a5a2c6c693bd290b3a5ffe924aa2c2e30b7d221f Merge: 4800302 88c1242 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Wed May 24 22:35:25 2017 +0200 Merge remote-tracking branch 'gdb/master' into indexcxx commit 88c1242dc0a1e1ab582a65ea8bd05eb5f244c59b Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Move print_insn_XXX to an opcodes internal header With the changes done in previous patches, print_insn_XXX functions don't have to be external visible out of opcodes, because both gdb and objdump select disassemblers through a single interface. This patch moves these print_insn_XXX declarations from include/dis-asm.h to opcodes/disassemble.h, which is a new header added by this patch. include: 2017-05-24 Yao Qi <yao.qi@linaro.org> * dis-asm.h: Move some function declarations to opcodes/disassemble.h. opcodes: 2017-05-24 Yao Qi <yao.qi@linaro.org> * alpha-dis.c: Include disassemble.h, don't include dis-asm.h. * avr-dis.c, bfin-dis.c, cr16-dis.c: Likewise. * crx-dis.c, d10v-dis.c, d30v-dis.c: Likewise. * disassemble.c, dlx-dis.c, epiphany-dis.c: Likewise. * fr30-dis.c, ft32-dis.c, h8300-dis.c, h8500-dis.c: Likewise. * hppa-dis.c, i370-dis.c, i386-dis.c: Likewise. * i860-dis.c, i960-dis.c, ip2k-dis.c: Likewise. * iq2000-dis.c, lm32-dis.c, m10200-dis.c: Likewise. * m10300-dis.c, m32r-dis.c, m68hc11-dis.c: Likewise. * m68k-dis.c, m88k-dis.c, mcore-dis.c: Likewise. * metag-dis.c, microblaze-dis.c, mmix-dis.c: Likewise. * moxie-dis.c, msp430-dis.c, mt-dis.c: * nds32-dis.c, nios2-dis.c, ns32k-dis.c: Likewise. * or1k-dis.c, pdp11-dis.c, pj-dis.c: Likewise. * ppc-dis.c, pru-dis.c, riscv-dis.c: Likewise. * rl78-dis.c, s390-dis.c, score-dis.c: Likewise. * sh-dis.c, sh64-dis.c, tic30-dis.c: Likewise. * tic4x-dis.c, tic54x-dis.c, tic6x-dis.c: Likewise. * tic80-dis.c, tilegx-dis.c, tilepro-dis.c: Likewise. * v850-dis.c, vax-dis.c, visium-dis.c: Likewise. * w65-dis.c, wasm32-dis.c, xc16x-dis.c: Likewise. * xgate-dis.c, xstormy16-dis.c, xtensa-dis.c: Likewise. * z80-dis.c, z8k-dis.c: Likewise. * disassemble.h: New file. commit f4985dba0f53b38efcca4eef42cfbfca5ef44ee2 Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Use disassemble.c:disassembler select rs6000 disassembler Nowadays, rs6000 disassembler is selected in different ways in opcodes and gdb, opcodes: case bfd_arch_rs6000: if (mach == bfd_mach_ppc_620) disassemble = print_insn_big_powerpc; else disassemble = print_insn_rs6000; break; gdb: if (arch == bfd_arch_rs6000) set_gdbarch_print_insn (gdbarch, print_insn_rs6000); else set_gdbarch_print_insn (gdbarch, gdb_print_insn_powerpc); I am not sure which one is the right one. However, such selection should be done in one place instead of two. gdb: 2017-05-24 Yao Qi <yao.qi@linaro.org> * rs6000-tdep.c (gdb_print_insn_powerpc): Remove. (rs6000_gdbarch_init): Don't call set_gdbarch_print_insn. commit ab20fa4ae95212c58e369916de347f3d518530c2 Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Use disassemble.c:disassembler select rl78 disassembler This patch changes rl78 to let disassble.c:disassembler select disassembler. rl78_get_disassembler doesn't handle the case that abfd is NULL, so this patch also fix it. gdb: 2017-05-24 Yao Qi <yao.qi@linaro.org> * rl78-tdep.c (rl78_gdbarch_init): Don't call set_gdbarch_print_insn. opcodes: 2017-05-24 Yao Qi <yao.qi@linaro.org> * rl78-dis.c (rl78_get_disassembler): If parameter abfd is NULL, set cpu to E_FLAG_RL78_ANY_CPU. commit f532ab94387d1bc47de619ae08ead522753d89fa Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Use disassemble.c:disassembler select h8300 disassembler opcodes/disassble.c:disassembler select h8300 disassembler like this, if (mach == bfd_mach_h8300h || mach == bfd_mach_h8300hn) disassemble = print_insn_h8300h; else if (mach == bfd_mach_h8300s || mach == bfd_mach_h8300sn || mach == bfd_mach_h8300sx || mach == bfd_mach_h8300sxn) disassemble = print_insn_h8300s; else disassemble = print_insn_h8300; which is the same as what gdb/h8300-tdpe.c does, switch (info.bfd_arch_info->mach) { case bfd_mach_h8300: ... set_gdbarch_print_insn (gdbarch, print_insn_h8300); case bfd_mach_h8300h: case bfd_mach_h8300hn: ... set_gdbarch_print_insn (gdbarch, print_insn_h8300h); case bfd_mach_h8300s: case bfd_mach_h8300sn: ... set_gdbarch_print_insn (gdbarch, print_insn_h8300s); so we can leave disassble.c:disassembler doing the selection. gdb: 2017-05-24 Yao Qi <yao.qi@linaro.org> * h8300-tdep.c (h8300_gdbarch_init): Don't call set_gdbarch_print_insn. commit 39503f82427e22ed8e04d986ccdc8562091ec62e Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Delegate opcodes to select disassembler in GDB This patch changes GDB to use disassembler selected by opcodes in default, so that we don't have to duplicate the selection logic again in GDB side. For example, gdb/score-tdep.c has static int score_print_insn (bfd_vma memaddr, struct disassemble_info *info) { if (info->endian == BFD_ENDIAN_BIG) return print_insn_big_score (memaddr, info); else return print_insn_little_score (memaddr, info); } and opcodes/disassemble.c has the same logic, case bfd_arch_score: if (big) disassemble = print_insn_big_score; else disassemble = print_insn_little_score; This patch removes the logic in GDB and calls opcodes/disassemble.c:disassembler in default to select disassembler. gdb: 2017-05-24 Yao Qi <yao.qi@linaro.org> * alpha-tdep.c (alpha_gdbarch_init): Don't call set_gdbarch_print_insn. * arc-tdep.c (arc_gdbarch_init): Likewise. * arch-utils.c: include dis-asm.h. (default_print_insn): New function. * arch-utils.h (default_print_insn): Declare. * avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_print_insn. * bfin-tdep.c (bfin_gdbarch_init): Likewise. * cris-tdep.c (cris_delayed_get_disassembler): Remove. (cris_gdbarch_init): Don't call set_gdbarch_print_insn. * frv-tdep.c (frv_gdbarch_init): Likewise. * ft32-tdep.c (ft32_gdbarch_init): Likewise. * gdbarch.sh (print_insn): Use default_print_insn. * gdbarch.c: Regenerated. * hppa-tdep.c (hppa_gdbarch_init): Likewise. * iq2000-tdep.c (iq2000_gdbarch_init): Likewise. * lm32-tdep.c (lm32_gdbarch_init): Likewise. * m32c-tdep.c (m32c_gdbarch_init): Likewise. * m32r-tdep.c (m32r_gdbarch_init): Likewise. * m68hc11-tdep.c (gdb_print_insn_m68hc11): Remove. (m68hc11_gdbarch_init): Don't call set_gdbarch_print_insn. * m68k-tdep.c (m68k_gdbarch_init): Likewise. * m88k-tdep.c (m88k_gdbarch_init): Likewise. * microblaze-tdep.c (microblaze_gdbarch_init): Likewise. * mn10300-tdep.c (mn10300_gdbarch_init): Likewise. * moxie-tdep.c (moxie_gdbarch_init): Likewise. * msp430-tdep.c (msp430_gdbarch_init): Likewise. * mt-tdep.c (mt_gdbarch_init): Likewise. * nds32-tdep.c (nds32_gdbarch_init): Likewise. * nios2-tdep.c (nios2_print_insn): Remove. (nios2_gdbarch_init): Don't call set_gdbarch_print_insn. * rx-tdep.c (rx_gdbarch_init): Likewise. * s390-linux-tdep.c (s390_gdbarch_init): Likewise. * score-tdep.c (score_print_insn): Remove. (score_gdbarch_init): Don't call set_gdbarch_print_insn. * sh-tdep.c (sh_gdbarch_init): Likewise. * sh64-tdep.c (sh64_gdbarch_init): Likewise. * sparc-tdep.c (sparc32_gdbarch_init): Likewise. * tic6x-tdep.c (tic6x_print_insn): Remove. (tic6x_gdbarch_init): Don't call set_gdbarch_print_insn. * tilegx-tdep.c (tilegx_gdbarch_init): Likewise. * v850-tdep.c (v850_gdbarch_init): Likewise. * vax-tdep.c (vax_gdbarch_init): Likewise. * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise. * xtensa-tdep.c (xtensa_gdbarch_init): Likewise. commit 003ca0fd22863aaf1a9811c8a35a0133a2d27fb1 Author: Yao Qi <yao.qi@linaro.org> Date: Wed May 24 17:23:52 2017 +0100 Refactor disassembler selection Nowadays, opcodes/disassemble.c:disassembler selects the proper disassembler according to ABFD only. However, it actually selects disassemblers according to arch, mach, endianess, and abfd. This patch adds them to the parameters of disassembler, so that its caller can still select disassemblers in case that abfd is NULL (a typical case in GDB). There isn't any functionality change. binutils: 2017-05-24 Yao Qi <yao.qi@linaro.org> * objdump.c (disassemble_data): Caller update. include: 2017-05-24 Yao Qi <yao.qi@linaro.org> * dis-asm.h (disassembler): Update declaration. opcodes: 2017-05-24 Yao Qi <yao.qi@linaro.org> * disassemble.c (disassembler): Add arguments a, big and mach. Use them. sim/common: 2017-05-24 Yao Qi <yao.qi@linaro.org> * sim-trace.c (trace_disasm): Caller update. ----------------------------------------------------------------------- Summary of changes: binutils/ChangeLog | 4 ++ binutils/objdump.c | 4 +- gdb/ChangeLog | 63 ++++++++++++++++++++++++++++ gdb/alpha-tdep.c | 3 - gdb/arc-tdep.c | 2 - gdb/arch-utils.c | 20 +++++++++ gdb/arch-utils.h | 2 + gdb/avr-tdep.c | 1 - gdb/bfin-tdep.c | 1 - gdb/cris-tdep.c | 18 -------- gdb/frv-tdep.c | 1 - gdb/ft32-tdep.c | 2 - gdb/gdbarch.c | 4 +- gdb/gdbarch.sh | 2 +- gdb/h8300-tdep.c | 4 -- gdb/hppa-tdep.c | 2 - gdb/iq2000-tdep.c | 1 - gdb/lm32-tdep.c | 3 - gdb/m32c-tdep.c | 3 - gdb/m32r-tdep.c | 2 - gdb/m68hc11-tdep.c | 11 ----- gdb/m68k-tdep.c | 4 -- gdb/m88k-tdep.c | 2 - gdb/microblaze-tdep.c | 2 - gdb/mn10300-tdep.c | 2 - gdb/moxie-tdep.c | 2 - gdb/msp430-tdep.c | 3 - gdb/mt-tdep.c | 1 - gdb/nds32-tdep.c | 2 - gdb/nios2-tdep.c | 14 ------ gdb/rl78-tdep.c | 3 - gdb/rs6000-tdep.c | 14 ------ gdb/rx-tdep.c | 2 - gdb/s390-linux-tdep.c | 2 - gdb/score-tdep.c | 10 ----- gdb/sh-tdep.c | 1 - gdb/sh64-tdep.c | 2 - gdb/sparc-tdep.c | 2 - gdb/tic6x-tdep.c | 10 ----- gdb/tilegx-tdep.c | 2 - gdb/v850-tdep.c | 2 - gdb/vax-tdep.c | 2 - gdb/xstormy16-tdep.c | 2 - gdb/xtensa-tdep.c | 2 - include/ChangeLog | 9 ++++ include/dis-asm.h | 88 ++++------------------------------------ opcodes/ChangeLog | 38 +++++++++++++++++ opcodes/alpha-dis.c | 2 +- opcodes/avr-dis.c | 2 +- opcodes/bfin-dis.c | 2 +- opcodes/cr16-dis.c | 2 +- opcodes/crx-dis.c | 2 +- opcodes/d10v-dis.c | 2 +- opcodes/d30v-dis.c | 2 +- opcodes/disassemble.c | 43 ++++++++++++------- opcodes/disassemble.h | 102 ++++++++++++++++++++++++++++++++++++++++++++++ opcodes/dlx-dis.c | 2 +- opcodes/epiphany-dis.c | 2 +- opcodes/fr30-dis.c | 2 +- opcodes/frv-dis.c | 2 +- opcodes/ft32-dis.c | 2 +- opcodes/h8300-dis.c | 2 +- opcodes/h8500-dis.c | 2 +- opcodes/hppa-dis.c | 2 +- opcodes/i370-dis.c | 2 +- opcodes/i386-dis.c | 2 +- opcodes/i860-dis.c | 2 +- opcodes/i960-dis.c | 2 +- opcodes/ip2k-dis.c | 2 +- opcodes/iq2000-dis.c | 2 +- opcodes/lm32-dis.c | 2 +- opcodes/m10200-dis.c | 2 +- opcodes/m10300-dis.c | 2 +- opcodes/m32r-dis.c | 2 +- opcodes/m68hc11-dis.c | 2 +- opcodes/m68k-dis.c | 2 +- opcodes/m88k-dis.c | 2 +- opcodes/mcore-dis.c | 2 +- opcodes/metag-dis.c | 2 +- opcodes/microblaze-dis.c | 2 +- opcodes/mmix-dis.c | 2 +- opcodes/moxie-dis.c | 2 +- opcodes/msp430-dis.c | 2 +- opcodes/mt-dis.c | 2 +- opcodes/nds32-dis.c | 2 +- opcodes/nios2-dis.c | 2 +- opcodes/ns32k-dis.c | 2 +- opcodes/or1k-dis.c | 2 +- opcodes/pdp11-dis.c | 2 +- opcodes/pj-dis.c | 2 +- opcodes/ppc-dis.c | 2 +- opcodes/pru-dis.c | 2 +- opcodes/riscv-dis.c | 2 +- opcodes/rl78-dis.c | 8 +++- opcodes/s390-dis.c | 2 +- opcodes/score-dis.c | 2 +- opcodes/sh-dis.c | 2 +- opcodes/sh64-dis.c | 2 +- opcodes/tic30-dis.c | 2 +- opcodes/tic4x-dis.c | 2 +- opcodes/tic54x-dis.c | 2 +- opcodes/tic6x-dis.c | 2 +- opcodes/tic80-dis.c | 2 +- opcodes/tilegx-dis.c | 2 +- opcodes/tilepro-dis.c | 2 +- opcodes/v850-dis.c | 2 +- opcodes/vax-dis.c | 2 +- opcodes/visium-dis.c | 2 +- opcodes/w65-dis.c | 2 +- opcodes/wasm32-dis.c | 2 +- opcodes/xc16x-dis.c | 2 +- opcodes/xgate-dis.c | 2 +- opcodes/xstormy16-dis.c | 2 +- opcodes/xtensa-dis.c | 2 +- opcodes/z80-dis.c | 2 +- opcodes/z8k-dis.c | 2 +- sim/common/ChangeLog | 4 ++ sim/common/sim-trace.c | 6 ++- 118 files changed, 360 insertions(+), 311 deletions(-) create mode 100644 opcodes/disassemble.h First 500 lines of diff: diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 60a199a..b2f0f11 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2017-05-24 Yao Qi <yao.qi@linaro.org> + + * objdump.c (disassemble_data): Caller update. + 2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> * objcopy.c (merge_gnu_build_notes): Remove workaround that diff --git a/binutils/objdump.c b/binutils/objdump.c index 5972da1..81d47a0 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -2386,7 +2386,9 @@ disassemble_data (bfd *abfd) } /* Use libopcodes to locate a suitable disassembler. */ - aux.disassemble_fn = disassembler (abfd); + aux.disassemble_fn = disassembler (bfd_get_arch (abfd), + bfd_big_endian (abfd), + bfd_get_mach (abfd), abfd); if (!aux.disassemble_fn) { non_fatal (_("can't disassemble for architecture %s\n"), diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c8bd6fd..a96e71f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,66 @@ +2017-05-24 Yao Qi <yao.qi@linaro.org> + + * rs6000-tdep.c (gdb_print_insn_powerpc): Remove. + (rs6000_gdbarch_init): Don't call set_gdbarch_print_insn. + +2017-05-24 Yao Qi <yao.qi@linaro.org> + + * rl78-tdep.c (rl78_gdbarch_init): Don't call + set_gdbarch_print_insn. + +2017-05-24 Yao Qi <yao.qi@linaro.org> + + * h8300-tdep.c (h8300_gdbarch_init): Don't call + set_gdbarch_print_insn. + +2017-05-24 Yao Qi <yao.qi@linaro.org> + + * alpha-tdep.c (alpha_gdbarch_init): Don't call + set_gdbarch_print_insn. + * arc-tdep.c (arc_gdbarch_init): Likewise. + * arch-utils.c: include dis-asm.h. + (default_print_insn): New function. + * arch-utils.h (default_print_insn): Declare. + * avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_print_insn. + * bfin-tdep.c (bfin_gdbarch_init): Likewise. + * cris-tdep.c (cris_delayed_get_disassembler): Remove. + (cris_gdbarch_init): Don't call set_gdbarch_print_insn. + * frv-tdep.c (frv_gdbarch_init): Likewise. + * ft32-tdep.c (ft32_gdbarch_init): Likewise. + * gdbarch.sh (print_insn): Use default_print_insn. + * gdbarch.c: Regenerated. + * hppa-tdep.c (hppa_gdbarch_init): Likewise. + * iq2000-tdep.c (iq2000_gdbarch_init): Likewise. + * lm32-tdep.c (lm32_gdbarch_init): Likewise. + * m32c-tdep.c (m32c_gdbarch_init): Likewise. + * m32r-tdep.c (m32r_gdbarch_init): Likewise. + * m68hc11-tdep.c (gdb_print_insn_m68hc11): Remove. + (m68hc11_gdbarch_init): Don't call set_gdbarch_print_insn. + * m68k-tdep.c (m68k_gdbarch_init): Likewise. + * m88k-tdep.c (m88k_gdbarch_init): Likewise. + * microblaze-tdep.c (microblaze_gdbarch_init): Likewise. + * mn10300-tdep.c (mn10300_gdbarch_init): Likewise. + * moxie-tdep.c (moxie_gdbarch_init): Likewise. + * msp430-tdep.c (msp430_gdbarch_init): Likewise. + * mt-tdep.c (mt_gdbarch_init): Likewise. + * nds32-tdep.c (nds32_gdbarch_init): Likewise. + * nios2-tdep.c (nios2_print_insn): Remove. + (nios2_gdbarch_init): Don't call set_gdbarch_print_insn. + * rx-tdep.c (rx_gdbarch_init): Likewise. + * s390-linux-tdep.c (s390_gdbarch_init): Likewise. + * score-tdep.c (score_print_insn): Remove. + (score_gdbarch_init): Don't call set_gdbarch_print_insn. + * sh-tdep.c (sh_gdbarch_init): Likewise. + * sh64-tdep.c (sh64_gdbarch_init): Likewise. + * sparc-tdep.c (sparc32_gdbarch_init): Likewise. + * tic6x-tdep.c (tic6x_print_insn): Remove. + (tic6x_gdbarch_init): Don't call set_gdbarch_print_insn. + * tilegx-tdep.c (tilegx_gdbarch_init): Likewise. + * v850-tdep.c (v850_gdbarch_init): Likewise. + * vax-tdep.c (vax_gdbarch_init): Likewise. + * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise. + * xtensa-tdep.c (xtensa_gdbarch_init): Likewise. + 2017-05-23 John Baldwin <jhb@FreeBSD.org> * mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove. diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index d62566c..b1bc6a1 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1798,9 +1798,6 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Prologue heuristics. */ set_gdbarch_skip_prologue (gdbarch, alpha_skip_prologue); - /* Disassembler. */ - set_gdbarch_print_insn (gdbarch, print_insn_alpha); - /* Call info. */ set_gdbarch_return_value (gdbarch, alpha_return_value); diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index 4f866a9..d9ee5c6 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -2013,8 +2013,6 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_frame_align (gdbarch, arc_frame_align); - set_gdbarch_print_insn (gdbarch, arc_delayed_print_insn); - set_gdbarch_cannot_step_breakpoint (gdbarch, 1); /* "nonsteppable" watchpoint means that watchpoint triggers before diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index b1cec80..c011b0f 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -37,6 +37,7 @@ #include "floatformat.h" +#include "dis-asm.h" struct displaced_step_closure * simple_displaced_step_copy_insn (struct gdbarch *gdbarch, @@ -973,6 +974,25 @@ default_guess_tracepoint_registers (struct gdbarch *gdbarch, regcache_raw_supply (regcache, pc_regno, regs); } +int +default_print_insn (bfd_vma memaddr, disassemble_info *info) +{ + disassembler_ftype disassemble_fn; + + if (exec_bfd != NULL) + { + gdb_assert (info->arch == bfd_get_arch (exec_bfd)); + gdb_assert (info->endian == (bfd_big_endian (exec_bfd) + ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE)); + gdb_assert (info->mach == bfd_get_mach (exec_bfd)); + } + disassemble_fn = disassembler (info->arch, info->endian == BFD_ENDIAN_BIG, + info->mach, exec_bfd); + + gdb_assert (disassemble_fn != NULL); + return (*disassemble_fn) (memaddr, info); +} + /* -Wmissing-prototypes */ extern initialize_file_ftype _initialize_gdbarch_utils; diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h index 967a4b1..040afca 100644 --- a/gdb/arch-utils.h +++ b/gdb/arch-utils.h @@ -273,4 +273,6 @@ extern void default_guess_tracepoint_registers (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr); +extern int default_print_insn (bfd_vma memaddr, disassemble_info *info); + #endif diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index ec9db1c..3d041c6 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1499,7 +1499,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_pseudo_register_write (gdbarch, avr_pseudo_register_write); set_gdbarch_return_value (gdbarch, avr_return_value); - set_gdbarch_print_insn (gdbarch, print_insn_avr); set_gdbarch_push_dummy_call (gdbarch, avr_push_dummy_call); diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c index c590a91..bfb5d57 100644 --- a/gdb/bfin-tdep.c +++ b/gdb/bfin-tdep.c @@ -838,7 +838,6 @@ bfin_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_frame_args_skip (gdbarch, 8); set_gdbarch_unwind_pc (gdbarch, bfin_unwind_pc); set_gdbarch_frame_align (gdbarch, bfin_frame_align); - set_gdbarch_print_insn (gdbarch, print_insn_bfin); /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index eb39772..e554e24 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3785,19 +3785,6 @@ cris_gdb_func (struct gdbarch *gdbarch, enum cris_op_type op_type, } } -/* This wrapper is to avoid cris_get_assembler being called before - exec_bfd has been set. */ - -static int -cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info) -{ - int (*print_insn) (bfd_vma addr, struct disassemble_info *info); - - print_insn = cris_get_disassembler (exec_bfd); - gdb_assert (print_insn != NULL); - return print_insn (addr, info); -} - /* Originally from <asm/elf.h>. */ typedef unsigned char cris_elf_greg_t[4]; @@ -4134,10 +4121,5 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); - /* FIXME: cagney/2003-08-27: It should be possible to select a CRIS - disassembler, even when there is no BFD. Does something like - "gdb; target remote; disassmeble *0x123" work? */ - set_gdbarch_print_insn (gdbarch, cris_delayed_get_disassembler); - return gdbarch; } diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 8744733..c0257bd 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1582,7 +1582,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) break; } - set_gdbarch_print_insn (gdbarch, print_insn_frv); if (frv_abi (gdbarch) == FRV_ABI_FDPIC) set_gdbarch_convert_from_func_ptr_addr (gdbarch, frv_convert_from_func_ptr_addr); diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c index 5b28275..966a593 100644 --- a/gdb/ft32-tdep.c +++ b/gdb/ft32-tdep.c @@ -637,8 +637,6 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_unwind_pc (gdbarch, ft32_unwind_pc); - set_gdbarch_print_insn (gdbarch, print_insn_ft32); - /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 9c827ac..257c39f 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -429,6 +429,7 @@ gdbarch_alloc (const struct gdbarch_info *info, gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr; gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity; gdbarch->addr_bits_remove = core_addr_identity; + gdbarch->print_insn = default_print_insn; gdbarch->skip_trampoline_code = generic_skip_trampoline_code; gdbarch->skip_solib_resolver = generic_skip_solib_resolver; gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline; @@ -621,8 +622,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of addr_bits_remove, invalid_p == 0 */ /* Skip verify of software_single_step, has predicate. */ /* Skip verify of single_step_through_delay, has predicate. */ - if (gdbarch->print_insn == 0) - log.puts ("\n\tprint_insn"); + /* Skip verify of print_insn, invalid_p == 0 */ /* Skip verify of skip_trampoline_code, invalid_p == 0 */ /* Skip verify of skip_solib_resolver, invalid_p == 0 */ /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */ diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 753819f..7992cbe 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -643,7 +643,7 @@ F;std::vector<CORE_ADDR>;software_single_step;struct regcache *regcache;regcache M;int;single_step_through_delay;struct frame_info *frame;frame # FIXME: cagney/2003-08-28: Need to find a better way of selecting the # disassembler. Perhaps objdump can handle it? -f;int;print_insn;bfd_vma vma, struct disassemble_info *info;vma, info;;0; +f;int;print_insn;bfd_vma vma, struct disassemble_info *info;vma, info;;default_print_insn;;0 f;CORE_ADDR;skip_trampoline_code;struct frame_info *frame, CORE_ADDR pc;frame, pc;;generic_skip_trampoline_code;;0 diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index 7b260b1..1e8bde1 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -1275,7 +1275,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT); set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); set_gdbarch_return_value (gdbarch, h8300_return_value); - set_gdbarch_print_insn (gdbarch, print_insn_h8300); break; case bfd_mach_h8300h: case bfd_mach_h8300hn: @@ -1296,7 +1295,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); } set_gdbarch_return_value (gdbarch, h8300h_return_value); - set_gdbarch_print_insn (gdbarch, print_insn_h8300h); break; case bfd_mach_h8300s: case bfd_mach_h8300sn: @@ -1317,7 +1315,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); } set_gdbarch_return_value (gdbarch, h8300h_return_value); - set_gdbarch_print_insn (gdbarch, print_insn_h8300s); break; case bfd_mach_h8300sx: case bfd_mach_h8300sxn: @@ -1338,7 +1335,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT); } set_gdbarch_return_value (gdbarch, h8300h_return_value); - set_gdbarch_print_insn (gdbarch, print_insn_h8300s); break; } diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 2636a27..229b061 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -3122,8 +3122,6 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Helper for function argument information. */ set_gdbarch_fetch_pointer_argument (gdbarch, hppa_fetch_pointer_argument); - set_gdbarch_print_insn (gdbarch, print_insn_hppa); - /* When a hardware watchpoint triggers, we'll move the inferior past it by removing all eventpoints; stepping past the instruction that caused the trigger; reinserting eventpoints; and checking diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c index 7d8ed3c..99824b7 100644 --- a/gdb/iq2000-tdep.c +++ b/gdb/iq2000-tdep.c @@ -838,7 +838,6 @@ iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_frame_args_skip (gdbarch, 0); set_gdbarch_skip_prologue (gdbarch, iq2000_skip_prologue); set_gdbarch_inner_than (gdbarch, core_addr_lessthan); - set_gdbarch_print_insn (gdbarch, print_insn_iq2000); set_gdbarch_register_type (gdbarch, iq2000_register_type); set_gdbarch_frame_align (gdbarch, iq2000_frame_align); set_gdbarch_unwind_sp (gdbarch, iq2000_unwind_sp); diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c index bd3e182..84ece3e 100644 --- a/gdb/lm32-tdep.c +++ b/gdb/lm32-tdep.c @@ -565,9 +565,6 @@ lm32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_push_dummy_call (gdbarch, lm32_push_dummy_call); set_gdbarch_return_value (gdbarch, lm32_return_value); - /* Instruction disassembler. */ - set_gdbarch_print_insn (gdbarch, print_insn_lm32); - lm32_add_reggroups (gdbarch); set_gdbarch_register_reggroup_p (gdbarch, lm32_register_reggroup_p); diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c index 7376372..1bc5950 100644 --- a/gdb/m32c-tdep.c +++ b/gdb/m32c-tdep.c @@ -2639,9 +2639,6 @@ m32c_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Register set. */ make_regs (gdbarch); - /* Disassembly. */ - set_gdbarch_print_insn (gdbarch, print_insn_m32c); - /* Breakpoints. */ set_gdbarch_breakpoint_kind_from_pc (gdbarch, m32c_breakpoint::kind_from_pc); set_gdbarch_sw_breakpoint_from_kind (gdbarch, m32c_breakpoint::bp_from_kind); diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 0820af9..2d14ced 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -947,8 +947,6 @@ m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Return the unwound PC value. */ set_gdbarch_unwind_pc (gdbarch, m32r_unwind_pc); - set_gdbarch_print_insn (gdbarch, print_insn_m32r); - /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index 893d9c2..b19ddf7 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -1344,16 +1344,6 @@ m68hc11_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym) if (flags & STO_M68HC12_INTERRUPT) MSYMBOL_SET_RTI (msym); } - -static int -gdb_print_insn_m68hc11 (bfd_vma memaddr, disassemble_info *info) -{ - if (info->arch == bfd_arch_m68hc11) - return print_insn_m68hc11 (memaddr, info); - else - return print_insn_m68hc12 (memaddr, info); -} - \f /* 68HC11/68HC12 register groups. @@ -1525,7 +1515,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info, m68hc11_breakpoint::kind_from_pc); set_gdbarch_sw_breakpoint_from_kind (gdbarch, m68hc11_breakpoint::bp_from_kind); - set_gdbarch_print_insn (gdbarch, gdb_print_insn_m68hc11); m68hc11_add_reggroups (gdbarch); set_gdbarch_register_reggroup_p (gdbarch, m68hc11_register_reggroup_p); diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index 7c3bf4c..5b4736d 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -1240,10 +1240,6 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_return_in_first_hidden_param_p (gdbarch, m68k_return_in_first_hidden_param_p); - - /* Disassembler. */ - set_gdbarch_print_insn (gdbarch, print_insn_m68k); - #if defined JB_PC && defined JB_ELEMENT_SIZE tdep->jb_pc = JB_PC; tdep->jb_elt_size = JB_ELEMENT_SIZE; diff --git a/gdb/m88k-tdep.c b/gdb/m88k-tdep.c index 57fe644..d08a913 100644 --- a/gdb/m88k-tdep.c +++ b/gdb/m88k-tdep.c @@ -838,8 +838,6 @@ m88k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_iterate_over_regset_sections (gdbarch, m88k_iterate_over_regset_sections); - set_gdbarch_print_insn (gdbarch, print_insn_m88k); - set_gdbarch_skip_prologue (gdbarch, m88k_skip_prologue); /* Stack grows downward. */ diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c index 59f94c5..86cb090 100644 --- a/gdb/microblaze-tdep.c +++ b/gdb/microblaze-tdep.c @@ -738,8 +738,6 @@ microblaze_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_frame_args_skip (gdbarch, 8); - set_gdbarch_print_insn (gdbarch, print_insn_microblaze); - set_gdbarch_write_pc (gdbarch, microblaze_write_pc); set_gdbarch_unwind_pc (gdbarch, microblaze_unwind_pc); diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c index 0f5e10f..1e2526f 100644 --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c @@ -1444,8 +1444,6 @@ mn10300_gdbarch_init (struct gdbarch_info info, set_gdbarch_sw_breakpoint_from_kind (gdbarch, mn10300_breakpoint::bp_from_kind); /* decr_pc_after_break? */ - /* Disassembly. */ - set_gdbarch_print_insn (gdbarch, print_insn_mn10300); /* Stage 2 */ set_gdbarch_return_value (gdbarch, mn10300_return_value); diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c index 2972d52..91248cc 100644 --- a/gdb/moxie-tdep.c +++ b/gdb/moxie-tdep.c @@ -1142,8 +1142,6 @@ moxie_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_unwind_pc (gdbarch, moxie_unwind_pc); - set_gdbarch_print_insn (gdbarch, print_insn_moxie); - /* Hook in ABI-specific overrides, if they have been registered. */ gdbarch_init_osabi (info, gdbarch); diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c index d9eebf0..d730e1b 100644 --- a/gdb/msp430-tdep.c +++ b/gdb/msp430-tdep.c @@ -997,9 +997,6 @@ msp430_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) msp430_breakpoint::bp_from_kind); set_gdbarch_decr_pc_after_break (gdbarch, 1); - /* Disassembly. */ hooks/post-receive -- Repository for Project Archer.