The branch, scox/gdbserver-multi-client has been updated via 975a0cde0cc8190d62f6eebb227c23e49e62602e (commit) via 0984958bd1d20245e4d42888a697b6015dc6172f (commit) via 62fd0a980b2dc8a3332ad6ee3f8e7c8c841ff693 (commit) via 1c5e4ee9ab4c173aca017d488cc074ef66562a12 (commit) via be3a8dca2d7241878302ca55f45129d532b6f746 (commit) via 3233d7d074e59b83f68a22071cff597f00d5ae81 (commit) via b4f6242e95340a31b0519187c5fc329056ddecfd (commit) via f866b262e8ffaa4339dac8698932e097756a8880 (commit) via 14c41f479f2eb6b34ab2d2bb0cedb88e9d51f211 (commit) via ef8914a4d7d231fe3590f3e004316613e25f3617 (commit) via d6e5894564754ed81faaa3dc92f0cc0e90d7994b (commit) via 9c0b896ee1d4edfe30c783b027ed5c081845a63d (commit) via 7042632bf7976d29889ba89fe4867654c5f38e2d (commit) via 650f5e137006fb7aea98e33d2ca9c6ac6712334c (commit) via 47c9317e71768ba9788c6dc055fb6932d0f0923a (commit) via 095085d8473689d86e00cd7d9a63680ca8faeda6 (commit) via ab9bcc67975f2a04dfa0e670096fc8161d7840b9 (commit) via 21f6f5ffc652e116e518fee29ebdc8fbfeeaa734 (commit) via 0eb97953adcb12aa49e4924d1e28ce6af046d6e2 (commit) via d820e164e4baccacd8d4e7e3761ec547402ae828 (commit) via 75c80ee120e7d1bfb78570aa89d8d8fec6812d0f (commit) via 1ea332d6931ea097d0128578a578528262df8445 (commit) via 5c319bb260fa9637048cfae5fceba807e7849b39 (commit) via d65ce302abcb260e14ca5f201b78e8e6d4a2e720 (commit) via 49da480ff6208abc419fe66e030dfa052c11ee1b (commit) via f433138f1f9e6b8bcd93145a40ebae6c5d996792 (commit) via ec7a5fcbfd90b2f67f1a0e3f9866b11c5968ae61 (commit) via 11f57cb67ecf5c69911eff21b54e05e93bbf2734 (commit) via 03f50fc878f75fcdebf0e3273f201fb4b62b0bae (commit) via dc71152484248c0d8075618ec2146db4ea173b12 (commit) via 3f5a868b2277a3678f7eeb8fdf88935913b5918b (commit) via de4cb04a20782b817fc80b49bba83b43cf1cb85d (commit) via a9e408182d2faaed5c2457b68ea3276c719a590f (commit) via 3b76a4a069d43c5a641914707554a6e90dbd2fd9 (commit) via e707fc445e68ccfa136a52cd4989b0cb778d1ca7 (commit) via 03d0bf7b78b142a5e03dfa1c80100893753d0022 (commit) via ae45162705fb76ee534336474a67b11373209c62 (commit) via aee1fcdf979d65c7623533ddd6d871767be9de13 (commit) via 396af9a1527b396c251e70b5c79b5fc83fd1d7ff (commit) via b1b189e04cb5ea5da1cbb07bd6cceccd4d2ac969 (commit) via f49464e4287179069ee98b27fcbac793493f18ac (commit) via 8a1b824af786989f879ab1421a4279f60bba141a (commit) via 44301db1ac68cd26c559df225fe6d1bbc96638a0 (commit) via fcfcc376969c4d7a6d20827c47b584db389a32b9 (commit) via 634c1c3109a2ffdf43ef9dab839c88108d9980f3 (commit) via a0aad53764f45a634462288befe4c2eaecbf302d (commit) via 5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8 (commit) via bc09b0c14fb713a9aec25e09b78499f3bc2441b5 (commit) via 6e1e1966bac965c5a26b5e5cae69cb0ed21be4cc (commit) via 6bd6f3b6569945700386847f624dc9e8b7f57450 (commit) via a3ab6cb01950e7d00519ddb3ead50eddff4fdcb8 (commit) via d6ad07fdef94777bb512f072361706bcc743d51c (commit) via ee3fbc1ebb0cdd0785f4c328c5daaa4a4cdf3f91 (commit) via 88af8ea80b9732f951e61a4ed8868e722f337c8e (commit) via dea445b940545f9564972c5410ac8792b72cc9c3 (commit) via adf8243ba9220966bbb8f67460b2d323e00cbfdb (commit) via 1ebfa86a3c2a1dc2169da072dc65c32c56a2f254 (commit) via f7968f08b782bee249c66162736f1e82d7b39159 (commit) via c5bdb022609634970dd981517d478e6cc332629c (commit) via 85ed4f7ecea48a92b33f4c6b3f8d9e0e858ed617 (commit) via dcc069254040954ee72b3ed65b772d48cdff93df (commit) via 25d4fd80936744adfa49f133524e3f342604a1cb (commit) via 4a17f7688fbab8f170144fa13ffcd06bc749e6ec (commit) via d679c21a43852305c5eeae957854f6e13d6f884c (commit) via 691d2e9af211ff8dd5fa8c96cb961b73a78394d7 (commit) via 7ab820379890dc68699ba5acf8ab4f03053fa2b0 (commit) via 2f89d95b71478464a898147fb20dd50ece260168 (commit) via 7d937cad0acdccd0ff485435fbe16f005e994c66 (commit) via e925c834ecdb4a0ce595ad8d3da9c7d4f499ede0 (commit) via 9e14690d06ac55136b7f051a2d2b8e173fa3bbdf (commit) via 50a820477b5d48d4c2d28ca1c22ba6d93c9fd7cb (commit) via c89b44cdc52b6a9c0848a795689895e292ad1f46 (commit) via fcd3b13d80a2d0e5fc31ef6a245be62db6a11420 (commit) via 685af9cd2283b07a222157723e239f09d6ea2682 (commit) via 5e2db402c8e665b0c6ac81047a10cbf4e26329f2 (commit) via ee7f689e15a2357eccbf8109459864333af56521 (commit) via 416675305692976aca45860e24b963982a2e682a (commit) via 4d9b86e17505063c96a01d40cdf5b4fc2080a798 (commit) via a7b2d0fbeb4ca22ffbf56d19d06b7d1cb774e383 (commit) via d777820bf5abea433c36e956b53b299502e0f708 (commit) via 4bfce1283654832d83a01b700e61518233c8bbda (commit) via f517c1805ac50c64c2dbb086c16b3bcf33b15a89 (commit) via 7045b1ca73b8c0cb12d1158f3bc59d251dca0fa5 (commit) via d8447b6b9fd288ebd35620178ba720b1f0ce7ebf (commit) via c75bc4f76fe456c57ef1e446db5378182692c429 (commit) via 1be5d8d3bbec4c9a112114993ac5c85b2b26c4c4 (commit) via 9e390558cef76767a98123994c422d0642d86cf8 (commit) via 78742b93a5fef4b88b1391817e7bcc6738000044 (commit) via 0dd86f32bcb1675e9d1db5e7b916a347667709d3 (commit) via f6efed019b4e49a4c27b518afbdf2d9bf0652843 (commit) via a960d29fb7b2186e495360887a334e780c03a6c6 (commit) via 9a70f35c8d872bb5542e98e34b8b044228dcb844 (commit) via 46a7082471545e05e7161737fa3b6f597e150b72 (commit) via 2721d702a055fe0f7621386123b103b5c4d84662 (commit) via db422fb2120e311318657d9c7dd0e7b0b5a5eac9 (commit) via 86d6a90c58ee3fb924bcbca154f4e32347437e6c (commit) via 930b5f8bfb8e2d971f459c570d248714183a08d5 (commit) via cf3cf39d53c3fc6b9cf27d97deb6ffecf0a7f6e7 (commit) via 2875ce2b55bdda40107ef3500edfeccfb29f14e6 (commit) via df9909b8675c8c9b6fa88c5d13afd2efa66dcf68 (commit) via d726cb5d3784f7ed96318a2214ea777a86f9faad (commit) via 616dcb87abe148edf7278581e04cf23aff97411e (commit) via dbfa452355153093d4d6841515f9891c9572113f (commit) via 801728126e4a627305c2c7dc8e6d3eb30a5cb506 (commit) via 1f8e8a3540865686686e1a87e6b5e16dc6011595 (commit) via 19e2900bd399d1ba272afe8b5b50b1b29a948bbe (commit) via 3957a4963f38fb249eced6c880efacd22f10eb28 (commit) via 769c7ea507209948135facd04bf8defc3f21a8a4 (commit) via faf766e31794722b7e2c24e44e920d0476cede32 (commit) via 9176ac5bfce8c1771063c2514b7d46efa613cc1b (commit) via 27f7b092c26b84633a4a266ba8ff01154d915035 (commit) via da4b575911f7e705b3b906e1622b19e9da1faff3 (commit) via cbcdb1aaddb4dd1a388eadbea6b6ec342c7ab067 (commit) via ba643918cf869fa0d064d733f69b453b6fe642ea (commit) via 906b4aac4c1d3cdb2b1ea7105133cfbe25e04e14 (commit) via b4b07ef1d11452018477d6a4166a0cfe1122d09d (commit) via eea61984abfea2c0acdc7e46ec182a14698b3bf9 (commit) via bdf2a94aa535016a1640d56e9b2b539c4376bf31 (commit) via 98ab9e9603cdf52faab5b838c078c24be4e1364b (commit) via 564e11c9a9d9570b233b38cd995f1b4eb7c757e8 (commit) via b5b62006522c6d8d42028754bb1be165f00fe210 (commit) via 5ae5d3fd10c4bb520d767b25c59bf86db764adef (commit) via a78eea1623aa6d05a395a73414bf01f6c8ae81c6 (commit) via 87e79a6515951fece72ee08871dd6e112b1042ba (commit) via 58807c48a5a317ad3e2d39a8755168a3d4d5fdf8 (commit) via 97a232d7335f3bd0231fd9cd39455bde1d563922 (commit) via 33eff4ce18fbee82ef39838b7c8623aed17dea60 (commit) via cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0 (commit) via d346bb277c7f194ece73a7200d1ed6417b1194e5 (commit) via 2888249fc9eb38b6d6e4bd969ce63c26e3753d5e (commit) via 47acac12c83f173481debc64618626b50ecf7498 (commit) via 6181e9c2c5ba252ac016f51903dc35d7bfbbca71 (commit) via 89a7f793f1963b14bd649afc4154903d22591ae0 (commit) via d664fd41e15f058aab41b70c567ad09f2fab1115 (commit) via 71d378ae60a4f072ce392046878d471255f6c8a1 (commit) via 8b6f4cd34fdde524ea035c65f7d48aaa3fb449b5 (commit) via 65f14869fd3fbee8ed4c4ca49de8aaa86dbc66cb (commit) via eab62f2f018417121e2520acb0623985b1708b02 (commit) via 8be965c5f058f79554ec3376afac994e6e3ad1b7 (commit) via b3b9f8d3e99cf46c2f85445cc5189db4c4f47407 (commit) via 6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe (commit) via 754452f07e701448e5d9bd004cb108ddc48a8d67 (commit) via 3cada74087687907311b52781354ff551e10a0ed (commit) via 888a89da7fa5d219695234c3a8dc7b8a57dfe8ee (commit) via 710d7eae846428d25dcfc6f51e8722fc65bd26ee (commit) via b90d5ba0b6e068db21650ad42ec9dea22426df00 (commit) via 618daa933cdce21424d3759ea95a4e2f5c69a1c2 (commit) via c63d3e8d12f0b08cda95f89aa13274defed215f0 (commit) via d4c2a405cb7535d25b88e9b8dad0e557242950ca (commit) via 8825213e97f0476068dc3b52b1b61df96b40708a (commit) via 7ec0cd50bf2c93854ef02b9c1f3b4edc4b70cd46 (commit) via bf41f30dde0f2ad09c2b7a9894fd7992e4b36a16 (commit) via 2a8ae7146cacb006105e2e9c6f4635aca543e7ec (commit) via cbda583ada32e16bf8b6c6aff730cc9eab63b364 (commit) via c9e9227878d172d93bcbef51dfc76d96f027751d (commit) via 35fd2b2bcf370837a03f077acf1222f0a7e9c4d1 (commit) via d9ccd460fdbe0e0f3dd9263175aa4b23b207a51e (commit) via 2d97a5d9d33aea87c3bd02fd1fa417f5d4e1fa05 (commit) via 92fce24de299a8b9a9a1c0c6b98e0e9c1656f99c (commit) via 262f62f57d987269152412a55c458a03adc6ddd6 (commit) via b999e2038dbc54e2c8b1c390f8b8fe50d0f1d10a (commit) via d2176225dc982c22640215a0e611e997e8eeb030 (commit) via 74ccf6db1188b7b05c716f8382d28b276ec578ec (commit) via 91d8b670661883fc0472fd05cf0e54d0e357c187 (commit) via be2e7d95414eb78f29312f30e62d4cabd55f9fda (commit) via b1dc1806fad00fc5b2589164e964646c02a700fa (commit) via 6cef73f96f58ca3f0e0b2f594b324602c7590611 (commit) via 7615ca1dc941bb9f225a1c50df7fdd8d31afc9e8 (commit) via 933ea656af9d40604e4823b07b83e74714f2516e (commit) via 9c4ac400f0f7d8daa8483dbe73b5699782ae3e22 (commit) via 704a705d7aaab8041df76e2981e2a1efc014aad0 (commit) via 605fd3c6590fbed834107a2e1d1df0ba58834576 (commit) via 1e5ded6ce688ddee065fa852053dda07fcce959e (commit) via 9f86398b29d53a5a0aaea390ce813628715b3125 (commit) via 30066b0b00a2c09baed08e49437c2ae3c44bc4e0 (commit) via 102e9361c88882756ad7ffceb0713a794c991e69 (commit) via 04bafb1ed002df1f25ca5a5773d87723a4baf46b (commit) via e09efd5931daf7eede1f4da46313a1aaadd4dbfa (commit) via 518817b361167ac91e7cdad8528b4d90cdc3fb26 (commit) via ed2dc618b3d2b0be01ffdf74c4c75504b707bcf1 (commit) via e3b94546125849c6c513114cf20f78d2a7aa9db2 (commit) via 2cc050302cd365fd28fac65d49b6c817eed74faf (commit) via b01ba14d4d5391e59fd0e1a3608fd47287edc008 (commit) via 4d0fdd9b357aff1fea3ef3def55d12464a41bf5b (commit) via f979c73fd0be9a8a683f79af40c7b939c2a65d9f (commit) via ba18742c3a1b62ff218db99bee47bb932af6dab9 (commit) via d672364615e87e8c366b536940f269fdc3141330 (commit) via 35eeb78fa9535df6a273c053d8f102e046261b89 (commit) via 77a502c03a347f0eb31e53e94cab528190c5bd1f (commit) via be1dce26256aa9f6c7742e81c8c3db9eacff079d (commit) via e379cee61f3890e535e995828e8846b020ef2a32 (commit) via a655456c134e5e02bab33941e1c738ca33905d23 (commit) via de63c46b549d1cf4f7851e47872cb759a12983f4 (commit) via f98fc17b3ac4750842ec0fe28a18b51691ddfbda (commit) via 342f82403949c74517a6353baec73b94d18549ad (commit) via 7150d33cda60fd543e9d9d68eb58d4e6155fb878 (commit) via cc0e770c0d00acececc43826f4673896d09b3dff (commit) via f79da888eb68d5add4eaa7f336923cad95367335 (commit) via 672a41aa12fb24fe24dbf52d2e78a3a846dc0225 (commit) via e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf (commit) via cd385f94a7888b619c84e9ab007bac5093c5e894 (commit) via 09aca9495c4794e586680f359e612ece173148ec (commit) via 5219ac6237c272b938c28517bf371429260c71e7 (commit) via 645a2c5b46e18013ac9cb16b66ba7b6b97cd01c5 (commit) via 7365ec2ff4a7028503f39655bd2628d54418106c (commit) via 289483b6a06c7a24ee9ae9021d2728ca4700b7a6 (commit) via 344420da6beac1e0b2f7964e7101f8dcdb509b0d (commit) via 66fc87a0d50d2b91322cc24d17461c07925fa867 (commit) via c40d7e49cf0a6842a5cf072772a48d1f6e6eeb11 (commit) via ddb2bbcf0624ef5f75c0a007c6b192c09b6fa70b (commit) via f13974bda3d53e47b7fe5a358e963073184ba17e (commit) via 6f156d7a4ad1c245b357dc50f63f3564d397839e (commit) via 9f757bf7fcb8834ead780e0c4a76d6029b1402c2 (commit) via 219d1afa89d0d53ca93a684cac341f16470f3ca0 (commit) via 1e563868718a69231c80a1d86698cee0cf847e72 (commit) via bd570f80f6e47c93f4b1cc1e94688cdde33ca931 (commit) via 39f2fa1b0fdfd1b15f3d381c4fc4359c9733e657 (commit) via 43724d16bebb38fe6794f6a3741352a7698038de (commit) via 806ab1c045c4cbb5c906f79bcb2e0c3058f4c6fd (commit) via 1508bbf535b03e3b9105d01a9e19f29f131b3d1a (commit) via 9fe561ab7fc5ee3a06061dae6909cd61b49435df (commit) via a405673cc5b56c260de4e1202cead709d1a4f24c (commit) via 74a2f8ffb83172de1af0da6751a65c08a722986f (commit) via e2882c85786571175a0b0bfc3bcd2f14620b1ea3 (commit) via 1690bb24d855c387211f7bc5a77334c11cc75f4b (commit) via 0f0c98a8a1ca2fa2e73170849b1db4876c3ea954 (commit) via 82e1e79a420734bcb1fa255a1e7b3250e6acee65 (commit) via 053f54e57f64ca88596999f37bf3bd329b497d20 (commit) via 87e4655d674c00ccefaf3682b5943505e1c90b92 (commit) via c76ff6936bd0c7f8a331e57939b1b12d84466b9b (commit) via 47fea877452b84b94ac6ffb26f194f12845526fa (commit) via cfa27c399ec9236a100ef794505d35f60da41a6d (commit) via 132448f8359a268f34f074b0908b5255b568da06 (commit) via e9d9f57e11db6427db347bc5b9b100071355e63f (commit) via a594729cfb10457e0046359d2dde0c28b4185449 (commit) via fc898b42e355fef58e6a029799fdd71b9dda5dc6 (commit) via 0436426c7f7798b8eb4b48be9867495da8ef28f0 (commit) via 502a625ab01da27e851333b598c893d6f2c20bd0 (commit) via 4b2dfff9e78c6b615a92c727758f08f595aadba2 (commit) via ffd727ca6e52d448137c8cddfbd361c67532e4e1 (commit) via d9be0c189a9a9b77a6bf4501f8891544b8ce9593 (commit) via 4ee2b642ddc70393d5b3ab04956fadad02954d4a (commit) via 0f833180d3e7a4551ffcd00ee9b6d2483ea23a8a (commit) via cef0f8684e818f8b6c71c44dc9cc28a6d0ac3754 (commit) via f7efd549485db1fd84dbd2f2ee36d80c2739f224 (commit) via c1166ca9f3543b28e8b0057ecaf2cd3251cd51c5 (commit) via b67d92b06e6155a392a0c2d413f87d050880dbf4 (commit) via 76bce0d1d5c4e434736ce4331bc987c7a1ee702c (commit) via a811763d7467c8c0c819d7f0a93c4406b7c049dd (commit) via dc6af97a85961f06b3b4e14707dad2bcac39921a (commit) via a6c42a6e7404cc469db89a382d2eebd31d794d5b (commit) via 6e8c24fe27098f407000812e61fa8210095a7970 (commit) via 5c8833d2fa4bcb6a0ef4249dd095bcf29a240465 (commit) via 845756abe87ee8a272171edf032242ce4ad13865 (commit) via a8d2e5856f87a658d69018fe1ccd56482eebdd59 (commit) via 27e9ff87a627614fda7ddd89ddef745de5e988bb (commit) via 6eab0eaa1b71025cc1747396fdba127d25c209c0 (commit) via 21a186f28061ea51e422ae47d062793ceac2180f (commit) via 396d3980f518cfc9a936e3fb8138b0492399525a (commit) via 175654b9cdd3113a01174b019ac286092398246b (commit) via 0a16b291e0c181223a97b68a5252f99fa38193ca (commit) via 00c2093f698e8f40c04340cb1832d09e11ece237 (commit) via a3b3345ae62503982698171bcfce0afe23bd8a31 (commit) via bef7475fbda88374ca488b0acbbfe1d3d4ab3e5f (commit) via be62dcaa1771b5f2a47f0cfd78f89828f087efff (commit) via 63f452a8bfd9c89b56dcc087cea84151e7a9ec24 (commit) via f795c49463234dc347ddd9a1b07ee5b506295b96 (commit) via c54207d32681bb205c28facba73b6173ef15eabf (commit) via 4f588891ac7d4653e1bd861ca38c2a4e6d5e907c (commit) via 10c17abdd052c5f8f9c2bcdf8b01dffe5d06baf0 (commit) via 1b54b8d7e4fc8055f9220a5287e8a94d8a65a88d (commit) via ca0d63fe0703ed36af1a7bda6097958805895b3a (commit) via dc821c5f9ae5208ad1ec438718f75e224f856deb (commit) via eccab96d54a9455557d3c4d5bff431f6e526d0b7 (commit) via 0e2da9f01334a01d1a6e224ecd592d6fbbb22515 (commit) via cb923fcc23e07fe3dfb3837f47249aba79cdee6f (commit) via 7d47b066d0e5ea1df82aa24fde2dd4e38814627c (commit) via 390c91cfcffe1a0d75b6100d1542cda2544993b3 (commit) via fd7055f4a7f8eef9dc926fae698ad297279726bb (commit) via 38af1824019684e819ffb880bdf7fb03a2c2000a (commit) via b282f0f2b56903c7b58f1eb94b88e468851928e8 (commit) via 46afe196ec282505dcd2727725bfb5ef87ea4b21 (commit) via 09da3ecf04d75084ea7d9c43e3cc0b18b2443ea3 (commit) via 7c1618381fdaa0697a211721ac31844f884797ac (commit) via a27ed7d613ec91c3a79965d6bdab1fa96d559c85 (commit) via fc076a47fd716ca75447d432251abc67a19ef908 (commit) via 68f81d60196eb201b209873cf53258f13b0046b9 (commit) via 1af17fd9cc3a453e55ce5b8f556c51859bf40363 (commit) via 97d4fac10fb9dac465d1d7e7a26c6b9cfb0b1326 (commit) via fbc2255575afc0d332b28fd4991235e020cda667 (commit) via 141975a1e53798a48917271295962fb1a7e967d0 (commit) via 93b71a266695669cb9aa8ddf2717a1ccd53c925d (commit) via c5d0745b0d3edfea9e82a4b304ea1847790d72e4 (commit) via 2778747c56d0837ec7defb80e756a7e6ca81b8ce (commit) via 828d584679845b6a1d01151f7df3592d15fe8405 (commit) via 1e5dd7c95a56fd61e6f2deb145ad99153d5336e5 (commit) via 8e557e52b3fd45a56fb42dbbaad3d6ece3694eb4 (commit) via 863f7a5f4811c24d9a5863ffb541ff3da1511450 (commit) via 4baeffab22b564735be14a90f658c1aee1ceec58 (commit) via 8af5c486ea6153bb84b9257def4e5faa4bc72421 (commit) via 79e8fcaafa92e7b4a74e510c5487e87c60ff1945 (commit) via e05fa6f9df82886043e1f1df30e0b9be3fee2d55 (commit) via b3e7dd3c9d05064d845afafe52a7539948823788 (commit) via 25982ee0222196381863a17dc135fc1d2763b385 (commit) via b89641bab55496e52094282fabe146289c57b6d1 (commit) via 6892d2e4df57160f7103fef0340ae3f55ac8b2b3 (commit) via a22ecf70263eff75ca2c5878fe7e8d0311d6737f (commit) via 60a20c190789fd75d1955576160cbbfe94c792fb (commit) via 0b982d685e840948eed4619843a0cc5ce8991d6c (commit) via 79e741920446582bd0e09f3e2b9f899c258efa56 (commit) via 9664701462aec634d304923df8dc9c52c5a92caf (commit) via 3bbd9f1877bfc5f37ebff1fef2af9eb783f49ace (commit) via 024d185c10a48339ae06634d0738dd796a159cd8 (commit) via 10e7c0457cb7531f8b205e29e88b3e191cfa6037 (commit) via 9937536c23ae005422cec23d38a6b7f6fa8e1f48 (commit) via 2c66e1634c92040a8fcb9590cd80fe881def0b20 (commit) via 702d582e2c5ab9fbd6e9a68f26d49575bfe7e062 (commit) via 0cd79707332aef140efa2275363c40aaaeba1c22 (commit) via 6e51bfa75535439cc66039bcf4e8ebf16e8fe124 (commit) via fa8b7c2128cd03135b7d31ae2ecbc2d3273e990d (commit) via 58884b0e451043ed2fb4d2fba18134f0fb451ce5 (commit) via 07b95864f35f19636e2a95eaf3083a8b18ac7cda (commit) via 638d913757609367eea219d00296a0a3d45010c2 (commit) via fe49c6f559b67fee381f0c2a6f67c10ca306ca8a (commit) via c3d186206bf04a40244e727fa381f78a1600f196 (commit) via a994fec4f8f7a886be61cfb3023c354cd2483b9d (commit) via db9077b7275e86637218a7a7d165cb85a4de116f (commit) via a933405894161c8b15f675c48d077b7f7d6aabf2 (commit) via 4b1c0f7e85f2aec3df3498d04b5beaf45813dea8 (commit) via dce4fb839ca81ba4aefa9f5dfde8c8041826b3bb (commit) via c4e648430f3c5c135310f87280d45dba581aaa7b (commit) via 4c5ae11b42433dbffc33fbde75c9e415594504d8 (commit) via 3c0aa29aab3949363f8b23d062c2e0cb1ccf017a (commit) via f2f9e7ecc1f02bfe5da83c38cf356ea96d428c6d (commit) via c5f9cfc894373abd00ee56c6723ee0ba95a84f95 (commit) via 08f49010a10b1fc98f65aada96e788c87c56ad85 (commit) via a9c135fc7d0c005246849ff6b205fd5090248137 (commit) via 75323ba0a7588fcd6c8505077719abd50cae71e3 (commit) via 57a2957f2ead9ec2464a1b6fbdb250e90d27afab (commit) via 8bcf9b03922298bb6870b7163be90163c422973a (commit) via c5ba17787d077249ab7071192566a2c0205fc97f (commit) via a3c5fafd2e0bc8c1ea98c579c0a044c5b324967b (commit) via 44ed8f3ed0264016a12cfde3126f9148c07eabfa (commit) via f00a2de2a7556c59bce93f7ced44afa8e1bbf7c3 (commit) via 927aa2e778dce440f4de5de8fc37ead1683a804e (commit) via e5fa6583a7b1e5e0e0f33a4964a1f271e189cf35 (commit) via 4b514bc80885fa91e57b9d80f74ea267df343c46 (commit) via abccd1e7b7a37385159610ca4e0bc2632a547e9a (commit) via 437afbb81e3a04cbd933fc534a50c686eaa63b19 (commit) via 6432ec65a8822246db5bcede0c6bd3ed0e464a0b (commit) via a9d44aad42e127adadbad35f23931d8d83aa40c1 (commit) via 92469284a650232768523564f2c715c4ebb57906 (commit) via f17d9474776e50ae47aa71c52211ea6e21adf5d5 (commit) via a0de8c21baf46c40ed8e62faef5f750b1e5453ea (commit) via a738ea1d41daeec0cccb4ab6671f4f6d53bd9e18 (commit) via 8e481c3ba86e512b39b16b41de24e87a17f7d968 (commit) via 10af2a65c8891435d0d63411a3e694cc74c9447c (commit) via 1cd9a73b4280cb133b305ee31a0e87f114bd1be8 (commit) via 6b05c8bd437152d7a3ecfc19074ab243ee6c92f2 (commit) via 336ef6d22a5dba921eed85eb4fa75ed22a02a633 (commit) via 2d054e6bfdfb0f58fb9cc501c29327df34fec697 (commit) via c8bed57010e8789212a6841db4b397b175a00f9e (commit) via 63a22aee30c7109adec9e9f503a086210683109e (commit) via fa6eb693cf43b427474b1d96ce093f6ea9e5da6a (commit) via 883fd55ab1049333364479a7f5b0c7e61a310bac (commit) via ec72db3ef415ebdcedaf36a1d83bd6624ec063e0 (commit) via 99598d713f45d1b26015ec3562d160dc2b3792e4 (commit) via 23a8d1862b7e5b95f0fe9d724c6be326e545e6d1 (commit) via a8806230241d201f808d856eaae4d44088117b0c (commit) via 30970df7d56bd65657c97296f31fe9862bf27e1d (commit) via 824cc835aa9a4d585d955db4ab2a5dd4c17cc22c (commit) via 9c226a8689db8bced43b94f551e118551219ce54 (commit) via 7d6de425dad59050131ac4ffef84068e57bba7c4 (commit) via 931c97c81a55dffed31e20e0cd109aced62221e0 (commit) via 05a5feafdd3869b81533993a23c344d60baa56de (commit) via 34ac47f671d870c62635cac209d8df4250f20192 (commit) via 649a140ccf129ff79ea55ac0cc23ebddec0f02ef (commit) via 9a93831ccc0ba3ba447552069f230e6d93dcbf3f (commit) via 1c9c7ce078427891a94dc7604ce9e62175ebfda5 (commit) via 7cc244debb587d0f6179d80b5ca9b0ee86e9ab72 (commit) via 846fefbdb2280374ad91afca3d24fa0c3fa26f96 (commit) via 9c1ce1085070f42718e341d89a28881edd96161f (commit) via 07d6d2b8345ef3dc82eab49635acac9ee67dbb18 (commit) via 65281396861dfcfa993eb5af4769d6837104890d (commit) via a3cc9aad2e3de033462d64c8e028e1a3587c63e9 (commit) via 3bf083ed23b1337341129b810ed5da29ba8207f9 (commit) via dce2246a6c934bf35157e8970d0da5a11aefb282 (commit) via 8fbc617a46b015098876a7515c3a7ad6d1682876 (commit) via 0527614a9b805d1f640f477f51f9780403487ef8 (commit) via 858c9d13240e695bc3b750368f5d4e524b12112e (commit) via d4a0e8b57d6f85e4ee4a31e0e6929ff5b4fd9823 (commit) via f0cddbef410cb626ea87b3a954bd4e3d7526115e (commit) via d05200d155f065b93e2dc353a7d33408c7574e9c (commit) via 082b9140d953b9e6a78271384ec48ff5d0ba8fad (commit) via 53c934e9fed9a35542661690e4e71febcbebb539 (commit) via a8142ee195063e8c7202429e80ee58185c34b3fc (commit) via c9c895b9666e33a2b910faf9c1b667ea665f00f1 (commit) via f65ff9f9a4add415e5ae332a094b2134c1625517 (commit) via 3eea796c5daeb7b60531fc3d707470fa91a86e11 (commit) via 40e2a9835f6cf47b630babef3fd788e413ef2dc5 (commit) via 129c10bcb9b3bc2ed9682040aa9a0d144bb5e959 (commit) via ed9376bd95c52ba00aa37b224b4407030a00d184 (commit) via 798a7429f980a00844c22dfdda9475c451c635d4 (commit) via da02107a39f3eff5e0b6d6321da4e88f9564350a (commit) via 4d7efb8ce25f6d2c74c8073fbca880211cedda34 (commit) via 3e1a70a0189ae8d2dacfef93790e42e42e721762 (commit) via c179febe79bf2fe2f64852c827813fc46da819f5 (commit) via cd93789b89f55355d3eeda6c31ed7bd0ed318acd (commit) via 1e52e8495a074c9d1f7ef17f13b9060b76be6f41 (commit) via afa840dcc021eaeb975dcde3bedbf46ea0511717 (commit) via 7403715e305f7733d8dfa4a8e1739f12f5180cb2 (commit) via 50a1fdd59c1777672a9be0e81fe2301c2a115fce (commit) via 826c3f1edc2f9da4594aed86b57a7b447a46016d (commit) via e21126b7b381a9083e6670ca9adaad6060e376d1 (commit) via c88f7cba81551fe60246af61ac41effa2d51d36a (commit) via 48f7f3036a792c655c98b0742574841743e38f58 (commit) via 97d4213f68ce37efe4c957f761e500a13b19f16f (commit) via fed44c60b3a3ded5e60982af7412d20603054910 (commit) via 1e97a22796cced8bba3359df46e8c2883653516f (commit) via 10f64178412d9c6e4f2faade0da271ab8be273c9 (commit) via f0fb2488c93c00fa1436a4813a375faa00a94de5 (commit) via f143cb5fc655e1ed0a6e15e6ba33af0d79ba1802 (commit) via c0e15c9bfd6fb4bf36e5240838f6ebed1e1f4a7e (commit) via f004534791145669d7765f8122e48f21e1deeb94 (commit) via 9521758bf967360fc1e18b2a2195d97ae19cb80d (commit) via 8f86d7aa8504e9a557e807a3e37718055befcd84 (commit) via e2b4407579df508f85de961dd693c9028e79d823 (commit) via c80825ff32ba805982ef5e66e4fa1a80e019d47d (commit) via df3e4dbe661e522cc63d3dab15c3974713fba4dd (commit) via 5a6b0a41dfc9b860f285ddb3a1e518299f614cd3 (commit) via 39a64da5fc9ce6decd7e5ba0bacfeb2144d2bd63 (commit) via a1385b7b881d2b129f8c26fac8ad20bc406a1a6d (commit) via 454296a2c1f3afe163e49730b9b396ffdd985e1f (commit) via 6b2a85daf5a5c20c6d4832de1f19109d9e1cf17a (commit) via 798a38e8de5f0fb5f7b17ae757b2bf4c5139c023 (commit) via e4eb0dec0b9219a27ea6b9769f098fff34612779 (commit) via 83e1b6c13a285b4e1e852e1647667f09bb26892b (commit) via 8dc7b443a6295da4b3d7ba22f3a7695990bf4f39 (commit) via da25033cd92a60f4462e1468abfabfee02d0b8d9 (commit) via c91bb56b06b52d45de7c8871a6d44ddae61ae977 (commit) via 634a3254c8fe1728c0202289afe594928094d860 (commit) via 6d83e819df0c71868d04db46c60ff0ecf8cf1914 (commit) via 035d856f2c3a30750e1260c595eca1e92e94421f (commit) via 222b39c283e3fd7823ad95ccc58ae94e76b63237 (commit) via 158600eb989bcbc364c6d18259f1cb32ea9dc478 (commit) via 0af4ccfc5bc7ded4d87f813e3754486eb5a75349 (commit) via 059256c7465164fc070482dbe04ebe4e2ccf1a08 (commit) via 97cbe998d0dd5c13a0317fbb24d745da367d8caa (commit) via 754fa8997d48bc9da80e8c2e0baaf36a313ba74a (commit) via b57e49f726f854e65b2ce5e87dc7ee664daac1fb (commit) via 40fc416f4e22913ba2a2bafcc8da05f59c677b7d (commit) via 7f0f8ac8b15f5f5327116614b4137e5dd533ada2 (commit) via 7ef67ba53397c52a87375403aa614c52b94ccc73 (commit) via ec6a20c268c3be4c34b951bc7d02543dca956108 (commit) via bd2e3511f74940beec6a39914480ed6ff88c0a71 (commit) via 71739b698d47945463f183619078ff680c277f0f (commit) via e2e321740ce2e36a97be2a410cd56eebaa2304aa (commit) via 0f873fd58b51a2906f31bb445ab685da04a1be23 (commit) via d0df06af9b70c5a6a2aa496437364f219e669067 (commit) via 2ee0c9b3eedca5d1071870334d2721be80a77ea1 (commit) via 92f402a7e03f5d747bc9a09c8da2f61cc539ac33 (commit) via 1cc75e929ff4e99b3bef4ca0e93250d5b1b126c9 (commit) via 7b2d20948528f94b405af3e951931758e92e8e4d (commit) via 0fbdde942914bd9834860b65f2943577be1e46e5 (commit) via 40363a913b8c1292af97b4f50a0b2c5e6fdd04cb (commit) via 63c1f59d665542359de4737e3e48033c588f44dc (commit) via 254cefe35f012977d567af0bbad2a8091d90e22b (commit) via 875fb7a785e78fddef6da270636e8f4efbfd3e0d (commit) via fd6798fa2d6f0374d45449c4212869da93623b1e (commit) via e0feb133429709603eeeb382c1ebb6edd0a886aa (commit) via 036aae79303c43c56b604bc215ce4a70fc2a6474 (commit) via 4a7e52349807017f9bc09ea25f07924f2ec971b3 (commit) via 6f14765f9f448bbe03750634eb42c4a9db6521b8 (commit) via f1af7b94c16029f2c6da9eae4076f64cd9383687 (commit) via e3919f3e898aa5ab9a98dcaf9e242a9ebacc0757 (commit) via 44122162aefcbabb2fbe5b531412d157da5e59fc (commit) via 7ac20022477c163983de77e5b16c016d518ca7bc (commit) via b5014f7af26ff0fbc1128b5fabdaf3bd5918dd94 (commit) via fd4e0347596acf79642625f4faad9e37c8fa0f0e (commit) via e21440ba622e17a2f12a858a87a6a75ef90654ca (commit) via f425ec6600b69e39eb605f3128806ff688137ea8 (commit) via e8020e54f4b9ac05150c4b02fa81e228d6cf1f6a (commit) via 668247656d5dec815a57761e98720dda09f72481 (commit) via 7505954411a168f5c5b9adec23eac55b1532fbe6 (commit) via 8029e59279e861071234decddf6a493119e0cb98 (commit) via f5a91472120952bbc40f277561626b8ccdf7b194 (commit) via bd69330db86b2367aac8aac5915f1686451c9d5d (commit) via a20714ff39f621961151d0c204e89062ab2107eb (commit) via a207cff2da9f154e4f581b19dcde215593bfccf9 (commit) via 4024cf2b8d864279ff87af1a2ade77ab6d710d50 (commit) via 5dcf52c19f7045fb179f703426d345b8a81d2210 (commit) via 6cf829987c6bc9ae61c7c9e8b4c71c4eea8ba2f9 (commit) via 36877bfb88f99dd0e4336f98233f7caaa1d594a7 (commit) via f923328821e2e835c725822bce2aac6e10c52dd9 (commit) via f10e937a1cdcffcca748c226ed78d09369fc4cd0 (commit) via 4581a1c7d304ce14e714b27522ebf3d0188d6543 (commit) via f6f1d339d4169a60362f1438221bd03f8f021f04 (commit) via 8ca2f0b9ac024db56ca40f2b37c0b6b2bfcd139b (commit) via 02ca603a481d55e175765ab5bff30a04b86e905a (commit) via ed6c0bfb2643861636581ac8775144efa1728c7c (commit) via d785b7d4b877ed465d04072e17ca19d0f47d840f (commit) via 08f650e6b657e59959d7db8af100720721bd10a2 (commit) via f106e10e5e80265e1c43532bba4cb997a7dfa022 (commit) via ca39c2f4dd0fedcaaee348be7a913f0c14876796 (commit) via ed9c7ee03780b8d5acf091091ded29cd40df8254 (commit) via 5dc824ed42cd173c1525f5abc76f4091f11a4dbc (commit) via 8de0e07bf381f677bb93a8da72185a54e5b014bd (commit) via 144653ec15141907a3276b6181c4d1114f71be13 (commit) via b0029dce6867de1a2828293177b0e030d2f0f03c (commit) via ff174d3ffad13af17a61583db3e1cd9c0c6cf237 (commit) via 82ed9683ec099d8205dc499ac84febc975235af6 (commit) via b23dc97fe237a1d9e850d7cbeee066183a00630b (commit) via 6c6bc899302deb7c9b14f71da79c0fffc992204e (commit) via 165f707ac88916aedecc96fa518be8879704d6da (commit) via cd5b2babea487b0a71a14b593af98330efd8d73e (commit) via a83ef4d139c377e0e87d105977d85c6ef9fbb162 (commit) via f0531ed6a429b0e6e6509e6852ccd3586f3fa1bd (commit) via 033bfb739b525703bfe23f151d09e9beee3a2afe (commit) via 57c1b6811a2d97a3de229351ed19201853245a5d (commit) via 18ca73470a0d7eb96a807c97559cbb9fddb4b461 (commit) via 66599a7dc0369583229c0c51e5e009cfa7cceb73 (commit) via 4f04fba813785f3d749376d9b434c0f94f835dbc (commit) via b5adff3b5e14a45501f5761877d587019c94368a (commit) via afa0a4115985939f242bcd54211c98345eefe16b (commit) via 8fd8d003de32661ed703ae9fd7e1a856f1b58f81 (commit) via bd810fff78006d38e3c287b7bd241319f4d763be (commit) via 75787ac19cdf7e8aa9b4c28f9421837ba479cf51 (commit) via 5c8a943144f6972dc0854f2d01d7cb365b06fceb (commit) via a26aa30cc535c9bde457cdd00daf0c82f25da0af (commit) via 6f3cdf9a3bfa2c0a22fa9dc40b45578e2ea7957d (commit) via f06afa533665d88c651617de528b9640eb4e8611 (commit) via b22c88c2ca013cc25d7a8fcbc748122bb1a349bb (commit) via 407e1140841f7fc337e90a7ba4482fb5a10c1701 (commit) via 148d6384291720bcaaa062badf1179b6215f6da3 (commit) via 76a493ab99d9276180db6e791f95d1d6d86d2954 (commit) via fe6c2f1b6409867a03dd32214679dd825f74ec48 (commit) via 46888d710015aa8d4bb3c2dac7aa6505d6ac8227 (commit) via 1c2649f50f4e40c07840f45c4d237efcdd02e8e2 (commit) via fec68fb168d580c188358347f3834072a8960ddc (commit) via 120bc8b8b91cba4a8d4092ea0fb3d76bcbe98712 (commit) via 10329bb27fa5531bf97da184c4d0ed9c4ed85605 (commit) via 6dda7875a8021787f11bd95a69d81a079e408a57 (commit) via a377ae2ad683d3c16ae74dba440ee441120a7d8a (commit) via 64973b0ac4c34e80821a56561ae1af15f7d6e809 (commit) via 4dff97b2ce94bbb9c0c16e0e4129060b9a894f13 (commit) via e3d40582166056dd1dfeef2a06ba8f5897b673ee (commit) via ee9a09e959a5b7c152cc72028d4f6c879bc901c9 (commit) via e8e7d10c39955e7ff99ff42f6f16d6befe2fa12e (commit) via 7db85adb3b988560d9d4706d826e193e83ae7cd9 (commit) via 6a997029fb0fca1a9e2832db80a3afb9bccaaf59 (commit) via 2b63c337d99fe12220e6ca12a71dac6cdd3224d3 (commit) via 41272101db08e20f044dbf0f09b6d79a0fa6c1ac (commit) via 44287fd89091a833451e74c79e46404c23fdaf9b (commit) via 8e2495f2f75120baae14f9dac9d29b043c539b2b (commit) via 58f7f0bf542ff9b712ef1ed6a6e1a6da563b9054 (commit) via 617cd4bc366e47f92ecee3c3f9850a0fd2e6c6a9 (commit) via 5ffd2cb722440053267d0db52df8bbd278fd6d91 (commit) via e5a8dd426de76af279cb6eff0c761ec866e97dc8 (commit) via 0e5457dca14e2e0474432566dc7a603db6c990f7 (commit) via 685de8c2990a04fba5e2954b7ff089a2c641071f (commit) via deeeba559bd0c18e06dba19f44571ee8a218fcdb (commit) via a81aaca0578ee91ce1cee56c0a31e26c2a5ef581 (commit) via 6a3c6ee41898743234d8fd9f9cab15f2ecdaba49 (commit) via 13450e7c7fdbdb9b25aae68c60475d061ed427d3 (commit) via 8955eb2da31d78690c762748fab3a16832ef1f81 (commit) via 0662b6a7c1b3b04a4ca31a09af703c91c7aa9646 (commit) via 276da9b31bd6e3eb8d1dd814c867266f59f29093 (commit) via e547c119d043f2ecffb70452020ab9150d083a91 (commit) via 5f1ca24acd8fd4e21c4f6f3ed2bbc4e2365215fe (commit) via f5291a6f321ba6d657aab447ebb6a168ae48d40b (commit) via d7fcdff980f113ccf77f8dd2f8fb3de3d6addaa3 (commit) via 4e25ac038efbe5293885cc75d8a3e08b23da7cc9 (commit) via 0fbc35681ff0825be97802efcccf953bc4573a45 (commit) via 8b77421a20c22c9a66048e7d1484b149da060b67 (commit) via 30649c145114fe3aac089bf06e9457238d46341b (commit) via 7696f5c95761be03db7ac62683aa027ecea30fa7 (commit) via 8172f16b5b8bf3007d0aafcb38964a408f0e844f (commit) via 7aabaf9d4ad52a1df1f551908fbd8cafc5e7597a (commit) via 21fe1c752e254167d953fa8c846280f63a3a5290 (commit) via 089354bb0613ca1559813f0a79fbe73655113785 (commit) via d044bac8ce5e6737d13e7e5180f5a5641053e690 (commit) via e8d58cbaacb9ca54ad32eee1a38301202e09f878 (commit) via 650444eb540f9fd85e821567a3f943b4bc41b8be (commit) via a63f2d2feedcfce401ae1d7d03d119bfa5e4d8bc (commit) via 1b30aaa56607a563fa263b9d2ee9eba89d79c1b4 (commit) via 6654d750c7c584dd83b93f062c5628f15c675480 (commit) via 49bdb7ee48a10581e9f7254782f2eb953c4a164b (commit) via d6d7ce56231ca8c233e64b2ebcb910fe334d6ff8 (commit) via da434ccbc3e0ed843700790cd16c1d4bb5882460 (commit) via 98ead37e9735438986934f9f1f35f020a093fe07 (commit) via 62ad7ce71b243df3e8d7d4f8b8560a7316233a9e (commit) via 506fe5f4996738f25b7c26f126a84b231429ba95 (commit) via 6d2cd6b2084d980a4baf5b4bdce8499c2295a672 (commit) via ac465521a50102d589a6a05a1e722dfa349d3181 (commit) via 00ea2e2ad34edd202f58d9a1eea2081f0905f9f2 (commit) via 7e8006d14c544a069619dc2bb2c9d2d2b7fd99a6 (commit) via c139731b13f83da3c9436f92d52b915e94ff7480 (commit) via 5f71e59e1a284eec67ba2a91851d0ec8319b0b95 (commit) via f45e2a7704c738ba8195a667f910297c4155924e (commit) via bd046f64a193405f2fef2d5120fab4be25feaa8b (commit) via 4c37490d92c0168e5192ce109a791c4b3fec9f8e (commit) via eb02c04dc3600e18bb06dc1ef8fc3cf9a967d550 (commit) via 7c3c1aa885b720e25b25af6ac05f34f9ff0e3dfa (commit) via be7d1531e1ce34efbdb9367f1483f9cdad477059 (commit) via 287c7eaf0d90cc1bbb5a5463c665b163c6ee04e7 (commit) via ab2477e15cbe067ff119f1bb5dea05de3cadbdd5 (commit) via 60d67dc84bbc7d73672d297d714f8a4a0547618d (commit) via 9d9c67b06c1bf4c4550e3de0eb575c2bfbe96df9 (commit) via 65f3ed048fa0741e874c7aa372f9ddba153a2949 (commit) via 43083a502b8d658b8d096111e54afcc73b0215a4 (commit) via 9bb129e82f0506fe78d61670ea2b4140388955dd (commit) via 66f1eba0b7e83f293573ab42bbbe5d7d5c905d91 (commit) via 38bf51134d1a58f155c89f2b1c7bf885c2604ead (commit) via 9c23b42ffa67b866cd7562c1d8caed70db5d6840 (commit) via 0e9ae10f5f97824067365af4813b843973297573 (commit) via 935676c92feb5f35e4634ef58c20ffdfd0979b07 (commit) via 88108bf28c4a726af84dfec2f85b8404cc2ac0bd (commit) via 8f6cb6c33815f38b41e1e93e59f12869db07c070 (commit) via 479f8de1b3b7e69ca8d557bbe9d843c7d1bc89c5 (commit) via 41bd68f52c05f5654bed49f312f6562c8d048897 (commit) via 7e2fd2f47b37185505f68e45c5cf016c7a16e1ce (commit) via 0604393c22f626f26b5a4a30e57da40404f5aa5e (commit) via ddf0ea085b626ddcbb14f88f495bcb677b7ab6e9 (commit) via 9e5b9d2b295d1771647a9e4bc942e398142ccf9b (commit) via 2469b3c58447e98e073ffe7ab6c9627dbbd1aa81 (commit) via 2ca23e65f562bd0efa7c483a99b49cc3d5118a58 (commit) via fc35dab1a62541858cab1c82aebc6cd166e39f5b (commit) via 1daad298d699383bb4f35aa919a1acfa0ab8e16c (commit) via 88465e872cb6649c42863e5c47011bae9e17bbdb (commit) via 94b98370de3ee157e039f26865390b5994c47c3b (commit) via dc196b230b7366683799755b4461acef5cc95be7 (commit) via 6f19e86dac3a191945b5eb08ae767deced660a00 (commit) via c7478d028e8829402b05478f571eb5e1916c63d3 (commit) via 5aa75429d0531ac6cfe59efd80f1ab01311865b3 (commit) via 2400729ecfd2c7be8b18aeaa822fef5a4b503f8a (commit) via 7a26362d360ee34de1e8e927bd7159860fe8354b (commit) via a9f26f609e3a1b6ae3aab300b55442e0a81e2bce (commit) via 29f9a5673764c1b2711c0ceeba380a6ee764d1b2 (commit) via dc958481429708ecf91f9b2c445063d43397f07e (commit) via 0ad71725d917c51b46ffacbad25744dd889e87da (commit) via c757658ed60fb1027a4335358bd55eaf6c23190f (commit) via 3b1b69bffe522f22d269723856d2caa901041819 (commit) via 54aa6c67f5a0d52dabd428cc40ce02781032acd3 (commit) via cf3fbed4a00e668ffcad1b878eccec87334fdcff (commit) via 9edcc12f9b714149f84bcf20dbdad91f030e62de (commit) via 65d40437e2704e635e7144319e956edf3e7fa026 (commit) via e02544b292a3d537b43ae9cff890ea040b944d01 (commit) via d6251545e230b243abe60e334bb3f78c5e564fa1 (commit) via ed0f427344d0befead629d9267aecd01bfb72721 (commit) via a25d69c6dcbabf3f6629b847246ffb4ddbc29472 (commit) via 2824e1bd4fc93f112875969b1ba606980aaa55ba (commit) via bd560f571fe7a83755a17e7b5951e70f5e4c5039 (commit) via 50d2740d562edc68b2fbcacc0585c3acfc2c302f (commit) via d85bf2ba86fea1cf918f065d179b98eb4ddbde86 (commit) via 0fc7642151cc5e62f05ac8ea91fe4d5b44bee11a (commit) via 0ee5a0e48314fec3522f7eabadd5fea920628077 (commit) via bf3d139947aa7f846b463db4a7c4b6059a183e11 (commit) via e6b2f5efa97c7f3de8a3947c6782c40ec6172686 (commit) via 5c58de74c9acb346513c974fcdede270be2a77c3 (commit) via e1ef7d7a5166f846b14bea5a77acb0dec76661a8 (commit) via 9752982420bffb6cace1a25830a92db7fcd1dbd0 (commit) via 73fcf6418ddce47ead4ffde4fc9fea8e8bd1f4af (commit) via b77db948f4175e479bb3310ba86346c9554ab9f5 (commit) via b7486a74a62527412cfd2dd50a9a100118265c28 (commit) via 28e07a0510ca896311014cddf125aedfd7a8cd52 (commit) via 578290ecafb83e93f0ac695df586b65dac5e8c5d (commit) via eca55aec1d919b69e0d61c91367f8b4d25bc7c43 (commit) via 25c28b4d153ced950cc8702aafb054d6f14f6a02 (commit) via 5fdda39248cc4a3311efbff3cf2350123d638232 (commit) via fcb056a58dd38cfe7bcd34b7889138bf807c40b8 (commit) via 139720c5b32963ce52c5f691e179920ff84a2237 (commit) via 6d1e5673fec830f0f1c86632a5d9333e34582bb3 (commit) via bbf550d50e4c85666877456f014421089503e83b (commit) via 00192f771796a144fe27f5f1d98d8e6f66976221 (commit) via 2bee2b6ca4cb1a736f963a168dd2ded2831c540d (commit) via 0b360f1926cb15edc39c661dac2f1a433fb288c0 (commit) via 9c512d88c36689cffc3caf5875bc4a08b0ea05f4 (commit) via 20dd9c210ef05fc6e87afe07670d8ceba530a1c5 (commit) via bde954a064b0a983d1db37cec4777d576d7a9d56 (commit) via 671275c35e71d3bcdde173d8817e34e89b984241 (commit) via e4ec19878f7a6d99d87ec12cbd7b313062f64fbe (commit) via 160b1a618ad94988410dc81fce9189fcda5b7ff4 (commit) via c977a5f0280f29136631cf043d6ce6cfdbc47b99 (commit) via 033366417daedf6bf044608df1c7a8dfe01a0de2 (commit) via cf724bc93ee954a6f7aac0557afc41c1316dc80c (commit) via 68e745e38edebd2a12d60ef7b5774066db3f1c40 (commit) via 71a3c36949407eafea744bf00334c4e0c136f927 (commit) via 7468702dcb37013edbbbc62e247e23c4b2632379 (commit) via f27866ba9c348a72a899f5a84dadf1f943c89720 (commit) via 37269bc92ca6a79f9e56fe83718f3c86a1db845d (commit) via 5c632425957f0150a0d5d1e747f0425f74622132 (commit) via ced9779b4c45b9bc9c16dd98fa30d7a620e93a55 (commit) via 3cfd3dd0956fe854a07795de12c1302ecabbd819 (commit) via 2c244f9b0935e577d7c20bb5706e27438e48227f (commit) via 6a6196fc71467e39e9009d6306ef13de008c6fe3 (commit) via b7e228508255359e473611fdf7c067b0b79cadbe (commit) via fdfffb6ea04ab0e857e8bdc17841a7372b187bd0 (commit) via a0922d80dff15d4fbd5d469f56bcd1696846b90a (commit) via 9ccabccd15603dbf9fe988c86708fe644d1398a7 (commit) via d930703d68ae160ddfe8ebe5fdcf416fb6090e1e (commit) via 38dc2859c464733314c591d30a5359db20167f7f (commit) via 688fca4fe6c83a6802731faa8455d177998d614d (commit) via e2c33ac745108550dcc2dc61d23378fb2fa9e911 (commit) via ea04e54ca8b935b01155c3d40381d879dd6ba683 (commit) via d723696126beb185dc1f8f3196be7cb29948148d (commit) via d0f7791c6659081f3a62e220289417c010997baa (commit) via fadfa6b0020b934500356e7aea8934a4565657d3 (commit) via 68ffd9368a020fb685520da51f8c672c720869e4 (commit) via e9dbdd80cb02ac66cf7d4cd1207ec11928db2c95 (commit) via e849ea896bcdc3da8caff02eb6dc91dc85dd8a7e (commit) via 80a0437873045cc08753fcac4af154e2931a99fd (commit) via d8ae99a7b08e29e31446aee1e47e59943d7d9926 (commit) via 38b28f7088057d70497de7312cd983ec8e408a76 (commit) via 5f847646eeb0107cb8c5e44c8bca3a4c88c91673 (commit) via 968a13f8362072b5f7eae8584d490b53d7f97ca5 (commit) via c2b9da16088f8c500ab93e9a4e3001ab7393cb38 (commit) via 8c8cad3aa839747e368cc5db58331756a2b70e8e (commit) via c632b6456b1f220475fbf61f19ada28230449ff6 (commit) via 1d0aa65c24f7c6406718cb506bed912aeec1d5c9 (commit) via 3491a34c4f7de10dbd19c719052642d8471c45a6 (commit) via be7f7611881bae0fb9e26c892ecd61387d32542d (commit) via a014b87a9ac665d2b92cfc66384d1af3ddd345dd (commit) via 9476501135dbbe1eb2e104ff219c7988920d23fc (commit) via 625ad4406d301f670b823a7767528f3ba7e292c6 (commit) via 71774bc994e3f2a09c3b1988dbf2e99b86f53e2e (commit) via 01f48020363f1ca9b31df2ee0b2afedc38db1259 (commit) via c0c11fa91dbbf91b9c9d04384fe9f3ef5a6e7145 (commit) via 34a7ebaff9e522913afba4e9cac9d8d5064e5480 (commit) via 5334ef3907e2fbb98aef6839df23e41dccfaf701 (commit) via be74fad95edc8827516e144cf38d135b503249cd (commit) via a5065160868895e91cac8515263d9783f8120818 (commit) via dda8d76d0dd2b07df769f6cae20aff483468b342 (commit) via a602f924c8e281d40868844b0f0747fadff3f29a (commit) via a714b0d6928ba195623ec2825b00c446939f6e59 (commit) via 390a67891e4f1ed334e266cf084ba8948da5fcdf (commit) via 3a2430e05b1503653ae09cb21feb2a0d4ea51ec7 (commit) via 0645f0a2a75ad77d9786595978591d3f302f9647 (commit) via 99847db8ea741f895d79b9312114c13ccb660d83 (commit) via 583712f5ab935948b6c28f1b8b686308f0652ddf (commit) via 4fbd5513b100b94b6b9fdb51975f79c38b6b1040 (commit) via 754842fba3981b8d9d4d516d6cfc65d3992fa4b2 (commit) via 47f19c17d6eaa45dc756a057c299a5194ad0b75c (commit) via 92ffd475192030a46a6046177c732372b4dadad5 (commit) via 074319087452e3a8b1a0e84279a82555dd798d69 (commit) via 06bcf5416feae129e239476ab1408e038bba171d (commit) via 640d0ed874167d73b11dfbf5e838c65cc43e6a63 (commit) via be92cb147d77d0ebc6a084a18627d800a9da9f95 (commit) via 2645e1d0798da9487def06d14bb744c33dba702d (commit) via df145ef65632dbc6bb31f8d01a088f8600b6c7f1 (commit) via 2d0d44d514d9a2e2b0f7ae8129d52b02160c9897 (commit) via ddbb44cf366b652dc9edf2ccd4605f1ed0e2e62d (commit) via 8f8a20af3ff322f868ce8adfeb86c6f698265a2a (commit) via 58e6cc77b7605e26cbf3fccc166089c01ceee95f (commit) via 5616b6c32f7454987ae167ba35589e095c0172fc (commit) via 5b2b928e83538b23eb1b3f585b14c3d6cf1bfd7e (commit) via 6465780617638ce65bd7458e30b34ebdc1a99f52 (commit) via 5be87c8fa74c9ae6684bea571b4157ad1966d008 (commit) via b76bc5d54e36f15efd954898d9aa075c2bea02dd (commit) via 897e603cb98c50968ea21d1b3baac5bc020ccc06 (commit) via 1187cf29b1f77b4d806c3bbe1fcd86fc7387eeb9 (commit) via 2abc2bec4d8c241c1cd3972b64162407128b4daf (commit) via ed1794ee7a2bd8adc22e5bb8e7343b72758d5692 (commit) via f4d18a54667ded2b50894a3d0740f93825f2a3e8 (commit) via cba6246d3ad332ab353afeff0016b195ffc69e05 (commit) via d7475e036f69ff7ac78252db74a65fe4d617c4ee (commit) via 0f99513f2a52b7d73b94a1f77b8c6de9159b50d7 (commit) via f882209d9aa5b68d68c45c5849e129ffc228749c (commit) via 53892e6d2395b818554b825cabf6129fed7e2aae (commit) via ce3ad333570333287842ed20f55220534ad4a025 (commit) via e3e53eed9c2f1ab82ae4a7683f474b4f6eb162c7 (commit) via 529fe20eeb0030ea5d653d0ebec433f9e3145874 (commit) via d95639024585ce43e8fe0557ac85e706452e1515 (commit) via f617a0f6ceeb34dfd39d8673b0ab225c9127aab6 (commit) via 9080294593eee9e09625e62b2201da57ee150e11 (commit) via 09a5b18a6ae9fc5ad30f88d646b7f7313a14929e (commit) via 584a564f366de16d1cecd1910ab0be8ca6167415 (commit) via 5ed7a928acc231ccd13af71cf6df9900250cf884 (commit) via a60e07381c812ab82aff9abae203fd192f460ef4 (commit) via 2c88253fc469fbf40be7f0d1f7060b81055f2eb1 (commit) via c7a3851716f98540396b9e02be7d2fcd3bff2d29 (commit) via f29f4b6ba198674096fddf2aa38fa8d028d387b2 (commit) via fb24d531e9ef7ad7831ca62298d21684717cbe38 (commit) via 31432a672fd40058a714eb2791ea1c3168ccc4f1 (commit) via 52c6b71b65139cad73ada8df81293fd645eac173 (commit) via 981b557a488f7c3179dee1e34515ca9b10cf885c (commit) via 793a194839bc8add71fdc7429c58b10f0667a6f6 (commit) via 1a7ed57c840dcb0401f1a67c6763a89f7d2686d2 (commit) via f42f1a1d6ca0cc84e43d7f2b85044a2565ca00f2 (commit) via e793c052f9d9548442a46817998a46cbca4ccb70 (commit) via 7e8835c5f44931d02ecd8c8ba3d167e891981d24 (commit) via b6b9ca0c3ec9589d0dd40b2b86ba748a361b48eb (commit) via 21b81e67c73368dbbc9f6356ac5a7eb274789a32 (commit) via 286acbb5c25c5895832d3dd3be3398d3f2d64fad (commit) via b44ec61915f10a953ca85da5bf7a97911554f1aa (commit) via dc8d2d90da3f191ae0461900ab98e3b29cc2b280 (commit) via cb1a122cce8a7eefe1025d8d189c52f96da6138f (commit) via 62d7ae92341b53ef10b709464edca759d6738500 (commit) via 333d0055f6f162c334c36f1946b6fcdb5c92b681 (commit) via 08228b11557016f6f12d537ebff5f169fdf9bc6c (commit) via 280ca31f4d608082e1b61cd0b6d90fdc3450b9f3 (commit) via c9ec0e8945d057979a361e3545d42b3f15adf04a (commit) via 9031cb4af0adcf1c73cb9b8c73ca2d989023af2f (commit) via 2f4732b0e622d9d5d899c29e2132e4cd2966aaad (commit) via f9d67a22392f8f52c779f68a2561eb35c2f86b81 (commit) via 56d87ef769e6adab27af77fa86ea294ee7c6ee72 (commit) via 1b0261195e3f11932c0f5657a74028f5814168eb (commit) via c62446b12b32ce57d2b40cdb0c1baa7fc1677d82 (commit) via 61920122ba93d58cc2e8c78a30475c569c2506fd (commit) via 3f563c840a2c891ec2868b3e08bfaecb6f7aa57f (commit) via b5ec771e60c1a0863e51eb491c85c674097e9e13 (commit) via 5ffa0793690b42b2a0c1c21dbb5e64634e58fa00 (commit) via 2a1dde5da23779fd0d269c3e51c7814aba9001dd (commit) via 2841837fac18861bb62e039a20321075d1e76248 (commit) via c0e7cef7156b2bc15ba43441ad14c6e83c09df8e (commit) via dec41383fff7116c9f66cdeca3105e968047a4e6 (commit) via 6e98b3428bdd0bf388c3c72eb205105926b15a64 (commit) via b346cb961f729e2955391513a5b05eaf02b308ea (commit) via 95a6b0a106fac6ea35670421534d461a3663c0ba (commit) via eb4c3f4aaae2ee1b27c210e951260a7e699133b4 (commit) via 5fed81ff351121887a93b5b57caebb86667cbbd2 (commit) via 1d12d88f186fe1ae66deccf877b5509c506c4d39 (commit) via 0b39b52e6e92cf6d465d48499c657fcb17a63c7f (commit) via 85c4be7c83b80acf647e6ffcaed0f0cdbcb8c3eb (commit) via 022643b4456ee13752b0f3a8411238ab8c53bf6d (commit) via 5614fb77203f5ea01edfb2d739e9d4f3d570dc09 (commit) via 6be9a197d96c3c346271b46ec6270bd719eb9932 (commit) via c2252c0dd8dcf3bb95598149aecd3158e89c31d7 (commit) via 1ee870c5249864d36717a08864c60d7166b6b292 (commit) via ee7ddd713206fdf02512a9fb3fe928a210200c11 (commit) via 52eab766df54915f8d3d71475235868285c4ca82 (commit) from 37e2b1e4e11410819a8e862c6ab3c0fe27298f57 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 975a0cde0cc8190d62f6eebb227c23e49e62602e Merge: 37e2b1e 0984958 Author: Stan Cox Date: Wed Jan 24 10:18:12 2018 -0500 Merge branch 'master' into scox/gdbserver-multi-client commit 0984958bd1d20245e4d42888a697b6015dc6172f Author: Maciej W. Rozycki Date: Tue Jan 23 21:18:24 2018 +0000 MIPS/GAS: Correct default ABI selection for `mips64*-ps2-elf*' Correct an issue with the `mips64*-ps2-elf*' target introduced with commit e407c74b5b60 ("Support for MIPS R5900 (Sony Playstation 2)"), and make the n32 ABI the default for GAS, consistently with how BFD and LD are configured for this target. gas/ * configure.ac: Also set `mips_default_abi' to N32_ABI for `mips64*-ps2-elf*'. * configure: Regenerate. commit 62fd0a980b2dc8a3332ad6ee3f8e7c8c841ff693 Author: Maciej W. Rozycki Date: Tue Jan 23 19:01:35 2018 +0000 MIPS/GAS: Remove a stale OPTION_COMPAT_ARCH_BASE option marker Complement commit 23fce1e31156 ("MIPS16 intermix test failure"), , and remove a stale option marker entry. gas/ * config/tc-mips.c (options): Remove OPTION_COMPAT_ARCH_BASE enum value. commit 1c5e4ee9ab4c173aca017d488cc074ef66562a12 Author: Maciej W. Rozycki Date: Tue Jan 23 19:01:34 2018 +0000 MIPS/BFD: Update a stale `mips_elf32_section_processing' reference Update a stale reference to `mips_elf32_section_processing', following a merge of the function into `_bfd_mips_elf_section_processing' made with commit 103186c62b99 ("PATCH for MIPS 64-bit ABI suport"), . bfd/ * elfxx-mips.c (_bfd_mips_elf_final_link): Update a stale `mips_elf32_section_processing' comment reference. commit be3a8dca2d7241878302ca55f45129d532b6f746 Author: Igor Tsimbalist Date: Tue Jan 23 19:56:30 2018 +0300 Enable Intel PCONFIG instruction. Intel has disclosed a set of new instructions for Icelake processor. The spec is https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf This patch enables Intel PCONFIG instruction. gas/ * config/tc-i386.c (cpu_arch): Add .pconfig. * doc/c-i386.texi: Document .pconfig. * testsuite/gas/i386/i386.exp: Add PCONFIG tests. * testsuite/gas/i386/pconfig-intel.d: New test. * testsuite/gas/i386/pconfig.d: Likewise. * testsuite/gas/i386/pconfig.s: Likewise. * testsuite/gas/i386/x86-64-pconfig-intel.d: Likewise. * testsuite/gas/i386/x86-64-pconfig.d: Likewise. * testsuite/gas/i386/x86-64-pconfig.s: Likewise. opcodes/ * i386-dis.c (enum): Add pconfig. * i386-gen.c (cpu_flag_init): Add CPU_PCONFIG_FLAGS. (cpu_flags): Add CpuPCONFIG. * i386-opc.h (enum): Add CpuPCONFIG. (i386_cpu_flags): Add cpupconfig. * i386-opc.tbl: Add PCONFIG instruction. * i386-init.h: Regenerate. * i386-tbl.h: Likewise. commit 3233d7d074e59b83f68a22071cff597f00d5ae81 Author: Igor Tsimbalist Date: Tue Jan 23 19:39:05 2018 +0300 Enable Intel WBNOINVD instruction. Intel has disclosed a set of new instructions for Icelake processor. The spec is https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf This patch enables Intel WBNOINVD instruction. gas/ * config/tc-i386.c (cpu_arch): Add .wbnoinvd. * doc/c-i386.texi: Document .wbnoinvd. * testsuite/gas/i386/i386.exp: Add WBNOINVD tests. * testsuite/gas/i386/wbnoinvd-intel.d: New test. * testsuite/gas/i386/wbnoinvd.d: Likewise. * testsuite/gas/i386/wbnoinvd.s: Likewise. * testsuite/gas/i386/x86-64-wbnoinvd-intel.d: Likewise. * testsuite/gas/i386/x86-64-wbnoinvd.d: Likewise. * testsuite/gas/i386/x86-64-wbnoinvd.s: Likewise. opcodes/ * i386-dis.c (enum): Add PREFIX_0F09. * i386-gen.c (cpu_flag_init): Add CPU_WBNOINVD_FLAGS. (cpu_flags): Add CpuWBNOINVD. * i386-opc.h (enum): Add CpuWBNOINVD. (i386_cpu_flags): Add cpuwbnoinvd. * i386-opc.tbl: Add WBNOINVD instruction. * i386-init.h: Regenerate. * i386-tbl.h: Likewise. commit b4f6242e95340a31b0519187c5fc329056ddecfd Author: Maciej W. Rozycki Date: Tue Jan 23 14:51:22 2018 +0000 MIPS/GAS: Correct `as --help' always reporting `o32' as the default ABI Remove an issue with `as --help' always reporting `o32' as the default ABI regardless of what the default actually is, originally caused by commit cac012d6d394 ("check mips abi x linker emulation compatibility"), missing an update here. gas/ * config/tc-mips.c (md_show_usage): Correctly indicate the configuration-specific default ABI. commit f866b262e8ffaa4339dac8698932e097756a8880 Author: Maciej W. Rozycki Date: Tue Jan 23 14:51:22 2018 +0000 MIPS/GAS: Add missing `-mmips16e2'/`-mno-mips16e2' help text Correct a commit 25499ac7ee92 ("MIPS16e2: Add MIPS16e2 ASE support") GAS bug and add missing help text for the `-mmips16e2' and `-mno-mips16e2' options added with said commit. gas/ * config/tc-mips.c (md_show_usage): Report `-mmips16e2' and `-mno-mips16e2' options. commit 14c41f479f2eb6b34ab2d2bb0cedb88e9d51f211 Author: Philipp Rudo Date: Tue Jan 23 13:37:44 2018 +0100 s390: Clean up s390-linux-tdep.c After moving big parts of the code to the new s390-tdep.c file s390-linux-tdep.c now contains many includes it doesn't need anymore. Furthermore, there are some functions lacking a description. Fix both and order the remaining includes alphabetically. gdb/ChangeLog * s390-linux-tdep.c: Remove unneeded includes and order them alphabetically. Add comments to functions without description. commit ef8914a4d7d231fe3590f3e004316613e25f3617 Author: Philipp Rudo Date: Tue Jan 23 13:37:44 2018 +0100 s390: Move record-replay to s390-tdep.c Record-replay is independent of the OS. So it can be moved to the common s390 code without problem. gdb/ChangeLog: * s390-linux-tdep.c (s390_record_address_mask) (s390_record_calc_disp_common, s390_record_calc_disp) (s390_record_calc_disp_vsce, s390_record_calc_rl, s390_popcnt) (s390_record_gpr_g, s390_record_gpr_h, s390_record_vr) (s390_process_record): Move to s390-tdep.c. (s390_linux_init_abi_any): Adjust. * s390-tdep.c (s390_record_address_mask) (s390_record_calc_disp_common, s390_record_calc_disp) (s390_record_calc_disp_vsce, s390_record_calc_rl, s390_popcnt) (s390_record_gpr_g, s390_record_gpr_h, s390_record_vr) (s390_process_record): Moved from s390-linux-tdep.c (s390_gdbarch_init): Adjust. commit d6e5894564754ed81faaa3dc92f0cc0e90d7994b Author: Philipp Rudo Date: Tue Jan 23 13:37:43 2018 +0100 s390: Split up s390-linux-tdep.c into two files Currently all target dependent code for s390 is in one file, s390-linux-tdep.c. This includes code general for the architecture as well as code specific for uses in GNU/Linux (user space). Up until now this was OK as GNU/Linux was the only supported OS. In preparation to support the new Linux kernel 'OS' split up the existing s390 code into a general s390-tdep and a GNU/Linux-specific s390-linux-tdep. Note: The record-replay feature will be moved in a separate patch. This is simply due to the fact that the combined patch would be too large for the mailing list. This requires setting the process_record hook during OSABI init to keep the code bisectable. The patch moving record-replay cleans up this hack. gdb/ChangeLog: * s390-linux-nat.c (s390-tdep.h): New include. * Makefile.in (ALL_TARGET_OBS): Add s390-tdep.o. (HFILES_NO_SRCDIR): Add s390-tdep.h. (ALLDEPFILES): Add s390-tdep.c. * configure.tgt (s390*-*-linux*): Add s390-tdep.o. * s390-linux-tdep.h (HWCAP_S390_*, S390_*_REGNUM): Move to... * s390-tdep.h: ...this. New file. * s390-linux-tdep.c (s390-tdep.h): New include. (_initialize_s390_tdep): Rename to... (_initialize_s390_linux_tdep): ...this and adjust. (s390_abi_kind, s390_vector_abi_kind, gdbarch_tdep) (enum named opcodes, S390_NUM_GPRS, S390_NUM_FPRS): Move to s390-tdep.h. (s390_break_insn, s390_breakpoint, s390_readinstruction, is_ri) (is_ril, is_rr, is_rre, is_rs, is_rsy, is_rx, is_rxy) (s390_is_partial_instruction, s390_software_single_step) (is_non_branch_ril, s390_displaced_step_copy_insn) (s390_displaced_step_fixup, s390_displaced_step_hw_singlestep) (s390_prologue_data, s390_addr, s390_store, s390_load) (s390_check_for_saved, s390_analyze_prologue, s390_skip_prologue) (s390_register_call_saved, s390_guess_tracepoint_registers) (s390_register_name, s390_dwarf_regmap, s390_dwarf_reg_to_regnum) (regnum_is_gpr_full, regnum_is_vxr_full, s390_value_from_register) (s390_pseudo_register_name, s390_pseudo_register_type) (s390_pseudo_register_read, s390_pseudo_register_write) (s390_pseudo_register_reggroup_p, s390_ax_pseudo_register_collect) (s390_ax_pseudo_register_push_stack, s390_gen_return_address) (s390_addr_bits_remove, s390_address_class_type_flags) (s390_address_class_type_flags_to_name) (s390_address_class_name_to_type_flags, s390_effective_inner_type) (s390_function_arg_float, s390_function_arg_vector) (is_power_of_two, s390_function_arg_integer, s390_arg_state) (s390_handle_arg, s390_push_dummy_call, s390_dummy_id) (s390_frame_align, s390_register_return_value, s390_return_value) (s390_stack_frame_destroyed_p, s390_unwind_pc, s390_unwind_sp) (s390_unwind_pseudo_register, s390_adjust_frame_regnum) (s390_dwarf2_prev_register, s390_dwarf2_frame_init_reg) (s390_trad_frame_prev_register, s390_unwind_cache) (s390_prologue_frame_unwind_cache) (s390_backchain_frame_unwind_cache, s390_frame_unwind_cache) (s390_frame_this_id, s390_frame_prev_register, s390_frame_unwind) (s390_stub_unwind_cache, s390_stub_frame_unwind_cache) (s390_stub_frame_this_id, s390_stub_frame_prev_register) (s390_stub_frame_sniffer, s390_stub_frame_unwind) (s390_frame_base_address, s390_local_base_address) (s390_frame_base, s390_gcc_target_options) (s390_gnu_triplet_regexp, s390_stap_is_single_operand) (s390_validate_reg_range, s390_tdesc_valid) (s390_gdbarch_tdep_alloc, s390_gdbarch_init): Move to... * s390-tdep.c: ...this. New file. commit 9c0b896ee1d4edfe30c783b027ed5c081845a63d Author: Philipp Rudo Date: Tue Jan 23 13:37:43 2018 +0100 s390: gdbarch_tdep add hook for syscall record Most parts of s390_process_record are common for the architecture. Only the system call handling differs between the OSes. In order to be able to move s390_process_record to a common code file add a hook to record syscalls to gdbarch_tdep. So every OS can implement their own handling. gdb/ChangeLog: * s390-linux-tdep.c (gdbarch_tdep.s390_syscall_record): New hook. (s390_process_record, s390_gdbarch_tdep_alloc) (s390_linux_init_abi_any): Use/set new hook. commit 7042632bf7976d29889ba89fe4867654c5f38e2d Author: Philipp Rudo Date: Tue Jan 23 13:37:43 2018 +0100 s390: Hook s390 into OSABI mechanism Do what the title says and distinguish between 31- and 64-bit systems. The goal is to init the OSABI as late as possible in gdbarch_init so the OSABI has the chance to overwrite the defaults. There are two pitfalls to be aware of: First, the dwarf2 unwinder must be appended before the OSABI is initialized. Otherwise the OS could add a default unwinder which always takes control before the dwarf unwinder even gets a chance. Second, tdesc_use_registers has to be handled with extra care. It sets several gdbarch hooks, especially gdbarch_register_name, which has to be overwritten again after the call. Furthermore it deletes the tdesc_data without checking. Therefore there must not be a call to tdesc_data_cleanup afterwards or GDB will crash with a double free. gdb/ChangeLog: * s390-linux-tdep.c (osabi.h): New include. (s390_linux_init_abi_31, s390_linux_init_abi_64) (s390_linux_init_abi_any): New functions. (s390_gdbarch_init, _initialize_s390_tdep): Adjust. commit 650f5e137006fb7aea98e33d2ca9c6ac6712334c Author: Philipp Rudo Date: Tue Jan 23 13:37:43 2018 +0100 s390: if -> gdb_assert for tdesc_has_registers check Before doing the tdesc validation there is a check whether the tdesc has registers or not. This check is not only unnecessary but wrong. First the check is done after a default tdesc is assigned if the original tdesc has no registers. These default tdescs always have registers so the check alway returns true. Second if the default tdesc would not have registers the check only skips the tdesc validation instead of returning an error. This would trigger a gdb_assert later on in tdesc_use_registers. gdb/ChangeLog: * s390-linux-tdep.c (s390_gdbarch_init): Use gdb_assert for tdesc_has_registers check commit 47c9317e71768ba9788c6dc055fb6932d0f0923a Author: Philipp Rudo Date: Tue Jan 23 13:37:42 2018 +0100 s390: Move tdesc validation to separate function Simplify s390_gdbarch_init by moving the target description validation to a separate function. gdb/ChangeLog: * s390-linux-tdep.c (s390_tdesc_valid): New function. (s390_validate_reg_range): New macro. (s390_gdbarch_init): Adjust. commit 095085d8473689d86e00cd7d9a63680ca8faeda6 Author: Philipp Rudo Date: Tue Jan 23 13:37:42 2018 +0100 s390: gdbarch_tdep add field tdesc Add a field for the target description to gdbarch_tdep. This will later be needed to pass the 'correct' target description from osabi_init to gdbarch_init. Unfortunately this cannot be done using gdbarch_info as it is only passed by copy, not reference. gdb/ChangeLog: * s390-linux-tdep.c (gdbarch_tdep) : New field. (s390_gdbarch_tdep_alloc): Adjust. (s390_gdbarch_init): Adjust. commit ab9bcc67975f2a04dfa0e670096fc8161d7840b9 Author: Philipp Rudo Date: Tue Jan 23 13:37:42 2018 +0100 s390: gdbarch_tdep.have_* int -> bool Currently the gdbarch_tdep.have_* flags are a mix of int and bool. Clean this up by making them all bool. gdb/ChangeLog: * s390-linux-tdep.c (gdbarch_tdep) : Change type to bool. (s390_gdbarch_tdep_alloc): Adjust. (s390_gdbarch_init): Adjust. commit 21f6f5ffc652e116e518fee29ebdc8fbfeeaa734 Author: Philipp Rudo Date: Tue Jan 23 13:37:41 2018 +0100 s390: Allocate gdbarch & tdep at start of gdbarch_init Moving the allocation of gdbarch_tdep to the start of s390_gdbarch_init allows us to use its fields for tracking the different features instead of using separate variables. To make the code a little nicer move the actual allocation and initialization to a separate function. Also move the allocation of gdbarch to keep the two together. gdb/ChangeLog: * s390-linux-tdep (s390_abi_kind) : New default field. (gdbarch_tdep) : New fields. (s390_gdbarch_tdep_alloc): New function. (s390_gdbarch_init): Allocate tdep at start and use its fields instead of separate variables. commit 0eb97953adcb12aa49e4924d1e28ce6af046d6e2 Author: Philipp Rudo Date: Tue Jan 23 13:37:41 2018 +0100 s390: Remove duplicate checks for cached gdbarch at init When initializing the gdbarch there is a check whether an appropriate gdbarch already exists in the gdbarch_list. Failing of some of the checks would lead to a different target description. However gdbarch_list_lookup_by_info already checks for if (info->target_desc != arches->gdbarch->target_desc) continue; Remove these duplicate checks. gdb/ChangeLog: * s390-linux-tdep.c (s390_gdbarch_init): Remove duplicate checks when looking for cached gdbarch and add comment for remaining. commit d820e164e4baccacd8d4e7e3761ec547402ae828 Author: GDB Administrator Date: Tue Jan 23 00:00:22 2018 +0000 Automatic date update in version.in commit 75c80ee120e7d1bfb78570aa89d8d8fec6812d0f Author: Maciej W. Rozycki Date: Mon Jan 22 13:06:35 2018 -0800 GAS/doc: Correct `.set nomips16e2' directive description syntax gas/ * doc/c-mips.texi (MIPS ASE Instruction Generation Overrides): Correct syntax of the `.set nomips16e2' directive description. commit 1ea332d6931ea097d0128578a578528262df8445 Author: Maciej W. Rozycki Date: Mon Jan 22 13:05:56 2018 -0800 binutils/doc: Fix a "using" typo in `objcopy --rename-section' description binutils/ * doc/binutils.texi (objcopy): Fix a typo in `--rename-section' option description. commit 5c319bb260fa9637048cfae5fceba807e7849b39 Author: Pedro Alves Date: Mon Jan 22 17:33:13 2018 +0000 Fix segfault with 'set print object on' + 'whatis ' & co Compiling GDB with a recent GCC exposes a problem: ../../gdb/typeprint.c: In function 'void whatis_exp(const char*, int)': ../../gdb/typeprint.c:515:12: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized] real_type = value_rtti_type (val, &full, &top, &using_enc); ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The warning is correct. There are indeed code paths that use uninitialized 'val', leading to crashes. Inside the value_rtti_indirect_type/value_rtti_type calls here in whatis_exp: if (opts.objectprint) { if (((TYPE_CODE (type) == TYPE_CODE_PTR) || TYPE_IS_REFERENCE (type)) && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_STRUCT)) real_type = value_rtti_indirect_type (val, &full, &top, &using_enc); else if (TYPE_CODE (type) == TYPE_CODE_STRUCT) real_type = value_rtti_type (val, &full, &top, &using_enc); } We reach those calls above with "set print object on", and then with any of: (gdb) whatis struct some_structure_type (gdb) whatis struct some_structure_type * (gdb) whatis struct some_structure_type & because "whatis" with a type argument enters this branch: /* The behavior of "whatis" depends on whether the user expression names a type directly, or a language expression (including variable names). If the former, then "whatis" strips one level of typedefs, only. If an expression, "whatis" prints the type of the expression without stripping any typedef level. "ptype" always strips all levels of typedefs. */ if (show == -1 && expr->elts[0].opcode == OP_TYPE) { which does not initialize VAL. Trying the above triggers crashes like this: (gdb) set print object on (gdb) whatis some_structure_type Thread 1 "gdb" received signal SIGSEGV, Segmentation fault. 0x00000000005dda90 in check_typedef (type=0x6120736573756170) at src/gdb/gdbtypes.c:2388 2388 int instance_flags = TYPE_INSTANCE_FLAGS (type); ... This is a regression caused by a recent-ish refactoring of the code on 'whatis_exp', introduced by: commit c973d0aa4a2c737ab527ae44a617f1c357e07364 Date: Mon Aug 21 11:34:32 2017 +0100 Fix type casts losing typedefs and reimplement "whatis" typedef stripping Fix this by setting VAL to NULL in the "whatis TYPE" case, and skipping fetching the dynamic type if there's no value to fetch it from. New tests included. gdb/ChangeLog: 2018-01-22 Pedro Alves Sergio Durigan Junior * typeprint.c (whatis_exp): Initialize "val" in the "whatis type" case. gdb/testsuite/ChangeLog: 2018-01-22 Pedro Alves Sergio Durigan Junior * gdb.base/whatis.exp: Add tests for 'set print object on' + 'whatis ' 'whatis *' and 'whatis &'. commit d65ce302abcb260e14ca5f201b78e8e6d4a2e720 Author: Maciej W. Rozycki Date: Mon Jan 22 07:38:09 2018 -0800 MAINTAINERS: Update my company e-mail address Following my recent transition from Imagination Technologies to the reincarnated MIPS company update MAINTAINERS entries accordingly. binutils/ * MAINTAINERS: Update my company e-mail address. gdb/ * MAINTAINERS: Update my company e-mail address. sim/ * MAINTAINERS: Update my company e-mail address. commit 49da480ff6208abc419fe66e030dfa052c11ee1b Author: Oleg Endo Date: Mon Jan 22 14:31:10 2018 +0000 Fix the RX assembler so that it can handle escaped double quote characters, ie: \" PR 22737 * config/tc-rx.c (rx_start_line): Handle escaped double-quote character. * testsuite/gas/rx/pr22737.s: New test. * testsuite/gas/rx/pr22737.d: Likewise. * testsuite/gas/rx/rx.exp: Run the new test. commit f433138f1f9e6b8bcd93145a40ebae6c5d996792 Author: Nick Clifton Date: Mon Jan 22 13:48:15 2018 +0000 Update Swedish translation for the binutils sub-directory commit ec7a5fcbfd90b2f67f1a0e3f9866b11c5968ae61 Author: Yao Qi Date: Mon Jan 22 11:02:49 2018 +0000 regcache::cooked_write test Since my following patches will change how each gdbarch read and write pseudo registers, it's better to write a unit test to regcache::cooked_write, to make sure my following changes don't cause any regressions. See the comments on cooked_write_test. gdb: 2018-01-22 Yao Qi * regcache.c (cooked_write_test): New function. (_initialize_regcache): Register the test. commit 11f57cb67ecf5c69911eff21b54e05e93bbf2734 Author: Yao Qi Date: Mon Jan 22 11:02:49 2018 +0000 regcache_cooked_read -> regcache->cooked_read Similarly, this patch replaces regcache_cooked_read with regcache->cooked_read. gdb: 2018-01-22 Yao Qi * ia64-tdep.c (ia64_pseudo_register_read): Call regcache->cooked_read instead of regcache_cooked_read_unsigned. * m32c-tdep.c (m32c_cat_read): Likewise. (m32c_r3r2r1r0_read): Likewise. * m68hc11-tdep.c (m68hc11_pseudo_register_read): Likewise. * xtensa-tdep.c (xtensa_register_read_masked): Likewise. commit 03f50fc878f75fcdebf0e3273f201fb4b62b0bae Author: Yao Qi Date: Mon Jan 22 11:02:49 2018 +0000 Replace regcache_raw_read with regcache->raw_read The patch later in this series will move regcache's raw_read and cooked_read methods to a new class regcache_read, and regcache is dervied from it. Also pass regcache_read instead of regcache to gdbarch methods pseudo_register_read and pseudo_register_read_value. In order to prepare for this change, this patch changes regcache_raw_read to regcache->raw_read. On the other hand, since we are in C++, I prefer using class method (regcache->raw_read). gdb: 2018-01-22 Yao Qi * aarch64-tdep.c (aarch64_pseudo_read_value): Call regcache method raw_read instead of regcache_raw_read. * amd64-tdep.c (amd64_pseudo_register_read_value): Likewise. * arm-tdep.c (arm_neon_quad_read): Likewise. * avr-tdep.c (avr_pseudo_register_read): Likewise. * bfin-tdep.c (bfin_pseudo_register_read): Likewise. * frv-tdep.c (frv_pseudo_register_read): Likewise. * h8300-tdep.c (h8300_pseudo_register_read): Likewise. * i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Likewise. (i386_pseudo_register_read_into_value): Likewise. * mep-tdep.c (mep_pseudo_cr32_read): Likewise. * msp430-tdep.c (msp430_pseudo_register_read): Likewise. * nds32-tdep.c (nds32_pseudo_register_read): Likewise. * rl78-tdep.c (rl78_pseudo_register_read): Likewise. * s390-linux-tdep.c (s390_pseudo_register_read): Likewise. * sparc-tdep.c (sparc32_pseudo_register_read): Likewise. * sparc64-tdep.c (sparc64_pseudo_register_read): Likewise. * spu-tdep.c (spu_pseudo_register_read_spu): Likewise. * xtensa-tdep.c (xtensa_pseudo_register_read): Likewise. commit dc71152484248c0d8075618ec2146db4ea173b12 Author: Yao Qi Date: Mon Jan 22 11:02:49 2018 +0000 Remove mt port This patch removes the MT port. The removal was annoucned https://sourceware.org/ml/gdb-announce/2017/msg00006.html I'll remove MT from the top-level configure later. gdb: 2018-01-22 Yao Qi * Makefile.in (ALL_TARGET_OBS): Remove mt-tdep.o. * configure.tgt: Remove target mt. * mt-tdep.c: Remove. * regcache.c (cooked_read_test): Remove the check for mt. commit 3f5a868b2277a3678f7eeb8fdf88935913b5918b Author: Yao Qi Date: Mon Jan 22 11:02:48 2018 +0000 Don't call gdbarch_pseudo_register_read_value in jit.c gdbarch_pseudo_register_read_value is not implemented in every gdbarch, so the predicate gdbarch_pseudo_register_read_value_p is needed before calling it. However, there is no such guard in jit_frame_prev_register, I am wondering how does jit work on the arch without having gdbarch method pseudo_register_read_value. The proper way to get register value is to call cooked_read, and then create the value object from the buffer. gdb: 2018-01-22 Yao Qi * jit.c (jit_frame_prev_register): Call regcache::cooked_read instead of gdbarch_pseudo_register_read_value. commit de4cb04a20782b817fc80b49bba83b43cf1cb85d Author: Joel Brobecker Date: Sun Jan 21 23:23:34 2018 -0500 Ada/DWARF: Assume the Ada compiler produces descriptive type attributes GCC was enhanced in 2011 to generate this attribute, so I think we can now assume that it is available when using that compiler. Doing so allows us to speed up what we call "parallel type" lookups when processing certain types encoded using the GNAT encoding. This patch changes need_gnat_info to always expect those attributes to be generated when the language is Ada. This is an assumption that on the surfcace looks like it might be a bit on the edge; but in practice, it should be OK because this is only useful in the context of handling GNAT-specific encodings. Other Ada compilers would presumably produce debugging information using pure DWARF constructs, so would not be impacted by this. gdb/ChangeLog: * dwarf2read.c (need_gnat_info): Return nonzero if the cu's language is Ada. Tested on x86_64-linux. commit a9e408182d2faaed5c2457b68ea3276c719a590f Author: Joel Brobecker Date: Sun Jan 21 23:14:50 2018 -0500 wrong line number in breakpoint location Consider the following situation, where we have one file containing... $ cat -n body.inc 1 i = i + 1; ... we include that file from some code, like so: $ cat -n cat -n small.c [...] 17 int 18 next (int i) 19 { 20 #include "body.inc" 21 return i; 22 } When trying to insert a breakpoint on line 18, for instance: (gdb) b small.c:18 Breakpoint 1 at 0x40049f: file body.inc, line 18. ^^ || Here, the issue is that GDB reports the breakpoint to be in file body.inc, which is true, but with the line number that corresponding to the user-requested location, which is not correct. Although the simple reproducer may look slightly artificial, the above is simply one way to reproduce the same issue observed when trying to insert a breakpoint on a function provided in a .h files and then subsequently inlined in a C file. What happens is the following: 1. We resolve the small.c:18 linespec into a symtab_and_line which has "small.c" and 18 as the symtab and line number. 2. Next, we call skip_prologue_sal, which calculates the PC past the prologue, and updates the symtab_and_line: PC, but also symtab (now body.inc) and the new line (now 1). 3. However, right after that, we do: /* Make sure the line matches the request, not what was found. */ intermediate_results.sals[i].line = val.line; We should either restore both symtab and line, or leave the actual line to match the actual symtab. This patch chose the latter. This introduces a few changes in a few tests, which required some updates, but looking at those change, I believe them to be expected. gdb/ChangeLog: * linespec.c (create_sals_line_offset): Remove code that preserved the symtab_and_line's line number. gdb/testsuite/ChangeLog: * gdb.base/break-include.c, gdb.base/break-include.inc, gdb.base/break-include.exp: New files. * gdb.base/ending-run.exp: Minor adaptations due to the breakpoint's line number now being the actual line number where the breakpoint was inserted. * gdb.mi/mi-break.exp: Likewise. * gdb.mi/mi-reverse.exp: Likewise. * gdb.mi/mi-simplerun.exp: Ditto. Tested on x86_64-linux. commit 3b76a4a069d43c5a641914707554a6e90dbd2fd9 Author: GDB Administrator Date: Mon Jan 22 00:00:29 2018 +0000 Automatic date update in version.in commit e707fc445e68ccfa136a52cd4989b0cb778d1ca7 Author: Andrew Burgess Date: Thu Oct 19 11:27:48 2017 +0100 gdb: Don't store a thread-id for floating varobj When creating a varobj with -var-create a user can create either fixed varobj, or floating varobj. A fixed varobj will always be evaluated within the thread/frame/block in which the varobj was created, if that thread/frame/block is no longer available then the varobj is considered out of scope. A floating varobj will always be evaluated within the current thread/frame/block. Despite never using them GDB was storing the thread/frame/block into a floating varobj, and the thread-id would then be displayed when GDB reported on the state of the varobj, this could confuse a user into thinking that the thread-id was relevant. This commit prevents GDB storing the thread/frame/block onto floating varobj, and updates the few tests where this impacts the results. gdb/ChangeLog: * varobj.c (varobj_create): Don't set valid_block when creating a floating varobj. gdb/testsuite/ChangeLog: * gdb.python/py-mi.exp: Don't expect a thread-id for floating varobj. * gdb.mi/mi-var-create-rtti.exp: Likewise. commit 03d0bf7b78b142a5e03dfa1c80100893753d0022 Author: Andrew Burgess Date: Thu Oct 19 10:59:22 2017 +0100 gdb: Remove out of date comment Comment clean up. gdb/ChangeLog: * varobj.c (varobj_create): Remove out of date comment. commit ae45162705fb76ee534336474a67b11373209c62 Author: Andrew Burgess Date: Wed Oct 18 20:07:19 2017 +0100 gdb: PR mi/20395: Fix -var-update for registers in frames 1 and up This patch fixes a problem with using the MI -var-update command to access the values of registers in frames other than the current frame. The patch includes a test that demonstrates the problem: * run so there are several frames on the stack * create a fixed varobj for $pc in each frame, #'s 1 and above * step one instruction, to modify the value of $pc * call -var-update for each of the previously created varobjs to verify that they are not reported as having changed. Without the patch, the -var-update command reported that $pc for all frames 1 and above had changed to the value of $pc in frame 0. A varobj is created as either fixed, the expression is evaluated within the context of a specific frame, or floating, the expression is evaluated within the current frame, whatever that may be. When a varobj is created by -var-create we set two fields of the varobj to track the context in which the varobj was created, these two fields are varobj->root->frame and var->root->valid_block. If a varobj is of type fixed, then, when we subsequently try to reevaluate the expression associated with the varobj we must determine if the original frame (and block) is still available, if it is not then the varobj can no longer be evaluated. The problem is that for register expressions varobj->root->valid_block is not set correctly. This block tracking is done using the global 'innermost_block' which is set in the various parser files (for example c-exp.y). However, this is not set for register expressions. The fix then seems like it should be to just update the innermost block when parsing register expressions, however, that solution causes several test regressions. The problem is that in some cases we rely on the expression parsing code not updating the innermost block for registers, one example is when we parse the expression for a 'display' command. The display commands treats registers like floating varobjs, but symbols are treated like fixed varobjs. So 'display $reg_name' will always show the value of '$reg_name' even as the user moves from frame to frame, while 'display my_variable' will only show 'my_variable' while it is in the current frame and/or block, when the user moves to a new frame and/or block (even one with a different 'my_variable' in) then the display of 'my_variable' stops. For the case of 'display', without the option to force fixed or floating expressions, the current behaviour is probably the best choice. For the varobj system though, we can choose between floating and fixed, and we should try to make this work for registers. There's only one existing test case that needs to be updated, in that test a fixed varobj is created using a register, the MI output now include the thread-id in which the varobj should be evaluated, which I believe is correct behaviour. I also added a new floating test case into the same test script, however, right now this also includes the thread-id in the expected output, which I believe is an existing gdb bug, which I plan to fix next. Tested on x86_64 Linux native and native-gdbserver, no regressions. gdb/ChangeLog: PR mi/20395 * ada-exp.y (write_var_from_sym): Pass extra parameter when updating innermost block. * parse.c (innermost_block_tracker::update): Take extra type parameter, and check types match before updating innermost block. (write_dollar_variable): Update innermost block for registers. * parser-defs.h (enum innermost_block_tracker_type): New enum. (innermost_block_tracker::innermost_block_tracker): Initialise m_types member. (innermost_block_tracker::reset): Take type parameter. (innermost_block_tracker::update): Take type parameter, and pass type through as needed. (innermost_block_tracker::m_types): New member. * varobj.c (varobj_create): Pass type when reseting innermost block. gdb/testsuite/ChangeLog: * gdb.mi/basics.c: Add new global. * gdb.mi/mi-frame-regs.exp: New file. * gdb.mi/mi-var-create-rtti.exp: Update expected results, add new case. commit aee1fcdf979d65c7623533ddd6d871767be9de13 Author: Andrew Burgess Date: Wed Oct 18 19:53:21 2017 +0100 gdb: New API for tracking innermost block This commit is preparation for a later change, at this point there should be no user visible change. We currently maintain a global innermost_block which tracks the most inner block encountered when parsing an expression. This commit wraps the innermost_block into a new class, and switches all direct accesses to the variable to use the class API. gdb/ChangeLog: * ada-exp.y (write_var_from_sym): Switch to innermost_block API. * ada-lang.c (resolve_subexp): Likewise. * breakpoint.c (set_breakpoint_condition) Likewise. (watch_command_1) Likewise. * c-exp.y (variable): Likewise. * d-exp.y (PrimaryExpression): Likewise. * f-exp.y (variable): Likewise. * go-exp.y (variable): Likewise. * m2-exp.y (variable): Likewise. * objfiles.c (objfile::~objfile): Likewise. * p-exp.y (variable): Likewise. * parse.c (innermost_block): Change type. * parser-defs.h (class innermost_block_tracker): New. (innermost_block): Change to innermost_block_tracker. * printcmd.c (display_command): Switch to innermost_block API. (do_one_display): Likewise. * rust-exp.y (do_one_display): Likewise. * symfile.c (clear_symtab_users): Likewise. * varobj.c (varobj_create): Switch to innermost_block API, replace use of innermost_block with block stored on varobj object. commit 396af9a1527b396c251e70b5c79b5fc83fd1d7ff Author: Andrew Burgess Date: Wed Oct 18 19:04:17 2017 +0100 gdb: Remove duplicate declaration of global innermost_block The global 'innermost_block' is declared in two header files. Remove one of the declarations, and add an include of the other header into the one source file that could no longer see a declaration of 'innermost_block'. gdb/ChangeLog: * expression.h (innermost_block): Remove declaration. * varobj.c: Add 'parser-defs.h' include. commit b1b189e04cb5ea5da1cbb07bd6cceccd4d2ac969 Author: Andrew Burgess Date: Sat Jan 20 23:56:37 2018 +0000 gdb: Add test for some error cases of @entry usage Adds a test that using @entry for a non-parameter, or for an unknown symbol, both give the expected error. This error message was previously untested. gdb/testsuite/ChangeLog: * gdb.arch/amd64-entry-value.exp: Test using @entry on a non-parameter, and on an unknown symbol. commit f49464e4287179069ee98b27fcbac793493f18ac Author: GDB Administrator Date: Sun Jan 21 00:00:35 2018 +0000 Automatic date update in version.in commit 8a1b824af786989f879ab1421a4279f60bba141a Author: H.J. Lu Date: Sat Jan 20 14:25:24 2018 -0800 x86: Check the versioned __tls_get_addr symbol We need to check the versioned __tls_get_addr symbol when looking up "__tls_get_addr". bfd/ PR ld/22721 * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Check the versioned __tls_get_addr symbol. ld/ PR ld/22721 * testsuite/ld-plugin/lto.exp: Run PR ld/22721 tests. * testsuite/ld-plugin/pr22721.t: New file. * testsuite/ld-plugin/pr22721a.s: Likewise. * testsuite/ld-plugin/pr22721b.c: Likewise. commit 44301db1ac68cd26c559df225fe6d1bbc96638a0 Author: GDB Administrator Date: Sat Jan 20 00:00:22 2018 +0000 Automatic date update in version.in commit fcfcc376969c4d7a6d20827c47b584db389a32b9 Author: Tom Tromey Date: Fri Jan 19 15:25:19 2018 -0700 Fix qualified name lookup for Rust In https://github.com/rust-lang/rust/pull/46457, "m4b" pointed out that the Rust support in gdb doesn't properly handle the lookup of qualified names. In particular, as shown in the test case in this patch, something like "::NAME" should be found in the global scope, but is not. This turns out to happen because rust_lookup_symbol_nonlocal does not search the global scope unless the name in question is unqualified. However, lookup_symbol_aux does not search the global scope, and appears to search the static scope only as a fallback (I wonder if this is needed?). This patch fixes the problem by changing rust_lookup_symbol_nonlocal to search the static and global blocks in more cases. Regression tested against various versions of the rust compiler on Fedora 26 x86-64. (Note that there are unrelated failures with newer versions of rustc; I will be addressing those separately.) 2018-01-19 Tom Tromey * rust-lang.c (rust_lookup_symbol_nonlocal): Look up qualified symbols in the static and global blocks. 2018-01-19 Tom Tromey * gdb.rust/modules.rs (TWENTY_THREE): New global. * gdb.rust/modules.exp: Add ::-qualified lookup test. commit 634c1c3109a2ffdf43ef9dab839c88108d9980f3 Author: Andreas Arnez Date: Fri Jan 19 19:59:53 2018 +0100 S390: Fix infcalls in s390-vregs test case GDB used to assume that functions without debug info return int. It accepted an expression containing such a function call and silently interpreted the function's return value as int. But nowadays GDB yields an error message instead, see https://sourceware.org/ml/gdb-patches/2017-07/msg00139.html This affects the s390-vregs test case, because it contains calls to setrlimit64 and chdir. When no glibc debug info is installed, these lead to unnecessary FAILs. Fix this by adding appropriate casts to the inferior function calls. gdb/testsuite/ChangeLog: * gdb.arch/s390-vregs.exp: Explicitly cast the return values of setrlimit and chdir to int. commit a0aad53764f45a634462288befe4c2eaecbf302d Author: James Clarke Date: Fri Jan 19 17:22:50 2018 +0000 gdb: Add missing #ifdef USE_THREAD_DB to gdbserver Otherwise, linking fails with: [...]/linux-low.c:664: undefined reference to `thread_db_notice_clone(thread_info*, ptid_t)' gdb/gdbserver/ChangeLog: * linux-low.c (handle_extended_wait): Surround call to thread_db_notice_clone with #ifdef USE_THREAD_DB. commit 5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8 Author: James Clarke Date: Fri Jan 19 17:22:49 2018 +0000 gdb: Fix ia64 defining TRAP_HWBKPT before including gdb_wait.h On ia64, gdb_wait.h eventually includes siginfo-consts-arch.h, which contains an enum with TRAP_HWBKPT, along with a #define. Thus we cannot define TRAP_HWBKPT to 4 beforehand, and so gdb_wait.h must be included earlier; include it from linux-ptrace.h so it can never come afterwards. gdb/ChangeLog: * nat/linux-ptrace.c: Remove unnecessary reinclusion of gdb_ptrace.h, and move including gdb_wait.h ... * nat/linux-ptrace.h: ... to here. commit bc09b0c14fb713a9aec25e09b78499f3bc2441b5 Author: Simon Marchi Date: Fri Jan 19 11:48:11 2018 -0500 Make linux_nat_detach/thread_db_detach use the inferior parameter This patch makes these two functions actually use the inferior parameter added by the previous patch, instead of reading inferior_ptid. I chose these two, because they are the one actually used when I detach on my GNU/Linux system, so they were easy to test. I took the opportunity to pass the inferior being detached to inf_ptrace_detach_success, so it could use it too. From there, it made sense to add an overload of detach_inferior that takes the inferior directly rather than the pid, to avoid having to pass inf->pid only for the callee to look up the inferior structure by pid. gdb/ChangeLog: * inf-ptrace.c (inf_ptrace_detach): Adjust call to inf_ptrace_detach_success. (inf_ptrace_detach_success): Add inferior parameter, use it instead of inferior_ptid, pass it to detach_inferior. * inf-ptrace.h (inf_ptrace_detach_success): Add inferior parameter. * inferior.c (detach_inferior): Add overload that takes an inferior object. * inferior.h (detach_inferior): Likewise. * linux-nat.c (linux_nat_detach): Use the inf parameter, don't use inferior_ptid, adjust call to inf_ptrace_detach_success. * linux-thread-db.c (thread_db_detach): Use inf parameter. commit 6e1e1966bac965c5a26b5e5cae69cb0ed21be4cc Author: Simon Marchi Date: Fri Jan 19 11:47:57 2018 -0500 Pass inferior down to target_detach and to_detach The to_detach target_ops method implementations are currently expected to work on current_inferior/inferior_ptid. In order to make things more explicit, and remove some "shadow" parameter passing through globals, this patch adds an "inferior" parameter to to_detach. Implementations will be expected to use this instead of relying on the global. However, to keep things simple, this patch only does the minimum that is necessary to add the parameter. The following patch gives an example of how one such implementation would be adapted. If the approach is deemed good, we can then look into adapting more implementations. Until then, they'll continue to work as they do currently. gdb/ChangeLog: * target.h (struct target_ops) : Add inferior parameter. (target_detach): Likewise. * target.c (dispose_inferior): Pass inferior down. (target_detach): Pass inferior down. Assert that it is equal to the current inferior. * aix-thread.c (aix_thread_detach): Pass inferior down. * corefile.c (core_file_command): Pass current_inferior() down. * corelow.c (core_detach): Add inferior parameter. * darwin-nat.c (darwin_detach): Likewise. * gnu-nat.c (gnu_detach): Likewise. * inf-ptrace.c (inf_ptrace_detach): Likewise. * infcmd.c (detach_command): Pass current_inferior() down to target_detach. * infrun.c (follow_fork_inferior): Pass parent_inf to target_detach. (handle_vfork_child_exec_or_exit): Pass inf->vfork_parent to target_detach. * linux-nat.c (linux_nat_detach): Add inferior parameter. * linux-thread-db.c (thread_db_detach): Likewise. * nto-procfs.c (procfs_detach): Likewise. * procfs.c (procfs_detach): Likewise. * record.c (record_detach): Likewise. * record.h (struct inferior): Forward-declare. (record_detach): Add inferior parameter. * remote-sim.c (gdbsim_detach): Likewise. * remote.c (remote_detach_1): Likewise. (remote_detach): Likewise. (extended_remote_detach): Likewise. * sol-thread.c (sol_thread_detach): Likewise. * target-debug.h (target_debug_print_inferior_p): New macro. * target-delegates.c: Re-generate. * top.c (kill_or_detach): Pass inferior down to target_detach. * windows-nat.c (windows_detach): Add inferior parameter. commit 6bd6f3b6569945700386847f624dc9e8b7f57450 Author: Simon Marchi Date: Fri Jan 19 11:47:24 2018 -0500 Remove args from target detach I was looking into adding a parameter to target_detach, and was wondering what the args parameter was. It seems like in the distant past, it was possible to specify a signal number when detaching. That signal was injected in the process before it was detached. There is an example of code handling this in linux_nat_detach. With today's GDB, I can't get this to work. Doing "detach 15" (15 == SIGTERM) doesn't work, because detach is a prefix command and doesn't recognize the sub-command 15. Doing "detach inferiors 15" doesn't work because it expects a list of inferior id to detach. Therefore, I don't think there's a way of invoking detach_command with a non-NULL args. I also didn't find any documentation related to this feature. I assume that this feature stopped working when detach was made a prefix command, which is in f73adfeb8bae36885e6ea248d12223ab0d5eb9cb (sorry, there's no commit title) from 2006. Given that this feature was broken for such a long time and we haven't heard anything (AFAIK, I did not find any related bug), I think it's safe to remove it, as well as the args parameter to target_detach. If someone wants to re-introduce it, I would suggest rethinking the user interface, and in particular would suggest using signal name instead of numbers. I tried to fix all the impacted code, but I might have forgotten some spots. It shouldn't be hard to fix if that's the case. I also couldn't build-test everything I changed, especially the nto and solaris stuff. gdb/ChangeLog: * target.h (struct target_ops) : Remove args parameter. (target_detach): Likewise. * target.c (dispose_inferior): Adjust. (target_detach): Remove args parameter, adjust. * aix-thread.c (aix_thread_detach): Adjust. * corefile.c (core_file_command): Adjust. * corelow.c (core_detach): Adjust. * darwin-nat.c (darwin_detach): Adjust. * gnu-nat.c (gnu_detach): Adjust. * inf-ptrace.c (inf_ptrace_detach): Adjust. * infcmd.c (detach_command): Adjust * infrun.c (follow_fork_inferior): Adjust. (handle_vfork_child_exec_or_exit): Adjust. * linux-fork.c (linux_fork_detach): Remove args parameter. * linux-fork.h (linux_fork_detach): Likewise. * linux-nat.c (linux_nat_detach): Likewise, and adjust. * linux-thread-db.c (thread_db_detach): Likewise. * nto-procfs.c (procfs_detach): Likewise. * procfs.c (procfs_detach): Likewise. (do_detach): Remove signo parameter. * record.c (record_detach): Remove args parameter. * record.h (record_detach): Likewise. * remote-sim.c (gdbsim_detach): Likewise. * remote.c (remote_detach_1): Likewise. (remote_detach): Likewise. (extended_remote_detach): Likewise. * sol-thread.c (sol_thread_detach): Likewise. * target-delegates.c: Re-generate. * top.c (struct qt_args) : Remove field. (kill_or_detach): Don't pass args. (quit_force): Don't set args. * windows-nat.c (windows_detach): Remove args parameter. commit a3ab6cb01950e7d00519ddb3ead50eddff4fdcb8 Author: Thomas Preud'homme Date: Fri Jan 19 14:17:24 2018 +0000 [gas/ARM] Remove spurious comments Remove spurious comments after the definition of ToC and ToU. 2018-01-19 Thomas Preud'homme gas/ * config/tc-arm.c (ToC macro): Remove spurious comment. (ToU macro): Likewise. commit d6ad07fdef94777bb512f072361706bcc743d51c Author: Andreas Arnez Date: Fri Jan 19 14:14:07 2018 +0100 S390: Improve comments for s390-tdbregs test case This adds more explanation as to why the test case must be compiled with the -msoft-float option. It also documents the my_tbegin and my_tend functions. gdb/testsuite/ChangeLog: * gdb.arch/s390-tdbregs.c (my_tbegin): Add comment documenting the function. (my_tend): Likewise. * gdb.arch/s390-tdbregs.exp: Enhance comment; explain the rationale of avoiding FP- and vector instructions. commit ee3fbc1ebb0cdd0785f4c328c5daaa4a4cdf3f91 Author: Nick Clifton Date: Fri Jan 19 10:50:06 2018 +0000 Update French translation in bfd sub-directory commit 88af8ea80b9732f951e61a4ed8868e722f337c8e Author: Yao Qi Date: Fri Jan 19 09:16:45 2018 +0000 Don't pass -m32 to libcc1 on arm-linux When I run gdb.compile/ tests on arm-linux, I get the following fails, (gdb) compile code -- ;^M arm-none-linux-gnueabihf-gcc: error: unrecognized command line option '-m32'; did you mean '-mbe32'?^M Compilation failed.^M (gdb) compile code (void) param^M arm-none-linux-gnueabihf-gcc: error: unrecognized command line option '-m32'; did you mean '-mbe32'?^M Compilation failed.^M (gdb) FAIL: gdb.compile/compile-ops.exp: compile code (void) param This patch fixes it by implementing gcc_target_options gdbarch method for arm-linux to override option "-m32". gdb: 2018-01-19 Yao Qi * arm-linux-tdep.c (arm_linux_gcc_target_options): New function. (arm_linux_init_abi): Install it. commit dea445b940545f9564972c5410ac8792b72cc9c3 Author: Yao Qi Date: Fri Jan 19 09:08:36 2018 +0000 Find arm-linux-gnueabi(hf)?-gcc in compile GCC for arm-linux has different names on different distros. It is arm-linux-gnu-gcc on fedora. Debian/Ubuntu has arm-linux-gnueabihf-gcc and arm-linux-gnueabi-gcc. So when I run gdb.compile/ tests on arm-linux, I get, (gdb) compile code -- ; Could not find a compiler matching "^arm(-[^-]*)?-linux(-gnu)?-gcc$" This patch extend the regexp to match both arm-linux-gnu-gcc and arm-linux-gnueabihf-gcc. gdb: 2018-01-19 Yao Qi * osabi.c (gdb_osabi_names): Extend the regexp for arm-linux-gnueabihf and arm-linux-gnueabi. commit adf8243ba9220966bbb8f67460b2d323e00cbfdb Author: Ruslan Kabatsayev Date: Mon Jan 8 00:59:13 2018 +0300 Make tests expect [ \t]+ pattern instead of \t for "info reg" command This will allow to format output of "info reg" command as we wish, without breaking the tests. In particular, it'll let us correctly align raw and natural values of the registers using spaces instead of current badly-working approach with tabs. This change is forwards- and backwards-compatible, so that the amended tests will work in the same way before and after reformatting patches (unless the tests check formatting, of course, but I've not come across any such tests). Some tests already used this expected pattern, so they didn't even have to be modified. Others are changed by this patch. I've checked this on a i386 system, with no noticeable differences in test results, so at least on i386 nothing seems to be broken by this. gdb/testsuite/ChangeLog: * gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from "info reg" with "\[ \t\]*". * gdb.arch/altivec-regs.exp: Replace expected "\t" from "info reg" with "\[ \t\]+". * gdb.arch/s390-multiarch.exp: Ditto. * gdb.base/pc-fp.exp: Ditto. * gdb.reverse/i386-precsave.exp: Ditto. * gdb.reverse/i386-reverse.exp: Ditto. * gdb.reverse/i387-env-reverse.exp: Ditto. * gdb.reverse/i387-stack-reverse.exp: Ditto. commit 1ebfa86a3c2a1dc2169da072dc65c32c56a2f254 Author: H.J. Lu Date: Thu Jan 18 17:21:13 2018 -0800 Also xfail ld-elf/group1.d for Solaris Also xfail ld-elf/group1.d for Solaris since _GLOBAL_OFFSET_TABLE_ is always generated for Solaris as a global symbol after .*: 0+1000 +0 +(NOTYPE|OBJECT) +WEAK +DEFAULT +. foo instead of appending "#..." which will weaken the test. * testsuite/ld-elf/group1.d: Also xfail Solaris. commit f7968f08b782bee249c66162736f1e82d7b39159 Author: H.J. Lu Date: Thu Jan 18 16:23:33 2018 -0800 x86: Update ld-elf/linkinfo1[ab].d for Solaris/x86 Update ld-elf/linkinfo1[ab].d to accommodate slightly different PLT/GOT order/layout for Solaris/x86 targets. * testsuite/ld-elf/linkinfo1a.d: Updated for slightly different PLT/GOT order/layout for Solaris/x86 targets. * testsuite/ld-elf/linkinfo1b.d: Likewise. commit c5bdb022609634970dd981517d478e6cc332629c Author: H.J. Lu Date: Thu Jan 18 16:21:46 2018 -0800 solaris2.em: Fold after_allocation into before_allocation Since all ELF linkers call check_relocs after opening all inputs, we can fold after_allocation into before_allocation so that local dynamic symbols will be placed before global dynamic symbols in .dynsym section. This fixed: FAIL: Common symbol override test (auxiliary shared object build) FAIL: ld-elf/pr19617a FAIL: ld-elf/pr19698 for i386-solaris2.12 and x86_64-solaris2.12 targets. PR ld/22728 * emultempl/solaris2.em (elf_solaris2_after_allocation): Fold into ... (elf_solaris2_before_allocation): This. (LDEMUL_AFTER_ALLOCATION): Removed. commit 85ed4f7ecea48a92b33f4c6b3f8d9e0e858ed617 Author: GDB Administrator Date: Fri Jan 19 00:00:31 2018 +0000 Automatic date update in version.in commit dcc069254040954ee72b3ed65b772d48cdff93df Author: Andreas Arnez Date: Thu Jan 18 19:42:46 2018 +0100 GDB testsuite: Re-enable -fdiagnostics-color=never In August 2017 the GDB test suite was changed to always add the compile option "-fdiagnostics-color=never", see: https://sourceware.org/ml/gdb-patches/2017-08/msg00150.html Since this option is not understood by rustc, a commit from 09/2017 dropped its use in that case: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=5eb5f850 ("Don't use -fdiagnostics-color=never for rustc") But that change goes overboard and stops using the option for other languages as well. Thus compiler diagnostics written into gdb.log may contain colored output again. This is fixed. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_compile): Re-enable use of universal_compile_options for languages other than Rust. commit 25d4fd80936744adfa49f133524e3f342604a1cb Author: Andreas Arnez Date: Thu Jan 18 19:41:16 2018 +0100 S390: Use soft float in s390-tdbregs test case The GDB test case s390-tdbregs.exp verifies GDB's handling of the "transaction diagnostic block". For simplicity, the test case uses the "transaction begin" (TBEGIN) instruction with the "allow floating-point operation" flag set to zero. But some GCC versions may indeed emit floating point or vector instructions for this test case. If this happens in the transaction, it aborts, and an endless loop results. This change tells the compiler to produce a soft-float binary, so no floating-point or vector registers are touched. gdb/testsuite/ChangeLog: * gdb.arch/s390-tdbregs.exp: Add the compile option -msoft-float. commit 4a17f7688fbab8f170144fa13ffcd06bc749e6ec Author: Yao Qi Date: Thu Jan 18 15:29:31 2018 +0000 Make abbrev_table::abbrevs private abbrev_table::abbrevs is only access within abbrev_table's methods, so it can be private. Add "m_" prefix. gdb: 2018-01-18 Yao Qi * dwarf2read.c (abbrev_table) : Rename it to m_abbrevs. (abbrev_table::add_abbrev): Update. (abbrev_table::lookup_abbrev): Update. commit d679c21a43852305c5eeae957854f6e13d6f884c Author: Yao Qi Date: Thu Jan 18 12:21:01 2018 +0000 Call cooked_read in ppu2spu_prev_register The code in ppu2spu_prev_register is in fact regcache_cooked_read, because spu doesn't have gdbarch method pseudo_register_read_value. gdb: 2018-01-18 Yao Qi * ppc-linux-tdep.c (ppu2spu_prev_register): Call cooked_read. commit 691d2e9af211ff8dd5fa8c96cb961b73a78394d7 Author: Alan Modra Date: Thu Jan 18 22:06:40 2018 +1030 PowerPC PLT stub alignment fixes Asking for ppc32 plt call stubs to be aligned at 32 byte boundaries didn't quite work. For ld.bfd they were spaced 32 bytes apart, but only started on a 16 byte boundary. ld.gold also didn't get it right. Finding that bug made me check over the ppc64 plt stub alignment, where I found that negative values for alignment (meaning align to minimize boundary crossing) were not accepted. Since no one has complained about that, I guess I could have removed the feature from ld.bfd documentation, but I've opted instead to correct the code. I've also added an optional alignment paramenter for ppc32 --plt-align, for some consistency with gold and ppc64 ld.bfd. bfd/ * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink. * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align. (ppc64_elf_build_stubs): Likewise. gold/ * powerpc.cc (param_plt_align): New function supplying default --plt-align values. Use it.. (Stub_table::plt_call_align): ..here, and.. (Output_data_glink::global_entry_align): ..here. (Stub_table::stub_align): Correct 32-bit minimum alignment. ld/ * emultempl/ppc32elf.em: Support optional --plt-align arg. * emultempl/ppc64elf.em: Support negative --plt-align arg. commit 7ab820379890dc68699ba5acf8ab4f03053fa2b0 Author: Nick Clifton Date: Thu Jan 18 09:38:59 2018 +0000 Update Bulgarian translation of the binutils sub-directory commit 2f89d95b71478464a898147fb20dd50ece260168 Author: GDB Administrator Date: Thu Jan 18 00:00:24 2018 +0000 Automatic date update in version.in commit 7d937cad0acdccd0ff485435fbe16f005e994c66 Author: Sergio Durigan Junior Date: Tue Jan 16 14:41:17 2018 -0500 Fix warning on gdb/compile/compile.c (C++-ify "triplet_rx") This fixes a GCC warning that happens when compiling gdb/compile/compile.c on some GCC versions (e.g., "gcc (GCC) 7.2.1 20180104 (Red Hat 7.2.1-6)"): ../../gdb/compile/compile.c: In function 'void eval_compile_command(command_line*, const char*, compile_i_scope_types, void*)': ../../gdb/compile/compile.c:548:19: warning: 'triplet_rx' may be used uninitialized in this function [-Wmaybe-uninitialized] error_message = compiler->fe->ops->set_arguments_v0 (compiler->fe, triplet_rx, ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ argc, argv); ~~~~~~~~~~~ ../../gdb/compile/compile.c:466:9: note: 'triplet_rx' was declared here char *triplet_rx; ^~~~~~~~~~ It's a simple patch that converts "triplet_rx" from "char *" to "std::string", thus guaranteeing that it will be always initialized. I've regtested this patch and did not find any regressions. OK to apply on both master and 8.1 (after creating a bug for it)? gdb/ChangeLog: 2018-01-17 Sergio Durigan Junior * compile/compile.c (compile_to_object): Convert "triplet_rx" to "std::string". commit e925c834ecdb4a0ce595ad8d3da9c7d4f499ede0 Author: Jim Wilson Date: Wed Jan 17 14:04:16 2018 -0800 RISC-V: Fix bug in prior addi/c.nop patch. gas/ * config/tc-riscv.c (validate_riscv_insn) <'z'>: New. (riscv_ip) <'z'>: New. opcodes/ * riscv-opc.c (riscv_opcodes) : Use z instead of 0. commit 9e14690d06ac55136b7f051a2d2b8e173fa3bbdf Author: Tom Tromey Date: Fri Jan 5 17:26:21 2018 -0700 Remove symbolp typedef This removes the symbolp typedef from dwarf2read.c. It is no longer used. 2018-01-17 Tom Tromey * dwarf2read.c (symbolp): Remove typedef. Don't instantiate VEC. commit 50a820477b5d48d4c2d28ca1c22ba6d93c9fd7cb Author: Tom Tromey Date: Fri Jan 5 17:26:20 2018 -0700 Remove objfile argument from add_dyn_prop The objfile argument to add_dyn_prop is redundant, so this patch removes it. 2018-01-17 Tom Tromey * gdbtypes.h (add_dyn_prop): Remove objfile parameter. * gdbtypes.c (add_dyn_prop): Remove objfile parameter. (create_array_type_with_stride): Update. * dwarf2read.c (set_die_type): Update. commit c89b44cdc52b6a9c0848a795689895e292ad1f46 Author: Tom Tromey Date: Fri Jan 5 17:26:19 2018 -0700 Change dwarf2_cu::method_info to be a std::vector This changes the type of dwarf2_cu::method_info and fixes up the uses. In order to remove cleanups from process_full_comp_unit and process_full_type_unit, psymtab_include_file_name also had to be changed to avoid leaving dangling cleanups. 2018-01-17 Tom Tromey * dwarf2read.c (delayed_method_info): Remove typedef. (dwarf2_cu::method_info): Now a std::vector. (add_to_method_list): Update. (free_delayed_list): Remove. (compute_delayed_physnames): Update. (process_full_comp_unit, process_full_type_unit): Clear the method list. Remove cleanups. (psymtab_include_file_name): Add name_holder parameter. Use unique_xmalloc_ptr. (dwarf_decode_lines): Update. commit fcd3b13d80a2d0e5fc31ef6a245be62db6a11420 Author: Simon Marchi Date: Sun Jan 7 11:41:09 2018 -0500 Allocate dwarf2_cu with new This changes dwarf2_cu to be allocated with new, and fixes up the users. 2018-01-17 Tom Tromey Simon Marchi * dwarf2read.c (struct dwarf2_cu): Add constructor, destructor. (dwarf2_per_objfile::free_cached_comp_units) (init_tu_and_read_dwo_dies, init_cutu_and_read_dies) (init_cutu_and_read_dies_no_follow): Update. (dwarf2_cu::dwarf2_cu): Rename from init_one_comp_unit. (dwarf2_cu::~dwarf2_cu): New. (free_heap_comp_unit, free_stack_comp_unit): Remove. (age_cached_comp_units, free_one_cached_comp_unit): Update. commit 685af9cd2283b07a222157723e239f09d6ea2682 Author: Tom Tromey Date: Fri Jan 5 17:26:17 2018 -0700 Allocate abbrev_table with new This changes dwarf2read.c to allocate abbrev tables using "new", and then updates the users. This version of the patch incorporates the changes that Simon implemented. These changes simplify the ownership rules for abbrev tables. 2018-01-17 Tom Tromey Simon Marchi * dwarf2read.c (struct dwarf2_cu) : Remove. (struct die_reader_specs) : New member. (struct abbrev_table): Add constructor. : Declare. : Now an auto_obstack. (abbrev_table_up): New typedef. (init_cu_die_reader): Add abbrev_table parameter. (read_cutu_die_from_dwo): Remove abbrev_table_provided parameter. Add result_dwo_abbrev_table. (init_tu_and_read_dwo_dies, init_cutu_and_read_dies) (init_cutu_and_read_dies_no_follow, build_type_psymtabs_1): Update. (peek_die_abbrev): Take die_reader_specs, not dwarf_cu as parameter. (skip_children): Update. (abbrev_table::alloc_abbrev): Rename from abbrev_table_alloc_abbrev. (abbrev_table::add_abbrev): Rename from abbrev_table_add_abbrev. (abbrev_table::lookup_abbrev): Rename from abbrev_table_lookup_abbrev. (abbrev_table_read_table): Return abbrev_table_up. (abbrev_table_free, abbrev_table_free_cleanup) (dwarf2_read_abbrevs, dwarf2_free_abbrev_table): Remove. (load_partial_dies): Update. commit 5e2db402c8e665b0c6ac81047a10cbf4e26329f2 Author: Tom Tromey Date: Fri Jan 5 17:26:16 2018 -0700 Unify new_symbol and new_symbol_full This patch unifies new_symbol with new_symbol_full, replacing a wrapper function with a default parameter. 2018-01-17 Tom Tromey * dwarf2read.c (dwarf2_compute_name): Update comment. (read_func_scope, read_variable): Update. (new_symbol): Remove. (new_symbol_full): Rename to new_symbol. commit ee7f689e15a2357eccbf8109459864333af56521 Author: Simon Marchi Date: Wed Jan 17 12:59:51 2018 -0500 Fix ChangeLog dates of previous commit commit 416675305692976aca45860e24b963982a2e682a Author: Mike Gulick Date: Mon Oct 30 18:13:44 2017 -0400 Fix gdb segv when objfile can't be opened This fixes PR 16577. This patch changes gdb_bfd_map_section to issue a warning rather than an error if it is unable to read the object file, and sets the size of the section/frame that it attempted to read to 0 on error. The description of gdb_bfd_map_section states that it will try to read or map the contents of the section SECT, and if successful, the section data is returned and *SIZE is set to the size of the section data. This function was throwing an error and leaving *SIZE as-is. Setting the section size to 0 indicates to dwarf2_build_frame_info that there is no data to read, otherwise it will try to read from an invalid frame pointer. Changing the error to a warning allows this to be handled gracefully. Additionally, the error was clobbering the breakpoint output indicating the current frame (function name, arguments, source file, and line number). E.g. Thread 3 "foo" hit Breakpoint 1, BFD: reopening /tmp/jna-1013829440/jna2973250704389291330.tmp: No such file or directory BFD: reopening /tmp/jna-1013829440/jna2973250704389291330.tmp: No such file or directory (gdb) While the "BFD: reopening ..." messages will still appear interspersed in the breakpoint output, the current frame info is now displayed: Thread 3 "foo" hit Breakpoint 1, BFD: reopening /tmp/jna-1013829440/jna1875755897659885075.tmp: No such file or directory BFD: reopening /tmp/jna-1013829440/jna1875755897659885075.tmp: No such file or directory warning: Can't read data for section '.eh_frame' in file '/tmp/jna-1013829440/jna1875755897659885075.tmp' do_something () at file.cpp:80 80 { (gdb) commit 4d9b86e17505063c96a01d40cdf5b4fc2080a798 Author: Simon Marchi Date: Wed Jan 17 12:33:57 2018 -0500 Make linux_ptrace_attach_fail_reason return an std::string This patch makes linux_ptrace_attach_fail_reason and linux_ptrace_attach_fail_reason_string return std::string. It also replaces usages of struct buffer with std::string. This allows getting rid of a cleanup in in linux_ptrace_attach_fail_reason_string and simplifies the code in general. Something that looks odd to me is that in linux_ptrace_attach_fail_reason, if the two messages are appended, there is no separating space or \n, so the result won't be very nice. I left it as-is for now though. gdb/ChangeLog: * nat/linux-ptrace.h (linux_ptrace_attach_fail_reason): Return std::string. (linux_ptrace_attach_fail_reason_string): Likewise. * nat/linux-ptrace.c (linux_ptrace_attach_fail_reason): Likewise. (linux_ptrace_attach_fail_reason_string): Likewise. * linux-nat.c (attach_proc_task_lwp_callback): Adjust. gdb/gdbserver/ChangeLog: * linux-low.c (attach_proc_task_lwp_callback): Adjust to linux_ptrace_attach_fail_reason_string now returning an std::string. (linux_attach): Likewise. * thread-db.c (attach_thread): Likewise. commit a7b2d0fbeb4ca22ffbf56d19d06b7d1cb774e383 Author: Simon Marchi Date: Wed Jan 17 12:33:45 2018 -0500 linux-nat: Remove unnecessary xstrdup I think this xstrdup is not useful. We can pass ex.message directly to throw_error instead. gdb/ChangeLog: * linux-nat.c (linux_nat_attach): Remove xstrdup. commit d777820bf5abea433c36e956b53b299502e0f708 Author: Igor Tsimbalist Date: Wed Jan 17 19:45:52 2018 +0300 Replace CET bit with IBT and SHSTK bits. The latest specification for Intel CET technology defined two new bits instead of previously used CET bit. These are IBT and SHSTK bits. The patch replaces CET bit with IBT and SHSTK bits. gas/ * config/tc-i386.c (cpu_arch): Delete .cet. Add .ibt, .shstk. (cpu_noarch): Add noibt, noshstk. (parse_insn): Change cpucet to cpuibt. * doc/c-i386.texi: Delete .cet. Add .ibt, .shstk. * testsuite/gas/i386/cet-ibt-inval.l: New test. * testsuite/gas/i386/cet-ibt-inval.s: Likewise. * testsuite/gas/i386/cet-shstk-inval.l: Likewise. * testsuite/gas/i386/cet-shstk-inval.s: Likewise. * testsuite/gas/i386/x86-64-cet-ibt-inval.l: Likewise. * testsuite/gas/i386/x86-64-cet-ibt-inval.s: Likewise. * testsuite/gas/i386/x86-64-cet-shstk-inval.l: Likewise. * testsuite/gas/i386/x86-64-cet-shstk-inval.s: Likewise. opcodes/ * i386-gen.c (cpu_flag_init): Delete CPU_CET_FLAGS, CpuCET. Add CPU_IBT_FLAGS, CPU_SHSTK_FLAGS, CPY_ANY_IBT_FLAGS, CPU_ANY_SHSTK_FLAGS, CpuIBT, CpuSHSTK. (cpu_flags): Add CpuIBT, CpuSHSTK. * i386-opc.h (enum): Add CpuIBT, CpuSHSTK. (i386_cpu_flags): Add cpuibt, cpushstk. * i386-opc.tbl: Change CpuCET to CpuSHSTK and CpuIBT. * i386-init.h: Regenerate. * i386-tbl.h: Likewise. commit 4bfce1283654832d83a01b700e61518233c8bbda Author: Nick Clifton Date: Wed Jan 17 15:52:37 2018 +0000 Update Ukranian and Russian translations in bfd library commit f517c1805ac50c64c2dbb086c16b3bcf33b15a89 Author: Eldar Abusalimov Date: Mon Jan 15 16:57:42 2018 +0300 configure: Fix test for fs_base/gs_base in Make be included prior to including . glibc versions older than 2.14 use __uintNN_t types within certain structures defined in probably assuming these types are defined prior to including the header. This results in the following `configure` feature test compilation error that makes it think that `struct user_regs_struct` doesn't have `fs_base`/`gs_base` fields, althouh it does. configure:13617: checking for struct user_regs_struct.fs_base configure:13617: gcc -c -g -O2 -I/linux/include conftest.c >&5 In file included from conftest.c:158:0: /usr/include/sys/user.h:32:3: error: unknown type name '__uint16_t' __uint16_t cwd; ^ /usr/include/sys/user.h:33:3: error: unknown type name '__uint16_t' __uint16_t swd; ^ /usr/include/sys/user.h:34:3: error: unknown type name '__uint16_t' __uint16_t ftw; ^ /usr/include/sys/user.h:35:3: error: unknown type name '__uint16_t' __uint16_t fop; ^ /usr/include/sys/user.h:36:3: error: unknown type name '__uint64_t' __uint64_t rip; ^ /usr/include/sys/user.h:37:3: error: unknown type name '__uint64_t' __uint64_t rdp; ^ /usr/include/sys/user.h:38:3: error: unknown type name '__uint32_t' __uint32_t mxcsr; ^ /usr/include/sys/user.h:39:3: error: unknown type name '__uint32_t' __uint32_t mxcr_mask; ^ /usr/include/sys/user.h:40:3: error: unknown type name '__uint32_t' __uint32_t st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ ^ /usr/include/sys/user.h:41:3: error: unknown type name '__uint32_t' __uint32_t xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ ^ /usr/include/sys/user.h:42:3: error: unknown type name '__uint32_t' __uint32_t padding[24]; ^ configure:13617: $? = 1 configure: failed program was: | /* confdefs.h */ ... | /* end confdefs.h. */ | #include | | int | main () | { | static struct user_regs_struct ac_aggr; | if (ac_aggr.fs_base) | return 0; | ; | return 0; | } Recent glibc versions don't use typedef'ed int types in , thus allowing it to be included as is (glibc commit d79a9c949c84e7f0ba33e87447c47af833e9f11a). However there're still some distros alive that use older glibc, for instance, RHEL/CentOS 6 package glibc 2.12. Also affects PR gdb/21559: ../../gdb/regcache.c:1087: internal-error: void regcache_raw_supply(regcache, int, const void): Assertion `regnum >= 0 && regnum < regcache->descr->nr_raw_registers' failed. As noted by Andrew Paprocki, who submitted the PR (https://sourceware.org/bugzilla/show_bug.cgi?id=21559#c3): > It should be noted that modifying `configure` to force on > `HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE` and > `HAVE_STRUCT_USER_REGS_STRUCT_GS_BASE` fixes this issue. For some > reason the `configure` tests for `fs_base` and `gs_base` fail > even though `sys/user.h` on RHEL5 has the fields defined in > `user_regs_struct`. Note that this patch does NOT fix the root cause of PR gdb/21559, although now that `configure` properly detects the presence of the fields and sets HAVE_XXX accordingly, the execution takes another path, which doesn't lead to the assertion failure in question. gdb/ChangeLog: 2018-01-17 Eldar Abusalimov PR gdb/21559 * configure.ac: Include prior to when checking for fs_base/gs_base fields in struct user_regs_struct. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2018-01-17 Eldar Abusalimov PR gdb/21559 * configure.ac: Include prior to when checking for fs_base/gs_base fields in struct user_regs_struct. * configure: Regenerate. commit 7045b1ca73b8c0cb12d1158f3bc59d251dca0fa5 Author: Yao Qi Date: Wed Jan 17 12:48:52 2018 +0000 Don't pass -m64 to libcc1 on aarch64-linux. Nowadays, if we use "compile" on aarch64-linux, we'll get the following error, (gdb) compile code -- ; aarch64-none-linux-gnu-gcc: error: unrecognized command line option '-m64' because the default gcc_target_options returns "-m64" and "-mcmodel=large", neither is useful to aarch64-linux. gdb: 2018-01-17 Yao Qi * aarch64-linux-tdep.c (aarch64_linux_gcc_target_options): New function. (aarch64_linux_init_abi): Install it to gdbarch hook gcc_target_options. commit d8447b6b9fd288ebd35620178ba720b1f0ce7ebf Author: Yao Qi Date: Wed Jan 17 11:19:03 2018 +0000 Relax gdb.compile/compile.exp to match the address printed for frame One test in gdb.compile/compile.exp passes on one fedora builder, bt #0 0x00007ffff7ff43f6 in _gdb_expr (__regs=0x7ffff7ff2000) at gdb command line:1^M #1 ^M #2 main () at /home/gdb-buildbot/fedora-x86-64-1/fedora-x86-64/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.compile/compile.c:106^M (gdb) PASS: gdb.compile/compile.exp: bt but fails on my machine with gcc trunk, bt^M #0 _gdb_expr (__regs=0x7ffff7ff3000) at gdb command line:1^M #1 ^M #2 main () at gdb/testsuite/gdb.compile/compile.c:106^M (gdb) FAIL: gdb.compile/compile.exp: bt The test should be tweaked to match both cases (pc in the start of line vs pc in the middle of line). Note that I am not clear that why libcc1 emits debug info this way so that the address is in the middle of line. gdb/testsuite: 2018-01-17 Yao Qi * gdb.compile/compile.exp: Match the address printed for frame in the output of command "bt". commit c75bc4f76fe456c57ef1e446db5378182692c429 Author: Alan Modra Date: Wed Jan 17 21:24:32 2018 +1030 Warning fix * elf64-ppc.c (ppc64_elf_build_stubs): Silence gcc warning. commit 1be5d8d3bbec4c9a112114993ac5c85b2b26c4c4 Author: Alan Modra Date: Wed Jan 17 14:19:08 2018 +1030 PowerPC PLT speculative execution barriers Spectre variant 2 mitigation for PowerPC and PowerPC64. bfd/ * elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier. (CRSETEQ, BEQCTRM): Define. (is_nonpic_glink_stub): Don't check bctr. (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. (ppc_elf_relax_section): Size speculation barrier. (output_bctr): New function. (write_glink_stub): Use output_bctr. (ppc_elf_relocate_section): Use output_bctr for long branch stub. (ppc_elf_finish_dynamic_symbol): Likewise. (ppc_elf_finish_dynamic_sections): Use output_bctr. * elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps. * elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define. (GLINK_PLTRESOLVE_SIZE): Size speculation barrier. (size_global_entry_stubs): Handle speculation barrier sizing. (plt_stub_size): Likewise. (output_bctr): New function. (build_plt_stub, build_tls_get_addr_stub): Output speculation barrier. (ppc_build_one_stub): Likewise for ppc_stub_plt_branch. (ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch. (build_global_entry_stubs): Output speculation barrier. (ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub. * elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps. gold/ * options.h (speculate_indirect_jumps): New option. * powerpc.cc (beqctrm, beqctrlm, crseteq): New insn constants. (output_bctr): New function. (Stub_table::plt_call_size): Add space for speculation barrier. (Stub_table::branch_stub_size): Likewise. (Output_data_glink::pltresolve_size): Likewise. (Stub_table::do_write): Output speculation barriers. ld/ * emultempl/ppc32elf.em (params): Init new field. (OPTION_SPECULATE_INDIRECT_JUMPS): Define. (OPTION_NO_SPECULATE_INDIRECT_JUMPS): Define. (PARSE_AND_LIST_LONGOPTS): Handle new options. (PARSE_AND_LIST_ARGS_CASES): Likewise. (PARSE_AND_LIST_OPTIONS): Likewise. * emultempl/ppc64elf.em (params): Init new field. (OPTION_SPECULATE_INDIRECT_JUMPS): Define. (OPTION_NO_SPECULATE_INDIRECT_JUMPS): Define. (PARSE_AND_LIST_LONGOPTS): Handle --speculate-indirect-jumps. (PARSE_AND_LIST_OPTIONS): Likewise. (PARSE_AND_LIST_ARGS_CASES): Likewise. * ld.texinfo (--no-plt-thread-safe): Correct itemx. (--speculate-indirect-jumps): Document. * testsuite/ld-powerpc/elfv2exe.d, * testsuite/ld-powerpc/elfv2so.d, * testsuite/ld-powerpc/relbrlt.d, * testsuite/ld-powerpc/powerpc.exp: Disable plt alignment and speculation barriers on various tests. commit 9e390558cef76767a98123994c422d0642d86cf8 Author: Alan Modra Date: Sat Jan 13 18:53:41 2018 +1030 PowerPC PLT stub tidy This is in preparation for the next patch adding Spectre variant 2 mitigation for PowerPC and PowerPC64. Besides tidying code involved in stub output (to reduce the number of places where bctr is output), the patch adds some user visible features: 1) PowerPC64 ELFv2 global entry stubs now are aligned under the control of --plt-align, with a default alignment of 32 bytes. 2) PowerPC64 __glink_PLTresolve is no longer padded out with nops. 3) PowerPC32 PLT stubs are aligned under the control of --plt-align, with the default alignment being 16 bytes as before. 4) The PowerPC32 branch/nop table emitted before __glink_PLTresolve is now smaller in many cases. It was sized incorrectly when the __tls_get_addr_opt stub was used, and unnecessarily included space for local ifuncs. bfd/ * elf32-ppc.c (GLINK_ENTRY_SIZE): Add parameters, handle __tls_get_addr_opt, and alignment sizing. (TLS_GET_ADDR_GLINK_SIZE): Delete. (is_nonpic_glink_stub): Don't use GLINK_ENTRY_SIZE. (ppc_elf_get_synthetic_symtab): Recognize stubs spaced at 4, 6, or 8 insns. (ppc_elf_link_hash_table_create): Init new ppc_elf_params field. (allocate_dynrelocs): Use new GLINK_ENTRY_SIZE. (ppc_elf_size_dynamic_sections): Likewise. Size branch table by PLT reloc count. (write_glink_stub): Handle __tls_get_addr_opt stub. Pad out to size given by GLINK_ENTRY_SIZE. (ppc_elf_relocate_section): Adjust write_glink_stub call. (ppc_elf_finish_dynamic_symbol): Likewise. (ppc_elf_finish_dynamic_sections): Write PLTresolve without using insn array since so many need rewriting. * elf32-ppc.h (struct ppc_elf_params): Add plt_stub_align. * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Rename from GLINK_CALL_STUB_SIZE. Add htab param and evaluate to size without nops. Adjust all uses. (ppc64_elf_get_synthetic_symtab): Don't use GLINK_CALL_STUB_SIZE in glink_vma calculation. (struct ppc_link_hash_table): Add global_entry section pointer. (create_linkage_sections): Create separate section for global entry stubs. (PPC_LO, PPC_HI, PPC_HA): Move earlier. (size_global_entry_stubs): Handle sizing for aligned stubs. (ppc64_elf_size_dynamic_sections): Handle global_entry alloc, and don't stash end of glink branch table in rawsize. (ppc_build_one_stub): Rewrite stub size calculations. (build_global_entry_stubs): Use new section. (ppc64_elf_build_stubs): Don't pad __glink_PLTresolve with nops. Build lazy link stubs out to end of section. Build global entry stubs in new section. gold/ * options.h (plt_align): Support for PowerPC32 too. * powerpc.cc (Stub_table::stub_align): Heed --plt-align for 32-bit. (Stub_table::plt_call_size, branch_stub_size): Tidy. (Stub_table::plt_call_align): Implement using stub_align. (Output_data_glink::global_entry_align): New function. (Output_data_glink::global_entry_off): New function. (Output_data_glink::global_entry_address): Use global_entry_off. (Output_data_glink::pltresolve_size): New function, replacing pltresolve_size_ constant. Update all uses. (Output_data_glink::add_global_entry): Align offset. (Output_data_glink::set_final_data_size): Use global_entry_align. (Stub_table::do_write): Don't pad __glink_PLTrelsolve with nops. Tidy stub output. Use global_entry_off. ld/ * emultempl/ppc32elf.em (params): Init new field. (enum ppc32_opt): New enum to define OPTION_* values. Add OPTION_PLT_ALIGN and OPTION_NO_PLT_ALIGN. (PARSE_AND_LIST_LONGOPTS): Handle new options. (PARSE_AND_LIST_ARGS_CASES): Likewise. (PARSE_AND_LIST_OPTIONS): Likewise. Break up help output. * emultempl/ppc64elf.em (ppc_add_stub_section): Init alignment correctly for negative --plt-stub-align. * testsuite/ld-powerpc/elfv2exe.d, * testsuite/ld-powerpc/elfv2so.d, * testsuite/ld-powerpc/relbrlt.d, * testsuite/ld-powerpc/relbrlt.s, * testsuite/ld-powerpc/tlsexe.d, * testsuite/ld-powerpc/tlsexe.r, * testsuite/ld-powerpc/tlsexe32.d, * testsuite/ld-powerpc/tlsexe32.g, * testsuite/ld-powerpc/tlsexe32.r, * testsuite/ld-powerpc/tlsexetoc.d, * testsuite/ld-powerpc/tlsexetoc.r, * testsuite/ld-powerpc/tlsopt5_32.d, * testsuite/ld-powerpc/tlsso.d, * testsuite/ld-powerpc/tlstocso.d: Update for changed stub order. commit 78742b93a5fef4b88b1391817e7bcc6738000044 Author: GDB Administrator Date: Wed Jan 17 00:00:42 2018 +0000 Automatic date update in version.in commit 0dd86f32bcb1675e9d1db5e7b916a347667709d3 Author: Joel Brobecker Date: Tue Jan 16 14:18:36 2018 +0100 binutils release procedure: Add AI to update branch name in crontab binutils/ChangeLog: * README-how-to-make-a-release: Add reminder to update the branch name in gdbadmin's crontab on sourceware. commit f6efed019b4e49a4c27b518afbdf2d9bf0652843 Author: Nick Clifton Date: Tue Jan 16 12:45:44 2018 +0000 Update translations for various binutils components. ld * po/pt_BR.po: Updated Brazilian Portugese translation. opcodes * po/pt_BR.po: Updated Brazilian Portugese translation. * po/de.po: Updated German translation. gas * po/fr.po: Updated French translation. binutils* po/fr.po: Updated French translation. commit a960d29fb7b2186e495360887a334e780c03a6c6 Author: Joel Brobecker Date: Tue Jan 16 12:20:01 2018 +0100 Remove trailing spaces in binutils/README-how-to-make-a-release binutils/ChangeLog: * README-how-to-make-a-release: Remove trailing spaces. commit 9a70f35c8d872bb5542e98e34b8b044228dcb844 Author: Yao Qi Date: Tue Jan 16 09:05:39 2018 +0000 Mark register unavailable when PTRACE_PEEKUSER fails As described in PR 18749, GDB/GDBserver may get an error on accessing memory or register because the thread may disappear. However, some path doesn't expect the error. This patch fixes this problem by marking the register unavailable when PTRACE_PEEKUSER fails instead of throwing error. gdb/gdbserver: 2018-01-16 Yao Qi PR gdb/18749 * linux-low.c (fetch_register): Call supply_register instead of error. commit 46a7082471545e05e7161737fa3b6f597e150b72 Author: GDB Administrator Date: Tue Jan 16 00:00:34 2018 +0000 Automatic date update in version.in commit 2721d702a055fe0f7621386123b103b5c4d84662 Author: Jim Wilson Date: Mon Jan 15 14:53:44 2018 -0800 RISC-V: Add support for addi that compresses to c.nop. gas/ * testsuite/gas/riscv/c-zero-imm.s: Test addi that compresses to c.nop. * testsuite/gas/riscv/c-zero-imm.d: Likewise. opcodes/ * riscv-opc.c (match_c_nop): New. (riscv_opcodes) : Handle an addi that compresses to c.nop. commit db422fb2120e311318657d9c7dd0e7b0b5a5eac9 Author: Pedro Alves Date: Mon Jan 15 20:03:20 2018 +0000 gdb/common/signals-state-save-restore.c: Fix typos gdb/ChangeLog: 2018-01-15 Pedro Alves * common/signals-state-save-restore.c (save_original_signals_state): Fix typos. commit 86d6a90c58ee3fb924bcbca154f4e32347437e6c Author: Tom Tromey Date: Wed Jan 3 11:12:34 2018 -0700 Fix scm-ports.exp regression In https://sourceware.org/ml/gdb-patches/2017-12/msg00215.html, Jan pointed out that the scalar printing patches caused a regression in scm-ports.exp on x86. What happens is that on x86, this: set sp_reg [get_integer_valueof "\$sp" 0] ... ends up setting sp_reg to a negative value, because get_integer_valueof uses "print/d": print /d $sp $1 = -11496 Then later the test suite does: gdb_test "guile (print (seek rw-mem-port (value->integer sp-reg) SEEK_SET))" \ "= $sp_reg" \ "seek to \$sp" ... expecting this value to be identical to the saved $sp_reg value. However it gets: guile (print (seek rw-mem-port (value->integer sp-reg) SEEK_SET)) = 4294955800 "print" is just a wrapper for guile's format: gdb_test_no_output "guile (define (print x) (format #t \"= ~A\" x) (newline))" The seek function returns a scm_t_off, the printing of which is handled by guile, not by gdb. Tested on x86-64 Fedora 26 using an ordinary build and also a -m32 build. 2018-01-15 Tom Tromey * gdb.guile/scm-ports.exp (test_mem_port_rw): Use get_valueof to compute sp_reg. commit 930b5f8bfb8e2d971f459c570d248714183a08d5 Author: Cary Coutant Date: Mon Jan 15 10:05:54 2018 -0800 Fix -fuse-ld option to accept string argument. PR 22042 complained that garbage text was being printed in the help for the -fuse-ld option; this was caused by passing an empty string to the gettext() function, which sometimes returns garbage when passed an empty string. The quick fix was to replace "" with NULL as the helparg, but that changed the parsing of the option, as gold uses the helparg to determine whether an option takes an argument. This patch adds a non-empty helparg string to fix both problems. gold/ PR gold/22694 * options.h (-fuse-ld): Add correct helparg. commit cf3cf39d53c3fc6b9cf27d97deb6ffecf0a7f6e7 Author: Thomas Preud'homme Date: Mon Jan 15 14:13:33 2018 +0000 [ARM] Add new macro for Thumb-only opcodes Armv8-M Security Extensions introduced some Thumb-only opcodes (eg. sg). These are defined using the TUE and TCE macros, setting the Arm execution state related fields to 0/NULL. This patch adds 2 new macros to avoid filling this field and clearly identify Thumb-only instructions. 2018-01-15 Thomas Preud'homme gas/ * config/tc-arm.c (ToC): Define macro. (ToU): Likewise. (insns): Make use of above macros for new instructions introduced in Armv8-M. commit 2875ce2b55bdda40107ef3500edfeccfb29f14e6 Author: Thomas Preud'homme Date: Mon Jan 15 14:11:02 2018 +0000 [ARM] Enable conditional Armv8-M instructions Newly introduced instructions common to ARMv8-M Baseline and Mainline are currently all marked as unconditional. However, all instructions but sg (ie. blxns, bxns, tt, ttt, tta, ttat, vlldm and vlstm) do actually support conditional execution. This patch fixes the definition of these instructions accordingly. 2018-01-15 Thomas Preud'homme gas/ * config/tc-arm.c (insns): Make blxns, bxns, tt, ttt, tta, ttat, vlldm and vlstm conditionally executable and reindent parameters. * testsuite/gas/arm/archv8m-cmse-main.s: Add conditional version of aforementionned instructions. commit df9909b8675c8c9b6fa88c5d13afd2efa66dcf68 Author: Thomas Preud'homme Date: Mon Jan 15 14:09:28 2018 +0000 [ARM] No IT usage deprecation for ARMv8-M Deprecations related to the use of the IT instruction introduced in Armv8-A do not apply to Armv8-M Baseline and mainline. However the warning logic do not distinguish between the various profiles and warn whenever the architecture version is 8. This patch adds a check to exclude M profile architectures from this warning. This works as expected when -march is specified on the command-line or a .arch/.cpu directive exist. However, in autodetection mode the CPU/architecture targeted is only known once the instructions have been all processed but this code is run when IT instruction is processed. It is therefore not possible to distinguish between Armv8-M and Armv8-A in that mode. The approach chosen here is not to warn in autodetection mode. The udf.d testcase that relied on that behavior to test deprecation warning for Armv8-A is therefore updated to explicitely pass -march=armv8-a. 2018-01-15 Thomas Preud'homme gas/ * config/tc-arm.c (it_fsm_post_encode): Do not warn if targeting M profile architecture or if in autodetection mode. Clarify that deprecation is for performance reason and concerns Armv8-A and Armv8-R. * testsuite/gas/arm/armv8-ar-bad.l: Adapt to new IT deprecation warning message. * testsuite/gas/arm/armv8-ar-it-bad.l: Likewise. * testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l: Likewise. * testsuite/gas/arm/udf.l: Likewise. * testsuite/gas/arm/udf.d: Assemble for Armv8-A explicitely. commit d726cb5d3784f7ed96318a2214ea777a86f9faad Author: Szabolcs Nagy Date: Mon Jan 15 13:06:45 2018 +0000 Fix gdb.texinfo more Add incorrectly removed @pindex back. gdb/doc/ChangeLog: * gdb.texinfo (gdb-add-index man): Add pindex. commit 616dcb87abe148edf7278581e04cf23aff97411e Author: Nick Clifton Date: Mon Jan 15 12:09:11 2018 +0000 Update Ukranian translations for bfd, binutils, gas, gold, ld and opcodes commit dbfa452355153093d4d6841515f9891c9572113f Author: Szabolcs Nagy Date: Mon Jan 15 10:44:12 2018 +0000 Fix gdb.texinfo for old makeinfo (again) With old makeinfo (version 4.13) the changes introduced in commit ba643918cf869fa0d064d733f69b453b6fe642ea Author: Sergio Durigan Junior Install and generate docs for gdb-add-index fail to build with gdb/doc/gdb.texinfo:2498: warning: `.' or `,' must follow @xref, not `@'. gdb/doc/gdb.texinfo:2517: warning: `.' or `,' must follow @xref, not `@'. gdb/doc/gdb.texinfo:43443: Node `gdb-add-index man' requires a sectioning command (e.g., @unnumberedsubsec). gdb/doc/gdb.texinfo:43443: `gdb-add-index man' has no Up field (perhaps incorrect sectioning?). gdb/doc/gdb.texinfo:43350: Next field of node `gdbinit man' not pointed to (perhaps incorrect sectioning?). gdb/doc/gdb.texinfo:43443: This node (gdb-add-index man) has the bad Prev. This patch fixes the warnings too. gdb/doc/ChangeLog: * gdb.texinfo (set cwd): Add period. (gdb-add-index man): Move anchor. commit 801728126e4a627305c2c7dc8e6d3eb30a5cb506 Author: GDB Administrator Date: Mon Jan 15 00:00:29 2018 +0000 Automatic date update in version.in commit 1f8e8a3540865686686e1a87e6b5e16dc6011595 Author: GDB Administrator Date: Sun Jan 14 00:00:44 2018 +0000 Automatic date update in version.in commit 19e2900bd399d1ba272afe8b5b50b1b29a948bbe Author: Nick Clifton Date: Sat Jan 13 14:29:27 2018 +0000 Update notes on how to make a release commit 3957a4963f38fb249eced6c880efacd22f10eb28 Author: Nick Clifton Date: Sat Jan 13 13:56:48 2018 +0000 Update pot files commit 769c7ea507209948135facd04bf8defc3f21a8a4 Author: Nick Clifton Date: Sat Jan 13 13:31:12 2018 +0000 Bump version number to 2.30.51 bfd/ * version.m4: Bump version to 2.30.51 * configure: Regenerate. binutils/ * configure: Regenerate. gas/ * configure: Regenerate. gprof/ * configure: Regenerate. ld/ * configure: Regenerate. opcodes/ * configure: Regenerate. commit faf766e31794722b7e2c24e44e920d0476cede32 Author: Nick Clifton Date: Sat Jan 13 13:26:38 2018 +0000 Add note about 2.30 branch creation to changelogs commit 9176ac5bfce8c1771063c2514b7d46efa613cc1b Author: Nick Clifton Date: Sat Jan 13 13:20:55 2018 +0000 Add 2.30 markers to NEWS files. binutils/ * NEWS: Add marker for 2.30. gas/ * NEWS: Add marker for 2.30. ld/ * NEWS: Add marker for 2.30. commit 27f7b092c26b84633a4a266ba8ff01154d915035 Author: Cary Coutant Date: Fri Jan 12 18:38:11 2018 -0800 Update gold version number to 1.15. gold/ * NEWS: Add new features in 1.15. * version.cc (version_string): Bump to 1.15. commit da4b575911f7e705b3b906e1622b19e9da1faff3 Author: GDB Administrator Date: Sat Jan 13 00:00:33 2018 +0000 Automatic date update in version.in commit cbcdb1aaddb4dd1a388eadbea6b6ec342c7ab067 Author: Andrew Burgess Date: Thu Jan 11 18:58:10 2018 +0000 gdb/testsuite: Don't attempt tests if they fail to compile In the gdb.base/whatis-ptype-typedefs.exp test, if the test program fails to compile, don't run the tests. gdb/testsuite/ChangeLog: * gdb.base/whatis-ptype-typedefs.exp: Don't run tests if we failed to prepare. (prepare): Return 0 on error, 1 on success. commit ba643918cf869fa0d064d733f69b453b6fe642ea Author: Sergio Durigan Junior Date: Thu Jan 11 16:12:05 2018 -0500 Install and generate docs for gdb-add-index The "gdb-add-index" script has been resurrected on: commit caf26be91a584ef141ac5d3cb31007731af8b8e3 Author: Samuel Bronson Date: Fri Nov 15 16:09:33 2013 -0500 Resurrect gdb-add-index as a contrib script However, for some reason (I couldn't find it in the archives), only the script has been checked-in; the Makefile parts responsible for installing it in the system were left out. This commit fixes that, by also resurrecting the Makefile and documentation bits. This commit is part of our effort to upstream the local Fedora GDB changes. With this commit, we'll only carry a very small Fedora-specific modification to the script. gdb/ChangeLog: 2017-01-12 Tom Tromey Sergio Durigan Junior * Makefile.in (install-only): Install gdb-add-index. gdb/doc/ChangeLog: 2017-01-12 Tom Tromey Sergio Durigan Junior * gdb.texinfo (Index Files): Mention gdb-add-index. (gdb-add-index man): New section. * Makefile.in (gdb-add-index.1): New rule to generate manpage from gdb.texinfo. commit 906b4aac4c1d3cdb2b1ea7105133cfbe25e04e14 Author: John Baldwin Date: Fri Jan 12 12:05:50 2018 -0800 Use the correct value for the offset of 'kve_protection'. I had forgotten to convert the decimal output of 'ptype /o' to hex (but still used a 0x prefix) for the KVE_PROTECTION constant defining the offset of the 'kve_protection' field in the 'kinfo_vmentry' structure. This resulted in garbage permissions for entries in 'info proc mappings' for FreeBSD core dumps. gdb/ChangeLog: * fbsd-tdep.c (KVE_PROTECTION): Correct value. commit b4b07ef1d11452018477d6a4166a0cfe1122d09d Author: Eric Christopher Date: Fri Jan 12 11:05:58 2018 -0800 Apply: 2018-01-12 Sterling Augustine * cref.cc (Cref_inputs::Cref_table_compare::operator): Add conditionals and calls to is_forwarder. commit eea61984abfea2c0acdc7e46ec182a14698b3bf9 Author: Pedro Alves Date: Fri Jan 12 18:52:39 2018 +0000 Add testcase for GDB hang fixed by previous commit This adds a testcase for the previous commit. The regression was related to in-line step overs. The reason we didn't see it on native x86-64/s390 GNU/Linux testing is that native debugging uses displaced stepping by default (because native debugging defaults to "maint set target-non-stop on"), unlike remote debugging. So in order to trigger the bug with native debugging as well, the testcase disables displaced stepping explicitly. Also, instead of using watchpoints to trigger the regression, the testcase uses a breakpoint at address 0, which should be more portable. gdb/testsuite/ChangeLog: 2018-01-12 Pedro Alves * gdb.base/continue-after-aborted-step-over.c: New. * gdb.base/continue-after-aborted-step-over.exp: New. commit bdf2a94aa535016a1640d56e9b2b539c4376bf31 Author: Andreas Arnez Date: Fri Jan 12 18:52:39 2018 +0000 Fix GDB hang with remote after error from resume Since this commit -- Fix PR18360 - internal error when using "interrupt -a" (https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=c65d6b55) -- the testsuite shows long delays on s390 with native-gdbserver when executing certain tests, such as watchpoints.exp. These hangs have been discussed before in the context of buildbot problems, see here: https://sourceware.org/ml/gdb-patches/2017-12/msg00413.html The problem can easily be triggered by stopping on a breakpoint, then setting impossible watchpoints, and finally doing "continue". Then, after having set the step-over state (in keep_going_pass_signal in infrun.c), GDB tries to insert breakpoints and watchpoints into the inferior. This fails, and the "continue" command is aborted. But the step-over state is not cleared in this case, which causes future step-over attempts to be skipped since GDB thinks that "we already have an in-line step-over operation ongoing" (see start_step_over in infrun.c). Thus the next "continue" just goes on to wait for events from the remote, which will never occur. The problem can also be reproduced on amd64 with native-gdbserver, using the following change to watchpoints.exp: -- >8 -- --- a/gdb/testsuite/gdb.base/watchpoints.exp +++ b/gdb/testsuite/gdb.base/watchpoints.exp @@ -61,2 +61,3 @@ with_test_prefix "before inferior start" { gdb_test "watch ival3" ".*" "" + gdb_test "watch *(char \[256\] *) main" -- >8 -- To fix the hang, this patch clears the step-over info when insert_breakpoints has failed. Of course, with native-gdbserver the watchpoints.exp test case still causes many FAILs on s390, because gdbserver does not support watchpoints for that target. This is a separate issue. gdb/ChangeLog: 2018-01-12 Andreas Arnez * infrun.c (keep_going_pass_signal): Clear step-over info when insert_breakpoints fails. commit 98ab9e9603cdf52faab5b838c078c24be4e1364b Author: Nick Clifton Date: Fri Jan 12 17:52:38 2018 +0000 Add notes on how to make a branch and a pre-release snapshot. * README-how-to-make-a-release: Add notes on how to make the branch and prelease snapshot. * BRANCHES: Add binutils-2_29-branch. commit 564e11c9a9d9570b233b38cd995f1b4eb7c757e8 Author: Jens Widell Date: Fri Jan 12 13:16:17 2018 +0000 Optimize the performance of the group_setup function. When processing a section that is a member of a group, the group that contains it is looked up using a linear search. The resulting O(n^2) complexity causes significant performance issues when dealing with object files with very many groups. By remembering the index of the last found group and restarting the next search from that index, the search instead becomes O(n) in common cases. * elf.c (setup_group): Optimize search for group by remembering last found group and restarting search at that index. * elf-bfd.h (struct elf_obj_tdata): Add group_search_offset field. commit b5b62006522c6d8d42028754bb1be165f00fe210 Author: Gunther Nikl Date: Fri Jan 12 13:12:17 2018 +0000 Fix compile time warning building aout targeted architectures. Occasionally I build an out-of-tree a.out target (m68k-amigaos). After a system upgrade which included a newer compiler (clang 4) the build produces warnings like this: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined] This is caused by the macro gas/config/aout_gnu.h:USE_EXTENDED_RELOC. Since it is in a header file, the warning triggers for several files. I am unsure what solution is preferable, thus I am suggesting two patches: a) keep the offending macro but define it explicitly to 0 and 1 b) replace the macro usage with its value where it is used. Either patch removes the warning for clang. I did not check with a recent GCC. * gas/config/aout_gnu.h (USE_EXTENDED_RELOC): Explicitly define to 0 and 1. Remove a dangling reference to "AMD 29000" in a comment. commit 5ae5d3fd10c4bb520d767b25c59bf86db764adef Author: Alan Modra Date: Fri Jan 12 21:10:48 2018 +1030 pr22374 function pointer initialization When I added this test I said I'd look at fixing more targets. That hasn't happened yet, so xfail to tidy results. * testsuite/ld-elf/elf.exp: xfail "pr22374 function pointer initialization" for currently failing targets. commit a78eea1623aa6d05a395a73414bf01f6c8ae81c6 Author: Alan Modra Date: Fri Jan 12 10:37:28 2018 +1030 Fix override of common symbols for a.out The default should be bfd_link_common_skip_none, as in the original patch at https://sourceware.org/ml/binutils/2002-07/msg00717.html * aoutx.h (aout_link_check_ar_symbols): Remove default and handle bfd_link_common_skip_none in switch. commit 87e79a6515951fece72ee08871dd6e112b1042ba Author: Alan Modra Date: Fri Jan 12 16:58:04 2018 +1030 Fixes for "Ignore dynamic references on forced local symbols" PowerPC64 has its own mark_dynamic_ref, which needs the same change as made by d664fd41e1 to the generic ELF version. Some other targets discard more than just .data, so allow for that too in expected ld messages. bfd/ PR ld/22649 * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Ignore dynamic references on forced local symbols. ld/ PR ld/22649 * testsuite/ld-elf/pr22649.msg: Allow other messages. * testsuite/ld-elf/shared.exp: Check that --gc-sections is supported before running ld/22649 tests. commit 58807c48a5a317ad3e2d39a8755168a3d4d5fdf8 Author: Vlad Ivanov Date: Fri Jan 12 09:25:11 2018 +0000 _bfd_mips_elf_final_link: Notify user about wrong .reginfo size One of assertions in _bfd_mips_elf_final_link could be triggered by a combination of input files and a linker script. This happens when either the input doesn't contain .reginfo section or when this section is oversized. This patch replaces the assertion with a more useful error message. * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when .reginfo section has wrong size. commit 97a232d7335f3bd0231fd9cd39455bde1d563922 Author: Nick Clifton Date: Fri Jan 12 08:15:55 2018 +0000 Add -z undefs option to the ELF linker. Currently we have no obvious way to revert the action of the "-z defs" command line option. The "--unresolved-symbols=ignore-in-object-files" does pretty much what is needed, but it is non-obvious and it also touches the setting for reporting unresolved symbol references from shared libraries. So I am proposing adding a "-z undefs" option to be the inverse of "-z defs". (I thought that "-z nodefs" might be confusing since it implies banning all definitions, rather than allowing them). In addition the description of the "-z defs" option in the linker documentation is misleading in one place, where it says: 'defs' Disallows undefined symbols in object files. Undefined symbols in shared libraries are still allowed. whereas later on it gets it right: '-z defs' Report unresolved symbol references from regular object files. This is done even if the linker is creating a non-symbolic shared library. The switch '--[no-]allow-shlib-undefined' controls the behaviour for reporting unresolved references found in shared libraries being linked in. * emultempl/elf32.em (_handle_option): Add support for "-z undefs" as the opposite of "-z defs". * ld.texinfo: Document the new option. Update the description of the -z defs option to make it clear that it does generate an error if an undefined symbol reference is found in an object file whilst creating a shared library. * NEWS: Document this new feature. commit 33eff4ce18fbee82ef39838b7c8623aed17dea60 Author: H.J. Lu Date: Thu Jan 11 20:46:01 2018 -0800 ld: Replace "-z textonly" with "-z separate-code" Although they aren't passed to linker, we should get it right. * testsuite/ld-elf/pr22393-2a.rd: Replace "-z textonly" with "-z separate-code". * testsuite/ld-elf/pr22393-2b.rd: Likewise. * testsuite/ld-x86-64/pr22393-3a.rd: Likewise. * testsuite/ld-x86-64/pr22393-3b.rd: Likewise. commit cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0 Author: H.J. Lu Date: Thu Jan 11 19:19:22 2018 -0800 x86-64: Add tests for -z separate-code -z max-page-size=0x1000 PR ld/22393 * testsuite/ld-x86-64/pr22393-3a.c: New file. * testsuite/ld-x86-64/pr22393-3a.rd: Likewise. * testsuite/ld-x86-64/pr22393-3b.c: Likewise. * testsuite/ld-x86-64/pr22393-3b.rd: Likewise. * testsuite/ld-x86-64/x86-64.exp: Run tests for -z separate-code -z max-page-size=0x1000. commit d346bb277c7f194ece73a7200d1ed6417b1194e5 Author: H.J. Lu Date: Thu Jan 11 19:17:46 2018 -0800 ld: Add tests for -z separate-code and -z noseparate-code Verify that -z separate-code works and -z noseparate-code doesn't disable -z relro. PR ld/22393 * testsuite/ld-elf/pr16322.d: Add -z noseparate-code. * testsuite/ld-elf/pr22393-1.s: New file. * testsuite/ld-elf/pr22393-1a.d: Likewise. * testsuite/ld-elf/pr22393-1b.d: Likewise. * testsuite/ld-elf/pr22393-1c.d: Likewise. * testsuite/ld-elf/pr22393-1d.d: Likewise. * testsuite/ld-elf/pr22393-1e.d: Likewise. * testsuite/ld-elf/pr22393-1f.d: Likewise. * testsuite/ld-elf/pr22393-2a.c: Likewise. * testsuite/ld-elf/pr22393-2a.rd: Likewise. * testsuite/ld-elf/pr22393-2b.c: Likewise. * testsuite/ld-elf/pr22393-2b.rd: Likewise. * testsuite/ld-elf/shared.exp: Run tests for -z separate-code. commit 2888249fc9eb38b6d6e4bd969ce63c26e3753d5e Author: H.J. Lu Date: Thu Jan 11 19:04:55 2018 -0800 ld: Create a new LOAD segment for separate code segment When generating separate code LOAD segment, create a new LOAD segment if the previous section contains text and the current section doesn't or vice versa: Elf file type is DYN (Shared object file) Entry point 0x200020 There are 7 program headers, starting at offset 52 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x00000000 0x00000000 0x00200 0x00200 R 0x200000 LOAD 0x200000 0x00200000 0x00200000 0x00036 0x00036 R E 0x200000 LOAD 0x400000 0x00400000 0x00400000 0x00064 0x00064 R 0x200000 LOAD 0x400f80 0x00600f80 0x00600f80 0x000a0 0x000a0 RW 0x200000 DYNAMIC 0x400f80 0x00600f80 0x00600f80 0x00080 0x00080 RW 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 GNU_RELRO 0x400f80 0x00600f80 0x00600f80 0x00080 0x00080 R 0x1 Section to Segment mapping: Segment Sections... 00 .hash .gnu.hash .dynsym .dynstr .rela.plt 01 .plt .text 02 .rodata .eh_frame 03 .dynamic .got.plt 04 .dynamic 05 06 .dynamic to prevent fetching or executing data in code pages as instructions. Also don't put a writable section in a read-only segment if there is a RELRO segment. Since code segment is aligned and padded to the maximum page size on disk, the minimum file size is bigger than the maximum page size which is 2MB (0x200000): -rwxr-xr-x 1 hjl hjl 4201932 Jan 10 10:41 libfoo.so "-z max-page-size=0x1000" can be used to reduce the maximum page size to 4KB (0x1000): -rwxr-xr-x 1 hjl hjl 15820 Jan 10 10:44 libfoo.so PR ld/22393 * elf.c (_bfd_elf_map_sections_to_segments): When generating separate code and read-only data LOAD segments, create a new LOAD segment if the previous section contains text and the current section doesn't or vice versa. Don't put a writable section in a read-only segment if there is a RELRO segment. commit 47acac12c83f173481debc64618626b50ecf7498 Author: H.J. Lu Date: Thu Jan 11 19:01:39 2018 -0800 ld: Add "-z separate-code" option to ELF linker The new "-z separate-code" option will generate separate code LOAD segment which must be in wholly disjoint pages from any other data. include/ PR ld/22393 * bfdlink.h (bfd_link_info): Add separate_code. ld/ PR ld/22393 * NEWS: Mention "-z separate-code". * emultempl/elf32.em (gld${EMULATION_NAME}_get_script): Get builtin linker scripts and return linker scripts from disk for "-z separate-code". (gld${EMULATION_NAME}_handle_option): Handle "-z separate-code" and "-z noseparate-code". * genscripts.sh: Generate linker scripts for "-z separate-code". (LD_FLAG): Set to *textonly for "-z separate-code". * ld.texinfo: Document "-z separate-code". * lexsup.c (elf_shlib_list_options): Add linker help messsages for "-z separate-code" and "-z noseparate-code". * scripttempl/elf.sc (SEPARATE_TEXT): New (TEXT_SEGMENT_ALIGN): Likewise. Use ${TEXT_SEGMENT_ALIGN} to align and pad text segment to ${MAXPAGESIZE}. commit 6181e9c2c5ba252ac016f51903dc35d7bfbbca71 Author: Simon Marchi Date: Thu Jan 11 21:08:23 2018 -0500 gdb_compile_shlib: Only consider shlib= options when building executables Trying to use gdb_compile_shlib with the shlib= option to build a shared library that depends on another shared library does not work as of today. See: https://sourceware.org/ml/gdb-patches/2017-10/msg00733.html The problem is that building the lib is done in two steps, compilation (.c -> .o) and linking (.o -> .so) and the shlib= options are passed to both steps. When compiling the object file (.o), it results in gcc complaining: gcc: warning: .../solib-vanish-lib2.so: linker input file unused because linking not done The first solution I came up with was to filter the options inside gdb_compile_shlib to remove the shlib= options from the options we pass when compiling the .o file. I then thought it would be simpler to ignore the shlib= options in gdb_compile when not building an executable (the executable category includes the shared libraries). For other compilation types (object file, preprocess and generate assembly), it doesn't make sense to add shared libraries to the source file list. Regtested on the buildbot. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_compile): Ignore shlib= and shlib_load options when not creating an executable. commit 89a7f793f1963b14bd649afc4154903d22591ae0 Author: GDB Administrator Date: Fri Jan 12 00:00:23 2018 +0000 Automatic date update in version.in commit d664fd41e15f058aab41b70c567ad09f2fab1115 Author: H.J. Lu Date: Thu Jan 11 15:36:40 2018 -0800 Ignore dynamic references on forced local symbols We should ignore dynamic references on forced local symbols during garbage collection since they can never be referenced dynamically. bfd/ PR ld/22649 * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Ignore dynamic references on forced local symbols. ld/ PR ld/22649 * testsuite/ld-elf/pr22649-1.s: New file. * testsuite/ld-elf/pr22649-2a.s: Likewise. * testsuite/ld-elf/pr22649-2b.s: Likewise. * testsuite/ld-elf/pr22649.msg: Likewise. * testsuite/ld-elf/shared.exp: Run ld/22649 tests. commit 71d378ae60a4f072ce392046878d471255f6c8a1 Author: Pedro Alves Date: Thu Jan 11 17:50:31 2018 +0000 gdb.base/breakpoint-in-ro-region.exp regression on sss targets (PR gdb/22583) As Maciej reported at , this commit: commit d930703d68ae160ddfe8ebe5fdcf416fb6090e1e Date: Thu Nov 16 18:44:43 2017 +0000 Subject: Don't ever Quit out of resume caused regressions on software single-set targets, specifically: FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw off: single-step breakpoint is not left behind FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw on: single-step breakpoint is not left behind FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw off: step in ro region (cannot insert hw break) FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw off: single-step breakpoint is not left behind FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw on: single-step breakpoint is not left behind and indeed detailed logs indicate a breakpoint is left lingering, e.g.: (gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw off: step in ro region (cannot insert sw break) maint info breakpoints 0 Num Type Disp Enb Address What 0 sw single-step keep y 0x00400774 in main at [...]/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c:24 inf 1 thread 1 stop only in thread 1 (gdb) FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw off: single-step breakpoint is not left behind vs: (gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw off: step in ro region (cannot insert sw break) maint info breakpoints 0 No breakpoint or watchpoint matching '0'. (gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw off: single-step breakpoint is not left behind as at commit d930703d68ae^. Before commit d930703d68ae, we had a cleanup installed in 'resume' that would delete single-step breakpoints on error: /* Resuming. */ /* Things to clean up if we QUIT out of resume (). */ static void resume_cleanups (void *ignore) { if (!ptid_equal (inferior_ptid, null_ptid)) delete_single_step_breakpoints (inferior_thread ()); normal_stop (); } That whole function was removed by d930703d68ae mainly to eliminate the normal_stop call: ~~~~ Note that the exception called from within resume ends up calling normal_stop via resume_cleanups. That's very borked though, because normal_stop is going to re-handle whatever was the last reported event, possibly even re-running a hook stop... ~~~~ But as the regression shows, removing resume_cleanups completely went a bit too far, as the delete_single_step_breakpoints call is still necessary. So fix the regression by reinstating the delete_single_step_breakpoints call on error. However, since we're trying to eliminate cleanups, restore it in a different form (using TRY/CATCH). Tested on x86-64 GNU/Linux both top of master and on top of a series that implements software single-step on x86. gdb/ChangeLog: 2018-01-11 Pedro Alves PR gdb/22583 * infrun.c (resume): Rename to ... (resume_1): ... this. (resume): Reimplement as wrapper around resume_1. commit 8b6f4cd34fdde524ea035c65f7d48aaa3fb449b5 Author: H.J. Lu Date: Thu Jan 11 09:42:12 2018 -0800 ld: Keep PREINIT_ARRAY/INIT_ARRAY/FINI_ARRAY sections for -r --gc-sections We must keep all PREINIT_ARRAY, INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-sections. bfd/ PR ld/22677 * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY, INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-sections. ld/ PR ld/22677 * scripttempl/elf.sc (PREINIT_ARRAY): New. Don't add .preinit_array for ld -r. * testsuite/ld-elf/pr22677.d: New file. * testsuite/ld-elf/pr22677.s: Likewise. commit 65f14869fd3fbee8ed4c4ca49de8aaa86dbc66cb Author: Andrew Burgess Date: Fri Jan 5 14:59:05 2018 +0000 ld: Remove unused expression state Previous commit removed all uses of the defsym field within the linker expression union. This commit cleans up the now redundant state. ld/ChangeLog: * ldexp.h (union etree_union): Remove defsym field. * ldexp.c (exp_assop): Remove defsym parameter, and use of defsym parameter. (exp_assign): Remove passing of defsym parameter. (exp_defsym): Likewise. (exp_provide): Likewise. commit eab62f2f018417121e2520acb0623985b1708b02 Author: Andrew Burgess Date: Thu Apr 27 18:05:08 2017 +0100 ld: Fix issue where PROVIDE overrides defined symbol In a linker script, a sequence like this: foo = ADDR (.some_section); bar = foo; PROVIDE (foo = 0); will result in 'bar = ADDR (.some_section)' and 'foo = 0', which seems like incorrect behaviour, foo is clearly defined elsewhere, and so the PROVIDE should not trigger. The problem is that an expression like this: foo = ADDR (.some_section); can't be evaluated until a late phase of the linker, due to the need for the section '.some_section' to have been placed, then the PROVIDE was being marked as being used during an earlier phase. At the end of the link, both lines: foo = ADDR (.some_section); PROVIDE (foo = 0); are active, and this causes the final value of 'foo' to be 0. The solution proposed in this commit is that, during earlier phases of the linker, when we see the expression 'foo = ADDR (.some_section);', instead of ignoring the expression, we create a "fake" definition of 'foo'. The existence of this "fake" definition prevents the PROVIDE from being marked used, and during the final phase the real definition of 'foo' will replace the "fake" definition. The new test provide-6 covers the exact case described above. The provide-7 test is similar to the above, but using constant expressions, this was never broken, but is added here to increase coverage. The provide-8 case also didn't fail before this commit, but I did manage to break this case during development of this patch. This case was only covered by a mmix test before, so I've added this here to increase coverage. ld/ChangeLog: * ldexp.c (exp_fold_tree_1): Rework condition underwhich provide nodes are ignored in the tree walk, and move the location at which we change provide nodes into provided nodes. (exp_init_os): Add etree_provided. * testsuite/ld-scripts/provide-6.d: New file. * testsuite/ld-scripts/provide-6.t: New file. * testsuite/ld-scripts/provide-7.d: New file. * testsuite/ld-scripts/provide-7.t: New file. * testsuite/ld-scripts/provide-8.d: New file. * testsuite/ld-scripts/provide-8.t: New file. commit 8be965c5f058f79554ec3376afac994e6e3ad1b7 Author: Andrew Burgess Date: Thu Apr 27 17:53:28 2017 +0100 ld: Find and run some tests using a wildcard pattern Find the ld-script/provide-*.d tests using a wildcard, then run them in a loop. This will make it easier to add more tests in the future. Some associated clean up is required. ld/ChangeLog: * testsuite/ld-scripts/provide-3.d: Add xfail directive. * testsuite/ld-scripts/provide-4.d: Use new map file name. * testsuite/ld-scripts/provide-5.d: Use new map file name. * testsuite/ld-scripts/provide-4-map.d: Renamed to... * testsuite/ld-scripts/provide-4.map: ...this. * testsuite/ld-scripts/provide-5-map.d: Renamed to... * testsuite/ld-scripts/provide-5.map: ...this. * testsuite/ld-scripts/provide.exp: Move xfail into provide-3.d file, and run tests in a loop. commit b3b9f8d3e99cf46c2f85445cc5189db4c4f47407 Author: Andrew Burgess Date: Fri Jan 5 22:41:55 2018 +0000 ld: In map file use '=' in PROVIDE statements Currently when recording a PROVIDE statement in a linker map file we display something like: PROVIDE (SYMBOL, VALUE) However, in a linker script we write these statements like this: PROVIDE (SYMBOL = VALUE); This commit changes the output in the map file to be closer to linker script format, the map file now contains: PROVIDE (SYMBOL = VALUE) The ';' is still missing from the end, but map files are not intended to be valid linker script input, so adding the ';' just seems like clutter. ld/ChangeLog: * ldexp.c (exp_print_tree): Use '=' instead of ',' when printing PROVIDE statements. * testsuite/ld-scripts/provide-4.map: Update expected output. * testsuite/ld-scripts/provide-5.map: Likewise. commit 6bd0a312a4cb6803b9d6aa2f5646b610d213a1fe Author: H.J. Lu Date: Thu Jan 11 05:05:25 2018 -0800 Fix the order of SHLIB_RODATA_ADDR in elf.sc elf.sc has if test -n "${RODATA_ADDR}"; then RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${RODATA_ADDR}) + SIZEOF_HEADERS" else RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" ^^^^^^^^^^ Set RODATA_ADDR RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${RODATA_ADDR})" ^^^^^^^^^^ Set RODATA_ADDR with ${RODATA_ADDR} fi if test -n "${SHLIB_RODATA_ADDR}"; then SHLIB_RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR}) + SIZEOF_HEADERS" else SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})" ^^^^^^^^^^ Set SHLIB_RODATA_ADDR SHLIB_RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" ^^^^^^^^^^ Override SHLIB_RODATA_ADDR fi The order should be: if test -n "${SHLIB_RODATA_ADDR}"; then SHLIB_RODATA_ADDR="\ SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR}) + SIZEOF_HEADERS" else SHLIB_RODATA_ADDR="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))" SHLIB_RODATA_ADDR="SEGMENT_START(\"rodata-segment\", ${SHLIB_RODATA_ADDR})" fi PR ld/22696 * scripttempl/elf.sc: Fix the order of SHLIB_RODATA_ADDR. commit 754452f07e701448e5d9bd004cb108ddc48a8d67 Author: Szabolcs Nagy Date: Thu Jan 11 12:13:39 2018 +0000 Fix gdb.texinfo for old makeinfo With old makeinfo (version 4.13) the changes introduced in commit 2d97a5d9d33aea87c3bd02fd1fa417f5d4e1fa05 Author: John Baldwin Document support for 'info proc' on FreeBSD. fail to build. gdb/doc/ChangeLog: * gdb.texinfo (pwd): Fix whitespace. commit 3cada74087687907311b52781354ff551e10a0ed Author: Pedro Alves Date: Thu Jan 11 00:23:04 2018 +0000 Fix backwards compatibility with old GDBservers (PR remote/22597) At , Maciej reported that commit: commit 5cd63fda035d4ba949e6478406162c4673b3c9ef Date: Wed Oct 4 18:21:10 2017 +0100 Subject: Fix "Remote 'g' packet reply is too long" problems with multiple inferiors made GDB stop working with older stubs. Any attempt to continue execution after the initial connection fails with: [...] Process .../gdb/testsuite/outputs/gdb.base/advance/advance created; pid = 2670 Listening on port 2346 target remote [...]:2346 Remote debugging using [...]:2346 Reading symbols from .../lib64/ld.so.1...done. [Switching to Thread
] (gdb) continue Cannot execute this command without a live selected thread. (gdb) The problem is: (gdb) c Cannot execute this command without a live selected thread. (gdb) info threads Id Target Id Frame 1 Thread 14917 0x00007f341cd98ed0 in _start () from /lib64/ld-linux-x86-64.so.2 The current thread has terminated. See `help thread'. ^^^^^^^^^^^ (gdb) Note, thread _2_. There's really only one thread in the inferior (it's still at the entry point), but still GDB added a bogus second thread. The reason GDB started adding a second thread after 5cd63fda035d is this hunk: + if (event->ptid == null_ptid) + { + const char *thr = strstr (p1 + 1, ";thread:"); + if (thr != NULL) + event->ptid = read_ptid (thr + strlen (";thread:"), + NULL); + else + event->ptid = magic_null_ptid; + } Note the else branch that falls back to magic_null_ptid. We reach that when we process the initial stop reply sent back in response to the the "?" (status) packet early in the connection setup: Sending packet: $?#3f...Ack Packet received: T0506:0000000000000000;07:40a510f4fd7f0000;10:d0fe1201577f0000; And note that that response does not include a ";thread:XXX" part. This stop reply is processed after listing threads with qfThreadInfo / qsThreadInfo : Sending packet: $qfThreadInfo#bb...Ack Packet received: m3915 Sending packet: $qsThreadInfo#c8...Ack Packet received: l meaning, when we process that stop reply, we treat the event as coming from a thread with ptid == magic_null_ptid, which is not yet in the thread list, so we add it then: (top-gdb) p ptid $1 = {m_pid = 42000, m_lwp = -1, m_tid = 1} (top-gdb) bt #0 0x0000000000840a8c in add_thread_silent(ptid_t) (ptid=...) at src/gdb/thread.c:269 #1 0x00000000007ad61d in remote_add_thread(ptid_t, int, int) (ptid=..., running=0, executing=0) at src/gdb/remote.c:1838 #2 0x00000000007ad8de in remote_notice_new_inferior(ptid_t, int) (currthread=..., executing=0) at src/gdb/remote.c:1921 #3 0x00000000007b758b in process_stop_reply(stop_reply*, target_waitstatus*) (stop_reply=0x1158860, status=0x7fffffffcc00) at src/gdb/remote.c:7217 #4 0x00000000007b7a38 in remote_wait_as(ptid_t, target_waitstatus*, int) (ptid=..., status=0x7fffffffcc00, options=0) at src/gdb/remote.c:7380 #5 0x00000000007b7cd1 in remote_wait(target_ops*, ptid_t, target_waitstatus*, int) (ops=0x102fac0 , ptid=..., status=0x7fffffffcc00, options=0) at src/gdb/remote.c:7446 #6 0x000000000081587b in delegate_wait(target_ops*, ptid_t, target_waitstatus*, int) (self=0x102fac0 , arg1=..., arg2=0x7fffffffcc00, arg3=0) at src/gdb/target-delegates.c:138 #7 0x0000000000827d77 in target_wait(ptid_t, target_waitstatus*, int) (ptid=..., status=0x7fffffffcc00, options=0) at src/gdb/target.c:2179 #8 0x0000000000715fda in do_target_wait(ptid_t, target_waitstatus*, int) (ptid=..., status=0x7fffffffcc00, options=0) at src/gdb/infrun.c:3589 #9 0x0000000000716351 in wait_for_inferior() () at src/gdb/infrun.c:3707 #10 0x0000000000715435 in start_remote(int) (from_tty=1) at src/gdb/infrun.c:3212 things go downhill from this. We don't see the problem with current master gdbserver, because that version always sends the ";thread:" part in the initial stop reply: Sending packet: $?#3f...Packet received: T0506:0000000000000000;07:a0d4ffffff7f0000;10:d05eddf7ff7f0000;thread:p3cea.3cea;core:3; Years ago I had added a "--disable-packet=" command line option to gdbserver which comes in handy for testing this, since the existing "--disable-packet=Tthread" precisely makes gdbserver not send that ";thread:" part in stop replies. The testcase added by this commit emulates old gdbserver making use of that. I've compared a testrun at 5cd63fda035d^ (before regression) with 'current master+patch', against old gdbserver at f8b73d13b7ca^. I hacked out --once, and "monitor exit" to be able to test. The results are a bit too unstable to tell accurately, but it looked like there were no regressions. Maciej confirmed this worked for him as well. No regressions on master (against master gdbserver). gdb/ChangeLog: 2018-01-11 Pedro Alves PR remote/22597 * remote.c (remote_parse_stop_reply): Default to the last-set general thread instead of to 'magic_null_ptid'. gdb/testsuite/ChangeLog: 2018-01-11 Pedro Alves PR remote/22597 * gdb.server/stop-reply-no-thread.c: New file. * gdb.server/stop-reply-no-thread.exp: New file. commit 888a89da7fa5d219695234c3a8dc7b8a57dfe8ee Author: Igor Tsimbalist Date: Thu Jan 11 02:56:45 2018 +0300 Remove VL variants for 4FMAPS and 4VNNIW insns. AVX512_4FMAPS and AVX512_4VNNIW insns are marked as having AVX512VL variants. That is wrong as SDM doesn't define such instructions. The patch removes these VL variants. gas/ * testsuite/gas/i386/avx512_4fmaps-warn.l: Change xmm to zmm. * testsuite/gas/i386/avx512_4fmaps-warn.s: Likewise. * testsuite/gas/i386/avx512_4fmaps_vl-intel.d: Delete. * testsuite/gas/i386/avx512_4fmaps_vl-warn.l: Likewise. * testsuite/gas/i386/avx512_4fmaps_vl-warn.s: Likewise. * testsuite/gas/i386/avx512_4fmaps_vl.d: Likewise. * testsuite/gas/i386/avx512_4fmaps_vl.s: Likewise. * testsuite/gas/i386/avx512_4vnniw_vl-intel.d: Likewise. * testsuite/gas/i386/avx512_4vnniw_vl.d: Likewise. * testsuite/gas/i386/avx512_4vnniw_vl.s: Likewise. * testsuite/gas/i386/i386.exp: Delete _vl tests for 4fmaps an 4vnniw tests. * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d: Delete. * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.l: Likewise. * testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.s: Likewise. * testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d: Likewise. * testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s: Likewise. * testsuite/gas/i386/x86-64-avx512_4vnniw_vl-intel.d: Likewise. * testsuite/gas/i386/x86-64-avx512_4vnniw_vl.d: Likewise. * testsuite/gas/i386/x86-64-avx512_4vnniw_vl.s: Likewise. opcodes/ * i386-opc.tbl: Remove VL variants for 4FMAPS and 4VNNIW insns. * i386-tbl.h: Regenerate. commit 710d7eae846428d25dcfc6f51e8722fc65bd26ee Author: GDB Administrator Date: Thu Jan 11 00:00:23 2018 +0000 Automatic date update in version.in commit b90d5ba0b6e068db21650ad42ec9dea22426df00 Author: Alan Modra Date: Thu Jan 11 09:34:58 2018 +1030 gas tc-arm.c warning fix * config/tc-arm.c (aeabi_set_public_attributes): Avoid false positive "‘profile’ may be used uninitialized". commit 618daa933cdce21424d3759ea95a4e2f5c69a1c2 Author: Pedro Alves Date: Wed Jan 10 20:38:08 2018 +0000 language_get_symbol_name_matcher -> get_symbol_name_matcher Rename language_get_symbol_name_matcher -> get_symbol_name_matcher, since the function is no longer a straight "language method". gdb/ChangeLog: 2018-01-10 Pedro Alves * language.h (language_get_symbol_name_matcher): Rename ... (get_symbol_name_matcher): ... this. * language.c (language_get_symbol_name_matcher): Ditto. * dictionary.c, linespec.c, minsyms.c, psymtab.c, symtab.c: All callers adjusted. commit c63d3e8d12f0b08cda95f89aa13274defed215f0 Author: Pedro Alves Date: Wed Jan 10 20:38:07 2018 +0000 Ada: make verbatim matcher override other language matchers (PR gdb/22670) A previous patch fixed verbatim matching in the lookup at the minimal symbol level, but we should also be finding that same symbol through the partial/full symtab search. For example, this is what happens if we use "print" instead of "break": (gdb) p $1 = {} 0x4024dc Before the C++ wildmatching series, GDB knows that MixedCaseFunc is a function without parameters, and the expression above means calling it. If you try it before having started the inferior, you'd get the following (expected) error: (gdb) print You can't do that without a process to debug. The main idea behind making the name matcher be determined by the symbol's language is so that C++ (etc.) wildmatching in linespecs works even if the current language is not C++, as e.g., when you step through C or assembly code. Ada's verbatim matching syntax however ("<...>") isn't quite the same. It is more a property of the current language than of a particular symbol's language. We want to support this syntax when debugging an Ada program, but it's reason of existence is to find non-Ada symbols. This suggests going back to enabling it depending on current language instead of language of the symbol being matched. I'm not entirely happy with the "current_language" reference (though I think that it's harmless). I think we could try storing the current language in the lookup_name_info object, and then convert a bunch of functions more to pass around lookup_name_info objects instead of "const char *" names. I.e., build the lookup_name_info higher up. I'm not sure about that, I'll have to think more about it. Maybe something different will be better. Meanwhile, this gets us going. I've extended the testcase to also exercise a no-debug-info function, for extra coverage of the minsyms-only paths. gdb/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * dwarf2read.c (gdb_index_symbol_name_matcher::gdb_index_symbol_name_matcher): Adjust to use language_get_symbol_name_matcher instead of language_defn::la_get_symbol_name_matcher. * language.c (language_get_symbol_name_matcher): If in Ada mode and the lookup name is a verbatim match, return Ada's matcher. * language.h (language_get_symbol_name_matcher): Adjust comment. (ada_lookup_name_info::verbatim_p):: New method. gdb/testsuite/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * gdb.ada/bp_c_mixed_case.exp: Add intro comment. Test printing C functions too. Test setting breakpoints and printing C functions with no debug info too. * gdb.ada/bp_c_mixed_case/qux.c: New file. commit d4c2a405cb7535d25b88e9b8dad0e557242950ca Author: Pedro Alves Date: Wed Jan 10 20:38:07 2018 +0000 Fix gdb.ada/complete.exp's "complete break ada" test (PR gdb/22670) This patch fixes the regression covered by the test added by: commit 344420da6beac1e0b2f7964e7101f8dcdb509b0d Date: Thu Jan 4 03:30:37 2018 -0500 Subject: Add "complete break ada" test to gdb.ada/complete.exp The regression had been introduced by: commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Date: Wed Nov 8 14:22:32 2017 +0000 Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching The gist of it is that linespec completion in Ada mode is generating additional matches that should not appear in the match list (internally generated symbols, or symbols that should be enclosed between "<...>"). These extraneous entries have uppercase characters, such as: break ada__stringsS break ada__strings__R11s [etc] These matches come from minimal symbols. The problem is that Ada minsyms end up with no language set (language_auto), and thus we end up using the generic symbol name matcher for those instead of Ada's. We already had a special case for in compare_symbol_name to handle this, but it was limited to expressions, while the case at hand is completing a linespec. Fix this by applying the special case to linespec completion as well. I.e., remove the EXPRESSION check from compare_symbol_name. That alone turns out to not be sufficient still -- GDB would still show a couple entries that shouldn't be there: ~~ break ada__exceptions__exception_data__append_info_exception_name__2Xn break ada__exceptions__exception_data__exception_name_length__2Xn ~~ The reason is that these minimal symbols end up with their language set to language_cplus / C++, because those encoded names manage to demangle successfully as C++ symbols (using an old C++ mangling scheme): $ echo ada__exceptions__exception_data__append_info_exception_name__2Xn | c++filt Xn::ada__exceptions__exception_data__append_info_exception_name(void) It's unfortunate that Ada's encoding scheme doesn't start with some unique prefix like "_Z" in the C++ Itanium ABI mangling scheme. For now, paper over that by treating C++ minsyms as Ada minsyms. gdb/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * ada-lang.c (ada_collect_symbol_completion_matches): If the minsym's language is language_auto or language_cplus, pass down language_ada instead. * symtab.c (compare_symbol_name): Don't frob symbol language here. gdb/testsuite/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * gdb.ada/complete.exp ("complete break ada"): Replace kfail with a fail. commit 8825213e97f0476068dc3b52b1b61df96b40708a Author: Pedro Alves Date: Wed Jan 10 20:38:06 2018 +0000 Fix gdb.ada/bp_c_mixed_case.exp (PR gdb/22670) The problem here is that we are using the user-provided lookup name literally for name comparisons. I.e., "" with the "<>"s included. This commit fixes the minsym lookup case. psymbol/symbol lookup will be fixed in a follow up. In the minsym case, we're using using the user-provided lookup name literally for linkage name comparisons. That obviously can't work since the "<>" are not really part of the linkage name. The original idea was that we'd use the symbol's language to select the right symbol name matching algorithm, but that doesn't work for Ada because it's not really possible to unambiguously tell from the linkage name alone whether we're dealing with Ada symbols, so Ada minsyms end up with no language set, or sometimes C++ set. So fix this by treating Ada mode specially when determining the linkage name to match against. gdb/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * minsyms.c (linkage_name_str): New function. (iterate_over_minimal_symbols): Use it. gdb/testsuite/ChangeLog: 2018-01-10 Pedro Alves PR gdb/22670 * gdb.ada/bp_c_mixed_case.exp: Remove setup_kfail calls. commit 7ec0cd50bf2c93854ef02b9c1f3b4edc4b70cd46 Author: Nick Clifton Date: Wed Jan 10 15:35:34 2018 +0000 oops - updates to ChangeLog omitted by accident from previous delta. commit bf41f30dde0f2ad09c2b7a9894fd7992e4b36a16 Author: Nick Clifton Date: Wed Jan 10 15:29:21 2018 +0000 Update top level configure files by synchronizing them with gcc. . * config-ml.in: Sync with gcc sources. * config.guess: Likewise. * config.sub: Likewise. * configure.ac: Likewise. * configure: Regenerate. config * Sync with GCC sources: 2017-11-14 Boris Kolpackov * gcc-plugin.m4: Add support for MinGW. 2017-11-17 Igor Tsimbalist * cet.m4: New file. 2017-11-15 Alexandre Oliva * bootstrap-debug-lean.mk (do-compare): Use the contrib/compare-debug script. 2017-10-24 H.J. Lu * bootstrap-cet.mk: New file. 2017-06-19 Martin Liska * bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages. * bootstrap-lto.mk: Likewise. 2017-06-03 Eric Botcazou * mt-android: New file. 2017-02-13 Richard Biener * isl.m4: Remove support for ISL 0.14. 2017-01-19 Uros Bizjak PR target/78478 * ax_check_define.m4: New file. 2017-01-17 Jakub Jelinek PR other/79046 * acx.m4 (GCC_BASE_VER): New m4 function. (ACX_TOOL_DIRS): Require GCC_BASE_VER, for --with-gcc-major-version-only use just major number from BASE-VER. 2017-01-06 Rainer Orth PR go/78978 * hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro. commit 2a8ae7146cacb006105e2e9c6f4635aca543e7ec Author: Nick Clifton Date: Wed Jan 10 13:57:48 2018 +0000 Update the libiberty sources with the latest patches found in the master sources. 2017-01-02 Richard Biener PR lto/83452 * simple-object-elf.c (simple_object_elf_copy_lto_debug_section): Do not use UNDEF locals for removed symbols but instead just define them in the first prevailing section and with no name. Use the same gnu_lto_v1 name for all removed globals we promote to WEAK UNDEFs so hpux can use a stub to provide this symbol. Clear sh_info and sh_link in removed sections. 2017-10-30 Richard Biener PR lto/82757 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Strip two leading _s from the __gnu_lto_* symbols. 2017-10-24 Alan Modra PR lto/82687 PR lto/82575 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Only make __gnu_lto symbols hidden. 2017-10-20 Alan Modra PR lto/82575 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Make discarded non-local symbols weak and hidden. 2017-10-18 Jakub Jelinek PR lto/82598 * simple-object.c (handle_lto_debug_sections): Copy over also .note.GNU-stack section with unchanged name. * simple-object-elf.c (SHF_EXECINSTR): Define. (simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit on .note.GNU-stack section. 2017-09-25 Nathan Sidwell PR demangler/82195 * cp-demangle.c (d_encoding): Strip return type when name is a LOCAL_NAME. (d_local_name): Strip return type of enclosing TYPED_NAME. * testsuite/demangle-expected: Add and adjust tests. 2017-09-21 Nathan Sidwell PR demangler/82195 * cp-demangle.c (d_name): Revert addition of 'toplevel' parm. (has_return_type): Recurse for DEMANGLE_COMPONENT_LOCAL_NAME. (d_encoding): Revert d_name change. Use is_fnqual_component_type to strip modifiers that do not belong. (d_special_name, d_class_enum_type): Revert d_name call change. (d_expresion_1): Commonize DEMANGLE_COMPONENT_UNARY building. (d_local_name): Revert parsing of a function type. (d_print_comp_inner): An inner LOCAL_NAME might contain a TEMPLATE. * testsuite/demangle-expected: Add & adjust tests commit cbda583ada32e16bf8b6c6aff730cc9eab63b364 Author: Jan Beulich Date: Wed Jan 10 14:53:43 2018 +0100 x86: fix Disp8 handling for scalar AVX512_4FMAPS insns Just like their packed counterparts the memory operand is always 16 bytes wide, and the Disp8 scaling is the same for all of them. (As a side note: I'm also surprised by there being AVX512VL variants of these as well as the AVX512_4VNNIW ones - the SDM doesn't define any such.) Adjust the test cases also for the packed forms to actually live up to their promise of testing correct Disp8 encoding. commit c9e9227878d172d93bcbef51dfc76d96f027751d Author: Jan Beulich Date: Wed Jan 10 14:53:05 2018 +0100 x86: fix Disp8 handling for AVX512VL VPCMP*{B,W} variants In commit 2645e1d079 ("x86: add support for AVX-512 VPCMP*{B,W} pseudo-ops") I screwed up the Disp8MemShift values of the AVX512VL variants. commit 35fd2b2bcf370837a03f077acf1222f0a7e9c4d1 Author: Jim Wilson Date: Tue Jan 9 16:40:06 2018 -0800 RISC-V: Disassemble x0 based addresses as 0. gas/ * testsuite/gas/riscv/auipc-x0.d: New. * testsuite/gas/riscv/auipc-x0.s: New. opcodes/ * riscv-dis.c (maybe_print_address): If base_reg is zero, then the hi_addr value is zero. commit d9ccd460fdbe0e0f3dd9263175aa4b23b207a51e Author: GDB Administrator Date: Wed Jan 10 00:00:34 2018 +0000 Automatic date update in version.in commit 2d97a5d9d33aea87c3bd02fd1fa417f5d4e1fa05 Author: John Baldwin Date: Tue Jan 9 13:35:17 2018 -0800 Document support for 'info proc' on FreeBSD. Since the 'info proc' support on FreeBSD does not use /proc, reword the documentation for 'info proc' to not assume /proc. This includes renaming the node to 'Process Information' and suggesting that additional process information can be queried via different OS-specific interfaces. This is also cleans up the description of 'info proc' support for core files a bit as /proc is not used for core file support on any current platform. gdb/ChangeLog: * NEWS: Document that 'info proc' now works on FreeBSD. gdb/doc/ChangeLog: * gdb.texinfo (pwd): Update cross-reference for Process Information node and remove explicit /proc reference. (Native): Rename subsection from SVR4 Process Information to Process Information. (Process Information): Reword introduction to be less /proc centric. Document support for "info proc" on FreeBSD. commit 92fce24de299a8b9a9a1c0c6b98e0e9c1656f99c Author: John Baldwin Date: Tue Jan 9 13:35:17 2018 -0800 Support 'info proc' for native FreeBSD processes. - Command line arguments are fetched via the kern.proc.args. sysctl. - The 'cwd' and 'exe' values are obtained from the per-process file descriptor table returned by kinfo_getfile() from libutil. - 'mappings' is implemented by walking the array of VM map entries returned by kinfo_getvmmap() from libutil. - 'status' output is generated by outputting fields from the structure returned by the kern.proc.pid. sysctl. - 'stat' is aliased to 'status'. gdb/ChangeLog: * configure.ac: Check for kinfo_getfile in libutil. * configure: Regenerate. * config.in: Regenerate. * fbsd-nat.c: Include "fbsd-tdep.h". (fbsd_fetch_cmdline): New. (fbsd_fetch_kinfo_proc): Move earlier and change to return a bool rather than calling error. (fbsd_info_proc): New. (fbsd_thread_name): Report error if fbsd_fetch_kinfo_proc fails. (fbsd_wait): Report warning if fbsd_fetch_kinfo_proc fails. (fbsd_nat_add_target): Set "to_info_proc" to "fbsd_info_proc". commit 262f62f57d987269152412a55c458a03adc6ddd6 Author: John Baldwin Date: Tue Jan 9 13:35:17 2018 -0800 Use gdb::unique_xmalloc_ptr<> instead of a deleter that invokes free(). Since xfree() always wraps free(), it is safe to use the xfree deleter for buffers allocated by library routines such as kinfo_getvmmap() that must be released via free(). gdb/ChangeLog: * fbsd-nat.c (struct free_deleter): Remove. (fbsd_find_memory_regions): Use gdb::unique_xmalloc_ptr<>. commit b999e2038dbc54e2c8b1c390f8b8fe50d0f1d10a Author: John Baldwin Date: Tue Jan 9 13:35:17 2018 -0800 Don't return stale data from fbsd_pid_to_exec_file for kernel processes. For processes without an associated executable (such as kernel processes), the kern.proc.pathname. system control node returns a length of zero without modifying the user's buffer. Detect this case and return NULL rather than the previous contents of the static buffer 'buf'. gdb/ChangeLog: * fbsd-nat.c (fbsd_pid_to_exec_file) [KERN_PROC_PATHNAME]: Return NULL for an empty pathname. commit d2176225dc982c22640215a0e611e997e8eeb030 Author: John Baldwin Date: Tue Jan 9 13:35:17 2018 -0800 Support 'info proc' for FreeBSD process core dumps. - Command line arguments are obtained from the pr_psargs[] array saved in the NT_PRPSINFO note. - The 'cwd' and 'exe' values are obtained from the per-process file descriptor table stored in the NT_PROCSTAT_FILES core note. - 'mappings' is implemented by walking the array of VM map entries stored in the NT_PROCSTAT_VMMAP core note. - 'status' output is generated by outputting fields from the first structure stored in the NT_PROCSTAT_PROC core note. - 'stat' is aliased to 'status'. gdb/ChangeLog: * fbsd-tdep.c (KVE_STRUCTSIZE, KVE_START, KVE_END, KVE_OFFSET) (KVE_FLAGS, KVE_PROTECTION, KVE_PATH, KINFO_VME_PROT_READ) (KINFO_VME_PROT_WRITE, KINFO_VME_PROT_EXEC, KINFO_VME_FLAG_COW) (KINFO_VME_FLAG_NEEDS_COPY, KINFO_VME_FLAG_NOCOREDUMP) (KINFO_VME_FLAG_SUPER, KINFO_VME_FLAG_GROWS_UP) (KINFO_VME_FLAG_GROWS_DOWN, KF_STRUCTSIZE, KF_TYPE, KF_FD) (KF_PATH, KINFO_FILE_TYPE_VNODE, KINFO_FILE_FD_TYPE_CWD) (KINFO_FILE_FD_TYPE_TEXT, SIG_WORDS, struct kinfo_proc_layout) (kinfo_proc_layout_32, kinfo_proc_layout_i386) (kinfo_proc_layout_64, fbsd_vm_map_entry_flags) (fbsd_core_info_proc_mappings, fbsd_core_vnode_path) (fbsd_core_fetch_timeval, fbsd_print_sigset) (fbsd_core_info_proc_status, fbsd_core_info_proc): New. (fbsd_init_abi): Install gdbarch "core_info_proc" method. * fbsd-tdep.h (fbsd_vm_map_entry_flags): New. commit 74ccf6db1188b7b05c716f8382d28b276ec578ec Author: Jim Wilson Date: Tue Jan 9 10:08:47 2018 -0800 Add explicit shared check to eh-frame-hdr test. ld/ * testsuite/ld-elf/eh-frame-hdr.d (#xfail): Delete (#alltargets): Renamed from #target. Add shared. * testsuite/lib/ld-lib.exp (run_dump_test): Document shared target. Document alltargets option. Add support for alltargets option. (istarget): Add support for shared target. commit 91d8b670661883fc0472fd05cf0e54d0e357c187 Author: James Greenhalgh Date: Tue Jan 9 14:15:00 2018 +0000 [Arm] Add CSDB instruction CSDB is a new instruction which Arm has defined. As it shares the encoding space with NOP instructions, it is available from Armv3 in Arm mode, and Armv6T2 in Thumb mode. OK? If so, please commit on my behalf as I don't have commit rights over here. Thanks, James --- opcodes/ 2018-01-09 James Greenhalgh * arm-dis.c (arm_opcodes): Add csdb. (thumb32_opcodes): Add csdb. gas/ 2018-01-09 James Greenhalgh * config/tc-arm.c (insns): Add csdb, enable for Armv3 and above in Arm execution state, and Armv6T2 and above in Thumb execution state. * testsuite/gas/arm/csdb.s: New. * testsuite/gas/arm/csdb.d: New. * testsuite/gas/arm/thumb2_it_bad.l: Add csdb. * testsuite/gas/arm/thumb2_it_bad.s: Add csdb. commit be2e7d95414eb78f29312f30e62d4cabd55f9fda Author: James Greenhalgh Date: Tue Jan 9 11:28:04 2018 +0000 Add support for the AArch64's CSDB instruction. CSDB is a new instruction which Arm has defined. It has the same encoding as HINT #0x14 and is available at all architecture levels. opcodes * aarch64-tbl.h (aarch64_opcode_table): Add "csdb". * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. gas * testsuite/gas/aarch64/system.d: Update expected results to expect CSDB. commit b1dc1806fad00fc5b2589164e964646c02a700fa Author: Xavier Roirand Date: Mon Dec 11 10:03:45 2017 +0100 Fix breakpoint add on inlined function using function name. Using this Ada example: package B is procedure Read_Small with Inline_Always; end B; package body B is Total : Natural := 0; procedure Read_Small is begin Total := Total + 1; end Read_Small; end B; and with B; procedure M is begin B.Read_Small; end M; % gnatmake -g -O0 -m m.adb -cargs -gnatn % gdb m Inserting a breakpoint on Read_Small inlined function does not work: (gdb) b read_small Breakpoint 1 at 0x40250e: file b.adb, line 5. (gdb) info b Num Type Disp Enb Address What 1 breakpoint keep y 0x000000000040250e in b.doit at b.adb:5 (gdb) In this exemple we should have two breakpoints set, one in package B and the other one in the inlined instance inside procedure M), like below: (gdb) b read_small Breakpoint 1 at 0x40250e: b.adb:5. (2 locations) (gdb) info b Num Type Disp Enb Address What 1 breakpoint keep y 1.1 y 0x000000000040250e in b.doit at b.adb:5 1.2 y 0x0000000000402540 in m at b.adb:5 (gdb) Looking at the DWARF info for inlined instance of Read_Small: <1><1526>: Abbrev Number: 2 (DW_TAG_subprogram) <1527> DW_AT_name : ([...], offset: 0x1e82): b__read_small <152b> DW_AT_decl_file : 2 <152c> DW_AT_decl_line : 3 <152d> DW_AT_inline : 3 (declared as inline and inlined) [...] <2><1547>: Abbrev Number: 4 (DW_TAG_inlined_subroutine) <1548> DW_AT_abstract_origin: <0x1526> <154c> DW_AT_low_pc : 0x402552 <1554> DW_AT_high_pc : 0x2b <155c> DW_AT_call_file : 1 <155d> DW_AT_call_line : 5 <2><155e>: Abbrev Number: 0 During the parsing of DWARF info in order to produce partial DIE linked list, the DW_TAG_inlined_subroutine were skipped thus not present in the final partial dies. Taking DW_TAG_inlined_subroutine in account during the parsing process fixes the problem. gdb/ChangeLog: * dwarf2read.c (scan_partial_symbols, add_partial_symbol) (add_partial_subprogram, load_partial_dies): Add DW_TAG_inlined_subroutine handling. gdb/testsuite/ChangeLog: * gdb.ada/bp_inlined_func: New testcase. commit 6cef73f96f58ca3f0e0b2f594b324602c7590611 Author: Kuan-Lin Chen Date: Tue Jan 9 16:04:58 2018 +0800 PR22662, nds32: Fix a typographical error. commit 7615ca1dc941bb9f225a1c50df7fdd8d31afc9e8 Author: Jim Wilson Date: Mon Jan 8 17:55:29 2018 -0800 RISC-V: Fix accidental embedded -shared regressions. ld/ * testsuite/ld-riscv-elf/c-lui.d: Don't use -shared. Check for _start instead of .text. * testsuite/ld-riscv-elf/c-lui.s: Add _start label. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Before __global_pointer$ tests, add call to check_shared_lib_support. commit 933ea656af9d40604e4823b07b83e74714f2516e Author: GDB Administrator Date: Tue Jan 9 00:00:33 2018 +0000 Automatic date update in version.in commit 9c4ac400f0f7d8daa8483dbe73b5699782ae3e22 Author: Samuel Thibault Date: Mon Jan 8 10:30:16 2018 -0500 hurd: Add enough auxv support for AT_ENTRY for PIE binaries Add PIE support for hurd, by faking an AT_ENTRY auxv entry. That value is expected to be read by svr4_exec_displacement, which will propagate the executable displacement. gdb/ChangeLog: * gdb/gnu-nat.c: Include and . (gnu_xfer_auxv): New function. (gnu_xfer_partial): Call gnu_xfer_auxv when `object' is TARGET_OBJECT_AUXV. commit 704a705d7aaab8041df76e2981e2a1efc014aad0 Author: H.J. Lu Date: Mon Jan 8 04:36:59 2018 -0800 x86: Properly encode vmovd with 64-bit memeory For historical reason, we allow movd/vmovd with 64-bit register and memeory operands. But for vmovd, we failed to handle 64-bit memeory operand. This has been gone unnoticed since AT&T syntax always treats memory operand as 32-bit memory. This patch properly encodes vmovd with 64-bit memeory operands. It also removes AVX512 vmovd with 64-bit operands since GCC has case TYPE_SSEMOV: switch (get_attr_mode (insn)) { case MODE_DI: /* Handle broken assemblers that require movd instead of movq. */ if (!HAVE_AS_IX86_INTERUNIT_MOVQ && (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))) return "%vmovd\t{%1, %0|%0, %1}"; return "%vmovq\t{%1, %0|%0, %1}"; and all AVX512 GNU assemblers set HAVE_AS_IX86_INTERUNIT_MOVQ, GCC won't generate AVX512 vmovd with 64-bit operand. gas/ PR gas/22681 * testsuite/gas/i386/i386.exp: Run x86-64-movd and x86-64-movd-intel. * testsuite/gas/i386/x86-64-movd-intel.d: New file. * testsuite/gas/i386/x86-64-movd.d: Likewise. * testsuite/gas/i386/x86-64-movd.s: Likewise. opcodes/ PR gas/22681 * i386-opc.tbl: Properly encode vmovd with Qword memeory operand. Remove AVX512 vmovd with 64-bit operands. * i386-tbl.h: Regenerated. commit 605fd3c6590fbed834107a2e1d1df0ba58834576 Author: Yao Qi Date: Mon Jan 8 10:09:33 2018 +0000 Fix GDBserver build failure when $development is false When we set bfd/development.sh:$development to false, GDBserver failed to build, selftest.o: In function `selftests::run_tests(char const*)': binutils-gdb/gdb/gdbserver/../common/selftest.c:97:undefined reference to `selftests::reset()' collect2: error: ld returned 1 exit status selftest.o shouldn't be compiled and linked when $development is false. With this patch, in release mode, GDBserver doesn't nothing with option --selftest, $ ./gdbserver --selftest=foo Selftests are not available in a non-development build. $ ./gdbserver --selftest Selftests are not available in a non-development build. gdb/gdbserver: 2018-01-08 Yao Qi Simon Marchi * Makefile.in (OBS): Remove selftest.o. * configure.ac: Set srv_selftest_objs if $development is true. (GDBSERVER_DEPFILES): Append $srv_selftest_objs. * configure: Re-generated. * server.c (captured_main): Wrap variable selftest_filter with GDB_SELF_TEST. gdb/testsuite: 2018-01-08 Simon Marchi * gdb.server/unittest.exp: Match the output in non-development mode. commit 1e5ded6ce688ddee065fa852053dda07fcce959e Author: Yao Qi Date: Mon Jan 8 10:09:32 2018 +0000 Fix GDB build failure when $development is false We don't build GDB selftests bits when $development is false. However, if we turn bfd/development.sh:$development to false, common/selftest.c is compiled which is not expected. It causes the build failure, selftest.o: In function `selftests::run_tests(char const*)': binutils-gdb/gdb/common/selftest.c:97: undefined reference to `selftests::reset()' collect2: error: ld returned 1 exit status I fix this issue by putting selftest.o selftest-arch.o into CONFIG_OBS only when $development is true. After this is fixed, there are other build failures in maint.c, this patch fixes them as well. In the release mode, the output of these commands are: (gdb) maintenance selftest Selftests are not available in a non-development build. (gdb) maintenance selftest foo Selftests are not available in a non-development build. (gdb) maintenance info selftests Selftests are not available in a non-development build. gdb: 2018-01-08 Yao Qi Simon Marchi * Makefile.in (COMMON_SFILES): Remove selftest-arch.c and common/selftest.c. (COMMON_OBS): Remove selftest.o. * configure.ac: Append selftest-arch.c and common/selftest.c to CONFIG_SRCS. Append selftest-arch.o and selftest.o to COMMON_OBS. * configure: Re-generated. * maint.c (maintenance_selftest): Wrap selftests::run_tests with GDB_SELF_TEST. (maintenance_info_selftests): Likewise. gdb/testsuite: 2018-01-08 Simon Marchi * gdb.gdb/unittest.exp: Match output in non-development mode. commit 9f86398b29d53a5a0aaea390ce813628715b3125 Author: Joel Brobecker Date: Mon Jan 8 04:39:23 2018 -0500 Fix second-to-last gdb/testsuite/ChangeLog entry. commit 30066b0b00a2c09baed08e49437c2ae3c44bc4e0 Author: Joel Brobecker Date: Mon Jan 8 04:26:52 2018 -0500 Relax expected output in gdb.ada/access_tagged_param.exp test One of the tests in gdb.ada/access_tagged_param.exp verifies the value of the parameters being printed by GDB when stopping at a breakpoint inside procedure Pck.Inspect. In particular, one of these parameters is actually generated internally by the compiler, and does only indirectly depend on the user-level code. A recent change in AdaCore's compiler caused the code expansion to change a little bit, and as a result, the value of that parameter has changed from 2 to 3. This can be evindenced by looking at the code post expansion, using the -gnatDG command-line switch to generate the .dg files: $ gnatmake -g -gnatDG foo.adb $ vi foo.adb.dg We can see that the call to pck.inspect used to be: pck__inspect (P8b, objL => 2); With a recent version of GNAT Pro, it is now: pck__inspect (P9b, objL => 3); This change causes a spurious FAIL when running this testcase. The objL parameter being, at heart, a simple counter of the nesting level, this commit relaxes the expected output to accept any single- digit number. We could accept any decimal, but given the example program, I dout that number will reach double-digit level. If it does, we'll double-check that this is normal, and relax the expected output further. gdb/testsuite/ChangeLog: * gdb.ada/access_tagged_param.exp: Relax expected output for value of "ObjL" in "continue" to pck.inspect breakpoint test. Tested on x86_64-linux. commit 102e9361c88882756ad7ffceb0713a794c991e69 Author: Nick Clifton Date: Mon Jan 8 09:29:17 2018 +0000 Add a description of the X86_64 assembler's .largcomm pseudo-op. PR 22553 * doc/c-i386.texi (i386-Directives): Document the .largecomm directive. commit 04bafb1ed002df1f25ca5a5773d87723a4baf46b Author: Xavier Roirand Date: Sun Jan 7 23:56:36 2018 -0500 (Ada) Fix print of array using non-contiguous enumeration indexes Consider the following code: type Index is (Index1, Index2); Size : constant Integer := 10; for Index use (Index1 => 1, Index2 => Size); type Array_Index_Enum is array (Index) of Integer; my_table : Array_Index_Enum :=(others => 42); When compiling the code above with a compiler where the GNAT encodings are turned off (which can be temporarily emulated by using the compiler switch -fgnat-encodings=minimal), printing this table in gdb leads to: (gdb) p my_table $1 = (42, 42, 4203344, 10, -8320, 32767, 4203465, 0, 0, 0) The displayed content is wrong since the handling part believes that the length of the array is max index value (10) minus the first index value (1) i+ 1 = 10 which is wrong since index are not contiguous in this case. The right behavior is to detect that the array is using enumeration index hence parse the enumeration values in order to get the number of indexes in this array (2 indexes here). This patch fixes this issue and changes the output as follow: (gdb) p my_table $1 = (42, 42) gdb/ChangeLog: * ada-valprint.c (val_print_packed_array_elements): Use proper number of elements when printing an array indexed by an enumeration type. gdb/testsuite/ChangeLog (Joel Brobecker ): * gdb.ada/arr_enum_idx_w_gap.exp * gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb Tested on x86_64-linux. commit e09efd5931daf7eede1f4da46313a1aaadd4dbfa Author: GDB Administrator Date: Mon Jan 8 00:00:33 2018 +0000 Automatic date update in version.in commit 518817b361167ac91e7cdad8528b4d90cdc3fb26 Author: Simon Marchi Date: Sun Jan 7 11:22:46 2018 -0500 Remove dwarf2_cu::dwarf2_per_objfile This patch removes the dwarf2_per_objfile field of dwarf2_cu. It is redundant, since we can access dwarf2_per_objfile through dwarf2_per_objfile, which is guaranteed to be set. gdb/ChangeLog: * dwarf2read.c (struct dwarf2_cu) : Remove. (dw2_get_file_names_reader): Adjust. (lookup_dwo_signatured_type): Adjust. (lookup_dwp_signatured_type): Adjust. (lookup_signatured_type): Adjust. (create_type_unit_group): Adjust. (get_type_unit_group): Adjust. (process_psymtab_comp_unit_reader): Adjust. (build_type_psymtabs_reader): Adjust. (scan_partial_symbols): Adjust. (add_partial_symbol): Adjust. (add_partial_subprogram): Adjust. (peek_die_abbrev): Adjust. (fixup_go_packaging): Adjust. (process_imported_unit_die): Adjust. (dwarf2_compute_name): Adjust. (dwarf2_physname): Adjust. (read_import_statement): Adjust. (handle_DW_AT_stmt_list): Adjust. (read_file_scope): Adjust. (read_func_scope): Adjust. (read_lexical_block_scope): Adjust. (read_call_site_scope): Adjust. (read_variable): Adjust. (dwarf2_rnglists_process): Adjust. (dwarf2_ranges_process): Adjust. (dwarf2_ranges_read): Adjust. (dwarf2_get_pc_bounds): Adjust. (dwarf2_record_block_ranges): Adjust. (dwarf2_add_field): Adjust. (dwarf2_add_member_fn): Adjust. (read_structure_type): Adjust. (process_structure_scope): Adjust. (read_enumeration_type): Adjust. (read_array_type): Adjust. (mark_common_block_symbol_computed): Adjust. (read_common_block): Adjust. (read_namespace_type): Adjust. (read_namespace): Adjust. (read_module_type): Adjust. (read_tag_pointer_type): Adjust. (read_tag_ptr_to_member_type): Adjust. (read_tag_string_type): Adjust. (read_subroutine_type): Adjust. (read_typedef): Adjust. (read_base_type): Adjust. (attr_to_dynamic_prop): Adjust. (read_subrange_type): Adjust. (read_unspecified_type): Adjust. (dwarf2_read_abbrevs): Adjust. (load_partial_dies): Adjust. (read_partial_die): Adjust. (find_partial_die): Adjust. (guess_partial_die_structure_name): Adjust. (fixup_partial_die): Adjust. (read_attribute_value): Adjust. (read_addr_index): Adjust. (read_addr_index_from_leb128): Adjust. (read_str_index): Adjust. (dwarf2_string_attr): Adjust. (get_debug_line_section): Adjust. (dwarf_decode_line_header): Adjust. (lnp_state_machine::check_line_address): Adjust. (dwarf_decode_lines_1): Adjust. (dwarf_decode_lines): Adjust. (dwarf2_start_symtab): Adjust. (var_decode_location): Adjust. (new_symbol_full): Adjust. (dwarf2_const_value_data): Adjust. (dwarf2_const_value_attr): Adjust. (dwarf2_const_value): Adjust. (die_type): Adjust. (die_containing_type): Adjust. (build_error_marker_type): Adjust. (lookup_die_type): Adjust. (guess_full_die_structure_name): Adjust. (anonymous_struct_prefix): Adjust. (determine_prefix): Adjust. (dwarf2_name): Adjust. (follow_die_ref_or_sig): Adjust. (follow_die_offset): Adjust. (follow_die_ref): Adjust. (follow_die_sig_1): Adjust. (follow_die_sig): Adjust. (get_signatured_type): Adjust. (get_DW_AT_signature_type): Adjust. (decode_locdesc): Adjust. (dwarf_decode_macros): Adjust. (cu_debug_loc_section): Adjust. (fill_in_loclist_baton): Adjust. (dwarf2_symbol_mark_computed): Adjust. (init_one_comp_unit): Don't assign dwarf2_cu::dwarf2_per_objfile. (set_die_type): Adjust. commit ed2dc618b3d2b0be01ffdf74c4c75504b707bcf1 Author: Simon Marchi Date: Sun Jan 7 11:22:46 2018 -0500 Remove dwarf2_per_objfile global This patch removes the global variable dwarf2_per_objfile. This global variable is set at the various entry points of dwarf2read.c (using dw2_setup), and is referred to throughout the file. Instead of passing data between functions in global variables like this one, it would be better if the functions that depend on it either received it as argument or got it from the existing arguments they receive. For example, a function receiving a reference to a dwarf2_per_cu_data can access it from dwarf2_per_cu_data::dwarf2_per_objfile. This patch has been tested on the buildbot. gdb/ChangeLog: * dwarf2read.c (struct mapped_debug_names): Add constructor. : New field. (dwarf2_per_objfile): Remove global. (get_dwarf2_per_objfile): New function. (set_dwarf2_per_objfile): New function. (dwarf2_build_psymtabs_hard): Change objfile parameter to dwarf2_per_objfile. (abbrev_table_read_table): Add dwarf2_per_objfile parameter. (read_abbrev_offset): Likewise. (read_indirect_string): Likewise. (read_indirect_line_string): Likewise. (read_indirect_string_at_offset): Likewise. (read_indirect_string_from_dwz): Likewise. (dwarf2_find_containing_comp_unit): Change objfile parameter to dwarf2_per_objfile. (age_cached_comp_units): Add dwarf2_per_objfile parameter. (create_all_comp_units): Change objfile parameter to dwarf2_per_objfile. (create_all_type_units): Likewise. (process_queue): Add dwarf2_per_objfile parameter. (read_and_check_comp_unit_head): Likewise. (lookup_dwo_unit_in_dwp): Likewise. (get_dwp_file): Likewise. (process_cu_includes): Likewise. (struct free_dwo_file_cleanup_data): New struct. (dwarf2_has_info): Use get_dwarf2_per_objfile and set_dwarf2_per_objfile. (dwarf2_get_dwz_file): Add dwarf2_per_objfile parameter. (dw2_do_instantiate_symtab): Get dwarf2_per_objfile from context, adjust calls. (dw2_instantiate_symtab): Likewise. (dw2_get_cutu): Add dwarf2_per_objfile parameter. (dw2_get_cu): Likewise. (create_cu_from_index_list): Change objfile parameter to dwarf2_per_objfile. (create_cus_from_index_list): Get dwarf2_per_objfile from context, adjust calls. (create_cus_from_index): Likewise. (create_signatured_type_table_from_index): Change objfile parameter to dwarf2_per_objfile. (create_signatured_type_table_from_debug_names): Change objfile parameter to dwarf2_per_objfile. (create_addrmap_from_index): Likewise. (create_addrmap_from_aranges): Likewise. (dwarf2_read_index): Use get_dwarf2_per_objfile, adjust calls. (dw2_setup): Remove. (dw2_get_file_names_reader): Get dwarf2_per_objfile from context. (dw2_find_last_source_symtab): Get dwarf2_per_objfile using get_dwarf2_per_objfile. (dw2_forget_cached_source_info): Likewise. (dw2_map_symtabs_matching_filename): Likewise. (struct dw2_symtab_iterator) : Remove. : New field. (dw2_symtab_iter_init): Replace index parameter with dwarf2_per_objfile. (dw2_symtab_iter_next): Use dwarf2_per_objfile from iter. (dw2_lookup_symbol): Use get_dwarf2_per_objfile and adjust. (dw2_print_stats): Likewise. (dw2_dump): Likewise. (dw2_expand_symtabs_for_function): Likewise. (dw2_expand_all_symtabs): Likewise. (dw2_expand_symtabs_with_fullname): Likewise. (dw2_expand_marked_cus): Replace index and objfile parameters with dwarf2_per_objfile. (dw_expand_symtabs_matching_file_matcher): Add dwarf2_per_objfile parameter and adjust calls. (dw2_expand_symtabs_matching): Use get_dwarf2_per_objfile and adjust calls. (dw2_find_pc_sect_compunit_symtab): Don't call dw2_setup. (dw2_map_symbol_filenames): Use get_dwarf2_per_objfile and adjust calls. (create_cus_from_debug_names_list): Replace objfile parameter with dwarf2_per_objfile and adjust calls. (create_cus_from_debug_names): Likewise. (dwarf2_read_debug_names): Likewise. (mapped_debug_names::namei_to_name): Adjust call. (dw2_debug_names_iterator::next): Likewise. (dw2_debug_names_iterator::find_vec_in_debug_names): Likewise. (dw2_debug_names_lookup_symbol): Use get_dwarf2_per_objfile. (dw2_debug_names_dump): Likewise. (dw2_debug_names_expand_symtabs_for_function): Likewise. (dw2_debug_names_expand_symtabs_matching): Likewise. (dwarf2_initialize_objfile): Likewise. (dwarf2_build_psymtabs): Likewise. (get_abbrev_section_for_cu): Get dwarf2_per_objfile from this_cu. (error_check_comp_unit_head): Add dwarf2_per_objfile parameter. (read_and_check_comp_unit_head): Likewise. (read_abbrev_offset): Likewise. (create_debug_type_hash_table): Likewise. (create_debug_types_hash_table): Likewise. (create_all_type_units): Replace objfile parameter with dwarf2_per_objfile. (add_type_unit): Add dwarf2_per_objfile parameter. (fill_in_sig_entry_from_dwo_entry): Replace objfile parameter with dwarf2_per_objfile. (lookup_dwo_signatured_type): Get dwarf2_per_objfile from cu. (lookup_dwp_signatured_type): Likewise. (lookup_signatured_type): Likewise. (read_cutu_die_from_dwo): Likewise. (init_tu_and_read_dwo_dies): Likewise. (init_cutu_and_read_dies): Likewise. (init_cutu_and_read_dies_no_follow): Likewise. (allocate_type_unit_groups_table): Add objfile parameter. (create_type_unit_group): Use dwarf2_per_objfile from cu. (get_type_unit_group): Likewise. (process_psymtab_comp_unit): Update call. (build_type_psymtabs_reader): Use dwarf2_per_objfile from cu. (build_type_psymtabs_1): Add dwarf2_per_objfile parameter. (print_tu_stats): Likewise. (build_type_psymtab_dependencies): Use dwarf2_per_objfile passed in void* parameter. (build_type_psymtabs): Change objfile parameter to dwarf2_per_objfile. (process_skeletonless_type_unit): Use dwarf2_per_objfile passed in void* parameter. (process_skeletonless_type_units): Change objfile parameter to dwarf2_per_objfile. (set_partial_user): Likewise. (dwarf2_build_psymtabs_hard): Likewise. (read_comp_units_from_section): Likewise. (create_all_comp_units): Likewise. (scan_partial_symbols): Update calls. (add_partial_symbol): Likewise. (dwarf2_read_symtab): Use get_dwarf2_per_objfile. (maybe_queue_comp_unit): Use dwarf2_read_symtab from cu. (process_queue): Add dwarf2_per_objfile parameter. (get_compunit_symtab): Use dwarf2_per_objfile from cu. (compute_compunit_symtab_includes): Likewise. (process_cu_includes): Add dwarf2_per_objfile parameter. (process_full_comp_unit): Use dwarf2_per_objfile from cu. (process_full_type_unit): Likewise. (process_imported_unit_die): Update call. (handle_DW_AT_stmt_list): Use dwarf2_per_objfile from cu. (read_file_scope): Likewise. (allocate_dwo_file_hash_table): Add objfile parameter. (lookup_dwo_file_slot): Add dwarf2_per_objfile parameter. (create_cus_hash_table): Likewise. (create_dwp_hash_table): Likewise. (create_dwo_unit_in_dwp_v1): Likewise. (create_dwp_v2_section): Likewise. (create_dwo_unit_in_dwp_v2): Likewise. (lookup_dwo_unit_in_dwp): Likewise. (try_open_dwop_file): Likewise. (open_dwo_file): Likewise. Use dwarf2_per_objfile from cu. (open_and_init_dwo_file): Use dwarf2_per_objfile from cu, update cleanup to include a reference to dwarf2_per_objfile. (open_dwp_file): Add dwarf2_per_objfile parameter. (open_and_init_dwp_file): Likewise. (get_dwp_file): Likewise. (lookup_dwo_cutu): Use dwarf2_per_objfile from cu. (queue_and_load_all_dwo_tus): Update call. (free_dwo_file_cleanup): Use dwarf2_per_objfile from cleanup data. (dwarf2_rnglists_process): Use dwarf2_per_objfile from cu. (dwarf2_ranges_process): Likewise. (dwarf2_get_pc_bounds): Likewise. (mark_common_block_symbol_computed): Likewise. (abbrev_table_read_table): Add dwarf2_per_objfile parameter. (dwarf2_read_abbrevs): Update call. (read_partial_die): Use dwarf2_per_objfile from cu. (find_partial_die): Likewise. (fixup_partial_die): Likewise. (read_attribute_value): Likewise. (read_indirect_string_at_offset_from): Add objfile parameter. (read_indirect_string_at_offset): Add dwarf2_per_objfile parameter. (read_indirect_string_from_dwz): Add objfile parameter. (read_indirect_string): Add objfile parameter. (read_addr_index_1): Add dwarf2_per_objfile parameter. (read_addr_index): Use dwarf2_per_objfile from cu. (dwarf2_read_addr_index): Use dwarf2_per_objfile from cu, don't call dw2_setup. (read_str_index): Use dwarf2_per_objfile from cu. (get_debug_line_section): Likewise. (read_formatted_entries): Add dwarf2_per_objfile parameter. (dwarf_decode_line_header): Use dwarf2_per_objfile from cu. (new_symbol_full): Use dwarf2_per_objfile from cu. (build_error_marker_type): Likewise. (lookup_die_type): Likewise. (determine_prefix): Likewise. (follow_die_offset): Likewise. (dwarf2_fetch_die_loc_sect_off): Use get_dwarf2_per_objfile. (dwarf2_fetch_constant_bytes): Don't call dw2_setup. (dwarf2_fetch_die_type_sect_off): Likewise. (dwarf2_get_die_type): Likewise. (follow_die_sig_1): Use dwarf2_per_objfile from cu. (get_signatured_type): Likewise. (get_DW_AT_signature_type): Likewise. (dwarf_decode_macro_bytes): Add dwarf2_per_objfile parameter. (dwarf_decode_macros): Use dwarf2_per_objfile from cu. (cu_debug_loc_section): Likewise. (fill_in_loclist_baton): Likewise. (dwarf2_symbol_mark_computed): Likewise. (dwarf2_find_containing_comp_unit): Change objfile parameter to dwarf2_per_objfile. (free_cached_comp_units): Use dwarf2_per_objfile passed in void* parameter. (age_cached_comp_units): Add dwarf2_per_objfile parameter. (free_one_cached_comp_unit): Use dwarf2_per_objfile from cu. (dwarf2_free_objfile): Use get_dwarf2_per_objfile. (set_die_type): Use dwarf2_free_objfile from cu. (get_die_type_at_offset): Likewise. (dwarf2_per_objfile_free): Don't assign global variable. (debug_names) : Add dwarf2_per_objfile parameter, update m_debugstrlookup construction. (debug_names::debug_str_lookup): Add dwarf2_per_objfile parameter. : New field. : Use m_dwarf2_per_objfile. (check_dwarf64_offsets): Add dwarf2_per_objfile parameter. (psyms_seen_size): Likewise. (write_gdbindex): Replace objfile parameter with dwarf2_per_objfile. (write_debug_names): Likewise. (write_psymtabs_to_index): Likewise. (save_gdb_index_command): Use get_dwarf2_per_objfile, update calls. commit e3b94546125849c6c513114cf20f78d2a7aa9db2 Author: Simon Marchi Date: Sun Jan 7 11:22:45 2018 -0500 Replace objfile field in dwarf2_cu and dwarf2_per_cu_data with dwarf2_per_objfile The next patch aims to remove the dwarf2_per_objfile global. In many functions, we need to find a way to get a reference to the current dwarf2_per_objfile through the objects passed in parameters. Often, we have access to a dwarf2_cu or a dwarf2_per_cu_data. These objects have a reference to the objfile, through which we can get the dwarf2_per_objfile: dwarf2_per_objfile = ((struct dwarf2_per_objfile *) objfile_data (objfile, dwarf2_objfile_data_key)); However, this is a bit cumbersome to do all over the place. It would be more logical if the dwarf2_cu and dwarf2_per_cu_data had a reference to their dwarf2_per_objfile, which would then have a reference to the objfile. It would be more in line with the object hierarchy, where dwarf2_per_objfile owns the dwarf2_per_cu_data instances. We could even remove the reference dwarf2_cu has to dwarf2_per_objfile, since we can access dwarf2_per_objfile through dwarf2_cu::per_cu. In a graphical way, references would look like this after the current patch: objfile <--- dwarf2_per_objfile <--- dwarf2_per_cu_data | ^ | | `- dwarf2_cu This patch has been tested on the buildbot. gdb/ChangeLog: * dwarf2read.c (struct dwarf2_cu) : Remove. : New field. (struct dwarf2_per_cu_data) : Remove. : New field. (create_cu_from_index_list): Assign dwarf2_per_objfile instead of objfile. (create_signatured_type_table_from_index): Likewise. (create_debug_type_hash_table): Likewise. (fill_in_sig_entry_from_dwo_entry): Likewise. (lookup_dwo_unit): Access objfile through dwarf2_per_objfile. (create_type_unit_group): Assign dwarf2_per_objfile instead of objfile. (create_partial_symtab): Access objfile through dwarf2_per_objfile. (process_psymtab_comp_unit_reader): Likewise. (read_comp_units_from_section): Likewise. (scan_partial_symbols): Likewise. (add_partial_symbol): Likewise. (add_partial_subprogram): Likewise. (peek_die_abbrev): Likewise. (fixup_go_packaging): Likewise. (process_full_comp_unit): Likewise. (process_full_type_unit): Likewise. (process_imported_unit_die): Likewise. (dwarf2_compute_name): Likewise. (dwarf2_physname): Likewise. (read_import_statement): Likewise. (create_cus_hash_table): Assign dwarf2_physname instead of objfile. (read_func_scope): Access objfile through dwarf2_per_objfile. (read_lexical_block_scope): Likewise. (read_call_site_scope): Likewise. (read_variable): Likewise. (dwarf2_rnglists_process): Likewise. (dwarf2_ranges_process): Likewise. (dwarf2_ranges_read): Likewise. (dwarf2_record_block_ranges): Likewise. (dwarf2_add_field): Likewise. (dwarf2_add_member_fn): Likewise. (read_structure_type): Likewise. (process_structure_scope): Likewise. (read_enumeration_type): Likewise. (read_array_type): Likewise. (read_common_block): Likewise. (read_namespace_type): Likewise. (read_namespace): Likewise. (read_module_type): Likewise. (read_tag_pointer_type): Likewise. (read_tag_ptr_to_member_type): Likewise. (read_tag_string_type): Likewise. (read_subroutine_type): Likewise. (read_typedef): Likewise. (read_base_type): Likewise. (attr_to_dynamic_prop): Likewise. (read_subrange_type): Likewise. (read_unspecified_type): Likewise. (load_partial_dies): Likewise. (read_partial_die): Likewise. (find_partial_die): Likewise. (guess_partial_die_structure_name): Likewise. (fixup_partial_die): Likewise. (read_attribute_value): Likewise. (read_addr_index_from_leb128): Likewise. (dwarf2_read_addr_index): Likewise. (dwarf2_string_attr): Likewise. (lnp_state_machine::check_line_address): Likewise. (dwarf_decode_lines_1): Likewise. (dwarf_decode_lines): Likewise. (dwarf2_start_symtab): Likewise. (var_decode_location): Likewise. (new_symbol_full): Likewise. (dwarf2_const_value_data): Likewise. (dwarf2_const_value_attr): Likewise. (dwarf2_const_value): Likewise. (die_type): Likewise. (die_containing_type): Likewise. (lookup_die_type): Likewise. (guess_full_die_structure_name): Likewise. (anonymous_struct_prefix): Likewise. (dwarf2_name): Likewise. (follow_die_ref_or_sig): Likewise. (follow_die_offset): Likewise. (follow_die_ref): Likewise. (dwarf2_fetch_die_loc_sect_off): Likewise. (dwarf2_fetch_constant_bytes): Likewise. (dwarf2_fetch_die_type_sect_off): Likewise. (dwarf2_get_die_type): Likewise. (follow_die_sig): Likewise. (decode_locdesc): Likewise. (dwarf2_per_cu_objfile): Likewise. (dwarf2_per_cu_text_offset): Likewise. (init_one_comp_unit): Assign dwarf2_per_objfile instead of objfile. (set_die_type): Access objfile through dwarf2_per_objfile. commit 2cc050302cd365fd28fac65d49b6c817eed74faf Author: Simon Marchi Date: Sun Jan 7 10:50:48 2018 -0500 Make parse_debug_format_options return an std::string This avoid having to manually free the return value. gdb/gdbserver/ChangeLog: * server.c (parse_debug_format_options): Return std::string. (handle_monitor_command, captured_main): Adjust. commit b01ba14d4d5391e59fd0e1a3608fd47287edc008 Author: Simon Marchi Date: Sun Jan 7 10:48:21 2018 -0500 Replace VEC(converted_character_d) with std::vector This patch changes the usage of VEC(converted_character_d) to use an std::vector instead. This allows getting rid of a cleanup. gdb/ChangeLog: * valprint.c (converted_character_d): Remove typedef. (DEF_VEC_O (converted_character_d)): Remove. (count_next_character): Use std::vector. (print_converted_chars_to_obstack): Likewise. (generic_printstr): Likewise. commit 4d0fdd9b357aff1fea3ef3def55d12464a41bf5b Author: Simon Marchi Date: Sun Jan 7 09:29:52 2018 -0500 Replace VEC(gdb_xml_value_s) with std::vector This patch replaces VEC(gdb_xml_value_s), which is passed to XML visitors, with an std::vector. In order to be able to remove the cleanup in gdb_xml_parser::start_element, the gdb_xml_parser structure is made to own the value with a gdb::unique_xmalloc_ptr. This patch has been tested on the buildbot. gdb/ChangeLog: * xml-support.h (struct gdb_xml_value): Add constructor. : Change type to unique_xmalloc_ptr. (gdb_xml_value_s): Remove typedef. (DEF_VEC_O (gdb_xml_value_s)): Remove. (gdb_xml_element_start_handler): Change parameter type to std::vector. (xml_find_attribute): Likewise. * xml-support.c (xml_find_attribute): Change parameter type to std::vector and adjust. (gdb_xml_values_cleanup): Remove. (gdb_xml_parser::start_element): Adjust to std::vector. (xinclude_start_include): Change paraeter type to std::vector and adjust. * btrace.c (check_xml_btrace_version): Likewise. (parse_xml_btrace_block): Likewise. (parse_xml_btrace_pt_config_cpu): Likewise. (parse_xml_btrace_pt): Likewise. (parse_xml_btrace_conf_bts): Likewise. (parse_xml_btrace_conf_pt): Likewise. * memory-map.c (memory_map_start_memory): Likewise. (memory_map_start_property): Likewise. * osdata.c (osdata_start_osdata): Likewise. (osdata_start_item): Likewise. (osdata_start_column): Likewise. * remote.c (start_thread): Likewise. * solib-aix.c (library_list_start_library): Likewise. (library_list_start_list): Likewise. * solib-svr4.c (library_list_start_library): Likewise. (svr4_library_list_start_list): Likewise. * solib-target.c (library_list_start_segment): Likewise. (library_list_start_section): Likewise. (library_list_start_library): Likewise. (library_list_start_list): Likewise. * tracepoint.c (traceframe_info_start_memory): Likewise. (traceframe_info_start_tvar): Likewise. * xml-syscall.c (syscall_start_syscall): Likewise. * xml-tdesc.c (tdesc_start_target): Likewise. (tdesc_start_feature): Likewise. (tdesc_start_reg): Likewise. (tdesc_start_union): Likewise. (tdesc_start_struct): Likewise. (tdesc_start_flags): Likewise. (tdesc_start_enum): Likewise. (tdesc_start_field): Likewise. (tdesc_start_enum_value): Likewise. (tdesc_start_vector): Likewise. commit f979c73fd0be9a8a683f79af40c7b939c2a65d9f Author: Simon Marchi Date: Sun Jan 7 09:25:33 2018 -0500 Remove xmethod_worker::clone I think that the clone method of xmethod_worker can be removed. It is only used in find_overload_match, to clone an xmethod we want to keep. Instead, we can just std::move it out of the vector and into value_from_xmethod. value_from_xmethod creates a value that will own the xmethod_worker from that point. Other xmethod_workers left in the vector will get destroyed when the vector gets destroyed, but the chosen one will keep living inside the value struct. gdb/ChangeLog: * extension.h (struct xmethod_worker) : Remove. * python/py-xmethods.c (struct python_xmethod_worker) : Remove. (python_xmethod_worker::clone): Remove. * valops.c (find_overload_match): Use std::move instead of clone. commit ba18742c3a1b62ff218db99bee47bb932af6dab9 Author: Simon Marchi Date: Sun Jan 7 09:25:32 2018 -0500 C++ify xmethod_worker, get rid of VEC(xmethod_worker_ptr) The initial goal of this patch was to remove the usage of VEC(xmethod_worker_ptr) and corresponding cleanups. I ended up having to C++ify the xmethod_worker code, to be able to have xmethod_workers free their data in destructors, and therefore be able to use vectors of xmethod_worker unique_ptr. The operations in extension_language_ops that act on one instance of xmethod_worker (get result type, get args type, invoke) are transformed to methods of xmethod_worker. xmethod_worker becomes an abstract base class with virtual pure methods which python_xmethod_worker implements. The only xmethod-related operation left in extension_language_ops is get_matching_xmethod_workers, which returns a list of xmethod_workers. The changes are relatively straightforward, but here are some notes on things that may raise eyebrows: - I was not really comfortable with the value_of_xmethod function. At first it looks like a simple getter, so I considered making it a method of xmethod_worker. But actually it creates a value and transfers the ownership of the xmethod_worker to it. It would be a bit weird and error-prone if calling a method on an object silently removed the ownership of the object from the caller. To reflect the behavior more accurately, I renamed it to value_from_xmethod and made it accept an rvalue-reference (so the caller knows it gives away the ownership). I noticed the backlink from xmethod_worker to its owning value was not used, so I removed it. - Some code, like get_matching_xmethod_workers, made each callee fill a new vector, which was then merged in the result vector. I think it's safe if we always pass the same vector around, and each implementation just appends to it. - The clone operation does not seem particularly useful, it is removed in the following patch. gdb/ChangeLog: * extension-priv.h (enum ext_lang_rc): Remove, move to extension.h. (struct extension_language_ops) : Remove. : Remove. : Chance VEC to std::vector. : Remove. : Remove. : Remove. * extension.c (new_xmethod_worker): Remove. (clone_xmethod_worker): Remove. (get_matching_xmethod_workers): Return void, pass std::vector by pointer. (get_xmethod_arg_types): Rename to... (xmethod_worker::get_arg_types): ... this, and adjust. (get_xmethod_result_type): Rename to... (xmethod_worker::get_result_type): ... this, and adjust. (invoke_xmethod): Remove. (free_xmethod_worker): Remove. (free_xmethod_worker_vec): Remove. * extension.h (enum ext_lang_rc): Move here from extension-priv.h. (struct xmethod_worker): Add constructor and destructor. : Remove. : Remove. : New virtual pure methods. : New methods. (xmethod_worker_ptr): Remove typedef. (DEF_VEC_P (xmethod_worker_ptr)): Remove. (xmethod_worker_vec): Remove typedef. (xmethod_worker_up): New typedef. (invoke_xmethod): Remove. (clone_xmethod_worker): Remove. (free_xmethod_worker): Remove. (free_xmethod_worker_vec): Remove. (get_xmethod_arg_types): Remove. (get_xmethod_result_type): Remove. * valops.c (find_method_list): Use std::vector, don't use intermediate vector. (value_find_oload_method_list): Use std::vector. (find_overload_match): Use std::vector. (find_oload_champ): Use std::vector. * value.c (value_free): Use operator delete. (value_of_xmethod): Rename to... (value_from_xmethod): ... this. Don't assign xmethod_worker::value, take rvalue-reference. (result_type_of_xmethod): Adjust. (call_xmethod): Adjust. * value.h: Include extension.h. (struct xmethod_worker): Don't forward-declare. (value_of_xmethod): Rename to... (value_from_xmethod): ... this, take rvalue-reference. * python/py-xmethods.c (struct gdbpy_worker_data): Rename to... (struct python_xmethod_worker): ... this, add constructor and destructor. : Implement. (gdbpy_free_xmethod_worker_data): Rename to... (python_xmethod_worker::~python_xmethod_worker): ... this and adjust. (gdbpy_clone_xmethod_worker_data): Rename to... (python_xmethod_worker::clone): ... this and adjust. (gdbpy_get_matching_xmethod_workers): Use std::vector, don't use temporary vector. (gdbpy_get_xmethod_arg_types): Rename to... (python_xmethod_worker::do_get_arg_types): ... this and adjust. (gdbpy_get_xmethod_result_type): Rename to... (python_xmethod_worker::do_get_result_type): ... this and adjust. (gdbpy_invoke_xmethod): Rename to... (python_xmethod_worker::invoke): ... this and adjust. (new_python_xmethod_worker): Rename to... (python_xmethod_worker::python_xmethod_worker): ... this and adjust. * python/python-internal.h (gdbpy_clone_xmethod_worker_data): Remove. (gdbpy_free_xmethod_worker_data): Remove. (gdbpy_get_matching_xmethod_workers): Use std::vector. (gdbpy_get_xmethod_arg_types): Remove. (gdbpy_get_xmethod_result_type): Remove. (gdbpy_invoke_xmethod): Remove. * python/python.c (python_extension_ops): Remove obsolete callbacks. commit d672364615e87e8c366b536940f269fdc3141330 Author: GDB Administrator Date: Sun Jan 7 00:00:33 2018 +0000 Automatic date update in version.in commit 35eeb78fa9535df6a273c053d8f102e046261b89 Author: Jim Wilson Date: Fri Jan 5 17:51:23 2018 -0800 RISC-V: Print symbol address for jalr w/ zero offset. ld/ * testsuite/ld-riscv-elf/disas-jalr.d: New. * testsuite/ld-riscv-elf/disas-jalr.s: New. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Run new testcase. opcodes/ * riscv-dis.c (print_insn_args) <'s'>: Call maybe_print_address for a jalr. commit 77a502c03a347f0eb31e53e94cab528190c5bd1f Author: GDB Administrator Date: Sat Jan 6 00:00:28 2018 +0000 Automatic date update in version.in commit be1dce26256aa9f6c7742e81c8c3db9eacff079d Author: Jim Wilson Date: Fri Jan 5 14:29:49 2018 -0800 RISC-V: Disable shared library support for embedded elf. ld/ * emulparams/elf32lriscv-defs.sh (GENERATE_SHLIB_SCRIPT): Move inside case on $target, and don't set for riscv*-elf targets. (GENERATE_PIE_SCRIPT): Likewise. commit e379cee61f3890e535e995828e8846b020ef2a32 Author: Pedro Alves Date: Fri Jan 5 18:26:18 2018 +0000 Fix regression: cannot start with LD_PRELOAD=libSegFault.so (PR gdb/18653#c7) At https://sourceware.org/bugzilla/show_bug.cgi?id=18653#c7, Andrew reports that the fix for PR gdb/18653 made GDB useless if you preload libSegFault.so, because GDB internal-errors on startup: $ LD_PRELOAD=libSegFault.so gdb src/gdb/common/signals-state-save-restore.c:64: internal-error: unexpected signal handler A problem internal to GDB has been detected, further debugging may prove unreliable. Aborted (core dumped) $ The internal error comes from the code saving the signal dispositions inherited from gdb's parent: (top-gdb) bt #0 0x000000000056b001 in internal_error(char const*, int, char const*, ...) (file=0xaf5f38 "src/gdb/common/signals-state-save-restore.c", line=64, fmt=0xaf5f18 "unexpected signal handler") at src/gdb/common/errors.c:54 #1 0x00000000005752c9 in save_original_signals_state() () at src/gdb/common/signals-state-save-restore.c:64 #2 0x00000000007425de in captured_main_1(captured_main_args*) (context=0x7fffffffd860) at src/gdb/main.c:509 #3 0x0000000000743622 in captured_main(void*) (data=0x7fffffffd860) at src/gdb/main.c:1145 During symbol reading, cannot get low and high bounds for subprogram DIE at 24065. #4 0x00000000007436f9 in gdb_main(captured_main_args*) (args=0x7fffffffd860) at src/gdb/main.c:1171 #5 0x0000000000413acd in main(int, char**) (argc=1, argv=0x7fffffffd968) at src/gdb/gdb.c:32 This commit downgrades the internal error to a warning. You'll get instead: ~~~ $ LD_PRELOAD=libSegFault.so gdb warning: Found custom handler for signal 11 (Segmentation fault) preinstalled. Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN) won't be propagated to spawned programs. GNU gdb (GDB) 8.0.50.20171213-git Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... (gdb) ~~~ This also moves the location where save_original_signals_state is called a bit further below (to after option processing), so that "-q" disables the warning: ~~~ $ LD_PRELOAD=libSegFault.so gdb -q (gdb) ~~~ New testcase included. gdb/ChangeLog: 2018-01-05 Pedro Alves PR gdb/18653 * common/signals-state-save-restore.c (save_original_signals_state): New parameter 'quiet'. Warn if we find a custom handler preinstalled, instead of internal erroring. But only warn if !quiet. * common/signals-state-save-restore.h (save_original_signals_state): New parameter 'quiet'. * main.c (captured_main_1): Move save_original_signals_state call after option handling, and pass QUIET. gdb/gdbserver/ChangeLog: 2018-01-05 Pedro Alves PR gdb/18653 * server.c (captured_main): Pass quiet=false to save_original_signals_state. gdb/testsuite/ChangeLog: 2018-01-05 Pedro Alves PR gdb/18653 * gdb.base/libsegfault.exp: New. commit a655456c134e5e02bab33941e1c738ca33905d23 Author: Pedro Alves Date: Fri Jan 5 17:56:33 2018 +0000 Fix gdb/spu-tdep.c build breakage Commit de63c46b549d ("Fix regresssion(internal-error) printing subprogram argument (PR gdb/22670)") missed updating spu-tdep.c for the block_lookup_symbol interface change, resulting in: ../../binutils-gdb/gdb/spu-tdep.c: In function void spu_catch_start(objfile*): ../../binutils-gdb/gdb/spu-tdep.c:1969:59: error: cannot convert domain_enum_tag to symbol_name_match_type for argument 3 to symbol* block_lookup_symbol(const block*, const char*, symbol_name_match_type, domain_enum) sym = block_lookup_symbol (block, "main", VAR_DOMAIN); ^ gdb/ChangeLog: 2018-01-05 Pedro Alves * spu-tdep.c (spu_catch_start): Pass symbol_name_match_type::SEARCH_NAME to block_lookup_symbol. commit de63c46b549d1cf4f7851e47872cb759a12983f4 Author: Pedro Alves Date: Fri Jan 5 14:04:09 2018 +0000 Fix regresssion(internal-error) printing subprogram argument (PR gdb/22670) At , Joel wrote: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Consider the following code which first declares a tagged type (the equivalent of a class in Ada), and then a procedure which takes a pointer (access) to this type's 'Class. package Pck is type Top_T is tagged record N : Integer := 1; end record; procedure Inspect (Obj: access Top_T'Class); end Pck; Putting a breakpoint in that procedure and then running to it triggers an internal error: (gdb) break inspect (gdb) continue Breakpoint 1, pck.inspect (obj=0x63e010 /[...]/gdb/stack.c:621: internal-error: void print_frame_args(symbol*, frame_info*, int, ui_file*): Assertion `nsym != NULL' failed. What's special about this subprogram is that it takes an access to what we call a 'Class type, and for implementation reasons, the compiler adds an extra argument named "objL". If you are curious why, it allows the compiler for perform dynamic accessibility checks that are mandated by the language. If we look at the location where we get the internal error (in stack.c), we find that we are looping over the symbol of each parameter, and for each parameter, we do: /* We have to look up the symbol because arguments can have two entries (one a parameter, one a local) and the one we want is the local, which lookup_symbol will find for us. [...] nsym = lookup_symbol (SYMBOL_LINKAGE_NAME (sym), b, VAR_DOMAIN, NULL).symbol; gdb_assert (nsym != NULL); The lookup_symbol goes through the lookup structure, which means the symbol's linkage name ("objL") gets transformed into a lookup_name_info object (in block_lookup_symbol), before it gets fed to the block symbol dictionary iterators. This, in turn, triggers the symbol matching by comparing the "lookup" name which, for Ada, means among other things, lowercasing the given name to "objl". It is this transformation that causes the lookup find no matches, and therefore trip this assertion. Going back to the "offending" call to lookup_symbol in stack.c, what we are trying to do, here, is do a lookup by linkage name. So, I think what we mean to be doing is a completely literal symbol lookup, so maybe not even strcmp_iw, but actually just plain strcmp??? In the past, in practice, you could get that effect by doing a lookup using the C language. But that doesn't work, because we still end up somehow using Ada's lookup_name routine which transforms "objL". So, ideally, as I hinted before, I think what we need is a way to perform a literal lookup so that searches by linkage names like the above can be performed. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This commit fixes the problem by implementing something similar to Joel's literal idea, but with some important differences. I considered adding a symbol_name_match_type::LINKAGE and supporting searching by linkage name for any language, but the problem with that is that the dictionaries only work with SYMBOL_SEARCH_NAME, because that's what is used for hashing. We'd need separate dictionaries for hashed linkage names. So with the current symbol tables infrastructure, it's not literal linkage names that we want to pass down, but instead literal _search_ names (SYMBOL_SEARCH_NAME, etc.). However, psymbols have no overload/function parameter info in C++, so a straight strcmp doesn't work properly for C++ name matching. So what we do is be a little less aggressive then and add a new symbol_name_match_type::SEARCH_SYMBOL instead that takes as input a non-user-input search symbol, and then we skip any decoding/demangling steps and make: - Ada treat that as a verbatim match, - other languages treat it as symbol_name_match_type::FULL. This also fixes the new '"maint check-psymtabs" for Ada' testcase for me (gdb.ada/maint_with_ada.exp). I've not removed the kfail yet because Joel still sees that testcase failing with this patch. That'll be fixed in follow up patches. gdb/ChangeLog: 2018-01-05 Pedro Alves PR gdb/22670 * ada-lang.c (literal_symbol_name_matcher): New function. (ada_get_symbol_name_matcher): Use it for symbol_name_match_type::SEARCH_NAME. * block.c (block_lookup_symbol): New parameter 'match_type'. Pass it down instead of assuming symbol_name_match_type::FULL. * block.h (block_lookup_symbol): New parameter 'match_type'. * c-valprint.c (print_unpacked_pointer): Use lookup_symbol_search_name instead of lookup_symbol. * compile/compile-object-load.c (get_out_value_type): Pass down symbol_name_match_type::SEARCH_NAME. * cp-namespace.c (cp_basic_lookup_symbol): Pass down symbol_name_match_type::FULL. * cp-support.c (cp_get_symbol_name_matcher): Handle symbol_name_match_type::SEARCH_NAME. * infrun.c (insert_exception_resume_breakpoint): Use lookup_symbol_search_name. * p-valprint.c (pascal_val_print): Use lookup_symbol_search_name. * psymtab.c (maintenance_check_psymtabs): Use symbol_name_match_type::SEARCH_NAME and SYMBOL_SEARCH_NAME. * stack.c (print_frame_args): Use lookup_symbol_search_name and SYMBOL_SEARCH_NAME. * symtab.c (lookup_local_symbol): Don't demangle the lookup name if symbol_name_match_type::SEARCH_NAME. (lookup_symbol_in_language): Pass down symbol_name_match_type::FULL. (lookup_symbol_search_name): New. (lookup_language_this): Pass down symbol_name_match_type::SEARCH_NAME. (lookup_symbol_aux, lookup_local_symbol): New parameter 'match_type'. Pass it down. * symtab.h (symbol_name_match_type::SEARCH_NAME): New enumerator. (lookup_symbol_search_name): New declaration. (lookup_symbol_in_block): New 'match_type' parameter. gdb/testsuite/ChangeLog: 2018-01-05 Joel Brobecker PR gdb/22670 * gdb.ada/access_tagged_param.exp: New file. * gdb.ada/access_tagged_param/foo.adb: New file. commit f98fc17b3ac4750842ec0fe28a18b51691ddfbda Author: Pedro Alves Date: Fri Jan 5 16:01:57 2018 +0000 Fix gdb.ada/info_addr_mixed_case.exp (PR gdb/22670) The comments about mixed case in the testcase are actually a red herring. The problem here is that we'd get to ada_lookup_encoded_symbol with "my_table", which wraps the looked up name in "<>"s to force a verbatim match, and that in turn disables wild matching. Fix this by swapping around the internals of ada_lookup_encoded_symbol and ada_lookup_symbol, thus avoiding the encoding and verbatim-wrapping in the ada_lookup_symbol case, the case that starts with a user-provided lookup name. Ada encoding is still done of course, in the ada_lookup_name_info ctor. This could be also seen as avoiding the double-encoding problem in a different way. gdb/ChangeLog: 2018-01-05 Pedro Alves PR gdb/22670 * ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of ada_lookup_symbol. (ada_lookup_symbol): Reimplement in terms of ada_lookup_symbol_list, bits factored out from ada_lookup_encoded_symbol. gdb/testsuite/ChangeLog: 2018-01-05 Pedro Alves PR gdb/22670 * gdb.ada/info_addr_mixed_case.exp: Remove kfail. Extend test to exercise lower case too, and to exercise both full matching and wild matching. commit 342f82403949c74517a6353baec73b94d18549ad Author: Joel Brobecker Date: Fri Jan 5 04:29:54 2018 -0500 (Ada) problem printing renaming which references a subprogram parameter Consider the following code, which creates a local variable B which is a renaming whose expression references a subprogram parameter: procedure Flip (Bits : in out Bits_Type; I : Natural) is begin declare B : Boolean renames Bits (I); begin B := not B; -- BREAK end; end Flip; Trying to print the value of B when at the "BREAK" line currently does not work: (gdb) p b Could not find i What happens is the following: For the renaming, GNAT generates a variable whose name is encoded as follow: b___XR_bits___XEXSi GDB properly detects that variable, determines that, to compute the variable's value, we start from the symbol "Bits", which we then have to subscript (XS) using 'i' as the index. The error occurs while trying to find 'i'. This is because we forgot to pass the block in the call to ada_lookup_encoded_symbol, which this patch fixes. gdb/ChangeLog: * ada-exp.y (write_object_renaming): When subscripting an array using a symbol as the index, pass the block in call to ada_lookup_encoded_symbol when looking that symbol up. gdb/testsuite/ChangeLog: * gdb.ada/rename_subscript_param: New testcase. Tested on x86_64-linux. Note: This requires the following GCC patch: | 2017-04-25 Pierre-Marie de Rodat | | * exp_dbug.adb: In Debug_Renaming_Declaration, | when dealing with indexed component, accept to produce a renaming | symbol when the index is an IN parameter or when it is a name | defined in an outer scope. commit 7150d33cda60fd543e9d9d68eb58d4e6155fb878 Author: Jerome Guitton Date: Fri Jan 5 03:03:59 2018 -0500 (Ada) Fix Length attribute on array access Consider the following variable "Indexed_By_Enum", declared as an access to an array whose index type is an enumerated type whose underlying values have "gaps": type Enum_With_Gaps is (LIT0, LIT1, LIT2, LIT3, LIT4); for Enum_With_Gaps use (LIT0 => 3, LIT1 => 5, LIT2 => 8, LIT3 => 13, LIT4 => 21); for Enum_With_Gaps'size use 16; type MyWord is range 0 .. 16#FFFF# ; for MyWord'Size use 16; type AR is array (Enum_With_Gaps range <>) of MyWord; type AR_Access is access AR; Indexed_By_Enum : AR_Access := new AR'(LIT1 => 1, LIT2 => 43, LIT3 => 42, LIT4 => 41); Trying to print the length (number of elements) of this array using the 'Length attribute does not work: (gdb) print indexed_by_enum'length 'POS only defined on discrete types The problem occurs while trying to get the array's index type. It was using TYPE_INDEX_TYPE for that. It does not work for Ada arrays in general; use ada_index_type instead. gdb/ChangeLog: * ada-lang.c (ada_array_length): Use ada_index_type instead of TYPE_INDEX_TYPE. gdb/testsuite/ChangeLog: * gdb.ada/arr_acc_idx_w_gap: New testcase. Tested on x86_64-linux. commit cc0e770c0d00acececc43826f4673896d09b3dff Author: Joel Brobecker Date: Fri Jan 5 02:37:38 2018 -0500 memory error printing component of record from convenience variable Consider the following situation Ada code: type Kind_T is (One, Two, Three); type Time_Set_T is array (Kind_T) of Integer; type T is record Started : Time_Set_T; end record; Null_T : constant T := (Started => (others => 0)); My_Item : Pck.T := Pck.Null_T; Trying to print the value of My_Item.Started is no problem: (gdb) p item.started $1 = (0, 0, 0) However, if you save My_Item into a convenience variable first, and then try to print a component of that record, you get an unexpected memory error, instead of getting the same result. For instance: (gdb) set variable $item := item (gdb) p $item.started Cannot access memory at address 0x0 The issue occurs when, after we extracted the component from the convenience variable, we next try to "fix" it (which is ada-lang speak for resolving the type into a static type). This is done in ada_to_fixed_value, which delegates to ada_to_fixed_value_create via: val = ada_to_fixed_value_create (value_type (val), value_address (val), val); And looking at ada_to_fixed_value_create, we see that: struct type *type = ada_to_fixed_type (type0, 0, address, NULL, 1); if (type == type0 && val0 != NULL) return val0; else return value_from_contents_and_address (type, 0, address); The part that interests us, in this case, is the "else" branch, where we obviously make the implicit assumption that our object has an address, which is not true, in this case, because we are actually dealing with a convenience variable. This patch plugs that hole by adding special handing for situations where val does not live in memory. In that case, we just create a not_lval value using val's contents. gdb/ChangeLog: * ada-lang.c (ada_to_fixed_value_create): Add handling of the case where VALUE_LVAL (val0) is not lval_memory. gdb/testsuite/ChangeLog: * gdb.ada/convvar_comp: New testcase. Tested on x86_64-linux. commit f79da888eb68d5add4eaa7f336923cad95367335 Author: Joel Brobecker Date: Fri Jan 5 02:39:10 2018 -0500 fix date of latest gdb/ChangeLog entry commit 672a41aa12fb24fe24dbf52d2e78a3a846dc0225 Author: Joel Brobecker Date: Thu Jan 4 23:51:55 2018 -0500 Fix email address in latest gdb/testsuite/ChangeLog entry commit e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf Author: Xavier Roirand Date: Thu Jan 4 23:47:05 2018 -0500 (Ada) Remove printing of array's first index when unneeded Consider the following code: type Table is array (Character) of Natural; My_Table : Table := (others => 4874); Printing this table in gdb leads to: (gdb) p my_table $1 = ('["00"]' => 4874 ) In this case, the index of the first element in this array is also the first element of the index type (character type). Similar to what we do we enumeration types, we do not need to print the index of the first element when printing the array. This patch fixes this issue and changes the output as follow: (gdb) p my_table $1 = (4874 ) gdb/ChangeLog: * ada-valprint.c (print_optional_low_bound): Handle character-indexed array printing like boolean-indexed array printing. gdb/testuite/ChangeLog: * testsuite/gdb.ada/array_char_idx/pck.ads (Table): New type. (My_Table): New global variable. * testsuite/gdb.ada/array_char_idx.exp: Add test. Tested on x86_64-linux. commit cd385f94a7888b619c84e9ab007bac5093c5e894 Author: Joel Brobecker Date: Fri Jan 5 08:18:05 2018 +0400 Update NEWS post GDB 8.1 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 09aca9495c4794e586680f359e612ece173148ec Author: Joel Brobecker Date: Fri Jan 5 08:08:09 2018 +0400 Bump version to 8.1.50.DATE-git. Now that the GDB 8.1 branch has been created, we can bump the version number. gdb/ChangeLog: GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7): * version.in: Bump version to 8.1.50.DATE-git. commit 5219ac6237c272b938c28517bf371429260c71e7 Author: GDB Administrator Date: Fri Jan 5 00:00:35 2018 +0000 Automatic date update in version.in commit 645a2c5b46e18013ac9cb16b66ba7b6b97cd01c5 Author: Jim Wilson Date: Thu Jan 4 14:17:53 2018 -0800 RISC-V: Add 2 missing privileged registers. gas/ * testsuite/gas/riscv/priv-reg.s: Add missing stval and mtval. * testsuite/gas/riscv/priv-reg.d: Likewise. include/ * opcode/riscv-opc.h (CSR_SBADADDR): Rename to CSR_STVAL. Rename DECLARE_CSR entry. Add alias to map sbadaddr to CSR_STVAL. (CSR_MBADADDR): Rename to CSR_MTVAL. Rename DECLARE_CSR entry. Add alias to map mbadaddr to CSR_MTVAL. commit 7365ec2ff4a7028503f39655bd2628d54418106c Author: Joel Brobecker Date: Thu Jan 4 04:40:17 2018 -0500 gdb.ada/maint_with_ada.exp: New testcase This commit adds a new testcase testing the "check-psymtabs" and "check-symtabs" maintenance commands. The "maintenance check-psymtabs" commands is currently known to produce some errors. While the situation was admetedly made worse by the following patch... commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Date: Wed Nov 8 14:22:32 2017 +0000 Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching ... hence the reference to PR gdb/22670, the command was already spotting one inconsistency prior to it: (gdb) maintenance check-psymtabs Global symbol `interfaces__cS' only found in /[...]/b~var_arr_typedef.adb psymtab For now, the "check-psymtab" test is KFAIL-ed. gdb/testsuite/ChangeLog: PR gdb/22670 * gdb.ada/maint_with_ada: New testcase. Tested on x86_64-linux. commit 289483b6a06c7a24ee9ae9021d2728ca4700b7a6 Author: Joel Brobecker Date: Thu Jan 4 03:10:34 2018 -0500 Add new gdb.ada/bp_c_mixed_case testcase for PR gdb/22670 This patch adds a new testcase to demonstrate a regression introduced by: commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Date: Wed Nov 8 14:22:32 2017 +0000 Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching The purpose of the testcase is to verify that a user can insert a breakpoint on a C function while debugging Ada, even if the name of the function includes uppercase letters, requiring us to use Ada's "<...>" notation to tell the GDB that the symbol name should be looked up verbatim. As of the commit above, GDB is no longer finding the function: (gdb) break Function "" not defined. Make breakpoint pending on future shared library load? (y or [n]) Before the patch, the breakpoint was inserted without problem. gdb/testsuite/ChangeLog: PR gdb/22670 * gdb.ada/bp_c_mixed_case: New testcase. Tested on x86_64-linux; generates a KPASS before the regression was introduced, and now generates a KFAIL. commit 344420da6beac1e0b2f7964e7101f8dcdb509b0d Author: Joel Brobecker Date: Thu Jan 4 02:39:58 2018 -0500 Add "complete break ada" test to gdb.ada/complete.exp This patch adds a new test to demonstrate a regression introduced by: commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Date: Wed Nov 8 14:22:32 2017 +0000 Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching The original purpose of the new test is to exercise the "complete" command with an expression for which a large number of matches are returned and to verify that each match returned is a plausible match. In this particular case, the commit above causes GDB to generate additional matches which should in fact not appear in the list (internally generated symbols, or symbols that should be enclosed between "<...>"). These extraneous entries are easy to spot, because they have uppercase characters, such as: break ada__stringsS break ada__strings__R11s [etc] For now, the new test is KFAIL'ed, to avoid generating a new FAIL while we work on fixing that regression. gdb/testsuite/ChangeLog: PR gdb/22670 * gdb.ada/complete.exp: Add "complete break ada" test. Tested on x86_64-linux with GDB built before and after the patch that caused the regression (b5ec771e60c1a0863e51eb491c85c674097e9e13). The test passes before the regression, and generates a KFAIL after. commit 66fc87a0d50d2b91322cc24d17461c07925fa867 Author: Joel Brobecker Date: Wed Jan 3 23:28:14 2018 -0500 Add gdb.ada/info_addr_mixed_case new testcase This patch adds a new testcase to demonstrate a regression introduced by: commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Date: Wed Nov 8 14:22:32 2017 +0000 Subject: Introduce lookup_name_info and generalize Ada's FULL/WILD name matching The purpose of the testcase is to verify that a user can use any casing for an Ada symbol name passed to the "info address" command. After the patch above was applied, GDB was no longer able to find the symbol: (gdb) info address My_Table No symbol "My_Table" in current context. gdb/testsuite/ChangeLog: PR gdb/22670 * gdb.ada/info_addr_mixed_case: New testcase. Tested on x86_64-linux, both before and after the patch. commit c40d7e49cf0a6842a5cf072772a48d1f6e6eeb11 Author: GDB Administrator Date: Thu Jan 4 00:00:20 2018 +0000 Automatic date update in version.in commit ddb2bbcf0624ef5f75c0a007c6b192c09b6fa70b Author: John Baldwin Date: Wed Jan 3 12:06:26 2018 -0800 Create pseudo sections for FreeBSD NT_PROCSTAT_(PROC|FILES|VMMAP) notes. bfd/ChangeLog: * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and NT_FREEBSD_PROCSTAT_VMMAP. commit f13974bda3d53e47b7fe5a358e963073184ba17e Author: Nick Clifton Date: Wed Jan 3 17:32:59 2018 +0000 Fix compile time warning introduced by previous delta. * objcopy.c (merge_gnu_build_notes): Add cast to maximum address constants. commit 6f156d7a4ad1c245b357dc50f63f3564d397839e Author: Nick Clifton Date: Wed Jan 3 10:28:33 2018 +0000 Add support for v3 binary annotation notes. I am checking in the attached patch which updates the binutils support for version 3 binary annotation notes. (Version 3 adds an end address to the ranges covered by the notes, so that it is possible to detect gaps in the coverage). This patch also stops the note merging feature of objcopy from executing if the notes have relocations against them. This makes the code simpler, and prevents the problems with architectures which have unusual relocation management issues. * objcopy.c (objcopy_internal_note): New structure. (gap_exists): New function. (is_open_note): New function. (is_func_note): New function. (is_64bit): New function. (merge_gnu_build_notes): Handle v3 notes. Do not merge if there are relocations against the notes. * readelf.c (get_note_type): Use short names for build attribute notes. (print_symbol_for_build_attribute): Rename to get_symbol_for_build_attribute. Returns the found symbol rather than printing it. (print_gnu_build_attribute_description): Maintain address ranges for function notes as well as global notes. Handle v3 notes. (print_gnu_build_attribute_name): Use more space for printing the name in wide mode. * testsuite/binutils-all/note-2-32.s: Use .dc.l instead of .word. Eliminate symbol references in order to remove the need for relocations. * testsuite/binutils-all/note-2-64.s: Likewise. * testsuite/binutils-all/note-3-32.s: Add a size to the note_1 symbol. * testsuite/binutils-all/note-3-64.s: Likewise. * testsuite/binutils-all/mips/mips-note-2r-n32.d: Update expected output. * testsuite/binutils-all/mips/mips-note-2r-n64.d: Likewise. * testsuite/binutils-all/mips/mips-note-2r.d: Likewise. * testsuite/binutils-all/note-2-32.d: Likewise. * testsuite/binutils-all/note-2-64.d: Likewise. * testsuite/binutils-all/note-3-32.d: Likewise. * testsuite/binutils-all/note-3-64.d: Likewise. * testsuite/binutils-all/note-4-64.s: New test. Checks v3 notes. * testsuite/binutils-all/note-4-32.s: New test. * testsuite/binutils-all/note-4-64.d: New test result file. * testsuite/binutils-all/note-4-32.d: New test result file. commit 9f757bf7fcb8834ead780e0c4a76d6029b1402c2 Author: Xavier Roirand Date: Wed Nov 22 10:40:39 2017 +0100 (Ada) New command to stop at start of exception handler. When using gdb for debugging Ada source code, there are several catchpoint types you can define in order to stop upon certain conditions. Let's use this small example: procedure Foo is begin begin raise Constraint_Error; exception when Program_Error => null; when Constraint_Error => null; when others => null; end; end Foo; One can stop when the exception is being raised by using the exception catchpoint like below: (gdb) catch exception Catchpoint 1: all Ada exceptions (gdb) In that case, when running Foo, gdb will stop at the line where the exception was raised: begin >>> raise Constraint_Error; exception This patch introduces new type of catchpoint, when the user wants to stop at the location of the exception handling. Imagine we want to stop on any exception handled by the program, we can do: (gdb) catch handlers Catchpoint 1: all Ada exceptions handlers (gdb) r Starting program: /tmp/foo By doing so, when running Foo, gdb will stop here: Catchpoint 1, exception at 0x000000000040255a in foo () at foo.adb:25 25 when Constraint_Error => (gdb) It is also possible to stop when the Constraint_Error exception is being handled in this program. With this patch, we can use: (gdb) catch handlers Constraint_Error Catchpoint 1: `Constraint_Error' Ada exception handlers (gdb) Like for other catchpoint, you can set a condition when adding a catchpoint on exception handlers. Here the handlers catchpoint checks Global_Var: (gdb) catch handlers Constraint_Error if Global_Var /= 0 gdb/ChangeLog: * ada-lang.h (ada_exception_catchpoint_kind) : Add field. * ada-lang.c (struct exception_support_info) : Add field. (default_exception_support_info) : Add field. (exception_support_info_fallback) : Add field. (ada_exception_name_addr_1): Add "catch handlers" handling. (ada_exception_catchpoint_cond_string) : New parameter. Update all callers. (create_excep_cond_exprs) : Add parameter. (re_set_exception): Update create_excep_cond_exprs call. (print_it_exception, print_one_exception, print_mention_exception) (print_recreate_exception): Add "catch handler" handling. (allocate_location_catch_handlers, re_set_catch_handlers) (check_status_catch_handlers, print_it_catch_handlers) (print_one_catch_handlers, print_mention_catch_handlers) (print_recreate_catch_handlers): New function. (catch_handlers_breakpoint_ops): New variable. (catch_ada_exception_command_split) : Add parameter. Add "catch handler" handling. (ada_exception_sym_name, ada_exception_breakpoint_ops): Add "catch handler" handling. (ada_exception_catchpoint_cond_string): Add "catch handler" handling. (create_ada_exception_catchpoint): Update create_excep_cond_exprs call. (catch_ada_handlers_command): New function. (initialize_ada_catchpoint_ops): Initialize "catch handlers" operations structure. (_initialize_ada_language): Add "catch handlers" command entry. * NEWS: Document "catch handlers" feature. gdb/doc/ChangeLog: * gdb.texinfo (Set Catchpoints): Add documentation for new "catch handlers" action. gdb/testsuite/ChangeLog: * gdb.ada/excep_handle.exp: New testcase. * gdb.ada/excep_handle/foo.adb: New file. * gdb.ada/excep_handle/pck.ads: New file. Tested on x86_64-linux. commit 219d1afa89d0d53ca93a684cac341f16470f3ca0 Author: Alan Modra Date: Wed Jan 3 15:47:27 2018 +1030 Update year range in copyright notice of binutils files commit 1e563868718a69231c80a1d86698cee0cf847e72 Author: Alan Modra Date: Wed Jan 3 15:45:17 2018 +1030 ChangeLog rotation commit bd570f80f6e47c93f4b1cc1e94688cdde33ca931 Author: Joel Brobecker Date: Wed Jan 3 07:50:38 2018 +0400 Unbreak spurious fails in gdb.base/step-line.exp My copyright year update in the copyright headers of the step-line testcase caused it to start failing, due to shift in line numbers. FAIL: gdb.base/step-line.exp: continue to f1 FAIL: gdb.base/step-line.exp: next to dummy 2 FAIL: gdb.base/step-line.exp: next over dummy 2 FAIL: gdb.base/step-line.exp: step into f2 FAIL: gdb.base/step-line.exp: next over dummy 4 FAIL: gdb.base/step-line.exp: next to dummy 5 FAIL: gdb.base/step-line.exp: next to dummy 6 FAIL: gdb.base/step-line.exp: next over dummy 6 FAIL: gdb.base/step-line.exp: next to dummy 7 FAIL: gdb.base/step-line.exp: next to dummy 8 FAIL: gdb.base/step-line.exp: next over dummy 8 FAIL: gdb.base/step-line.exp: next to dummy 9 FAIL: gdb.base/step-line.exp: next to dummy 10 FAIL: gdb.base/step-line.exp: next over dummy 10 This was caused by the copyright.py script after I changed it to also update this testcase, which made the following transformation: - Copyright (C) 2001-2017 - Free Software Foundation, Inc. + Copyright (C) 2001-2018 Free Software Foundation, Inc. We can easily unbreak the testcase without having to go back to manual edits each year by adding an extra line in the header. gdb/testsuite/ChangeLog: * gdb.base/step-line.c: Add extra empty line in copyright header. * gdb.base/step-line.inp: Likewise. Tested on x86_64-linux. commit 39f2fa1b0fdfd1b15f3d381c4fc4359c9733e657 Author: GDB Administrator Date: Wed Jan 3 00:00:31 2018 +0000 Automatic date update in version.in commit 43724d16bebb38fe6794f6a3741352a7698038de Author: Nick Clifton Date: Tue Jan 2 17:15:16 2018 +0000 Fix compile time warning (in the ARM simulator) about a print statement with insufficient arguments. PR 22663 * maverick.c (DSPCDP4): Add missing parameter to debug print statement. commit 806ab1c045c4cbb5c906f79bcb2e0c3058f4c6fd Author: Nick Clifton Date: Tue Jan 2 12:13:17 2018 +0000 Fix typo in do_mrs function in ARM assembler. PR 18119 * config/tc-arm.c (do_mrs): Fix test of bits 16-19 in non-banked version of ARM MRS instruction. commit 1508bbf535b03e3b9105d01a9e19f29f131b3d1a Author: Jan Beulich Date: Tue Jan 2 11:44:04 2018 +0100 x86: partial revert of 10c17abdd0 Other than the variables in tc-i386.c using them, OPERAND_TYPE_REGYMM and OPERAND_TYPE_REGZMM they aren't entirely unused. No need to update i386-init.h though, as it mistakenly wasn't updated by the original commit. commit 9fe561ab7fc5ee3a06061dae6909cd61b49435df Author: Joel Brobecker Date: Mon Jan 1 22:53:55 2018 -0500 [gdb/Ada] slices of arrays with dynamic strides Consider the following Ada code: procedure Nested (L, U : Integer) is subtype Small_Type is Integer range L .. U; type Record_Type (I : Small_Type := L) is record S : String (1 .. I); end record; type Array_Type is array (Integer range <>) of Record_Type; A1 : Array_Type := (1 => (I => 0, S => <>), 2 => (I => 1, S => "A"), 3 => (I => 2, S => "AB")); procedure Discard (R : Record_Type) is begin null; end Discard; begin Discard (A1 (1)); -- STOP end; Trying to print a slice of that array currently yields: (gdb) p a1(1..3) $1 = ((i => 0, s => ""), (i => 0, s => ""), (i => 0, s => "")) We expected instead: (gdb) p a1(1..3) $1 = ((i => 0, s => ""), (i => 1, s => "A"), (i => 2, s => "AB")) This is because the functions we use in ada-lang.c to create the type of the array slice (ada_value_slice and ada_value_slice_from_ptr) was not taking into account the stride of the array. This patch fixes this. gdb/ChangeLog: * ada-lang.c (ada_value_slice_from_ptr): Take array stride into account when creating the array type of the slice. (ada_value_slice): Likewise. gdb/testsuite/ChangeLog: * gdb.ada/dyn_stride.exp: Add slice test. Note that, with the current use of ada_value_slice, the enhancement to handle dynamic array strides seems unnecessary, because I do not see how an array with a dynamic stride can be referenced by either by reference or pointer. Since references are coerced to array pointers, in both cases, the slice is performed by ada_value_slice_from_ptr. But ada_value_slice is enhanced nonetheless, in the spirit of making the code more robust, in case we missed something, and also as similar as possible with its from_ptr counterpart. tested on x86_64-linux. commit a405673cc5b56c260de4e1202cead709d1a4f24c Author: Joel Brobecker Date: Mon Jan 1 22:47:18 2018 -0500 Add support for dynamic DW_AT_byte_stride. This patch adds support for DW_AT_byte_stride, using Ada as one example of where this would be useful. However, the implementation is language-agnostic. Consider the following Ada code: procedure Nested (L, U : Integer) is subtype Small_Type is Integer range L .. U; type Record_Type (I : Small_Type := L) is record S : String (1 .. I); end record; type Array_Type is array (Integer range <>) of Record_Type; A1 : Array_Type := (1 => (I => 0, S => <>), 2 => (I => 1, S => "A"), 3 => (I => 2, S => "AB")); procedure Discard (R : Record_Type) is begin null; end Discard; begin Discard (A1 (1)); -- STOP end; It defines an array A1 of Record_Type, which is a variant record type whose maximum size actually depends on the value of the parameters passed when calling Nested. As a result, the stride of the array A1 cannot be known statically, which leads the compiler to generate a dynamic DW_AT_byte_stride attribute for our type. Here is what the debugging info looks like with GNAT: .uleb128 0x10 # (DIE (0x14e) DW_TAG_array_type) .long .LASF17 # DW_AT_name: "foo__nested__T18b" .long 0x141 # DW_AT_byte_stride .long 0xdc # DW_AT_type .uleb128 0x11 # (DIE (0x15f) DW_TAG_subrange_type) .long 0x166 # DW_AT_type .byte 0x3 # DW_AT_upper_bound .byte 0 # end of children of DIE 0x14e There DW_AT_byte_stride is a reference to a local (internal) variable: .uleb128 0x9 # (DIE (0x141) DW_TAG_variable) .long .LASF6 # DW_AT_name: "foo__nested__T18b___PAD___XVZ" This patch enhances GDB to handle this dynamic byte stride attribute by first adding a new dynamic_prop_node_kind (DYN_PROP_BYTE_STRIDE) to store the array dynamic stride info (when dynamic). It then enhances the dynamic type resolver to handle this dynamic property. Before applying this patch, trying to print the value of some of A1's elements after having stopped at the "STOP" comment does not work. For instance: (gdb) p a1(2) Cannot access memory at address 0x80000268dec0 With this patch applied, GDB now prints the value of all 3 elements correctly: (gdb) print A1(1) $1 = (i => 0, s => "") (gdb) print A1(2) $2 = (i => 1, s => "A") (gdb) print A1(3) $3 = (i => 2, s => "AB") gdb/ChangeLog: * gdbtypes.h (enum dynamic_prop_node_kind) : New enum value. (create_array_type_with_stride): Add byte_stride_prop parameter. * gdbtypes.c (create_array_type_with_stride) : New parameter. Update all callers in this file. (array_type_has_dynamic_stride): New function. (is_dynamic_type_internal, resolve_dynamic_array): Add handling of arrays with dynamic byte strides. * dwarf2read.c (read_array_type): Add support for dynamic DW_AT_byte_stride attributes. gdb/testsuite/ChangeLog: * gdb.ada/dyn_stride: New testcase. Tested on x86_64-linux. commit 74a2f8ffb83172de1af0da6751a65c08a722986f Author: Joel Brobecker Date: Mon Jan 1 22:41:36 2018 -0500 treat Ada DW_TAG_unspecified_type DIEs as stub types Consider the gdb.ada/taft_type.exp testcase, which exercises the situation where a variable is defined using a type which is a pointer to an incomplete type, with the actual type definition being provided by another unit. Up to now, the strategy used by GNAT when generating the DWARF debugging info was to produce a incomplete DW_TAG_enumeration_type DIE with a DW_AT_declaration flag attached to it: .uleb128 0x4 # (DIE (0x3e) DW_TAG_enumeration_type) .long .LASF4 # DW_AT_name: "pck__empty" # DW_AT_declaration However, a more standard way for the compiler to describe this kind of type is to use the DW_TAG_unspecified_type tag. When the compiler is enhanced to do so, we'll need to treat such types as stubs -- we only do so with types from Ada units, however, as the meaning of this TAG is intentionally left permissive and language-specific by the DWARF standard. Without this patch, running the testcase above with an enhanced compiler now yields: (gdb) print w.e.all Attempt to dereference a generic pointer. FAIL: gdb.ada/taft_type.exp: print w.e.all gdb/ChangeLog: * dwarf2read.c (read_unspecified_type): Treat DW_TAG_enumeration_type DIEs from Ada units as stubs. Tested on x86_64-linux, fixes the FAIL in gdb.ada/taft_type.exp above. commit e2882c85786571175a0b0bfc3bcd2f14620b1ea3 Author: Joel Brobecker Date: Mon Jan 1 08:43:02 2018 +0400 Update copyright year range in all GDB files gdb/ChangeLog: Update copyright year range in all GDB files commit 1690bb24d855c387211f7bc5a77334c11cc75f4b Author: Joel Brobecker Date: Mon Jan 1 08:18:16 2018 +0400 gdb/copyright.py: Remove testsuite/gdb.base/step-line.{c,inp} special handling In the past, these files needed to be handled by hand, because the testcase was sensitive to the length of the header, which was potentially changing when new copyright years were added to the copyright header. Now that we simply maintain and update a range, the length of the copyright header should not change as a consequence of the update performed by this script, so special handling of those files is no longer necessary. gdb/ChangeLog: * copyright.py (BY_HAND): Remove gdb/testsuite/gdb.base/step-line.inp and gdb/testsuite/gdb.base/step-line.c. commit 0f0c98a8a1ca2fa2e73170849b1db4876c3ea954 Author: Joel Brobecker Date: Mon Jan 1 08:30:28 2018 +0400 gdb/copyright.py: Do not forget to remind about MULTIPLE_COPYRIGHT_HEADERS There is a small logical error in the part of the script that dumps the list of files in BY_HAND + MULTIPLE_COPYRIGHT_HEADERS but only checkis the contents of BY_HAND. The issue becomes apparent as soon as BY_HAND is empty. Prevent this from happening by treating the two lists separately, as this allows us to provide a more informative message in the case of MULTIPLE_COPYRIGHT_HEADERS. gdb/ChangeLog: * copyright.py (main): Dump the contents of MULTIPLE_COPYRIGHT_HEADERS (separately) from BY_HAND, even if BY_HAND is empty. commit 82e1e79a420734bcb1fa255a1e7b3250e6acee65 Author: Joel Brobecker Date: Mon Jan 1 08:12:21 2018 +0400 Update copyright year in version message of GDB, GDBserver and GDBreplay gdb/ChangeLog: * top.c (print_gdb_version): Update Copyright year in version message. gdb/gdbserver/ChangeLog: * gdbreplay.c (gdbreplay_version): Update copyright year in version message. * server.c (gdbserver_version): Likewise. commit 053f54e57f64ca88596999f37bf3bd329b497d20 Author: Joel Brobecker Date: Mon Jan 1 08:07:25 2018 +0400 Yearly rotation of the gdb/ChangeLog file gdb/ChangeLog * config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2017. commit 87e4655d674c00ccefaf3682b5943505e1c90b92 Author: GDB Administrator Date: Tue Jan 2 00:00:32 2018 +0000 Automatic date update in version.in commit c76ff6936bd0c7f8a331e57939b1b12d84466b9b Author: GDB Administrator Date: Mon Jan 1 00:00:38 2018 +0000 Automatic date update in version.in commit 47fea877452b84b94ac6ffb26f194f12845526fa Author: Ruslan Kabatsayev Date: Sat Dec 30 22:14:41 2017 +0300 Avoid indexing std::vector past the end The code here wants to find address of an element, and often this element is one past the end of std::vector. Dereferencing that element leads to undefined behavior, so it's better to simply use pointer arithmetic instead of taking address of invalid dereference. gdb/ChangeLog: * psymtab.c (recursively_search_psymtabs): Use pointer arithmetic instead of dereferencing std::vector past the end. commit cfa27c399ec9236a100ef794505d35f60da41a6d Author: Simon Marchi Date: Sat Dec 30 23:33:26 2017 -0500 Only ignore -Wenum-compare-switch if it exists My patch dwarf2read: Silence -Wenum-compare-switch warning 132448f8359a268f34f074b0908b5255b568da06 made some parts of dwarf2read.c ignore warnings about switch using enums of different kinds. What I did not realize was that older Clang versions (prior to 6) did not have that warning, and therefore give this error: /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:24187:7: error: unknown warning group '-Wenum-compare-switch', ignored [-Werror,-Wunknown-pragmas] DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES ^ /home/emaisin/src/binutils-gdb/gdb/common/diagnostics.h:42:3: note: expanded from macro 'DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES' DIAGNOSTIC_IGNORE ("-Wenum-compare-switch") ^ /home/emaisin/src/binutils-gdb/gdb/common/diagnostics.h:27:3: note: expanded from macro 'DIAGNOSTIC_IGNORE' _Pragma (STRINGIFY (GCC diagnostic ignored option)) ^ :10:25: note: expanded from here GCC diagnostic ignored "-Wenum-compare-switch" ^ Clang has a way to test if it knows about a particular warning. This patch uses that feature to only define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES to something if the warning is recognized by the Clang version being used. I tested building dwarf2read.c with clang 4, 5, 6, as well as gcc. gdb/ChangeLog: * common/diagnostics.h (DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): Only define if the compiler knows about -Wenum-compare-switch. commit 132448f8359a268f34f074b0908b5255b568da06 Author: Simon Marchi Date: Sat Dec 30 21:24:29 2017 -0500 dwarf2read: Silence -Wenum-compare-switch warning Compiling with Clang 6 gives: /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:24385:14: error: comparison of two values with different enumeration types in switch statement ('enum dwarf_macro_record_type' and 'dwarf_macinfo_record_type') [-Werror,-Wenum-compare-switch] case DW_MACINFO_vendor_ext: ^~~~~~~~~~~~~~~~~~~~~ /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:24561:7: error: comparison of two values with different enumeration types in switch statement ('enum dwarf_macro_record_type' and 'dwarf_macinfo_record_type') [-Werror,-Wenum-compare-switch] case DW_MACINFO_vendor_ext: ^~~~~~~~~~~~~~~~~~~~~ This code uses the two enum types on purpose, because it handles both .debug_macro and .debug_macinfo sections. Add some pragmas to disable the warning in these specific cases. gdb/ChangeLog: * dwarf2read.c (dwarf_decode_macro_bytes): Ignore -Wenum-compare-switch warning. (dwarf_decode_macros): Likewise. commit e9d9f57e11db6427db347bc5b9b100071355e63f Author: Tom Tromey Date: Wed Nov 22 21:45:53 2017 -0700 C++-ify parser_state This mildly C++-ifies parser_state and stap_parse_info -- just enough to remove some cleanups. This version includes the changes implemented by Simon. Regression tested by the buildbot. gdb/ChangeLog 2017-12-30 Tom Tromey Simon Marchi * stap-probe.h (struct stap_parse_info): Add constructor, destructor. * stap-probe.c (stap_parse_argument): Update. * rust-exp.y (rust_lex_tests): Update. * parser-defs.h (struct parser_state): Add constructor, destructor, release method. : Change type to expression_up. (null_post_parser): Change type. (initialize_expout, reallocate_expout): Remove. * parse.c (parser_state::parser_state): Rename from initialize_expout. (parser_state::release): Rename from reallocate_expout. (write_exp_elt, parse_exp_in_context_1, increase_expout_size): Update. (null_post_parser): Change type of "exp". * dtrace-probe.c (dtrace_probe::build_arg_exprs): Update. * ada-lang.c (resolve, resolve_subexp) (replace_operator_with_call): Change type of "expp". * language.h (struct language_defn) : Change type of "expp". commit a594729cfb10457e0046359d2dde0c28b4185449 Author: GDB Administrator Date: Sun Dec 31 00:00:27 2017 +0000 Automatic date update in version.in commit fc898b42e355fef58e6a029799fdd71b9dda5dc6 Author: Simon Marchi Date: Sat Dec 30 00:10:05 2017 -0500 Make mapped_debug_names and mapped_index final When compiling with Clang 6, I see these warnings: /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:25421:5: error: destructor called on non-final 'mapped_index' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] data->index_table->~mapped_index (); ^ In file included from /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:31: In file included from /home/emaisin/src/binutils-gdb/gdb/defs.h:28: In file included from /home/emaisin/src/binutils-gdb/gdb/common/common-defs.h:92: In file included from /home/emaisin/src/binutils-gdb/gdb/common/gdb_unique_ptr.h:23: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/memory:81: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:76:2: error: delete called on non-final 'mapped_debug_names' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] delete __ptr; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:236:4: note: in instantiation of member function 'std::default_delete::operator()' requested here get_deleter()(__ptr); ^ /home/emaisin/src/binutils-gdb/gdb/dwarf2read.c:2374:21: note: in instantiation of member function 'std::unique_ptr >::~unique_ptr' requested here dwarf2_per_objfile::dwarf2_per_objfile (struct objfile *objfile_, ^ This patch silences these warnings by making the classes final. gdb/ChangeLog: * dwarf2read.c (struct mapped_debug_names): Make final. (struct mapped_index): Make final. commit 0436426c7f7798b8eb4b48be9867495da8ef28f0 Author: Simon Marchi Date: Fri Dec 29 23:32:13 2017 -0500 Ignore warning about using different types of enums in switch When compiling with clang 6, I see a bunch of warnings like this: /home/emaisin/src/binutils-gdb/gdb/amd64-linux-tdep.c:1427:8: error: comparison of two values with different enumeration types in switch statement ('enum amd64_syscall' and 'amd 64_x32_syscall') [-Werror,-Wenum-compare-switch] case amd64_x32_sys_move_pages: ^~~~~~~~~~~~~~~~~~~~~~~~ In this switch, we indeed use enumerators of both types amd64_x32_syscall and amd64_syscall. This is done on purpose, and the enum values are chosen so that they are complementary. I think it's still a useful warning, so I chose to ignore just that particular case. gdb/ChangeLog: * common/diagnostics.h (DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): New macro. * amd64-linux-tdep.c (amd64_canonicalize_syscall): Use it. commit 502a625ab01da27e851333b598c893d6f2c20bd0 Author: Simon Marchi Date: Fri Dec 29 21:56:58 2017 -0500 Remove unnecessary call to get_thread_db_info In thread_db_detach, we call get_thread_db_info to first check if there exists a thread_db_info entry for the pid to detach. If there is, then we call delete_thread_db_info. It's unnecessary to call get_thread_db_info in the first place, since delete_thread_db_info handles the case where no thread_db_info entry exist for the given pid. gdb/ChangeLog: * linux-thread-db.c (thread_db_detach): Remove call to delete_thread_db_info. commit 4b2dfff9e78c6b615a92c727758f08f595aadba2 Author: GDB Administrator Date: Sat Dec 30 00:00:30 2017 +0000 Automatic date update in version.in commit ffd727ca6e52d448137c8cddfbd361c67532e4e1 Author: GDB Administrator Date: Fri Dec 29 00:00:34 2017 +0000 Automatic date update in version.in commit d9be0c189a9a9b77a6bf4501f8891544b8ce9593 Author: Jim Wilson Date: Thu Dec 28 13:21:46 2017 -0800 RISC-V: Add missing privileged spec registers. gas/ * testsuite/gas/riscv/priv-reg.d, testsuite/gas/riscv/priv-reg.s: New. include/ * opcode/riscv-opc.h (DECLARE_CSR): Add missing privileged registers. Sort to match privileged spec documentation order. (DECLARE_CSR_ALIAS): Add ubadaddr, and comments. commit 4ee2b642ddc70393d5b3ab04956fadad02954d4a Author: Simon Marchi Date: Thu Dec 28 12:29:33 2017 -0500 Remove unused HP-UX TARGET_OBJECT_ enums These two enumerators are unused, remove them. gdb/ChangeLog: * target.h (enum target_object) : Remove. commit 0f833180d3e7a4551ffcd00ee9b6d2483ea23a8a Author: GDB Administrator Date: Thu Dec 28 00:00:21 2017 +0000 Automatic date update in version.in commit cef0f8684e818f8b6c71c44dc9cc28a6d0ac3754 Author: Stafford Horne Date: Wed Dec 27 23:36:31 2017 +0900 tdesc: handle arbitrary strings in tdesc_register_in_reggroup_p tdesc_register_in_reggroup_p in now able to handle arbitrary groups. This is useful when groups are created while the target descriptor file is received from the remote. This can be the case of a soft core target processor where registers/groups can change. gdb/ChangeLog: yyyy-mm-dd Franck Jullien Stafford Horne * target-descriptions.c (tdesc_register_in_reggroup_p): Support arbitrary strings. (tdesc_use_registers): Add logic to register new reggroups. (tdesc_reg::group): Update comment to indicate we allow arbitrary strings. * NEWS (Changes since GDB 8.0): Announce that GDB supports arbitrary reggroups. gdb/testsuite/ChangeLog: yyyy-mm-dd Stafford Horne * gdb.xml/extra-regs.xml: Add example foo reggroup. * gdb.xml/tdesc-regs.exp: Add test to check for foo reggroup. gdb/doc/ChangeLog: yyyy-mm-dd Stafford Horne * gdb.texinfo (Target Description Format): Explain that arbitrary strings are now allowed for register groups. commit f7efd549485db1fd84dbd2f2ee36d80c2739f224 Author: Stafford Horne Date: Wed Dec 27 23:36:31 2017 +0900 reggroups: Add reggroup_gdbarch_new, reggroup_find for dynamic reggroups Traditionally reggroups have been created via reggroup_new() during initialization code and never freed. Now, if we want to initialize reggroups dynamically (i.e. in target description) we should be able to free them. Create this function reggroup_gdbarch_new() which will allocate the reggroup memory onto the passed gdbarch obstack. Also creating reggroup_find() as a utility to find a gdbarch registered reggroup object by name. gdb/ChangeLog: yyyy-mm-dd Stafford Horne * reggroups.c (reggroup_gdbarch_new): New function. (reggroup_find): New function. * reggroups.h (reggroup_gdbarch_new): New function. (reggroup_find): New function. commit c1166ca9f3543b28e8b0057ecaf2cd3251cd51c5 Author: Stafford Horne Date: Wed Dec 27 23:36:30 2017 +0900 reggroups: Convert reggroups from post_init to pre_init Currently the reggroups gdbarch_data cannot be manipulated until after the gdbarch is completely initialized. This is usually done when the object init depends on architecture specific fields. In the case of reggroups it only depends on the obstack being available. Coverting this to pre_init allows using reggroups during gdbarch initialization. This is needed to allow registering arbitrary reggroups during gdbarch initializations. gdb/ChangeLog: yyyy-mm-dd Stafford Horne * reggroups.c (reggroups_init): Change to depend only on obstack rather than gdbarch. (reggroup_add): Remove logic for forcing premature init. (_initialize_reggroup): Set `reggroups_data` with gdbarch_data_register_pre_init() rather than gdbarch_data_register_post_init(). commit b67d92b06e6155a392a0c2d413f87d050880dbf4 Author: Stafford Horne Date: Wed Dec 27 23:36:30 2017 +0900 reggroups: Add test and docs for `info reg $reggroup` feature Until now this feature has existed but was not documented. Adding docs and tests. gdb/ChangeLog: yyyy-mm-dd Stafford Horne * infcmd.c (_initialize_infcmd): Add help for info reg $reggroup and info all-registers $reggroup feature. gdb/doc/ChangeLog: yyyy-mm-dd Stafford Horne * gdb.texinfo (Registers): Document info reg $reggroup feature. gdb/testsuite/ChangeLog: yyyy-mm-dd Stafford Horne * gdb.base/reggroups.c: New file. * gdb.base/reggroups.exp: New file. commit 76bce0d1d5c4e434736ce4331bc987c7a1ee702c Author: GDB Administrator Date: Wed Dec 27 00:00:21 2017 +0000 Automatic date update in version.in commit a811763d7467c8c0c819d7f0a93c4406b7c049dd Author: GDB Administrator Date: Tue Dec 26 00:00:28 2017 +0000 Automatic date update in version.in commit dc6af97a85961f06b3b4e14707dad2bcac39921a Author: GDB Administrator Date: Mon Dec 25 00:00:30 2017 +0000 Automatic date update in version.in commit a6c42a6e7404cc469db89a382d2eebd31d794d5b Author: GDB Administrator Date: Sun Dec 24 00:00:39 2017 +0000 Automatic date update in version.in commit 6e8c24fe27098f407000812e61fa8210095a7970 Author: Simon Marchi Date: Sat Dec 23 16:25:06 2017 -0500 Add ATTRIBUTE_PRINTF to printf_field_type_assignment Get rid of: /home/simark/src/binutils-gdb/gdb/target-descriptions.c:2026:25: error: format string is not a string literal [-Werror,-Wformat-nonliteral] vprintf_unfiltered (fmt, args); when building with clang. gdb/ChangeLog: * target-descriptions.c (print_c_tdesc) : Add ATTRIBUTE_PRINTF. commit 5c8833d2fa4bcb6a0ef4249dd095bcf29a240465 Author: GDB Administrator Date: Sat Dec 23 00:00:31 2017 +0000 Automatic date update in version.in commit 845756abe87ee8a272171edf032242ce4ad13865 Author: GDB Administrator Date: Fri Dec 22 00:00:31 2017 +0000 Automatic date update in version.in commit a8d2e5856f87a658d69018fe1ccd56482eebdd59 Author: Simon Marchi Date: Thu Dec 21 18:19:17 2017 -0500 Do not emit "field_type" var if not needed on "maint print c-tdesc" While fiddling a bit with -Wunused-variable, Sergio noticed that "maint print c-tdesc" was always generating code for the "tdesc_type *field_type" variable, even when it wasn't used. This is caught by GCC when using -Wunused-variable, of course. This patch changes the print_c_tdesc class to only output the field declaration when we actually need it. It shouldn't be necessary to do the same with the other variable declarations (type_with_fields and element_type), because they are always if they are declared. The C files in features/ are regenerated, some declarations of field_type are removed, as expected, while some others move to where they are used for the first time. gdb/ChangeLog: * target-descriptions.c (print_c_tdesc) : Don't output field_type declaration, use printf_field_type_assignment instead. : New method. * features/aarch64-core.c, features/aarch64-fpu.c features/arc-arcompact.c, features/arc-v2.c, features/arm/arm-with-iwmmxt.c, features/i386/32bit-core.c, features/i386/32bit-mpx.c, features/i386/32bit-sse.c, features/i386/64bit-avx512.c, features/i386/64bit-core.c, features/i386/64bit-mpx.c, features/i386/64bit-sse.c, features/i386/x32-core.c, features/or1k.c, features/rs6000/powerpc-7400.c, features/rs6000/powerpc-altivec32.c, features/rs6000/powerpc-altivec32l.c, features/rs6000/powerpc-altivec64.c, features/rs6000/powerpc-altivec64l.c, features/rs6000/powerpc-cell32l.c, features/rs6000/powerpc-cell64l.c, features/rs6000/powerpc-isa205-altivec32l.c, features/rs6000/powerpc-isa205-altivec64l.c, features/rs6000/powerpc-isa205-vsx32l.c, features/rs6000/powerpc-isa205-vsx64l.c, features/rs6000/powerpc-vsx32.c, features/rs6000/powerpc-vsx32l.c, features/rs6000/powerpc-vsx64.c, features/rs6000/powerpc-vsx64l.c, features/s390-gs-linux64.c, features/s390-tevx-linux64.c, features/s390-vx-linux64.c, features/s390x-gs-linux64.c, features/s390x-tevx-linux64.c, features/s390x-vx-linux64.c: Re-generate. commit 27e9ff87a627614fda7ddd89ddef745de5e988bb Author: Uros Bizjak Date: Wed Dec 20 20:42:05 2017 -0500 Remove write-only assignment in rs6000-tdep.c The result of this memory read is never used, so it can be removed. gdb/ChangeLog: * rs6000-tdep.c (ppc_deal_with_atomic_sequence): Remove write-only assignment to "insn" variable. commit 6eab0eaa1b71025cc1747396fdba127d25c209c0 Author: GDB Administrator Date: Thu Dec 21 00:00:39 2017 +0000 Automatic date update in version.in commit 21a186f28061ea51e422ae47d062793ceac2180f Author: Jim Wilson Date: Wed Dec 20 13:37:44 2017 -0800 RISC-V: Add compressed instruction hints, and a few misc cleanups. gas/ * config/tc-riscv.c (risc_ip) : Add comment. * testsuite/gas/riscv/c-nonzero-imm.d, * testsuite/gas/riscv/c-nonzero-imm.l, * testsuite/gas/riscv/c-nonzero-imm.s, * testsuite/gas/riscv/c-nonzero-reg.d, * testsuite/gas/riscv/c-nonzero-reg.l, * testsuite/gas/riscv/c-nonzero-reg.s, * testsuite/gas/riscv/c-zero-imm-64.d, * testsuite/gas/riscv/c-zero-imm-64.s, * testsuite/gas/riscv/c-zero-imm.d, testsuite/gas/riscv/c-zero-imm.s, * testsuite/gas/riscv/c-zero-reg.d, * testsuite/gas/riscv/c-zero-reg.s: New. opcodes/ * riscv-opc.c (match_c_add_with_hint, match_c_lui_with_hint): New. (riscv_opcodes)
  • : Delete "d,0" line. Change Cj to Co. : Change Cj to Co. : Add explanatory comment for 4-operand add instruction. : Add support for immediate operand. : Use match_c_add_with_hint instead of match_c_add. : Use match_c_lui_with_hint instead of match_c_lui. : Use match_opcode instead of match_rd_nonzero. commit 396d3980f518cfc9a936e3fb8138b0492399525a Author: Ulrich Weigand Date: Wed Dec 20 13:59:14 2017 +0100 [Cell/B.E.] Fix regression due to gdbarch_significant_addr_bit On Cell/B.E. multi-architecture debugging we use a "merged" address space that encodes both the main PowerPC address space and the local store address spaces of all active SPUs. This will always occupy 64 bits. However, gdbarch_addr_bit is set to 32 on SPU, and may be set to 32 as well on PowerPC. Since the new gdbarch_significant_addr_bit defaults to the value of gdbarch_addr_bit, this means addresses may be improperly truncated. Work around this problem by explicitly setting gdbarch_significant_addr_bit to 64 both for the SPU target and also for PowerPC target that support Cell/B.E. execution. gdb/ChangeLog: 2017-12-20 Ulrich Weigand * spu-tdep.c (spu_gdbarch_init): Set set_gdbarch_significant_addr_bit to 64 bits. (ppc_linux_init_abi): Likewise, if Cell/B.E. is supported. commit 175654b9cdd3113a01174b019ac286092398246b Author: Simon Marchi Date: Tue Dec 19 22:09:40 2017 -0500 Fix ChangeLog formatting Doing some unrelated grepping found that there were some missing spaces, fix it. commit 0a16b291e0c181223a97b68a5252f99fa38193ca Author: GDB Administrator Date: Wed Dec 20 00:00:21 2017 +0000 Automatic date update in version.in commit 00c2093f698e8f40c04340cb1832d09e11ece237 Author: Tamar Christina Date: Tue Dec 19 12:05:20 2017 +0000 Correct disassembly of dot product instructions. Dot products deviate from the normal disassembly rules for lane indexed instruction. Their canonical representation is in the form of: v0.2s, v0.8b, v0.4b[0] instead of v0.2s, v0.8b, v0.b[0] to try to denote that these instructions select 4x 1 byte elements instead of a single 1 byte element. Previously we were disassembling them following the normal rules, this patch corrects the disassembly. gas/ PR gas/22559 * config/tc-aarch64.c (vectype_to_qualifier): Support AARCH64_OPND_QLF_S_4B. * gas/testsuite/gas/aarch64/dotproduct.d: Update disassembly. include/ PR gas/22559 * aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_S_4B. opcodes/ PR gas/22559 * aarch64-asm.c (aarch64_ins_reglane): Change AARCH64_OPND_QLF_S_B to AARCH64_OPND_QLF_S_4B * aarch64-dis.c (aarch64_ext_reglane): Change AARCH64_OPND_QLF_S_B to AARCH64_OPND_QLF_S_4B * aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant. * aarch64-tbl.h (QL_V2DOT): Change S_B to S_4B. commit a3b3345ae62503982698171bcfce0afe23bd8a31 Author: Tamar Christina Date: Tue Dec 19 12:04:13 2017 +0000 Add support for V_4B so we can properly reject it. Previously parse_vector_type_for_operand was changed to allow the use of 4b register size for indexed lane instructions. However this had the unintended side effect of also allowing 4b for normal vector registers. Because this support was only partial the rest of the tool silently treated 4b as 8b and continued. This patch adds full support for 4b so it can be properly distinguished from 8b and the correct errors are generated. With this patch you still can't encode any instruction which actually requires v.4b but such instructions don't exist so to prevent needing a workaround in get_vreg_qualifier_from_value this was just omitted. gas/ PR gas/22529 * config/tc-aarch64.c (vectype_to_qualifier): Support AARCH64_OPND_QLF_V_4B. * gas/testsuite/gas/aarch64/pr22529.s: New. * gas/testsuite/gas/aarch64/pr22529.d: New. * gas/testsuite/gas/aarch64/pr22529.l: New. include/ PR gas/22529 * opcode/aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_V_4B. opcodes/ PR gas/22529 * aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant. commit bef7475fbda88374ca488b0acbbfe1d3d4ab3e5f Author: Nick Clifton Date: Tue Dec 19 09:48:40 2017 +0000 Stop readelf from complaining about relocation sections with an sh_info field of 0 in dynamic executables. PR 22587 * readelf.c (process_section_headers): Do not complain about an sh_info field of 0 in relocation sections of ET_EXEC or ET_DYN type executables. commit be62dcaa1771b5f2a47f0cfd78f89828f087efff Author: GDB Administrator Date: Tue Dec 19 00:00:18 2017 +0000 Automatic date update in version.in commit 63f452a8bfd9c89b56dcc087cea84151e7a9ec24 Author: Alan Modra Date: Mon Dec 18 22:27:08 2017 +1030 PR22626, invalid dynindx used for dynamic relocs against section syms _bfd_elf_link_renumber_dynsyms is called twice by the linker. The first call in bfd_elf_size_dynamic_sections is just to answer the question as to whether there are there any dynamic symbols. The second call in bfd_elf_size_dynsym_hash_dynstr sets the st_shndx value that dynamic symbols will have. strip_excluded_output_sections is called between these two calls. So sections seen on the first _bfd_elf_link_renumber_dynsyms pass might differ from those seen on the second pass. Unfortunately, that can result in a stripped section's dynamic symbol being assigned a dynindx on the first pass but not corrected to the final value (of zero, ie. not dynamic) on the second pass. PowerPC, x86, mips, and most other targets that emit dynamic section symbols, just test that section symbol dynindx is non-zero before using a given section symbol in dynamic relocations. This patch prevents _bfd_elf_link_renumber_dynsyms from setting any section symbol dynindx on the first pass. PR 22626 * elflink.c (_bfd_elf_link_renumber_dynsyms): Don't set section dynindx when section_sym_count is NULL. (bfd_elf_size_dynamic_sections): Pass NULL section_sym_count to preliminary _bfd_elf_link_renumber_dynsyms call. commit f795c49463234dc347ddd9a1b07ee5b506295b96 Author: Alan Modra Date: Fri Dec 15 17:08:56 2017 +1030 Test binutils_assemble return value This is a followup to "binutils nm testsuite tidy". Since the perror in binutils_assemble has been removed, we need to take more care in failure paths. The patch also fixed a number of .exp files that have multiple tests, where an assembly failure returns from the .exp file. In most cases it is nicer to attempt all tests. * testsuite/binutils-all/ar.exp (unique_symbol): Don't run AR if assembly fails. * testsuite/binutils-all/arc/objdump.exp (check_assembly): If objfile is empty, fail test. * testsuite/binutils-all/arm/objdump.exp: Don't return if assembly fails for a test, continue on to other tests. * testsuite/binutils-all/bfin/objdump.exp: Likewise. * testsuite/binutils-all/hppa/objdump.exp: Likewise. * testsuite/binutils-all/m68k/objdump.exp: Likewise. * testsuite/binutils-all/vax/objdump.exp: Likewise. * testsuite/binutils-all/size.exp: Likewise. * testsuite/binutils-all/nm.exp: Likewise. Move PR12753 test. * testsuite/binutils-all/objcopy.exp: Don't perror on assembly fail. * testsuite/binutils-all/objdump.exp: Report assembly fails. commit c54207d32681bb205c28facba73b6173ef15eabf Author: Nick Clifton Date: Mon Dec 18 17:57:18 2017 +0000 Decode expression lists used with DW_AT_byte_size and other DWARF attributes. PR 22532 * dwarf.c (read_and_display_attr_value): Add attributes that might use the DW_FORM_exprloc form, and if so, display the decoded location expression list. commit 4f588891ac7d4653e1bd861ca38c2a4e6d5e907c Author: Nick Clifton Date: Mon Dec 18 09:37:57 2017 +0000 Resolve PR 22493 - the encoding to be used when pushing the stack pointer onto the stack. PR 22493 * config/tc-arm.c (encode_ldmstm): Do not use A2 encoding of the PUSH insn when pushing the stack pointer. commit 10c17abdd052c5f8f9c2bcdf8b01dffe5d06baf0 Author: Jan Beulich Date: Mon Dec 18 09:37:15 2017 +0100 x86: fold certain AVX and AVX2 templates Just like for instructions in GPRs, there's no need to have separate templates for otherwise identical insns acting on XMM or YMM registers (or memory of the same size). commit 1b54b8d7e4fc8055f9220a5287e8a94d8a65a88d Author: Jan Beulich Date: Mon Dec 18 09:36:14 2017 +0100 x86: fold RegXMM/RegYMM/RegZMM into RegSIMD ... qualified by their respective sizes, allowing to drop FirstXmm0 at the same time. commit ca0d63fe0703ed36af1a7bda6097958805895b3a Author: Jan Beulich Date: Mon Dec 18 09:35:01 2017 +0100 x86: drop FloatReg and FloatAcc Express them as Reg|Tbyte and Acc|Tbyte respectively. commit dc821c5f9ae5208ad1ec438718f75e224f856deb Author: Jan Beulich Date: Mon Dec 18 09:34:00 2017 +0100 x86: replace Reg8, Reg16, Reg32, and Reg64 Use a combination of a single new Reg bit and Byte, Word, Dword, or Qword instead. Besides shrinking the number of operand type bits this has the benefit of making register handling more similar to accumulator handling (a generic flag is being accompanied by a "size qualifier"). It requires, however, to split a few insn templates, as it is no longer correct to have combinations like Reg32|Reg64|Byte. This slight growth in size will hopefully be outweighed by this change paving the road for folding a presumably much larger number of templates later on. commit eccab96d54a9455557d3c4d5bff431f6e526d0b7 Author: Joel Brobecker Date: Sun Dec 17 22:39:33 2017 -0500 improved error message when getting an exception printing a variable Consider the following Ada code defining a global variable whose type is an array of static bounds (1 .. 2), but where its elements are a variant record whose size is not statically known: type Ints is array (Natural range <>) of Integer; type Bounded_Ints (Max_Size : Natural) is record Length : Natural := 0; Objs : Ints (1 .. Max_Size); end record; type Ints_Doubled is array (1 .. 2) of Bounded_Ints (Idem (0)); Global : Ints_Doubled; When compiling this program at -O2 using a GCC-6.4-based compiler on x86_64-linux, trying to print the value of that global variable yields: (gdb) p global $1 = Let's look at the debugging info, which starts with the global variable itself... .uleb128 0x19 # (DIE (0x25e) DW_TAG_variable) .long .LASF32 # DW_AT_name: "fd__global" .long 0x273 # DW_AT_type ... its type is a reference to a typedef ... .uleb128 0x14 # (DIE (0x273) DW_TAG_reference_type) .byte 0x8 # DW_AT_byte_size .long 0x202 # DW_AT_type [...] .uleb128 0x15 # (DIE (0x202) DW_TAG_typedef) .long .LASF19 # DW_AT_name: "fd__ints_doubled" .long 0x20d # DW_AT_type ... of an array (1..2) ... .uleb128 0x2 # (DIE (0x20d) DW_TAG_array_type) .long .LASF19 # DW_AT_name: "fd__ints_doubled" .long 0x15b # DW_AT_type .long 0x221 # DW_AT_sibling .uleb128 0x16 # (DIE (0x21a) DW_TAG_subrange_type) .long 0x40 # DW_AT_type .sleb128 2 # DW_AT_upper_bound .byte 0 # end of children of DIE 0x20d ... of a struct whose name is fd__Tints_doubledC: .uleb128 0x10 # (DIE (0x15b) DW_TAG_structure_type) .long .LASF11 # DW_AT_name: "fd__Tints_doubledC" .long 0x1e4 # DW_AT_GNAT_descriptive_type # DW_AT_artificial .long 0x1e4 # DW_AT_sibling .uleb128 0x7 # (DIE (0x16a) DW_TAG_member) .long .LASF4 # DW_AT_name: "max_size" [snip] The error occurs while Ada evaluator is trying to "fix" the element type inside the array, so as to determine its actual size. For that, it searches for a parallel "XVZ" variable, which, when found, contains the object's actual size. Unfortunately in our case, the variable exists but has been optimized out, as seen by the presence of a variable DIE in the debugging info, but with no address attribute: .uleb128 0x18 # (DIE (0x24e) DW_TAG_variable) .long .LASF31 # DW_AT_name: "fd__Tints_doubledC___XVZ" .long 0x257 # DW_AT_type # DW_AT_artificial Discussing this with some members of AdaCore's compiler team, it is expected that the optimizer can get rid of this variable, and we don't want to pessimize the code just to improve debuggability, since -O2 is about performance. So, the idea of this patch is not to make it work, but provide a bit more information to help users understand what kind of error is preventing GDB from being able to print the variable's value. The first hurdle we had to clear was the fact that ada_val_print traps all exceptions (including QUIT ones!), and does so completly silently. So, the fix was to add a trace of the exception being generated. While doing so, we fix an old XXX/FIXME by only catching errors, letting QUIT exceptions go through. Once this is done, we now get an error message, which gives a first clue as to what was happening: (gdb) p fd.global $1 = However, it would be more useful to know which value it was that was optimized out. For that purpose, we enhanced ada-lang.c::ada_to_fixed_type_1 so as to re-throw the error with a message which indicates which variable we failed to read. With those changes, the new output is now: (gdb) p fd.global $1 = gdb/ChangeLog: * ada-lang.c (ada_to_fixed_type_1): Rethrow errors with a more detailed exception message when getting an exception while trying to read the value of an XVZ variable. * ada-valprint.c (ada_val_print): Only catch RETURN_MASK_ERROR exceptions. Print an error message when an exception is caught. gdb/testsuite/ChangeLog: * gdb.dwarf2/ada-valprint-error.c: New file. * gdb.dwarf2/ada-valprint-error.exp: New file. Tested on x86_64-linux commit 0e2da9f01334a01d1a6e224ecd592d6fbbb22515 Author: Joel Brobecker Date: Sun Dec 17 22:09:27 2017 -0500 (Ada) crash assigning to record component which is an array Consider the following code, which declares a variabled called "input" of type "parameter", which is a record with one component called "u2", where the type of that component is a simple 3-element array of floating point values: type Float_Array_3 is array (1 .. 3) of Float; type parameters is record u2 : Float_Array_3; end record; input : parameters; Trying to assign a value to input.u2 causes GDB to crash: (gdb) p input.u2 := (0.25,0.5,0.75) [1] 20228 segmentation fault (core dumped) [...]/gdb The crash occurs because input.u2 is described in the debugging info as a typedef of an array. Indeed, input's type is: <1>: Abbrev Number: 7 (DW_TAG_structure_type) DW_AT_name : (indirect string, offset: 0x1045): target_wrapper__parameters [...] <2>: Abbrev Number: 8 (DW_TAG_member) DW_AT_name : u2 [...] DW_AT_type : <0xaca> and, looking at DIE 0xaca to get input.u2's type, we see: <1>: Abbrev Number: 4 (DW_TAG_typedef) DW_AT_name : (indirect string, offset: 0x1060): target_wrapper__float_array_3 [...] DW_AT_type : <0xad5> We can also confirm, following the DW_AT_type attribute (0xad5), that it's a typedef of our array: <1>: Abbrev Number: 5 (DW_TAG_array_type) DW_AT_name : (indirect string, offset: 0x1060): target_wrapper__float_array_3 [...] In fact, this scenario uncovered 2 areas where typedef handling is missing, thus causing a crash. The first happens inside assign_aggregate: if (ada_is_direct_array_type (lhs_type)) { lhs = ada_coerce_to_simple_array (lhs); lhs_type = value_type (lhs); low_index = TYPE_ARRAY_LOWER_BOUND_VALUE (lhs_type); high_index = TYPE_ARRAY_UPPER_BOUND_VALUE (lhs_type); } Here, lhs_type is a TYPE_CODE_TYPEDEF. ada_is_direct_array_type knows how to handle it, but TYPE_ARRAY_LOWER_BOUND_VALUE assumes that the given type is a TYPE_CODE_ARRAY. As such, it ends up accessing some fields in lhs_type which it shouldn't, and kaboom. We fixed this issue by making sure that the TYPE_CODE_TYPEDEF layer gets stripped. Once this is done, we hit a different kind of error, also leading to a SEGV, this time in assign_component. The code looks like this: if (TYPE_CODE (value_type (lhs)) == TYPE_CODE_ARRAY) [...] else [...] Because once again lhs is a TYPE_CODE_TYPEDEF, the check fail, and we end up assuming that lhs is a struct, executing the "else" block, which is: else { elt = ada_index_struct_field (index, lhs, 0, value_type (lhs)); elt = ada_to_fixed_value (elt); } Since lhs is not a struct, ada_index_struct_field returns NULL, which ada_to_fixed_value does not handle well, hence another crash. This patch fixes this other issue the same way, by stripping TYPE_CODE_TYPEDEF layers. gdb/ChangeLog: * ada-lang.c (assign_component): Strip any TYPE_CODE_TYPEDEF layer from lhs' type. (assign_aggregate): Likewise. gdb/testsuite: * gdb.ada/assign_arr: New testcase. Tested on x86_64-linux. commit cb923fcc23e07fe3dfb3837f47249aba79cdee6f Author: Xavier Roirand Date: Sun Dec 17 21:59:07 2017 -0500 Ada: fix bad handling in ada_convert_actual Using this small example: procedure Foo is type Integer_Access is access all Integer; procedure P (A : Integer_Access) is begin null; end P; begin P (null); end Foo; and doing this debug session: (gdb) b p Breakpoint 1 at 0x402d67: file foo.adb, line 7. (gdb) print p(null) Breakpoint 1, foo.p (a=0x641010) at foo.adb:10 ... ^^^^^^^^^^ shows that something goes wrong between the initial null value and the received parameter value in the 'f' function. The value for the parameter 'a' we get is the address of the value we would expect instead of the value itself. This can be checked by doing: (gdb) p *a $1 = 0 Before this fix, in ada_convert_value, this function was looking to the actual value (the null value here) to determine if the formal (parameter 'a' in the procedure 'P' in this exemple) requires a pointer or not which is a wrong assumption and leads to push the address of the value to the inferior instead of the value itself. This is fixed by this patch. gdb/ChangeLog: * ada-lang.c (ada_convert_actual): Change the way actual value are passed to the inferior when the inferior expects a pointer type. gdb/testsuite/ChangeLog: * gdb.ada/funcall_ptr: New testcase. Tested on x86_64-linux. commit 7d47b066d0e5ea1df82aa24fde2dd4e38814627c Author: GDB Administrator Date: Mon Dec 18 00:00:20 2017 +0000 Automatic date update in version.in commit 390c91cfcffe1a0d75b6100d1542cda2544993b3 Author: H.J. Lu Date: Sun Dec 17 09:40:54 2017 -0800 x86: Check pseudo prefix without instruction Pseudo prefixes must be used on an instruction. Issue an error when pseudo prefix is used without instruction. PR gas/22623 * gas/config/tc-i386.c (output_insn): Check pseudo prefix without instruction. * testsuite/gas/i386/i386.exp: Run inval-pseudo. * testsuite/gas/i386/inval-pseudo.l: New file. * testsuite/gas/i386/inval-pseudo.s: Likewise. commit fd7055f4a7f8eef9dc926fae698ad297279726bb Author: GDB Administrator Date: Sun Dec 17 00:00:31 2017 +0000 Automatic date update in version.in commit 38af1824019684e819ffb880bdf7fb03a2c2000a Author: Stafford Horne Date: Sun Dec 17 07:20:51 2017 +0900 gdb: Fix function parameter alignments in or1k-tdep.c. As suggested by Joel Brobecker and as per fsf coding standards. Also fix a few more issues with directly printing pointers. gdb/ChangeLog: * gdb/or1k-tdep.c (show_or1k_debug): Fix function parameter alignment. (or1k_analyse_inst): Likewise. (or1k_single_step_through_delay): Likewise. (or1k_frame_cache): Fix parameter alignment and use paddress() instead of %x. commit b282f0f2b56903c7b58f1eb94b88e468851928e8 Author: Stafford Horne Date: Sun Dec 17 07:20:50 2017 +0900 gdb: Add news entries for new or1k target. gdb/ChangeLog: yyyy-mm-dd Stafford Horne * NEWS (Changes since GDB 8.0): Mention new or1k target and new commands to set/show or1k debug. commit 46afe196ec282505dcd2727725bfb5ef87ea4b21 Author: Sergio Durigan Junior Date: Fri Dec 15 22:33:07 2017 -0500 Fix ARI warning on gdb/typeprint.c:whatis_exp I forgot to indent the "if" clause properly and put the "&&" at the beginning of the line, so ARI complained. This commit fixed it. gdb/ChangeLog: 2017-12-15 Sergio Durigan Junior * typeprint.c (whatis_exp): Fix ARI warning and reindent "if" condition. commit 09da3ecf04d75084ea7d9c43e3cc0b18b2443ea3 Author: GDB Administrator Date: Sat Dec 16 00:00:33 2017 +0000 Automatic date update in version.in commit 7c1618381fdaa0697a211721ac31844f884797ac Author: Sergio Durigan Junior Date: Mon Nov 20 16:34:59 2017 -0500 Implement pahole-like 'ptype /o' option This commit implements the pahole-like '/o' option for 'ptype', which prints the offsets and sizes of struct fields, reporting whenever there is a hole found. The output is heavily based on pahole(1), with a few modifications here and there to adjust it to our reality. Here's an example: /* offset | size */ type = struct wer : public tuv { public: /* 32 | 24 */ struct tyu { /* 32:31 | 4 */ int a1 : 1; /* 32:28 | 4 */ int a2 : 3; /* 32: 5 | 4 */ int a3 : 23; /* 35: 3 | 1 */ char a4 : 2; /* XXX 3-bit hole */ /* XXX 4-byte hole */ /* 40 | 8 */ int64_t a5; /* 48:27 | 4 */ int a6 : 5; /* 48:56 | 8 */ int64_t a7 : 3; /* total size (bytes): 24 */ } a1; /* total size (bytes): 56 */ } A big part of this patch handles the formatting logic of 'ptype', which is a bit messy. The code to handle bitfield offsets, however, took some time to craft. My thanks to Pedro Alves for figuring things out and pointing me to the right direction, as well as coming up with a way to inspect the layout of structs with bitfields (see testcase for comments). After many discussions both on IRC and at the mailing list, I tried to implement printing vtables and inherited classes. Unfortunately the code grew too complex and there were still a few corner cases failing so I had to drop the attempt. This should be implemented in a future patch. This patch is the start of a long-term work I'll do to flush the local patches we carry for Fedora GDB. In this specific case, I'm aiming at upstreaming the feature implemented by the 'pahole.py' script that is shipped with Fedora GDB: This has been regression-tested on the BuildBot. There's a new testcase for it, along with an update to the documentation. I also thought it was worth mentioning this feature in the NEWS file. gdb/ChangeLog: 2017-12-15 Sergio Durigan Junior Pedro Alves PR cli/16224 * NEWS (Changes since GDB 8.0): Mention new '/o' flag. * c-typeprint.c (OFFSET_SPC_LEN): New define. (c_type_print_varspec_prefix): New argument 'struct print_offset_data *'. (c_type_print_base_1): New function and prototype. (c_print_type_1): New function, with code from 'c_print_type'. (c_print_type): Use 'c_print_type_1'. (c_type_print_varspec_prefix): New argument 'struct print_offset_data *'. Use it. Call 'c_type_print_base_1' instead of 'c_print_type_base'. (print_spaces_filtered_with_print_options): New function. (output_access_specifier): Take new argument FLAGS. Modify function to call 'print_spaces_filtered_with_print_options'. (c_print_type_vtable_offset_marker): New function. (c_print_type_union_field_offset): New function. (c_print_type_struct_field_offset): New function. (c_print_type_no_offsets): New function. (c_type_print_base_struct_union): New argument 'struct print_offset_data *'. Print offsets and sizes for struct/union/class fields. * typeprint.c (const struct type_print_options type_print_raw_options): Initialize 'print_offsets'. (static struct type_print_options default_ptype_flags): Likewise. (struct print_offset_data print_offset_default_data): New variable. (whatis_exp): Handle '/o' option. (_initialize_typeprint): Add '/o' flag to ptype's help. * typeprint.h (struct print_offset_data): New struct. (struct type_print_options) : New field. gdb/testsuite/ChangeLog: 2017-12-15 Sergio Durigan Junior PR cli/16224 * gdb.base/ptype-offsets.cc: New file. * gdb.base/ptype-offsets.exp: New file. gdb/doc/ChangeLog: 2017-12-15 Sergio Durigan Junior PR cli/16224 * gdb.texinfo (ptype): Add documentation for new flag '/o'. commit a27ed7d613ec91c3a79965d6bdab1fa96d559c85 Author: Sergio Durigan Junior Date: Mon Dec 11 11:57:19 2017 -0500 Reorganize code to handle TYPE_CODE_{STRUCT,UNION} on 'c_type_print_base' While doing the 'ptype /o' work, I noticed that 'c_type_print_base' was very long, with a big amount of code just to handle the case of TYPE_CODE_{STRUCT,UNION}. This made working with the function a bit difficult, specially because of the level of indentation. This commit moves this part of the code to their own functions. Now we have a 'c_type_print_base_struct_union' with most of the code, and also 'need_access_label_p', which is a subset of the code that was also a good candidate for having its own function. gdb/ChangeLog: 2017-12-15 Sergio Durigan Junior * c-typeprint.c (need_access_label_p): New function. (c_type_print_base_struct_union): New function. (c_type_print_base): Move code to handle TYPE_CODE_{STRUCT,UNION} to the functions mentioned above. commit fc076a47fd716ca75447d432251abc67a19ef908 Author: Nick Clifton Date: Fri Dec 15 18:55:39 2017 +0000 Update documentation regarding the bfd returned by bfd_openr_next_archived_file PR 22571 * archive.c (bfd_openr_next_archived_file): Extend the documentation to note that it is necessary to call bfd_check_format on the rrturned bfd before using it. commit 68f81d60196eb201b209873cf53258f13b0046b9 Author: Richard Henderson Date: Fri Dec 15 18:19:42 2017 +0000 Fix PR19061, gdb hangs/spins-on-cpu when debugging any program on Alpha This fixes PR19061, where gdb hangs/spins-on-cpu when debugging any program on Alpha. (This patch is Uros' forward port of the patch from comment #5 of the PR [1].) Patch was tested on alphaev68-linux-gnu, also tested with gcc's testsuite, where it fixed all hangs in guality.exp and simulate-thread.exp testcases. [1] https://sourceware.org/bugzilla/show_bug.cgi?id=19061#c5 gdb/ChangeLog: 2017-12-15 Richard Henderson Uros Bizjak PR gdb/19061 * alpha-tdep.c (alpha_software_single_step): Call alpha_deal_with_atomic_sequence here. (set_gdbarch_software_single_step): Set to alpha_software_single_step. * nat/linux-ptrace.h [__alpha__]: Define GDB_ARCH_IS_TRAP_BRKPT and GDB_ARCH_IS_TRAP_HWBKPT. commit 1af17fd9cc3a453e55ce5b8f556c51859bf40363 Author: Yao Qi Date: Fri Dec 15 10:45:27 2017 +0000 Skip 'maintenance check xml-descriptions' if XML is disabled I see the following test failure when gdb is configured without XML support, maintenance check xml-descriptions binutils-gdb/gdb/testsuite/../features warning: Can not parse XML target description; XML support was disabled at compile time^M Tested 29 XML files, 29 failed (gdb) FAIL: gdb.gdb/unittest.exp: maintenance check xml-descriptions ${srcdir}/../features gdb/testsuite: 2017-12-15 Yao Qi * gdb.gdb/unittest.exp: Skip 'maintenance check xml-descriptions' if XML is disabled. commit 97d4fac10fb9dac465d1d7e7a26c6b9cfb0b1326 Author: Yao Qi Date: Fri Dec 15 10:45:27 2017 +0000 Skip parse_memory_map_tests if XML is disabled I find a fail in gdb unit test when gdb is configured without XML support. warning: Can not parse XML memory map; XML support was disabled at compile time^M Self test failed: self-test failed at ../../binutils-gdb/gdb/unittests/memory-map-selftests.c:65 ... Ran 31 unit tests, 1 failed^M (gdb) FAIL: gdb.gdb/unittest.exp: maintenance selftest gdb: 2017-12-15 Yao Qi * unittests/memory-map-selftests.c: Wrap test with HAVE_LIBEXPAT. commit fbc2255575afc0d332b28fd4991235e020cda667 Author: Dimitar Dimitrov Date: Fri Dec 15 06:45:47 2017 +0200 Fix disassembly for PowerPC * disassemble.c (disassemble_init_for_target): Don't put PRU between powerpc and rs6000 cases. commit 141975a1e53798a48917271295962fb1a7e967d0 Author: Jan Beulich Date: Fri Dec 15 09:14:52 2017 +0100 x86: correct operand type checks Again these look to be typos: No template currently allows for any two (or all three) of RegXMM, RegYMM, and RegZMM in a single operand. Quite clearly ! are missing, after the addition of which the checks for the first and (if present) second operands also fully match up. commit 93b71a266695669cb9aa8ddf2717a1ccd53c925d Author: Jan Beulich Date: Fri Dec 15 09:13:54 2017 +0100 x86: drop stray CheckRegSize uses They are relevant only when multiple operands permit registers: operand_type_register_match() returns true if either operand is not a register one. IOW grep -i CheckRegSize i386-opc.tbl | grep -Ev "(Reg[8136]|Acc).*,.*(Reg|Acc)" should produce no output. commit c5d0745b0d3edfea9e82a4b304ea1847790d72e4 Author: Jan Beulich Date: Fri Dec 15 09:12:37 2017 +0100 x86: correct abort check I'm rather certain the missing ! was just a typo, the more with the similar check in mind that's in the same function a few hundred lines down (in the body of "if (vex_reg != (unsigned int) ~0)"). Of course this can't be demonstrated by a test case - internal data structure consistency is being checked here, and neither form of the check triggers with any current template. It is also not really clear to me why operand_type_equal() is being used in the {X,Y,Z}MM register check here, rather than just testing the respective bits: Just like Reg32|Reg64 is legal in an operand template, I don't see why e.g. RegXMM|RegYMM wouldn't be. For example it ought to be possible to combine vaddpd, 3, 0x6658, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM } vaddpd, 3, 0x6658, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM } into a single template (with setting of VEX.L suitably handled elsewhere if that's not already happening anyway). Additionally I don't understand why this uses abort() instead of gas_assert(). Both of these latter considerations then also apply to the aforementioned other check in the same function. commit 2778747c56d0837ec7defb80e756a7e6ca81b8ce Author: Alan Modra Date: Fri Dec 15 14:59:58 2017 +1030 [GOLD] PR22602, handle __tls_get_addr forwarders properly We never need to resolve_forwards() a symbol found by hash table lookup such as target->tls_get_addr_opt() but we do potentially need to do so for random symbols seen on relocs. So these calls were in the wrong order, resulting in missing stubs and an assertion failure. PR 22602 * powerpc.cc (Target_powerpc::Branch_info::mark_pltcall): Resolve forwards before replacing __tls_get_addr. (Target_powerpc::Branch_info::make_stub): Likewise. commit 828d584679845b6a1d01151f7df3592d15fe8405 Author: Xavier Roirand Date: Thu Dec 14 22:38:17 2017 -0500 (Ada) Handle same component names when searching in tagged types Consider the following code: type Top_T is tagged record N : Integer := 1; U : Integer := 974; A : Integer := 48; end record; type Middle_T is new Top.Top_T with record N : Character := 'a'; C : Integer := 3; end record; type Bottom_T is new Middle.Middle_T with record N : Float := 4.0; C : Character := '5'; X : Integer := 6; A : Character := 'J'; end record; Tagged records in Ada provide object-oriented features, and what is interesting in the code above is that a child tagged record introduce additional components (fields) which sometimes have the same name as one of the components in the parent. For instance, Bottom_T introduces a component named "C", while at the same time inheriting from Middle_T which also has a component named "C"; so, in essence, type Bottom_T has two components with the same name! And before people start wondering why the language can possibly be allowing that, this can only happen if the parent type has a private definition. In our case, this was brought to our attention when the parent was a generic paramenter. With that in mind... Let's say we now have a variable declared and initialized as follow: TC : Top_A := new Bottom_T; And then we use this variable to call this function procedure Assign (Obj: in out Top_T; TV : Integer); as follow: Assign (Top_T (B), 12); Now, we're in the debugger, and we're inside that procedure (Top.Assign in our gdb testcase), and we want to print the value of obj.c: Usually, the tagged record or one of the parent type owns the component to print and there's no issue but in this particular case, what does it mean to ask for Obj.C ? Since the actual type for object is type Bottom_T, it could mean two things: type component C from the Middle_T view, but also component C from Bottom_T. So in that "undefined" case, when the component is not found in the non-resolved type (which includes all the components of the parent type), then resolve it and see if we get better luck once expanded. In the case of homonyms in the derived tagged type, we don't guaranty anything, and pick the one that's easiest for us to program. This patch fixes the behavior like described above. gdb/ChangeLog: * ada-lang.c (ada_value_primitive_field): Handle field search in case of homonyms. (find_struct_field): Ditto. (ada_search_struct_field): Ditto. (ada_value_struct_elt): Ditto. (ada_lookup_struct_elt_type): Ditto. gdb/testsuite/ChangeLog: * gdb.ada/same_component_name: New testcase. Tested on x86_64-linux. commit 1e5dd7c95a56fd61e6f2deb145ad99153d5336e5 Author: GDB Administrator Date: Fri Dec 15 00:00:27 2017 +0000 Automatic date update in version.in commit 8e557e52b3fd45a56fb42dbbaad3d6ece3694eb4 Author: Simon Marchi Date: Thu Dec 14 15:46:47 2017 -0500 py-breakpoint: Don't use the 'p' PyArg_ParseTupleAndKeywords format specifier In Python 3, the 'p' format specifier can be passed to PyArg_ParseTupleAndKeywords to test the argument for truth and convert it to a boolean value (the p stands for predicate). However, it is not available in Python 2, causing this error: Traceback (most recent call last): File "test.py", line 1, in b1 = gdb.Breakpoint("foo", qualified=False) TypeError: argument 10 (impossible) This patch changes it to the 'O' specifier, which returns the Python object passed in without transformation, and uses PyObject_IsTrue on it. This is what is done for the other boolean parameters of this function (internal and temporary). This fixes the test gdb.python/py-breakpoint.exp for Python 2. gdb/ChangeLog: * python/py-breakpoint.c (bppy_init): Use 'O' format specifier for "qualified" and use PyObject_IsTrue. commit 863f7a5f4811c24d9a5863ffb541ff3da1511450 Author: Nick Clifton Date: Thu Dec 14 12:48:55 2017 +0000 Update the address of the FSF in the copyright notice of files which were using the old address. top * COPYING.LIBGLOSS: Update address of FSF in copyright notice. bfd * cpu-mt.c: Update address of FSF in copyright notice. * elf32-m32c.c: Likewise. * elf32-mt.c: Likewise. * elf32-rl78.c: Likewise. * elf32-rx.c: Likewise. * elf32-rx.h: Likewise. * elf32-spu.h: Likewise. * hosts/x86-64linux.h: Likewise. etc * add-log.el: Update address of FSF in copyright notice. gas * config/tc-m32c.c: Update address of FSF in copyright notice. * config/tc-m32c.h: Likewise. * config/tc-mt.c: Likewise. * config/tc-mt.h: Likewise. * config/tc-visium.c: Likewise. * config/tc-visium.h: Likewise. * testsuite/gas/rx/explode: Likewise. ld * testsuite/ld-mn10300/mn10300.exp: Update address of FSF in copyright notice. commit 4baeffab22b564735be14a90f658c1aee1ceec58 Author: Alan Modra Date: Thu Dec 14 18:57:02 2017 +1030 binutils nm testsuite tidy We can run the gnu_unique_object symbol test on all ELF targets. Those that don't support the symbol type and fail to assemble can just be resolved as "unsupported". This means binutils_assemble can't report an error on assembly failure, but it probably should never have done that anyway. * testsuite/lib/utils-lib.exp (default_binutils_assemble_flags): Don't perror on assembler diagnostic output. * testsuite/binutils-all/nm.exp: Run unique symbol test on all ELF targets. Resolve as "unsupported" on assembly failure. commit 8af5c486ea6153bb84b9257def4e5faa4bc72421 Author: Jan Kratochvil Date: Thu Dec 14 10:00:17 2017 +0100 DWARF-5 .debug_names DW_IDX_type_unit fix The .debug_names completely misses its support as it did not even produce DW_IDX_type_unit. gdb/ChangeLog 2017-12-14 Jan Kratochvil * dwarf2read.c (dw2_debug_names_iterator::next): Support DW_IDX_type_unit. (debug_names::dwarf5_offset_size, unit_kind): New. (debug_names::insert): Add parameter kind. (debug_names::build): Support DW_IDX_type_unit. (debug_names::recursively_write_psymbols): Update (debug_names::write_psymbols caller. (debug_names::write_one_signatured_type_data) (debug_names::write_one_signatured_type): New. (debug_names::index_key, debug_names::symbol_value) (debug_names::write_psymbols): Add kind. (debug_names::write_one_signatured_type): New. (write_debug_names): Move dwarf5_offset_size to debug_names. Use debug_names::write_one_signatured_type for type units. commit 79e8fcaafa92e7b4a74e510c5487e87c60ff1945 Author: Joel Brobecker Date: Thu Dec 14 00:05:24 2017 -0500 Ada: unable to compare strings (Attempt to compare array with non-array) Consider the following Ada Code: type Str is new String (1 .. 4); My_str : Str := "ABCD"; This simply declares a 4-character string type. Trying to perform equality tests using it currently yield an error: (gdb) p my_str = my_str Attempt to compare array with non-array (gdb) p my_str = "ABCD" Attempt to compare array with non-array The error occurs because my_str is defined as an object whose type is a typdef to a TYPE_CODE_ARRAY, which ada_value_equal is not expecting at all (yet). This patch fixes this oversight. gdb/ChangeLog: * ada-lang.c (ada_value_equal): Add handling of typedef types when comparing array objects. gdb/testsuite/ChangeLog: * gdb.ada/str_binop_equal: New testcase. Tested on x86_64-linux. commit e05fa6f9df82886043e1f1df30e0b9be3fee2d55 Author: Joel Brobecker Date: Wed Dec 13 22:36:42 2017 -0500 (Ada) Add support for task switching when debugging core files The reasons for not supporting task switching when debugging core files appear to now mostly be OBE. In particular, on GNU/Linux, the thread layer is now able to retrieve the same thread info as in the live process. So, this patch is mostly about just removing the guard that limited the use of task switching to live processes. gdb/ChangeLog: * ada-tasks.c (read_atcb): Properly set task_info->ptid when !target_has_execution as well. (task_command): Remove error when !target_has_execution. gdb/testsuite/ChangeLog: * gdb.ada/task_switch_in_core: New testcase. commit b3e7dd3c9d05064d845afafe52a7539948823788 Author: GDB Administrator Date: Thu Dec 14 00:00:20 2017 +0000 Automatic date update in version.in commit 25982ee0222196381863a17dc135fc1d2763b385 Author: Jim Wilson Date: Wed Dec 13 14:59:42 2017 -0800 Add missing RISC-V fsrmi and fsflagsi instructions. PR 22599 gas/ * testsuite/gas/riscv/fsxxi.d, testsuite/gas/riscv/fsxxi.s: New. opcodes/ * riscv-opc.c (riscv_opcodes) : New. commit b89641bab55496e52094282fabe146289c57b6d1 Author: Simon Marchi Date: Wed Dec 13 11:37:09 2017 -0500 python: Add qualified parameter to gdb.Breakpoint This patch adds the possibility to pass a qualified=True|False parameter when creating a breakpoint in Python. It is equivalent to using -qualified in a linespec. The parameter actually accepts any Python value, and converts it to boolean using Python's standard rules for that (https://docs.python.org/3/library/stdtypes.html#truth). Unlike the -source/-line/-function/-label parameters, it is possible to use -qualified with a "normal" (non-explicit) linespec. Therefore, it is possible (unlike these other parameters) to use this new parameter along with the spec parameter. I updated the py-breakpoint.exp test. To be able to test multiple locations using a namespace, I had to switch the test case to compile as C++. If we really wanted to, we could run it as both C and C++, but omit the C++-specific parts when running it as C. gdb/ChangeLog: * location.h (string_to_event_location): Add match_type parameter. * location.c (string_to_event_location): Likewise. * python/py-breakpoint.c (bppy_init): Handle qualified parameter. gdb/doc/ChangeLog: * python.texi (Manipulating breakpoints using Python): Document qualified parameter to gdb.Breakpoint. gdb/testsuite/ChangeLog: * gdb.python/py-breakpoint.c (foo_ns::multiply): New function. * gdb.python/py-breakpoint.exp: Compile the test case as c++, call test_bkpt_qualified. (test_bkpt_qualified): New proc. commit 6892d2e4df57160f7103fef0340ae3f55ac8b2b3 Author: Pedro Alves Date: Wed Dec 13 16:38:50 2017 +0000 Tighten regexp of lib/completion-support.exp:test_gdb_complete_tab_multiple While writing the tests included in the previous commit, I noticed that test_gdb_complete_tab_multiple would not FAIL if GDB happens to show more completions than expected before the expected list. E.g., with something like this, expecting "p foo" to complete to "foo2" and "foo3": test_gdb_complete_tab_multiple "p foo" "" { "foo2" "foo3" } and then if foo actually completes to: (gdb) p foo[TAB] foo1 foo2 foo3 ^^^^ we'd still PASS. (Note the spurious "foo1" above.) This tightens the regexp with a beginning anchor thus making the completions above cause a FAIL. Other similar functions in completion-support.exp already do something like this; I had just missed this one originally. Thankfully, this did not expose any problems in the gdb.linespec/ tests. Phew. gdb/testsuite/ChangeLog: 2017-12-13 Pedro Alves * lib/completion-support.exp (test_gdb_complete_tab_multiple): Tighten regexp by matching with an anchor. commit a22ecf70263eff75ca2c5878fe7e8d0311d6737f Author: Pedro Alves Date: Wed Dec 13 16:38:50 2017 +0000 Fix regression: expression completer and scope operator (PR gdb/22584) I noticed this regression in the expression completer: "(gdb) p std::[TAB]" => "(gdb) p std::std::" obviously we should have not completed to "std::std::". The problem is that in the earlier big completer rework, I missed taking into account the fact that with expressions, the completion word point is not always at the start of the symbol name (it is with linespecs). The fix is to run the common prefix / LCD string (what readline uses to expand the input line) through make_completion_match_str too. New testcase included, exercising both TAB completion and the complete command. gdb/ChangeLog: 2017-12-13 Pedro Alves * completer.c (completion_tracker::maybe_add_completion): New 'text' and 'word' parameters. Use make_completion_match_str. (completion_tracker::add_completion): New 'text' and 'word' parameters. Pass down. (completion_tracker::recompute_lowest_common_denominator): Change parameter type to gdb::unique_xmalloc_ptr rval ref. Adjust. * completer.h (completion_tracker::add_completion): New 'text' and 'word' parameters. (completion_tracker::recompute_lowest_common_denominator): Change parameter type to gdb::unique_xmalloc_ptr rval ref. (completion_tracker::recompute_lowest_common_denominator): Change parameter type to gdb::unique_xmalloc_ptr rval ref. * symtab.c (completion_list_add_name): Pass down 'text' and 'word' as well. gdb/testsuite/ChangeLog: 2017-12-13 Pedro Alves * gdb.cp/cpcompletion.exp: Load completion-support.exp. ("expression with namespace"): New set of tests. * gdb.cp/pr9594.cc (Test_NS::foo, Test_NS::bar) (Nested::Test_NS::qux): New. * lib/completion-support.exp (test_gdb_complete_cmd_multiple): Add defaults to 'start_quote_char' and 'end_quote_char' parameters. commit 60a20c190789fd75d1955576160cbbfe94c792fb Author: Pedro Alves Date: Wed Dec 13 16:38:49 2017 +0000 Factor out final completion match string building We have several places doing essentially the same thing; factor them out to a central place. Some of the places overallocate for no good reason, or use strcat unnecessarily. The centralized version is more precise and to the point. (I considered making the gdb::unique_xmalloc_ptr overload version of make_completer_match_str try to realloc (not xrealloc) probably avoiding an allocation in most cases, but that'd be probably overdoing it, and also, now that I'm writing this I thought I'd try to see how could we ever get to filename_completer with "text != word", but I couldn't figure it out. Running the testsuite with 'gdb_assert (text == word);' never tripped on the assertion either. So post gdb 8.1, I'll probably propose a patch to simplify filename_completer a bit, and the gdb::unique_xmalloc_str overload can be removed then.) gdb/ChangeLog: 2017-12-13 Pedro Alves * cli/cli-decode.c (complete_on_cmdlist, complete_on_enum): Use make_completion_match_str. * completer.c: Use gdb::unique_xmalloc_ptr and make_completion_match_str. (make_completion_match_str_1): New. (make_completion_match_str(const char *, const char *, const char *)): New. (make_completion_match_str(gdb::unique_xmalloc_ptr &&, const char *, const char *)): New. * completer.h (make_completion_match_str(const char *, const char *, const char *)): New. (make_completion_match_str(gdb::unique_xmalloc_ptr &&, const char *, const char *)): New. * interps.c (interpreter_completer): Use make_completion_match_str. * symtab.c (completion_list_add_name, add_filename_to_list): Use make_completion_match_str. commit 0b982d685e840948eed4619843a0cc5ce8991d6c Author: Simon Marchi Date: Wed Dec 13 11:26:51 2017 -0500 python doc: Rework Breakpoint.__init__ doc I find the documentation of the gdb.Breakpoint constructor hard to read and not very informative, especially since we have added the new linespec parameters. There are multiple problems (some are subjective): - It's not clear that you should use either the spec string or the explicit arguments, not both. - It's not clear what combination of parameters you can use. - The big block of text describing the arguments is hard to read. - Currently, it seems like the "spec" argument is mandatory, even though it is not (if you use explicit linespec). - The square bracket nesting [arg1 [, arg2[, arg3]]] makes it seems like if you specify arg3, you must specify arg1 and arg2 (it's not the case here). This patch tries to address these problems. gdb/doc/ChangeLog: * python.texi (Manipulating breakpoints using Python): Split doc of Breakpoint.__init__ in two, split text in multiple paragraphs, don't nest parameter square brackets. commit 79e741920446582bd0e09f3e2b9f899c258efa56 Author: Renlin Li Date: Wed Dec 13 12:11:25 2017 +0000 [BFD][AARCH64]Disallow R_AARCH64_ABS32(LP64) & R_AARCH64_ABS16 in const section of shared object. R_AARCH64_ABS64, R_AARCH64_ABS32 and R_AARCH64_ABS16 are data relocations supported in AArch64 elf ABI. R_AARCH64_ABS64 under LP64 is allowed in shared object and a dynamic relocation entry will be generated. This allows the dynamic linker to do further symbol resolution. R_AARCH64_ABS32 likewise is allowed in shared object, however under ILP32 abi. The original behavior for R_AARCH64_ABS32 under LP64 is that, it's allowed in shared object and silently resolved at static linking time. No dynamic relocation entry is generate for it. R_AARCH64_ABS16 is allowed in shared object under both L64 and ILP32. It's resolved at static linking time as well. Under LP64, the address should be 64-bit. R_AARCH64_ABS32 relocation indicates an address that is only sized 32 bits which is meaningless in LP64 shared object. It's useful to error out. I have checked glibc dynamic linker code, R_AARCH64_ABS16 is not supported at all. So R_AARCH64_ABS16 should be reject in shared object completely. In this patch, R_AARCH64_ABS32 is rejected under LP64 in constant section of shared object. R_AARCH64_ABS16 is rejected in constant section of shared object in both ABI. This will sometimes provide useful information for buggy code. commit 9664701462aec634d304923df8dc9c52c5a92caf Author: Stafford Horne Date: Thu Dec 14 00:00:51 2017 +0900 gdb: Fix ARI warnings in or1k-tdep.c Fix a few issues not using the gettext _() wrapper and issues where we are using %p directly instead of the dedicated host/target functions. gdb/ChangeLog: yyyy-mm-dd Stafford Horne * or1k-tdep.c (or1k_analyse_inst): Use _() wrapper for message strings. (or1k_unwind_pc): Use paddress() instead of %p. (or1k_unwind_sp): Likewise. (or1k_frame_cache): Use host_address_to_string()/paddress() instead of %p and use _() wrapper for message strings. commit 3bbd9f1877bfc5f37ebff1fef2af9eb783f49ace Author: Simon Marchi Date: Wed Dec 13 09:33:54 2017 -0500 Fix typo in gdb_ari.sh gdb/ChangeLog: * contrib/ari/gdb_ari.sh: Fix typo in help. commit 024d185c10a48339ae06634d0738dd796a159cd8 Author: Dimitar Dimitrov Date: Wed Dec 13 13:08:50 2017 +0000 This patch enables disassembler_needs_relocs for PRU. It is needed to print correct symbols when disassembling arguments of "call" instructions with a relocation. opcodes * disassemble.c: Enable disassembler_needs_relocs for PRU. gas * testsuite/gas/pru/extern.s: New test for print of U16_PMEMM relocation. * testsuite/gas/pru/extern.d: New test driver. commit 10e7c0457cb7531f8b205e29e88b3e191cfa6037 Author: Andreas Krebbel Date: Fri Dec 8 17:23:56 2017 +0100 S/390: Fix (some) PIE+undef weak failures This fixes these failures on 64 bit which currently occur when running the Binutils testsuite with a default PIE compiler. < FAIL: Build rdynamic-1 < FAIL: Build dynamic-1 < FAIL: Build pr22269-1 bfd/ChangeLog: 2017-12-13 Andreas Krebbel * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Use UNDEFWEAK_NO_DYNAMIC_RELOC. (allocate_dynrelocs): Likewise. (elf_s390_relocate_section): Check resolved_to_zero. (elf_s390_finish_dynamic_symbol): Don't generate runtime reloc if UNDEFWEAK_NO_DYNAMIC_RELOC. commit 9937536c23ae005422cec23d38a6b7f6fa8e1f48 Author: Joel Brobecker Date: Mon Dec 11 23:51:29 2017 -0500 fix "server" command prefix handling (unexpected confirmation queries) The "server" command prefix no longer turns confirmation queries off. We can reproduce this with any program by tring to delete all breakpoints, for instance: (gdb) break main Breakpoint 1 at 0x40049b: file /[...]/break-fun-addr1.c, line 21. (gdb) server delete breakpoints Delete all breakpoints? (y or n) GDB should not be asking "Delete all breakpoints? (y or n)", but instead just delete all breakpoints without asking for confirmation. Looking at utils.c::defaulted_query gives a glimpse of how this feature is expected to work: /* Automatically answer the default value if the user did not want prompts or the command was issued with the server prefix. */ if (!confirm || server_command) return def_value; So, it relies on the server_command global to be set when the "server " command prefix is used, which is no longer the case since the following commit: commit b69d38afdea34e4fecab5ea47ffe1e594e0b6233 Date: Wed Mar 9 18:25:00 2016 +0000 Subject: Command line input handling TLC The patch was simplifying the handling for the command line, and I believe there was just a small oversight of removing the setting of the server_command global. This patch restores that, and adds a testcase to make sure we test that feature. gdb/ChangeLog: * event-top.c (handle_line_of_input): Set server_command. gdb/testsuite/ChangeLog: * gdb.base/server-del-break.c: New file. * gdb.base/server-del-break.exp: New file. Tested on x86_64-linux, no regression. commit 2c66e1634c92040a8fcb9590cd80fe881def0b20 Author: GDB Administrator Date: Wed Dec 13 00:00:21 2017 +0000 Automatic date update in version.in commit 702d582e2c5ab9fbd6e9a68f26d49575bfe7e062 Author: Peter Gavin Date: Sat Dec 9 05:57:25 2017 +0900 sim: testsuite: add testsuite for or1k sim This is the testsuite for the or1k sim, it tests running many of the basic architecture instructions on the openrisc sim. sim/testsuite/sim/or1k/ChangeLog: 2017-12-12 Peter Gavin Stafford Horne * add.S: New file. * alltests.exp: New file. * and.S: New file. * basic.S: New file. * div.S: New file. * ext.S: New file. * find.S: New file. * flag.S: New file. * fpu.S: New file. * jump.S: New file. * load.S: New file. * mac.S: New file. * mfspr.S: New file. * mul.S: New file. * or.S: New file. * or1k-asm-test-env.h: New file. * or1k-asm-test-helpers.h: New file. * or1k-asm-test.h: New file. * or1k-asm.h: New file. * or1k-test.ld: New file. * ror.S: New file. * shift.S: New file. * spr-defs.h: New file. * sub.S: New file. * xor.S: New file. sim/testsuite/ChangeLog: 2017-12-12 Stafford Horne Peter Gavin * configure: Regenerated. commit 0cd79707332aef140efa2275363c40aaaeba1c22 Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 sim: or1k: add autoconf generated files These are separted out to make the patch easier to read and smaller. sim/ChangeLog: 2017-12-12 Stafford Horne Peter Gavin * configure: Regenerated. * or1k/aclocal.m4: Generated. * or1k/config.in: Generated. * or1k/configure: Generated. commit 6e51bfa75535439cc66039bcf4e8ebf16e8fe124 Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 sim: or1k: add cgen generated files These are the simulator files generated by cgen. These are split out from the main sim patch to make the patch easier to review and smaller. sim/ChangeLog: 2017-12-12 Stafford Horne Peter Gavin * or1k/arch.c: Generated. * or1k/arch.h: Generated. * or1k/cpu.c: Generated. * or1k/cpu.h: Generated. * or1k/cpuall.h: Generated. * or1k/decode.c: Generated. * or1k/decode.h: Generated. * or1k/model.c: Generated. * or1k/sem-switch.c: Generated. * or1k/sem.c: Generated. commit fa8b7c2128cd03135b7d31ae2ecbc2d3273e990d Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 sim: or1k: add or1k target to sim This adds the OpenRISC 32-bit sim target. The OpenRISC sim is a CGEN based sim so the bulk of the code is generated from the .cpu files by CGEN. The engine decode and execute logic in mloop uses scache with pseudo-basic-block extraction and supports both full and fast (switch) modes. The sim does not implement an mmu at the moment. The sim does implement fpu instructions via the common sim-fpu implementation. sim/ChangeLog: 2017-12-12 Stafford Horne Peter Gavin * configure.tgt: Add or1k sim. * or1k/README: New file. * or1k/Makefile.in: New file. * or1k/configure.ac: New file. * or1k/mloop.in: New file. * or1k/or1k-sim.h: New file. * or1k/or1k.c: New file. * or1k/sim-if.c: New file. * or1k/sim-main.h: New file. * or1k/traps.c: New file. commit 58884b0e451043ed2fb4d2fba18134f0fb451ce5 Author: Peter Gavin Date: Sat Dec 9 05:57:25 2017 +0900 sim: cgen: add MUL2OFSI and MUL1OFSI functions (needed for OR1K l.mul[u]) sim/common/ChangeLog: 2017-12-12 Peter Gavin Stafford Horne * cgen-ops.h (MUL2OFSI): New function, 2's complement overflow flag. (MUL1OFSI): New function, 1's complement overflow flag. commit 07b95864f35f19636e2a95eaf3083a8b18ac7cda Author: Peter Gavin Date: Sat Dec 9 05:57:25 2017 +0900 sim: cgen: add remainder functions (needed for OR1K lf.rem.[sd]) * sim/common/ChangeLog: 2017-12-12 Peter Gavin Stafford Horne * cgen-accfp.c (remsf, remdf): New function. (cgen_init_accurate_fpu): Add remsf and remdf. * cgen-fpu.h (cgen_fp_ops): Add remsf, remdf, remxf and remtf. * sim-fpu.c (sim_fpu_rem): New function. * sim-fpu.h (sim_fpu_status_invalid_irx): New enum. (sim_fpu_rem): New function. (sim_fpu_print_status): Add case for sim_fpu_status_invalid_irx. commit 638d913757609367eea219d00296a0a3d45010c2 Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 Add gdb for or1k build * ChangeLog: 2017-12-12 Stafford Horne * configure.ac: Remove logic adding gdb to noconfigsdirs for or1k. * configure: Regenerate. Cc: gcc-patches@gcc.gnu.org commit fe49c6f559b67fee381f0c2a6f67c10ca306ca8a Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 gdb: testsuite: Add or1k tdesc-regs.exp test support gdb/testsuite/ChangeLog: 2017-12-12 Stafford Horne * gdb.xml/tdesc-regs.exp: Add or1k support. commit c3d186206bf04a40244e727fa381f78a1600f196 Author: Stafford Horne Date: Sat Dec 9 05:57:25 2017 +0900 gdb: testsuite: Add or1k l.nop instruction The test case requires adding a nop instruction. For or1k the instruction is `l.nop`. This change uses the correct operation. gdb/testsuite/ChangeLog: 2017-12-12 Stafford Horne * gdb.base/bp-permanent.c: Define nop of or1k. commit a994fec4f8f7a886be61cfb3023c354cd2483b9d Author: Franck Jullien Date: Sat Dec 9 05:57:25 2017 +0900 gdb: Add OpenRISC or1k and or1knd target support This patch prepares the current GDB port of the OpenRISC processor from https://github.com/openrisc/binutils-gdb for upstream merging. Testing has been done with a cgen sim provided in a separate patch. This has been tested with 2 toolchains. GCC [1] 5.4.0 from the OpenRISC project with Newlib [2] and GCC 5.4.0 with Musl [3] 1.1.4. It supports or1knd (no delay slot target). The default target is or1k (with delay slot). You can change the target arch with: (gdb) set architecture or1knd The target architecture is assumed to be or1knd [1] https://github.com/openrisc/or1k-gcc [2] https://github.com/openrisc/newlib [3] https://github.com/openrisc/musl-cross gdb/doc/ChangeLog: 2017-12-12 Stafford Horne Stefan Wallentowitz Franck Jullien Jeremy Bennett * gdb.texinfo: Add OpenRISC documentation. gdb/ChangeLog: 2017-12-12 Stafford Horne Stefan Wallentowitz Stefan Kristiansson Franck Jullien Jeremy Bennett * configure.tgt: Add targets for or1k and or1knd. * or1k-tdep.c: New file. * or1k-tdep.h: New file. * features/Makefile: Add or1k.xml to build. * features/or1k.xml: New file. * features/or1k-core.xml: New file. * features/or1k.c: Generated. commit db9077b7275e86637218a7a7d165cb85a4de116f Author: Alan Modra Date: Mon Dec 11 17:31:11 2017 +1030 PR22576, ppc64_skip_trampoline_code uses wrong r2 for EXEC_REVERSE The TOC pointer register, r2, on powerpc64 is generally not mentioned in debug info. It is saved and restored by call linkage code, and set to the callee value either by call stub code (ELFv1) or in the callee global entry point code (ELFv2). A call stub uses the caller TOC pointer to access the PLT. So for gdb to read the correct PLT entry in order to determine the destination of the trampoline, gdb needs to know the caller r2. When skipping over trampolines in the normal forward direction, the caller r2 is simply the current value of r2 (at the start of the trampoline). However, when reversing over trampolines the current value of r2 is that for the callee. Using that value results in wild reads of memory rather than the correct PLT entry. This patch corrects the value of r2 by using the value saved on the stack for reverse execution. Note that in reverse execution mode it isn't really necessary for skip_trampoline_code to return the actual destination, so we're doing a little more work than needed here. Any non-zero return value would do (and it would be nicer if the interface was changed to return the start of the stub). PR tdep/22576 * ppc64-tdep.c (ppc64_plt_entry_point): Rewrite to take TOC-relative PLT offset, and retrieve r2 from stack when executing in reverse. (ppc64_standard_linkage1_target): Drop pc param. Calculate offset rather than PLT address. (ppc64_standard_linkage2_target): Likewise. (ppc64_standard_linkage3_target): Likewise. (ppc64_standard_linkage4_target): Likewise. (ppc64_skip_trampoline_code_1): Adjust to suit. commit a933405894161c8b15f675c48d077b7f7d6aabf2 Author: Simon Marchi Date: Mon Dec 11 21:05:30 2017 -0500 remote: Return NULL extra_info/name if they are empty Commit remote: C++ify thread_item and threads_listing_context 21fe1c752e254167d953fa8c846280f63a3a5290 broke the test gdb.threads/names.exp. The problem is that since we now use an std::string to hold the extra_info, an empty string is returned by target_extra_thread_info to print_thread_info_1 when the remote stub didn't send any extra info, instead of NULL before. Because of that, print_thread_info_1 prints the extra info between parentheses, which results in some spurious empty parentheses. Expected: * 1 Thread 22752.22752 "main" all_threads_ready () at ... Actual : * 1 Thread 22752.22752 "main" () all_threads_ready () a ... Since the bug was introduced by a behavior change in the remote target, I chose to fix it on the remote target side by making it return NULL when the extra string is empty. This will avoid possibly changing the behavior of the common code and affecting other targets. The name field has the same problem. If a remote stub returns no thread names, remote_thread_name will return an empty string instead of NULL, so print_thread_info_1 will show empty quotes ("") instead of nothing. gdb/ChangeLog: PR gdb/22556 * remote.c (remote_thread_name): Return NULL if name is empty. (remote_threads_extra_info): Return NULL if extra info is empty. commit 4b1c0f7e85f2aec3df3498d04b5beaf45813dea8 Author: Alan Modra Date: Tue Dec 12 10:56:23 2017 +1030 Don't mask X_add_number containing a register number It's obviously wrong to mask SPRs to 8 bits. PR 21118 * config/tc-ppc.c (md_assemble): Don't mask register number. commit dce4fb839ca81ba4aefa9f5dfde8c8041826b3bb Author: GDB Administrator Date: Tue Dec 12 00:00:33 2017 +0000 Automatic date update in version.in commit c4e648430f3c5c135310f87280d45dba581aaa7b Author: Stephen Crane Date: Mon Dec 11 14:58:38 2017 -0800 Add plugin API for processing plugin-added input files Gold plugins may wish to further process an input file added by a plugin. For example, the plugin may need to assign a unique segment for sections in a plugin-generated input file. This patch adds a plugin callback that the linker will call when reading symbols from a new input file added after the all_symbols_read event (i.e. an input file added by a plugin). 2017-12-11 Stephen Crane * plugin-api.h: Add new plugin hook to allow processing of input files added by a plugin. (ld_plugin_new_input_handler): New function hook type. (ld_plugin_register_new_input): New interface. (LDPT_REGISTER_NEW_INPUT_HOOK): New enum val. (tv_register_new_input): New member. * plugin.cc (Plugin::load): Include hooks for register_new_input in transfer vector. (Plugin::new_input): New function. (register_new_input): New function. (Plugin_manager::claim_file): Call Plugin::new_input if in replacement phase. * plugin.h (Plugin::set_new_input_handler): New function. * testsuite/plugin_new_section_layout.c: New plugin to test new_input plugin API. * testsuite/plugin_final_layout.sh: Add new input test. * testsuite/Makefile.am (plugin_layout_new_file): New test case. * testsuite/Makefile.in: Regenerate. commit 4c5ae11b42433dbffc33fbde75c9e415594504d8 Author: Renlin Li Date: Mon Dec 11 15:33:18 2017 +0000 [Binutils][Objdump]Check symbol section information while search a mapping symbol backward. When checking mapping symbols backwardly, the section which defines the symbol is not considerted. This patch fixes this by moving the section checking code into get_sym_code_type () function which is shared by forward and backword mapping symbol searching. opcodes/ 2017-12-11 Petr Pavlu Renlin Li * aarch64-dis.c (print_insn_aarch64): Move symbol section check ... (get_sym_code_type): Here. binutils/ 2017-12-11 Renlin Li * testsuite/binutils-all/aarch64/objdump.d: New. * testsuite/binutils-all/aarch64/objdump.s: New. commit 3c0aa29aab3949363f8b23d062c2e0cb1ccf017a Author: Pedro Alves Date: Mon Dec 11 13:24:32 2017 +0000 Unbreak build for non-ELF ports As reported at , this commit: ~~~~ commit abccd1e7b7a37385159610ca4e0bc2632a547e9a Author: Jan Kratochvil AuthorDate: Fri Dec 8 22:44:11 2017 +0000 Change dwarf2_initialize_objfile's return value dwarf2_initialize_objfile was returning boolean whether it is psymtabs or .gdb_index while now it needs to return also whether it is .debug_names. ~~~~ breaks non-ELF-target builds: dwarf2read.o: In function `dwarf2_initialize_objfile(objfile*)': /home/yao.qi/SourceCode/gnu/binutils-gdb/gdb/dwarf2read.c:6486: undefined reference to `elf_sym_fns_gdb_index' /home/yao.qi/SourceCode/gnu/binutils-gdb/gdb/dwarf2read.c:6490: undefined reference to `elf_sym_fns_debug_names' /home/yao.qi/SourceCode/gnu/binutils-gdb/gdb/dwarf2read.c:6495: undefined reference to `elf_sym_fns_lazy_psyms' collect2: error: ld returned 1 exit status Makefile:1920: recipe for target 'gdb' failed because gdb/elfread.c is not included in the gdb build unless bfd also includes elf support. Fix this by reverting the patch mentioned above and at the same time re-adding .debug_names support by adding a new output parameter to dwarf2_initialize_objfile to indicate the index variant in use. We can reuse the new dw_index_kind enum in dwarf2read.c for that. gdb/ChangeLog: 2017-12-11 Pedro Alves * defs.h (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index) (elf_sym_fns_debug_names): Move to elfread.c. * dwarf2read.c (dwarf2_initialize_objfile): Return a boolean instead of a sym_fns and add 'index_kind' output parameter. Fill the latter in with the index variant kind if using an index. (enum dw_index_kind): Moved to symfile.h. * elfread.c (elf_sym_fns_gdb_index, elf_sym_fns_debug_names) (elf_sym_fns_lazy_psyms): Move from defs.h. (elf_symfile_read): Adjust to new dwarf2_initialize_objfile interface. * symfile.h (enum class dw_index_kind): New, moved from dwarf2read.c. (dwarf2_initialize_objfile): Change prototype. commit f2f9e7ecc1f02bfe5da83c38cf356ea96d428c6d Author: Ulrich Weigand Date: Mon Dec 11 15:26:26 2017 +0100 [MPFR] Fix regression on 32-bit host systems When converting parts of the mantissa to MPFR, we need to make sure to do an *unsigned* conversion. Since we convert at most 32 bits at a time, stored in an unsigned long, this doesn't matter on systems where "long" is larger than 32 bits. But on systems where it is 32 bits, we can get conversion errors. gdb/ChangeLog 2017-12-11 Ulrich Weigand * target-float.c (mpfr_float_ops::from_target): Use mpfr_set_ui instead of mpfr_set_si to convert mantissa bits. commit c5f9cfc894373abd00ee56c6723ee0ba95a84f95 Author: Joel Brobecker Date: Mon Dec 11 00:55:36 2017 -0500 Adapt gdb.ada/variant_record_packed_array.exp to accept reordered components Recent versions of GNAT are capable of reordering record components to make their access for efficient. This patch adapts this test to accept both cases (reordered or not). gdb/testsuite/ChangeLog: * gdb.ada/variant_record_packed_array.exp: Adapt test to accept output with components being reordered. Tested on x86_64-linux. commit 08f49010a10b1fc98f65aada96e788c87c56ad85 Author: Xavier Roirand Date: Mon Dec 11 00:22:14 2017 -0500 (Ada) change tagged types base_address computation There was a difference between C++ dispatch table and Ada's in the way the Offset_To_Top field is used to determined the base address of an object: * in C++ it is a negative offset, so converting abstract interface to deriving object requires adding this offset to “this”; * in Ada, it was a positive offset, so the same conversion required subtracting the offset value. So in ada, the base address for a tagged type was computed using this formula: base_address = value_address (obj) - offset_to_top; The offset_to_top value was previously set to 0 or a positive value. With recent version of AdaCore's GNAT compiler, the offset has been changed to match C++, which means it's set to zero or a negative value As a result, the new formula has to be: base_address = value_address (obj) + offset_to_top; Because we want to support old code compiled before GNAT compiler change done in 19.0w (20171023-64) with this version and future versions of gdb, then we change the sign of the offset_to_top if required. Required here means if offset_to_top is positive since it indicates that the code has been compiled with an old GNAT compiler. This patch changes the formula as described above. Also, one side-effect of offset_to_top now being negative is that we now have to worry about the sign when we read its value from the inferior. Up to now, we have been reading its value using the data address builtin type. But since addresses are not always signed, we now need to make sure we use the proper type (type Storage_Offset from System.Storage_Elements). Ideally, we would be looking this type up from the inferior, and then use that type. However, it is not guaranteed that this type always be described in the debugging information, so this patch just builds our own, adding it to Ada's list of primitive types. gdb/ChangeLog: * ada-lang.c (ada_tag_value_at_base_address): Change the way tagged type base address is computed. (enum ada_primitive_types) : New enumerate. (ada_language_arch_info): Set the ada_primitive_type_storage_offset element of lai->primitive_type_vector. Tested on x86_64-linux. Fixes the following tests when using the newer version of the compiler. gdb.ada/iwide.exp: print My_Drawable gdb.ada/iwide.exp: print d_access.all gdb.ada/iwide.exp: print dp_access.all gdb.ada/mi_interface.exp: create ggg1 varobj (unexpected output) gdb.ada/mi_interface.exp: list ggg1's children (unexpected output) gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:63 (set breakpoint) (unexpected output) gdb.mi/mi-var-rtti.exp: run to mi-var-rtti.cc:63 (set breakpoint) commit a9c135fc7d0c005246849ff6b205fd5090248137 Author: Joel Brobecker Date: Mon Dec 11 00:16:31 2017 -0500 Adapt gdb.ada/pkd_arr_elem.exp to accept reordered components Recent versions of GNAT are capable of reordering record components to make their access for efficient. This patch adapts this test to accept both cases (reordered or not). gdb/testsuite/ChangeLog: * gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept output with components being reordered. commit 75323ba0a7588fcd6c8505077719abd50cae71e3 Author: GDB Administrator Date: Mon Dec 11 00:00:20 2017 +0000 Automatic date update in version.in commit 57a2957f2ead9ec2464a1b6fbdb250e90d27afab Author: Sangamesh Mallayya Date: Mon Dec 11 08:17:15 2017 +1030 Typo fix Entirely the fault of that Alan Modra bloke. * bfd.c (bfd_get_sign_extend_vma): Correct typo. commit 8bcf9b03922298bb6870b7163be90163c422973a Author: GDB Administrator Date: Sun Dec 10 00:00:26 2017 +0000 Automatic date update in version.in commit c5ba17787d077249ab7071192566a2c0205fc97f Author: GDB Administrator Date: Sat Dec 9 00:00:14 2017 +0000 Automatic date update in version.in commit a3c5fafd2e0bc8c1ea98c579c0a044c5b324967b Author: Pedro Alves Date: Fri Dec 8 22:44:14 2017 +0000 dwarf2read.c: Rewrite/simplify mock_mapped_index Now that dw2_expand_symtabs_matching_symbol works with the abstract mapped_index_base, we can make mock_mapped_index inherit mapped_index_base too instead of having it pretend to be a real .gdb_index table. gdb/ChangeLog: 2017-12-08 Pedro Alves * dwarf2read.c (mock_mapped_index): Reimplement as an extension of mapped_index_base. (check_match): Adjust to use mock_index directly. (check_find_bounds_finds) (test_mapped_index_find_name_component_bounds): Adjust to work with a mapped_index_base. commit 44ed8f3ed0264016a12cfde3126f9148c07eabfa Author: Pedro Alves Date: Fri Dec 8 22:44:13 2017 +0000 Support wildmatching in .debug_names too. dw2_debug_names_expand_symtabs_matching currently doesn't support symbol_name_match_type::WILD, it always matches symbol names fully. The .gdb_index code supports via dw2_expand_symtabs_matching_symbol, which builds the mapped_index::name_components table on demand, and then binary searches that table. The .debug_names names index is pretty much the same as the .gdb_index names index, i.e., a list of fully-qualified names with no parameter/overload info. (There's no what-is-the-language-of-symbol-name info in .debug_names either, unfortunately.) So this fixes .debug_names by factoring out the related .gdb_index code out of the mapped_index class to a base class that is inherited by both the .gdb_index (mapped_index) and .debug_names (mapped_debug_names) map classes. gdb/ChangeLog: 2017-12-08 Pedro Alves * dwarf2read.c (struct mapped_index_base): New, partially factored out from ... (struct mapped_index): ... this. Inherit mapped_index_base. (mapped_index::symbol_name_slot_invalid): (mapped_index::symbol_name_at): Add override marker. (mapped_index::symbol_name_count): New. (struct mapped_debug_names): Inherit mapped_index_base. (mapped_debug_names::symbol_name_at): New. (mapped_debug_names::symbol_name_count): New. (mapped_index::find_name_components_bounds): Rename to ... (mapped_index_base::find_name_components_bounds): ... this. (mapped_index::build_name_components): Rename to ... (mapped_index_base::build_name_components): ... this. Adjust to use mapped_index_base::symbol_name_count and mapped_index_base::symbol_name_slot_invalid. (dw2_expand_symtabs_matching_symbol): Take a mapped_index_base instead of a mapped_index. Use dw2_expand_symtabs_matching_symbol. commit f00a2de2a7556c59bce93f7ced44afa8e1bbf7c3 Author: Pedro Alves Date: Fri Dec 8 22:44:13 2017 +0000 dwarf2read.c:mapped_index, use gdb::array_view, simplify symbol table This replaces a couple ptr+size pairs with gdb::array_view in the .gdb_index code, and simplifies things by using an aggregate for the type of the symbol table hash bucket instead of having to consider the distinction between size of table vs number of slots and access name vs vec by index. gdb/ChangeLog: 2017-12-08 Pedro Alves * dwarf2read.c (mapped_index::symbol_table_slot): New. (mapped_index::address_table): Now a gdb::array_view of const gdb_byte. (mapped_index::symbol_table): Now a gdb::array_view of symbol_table_slot. (mapped_index::address_table_size) (mapped_index::symbol_table_slots): Delete. (create_addrmap_from_index): Adjust. (find_slot_in_mapped_hash): Adjust. (read_index_from_section): Adjust. (dwarf2_read_index): Adjust. commit 927aa2e778dce440f4de5de8fc37ead1683a804e Author: Jan Kratochvil Date: Fri Dec 8 22:44:12 2017 +0000 DWARF-5: .debug_names index consumer Some testcases needed to be updated as they were missing .debug_aranges. While that does not matter for no-index (as GDB builds the mapping internally during dwarf2_build_psymtabs_hard) and neither for .gdb_index (as GDB uses that internally built mapping which it stores into .gdb_index) it does matter for .debug_names as that simply assumes existing .debug_aranges from GCC. gdb/ChangeLog: 2017-12-08 Jan Kratochvil Pedro Alves * defs.h (elf_sym_fns_debug_names): New declaration. * dwarf2read.c: Include "hash_enum.h". (mapped_debug_names): New. (struct dwarf2_per_objfile): Add debug_names, debug_aranges and debug_names_table. (dwarf2_elf_names): Add ".debug_names" and ".debug_aranges". (struct dwz_file): Add debug_names. (dwarf2_per_objfile::locate_sections): Handle debug_names and debug_aranges. (locate_dwz_sections): Handle debug_names. (create_signatured_type_table_from_debug_names) (create_addrmap_from_aranges): New. (dwarf2_read_index): Update function comment. (dwarf5_augmentation): Moved up. (read_debug_names_from_section, create_cus_from_debug_names_list) (create_cus_from_debug_names, dwarf2_read_debug_names): New. (dwarf5_djb_hash): Moved up. (dw2_debug_names_iterator): New. (read_indirect_string_at_offset): New declaration. (mapped_debug_names::namei_to_name) (dw2_debug_names_iterator::find_vec_in_debug_names) (dw2_debug_names_iterator::next, dw2_debug_names_lookup_symbol) (dw2_debug_names_dump, dw2_debug_names_expand_symtabs_for_function) (dw2_debug_names_expand_symtabs_matching, dwarf2_debug_names_functions): New. (dwarf2_initialize_objfile): Return also elf_sym_fns_debug_names. (debug_names::djb_hash): Rename it to dwarf5_djb_hash. (debug_names::build): Update djb_hash caller. (write_debug_names): Move out and rename augmentation to dwarf5_augmentation. * elfread.c (elf_sym_fns_debug_names): New. * psymtab.h (dwarf2_debug_names_functions): New declaration. * symfile.h (struct dwarf2_debug_sections): Add debug_names and debug_aranges. * xcoffread.c (dwarf2_xcoff_names): Add debug_names and debug_aranges. gdb/testsuite/ChangeLog: 2017-12-08 Jan Kratochvil Pedro Alves * gdb.base/maint.exp (check for .gdb_index): Check also for .debug_names. * gdb.dlang/watch-loc.c (.debug_aranges): New. * gdb.dwarf2/dw2-case-insensitive-debug.S: Likewise. * gdb.dwarf2/gdb-index.exp (check if index present, .gdb_index used) (.gdb_index used after symbol reloading): Support also .debug_names. * gdb.mi/dw2-ref-missing-frame-func.c (.debug_aranges): New. commit e5fa6583a7b1e5e0e0f33a4964a1f271e189cf35 Author: Pedro Alves Date: Fri Dec 8 22:44:12 2017 +0000 Add gdb::hash_enum The DWARF-5 .debug_names consumer patch will want to use an std::unordered_map with an enum as key type, like: std::unordered_map That doesn't work in C++11 in non-recent compilers due to a language defect: http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2148 ~~~ In file included from /usr/include/c++/5.3.1/bits/hashtable.h:35:0, from /usr/include/c++/5.3.1/unordered_set:47, from src/gdb/dwarf2read.c:79: /usr/include/c++/5.3.1/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash >’: /usr/include/c++/5.3.1/type_traits:137:12: required from ‘struct std::__and_ >, std::__detail::__is_noexcept_hash > >’ /usr/include/c++/5.3.1/type_traits:148:38: required from ‘struct std::__not_ >, std::__detail::__is_noexcept_hash > > >’ /usr/include/c++/5.3.1/bits/unordered_map.h:100:66: required from ‘class std::unordered_map’ src/gdb/dwarf2read.c:3260:30: required from here /usr/include/c++/5.3.1/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash) (const sect_offset&)’ noexcept(declval()(declval()))> ^ In file included from /usr/include/c++/5.3.1/bits/move.h:57:0, from /usr/include/c++/5.3.1/bits/stl_pair.h:59, from /usr/include/c++/5.3.1/bits/stl_algobase.h:64, from /usr/include/c++/5.3.1/bits/char_traits.h:39, from /usr/include/c++/5.3.1/string:40, from /home/pedro/gdb/mygit/src/gdb/common/common-utils.h:23, from /home/pedro/gdb/mygit/src/gdb/common/common-defs.h:78, from /home/pedro/gdb/mygit/src/gdb/defs.h:28, from /home/pedro/gdb/mygit/src/gdb/dwarf2read.c:31: ~~~ This commits adds a helper replacement. gdb/ChangeLog: 2017-12-08 Pedro Alves * common/hash_enum.h: New file. commit 4b514bc80885fa91e57b9d80f74ea267df343c46 Author: Jan Kratochvil Date: Fri Dec 8 22:44:11 2017 +0000 Refactor: Move some generic code out of .gdb_index code Preparation for the next patch. gdb/ChangeLog 2017-12-08 Jan Kratochvil * dwarf2read.c (create_cu_from_index_list): New from ... (create_cus_from_index_list): ... this function, use it. (dw_expand_symtabs_matching_file_matcher) (dw2_expand_symtabs_matching_one): New from ... (dw2_expand_symtabs_matching): ... this function, use them. commit abccd1e7b7a37385159610ca4e0bc2632a547e9a Author: Jan Kratochvil Date: Fri Dec 8 22:44:11 2017 +0000 Change dwarf2_initialize_objfile's return value dwarf2_initialize_objfile was returning boolean whether it is psymtabs or .gdb_index while now it needs to return also whether it is .debug_names. gdb/ChangeLog 2017-12-08 Jan Kratochvil * defs.h (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move here declarations from elfread.c. (dwarf2_initialize_objfile): Change return value. * elfread.c (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move these declarations to defs.h. (elf_symfile_read): Adjust dwarf2_initialize_objfile caller. * symfile.h (dwarf2_initialize_objfile): Change return type. commit 437afbb81e3a04cbd933fc534a50c686eaa63b19 Author: Jan Kratochvil Date: Fri Dec 8 22:44:10 2017 +0000 DWARF-5: .debug_names index producer This adds a new "-dwarf-5" switch to "save gdb-index" that makes it generate index files with DWARF-5 .debug_names/.debug_str sections instead of GDB's own .gdb_index. We should probably add a command line option to contrib/gdb-add-index.sh (incl. cc-with-tweaks.sh) for the new -dwarf-5 GDB option, and a new target board to make it more convenient to exercise this. To be done later. gdb/ChangeLog 2017-12-08 Jan Kratochvil Pedro Alves * contrib/gdb-add-index.sh (index): Rename to ... (index4): ... here. (index5, debugstr, debugstrmerge, debugstrerr): New variables. Support also .debug_names and .debug_str. * dwarf2read.c: Include cmath, set, list. (INDEX_SUFFIX): Rename to ... (INDEX4_SUFFIX): ... here. (INDEX5_SUFFIX, DEBUG_STR_SUFFIX): New. (file_write(FILE *, const void *, size_t)): New. (file_write(FILE *, const std::vector &)): New. (data_buf::append_unsigned_leb128, data_buf::empty): New. (data_buf::file_write): Use ::file_write. (data_buf::c_str, dwarf5_djb_hash, debug_names) (check_dwarf64_offsets): New. (psyms_seen_size, write_gdbindex): New from write_psymtabs_to_index code. (dwarf5_gdb_augmentation, write_debug_names, assert_file_size) (enum dw_index_kind): New. (write_psymtabs_to_index): New parameter index_kind. Support filename_str and out_file_str. Move code to write_gdbindex, possibly call write_debug_names. (save_gdb_index_command): New parameter -dwarf-5. (_initialize_dwarf2_read): Document the new parameter -dwarf-5. gdb/doc/ChangeLog 2017-12-08 Jan Kratochvil * gdb.texinfo (Index Files): Document .debug_names and -dwarf-5. -- gdb/contrib/gdb-add-index.sh | 53 ++ gdb/doc/gdb.texinfo | 24 + gdb/dwarf2read.c | 919 ++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 935 insertions(+), 61 deletions(-) commit 6432ec65a8822246db5bcede0c6bd3ed0e464a0b Author: Jan Kratochvil Date: Fri Dec 8 22:44:10 2017 +0000 cc-with-tweaks.sh: Use gdb-add-index.sh With DWARF-5 .debug_names, the commands to add the index to the symbol file are more complicated, as now also .debug_str needs to be modified. Currently, contrib/cc-with-tweaks.sh calls objcopy to handle the '-i' option instead of using contrib/gdb-add-index.sh which basically does the same. To help with .debug_names, this commit makes contrib/cc-with-tweaks.sh reuse contrib/gdb-add-index.sh instead. A problem this ran into is whether contrib/cc-with-tweaks.sh should fail or not when no index is produced. Currently, contrib/cc-with-tweaks.sh is more quiet (=successful) than contrib/gdb-add-index.sh and so with no further changes testsuite runs with an index would "regress". This commit tries to keep the behavior unchanged. Some cases still error with: Ada is not currently supported by the index But some cases (such as some trivial gdb.dwarf2/ testcases with no DWARF data to index) produce no index while the testcases still PASS now instead of: -PASS: gdb.arch/i386-bp_permanent.exp: stack pointer value matches +gdb compile failed, gdb-add-index.sh: No index was created for gdb/testsuite.unix.-m64/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent +gdb-add-index.sh: [Was there no debuginfo? Was there already an index?] +UNTESTED: gdb.arch/i386-bp_permanent.exp: failed to compile gdb/ChangeLog 2017-12-08 Jan Kratochvil Pedro Alves * contrib/cc-with-tweaks.sh: Change interpreter to bash, incl. initial comment. (GDB_ADD_INDEX): New variable. <$want_index>: Call $GDB_ADD_INDEX. commit a9d44aad42e127adadbad35f23931d8d83aa40c1 Author: Alan Modra Date: Fri Dec 8 11:40:31 2017 +1030 Work around sparc glibc bug * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): When emitting dynamic R_SPARC_RELATIVE for GOT entries, ensure the section contents are zeroed. commit 92469284a650232768523564f2c715c4ebb57906 Author: Sergio Durigan Junior Date: Fri Dec 8 15:33:55 2017 -0500 Fix thinko on dtrace-probe.c:dtrace_process_dof_probe While investigating PR gdb/22557 ("Regression: gdb.base/dtrace-probe.exp"), I noticed that the code is wrongly declaring a new "expression_up" variable inside the TRY block in "dtrace_process_dof_probe". This causes the outter "expr" variable to be empty, which may have an impact later when evaluating the expression. This commit fixes that. Unfortunately the script used to test DTrace probes (gdb/testsuite/lib/pdtrace.in) is not very reliable so I cannot say whether this commit fixes the PR mentioned above. Nonetheless, it's an obvious fix and should go in. gdb/ChangeLog: 2017-12-08 Sergio Durigan Junior * dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new "expression_up" inside the TRY block. commit f17d9474776e50ae47aa71c52211ea6e21adf5d5 Author: Yao Qi Date: Fri Dec 8 17:27:03 2017 +0000 Clear non-significant bits of address in watchpoint Nowadays, GDB can't set watchpoint on tagged address on AArch64, (gdb) p p2 $1 = (int *) 0xf000fffffffff474 (gdb) watch *((int *) 0xf000fffffffff474) Hardware watchpoint 2: *((int *) 0xf000fffffffff474) (gdb) c Continuing. main () at binutils-gdb/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c:45 45 void (*func_ptr) (void) = foo; Unexpected error setting hardware debug registers This patch is about setting watchpoint on a tagged address. Unlike breakpoint, watchpoint record the expression rather than the address, and when a watchpoint is fired, GDB checks the expression value changed instead of matching address, so we can mask the watchpoint address by getting rid of non-significant bits of address. gdb: 2017-12-08 Yao Qi * breakpoint.c (update_watchpoint): Call address_significant. gdb/testsuite: 2017-12-08 Yao Qi * gdb.arch/aarch64-tagged-pointer.c (main): Update. * gdb.arch/aarch64-tagged-pointer.exp: Add tests for watchpoint. commit a0de8c21baf46c40ed8e62faef5f750b1e5453ea Author: Yao Qi Date: Fri Dec 8 17:27:03 2017 +0000 Adjust breakpoint address by clearing non-significant bits Tag in tagged address on AArch64 is treated as a non-significant bits of address, which can be got by gdbarch method significant_addr_bit, and gdb can clear these bits. With this patch, when user sets a breakpoint on tagged address on AArch64, GDB will drop the top byte of address, and put breakpoint at the new place, as shown below, (gdb) hbreak *func_ptr warning: Breakpoint address adjusted from 0xf000000000400690 to 0x00400690. Hardware assisted breakpoint 2 at 0x400690 (gdb) break *func_ptr warning: Breakpoint address adjusted from 0xf000000000400690 to 0x00400690. Breakpoint 3 at 0x400690 When program hits a breakpoint, the stopped pc reported by Linux kernel is the address *without* tag, so it is better the address recorded in breakpoint location is the one without tag too, so we can still match breakpoint location address and stopped pc reported by Linux kernel, by simple compare. gdb: 2017-12-08 Yao Qi * breakpoint.c (adjust_breakpoint_address): Call address_significant. gdb/testsuite: 2017-12-08 Yao Qi * gdb.arch/aarch64-tagged-pointer.c (main): Update. * gdb.arch/aarch64-tagged-pointer.exp: Add test for breakpoint. commit a738ea1d41daeec0cccb4ab6671f4f6d53bd9e18 Author: Yao Qi Date: Fri Dec 8 17:27:03 2017 +0000 Clear non-significant bits of address on memory access ARMv8 supports tagged address, that is, the top one byte in address is ignored. It is always enabled on aarch64-linux. See https://www.kernel.org/doc/Documentation/arm64/tagged-pointers.txt The tag in the tagged address is modeled as non-significant bits in address, so this patch adds a new gdbarch method significant_addr_bit and clear the non-significant bits (the top byte in ARMv8) of the virtual address at the point before passing address to target cache layer. IOW, the address used in the target cache layer is already cleared. Before this patch, (gdb) x/x 0x0000000000411030 0x411030 : 0x00000000 (gdb) x/x 0xf000000000411030 0xf000000000411030: Cannot access memory at address 0xf000000000411030 After this patch, (gdb) x/x 0x0000000000411030 0x411030 : 0x00000000 (gdb) x/x 0xf000000000411030 0xf000000000411030: 0x00000000 Note that I used address_significant in paddress, but it causes a regression gdb.base/long_long.exp, because gdb clears the non-significant bits in address, but test still expects them. p/a val.oct^M $24 = 0x2ee53977053977^M (gdb) FAIL: gdb.base/long_long.exp: p/a val.oct so I defer the change there. gdb: 2017-12-08 Yao Qi * aarch64-tdep.c (aarch64_gdbarch_init): Install gdbarch significant_addr_bit. * gdbarch.sh (significant_addr_bit): New. * gdbarch.c, gdbarch.h: Re-generated. * target.c (memory_xfer_partial): Call address_significant. * utils.c (address_significant): New function. * utils.h (address_significant): Declare. 2017-12-08 Yao Qi gdb/testsuite: * gdb.arch/aarch64-tagged-pointer.c: New file. * gdb.arch/aarch64-tagged-pointer.exp: New file. commit 8e481c3ba86e512b39b16b41de24e87a17f7d968 Author: Tom Tromey Date: Wed Nov 22 20:17:28 2017 -0700 C++-ify parse_format_string This replaces parse_format_string with a class, removing some constructors along the way. While doing this, I found that one argument to gen_printf is unused, so I removed it. Also, I am not completely sure, but the use of `release' in maint_agent_printf_command and parse_cmd_to_aexpr seems like it may leak expressions. Regression tested by the buildbot. ChangeLog 2017-12-08 Tom Tromey * printcmd.c (ui_printf): Update. Use std::vector. * common/format.h (struct format_piece): Add constructor. : Now const. (class format_pieces): New class. (parse_format_string, free_format_pieces) (free_format_pieces_cleanup): Remove. * common/format.c (format_pieces::format_pieces): Rename from parse_format_string. Update. (free_format_pieces, free_format_pieces_cleanup): Remove. * breakpoint.c (parse_cmd_to_aexpr): Update. Use std::vector. * ax-gdb.h (gen_printf): Remove argument. * ax-gdb.c (gen_printf): Remove "frags" argument. (maint_agent_printf_command): Update. Use std::vector. gdbserver/ChangeLog 2017-12-08 Tom Tromey * ax.c (ax_printf): Update. commit 10af2a65c8891435d0d63411a3e694cc74c9447c Author: Max Filippov Date: Wed Dec 6 22:52:16 2017 -0800 gas: xtensa: fix comparison of trampoline chain symbols Don't use address where symbol gets resolved, as during section relaxation symbols will slide, instead canonicalize symbols and check that they are are the same. This fixes a bug when a relaxed jump goes into the wrong trampoline. gas/ 2017-12-07 Max Filippov * config/tc-xtensa.c (xg_order_trampoline_chain): Replace xg_order_trampoline_chain_entry call with check for canonicalized symbol equality and offset equality. commit 1cd9a73b4280cb133b305ee31a0e87f114bd1be8 Author: Sergio Durigan Junior Date: Thu Dec 7 18:27:22 2017 -0500 Adjust gdb.arch/i386-sse-stack-align.exp print statement Since: commit 7022349d5c86bae74b49225515f42d2e221bd368 Author: Pedro Alves Date: Mon Sep 4 20:21:13 2017 +0100 Stop assuming no-debug-info functions return int We now have to explicitly tell GDB the type of the non-debug-info function we want to print (by casting). This commit adjusts the "print" statement on gdb.arch/i386-sse-stack-align.exp to do the proper cast, fixing a failure that started to happen after the mentioned commit. gdb/testsuite/ChangeLog: 2017-12-08 Sergio Durigan Junior * gdb.arch/i386-sse-stack-align.exp: Cast "print" function call "int". commit 6b05c8bd437152d7a3ecfc19074ab243ee6c92f2 Author: Yao Qi Date: Fri Dec 8 15:43:49 2017 +0000 Fix PR 22567: set SAL .section in minsym_found PR 22567 is that breakpoint location can't correct gdbarch from SAL, because its fields .section and .symtab is NULL. We use to have code setting .section, but was removed by 4024cf2 - if (msymbol_is_text (msymbol)) + CORE_ADDR func_addr; + if (msymbol_is_function (objfile, msymbol, &func_addr)) { - sal = find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (objfile, msymbol), - (struct obj_section *) 0, 0); - sal.section = MSYMBOL_OBJ_SECTION (objfile, msymbol); this patch adds this back by moving it to the common place at the bottom of the function. gdb: 2017-12-08 Yao Qi PR breakpionts/22567 * linespec.c (minsym_found): Set sal.section. commit 336ef6d22a5dba921eed85eb4fa75ed22a02a633 Author: Andreas Arnez Date: Fri Dec 8 14:19:23 2017 +0100 S390: Add symfile-mem For some reason symfile-mem.o is not included in the configuration for "s390*-*-linux*". It was added to the configuration of most GNU/Linux targets with a patch from Andrew Cagney: "Add symfile-mem to all linux targets" -- https://sourceware.org/ml/gdb-patches/2005-02/msg00053.html But the s390 target was overlooked at that time. Thus the command "add-symbol-file-from-memory" is missing and VDSO symbols are not loaded. This is fixed. gdb/ChangeLog: * configure.tgt (s390*-*-linux*): Add symfile-mem.o. commit 2d054e6bfdfb0f58fb9cc501c29327df34fec697 Author: Nick Clifton Date: Fri Dec 8 10:07:14 2017 +0000 Fix stripping relocs in a file with mergeable notes. A recent Fedora bug (1520805) exposed a problem with objcopy's reloc copying code, when a binary also contains mergeable notes. The note merging code would delete some relocs, but then the reloc copying code would try to put them back again, which did not work. So I am checking in the patch below to fix the problem. The patch also tweaks one of the binutils note merging tests so that it is skipped for the Sparc64 target, since this has funky relocs. binutils * objcopy.c (copy_relocations_in_section): Use the orelocations field of the input section, if it has been initialised. * testsuite/binutils-all/note-2-64.d: Skip test on Sparc64. bfd * elfcode.h (elf_write_relocs): Check for an empty howto field. commit c8bed57010e8789212a6841db4b397b175a00f9e Author: Sangamesh Mallayya Date: Fri Dec 8 13:47:17 2017 +1030 Add aix 64-bit check to bfd_get_sign_extend_vma * bfd.c (bfd_get_sign_extend_vma): Handle aix5coff64-rs6000. commit 63a22aee30c7109adec9e9f503a086210683109e Author: GDB Administrator Date: Fri Dec 8 00:00:21 2017 +0000 Automatic date update in version.in commit fa6eb693cf43b427474b1d96ce093f6ea9e5da6a Author: Keith Seitz Date: Thu Dec 7 12:59:07 2017 -0800 Validate explicit locations with early termination breakpoints/22569 involves an internal error generated by the rather innocent looking command: (gdb) break -source test.cpp main .../linespec.c:3302: internal-error: void decode_line_full(...): Assertion `result.size () == 1 || canonical->pre_expanded' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) The input string is tokenized into "-source", "test.cpp", and "main" (input parsing breaks on whitespace). create_breakpoint is then called with the explicit location (containing only the source file name) and "main" as the extra_string argument. No SaLs are created for this underspecified explicit location, and the "result.size () == 1" evaluates false (as does the pre_expanded condition). This triggers the assertion. Normally string_to_explicit_location validates the input string. However, the presence of the string "main" causes the parser to exit early: 802 else 803 { 804 /* End of the explicit location specification. 805 Stop parsing and return whatever explicit location was 806 parsed. */ 807 *argp = start; 808 return location; 809 } This bypasses the validation that is done a few lines down in this function which would have emitted the expected error. This patch fixes that. Additionally, this patch also fixes an inconsistency with error reporting in this use case: (gdb) b -source foo Source filename requires function, label, or line offset. (gdb) b -source foo main No source file named foo. These two commands should have elicited the same error message. gdb/ChangeLog: PR breakpoints/22569 * location.c (string_to_explicit_location): When terminating parsing early, break out of enclosing loop instead of returning. gdb/testsuite/ChangeLog: PR breakpoints/22569 * gdb.linespec/ls-errs.exp: Change expected result of "break -source this file has spaces.c -line 3". Check that an explicit source file followed by whitespace is identified as an invalid explicit location. commit 883fd55ab1049333364479a7f5b0c7e61a310bac Author: Keith Seitz Date: Thu Dec 7 15:01:30 2017 -0800 Record nested types GDB currently does not track types defined in classes. Consider: class A { public: class B { public: class C { }; }; }; (gdb) ptype A type = class A { } This patch changes this behavior so that GDB records these nested types and displays them to the user when he has set the (new) "print type" option "nested-type-limit." Example: (gdb) set print type nested-type-limit 1 (gdb) ptype A type = class A { class A::B { }; } (gdb) set print type nested-type-limit 2 type = class A { class A::B { class A::B::C { }; }; } By default, the code maintains the status quo, that is, it will not print any nested type definitions at all. Testing is carried out via cp_ptype_class which required quite a bit of modification to permit recursive calling (for the nested types). This was most easily facilitated by turning the ptype command output into a queue. Upshot: the test suite now has stack and queue data structures that may be used by test writers. gdb/ChangeLog * NEWS (New commands): Mention set/show print type nested-type-limit. * c-typeprint.c (c_type_print_base): Print out nested types. * dwarf2read.c (struct typedef_field_list): Rename to ... (struct decl_field_list): ... this. Change all uses. (struct field_info) : New fields. (add_partial_symbol): Look for nested type definitions in C++, too. (dwarf2_add_typedef): Rename to ... (dwarf2_add_type_defn): ... this. (type_can_define_types): New function. Update assertion to use type_can_define_types. Permit NULL for a field's name. (process_structure_scope): Handle child DIEs of types that can define types. Copy the list of nested types into the type struct. * gdbtypes.h (struct typedef_field): Rename to ... (struct decl_field): ... this. Change all uses. [is_protected, is_private]: New fields. (struct cplus_struct_type) : New fields. (TYPE_NESTED_TYPES_ARRAY, TYPE_NESTED_TYPES_FIELD) (TYPE_NESTED_TYPES_FIELD_NAME, TYPE_NESTED_TYPES_FIELD_TYPE) (TYPE_NESTED_TYPES_COUNT, TYPE_NESTED_TYPES_FIELD_PROTECTED) (TYPE_NESTED_TYPES_FIELD_PRIVATE): New macros. * typeprint.c (type_print_raw_options, default_ptype_flags): Add default value for print_nested_type_limit. (print_nested_type_limit): New static variable. (set_print_type_nested_types, show_print_type_nested_types): New functions. (_initialize_typeprint): Register new commands for set/show `print-nested-type-limit'. * typeprint.h (struct type_print_options) [print_nested_type_limit]: New field. gdb/testsuite/ChangeLog * gdb.cp/nested-types.cc: New file. * gdb.cp/nested-types.exp: New file. * lib/cp-support.exp: Load data-structures.exp library. (debug_cp_test_ptype_class): New global. (cp_ptype_class_verbose, next_line): New procedures. (cp_test_ptype_class): Add and document new parameter `recursive_qid'. Add and document new return value. Switch the list of lines to a queue. Add support for new `type' key for nested type definitions. Add debugging/troubleshooting messages. * lib/data-structures.exp: New file. gdb/doc/ChangeLog * gdb.texinfo (Symbols): Document "set print type nested-type-limit" and "show print type nested-type-limit". commit ec72db3ef415ebdcedaf36a1d83bd6624ec063e0 Author: Simon Marchi Date: Thu Dec 7 17:37:02 2017 -0500 Fix wrong prefix in py-breakpoint.exp The prefix in test_bkpt_explicit_loc is wrong. Instead of using with_test_prefix directly, define test_bkpt_explicit_loc with proc_with_prefix. gdb/testsuite/ChangeLog: * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Define with proc_with_prefix, don't use with_test_prefix. commit 99598d713f45d1b26015ec3562d160dc2b3792e4 Author: Tom Tromey Date: Fri Nov 3 10:26:11 2017 -0600 Fix regression in "commands" Pedro pointed out a regression in "commands", where trying to clear a breakpoint's command list would fail: (top-gdb) commands Type commands for breakpoint(s) 3, one per line. End with a line saying just "end". >end No breakpoints specified. (top-gdb) I believe the bug was introduced by my patch that changes counted_command_line to be a shared_ptr. This causes the problem because now the counted_command_line in commands_command_1 can be NULL, whereas previously it never could be. After some discussion, we agreed to simply remove the error case from commands_command_1. 2017-12-07 Tom Tromey PR breakpoints/22511: * breakpoint.c (commands_command_1): Don't throw an exception when no commands have been read. 2017-12-07 Tom Tromey * gdb.base/break.exp: Add test for empty "commands". commit 23a8d1862b7e5b95f0fe9d724c6be326e545e6d1 Author: Adam Stylinski Date: Thu Dec 7 12:51:03 2017 -0500 Fix build with g++ 6.3.1 With g++ 6.3.1: target-descriptions.c: In member function ‘virtual void print_c_tdesc::visit_pre(const target_desc*)’: target-descriptions.c:1836:16: error: types may not be defined in a for-range-declaration [-Werror] for (const struct bfd_arch_info *compatible : e->compatible) ^~~~~~ I think at some point the forward declaration of this struct had been removed and declared as a typedef. This fixes that. gdb/ChangeLog: 2017-12-07 Adam Stylinski PR c++/21222 * target-descriptions.c (print_c_tdesc::visit_pre): Change type of range-for variable. commit a8806230241d201f808d856eaae4d44088117b0c Author: Yao Qi Date: Thu Dec 7 17:07:01 2017 +0000 Initialize target description early in IPA Target descriptions are allocated lazily, that is fine in GDBserver, but it is not safe to call malloc in gdb_collect in IPA, because we can set a fast tracepoint in malloc, and when the tracepoint is hit, gdb_collect/malloc is called, deadlock or memory corruption may be triggered. #0 0xf7cfc200 in malloc () #1 0xf7efdc07 in operator new(unsigned int) () #2 0xf7ef7636 in allocate_target_description() () #3 0xf7efcbe1 in i386_create_target_description(unsigned long long, bool) () #4 0xf7efb474 in i386_linux_read_description(unsigned long long) () #5 0xf7efb190 in get_ipa_tdesc(int) () #6 0xf7ef9baa in gdb_collect () The fix is to initialize all target descriptions earlier, when the IPA is loaded. In order to guarantee malloc is not called in IPA in gdb_collect, I change the test to set a breakpoint on malloc, if IPA gdb_collect calls malloc, program will hit the breakpoint, and test fail. continue Continuing. Thread 1 "" hit Breakpoint 5, 0xf7cfc200 in malloc () (gdb) FAIL: gdb.trace/ftrace.exp: advance through tracing gdb/gdbserver: 2017-12-07 Yao Qi * linux-aarch64-ipa.c (initialize_low_tracepoint): Call aarch64_linux_read_description. * linux-amd64-ipa.c (idx2mask): New array. (get_ipa_tdesc): Move idx2mask out. (initialize_low_tracepoint): Initialize target descriptions. * linux-i386-ipa.c (idx2mask): New array. (get_ipa_tdesc): Move idx2mask out. (initialize_low_tracepoint): Initialize target descriptions. gdb/testsuite: 2017-12-07 Yao Qi * gdb.trace/ftrace.exp (run_trace_experiment): Set breakpoint on malloc and catch syscall. commit 30970df7d56bd65657c97296f31fe9862bf27e1d Author: Simon Marchi Date: Thu Dec 7 11:48:21 2017 -0500 Add virtual destructor to selftest Clang 6 shows this warning In file included from /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:19: In file included from /home/emaisin/src/binutils-gdb/gdb/common/common-defs.h:92: In file included from /home/emaisin/src/binutils-gdb/gdb/common/gdb_unique_ptr.h:23: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/memory:81: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:76:2: error: delete called on 'selftests::selftest' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor] delete __ptr; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/unique_ptr.h:236:4: note: in instantiation of member function 'std::default_delete::operator()' requested here get_deleter()(__ptr); ^ /home/emaisin/src/binutils-gdb/gdb/common/selftest.c:57:17: note: in instantiation of member function 'std::unique_ptr >::~unique_ptr' requested here tests[name] = std::unique_ptr (test); ^ The error is legitimate, we (the unique_ptr) are deleting selftest objects through the base pointer, so technically the destructor should be virtual, so that the destructor of the subclass is invoked. gdb/ChangeLog: * common/selftest.h (struct selftest): Add virtual destructor. commit 824cc835aa9a4d585d955db4ab2a5dd4c17cc22c Author: Phil Muldoon Date: Thu Dec 7 16:47:33 2017 +0000 Implement explicit locations for Python breakpoints. This introduces several new keywords to the bppy_init constructor. The spec parameter is now optional but mutually exclusive to the explicit keywords source, label, function and line. gdb/ChangeLog 2017-12-07 Phil Muldoon * python/py-breakpoint.c (bppy_init): Use string_to_event_location over basic location code. Implement explicit location keywords. (bppy_init_validate_args): New function. * NEWS: Document Python explicit breakpoint locations. doc/ChangeLog 2017-12-07 Phil Muldoon * python.texi (Breakpoints In Python): Add text relating to allowed explicit locations and keywords in gdb.Breakpoints. testsuite/ChangeLog 2017-12-07 Phil Muldoon * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Add new tests for explicit locations. commit 9c226a8689db8bced43b94f551e118551219ce54 Author: Joel Brobecker Date: Thu Dec 7 14:10:33 2017 +0100 gdb/MAINTAINERS: restore m68hc11, score and xstormy16 entries This patch restores some entries removed by a recent patch whose purpose was to update the list of active maintainers. I thought that, the target information was purely to document the scope of the given target, and thus could be removed is maintainerless. But, in fact, those entries are still useful, as a number of scripts (eg: gdb_buildall.sh) use that information to build GDB with all targets enabled. gdb/ChangeLog: * MAINTAINERS: Restore target entries for m68hc11-elf, score-elf and xstormy16-elf, incorrectly removed in a previous patch meant to only update the list of active maintainers. commit 7d6de425dad59050131ac4ffef84068e57bba7c4 Author: Alan Modra Date: Thu Dec 7 21:46:34 2017 +1030 Objcopy interleave test PR 22465 * testsuite/ld-elf/interleave.s: Use .data sections and provide section attrs. * testsuite/ld-elf/interleave.ld: Discard other sections. Adjust for changed section names. commit 931c97c81a55dffed31e20e0cd109aced62221e0 Author: Alan Modra Date: Thu Dec 7 20:37:33 2017 +1030 mcore-elf lacks shared lib support elf32-mcore.c has no backend create_dynamic_sections function so can't support shared libs. * emulparams/elf32mcore.sh (GENERATE_SHLIB_SCRIPT): Don't define. commit 05a5feafdd3869b81533993a23c344d60baa56de Author: Alan Modra Date: Thu Dec 7 17:50:57 2017 +1030 Rewrite check_shared_lib_support * testsuite/lib/ld-lib.exp (check_shared_lib_support): Ask ld under test whether -shared is supported. commit 34ac47f671d870c62635cac209d8df4250f20192 Author: GDB Administrator Date: Thu Dec 7 00:00:30 2017 +0000 Automatic date update in version.in commit 649a140ccf129ff79ea55ac0cc23ebddec0f02ef Author: Pedro Alves Date: Wed Dec 6 17:45:09 2017 -0500 target_set_syscall_catchpoint, use gdb::array_view and bool I noticed that we're passing down a data/size pair to target_ops::to_set_syscall_catchpoint. This commit makes use of gdb::array_view instead. While at it, use bool where appropriate as well. gdb/ChangeLog: * break-catch-syscall.c (insert_catch_syscall) (remove_catch_syscall): Adjust to pass reference to inf_data->syscalls_counts directly via gdb::array_view. * fbsd-nat.c (fbsd_set_syscall_catchpoint): Adjust to use bool and gdb::array_view. * linux-nat.c (linux_child_set_syscall_catchpoint): Likewise. * remote.c (remote_set_syscall_catchpoint): Likewise. * target-debug.h (target_debug_print_bool): New. (define target_debug_print_gdb_array_view_const_int): New. * target-delegates.c: Regenerate. * target.h (target_ops) : Use gdb::array_view and bool. (target_set_syscall_catchpoint): Likewise. commit 9a93831ccc0ba3ba447552069f230e6d93dcbf3f Author: Simon Marchi Date: Wed Dec 6 16:27:33 2017 -0500 Fix syscall group completion The test gdb.base/catch-syscall.exp has been failing since commit 3d415c26bad3a15eed00d2ddf85c4268df77a4cc Remove cleanups from break-catch-syscall.c The reason is that we are putting into the group_ptr array a pointer to the buffer of the local string object. If the string is small enough to fit in the internal string buffer (used for small string optimizations), the pointer will point to the local object directly. So even if we std::move the string to the vector, the pointer in group_ptr will still point to the local object. When we reuse that object (technically a new instance, but most likely the same memory) for the next syscall, we'll overwrite the previous string. The result is that we'll get less results than expected, since there will be duplicates. We'll also run into problems if we push the string to the vector, and then record the c_str () pointer using the string object in the vector. The vector might get reallocated, the string may move in memory, and our pointer in group_ptr will point to stale memory. Instead, we have to push all the strings first, then, when we know the vector won't change anymore, build the group_ptr array. This is what this patch does. gdb/ChangeLog: * break-catch-syscall.c (catch_syscall_completer): Get pointers to syscall group strings after building the string vector. commit 1c9c7ce078427891a94dc7604ce9e62175ebfda5 Author: Jim Wilson Date: Wed Dec 6 10:34:36 2017 -0800 Objcopy interleave fails if section address not multiple of interleave. PR 22465 binutils/ * objcopy.c (copy_section): New local extra. If isection->lma not exactly divisible by interleave, then bias from. Also adjust osection->lma if necessary. ld/ * testsuite/ld-elf/interleave-0.d, testsuite/ld-elf/interleave-4.d, * testsuite/ld-elf/interleave.ld, testsuite/ld-elf/interleave.s: New. commit 7cc244debb587d0f6179d80b5ca9b0ee86e9ab72 Author: Pedro Alves Date: Wed Dec 6 11:28:47 2017 +0000 remote: Make qXfer packets respect corresponding "set remote foo-packet" I've noticed that "set remote target-features-packet off" before connecting has no effect -- GDB still fetches a target description anyway. The problem is that while most "set remote foo-packet" commands were fixed by: From 4082afcc3d1af9d8063d1c8e02deb34a8b97a489 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 25 Apr 2014 18:07:02 +0100 Subject: [PATCH] Fix several "set remote foo-packet on/off" commands. the "qXfer" packets where missed. This commit fixes that. I've changed remote_search_memory too for consistency (seems like those are the last direct references to packet->support), though the difference is not observable because the qSearch:memory packet is auto probed. Note gdb.base/find-unmapped.exp already exercises explicit "set remote search-memory-packet off". gdb/ChangeLog: 2017-12-06 Pedro Alves * remote.c (remote_query_supported): Don't send "xmlRegisters=" if "qXfer:features:read"" is disabled. (remote_write_qxfer, remote_read_qxfer, remote_search_memory): Check packet_config_support instead of packet->support directly. gdb/testsuite/ChangeLog: 2017-12-06 Pedro Alves * gdb.arch/i386-avx.exp: If testing with a RSP target, check force-disabling XML descriptions. -- gdb/remote.c | 16 +++++++++------- gdb/testsuite/gdb.arch/i386-avx.exp | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 7 deletions(-) commit 846fefbdb2280374ad91afca3d24fa0c3fa26f96 Author: Nick Clifton Date: Wed Dec 6 10:04:51 2017 +0000 Tell the linker testsuite that lm32-rtems toolchains do not support the generation of shared libraries. * testsuite/lib/ld-lib.exp (check_shared_lib_support): Return false for lm32-rtems targets. commit 9c1ce1085070f42718e341d89a28881edd96161f Author: Alan Modra Date: Wed Dec 6 17:32:48 2017 +1030 PR22552, readelf heap buffer overflow in load_debug_section PR 22552 * readelf.c (process_file_header): Don't assume XINDEX case value for e_shstrndx is within bounds. (load_debug_section): Sanity test e_shstrndx before attempting to read .shstrtab. Wrap long lines. commit 07d6d2b8345ef3dc82eab49635acac9ee67dbb18 Author: Alan Modra Date: Wed Dec 6 09:26:00 2017 +1030 BFD whitespace fixes Binutils is supposed to use tabs. In my git config I have whitespace = indent-with-non-tab,space-before-tab,trailing-space and I got annoyed enough seeing red in "git diff" output to fix the problems. * doc/header.sed: Trim trailing space when splitting lines. * aix386-core.c, * aout-adobe.c, * aout-arm.c, * aout-cris.c, * aout-ns32k.c, * aout-target.h, * aout-tic30.c, * aoutf1.h, * aoutx.h, * arc-got.h, * arc-plt.def, * arc-plt.h, * archive.c, * archive64.c, * archures.c, * armnetbsd.c, * bfd-in.h, * bfd.c, * bfdio.c, * binary.c, * bout.c, * cache.c, * cisco-core.c, * coff-alpha.c, * coff-apollo.c, * coff-arm.c, * coff-h8300.c, * coff-i386.c, * coff-i860.c, * coff-i960.c, * coff-m68k.c, * coff-m88k.c, * coff-mcore.c, * coff-mips.c, * coff-ppc.c, * coff-rs6000.c, * coff-sh.c, * coff-stgo32.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, * coff-we32k.c, * coff-x86_64.c, * coff-z80.c, * coff-z8k.c, * coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c, * coffswap.h, * compress.c, * corefile.c, * cpu-alpha.c, * cpu-arm.c, * cpu-avr.c, * cpu-bfin.c, * cpu-cr16.c, * cpu-cr16c.c, * cpu-crx.c, * cpu-d10v.c, * cpu-frv.c, * cpu-ft32.c, * cpu-i370.c, * cpu-i960.c, * cpu-ia64-opc.c, * cpu-ip2k.c, * cpu-lm32.c, * cpu-m32r.c, * cpu-mcore.c, * cpu-microblaze.c, * cpu-mips.c, * cpu-moxie.c, * cpu-mt.c, * cpu-nios2.c, * cpu-ns32k.c, * cpu-or1k.c, * cpu-powerpc.c, * cpu-pru.c, * cpu-sh.c, * cpu-spu.c, * cpu-v850.c, * cpu-v850_rh850.c, * cpu-xgate.c, * cpu-z80.c, * dwarf1.c, * dwarf2.c, * ecoff.c, * ecofflink.c, * ecoffswap.h, * elf-bfd.h, * elf-eh-frame.c, * elf-hppa.h, * elf-m10200.c, * elf-m10300.c, * elf-s390-common.c, * elf-strtab.c, * elf-vxworks.c, * elf.c, * elf32-am33lin.c, * elf32-arc.c, * elf32-arm.c, * elf32-avr.c, * elf32-avr.h, * elf32-bfin.c, * elf32-cr16.c, * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c, * elf32-d10v.c, * elf32-d30v.c, * elf32-dlx.c, * elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c, * elf32-ft32.c, * elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c, * elf32-i860.c, * elf32-i960.c, * elf32-ip2k.c, * elf32-lm32.c, * elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc11.c, * elf32-m68hc12.c, * elf32-m68hc1x.c, * elf32-m68hc1x.h, * elf32-m68k.c, * elf32-m88k.c, * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c, * elf32-mips.c, * elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c, * elf32-nds32.h, * elf32-nios2.c, * elf32-or1k.c, * elf32-pj.c, * elf32-ppc.c, * elf32-ppc.h, * elf32-pru.c, * elf32-rl78.c, * elf32-rx.c, * elf32-s390.c, * elf32-score.c, * elf32-score.h, * elf32-score7.c, * elf32-sh-symbian.c, * elf32-sh.c, * elf32-sh64.c, * elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilegx.c, * elf32-tilegx.h, * elf32-tilepro.c, * elf32-tilepro.h, * elf32-v850.c, * elf32-vax.c, * elf32-wasm32.c, * elf32-xc16x.c, * elf32-xgate.c, * elf32-xgate.h, * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c, * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c, * elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c, * elf64-tilegx.c, * elf64-tilegx.h, * elf64-x86-64.c, * elfcore.h, * elflink.c, * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c, * elfnn-riscv.c, * elfxx-aarch64.c, * elfxx-aarch64.h, * elfxx-ia64.c, * elfxx-ia64.h, * elfxx-mips.c, * elfxx-riscv.c, * elfxx-sparc.c, * elfxx-tilegx.c, * elfxx-x86.c, * elfxx-x86.h, * freebsd.h, * hash.c, * host-aout.c, * hp300hpux.c, * hppabsd-core.c, * hpux-core.c, * i386aout.c, * i386linux.c, * i386lynx.c, * i386mach3.c, * i386msdos.c, * i386netbsd.c, * ieee.c, * ihex.c, * irix-core.c, * libaout.h, * libbfd-in.h, * libbfd.c, * libcoff-in.h, * libnlm.h, * libpei.h, * libxcoff.h, * linker.c, * lynx-core.c, * m68k4knetbsd.c, * m68klinux.c, * m68knetbsd.c, * m88kmach3.c, * mach-o-aarch64.c, * mach-o-arm.c, * mach-o-i386.c, * mach-o-target.c, * mach-o-x86-64.c, * mach-o.c, * mach-o.h, * merge.c, * mipsbsd.c, * mmo.c, * netbsd.h, * netbsd-core.c, * newsos3.c, * nlm-target.h, * nlm32-ppc.c, * nlm32-sparc.c, * nlmcode.h, * ns32k.h, * ns32knetbsd.c, * oasys.c, * opncls.c, * pc532-mach.c, * pdp11.c, * pe-arm.c, * pe-i386.c, * pe-mcore.c, * pe-mips.c, * pe-x86_64.c, * peXXigen.c, * pef.c, * pef.h, * pei-arm.c, * pei-i386.c, * pei-mcore.c, * pei-x86_64.c, * peicode.h, * plugin.c, * ppcboot.c, * ptrace-core.c, * reloc.c, * riscix.c, * rs6000-core.c, * section.c, * som.c, * som.h, * sparclinux.c, * sparcnetbsd.c, * srec.c, * stabs.c, * sunos.c, * syms.c, * targets.c, * tekhex.c, * trad-core.c, * vax1knetbsd.c, * vaxnetbsd.c, * verilog.c, * versados.c, * vms-alpha.c, * vms-lib.c, * vms-misc.c, * wasm-module.c, * wasm-module.h, * xcofflink.c, * xsym.c, * xsym.h: Whitespace fixes. * bfd-in2.h, * libbfd.h, * libcoff.h: Regenerate. commit 65281396861dfcfa993eb5af4769d6837104890d Author: Alan Modra Date: Wed Dec 6 17:31:15 2017 +1030 Fix Common symbol override test fails Fixes fails on SH and NDS32 introduced by dyn_reloc tidy. * elf32-lm32.c (lm32_elf_check_relocs): Skip non-ALLOC sections. * elf32-m32r.c (m32r_elf_check_relocs): Likewise. * elf32-nds32.c (nds32_elf_check_relocs): Likewise. * elf32-or1k.c (or1k_elf_check_relocs): Likewise. * elf32-sh.c (sh_elf_check_relocs): Likewise. commit a3cc9aad2e3de033462d64c8e028e1a3587c63e9 Author: Alan Modra Date: Wed Dec 6 09:04:48 2017 +1030 Enable shared lib tests for frv, lm32, m32r, microblaze, nds32 and or1k These claim to support shared libs when configuring for -linux (in contrast to -elf which doesn't support shared libs). * testsuite/lib/ld-lib.exp (check_shared_lib_support): Return true for frv, lm32, m32r, microblaze, nds32 and or1k linux targets. commit 3bf083ed23b1337341129b810ed5da29ba8207f9 Author: Alan Modra Date: Tue Dec 5 10:03:03 2017 +1030 dyn_relocs tidy Many targets define their own dyn_relocs struct when they could use struct elf_dyn_relocs. This patch tidies that, and uses readonly_dynrelocs in a few more places. The SH adjust_dynamic_symbol had some really weird code dating back to 2002 that looked over dynamic relocations for any in SEC_HAS_CONTENTS or SEC_READONLY sections, rather than just the usual SEC_READONLY sections. So basically any dynamic relocation. What's more, the SH relocate_section has no support for emitting dynamic relocations in non-PIC. In other words, SH has no support for avoiding copy relocs in non-PIC. I've made that more obvious by using "if (0 && ..)" in asjust_dynamic_symbol. Unfortunately, LM32, M32R, NDS32, and OR1K copied the bogus SH adjust_dynamic_symbol code. So none of those targets would have avoided copy relocs. LM32, M32R, NDS32 get the "if (0)" treatment too. (LM32 is even more broken in that non_got_ref is never set.) OR1K relocate_section looks like it might support dynamic relocs in non-PIC, so I've enabled the copy reloc avoidance code for that target. * elf32-hppa.c (struct elf32_hppa_dyn_reloc_entry): Delete. Use struct elf_dyn_relocs throughout file instead. (elf32_hppa_adjust_dynamic_symbol): Comment tidy. * elf32-lm32.c (struct elf_lm32_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (lm32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-m32r.c (struct elf_m32r_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (m32r_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-metag.c (struct elf_metag_dyn_reloc_entry): Delete. Use struct elf_dyn_relocs throughout file instead. (elf_metag_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-microblaze.c (struct elf32_mb_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (readonly_dynrelocs): New function. (microblaze_elf_adjust_dynamic_symbol): Use it. * elf32-nds32.c (struct elf_nds32_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (nds32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-nios2.c (struct elf32_nios2_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. * elf32-or1k.c (struct elf_or1k_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (or1k_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-sh.c (struct elf_sh_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (sh_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable. Disable -z no-copyreloc too. * elf32-tilepro.c (struct tilepro_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (tilepro_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfnn-riscv.c (struct riscv_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (riscv_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfxx-sparc.c (struct _bfd_sparc_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (_bfd_sparc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elfxx-tilegx.c (struct tilegx_elf_dyn_relocs): Delete. Use struct elf_dyn_relocs throughout file instead. (tilegx_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs. * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs. commit dce2246a6c934bf35157e8970d0da5a11aefb282 Author: Alan Modra Date: Tue Dec 5 10:05:19 2017 +1030 Comment tidy Past tense is wrong for a comment before some action. * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Comment tidy. * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise. * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise. commit 8fbc617a46b015098876a7515c3a7ad6d1682876 Author: GDB Administrator Date: Wed Dec 6 00:00:23 2017 +0000 Automatic date update in version.in commit 0527614a9b805d1f640f477f51f9780403487ef8 Author: Jim Wilson Date: Tue Dec 5 14:42:12 2017 -0800 Really fix riscv shared library __global_pointer$ problem. ld/ * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Remove HIDDEN. Don't define __global_pointer$ when CREATE_SHLIB. * testsuite/ld-riscv-elf/gp-hidden-64.rd, * testsuite/ld-riscv-elf/gp-hidden-lib.rd, * testsuite/ld-riscv-elf/gp-hidden-lib.s, * testsuite/ld-riscv-elf/gp-hidden-ver-64.rd, * testsuite/ld-riscv-elf/gp-hidden-ver.rd, * testsuite/ld-riscv-elf/gp-hidden-ver.s, * testsuite/ld-riscv-elf/gp-hidden-ver.ver, * testsuite/ld-riscv-elf/gp-hidden.rd, * testsuite/ld-riscv-elf/gp-hidden.s, * testsuite/ld-riscv-elf/gp-hidden.sd: Delete. * testsuite/ld-riscv-elf/gp-test-lib.sd, * testsuite/ld-riscv-elf/gp-test.s, * testsuite/ld-riscv-elf/gp-test.sd: New. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Rewrite gp tests. commit 858c9d13240e695bc3b750368f5d4e524b12112e Author: Simon Marchi Date: Tue Dec 5 16:39:35 2017 -0500 Address review comments for the previous series I failed at git and missed adding/lost changes on the wrong branch, the result being that I didn't incorporate fixes resulting from Yao's review comments. This patch fixes that. There are two places where we should use the unique pointer typedef, and ChangeLog entries missing. gdb/ChangeLog: * target-descriptions.c (struct tdesc_feature) : Use tdesc_reg_up typedef. (struct target_desc) : Use tdesc_feature_up typedef. commit d4a0e8b57d6f85e4ee4a31e0e6929ff5b4fd9823 Author: Simon Marchi Date: Tue Dec 5 16:30:28 2017 -0500 Split tdesc_type into multiple classes This patch makes tdesc_type an abstract base class and creates three subclasses: - tdesc_type_builtin, for builtin types - tdesc_type_vector, for vector types - tdesc_type_with_fields, for struct, union, flag and enum types This allows getting rid of the union in tdesc_type and to not allow the std::vector separately. I tried to go further and create separate classes for struct, union, flag and enum, but it proved too difficult. One problem is that from the point of the of the target description code, the types tdesc_type_* are opaque (only forward-declared). Therefore, it doesn't know about inheritance relationship between those classes. This makes it impossible to make functions that accept a pointer to a base class and pass a pointer to a derived class, for example. I think this patch here is a good compromise, and if somebody wants to improve things further, the door is open. A make_gdb_type virtual pure method is added to tdesc_type, which replaces the current tdesc_gdb_type function. Calling this method on a tdesc_type returns the corresponding built gdb type. gdb/ChangeLog: * target-descriptions.c (struct tdesc_type): Use default destructor. : Remove. : Remove. (struct tdesc_type_builtin): New. (struct tdesc_type_vector): New. (struct tdesc_type_with_fields): New. (tdesc_predefined_types): Change type to tdesc_type_builtin[]. (tdesc_gdb_type): Remove. (tdesc_register_type): Adjust. (tdesc_create_vector): Create tdesc_type_vector. (tdesc_create_struct): Create tdesc_type_with_fields. (tdesc_set_struct_size): Change parameter type. (tdesc_create_union): Create tdesc_type_with_fields. (tdesc_create_flags): Likewise. (tdesc_create_enum): Likewise. (tdesc_add_field): Change parameter type. (tdesc_add_typed_bitfield): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. (tdesc_add_enum_value): Likewise. (print_c_tdesc) : Remove overload with tdesc_type parameter, add overloads for tdesc_type_builtin, tdesc_type_with_fields and tdesc_type_vector. : Remove. : Add. * target-descriptions.h (tdesc_create_enum): Change return type. (tdesc_add_typed_bitfield): Change parameter type. (tdesc_add_enum_value): Change parameter type. * xml-tdesc.c (struct tdesc_parsing_data) : Change type to tdesc_type_with_fields. (tdesc_start_struct): Adjust. (tdesc_start_flags): Adjust. (tdesc_start_enum): Adjust. (tdesc_start_field): Adjust. * arch/tdesc.h (struct tdesc_type_builtin): Forward-declare. (struct tdesc_type_vector): Forward-declare. (struct tdesc_type_with_fields): Forward-declare. (tdesc_create_struct): Change return type. (tdesc_create_union): Likewise. (tdesc_create_flags): Likewise. (tdesc_add_field): Change parameter type. (tdesc_set_struct_size): Likewise. (tdesc_add_bitfield): Likewise. (tdesc_add_flag): Likewise. * features: Re-generate C files. gdb/gdbserver/ChangeLog: * tdesc.c (struct tdesc_type): Change return type. (tdesc_add_flag): Change parameter type. (tdesc_add_bitfield): Likewise. (tdesc_add_field): Likewise. (tdesc_set_struct_size): Likewise. commit f0cddbef410cb626ea87b3a954bd4e3d7526115e Author: Simon Marchi Date: Tue Dec 5 16:30:27 2017 -0500 Make tdesc_arch_data::arch_regs an std::vector Make tdesc_arch_data::arch_regs be an std::vector of tdesc_arch_reg objects. On particularity is that the tdesc_arch_data linked to a gdbarch is allocated on the gdbarch's obstack. To be safe, I did not change it and called placement-new on the area returned by OBSTACK_ZALLOC. gdb/ChangeLog: * target-descriptions.c (tdesc_arch_reg): Remove typedef. (struct tdesc_arch_reg): Add constructor. (DEF_VEC_O (tdesc_arch_reg)): Remove. (struct tdesc_arch_data): Initialize fields. : Change type to std::vector. (target_find_description): Adjust. (tdesc_find_type): Adjust. (tdesc_data_init): Call tdesc_arch_data constructor. (tdesc_data_alloc): Allocate tdesc_arch_data with new. (tdesc_data_cleanup): Free data with delete. (tdesc_numbered_register): Adjust. (tdesc_find_arch_register): Adjust. (tdesc_use_registers): Adjust. commit d05200d155f065b93e2dc353a7d33408c7574e9c Author: Simon Marchi Date: Tue Dec 5 16:30:26 2017 -0500 Make tdesc_type::u::u::fields an std::vector This patch makes the tdesc_type::u::u::fields an std::vector of tdesc_type_field. The difficulty here is that the vector is part of a union. Because of this, I made fields a pointer to a vector, and instantiate/destroy the vector if the type is one that uses this member of the union The field tdesc_type_field::name is changed to an std::string at the same time. gdb/ChangeLog: * target-descriptions.c (tdesc_type_field): Remove typedef. (DEF_VEC_O (tdesc_type_field)): Remove. (struct tdesc_type_field): Add constructor. : Change type to std::string. (struct tdesc_type) : Instantiate vector if the type kind uses it. <~tdesc_type>: Destroy vector if the type kind uses it. : Change type to std::vector. (tdesc_gdb_type): Adjust. (tdesc_add_field): Adjust. (tdesc_add_typed_bitfield): Adjust. (tdesc_add_field): Adjust. (tdesc_add_enum_value): Adjust. (class print_c_tdesc) : Adjust. commit 082b9140d953b9e6a78271384ec48ff5d0ba8fad Author: Simon Marchi Date: Tue Dec 5 16:30:26 2017 -0500 Make tdesc_type::name an std::string This patch makes tdesc_type::name an std::string. This way, we don't need to free it manually in ~tdesc_type. I think the comment on top of name is not correct, the string is always malloc'ed. gdb/ChangeLog: * target-descriptions.c (struct tdesc_type) : Change type to std::string. <~tdesc_type>: Don't manually free name. : Adjust. (tdesc_named_type): Adjust. (tdesc_find_type): Adjust. (tdesc_gdb_type): Adjust. (class print_c_tdesc) : Adjust. commit 53c934e9fed9a35542661690e4e71febcbebb539 Author: Simon Marchi Date: Tue Dec 5 16:30:25 2017 -0500 Make tdesc_feature::types an std::vector This patch makes tdesc_feature::types an std::vector of unique_ptr of tdesc_type. This way, we don't need to manually free the objects and the vector in ~tdesc_feature. gdb/ChangeLog: * target-descriptions.c (tdesc_type_p): Remove typedef. (DEF_VEC_P (tdesc_type_p)): Remove. (struct tdesc_feature) : Change type to std::vector. <~tdesc_feature>: Replace with default implementation. : Adjust. (tdesc_named_type): Adjust. (tdesc_create_vector): Adjust. (tdesc_create_struct): Adjust. (tdesc_create_union): Adjust. (tdesc_create_flags): Adjust. (tdesc_create_enum): Adjust. commit a8142ee195063e8c7202429e80ee58185c34b3fc Author: Simon Marchi Date: Tue Dec 5 16:30:25 2017 -0500 Make tdesc_reg string fields std::string Make the name, group and type fields of tdesc_reg std::strings. This way, we don't have to manually free them in ~tdesc_reg. Doing so results in a small change in the generated tdesc. Instead of passing an empty string for the group parameter of tdesc_create_reg, the two modified tdesc now pass NULL. The end result should be the same. gdb/ChangeLog: * target-descriptions.c (struct tdesc_reg) : Change type of name_ parameter, adjust to std::string change. : Change type to std::string. <~tdesc_reg>: Replace with default implementation. : Adjust. (tdesc_find_register_early): Adjust. (tdesc_register_name): Adjust. (tdesc_register_type): Adjust. (tdesc_register_in_reggroup_p): Adjust. (class print_c_tdesc) : Adjust. (class print_c_feature) : Adjust. commit c9c895b9666e33a2b910faf9c1b667ea665f00f1 Author: Simon Marchi Date: Tue Dec 5 16:30:24 2017 -0500 Make tdesc_feature::registers an std::vector This patch makes tdesc_feature::registers an std::vector of unique_ptr to tdesc_reg. This way, we don't have to manually free the tdesc_reg objects and the vector in the tdesc_feature destructor. gdb/ChangeLog: * target-descriptions.c (tdesc_reg_p): Remove typedef. (DEF_VEC_P (tdesc_reg_p)): Remove. (struct tdesc_feature) : Change type to std::vector. <~tdesc_feature>: Don't manually free registers. : Adjust. : Adjust. (tdesc_has_registers): Adjust. (tdesc_find_register_early): Adjust. (tdesc_use_registers): Adjust. (tdesc_create_reg): Adjust. commit f65ff9f9a4add415e5ae332a094b2134c1625517 Author: Simon Marchi Date: Tue Dec 5 16:30:24 2017 -0500 Make tdesc_feature::name an std::string ... so we don't have to manually free it in ~tdesc_feature. gdb/ChangeLog: * target-descriptions.c (tdesc_feature) : Change type to std::string. <~tdesc_feature>: Don't manually free name. : Adjust. (tdesc_find_feature): Adjust. (tdesc_feature_name): Adjust. (class print_c_tdesc) : Adjust. (class print_c_feature) : Adjust. commit 3eea796c5daeb7b60531fc3d707470fa91a86e11 Author: Simon Marchi Date: Tue Dec 5 16:30:23 2017 -0500 Make target_desc::features an std::vector This patch makes target_desc to be a vector of unique_ptr to tdesc_feature objects. This way, we don't have to manually free the features and the vector in the target_desc destructor. gdb/ChangeLog: * target-descriptions.c (tdesc_feature_p): Remove typedef. (DEF_VEC_P (tdesc_feature_p)): Remove. (struct target_desc) : Change type to std::vector. <~target_desc>: Replace with default implementation. : Adjust. : Adjust. (tdesc_has_registers): Adjust. (tdesc_find_feature): Adjust. (tdesc_use_registers): Adjust. (tdesc_create_feature): Adjust. commit 40e2a9835f6cf47b630babef3fd788e413ef2dc5 Author: Simon Marchi Date: Tue Dec 5 16:30:22 2017 -0500 Make target_desc::compatible an std::vector This patch changes target_desc::compatible to be a vector of bfd_arch_info *. This way, we don't need to manually free the vector in the target_desc destructor. gdb/ChangeLog: * target-descriptions.c (arch_p): Remove typedef. (DEF_VEC_P (arch_p)): Remove. (struct target_desc) : Change type to std::vector. <~target_desc>: Don't manually free compatible. (tdesc_compatible_p): Adjust. (tdesc_add_compatible): Adjust. (class print_c_tdesc) : Adjust. commit 129c10bcb9b3bc2ed9682040aa9a0d144bb5e959 Author: Simon Marchi Date: Tue Dec 5 16:30:22 2017 -0500 Make target_desc::properties an std::vector This patch changes target_desc::properties to be a vector of property objects. This way, we don't need to manually free the property members as well as the property objects themselves. gdb/ChangeLog: * target-descriptions.c (property_s): Remove typedef. (DEF_VEC_O (property_s)): Remove. (struct target_desc) : Make an std::vector. <~target_desc>: Don't manually free properties. (tdesc_property): Adjust. (set_tdesc_property): Adjust. (class print_c_tdesc) : Adjust. commit ed9376bd95c52ba00aa37b224b4407030a00d184 Author: Simon Marchi Date: Tue Dec 5 16:15:08 2017 -0500 Redefine gdb_static_assert as static_assert Since we use C++11, we can use static_assert instead doing the trick that makes a negative-sized array if the expression is false. static_assert is built in the language and gives clearer error messages. To avoid modifying the usages of gdb_static_assert, redefine gdb_static_assert in terms of static_assert, passing an empty message. If we want to add an assert with a message, it's always possible to use static_assert directly. gdb/ChangeLog: * common/gdb_assert.h (gdb_static_assert): Redefine using static_assert. commit 798a7429f980a00844c22dfdda9475c451c635d4 Author: Simon Marchi Date: Tue Dec 5 16:05:34 2017 -0500 Remove some unused variables This patch removes some unused variables, found with -Wunused. I have not removed everything reported by -Wunused, because some expressions such as struct type *arg_type = check_typedef (value_type); in bfin-tdep.c could have an unexpected but important side-effect. I removed others that I considered more low-risk, such as: struct gdbarch *gdbarch = get_objfile_arch (objfile); I tested building with Python 2/Python 3/no Python, with/without expat, with/without libipt and with/without babeltrace. gdb/ChangeLog: * ada-lang.c (ada_collect_symbol_completion_matches): Remove unused variables. (ada_is_redundant_range_encoding): Likewise. * ada-varobj.c (ada_varobj_get_value_of_array_variable): Likewise. * alpha-tdep.c (alpha_software_single_step): Likewise. * arm-tdep.c (_initialize_arm_tdep): Likewise. * auto-load.c (info_auto_load_cmd): Likewise. * break-catch-syscall.c (insert_catch_syscall): Likewise. (remove_catch_syscall): Likewise. * breakpoint.c (condition_completer): Likewise. (clear_command): Likewise. (update_breakpoint_locations): Likewise. * btrace.c (btrace_disable): Likewise. (btrace_teardown): Likewise. (btrace_maint_update_pt_packets): Likewise. (maint_btrace_clear_cmd): Likewise. * cli/cli-decode.c (lookup_cmd_1): Likewise. (lookup_cmd_composition): Likewise. * cli/cli-dump.c (scan_filename): Likewise. (restore_command): Likewise. * compile/compile-loc2c.c (compute_stack_depth): Likewise. * compile/compile-object-load.c (compile_object_load): Likewise. * compile/compile-object-run.c (compile_object_run): Likewise. * compile/compile.c (compile_to_object): Likewise. * completer.c (filename_completer): Likewise. (complete_files_symbols): Likewise. (complete_expression): Likewise. * corelow.c (core_open): Likewise. * ctf.c (ctf_start): Likewise. (ctf_write_status): Likewise. (ctf_write_uploaded_tsv): Likewise. (ctf_write_definition_end): Likewise. (ctf_open_dir): Likewise. (ctf_xfer_partial): Likewise. (ctf_trace_find): Likewise. * disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): Likewise. * dwarf2loc.c (allocate_piece_closure): Likewise. (indirect_pieced_value): Likewise. (dwarf2_evaluate_loc_desc_full): Likewise. * dwarf2read.c (dw2_expand_marked_cus): Likewise. (dw2_expand_symtabs_matching): Likewise. (dw2_map_symbol_filenames): Likewise. (read_and_check_comp_unit_head): Likewise. (read_cutu_die_from_dwo): Likewise. (lookup_dwo_unit): Likewise. (read_comp_units_from_section): Likewise. (dwarf2_compute_name): Likewise. (handle_DW_AT_stmt_list): Likewise. (create_cus_hash_table): Likewise. (create_dwp_v2_section): Likewise. (dwarf2_rnglists_process): Likewise. (dwarf2_ranges_process): Likewise. (dwarf2_record_block_ranges): Likewise. (is_vtable_name): Likewise. (read_formatted_entries): Likewise. (skip_form_bytes): Likewise. * elfread.c (elf_symtab_read): Likewise. * exec.c (exec_file_command): Likewise. * f-valprint.c (f_val_print): Likewise. (info_common_command_for_block): Likewise. * guile/guile.c (initialize_scheme_side): Likewise. * guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Likewise. * guile/scm-cmd.c (cmdscm_completer): Likewise. (gdbscm_register_command_x): Likewise. * guile/scm-frame.c (gdbscm_frame_read_var): Likewise. * guile/scm-param.c (gdbscm_parameter_value): Likewise. * guile/scm-ports.c (file_port_magic): Likewise. * guile/scm-pretty-print.c (ppscm_search_pp_list): Likewise. (ppscm_pretty_print_one_value): Likewise. (ppscm_print_children): Likewise. * guile/scm-string.c (gdbscm_string_to_argv): Likewise. * guile/scm-symtab.c (gdbscm_sal_symtab): Likewise. * guile/scm-type.c (gdbscm_type_next_field_x): Likewise. * guile/scm-utils.c (gdbscm_parse_function_args): Likewise. * i386-tdep.c (i386_register_reggroup_p): Likewise. * infcmd.c (run_command_1): Likewise. (until_next_fsm_clean_up): Likewise. * linespec.c (linespec_complete): Likewise. (find_label_symbols): Likewise. * m2-valprint.c (m2_val_print): Likewise. * memattr.c (require_user_regions): Likewise. (lookup_mem_region): Likewise. (disable_mem_command): Likewise. (mem_delete): Likewise. * mep-tdep.c (mep_register_name): Likewise. (mep_analyze_prologue): Likewise. * mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Likewise. * mi/mi-interp.c (mi_on_sync_execution_done): Likewise. * mi/mi-main.c (mi_cmd_trace_frame_collected): Likewise. * microblaze-linux-tdep.c (microblaze_linux_init_abi): Likewise. * minidebug.c (lzma_open): Likewise. * minsyms.c (lookup_minimal_symbol): Likewise. * mips-linux-tdep.c (mips64_fill_fpregset): Likewise. * mips-tdep.c (mips_stub_frame_sniffer): Likewise. (mips_o64_return_value): Likewise. (mips_single_step_through_delay): Likewise. (_initialize_mips_tdep): Likewise. * nios2-tdep.c (nios2_push_dummy_call): Likewise. (nios2_software_single_step): Likewise. * parse.c (find_minsym_type_and_address): Likewise. * psymtab.c (psym_relocate): Likewise. * python/py-breakpoint.c (bppy_get_commands): Likewise. (gdbpy_breakpoint_modified): Likewise. * python/py-infevents.c (create_inferior_call_event_object): Likewise. * python/py-record-btrace.c (btpy_list_item): Likewise. * python/py-type.c (typy_str): Likewise. * python/py-value.c (valpy_call): Likewise. * python/python.c (do_start_initialization): Likewise. * record-btrace.c (record_btrace_insn_history_range): Likewise. (record_btrace_call_history_range): Likewise. (record_btrace_record_method): Likewise. (record_btrace_xfer_partial): Likewise. (btrace_get_frame_function): Likewise. * record-full.c (record_full_open): Likewise. * record.c (get_context_size): Likewise. * registry.h (DEFINE_REGISTRY): Likewise. * remote-fileio.c (remote_fileio_request): Likewise. * remote.c (remote_update_thread_list): Likewise. (remote_check_symbols): Likewise. (remote_commit_resume): Likewise. (remote_interrupt): Likewise. (remote_insert_breakpoint): Likewise. (compare_sections_command): Likewise. * rust-exp.y (super_name): Likewise. (lex_string): Likewise. (convert_ast_to_type): Likewise. (convert_ast_to_expression): Likewise. * rust-lang.c (rust_print_struct_def): Likewise. (rust_print_type): Likewise. (rust_evaluate_subexp): Likewise. * rx-tdep.c (rx_register_type): Likewise. * ser-event.c (serial_event_clear): Likewise. * serial.c (serial_open): Likewise. * spu-tdep.c (spu_overlay_new_objfile): Likewise. * symfile.c (section_is_overlay): Likewise. (overlay_unmapped_address): Likewise. (overlay_mapped_address): Likewise. (simple_overlay_update_1): Likewise. (simple_overlay_update): Likewise. * symtab.c (symbol_find_demangled_name): Likewise. (search_symbols): Likewise. * target-descriptions.c (tdesc_predefined_type): Likewise. * target.c (target_commit_resume): Likewise. * thread.c (print_selected_thread_frame): Likewise. * top.c (new_ui_command): Likewise. (gdb_readline_no_editing): Likewise. * tracefile-tfile.c (tfile_open): Likewise. * tracepoint.c (create_tsv_from_upload): Likewise. * utils.c (quit): Likewise. (defaulted_query): Likewise. * valarith.c (value_concat): Likewise. * xml-syscall.c (xml_list_syscalls_by_group): Likewise. * xml-tdesc.c (target_fetch_description_xml): Likewise. * xtensa-tdep.c (xtensa_pseudo_register_read): Likewise. (xtensa_pseudo_register_write): Likewise. gdb/gdbserver/ChangeLog: * regcache.c (registers_to_string): Remove unused variable. commit da02107a39f3eff5e0b6d6321da4e88f9564350a Author: Jim Wilson Date: Mon Dec 4 17:37:55 2017 -0800 Riscv shared libraries should not export __global_pointer$. ld/ * emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Mark __global_pointer$ as HIDDEN. * testsuite/ld-riscv-elf/gp-hidden-64.rd: New. * testsuite/ld-riscv-elf/gp-hidden-lib.rd: New. * testsuite/ld-riscv-elf/gp-hidden-lib.s: New. * testsuite/ld-riscv-elf/gp-hidden-ver-64.rd: New. * testsuite/ld-riscv-elf/gp-hidden-ver.rd: New. * testsuite/ld-riscv-elf/gp-hidden-ver.s: New. * testsuite/ld-riscv-elf/gp-hidder-ver.ver: New. * testsuite/ld-riscv-elf/gp-hidden.rd: New. * testsuite/ld-riscv-elf/gp-hidden.s: New. * testsuite/ld-riscv-elf/gp-hidden.sd: New. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Change riscv to riscv*. Run the new tests with run_ld_link_tests. commit 4d7efb8ce25f6d2c74c8073fbca880211cedda34 Author: GDB Administrator Date: Tue Dec 5 00:00:22 2017 +0000 Automatic date update in version.in commit 3e1a70a0189ae8d2dacfef93790e42e42e721762 Author: Sergio Lopez Date: Mon Dec 4 09:17:16 2017 +0100 Extend gdb.core/coredump-filter.exp to test dump-excluded-mappings. gdb/testsuite/ChangeLog: 2017-11-30 Sergio Lopez * gdb.core/coredump-filter.exp: Extend test to verify the functionality of the dump-excluded-mappings command. commit c179febe79bf2fe2f64852c827813fc46da819f5 Author: Sergio Lopez Date: Mon Dec 4 09:17:15 2017 +0100 Document the new "-a" command line option for gcore gdb/ChangeLog: 2017-11-29 Sergio Lopez * NEWS (Changes since GDB 8.0): Announce new "-a" command line option for gcore. gdb/doc/ChangeLog: 2017-11-29 Sergio Lopez * gdb.texinfo (gcore man): Document new "-a" command line option. commit cd93789b89f55355d3eeda6c31ed7bd0ed318acd Author: Sergio Lopez Date: Mon Dec 4 09:17:14 2017 +0100 Implement "-a" command line option for gcore With the new "-a" command line option, the user may request gcore to actually dump all present memory mappings. The actual effect of this argument is OS dependent. On GNU/Linux, it will disable use-coredump-filter and enable dump-excluded-mappings. gdb/ChangeLog: 2017-11-29 Sergio Lopez * gcore.in: Add "-a" command line option for instructing gdb to dump all memory mappings (OS dependent). commit 1e52e8495a074c9d1f7ef17f13b9060b76be6f41 Author: Sergio Lopez Date: Mon Dec 4 09:17:13 2017 +0100 Document new {set,show} dump-excluded-mappings commands. gdb/ChangeLog: 2017-11-29 Sergio Lopez * NEWS (Changes since GDB 8.0): Announce {set,show} dump_excluded_mappings commands. gdb/doc/ChangeLog: 2017-11-29 Sergio Lopez * gdb.texinfo (gcore): Mention new {set,show} dump-excluded-mappings commands. (set dump-excluded-mappings): Document new command. commit afa840dcc021eaeb975dcde3bedbf46ea0511717 Author: Sergio Lopez Date: Mon Dec 4 09:17:12 2017 +0100 Implement 'set dump-excluded-mappings' command Commit df8411da087dc05481926f4c4a82deabc5bc3859 implemented support for checking /proc/PID/coredump_filter, and also changed gcore behavior to unconditionally honor the VM_DONTDUMP flag, preventing sections marked as such for being dumped into the core file. This patch implements the 'set dump-excluded-mappings' command for instructing gdb to ignore the VM_DONTDUMP flag. Combined with 'set use-coredump-filter', this allows the user to restore the old behavior, dumping all sections (except the ones marked as IO) unconditionally. gdb/Changelog: 2017-11-29 Sergio Lopez * linux-tdep.c (dump_excluded_mappings): New variable. (dump_mapping_p): Use dump_excluded_mappings variable. (_initialize_linux_tdep): New command 'set dump_excluded_mappings'. commit 7403715e305f7733d8dfa4a8e1739f12f5180cb2 Author: Tom Tromey Date: Fri Dec 1 14:16:33 2017 -0700 Update manual for Rust change I realized today that a recent change to the Rust support required an update to the manual; and so I updated NEWS as well. 2017-12-04 Tom Tromey * NEWS: Mention Rust trait object inspection. 2017-12-04 Tom Tromey * gdb.texinfo (Rust): Update trait object status commit 50a1fdd59c1777672a9be0e81fe2301c2a115fce Author: Pedro Alves Date: Mon Dec 4 15:59:20 2017 +0000 Fix displaced-stepping RIP-relative VEX-encoded instructions (AVX) (PR gdb/22499) PR gdb/22499 is about a latent bug exposed by the switch to "maint set target-non-stop on" by default on x86-64 GNU/Linux, a while ago. With that on, GDB is also preferring to use displaced-stepping by default. The testcase in the bug is failing because GDB ends up incorrectly displaced-stepping over a RIP-relative VEX-encoded instruction, like this: 0x00000000004007f5 <+15>: c5 fb 10 05 8b 01 00 00 vmovsd 0x18b(%rip),%xmm0 # 0x400988 While RIP-relative instructions need adjustment when relocated to the scratch pad, GDB ends up just copying VEX-encoded instructions to the scratch pad unmodified, with the end result that the inferior ends up executing an instruction that fetches/writes memory from the wrong address... This patch teaches GDB about the VEX-encoding prefixes, fixing the problem, and adds a testcase that fails without the GDB fix. I think we may need a similar treatment for EVEX-encoded instructions, but I didn't address that simply because I couldn't find any EVEX-encoded RIP-relative instruction in the gas testsuite. In any case, this commit is forward progress as-is already. gdb/ChangeLog: 2017-12-04 Pedro Alves PR gdb/22499 * amd64-tdep.c (amd64_insn::rex_offset): Rename to... (amd64_insn::enc_prefix_offset): ... this, and tweak comment. (vex2_prefix_p, vex3_prefix_p): New functions. (amd64_get_insn_details): Adjust to rename. Also skip VEX2 and VEX3 prefixes. (fixup_riprel): Set VEX3.!B. gdb/testsuite/ChangeLog: 2017-12-04 Pedro Alves PR gdb/22499 * gdb.arch/amd64-disp-step-avx.S: New file. * gdb.arch/amd64-disp-step-avx.exp: New file. commit 826c3f1edc2f9da4594aed86b57a7b447a46016d Author: Alan Modra Date: Sat Dec 2 14:48:50 2017 +1030 x86 map file textrel bfd/ * elfxx-x86.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function. Always prints via minfo and correct "readonly" to "read-only" in warning message., replacing.. (_bfd_x86_elf_readonly_dynrelocs): ..this. (_bfd_x86_elf_size_dynamic_sections): Correct "readonly" to "read-only" in warning message. Formatting. (_bfd_x86_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. * linker.c (bfd_link_hash_traverse): Comment typo fix. ld/ * testsuite/ld-i386/pr17935-1.d: Adjust expected error. * testsuite/ld-i386/pr17935-2.d: Likewise. * testsuite/ld-x86-64/pr17935-1.d: Likewise. * testsuite/ld-x86-64/pr17935-2.d: Likewise. commit e21126b7b381a9083e6670ca9adaad6060e376d1 Author: Alan Modra Date: Mon Dec 4 22:25:45 2017 +1030 Documentation fix PR 22544 * doc/as.texinfo (8byte): Correct. commit c88f7cba81551fe60246af61ac41effa2d51d36a Author: GDB Administrator Date: Mon Dec 4 00:00:26 2017 +0000 Automatic date update in version.in commit 48f7f3036a792c655c98b0742574841743e38f58 Author: Alan Modra Date: Mon Dec 4 10:12:46 2017 +1030 Run powerpc vle gas tests for all powerpc ELF targets * testsuite/gas/ppc/ppc.exp: Don't exclude VLE tests when little-endian. * testsuite/gas/ppc/efs.d: Add -mbig to assembler options. * testsuite/gas/ppc/efs2.d: Likewise. * testsuite/gas/ppc/lsp-checks.d: Likewise. * testsuite/gas/ppc/lsp.d: Likewise. * testsuite/gas/ppc/spe.d: Likewise. * testsuite/gas/ppc/spe2-checks.d: Likewise. * testsuite/gas/ppc/spe2.d: Likewise. * testsuite/gas/ppc/spe_ambiguous.d: Likewise. * testsuite/gas/ppc/vle-mult-ld-st-insns.d: Likewise. * testsuite/gas/ppc/vle-reloc.d: Likewise. * testsuite/gas/ppc/vle-simple-1.d: Likewise. * testsuite/gas/ppc/vle-simple-2.d: Likewise. * testsuite/gas/ppc/vle-simple-3.d: Likewise. * testsuite/gas/ppc/vle-simple-4.d: Likewise. * testsuite/gas/ppc/vle-simple-5.d: Likewise. * testsuite/gas/ppc/vle-simple-6.d: Likewise. * testsuite/gas/ppc/vle.d: Likewise. commit 97d4213f68ce37efe4c957f761e500a13b19f16f Author: Alan Modra Date: Mon Dec 4 08:38:35 2017 +1030 Modify ppceabi ld tests to run on all powerpc ELF targets * testsuite/ld-powerpc/powerpc.exp (ppceabitests): Add -a32 -mbig to assembler options, and -melf32ppc to linker options. Always run these tests. commit fed44c60b3a3ded5e60982af7412d20603054910 Author: Jim Wilson Date: Sun Dec 3 15:11:07 2017 -0800 Fix for texinfo 4.8. gas/ * doc/c-riscv.texi (RISC-V-Directives): Move @section immediately after @node. commit 1e97a22796cced8bba3359df46e8c2883653516f Author: Simon Marchi Date: Sun Dec 3 13:01:03 2017 -0500 Remove mem_region_vector typedef Now that make-target-delegates understands namespaces and templates, this typedef is no longer useful. gdb/ChangeLog: * target.h (mem_region_vector): Remove. (struct target_ops) : Change return type to std::vector. * target-debug.h (target_debug_print_mem_region_vector): Rename to ... (target_debug_print_std_vector_mem_region): ... this. * target-delegates.c: Re-generate. commit 10f64178412d9c6e4f2faade0da271ab8be273c9 Author: Pedro Alves Date: Sun Dec 3 12:50:43 2017 -0500 Make make-target-delegates grok namespace scope op and template params The next patch will want to use gdb::array_view as parameter type of a target_ops method. However, that runs into a make-target-delegates limitation: target_debug_foo calls in target-delegates.c for parameters/return types with namespace scope operators ("::") or template parameters, end up looking like: @@ -1313,9 +1313,7 @@ debug_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int a fputs_unfiltered (", ", gdb_stdlog); target_debug_print_int (arg3); fputs_unfiltered (", ", gdb_stdlog); - target_debug_print_int (arg4); - fputs_unfiltered (", ", gdb_stdlog); - target_debug_print_int_p (arg5); + target_debug_print_gdb::array_view (arg4); which obviously isn't something that compiles. The problem is that make-target-delegates wasn't ever taught that '::', '<', and '>' can appear in parameter/return types. You could work around it by hidding the unsupported characters behind a typedef in the target method declaration, or by using an explicit TARGET_DEBUG_PRINTER, but it's better to just remove the limitation. While at it, also fix an "abuse" of reserved identifiers. gdb/ChangeLog: * make-target-delegates (munge_type): Also munge '<', '>', and ':'. Avoid double underscores in identifiers, and trailing underscores. * target-debug.h (target_debug_print_VEC_static_tracepoint_marker_p__p): Rename to ... (target_debug_print_VEC_static_tracepoint_marker_p_p): ... this. * target-delegates.c: Regenerate. commit f0fb2488c93c00fa1436a4813a375faa00a94de5 Author: Pedro Alves Date: Sun Dec 3 15:32:08 2017 +0000 Fix gdb.threads/process-dies-while-detaching.exp I noticed [1] a test bug in gdb.threads/process-dies-while-detaching.exp. Simplified, the test code in question looks somewhat like this: ~~~ # Detach from a process, and ensure that it exits after detaching. # This relies on inferior I/O. proc detach_and_expect_exit {test} { gdb_test_multiple "detach" $test .... set saw_prompt 0 set saw_inf_exit 0 while { !$saw_prompt && !$saw_inf_exit } { gdb_test_multiple "" $test { -re "exited, status=0" { set saw_inf_exit 1 } -re "$gdb_prompt " { set saw_prompt 1 } } } pass $test } ~~~ The bug is in the while loop's condition. We want to make sure we see both the inferior output and the prompt, so the loop's test should be: - while { !$saw_prompt && !$saw_inf_exit } { + while { !$saw_prompt || !$saw_inf_exit } { If we just fix that, the test starts failing though, because it exposes a couple latent problems: - When called from test_detach_killed_outside, the parent doesn't print "exited, status=0", because in that case the child dies with a signal, and so detach_and_expect_exit times out. Fix it by making the parent print "signaled, sig=9" in that case, and have the .exp expect it. - When testing against --target_board=native-gdbserver, sometimes we'd get this: ERROR: Process no longer exists ERROR: : spawn id exp9 not open while executing "expect { -i exp8 -timeout 220 -i $server_spawn_id eof { pass $test wait -i $server_spawn_id unset server_spawn_id } timeout { ..." ("uplevel" body line 1) invoked from within "uplevel $body" NONE : spawn id exp9 not open The problem is that: - inferior_spawn_id and server_spawn_id are the same when testing with gdbserver. - gdbserver exits after "detach", so we get an eof for $inferior_spawn_id in the loop in detach_and_expect_exit. That's the first "ERROR: Process no longer exists". - and then when we reach test_server_exit, server_spawn_id is already closed (because server_spawn_id==inferior_spawn_id). To handle this, make the loop in detach_and_expect_exit use an indirect spawn id list and remove $inferior_spawn_id from the list as soon as we got the inferior output we're expecting, so that the "eof" is left unprocessed until we reach test_server_exit. [1] I changed GDB in a way that should have made the test fail, but it didn't. gdb/testsuite/ChangeLog: 2017-12-03 Pedro Alves * gdb.threads/process-dies-while-detaching.c: Include and . (parent_function): Print distinct messages when waitpid fails, or the child exits with a signal, or the child exits for an unhandled reason. * gdb.threads/process-dies-while-detaching.exp (detach_and_expect_exit): New 'inf_output_re' parameter and use it. Wait for both inferior output and GDB's prompt. Use an indirect spawn id list. (do_detach): New parameter 'child_exit'. Use it to compute expected inferior output. (test_detach, test_detach_watch, test_detach_killed_outside): Adjust to pass down the expected child exit kind. commit f143cb5fc655e1ed0a6e15e6ba33af0d79ba1802 Author: Alan Modra Date: Sun Dec 3 21:51:45 2017 +1030 Fix "FAIL: VLE relocations 3" Correct sign extension. * ppc-opc.c (extract_li20): Rewrite. commit c0e15c9bfd6fb4bf36e5240838f6ebed1e1f4a7e Author: Simon Marchi Date: Sat Dec 2 20:36:46 2017 -0500 Remove for_each_inferior_with_data Remove for_each_inferior_with_data, replacing its sole usage with for_each_thread. gdb/gdbserver/ChangeLog: * inferiors.c (for_each_inferior_with_data): Remove. * inferiors.h (for_each_inferior_with_data): Remove. * server.c (handle_qxfer_threads_worker): Change parameter type. (handle_qxfer_threads_proper): Use for_each_thread. commit f004534791145669d7765f8122e48f21e1deeb94 Author: Simon Marchi Date: Sat Dec 2 20:37:53 2017 -0500 Remove for_each_inferior This patch removes for_each_inferior, replacing all its usages with for_each_thread. gdb/gdbserver/ChangeLog: * inferiors.c (for_each_inferior): Remove. (clear_inferiors): Use for_each_thread. * inferiors.h (for_each_inferior): Remove. * linux-low.c (linux_wait_for_event_filtered): Use for_each_thread. (linux_stabilize_threads): Likewise. * regcache.c (regcache_release): Likewise. * server.c (gdb_wants_all_threads_stopped): Likewise. (clear_pending_status_callback): Remove. (handle_status): Use for_each_thread. (captured_main): Likewise. * win32-low.c (child_init_thread_list): Likewise. (win32_clear_inferiors): Likewise. (fake_breakpoint_event): Likewise. commit 9521758bf967360fc1e18b2a2195d97ae19cb80d Author: Simon Marchi Date: Sat Dec 2 20:36:45 2017 -0500 Remove find_inferior All the usages of find_inferior were removed, so the function itself can be removed. gdb/gdbserver/ChangeLog: * inferiors.h (find_inferior): Remove. * inferiors.c (find_inferior): Remove. commit 8f86d7aa8504e9a557e807a3e37718055befcd84 Author: Simon Marchi Date: Sat Dec 2 20:36:44 2017 -0500 Update comments These functions were modified in the previous patch series, but I forgot to update some comments. gdb/gdbserver/ChangeLog: * linux-low.c (resume_status_pending_p): Update comment. (need_step_over_p): Update comment. commit e2b4407579df508f85de961dd693c9028e79d823 Author: Simon Marchi Date: Sat Dec 2 20:36:43 2017 -0500 Remove usages of find_inferior that call proceed_one_lwp Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (proceed_one_lwp): Return void, change parameter type. (unsuspend_and_proceed_one_lwp): Likewise. (proceed_all_lwps): Use for_each_thread. (unstop_all_lwps): Likewise. commit c80825ff32ba805982ef5e66e4fa1a80e019d47d Author: Simon Marchi Date: Sat Dec 2 20:36:42 2017 -0500 Remove usage of find_inferior in linux_resume Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (linux_resume_one_thread): Return void, take parameter directly. (linux_resume): Use for_each_thread. commit df3e4dbe661e522cc63d3dab15c3974713fba4dd Author: Simon Marchi Date: Sat Dec 2 20:36:41 2017 -0500 Remove usages of find_inferior in stop_all_lwps Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (send_sigstop_callback): Return void, change parameter type. Rename to... (send_sigstop): ... this. (suspend_and_send_sigstop_callback): Return void, change parameter type. Rename to... (suspend_and_send_sigstop): ... this. (stop_all_lwps): Use for_each_thread. commit 5a6b0a41dfc9b860f285ddb3a1e518299f614cd3 Author: Simon Marchi Date: Sat Dec 2 20:36:41 2017 -0500 Remove usage of find_inferior in linux_stabilize_threads Replace with find_thread. gdb/gdbserver/ChangeLog: * linux-low.c (lwp_running): Return bool, remove unused argument. (linux_stabilize_threads): Use find_thread. commit 39a64da5fc9ce6decd7e5ba0bacfeb2144d2bd63 Author: Simon Marchi Date: Sat Dec 2 20:36:40 2017 -0500 Remove usages of find_inferior in select_event_lwp Replace with find_thread/for_each_thread. I inlined the callbacks, because they are relatively simple. gdb/gdbserver/ChangeLog: * linux-low.c (select_singlestep_lwp_callback): Remove. (count_events_callback): Remove. (select_event_lwp_callback): Remove. (select_event_lwp): Use find_thread/for_each_thread. commit a1385b7b881d2b129f8c26fac8ad20bc406a1a6d Author: Simon Marchi Date: Sat Dec 2 20:36:39 2017 -0500 Remove usages of find_inferior calling not_stopped_callback Replace with find_thread. Writing a lambda inline in directly in the if conditions would be a bit messy, so I chose to assign them to variables instead. gdb/gdbserver/ChangeLog: * linux-low.c (not_stopped_callback): Return bool, take filter argument directly. (linux_wait_for_event_filtered): Use find_thread. (linux_wait_1): Likewise. commit 454296a2c1f3afe163e49730b9b396ffdd985e1f Author: Simon Marchi Date: Sat Dec 2 20:36:38 2017 -0500 Remove usage of find_inferior in find_lwp_pid Replace with find_thread. We could almost use find_thread_ptid, except that find_lwp_pid uses the pid of the input ptid of the lwp is 0, so the behavior is not quite the same. gdb/gdbserver/ChangeLog: * linux-low.c (same_lwp): Remove. (find_lwp_pid): Use find_thread. commit 6b2a85daf5a5c20c6d4832de1f19109d9e1cf17a Author: Simon Marchi Date: Sat Dec 2 20:36:37 2017 -0500 Remove usage of find_inferior in linux_mourn Replace with for_each_thread with pid filtering. The callback becomes trivial enough that it's better to inline it. gdb/gdbserver/ChangeLog: * linux-low.c (delete_lwp_callback): Remove. (linux_mourn): Use for_each_thread. commit 798a38e8de5f0fb5f7b17ae757b2bf4c5139c023 Author: Simon Marchi Date: Sat Dec 2 20:36:36 2017 -0500 Remove usage of find_inferior in linux_detach Replace with for_each_thread with pid filtering. gdb/gdbserver/ChangeLog: * linux-low.c (linux_detach_lwp_callback): Return void, remove args parameter, don't check for pid. (linux_detach): Use for_each_thread. commit e4eb0dec0b9219a27ea6b9769f098fff34612779 Author: Simon Marchi Date: Sat Dec 2 20:36:36 2017 -0500 Remove usage of find_inferior in last_thread_of_process_p Replace it with find_thread. I also modified the code a bit to use a lambda and a boolean. gdb/gdbserver/ChangeLog: * linux-low.c (struct counter): Remove. (second_thread_of_pid_p): Remove. (last_thread_of_process_p): Use find_thread. commit 83e1b6c13a285b4e1e852e1647667f09bb26892b Author: Simon Marchi Date: Sat Dec 2 20:36:35 2017 -0500 Remove find_inferior_in_random Replace with find_thread_in_random. gdb/gdbserver/ChangeLog: * inferiors.c (find_inferior_in_random): Remove. * inferiors.h (find_inferior_in_random): Remove. * linux-low.c (status_pending_p_callback): Return bool, accept parameter ptid directly. (linux_wait_for_event_filtered): Use find_thread_in_random. (linux_wait_1): Likewise. commit 8dc7b443a6295da4b3d7ba22f3a7695990bf4f39 Author: Simon Marchi Date: Sat Dec 2 20:36:34 2017 -0500 Remove find_inferior_id Remove find_inferior_id, replacing its usages with find_thread_ptid. find_thread_ptid was implemented using find_inferior_id, so move the implementation there instead. gdb/gdbserver/ChangeLog: * inferiors.c (find_inferior_id): Remove. (find_thread_ptid): Move implemention from find_inferior_id to here. * inferiors.h (find_inferior_id): Remove. * server.c (handle_status): Use find_thread_ptid. (process_serial_event): Likewise. * thread-db.c (find_one_thread): Likewise. (thread_db_thread_handle): Likewise. * win32-low.c (thread_rec): Likewise. (child_delete_thread): Likewise. (win32_thread_alive): Likewise. (get_child_debug_event): Likewise. commit da25033cd92a60f4462e1468abfabfee02d0b8d9 Author: Simon Marchi Date: Sat Dec 2 20:36:33 2017 -0500 Remove usages of find_inferior in linux-mips-low.c Replace with for_each_thread with pid filtering. This allows simplifying the callback a little bit. gdb/gdbserver/ChangeLog: * linux-mips-low.c (update_watch_registers_callback): Return void, remove pid_p parameter, don't check for pid. (mips_insert_point, mips_remove_point): Use for_each_thread. commit c91bb56b06b52d45de7c8871a6d44ddae61ae977 Author: Simon Marchi Date: Sat Dec 2 20:36:32 2017 -0500 Remove usage of find_inferior in lynx_mourn Replace it with for_each_thread with pid filtering. We can remove lynx_delete_thread_callback and pass remove_thread directly. I can't build/test this change, but it should be obvious enough. gdb/gdbserver/ChangeLog: * lynx.low (lynx_delete_thread_callback): Remove. (lynx_mourn): Use for_each_thread. commit 634a3254c8fe1728c0202289afe594928094d860 Author: Simon Marchi Date: Sat Dec 2 20:36:32 2017 -0500 Remove usage of find_inferior in regcache_invalidate_pid Replace with for_each_thread with pid filtering. regcache_invalidate_one is not longer needed, as it was only used to filter the pid. We can call regcache_invalidate_thread directly. gdb/gdbserver/ChangeLog: * regcache.c (regcache_invalidate_one): Remove. (regcache_invalidate_pid): use for_each_thread. commit 6d83e819df0c71868d04db46c60ff0ecf8cf1914 Author: Simon Marchi Date: Sat Dec 2 20:28:22 2017 -0500 Fix typo in poison.h gdb/ChangeLog: * common/poison.h (XDELETE): Fix typo. commit 035d856f2c3a30750e1260c595eca1e92e94421f Author: GDB Administrator Date: Sun Dec 3 00:00:36 2017 +0000 Automatic date update in version.in commit 222b39c283e3fd7823ad95ccc58ae94e76b63237 Author: Cary Coutant Date: Sat Dec 2 09:56:40 2017 -0800 Handle case where posix_fallocate is not supported for a filesystem. 2017-12-02 Vladimir Kondratyev Cary Coutant gold/ PR gold/22540 * output.cc (gold_fallocate): Trivial return for len == 0. Add fallback options when posix_fallocate and fallocate return not-supported errors. commit 158600eb989bcbc364c6d18259f1cb32ea9dc478 Author: Cary Coutant Date: Wed Feb 15 00:25:29 2017 -0800 Disallow --incremental with -pie and force -no-pie for incremental tests. This is a partial fix for the gold testsuite failures documented in PR 21090. The use of -fpie triggers some mov-to-lea optimizations that are not compatible with incremental linking, so those optimizations need to be disabled. We also diagnose the attempt to use -pie with incremental linking, and force -no-pie for the incremental tests in case the build has been configured to have GCC pass -pie all the time. We still have a problem where compiling with -fpie results in some GOT entries even when linking with -no-pie. This combination still causes test failures because we are not updating the GOT entries in an incremental update link. gold/ PR gold/21090 * incremental.cc (Sized_relobj_incr::do_relocate): Fix comment. * options.cc (General_options::finalize): Disallow -pie with incremental linking. * x86_64.cc (Target_x86_64::Scan::local): Don't do mov-to-lea or callq-to-direct optimizations for incremental links. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise. * testsuite/Makefile.am (incremental_test): Force -no-pie. (incremental_test_2): Likewise. (incremental_test_3): Likewise. (incremental_test_4): Likewise. (incremental_test_5): Likewise. (incremental_test_6): Likewise. (incremental_copy_test): Likewise. (incremental_common_test_1): Likewise. (incremental_comdat_test_1): Likewise. * testsuite/Makefile.in: Regenerate. commit 0af4ccfc5bc7ded4d87f813e3754486eb5a75349 Author: Cary Coutant Date: Fri Dec 1 22:53:08 2017 -0800 Workaround GCC 7 bug with debug line numbers causing debug_msg.sh failure. gold/ PR gold/21841 * testsuite/debug_msg.sh: Adjust expected line numbers. * testsuite/odr_violation2.cc (DummyFunction): New function. commit 059256c7465164fc070482dbe04ebe4e2ccf1a08 Author: Cary Coutant Date: Fri Dec 1 22:03:09 2017 -0800 Fix incremental linking failure with GCC 7+. With the new compiler, we're running out of patch space for the .eh_frame section. To workaround that issue, we compile the before and after versions both with no unwind tables. gold/ PR gold/22309 * testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): Compile with no EH information. (two_file_test_1_ndebug.o): Likewise. * testsuite/Makefile.in: Regenerate. * testsuite/two_file_test_1.cc: Touch to force recompilation with new flags. * testsuite/two_file_test_1_v1.cc: Likewise. commit 97cbe998d0dd5c13a0317fbb24d745da367d8caa Author: Sergio Durigan Junior Date: Fri Nov 24 16:56:08 2017 -0500 Add support for the readnever concept The purpose of this concept is to turn the load of debugging information off, either globally (via the '--readnever' option), or objfile-specific. The implementation proposed here is an extension of the patch distributed with Fedora GDB; looking at the Fedora patch itself and the history, one can see some reasons why it was never resubmitted: - The patch appears to have been introduced as a workaround, at least initially; - The patch is far from perfect, as it simply shunts the load of DWARF debugging information, without really worrying about the other debug format. - Who really does non-symbolic debugging anyways? One use of this feature is when a user simply wants to do the following sequence: attach, dump core, detach. Loading the debugging information in this case is an unnecessary cause of delay. This patch expands the version shipped with Fedora GDB in order to make the feature available for all the debuginfo backends, not only for DWARF. It also implements a per-objfile flag which can be activated by using the "-readnever" command when using the 'add-symbol-file' or 'symbol-file' commands. It's also worth mentioning that this patch tests whether GDB correctly fails to initialize if both '--readnow' and '--readnever' options are passed. Tested on the BuildBot. gdb/ChangeLog: 2017-12-01 Andrew Cagney Joel Brobecker Sergio Durigan Junior * NEWS (Changes since GDB 8.0: Mention new '--readnever' feature. * coffread.c (coff_symfile_read): Do not map over sections with 'coff_locate_sections' if readnever is on. * dwarf2read.c (dwarf2_has_info): Return 0 if readnever is on. * elfread.c (elf_symfile_read): Do not map over sections with 'elf_locate_sections' if readnever is on. * main.c (validate_readnow_readnever): New function. (captured_main_1): Add support for --readnever. (print_gdb_help): Document --readnever. * objfile-flags.h (enum objfile_flag) : New flag. * symfile.c (readnever_symbol_files): New global. (symbol_file_add_with_addrs): Set 'OBJF_READNEVER' when 'READNEVER_SYMBOL_FILES' is set. (validate_readnow_readnever): New function. (symbol_file_command): Handle '-readnever' option. Call 'validate_readnow_readnever'. (add_symbol_file_command): Handle '-readnever' option. Call 'validate_readnow_readnever'. (_initialize_symfile): Document new '-readnever' option for both 'symbol-file' and 'add-symbol-file' commands. * top.h (readnever_symbol_files): New extern global. * xcoffread.c (xcoff_initial_scan): Do not read debug information if readnever is on. gdb/doc/ChangeLog: 2017-12-01 Andrew Cagney Joel Brobecker Sergio Durigan Junior * gdb.texinfo (File Options): Document --readnever. (Commands to Specify Files): Likewise, for 'symbol-file' and 'add-symbol-file'. gdb/testsuite/ChangeLog: 2017-12-01 Joel Brobecker Sergio Durigan Junior Pedro Alves * gdb.base/readnever.c, gdb.base/readnever.exp: New files. commit 754fa8997d48bc9da80e8c2e0baaf36a313ba74a Author: GDB Administrator Date: Sat Dec 2 00:00:25 2017 +0000 Automatic date update in version.in commit b57e49f726f854e65b2ce5e87dc7ee664daac1fb Author: Jim Wilson Date: Fri Dec 1 15:34:42 2017 -0800 Update and clean up RISC-V gas documentation. gas/ * doc/as.texinfo (RISC-V): Alphabetize RISC-V entries. Change RISC-V-Opts to RISC-V-Options. Delete redundant space. Add -fpic and related options to option list. * doc/c-riscv.texi: (RISC-V-Options): Renamed from RISC-V-Opts. (RISC-V Options): Renamed from Options. Add missing period. (-fpic): Also mention -fPIC. (RISC-V Directives): New node. commit 40fc416f4e22913ba2a2bafcc8da05f59c677b7d Author: Sergio Durigan Junior Date: Wed Nov 29 16:36:13 2017 -0500 Make '{add-,}symbol-file' not care about the position of command line arguments This is a bug that's been detected while doing the readnever work. If you use 'symbol-file' or 'add-symbol-file', the position of each argument passed to the command matters. This means that if you do: (gdb) symbol-file -readnow /foo/bar The symbol file specified will (correctly) have all of its symbols read by GDB (because of the -readnow flag). However, if you do: (gdb) symbol-file /foo/bar -readnow GDB will silently ignore the -readnow flag, because it was specified after the filename. This is not a good thing to do and may confuse the user. To address that, I've modified the argument parsing mechanisms of symbol_file_command and add_symbol_file_command to be "position-independent". I have also added one error call at the end of add_symbol_file_command's argument parsing logic, which now clearly complains if no filename has been specified. Both commands now support the "--" option to stop argument processing. This patch provides a testcase for both commands, in order to make sure that the argument order does not matter. It has been regression-tested on BuildBot. gdb/ChangeLog: 2017-12-01 Sergio Durigan Junior * symfile.c (symbol_file_command): Call 'symbol_file_add_main_1' only after processing all command line options. (add_symbol_file_command): Modify logic to make arguments position-independent. gdb/testsuite/ChangeLog: 2017-12-01 Sergio Durigan Junior * gdb.base/relocate.exp: Add tests to guarantee that arguments to 'symbol-file' and 'add-symbol-file' can be position-independent. commit 7f0f8ac8b15f5f5327116614b4137e5dd533ada2 Author: Sergio Durigan Junior Date: Fri Dec 1 16:58:47 2017 -0500 Revert "Add support for the readnever concept" This reverts commit e2e321740ce2e36a97be2a410cd56eebaa2304aa. It was mistakenly pushed. commit 7ef67ba53397c52a87375403aa614c52b94ccc73 Author: Cary Coutant Date: Fri Dec 1 13:44:54 2017 -0800 Fix localized help string output for -fuse-ld. gold/ PR gold/22042 * options.h (-fuse-ld): Use NULL instead of empty string. commit ec6a20c268c3be4c34b951bc7d02543dca956108 Author: Joel Brobecker Date: Fri Dec 1 15:45:30 2017 -0500 (Ada) GDB crash printing expression with type casting One of our users reported that trying to print the following expression, caused GDB to SEGV: (gdb) print some_package.some_type (val) In this particular instance, the crash occurred inside ada_args_match because it is given a NULL "func", leading to the SEGV because of: struct type *func_type = SYMBOL_TYPE (func); This NULL symbol comes from a list of symbols which was given to ada_resolve_function (parameter called "syms") which then iterates over each of them to discard the ones that don't match the actuals: for (k = 0; k < nsyms; k += 1) { struct type *type = ada_check_typedef (SYMBOL_TYPE (syms[k].symbol)); if (ada_args_match (syms[k].symbol, args, nargs) && (fallback || return_match (type, context_type))) [...] } What's really interesting is that, when entering the block above for the first time, all entries in SYMS have a valid (non-NULL) symbol. However, once we return from the call to ada_check_typedef, the first entry of our SYMS table gets set to all zeros: (gdb) p syms[0] $2 = {symbol = 0x0, block = 0x0} Hence the call to ada_args_match with a NULL symbol, and the ensuing SEGV. To find out why this happen, we need to step back a little and look at how syms was allocated. This list of symbols comes from a symbol lookup, which means ada_lookup_symbol_list_worker. We have our first hint when we look at the function's documentation and see: This vector is transient---good only to the next call of ada_lookup_symbol_list. Implementation-wise, this is done by using a static global obstack, which we just re-initialize each time ada_lookup_symbol_list_worker gets called: obstack_free (&symbol_list_obstack, NULL); obstack_init (&symbol_list_obstack); This property was probably established in order to facilitate the use of the returned vector, since the users of that function would not have to worry about releasing that memory when no longer needed. However, I found during this investigation that it is all to easy to indirectly trigger another symbol lookup while still using the results of a previous lookup. In our particular case, there is the call to ada_check_typedef, which leads to check_typedef. As it happens, my first symbol had a type which was a typedef to a stub type, so check_typedef calls lookup_symbol to find the non-stub version. This in turn eventually leads us back to ada_lookup_symbol_list_worker, where the first thing it does is free the memory area when our list of symbols have been residing and then recreates a new one. in other words, SYMS then becomes a dangling pointer! This patch fixes the issue by having ada_lookup_symbol_list_worker return a copy of the list of symbols, with the responsibility of deallocating that list now transfered to the users of that list. More generally speaking, it is absolutely amazing that we haven't seen consequences of this issue before. This can happen fairly frequently. For instance, I found that ada-exp.y::write_var_or_type calls ada_lookup_symbol_list, and then, while processing that list, calls select_possible_type_sym, which leads to ada_prefer_type, eventually leading to ada_check_typedef again (via eg. ada_is_array_descriptor_type). Even more amazing is the fact that, while I was able to produce multiple scenarios where the corruption occurs, none of them leads to incorrect behavior at the user level. In other words, it requires a very precise set of conditions for the corruption to become user-visible, and despite having a megalarge program where the crash occured, using that as a template for creating a reproducer did not work (pb goes away). This is why this patch does not come with a reproducer. On the other hand, this should not be a problem in terms of testing coverage, as the changes are made in common areas which, at least for the most part, are routinely exercised during testing. gdb/ChangeLog: * ada-lang.c (symbol_list_obstack): Delete. (resolve_subexp): Make sure "candidates" gets xfree'ed. (ada_lookup_symbol_list_worker): Remove the limitation that the result is only good until the next call, now making it the responsibility of the caller to free the result when no longer needed. Adjust the function's intro comment accordingly. (ada_lookup_symbol_list): Adjust the function's intro comment. (ada_iterate_over_symbols): Make sure "results" gets xfree'ed. (ada_lookup_encoded_symbol, get_var_value): Likewise. (_initialize_ada_language): Remove symbol_list_obstack initialization. * ada-exp.y (block_lookup): Make sure "syms" gets xfree'ed. (write_var_or_type, write_name_assoc): Likewise. Tested on x86_64-linux. commit bd2e3511f74940beec6a39914480ed6ff88c0a71 Author: Benjamin Peterson Date: Fri Dec 1 12:59:36 2017 -0800 Fix internal error from command line with unbalanced --start-lib/--end-lib. The problem is that while the command line isn't trivially empty, it contains no input files. As gold tries to configure the number of threads to use based on the number of input files, this causes the assertion failure above. Fix this problem by making the logic in gold.cc more robust and also adding a better error message about --start-lib to options.cc. gold/ PR gold/22406 * gold.cc (queue_initial_tasks) Check for number of real input files. * options.cc (Command_line::process) Check for unterminated --start-lib options. * testsuite/Makefile.am: Add new test script. * testsuite/Makefile.in: Regenerate. * testsuite/check_empty_command_lines.sh: New test script. commit 71739b698d47945463f183619078ff680c277f0f Author: Stephen Crane Date: Fri Dec 1 12:10:02 2017 -0800 Fix problem where undef can fail to trigger archive rescan. If a shared library contains an undefined symbol and LTO adds a new reference to that same undefined symbol, the reference in the new object added by the plugin would not trigger a rescan of the archive containing the symbol. 2017-11-17 Stephen Crane gold/ PR gold/22448 * symtab.cc (Symbol_table::add_from_object): Only rescan for undefined symbols in regular, not dynamic, objects. commit e2e321740ce2e36a97be2a410cd56eebaa2304aa Author: Sergio Durigan Junior Date: Fri Nov 24 16:56:08 2017 -0500 Add support for the readnever concept The purpose of this concept is to turn the load of debugging information off, either globally (via the '--readnever' option), or objfile-specific. The implementation proposed here is an extension of the patch distributed with Fedora GDB; looking at the Fedora patch itself and the history, one can see some reasons why it was never resubmitted: - The patch appears to have been introduced as a workaround, at least initially; - The patch is far from perfect, as it simply shunts the load of DWARF debugging information, without really worrying about the other debug format. - Who really does non-symbolic debugging anyways? One use of this feature is when a user simply wants to do the following sequence: attach, dump core, detach. Loading the debugging information in this case is an unnecessary cause of delay. This patch expands the version shipped with Fedora GDB in order to make the feature available for all the debuginfo backends, not only for DWARF. It also implements a per-objfile flag which can be activated by using the "-readnever" command when using the 'add-symbol-file' or 'symbol-file' commands. It's also worth mentioning that this patch tests whether GDB correctly fails to initialize if both '--readnow' and '--readnever' options are passed. Tested on the BuildBot. gdb/ChangeLog: 2017-12-01 Andrew Cagney Joel Brobecker Sergio Durigan Junior * NEWS (Changes since GDB 8.0: Mention new '--readnever' feature. * coffread.c (coff_symfile_read): Do not map over sections with 'coff_locate_sections' if readnever is on. * dwarf2read.c (dwarf2_has_info): Return 0 if readnever is on. * elfread.c (elf_symfile_read): Do not map over sections with 'elf_locate_sections' if readnever is on. * main.c (validate_readnow_readnever): New function. (captured_main_1): Add support for --readnever. (print_gdb_help): Document --readnever. * objfile-flags.h (enum objfile_flag) : New flag. * symfile.c (readnever_symbol_files): New global. (symbol_file_add_with_addrs): Set 'OBJF_READNEVER' when 'READNEVER_SYMBOL_FILES' is set. (validate_readnow_readnever): New function. (symbol_file_command): Handle '-readnever' option. Call 'validate_readnow_readnever'. (add_symbol_file_command): Handle '-readnever' option. Call 'validate_readnow_readnever'. (_initialize_symfile): Document new '-readnever' option for both 'symbol-file' and 'add-symbol-file' commands. * top.h (readnever_symbol_files): New extern global. * xcoffread.c (xcoff_initial_scan): Do not read debug information if readnever is on. gdb/doc/ChangeLog: 2017-12-01 Andrew Cagney Joel Brobecker Sergio Durigan Junior * gdb.texinfo (File Options): Document --readnever. (Commands to Specify Files): Likewise, for 'symbol-file' and 'add-symbol-file'. gdb/testsuite/ChangeLog: 2017-12-01 Joel Brobecker Sergio Durigan Junior Pedro Alves * gdb.base/readnever.c, gdb.base/readnever.exp: New files. commit 0f873fd58b51a2906f31bb445ab685da04a1be23 Author: Peter Bergner Date: Fri Dec 1 11:20:15 2017 -0600 Use consistent types for holding instructions, instruction masks, etc. include/ * opcode/ppc.h (PPC_INT_FMT): Define. (struct powerpc_opcode) : Update type. (struct powerpc_opcode) : Likewise. (struct powerpc_opcode) : Likewise. (struct powerpc_opcode) : Likewise. (struct powerpc_opcode) : Likewise. (ppc_optional_operand_value): Likewise. gas/ * config/tc-ppc.c (last_insn): Update type. (insn_validate) : Likewise. (ppc_setup_opcodes) : Likewise. : Update types and printf format specifiers. (ppc_insert_operand): Update return and argument types and remove unneeded type casts. : Update type. (md_assemble): Remove unneeded type casts. : Update type. opcodes/ * opcodes/ppc-dis.c (disassemble_init_powerpc): Fix white space. (operand_value_powerpc): Update return and argument type. : Update type. (skip_optional_operands): Update argument type. (lookup_powerpc): Likewise. (lookup_vle): Likewise. : Update type. (lookup_spe2): Update argument type. : Update type. (print_insn_powerpc) : Update type. Use PPC_INT_FMT for printing instructions and operands. * opcodes/ppc-opc.c (insert_arx, extract_arx, insert_ary, extract_ary, insert_rx, extract_rx, insert_ry, extract_ry, insert_bat, extract_bat, insert_bba, extract_bba, insert_bdm, extract_bdm, insert_bdp, extract_bdp, valid_bo_pre_v2, valid_bo_post_v2, valid_bo, insert_bo, extract_bo, insert_boe, extract_boe, insert_dcmxs, extract_dcmxs, insert_dxd, extract_dxd, insert_dxdn, extract_dxdn, insert_fxm, extract_fxm, insert_li20, extract_li20, insert_ls, extract_ls, insert_esync, extract_esync, insert_mbe, extract_mbe, insert_mb6, extract_mb6, extract_nb, insert_nbi, insert_nsi, extract_nsi, insert_ral, extract_ral, insert_ram, extract_ram, insert_raq, extract_raq, insert_ras, extract_ras, insert_rbs, extract_rbs, insert_rbx, extract_rbx, insert_sci8, extract_sci8, insert_sci8n, extract_sci8n, insert_sd4h, extract_sd4h, insert_sd4w, extract_sd4w, insert_oimm, extract_oimm, insert_sh6, extract_sh6, insert_spr, extract_spr, insert_sprg, extract_sprg, insert_tbr, extract_tbr, insert_xt6, extract_xt6, insert_xtq6, extract_xtq6, insert_xa6, extract_xa6, insert_xb6, extract_xb6, insert_xb6s, extract_xb6s, insert_xc6, extract_xc6, insert_dm, extract_dm, insert_vlesi, extract_vlesi, insert_vlensi, extract_vlensi, insert_vleui, extract_vleui, insert_vleil, extract_vleil, insert_evuimm1_ex0, extract_evuimm1_ex0, insert_evuimm2_ex0, extract_evuimm2_ex0, insert_evuimm4_ex0, extract_evuimm4_ex0, insert_evuimm8_ex0, extract_evuimm8_ex0, insert_evuimm_lt8, extract_evuimm_lt8, insert_evuimm_lt16, extract_evuimm_lt16, insert_rD_rS_even, extract_rD_rS_even, insert_off_lsp, extract_off_lsp, insert_off_spe2, extract_off_spe2, insert_Ddd, extract_Ddd): Update types. (OP, OPTO, OPL, OPVUP, OPVUPRT, A, AFRALFRC_MASK, B, BD8, BD8IO, BD15, BD24, BBO, Y_MASK , AT1_MASK, AT2_MASK, BBOCB, C_LK, C, CTX, UCTX, DX, EVSEL, IA16, I16A, I16L, IM7, LI20, MME, MD, MDS, SC, SC_MASK, SCI8, SCI8BF, SD4, SE_IM5, SE_R, SE_RR, VX, VX_LSP, VX_RA_CONST, VX_RB_CONST, VX_SPE_CRFD, VX_SPE2_CLR, VX_SPE2_SPLATB, VX_SPE2_OCTET, VX_SPE2_DDHH, VX_SPE2_HH, VX_SPE2_EVMAR, VX_SPE2_EVMAR_MASK, VXA, VXR, VXASH, X, EX, XX2, XX3, XX3RC, XX4, Z, XWRA_MASK, XLRT_MASK, XRLARB_MASK, XLRAND_MASK, XRTLRA_MASK, XRTLRARB_MASK, XRTARARB_MASK, XRTBFRARB_MASK, XOPL, XOPL2, XRCL, XRT, XRTRA, XCMP_MASK, XCMPL_MASK, XTO, XTLB, XSYNC, XEH_MASK, XDSS, XFL, XISEL, XL, XLO, XLYLK, XLOCB, XMBAR, XO, XOPS, XS, XFXM, XSPR, XUC, XW, APU): Update types in casts. commit d0df06af9b70c5a6a2aa496437364f219e669067 Author: Tom Tromey Date: Thu Nov 30 11:49:27 2017 -0700 Fix dependency tracking for objects in subdirectories On irc, Pedro pointed out that dependencies for objects in subdirectories didn't seem to be working. The bug was that the "-include" for .deps files was using the wrong file name for subdirectory objects; e.g., for cli/cli-decode.o it was trying to open .deps/cli/cli-decode.o, whereas the correct file is cli/.deps/cli-decode.o. This patch changes how the dep files are found. Tested by touching a source file and rebuilding cli/cli-decode.o. 2017-12-01 Tom Tromey * Makefile.in (all_deps_files): New variable. Include .Po files using all_deps_files. commit 2ee0c9b3eedca5d1071870334d2721be80a77ea1 Author: Joel Brobecker Date: Fri Dec 1 08:35:56 2017 -0500 Update GDB's list of maintainers to reflect today's reality gdb/ChangeLog: * MAINTAINERS: Update list of maintainers, moving those who stepped down or became inactive to the "Past Maintainers" section. commit 92f402a7e03f5d747bc9a09c8da2f61cc539ac33 Author: H.J. Lu Date: Fri Dec 1 04:01:11 2017 -0800 x86: Print dynreloc in readonly section for map file output This fixed: FAIL: DT_TEXTREL map file warning on Linux/x86. * elfxx-x86.c (_bfd_x86_elf_readonly_dynrelocs): Print dynamic relocation in readonly section for map file output. commit 1cc75e929ff4e99b3bef4ca0e93250d5b1b126c9 Author: Yao Qi Date: Fri Dec 1 11:34:14 2017 +0000 Replace mail address with the URL in copyright header The copyright header in most of GDB files were changed from mail address to the URL in the conversion to GPLv3 in Aug 2007. However, some files still use mail address instead of the URL. This patch fixes them. gdb/testsuite: 2017-12-01 Yao Qi * gdb.arch/aarch64-atomic-inst.exp: Replace mail address with the URL in copyright header. * gdb.arch/aarch64-fp.exp: Likewise. * gdb.arch/ppc64-atomic-inst.exp: Likewise. * gdb.arch/ppc64-isa207-atomic-inst.exp: Likewise. * gdb.base/expand-psymtabs.exp: Likewise. * gdb.cp/expand-psymtabs-cxx.exp: Likewise. * gdb.fortran/common-block.exp: Likewise. * gdb.fortran/common-block.f90: Likewise. * gdb.fortran/logical.exp: Likewise. * gdb.fortran/vla-datatypes.f90: Likewise. * gdb.fortran/vla-sub.f90: Likewise. commit 7b2d20948528f94b405af3e951931758e92e8e4d Author: Tobias Ulmer Date: Fri Dec 1 19:25:19 2017 +1030 Check return value of bfd_new_link_order * ldwrite.c (build_link_order): Check return value of all bfd_new_link_order calls. commit 0fbdde942914bd9834860b65f2943577be1e46e5 Author: Oleksandr Pikozh Date: Fri Dec 1 17:40:55 2017 +1030 Add --strip-unneeded to objcopy synopsis * doc/binutils.texi: Add --strip-unneeded to objcopy synopsis. commit 40363a913b8c1292af97b4f50a0b2c5e6fdd04cb Author: Alan Modra Date: Fri Dec 1 13:38:01 2017 +1030 weak alias test This adds the test I was using when testing 60d67dc8. * testsuite/ld-elfweak/alias.c, * testsuite/ld-elfweak/alias.dat, * testsuite/ld-elfweak/aliasmain.c, * testsuite/ld-elfweak/weakref1.c, * testsuite/ld-elfweak/weakref2.c: New test. * testsuite/ld-elfweak/elfweak.exp: Run it. Don't return on fails, attempt other tests. commit 63c1f59d665542359de4737e3e48033c588f44dc Author: Alan Modra Date: Thu Nov 30 19:46:17 2017 +1030 readonly_dynrelocs In early October, HJ Lu added support for a number of targets to "Dump dynamic relocation in read-only section with minfo". This extends that support to more targets, displays the symbol involved, and splits the existing function that sets TEXTREL into a "readonly_dynrelocs" and "maybe_set_textrel" function. I'll need "readonly_dynrelocs" if I ever get around to fixing "pr22374 function pointer initialization" fails. am33_2.0, arc, bfin, hppa64, mn10300, and nios2 fail to mark a binary needing text relocations with DT_TEXTREL. That's not good. xtensa also fails to do so but complains about "dangerous relocation: dynamic relocation in read-only section" so I reckon that is fine and have marked the test as an xfail. The other targets need maintainer attention. Curiously, the map file dump wasn't added for x86, so the map test currently fail on x86. It also fails on alpha, am33_2.0, arc, bfin, hppa64, ia64, m68k, mips, mn10300, nios2, score and vax. cris complains with "tmpdir/textrel.o, section .rodata: relocation R_CRIS_32 should not be used in a shared object; recompile with -fPIC" so I've marked it as an xfail. bfd/ * elf32-hppa.c (maybe_set_textrel): Print symbol for map file output. * elf32-ppc.c (maybe_set_textrel): Likewise. * elf64-ppc.c (maybe_set_textrel): Likewise. * elf32-arm.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing.. (elf32_arm_readonly_dynrelocs): ..this. * elf32-lm32.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-m32r.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-metag.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-nds32.c: Delete unnecessary forward declarations. (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-or1k.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-s390.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-sh.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf32-tic6x.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing.. (elf32_tic6x_readonly_dynrelocs): ..this. * elf32-tilepro.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elf64-s390.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elfnn-aarch64.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing.. (aarch64_readonly_readonly_dynrelocs): ..this. * elfnn-riscv.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elfxx-sparc.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. * elfxx-tilegx.c (readonly_dynrelocs): New function. (maybe_set_textrel): New function, replacing old version of.. (readonly_dynrelocs): ..this. ld/ * testsuite/ld-elf/shared.exp: Run new textrel tests. * testsuite/ld-elf/textrel.map: New file. * testsuite/ld-elf/textrel.rd: New file. * testsuite/ld-elf/textrel.s: New file. * testsuite/ld-elf/textrel.warn: New file. commit 254cefe35f012977d567af0bbad2a8091d90e22b Author: GDB Administrator Date: Fri Dec 1 00:00:33 2017 +0000 Automatic date update in version.in commit 875fb7a785e78fddef6da270636e8f4efbfd3e0d Author: Joel Brobecker Date: Thu Nov 30 18:41:55 2017 -0500 New gdb.ada/repeat_dyn testcase. This patch introduces a testcase that exercises a scenario which used to trigger an internal-error, but no longer does: Consider the following array: type Small is new Integer range Ident (1) .. Ident (10); type Table is array (1 .. 3) of Small; A1 : Table := (3, 5, 8); The particularity of this array is that the type of each element is a range type whose bounds are dynamic, since they depend on the value returned by Ident (1) and Ident (10). Trying to apply the repeat operator ('@') on one of its elements used to yield an internal error: (gdb) p a1(1)@3 $1 = /[...]/gdbtypes.c:4512: internal-error: copy_type: Assertion `TYPE_OBJFILE_OWNED (type)' failed. Although the issue no longer appears, the testcase is still interesting to have. gdb/testsuite/ChangeLog: * gdb.ada/repeat_dyn: New testcase. Tested on x86_64-linux with clean results. commit fd6798fa2d6f0374d45449c4212869da93623b1e Author: Peter Smith Date: Thu Nov 30 15:07:26 2017 -0800 Fix internal error in fix_errata on aarch64. The addresses of erratum stubs can be changed by relaxation passes, and need to be updated. gold/ PR gold/20765 * aarch64.cc (Aarch64_relobj::update_erratum_address): New method. (AArch64_relobj::scan_errata): Update addresses in stub table after relaxation pass. commit e0feb133429709603eeeb382c1ebb6edd0a886aa Author: Cary Coutant Date: Thu Nov 30 13:44:28 2017 -0800 Fix problem where erratum stubs are not always applied. I checked over the results of applying --fix-cortex-a53-843419 to a very large program (gitit) with two stub tables and thousands of erratum fixes. I noticed that all the erratum_stubs were being created but about 1/3 of them were being skipped over by fix_errata_and_relocate_erratum_stubs(). By skipped over I mean no branch relocation or adrp -> adr transformation was applied to the erratum address, leaving the erratum_stub unreachable, and with a branch with a 0 immediate. The root cause of the skipped over erratum_stubs is Erratum_stub::invalidate_erratum_stub() that is used to set relobj_ to NULL when an erratum_stub has been processed. Unfortunately relobj_ is used in operator<() so altering relobj makes the results from erratum_stubs_.lower_bound() as used in find_erratum_stubs_for_input_section() unreliable. 2017-11-30 Peter Smith Cary Coutant gold/ PR gold/20765 * aarch64.cc (Erratum_stub::invalidate_erratum_stub): Use erratum_insn_ instead of relobj_ to invalidate the stub. (Erratum_stub::is_invalidated_erratum_stub): Likewise. commit 036aae79303c43c56b604bc215ce4a70fc2a6474 Author: Peter Smith Date: Thu Nov 30 13:30:58 2017 -0800 Fix segfault in relocate_erratum_stub on aarch64. The fix for PR21868 (an internal error when --fix-cortex-a53-843419 is applied) has a small mistake in it. When the stub_owner section needs an erratum fix an incorrect address for the stubs for the section is given to relocate_erratum_stub. If we are lucky we will get a segfault; if we aren't, an incorrect patch or data corruption is possible. The error is visible in PR21868, but the side-effects aren't fatal. gold/ PR gold/22233 * aarch64.cc (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): Fix calculation of stub address. commit 4a7e52349807017f9bc09ea25f07924f2ec971b3 Author: Alan Modra Date: Fri Dec 1 07:53:16 2017 +1030 PR22533, dynamic relocs generated for weak aliases This cleans up yet more craziness with non_got_ref. PR 22533 * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Don't do anything special with non_got_ref for weak aliases. (elf32_hppa_check_relocs): Tweak setting of non_got_ref. (elf32_hppa_adjust_dynamic_symbol): When initialising weak aliases, don't uselessly copy non_got_ref. Clear dyn_relocs instead if strong symbol is allocated in dynbss. Tidy comments. (elf32_hppa_relocate_section): Comment fix. * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Don't do anything special with non_got_ref for weak aliases. (ppc_elf_adjust_dynamic_symbol): When initialising weak aliases, don't uselessly copy non_got_ref. Clear dyn_relocs instead if strong symbol is allocated in dynbss. Tidy comments. * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't do anything special with non_got_ref for weak aliases. (ppc64_elf_adjust_dynamic_symbol): When initialising weak aliases, don't uselessly copy non_got_ref. Clear dyn_relocs instead if strong symbol is allocated in dynbss. Tidy comments. commit 6f14765f9f448bbe03750634eb42c4a9db6521b8 Author: Ulrich Weigand Date: Thu Nov 30 18:35:54 2017 +0100 [spu] Some additional test fixes Now that the ppc64 breakpoint regression is fixed, running the gdb.cell test suite showed a few more test case problems, caused by tests that haven't been updated to adapt to GDB changes. gdb/testsuite/ChangeLog: 2017-11-30 Ulrich Weigand * gdb.cell/gcore.exp: Fix typo when setting spu_bin. Update for changed thread numbering. * gdb.cell/bt.exp: Update for changed GDB output. commit f1af7b94c16029f2c6da9eae4076f64cd9383687 Author: Simon Marchi Date: Thu Nov 30 11:39:31 2017 -0500 Use boards/local-board.exp more local-board.exp was introduced recently, containing the code required to force the gdbserver boards to be non-remote (from the DejaGNU point of view). Other board files use the same trick of forcing isremote to 0. Instead of doing it by hand in each file, include local-board.exp. gdb/testsuite/ChangeLog: * boards/cc-with-tweaks.exp: Include local-board.exp instead of setting isremote by hand. * boards/dwarf4-gdb-index.exp: Likewise. * boards/fission.exp: Likewise. * boards/stabs.exp: Likewise. commit e3919f3e898aa5ab9a98dcaf9e242a9ebacc0757 Author: Pedro Alves Date: Thu Nov 30 16:32:10 2017 +0000 Fix gdb.linespec/cpls-ops.exp on 32-bit gdb.linespec/cpls-ops.exp is currently failing on x86-64 -m32 and other 32-bit ports: b test_op_new::operator new(unsigned int) FAIL: gdb.linespec/cpls-ops.exp: operator-new: tab complete "b test_op_new::operator" (timeout) ^CQuit (gdb) complete b test_op_new::operator b test_op_new::operator new(unsigned int) (gdb) FAIL: gdb.linespec/cpls-ops.exp: operator-new: cmd complete "b test_op_new::operator" The problem is simply that the testcase incorrectly assumes that size_t is "unsigned long". Fix this by extracting the right type with the "ptype" command. gdb/testsuite/ChangeLog: 2017-11-30 Pedro Alves * gdb.linespec/cpls-ops.exp (check_explicit_skips_function_argument): Extract the underlying type of size_t instead of hardcoding it. commit 44122162aefcbabb2fbe5b531412d157da5e59fc Author: Rainer Orth Date: Thu Nov 30 16:05:30 2017 +0100 Remove ioctl-based procfs support on Solaris This is the previously mentioned patch to get rid of unstructured/ioctl-based procfs support in procfs.c. Given that support for structured procfs was introduced in Solaris 2.6 back in 1997 and we're just removing support for Solaris < 10, there's no point in carrying that baggage (and tons of support for IRIX and OSF/1 as well) around any longer. Most of the patch should be straightforward (removing support for !NEW_PROC_API, non-Solaris OSes and pre-Solaris 10 quirks). Only a few points need explanations: * was already included unconditionally in most places, so there's no need to have guards in a few remaining ones. * configure.host already obsoletes i?86-*-sysv4.2, i?86-*-sysv5, so NEW_PROC_API detection for those in configure.ac can go. * I'm still including with #define _STRUCTURED_PROC 1. Theoretically, it would be better to include on Solaris (which includes that define), but that breaks the build over vs. gdb's "procfs.h", and doesn't exist on Linux. * I've regenerated syscall_table[] in proc-events.c with a small script from Solaris 10, 11.3, 11.4 , so there should be no traces of older Solaris versions and other OSes left. * prsysent_t and DYNAMIC_SYSCALLS was only used for AIX 5, but AIX doesn't use procfs.c any longer, so all related code can go. The patch was generated with diff -w so one can easier see changes without being distracted by simple reindentations. So far, it has only been compiled and smoke-tested on amd64-pc-solaris2.1[01], sparcv9-sun-solaris2.1[01], and x86_64-pc-linux-gnu. Certainly needs more testing (Solaris 11.3 vs. 11.4, 32-bit gdb, testsuite once I've figured out what's wrong on Solaris 10 etc.), but it's enough to get a first impression how much cleanup is possible here. * configure.ac Don't check for sys/fault.h, sys/syscall.h, sys/proc.h. (NEW_PROC_API): Remove. (prsysent_t, pr_sigset_t, pr_sigaction64_t, pr_siginfo64_t): Likewise. * common/common.m4 (GDB_AC_COMMON): Don't check for sys/syscall.h. * configure: Regenerate. * config.in: Regenerate. * gdbserver/configure: Regenerate. * gdbserver/config.in: Regenerate. * i386-sol2-nat.c (_initialize_amd64_sol2_nat): Remove NEW_PROC_API test. * sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Likewise. * linux-btrace.c: Remove HAVE_SYS_SYSCALL_H test. * proc-api.c: Remove !NEW_PROC_API support. Remove HAVE_SYS_PROC_H and HAVE_SYS_USER_H tests. Remove tests for macros always defined on Solaris. * proc-events.c: Remove !NEW_PROC_API support. Remove Remove HAVE_SYS_SYSCALL_H, HAVE_SYS_PROC_H and HAVE_SYS_USER_H tests. (init_syscall_table): Remove non-Solaris syscalls. Remove tests for syscalls present on all Solaris versions. Add missing Solaris 10+ syscalls. (signal_table): Remove non-Solaris signals. Remove tests for signals present on all Solaris versions. (fault_table): Remove non-Solaris faults. Remove tests for faults present on all Solaris versions. * proc-flags.c: Remove !NEW_PROC_API support. (pr_flag_table): Remove non-Solaris and pre-Solaris 7 comments. Remove non-Solaris flags. * proc-why.c: Remove !NEW_PROC_API support. (pr_why_table): Remove meaningless comments. Remove tests for reasons present on all Solaris versions. Remove OSF/1 cases. (proc_prettyfprint_why): Likewise. * procfs.c: Remove !NEW_PROC_API and DYNAMIC_SYSCALLS support. Remove HAVE_SYS_FAULT_H and HAVE_SYS_SYSCALL_H tests. Remove WA_READ test, IRIX watchpoint support. (gdb_sigset_t, gdb_sigaction_t, gdb_siginfo_t): Replace by base types. Change users. (gdb_praddset, gdb_prdelset, gdb_premptysysset, gdb_praddsysset) (gdb_prdelset, gdb_pr_issyssetmember): Replace by base macros. Change callers. Remove CTL_PROC_NAME_FMT tests. (gdb_prstatus_t, gdb_lwpstatus_t): Replace by base types. Change users. (sysset_t_size): Remove. Use sizeof (sysset_t) in callers. Remove PROCFS_DONT_PIOCSSIG_CURSIG support. (proc_modify_flag): Replace GDBRESET by PCUNSET. Remove PR_ASYNC, PR_KLC tests. (proc_unset_inherit_on_fork): Remove PR_ASYNC test. (proc_parent_pid): Remove PCWATCH etc. tests. (proc_set_watchpoint): Remove !PCWATCH && !PIOCSWATCH support. Remove PCAGENT test. (proc_get_nthreads) [PIOCNTHR && PIOCTLIST]: Remove. Remove SYS_lwpcreate || SYS_lwp_create test. (proc_get_current_thread): Likewise. [PIOCNTHR && PIOCTLIST]: Remove. [PIOCLSTATUS]: Remove. (procfs_debug_inferior): Remove non-Solaris cases, conditionals. [PRFS_STOPEXEC]: Remove. (syscall_is_lwp_exit): Remove non-Solaris cases, conditionals. (syscall_is_exit): Likewise. (syscall_is_exec): Likewise. (syscall_is_lwp_create): Likewise. Remove SYS_syssgi support. (procfs_wait): Remove PR_ASYNC, !PIOCSSPCACT tests. [SYS_syssgi]: Remove. Remove non-Solaris cases, conditionals. (unconditionally_kill_inferior) [PROCFS_NEED_PIOCSSIG_FOR_KILL]: Remove. (procfs_init_inferior) [SYS_syssgi]: Remove. (procfs_set_exec_trap) [PRFS_STOPEXEC]: Remove. (procfs_inferior_created) [SYS_syssgi]: Remove. (procfs_set_watchpoint): Remove !AIX5 test. (procfs_stopped_by_watchpoint): Remove FLTWATCH test, FLTKWATCH case. (mappingflags) [MA_PHYS]: Remove. (info_mappings_callback): Remove PCAGENT test. Remove PIOCOPENLWP || PCAGENT test. commit 7ac20022477c163983de77e5b16c016d518ca7bc Author: Jan Beulich Date: Thu Nov 30 11:48:13 2017 +0100 x86: derive DispN from BaseIndex BaseIndex implies - with the exception of string instructions the optional presence of a displacement. This is almost completely uniform for all instructions (the sole exception being MPX ones, which don't allow 16-bit addressing and hence Disp16), so there's no point in explicitly stating this in the main opcode table. Drop those explict specifications in favor of adding logic to i386-gen, shrinking the table size quite a bit and hence making it more readable. The opcodes/i386-tbl.h changes are due to a few cases where pointless Disp* still hadn't been removed from their insns. commit b5014f7af26ff0fbc1128b5fabdaf3bd5918dd94 Author: Jan Beulich Date: Thu Nov 30 11:47:38 2017 +0100 x86: drop Vec_Disp8 This is fully redundant with Disp8MemShift being non-zero, and hence can be folded with normal Disp8 handling. commit fd4e0347596acf79642625f4faad9e37c8fa0f0e Author: Jan Beulich Date: Thu Nov 30 11:46:26 2017 +0100 x86/Intel: issue diagnostics for redundant segment override prefixes While we shouldn't outright reject such (as was wrongly done by commit 4d36230d59 ("x86: Update segment register check in Intel syntax"), as MASM accepts them even silently, issue (by default) a warning for such questionable constructs. commit e21440ba622e17a2f12a858a87a6a75ef90654ca Author: Jan Beulich Date: Thu Nov 30 11:44:27 2017 +0100 Revert "x86: Update segment register check in Intel syntax" This reverts commit 4d36230d59903b92fbe2b53b31ed64a884860f0e. I was committed without maintainer ack and regresses intended functionality. A replacement will be committed shortly. commit f425ec6600b69e39eb605f3128806ff688137ea8 Author: Nick Clifton Date: Thu Nov 30 10:25:01 2017 +0000 Prevent an illegal memory access in readelf when attempting to parse a corrupt ELF file. PR 22510 * readelf.c (load_debug_section): Fail if there are no section headers available. commit e8020e54f4b9ac05150c4b02fa81e228d6cf1f6a Author: Rainer Orth Date: Thu Nov 30 10:57:04 2017 +0100 Fix sol-thread.c compilation on Solaris Building current gdb mainline with gcc 7.1 on Solaris 11.4 fails: /vol/src/gnu/gdb/gdb/dist/gdb/sol-thread.c: In function `void _initialize_sol_thread()': /vol/src/gnu/gdb/gdb/dist/gdb/sol-thread.c:1229:66: error: invalid conversion from `void (*)(char*, int)' to `void (*)(const char*, int)' [-fpermissive] _("Show info on Solaris user threads."), &maintenanceinfolist); ^ In file included from /vol/src/gnu/gdb/gdb/dist/gdb/completer.h:21:0, from /vol/src/gnu/gdb/gdb/dist/gdb/symtab.h:31, from /vol/src/gnu/gdb/gdb/dist/gdb/language.h:26, from /vol/src/gnu/gdb/gdb/dist/gdb/frame.h:72, from /vol/src/gnu/gdb/gdb/dist/gdb/gdbarch.h:39, from /vol/src/gnu/gdb/gdb/dist/gdb/defs.h:557, from /vol/src/gnu/gdb/gdb/dist/gdb/sol-thread.c:51: /vol/src/gnu/gdb/gdb/dist/gdb/command.h:140:33: note: initializing argument 3 of `cmd_list_element* add_cmd(const char*, command_class, void (*)(const char*, int), const char*, cmd_list_element**)' extern struct cmd_list_element *add_cmd (const char *, enum command_class, ^~~~~~~ The following patch allows compilation to succeed on i386-pc-solaris2.11 and sparc-sun-solaris2.11. * sol-thread.c (info_solthreads): Constify args. Cast args to void *. commit 668247656d5dec815a57761e98720dda09f72481 Author: Alan Modra Date: Thu Nov 30 13:10:35 2017 +1030 Fix testcase for PR ld/22471 ASFLAGS should be restored after any modification. Fixes metag-linux +FAIL: Long branch stub metag-linux +FAIL: Long branch stub (PIC, app) mn10300-elf +FAIL: difference of two same-section symbols where the difference is held in another section mn10300-elf +FAIL: relaxation and alignment directives PR 22471 * testsuite/ld-elf/shared.exp: Save and restore ASFLAGS. commit 7505954411a168f5c5b9adec23eac55b1532fbe6 Author: John Baldwin Date: Wed Nov 29 16:28:01 2017 -0800 Define MPFR_USE_INTMAX_T so that mpfr.h assumes intmax_t is available. mpfr.h uses a non-portable test to guess if intmax_t is available and if API functions using intmax_t should be exposed. Define MPFR_USE_INTMAX_T to override the non-portable test and always expose these functions. This fixes the build on platforms where the test guesses incorrectly. gdb/ChangeLog: * target-float.c [HAVE_LIBMPFR]: Define MPFR_USE_INTMAX_T. commit 8029e59279e861071234decddf6a493119e0cb98 Author: GDB Administrator Date: Thu Nov 30 00:00:20 2017 +0000 Automatic date update in version.in commit f5a91472120952bbc40f277561626b8ccdf7b194 Author: Joel Brobecker Date: Wed Nov 29 18:31:18 2017 -0500 preserve type length in ada-lang.c::to_fixed_range_type This patch fixes a potential issue which was noticed by code inspection: ada-lang.c::to_fixed_range_type uses gdbtypes.c::create_static_range_type to create most of the range type, which relies on create_range_type to do most of the work. The latter has the following piece of code which sets the length of the range type to match the length of the index_type: if (TYPE_STUB (index_type)) TYPE_TARGET_STUB (result_type) = 1; else TYPE_LENGTH (result_type) = TYPE_LENGTH (check_typedef (index_type)); In Ada, it is actually possible to have a range type whose size is smaller than its base type. For instance, with: type Unsigned2_T is range 0 .. 2 ** 16 - 1; for Unsigned2_T'SIZE use 16; The compiler generates the following DWARF: .uleb128 0x3 # (DIE (0x4e) DW_TAG_subrange_type) .byte 0x2 # DW_AT_byte_size .byte 0 # DW_AT_lower_bound .value 0xffff # DW_AT_upper_bound .long .LASF64 # DW_AT_name: "try__unsigned2_t___XDLU_0__65535" .long 0x616 # DW_AT_type ... which points to the following base type... .uleb128 0x1d # (DIE (0x616) DW_TAG_base_type) .byte 0x4 # DW_AT_byte_size .byte 0x5 # DW_AT_encoding .long .LASF57 # DW_AT_name: "try__Tunsigned2_tB" # DW_AT_artificial ... which has a size of 4 bytes. With a type like this one, create_range_type returns a type whose size is 4 bytes, instead of 2, which is not what we we would normally expect. Currently, this function is only used to handle array index types, so the length of the type actually does not matter and there should not be any user-visible consequences of the current behavior. But it seems best to plug this latent bug now, rather than wait for it to surface.... gdb/ChangeLog: * ada-lang.c (to_fixed_range_type): Make sure that the size of the range type being returned is the same as the size of the range type being fixed. Tested on x86_64-linux, no regression. commit bd69330db86b2367aac8aac5915f1686451c9d5d Author: Pedro Alves Date: Wed Nov 29 19:33:24 2017 +0000 Breakpoints in symbols with ABI tags (PR c++/19436) Trying to set a breakpoint in a function with an ABI tag does not work currently. E.g., debugging gdb itself, we see this with the "string_printf" function: (top-gdb) b string_print [TAB] (top-gdb) b string_printf[abi:cxx11](char const*, ...) [RET] No source file named string_printf[abi. Make breakpoint pending on future shared library load? (y or [n]) Quoting doesn't help: (top-gdb) b 'string_printf[abi:cxx11]'(char const*, ...) malformed linespec error: unexpected string, "(char const*, ...)" (top-gdb) b 'string_printf[abi:cxx11](char const*, ...)' No source file named string_printf[abi. Make breakpoint pending on future shared library load? (y or [n]) n This patch fixes this, and takes it a bit further. The actual symbol name as demangled by libiberty's demangler is really string_printf[abi:cxx11](char const*, ...) however, this patch makes it possible to set the breakpoint with string_printf(char const*, ...) too. I.e., ignoring the ABI tag. And to match, it teaches the completer to complete the symbol name without the ABI tag, i.e., "string_pri" -> "string_printf(char const*, ...)" If however, you really want to break on a symbol with the tag, then you simply start writing the tag, and GDB will preserve it, like: "string_printf[a" -> "string_printf[abi:cxx11](char const*, ...)" Grows the gdb.linespec/ tests like this: -# of expected passes 8977 +# of expected passes 9176 gdb/ChangeLog: 2017-11-29 Pedro Alves PR c++/19436 * NEWS: Mention setting breakpoints on functions with C++ ABI tags. * completer.h (completion_match_for_lcd) : New methods. : Consider ignored ranges. : Clear ignored ranges. : New fields. * cp-support.c (cp_search_name_hash): Ignore ABI tags. (cp_symbol_name_matches_1, cp_fq_symbol_name_matches): Pass the completion_match_for_lcd pointer to strncmp_iw_with_mode. (test_cp_symbol_name_cmp): Add [abi:...] tags unit tests. * language.c (default_symbol_name_matcher): Pass the completion_match_for_lcd pointer to strncmp_iw_with_mode. * linespec.c (linespec_lexer_lex_string): Don't tokenize ABI tags. * utils.c (skip_abi_tag): New function. (strncmp_iw_with_mode): Add completion_match_for_lcd parameter. Handle ABI tags. * utils.h (strncmp_iw_with_mode): Add completion_match_for_lcd parameter. gdb/testsuite/ChangeLog: 2017-11-29 Pedro Alves PR c++/19436 * gdb.linespec/cpls-abi-tag.cc: New file. * gdb.linespec/cpls-abi-tag.exp: New file. gdb/doc/ChangeLog: 2017-11-29 Pedro Alves PR c++/19436 * gdb.texinfo (Debugging C Plus Plus): Document setting breakpoints in functions with ABI tags. commit a20714ff39f621961151d0c204e89062ab2107eb Author: Pedro Alves Date: Wed Nov 29 19:33:23 2017 +0000 Make "break foo" find "A::foo", A::B::foo", etc. [C++ and wild matching] This patch teaches GDB about setting breakpoints in all scopes (namespaces and classes) by default. Here's a contrived example: (gdb) b func (anonymous namespace)::A::function() Bn::(anonymous namespace)::B::function() function(int, int) (anonymous namespace)::B::function() Bn::(anonymous namespace)::function() gdb::(anonymous namespace)::A::function() (anonymous namespace)::B::function() const Bn::(anonymous namespace)::function(int, int) gdb::(anonymous namespace)::function() (anonymous namespace)::function() Bn::B::func() gdb::(anonymous namespace)::function(int, int) (anonymous namespace)::function(int, int) Bn::B::function() gdb::A::func() A::func() Bn::func() gdb::A::function() A::function() Bn::function() gdb::func() B::func() Bn::function(int, int) gdb::function() B::function() Bn::function(long) gdb::function(int, int) B::function() const func() gdb::function(long) B::function_const() const function() (gdb) b function Breakpoint 1 at 0x4005ce: function. (26 locations) (gdb) b B::function (anonymous namespace)::B::function() B::function() const Bn::B::function() (anonymous namespace)::B::function() const B::function_const() const B::function() Bn::(anonymous namespace)::B::function() (gdb) b B::function Breakpoint 1 at 0x40072c: B::function. (6 locations) To get back the original behavior of interpreting the function name as a fully-qualified name, you can use the new "-qualified" (or "-q") option/flag (added by this commit). For example: (gdb) b B::function (anonymous namespace)::B::function() B::function() const Bn::B::function() (anonymous namespace)::B::function() const B::function_const() const B::function() Bn::(anonymous namespace)::B::function() vs: (gdb) b -qualified B::function B::function() B::function() const B::function_const() const I've chosen "-qualified" / "-q" because "-f" (for "full" or "fully-qualified") is already taken for "-function". Note: the "-qualified" option works with both linespecs and explicit locations. I.e., these are equivalent: (gdb) b -q func (gdb) b -q -f func and so are these: (gdb) b -q filename.cc:func (gdb) b -q -s filename.cc -f func (gdb) b -s filename.cc -q -f func (gdb) b -s filename.cc -f func -q To better understand why I consider wild matching the better default, consider what happens when we get to the point when _all_ of GDB is wrapped under "namespace gdb {}". I have a patch series that does that, and when I started debugging that GDB, I immediately became frustrated. You'd have to write "b gdb::internal_error", "b gdb::foo", "b gdb::bar", etc. etc., which gets annoying pretty quickly. OTOH, consider how this makes it very easy to set breakpoints in classes wrapped in anonymous namespaces. You just don't think of them, GDB finds the symbols for you automatically. (At the Cauldron a couple months ago, several people told me that they run into a similar issue when debugging other C++ projects. One example was when debugging LLVM, which puts all its code under the "llvm" namespace.) Implementation-wise, what the patch does is: - makes C++ symbol name hashing only consider the last component of a symbol name. (so that we can look up symbol names by last-component name only). - adds a C++ symbol name matcher for symbol_name_match_type::WILD, which ignores missing leading specifiers / components. - adjusts a few preexisting testsuite tests to use "-qualified" when they mean it. - adds new testsuite tests. - adds unit tests. Grows the gdb.linespec/ tests like this: -# of expected passes 7823 +# of expected passes 8977 gdb/ChangeLog: 2017-11-29 Pedro Alves * NEWS: Mention that breakpoints on C++ functions are now set on on all namespaces/classes by default, and mention "break -qualified". * ax-gdb.c (agent_command_1): Adjust to pass a symbol_name_match_type to new_linespec_location. * breakpoint.c (parse_breakpoint_sals): Adjust to get_linespec_location's return type change. (strace_marker_create_sals_from_location): Adjust to pass a symbol_name_match_type to new_linespec_location. (strace_marker_decode_location): Adjust to get_linespec_location's return type change. (strace_command): Adjust to pass a symbol_name_match_type to new_linespec_location. (LOCATION_HELP_STRING): Add paragraph about wildmatching, and mention "-qualified". * c-lang.c (cplus_language_defn): Install cp_search_name_hash. * completer.c (explicit_location_match_type::MATCH_QUALIFIED): New enumerator. (complete_address_and_linespec_locations): New parameter 'match_type'. Pass it down. (explicit_options): Add "-qualified". (collect_explicit_location_matches): Pass the requested match type to the linespec completers. Handle MATCH_QUALIFIED. (location_completer): Handle "-qualified" combined with linespecs. * cp-support.c (cp_search_name_hash): New. (cp_symbol_name_matches_1): Implement wild matching for C++. (cp_fq_symbol_name_matches): Reimplement. (cp_get_symbol_name_matcher): Return different matchers depending on the lookup name's match type. (selftests::test_cp_symbol_name_matches): Add wild matching tests. * cp-support.h (cp_search_name_hash): New declaration. * dwarf2read.c (selftests::dw2_expand_symtabs_matching::test_symbols): Add symbols. (test_dw2_expand_symtabs_matching_symbol): Add wild matching tests. * guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Adjust to pass a symbol_name_match_type to new_linespec_location. * linespec.c (linespec_parse_basic): Lookup function symbols using the parser's symbol name match type. (convert_explicit_location_to_linespec): New symbol_name_match_type parameter. Pass it down to find_linespec_symbols. (convert_explicit_location_to_sals): Pass the location's name match type to convert_explicit_location_to_linespec. (parse_linespec): New match_type parameter. Save it in the parser. (linespec_parser_new): Default to symbol_name_match_type::WILD. (linespec_complete_function): New symbol_name_match_type parameter. Use it. (complete_linespec_component): Pass down the parser's recorded name match type. (linespec_complete_label): New symbol_name_match_type parameter. Use it. (linespec_complete): New symbol_name_match_type parameter. Save it in the parser and pass it down. Adjust to get_linespec_location's prototype change. (find_function_symbols, find_linespec_symbols): New symbol_name_match_type parameter. Pass it down instead of assuming symbol_name_match_type::WILD. * linespec.h (linespec_complete, linespec_complete_function) (linespec_complete_label): New symbol_name_match_type parameter. * location.c (event_location::linespec_location): Now a struct linespec_location. (EL_LINESPEC): Adjust. (initialize_explicit_location): Default to symbol_name_match_type::WILD. (new_linespec_location): New symbol_name_match_type parameter. Record it in the location. (get_linespec_location): Now returns a struct linespec_location. (new_explicit_location): Also copy func_name_match_type. (explicit_to_string_internal) (string_to_explicit_location): Handle "-qualified". (copy_event_location): Adjust to LINESPEC_LOCATION type change. Copy symbol_name_match_type fields. (event_location_deleter::operator()): Adjust to LINESPEC_LOCATION type change. (event_location_to_string): Adjust to LINESPEC_LOCATION type change. Handle "-qualfied". (string_to_explicit_location): Handle "-qualified". (string_to_event_location_basic): New symbol_name_match_type parameter. Pass it down. (string_to_event_location): Handle "-qualified". * location.h (struct linespec_location): New. (explicit_location::func_name_match_type): New field. (new_linespec_location): Now returns a const linespec_location *. (string_to_event_location_basic): New symbol_name_match_type parameter. (explicit_completion_info::saw_explicit_location_option): New field. * mi/mi-cmd-break.c (mi_cmd_break_insert_1): Adjust to pass a symbol_name_match_type to new_linespec_location. * python/py-breakpoint.c (bppy_init): Likewise. * python/python.c (gdbpy_decode_line): Likewise. gdb/testsuite/ChangeLog: 2017-11-29 Pedro Alves * gdb.base/langs.exp: Use -qualified. * gdb.cp/meth-typedefs.exp: Use -qualified, and add tests without it. * gdb.cp/namespace.exp: Use -qualified. * gdb.linespec/cpcompletion.exp (overload-2, fqn, fqn-2) (overload-3, template-overload, template-ret-type, const-overload) (const-overload-quoted, anon-ns, ambiguous-prefix): New procedures. (test_driver): Call them. * gdb.cp/save-bp-qualified.cc: New. * gdb.cp/save-bp-qualified.exp: New. * gdb.linespec/explicit.exp: Test -qualified. * lib/completion-support.exp (completion::explicit_opts_list): Add "-qualified". * lib/gdb.exp (gdb_breakpoint): Handle "qualified". gdb/doc/ChangeLog: 2017-11-29 Pedro Alves * gdb.texinfo (Linespec Locations): Document how "function" is interpreted in C++ and Ada. Document "-qualified". (Explicit Locations): Document how "-function" is interpreted in C++ and Ada. Document "-qualified". commit a207cff2da9f154e4f581b19dcde215593bfccf9 Author: Pedro Alves Date: Wed Nov 29 19:33:23 2017 +0000 Handle custom completion match prefix / LCD A following patch will add support for wild matching for C++ symbols, making completing on "b push_ba" on a C++ program complete to std::vector<...>::push_back, std::string::push_back etc., like: (gdb) b push_ba[TAB] std::vector<...>::push_back(....) std::string<...>::push_back(....) Currently, we compute the "lowest common denominator" between all completion candidates (what the input line is adjusted to) as the common prefix of all matches. That's problematic with wild matching as above, as then we'd end up with TAB changing the input line to "b std::", losing the original input, like: (gdb) b push_ba[TAB] std::vector<...>::push_back(....) std::string<...>::push_back(....) (gdb) b std:: while obviously we'd want it to adjust itself to "b push_back(" instead: (gdb) b push_ba[TAB] std::vector<...>::push_back(....) std::string<...>::push_back(....) (gdb) b push_back( This patch adds the core code necessary to support this, though nothing really makes use of it yet in this patch. gdb/ChangeLog: 2017-11-29 Pedro Alves * ada-lang.c (ada_lookup_name_info::matches): Change type of parameter from completion_match to completion_match_result. Adjust. (do_wild_match, do_full_match, ada_symbol_name_matches): Likewise. * completer.c (completion_tracker::maybe_add_completion): Add match_for_lcd parameter and use it. (completion_tracker::add_completion): Likewise. * completer.h (class completion_match_for_lcd): New class. (completion_match_result::match_for_lcd): New field. (completion_match_result::set_match): New method. (completion_tracker): Add comments. (completion_tracker::add_completion): Add match_for_lcd parameter. (completion_tracker::reset_completion_match_result): Reset match_for_lcd too. (completion_tracker::maybe_add_completion): Add match_for_lcd parameter. (completion_tracker::m_lowest_common_denominator_unique): Extend comments. * cp-support.c (cp_symbol_name_matches_1) (cp_fq_symbol_name_matches): Change type of parameter from completion_match to completion_match_result. Adjust. * language.c (default_symbol_name_matcher): Change type of parameter from completion_match to completion_match_result. Adjust. * language.h (completion_match_for_lcd): Forward declare. (default_symbol_name_matcher): Change type of parameter from completion_match to completion_match_result. * symtab.c (compare_symbol_name): Adjust. (completion_list_add_name): Pass the match_for_lcd to the tracker. * symtab.h (ada_lookup_name_info::matches): Change type of parameter from completion_match to completion_match_result. (symbol_name_matcher_ftype): Likewise, and update comments. commit 4024cf2b8d864279ff87af1a2ade77ab6d710d50 Author: Pedro Alves Date: Wed Nov 29 19:25:58 2017 +0000 Fix setting-breakpoints regression on PPC64 (function descriptors) The recent-ish commit e5f25bc5d6db ('Fix "list ambiguous_variable"') caused a serious regression on PPC64. See . Basically, after that patch, GDB sets breakpoints in function descriptors instead of where the descriptors point to, which is incorrect. The problem is that GDB now only runs a minsym's address through gdbarch_convert_from_func_ptr_addr if msymbol_is_text returns true. However, if the symbol points to a function descriptor, msymbol_is_text is false since function descriptors are in fact outside the text section. The fix is to also run a non-text address through gdbarch_convert_from_func_ptr_addr, and if that detects that it was indeed a function descriptor, treat the resulting address as a function. While implementing that directly in linespec.c:minsym_found (where the bad msymbol_is_text check is) fixes the issue, I noticed that linespec.c:add_minsym has some code that also basically needs to do the same checks, however it's implemented differently. Also, add_minsym is calling find_pc_sect_line on non-function symbols, which also doesn't look right. So I introduced msymbol_is_function, so that we have a simple place to consider minsyms and function descriptors. And then, the only other use of msymbol_is_text is in find_function_alias_target, which turns out to also be incorrect. Changing that one to use msymbol_is_function, i.e., to consider function descriptors too fixes (on PPC64): -FAIL: gdb.base/symbol-alias.exp: p func_alias -FAIL: gdb.base/symbol-alias.exp: p *func_alias() +PASS: gdb.base/symbol-alias.exp: p func_alias +PASS: gdb.base/symbol-alias.exp: p *func_alias() And then after that, msymbol_is_text is no longer used anywhere, so it can be removed. Tested on x86_64 GNU/Linux, no regressions. Tested on PPC64 GNU/Linux and results compared to a testrun of e5f25bc5d6db^ (before the offending commit), also no regressions. (there's a couple new FAILs and some new symbol name matching unit tests are crashing, but that looks unrelated). gdb/ChangeLog: 2017-11-29 Pedro Alves * linespec.c (minsym_found, add_minsym): Use msymbol_is_function. * minsyms.c (msymbol_is_text): Delete. (msymbol_is_function): New function. * minsyms.h (msymbol_is_text): Delete. (msymbol_is_function): New declaration. * symtab.c (find_function_alias_target): Use msymbol_is_function. commit 5dcf52c19f7045fb179f703426d345b8a81d2210 Author: Tom Tromey Date: Wed Nov 29 09:27:40 2017 -0700 Fix gdb snapshots Joel pointed out that gdb snapshots were broken by my Makefile patch series. The bug is that rmdir in distclean was failing, because the directory did not exist. This fixes the bug by only invoking rmdir when the directory exists. Tested using "src-release.sh gdb". 2017-11-29 Tom Tromey * Makefile.in (distclean): Handle the case where rmdir fails. commit 6cf829987c6bc9ae61c7c9e8b4c71c4eea8ba2f9 Author: Jim Wilson Date: Wed Nov 29 10:51:36 2017 -0800 Give Palmer co-credit for last patch. commit 36877bfb88f99dd0e4336f98233f7caaa1d594a7 Author: Jim Wilson Date: Wed Nov 29 10:36:46 2017 -0800 Fix riscv malloc error on small alignment after norvc. gas/ * config/tc-riscv.c (riscv_frag_align_code): New local insn_alignment. Early return if bytes less than or equal to insn_alignment. * testsuite/gas/riscv/align-1.l: New. * testsuite/gas/riscv/align-1.s: New. * testsuite/gas/riscv/riscv.exp: Use run_dump_tests. Use run_list_test for align-1. commit f923328821e2e835c725822bce2aac6e10c52dd9 Author: Jim Wilson Date: Wed Nov 29 10:22:26 2017 -0800 In x86 -n docs, mention that you need an explicit nop fill byte. gas/ PR gas/22464 * doc/c-i386.texi (-n): Clarify docs. commit f10e937a1cdcffcca748c226ed78d09369fc4cd0 Author: Renlin Li Date: Wed Nov 29 16:00:47 2017 +0000 [GAS][AARCH64]Fix a typo for IP1 register alias. This should be an obvious fix. It corrects the register number for IP1 to 17. gas/ 2017-11-29 Renlin Li * config/tc-aarch64.c (reg_names): Fix IP1 register alias error. * testsuite/gas/aarch64/register_aliases.s: Add IP0 and IP1 tests. * testsuite/gas/aarch64/register_aliases.d: Update. commit 4581a1c7d304ce14e714b27522ebf3d0188d6543 Author: Nick Clifton Date: Wed Nov 29 17:12:12 2017 +0000 Check for a NULL symbol pointer when reading relocs from a COFF based file. PR 22509 * coffcode.h (coff_slurp_reloc_table): Check for a NULL symbol pointer when processing relocs. commit f6f1d339d4169a60362f1438221bd03f8f021f04 Author: Phil Muldoon Date: Wed Nov 29 16:48:32 2017 +0000 Fix Python rbreak tests setting too many breakpoints when glibc debug info is installed. 2017-11-29 Phil Muldoon * gdb.python/py-rbreak.exp: Set nosharedlibrary before tests. commit 8ca2f0b9ac024db56ca40f2b37c0b6b2bfcd139b Author: Tom Tromey Date: Mon Aug 21 20:01:40 2017 -0600 Update usage text for add-symbol-file, symbol-file, and load This updates the usage text for the add-symbol-file, symbol-file, and load commands. gdb/ChangeLog 2017-11-29 Tom Tromey * symfile.c (_initialize_symfile): Update usage text for add-symbol-file, symbol-file, load. commit 02ca603a481d55e175765ab5bff30a04b86e905a Author: Tom Tromey Date: Sun Aug 6 11:07:28 2017 -0600 Fix add-symbol-file usage and errors This patch updates add-symbol-file help and error text. It changes add-symbol-file to throw an exception if "-s" is seen but not all of the arguments are given. Previously this was silently ignored. It changes the unrecognized argument message to more clearly state what went wrong. Finally, it updates the usage line in the help text to follow GNU style regarding "metasyntactic variables"; a change I believe should be made to all gdb help messages. gdb/ChangeLog 2017-11-29 Tom Tromey * symfile.c (add_symbol_file_command): Error if some arguments to -s are missing. Change unrecognized-argument error message. (_initialize_symfile): Fix usage text for add-symbol-file. gdb/testsuite/ChangeLog 2017-11-29 Tom Tromey * gdb.base/relocate.exp: Update invalid argument test. Add new tests for invalid arguments. commit ed6c0bfb2643861636581ac8775144efa1728c7c Author: Thomas Preud'homme Date: Wed Nov 29 13:40:59 2017 +0000 [gdb/testsuite] Fix return type of psymtab-parameter As pointed out by Pedro Alves, psymtab-parameter testcase rely on the return type being long. This patch revert the changes made in f106e10e5e80265e1c43532bba4cb997a7dfa022 and change psymtab-parameter.cc to return 0 long instead. 2017-11-29 Thomas Preud'homme gdb/testsuite/ * gdb.cp/psymtab-parameter.cc (func): Change return type back to long. Return 0 as a long. * gdb.cp/psymtab-parameter.exp: Change func's return type back to long. commit d785b7d4b877ed465d04072e17ca19d0f47d840f Author: Nick Clifton Date: Wed Nov 29 12:40:43 2017 +0000 Stop objdump from attempting to allocate a huge chunk of memory when parsing relocs in a corrupt file. PR 22508 * objdump.c (dump_relocs_in_section): Also check the section's relocation count to make sure that it is reasonable before attempting to allocate space for the relocs. commit 08f650e6b657e59959d7db8af100720721bd10a2 Author: H.J. Lu Date: Wed Nov 29 04:20:48 2017 -0800 ld: Add a testcase for PR ld/22471 PR ld/22471 * testsuite/ld-elf/pr22471.t: New file. * testsuite/ld-elf/pr22471a.s: Likewise. * testsuite/ld-elf/pr22471b.s: Likewise. * testsuite/ld-elf/shared.exp (ASFLAGS): Define UNDERSCORE for underscore targets. Run PR ld/22471 tests. commit f106e10e5e80265e1c43532bba4cb997a7dfa022 Author: Thomas Preud'homme Date: Wed Nov 29 10:45:31 2017 +0000 [gdb/testsuite] Fix wrong return type in tests The following tests are marked untested with latest GCC due to a warning being emitted for a mismatch between their return type and what the lack of return statement: * gdb.cp/breakpoint.exp * gdb.cp/psymtab-parameter.exp * gdb.cp/shadow.exp This patch fix the return type to match the function definitions. 2017-11-29 Thomas Preud'homme gdb/testsuite/ * gdb.cp/breakpoint.cc (bar): Set return type to void. * gdb.cp/psymtab-parameter.cc (func): Likewise. * gdb.cp/psymtab-parameter.exp: Update comment regarding prototype of func (). * gdb.cp/shadow.cc (B.func): Return 0. commit ca39c2f4dd0fedcaaee348be7a913f0c14876796 Author: Stefan Stroe Date: Wed Nov 29 18:12:14 2017 +1030 Support --localedir, --datarootdir and --datadir bfd/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. binutils/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. gas/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. gold/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. gprof/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. ld/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. opcodes/ * po/Make-in (datadir): Define as @datadir@. (localedir): Define as @localedir@. (gnulocaledir, gettextsrcdir): Use @datarootdir@. commit ed9c7ee03780b8d5acf091091ded29cd40df8254 Author: Nick Clifton Date: Wed Nov 29 09:32:49 2017 +0000 Use the record_alignment function when creating a .note section, in case the user has already created the section. PR 22492 * config/obj-elf.c (obj_elf_version): Use record_alignment rather than bfd_set_section_alignment. commit 5dc824ed42cd173c1525f5abc76f4091f11a4dbc Author: Cary Coutant Date: Tue Nov 28 18:48:12 2017 -0800 Allow multiply-defined absolute symbols when they have the same value. gold/ * resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute symbols when they have the same value. commit 8de0e07bf381f677bb93a8da72185a54e5b014bd Author: Cary Coutant Date: Tue Nov 28 18:09:41 2017 -0800 Allow multiple .eh_frame sections per object file. LLVM is experimenting with placing .eh_frame sections in the COMDAT group with the function's text. This triggers an internal error in gold because we don't expect to see but one .eh_frame section in an object, and we use a single data member in class Sized_relobj_file to keep track of that section. This patch removes that data member, and instead checks the output section and the input section offset to identify an optimized .eh_frame section. gold/ * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_. * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. (Sized_relobj_file::layout_eh_frame_section): Likewise. (Sized_relobj_file::do_count_local_symbols): Check for optimized .eh_frame section by other means. (Sized_relobj_file::compute_final_local_value_internal): Likewise. commit 144653ec15141907a3276b6181c4d1114f71be13 Author: GDB Administrator Date: Wed Nov 29 00:00:23 2017 +0000 Automatic date update in version.in commit b0029dce6867de1a2828293177b0e030d2f0f03c Author: Nick Clifton Date: Tue Nov 28 18:00:29 2017 +0000 Prevent a memory exhaustion problem when trying to read in strings from a COFF binary with a corrupt string table size. PR 22507 * coffgen.c (_bfd_coff_read_string_table): Check for an excessive size of the external string table. commit ff174d3ffad13af17a61583db3e1cd9c0c6cf237 Author: H.J. Lu Date: Tue Nov 28 09:00:44 2017 -0800 gold: Add a newline at end of pr22266_a.c This patch fixes the build with GCC 4.2: gold/testsuite/pr22266_a.c:13:2: error: no newline at end of file * testsuite/pr22266_a.c: Add a newline at end of file. commit 82ed9683ec099d8205dc499ac84febc975235af6 Author: H.J. Lu Date: Tue Nov 28 08:18:33 2017 -0800 Properly handle note sections and segments When dumping notes, get note alignment from either note section or note segment. To support notes generated by assemblers with https://sourceware.org/bugzilla/show_bug.cgi?id=22492 we treate alignment as 4 bytes if it is less than 4. Otherwise, we skip notes if alignment isn't 4 nor 8 bytes. We should call load_separate_debug_file only if e_shstrndx != SHN_UNDEF. PR binutils/22490 * readelf.c (process_notes_at): Add an argument for note alignment. If note alignment is less than 4, use 4 byte alignment. Otherwise, skip notes if alignment isn't 4 nor 8 bytes. (process_corefile_note_segments): Pass segment alignment to process_notes_at. (process_note_sections): Pass section alignment to process_notes_at. (process_object): Call load_separate_debug_file only if e_shstrndx != SHN_UNDEF. commit b23dc97fe237a1d9e850d7cbeee066183a00630b Author: Nick Clifton Date: Tue Nov 28 13:20:31 2017 +0000 Fix a memory access violation when attempting to parse a corrupt COFF binary with a relocation that points beyond the end of the section to be relocated. PR 22506 * reloc.c (reloc_offset_in_range): Rename to bfd_reloc_offset_in_range and export. (bfd_perform_relocation): Rename function invocation. (bfd_install_relocation): Likewise. (bfd_final_link_relocate): Likewise. * bfd-in2.h: Regenerate. * coff-arm.c (coff_arm_reloc): Use bfd_reloc_offset_in_range. * coff-i386.c (coff_i386_reloc): Likewise. * coff-i860.c (coff_i860_reloc): Likewise. * coff-m68k.c (mk68kcoff_common_addend_special_fn): Likewise. * coff-m88k.c (m88k_special_reloc): Likewise. * coff-mips.c (mips_reflo_reloc): Likewise. * coff-x86_64.c (coff_amd64_reloc): Likewise. commit 6c6bc899302deb7c9b14f71da79c0fffc992204e Author: H.J. Lu Date: Tue Nov 28 04:54:35 2017 -0800 ELF: Don't set non_ir_ref_regular in check_relocs Since elf_link_add_object_symbols sets non_ir_ref_regular now, there is no need to set non_ir_ref_regular in check_relocs. Tested on i686 and x86-64. * elf-m10300.c (mn10300_elf_check_relocs): Don't set non_ir_ref_regular. * elf32-arm.c (elf32_arm_check_relocs): Likewise. * elf32-bfin.c (bfin_check_relocs): Likewise. * elf32-cr16.c (cr16_elf_check_relocs): Likewise. * elf32-cris.c (cris_elf_check_relocs): Likewise. * elf32-d10v.c (elf32_d10v_check_relocs): Likewise. * elf32-dlx.c (elf32_dlx_check_relocs): Likewise. * elf32-fr30.c (fr30_elf_check_relocs): Likewise. * elf32-frv.c (elf32_frv_check_relocs): Likewise. * elf32-hppa.c (elf32_hppa_check_relocs): Likewise. * elf32-i370.c (i370_elf_check_relocs): Likewise. * elf32-i386.c (elf_i386_check_relocs): Likewise. * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise. * elf32-lm32.c (lm32_elf_check_relocs): Likewise. * elf32-m32c.c (m32c_elf_check_relocs): Likewise. * elf32-m32r.c (m32r_elf_check_relocs): Likewise. * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise. * elf32-m68k.c (elf_m68k_check_relocs): Likewise. * elf32-mcore.c (mcore_elf_check_relocs): Likewise. * elf32-metag.c (elf_metag_check_relocs): Likewise. * elf32-microblaze.c (microblaze_elf_check_relocs): Likewise. * elf32-moxie.c (moxie_elf_check_relocs): Likewise. * elf32-msp430.c (elf32_msp430_check_relocs): Likewise. * elf32-mt.c (mt_elf_check_relocs): Likewise. * elf32-nios2.c (nios2_elf32_check_relocs): Likewise. * elf32-or1k.c (or1k_elf_check_relocs): Likewise. * elf32-ppc.c (ppc_elf_check_relocs): Likewise. * elf32-rl78.c (rl78_elf_check_relocs): Likewise. * elf32-s390.c (elf_s390_check_relocs): Likewise. * elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise. * elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise. * elf32-sh.c (sh_elf_check_relocs): Likewise. * elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise. * elf32-tilepro.c (tilepro_elf_check_relocs): Likewise. * elf32-v850.c (v850_elf_check_relocs): Likewise. * elf32-vax.c (elf_vax_check_relocs): Likewise. * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise. * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise. * elf64-aarch64.c (elf64_aarch64_check_relocs): Likewise. * elf64-alpha.c (elf64_alpha_check_relocs): Likewise. * elf64-hppa.c (elf64_hppa_check_relocs): Likewise. * elf64-ia64-vms.c (elf64_ia64_check_relocs): Likewise. * elf64-mmix.c (mmix_elf_check_relocs): Likewise. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. * elf64-s390.c (elf_s390_check_relocs): Likewise. * elf64-sh64.c (sh_elf64_check_relocs): Likewise. * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Likewise. * elfnn-ia64.c (elfNN_ia64_check_relocs): Likewise. * elfnn-riscv.c (riscv_elf_check_relocs): Likewise. * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. * elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise. commit 165f707ac88916aedecc96fa518be8879704d6da Author: Alan Modra Date: Mon Nov 27 13:40:43 2017 +1030 PR22471, undefined reference to linker-defined symbols This patch processes linker script assignment statements before ld opens DT_NEEDED libraries, in order to define symbols like __bss_start that might also be defined by a library, falsely triggering an error about "DSO missing from command line". The initial value won't be correct when assigning a symbol from dot, and I make no attempt to handle all expressions. For example, an assignment like "_start_foo = ADDR (.foo)" isn't valid until sections are laid out, so won't define _start_foo early. What's here should be enough for most common scripts, and hopefully won't perturb fragile scripts. bfd/ PR 22471 * elflink.c (_bfd_elf_merge_symbol): Allow weak symbols to override early passes over linker script symbols. * linker.c (_bfd_generic_link_add_one_symbol): Allow symbols to override early passes over linker script symbols. Clear ldscript_def on symbol definitions. ld/ PR 22471 * ldexp.c (struct definedness_hash_entry): Delete "by_script". Make "iteration" an 8-bit field, and update mask in all uses. (definedness_newfunc): Don't init "by_script". (update_definedness): Test ldscript_def rather than by_script. (is_sym_value): Likewise. (fold_name ): Return a result for first phase. Test ldscript_def. (fold_name ): Return a result for first phase. * ldlang.c (open_input_bfds): Process all assignments, not just defsym. (lang_process): Increment lang_statement_iteration before open_input_bfds. * testsuite/ld-mips-elf/tlsdyn-o32-1.d: Adjust for larger .dynsym. * testsuite/ld-mips-elf/tlsdyn-o32-1.got: Likewise. * testsuite/ld-mips-elf/tlsdyn-o32-2.d: Likewise. * testsuite/ld-mips-elf/tlsdyn-o32-2.got: Likewise. * testsuite/ld-mips-elf/tlsdyn-o32-3.d: Likewise. * testsuite/ld-mips-elf/tlsdyn-o32-3.got: Likewise. commit cd5b2babea487b0a71a14b593af98330efd8d73e Author: Alan Modra Date: Mon Nov 27 18:43:03 2017 +1030 Copying symbol type in ld script assignments There is a call to update_definedness between code that evaluates an assignment expression value and code that transfers symbol attributes. When script assignment expressions contain DEFINED, that can mean the wrong symbol type is copied. This patch tracks symbols read during expression evaluation, rather than examining the expression and re-evaluating conditionals. Not only does this simplify the code, it also means ld can now copy symbol types in more complex expressions. An unfortunate side effect of copying symbol type for more complex expressions affects mmix, which uses PROVIDE (Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : _start.)); in a default script. So now _start or _start. symbol type may be copied, losing the function type specially set up for Main. This can be avoided by making bfd_copy_link_hash_symbol_type do nothing for mmix. bfd/ * elf64-mmix.c (bfd_elf64_bfd_copy_link_hash_symbol_type): Define. ld/ * ldexp.h (struct ldexp_control): Add "assign_src". * ldexp.c (fold_trinary): Save and restore assign_src around condition evaluation. (fold_name ): Set expld.assign_src. (try_copy_symbol_type): Delete. (exp_fold_tree_1): Set symbol type using expld.assign_src. commit a83ef4d139c377e0e87d105977d85c6ef9fbb162 Author: H.J. Lu Date: Tue Nov 28 03:48:25 2017 -0800 ld: Set non_ir_ref_regular on symbols referenced in regular objects If linker plugin is enabled, set non_ir_ref_regular on symbols referenced in regular objects so that linker plugin will get the correct symbol resolution. bfd/ PR ld/22502 * elflink.c (_bfd_elf_merge_symbol): Also skip definition from an IR object. (elf_link_add_object_symbols): If linker plugin is enabled, set non_ir_ref_regular on symbols referenced in regular objects so that linker plugin will get the correct symbol resolution. ld/ PR ld/22502 * testsuite/ld-plugin/lto.exp: Run PR ld/22502 test. * testsuite/ld-plugin/pr22502a.c: New file. * testsuite/ld-plugin/pr22502b.c: Likewise. commit f0531ed6a429b0e6e6509e6852ccd3586f3fa1bd Author: Jim Wilson Date: Mon Nov 27 19:20:53 2017 -0800 Compress loads/stores with implicit 0 offset. gas/ * config/tc-riscv.c (riscv_handle_implicit_zero_offset): New. (riscv_ip): Cases 'k', 'l', 'm', 'n', 'M', 'N', add call to riscv_handle_implicit_zero_offset. At label load_store, replace existing code with call to riscv_handle_implicit_zero_offset. * testsuite/gas/riscv/c-ld.d, testsuite/gas/riscv/c-ld.s: New. * testsuite/gas/riscv/c-lw.d, testsuite/gas/riscv/c-lw.s: New. * testsuite/gas/riscv/riscv.exp: Run new tests. commit 033bfb739b525703bfe23f151d09e9beee3a2afe Author: Cary Coutant Date: Mon Nov 27 17:32:55 2017 -0800 Fix symbol values and relocation addends for relocatable links. The fix for PR 19291 broke some other cases where -r is used with scripts, as reported in PR 22266. The original fix for PR 22266 ended up breaking many cases for REL targets, where the addends are stored in the section data, and are not being adjusted properly. The problem was basically that in a relocatable output file (ET_REL), symbol values are supposed to be relative to the start address of their section. Usually in a relocatable file, all sections start at 0, so the failure to get this right is often irrelevant, but with a linker script, we occasionally see an output section whose starting address is not 0, and gold would occasionally write a symbol with its relocated value instead of its section-relative value. This patch reverts the recent fix for PR 22266 as well as my original fix for PR 19291. The original fix moved the symbol value adjustment to write_local_symbols, but neglected to undo a few places where the adjustment was also being applied, resulting in an occasional double adjustment. The more recent fix removed those other adjustments, but then failed to re-account for the adjustment when rewriting the relocations on REL targets. With the old attempts reverted, we now apply the symbol value adjustment to the one case that had been missed (non-section symbols in merge sections). But now we also need to account for the adjustment when rewriting the addends for RELA relocations. gold/ PR gold/19291 PR gold/22266 * object.cc (Sized_relobj_file::compute_final_local_value_internal): Revert changes from 2017-11-08 patch. Adjust symbol value in relocatable links for non-section symbols. (Sized_relobj_file::compute_final_local_value): Revert changes from 2017-11-08 patch. (Sized_relobj_file::do_finalize_local_symbols): Likewise. (Sized_relobj_file::write_local_symbols): Revert changes from 2015-11-25 patch. * object.h (Sized_relobj_file::compute_final_local_value_internal): Revert changes from 2017-11-08 patch. * powerpc.cc (Target_powerpc::relocate_relocs): Adjust addend for relocatable links. * target-reloc.h (relocate_relocs): Adjust addend for relocatable links. * testsuite/pr22266_a.c (hello): New function. * testsuite/pr22266_main.c (main): Add test for merge sections. * testsuite/pr22266_script.t: Add rule for .rodata. commit 57c1b6811a2d97a3de229351ed19201853245a5d Author: GDB Administrator Date: Tue Nov 28 00:00:24 2017 +0000 Automatic date update in version.in commit 18ca73470a0d7eb96a807c97559cbb9fddb4b461 Author: Tom Tromey Date: Wed Nov 22 20:57:04 2017 -0700 Remove REMOTE_OBS This removes REMOTE_OBS from the Makefile. It is no longer needed, as remote support is always built into gdb. The relevant sources are now added to COMMON_SFILES, where they are treated like other ordinary sources. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (REMOTE_OBS): Remove. (SFILES): Remove remote sources. (COMMON_SFILES): Add remote sources. (ALLDEPFILES): Remove dcache.c. commit 66599a7dc0369583229c0c51e5e009cfa7cceb73 Author: Tom Tromey Date: Tue Nov 21 14:29:59 2017 -0700 Move target object files to target subdirectory Move the object files corresponding to target/*.c to the target subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_TARGET_SRCS, SUBDIR_TARGET_OBS): New variables. (SFILES): Use SUBDIR_TARGET_SRCS. (COMMON_OBS): Use SUBDIR_TARGET_OBS. Remove waitstatus.o. (CONFIG_SRC_SUBDIR): Add target. (%.o): Remove target rule. commit 4f04fba813785f3d749376d9b434c0f94f835dbc Author: Tom Tromey Date: Tue Nov 21 14:24:29 2017 -0700 Add missing files to COMMON_SFILES While working on the previous patch, I found a few .o files whose corresponding .c file was not mentioned in Makefile.in. This patch fixes the problem. I pulled this out separately to make it simpler to review. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (COMMON_OBS): Remove filename-seen-cache.o, registry.o, thread-fsm.o, debug.o. (COMMON_SFILES): Add filename-seen-cache.c, registry.c, thread-fsm.c, debug.c. commit b5adff3b5e14a45501f5761877d587019c94368a Author: Tom Tromey Date: Tue Nov 21 14:19:27 2017 -0700 Simplify COMMON_OBS by using list of sources This introduces a new COMMON_SFILES variable, and then defines some of COMMON_OBS in terms of this new variable. This simpifies adding a new ordinary source file. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (COMMON_SFILES): New. (SFILES): Move some entries to COMMON_SFILES. (COMMON_OBS): Use COMMON_SFILES. commit afa0a4115985939f242bcd54211c98345eefe16b Author: Tom Tromey Date: Tue Nov 21 13:44:11 2017 -0700 Define YYOBJ in terms of YYFILES Change YYOBJ to be defined in terms of YYFILES. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (YYFILES): Update comment. (YYOBJ): Redefine. commit 8fd8d003de32661ed703ae9fd7e1a856f1b58f81 Author: Tom Tromey Date: Tue Nov 21 13:17:31 2017 -0700 Move python object files to python subdirectory Move the object files corresponding to python/*.c to the python subdirectory in the build tree. Because special CFLAGS are passed just to Python compilations, this patch also required the addition of a pattern rule to update INTERNAL_CFLAGS for here. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_PYTHON_OBS): Redefine. (CONFIG_SRC_SUBDIR): Add python. (%.o): Remove python rule. (python/%.o): New rule. * configure: Rebuild. * configure.ac (CONFIG_OBS): Refer to python/python.o commit bd810fff78006d38e3c287b7bd241319f4d763be Author: Tom Tromey Date: Tue Nov 21 13:05:26 2017 -0700 Move guile object files to guile subdirectory Move the object files corresponding to guile/*.c to the guile subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * configure: Rebuild. * configure.ac (CONFIG_OBS): Refer to guile/guile.o. * Makefile.in (SUBDIR_GUILE_OBS): Redefine. (CONFIG_SRC_SUBDIR): Add guile. (%.o): Remove guile rule. commit 75787ac19cdf7e8aa9b4c28f9421837ba479cf51 Author: Tom Tromey Date: Tue Nov 21 12:56:55 2017 -0700 Move unittests object files to unittests subdirectory Move the object files corresponding to unittests/*.c to the unittests subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_UNITTESTS_OBS): Redefine. (%.o): Remove unittests rule. (CONFIG_SRC_SUBDIR): Add unittests. commit 5c8a943144f6972dc0854f2d01d7cb365b06fceb Author: Tom Tromey Date: Tue Nov 21 12:42:33 2017 -0700 Move tui object files to tui subdirectory Move the object files corresponding to tui/*.c to the tui subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_TUI_OBS): Redefine. (CONFIG_SRC_SUBDIR): Add tui. (%.o): Remove tui rule. commit a26aa30cc535c9bde457cdd00daf0c82f25da0af Author: Tom Tromey Date: Tue Nov 21 12:35:05 2017 -0700 Move compile object files to compile subdirectory Move the object files corresponding to compile/*.c to the compile subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_GCC_COMPILE_OBS): Redefine. (%.o): Remove compile rule. (CONFIG_SRC_SUBDIR): Add compile. commit 6f3cdf9a3bfa2c0a22fa9dc40b45578e2ea7957d Author: Tom Tromey Date: Tue Nov 21 12:26:11 2017 -0700 Move mi objects to mi subdirectory Move object files corresponding to mi/*.c to a subdirectory in the build tree. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_MI_OBS): Redefine. (%.o): Remove mi rule. (CONFIG_SRC_SUBDIR): Add mi. (COMMON_OBS): Use mi/mi-common.o commit f06afa533665d88c651617de528b9640eb4e8611 Author: Tom Tromey Date: Tue Nov 21 12:22:11 2017 -0700 Move cli object files to cli subdirectory Following the "arch" move, this moves the object files corresponding to the cli/*.c source files to the "cli" build directory. ChangeLog 2017-11-27 Tom Tromey * Makefile.in (SUBDIR_CLI_OBS): Redefine. (%.o): Remove cli rule. (CONFIG_SRC_SUBDIR): Add cli. commit b22c88c2ca013cc25d7a8fcbc748122bb1a349bb Author: Tom Tromey Date: Tue Nov 21 12:15:33 2017 -0700 A simpler way to make the "arch" build directory This implements a simpler way to make the "arch" build directory -- namely, now it is done as an order-only dependency in the Makefile, rather than being created when config.status is run. This simpler because it means that the build directories can be changed without re-running autoconf. ChangeLog 2017-11-27 Tom Tromey * configure.ac (CONFIG_SRC_SUBDIR): Don't subst. * configure: Rebuild. * Makefile.in (CONFIG_SRC_SUBDIR): Redefine. (CONFIG_DEP_SUBDIR): New variable. (%.o): Add order-only dependency. ($(CONFIG_DEP_SUBDIR)): New target. commit 407e1140841f7fc337e90a7ba4482fb5a10c1701 Author: Max Filippov Date: Mon Nov 20 06:35:06 2017 -0800 gas: xtensa: speed up find_trampoline_seg find_trampoline_seg takes noticeable time when assembling source with many sections. Cache the result of the most recent search and check it first. No functional changes. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (find_trampoline_seg): Add static variable that caches the result of the most recent search. commit 148d6384291720bcaaa062badf1179b6215f6da3 Author: Max Filippov Date: Tue Nov 14 15:16:08 2017 -0800 gas: xtensa: implement trampoline coalescing There is a recurring pattern in assembly files generated by a compiler where a lot of jumps in a function are going to the same place. When these jumps are relaxed with trampolines the assembler generates a separate jump thread from each source. Create an index of trampoline jump targets for each segment and see if a jump being relaxed goes to a location from that index, in which case replace its target with a location of existing trampoline jump that results in the shortest path to the original target. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (trampoline_chain_entry, trampoline_chain) (trampoline_chain_index): New structures. (trampoline_index): Add chain_index field. (xg_order_trampoline_chain_entry, xg_sort_trampoline_chain) (xg_find_chain_entry, xg_get_best_chain_entry) (xg_order_trampoline_chain, xg_get_trampoline_chain) (xg_find_best_eq_target, xg_add_location_to_chain) (xg_create_trampoline_chain, xg_get_single_symbol_slot): New functions. (xg_relax_fixups): Call xg_find_best_eq_target to adjust jump target to point to an existing jump. Call xg_create_trampoline_chain to create new jump target. Call xg_add_location_to_chain to add newly created trampoline jump to the corresponding chain. (add_jump_to_trampoline): Extract loop searching for a single slot with a symbol into a separate function, replace that code with a call to that function. (relax_frag_immed): Call xg_find_best_eq_target to adjust jump target to point to an existing jump. * testsuite/gas/xtensa/all.exp: Add trampoline-2 test. * testsuite/gas/xtensa/trampoline.d: Adjust absolute addresses as many duplicate trampoline chains are now coalesced. * testsuite/gas/xtensa/trampoline.s: Add _nop so that objdump stays in sync with instruction stream. * testsuite/gas/xtensa/trampoline-2.l: New test result file. * testsuite/gas/xtensa/trampoline-2.s: New test source file. commit 76a493ab99d9276180db6e791f95d1d6d86d2954 Author: Max Filippov Date: Mon Nov 13 00:42:43 2017 -0800 gas: xtensa: reuse trampoline placement code There's almost exact copy of the trampoline placement code in the search_trampolines function that is used for jumps generated for relaxed branch instructions. Get rid of the duplication and reuse xg_find_best_trampoline function for that. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (search_trampolines, get_best_trampoline): Remove definitions. (xg_find_best_trampoline_for_tinsn): New function. (relax_frag_immed): Replace call to get_best_trampoline with a call to xg_find_best_trampoline_for_tinsn. * testsuite/gas/xtensa/trampoline.d: Adjust absolute addresses as the placement of trampolines for relaxed branches has been changed. commit fe6c2f1b6409867a03dd32214679dd825f74ec48 Author: Max Filippov Date: Sat Nov 11 04:15:55 2017 -0800 gas: xtensa: rewrite xg_relax_trampoline Replace linked list of trampoline frags with an ordered array, so that instead of indexing fixups trampolines could be indexed. Keep each array in the trampoline_seg structure, so there's no need to rebuild it for every new processed segment. Don't run relaxation for each trampoline frag, instead run it for each fixup in the current segment that needs relaxation at the beginning of each relaxation pass. This way the complexity of this process drops from about O(n^2 * m) to about O(log n * m), where n is the number of trampoline frags and m is the number of fixups that need relaxation in the segment. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (trampoline_index): New structure. (trampoline_seg): Replace trampoline list with trampoline index. (xg_find_trampoline, xg_add_trampoline_to_index) (xg_remove_trampoline_from_index, xg_add_trampoline_to_seg) (xg_is_trampoline_frag_full, xg_get_fulcrum) (xg_find_best_trampoline, xg_relax_fixup, xg_relax_fixups) (xg_is_relaxable_fixup): New functions. (J_MARGIN): New macro. (xtensa_create_trampoline_frag): Use xg_add_trampoline_to_seg instead of open-coded addition to the linked list. (dump_trampolines): Iterate through the trampoline_seg::index. (cached_fixupS, cached_fixup, fixup_cacheS, fixup_cache) (fixup_order, xtensa_make_cached_fixup) (xtensa_realloc_fixup_cache, xtensa_cache_relaxable_fixups) (xtensa_find_first_cached_fixup, xtensa_delete_cached_fixup) (xtensa_add_cached_fixup, check_and_update_trampolines): Remove definitions. (xg_relax_trampoline): Extract logic into separate functions, replace body with a call to xg_relax_fixups. (search_trampolines): Replace search in linked list with search in index. Change data type of address-tracking variables from int to offsetT. Replace abs with labs. (xg_append_jump): Finish the trampoline frag if it's full. (add_jump_to_trampoline): Remove trampoline frag from the index if the frag is full. * config/tc-xtensa.h (xtensa_frag_type): Remove next_trampoline. * testsuite/gas/xtensa/trampoline.d: Adjust absolute addresses as the placement of trampolines has slightly changed. * testsuite/gas/xtensa/trampoline.s: Add _nop so that objdump stays in sync with instruction stream. commit 46888d710015aa8d4bb3c2dac7aa6505d6ac8227 Author: Max Filippov Date: Fri Nov 10 14:27:42 2017 -0800 gas: xtensa: merge trampoline_frag into xtensa_frag_type The split between fragS and trampoline_frag doesn't save much space, but makes trampolines management much more awkward. Merge trampoline_frag data into the xtensa_frag_type, which is a part of fragS. No functional changes. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (init_trampoline_frag): Replace pointer to struct trampoline_frag parameter with pointer to fragS. (xg_append_jump): Remove jump_around parameter. (struct trampoline_frag): Remove. (struct trampoline_seg): Change type of trampoline_list from struct trampoline_frag to fragS. (xtensa_create_trampoline_frag): Don't allocate struct trampoline_frag. Initialize new fragS::tc_frag_data fields. (dump_trampolines, xg_relax_trampoline, search_trampolines) (get_best_trampoline, init_trampoline_frag) (add_jump_to_trampoline, relax_frag_immed): Replace pointer to struct trampoline_frag with a pointer to fragS. (xg_append_jump): Remove jump_around parameter, use fragS::tc_frag_data.jump_around_fix instead. (xg_relax_trampoline, init_trampoline_frag) (add_jump_to_trampoline): Don't pass jump_around parameter to xg_append_jump. * config/tc-xtensa.h (struct xtensa_frag_type): Add new fields: needs_jump_around, next_trampoline and jump_around_fix. commit 1c2649f50f4e40c07840f45c4d237efcdd02e8e2 Author: Max Filippov Date: Fri Nov 10 13:38:23 2017 -0800 gas: xtensa: reuse find_trampoline_seg xtensa_create_trampoline_frag has opencoded fragment equivalent to find_trampoline_seg. Drop the fragment and use find_trampoline_seg instead. No functional changes. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (find_trampoline_seg): Move above the first use. (xtensa_create_trampoline_frag): Replace trampoline seg search code with a call to find_trampoline_seg. commit fec68fb168d580c188358347f3834072a8960ddc Author: Max Filippov Date: Thu Nov 9 14:51:18 2017 -0800 gas: xtensa: extract jump assembling for trampolines init_trampoline_frag, add_jump_to_trampoline and xg_relax_trampoline add a jump to the end of a trampoline frag. Extract it into a separate funciton and use it in all these places. No functional changes. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (xg_append_jump): New function. (xg_relax_trampoline, init_trampoline_frag) (add_jump_to_trampoline): Replace trampoline jump assembling code with a call to xg_append_jump. commit 120bc8b8b91cba4a8d4092ea0fb3d76bcbe98712 Author: Max Filippov Date: Fri Oct 20 16:23:28 2017 -0700 gas: extract xg_relax_trampoline from xtensa_relax_frag To make measurement and changes easier extract trampoline relaxation function. No functional changes. gas/ 2017-11-27 Max Filippov * config/tc-xtensa.c (xg_relax_trampoline): New function. (xtensa_relax_frag): Replace trampoline relaxation code with a call to xg_relax_trampoline. commit 10329bb27fa5531bf97da184c4d0ed9c4ed85605 Author: Joel Brobecker Date: Mon Nov 27 11:38:54 2017 -0800 fix two issues in gdb.ada/mi_catch_ex.exp (re: "exception-message") The following patch introduced a new feature related to Ada exception catchpoints: commit e547c119d043f2ecffb70452020ab9150d083a91 Author: Joel Brobecker Date: Fri Nov 24 17:09:42 2017 -0500 Subject: (Ada) provide the exception message when hitting an exception catchpoint Unfortunately, the patch left 2 errors in gdb.ada/mi_catch_ex.exp, both inside the "continue_to_exception" function: 1. The exception message on the console can include the exception message, and thus this patch adjust the expected output in the corresponding gdb_expect call to allow it; to allow it. 2. There was a TCL syntax confusion in "$exception_name(..." that caused TCL to evaluate "exception_name as an array, rather than as a variable. This patch fixes this by escaping the '(' (and the corresponding closing parenthesis, for consistency). gdb/testsuite/ChangeLog: * gdb.ada/mi_catch_ex.exp (continue_to_exception): Adjust expected output in gdb_expect call to allow the exception message to be present as well. Fix syntax confusion to avoid TCL thinking that exception_name is an array. Tested on x86_64-linux, with: DejaGnu version 1.6 Expect version 5.45 Tcl version 8.6 commit 6dda7875a8021787f11bd95a69d81a079e408a57 Author: Szabolcs Nagy Date: Wed Nov 15 17:40:04 2017 +0000 [PR ld/22263] aarch64: Avoid dynamic TLS relocs in PIE No dynamic relocs are needed for TLS defined in an executable, the TP relative offset is known at link time. Fixes FAIL: Build pr22263-1 bfd/ PR ld/22263 * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Use bfd_link_executable instead of bfd_link_pic for TLS. (elfNN_aarch64_allocate_dynrelocs): Likewise. (aarch64_can_relax_tls): Likewise. commit a377ae2ad683d3c16ae74dba440ee441120a7d8a Author: Szabolcs Nagy Date: Wed Nov 15 15:56:30 2017 +0000 [PR ld/22269] aarch64: Handle local undefined weak symbols With static pie linking undefined weak symbols are forced to resolve locally to 0, so no GOT setup is needed in elfNN_aarch64_finish_dynamic_symbol, which previously failed for these symbols. The failure caused the unhelpful error message: "ld: final link failed: Nonrepresentable section on output" bfd/ PR ld/22269 * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Use UNDEFWEAK_NO_DYNAMIC_RELOC to avoid dynamic GOT relocs. (elfNN_aarch64_allocate_dynrelocs): Likewise. commit 64973b0ac4c34e80821a56561ae1af15f7d6e809 Author: Nick Clifton Date: Mon Nov 27 11:14:38 2017 +0000 Update the simplified Chinese translation of the messages in the opcodes library. * po/zh_CN.po: Updated simplified Chinese translation. commit 4dff97b2ce94bbb9c0c16e0e4129060b9a894f13 Author: Nick Clifton Date: Mon Nov 27 11:05:39 2017 +0000 Fix a seg-fault when displaying notes from a prorgam segment. Check for a NULL string section before attempting compute the name of a separate debug info file. PR 22490 * readelf.c (dump_section_as_bytes): Check for a NULL string section pointer. (process_notes_at): Compute the alignment to use if displaying notes from a segment. commit e3d40582166056dd1dfeef2a06ba8f5897b673ee Author: Nick Clifton Date: Mon Nov 27 11:04:17 2017 +0000 When creating a .note section to contain a version note, set the section alignment to 4 bytes. PR 22492 * config/obj-elf.c (obj_elf_version): Set the alignment of the .note section. commit ee9a09e959a5b7c152cc72028d4f6c879bc901c9 Author: Dominik Czarnota Date: Sun Nov 26 22:42:18 2017 -0500 Update find command help and search memory docs This patch updates the `find` command help and docs description to show how to search for not null terminated strings when current language's strings includes it. gdb/ChangeLog: PR gdb/21945 * findcmd.c (_initialize_mem_search): Update find command help text. gdb/doc/ChangeLog: PR gdb/21945 * gdb.texinfo (Search Memory): Update description and example about how to search a string without NULL terminator. commit e8e7d10c39955e7ff99ff42f6f16d6befe2fa12e Author: Simon Marchi Date: Sun Nov 26 19:32:47 2017 -0500 python: Fix memleak in do_start_initialization While playing with valgrind, I noticed that with Python 3, the progname variable in do_start_initialization is not being freed (concat returns a malloc'ed string). This patch uses unique_xmalloc_ptr to manage it. With Python 2, we pass progname it directly to Py_SetProgramName, so it should not be freed. We therefore release it before passing it. gdb/ChangeLog: * python/python.c (do_start_initialization): Change progname type to gdb::unique_xmalloc_ptr. Release the pointer when using Python 2. commit 7db85adb3b988560d9d4706d826e193e83ae7cd9 Author: GDB Administrator Date: Mon Nov 27 00:00:27 2017 +0000 Automatic date update in version.in commit 6a997029fb0fca1a9e2832db80a3afb9bccaaf59 Author: Tom Tromey Date: Wed Nov 22 09:37:05 2017 -0700 Add include guards to common/format.h This adds include guards to common/format.h. ChangeLog 2017-11-26 Tom Tromey * common/format.h: Add include guards. commit 2b63c337d99fe12220e6ca12a71dac6cdd3224d3 Author: H.J. Lu Date: Sun Nov 26 10:12:35 2017 -0800 Rename argument name from link to xlink This fixed the build with GCC 4.2: cc1: warnings being treated as errors binutils-gdb/binutils/dwarf.c: In function ‘load_separate_debug_info’: binutils-gdb/binutils/dwarf.c:9650: warning: declaration of ‘link’ shadows a global declaration /usr/include/unistd.h:757: warning: shadowed declaration is here * dwarf.c (load_separate_debug_info): Rename argument name from link to xlink. commit 41272101db08e20f044dbf0f09b6d79a0fa6c1ac Author: Tom Tromey Date: Wed Nov 22 09:30:21 2017 -0700 Change maybe_disable_address_space_randomization to a class This changes maybe_disable_address_space_randomization to be an RAII class, rather than having it return a cleanup. Regression tested by the buildbot. ChangeLog 2017-11-26 Tom Tromey * nat/linux-personality.h (class maybe_disable_address_space_randomization): New class. (maybe_disable_address_space_randomization): Don't declare function. * nat/linux-personality.c (restore_personality) (make_disable_asr_cleanup): Remove. (maybe_disable_address_space_randomization): Now a constructor. (~maybe_disable_address_space_randomization): New destructor. * linux-nat.c (linux_nat_create_inferior): Update. gdbserver/ChangeLog 2017-11-26 Tom Tromey * linux-low.c (linux_create_inferior): Update. commit 44287fd89091a833451e74c79e46404c23fdaf9b Author: Tom Tromey Date: Thu Nov 9 17:15:37 2017 -0700 Removes a cleanup from gcore.c This removes a cleanup from gcore.c, replacing it with unique_xmalloc_ptr. Regression tested by the buildbot. ChangeLog 2017-11-26 Tom Tromey * gcore.c (write_gcore_file_1): Use gdb::unique_xmalloc_ptr. commit 8e2495f2f75120baae14f9dac9d29b043c539b2b Author: H.J. Lu Date: Sun Nov 26 08:28:25 2017 -0800 gas: Update x86 sse-noavx tests This fixed: FAIL: i386 SSE without AVX equivalent FAIL: x86-64 SSE without AVX equivalent FAIL: x86-64 (ILP32) SSE without AVX equivalent on x86-64. * testsuite/gas/i386/sse-noavx.s: Add tests for fisttps and fisttpl. * testsuite/gas/i386/x86-64-sse-noavx.s: Likewise. * testsuite/gas/i386/ilp32/x86-64-sse-noavx.d: Updated. * testsuite/gas/i386/sse-noavx.d: Likewise. * testsuite/gas/i386/x86-64-sse-noavx.d: Likewise. commit 58f7f0bf542ff9b712ef1ed6a6e1a6da563b9054 Author: Ulrich Weigand Date: Sun Nov 26 17:29:00 2017 +0100 Fix broken ChangeLog entry for last commit. commit 617cd4bc366e47f92ecee3c3f9850a0fd2e6c6a9 Author: Ulrich Weigand Date: Sun Nov 26 17:19:57 2017 +0100 [spu] Fix various test cases The SPU-specific test cases were not modified to use standard_output_file and therefore all were no longer being executed. Fixing this exposed a few other bugs in spu-info noticed by using a more recent compiler, which are also fixed here. gdb/testsuite/ChangeLog: 2017-11-26 Ulrich Weigand * gdb.arch/spu-info.c: Include . (do_signal_test): Fix broken calls to write. * gdb.arch/spu-info.exp: Use prepare_for_testing. Fix checks for empty mailboxes. Update signal tests for corrected do_signal_test routine. Allow nonzero event status. commit 5ffd2cb722440053267d0db52df8bbd278fd6d91 Author: Ulrich Weigand Date: Sun Nov 26 17:15:25 2017 +0100 [spu] Fix single-stepping regression Switching spu_software_single_step to use a regcache instead of a frame: https://sourceware.org/ml/gdb-patches/2016-11/msg00355.html cause a serious regression to SPU single-stepping. There were two separate problems: - SPU_LSLR_REGNUM is a pseudo register, so we must use the "cooked" regcache methods instead of the "raw" ones to access it. - When accessing a branch target register, we must only use the first four bytes of the 16-byte vector register. This was done automatically by the frame routines, but not by the regcache routines. gdb/ChangeLog: 2017-11-26 Ulrich Weigand * spu-tdep.c (spu_software_single_step): Access SPU_LSLR_REGNUM as "cooked" register. Access only first four bytes of branch target registers. commit e5a8dd426de76af279cb6eff0c761ec866e97dc8 Author: GDB Administrator Date: Sun Nov 26 00:00:27 2017 +0000 Automatic date update in version.in commit 0e5457dca14e2e0474432566dc7a603db6c990f7 Author: Sergio Durigan Junior Date: Sat Nov 25 10:57:58 2017 -0500 Adding ChangeLog entry for the last commit. commit 685de8c2990a04fba5e2954b7ff089a2c641071f Author: Sergio Durigan Junior Date: Sat Nov 25 01:13:03 2017 -0500 Fix PR gdb/22491: Regression when setting SystemTap probe semaphores Pedro has kindly pointed out that gdb.arch/amd64-stap-optional-prefix.exp was failing after my C++-ification patches touching the probe interface. The failure is kind of cryptic: 77 break -pstap bar 78 Breakpoint 3 at 0x40048d 79 (gdb) PASS: gdb.arch/amd64-stap-optional-prefix.exp: bar: break -pstap bar 80 continue 81 Continuing. 82 83 Program received signal SIGILL, Illegal instruction. 84 main () at amd64-stap-optional-prefix.S:26 85 26 STAP_PROBE1(probe, foo, (%rsp)) It took me a while to figure out where this SIGILL is coming from. Initially I thought it was something related to writing registers to the inferior when dealing with probe arguments, but I discarded this since the arguments were not touching any registers. In the end, this was a mistake that was introduced during the review process of the patch. When setting/clearing a SystemTap probe's semaphore, the code was using 'm_address' (which refers the probe's address) instead of 'm_sem_addr' (which refers to the semaphore's address). This caused GDB to write a bogus value in the wrong memory position, which in turn caused the SIGILL. I am pushing this patch to correct the mistake. On a side note: I told Pedro that the BuildBot hadn't caught the failure during my try build, and for a moment there was a suspicion that the BuildBot might be at fault here. However, I investigate this and noticed that I only did one try build, with a patch that was correctly using 'm_sem_addr' where applicable, and therefore no failure should have happened indeed. I probably should have requested another try build after addressing the review's comments, but they were mostly basic and I didn't think it was needed. Oh, well. 2017-11-25 Sergio Durigan Junior PR gdb/22491 * stap-probe.c (relocate_address): New function. (stap_probe::get_relocated_address): Use 'relocate_address'. (stap_probe::set_semaphore): Use 'relocate_address' and pass 'm_sem_addr'. (stap_probe::clear_semaphore): Likewise. commit deeeba559bd0c18e06dba19f44571ee8a218fcdb Author: Pedro Alves Date: Sat Nov 25 00:33:05 2017 +0000 Use TOLOWER in SYMBOL_HASH_NEXT The support for setting breakpoint in functions with ABI tags patch will add a use of SYMBOL_HASH_NEXT in cp-support.c, which fails to compile with: src/gdb/cp-support.c:38:0: src/gdb/cp-support.c: In function ‘unsigned int cp_search_name_hash(const char*)’: src/gdb/../include/safe-ctype.h:148:20: error: ‘do_not_use_tolower_with_safe_ctype’ was not declared in this scope #define tolower(c) do_not_use_tolower_with_safe_ctype ^ src/gdb/minsyms.h:174:18: note: in expansion of macro ‘tolower’ ((hash) * 67 + tolower ((unsigned char) (c)) - 113) ^ src/gdb/cp-support.c:1677:14: note: in expansion of macro ‘SYMBOL_HASH_NEXT’ hash = SYMBOL_HASH_NEXT (hash, *string); ^ This fixes the problem before it happens. I was somewhat worried about whether this might have an impact with languages that are case insensitive, but I convinced myself that it doesn't. As bonus, this improves GDB's minsym interning performance a bit (3%-10%). See . gdb/ChangeLog: 2017-11-25 Pedro Alves * dictionary.c: Include "safe-ctype.h". * minsyms.c: Include "safe-ctype.h". * minsyms.c (SYMBOL_HASH_NEXT): Use TOLOWER instead of tolower. commit a81aaca0578ee91ce1cee56c0a31e26c2a5ef581 Author: Pedro Alves Date: Sat Nov 25 00:20:31 2017 +0000 Fix completing an empty string Earlier while working on the big completer rework series, I managed to break (gdb) [TAB] locally, and make GDB crash, but only notice a few weeks down the road, because we have no test for that... I also noticed that: (gdb) [TAB] didn't work (didn't show all commands as matches), even though entering a command with leading whitespace works: (gdb) help This commit fixes the latter and adds a testcase that covers both issues. The gdb.base/completion.exp change is necessary because the new test has a file name that also starts with "gdb.base/complet", making that particular test ambiguous. Adding another letter disambiguates. gdb/ChangeLog: 2017-11-25 Pedro Alves * completer.c (complete_line_internal_1): Skip spaces until the start of the command. gdb/testsuite/ChangeLog: 2017-11-25 Pedro Alves * gdb.base/complete-empty.exp: New file. * gdb.base/completion.exp: Adjust. commit 6a3c6ee41898743234d8fd9f9cab15f2ecdaba49 Author: Pedro Alves Date: Sat Nov 25 00:09:25 2017 +0000 Add comprehensive C++ operator linespec/location/completion tests This exercises the special handling C++ operators require in several places in the linespec parser, both the linespec and explicit location completers, symbol lookup, etc. Particularly, makes sure all that works without quoting. Note that despite the apparent smallish size, this adds thousands of tests to the testsuite, due to combination explosion (linespecs, explicit locations, tab completion, complete command, completion at different points in each function, etc.) Grows the gdb.linespec/ tests like this: -# of expected passes 3464 +# of expected passes 7823 gdb/testsuite/ChangeLog: 2017-11-25 Pedro Alves * gdb.linespec/cpls-ops.cc: New file. * gdb.linespec/cpls-ops.exp: New file. * lib/completion-support.exp (test_complete_prefix_range_re): New, factored out from ... (test_complete_prefix_range): ... this. commit 13450e7c7fdbdb9b25aae68c60475d061ed427d3 Author: GDB Administrator Date: Sat Nov 25 00:00:26 2017 +0000 Automatic date update in version.in commit 8955eb2da31d78690c762748fab3a16832ef1f81 Author: Pedro Alves Date: Fri Nov 24 23:41:12 2017 +0000 Comprehensive C++ linespec/completer tests Exercises all sorts of aspects fixed by previous patches, going back a few months. - Exercises label completion, linespecs and explicit locations. - Exercises both quoting vs non-quoting, source filenames, function names, labels, with both linespecs and explicit locations. - Tests corner cases around not-quoting function names, and whitespace and/and completing inside a parameter or template argument list, anonymous namespace awareness, etc. E.g., "break foo<[TAB]" -> "break foo()" "break bar ( int[TAB]" -> "break bar ( int) "break ( anon" -> "break ( anonymous namespace)::func()" "b cfunc() [tab]" -> "b cfunc() const" "b rettype templfunc[tab]" -> "b rettype templfunc()" ... and others. - Tests the "b source.c[TAB] -> b source.cc:" feature. I.e., colon auto-appending. - Exercises corner cases around C++ "operator<" / "operator<<". (Much more extensive C++ operator completion/linespec handling in a separate patch.) - Exercises both tab completion and "complete" command completion, using routines that handle it automatically, to ensure no test forgets either mode. - Many of the completion tests test completion at at prefix of a given tricky name, to make sure all corner cases are covered. E.g., completing before, at and after ":", "(", "<". - Exercises "keyword" completion. I.e., "b function() [TAB]" displaying "if task thread" as completion match list. Likewise for display explicit location options matches at the appropriate points. - Ensures that the completer finds the same breakpoint locations that setting a breakpoint finds. - Tests that linespec/location completion doesn't find data symbols. - Tests that expression completion still kicks in after a linespec/location keyword. I.e., this: "b function () if global1 + global[TAB]" knows that after "if", you're completing on an expression, and thus breaks words after "if" as an expression and matches on "global" as a data symbol. - Adds common routines to help with all the above, to be used by multiple completion and linespec/location test cases. - More... Grows the gdb.linespec/ tests like this: -# of expected passes 573 +# of expected passes 3464 gdb/testsuite/ChangeLog: 2017-11-24 Pedro Alves * gdb.linespec/cpcompletion.exp: New file. * gdb.linespec/cpls-hyphen.cc: New file. * gdb.linespec/cpls.cc: New file. * gdb.linespec/cpls2.cc: New file. * gdb.linespec/explicit.exp: Load completion-support.exp. Adjust test to use test_gdb_complete_unique. Add label completion, keyword completion and explicit location completion tests. * lib/completion-support.exp: New file. commit 0662b6a7c1b3b04a4ca31a09af703c91c7aa9646 Author: Pedro Alves Date: Fri Nov 24 23:30:04 2017 +0000 Make strcmp_iw NOT ignore whitespace in the middle of tokens currently "b func tion" manages to set a breakpoint at "function" ! All these years I had never noticed this, but now that the linespec completer actually works, this easily happens by accident, with: "b func t" expecting to get "thread", but getting instead: "b func tion" ... Also, this: "b rettypefunc" manages to set a breakpoint on "rettype func()". These things happen due to strcmp_iw "magic". Fix it by teaching strcmp_iw about when can it skip whitespace. This required handling user-defined operators, and scope operators, complicating the code a bit, unfortunately. I added unit tests for all the corner cases I stumbled on, as I was developing this, and then in the end wrote a testsuite testcase covering many of the same things and more (to be added later). gdb/ChangeLog: 2017-11-24 Pedro Alves * cp-support.c (cp_symbol_name_matches_1): New, factored out from cp_fq_symbol_name_matches. Pass language_cplus to strncmp_with_mode. (cp_fq_symbol_name_matches): Call cp_symbol_name_matches_1. (selftests::test_cp_symbol_name_cmp): New. (_initialize_cp_support): Register "cp_symbol_name_matches" selftests. * language.c (default_symbol_name_matcher): Pass language_minimal to strncmp_iw_with_mode. * utils.c: Include "cp-support.h" and . (valid_identifier_name_char, cp_skip_operator_token, skip_ws) (cp_is_operator): New functions. (strncmp_iw_with_mode): Use them. Add language parameter. Don't skip whitespace in the symbol name when the lookup name doesn't have spaces, and vice versa. (strncmp_iw, strcmp_iw): Pass language to strncmp_iw_with_mode. * utils.h (strncmp_iw_with_mode): Add language parameter. commit 276da9b31bd6e3eb8d1dd814c867266f59f29093 Author: H.J. Lu Date: Fri Nov 24 14:49:36 2017 -0800 Re-apply "elf: Properly compute offsets of note descriptor and next note" CORE PT_NOTE segments may have p_align values of 0 or 1. gABI specifies that PT_NOTE alignment should be aligned to 4 bytes for 32-bit objects and to 8 bytes for 64-bit objects. If segment alignment is less than 4, we use 4 byte alignment. commit e547c119d043f2ecffb70452020ab9150d083a91 Author: Joel Brobecker Date: Fri Nov 24 17:09:42 2017 -0500 (Ada) provide the exception message when hitting an exception catchpoint This patch enhances the debugger to print the exception message, when available, as part of an exception catchpoint hit notification (both GDB/CLI and GDB/MI). For instance, with the following code... procedure A is begin raise Constraint_Error with "hello world"; end A; ... instead of printing... Catchpoint 1, CONSTRAINT_ERROR at 0x000000000040245c in a () at a.adb:3 ... it now prints: Catchpoint 1, CONSTRAINT_ERROR (hello world) at 0x000000000040245c in a () ^^^^^^^^^^^^^ This enhancement requires runtime support. If not present, the debugger just behaves as before. In GDB/MI mode, if the exception message is available, it is provided as an extra field named "exception-message" in the catchpoint notification: *stopped,bkptno="1",[...],exception-name="CONSTRAINT_ERROR", exception-message="hello world",[...] gdb/ChangeLog: * ada-lang.c (ada_exception_message_1, ada_exception_message): New functions. (print_it_exception): If available, display the exception message as well. * NEWS: Document new feature. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Ada Exception Information): Document new "exception-message" field. gdb/testsuite/ChangeLog: * gdb.ada/catch_ex.exp, gdb.ada/mi_catch_ex.exp, gdb.ada/mi_ex_cond.exp: Accept optional exception message in when hitting an exception catchpoint. commit 5f1ca24acd8fd4e21c4f6f3ed2bbc4e2365215fe Author: Simon Marchi Date: Fri Nov 24 17:10:25 2017 -0500 Fix issues with gdb-memory-map.dtd While writing a unit test for parse_memory_map, I tried to validate my test input against gdb-memory-map.dtd, and found a few problems with it. This doesn't influence how gdb parses it (AFAIK it doesn't use the linked dtd), but if you edit the xml file in an editor that supports dtds, you'll get plenty of errors. - The element accepts exactly one OR as a child. This is a problem because you can't have multiple elements and you shouldn't be able to have elements as direct children of . - The element wants exactly one child. This is wrong, since you could have zero or more (even though we only support one kind of property currently). - I have no idea wht the device attribute of is, GDB doesn't read that. I searched back in time a bit but couldn't find a trace of it. I took the opportunity to tighten what is accepted as a value of the memory type and property name attributes. We currently accept any string, but we can restrict them to the values GDB really accepts (and which are documented). AFAIK, this "file" only exists in the documentation, in gdb.texinfo, so this is what I modified. However, it's also available at http://sourceware.org/gdb/gdb-memory-map.dtd. This one should be updated too, but I don't know how that should be done. gdb/doc/ChangeLog: * gdb.texinfo (Memory Map Format): Update gdb-memory-map.dtd. commit f5291a6f321ba6d657aab447ebb6a168ae48d40b Author: Ulrich Weigand Date: Fri Nov 24 22:04:41 2017 +0100 [spu] Fix spu-linux gdbserver build Fix a typo in a newly added argument name. gdb/ChangeLog: 2017-11-24 Ulrich Weigand * spu-low.c (spu_create_inferior): Fix typo in argument name. commit d7fcdff980f113ccf77f8dd2f8fb3de3d6addaa3 Author: Ulrich Weigand Date: Fri Nov 24 22:03:28 2017 +0100 [spu] Fix spu-linux native build Add missing file to NATDEPFILES. gdb/ChangeLog: 2017-11-24 Ulrich Weigand * configure.nat : Add fork-inferior.o to NATDEPFILES. commit 4e25ac038efbe5293885cc75d8a3e08b23da7cc9 Author: Simon Marchi Date: Fri Nov 24 15:41:23 2017 -0500 Revert "elf: Properly compute offsets of note descriptor and next note" This reverts commit 650444eb540f9fd85e821567a3f943b4bc41b8be. With this patch, running the GDB test case gdb.base/auxv.exp is stuck in an infinite loop, consuming memory to the point that it renders the machine unusable. I am reverting it so we can take our time to investigate while not killing all the developers' machines. commit 0fbc35681ff0825be97802efcccf953bc4573a45 Author: Jim Wilson Date: Fri Nov 24 09:31:59 2017 -0800 Add reference to implicit use in _bfd_elf_is_local_label_name. gas/ * write.h (FAKE_LABEL_CHAR): Expand comment. commit 8b77421a20c22c9a66048e7d1484b149da060b67 Author: H.J. Lu Date: Fri Nov 24 08:58:43 2017 -0800 Update PR ld/21562 tests for underscore targets We also need to provide __start_scnfoo and __stop_scnfoo with the extra leading underscore for underscore targets. This patch fixed: FAIL: ld-elf/pr21562k FAIL: ld-elf/pr21562l FAIL: ld-elf/pr21562m FAIL: ld-elf/pr21562n for metag-linux, * testsuite/ld-elf/pr21562c.t: Also provide ___start_scnfoo and ___stop_scnfoo. * testsuite/ld-elf/pr21562d.t: Likewise. commit 30649c145114fe3aac089bf06e9457238d46341b Author: Philipp Rudo Date: Fri Nov 24 11:05:57 2017 +0100 Workaround build bug with GCC 6.2.1 Building GDB with GCC 6.2.1 gives multiple errors like gdb/dtrace-probe.c: In member function ‘void dtrace_probe::build_arg_exprs(gdbarch*)’: gdb/dtrace-probe.c:627:8: error: types may not be defined in a for-range-declaration [-Werror] for (struct dtrace_probe_arg &arg : m_args Fix it by removing the 'struct' keyword. A similar Bug was already fixed for GCC 6.3.1 https://sourceware.org/ml/gdb-patches/2017-10/msg00442.html gdb/ChangeLog: * dtrace-probe.c (dtrace_probe::build_arg_exprs) (dtrace_probe::is_enabled, dtrace_probe::enable) (dtrace_probe::disable): Remove keyword 'struct' at for-range variable * probe.c (gen_ui_out_table_header_info) (print_ui_out_not_applicables): Remove keyword 'struct' at for-range variable commit 7696f5c95761be03db7ac62683aa027ecea30fa7 Author: Alan Hayward Date: Fri Nov 24 15:54:57 2017 +0000 Fix aarch64-none-elf build error gdb/ * configure.tgt: Add arch/aarch64.o commit 8172f16b5b8bf3007d0aafcb38964a408f0e844f Author: Simon Marchi Date: Fri Nov 24 10:42:01 2017 -0500 Poison XNEW and friends for types that should use new/delete This patch (finally!) makes it so that trying to use XNEW with a type that requires "new" will cause a compilation error. The criterion I initially used to allow a type to use XNEW (which calls malloc in the end) was std::is_trivially_constructible, but then realized that gcc 4.8 did not have it. Instead, I went with: using IsMallocatable = std::is_pod; which is just a bit more strict, which doesn't hurt. A similar thing is done for macros that free instead of allocated, the criterion is: using IsFreeable = gdb::Or, std::is_void>; Trying to use XNEW on a type that requires new will result in an error like this: In file included from /home/simark/src/binutils-gdb/gdb/common/common-utils.h:26:0, from /home/simark/src/binutils-gdb/gdb/common/common-defs.h:78, from /home/simark/src/binutils-gdb/gdb/defs.h:28, from /home/simark/src/binutils-gdb/gdb/lala.c:1: /home/simark/src/binutils-gdb/gdb/common/poison.h: In instantiation of ‘T* xnew() [with T = bar]’: /home/simark/src/binutils-gdb/gdb/lala.c:13:3: required from here /home/simark/src/binutils-gdb/gdb/common/poison.h:103:3: error: static assertion failed: Trying to use XNEW with a non-POD data type. Use operator new instead. static_assert (IsMallocatable::value, "Trying to use XNEW with a non-POD\ ^~~~~~~~~~~~~ Generated-code-wise, it adds one more function call (xnew) when using XNEW and building with -O0, but it all goes away with optimizations enabled. gdb/ChangeLog: * common/common-utils.h: Include poison.h. (xfree): Remove declaration, add definition with static_assert. * common/common-utils.c (xfree): Remove. * common/poison.h (IsMallocatable): Define. (IsFreeable): Define. (free): Delete for non-freeable types. (xnew): New. (XNEW): Undef and redefine. (xcnew): New. (XCNEW): Undef and redefine. (xdelete): New. (XDELETE): Undef and redefine. (xnewvec): New. (XNEWVEC): Undef and redefine. (xcnewvec): New. (XCNEWVEC): Undef and redefine. (xresizevec): New. (XRESIZEVEC): Undef and redefine. (xdeletevec): New. (XDELETEVEC): Undef and redefine. (xnewvar): New. (XNEWVAR): Undef and redefine. (xcnewvar): New. (XCNEWVAR): Undef and redefine. (xresizevar): New. (XRESIZEVAR): Undef and redefine. commit 7aabaf9d4ad52a1df1f551908fbd8cafc5e7597a Author: Simon Marchi Date: Fri Nov 24 10:40:31 2017 -0500 Create private_thread_info hierarchy There are multiple definitions of the private_thread_info structure compiled in the same GDB build. Because of the one definition rule, we need to change this if we want to be able to make them non-POD (e.g. use std::vector fields). This patch creates a class hierarchy, with private_thread_info being an abstract base class, and all the specific implementations inheriting from it. In order to poison XNEW/xfree for non-POD types, it is also needed to get rid of the xfree in thread_info::~thread_info, which operates on an opaque type. This is replaced by thread_info::priv now being a unique_ptr, which calls the destructor of the private_thread_info subclass when the thread is being destroyed. Including gdbthread.h from darwin-nat.h gave these errors: /Users/simark/src/binutils-gdb/gdb/gdbthread.h:609:3: error: must use 'class' tag to refer to type 'thread_info' in this scope thread_info *m_thread; ^ class /usr/include/mach/thread_act.h:240:15: note: class 'thread_info' is hidden by a non-type declaration of 'thread_info' here kern_return_t thread_info ^ It turns out that there is a thread_info function in the Darwin/XNU/mach API: http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_info.html Therefore, I had to add the class keyword at a couple of places in gdbthread.h, I don't really see a way around it. gdb/ChangeLog: * gdbthread.h (private_thread_info): Define structure type, add virtual pure destructor. (thread_info) : Change type to unique_ptr. : Remove. * thread.c (add_thread_with_info): Adjust to use of unique_ptr. (private_thread_info::~private_thread_info): Provide default implementation. (thread_info::~thread_info): Don't call private_dtor nor manually free priv. * aix-thread.c (private_thread_info): Rename to ... (aix_thread_info): ... this. (get_aix_thread_info): New. (sync_threadlists): Adjust. (iter_tid): Adjust. (aix_thread_resume): Adjust. (aix_thread_fetch_registers): Adjust. (aix_thread_store_registers): Adjust. (aix_thread_extra_thread_info): Adjust. * darwin-nat.h (private_thread_info): Rename to ... (darwin_thread_info): ... this. (get_darwin_thread_info): New. * darwin-nat.c (darwin_init_thread_list): Adjust. (darwin_check_new_threads): Adjust. (thread_info_from_private_thread_info): Adjust. * linux-thread-db.c (private_thread_info): Rename to ... (thread_db_thread_info): ... this, initialize fields. (get_thread_db_thread_info): New. : Change type to bool. (update_thread_state): Adjust to type rename. (record_thread): Adjust to type rename an use of unique_ptr. (thread_db_pid_to_str): Likewise. (thread_db_extra_thread_info): Likewise. (thread_db_thread_handle_to_thread_info): Likewise. (thread_db_get_thread_local_address): Likewise. * nto-tdep.h (private_thread_info): Rename to ... (nto_thread_info): ... this, initialize fields. (get_nto_thread_info): New. : Change type to std::string. * nto-tdep.c (nto_extra_thread_info): Adjust to type rename and use of unique_ptr. * nto-procfs.c (update_thread_private_data_name): Adjust to std::string change, allocate nto_private_thread_info with new. (update_thread_private_data): Adjust to unique_ptr. * remote.c (private_thread_info): Rename to ... (remote_thread_info): ... this, initialize data members with default values. : Change type to std::string. : Change type to non-pointer. (free_private_thread_info): Remove. (get_private_info_thread): Rename to... (get_remote_thread_info): ... this, change return type, adjust to use of unique_ptr, use remote_thread_info constructor. (remote_add_thread): Adjust. (get_private_info_ptid): Rename to... (get_remote_thread_info): ...this, change return type. (remote_thread_name): Use get_remote_thread_info, adjust to change to std::string. (struct thread_item) <~thread_item>: Remove. : Make non pointer. (start_thread): Adjust to thread_item::thread_handle type change. (remote_update_thread_list): Adjust to type name change, move strings from temporary to long-lived object instead of duplicating. (remote_threads_extra_info): Use get_remote_thread_info. (process_initial_stop_replies): Likewise. (resume_clear_thread_private_info): Likewise. (remote_resume): Adjust to type name change. (remote_commit_resume): Use get_remote_thread_info. (process_stop_reply): Adjust to type name change. (remote_stopped_by_sw_breakpoint): Use get_remote_thread_info. (remote_stopped_by_hw_breakpoint): Likewise. (remote_stopped_by_watchpoint): Likewise. (remote_stopped_data_address): Likewise. (remote_core_of_thread): Likewise. (remote_thread_handle_to_thread_info): Use get_private_info_thread, adjust to thread_handle field type change. commit 21fe1c752e254167d953fa8c846280f63a3a5290 Author: Simon Marchi Date: Fri Nov 24 10:40:13 2017 -0500 remote: C++ify thread_item and threads_listing_context This patch C++ifies the thread_item and threads_listing_context structures in remote.c. thread_item::{extra,name} are changed to std::string. As a result, there's a bit of awkwardness in remote_update_thread_list, where we have to xstrdup those strings when filling the private_thread_info structure. This is removed in the following patch, where private_thread_info is also C++ified and its corresponding fields made std::string too. The xstrdup then becomes an std::move. Other than that there's nothing really special, it's a usual day-to-day VEC -> vector and char* -> std::string change. It allows removing a cleanup in remote_update_thread_list. Note that an overload of hex2bin that returns a gdb::byte_vector is added, with corresponding selftests. gdb/ChangeLog: * remote.c (struct thread_item): Add constructor, disable copy construction and copy assignment, define default move construction and move assignment. : Change type to std::string. : Initialize. : Make non-pointer. (thread_item_t): Remove typedef. (DEF_VEC_O(thread_item_t)): Remove. (threads_listing_context) : New method. : New method. : Change type to std::vector. (clear_threads_listing_context): Remove. (threads_listing_context_remove): Remove. (remote_newthread_step): Use thread_item constructor, adjust to change to std::vector. (start_thread): Use thread_item constructor, adjust to change to std::vector. (end_thread): Adjust to change to std::vector and std::string. (remote_get_threads_with_qthreadinfo): Use thread_item constructor, adjust to std::vector. (remote_update_thread_list): Adjust to change to std::vector and std::string, use threads_listing_context methods. (remove_child_of_pending_fork): Adjust. (remove_new_fork_children): Adjust. * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add rsp-low-selftests.c. (SUBDIR_UNITTESTS_OBS): Add rsp-low-selftests.o. * unittests/rsp-low-selftests.c: New file. * common/rsp-low.h: Include common/byte-vector.h. (hex2bin): New overload. * common/rsp-low.c (hex2bin): New overload. commit 089354bb0613ca1559813f0a79fbe73655113785 Author: Simon Marchi Date: Fri Nov 24 10:39:30 2017 -0500 Create private_inferior class hierarchy There are currently multiple definitions of private_inferior, defined in remote.c and darwin-nat.h. The patch that poisons XNEW and friends for non-POD types trips on that, because private_inferior is freed in ~inferior(), where it is an opaque type. Since the compiler can't tell whether the type is POD, it gives an error. Also, we can't start using C++ features in these structures (make them non-POD) as long as there are multiple definitions with the same name. For these reasons, this patch makes a class hierarchy, with private_inferior being the abstract base class, and darwin_inferior & remote_inferior inheriting from it. Destruction is done through the virtual destructor. I stumbled on some suspicious code in the darwin implementation though. darwin_check_new_threads does an XCNEW(darwin_thread_t) when it finds a new thread, allocating a new structure for it (darwin_thread_t is a typedef for private_thread_info). It then VEC_safe_pushes it in a vector defined as DEF_VEC_O (a vector of objects). This means that the structure content gets copied in the vector. The thread_info object is created with the XCNEW'ed structure as the private thread info, while the rest of the code works with the instance in the vector. We have therefore two distinct instances of darwin_thread_t/private_thread_info for each thread. This is not really a problem in practice, because thread_info::priv is not used in the darwin code. I still find it weird and far from ideal, so I tried to fix it by changing the vector to be a vector of pointers. There should now be a single instance of the structure for each thread. The deallocation of the darwin_thread_t/private_thread_info structure is done by the thread_info destructor. I am able to build on macOS, but not really test, since the port seems a bit broken. I am not able to debug reliably on the machine I have access to, which runs macOS 10.12.6. gdb/ChangeLog: * inferior.h (private_inferior): Define structure type, add virtual pure destructor. (inferior) : Change type to unique_ptr. * inferior.c (private_inferior::~private_inferior): Provide default implementation. (inferior::~inferior): Don't free priv field. (exit_inferior_1): Likewise. * darwin-nat.h (struct darwin_exception_info): Initialize fields. (darwin_exception_info): Remove typedef. (DEF_VEC_O (darwin_thread_t)); Remove. (private_inferior): Rename to ... (darwin_private_inferior): ... this, extend private_inferior. (get_darwin_inferior): New. : Change type to std::vector of darwin_thread_t pointers. * darwin-nat.c (darwin_check_new_threads): Adjust. (find_inferior_task_it): Adjust. (darwin_find_thread); Adjust. (darwin_suspend_inferior): Adjust. (darwin_resume_inferior): Adjust. (darwin_find_new_inferior): Adjust. (darwin_decode_notify_message): Adjust. (darwin_send_reply): Adjust. (darwin_resume_inferior_threads): Adjust. (darwin_suspend_inferior_threads): Adjust. (darwin_decode_message): Adjust. (darwin_wait): Adjust. (darwin_interrupt): Adjust. (darwin_deallocate_threads): Adjust. (darwin_mourn_inferior): Adjust, don't free private data. (darwin_reply_to_all_pending_messages): Adjust. (darwin_stop_inferior): Adjust. (darwin_setup_exceptions): Adjust. (darwin_kill_inferior): Adjust. (darwin_setup_request_notification): Adjust. (darwin_attach_pid): Adjust. (darwin_init_thread_list): Adjust. (darwin_setup_fake_stop_event): Adjust. (darwin_attach): Adjust. (darwin_detach): Adjust. (darwin_xfer_partial): Adjust. (set_enable_mach_exceptions): Adjust. (darwin_pid_to_exec_file): Adjust. (darwin_get_ada_task_ptid): Adjust. * darwin-nat-info.c (get_task_from_args): Adjust. (info_mach_ports_command): Adjust. (info_mach_region_command): Adjust. (info_mach_exceptions_command): Adjust. * remote.c (private_inferior): Rename to ... (remote_private_inferior): ... this, initialize fields. (get_remote_inferior); New. (remote_commit_resume): Use get_remote_inferior. (check_pending_event_prevents_wildcard_vcont_callback): Likewise. commit d044bac8ce5e6737d13e7e5180f5a5641053e690 Author: Pedro Alves Date: Fri Nov 24 15:21:16 2017 +0000 Document linespec/explicit locations & completion improvements (manual + NEWS) gdb/ChangeLog: 2017-11-24 Pedro Alves * NEWS: Mention linespecs and explicit locations, and completion improvements. gdb/doc/ChangeLog: 2017-11-24 Pedro Alves * gdb.texinfo (Completion): Update need-quoting examples. Remove false claim that GDB inserts quoting automatically. (Symbols): Add anchor. commit e8d58cbaacb9ca54ad32eee1a38301202e09f878 Author: Yao Qi Date: Fri Nov 24 14:58:45 2017 +0000 Remove dead code in regcache::dump footnote_register_size in regcache::dump is a constant zero, so the condition check against footnote_register_size is dead code. The code writing to footnote_register_size was removed by 01e1877. This patche removes footnote_register_size and the dead code. gdb: 2017-11-24 Yao Qi * regcache.c (regcache::dump): Remove footnote_register_size. commit 650444eb540f9fd85e821567a3f943b4bc41b8be Author: H.J. Lu Date: Fri Nov 24 06:41:40 2017 -0800 elf: Properly compute offsets of note descriptor and next note According to gABI, in a note entry, the note name field, not note name size, is padded for the note descriptor. And the note descriptor field, not note descriptor size, is padded for the next note entry. Also notes are aligned to 4 bytes in 32-bit objects and 8 bytes in 64-bit objects. Since on Linux, .note.ABI-tag and .note.gnu.build-id notes are always aligned to 4 bytes, we need to use alignment of note section or note segment, instead of assuming alignment based on ELF file class. Tested on i686 and x86-64. bfd/ PR binutils/22444 * elf.c (elf_read_notes): Add an argument for note aligment. (elf_parse_notes): Likewise. (_bfd_elf_make_section_from_shdr): Pass section aligment to elf_parse_notes. (bfd_section_from_phdr): Pass segment aligment to elf_read_notes. (elf_parse_notes): Add an argument for note aligment. Use ELF_NOTE_DESC_OFFSET to get the offset of the note descriptor. Use ELF_NOTE_NEXT_OFFSET to get the offset of the next note entry. (elf_read_notes): Add an argument for note aligment and pass it to elf_parse_notes. binutils/ PR binutils/22444 * readelf.c (process_notes_at): Use ELF_NOTE_DESC_OFFSET to get the offset of the note descriptor. Use ELF_NOTE_NEXT_OFFSET to get the offset of the next note entry. include/ PR binutils/22444 * elf/external.h (ELF_ALIGN_UP): New. (ELF_NOTE_DESC_OFFSET): Likewise. (ELF_NOTE_NEXT_OFFSET): Likewise. commit a63f2d2feedcfce401ae1d7d03d119bfa5e4d8bc Author: Yao Qi Date: Fri Nov 24 13:04:30 2017 +0000 cooked_read test for readonly regcache This patch adds a test to check cooked_read for readonly regcache. For raw registers, cooked_read get either REG_VALID or REG_UNKNOWN, depends on the raw register is in save_reggroup or not. For pseudo register, cooked_read get different result in different ports. gdb: 2017-11-24 Yao Qi * regcache.c (cooked_read_test): Add more test for readonly regcache. commit 1b30aaa56607a563fa263b9d2ee9eba89d79c1b4 Author: Yao Qi Date: Fri Nov 24 13:04:30 2017 +0000 regcache::cooked_read unit test This patch adds a unit test to regcache::cooked_read. This unit test is a little different from normal unit test, it is more about conformance test or interaction test. This test pass both raw register number and pseudo register number to regcache::cooked_read, in order to inspect 1) return value of cooked_read, 2) how are target_ops to_xfer_partial, to_{fetch,store}_registers called (because regcache is updated by means of these three target_ops methods). With this test here, we have a clear picture about how each port of GDB get cooked registers. This patch also shares some code on mock target. gdb: 2017-11-24 Yao Qi * gdbarch-selftests.c (test_target_has_registers): Move it to target.c. (test_target_has_stack): Likewise. (test_target_has_memory): Likewise. (test_target_prepare_to_store): Likewise. (test_target_store_registers): Likewise. (test_target_ops): Likewise. * regcache.c: Include selftest-arch.h and gdbthread.h. (target_ops_no_register): New class. (test_target_fetch_registers): New. (test_target_store_registers): New. (test_target_xfer_partial): New. (readwrite_regcache): New. (cooked_read_test): New. (_initialize_regcache): Register the test. * target.c: (test_target_has_registers): Moved from gdbarch-selftests.c. (test_target_has_stack): Likewise. (test_target_has_memory): Likewise. (test_target_prepare_to_store): Likewise. (test_target_store_registers): Likewise. * target.h (test_target_ops): New class. commit 6654d750c7c584dd83b93f062c5628f15c675480 Author: Alan Hayward Date: Fri Nov 24 10:28:58 2017 +0000 Add xml selftests for aarch64 target description. gdb/ * aarch64-tdep.c (_initialize_aarch64_tdep): Add target desc selftest. gdbserver/ * configure.srv: Add linux-aarch64-tdesc-selftest.o. * linux-aarch64-low.c (initialize_low_arch): Call init func. * linux-aarch64-tdesc-selftest.c: New file. * linux-aarch64-tdesc.h (initialize_low_tdesc): New declaration. commit 49bdb7ee48a10581e9f7254782f2eb953c4a164b Author: Alan Hayward Date: Fri Nov 24 10:20:48 2017 +0000 Use flexible target descriptors for aarch64 gdb/ * aarch64-tdep.c (_initialize_aarch64_tdep): Remove init. * arch/aarch64.c (aarch64_create_target_description): Create new target description. * features/Makefile: Add new files. * features/aarch64.c: Remove file. * features/aarch64-core.c: New autogenerated file. * features/aarch64-fpu.c: New autogenerated file. * target-descriptions.c (maint_print_c_tdesc_cmd): Check for aarch64. gdbserver/ * linux-aarch64-ipa.c (initialize_low_tracepoint): Remove init. * linux-aarch64-low.c (initialize_low_arch): Remove init. * linux-aarch64-tdesc.c (aarch64_linux_read_description): Add init. commit d6d7ce56231ca8c233e64b2ebcb910fe334d6ff8 Author: Alan Hayward Date: Fri Nov 24 10:04:53 2017 +0000 gdbserver: add aarch64_create_target_description gdbserver/ * configure.srv: Add new files. * linux-aarch64-ipa.c (get_ipa_tdesc): Call aarch64_linux_read_description. * linux-aarch64-low.c (aarch64_linux_read_description): Merge with aarch64_arch_setup. (aarch64_arch_setup): Call aarch64_linux_read_description. * linux-aarch64-tdesc.c: New file. * linux-aarch64-tdesc.h: New file. commit da434ccbc3e0ed843700790cd16c1d4bb5882460 Author: Alan Hayward Date: Fri Nov 24 10:00:54 2017 +0000 Add aarch64_create_target_description gdb/ * Makefile.in: Add new files. * aarch64-linux-nat.c (aarch64_linux_read_description): Call aarch64_read_description. * aarch64-linux-tdep.c (aarch64_linux_core_read_description): Call aarch64_read_description. * aarch64-tdep.c (aarch64_read_description): New function. (aarch64_gdbarch_init): Call aarch64_read_description. * aarch64-tdep.h (aarch64_read_description): New function. * arch/aarch64.c: New file. * configure.tgt: Add new files. commit 98ead37e9735438986934f9f1f35f020a093fe07 Author: Yao Qi Date: Fri Nov 24 10:47:27 2017 +0000 Change value_contents_eq return bool This patch changes value_contents_eq return type from int to bool. gdb: 2017-11-24 Yao Qi * mi/mi-main.c (register_changed_p): Update. * value.c (value_contents_bits_eq): Change return type. (value_contents_eq): Likewise. * value.h: Update comments. commit 62ad7ce71b243df3e8d7d4f8b8560a7316233a9e Author: Yao Qi Date: Fri Nov 24 10:47:27 2017 +0000 Change register_changed_p returns bool register_changed_p actually returns bool, but return type is still int. This patch changes the return type to bool. The caller of register_changed_p also checked whether the return value can be negative, which is not needed now. Such check was added in fb40c2090 in 2000, at that moment, register_changed_p returns -1 when read_relative_register_raw_bytes fails. I can tell from its name that it reads register contents, but we don't have this function called inside register_changed_p, and the regcache is read-only. gdb: 2017-11-24 Yao Qi * mi/mi-main.c (mi_cmd_data_list_changed_registers): Remove local 'changed'. Remove error. (register_changed_p): Change return type to bool. commit 506fe5f4996738f25b7c26f126a84b231429ba95 Author: Yao Qi Date: Fri Nov 24 09:29:43 2017 +0000 Change tic6x target descriptions This patch changes tic6x target descriptions to be more flexible. Rebuild tic6x-uclinux GDBserver with my x86 g++, and the unit test passes. gdb: 2017-11-24 Yao Qi * arch/tic6x.c: New file. * arch/tic6x.h: New file. * features/Makefile (FEATURE_XMLFILES): Add tic6x-c6xp.xml, tic6x-core.xml and tic6x-gp.xml. * features/tic6x-c6xp.c: Generated. * features/tic6x-core.c: Generated. * features/tic6x-gp.c: Generated. * target-descriptions.c (maint_print_c_tdesc_cmd): Match "tic6x-". gdb/gdbserver: 2017-11-24 Yao Qi * configure.srv: Set $srv_regobj for tic6x-linux. * linux-tic6x-low.c: Include "arch/tic6x.h" and "tdesc.h". (tic6x_read_description): Move some code to tic6x_arch_setup. (tic6x_tdesc_test): New function. (initialize_low_arch): Call selftests::register_test. commit 6d2cd6b2084d980a4baf5b4bdce8499c2295a672 Author: Jan Beulich Date: Fri Nov 24 08:42:57 2017 +0100 x86: reject further invalid AVX-512 masking constructs For one the register type used for masking should be validated. And then we shouldn't accept input producing encodings which will #UD when executed, as is the case when EVEX.Z is set while EVEX.AAA is zero. commit ac465521a50102d589a6a05a1e722dfa349d3181 Author: Jan Beulich Date: Fri Nov 24 08:42:04 2017 +0100 x86: don't omit disambiguating suffixes from "fi*" "fi*" typically come in two (loads/stores: three) flavors, distinguished by the suffix. Don't omit the 's' one when disassembling. commit 00ea2e2ad34edd202f58d9a1eea2081f0905f9f2 Author: Simon Marchi Date: Thu Nov 23 21:56:19 2017 -0500 Fix memory leak in list_available_thread_groups Commit C++ify osdata 479f8de1b3b7e69ca8d557bbe9d843c7d1bc89c5 introduced a memory leak. We allocate std::vectors and insert them in a map, but never free them. Instead, the map value type can be std::vector objects directly. gdb/ChangeLog: * mi/mi-main.c (list_available_thread_groups): Change map value type to std::vector. commit 7e8006d14c544a069619dc2bb2c9d2d2b7fd99a6 Author: GDB Administrator Date: Fri Nov 24 00:00:23 2017 +0000 Automatic date update in version.in commit c139731b13f83da3c9436f92d52b915e94ff7480 Author: Jim Wilson Date: Thu Nov 23 13:11:40 2017 -0800 Fix vax/ns32k/mmix gas testsuite regression. gas/ * testsuite/gas/all/err-fakelabel.s (dg-error): Also accept fatal error string. commit 5f71e59e1a284eec67ba2a91851d0ec8319b0b95 Author: Jim Wilson Date: Thu Nov 23 12:30:47 2017 -0800 Fix build error with --enable-targets=all. gas/ * as.c (INITIALIZING_EMULS): Define. * config/obj-multi.h (FAKE_LABEL_NAME): When INITIALIZING_EMULS set, don't define it. commit f45e2a7704c738ba8195a667f910297c4155924e Author: Simon Marchi Date: Thu Nov 23 13:51:50 2017 -0500 Fix clang warnings about copy elision When building with clang, I get: /home/emaisin/src/binutils-gdb/gdb/osdata.c:107:9: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] std::move (std::string (body_text))); ^ /home/emaisin/src/binutils-gdb/gdb/osdata.c:107:9: note: remove std::move call here std::move (std::string (body_text))); ^~~~~~~~~~~ ~ /home/emaisin/src/binutils-gdb/gdb/osdata.c:181:10: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move] return std::move (osdata); ^ /home/emaisin/src/binutils-gdb/gdb/osdata.c:181:10: note: remove std::move call here return std::move (osdata); ^~~~~~~~~~~ ~ Indeed, those two std::move are unnecessary. gdb/ChangeLog: * osdata.c (osdata_end_column, get_osdata): Remove std::move. commit bd046f64a193405f2fef2d5120fab4be25feaa8b Author: Simon Marchi Date: Thu Nov 23 11:05:22 2017 -0500 Revert unexpected rename in previous patch While working on the previous patch, I renamed variables whose type I changed to let the compiler help me find their usages, but I forgot to rename one back to its original name. This patch fixes it. gdb/ChangeLog: * varobj.c (struct varobj_dynamic) : Rename back to... : ... this. (varobj_get_num_children, varobj_update): Adjust. commit 4c37490d92c0168e5192ce109a791c4b3fec9f8e Author: Simon Marchi Date: Thu Nov 23 11:00:56 2017 -0500 Change int -> bool where applicable throughout varobj This patch changes all the "int" I could find in varobj.{c,h} that are really boolean values to use bool. I followed the ramifications (parameters and return values of exported functions), so the changes spilled a bit on other, related files (ada-varobj.c and c-varobj.c). gdb/ChangeLog: * ada-varobj.c (ada_value_is_changeable_p): Change int to bool where applicable. (ada_value_has_mutated): Likewise. * c-varobj.c (varobj_is_anonymous_child): Likewise. (c_is_path_expr_parent): Likewise. * mi/mi-cmd-var.c (varobj_update_one): Likewise. (mi_cmd_var_set_frozen): Likewise. (mi_cmd_var_update_iter): Likewise. (mi_cmd_var_update): Likewise. * varobj.c (pretty_printing): Likewise. (varobj_enable_pretty_printing): Likewise. (struct varobj_root) : Likewise. (struct varobj_dynamic) : Likewise. (delete_variable): Likewise. (delete_variable_1): Likewise. (install_variable): Likewise. (update_type_if_necessary): Likewise. (install_new_value): Likewise. (value_of_root): Likewise. (is_root_p): Likewise. (varobj_create): Likewise. (varobj_delete): Likewise. (varobj_has_more): Likewise. (varobj_set_frozen): Likewise. (varobj_get_frozen): Likewise. (install_dynamic_child): Likewise. (dynamic_varobj_has_child_method): Likewise. (update_dynamic_varobj_children): Likewise. (varobj_get_num_children): Likewise. (varobj_list_children): Likewise. (is_path_expr_parent): Likewise. (varobj_default_is_path_expr_parent): Likewise. (varobj_is_dynamic_p): Likewise. (varobj_set_value): Likewise. (varobj_value_has_mutated): Likewise. (varobj_update): Likewise. (check_scope): Likewise. (value_of_root_1): Likewise. (varobj_value_get_print_value): Likewise. (varobj_editable_p): Likewise. (varobj_value_is_changeable_p): Likewise. (varobj_floating_p): Likewise. (varobj_default_value_is_changeable_p): Likewise. (varobj_invalidate_iter): Likewise. * varobj.h (struct varobj_update_result) : Likewise. (struct varobj) : Likewise. (struct lang_varobj_ops) : Likewise. (varobj_delete): Likewise. (varobj_set_frozen): Likewise. (varobj_get_frozen): Likewise. (varobj_set_value): Likewise. (varobj_update): Likewise. (varobj_editable_p): Likewise. (varobj_floating_p): Likewise. (varobj_has_more): Likewise. (varobj_is_dynamic_p): Likewise. (varobj_default_value_is_changeable_p): Likewise. (varobj_value_is_changeable_p): Likewise. (varobj_is_anonymous_child): Likewise. (varobj_default_is_path_expr_parent): Likewise. commit eb02c04dc3600e18bb06dc1ef8fc3cf9a967d550 Author: Pavel I. Kryukov Date: Thu Nov 23 15:53:04 2017 +0000 Avoid bogus compile time warning from clang by initialising local data structure using memset. PR 22485 * readelf.c (process_archive): Use memset to initiaise thin_filedata structure. commit 7c3c1aa885b720e25b25af6ac05f34f9ff0e3dfa Author: Yao Qi Date: Thu Nov 23 15:30:56 2017 +0000 [testsuite] Pass -g3 to clang in gdb.base/macscp.exp clang accepts option -g3 too. I checked the manual of xlc and icc, looks they don't accept -g3 option, so I don't pass -g3 for them. gdb/testsuite: 2017-11-23 Yao Qi * gdb.base/macscp.exp: Append -g3 to additional_flags for clang. commit be7d1531e1ce34efbdb9367f1483f9cdad477059 Author: Igor Tsimbalist Date: Wed Nov 22 14:40:32 2017 +0300 Add Disp8MemShift for AVX512 VAES instructions. opcodes/ * i386-opc.tbl: Add Disp8MemShift for AVX512 VAES instructions. * i386-tbl.h: Regenerate. gas/ * testsuite/gas/i386/avx512f_vaes-intel.d: Regenerate. * testsuite/gas/i386/avx512f_vaes.d: Likewise. * testsuite/gas/i386/avx512f_vaes-wig1-intel.d: Likewise. * testsuite/gas/i386/avx512f_vaes-wig1.d: Likewise. * testsuite/gas/i386/avx512vl_vaes-intel.d: Likewise. * testsuite/gas/i386/avx512vl_vaes.d: Likewise. * testsuite/gas/i386/x86-64-avx512f_vaes.s: Add instructions with disp8*N. * testsuite/gas/i386/x86-64-avx512f_vaes-intel.d: Regenerate. * testsuite/gas/i386/x86-64-avx512f_vaes.d: Likewise. * testsuite/gas/i386/x86-64-avx512f_vaes-wig.s: Add instructions with disp8*N. * testsuite/gas/i386/x86-64-avx512f_vaes-wig1-intel.d: Regenerate. * testsuite/gas/i386/x86-64-avx512f_vaes-wig1.d: Likewise. * testsuite/gas/i386/x86-64-avx512vl_vaes-intel.d: Regenerate. * testsuite/gas/i386/x86-64-avx512vl_vaes.d: Likewise. * testsuite/gas/i386/x86-64-avx512vl_vaes-wig.s: Add instructions with disp8*N. * testsuite/gas/i386/x86-64-avx512vl_vaes-wig1-intel.d: Regenerate. * testsuite/gas/i386/x86-64-avx512vl_vaes-wig1.d: Regenerate. commit 287c7eaf0d90cc1bbb5a5463c665b163c6ee04e7 Author: Alan Modra Date: Wed Nov 22 21:07:03 2017 +1030 Don't move weak alias dyn_relocs to weakdef I did this for powerpc64 a while ago. Not moving weak symbol dyn_relocs to the strong alias makes for a much simpler test for dynamic relocs in relocate_section. This patch implements the change for powerpc and hppa. Other targets could benefit from similar changes. * elf32-hppa.c (pc_dynrelocs): Define. (elf32_hppa_copy_indirect_symbol): Don't copy dyn_relocs to weakdefs. (alias_readonly_dynrelocs): New function. (elf32_hppa_adjust_dynamic_symbol): Don't clear non_got_ref to indicate dyn_relocs should be discarded, discard them here. Use alias_readonly_dynrelocs. (allocate_dynrelocs): Don't test or clear non_got_ref. (elf32_hppa_relocate_section): Simplify test for dynamic relocs. * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Don't copy dyn_relocs to weakdefs. (alias_readonly_dynrelocs, pc_dynrelocs): New functions. (ppc_elf_adjust_dynamic_symbol): Don't clear non_got_ref to indicate dyn_relocs should be discarded, discard them here. Use alias_readonly_dynrelocs. (allocate_dynrelocs): Don't test or clear non_got_ref. (ppc_elf_relocate_section): Simplify test for dynamic relocs. commit ab2477e15cbe067ff119f1bb5dea05de3cadbdd5 Author: Alan Modra Date: Wed Nov 22 17:32:50 2017 +1030 Delete powerpc64 symbol weakref field Now that u.alias is circular, weakref just duplicates its function. Also, function symbols shouldn't be on the alias list so there is no need to use alias_readonly_dynrelocs with them. * elf64-ppc.c (struct ppc_link_hash_entry): Delete weakref field. (ppc64_elf_copy_indirect_symbol): Don't set weakref. (alias_readonly_dynrelocs): Use u.alias rather than weakref. (ppc64_elf_adjust_dynamic_symbol): Don't use alias_readonly_dynrelocs for function symbols. commit 60d67dc84bbc7d73672d297d714f8a4a0547618d Author: Alan Modra Date: Wed Nov 22 17:30:55 2017 +1030 Rename u.weakdef and make it a circular list This makes the elf_link_hash_entry weakdef field, currently used to point from a weak symbol to a strong alias, a circular list so that all aliases can be found from any of them. A new flag, is_weakalias, distinguishes the weak symbol from a strong alias, and is used in all places where we currently test u.weakdef != NULL. With the original u.weakdef handling it was possible to have two or more weak symbols pointing via u.weakdef to a strong definition. Obviously that situation can't map to a circular list; One or more of the weak symbols must point at another weak alias rather than the strong definition. To handle that, I've added an accessor function to return the strong definition. * elf-bfd.h (struct elf_link_hash_entry): Add is_weakalias. Rename u.weakdef to u.alias and update comment. (weakdef): New static inline function. * elflink.c (bfd_elf_record_link_assignment) Test is_weakalias rather than u.weakdef != NULL, and use weakdef function. (_bfd_elf_adjust_dynamic_symbol): Likewise. (_bfd_elf_fix_symbol_flags): Likewise. Clear is_weakalias on all aliases if def has been overridden in a regular object, not u.weakdef. (elf_link_add_object_symbols): Delete new_weakdef flag. Test is_weakalias and use weakdef. Set is_weakalias and circular u.alias. Update comments. (_bfd_elf_gc_mark_rsec): Test is_weakalias rather than u.weakdef != NULL and use weakdef function. * elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Test is_weakalias rather than u.weakdef != NULL and use weakdef function. Assert that def is strong defined. * elf32-arc.c (elf_arc_adjust_dynamic_symbol): Likewise. * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Likewise. * elf32-bfin.c (elf32_bfinfdpic_adjust_dynamic_symbol): Likewise. (bfin_adjust_dynamic_symbol): Likewise. * elf32-cr16.c (_bfd_cr16_elf_adjust_dynamic_symbol): Likewise. * elf32-cris.c (elf_cris_adjust_dynamic_symbol): Likewise. * elf32-frv.c (elf32_frvfdpic_adjust_dynamic_symbol): Likewise. * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise. * elf32-i370.c (i370_elf_adjust_dynamic_symbol): Likewise. * elf32-lm32.c (lm32_elf_adjust_dynamic_symbol): Likewise. * elf32-m32r.c (m32r_elf_adjust_dynamic_symbol): Likewise. * elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise. * elf32-metag.c (elf_metag_adjust_dynamic_symbol): Likewise. * elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol): Likewise. * elf32-nds32.c (nds32_elf_adjust_dynamic_symbol): Likewise. * elf32-nios2.c (nios2_elf32_adjust_dynamic_symbol): Likewise. * elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Likewise. * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise. * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Likewise. * elf32-score.c (s3_bfd_score_elf_adjust_dynamic_symbol): Likewise. * elf32-score7.c (s7_bfd_score_elf_adjust_dynamic_symbol): Likewise. * elf32-sh.c (sh_elf_adjust_dynamic_symbol): Likewise. * elf32-tic6x.c (elf32_tic6x_adjust_dynamic_symbol): Likewise. * elf32-tilepro.c (tilepro_elf_gc_mark_hook): Likewise. (tilepro_elf_adjust_dynamic_symbol): Likewise. * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Likewise. * elf32-xtensa.c (elf_xtensa_adjust_dynamic_symbol): Likewise. * elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Likewise. * elf64-hppa.c (elf64_hppa_adjust_dynamic_symbol): Likewise. * elf64-ia64-vms.c (elf64_ia64_adjust_dynamic_symbol): Likewise. * elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise. (ppc64_elf_adjust_dynamic_symbol): Likewise. * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise. * elf64-sh64.c (sh64_elf64_adjust_dynamic_symbol): Likewise. * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise. * elfnn-ia64.c (elfNN_ia64_adjust_dynamic_symbol): Likewise. * elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol): Likewise. * elfxx-mips.c (_bfd_mips_elf_adjust_dynamic_symbol): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Likewise. (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise. * elfxx-tilegx.c (tilegx_elf_gc_mark_hook): Likewise. (tilegx_elf_adjust_dynamic_symbol): Likewise. * elfxx-x86.c (_bfd_x86_elf_adjust_dynamic_symbol): Likewise. commit 9d9c67b06c1bf4c4550e3de0eb575c2bfbe96df9 Author: Martin Storsjo Date: Thu Nov 23 12:07:24 2017 +0000 Add libmsvcrt, libmsvcrt-os and libucrtbase to the list of libraries for which the automatic generation of exported variables should be disabled. In the latest git version of mingw-w64, one can set the default libmsvcrt.a to actually be the import library of another CRT version, to facilitate switching to ucrtbase.dll. In these versions, the traditional libmsvcrt.a (for linking to msvcrt.dll) is also provided with the name libmsvcrt-os.a. The import libraries for the CRT also contain a number of compatibility wrapper functions. The ones in libmsvcrt.a have so far been excluded automatically since they in most cases come with a corresponding __imp_foo function. None of these make sense to export automatically from a DLL though, so add these libraries to the exclude list. libucrtbase.a contains a number of compatibility wrapper functions that don't have a corresponding __imp_foo symbol, which cause these symbols to be exported from DLLs. This can be worked around on the mingw-w64 side by adding extra __imp_ symbols, but since they aren't strictly necessary for linking to succeed, it's probably better long-term to add these libraries to the exclusion list. ld * pe-dll.c (autofilter_liblist): Add libmsvcrt, libmsvcrt-os and libucrtbase. commit 65f3ed048fa0741e874c7aa372f9ddba153a2949 Author: Jan Beulich Date: Thu Nov 23 11:04:18 2017 +0100 x86: fix AVX-512 16-bit addressing Despite EVEX encodings not being available in real and VM86 modes, 16-bit addressing still needs to be handled properly for 16-bit protected mode as well as 16-bit addressing in 32-bit mode. Neither should displacements be dropped silently by the assembler, nor should the disassembler fail to correctly scale 8-bit displacements. commit 43083a502b8d658b8d096111e54afcc73b0215a4 Author: Jan Beulich Date: Thu Nov 23 11:02:30 2017 +0100 x86-64: always use unsigned 32-bit reloc for 32-bit addressing w/o base reg Except for %eip-relative addressing, where we don't have a suitable relocation type silently wrapping at the 4G boundary, consistently force use of R_X86_64_32 (in ELF terms) instead of its sign-extending counterpart. This wasn't right in case there was no base register in the addressing expression. commit 9bb129e82f0506fe78d61670ea2b4140388955dd Author: Jan Beulich Date: Thu Nov 23 11:00:44 2017 +0100 x86: drop redundant VSIB handling code The vecsib && !base_reg case is already being handled (in a more correct manner) by earlier code. commit 66f1eba0b7e83f293573ab42bbbe5d7d5c905d91 Author: Jan Beulich Date: Thu Nov 23 10:59:48 2017 +0100 x86: correct UDn Make the assembler recognize UD0, supporting only the newer form expecting a ModR/M byte. Make assembler and disassembler properly emit / expect a ModR/M byte for UD1. For the testsuite, as arch-4 already tests all UDn, avoid producing a huge delta for other tests using UD2B by making them use UD2 instead. commit 38bf51134d1a58f155c89f2b1c7bf885c2604ead Author: Jan Beulich Date: Thu Nov 23 10:57:54 2017 +0100 x86/Intel: don't report multiple errors for a single insn operand Multiple errors are more confusing than helpful, as the more generic one often implies a sufficiently different adjustment than would actually be needed to fix the code. Additionally it makes it more cumbersome to add missing error checks, as the testsuite then needs extra updating. commit 9c23b42ffa67b866cd7562c1d8caed70db5d6840 Author: Sergio Durigan Junior Date: Mon Nov 13 01:29:39 2017 -0500 Convert DTrace probe interface to C++ (and perform some cleanups) This patch converts the DTrace probe interface (gdb/dtrace-probe.[ch]) to C++, and also performs some cleanups that were on my TODO list for a while. The main changes were the conversion of 'struct dtrace_probe' to 'class dtrace_probe', and a new 'class dtrace_static_probe_ops' to replace the use of 'dtrace_probe_ops'. Both classes implement the virtual methods exported by their parents, 'class probe' and 'class static_probe_ops', respectively. I believe it's now a bit simpler to understand the logic behind the dtrace-probe interface. There are several helper functions used to parse parts of a dtrace probe, and since they are generic and don't need to know about the probe they're working on, I decided to leave them as simple static functions (instead of e.g. converting them to class methods). I've also converted a few uses of "VEC" to "std::vector", which makes the code simpler and easier to maintain. And, as usual, some cleanups here and there. Even though I'm sending a series of patches, they need to be tested and committed as a single unit, because of inter-dependencies. But it should be easier to review in separate logical units. I wasn't able to test these modifications because the current test framework for DTrace probes is not working. See . gdb/ChangeLog: 2017-11-22 Sergio Durigan Junior * dtrace-probe.c (struct probe_ops dtrace_probe_ops): Delete. (struct dtrace_probe_arg) : New constructor. : Convert to 'std::string'. : Convert to 'expression_up'. (dtrace_probe_arg_s): Delete type and VEC. (dtrace_probe_enabler_s): Likewise. (struct dtrace_probe): Replace by... (class dtrace_static_probe_ops): ...this and... (class dtrace_probe): ...this. (dtrace_probe_is_linespec): Rename to... (dtrace_static_probe_ops::is_linespec): ...this. Adjust code to reflect change. (dtrace_process_dof_probe): Use 'std::vector' instead of VEC. Adjust code. Create new instance of 'dtrace_probe'. (dtrace_build_arg_exprs): Rename to... (dtrace_probe::build_arg_exprs): ...this. Adjust code to reflect change. (dtrace_get_probes): Rename to... (dtrace_static_probe_ops::get_probes): ...this. Adjust code to reflect change. (dtrace_get_arg): Rename to... (dtrace_probe::get_arg_by_number): ...this. Adjust code to reflect change. (dtrace_probe_is_enabled): Rename to... (dtrace_probe::is_enabled): ...this. Adjust code to reflect change. (dtrace_get_probe_address): Rename to... (dtrace_probe::get_relocated_address): ...this. Adjust code to reflect change. (dtrace_get_probe_argument_count): Rename to... (dtrace_probe::get_argument_count): ...this. Adjust code to reflect change. (dtrace_can_evaluate_probe_arguments): Rename to... (dtrace_probe::can_evaluate_arguments): ...this. Adjust code to reflect change. (dtrace_evaluate_probe_argument): Rename to... (dtrace_probe::evaluate_argument): ...this. Adjust code to reflect change. (dtrace_compile_to_ax): Rename to... (dtrace_probe::compile_to_ax): ...this. Adjust code to reflect change. (dtrace_probe_destroy): Delete. (dtrace_type_name): Rename to... (dtrace_static_probe_ops::type_name): ...this. Adjust code to reflect change. (dtrace_probe::get_static_ops): New method. (dtrace_gen_info_probes_table_header): Rename to... (dtrace_static_probe_ops::gen_info_probes_table_header): ...this. Adjust code to reflect change. (dtrace_gen_info_probes_table_values): Rename to... (dtrace_probe::gen_info_probes_table_values): ...this. Adjust code to reflect change. (dtrace_enable_probe): Rename to... (dtrace_probe::enable_probe): ...this. Adjust code to reflect change. (dtrace_disable_probe): Rename to... (dtrace_probe::disable_probe): ...this. Adjust code to reflect change. (struct probe_ops dtrace_probe_ops): Delete. (info_probes_dtrace_command): Call 'info_probes_for_spops' instead of 'info_probes_for_ops'. (_initialize_dtrace_probe): Use 'all_static_probe_ops' instead of 'all_probe_ops'. commit 0e9ae10f5f97824067365af4813b843973297573 Author: Sergio Durigan Junior Date: Mon Nov 13 01:05:57 2017 -0500 Convert SystemTap probe interface to C++ (and perform some cleanups) This patch converts the SystemTap probe interface (gdb/stap-probe.[ch]) to C++, and also performs some cleanups that were on my TODO list for a while. The main changes were the conversion of 'struct stap_probe' to 'class stap_probe', and a new 'class stap_static_probe_ops' to replace the use of 'stap_probe_ops'. Both classes implement the virtual methods exported by their parents, 'class probe' and 'class static_probe_ops', respectively. I believe it's now a bit simpler to understand the logic behind the stap-probe interface. There are several helper functions used to parse parts of a stap probe, and since they are generic and don't need to know about the probe they're working on, I decided to leave them as simple static functions (instead of e.g. converting them to class methods). I've also converted a few uses of "VEC" to "std::vector", which makes the code simpler and easier to maintain. And, as usual, some cleanups here and there. Even though I'm sending a series of patches, they need to be tested and committed as a single unit, because of inter-dependencies. But it should be easier to review in separate logical units. I've regtested this patch on BuildBot, no regressions found. gdb/ChangeLog: 2017-11-22 Sergio Durigan Junior Simon Marchi * stap-probe.c (struct probe_ops stap_probe_ops): Delete variable. (struct stap_probe_arg) : New constructor. : Change type to 'expression_up'. (stap_probe_arg_s): Delete type and VEC. (struct stap_probe): Delete. Replace by... (class stap_static_probe_ops): ...this and... (class stap_probe): ...this. Rename variables to add 'm_' prefix. Do not use 'union' for arguments anymore. (stap_get_expected_argument_type): Receive probe name instead of 'struct stap_probe'. Adjust code. (stap_parse_probe_arguments): Rename to... (stap_probe::parse_arguments): ...this. Adjust code to reflect change. (stap_get_probe_address): Rename to... (stap_probe::get_relocated_address): ...this. Adjust code to reflect change. (stap_get_probe_argument_count): Rename to... (stap_probe::get_argument_count): ...this. Adjust code to reflect change. (stap_get_arg): Rename to... (stap_probe::get_arg_by_number'): ...this. Adjust code to reflect change. (can_evaluate_probe_arguments): Rename to... (stap_probe::can_evaluate_arguments): ...this. Adjust code to reflect change. (stap_evaluate_probe_argument): Rename to... (stap_probe::evaluate_argument): ...this. Adjust code to reflect change. (stap_compile_to_ax): Rename to... (stap_probe::compile_to_ax): ...this. Adjust code to reflect change. (stap_probe_destroy): Delete. (stap_modify_semaphore): Adjust comment. (stap_set_semaphore): Rename to... (stap_probe::set_semaphore): ...this. Adjust code to reflect change. (stap_clear_semaphore): Rename to... (stap_probe::clear_semaphore): ...this. Adjust code to reflect change. (stap_probe::get_static_ops): New method. (handle_stap_probe): Adjust code to create instance of 'stap_probe'. (stap_get_probes): Rename to... (stap_static_probe_ops::get_probes): ...this. Adjust code to reflect change. (stap_probe_is_linespec): Rename to... (stap_static_probe_ops::is_linespec): ...this. Adjust code to reflect change. (stap_type_name): Rename to... (stap_static_probe_ops::type_name): ...this. Adjust code to reflect change. (stap_gen_info_probes_table_header): Rename to... (stap_static_probe_ops::gen_info_probes_table_header): ...this. Adjust code to reflect change. (stap_gen_info_probes_table_values): Rename to... (stap_probe::gen_info_probes_table_values): ...this. Adjust code to reflect change. (struct probe_ops stap_probe_ops): Delete. (info_probes_stap_command): Use 'info_probes_for_spops' instead of 'info_probes_for_ops'. (_initialize_stap_probe): Use 'all_static_probe_ops' instead of 'all_probe_ops'. commit 935676c92feb5f35e4634ef58c20ffdfd0979b07 Author: Sergio Durigan Junior Date: Mon Nov 13 00:28:24 2017 -0500 Convert generic probe interface to C++ (and perform some cleanups) This patch converts the generic probe interface (gdb/probe.[ch]) to C++, and also performs some cleanups that were on my TODO list for a while. The main changes were the conversion of 'struct probe' to 'class probe', and 'struct probe_ops' to 'class static_probe_ops'. The former now contains all the "dynamic", generic methods that act on a probe + the generic data related to it; the latter encapsulates a bunch of "static" methods that relate to the probe type, but not to a specific probe itself. I've had to do a few renamings (e.g., on 'struct bound_probe' the field is called 'probe *prob' now, instead of 'struct probe *probe') because GCC was complaining about naming the field using the same name as the class. Nothing major, though. Generally speaking, the logic behind and the design behind the code are the same. Even though I'm sending a series of patches, they need to be tested and committed as a single unit, because of inter-dependencies. But it should be easier to review in separate logical units. I've regtested this patch on BuildBot, no regressions found. gdb/ChangeLog: 2017-11-22 Sergio Durigan Junior * break-catch-throw.c (fetch_probe_arguments): Use 'probe.prob' instead of 'probe.probe'. * breakpoint.c (create_longjmp_master_breakpoint): Call 'can_evaluate_arguments' and 'get_relocated_address' methods from probe. (create_exception_master_breakpoint): Likewise. (add_location_to_breakpoint): Use 'sal->prob' instead of 'sal->probe'. (bkpt_probe_insert_location): Call 'set_semaphore' method from probe. (bkpt_probe_remove_location): Likewise, for 'clear_semaphore'. * elfread.c (elf_get_probes): Use 'static_probe_ops' instead of 'probe_ops'. (probe_key_free): Call 'delete' on probe. (check_exception_resume): Use 'probe.prob' instead of 'probe.probe'. * location.c (string_to_event_location_basic): Call 'probe_linespec_to_static_ops'. * probe.c (class any_static_probe_ops): New class. (any_static_probe_ops any_static_probe_ops): New variable. (parse_probes_in_pspace): Receive 'static_probe_ops' as argument. Adjust code to reflect change. (parse_probes): Use 'static_probe_ops' instead of 'probe_ops'. Adjust code to reflect change. (find_probes_in_objfile): Call methods to get name and provider from probe. (find_probe_by_pc): Use 'result.prob' instead of 'result.probe'. Call 'get_relocated_address' method from probe. (collect_probes): Adjust comment and argument list to receive 'static_probe_ops' instead of 'probe_ops'. Adjust code to reflect change. Call necessary methods from probe. (compare_probes): Call methods to get name and provider from probes. (gen_ui_out_table_header_info): Receive 'static_probe_ops' instead of 'probe_ops'. Use 'std::vector' instead of VEC, adjust code accordingly. (print_ui_out_not_applicables): Likewise. (info_probes_for_ops): Rename to... (info_probes_for_spops): ...this. Receive 'static_probe_ops' as argument instead of 'probe_ops'. Adjust code. Call necessary methods from probe. (info_probes_command): Use 'info_probes_for_spops'. (enable_probes_command): Pass correct argument to 'collect_probes'. Call methods from probe. (disable_probes_command): Likewise. (get_probe_address): Move to 'any_static_probe_ops::get_address'. (get_probe_argument_count): Move to 'any_static_probe_ops::get_argument_count'. (can_evaluate_probe_arguments): Move to 'any_static_probe_ops::can_evaluate_arguments'. (evaluate_probe_argument): Move to 'any_static_probe_ops::evaluate_argument'. (probe_safe_evaluate_at_pc): Use 'probe.prob' instead of 'probe.probe'. (probe_linespec_to_ops): Rename to... (probe_linespec_to_static_ops): ...this. Adjust code. (probe_any_is_linespec): Rename to... (any_static_probe_ops::is_linespec): ...this. (probe_any_get_probes): Rename to... (any_static_probe_ops::get_probes): ...this. (any_static_probe_ops::type_name): New method. (any_static_probe_ops::gen_info_probes_table_header): New method. (compute_probe_arg): Use 'pc_probe.prob' instead of 'pc_probe.probe'. Call methods from probe. (compile_probe_arg): Likewise. (std::vector all_probe_ops): Delete. (std::vector all_static_probe_ops): New variable. (_initialize_probe): Use 'all_static_probe_ops' instead of 'all_probe_ops'. * probe.h (struct info_probe_column) : Delete extraneous newline (info_probe_column_s): Delete type and VEC. (struct probe_ops): Delete. Replace with... (class static_probe_ops): ...this and... (clas probe): ...this. (struct bound_probe) : Delete extraneous newline. Adjust constructor to receive 'probe' instead of 'struct probe'. : Rename to... : ...this. Delete extraneous newline. : Delete extraneous newline. (register_probe_ops): Delete unused prototype. (info_probes_for_ops): Rename to... (info_probes_for_spops): ...this. Adjust comment. (get_probe_address): Move to 'probe::get_address'. (get_probe_argument_count): Move to 'probe::get_argument_count'. (can_evaluate_probe_arguments): Move to 'probe::can_evaluate_arguments'. (evaluate_probe_argument): Move to 'probe::evaluate_argument'. * solib-svr4.c (struct svr4_info): Adjust comment. (struct probe_and_action) : Rename to... : ...this. (register_solib_event_probe): Receive 'probe' instead of 'struct probe' as argument. Use 'prob' instead of 'probe' when applicable. (solib_event_probe_action): Call 'get_argument_count' method from probe. Adjust comment. (svr4_handle_solib_event): Adjust comment. Call 'evaluate_argument' method from probe. (svr4_create_probe_breakpoints): Call 'get_relocated_address' from probe. (svr4_create_solib_event_breakpoints): Use 'probe' instead of 'struct probe'. Call 'can_evaluate_arguments' from probe. * symfile.h: Forward declare 'class probe' instead of 'struct probe'. * symtab.h: Likewise. (struct symtab_and_line) : Rename to... : ...this. * tracepoint.c (start_tracing): Use 'prob' when applicable. Call probe methods. (stop_tracing): Likewise. commit 88108bf28c4a726af84dfec2f85b8404cc2ac0bd Author: GDB Administrator Date: Thu Nov 23 00:00:27 2017 +0000 Automatic date update in version.in commit 8f6cb6c33815f38b41e1e93e59f12869db07c070 Author: Joel Brobecker Date: Wed Nov 22 14:30:41 2017 -0800 (Ada) ravenscar-thread.c: remove unwanted trailing \n in call to warning A recent patch introduced a call to warning, and the string used had a trailing newline, which is not correct; the nightly ARI run caught it, so this patch removes it. gdb/ChangeLog: * ravenscar-thread.c (ravenscar_inferior_created): Remove trailing newline at end of string in call to warning. Tested on powerpc-eabispe, no regression. commit 479f8de1b3b7e69ca8d557bbe9d843c7d1bc89c5 Author: Simon Marchi Date: Wed Nov 22 16:12:06 2017 -0500 C++ify osdata This patch c++ifies the osdata structure: osdata_column, osdata_item and osdata. char* are replaced with std::string and VEC are replaced with std::vector. This allows to get rid of a great deal of cleanup and free'ing code. I replaced the splay tree in list_available_thread_groups with an std::map. Unless there's a good advantage to keep using a splay tree, I think using the standard type should make things simpler to understand. gdb/ChangeLog: * osdata.h: Include vector isntead of vec.h. (osdata_column_s): Remove typedef. (struct osdata_column): Add constructor. : Change type to std::string. (DEF_VEC_O (osdata_column_s)): Remove. (osdata_item_s): Remove typedef. (struct osdata_item) : Change type to std::vector. (DEF_VEC_O (osdata_item_s)): Remove. (struct osdata): Add constructor. : Change type to std::string. : Change type to std::vector. (osdata_p): Remove typedef. (DEF_VEC_P (osdata_p)): Remove. (osdata_parse): Return a unique_ptr. (osdata_free): Remove. (make_cleanup_osdata_free): Remove. (get_osdata): Return a unique_ptr. (get_osdata_column): Return pointer to std::string, take a reference to osdata_item as parameter. * osdata.c (struct osdata_parsing_data) : Change type to unique_ptr. : Change type to std::string. (osdata_start_osdata): Allocate osdata with new and adjust. (osdata_start_item): Adjust. (osdata_start_column): Adjust. (osdata_end_column): Adjust. (clear_parsing_data): Remove. (osdata_parse): Return a unique_ptr and adjust, remove cleanup. (osdata_item_clear): Remove. (get_osdata): return a unique_ptr and adjust. (get_osdata_column): Return a pointer to std::string and adjust. (info_osdata): Adjust. * mi/mi-main.c: Include . (free_vector_of_osdata_items): Remove. (list_available_thread_groups): Adjust, use std::map instead of splay tree. commit 41bd68f52c05f5654bed49f312f6562c8d048897 Author: Simon Marchi Date: Wed Nov 22 15:51:44 2017 -0500 Show optimized out local variables in "info locals" Currently, optimized out variables are not shown when doing "info locals". Some users found that confusing, thinking GDB forgot to print their variable. This patch adds them to the "info locals" output. I added a test in gdb.dwarf2 to test for that behavior. I think doing a synthetic DWARF test is the easiest way to have an optimized out local variable for sure. However, this change reveals what I think is a bug in GDB, see: http://lists.dwarfstd.org/pipermail/dwarf-discuss-dwarfstd.org/2017-September/004394.html This patch marks the tests in inline-locals.exp that start failing as KFAIL. I'd like to tackle this bug eventually, but I don't have the time right now. I think it's still better to show an extra erroneous entry than to not show the optimized out variables at all. I haven't created a bug in bugzilla yet, but if we agree it's indeed a bug, I'll create one and update the setup_kfail lines with the actual bug number before pushing. gdb/ChangeLog: * stack.c (iterate_over_block_locals): Add LOC_OPTIMIZED_OUT case in switch. gdb/testsuite/ChangeLog: * gdb.opt/inline-locals.exp: Mark tests as KFAIL. * gdb.dwarf2/info-locals-optimized-out.exp: New file. * gdb.dwarf2/info-locals-optimized-out.c: New file. commit 7e2fd2f47b37185505f68e45c5cf016c7a16e1ce Author: Simon Marchi Date: Wed Nov 22 15:08:07 2017 -0500 Remove DEF_VEC_P (varobj_p) The last patch removed the last usage of this type, so we can remove it. gdb/ChangeLog: * varobj.h (DEF_VEC_P (varobj_p)): Remove. commit 0604393c22f626f26b5a4a30e57da40404f5aa5e Author: Simon Marchi Date: Wed Nov 22 15:08:06 2017 -0500 Replace VEC (varobj_update_result) with std::vector This patch replaces makes varobj_update return an std::vector, and updates the fallouts. To make that easier, the varobj_update_result is c++ified a bit. I added a constructor and initialized its fields in-class. The newobj vector is also made an std::vector, so that it's automatically freed when varobj_update_result is destroyed and handled correctly by the default move constructor. I disabled copy constructor and assignment for that structure, because normally it never needs to be copied, only moved. As a result, the newobj parameter of update_dynamic_varobj_children must be changed to an std::vector. The patch converts the other vector parameters of update_dynamic_varobj_children to std::vector. It's not strictly necessary to do it in the same patch, but I think it makes sense to do it. gdb/ChangeLog: * varobj.h (struct varobj_update_result): Add constructor, add move constructor, disable copy and assign, initialize fields. : Change type to std::vector. (varobj_update): Return std::vector. * varobj.c (install_dynamic_child): Change VEC parameters to std::vector and adjust. (update_dynamic_varobj_children): Likewise. (varobj_update): Return std::vector and adjust. * mi/mi-cmd-var.c (varobj_update_one): Adjust to vector changes. commit ddf0ea085b626ddcbb14f88f495bcb677b7ab6e9 Author: Simon Marchi Date: Wed Nov 22 15:08:06 2017 -0500 Make varobj::children an std::vector This patch makes the children field of varobj an std::vector, and updates the fallout. One note is that varobj::parent must be made non-const. The reason is that when a child deletes itself, it modifies its writes NULL to its slot in its parent's children vector. With the VEC, the const didn't made the parent's children vector content const, only the pointer to it, but with std::vector, even the content is. gdb/ChangeLog: * varobj.h (struct varobj) : Remove const. : Change type to std::vector. (varobj_list_children): Return std::vector const reference. (varobj_restrict_range): Change parameter type to std::vector const reference. * varobj.c (varobj_has_more): Adjust. (varobj_restrict_range): Change parameter type to std::vector const reference and adjust. (install_dynamic_child): Adjust. (update_dynamic_varobj_children): Adjust. (varobj_list_children): Return std::vector const reference and adjust. (varobj_add_child): Adjust. (update_type_if_necessary): Adjust. (varobj_update): Adjust. (delete_variable_1): Adjust. * ada-varobj.c (ada_value_has_mutated): Adjust. * mi/mi-cmd-var.c (mi_cmd_var_list_children): Adjust. commit 9e5b9d2b295d1771647a9e4bc942e398142ccf9b Author: Simon Marchi Date: Wed Nov 22 15:08:05 2017 -0500 Basic c++ification of varobj This patch does a basic c++ification or the varobj data structure. - varobj: add constructor and destructor, initialize fields - varobj_root: initialize fields - varobj_dynamic: initialize fields This allows getting rid of new_variable, new_root_variable. free_variable essentially becomes varobj's destructor. This also allows getting rid of a cleanup, make_cleanup_free_variable, which was only used in varobj_create in case the varobj creation fails. It is replaced with a unique_ptr. gdb/ChangeLog: * varobj.h (struct varobj): Add constructor and destructor, initialize fields. * varobj.c (struct varobj_root): Initialize fields. (struct varobj_dynamic): Initialize fields. (varobj_create): Use unique_ptr instead of cleanup. Create varobj with new instead of new_root_variable. (delete_variable_1): Free variable with delete instead of free_variable. (create_child_with_value): Create variable with new instead of new_variable. (varobj::varobj): New. (varobj::~varobj): New (body mostly coming from free_variable). (new_variable): Remove. (free_variable): Remove. (do_free_variable_cleanup): Remove. (make_cleanup_free_variable): Remove. commit 2469b3c58447e98e073ffe7ab6c9627dbbd1aa81 Author: Jim Wilson Date: Wed Nov 22 11:20:48 2017 -0800 Riscv ld-elf/stab failure and fake label cleanup. * as.c: Include write.h. (common_emul_init): Use FAKE_LABEL_NAME. * ecoff.c (add_file, ecoff_directive_end, ecoff_directive_loc): Likewise. (ecoff_build_symbols): Use FAKE_LABEL_CHAR. * expr.c (get_symbol_name): Use FAKE_LABEL_CHAR. Accept only if input_from_string is TRUE. * read.c (input_from_string): New. (read_symbol_name): Use FAKE_LABEL_CHAR. Accept only if input_from_string is TRUE. (temp_ilp): Set input_from_string to TRUE. (restore_ilp): Set input_from_string to FALSE. * read.h (input_from_string): Declare. * symbols.c: Include write.h (S_IS_LOCAL): Check for FAKE_LABEL_CHAR. (symbol_relc_make_sym): Fix comment refering to default fake label string. * write.h (FAKE_LABEL_CHAR): New. * config/tc-riscv.h (FAKE_LABEL_CHAR): Define. * testsuite/gas/all/err-fakelabel.s: New. commit 2ca23e65f562bd0efa7c483a99b49cc3d5118a58 Author: Jim Wilson Date: Wed Nov 22 11:09:30 2017 -0800 Update docs on filling text with nops. gas/ * doc/as.texinfo (.align): Change some to most for text nop fill. (.balign, .p2align): Likewise. commit fc35dab1a62541858cab1c82aebc6cd166e39f5b Author: Ulrich Weigand Date: Wed Nov 22 19:57:05 2017 +0100 Remove obsolete core-regset.c The last target that used core-regset.c (FreeBSD/alpha) has been removed with GDB 8.0, and since then this file is obsolete. commit 1daad298d699383bb4f35aa919a1acfa0ab8e16c Author: Yao Qi Date: Wed Nov 22 16:50:53 2017 +0000 [testsuite] Pass pthreads in prepare_for_testing "pthreads" in the right flag to pass in prepare_for_testing to linker, instead of additional_flags. Without this patch, the test case can't be complied by clang. gdb compile failed, clang: warning: -lpthread: 'linker' input unused gdb/testsuite: 2017-11-22 Yao Qi * gdb.base/info-os.exp: Pass pthreads. * gdb.multi/multi-attach.exp: Likewise. commit 88465e872cb6649c42863e5c47011bae9e17bbdb Author: Yao Qi Date: Wed Nov 22 14:46:30 2017 +0000 [testsuite] Don't skip gdb.dwarf2/pr10770.exp for non-gcc compiler gdb.dwarf2/pr10770.exp can be used for non-gcc compiler, at least clang. This patch removes the restriction to only use gcc. If other compilers, like xlc or icc, can't compile the .c file, test result is not changed. gdb/testsuite: 2017-11-22 Yao Qi * gdb.dwarf2/pr10770.exp: Remove code skipping non-gcc compiler. commit 94b98370de3ee157e039f26865390b5994c47c3b Author: Igor Tsimbalist Date: Mon Nov 20 19:23:28 2017 +0300 Remove Vec_Disp8 field for vgf2p8mulb for AVX flavor. * i386-opc.tbl: Remove Vec_Disp8 from vgf2p8mulb. * i386-tbl.h: Regenerate. commit dc196b230b7366683799755b4461acef5cc95be7 Author: Yao Qi Date: Wed Nov 22 14:35:01 2017 +0000 [testsuite] Pass -pie in ldflags -pie is a linker flag, it should be passed via "ldflags", instead of "additional_flags". Otherwise, clang complains, clang: warning: argument unused during compilation: '-pie' gdb/testsuite: 2017-11-22 Yao Qi * gdb.base/attach-pie-noexec.exp: Pass "-pie" in ldflags. * gdb.base/break-interp.exp: Likewise. * gdb.base/jit-attach-pie.exp: Likewise. commit 6f19e86dac3a191945b5eb08ae767deced660a00 Author: Igor Tsimbalist Date: Wed Nov 22 17:23:38 2017 +0300 Update ChangeLog commit c7478d028e8829402b05478f571eb5e1916c63d3 Author: Igor Tsimbalist Date: Mon Nov 20 19:14:32 2017 +0300 Remove Vec_Disp8 from vpcompressb and vpexpandb. * i386-opc.tbl: Remove Vec_Disp8 from vpcompressb and vpexpandb. * i386-tbl.h: Regenerate. commit 5aa75429d0531ac6cfe59efd80f1ab01311865b3 Author: Thomas Preud'homme Date: Wed Nov 22 14:02:49 2017 +0000 [GAS/ARM] Clarify relation between reg_expected_msgs and arm_reg_type Uses of reg_expected_msgs rely on each arm_reg_type enumerator to have a message entry in the same order as the enumerator declaration. This is not clearly stated in the definition of both the arm_reg_type enum and the reg_expected_msgs. Worse, there is nothing to ensure both are kept in sync. As an attempt towards this, this patch uses C99 array designators to ensure that each message is associated with the right arm_reg_type. A comment is also added near the definition of arm_reg_type to point to the reg_expected_msgs array. Finally, the array is synced with arm_reg_type by adding the missing error message for REG_TYPE_RNB. 2017-11-22 Thomas Preud'homme gas/ * config/tc-arm.c (arm_reg_type): Comment on the link with reg_expected_msgs. (reg_expected_msgs): Initialize using array designators with arm_reg_type index. commit 2400729ecfd2c7be8b18aeaa822fef5a4b503f8a Author: Ulrich Weigand Date: Wed Nov 22 13:53:43 2017 +0100 Target FP: Make use of MPFR if available This second patch introduces mfpr_float_ops, an new implementation of target_float_ops. This implements precise emulation of target floating-point formats using the MPFR library. This is then used to perform operations on types that do not match any host type. Note that use of MPFR is still not required. The patch adds a configure option --with-mpfr similar to --with-expat. If use of MPFR is disabled via the option or MPFR is not available, code will fall back to current behavior. This means that operations on types that do not match any host type will be implemented on the host long double type instead. A new test case verifies that we can correctly print the largest __float128 value now. gdb/ChangeLog: 2017-11-22 Ulrich Weigand * NEWS: Document use of GNU MPFR. * README: Likewise. * Makefile.in (LIBMPFR): Add define. (CLIBS): Add $(LIBMPFR). * configure.ac: Add --with-mpfr configure option. * configure: Regenerate. * config.in: Regenerate. * target-float.c [HAVE_LIBMPFR]: Include . (class mpfr_float_ops): New type. (mpfr_float_ops::from_target): Two new overloaded functions. (mpfr_float_ops::to_target): Likewise. (mpfr_float_ops::to_string): New function. (mpfr_float_ops::from_string): Likewise. (mpfr_float_ops::to_longest): Likewise. (mpfr_float_ops::from_longest): Likewise. (mpfr_float_ops::from_ulongest): Likewise. (mpfr_float_ops::to_host_double): Likewise. (mpfr_float_ops::from_host_double): Likewise. (mpfr_float_ops::convert): Likewise. (mpfr_float_ops::binop): Likewise. (mpfr_float_ops::compare): Likewise. (get_target_float_ops): Use mpfr_float_ops if available. gdb/doc/ChangeLog: 2017-11-22 Ulrich Weigand * gdb.texinfo (Requirements): Document use of GNU MPFR. gdb/testsuite/ChangeLog: 2017-11-22 Ulrich Weigand * gdb.base/float128.c (large128): New variable. * gdb.base/float128.exp: Add test to print largest __float128 value. commit 7a26362d360ee34de1e8e927bd7159860fe8354b Author: Ulrich Weigand Date: Wed Nov 22 13:51:49 2017 +0100 Target FP: Refactor use of host floating-point arithmetic Prepare for using MPFR to implement floating-point arithmetic by refactoring the way host floating-point arithmetic is currently used. In particular, fix the following two problems that cause different (and incorrect) results due to using host arithmetic: - Current processing always uses host "long double", and then converts back to the actual target format. This may introduce rounding errors. - Conversion of FP values to LONGEST simply does a host C++ type cast. However the result of such a cast is undefined if the source value is outside the representable range. MPFR always has defined behavior here (returns the minimum or maximum representable value). To fix the first issue, I've now created not just one set of routines using host FP arithmetic (on long double), but instead three different sets of routines, one each for host float, double, and long double. Operations can then be performed in the desired type directly, avoiding the extra rounding step. Using C++ templates, the three sets can all share the same source code without duplication. To fix the second issue, I'm simply enforcing the same conversion rule (which makes sense anyway) when converting out-of-range values from FP to LONGEST. To contain the code complexity with the variety of options now possible, I've created a new class "target_float_ops". There are a total of five separate implementations of this: host_float_ops Implemented via host FP in given type host_float_ops host_float_ops mpfr_float_ops Implemented via MPFR if available decimal_float_ops Implemented via libdecnumber Note instead of using the DOUBLEST define, this always just uses the "long double" data type. But since we now require C++11 anyway, this type must in any case be avaialble unconditionally. Most target floating-point operations simply dispatch to a (virtual) member routine of this class. Which implementation to choose is determined from the target types involved, and whether they match some host type or not. E.g. any operation on a single type that matches a host type is performed in that type. Operations involving two types that both match host types are performed in the larger one (according to C/C++ implicit conversion rules). Operations that involve any type that does not match a host type are performed using MPFR. (And of course operations involving decimal FP are performed using libdecnumber.) This first patch implements the refactoring of target-float.c as described above, introduing the host_float_ops and decimal_float_ops classes, and using them. Use of MPFR is introduced in the second patch. A bit of special-case handling code is moved around to as to avoid code duplication between host_float_ops and mpfr_float_ops. Note that due to the changes mentioned above, I've had to update (fix) the floating-point register values tested in the gdb.arch/vsx-regs.exp test case. (The new values now work both with host arithmetic and MPFR.) gdb/ChangeLog: 2017-11-22 Ulrich Weigand * target-float.c: Do not include . Include and . (DOUBLEST): Do not define. (class target_float_ops): New type. (class host_float_ops): New templated type. (class decimal_float_ops): New type. (floatformat_to_doublest): Rename to ... (host_float_ops::from_target): ... this. Use template type T instead of DOUBLEST. Use C++ math routines. Update recursive calls. (host_float_ops::from_target): New overload using a type argument. (floatformat_from_doublest): Rename to ... (host_float_ops::to_target): ... this. Use template type T instead of DOUBLEST. Use C++ math routines. Update recursive calls. (host_float_ops::to_target): New overload using a type argument. (floatformat_printf_format): New function. (struct printf_length_modifier): New templated type. (floatformat_to_string): Rename to ... (host_float_ops::to_string): ... this. Use type instead of floatformat argument. Use floatformat_printf_format and printf_length_modifier. Remove special handling of invalid numbers, infinities and NaN (moved to target_float_to_string). (struct scanf_length_modifier): New templated type. (floatformat_from_string): Rename to ... (host_float_ops::from_string): ... this. Use type instead of floatformat argument. Use scanf_length_modifier. (floatformat_to_longest): Rename to ... (host_float_ops::to_longest): ... this. Use type instead of floatformat argument. Handle out-of-range values deterministically. (floatformat_from_longest): Rename to ... (host_float_ops::from_longest): ... this. Use type instead of floatformat argument. (floatformat_from_ulongest): Rename to ... (host_float_ops::from_ulongest): ... this. Use type instead of floatformat argument. (floatformat_to_host_double): Rename to ... (host_float_ops::to_host_double): ... this. Use type instead of floatformat argument. (floatformat_from_host_double): Rename to ... (host_float_ops::from_host_double): ... this. Use type instead of floatformat argument. (floatformat_convert): Rename to ... (host_float_ops::convert): ... this. Use type instead of floatformat arguments. Remove handling of no-op conversions. (floatformat_binop): Rename to ... (host_float_ops::binop): ... this. Use type instead of floatformat arguments. (floatformat_compare): Rename to ... (host_float_ops::compare): ... this. Use type instead of floatformat arguments. (match_endianness): Use type instead of length/byte_order arguments. (set_decnumber_context): Likewise. (decimal_from_number): Likewise. Update calls. (decimal_to_number): Likewise. (decimal_is_zero): Likewise. Update calls. Move to earlier in file. (decimal_float_ops::to_host_double): New dummy function. (decimal_float_ops::from_host_double): Likewise. (decimal_to_string): Rename to ... (decimal_float_ops::to_string): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_from_string): Rename to ... (decimal_float_ops::from_string): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_from_longest): Rename to ... (decimal_float_ops::from_longest): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_from_ulongest): Rename to ... (decimal_float_ops::from_ulongest): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_to_longest): Rename to ... (decimal_float_ops::to_longest): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_binop): Rename to ... (decimal_float_ops::binop): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_compare): Rename to ... (decimal_float_ops::compare): ... this. Use type instead of length/byte_order arguments. Update calls. (decimal_convert): Rename to ... (decimal_float_ops::convert): ... this. Use type instead of length/byte_order arguments. Update calls. (target_float_same_category_p): New function. (target_float_same_format_p): Likewise. (target_float_format_length): Likewise. (enum target_float_ops_kind): New type. (get_target_float_ops_kind): New function. (get_target_float_ops): Three new overloaded functions. (target_float_is_zero): Update call. (target_float_to_string): Add special handling of invalid numbers, infinities and NaN (moved from floatformat_to_string). Use target_float_ops callback. (target_float_from_string): Use target_float_ops callback. (target_float_to_longest): Likewise. (target_float_from_longest): Likewise. (target_float_from_ulongest): Likewise. (target_float_to_host_double): Likewise. (target_float_from_host_double): Likewise. (target_float_convert): Add special case for no-op conversions. Use target_float_ops callback. (target_float_binop): Use target_float_ops callback. (target_float_compare): Likewise. gdb/testsuite/ChangeLog: 2017-11-22 Ulrich Weigand * gdb.arch/vsx-regs.exp: Update register content checks. commit a9f26f609e3a1b6ae3aab300b55442e0a81e2bce Author: Yao Qi Date: Wed Nov 22 12:22:11 2017 +0000 Fix build with GCC 8: strncpy ->strcpy Recent gcc 8 trunk emits the warning below, ../../binutils-gdb/gdb/python/py-gdb-readline.c:79:15: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation] strncpy (q, p, n); ~~~~~~~~^~~~~~~~~ ../../binutils-gdb/gdb/python/py-gdb-readline.c:73:14: note: length computed here n = strlen (p); ~~~~~~~^~~ gdb: 2017-11-22 Yao Qi * python/py-gdb-readline.c (gdbpy_readline_wrapper): Use strcpy. commit 29f9a5673764c1b2711c0ceeba380a6ee764d1b2 Author: Yao Qi Date: Wed Nov 22 12:22:11 2017 +0000 Fix build with GCC 8: strncpy -> memcpy Recent gcc 8 trunk emits the warning below, ../../../binutils-gdb/gdb/gdbserver/remote-utils.c:1204:14: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 6 bytes from a string of the same length [-Werror=stringop-truncation] strncpy (buf, "watch:", 6); ~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1118:15: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=] strncpy (cmdtype1 + 1, cmdtype, len - 1); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1110:16: note: length computed here len = strlen (cmdtype); ~~~~~~~^~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1120:15: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=] strncpy (cmdtype2, cmdtype, len - 1); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1110:16: note: length computed here len = strlen (cmdtype); ~~~~~~~^~~~~~~~~ ../../binutils-gdb/gdb/cp-namespace.c:1071:11: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 2 bytes from a string of the same length [-Werror=stringop-truncation] strncpy (full_name + scope_length, "::", 2); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This patch fixes it by using memcpy instead of strncpy. gdb: 2017-11-22 Yao Qi * cli/cli-decode.c (help_list): Use memcpy instead of strncpy. * cp-namespace.c (cp_lookup_transparent_type_loop): Likewise. gdb/gdbserver: 2017-11-22 Yao Qi * remote-utils.c (prepare_resume_reply): Use memcpy. commit dc958481429708ecf91f9b2c445063d43397f07e Author: claziss Date: Wed Nov 22 10:46:45 2017 +0100 [ARC] Fix handling of ARCv2 H-register class. For ARCv2, h-regs are only valid unitl r31. gas/ 2017-11-21 Claudiu Zissulescu * testsuite/gas/arc/hregs-err.s: New test. opcodes/ 2017-11-21 Claudiu Zissulescu * arc-opc.c (insert_rhv2): Check h-regs range. commit 0ad71725d917c51b46ffacbad25744dd889e87da Author: H.J. Lu Date: Tue Nov 21 16:44:29 2017 -0800 x86: Add tests for -n option of x86 assembler The -n command-line of x86 assembler disables optimization of alignment directives, like ".balign 8, 0x90", with multi-byte nop instructions such as leal 0(%esi),%esi. PR gas/22464 * testsuite/gas/i386/align-1.s: New file. * testsuite/gas/i386/align-1a.d: Likewise. * testsuite/gas/i386/align-1b.d: Likewise. * testsuite/gas/i386/i386.exp: Run align-1a and align-1b. commit c757658ed60fb1027a4335358bd55eaf6c23190f Author: GDB Administrator Date: Wed Nov 22 00:00:23 2017 +0000 Automatic date update in version.in commit 3b1b69bffe522f22d269723856d2caa901041819 Author: Jerome Guitton Date: Tue Nov 21 14:10:01 2017 -0800 ravenscar: update inferior ptid with event ptid When debugging a program using a ravenscar runtime, the thread layer sometimes gets confused, and even missing some threads. This was traced to an assumption that ravenscar_wait was making, which is that calling the "to_wait" target_ops method would set the inferior_ptid, so that we could then use that assumption to update our thread_list and current ptid. However, this has not been the case for quite a while now. This patch fixes the problem by assigning inferior_ptid the ptid returned by "to_wait". gdb/ChangeLog: * ravenscar-thread.c (ravenscar_wait): Update inferior ptid with event ptid from the lower layer before doing the ravenscar-specific update. commit 54aa6c67f5a0d52dabd428cc40ce02781032acd3 Author: Joel Brobecker Date: Tue Nov 21 14:04:38 2017 -0800 (Ada) crash connecting to TSIM simulator Connecting to a TSIM simulator over the remote protocol causes GDB to crash with the following failed assertion: (gdb) tar remote :1234 Remote debugging using :1234 /[...]/gdb/ravenscar-thread.c:182: internal-error: ravenscar_update_inferior_ptid: Assertion `!is_ravenscar_task (inferior_ptid)' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) y What happens is the following. Upon connection to the target, GDB sends a 'qfThreadInfo' query, which is the query asking the target for the ID of the first thread, and TSIM replies 'm0': Sending packet: $qfThreadInfo#bb...Ack Packet received: m0 As a result of this, GDB takes the '0' as the TID, and because of it, constructs a ptid whose value is {42000, 0, 0}. This trips our !is_ravenscar_task check, because all it does to identify threads corresponding to ravenscar tasks is that their lwp is null, because that's how we construct their ptid. But this is unfortunatly not sufficient when debugging with TSIM, because the thread ID that TSIM returns causes the creation of a ptid whose lwp is zero, which matches the current identification scheme and yet is clearly not a ravenscar task. The fix is to also make sure that the ptid's tid field is nonzero. gdb/ChangeLog: * ravenscar-thread.c (is_ravenscar_task): Also verify that the ptid's TID is nonzero. commit cf3fbed4a00e668ffcad1b878eccec87334fdcff Author: Joel Brobecker Date: Tue Nov 21 14:03:06 2017 -0800 problem debugging ravenscar programs if runtime is stripped Trying to debug a program using a stripped version of the ravenscar runtime, we can get the following error: (gdb) cont Continuing. Cannot find Ada_Task_Control_Block type. Aborting This is because the ravenscar-thread layer makes the assumption that the runtime is built the way we expect it, meaning that the Ada tasking units we rely on for Ada tasking debugging, are built with debugging information, and that this debug information has not been stripped from the runtime. When this assumption is not true, resuming such a program can trigger the error above, which then leads GDB a little confused. For instance, we can see things like: (gdb) bt Target is executing. This patch fixes the issue by disabling the ravenscar thread layer if we detect that the runtime is missing some of the debugging info we need in order to support Ada task debugging. This is the best we can do, as the ravenscar-thread layer actually depends on the ada-tasks layer to implement thread debugging. gdb/ChangeLog: * ada-lang.h (ada_get_tcb_types_info): Add declaration. * ada-tasks.c (ada_get_tcb_types_info): Renames get_tcb_types_info. Make non-static. Change return type to char *. Adjust code accordingly. Rewrite the function's documentation. (read_atcb): Adjust call to get_tcb_types_info accordingly. * ravenscar-thread.c (ravenscar_inferior_created): Check that we have enough debugging information in the runtime to support Ada task debugging before we enable the ravenscar-thread layer. commit 9edcc12f9b714149f84bcf20dbdad91f030e62de Author: Joel Brobecker Date: Tue Nov 21 14:00:30 2017 -0800 Add multiple-CPU support in ravenscar-thread.c This patch reworks the ravenscar-thread layer to remove the assumption that the target only has 1 CPU. In particular, when connected to a QEMU target over the remote protocol, QEMU reports each CPU as one thread. This patch adapts the ravenscar-thread layer to this, and adds a large comment explaining the general design of this unit. gdb/ChangeLog: * ada-lang.h (ada_get_task_info_from_ptid): Add declaration. * ada-tasks.c (ada_get_task_info_from_ptid): New function. * ravenscar-thread.c: Add into comment. (base_magic_null_ptid): Delete. (base_ptid): Change documentation. (ravenscar_active_task): Renames ravenscar_running_thread. All callers updated throughout. (is_ravenscar_task, ravenscar_get_thread_base_cpu): New function. (ravenscar_task_is_currently_active): Likewise. (get_base_thread_from_ravenscar_task): Ditto. (ravenscar_update_inferior_ptid): Adjust to handle multiple CPUs. (ravenscar_runtime_initialized): Likewise. (get_running_thread_id): Add new parameter "cpu". Adjust implementation to handle this new parameter. (ravenscar_fetch_registers): Small adjustment to use is_ravenscar_task and ravenscar_task_is_currently_active in order to decide whether to use the target beneath or this module's arch_ops. (ravenscar_store_registers, ravenscar_prepare_to_store): Likewise. (ravenscar_stopped_by_sw_breakpoint): Use get_base_thread_from_ravenscar_task to get the underlying thread, rather than using base_ptid. (ravenscar_stopped_by_hw_breakpoint, ravenscar_stopped_by_watchpoint) (ravenscar_stopped_data_address, ravenscar_core_of_thread): Likewise. (ravenscar_inferior_created): Do not set base_magic_null_ptid. commit 65d40437e2704e635e7144319e956edf3e7fa026 Author: Joel Brobecker Date: Tue Nov 21 13:58:00 2017 -0800 Provide the "Base CPU" in output of "info task" (if set by runtime). At the user level, this patch enhances the debugger to print the ID of the base CPU a task is running on: (gdb) info task 3 Ada Task: 0x13268 Name: raven1 Thread: 0x13280 LWP: 0 !!!-> Base CPU: 1 No parent Base Priority: 127 State: Runnable This new field is only printed when the base CPU is nonzero or, in other words, if the base CPU info is being provided by the runtime. For instance, on native systems, where threads/processes can "jump" from CPU to CPU, the info is not available, and the output of the command above then remains unchanged. At the internal level, the real purpose of this change is to prepare the way for ravenscar-thread to start handling SMP systems. For that, we'll need to know which CPU each task is running on... More info on that in the commit that actually adds support for it. gdb/ChangeLog: * ada-lang.h (struct ada_task_info) : New field. * ada-lang.c (struct atcb_fieldno) : New field. (get_tcb_types_info): Set fieldnos.base_cpu. (read_atcb): Set task_info->base_cpu. (info_task): Print "Base CPU" info if set by runtime. commit e02544b292a3d537b43ae9cff890ea040b944d01 Author: Joel Brobecker Date: Tue Nov 21 13:42:48 2017 -0800 watchpoint regression debugging with remote protocol (bare metal) We have noticed a regression in our watchpoint support when debugging through the remote protocol a program running on a bare metal platform, when the program uses what we call the Ravenscar Runtime. This runtime is a subset of the Ada runtime defined by the Ravenscar Profile. One of the nice things about this runtime is that it provides tasking, which is equivalent to the concept of threads in C (it is actually often mapped to threads, when available). For bare metal targets, however, there is no OS, and therefore no thread layer. What we did, then, was add a ravenscar-thread layer, which has insider knowledge of the runtime to get the list of threads, but also all necessary info to perform thread switching. For the record, the commit which caused the regression is: commit 799a2abe613be0645b84f5aaa050f2f91e6ae3f7 Date: Mon Nov 30 16:05:16 2015 +0000 Subject: remote: stop reason and watchpoint data address per thread Running local-watch-wrong-thread.exp with "maint set target-non-stop on" exposes that gdb/remote.c only records whether the target stopped for a breakpoint/watchpoint plus the watchpoint data address *for the last reported remote event*. But in non-stop mode, we need to keep that info per-thread, as each thread can end up with its own last-status pending. Our testcase is very simple. We have a package defining a global variable named "Watch"... package Pck is Watch : Integer := 1974; end Pck; ... and a main subprogram which changes its value procedure Foo is begin Pck.Watch := Pck.Watch + 1; end Foo; To reproduce, we built our program as usual, started it in QEMU, and then connected GDB to QEMU... (gdb) target remote :4444 (gdb) break _ada_foo (gdb) cont <--- this is to make sure the program is started and the variable we want to watch is initialized ... at which point we try to use a watchpoint on our global variable: (gdb) watch watch ... but, upon resuming the execution with a "cont", we expected to get a watchpoint-hit notification, such as... (gdb) cont Hardware watchpoint 2: watch Old value = 1974 New value = 1975 0xfff00258 in foo () at /[...]/foo.adb:6 6 end Foo; ... but unfortunately, we get a SIGTRAP instead: (gdb) cont Program received signal SIGTRAP, Trace/breakpoint trap. foo () at /[...]/foo.adb:6 6 end Foo; What happens is that, on the one hand, the change in remote.c now stores the watchpoint-hit notification info in the thread that received it; and on the other hand, we have a ravenscar-thread layer which manages the thread list on top of the remote protocol layer. The two of them get disconnected, and this eventually results in GDB not realizing that we hit a watchpoint. Below is how: First, once connected and just before inserting our watchpoint, we have the ravenscar-thread layer which built the list of threads by extracting some info from inferior memory, giving us the following two threads: (gdb) info threads Id Target Id Frame 1 Thread 0 "0Q@" (Ravenscar task) foo () at /[...]/foo.adb:5 * 2 Thread 0x24618 (Ravenscar task) foo () at /[...]/foo.adb:5 The first thread is the only thread QEMU told GDB about. The second one is a thread that the ravenscar-thread added. QEMU has now way to know about those threads, since they are really embedded inside the program; that's why we have the ravenscar layer, which uses inside-knowledge to extract the list of threads. Next, we insert a watchpoint, which applies to all threads. No problem so far. Then, we continue; meaning that GDB sends a Z2 packet to QEMU to get the watchpoint inserted, then a vCont to resume the program's execution. The program hits the watchpoints, and thererfore QEMU reports it back: Packet received: T05thread:01;watch:000022c4; Since QEMU knows about one thread and one thread only, it stands to reason that it would say that the event applies to thread:01, which is our first thread in the "info threads" listing. That thread has a ptid of {42000, lwp=1, tid=0}. This is where Pedro's change kicks in: Seeing this event, and having determined that the event was reported for thread 01, and therefore ptid {42000, lwp=1, tid=0}, it saves the watchpoint-hit event info in the private area of that thread/ptid. Once this is done, remote.c's event-wait layer returns. Enter the ravenscar-thread layer of the event-wait, which does a little dance to delegate the wait to underlying layers with ptids that those layers know about, and then when the target_beneath's to_wait is done, tries to figure out which thread is now the active thread. The code looks like this: 1. inferior_ptid = base_ptid; 2. beneath->to_wait (beneath, base_ptid, status, 0); 3. [...] 4. ravenscar_update_inferior_ptid (); 5. 6. return inferior_ptid; Line 1 is where we reset inferior_ptid to the ptid that the target_beneath layer knows about, allowing us to then call its to_wait implementation (line 2). And then, upon return, we call ravenscar_update_inferior_ptid, which reads inferior memory to determine which thread is actually active, setting inferior_ptid accordingly. Then we return that inferior_ptid (which, again, neither QEMU and therefore nor the remote.c layer knows about). Upon return, we eventually arrive to the part where we try to handle the inferior event: we discover that we got a SIGTRAP and, as part of its handling, we call watchpoints_triggered, which calls target_stopped_by_watchpoint, which eventually remote_stopped_by_watchpoint, where Pedro's change kicks in again: struct thread_info *thread = inferior_thread (); return (thread->priv != NULL && thread->priv->stop_reason == TARGET_STOPPED_BY_WATCHPOINT); Because the ravenscar-thread layer changed the inferior_ptid to the ptid of the active thread, inferior_thread now returns the private data of that thread. This is not the thread that QEMU reported the watchpoint-hit on, and thus, the function returns "no watchpoint hit, mister". Hence GDB not understanding the SIGTRAP, thus reporting it verbatim. The way we chose to fix the issue is by making sure that the ravenscar-thread layer doesn't let the remote layer be called with inferior_ptid being set to a thread that the remote layer does not know about. gdb/ChangeLog: * ravenscar-thread.c (ravenscar_stopped_by_sw_breakpoint) (ravenscar_stopped_by_hw_breakpoint, ravenscar_stopped_by_watchpoint) (ravenscar_stopped_data_address, ravenscar_core_of_thread): New functions. (init_ravenscar_thread_ops): Set the to_stopped_by_sw_breakpoint, to_stopped_by_hw_breakpoint, to_stopped_by_watchpoint, to_stopped_data_address and to_core_of_thread fields of ravenscar_ops. commit d6251545e230b243abe60e334bb3f78c5e564fa1 Author: H.J. Lu Date: Tue Nov 21 13:41:10 2017 -0800 Add a test for PR binutils/22451 Check in the object file generated from the older assembler as a compressed file. PR binutils/22451 * testsuite/binutils-all/x86-64/objects.exp: New file. * testsuite/binutils-all/x86-64/pr22451.o.bz2: Likewise. commit ed0f427344d0befead629d9267aecd01bfb72721 Author: Ulrich Weigand Date: Tue Nov 21 18:50:59 2017 +0100 [PowerPC] Detect different long double floating-point formats Current versions of GCC support switching the format used for "long double" to either IBM double double or IEEE-128. The resulting binary is marked via different setting of the Tag_GNU_Power_ABI_FP GNU attribute. This patch checks this attribute to detect the format of the default "long double" type and sets GDB's notion of the format accordingly. The patch also adds support for the "__ibm128" type, which always uses IBM double double format independent of the format used for "long double". A new test case verifies that all three types, "long double", "__float128", and "__ibm128" are correctly detected in all three compiler settings, the default setting, -mabi=ieeelongdouble, and -mabi=ibmlongdouble. gdb/ChangeLog: 2017-11-21 Ulrich Weigand * ppc-tdep.h (enum powerpc_long_double_abi): New data type. (struct gdbarch_tdep): New member long_double_abi. * rs6000-tdep.c (rs6000_gdbarch_init): Initialize long_double_abi member of tdep struct based on Tag_GNU_Power_ABI_FP attribute. * ppc-linux-tdep.c (ppc_linux_init_abi): Install long double data format depending on long_double_abi tdep member. (ppc_floatformat_for_type): Handle __ibm128 type. gdb/testsuite/ChangeLog: 2017-11-21 Ulrich Weigand * gdb.arch/ppc-longdouble.exp: New file. * gdb.arch/ppc-longdouble.c: Likewise. commit a25d69c6dcbabf3f6629b847246ffb4ddbc29472 Author: Pedro Alves Date: Tue Nov 21 16:04:42 2017 +0000 gdb.ada/minsyms.exp: Don't hardcode the variable's address This new testcase has a test that fails like this here: $1 = ( *) 0x60208c (gdb) FAIL: gdb.ada/minsyms.exp: print &some_minsym The problem is that the testcase hardcodes an expected address for the "some_minsym" variable, which obviously isn't stable. Fix that by expecting $hex instead. gdb/testsuite/ChangeLog: 2017-11-21 Pedro Alves * gdb.ada/minsyms.exp: Accept any address for 'some_minsym'. commit 2824e1bd4fc93f112875969b1ba606980aaa55ba Author: Nick Clifton Date: Tue Nov 21 14:15:51 2017 +0000 Stop the v850 linker from converting to other output formats whilst linking. PR 22419 * emultempl/v850elf.em (v850_create_output_section_statements): New function. Generate an error if attempting to convert the format of the output file. * testsuite/ld-unique/pr21529.d: Skip for the V850. * testsuite/ld-elf/pr21884.d: Skip for the V850. commit bd560f571fe7a83755a17e7b5951e70f5e4c5039 Author: claziss Date: Tue Nov 21 15:04:22 2017 +0100 [ARC] [COMMITTED] Update test pattern patching. 2017-11-21 Claudiu Zissulescu * testsuite/binutils-all/arc/objdump.exp: Update pattern matching expression. commit 50d2740d562edc68b2fbcacc0585c3acfc2c302f Author: claziss Date: Tue Nov 21 14:03:03 2017 +0100 [ARC] Improve printing of pc-relative instructions. opcodes/ 2017-11-21 Claudiu Zissulescu * arc-dis.c (print_insn_arc): Pretty print pc-relative offsets. * arc-opc.c (SIMM21_A16_5): Make it pc-relative. gas/ 2017-11-21 Claudiu Zissulescu * testsuite/gas/arc/b.d : Update test. * testsuite/gas/arc/bl.d: Likewise. * testsuite/gas/arc/jli-1.d: Likewise. * testsuite/gas/arc/lp.d: Likewise. * testsuite/gas/arc/pcl-relocs.d: Likewise. * testsuite/gas/arc/pcrel-relocs.d: Likewise. * testsuite/gas/arc/pic-relocs.d: Likewise. * testsuite/gas/arc/plt-relocs.d: Likewise. * testsuite/gas/arc/pseudos.d: Likewise. * testsuite/gas/arc/relax-avoid2.d: Likewise. * testsuite/gas/arc/relax-avoid3.d: Likewise. * testsuite/gas/arc/relax-b.d: Likewise. * testsuite/gas/arc/tls-relocs.d: Likewise. * testsuite/gas/arc/relax-add01.d: Likewise. * testsuite/gas/arc/relax-add04.d: Likewise. * testsuite/gas/arc/relax-ld01.d: Likewise. * testsuite/gas/arc/relax-sub01.d: Likewise. * testsuite/gas/arc/relax-sub02.d: Likewise. * testsuite/gas/arc/relax-sub04.d: Likewise. * testsuite/gas/arc/pcl-print.s: New file. * testsuite/gas/arc/pcl-print.d: Likewise. * testsuite/gas/arc/nps400-12.d: Likewise. ld/ 2017-11-21 Claudiu Zissulescu * testsuite/ld-arc/jli-simple.d: Update test. commit d85bf2ba86fea1cf918f065d179b98eb4ddbde86 Author: Nick Clifton Date: Tue Nov 21 13:12:04 2017 +0000 Add ability to follow dwo links to readelf/objdump. * dwarf.c (dwo_name, dwo_dir, dwo_id, dwo_id_len): New variables. (read_and_display_attr_value): Record dwo variables if requested. (display_augmentation_data): Rename to display_data and make generic. (load_dwo_file): New function. Loads a separate dwarf object file. (load_separate_debug_file): Add reporting and loading of separate dwarf objet files. * readelf.c (process_section_headers): Add do_debug_links to list of flags requiring a debug dump. (display_debug_section): Tidy up code. * doc/debug.options.texi: Add note that dwo links will also be followed. * testsuite/binutils-all/debuglink.s: Tidy code. * testsuite/binutils-all/dwo.s: New test file. * testsuite/binutils-all/readelf.wk2: New file - expected output from readelf. * testsuite/binutils-all/readelf.exp: Run the new test. commit 0fc7642151cc5e62f05ac8ea91fe4d5b44bee11a Author: Simon Marchi Date: Mon Nov 20 23:29:10 2017 -0500 Fix build failure in darwin-nat.c Fix: /Users/simark/src/binutils-gdb/gdb/darwin-nat.c:2404:3: error: no matching function for call to 'add_setshow_boolean_cmd' add_setshow_boolean_cmd ("mach-exceptions", class_support, ^~~~~~~~~~~~~~~~~~~~~~~ gdb/ChangeLog: * darwin-nat.c (set_enable_mach_exceptions): Constify parameter. commit 0ee5a0e48314fec3522f7eabadd5fea920628077 Author: Alan Modra Date: Tue Nov 21 10:04:05 2017 +1030 Add NULL bfd test to elf_symbol_from A followup to PR22443. * elf-bfd.h (elf_symbol_from): Check for NULL symbol bfd. * elfcode.h (elf_slurp_reloc_table_from_section): Add FIXME comment. commit bf3d139947aa7f846b463db4a7c4b6059a183e11 Author: Alan Modra Date: Tue Nov 21 10:25:18 2017 +1030 xtensa error message * config/tc-xtensa.c (finish_vinsn): Avoid multiple ngettext calls in error message. commit e6b2f5efa97c7f3de8a3947c6782c40ec6172686 Author: Pedro Alves Date: Tue Nov 21 00:02:46 2017 +0000 Fix mapped_index::find_name_components_bounds upper bound computation Here we want to find where we'd insert "after", so we want std::lower_bound, not std::upper_bound. gdb/ChangeLog: 2017-11-21 Pedro Alves * dwarf2read.c (mapped_index::find_name_components_bounds) : Use std::lower_bound instead of std::upper_bound. (test_mapped_index_find_name_component_bounds): Remove incorrect "t1_fund" from expected symbols. commit 5c58de74c9acb346513c974fcdede270be2a77c3 Author: Pedro Alves Date: Tue Nov 21 00:02:46 2017 +0000 Unit test name-component bounds searching directly This commit factors out the name-components-vector building and bounds searching out of dw2_expand_symtabs_matching_symbol into separate functions, and adds unit tests that: - expose both the latent bug mentioned in the previous commit, and also, - for completeness exercise the 0xff character handling fixed in the previous commit more directly. The actual fix for the now-exposed bug is left for the following patch. gdb/ChangeLog: 2017-11-21 Pedro Alves * dwarf2read.c (mapped_index::name_components_casing): New field. (mapped_index) Date: Tue Nov 21 00:02:46 2017 +0000 0xff chars in name components table; cp-name-parser lex UTF-8 identifiers The find-upper-bound-for-completion algorithm in the name components accelerator table in dwarf2read.c increments a char in a string, and asserts that it's not incrementing a 0xff char, but that's incorrect. First, we shouldn't be calling gdb_assert on input. Then, if "char" is signed, comparing a caracther with "0xff" will never yield true, which is caught by Clang with: error: comparison of constant 255 with expression of type '....' (aka 'char') is always true [-Werror,-Wtautological-constant-out-of-range-compare] gdb_assert (after.back () != 0xff); ~~~~~~~~~~~~~ ^ ~~~~ And then, 0xff is a valid character on non-UTF-8/ASCII character sets. E.g., it's 'ÿ' in Latin1. While GCC nor Clang support !ASCII && !UTF-8 characters in identifiers (GCC supports UTF-8 characters only via UCNs, see https://gcc.gnu.org/onlinedocs/cpp/Character-sets.html), but other compilers might (Visual Studio?), so it doesn't hurt to handle it correctly. Testing is covered by extending the dw2_expand_symtabs_matching unit tests with relevant cases. However, without further changes, the unit tests still fail... The problem is that cp-name-parser.y assumes that identifiers are ASCII (via ISALPHA/ISALNUM). This commit fixes that too, so that we can unit test the dwarf2read.c changes. (The regular C/C++ lexer in c-lang.y needs a similar treatment, but I'm leaving that for another patch.) While doing this, I noticed a thinko in the computation of the upper bound for completion in dw2_expand_symtabs_matching_symbol. We're using std::upper_bound but we should use std::lower_bound. I extended the unit test with a case that I thought would expose it, this one: + /* These are used to check that the increment-last-char in the + matching algorithm for completion doesn't match "t1_fund" when + completing "t1_func". */ + "t1_func", + "t1_func1", + "t1_fund", + "t1_fund1", The algorithm actually returns "t1_fund1" as lower bound, so "t1_fund" matches incorrectly. But turns out the problem is masked because later here: for (;lower != upper; ++lower) { const char *qualified = index.symbol_name_at (lower->idx); if (!lookup_name_matcher.matches (qualified) the lookup_name_matcher.matches check above filters out "t1_fund" because that doesn't start with "t1_func". I'll fix the latent bug in follow up patches, after factoring things out a bit in a way that allows unit testing the relevant code more directly. gdb/ChangeLog: 2017-11-21 Pedro Alves * cp-name-parser.y (cp_ident_is_alpha, cp_ident_is_alnum): New. (symbol_end): Use cp_ident_is_alnum. (yylex): Use cp_ident_is_alpha and cp_ident_is_alnum. * dwarf2read.c (make_sort_after_prefix_name): New function. (dw2_expand_symtabs_matching_symbol): Use it. (test_symbols): Add more symbols. (run_test): Add tests. commit 9752982420bffb6cace1a25830a92db7fcd1dbd0 Author: GDB Administrator Date: Tue Nov 21 00:00:14 2017 +0000 Automatic date update in version.in commit 73fcf6418ddce47ead4ffde4fc9fea8e8bd1f4af Author: Pedro Alves Date: Mon Nov 20 23:03:17 2017 +0000 Fix gdb.base/whatis-ptype-typedefs.exp on 32-bit archs The gdb.base/whatis-ptype-typedefs.exp testcase has several tests that fail on 32-bit architectures. E.g., on 'x86-64 -m32', I see: ... FAIL: gdb.base/whatis-ptype-typedefs.exp: lang=c: cast: whatis (float_typedef) v_uchar_array_t_struct_typedef (invalid) FAIL: gdb.base/whatis-ptype-typedefs.exp: lang=c: cast: ptype (float_typedef) v_uchar_array_t_struct_typedef (invalid) ... gdb.log: (gdb) whatis (float_typedef) v_uchar_array_t_struct_typedef type = float_typedef (gdb) FAIL: gdb.base/whatis-ptype-typedefs.exp: lang=c: cast: whatis (float_typedef) v_uchar_array_t_struct_typedef (invalid) As Simon explained [1], the issue boils down to the fact that on 64-bit, this is an invalid cast: (gdb) p (float_typedef) v_uchar_array_t_struct_typedef Invalid cast. while on 32 bits it is valid: (gdb) p (float_typedef) v_uchar_array_t_struct_typedef $1 = 1.16251721e-41 The expression basically tries to cast an array (which decays to a pointer) to a float. The cast works on 32 bits because a float and a pointer are of the same size, and value_cast works in that case: ~~~ More general than a C cast: accepts any two types of the same length, and if ARG2 is an lvalue it can be cast into anything at all. */ ~~~ On 64 bits, they are not the same size, so it ends throwing the "Invalid cast" error. The testcase is expecting the invalid cast behavior, thus the FAILs. A point of these tests was to cover as many code paths in value_cast as possible, as a sort of documentation of the current behavior: # The main idea here is testing all the different paths in the # value casting code in GDB (value_cast), making sure typedefs are # preserved. ... # We try all combinations, even those that don't parse, or are # invalid, to catch the case of a regression making them # inadvertently valid. For example, these convertions are # invalid: ... In that spirit, this commit makes the testcase adjust itself depending on size of floats and pointers, and also test floats of different sizes. Passes cleanly on x86-64 GNU/Linux both -m64/-m32. [1] - https://sourceware.org/ml/gdb-patches/2017-11/msg00382.html gdb/ChangeLog: 2017-11-20 Pedro Alves * gdb.base/whatis-ptype-typedefs.c (double_typedef) (long_double_typedef): New typedefs. Use DEF on double and long double. * gdb.base/whatis-ptype-typedefs.exp: Add double and long double cases. (run_tests): New 'float_ptr_same_size', 'double_ptr_same_size', and 'long_double_ptr_same_size' locals. Use them to decide whether cast from array/function to float is valid/invalid. commit b77db948f4175e479bb3310ba86346c9554ab9f5 Author: Nick Clifton Date: Mon Nov 20 15:32:55 2017 +0000 Fix handling of GNU Property notes that are not in a GNU NOTE PROPERTY section. PR 22450 gas * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Skip objects without a GNU_PROPERTY note section when looking for a bfd onto which notes can be accumulated. ld * testsuite/ld-elf/elf.exp: Add --defsym ALIGN=2|3 to assembler command line depending upon the size of the target address space. * testsuite/ld-elf/pr22450.s: New test file. * testsuite/ld-elf/pr22450.d: New test driver. * testsuite/config/default.exp: Add note that LD_CLASS refers to the size of the host linker not the size of the target linker. commit b7486a74a62527412cfd2dd50a9a100118265c28 Author: Alan Modra Date: Mon Nov 20 22:04:30 2017 +1030 mingw gas testsuite fix Some x86_64 targets pad sections with nops. * testsuite/gas/i386/x86-64-reg-bad.l: Accept trailing padding. commit 28e07a0510ca896311014cddf125aedfd7a8cd52 Author: Alan Modra Date: Mon Nov 20 21:35:09 2017 +1030 PR22451, strip no longer works on older object files Setting SHF_GROUP unconditionally on rel/rela sections associated with SHF_GROUP sections fails badly with objcopy/strip and ld -r if the input file SHT_GROUP section didn't specify the rel/rela sections. This patch rearranges where SHF_GROUP is set for rel/rela sections. PR 22451 PR 22460 * elf.c (_bfd_elf_init_reloc_shdr): Delete "sec_hdr" parameter and leave rel_hdr->sh_flags zero. Update calls. (bfd_elf_set_group_contents): Check input rel/rela SHF_GROUP flag when !gas before adding rel/rela section to group. Set output rel/rela SHF_GROUP flags. commit 578290ecafb83e93f0ac695df586b65dac5e8c5d Author: Simon Marchi Date: Sun Nov 19 22:23:28 2017 -0500 Remove usage of find_inferior when calling kill_one_lwp_callback Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (kill_one_lwp_callback): Return void, take argument directly, don't filter on pid. (linux_kill): Use for_each_thread. commit eca55aec1d919b69e0d61c91367f8b4d25bc7c43 Author: Simon Marchi Date: Sun Nov 19 22:23:27 2017 -0500 Remove usages of find_thread when calling need_step_over_p Replace with find_thread. gdb/gdbserver/ChangeLog: * linux-low.c (need_step_over_p): Return bool, remove dummy argument. (linux_resume, proceed_all_lwps): Use find_thread. commit 25c28b4d153ced950cc8702aafb054d6f14f6a02 Author: Simon Marchi Date: Sun Nov 19 22:23:26 2017 -0500 Remove usage of find_thread when calling resume_status_pending_p Replace with find_thread. Instead of setting the flag in the callback, make the callback return true/false, and check the result against NULL in the caller. gdb/gdbserver/ChangeLog: * linux-low.c (resume_status_pending_p): Return bool, remove flag_p argument. (linux_resume): Use find_thread. commit 5fdda39248cc4a3311efbff3cf2350123d638232 Author: Simon Marchi Date: Sun Nov 19 22:23:26 2017 -0500 Remove usage of find_inferior when calling linux_set_resume_request Replace it with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (struct thread_resume_array): Remove. (linux_set_resume_request): Return void, take arguments directly. (linux_resume): Use for_each_thread. commit fcb056a58dd38cfe7bcd34b7889138bf807c40b8 Author: Simon Marchi Date: Sun Nov 19 22:23:25 2017 -0500 Remove usage of find_inferior in linux_stabilize_threads Simply replace with find_thread. gdb/gdbserver/ChangeLog: * linux-low.c (stuck_in_jump_pad_callback): Change prototype, return bool, remove data argument. (linux_stabilize_threads): Use find_thread. commit 139720c5b32963ce52c5f691e179920ff84a2237 Author: Simon Marchi Date: Sun Nov 19 22:23:24 2017 -0500 Remove usage of find_inferior in unsuspend_all_lwps Replace with for_each_thread. I inlined unsuspend_one_lwp in unsuspend_all_lwps, since it is very simple. gdb/gdbserver/ChangeLog: * linux-low.c (unsuspend_one_lwp): Remove. (unsuspend_all_lwps): Use for_each_thread, inline code from unsuspend_one_lwp. commit 6d1e5673fec830f0f1c86632a5d9333e34582bb3 Author: Simon Marchi Date: Sun Nov 19 22:23:23 2017 -0500 Remove usage of find_inferior in iterate_over_lwps Replace find_inferior with find_thread. Since it may be useful in the future, I added another overload to find_thread which filters based on a ptid (using ptid_t::matches), so now iterate_over_lwps doesn't have to do the filtering itself. iterate_over_lwps_filter is removed and inlined into iterate_over_lwps. gdb/gdbserver/ChangeLog: * gdbthread.h (find_thread): Add overload with ptid_t filter. * linux-low.c (struct iterate_over_lwps_args): Remove. (iterate_over_lwps_filter): Remove. (iterate_over_lwps): Use find_thread. commit bbf550d50e4c85666877456f014421089503e83b Author: Simon Marchi Date: Sun Nov 19 22:23:22 2017 -0500 Remove usage of find_inferior in reset_lwp_ptrace_options_callback Replace with for_each_thread, and inline code from reset_lwp_ptrace_options_callback. gdb/gdbserver/ChangeLog: * linux-low.c (reset_lwp_ptrace_options_callback): Remove. (linux_handle_new_gdb_connection): Use for_each_thread, inline code from reset_lwp_ptrace_options_callback. commit 00192f771796a144fe27f5f1d98d8e6f66976221 Author: Simon Marchi Date: Sun Nov 19 22:23:22 2017 -0500 Remove usages of find_inferior in linux-arm-low.c Replace two usages with the overload of for_each_thread that filters on pid. It allows to simplify the callback a little bit. gdb/gdbserver/ChangeLog: * linux-arm-low.c (struct update_registers_data): Remove. (update_registers_callback): Return void, take arguments directly, don't check thread's pid. (arm_insert_point, arm_remove_point): Use for_each_thread. commit 2bee2b6ca4cb1a736f963a168dd2ded2831c540d Author: Simon Marchi Date: Sun Nov 19 22:23:21 2017 -0500 Remove usage of find_inferior in win32-low.c Replace with for_each_thread. gdb/gdbserver/ChangeLog: * win32-low.c (continue_one_thread): Return void, take argument directly. (child_continue): Use for_each_thread. commit 0b360f1926cb15edc39c661dac2f1a433fb288c0 Author: Simon Marchi Date: Sun Nov 19 22:23:20 2017 -0500 Remove usage of find_inferior in win32-i386-low.c Straightforward replacement of find_inferior with the overload of for_each_thread that filters on pid. I am able to build-test this patch, but not run it. gdb/gdbserver/ChangeLog: * win32-i386-low.c (update_debug_registers_callback): Rename to ... (update_debug_registers): ... this, return void, remove pid_p arg. (x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread. commit 9c512d88c36689cffc3caf5875bc4a08b0ea05f4 Author: Cary Coutant Date: Sun Nov 19 18:02:31 2017 -0800 Fix typo in ChangeLog entry. commit 20dd9c210ef05fc6e87afe07670d8ceba530a1c5 Author: Cary Coutant Date: Sun Nov 19 17:56:30 2017 -0800 Fix DWARF reader to use correct size for DW_FORM_ref_addr. 2017-11-19 Ian Lance Taylor Cary Coutant gold/ * gold/dwarf_reader.h (class Dwarf_info_reader): Add ref_addr_size method. * gold/dwarf_reader.cc (Dwarf_die::read_attributes): Use ref_addr_size for DW_FORM_ref_addr_size. (Dwarf_die::skip_attributes): Likewise. commit bde954a064b0a983d1db37cec4777d576d7a9d56 Author: GDB Administrator Date: Mon Nov 20 00:00:30 2017 +0000 Automatic date update in version.in commit 671275c35e71d3bcdde173d8817e34e89b984241 Author: Jim Wilson Date: Sat Nov 18 17:03:08 2017 -0800 Fix error message typo. bfd/ * elfnn-riscv.c (_bfd_riscv_relax_align): Add space between alignment and to in error message. commit e4ec19878f7a6d99d87ec12cbd7b313062f64fbe Author: GDB Administrator Date: Sun Nov 19 00:00:28 2017 +0000 Automatic date update in version.in commit 160b1a618ad94988410dc81fce9189fcda5b7ff4 Author: Alan Modra Date: Sat Nov 18 23:18:22 2017 +1030 PR22443, Global buffer overflow in _bfd_elf_get_symbol_version_string Symbols like *ABS* defined in bfd/section.c:global_syms are not elf_symbol_type. They can appear on relocs and perhaps other places in an ELF bfd, so a number of places in nm.c and objdump.c are wrong to cast an asymbol based on the bfd being ELF. I think we lose nothing by excluding all section symbols, not just the global_syms. PR 22443 * nm.c (sort_symbols_by_size): Don't attempt to access section symbol internal_elf_sym. (print_symbol): Likewise. Don't call bfd_get_symbol_version_string for section symbols. * objdump.c (compare_symbols): Don't attempt to access section symbol internal_elf_sym. (objdump_print_symname): Don't call bfd_get_symbol_version_string for section symbols. commit c977a5f0280f29136631cf043d6ce6cfdbc47b99 Author: GDB Administrator Date: Sat Nov 18 00:00:10 2017 +0000 Automatic date update in version.in commit 033366417daedf6bf044608df1c7a8dfe01a0de2 Author: Jim Wilson Date: Fri Nov 17 14:47:52 2017 -0800 Finish fixing riscv gas lns-common-1 failure, and lns-duplicate. binutils/ * readelf.c (elf/riscv.h): Alphabetize include. (is_32bit_inplace_add_reloc, is_32bit_inplace_sub_reloc) (is_64bit_inplace_add_reloc, is_64bit_inplace_sub_reloc) (is_16bit_inplace_add_reloc, is_16bit_inplace_sub_reloc) (is_8bit_inplace_add_reloc, is_8bit_inplace_sub_reloc): New. (apply_relocations): New locals reloc_inplace and reloc_subtract. Call the new functions and set the new locals. Call byte_get if reloc_inplace. Subtract sym->st_value if reloc_subtract. commit cf724bc93ee954a6f7aac0557afc41c1316dc80c Author: Tom Tromey Date: Fri Nov 17 12:05:58 2017 -0700 Use an enum to represent subclasses of symbol This changes struct symbol to use an enum to encode the concrete subclass of a particular symbol. Note that "enum class" doesn't work properly with bitfields, so a plain enum is used. 2017-11-17 Tom Tromey * symtab.h (enum symbol_subclass_kind): New. (struct symbol) : Remove. : New member. (SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION): Update. * rust-lang.c (rust_get_trait_object_pointer): Update. * dwarf2read.c (read_func_scope): Update. (read_variable): Update. commit 68e745e38edebd2a12d60ef7b5774066db3f1c40 Author: Tom Tromey Date: Fri Nov 17 11:55:38 2017 -0700 Make template_symbol derive from symbol This changes template_symbol to derive from symbol, which seems a bit cleaner; and also more consistent with rust_vtable_symbol. 2017-11-17 Tom Tromey * dwarf2read.c (read_func_scope): Update. * symtab.h (struct template_symbol): Derive from symbol. : Remove. commit 71a3c36949407eafea744bf00334c4e0c136f927 Author: Tom Tromey Date: Thu Jul 6 06:44:38 2017 -0600 Handle dereferencing Rust trait objects In Rust, virtual tables work a bit differently than they do in C++. In C++, as you know, they are connected to a particular class hierarchy. Rust, instead, can generate a virtual table for potentially any type -- in fact, one such virtual table for each trait (a trait is similar to an abstract class or to a Java interface) that a type implements. Objects that are referenced via a trait can't currently be inspected by gdb. This patch implements the Rust equivalent of "set print object". gdb relies heavily on the C++ ABI to decode virtual tables; primarily to make "set print object" work; but also "info vtbl". However, Rust does not currently have a specified ABI, so this approach seems unwise to emulate. Instead, I've changed the Rust compiler to emit some DWARF that describes trait objects (previously their internal structure was opaque), vtables (currently just a size -- but I hope to expand this in the future), and the concrete type for which a vtable was emitted. The concrete type is expressed as a DW_AT_containing_type on the vtable's type. This is a small extension to DWARF. This patch adds a new entry to quick_symbol_functions to return the symtab that holds a data address. Previously there was no way in gdb to look up a full (only minimal) non-text symbol by address. The psymbol implementation of this method works by lazily filling in a map that is added to the objfile. This avoids slowing down psymbol reading for a feature that is likely to not be used too frequently. I did not update .gdb_index. My thinking here is that the DWARF 5 indices will obsolete .gdb_index soon-ish, meaning that adding a new feature to them is probably wasted work. If necessary I can update the DWARF 5 index code when it lands in gdb. Regression tested on x86-64 Fedora 25. 2017-11-17 Tom Tromey * symtab.h (struct symbol) : New member. (struct rust_vtable_symbol): New. (find_symbol_at_address): Declare. * symtab.c (find_symbol_at_address): New function. * symfile.h (struct quick_symbol_functions) : New member. * symfile-debug.c (debug_qf_find_compunit_symtab_by_address): New function. (debug_sym_quick_functions): Link to debug_qf_find_compunit_symtab_by_address. * rust-lang.c (rust_get_trait_object_pointer): New function. (rust_evaluate_subexp) : New case. Call rust_get_trait_object_pointer. * psymtab.c (psym_relocate): Clear psymbol_map. (psym_fill_psymbol_map, psym_find_compunit_symtab_by_address): New functions. (psym_functions): Link to psym_find_compunit_symtab_by_address. * objfiles.h (struct objfile) : New member. * dwarf2read.c (dwarf2_gdb_index_functions): Update. (process_die) : New case. Call read_variable. (rust_containing_type, read_variable): New functions. 2017-11-17 Tom Tromey * gdb.rust/traits.rs: New file. * gdb.rust/traits.exp: New file. commit 7468702dcb37013edbbbc62e247e23c4b2632379 Author: Simon Marchi Date: Fri Nov 17 13:02:25 2017 -0500 Remove DEF_VEC_I (int) Now that all its usages are removed, we can get rid of DEF_VEC_I (int). gdb/ChangeLog: * common/gdb_vecs.h (DEF_VEC_I (int)): Remove. commit f27866ba9c348a72a899f5a84dadf1f943c89720 Author: Simon Marchi Date: Fri Nov 17 13:02:25 2017 -0500 Make process_info::syscalls_to_catch an std::vector This patch makes the syscalls_to_catch field of process_info an std::vector. The process_info structure must now be newed/deleted. In handle_extended_wait, the code that handles exec events destroys the existing process_info and creates a new one. It moves the content of syscalls_to_catch from the old to the new vector. I used std::move for that (through an intermediary variable), which should have the same behavior as the old code. gdb/gdbserver/ChangeLog: * inferiors.h (struct process_info): Add constructor, initialize fields.. : Change type to std::vector. * inferiors.c (add_process): Allocate process_info with new. (remove_process): Free process_info with delete. * linux-low.c (handle_extended_wait): Adjust. (gdb_catching_syscalls_p, gdb_catch_this_syscall_p): Adjust. * server.c (handle_general_set): Adjust. commit 37269bc92ca6a79f9e56fe83718f3c86a1db845d Author: Simon Marchi Date: Fri Nov 17 13:02:24 2017 -0500 Make open_fds an std::vector Simple replacement of VEC with std::vector. gdb/ChangeLog: * common/filestuff.c: Include . (open_fds): Change type to std::vector. (do_mark_open_fd): Adjust. (unmark_fd_no_cloexec): Adjust. (do_close): Adjust. commit 5c632425957f0150a0d5d1e747f0425f74622132 Author: Simon Marchi Date: Fri Nov 17 13:02:23 2017 -0500 Make output_thread_groups take an std::vector A simple replacement of VEC with std::vector. gdb/ChangeLog: * breakpoint.c (output_thread_groups): Take an std::vector. (print_one_breakpoint_location): Adjust. commit ced9779b4c45b9bc9c16dd98fa30d7a620e93a55 Author: Joel Brobecker Date: Wed Nov 15 19:02:33 2017 -0500 (Ada) fix handling of minimal symbols (UNOP_CAST and UNOP_ADDR) Consider a program which provides a symbol without debugging information. For instance, compiling the following code without -g: Some_Minimal_Symbol : Integer := 1234; pragma Export (C, Some_Minimal_Symbol, "some_minsym"); Trying to print this variable with GDB now causes an error, which is now expected: (gdb) p some_minsym 'some_minsym' has unknown type; cast it to its declared type However, trying to cast this symbol, or to take its address does not work: (gdb) p integer(some_minsym) 'some_minsym' has unknown type; cast it to its declared type (gdb) p &some_minsym 'some_minsym' has unknown type; cast it to its declared type Another manisfestation of this issue can be seen when trying to insert an Ada exception catchpoint for a specific standard exception (this only occurs if the Ada runtime is built without debugging information, which is the default). For instance: $ (gdb) catch exception constraint_error warning: failed to reevaluate internal exception condition for catchpoint 0: 'constraint_error' has unknown type; cast it to its declared type This is because, internally, the cachtpoint uses a condition referencing a minimal symbol, more precisely: long_integer (e) = long_integer (&constraint_error) This patch fixes all issues listed above: 1. resolve_subexp: Special-case the handling of OP_VAR_MSYM_VALUE expression elements, where there are no ambiguities to be resolved in that situation; 2. ada_evaluate_subexp: Enhance the handling of the UNOP_CAST handling so as to process the case where the target of the cast is a minimal symbol (as well as a symbol with debugging information). This mimics what's done in C. gdb/ChangeLog: * ada-lang.c (resolve_subexp): Add handling of OP_VAR_MSYM_VALUE. (ada_evaluate_subexp_for_cast): New function. (ada_evaluate_subexp) : Replace code by call to ada_evaluate_subexp_for_cast. (ada_evaluate_subexp) : Replace code by call to eval_skip_value. * eval.c (evaluate_var_value): Make non-static. (evaluate_var_msym_value, eval_skip_value): Likewise. * value.h (evaluate_var_value, evaluate_var_msym_value) (eval_skip_value): Declare. gdb/testsuite/ChangeLog: * gdb.ada/minsyms: New testcase. Tested on x86_64-linux. No regression. Fixes the following failures: catch_ex.exp: continuing to Program_Error exception catch_ex.exp: continuing to failed assertion catch_ex.exp: continuing to unhandled exception catch_ex.exp: continuing to program completion complete.exp: p complete.exp: p Exported_Capitalized complete.exp: p exported_capitalized mi_catch_ex.exp: catch Program_Error (unexpected output) mi_catch_ex.exp: continue to exception catchpoint hit (unknown output after running) mi_catch_ex.exp: continue to assert failure catchpoint hit (unknown output after running) mi_catch_ex.exp: continue to unhandled exception catchpoint hit (unknown output after running) mi_ex_cond.exp: catch C_E if i = 2 (unexpected output) commit 3cfd3dd0956fe854a07795de12c1302ecabbd819 Author: Nick Clifton Date: Fri Nov 17 12:44:16 2017 +0000 Fix a memory leak when processing archives. PR 22449 * ar.c (write_archive): Free the temporary file name. commit 2c244f9b0935e577d7c20bb5706e27438e48227f Author: H.J. Lu Date: Fri Nov 17 04:09:12 2017 -0800 x86: Pass "%F%P:" to linker callback in case of error We should pass "%F%P:" to linker callback in case of error. Otherwise, linker will report: : failed to create GNU property section * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Pass "%F%P:", instead of "%F:", to linker callback in case of error. commit 6a6196fc71467e39e9009d6306ef13de008c6fe3 Author: Nick Clifton Date: Fri Nov 17 12:05:34 2017 +0000 Fix a snafu in a previous update to readelf that stopped it from printing archive member names along with the archive file name. -- This patch causes problems for glibc linknamespace tests because of how it changes the output format of readelf on .a files. Previously, "readelf -W -s libc.a" would produce output starting e.g.: File: /scratch/jmyers/glibc/many8/build/glibcs/x86_64-linux-gnu/glibc/libc.a(init-first.o) Symbol table '.symtab' contains 30 entries: and continuing with symbol information for each object in that .a file. After this commit, instead it starts: File: /scratch/jmyers/glibc/many8/build/glibcs/x86_64-linux-gnu/glibc/libc.a Symbol table '.symtab' contains 30 entries: and every object's symbol information starts with the same File: line, missing any information about which object's symbols (within libc.a) are being listed. I think the previous File: lines that said libc.a(init-first.o) etc., identifying the particular object within libc.a, were clearly preferable, and the glibc linknamespace tests rely on having that information about the individual object within libc.a. -- binutils * readelf.c (process_archive): Include member name in the file_name of the filedata structure. commit b7e228508255359e473611fdf7c067b0b79cadbe Author: Joel Brobecker Date: Thu Nov 16 16:15:13 2017 -0800 ada-lang.c::ada_value_cast: remove unused parameter noside gdb/ChangeLog: * ada-lang.c (ada_value_cast): Remove parameter "noside". Update all callers. commit fdfffb6ea04ab0e857e8bdc17841a7372b187bd0 Author: GDB Administrator Date: Fri Nov 17 00:00:18 2017 +0000 Automatic date update in version.in commit a0922d80dff15d4fbd5d469f56bcd1696846b90a Author: Pedro Alves Date: Thu Nov 16 18:44:44 2017 +0000 Test breakpoint commands w/ "continue" + Ctrl-C This adds the testcase that exposed the multiple problems with Ctrl-C handling fixed by the previous patches, when run against both native and gdbserver GNU/Linux. gdb/ChangeLog: 2017-11-16 Pedro Alves * gdb.base/bp-cmds-continue-ctrl-c.c: New file. * gdb.base/bp-cmds-continue-ctrl-c.exp: New file. commit 9ccabccd15603dbf9fe988c86708fe644d1398a7 Author: Pedro Alves Date: Thu Nov 16 18:44:44 2017 +0000 Python unwinder sniffer: PyExc_KeyboardInterrupt -> Quit If you happen to press Ctrl-C while GDB is running the Python unwinder machinery, the Ctrl-C is swallowed by the Python unwinder machinery. For example, with: break foo commands > c > end and while (1) foo (); and then let the inferior hit "foo" repeatedly, sometimes Ctrl-C results in: ~~~ 23 usleep (100); Breakpoint 2, foo () at gdb.base/bp-cmds-continue-ctrl-c.c:23 23 usleep (100); ^C Breakpoint 2, Python Exception : foo () at gdb.base/bp-cmds-continue-ctrl-c.c:23 23 usleep (100); Breakpoint 2, foo () at gdb.base/bp-cmds-continue-ctrl-c.c:23 23 usleep (100); Breakpoint 2, foo () at gdb.base/bp-cmds-continue-ctrl-c.c:23 23 usleep (100); ~~~ Notice the Python exception above. The interesting thing here is that GDB continues as if nothing happened, doesn't really stop and give back control to the user. Instead, the Ctrl-C aborted the Python unwinder sniffer and GDB moved on to just use another unwinder. Fix this by translating a PyExc_KeyboardInterrupt back into a Quit exception once back in GDB. This was exposed by the new gdb.base/bp-cmds-continue-ctrl-c.exp testcase added later in the series. gdb/ChangeLog: 2017-11-16 Pedro Alves * python/py-unwind.c (pyuw_sniffer): Translate PyExc_KeyboardInterrupt to a GDB Quit exception. commit d930703d68ae160ddfe8ebe5fdcf416fb6090e1e Author: Pedro Alves Date: Thu Nov 16 18:44:43 2017 +0000 Don't ever Quit out of resume If you have a breakpoint command that re-resumes the target, like: break foo commands > c > end and then let the inferior run, hitting the breakpoint, and then press Ctrl-C at just the right time, between GDB processing the stop at "foo", and re-resuming the target, you'll hit the QUIT call in infrun.c:resume. With this hack, we can reproduce the bad case consistently: --- a/gdb/inf-loop.c +++ b/gdb/inf-loop.c @@ -31,6 +31,8 @@ #include "top.h" #include "observer.h" +bool continue_hack; + /* General function to handle events in the inferior. */ void @@ -64,6 +66,8 @@ inferior_event_handler (enum inferior_event_type event_type, { check_frame_language_change (); + continue_hack = true; + /* Don't propagate breakpoint commands errors. Either we're stopping or some command resumes the inferior. The user will be informed. */ diff --git a/gdb/infrun.c b/gdb/infrun.c index d425664..c74b14c 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -2403,6 +2403,10 @@ resume (enum gdb_signal sig) gdb_assert (!tp->stop_requested); gdb_assert (!thread_is_in_step_over_chain (tp)); + extern bool continue_hack; + + if (continue_hack) + set_quit_flag (); QUIT; The GDB backtrace looks like this: (top-gdb) bt ... #3 0x0000000000612e8b in throw_quit(char const*, ...) (fmt=0xaf84a1 "Quit") at src/gdb/common/common-exceptions.c:408 #4 0x00000000007fc104 in quit() () at src/gdb/utils.c:748 #5 0x00000000006a79d2 in default_quit_handler() () at src/gdb/event-top.c:954 #6 0x00000000007fc134 in maybe_quit() () at src/gdb/utils.c:762 #7 0x00000000006f66a3 in resume(gdb_signal) (sig=GDB_SIGNAL_0) at src/gdb/infrun.c:2406 #8 0x0000000000700c3d in keep_going_pass_signal(execution_control_state*) (ecs=0x7ffcf3744e60) at src/gdb/infrun.c:7793 #9 0x00000000006f5fcd in start_step_over() () at src/gdb/infrun.c:2145 #10 0x00000000006f7b1f in proceed(unsigned long, gdb_signal) (addr=18446744073709551615, siggnal=GDB_SIGNAL_DEFAULT) at src/gdb/infrun.c:3135 #11 0x00000000006ebdd4 in continue_1(int) (all_threads=0) at src/gdb/infcmd.c:842 #12 0x00000000006ec097 in continue_command(char*, int) (args=0x0, from_tty=0) at src/gdb/infcmd.c:938 #13 0x00000000004b5140 in do_cfunc(cmd_list_element*, char*, int) (c=0x2d18570, args=0x0, from_tty=0) at src/gdb/cli/cli-decode.c:106 #14 0x00000000004b8219 in cmd_func(cmd_list_element*, char*, int) (cmd=0x2d18570, args=0x0, from_tty=0) at src/gdb/cli/cli-decode.c:1952 #15 0x00000000007f1532 in execute_command(char*, int) (p=0x7ffcf37452b1 "", from_tty=0) at src/gdb/top.c:608 #16 0x00000000004bd127 in execute_control_command(command_line*) (cmd=0x3a88ef0) at src/gdb/cli/cli-script.c:485 #17 0x00000000005cae0c in bpstat_do_actions_1(bpstat*) (bsp=0x37edcf0) at src/gdb/breakpoint.c:4513 #18 0x00000000005caf67 in bpstat_do_actions() () at src/gdb/breakpoint.c:4563 #19 0x00000000006e8798 in inferior_event_handler(inferior_event_type, void*) (event_type=INF_EXEC_COMPLETE, client_data=0x0) at src/gdb/inf-loop.c:72 #20 0x00000000006f9447 in fetch_inferior_event(void*) (client_data=0x0) at src/gdb/infrun.c:3970 #21 0x00000000006e870e in inferior_event_handler(inferior_event_type, void*) (event_type=INF_REG_EVENT, client_data=0x0) at src/gdb/inf-loop.c:43 #22 0x0000000000494d58 in remote_async_serial_handler(serial*, void*) (scb=0x3585ca0, context=0x2cd1b80) at src/gdb/remote.c:13820 #23 0x000000000044d682 in run_async_handler_and_reschedule(serial*) (scb=0x3585ca0) at src/gdb/ser-base.c:137 #24 0x000000000044d767 in fd_event(int, void*) (error=0, context=0x3585ca0) at src/gdb/ser-base.c:188 #25 0x00000000006a5686 in handle_file_event(file_handler*, int) (file_ptr=0x45997d0, ready_mask=1) at src/gdb/event-loop.c:733 #26 0x00000000006a5c29 in gdb_wait_for_event(int) (block=1) at src/gdb/event-loop.c:859 #27 0x00000000006a4aa6 in gdb_do_one_event() () at src/gdb/event-loop.c:347 #28 0x00000000006a4ade in start_event_loop() () at src/gdb/event-loop.c:371 and when that happens, you end up with GDB's run control in quite a messed up state. Something like this: thread_function1 (arg=0x1) at threads.c:107 107 usleep (SLEEP); /* Loop increment. */ Quit (gdb) c Continuing. ** nothing happens, time passes..., press ctrl-c again ** ^CQuit (gdb) info threads Id Target Id Frame 1 Thread 1462.1462 "threads" (running) * 2 Thread 1462.1466 "threads" (running) 3 Thread 1462.1465 "function0" (running) (gdb) c Cannot execute this command while the selected thread is running. (gdb) The first "Quit" above is thrown from within "resume", and cancels run control while GDB is in the middle of stepping over a breakpoint. with step_over_info_valid_p() true. The next "c" didn't actually resume anything, because GDB throught that the step-over was still in progress. It wasn't, because the thread that was supposed to be stepping over the breakpoint wasn't actually resumed. So at this point, we press Ctrl-C again, and this time, the default quit handler is called directly from the event loop (event-top.c:default_quit_handler -> quit()), because gdb was left owning the terminal (because the previous resume was cancelled before we reach target_resume -> target_terminal::inferior()). Note that the exception called from within resume ends up calling normal_stop via resume_cleanups. That's very borked though, because normal_stop is going to re-handle whatever was the last reported event, possibly even re-running a hook stop... I think that the only sane way to safely cancel the run control state machinery is to push an event via handle_inferior_event like all other events. The fix here does two things, and either alone would fix the problem at hand: #1 - passes the terminal to the inferior earlier, so that any QUIT call from the point we declare the target as running goes to the inferior directly, protecting run control from unsafe QUIT calls. #2 - gets rid of this QUIT call in resume and of its related unsafe resume_cleanups. Aboout #2, the comment describing resume says: /* Resume the inferior, but allow a QUIT. This is useful if the user wants to interrupt some lengthy single-stepping operation (for child processes, the SIGINT goes to the inferior, and so we get a SIGINT random_signal, but for remote debugging and perhaps other targets, that's not true). but that's a really old comment that predates a lot of fixes to Ctrl-C handling throughout both GDB core and the remote target, that made sure that a Ctrl-C isn't ever lost. In any case, if some target depended on this, a much better fix would be to make the target return a SIGINT stop out of target_wait the next time that is called. This was exposed by the new gdb.base/bp-cmds-continue-ctrl-c.exp testcase added later in the series. gdb/ChangeLog: 2017-11-16 Pedro Alves * infrun.c (resume_cleanups): Delete. (resume): No longer install a resume_cleanups cleanup nor call QUIT. (proceed): Pass the terminal to the inferior. (keep_going_pass_signal): No longer install a resume_cleanups cleanup. commit 38dc2859c464733314c591d30a5359db20167f7f Author: Pedro Alves Date: Thu Nov 16 18:44:43 2017 +0000 Fix stdin ending up not registered after a Quit If you press Ctrl-C while GDB is processing breakpoint commands the TRY/CATCH in inferior_event_handler catches the Quit exception and prints it, and then if the interpreter was running a foreground execution command, nothing re-adds stdin back in the event loop, meaning the debug session ends up busted, because the user can't type anything... This was exposed by the new gdb.base/bp-cmds-continue-ctrl-c.exp testcase added later in the series. gdb/ChangeLog: 2017-11-16 Pedro Alves * inf-loop.c (inferior_event_handler): Don't swallow the exception if the prompt is blocked. commit 688fca4fe6c83a6802731faa8455d177998d614d Author: Pedro Alves Date: Thu Nov 16 18:44:42 2017 +0000 Fix swallowed "Quit" when inserting breakpoints If GDB is inserting a breakpoint and you type Ctrl-C at the exact "right" time, you'll hit a QUIT call in target_read, and the breakpoint insertion is cancelled. However, the related TRY/CATCH code in insert_bp_location does: CATCH (e, RETURN_MASK_ALL) { bp_err = e.error; bp_err_message = e.message; } The problem with that is that a RETURN_QUIT exception has e.error == 0, which means that further below, in the places that check for error with: if (bp_err != GDB_NO_ERROR) because GDB_NO_ERROR == 0, GDB continues as if the breakpoint was inserted succesfully, and resumes the inferior. Since the breakpoint wasn't inserted the inferior runs free, out of our control... Fix this by having insert_bp_location store a copy of the whole exception instead of just a error/message parts, and then checking "gdb_exception::reason" instead. This was exposed by the new gdb.base/bp-cmds-continue-ctrl-c.exp testcase added later in the series. gdb/ChangeLog: 2017-11-16 Pedro Alves * breakpoint.c (insert_bp_location): Replace bp_err and bp_err_message locals by a gdb_exception local. commit e2c33ac745108550dcc2dc61d23378fb2fa9e911 Author: Pedro Alves Date: Thu Nov 16 18:44:42 2017 +0000 gdb/inflow.c: Move SIGTTOU temporary ignoring to a RAII class I expect to use this in more places (in inflow.c) in follow up patches, but I think this is still good on its own. gdb/ChangeLog: 2017-11-16 Pedro Alves * inflow.c (scoped_ignore_sigttou): New class. (child_terminal_ours_1, new_tty): Use it. commit ea04e54ca8b935b01155c3d40381d879dd6ba683 Author: Pedro Alves Date: Thu Nov 16 18:07:41 2017 +0000 Fix testing gdb.rust/modules.exp against gdbserver Currently several tests in gdb.rust/modules.exp fail with --target_board=native-gdbserver: Running src/gdb/testsuite/gdb.rust/modules.exp ... FAIL: gdb.rust/modules.exp: call f3() FAIL: gdb.rust/modules.exp: call self::f2() FAIL: gdb.rust/modules.exp: call self::super::f2() FAIL: gdb.rust/modules.exp: call super::f2() FAIL: gdb.rust/modules.exp: call self::super::super::f2() FAIL: gdb.rust/modules.exp: call super::super::f2() FAIL: gdb.rust/modules.exp: call ::f2() FAIL: gdb.rust/modules.exp: call extern modules::mod1::f2() This is because these tests rely on matching inferior output. However, when testing with gdbserver, inferior output goes to a separate terminal instead of to gdb's terminal, and so gdb_test won't cut it, as that is only reading from gdb's pty/gdb_spawn_id: (gdb) call f3() (gdb) FAIL: gdb.rust/modules.exp: call f3() call self::f2() (gdb) FAIL: gdb.rust/modules.exp: call self::f2() Fix this by using gdb_test_stdio instead, which handles output coming out of gdbserver's pty. Also, skip the tests if the target/board doesn't support inferior I/O at all. gdb/ChangeLog: 2017-11-16 Pedro Alves * gdb.rust/modules.exp: Skip tests that rely on inferior I/O if gdb,noinferiorio is set, and use gdb_test_stdio otherwise. commit d723696126beb185dc1f8f3196be7cb29948148d Author: Ulrich Weigand Date: Thu Nov 16 18:49:11 2017 +0100 Refactor endian handling in DFP routines This patch moves endian conversion into the decimal_from_number and decimal_to_number routines, and removes it from all their callers, making the code simpler overall. No functional change. gdb/ChangeLog: 2017-11-16 Ulrich Weigand * target-float.c (decimal_from_number): Add byte_order argument and call match_endianness. Error if unknown floating-point type. (decimal_to_number): Add byte_order argument and call match_endianness. (decimal_from_longest): Update call. Do not call match_endianness. (decimal_from_ulongest): Likewise. (decimal_binop): Likewise. (decimal_is_zero): Likewise. (decimal_compare): Likewise. (decimal_convert): Likewise. commit d0f7791c6659081f3a62e220289417c010997baa Author: Tamar Christina Date: Thu Nov 16 16:19:37 2017 +0000 Add new AArch64 FP16 FM{A|S} instructions. This patch separates the new FP16 instructions backported from Armv8.4-a to Armv8.2-a into a new flag order to distinguish them from the rest of the already existing optional FP16 instructions in Armv8.2-a. The new flag "+fp16fml" is available from Armv8.2-a and implies +fp16 and is mandatory on Armv8.4-a. gas/ * config/tc-aarch64.c (fp16fml): New. * doc/c-aarch64.texi (fp16fml): New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d (fp16): Make fp16fml. * testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d (fp16): Make fp16fml. include/ * opcode/aarch64.h: (AARCH64_FEATURE_F16_FML): New. (AARCH64_ARCH_V8_4): Enable AARCH64_FEATURE_F16_FML by default. opcodes/ * aarch64-tbl.h (aarch64_feature_fp_16_v8_2): Require AARCH64_FEATURE_F16_FML and AARCH64_FEATURE_F16. commit fadfa6b0020b934500356e7aea8934a4565657d3 Author: Tamar Christina Date: Thu Nov 16 16:15:51 2017 +0000 Correct AArch64 crypto dependencies. The crypto options depend on SIMD and FP, the documentation states so but the dependency is not there the code. We have mostly gotten away with this due to the default flags for the architectures (e.g. Armv8.2-a implies +simd) but this discrepancy needs to be addressed. gas/ 2017-11-16 Tamar Christina * opcodes/aarch64-tbl.h (aarch64_feature_crypto): Add ARCH64_FEATURE_SIMD and AARCH64_FEATURE_FP. (aarch64_feature_crypto_v8_2, aarch64_feature_sm4): Likewise. (aarch64_feature_sha3): Likewise. commit 68ffd9368a020fb685520da51f8c672c720869e4 Author: Tamar Christina Date: Thu Nov 16 16:13:01 2017 +0000 Update documentation for Arvm8.4-A changes to AArch64. gas/ 2017-11-16 Tamar Christina * doc/c-aarch64.texi (armv8.4-a, sha2, sha3, sm4): New. (dotprod): Update default note. commit e9dbdd80cb02ac66cf7d4cd1207ec11928db2c95 Author: Tamar Christina Date: Thu Nov 16 16:07:07 2017 +0000 Add assembler and disassembler support for the new Armv8.4-a instructions for AArch64. Some of these instructions have been back-ported as optional extensions to Armv8.2-a and higher, but others are only available for Armv8.4-a. opcodes/ * aarch64-tbl.h (sha512h, sha512h2, sha512su0, sha512su1, eor3): New. (rax1, xar, bcax, sm3ss1, sm3tt1a, sm3tt1b, sm3tt2a, sm3tt2b): New. (sm3partw1, sm3partw2, sm4e, sm4ekey, fmlal, fmlsl): New. (fmlal2, fmlsl2, cfinv, rmif, setf8, setf16, stlurb): New. (ldapurb, ldapursb, stlurh, ldapurh, ldapursh, stlur): New. (ldapur, ldapursw, stlur): New. * aarch64-dis-2.c: Regenerate. gas/ * testsuite/gas/aarch64/armv8_4-a-illegal.d: New. * testsuite/gas/aarch64/armv8_4-a-illegal.l: New. * testsuite/gas/aarch64/armv8_4-a-illegal.s: New. * testsuite/gas/aarch64/armv8_4-a.d: New. * testsuite/gas/aarch64/armv8_4-a.s: New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16.s: New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d: New. * testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d: New. * testsuite/gas/aarch64/armv8_4-a-crypto-fp16.d: New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.s: New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.l: New. * testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.d: New. commit e849ea896bcdc3da8caff02eb6dc91dc85dd8a7e Author: Pedro Alves Date: Thu Nov 16 14:58:51 2017 +0000 GDBserver: Fix ignored Ctrl-C after reconnection This fixes the issue reported by Dmitry Antipov here: https://sourceware.org/ml/gdb/2017-10/msg00048.html The problem is that GDBserver stops listening to Ctrl-C/interrupt requests if you disconnect and reconnect back. Dmitry wrote: ~~~ Currently gdbserver installs SIGIO handler just once, in initialize_async_io() called from captured_main(), and this handler is removed when remote_desc is closed in remote_close(). Next, when a new instance of remote_desc is fetched from accept() and has '\003' arrived, input_interrupt() is never called because it is not registered as SIGIO handler. ~~~ The fix here is not remove the SIGIO handler in the first place, thus going back to the original before-first-connection state. (I haven't gone back to try it, but I think this was a regression caused by commit 8b2073398477 ("[GDBserver] Block and unblock SIGIO"), which was what made remote_close remove the signal handler.) New test included. gdb/gdbserver/ChangeLog: 2017-11-16 Pedro Alves * remote-utils.c (remote_close): Block SIGIO signals instead of uninstalling the SIGIO handler. gdb/testsuite/ChangeLog: 2017-11-16 Pedro Alves * gdb.server/reconnect-ctrl-c.c: New file. * gdb.server/reconnect-ctrl-c.exp: New file. commit 80a0437873045cc08753fcac4af154e2931a99fd Author: Nick Clifton Date: Thu Nov 16 14:53:32 2017 +0000 Prevent illegal memory accesses when parsing incorrecctly formated core notes. PR 22421 * elf.c (elfcore_grok_netbsd_procinfo): Check that the note is big enough. (elfcore_grok_openbsd_procinfo): Likewise. (elfcore_grok_nto_status): Likewise. commit d8ae99a7b08e29e31446aee1e47e59943d7d9926 Author: Phil Muldoon Date: Thu Nov 16 14:14:03 2017 +0000 Add Python rbreak command. gdb/Changelog 2017-11-16 Phil Muldoon * python/python.c (gdbpy_rbreak): New function. * NEWS: Document Python rbreak feature. testsuite/Changelog 2017-11-16 Phil Muldoon * gdb.python/py-rbreak.exp: New file. * gdb.python/py-rbreak.c: New file. * gdb.python/py-rbreak-func2.c: New file. doc/Changelog 2017-11-16 Phil Muldoon * python.texi (Basic Python): Add rbreak documentation. commit 38b28f7088057d70497de7312cd983ec8e408a76 Author: Nick Clifton Date: Thu Nov 16 13:06:22 2017 +0000 Prevent a possible seg-fault in the section merging code, by always creating a padding buffer. * merge.c (sec_merge_emit): Always create padding buffer. Add asserts to make sure that the buffer is long enough. commit 5f847646eeb0107cb8c5e44c8bca3a4c88c91673 Author: Jan Beulich Date: Thu Nov 16 13:56:45 2017 +0100 x86: ignore high register select bit(s) in 32- and 16-bit modes While commits 9889cbb14e ("Check invalid mask registers") and abfcb414b9 ("X86: Ignore REX_B bit for 32-bit XOP instructions") went a bit into the right direction, this wasn't quite enough: - VEX.vvvv has its high bit ignored - EVEX.vvvv has its high bit ignored together with EVEX.v' - the high bits of {,E}VEX.vvvv should not be prematurely zapped, to allow proper checking of them when the fields has to hold al ones - when the high bits of an immediate specify a register, bit 7 is ignored commit 968a13f8362072b5f7eae8584d490b53d7f97ca5 Author: Pedro Alves Date: Thu Nov 16 11:57:01 2017 +0000 Fix gdb.base/starti.exp racy test This commit fixes a couple problems with gdb.base/starti.exp, causing spurious FAILs. The first is a double-prompt problem: ~~~ (gdb) PASS: gdb.base/starti.exp: hook-stop starti [....] gdb_expect_list pattern: /\$1 = 0/ $1 = 0 gdb_expect_list pattern: // 0x00007ffff7ddcc80 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) # EXPECTED PROMPT (gdb) PASS: gdb.base/starti.exp: starti # ANOTHER PROMPT! break main ~~~ This happens because the test uses gdb_test_sequence with no command, like this: gdb_test_sequence "" "starti" { "Program stopped." "\\$1 = 0" } but gdb_test_sequence doesn't have a check for empty command like gdb_test_multiple does, and so sends "\n" to GDB: proc gdb_test_sequence { command test_name expected_output_list } { global gdb_prompt if { $test_name == "" } { set test_name $command } lappend expected_output_list ""; # implicit ".*" before gdb prompt send_gdb "$command\n" return [gdb_expect_list $test_name "$gdb_prompt $" $expected_output_list] } "starti" is a no-repeat command, so pressing just makes another prompt appear, confusing the following gdb_test/gdb_test_multiple/etc. Even with that fixed, the testcase is still racy though. The second problem is that sometimes the "continue" test times out here: ~~~ continue Continuing. $2 = 1 gdb_expect_list pattern: /.*Breakpoint .*main \(\) at .*starti.c.*/ Breakpoint 1, main () at /home/pedro/src/gdb/testsuite/gdb.base/starti.c:29 29 return 0; (gdb) gdb_expect_list pattern: // * hung here * ~~~ The problem is that the too-greedy ".*" trailing match in gdb_expect_list's pattern ends up consuming GDB's prompt too soon. Fix that by removing the unnecessary trailing ".*". While at it, remove all ".*"s to be stricter. Tested on x86_64 GNU/Linux. gdb/testsuite/ChangeLog: 2017-11-16 Pedro Alves * gdb.base/starti.exp ("continue" test): Remove ".*"s from pattern. * lib/gdb.exp (gdb_test_sequence): Don't send empty command to GDB. commit c2b9da16088f8c500ab93e9a4e3001ab7393cb38 Author: Jan Beulich Date: Thu Nov 16 12:28:06 2017 +0100 ix86/Intel: don't require memory operand size specifier for PTWRITE Other than in 64-bit mode, in 32- and 16-bit modes operand size isn't ambiguous. commit 8c8cad3aa839747e368cc5db58331756a2b70e8e Author: H.J. Lu Date: Thu Nov 16 02:50:33 2017 -0800 i386: Replace .code64/.code32 with .byte Since .code64 directive isn't available for 32-bit BFD and ELF directive isn't available for non-ELF directive, we should avoid them. * testsuite/gas/i386/noextreg.s: Replace .code64/.code32 and 64-bit instructions with .byte. Remove ELF directive. commit c632b6456b1f220475fbf61f19ada28230449ff6 Author: Yao Qi Date: Thu Nov 16 10:17:25 2017 +0000 Remove non-linux tic6x target descriptions They are not used by GDB nor by GDBserver. This patch removes them. gdb: 2017-11-16 Yao Qi * features/tic6x-c62x.xml: Remove. * features/tic6x-c64x.xml: Remove. * features/tic6x-c64xp.xml: Remove. commit 1d0aa65c24f7c6406718cb506bed912aeec1d5c9 Author: Alan Hayward Date: Thu Nov 16 10:05:21 2017 +0000 Allow osabi to be optional in target descriptions gdbserver/ * tdesc.c (tdesc_get_features_xml): Allow null osabi. commit 3491a34c4f7de10dbd19c719052642d8471c45a6 Author: Yao Qi Date: Thu Nov 16 10:05:27 2017 +0000 Fix tic6x-uclinux GDBserver build failure I can't find a c6x-uclinux c++ compiler, so I use my host g++ to build tic6x-uclinux GDBserver, and find the following build failures. They are not target specific, so I believe they are real errors. This patch fixes them. ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:313:34: error: invalid conversion from 'void*' to 'tic6x_register*' [-fpermissive] union tic6x_register *regset = buf; ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c: In function 'void tic6x_store_gregset(regcache*, const void*)': ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:324:40: error: invalid conversion from 'const void*' to 'const tic6x_register*' [-fpermissive] const union tic6x_register *regset = buf; ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c: At global scope: ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:359:28: error: redefinition of 'usrregs_info tic6x_usrregs_info' static struct usrregs_info tic6x_usrregs_info = ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:186:28: note: 'usrregs_info tic6x_usrregs_info' previously declared here static struct usrregs_info tic6x_usrregs_info; ^ gdb/gdbserver: 2017-11-16 Yao Qi * linux-tic6x-low.c (tic6x_fill_gregset): Cast buf. (tic6x_store_gregset): Likewise. (tic6x_usrregs_info): Move it up. commit be7f7611881bae0fb9e26c892ecd61387d32542d Author: GDB Administrator Date: Thu Nov 16 00:00:23 2017 +0000 Automatic date update in version.in commit a014b87a9ac665d2b92cfc66384d1af3ddd345dd Author: John Baldwin Date: Wed Nov 15 11:36:42 2017 -0800 Include to declare std::array<>. gdb/ChangeLog: * symtab.h: Include . commit 9476501135dbbe1eb2e104ff219c7988920d23fc Author: John Baldwin Date: Wed Nov 15 11:35:15 2017 -0800 Constify the 'arg' passed to commands in bsd-kvm.c. gdb/ChangeLog: * bsd-kvm.c (bsd_kvm_cmd): Constify 'arg'. (bsd_kvm_proc_cmd): Likewise. commit 625ad4406d301f670b823a7767528f3ba7e292c6 Author: Simon Marchi Date: Wed Nov 15 09:22:48 2017 -0500 tui-win: Replace VEC with std::vector This patch replaces an instance of VEC (const_char_ptr) with std::vector. Tested by running gdb.tui/completion.exp, which exercises this function. gdb/ChangeLog: * tui/tui-win.c (window_name_completer): Replace VEC with std::vector. commit 71774bc994e3f2a09c3b1988dbf2e99b86f53e2e Author: Simon Marchi Date: Wed Nov 15 11:07:02 2017 -0500 Fix gdb.tui/completion.exp test When I run it locally, the test gdb.tui/completion.exp test fails because of a timeout: Running /home/emaisin/src/binutils-gdb/gdb/testsuite/gdb.tui/completion.exp ... FAIL: gdb.tui/completion.exp: completion of layout names: tab completion (timeout) The problem seems to be this regex, which confirms that after doing layout, "layout" is printed again after the gdb prompt: -re "^$input_line$" The problem is that there's a trailing space in the output after "layout". Since the regex has an anchored end (the $), it doesn't match. Adding a space fixes the test. gdb/testsuite/ChangeLog: * gdb.tui/completionn.exp (test_tab_completion): Add space in regex. commit 01f48020363f1ca9b31df2ee0b2afedc38db1259 Author: Tamar Christina Date: Wed Nov 15 15:56:23 2017 +0000 Separate the new FP16 instructions backported from Armv8.4-a to Armv8.2-a into a new flag order to distinguish them from the rest of the already existing optional FP16 instructions in Armv8.2-a. The new flag "+fp16fml" is available from Armv8.2-a and implies +fp16 and is mandatory from Armv8.4-a. gas/ * config/tc-arm.c (arm_ext_fp16_fml, fp16fml): New. (do_neon_fmac_maybe_scalar_long): Use arm_ext_fp16_fml. * doc/c-arm.texi (fp16, fp16fml): New. * testsuite/gas/arm/armv8_2-a-fp16.d (fp16): Make fp16fml. * testsuite/gas/arm/armv8_3-a-fp16.d (fp16): Make fp16fml. * testsuite/gas/arm/armv8_2-a-fp16-illegal.d (fp16): Make fp16fml. * testsuite/gas/arm/armv8_2-a-fp16-thumb2.d (fp16): Make fp16fml. include/ * opcode/arm.h: (ARM_EXT2_FP16_FML): New. (ARM_AEXT2_V8_4A): Add ARM_EXT2_FP16_FML. commit c0c11fa91dbbf91b9c9d04384fe9f3ef5a6e7145 Author: Andrew Cagney Date: Wed Nov 15 10:26:59 2017 -0500 Remove no-longer applicable maintainer entries 2017-11-15 Andrew Cagney * MAINTAINERS: Remove no-longer applicable entries. commit 34a7ebaff9e522913afba4e9cac9d8d5064e5480 Author: Andrew Cagney Date: Wed Nov 15 10:12:12 2017 -0500 Move self to Past Maintainers. 2017-11-15 Andrew Cagney * MAINTAINERS: Move self to Past Maintainers. commit 5334ef3907e2fbb98aef6839df23e41dccfaf701 Author: Yao Qi Date: Wed Nov 15 12:03:03 2017 +0000 Remove features/nios2-linux.c tdesc_nios2_linux is not used at all. Remove features/nios2-linux.c, and don't generate it anymore. gdb: 2017-11-15 Yao Qi * features/Makefile (XMLTOC): Remove nios2-linux.xml. * features/nios2-linux.c: Remove. * nios2-linux-tdep.c (_initialize_nios2_linux_tdep): Don't call initialize_tdesc_nios2_linux. commit be74fad95edc8827516e144cf38d135b503249cd Author: Alan Modra Date: Wed Nov 15 22:23:22 2017 +1030 objcopy memory leak PR 22426 * objcopy.c (copy_main): Free tmpname. commit a5065160868895e91cac8515263d9783f8120818 Author: Alan Modra Date: Wed Nov 15 22:16:08 2017 +1030 Handle ' and I format flags Also a little tidying and error checking. * bfd.c (union _bfd_doprnt_args): Add "Bad". (_bfd_doprnt): Handle more flags. (_bfd_doprnt_scan): Likewise. Tidy setting of args array. (error_handler_internal): Init args type to Bad. commit dda8d76d0dd2b07df769f6cae20aff483468b342 Author: Nick Clifton Date: Wed Nov 15 11:34:03 2017 +0000 Add support to readelf and objdump for following links to separate debug information files. Hi Guys, I am applying the rather large patch attached to this email to enhance the readelf and objdump programs so that they now have the ability to follow links to separate debug info files. (As requested by PR 15152). So for example whereas before we had this output: $ readelf -wi main.exe Contents of the .debug_info section: [...] <15> DW_AT_comp_dir : (alt indirect string, offset: 0x30c) [...] With the new option enabled we get: $ readelf -wiK main.exe main.exe: Found separate debug info file: dwz.debug Contents of the .debug_info section (loaded from main.exe): [...] <15> DW_AT_comp_dir : (alt indirect string, offset: 0x30c) /home/nickc/Downloads/dwzm [...] The link following feature also means that we can get two lots of output if the same section exists in both the main file and the separate debug info file: $ readelf -wiK main.exe main.exe: Found separate debug info file: dwz.debug Contents of the .debug_info section (loaded from main.exe): [...] Contents of the .debug_info section (loaded from dwz.debug): [...] The patch also adds the ability to display the contents of debuglink sections: $ readelf -wk main.exe Contents of the .gnu_debugaltlink section: Separate debug info file: dwz.debug Build-ID (0x14 bytes): c4 a8 89 8d 64 cf 70 8a 35 68 21 f2 ed 24 45 3e 18 7a 7a 93 Naturally there are long versions of these options (=follow-links and =links). The documentation has been updated as well, and since both readelf and objdump use the same set of debug display options, I have moved the text into a separate file. There are also a couple of new binutils tests to exercise the new behaviour. There are a couple of missing features in the current patch however, although I do intend to address them in follow up submissions: Firstly the code does not check the build-id inside separate debug info files when it is searching for a file specified by a .gnu_debugaltlink section. It just assumes that if the file is there, then it contains the information being sought. Secondly I have not checked the DWARF-5 version of these link features, so there will probably be code to add there. Thirdly I have only implemented link following for the DW_FORM_GNU_strp_alt format. Other alternate formats (eg DW_FORM_GNU_ref_alt) have yet to be implemented. Lastly, whilst implementing this feature I found it necessary to move some of the global variables used by readelf (eg section_headers) into a structure that can be passed around. I have moved all of the global variables that were necessary to get the patch working, but I need to complete the operation and move the remaining, file-specific variables (eg dynamic_strings). Cheers Nick binutils PR 15152 * dwarf.h (enum dwarf_section_display_enum): Add gnu_debuglink, gnu_debugaltlink and separate_debug_str. (struct dwarf_section): Add filename field. Add prototypes for load_separate_debug_file, close_debug_file and open_debug_file. * dwarf.c (do_debug_links): New. (do_follow_links): New. (separate_debug_file, separate_debug_filename): New. (fetch_alt_indirect_string): New function. Retrieves a string from the debug string table in the separate debug info file. (read_and_display_attr_value): Use it with DW_FORM_GNU_strp_alt. (load_debug_section_with_follow): New function. Like load_debug_section, but if the first attempt fails, then tries again in the separate debug info file. (introduce): New function. (process_debug_info): Use load_debug_section_with_follow and introduce. (load_debug_info): Likewise. (display_debug_lines_raw): Likewise. (display_debug_lines_decoded): Likewise. (display_debug_macinfo): Likewise. (display_debug_macro): Likewise. (display_debug_abbrev): Likewise. (display_debug_loc): Likewise. (display_debug_str): Likewise. (display_debug_aranges): Likewise. (display_debug_addr); Likewise. (display_debug_frames): Likewise. (display_gdb_index): Likewise. (process_cu_tu_index): Likewise. (load_cu_tu_indexes): Likewise. (display_debug_links): New function. Displays the contents of a .gnu_debuglink or .gnu_debugaltlink section. (calc_gnu_debuglink_ctc32):New function. Calculates a CRC32 value. (check_gnu_debuglink): New function. Checks the CRC of a potential separate debug info file. (parse_gnu_debuglink): New function. Reads a CRC value out of a .gnu_debuglink section. (check_gnu_debugaltlink): New function. (parse_gnu_debugaltlink): New function. Reads the build-id value out of a .gnu_debugaltlink section. (load_separate_debug_info): New function. Finds and loads a separate debug info file. (load_separate_debug_file): New function. Attempts to find and follow a link to a separate debug info file. (free_debug_memory): Free the separate debug info file information. (opts_table): Add "follow-links" and "links". (dwarf_select_sections_by_letters): Add "k" and "K". (debug_displays): Reformat. Add .gnu-debuglink and .gnu_debugaltlink. Add an extra entry for .debug_str in a separate debug info file. * doc/binutils.texi: Move description of debug dump features common to both readelf and objdump into... * objdump.c (usage): Add -Wk and -WK. (load_specific_debug_section): Initialise the filename field in the dwarf_section structure. (close_debug_file): New function. (open_debug_file): New function. (dump_dwarf): Load and dump the separate debug info sections. * readelf.c (struct filedata): New structure. Contains various variables that used to be global: (current_file_size, string_table, string_table_length, elf_header) (section_headers, program_headers, dump_sects, num_dump_sects): Move into filedata structure. (cmdline): New global variable. Contains list of sections to dump by number, as specified on the command line. Add filedata parameter to most functions. (load_debug_section): Load the string table if it has not already been retrieved. (close_file): New function. (close_debug_file): New function. (open_file): New function. (open_debug_file): New function. (process_object): Process sections in any separate debug info files. * doc/debug.options.texi: New file. Add description of =links and =follow-links options. * NEWS: Mention the new feature. * elfcomm.c: Have the byte gte functions take a const pointer. * elfcomm.h: Update prototypes. * testsuite/binutils-all/dw5.W: Update expected output. * testsuite/binutils-all/objdump.WL: Update expected output. * testsuite/binutils-all/objdump.exp: Add test of -WK and -Wk. * testsuite/binutils-all/readelf.exp: Add test of -wK and -wk. * testsuite/binutils-all/readelf.k: New file. * testsuite/binutils-all/objdump.Wk: New file. * testsuite/binutils-all/objdump.WK2: New file. * testsuite/binutils-all/linkdebug.s: New file. * testsuite/binutils-all/debuglink.s: New file. gas * testsuite/gas/avr/large-debug-line-table.d: Update expected output. * testsuite/gas/elf/dwarf2-11.d: Likewise. * testsuite/gas/elf/dwarf2-12.d: Likewise. * testsuite/gas/elf/dwarf2-13.d: Likewise. * testsuite/gas/elf/dwarf2-14.d: Likewise. * testsuite/gas/elf/dwarf2-15.d: Likewise. * testsuite/gas/elf/dwarf2-16.d: Likewise. * testsuite/gas/elf/dwarf2-17.d: Likewise. * testsuite/gas/elf/dwarf2-18.d: Likewise. * testsuite/gas/elf/dwarf2-5.d: Likewise. * testsuite/gas/elf/dwarf2-6.d: Likewise. * testsuite/gas/elf/dwarf2-7.d: Likewise. ld * testsuite/ld-avr/gc-section-debugline.d: Update expected output. commit a602f924c8e281d40868844b0f0747fadff3f29a Author: Alan Hayward Date: Wed Nov 15 09:59:12 2017 +0000 Better make rule for arch/ files built for IPA gdbserver/ * Makefile.in: Update arch rules. * configure.srv: Explicitly mark arch/ files. commit a714b0d6928ba195623ec2825b00c446939f6e59 Author: Yao Qi Date: Wed Nov 15 09:36:51 2017 +0000 Fix M68HC11_NUM_REGS M68HC11_LAST_HARD_REG is 8, but m68hc11 register number is started from 0, so there are 9 raw registers, but M68HC11_NUM_REGS is 8 by mistake. My following unit test can find this issue (GDB is built with asan) ================================================================= ==15555==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000113150 at pc 0x51393f bp 0x7fffcec36f60 sp 0x7fffcec36f58 WRITE of size 2 at 0x602000113150 thread T0 #0 0x51393e in m68hc11_pseudo_register_read gdb/m68hc11-tdep.c:320 #1 0xc4b620 in gdbarch_pseudo_register_read(gdbarch*, regcache*, int, unsigned char*) gdb/gdbarch.c:1974 #2 0xddad88 in regcache::cooked_read(int, unsigned char*) gdb/regcache.c:710 #3 0xddff2b in cooked_read_test gdb/regcache.c:1850 #4 0xdf8cfb in selftests::gdbarch_selftest::operator()() const gdb/selftest-arch.c:73 gdb: 2017-11-15 Yao Qi * m68hc11-tdep.c (M68HC11_NUM_REGS): Change it to M68HC11_LAST_HARD_REG + 1. commit 390a67891e4f1ed334e266cf084ba8948da5fcdf Author: Jan Beulich Date: Wed Nov 15 08:52:05 2017 +0100 x86: use correct register names VEX.W may be legitimately set (and is then ignored by the CPU) for non-64-bit code. Don't print 64-bit register names in such a case, by utilizing that REX_W would never be set for non-64-bit code, and that it is being set from VEX.W by generic decoding. A test for this is going to be introduced in the next patch of this series. commit 3a2430e05b1503653ae09cb21feb2a0d4ea51ec7 Author: Jan Beulich Date: Wed Nov 15 08:51:03 2017 +0100 x86: drop VEXI4_Fixup() The low four bits of an immediate being set when the high bits specify a fourth register operand is not a problem: CPUs ignore these bits rather than raising #UD. Take care of incrementing codep in OP_EX_VexW() instead. commit 0645f0a2a75ad77d9786595978591d3f302f9647 Author: Jan Beulich Date: Wed Nov 15 08:48:51 2017 +0100 x86-64: don't allow use of %axl as accumulator Just like %cxl can't be used as shift count register. Otherwise for consistency %cxl would need to gain "ShiftCount" and use of both ought to properly cause REX prefixes to be emitted. commit 99847db8ea741f895d79b9312114c13ccb660d83 Author: Alan Modra Date: Wed Nov 15 11:35:21 2017 +1030 ld einfo positional arg support To allow translators to reorder values in translated strings. This should mean that all binutils messages now have support for reordering. Note to translators: Not all % letters take arguments, so for example the following only has two arguments, the two %s strings. "%P%F: output format %s cannot represent section called %s: %E\n" You could reorder this if you liked to: "%P%F: %E: section %2$s cannot be represented in output format %1$s\n" einfo lacks support for flags, field width, precision and length modifier (apart from %ld and %lu) so don't try to use them in translations. Both ld and bfd lack support to use a positional arg twice. These features could be added if needed.. * ldmisc.c (vfinfo): Support up to 9 positional args. commit 583712f5ab935948b6c28f1b8b686308f0652ddf Author: Jim Wilson Date: Tue Nov 14 17:23:14 2017 -0800 First part of fix for riscv gas lns-common-1 failure. gas/ * testsuite/gas/lns/lns.exp (lns-common-1): Add riscv*-*-* to alt list. commit 4fbd5513b100b94b6b9fdb51975f79c38b6b1040 Author: Jim Wilson Date: Tue Nov 14 17:07:32 2017 -0800 Add modified file I missed in last commit. commit 754842fba3981b8d9d4d516d6cfc65d3992fa4b2 Author: Jim Wilson Date: Tue Nov 14 17:02:43 2017 -0800 Fix riscv ld testsuite failure for compressed1d. ld/ * testsuite/ld-elf/compress1-alt.s: New. * testsuite/ld-elf/compressed1d-alt.d: New. * testsuite/ld-elf/compressed1d.d: Add riscv*-*-* to notarget list. commit 47f19c17d6eaa45dc756a057c299a5194ad0b75c Author: GDB Administrator Date: Wed Nov 15 00:00:25 2017 +0000 Automatic date update in version.in commit 92ffd475192030a46a6046177c732372b4dadad5 Author: Paul Carroll Date: Tue Nov 14 17:37:37 2017 -0500 Fix 'xfered>0' assertion in target.c for remote connection We have a customer who is using a Corelis gdb server to connect to gdb. Occasionally, the gdb server will send a 0-byte block of memory for a read. When this happens, gdb gives an assertion from target.c: internal-error: target_xfer_partial: Assertion `*xfered_len > 0' failed. This problem is almost identical to that fixed in https://sourceware.org/ml/gdb-patches/2014-02/msg00636.html In this case, remote.c needs to be modified to return TARGET_XFER_EOF instead of TARGET_XFER_OK or TARGET_XFER_UNAVAILABLE when 0 bytes are transferred. gdb/ChangeLog: PR gdb/22388 * remote.c (remote_write_bytes_aux, remote_read_bytes_1, remote_read_bytes, remote_write_qxfer, remote_xfer_partial): Return TARGET_XFER_EOF if size of returned data is 0. commit 074319087452e3a8b1a0e84279a82555dd798d69 Author: Simon Marchi Date: Tue Nov 14 16:42:08 2017 -0500 Fix mem region parsing regression and add test In my patch Get rid of VEC (mem_region) a664f67e50eff30198097d51cec0ec4690abb2a1 I introduced a regression, where the length of the memory region is assigned to the "hi" field. It should obviously be computed as "start + length". To my defense, no test had caught this :). As a penance, I wrote one. gdb/ChangeLog: * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add memory-map-selftests.c. (SUBDIR_UNITTESTS_OBS): Add memory-map-selftests.o. * memory-map.c (memory_map_start_memory): Fix computation of hi address. * unittests/memory-map-selftests.c: New file. commit 06bcf5416feae129e239476ab1408e038bba171d Author: Alan Modra Date: Tue Nov 14 18:47:34 2017 +1030 PR22431, powerpc64 ld segfault when .plt discarded The fix for the PR is to not use input_section->output_section->owner to get to the output bfd, but use the output bfd directly since it is available nowadays in struct bfd_link_info. I thought it worth warning when non-empty dynamic sections are discarded too, which meant a tweak to one of the ld tests to avoid the warning. bfd/ PR 22431 * elf64-ppc.c (ppc64_elf_size_dynamic_sections): Warn on discarding non-empty dynamic section. (ppc_build_one_stub): Take elf_gp from output bfd, not output section owner. (ppc_size_one_stub, ppc64_elf_next_toc_section): Likewise. ld/ * testsuite/ld-elf/note-3.t: Don't discard .got. commit 640d0ed874167d73b11dfbf5e838c65cc43e6a63 Author: Alan Modra Date: Sun Nov 12 17:41:50 2017 +1030 ld-ifunc non-PIC tests * testsuite/ld-ifunc/ifunc.exp: Ensure non-PIC tests are really not PIE by default gcc options. commit be92cb147d77d0ebc6a084a18627d800a9da9f95 Author: Jan Beulich Date: Tue Nov 14 08:43:26 2017 +0100 x86: add disassembler support for XOP VPCOM* pseudo-ops Matching up with the assembler, which already supports them. commit 2645e1d0798da9487def06d14bb744c33dba702d Author: Jan Beulich Date: Tue Nov 14 08:42:26 2017 +0100 x86: add support for AVX-512 VPCMP*{B,W} pseudo-ops ... matching up with VPCMP*{D,Q}. commit df145ef65632dbc6bb31f8d01a088f8600b6c7f1 Author: Jan Beulich Date: Tue Nov 14 08:40:48 2017 +0100 x86: string insns don't allow displacements Remove the misleading indicators from the table. commit 2d0d44d514d9a2e2b0f7ae8129d52b02160c9897 Author: Alan Modra Date: Tue Nov 14 11:02:57 2017 +1030 Inconsistent .eh_frame_hdr on powerpc64 There is code in bfd/elf-eh-frame.c and ld/emultempl/elf32.em that checks for the presence of eh_frame info by testing for a section named .eh_frame sized more than 8 bytes. The size test is to exclude a zero terminator. A similar check in elf64-ppc.c wrongly just tested for non-zero size before creating the linker generated .eh_frame describing plt call and other linkage stubs. The intention was to not generate that info unless there was some user .eh_frame. (No user .eh_frame implies the user doesn't care about exception handling.) Because the test in elf64-ppc.c was wrong, ld generated the stub .eh_frame just on finding a zero .eh_frame terminator in crtend.o, but didn't generate the corresponding .eh_frame_hdr. * elf64-ppc.c (ppc64_elf_size_stubs): Correct test for user .eh_frame info. commit ddbb44cf366b652dc9edf2ccd4605f1ed0e2e62d Author: Simon Marchi Date: Mon Nov 13 22:06:02 2017 -0500 gdb.opt/inline-locals.exp: Remove trailing parentheses in test names Test names should not end with parentheses, since the buildbot strips those. gdb/testsuite/ChangeLog: * gdb.opt/inline-locals.exp: Remove trailing parentheses from test names. commit 8f8a20af3ff322f868ce8adfeb86c6f698265a2a Author: GDB Administrator Date: Tue Nov 14 00:00:24 2017 +0000 Automatic date update in version.in commit 58e6cc77b7605e26cbf3fccc166089c01ceee95f Author: H.J. Lu Date: Mon Nov 13 08:19:10 2017 -0800 ld: Replace exp_dataseg_none with exp_seg_none * emultempl/ppc32elf.em (ppc_before_allocation): Replace exp_dataseg_none with exp_seg_none. * emultempl/ppc64elf.em (prelim_size_sections): Likewise. * emultempl/spuelf.em (spu_before_allocation): Likewise. commit 5616b6c32f7454987ae167ba35589e095c0172fc Author: Andreas Schwab Date: Mon Nov 13 15:46:09 2017 +0100 Enable hardware single step for m68k in GDBServer * linux-m68k-low.c (m68k_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. commit 5b2b928e83538b23eb1b3f585b14c3d6cf1bfd7e Author: Jan Beulich Date: Mon Nov 13 12:27:45 2017 +0100 gas/arm64: don't emit stack pointer symbol table entries Without this change, all of mov z0.b, p0/m, wsp mov z0.b, wsp mov z0.d, p0/m, sp mov z0.d, sp insert stray symbols into the symbol table. commit 6465780617638ce65bd7458e30b34ebdc1a99f52 Author: Jan Beulich Date: Mon Nov 13 12:26:48 2017 +0100 gas/ia64: fix testsuite failures Commit dd90581873 ("Place .shstrtab section after .symtab and .strtab, thus restoring monotonically incre... ") adjusted section numbers, but forgot to adjust sh_link references from relocation and group section table entries. Additionally some other (perhaps subsequent) change appears to have added .rel.* and .rela.* sections to their respective groups, which requires some further adjustments to group-2.d. I assume this additional breakage wasn't noticed because the test was already failing at that time. This makes the gas testsuite complete successfully again for me in a cross build on ix86-linux; there continue to be quite a few ld failures. commit 5be87c8fa74c9ae6684bea571b4157ad1966d008 Author: Jan Beulich Date: Mon Nov 13 12:26:12 2017 +0100 PE: don't corrupt section flags when linking from ELF objects Linking EFI executables from ELF object files can result in corrupted COFF section flags if the section's alignment is too high. Issue a diagnostic in that case, erroring out if this is not a final link, and make sure only in-range values get written to the output image. While doing this also make tic80 use the generic alignment macros instead of custom #ifdef-ary. No testsuite regressions for the range of COFF/PE targets that actually cross-build in the first place on x86-64-linux. commit b76bc5d54e36f15efd954898d9aa075c2bea02dd Author: Jan Beulich Date: Mon Nov 13 12:22:21 2017 +0100 x86: don't default variable shift count insns to 8-bit operand size Just like %dx in I/O instructions isn't suitable to derive operand size information, %cl source operands of shift instructions aren't. commit 897e603cb98c50968ea21d1b3baac5bc020ccc06 Author: Jan Beulich Date: Mon Nov 13 12:21:29 2017 +0100 x86: {f,}xsave64 / {f,}xrstor64 / xsaveopt64 should not allow q suffix Just like is the case for xsave{s,c}64 and xrstors64 already. I wonder though why xsave{s,c} and xrstors don't allow for the q suffix, other than the other insns without the "64" suffix do. commit 1187cf29b1f77b4d806c3bbe1fcd86fc7387eeb9 Author: Jan Beulich Date: Mon Nov 13 12:20:30 2017 +0100 x86/Intel: don't mistake riz/eiz as base register Just like we make rsp/esp a base register even if it comes second, make riz/eiz an index register even if it comes first. commit 2abc2bec4d8c241c1cd3972b64162407128b4daf Author: Jan Beulich Date: Mon Nov 13 12:19:34 2017 +0100 x86-64/Intel: issue diagnostic for out of range displacement ... rather than silently dropping it altogether. i386_finalize_displacement() expects baseindex to already be set, so the respective statement needs to be moved up. This then also allows a subsequent conditional to be simplified. For this to not regress on 32-bit addressing, break out address size guessing from i386_index_check(), invoking the new function earlier so that i386_finalize_displacement() has i.prefix[ADDR_PREFIX] available. i386_addressing_mode () in turn needs i.base_reg / i.index_reg set earlier. commit ed1794ee7a2bd8adc22e5bb8e7343b72758d5692 Author: H.J. Lu Date: Sat Nov 11 07:02:30 2017 -0800 ld: Add ldlang_check_relro_region/update lang_find_relro_sections_1 Extract GNU_RELRO region check into a new funtion and pass a pointer to seg_align_type to lang_find_relro_sections_1 so that they can also be used for text-only LOAD segment. * ldlang.c (lang_size_sections_1): Extract GNU_RELRO region check into ... (ldlang_check_relro_region): New function. (lang_find_relro_sections_1): Add an argument for pointer to seg_align_type and replace expld.dataseg with the pointer. (lang_find_relro_sections): Pass address of expld.dataseg to lang_find_relro_sections_1. commit f4d18a54667ded2b50894a3d0740f93825f2a3e8 Author: H.J. Lu Date: Sun Nov 12 17:23:22 2017 -0800 cl commit cba6246d3ad332ab353afeff0016b195ffc69e05 Author: H.J. Lu Date: Sun Nov 12 17:22:15 2017 -0800 ld: Add lang_size_relro_segment Break lang_size_sections down into separate functions so that they can also be used for text-only LOAD segment. lang_size_relro_segment will call lang_size_relro_segment_1 and lang_size_segment for both GNU_RELRO segment and text-only LOAD segment. * ldlang.c (lang_size_segment): New function. (lang_size_relro_segment_1): Likewise. (lang_size_relro_segment): Likewise. (lang_size_sections): Rewrite to call lang_size_relro_segment. commit d7475e036f69ff7ac78252db74a65fe4d617c4ee Author: H.J. Lu Date: Sun Nov 12 17:20:09 2017 -0800 ld: Add fold_segment_align/fold_segment_relro_end/fold_segment_end Extract DATA_SEGMENT_END/DATA_SEGMENT_ALIGN/DATA_SEGMENT_RELRO_END cases for GNU_RELRO segment into separate functions so that they can also be used for text-only LOAD segment. * ldexp.c (fold_unary): Extract the DATA_SEGMENT_END case to ... (fold_segment_end): New function. (fold_binary): Extract the DATA_SEGMENT_ALIGN case to ... (fold_segment_align): New function. (fold_binary): Extract the DATA_SEGMENT_RELRO_END case to ... (fold_segment_relro_end): New function. commit 0f99513f2a52b7d73b94a1f77b8c6de9159b50d7 Author: H.J. Lu Date: Sun Nov 12 17:17:47 2017 -0800 ld: Update phase_enum/relro_enum and add seg_align_type Update GNU_RELRO date type so that they can also be used for text-only LOAD segment. * ldexp.h (phase_enum): Rename exp_dataseg_none, exp_dataseg_align_seen, exp_dataseg_relro_seen, exp_dataseg_end_seen, exp_dataseg_relro_adjust, exp_dataseg_adjust and exp_dataseg_done to exp_seg_none, exp_seg_align_seen, exp_seg_relro_seen, exp_seg_end_seen, exp_seg_relro_adjust, exp_seg_adjust and exp_seg_done. (relro_enum): Rename exp_dataseg_relro_none, exp_dataseg_relro_start and exp_dataseg_relro_end to exp_seg_relro_none, exp_seg_relro_start and exp_seg_relro_end. (seg_align_type): New struct type. (ldexp_control): Use seg_align_type. * ldexp.c (fold_unary): Updated. (fold_binary): Likewise. * ldlang.c (strip_excluded_output_sections): Likewise. (lang_size_sections_1): Likewise. (lang_size_sections): Likewise. commit f882209d9aa5b68d68c45c5849e129ffc228749c Author: H.J. Lu Date: Sun Nov 12 17:03:50 2017 -0800 ld: Remove PF_X from PT_PHDR segment It was reasonable to mark PT_PHDR segment with PF_X for compatibility with UnixWare and Solaris linkers 20 years ago. But it is inappropriate today when the primary OS of GNU ld is Linux. This patch removes PF_X from PT_PHDR segment as gold does. Tested natively on Linux/x86 as well as crosss-binutils for alpha-linux, ia64-linux, powerpc64-linux, powerpc-linux, s390-linux, s390x-linux, sparc64-linux and sparc-linux. bfd/ PR ld/22423 * elf.c (_bfd_elf_map_sections_to_segments): Remove PF_X from PT_PHDR segment. ld/ PR ld/22423 * testsuite/ld-alpha/tlsbin.rd: Replace "R E " with "R +" for PT_PHDR segment. * testsuite/ld-alpha/tlsbinr.rd: Likewise. * testsuite/ld-ia64/tlsbin.rd: Likewise. * testsuite/ld-powerpc/tlsexe.r: Likewise. * testsuite/ld-powerpc/tlsexe32.r: Likewise. * testsuite/ld-powerpc/tlsexetoc.r: Likewise. * testsuite/ld-s390/tlsbin.rd: Likewise. * testsuite/ld-s390/tlsbin_64.rd: Likewise. * testsuite/ld-sparc/tlssunbin32.rd: Likewise. * testsuite/ld-sparc/tlssunbin64.rd: Likewise. * testsuite/ld-elf/pr22423.d: New test. commit 53892e6d2395b818554b825cabf6129fed7e2aae Author: GDB Administrator Date: Mon Nov 13 00:00:24 2017 +0000 Automatic date update in version.in commit ce3ad333570333287842ed20f55220534ad4a025 Author: H.J. Lu Date: Sun Nov 12 07:25:26 2017 -0800 ld: Add OTHER_PLT_SECTIONS OTHER_PLT_SECTIONS contains sections which should be placed right after .plt section. * emulparams/elf32_x86_64.sh (TINY_READONLY_SECTION): Renamed to ... (OTHER_PLT_SECTIONS): This. * emulparams/elf_i386.sh: Likewise. * emulparams/elf_iamcu.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * scripttempl/elf.sc: Place ${OTHER_PLT_SECTIONS} just after .plt. commit e3e53eed9c2f1ab82ae4a7683f474b4f6eb162c7 Author: Alan Modra Date: Sun Nov 12 14:12:41 2017 +1030 weakdef list handling The existing code allowed common and indirect symbols to pass an assert, but then read root.u.def which is not valid for anything besides defined and weakdef symbols. The garbage root.u.def.section pointer read can't possibly match pointers stored at the same location for indirect and common symbols, so we would always have left u.weakdef NULL. * elflink.c (elf_link_add_object_symbols): Ignore anything but defined and defweak symbols when setting up weakdefs. commit 529fe20eeb0030ea5d653d0ebec433f9e3145874 Author: Alan Modra Date: Sun Nov 12 17:44:15 2017 +1030 non_got_ref after adjust_dynamic_relocs This patch was aimed at a FIXME in elf32-hppa.c, the ludicrous and confusing fact that non_got_ref after adjust_dynamic_relocs in that backend means precisely the inverse of what it means before adjust_dynamic_relocs. Before, when non_got_ref is set it means there are dynamic relocs, after, if non_got_ref is clear it means "keep dynamic relocs" and later, "has dynamic relocs". There is a reason why it was done that way.. Some symbols that may have dynamic relocations pre-allocated in check_relocs turn out to not be dynamic, and then are not seen by the backend adjust_dynamic_symbols. We want those symbols to lose their dynamic relocs when non-pic, so it's handy that non_got_ref means the opposite after adjust_dynamic_relocs. But it's really confusing. Most other targets, like ppc32, don't always set non_got_ref on non-GOT references that have dynamic relocations. This is because the primary purpose of non_got_ref before adjust_dynamic_relocs is to flag symbols that might need to be copied to .dynbss, and there are relocation types that may require dyn_relocs but clearly cannot have symbols copied into .dynbss, for example, TLS relocations. Why do we need a flag after adjust_dynamic_relocs to say "keep dynamic relocations"? Well, you can discard most unwanted dyn_relocs in the backend adjust_dynamic_relocs, and for those symbols that aren't seen by the backend adjust_dynamic_relocs, in allocate_dynrelocs based on a flag set by adjust_dynamic relocs, dynamic_adjusted. That doesn't solve all our difficulties though. relocate_section needs to know whether a symbol has dyn_relocs, and many targets transfer dyn_relocs to a weakdef if the symbol has one. The transfer means relocate_section can't test dyn_relocs itself and the weakdef field has been overwritten by that time. So non_got_ref is used to flag "this symbol has dynamic relocations" for relocate_section. Confused still? Well, let's hope the comments I've added help clarify things.. The patch also fixes a case where we might wrongly emit dynamic relocations in an executable for common and undefined symbols. * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Set non_got_ref to keep dyn_relocs, clear to discard. Comment. (allocate_dynrelocs): Always clear non_got_ref when clearing dyn_relocs in non-pic case. Invert non_got_ref test. Also test dynamic_adjusted and ELF_COMMON_DEF_P. Move code deleting dyn_relocs on undefined syms to handle for non-pic too. (elf32_hppa_relocate_section): Simplify test for non-pic dyn relocs. * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Set non_got_ref to keep dyn_relocs, clear to discard. Comment. (allocate_dynrelocs): Always clear non_got_ref when clearing dyn_relocs in non-pic case. Invert non_got_ref test. Also test dynamic_adjusted and ELF_COMMON_DEF_P. Move code deleting dyn_relocs on undefined syms to handle for non-pic too. (ppc_elf_relocate_section): Simplify test for non-pic dyn relocs. * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Discard dyn_relocs here. Don't bother setting non_got_ref. Comment. (allocate_dynrelocs): Delete special handling of non-pic ELFv2 ifuncs. Move code deleting dyn_relocs on undefined symbols to handle for non-pic too. Don't test non_got_ref. Do test dynamic_adjusted and ELF_COMMON_DEF_P. commit d95639024585ce43e8fe0557ac85e706452e1515 Author: GDB Administrator Date: Sun Nov 12 00:00:18 2017 +0000 Automatic date update in version.in commit f617a0f6ceeb34dfd39d8673b0ab225c9127aab6 Author: Jim Wilson Date: Fri Nov 10 19:24:45 2017 -0800 Fix riscv binutils xfail for debug_ranges test. binutils/ * testsuite/binutils-all/objdump.exp: Expect the debug_ranges test to pass. commit 9080294593eee9e09625e62b2201da57ee150e11 Author: GDB Administrator Date: Sat Nov 11 00:00:20 2017 +0000 Automatic date update in version.in commit 09a5b18a6ae9fc5ad30f88d646b7f7313a14929e Author: GDB Administrator Date: Fri Nov 10 00:00:28 2017 +0000 Automatic date update in version.in commit 584a564f366de16d1cecd1910ab0be8ca6167415 Author: Pedro Alves Date: Thu Nov 9 22:44:10 2017 +0000 Fix racy output matching in gdb.tui/tui-completion.exp 'make check-read1 TESTS="gdb.tui/tui-completion.exp"' exposes this test race: (gdb) PASS: gdb.tui/completion.exp: set max-completions unlimited layout ^G asm next prev regs split src (gdb) FAIL: gdb.tui/completion.exp: completion of layout names: tab completion Quit (gdb) PASS: gdb.tui/completion.exp: completion of layout names: quit command input focus ^G cmd next prev src (gdb) FAIL: gdb.tui/completion.exp: completion of focus command: tab completion Quit This is caused by expecting "$gdb_prompt layout $". gdb_test_multiple's internal prompt regexp can match first if expect's internal buffer is filled with partial output. Fix that by splitting the gdb_test_multiple in question in two. Since the same problem/code appears twice in the file, factor out a common procedure. gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.tui/tui-completion.exp (test_tab_completion): New procedure, factored out from ... (top level): ... here, and adjusted to avoid expecting beyond the prompt in a single gdb_test_multiple. commit 5ed7a928acc231ccd13af71cf6df9900250cf884 Author: Pedro Alves Date: Thu Nov 9 22:44:09 2017 +0000 Fix racy output matching in gdb.base/multi-attach.exp, gdb.server/ext-{attach, restart, ext-run}.exp This commit fixes this same problem in several places: (gdb) PASS: gdb.multi/multi-attach.exp: backtrace 2 kill Kill the program being debugged? (y or n) y (gdb) FAIL: gdb.multi/multi-attach.exp: kill inferior 2 (got interactive prompt) This is just another case of the gdb_test_multiple's internal "got interactive prompt" pattern matching because the testcase misses matching enough. gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.multi/multi-attach.exp ("kill" test): Match the whole query output. * gdb.server/ext-attach.exp ("kill" test): Likewise. * gdb.server/ext-restart.exp ("kill" test): Likewise. * gdb.server/ext-run.exp ("kill" test): Likewise. * gdb.server/ext-wrapper.exp ("kill" test): Likewise. commit a60e07381c812ab82aff9abae203fd192f460ef4 Author: Pedro Alves Date: Thu Nov 9 22:44:09 2017 +0000 Fix racy output matching in gdb.base/cpcompletion.exp With: $ make check-read1 TESTS="gdb.cp/cpcompletion.exp" we get (from gdb.log): (gdb) complete break Foo:: break Foo::Foo() break Foo::Foofoo() break Foo::get_foo() break Foo::set_foo(int) break Foo::~Foo() (gdb) FAIL: gdb.cp/cpcompletion.exp: complete class methods (Foo not found) The problem is that the "break ${class}::\[A-Za-z0-9_~\]+" regexp patches partial input, like: break Foo::F break Foo::Fo break Foo::Foo etc. Fix that by expecting each whole line. gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.cp/cpcompletion.exp (test_class_complete): Tighten regex to match till end of line. commit 2c88253fc469fbf40be7f0d1f7060b81055f2eb1 Author: Pedro Alves Date: Thu Nov 9 22:44:08 2017 +0000 Fix racy output matching in gdb.base/memattr.exp Testing with: $ make check-read1 TESTS="gdb.base/memattr.exp" Exposes a testcase bug that can result in racy fails: info mem Using user-defined memory regions. Num Enb Low Addr High Addr Attrs 1 y 0x0000000000601060 0x0000000000601160 wo nocache 2 y 0x0000000000601180 0x0000000000601280 ro nocache 4 y 0x0000000000601280 0x0000000000601380 rw nocache 3 y 0x0000000000601380 0x0000000000601480 rw nocache 5 y 0x0000000000601480 0x0000000000601580 rw nocache (gdb) FAIL: gdb.base/memattr.exp: info mem (1) The problem is that: "Attrs\[^\n\r]*.." matches: "Attrs \r" when the output buffer is filled with partial output like this: "info mem\r\nUsing user-defined memory regions.\r\nNum Enb Low Addr High Addr Attrs \r" gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.base/memattr.exp: Tighten regexes to match the end line. commit c7a3851716f98540396b9e02be7d2fcd3bff2d29 Author: Pedro Alves Date: Thu Nov 9 22:44:08 2017 +0000 Fix racy output matching in gdb.base/completion.exp Testing with: $ make check-read1 TESTS="gdb.base/completion.exp" Exposes a testcase bug that can result in racy fails: FAIL: gdb.base/completion.exp: command-name completion limiting using tab character ERROR: Undefined command "". FAIL: gdb.base/completion.exp: symbol-name completion limiting using tab character FAIL: gdb.base/completion.exp: symbol-name completion limiting using complete command testsuite/gdb.log shows: (gdb) PASS: gdb.base/completion.exp: set max-completions 5 p^G passcount path print print-object printf *** List may be truncated, max-completions reached. *** (gdb) FAIL: gdb.base/completion.exp: command-name completion limiting using tab character pcomplete p Undefined command: "pcomplete". Try "help". (gdb) ERROR: Undefined command "". The problem is that the expect buffer can get filled with partial output that ends in the gdb prompt, and so the default FAIL inside gdb_test_multiple matches. Fix that by splitting the gdb_test_multiple in two stages. Since that is done in more than one place in the testcase, move the otherwise duplicate code to helper procedures. gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.base/completion.exp (ignore_and_resync, test_tab_complete): New procedures, factored out from ... (top level): ... here, and adjusted to avoid expecting beyond the prompt in one go. commit f29f4b6ba198674096fddf2aa38fa8d028d387b2 Author: Pedro Alves Date: Thu Nov 9 22:44:08 2017 +0000 Fix racy output matching in gdb.asm/asm-source.exp Testing with: $ make check-read1 TESTS="gdb.asm/asm-source.exp" Exposes a testcase bug that can result in racy fails: (gdb) PASS: gdb.asm/asm-source.exp: next over foo3 return Make selected stack frame return now? (y or n) y n #0 main () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.asm/asmsrc1.s:53 53 gdbasm_exit0 (gdb) FAIL: gdb.asm/asm-source.exp: return from foo2 (got interactive prompt) n The problem is that the "return now\?.*" regex can match partial output like this: "Make selected stack frame return no" and then we send the 'y' too early, and then the next time around we hit gdb_test_multiple's internal "got interactive prompt" regex. Also, note we match "return no" instead of "return now" because the regex is missing one quote level. gdb/testsuite/ChangeLog: 2017-11-09 Pedro Alves * gdb.asm/asm-source.exp ("kill" test): Match the whole query output. Fix '?' match. commit fb24d531e9ef7ad7831ca62298d21684717cbe38 Author: H.J. Lu Date: Thu Nov 9 14:36:51 2017 -0800 ld: Reformat emultempl/elf32.em Reformat emultempl/elf32.em to generate consistent codes. * emultempl/elf32.em (gld${EMULATION_NAME}_get_script): Reformat to generate consistent codes. commit 31432a672fd40058a714eb2791ea1c3168ccc4f1 Author: Joel Brobecker Date: Thu Nov 9 11:58:37 2017 -0800 fix typos in ada-lang.c comment gdb/ChangeLog: * ada-lang.c: Fix some typos in the general command documenting how Ada expressions are being evaluated and how their result is printed. commit 52c6b71b65139cad73ada8df81293fd645eac173 Author: Jim Wilson Date: Thu Nov 9 09:43:59 2017 -0800 Fix riscv dwarf2-10 gas testsuite failure. gas/ * testsuite/gas/elf/dwarf2-10.l: Accept optional line number in error. commit 981b557a488f7c3179dee1e34515ca9b10cf885c Author: Tamar Christina Date: Thu Nov 9 15:50:56 2017 +0000 Enable the Dot Product extension by default for Armv8.4-a. include/ * opcode/aarch64.h (AARCH64_ARCH_V8_4): Enable DOTPROD. gas/testsuite * gas/aarch64/dotproduct_armv8_4.s: New. * gas/aarch64/dotproduct_armv8_4.d: New. commit 793a194839bc8add71fdc7429c58b10f0667a6f6 Author: Tamar Christina Date: Thu Nov 9 15:48:43 2017 +0000 Add assembler and disassembler support for the new Armv8.4-a registers for AArch64. Some of these instructions have been back-ported as optional extensions to Armv8.2-a and higher, but others are only available for Armv8.4-a. opcodes/ * aarch64-opc.c (aarch64_sys_regs): Add ARMv8.4-a registers; dit, vstcr_el2, vsttbr_el2, cnthvs_tval_el2, cnthvs_cval_el2, cnthvs_ctl_el2, cnthps_tval_el2, cnthps_cval_el2, cnthps_ctl_el2, sder32_el2, vncr_el2. (aarch64_sys_reg_supported_p): Likewise. (aarch64_pstatefields): Add dit register. (aarch64_pstatefield_supported_p): Likewise. (aarch64_sys_regs_tlbi): Add vmalle1os, vae1os, aside1os, vaae1os, vale1os, vaale1os, ipas2e1os, ipas2le1os, vae2os, vale2os, vmalls12e1os, vae3os, vale3os, alle2os, alle1os, alle3os, rvae1, rvaae1, rvale1, rvaale1, rvae1is, rvaae1is, rvale1is, rvaale1is, rvae1os, rvaae1os, rvale1os, rvaale1os, ripas2e1is, ripas2le1is, ripas2e1, ripas2le1, ripas2e1os, ripas2le1os, rvae2, rvale2, rvae2is, rvale2is, rvae2os, rvale2os, rvae3, rvale3, rvae3is, rvale3is, rvae3os, rvale3os. gas/testsuite * gas/aarch64/armv8_4-a-registers-illegal.d: New. * gas/aarch64/armv8_4-a-registers-illegal.l: New. * gas/aarch64/armv8_4-a-registers-illegal.s: New. * gas/aarch64/armv8_4-a-registers.d: New. * gas/aarch64/armv8_4-a-registers.s: New. commit 1a7ed57c840dcb0401f1a67c6763a89f7d2686d2 Author: Tamar Christina Date: Thu Nov 9 15:45:00 2017 +0000 Add the operand encoding types for the new Armv8.2-a back-ported instructions. These are to be used later when the new instructions are added. opcodes/ * aarch64-tbl.h (QL_SHA512UPT, QL_V2SAME2D, QL_V3SAME2D): New. (QL_V4SAME16B, QL_V4SAME4S, QL_XAR, QL_SM3TT, QL_V3FML2S): New. (QL_V3FML4S, QL_V2FML2S, QL_V2FML4S, QL_RMIF, QL_SETF): New. (QL_STLW, QL_STLX): New. commit f42f1a1d6ca0cc84e43d7f2b85044a2565ca00f2 Author: Tamar Christina Date: Thu Nov 9 15:22:30 2017 +0000 Adds the new Fields and Operand types for the new instructions in Armv8.4-a. gas/ * config/tc-aarch64.c (process_omitted_operand): Add AARCH64_OPND_Va, AARCH64_OPND_SM3_IMM2 and AARCH64_OPND_IMM_2. (parse_operands): Add AARCH64_OPND_Va, AARCH64_OPND_SM3_IMM2, AARCH64_OPND_IMM_2, AARCH64_OPND_MASK and AARCH64_OPND_ADDR_OFFSET. include/ * opcode/aarch64.h: (aarch64_opnd): Add AARCH64_OPND_Va, AARCH64_OPND_MASK, AARCH64_OPND_IMM_2, AARCH64_OPND_ADDR_OFFSET and AARCH64_OPND_SM3_IMM2. (aarch64_insn_class): Add cryptosm3 and cryptosm4. (arch64_feature_set): Make uint64_t. opcodes/ * aarch64-asm.h (ins_addr_offset): New. * aarch64-asm.c (aarch64_ins_reglane): Add cryptosm3. (aarch64_ins_addr_offset): New. * aarch64-asm-2.c: Regenerate. * aarch64-dis.h (ext_addr_offset): New. * aarch64-dis.c (aarch64_ext_reglane): Add cryptosm3. (aarch64_ext_addr_offset): New. * aarch64-dis-2.c: Regenerate. * aarch64-opc.h (aarch64_field_kind): Add FLD_imm6_2, FLD_imm4_2 and FLD_SM3_imm2. * aarch64-opc.c (fields): Add FLD_imm6_2, FLD_imm4_2 and FLD_SM3_imm2. (operand_general_constraint_met_p): Add AARCH64_OPND_ADDR_OFFSET. (aarch64_print_operand): Add AARCH64_OPND_Va, AARCH64_OPND_SM3_IMM2, AARCH64_OPND_MASK, AARCH64_OPND_IMM_2 and AARCH64_OPND_ADDR_OFFSET. * aarch64-opc-2.c (Va, MASK, IMM_2, ADDR_OFFSET, SM3_IMM2): New. * aarch64-tbl.h (aarch64_opcode_table): Add Va, MASK, IMM_2, ADDR_OFFSET, SM3_IMM2. commit e793c052f9d9548442a46817998a46cbca4ccb70 Author: Tom Tromey Date: Thu Nov 2 12:48:44 2017 -0600 Simplify the psymbol hash function This patch simplifies the psymbol_hash function, by changing it not to examine the contents of the symbol's name. This change just mirrors what psymbol_compare already does -- it is checking for name equality, which is ok because symbol names are interned in symbol_set_names. This change speeds up psymbol reading. "gdb -nx -batch gdb" previously took ~1.8 seconds on my machine, and with this patch it now takes ~1.7 seconds. gdb/ChangeLog 2017-11-09 Tom Tromey * psymtab.c (psymbol_hash): Do not hash string contents. (psymbol_compare): Add comment. commit 7e8835c5f44931d02ecd8c8ba3d167e891981d24 Author: Tom Tromey Date: Wed Nov 1 11:15:06 2017 -0600 Speed up dict_hash This speeds up dict_hash a bit, by moving the "TKB" check into the switch in the loop. For "gdb -nx -readnow -batch gdb", this improves the time from ~9.8s before to ~8.5s afterward. gdb/ChangeLog 2017-11-09 Tom Tromey * dictionary.c (dict_hash): Move "TKB" check into the "switch". commit b6b9ca0c3ec9589d0dd40b2b86ba748a361b48eb Author: Tamar Christina Date: Thu Nov 9 11:21:31 2017 +0000 Split the ARM Crypto ISA extensions for AES and SHA1+2 into their own options (+aes and +sha2). The reason for the split is because with the introduction of Armv8.4-a the implementation of AES has explicitly been made independent of the implementation of the other crypto extensions. gas * config/tc-aarch64.c (aarch64_arch_option_table): Add armv8.4-a. (aarch64_features): Added SM4 and SHA3. include * opcode/aarch64.h: (AARCH64_FEATURE_V8_4, AARCH64_FEATURE_SM4): New. (AARCH64_ARCH_V8_4, AARCH64_FEATURE_SHA3): New. opcodes * aarch64-tbl.h (aarch64_feature_v8_4, aarch64_feature_crypto_v8_2): New. (aarch64_feature_sm4, aarch64_feature_sha3): New. (aarch64_feature_fp_16_v8_2): New. (ARMV8_4, SHA3, SM4, CRYPTO_V8_2, FP_F16_V8_2): New. (V8_4_INSN, CRYPTO_V8_2_INSN): New. (SHA3_INSN, SM4_INSN, FP16_V8_2_INSN): New. commit 21b81e67c73368dbbc9f6356ac5a7eb274789a32 Author: Nick Clifton Date: Thu Nov 9 10:28:32 2017 +0000 Change the type of the aarch64_feature_set typedef to unsigned long long so that it will work on 32-bit hosts. * opcode/aarch64.h (aarch64_feature_set): Change type to unsigned long long. commit 286acbb5c25c5895832d3dd3be3398d3f2d64fad Author: Joel Brobecker Date: Fri Mar 3 17:31:13 2017 +0100 local variable watchpoint not deleted after leaving scope When debugging an Ada program, and inserting a watchpoint tracking a local variable, the watchpoint doesn't get automatically deleted upon leaving that variable's scope. This watchpoint then starts creating problems later on, when trying to resume the program's execution from a location outside of the watchpoint's scope: (gdb) c Continuing. Breakpoint 2, foo_p708_025 () at foo_p708_025.adb:7 7 Do_Nothing (Val); (gdb) n No frame is currently executing in block pck.get_val. Command aborted. (gdb) c Continuing. No frame is currently executing in block pck.get_val. Command aborted. The expected output is the following: - The program's execution after the first continue should stop as soon as we reach the end of the watchpoint's scope, and the debugger should be deleting it. - Then we can continue until reaching breakpoint 2 above; - After which we should be able to do next/continue as usual. The reason the watchpoint is not automatically deleted at scope exit is because the watchpoint is not marked as being scope-specific (b->exp_valid_block is equal NULL), and this is because the symbol lookup for our local variable failed to set the innermost_block global variable during the lookup. More precisely, if we look at watch_command_1, we do the following: innermost_block = NULL; [...] exp = parse_exp_1 (&arg, 0, 0, 0); [...] exp_valid_block = innermost_block; Currently, innermost_block stays NULL after the call to parse_exp_1. Digging further, this innermost_block is typically set during symbol lookup when the symbol is considered to have a frame-relative address. For instance, in c-exp.y, we see some code like the following: if (symbol_read_needs_frame (sym.symbol)) { if (innermost_block == 0 || contained_in (sym.block, innermost_block)) innermost_block = sym.block; } We actually have the exact same mechanism in ada-exp.y, except that it vhas accidently been turned off. See write_var_from_sym, where we start with: if (orig_left_context == NULL && symbol_read_needs_frame (sym)) { if (innermost_block == 0 || contained_in (block, innermost_block)) innermost_block = block; } In this case, orig_left_context is a parameter, and looking at the point of call in write_var_or_type, we see: if (nsyms == 1) { write_var_from_sym (par_state, block, syms[0].block, syms[0].symbol); In the call above, the paramater we are interested in is "block", which is a parameter for write_var_or_type as well, except we explicitly override its value at the beginning when found to be NULL: if (block == NULL) block = expression_context_block; So the block we pass to write_var_from_sym is not NULL, and we therefore don't set innermost_block, which leads to the watchpoint no longer being marked as scope-specific. The handling of orig_left_context in write_var_from_sym was there to handle the case where a user writes an expression where the symbol is qualified with a scope (Eg: "function::variable"). But it appears that handling this is specifically here is no longer necessary, so this patch simply removes that parameter and the associated check, and then updates all the points of calls. Interestingly, this also affects GDB/MI, and in particular varobjs, because local variables are now properly reported as having a block, which causes the associated varob to have a "thread-id" field. This patch also adjusts a couple of Ada/gdb-mi tests. gdb/ChangeLog: * ada-exp.y (write_var_from_sym): Remove parameter "orig_left_context". Update all callers. gdb/testsuite/ChangeLog: * gdb.ada/scoped_watch: New testcase. * gdb.ada/watch_arg.exp: Adjust expected behavior to the behavior which is actually correct. * gdb.ada/mi_interface.exp: Add missing thread-id in expected varobj. * gdb.ada/mi_var_array.exp: Add missing thread-id in expected varobj. commit b44ec61915f10a953ca85da5bf7a97911554f1aa Author: Simon Marchi Date: Wed Nov 8 19:42:08 2017 -0500 Make encode_actions_rsp use std::vector Currently, encode_actions_rsp returns two malloc'ed arrays of malloc'ed strings (char *) by pointer. Change this to use std::vector. This eliminates some cleanups in remote.c. Regtested on the buildbot. gdb/ChangeLog: * tracepoint.h (class collection_list) : Return std::vector. (encode_actions_rsp): Change parameters to std::vector *. * tracepoint.c (collection_list::stringify): Return std::vector and adjust accordingly. (encode_actions_rsp): Changee parameters to std::vector and adjust accordingly. * remote.c (free_actions_list), free_actions_list_cleanup_wrapper): Remove. (remote_download_tracepoint): Adjust to std::vector. commit dc8d2d90da3f191ae0461900ab98e3b29cc2b280 Author: H.J. Lu Date: Wed Nov 8 15:56:54 2017 -0800 gold: Ignore def/ref from a dynamic object for special symbols Since special symbol must be defined in a regular object, definition from a dynamic object should be ignored. If special symbol has the hidden or internal visibility, reference from a dynamic object should also be ignored. Also __start and __stop symbols in a dynamic object shouldn't be preempted. PR gold/22291 * layout.cc (Layout::define_section_symbols): Use STV_PROTECTED for __start and __stop symbols. * symtab.cc (Symbol_table::define_special_symbol): Add an argument, visibility. Ignore definition and reference from a dynamic object, depending on visibility. (Symbol_table::do_define_in_output_data): Pass visibility to define_special_symbol. (Symbol_table::do_define_in_output_segment): Likewise. (Symbol_table::do_define_as_constant): Likewise. (Symbol_table::add_undefined_symbol_from_command_line): Pass STV_DEFAULT to define_special_symbol. * symtab.h (Symbol_table::define_special_symbol): Add an argument, visibility. commit cb1a122cce8a7eefe1025d8d189c52f96da6138f Author: GDB Administrator Date: Thu Nov 9 00:00:11 2017 +0000 Automatic date update in version.in commit 62d7ae92341b53ef10b709464edca759d6738500 Author: Pedro Alves Date: Wed Nov 8 23:42:11 2017 +0000 Avoid expensive complaint calls when complaints are disabled Running perf on "gdb -nx -readnow -batch gdb", I'm seeing a lot of time (24%.75!) spent in gettext, via complaints. 'perf report -g' shows: - 86.23% 0.00% gdb gdb [.] gdb_main - gdb_main - 85.60% catch_command_errors symbol_file_add_main_adapter symbol_file_add_main symbol_file_add_main_1 symbol_file_add - symbol_file_add_with_addrs - 84.31% dw2_expand_all_symtabs - dw2_instantiate_symtab - 83.79% dw2_do_instantiate_symtab - 70.85% process_die - 41.11% dwarf_decode_macros - 41.09% dwarf_decode_macro_bytes - 39.74% dwarf_decode_macro_bytes >>>>>>>>>>>>>>>>>>>>>>> + 24.75% __dcigettext <<<<<<< + 7.37% macro_define_object_internal + 3.16% macro_define_function 0.77% splay_tree_insert + 0.76% savestring + 0.58% free 0.53% read_indirect_string_at_offset_from 0.54% macro_define_object_internal 0.51% macro_start_file + 25.57% process_die + 4.07% dwarf_decode_lines + 4.28% compute_delayed_physnames + 3.85% end_symtab_from_static_block + 3.38% load_cu + 1.29% end_symtab_get_static_block + 0.52% do_my_cleanups + 1.29% read_symbols + 0.54% gdb_init The problem is that we're always computing the arguments to pass to complaint, including passing the format strings through gettext, even when complaints are disabled. As seen above, gettext can be quite expensive. Fix this by wrapping complaint in a macro that skips the real complaint call when complaints are disabled. This improves "gdb -nx -readnow -batch gdb" from ~11.0s => ~7.8s with -O2 -g3, and ~6.0s => ~5.3s with -O2 -g. w/ gcc 5.3.1, on x86_64, for me. gdb/ChangeLog: 2017-11-08 Pedro Alves * complaints.c (stop_whining): Make extern. (complaint): Rename to ... (complaint_internal): ... this. * complaints.h (complaint): Rename to ... (complaint_internal): ... this. (complaint): Reimplement as macro around complaint_internal. gdb/testsuite/ChangeLog: 2017-11-08 Pedro Alves * gdb.gdb/complaints.exp (test_initial_complaints) (test_serial_complaints, test_short_complaints): Call complaint_internal instead of complaint. commit 333d0055f6f162c334c36f1946b6fcdb5c92b681 Author: James Clarke Date: Wed Nov 8 15:13:53 2017 -0800 Fix problems with -r. The fix committed for PR gold/19291 ended up breaking other cases. The commit added adjustment code to write_local_symbols, but in many cases compute_final_local_value_internal had already subtracted the output section's address. To fix this, all other adjustments are now removed, so only the one in write_local_symbols is left. gold/ PR gold/22266 * object.cc (Sized_relobj_file::compute_final_local_value_internal): Drop relocatable parameter and stop adjusting output value based on it. (Sized_relobj_file::compute_final_local_value): Stop passing relocatable to compute_final_local_value_internal. (Sized_relobj_file::do_finalize_local_symbols): Ditto. * object.h (Sized_relobj_file::compute_final_local_value_internal): Drop relocatable parameter. commit 08228b11557016f6f12d537ebff5f169fdf9bc6c Author: Eric Christopher Date: Wed Nov 8 14:03:55 2017 -0800 Apply: 2017-11-08 Kyle Butt * object.cc (do_find_special_sections): Fix a thinko with memmem return values and check for != NULL rather than == 0. commit 280ca31f4d608082e1b61cd0b6d90fdc3450b9f3 Author: Djordje Todorovic Date: Wed Nov 8 21:19:05 2017 +0000 Add test for fetching TLS from core file A correct PID is needed by `libthread_db' library supplied with glibc repository revisions before commit c579f48edba8 ("Remove cached PID/TID in clone") or versions before 2.25 release for GDB to fetch value of TLS variable from core file. On MIPS platforms it was omitted and fetching value of TLS variable was not available. This adds a new test in order to be sure if GDB on native platforms can successfully fetch value of TLS variable. gdb/testsuite: * gdb.threads/tls-core.c: New file. * gdb.threads/tls-core.exp: Likewise. commit c9ec0e8945d057979a361e3545d42b3f15adf04a Author: Djordje Todorovic Date: Wed Nov 8 21:19:05 2017 +0000 BFD: Extract PID from MIPS core dump file On MIPS o32, n32 and n64 platforms, PID information was not correctly propagated from core dump file to internal GDB structures. This patch fixes that behavior. A correct PID is needed by `libthread_db' library supplied with glibc repository revisions before commit c579f48edba8 ("Remove cached PID/TID in clone") or released versions before 2.25 for GDB to fetch value of TLS variable from core file. bfd/ChangeLog: * elf32-mips.c (elf32_mips_grok_psinfo): Extract core->pid. * elf64-mips.c (elf64_mips_grok_psinfo): Likewise. * elfn32-mips.c (elf32_mips_grok_psinfo): Likewise. commit 9031cb4af0adcf1c73cb9b8c73ca2d989023af2f Author: Djordje Todorovic Date: Wed Nov 8 21:19:05 2017 +0000 BFD: Write Linux core PRSTATUS note into MIPS core file On MIPS o32, n32 and n64 platforms information such as PID was not correctly written into core file from GDB. This fixes that behavior. bfd/ChangeLog: * elf32-mips.c (elf32_mips_write_core_note): New function. (elf_backend_write_core_note): New macro. * elf64-mips.c (elf64_mips_write_core_note): New function. (elf_backend_write_core_note): New macro. * elfn32-mips.c (elf32_mips_write_core_note): New function. (elf_backend_write_core_note): New macro. commit 2f4732b0e622d9d5d899c29e2132e4cd2966aaad Author: Tom Tromey Date: Fri Nov 3 14:55:39 2017 -0600 Remove symbolp vector This removes the symbolp typedef from dwarf2read.c and converts the associated VEC uses to std::vector. This fixes a latent possible memory leak if an exception were thrown, because there were no cleanups installed for these VECs. Regression tested on the buildbot. gdb/ChangeLog 2017-11-08 Tom Tromey * dwarf2read.c (symbolp): Remove typedef. (read_func_scope): Use std::vector. (process_structure_scope): Use std::vector. commit f9d67a22392f8f52c779f68a2561eb35c2f86b81 Author: Pedro Alves Date: Wed Nov 8 14:22:34 2017 +0000 Make the linespec/location completer ignore data symbols Currently "b foo[TAB]" offers data symbols as completion candidates. This doesn't make sense, since you can't set a breakpoint on data symbols, only on code symbols. (gdb) b globa[TAB] (gdb) b global [ENTER] Function "global" not defined. Make breakpoint pending on future shared library load? (y or [n]) n (gdb) info symbol global global in section .rodata So this patch makes linespec completion ignore data symbols. gdb/ChangeLog: 2017-11-08 Pedro Alves * ada-lang.c (ada_make_symbol_completion_list): Use completion_skip_symbol. * symtab.c (symbol_is_function_or_method(minimal_symbol*)): New. (symbol_is_function_or_method(symbol*)): New. (add_symtab_completions): Add complete_symbol_mode parameter. Use completion_skip_symbol. (default_collect_symbol_completion_matches_break_on): Use completion_skip_symbol. Pass down mode. (collect_file_symbol_completion_matches): Pass down mode. * symtab.h (symbol_is_function_or_method): New declarations. (completion_skip_symbol): New template function. commit 56d87ef769e6adab27af77fa86ea294ee7c6ee72 Author: Pedro Alves Date: Wed Nov 8 14:22:34 2017 +0000 Use search_domain::FUNCTIONS_DOMAIN when setting breakpoints While working on C++ support for wild matching, I noticed that attaching to my system's Firefox (which uses .gdb_index), setting a break at main and bailing, like: $ gdb --batch -q -p `pidof firefox` -ex "b main" would get substancially slower. It'd take around 20s when currently it takes 3s. The problem is that gdb would expand more symtabs than currently, because Firefox has symbols named like "nsHtml5Atoms::main", "nsGkAtoms::main", etc., which given wild matching, match. However, these are not function symbols, [they're "(nsIAtom *)"], so it seems silly that they'd cause expansion in the first place. The .gdb_index code (dwarf2read.c:dw2_expand_marked_cus) filters out symbols matches based on search_domain: case VARIABLES_DOMAIN: if (symbol_kind != GDB_INDEX_SYMBOL_KIND_VARIABLE) continue; break; case FUNCTIONS_DOMAIN: if (symbol_kind != GDB_INDEX_SYMBOL_KIND_FUNCTION) continue; break; case TYPES_DOMAIN: if (symbol_kind != GDB_INDEX_SYMBOL_KIND_TYPE) continue; break; default: break; however, we're currently passing down search_domain::ALL_DOMAIN when we know we're looking for functions, for no good reason. This patch fixes that. It seems like search_domain is underutilized throughout, but I'll leave using it more for another pass. gdb/ChangeLog: 2017-11-08 Pedro Alves * linespec.c (iterate_over_all_matching_symtabs): Add search_domain parameter. Pass it down to expand_symtabs_matching. (decode_objc): Request FUNCTIONS_DOMAIN symbols only. (lookup_prefix_sym): Adjust by passing ALL_DOMAIN as search_domain. (add_all_symbol_names_from_pspace): Add search_domain parameter. Pass it down. (find_method, find_function_symbols): Request FUNCTIONS_DOMAIN symbols. (add_matching_symbols_to_info): Add search_domain parameter. Pass it down. commit 1b0261195e3f11932c0f5657a74028f5814168eb Author: Pedro Alves Date: Wed Nov 8 14:22:34 2017 +0000 Simplify completion_list_add_name | remove sym_text / sym_text_len sym_text_len existed to strip parameters out of the lookup name. Now that that's handled by the lookup_name_info objects, the sym_text/sym_text_len parameters are no longer necessary. gdb/ChangeLog: 2017-11-08 Pedro Alves * ada-lang.c (ada_make_symbol_completion_list): Remove text and text_len locals and don't pass them down. * symtab.c (completion_list_add_name): Remove sym_text/sym_text_len parameters and adjust. (completion_list_add_symbol, completion_list_add_msymbol) (completion_list_objc_symbol, completion_list_add_fields) (add_symtab_completions): Likewise. (default_collect_symbol_completion_matches_break_on) (collect_file_symbol_completion_matches): Remove sym_text_len local and don't pass it down. * symtab.h (completion_list_add_name): Remove sym_text/sym_text_len parameters. commit c62446b12b32ce57d2b40cdb0c1baa7fc1677d82 Author: Pedro Alves Date: Wed Nov 8 14:49:10 2017 +0000 lookup_name_info::make_ignore_params A few places in the completion code look for a "(" to find a function's parameter list, in order to strip it, because psymtabs (and gdb index) don't include parameter info in the symbol names. See compare_symbol_name and default_collect_symbol_completion_matches_break_on. This is too naive. Consider: ns_overload2_test::([TAB] We'd want to complete that to: ns_overload2_test::(anonymous namespace)::struct_overload2_test Or: b (anonymous namespace)::[TAB] That currently completes to: b (anonymous namespace) Which is obviously broken. This patch makes that work. Also, the current compare_symbol_name hack means that while this works: "b function([TAB]" -> "b function()" This does not: "b function ([TAB]" This patch fixes that. Whitespace "ignoring" now Just Works, i.e., assuming a symbol named "function(int, long)", this: b function ( int , lon[TAB] completes to: b function ( int , long) To address all of this, this patch builds on top of the rest of the series, and pushes the responsibility of stripping parameters from a lookup name to the new lookup_name_info object, where we can apply per-language rules. Also note that we now only make a version of the lookup name with parameters stripped out where it's actually required to do that, in the psymtab and GDB index code. For C++, the right way to strip parameters is with "cp_remove_params", which uses a real parser (cp-name-parser.y) to split the name into a component tree and then discards parameters. The trouble for completion is that in that case we have an incomplete name, like "foo::func(int" and thus cp_remove_params throws an error. This patch sorts that by adding a cp_remove_params_if_any variant of cp_remove_params that tries removing characters from the end of the string until cp_remove_params works. So cp_remove_params_if_any behaves like this: With a complete name: "foo::func(int)" => foo::func(int) # cp_remove_params_1 succeeds the first time. With an incomplete name: "foo::func(int" => NULL # cp_remove_params fails the first time. "foo::func(in" => NULL # and again... "foo::func(i" => NULL # and again... "foo::func(" => NULL # and again... "foo::func" => "foo::func" # success! Note that even if this approach removes significant rightmost characters, it's still OK, because this parameter stripping is only necessary for psymtabs and gdb index, where we're determining whether to expand a symbol table. Say cp_remove_params_if_any returned "foo::" above for "foo::func(int". That'd cause us to expand more symtabs than ideal (because we'd expand all symtabs with symbols that start with "foo::", not just "foo::func"), but then when we actually look for completion matches, we'd still use the original lookup name, with parameter information ["foo::func(int"], and thus we'll return no false positive to the user. Whether the stripping works as intended and doesn't strip too much is thus covered by a unit test instead of a testsuite test. The "if_any" part of the name refers to the fact that while cp_remove_params returns NULL if the input name has no parameters in the first place, like: "foo::func" => NULL # cp_remove_params cp_remove_params_if_any still returns the function name: "foo::func" => "foo::func" # cp_remove_params_if_any gdb/ChangeLog: 2017-11-08 Pedro Alves * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add unittests/lookup_name_info-selftests.c. (SUBDIR_UNITTESTS_OBS): Add lookup_name_info-selftests.o. * cp-support.c: Include "selftest.h". (cp_remove_params_1): Rename from cp_remove_params. Add 'require_param' parameter, and handle it. (cp_remove_params): Reimplement. (cp_remove_params_if_any): New. (selftests::quote): New. (selftests::check_remove_params): New. (selftests::test_cp_remove_params): New. (_initialize_cp_support): Install selftests::test_cp_remove_params. * cp-support.h (cp_remove_params_if_any): Declare. * dwarf2read.c :Include "selftest.h". (dw2_expand_symtabs_matching_symbol): Use lookup_name_info::make_ignore_params. (selftests::dw2_expand_symtabs_matching::mock_mapped_index) (selftests::dw2_expand_symtabs_matching::string_or_null) (selftests::dw2_expand_symtabs_matching::check_match) (selftests::dw2_expand_symtabs_matching::test_symbols) (selftests::dw2_expand_symtabs_matching::run_test): New. (_initialize_dwarf2_read): Register selftests::dw2_expand_symtabs_matching::run_test. * psymtab.c (psym_expand_symtabs_matching): Use lookup_name_info::make_ignore_params. * symtab.c (demangle_for_lookup_info::demangle_for_lookup_info): If the lookup name wants to ignore parameters, strip them. (compare_symbol_name): Remove sym_text/sym_text_len parameters and code handling '('. (completion_list_add_name): Don't pass down sym_text/sym_text_len. (default_collect_symbol_completion_matches_break_on): Don't try to strip parameters. * symtab.h (lookup_name_info::lookup_name_info): Add 'ignore_parameters' parameter. (lookup_name_info::ignore_parameters) (lookup_name_info::make_ignore_params): New methods. (lookup_name_info::m_ignore_parameters): New field. * unittests/lookup_name_info-selftests.c: New file. commit 61920122ba93d58cc2e8c78a30475c569c2506fd Author: Pedro Alves Date: Wed Nov 8 14:22:32 2017 +0000 Reorder/reindent dw2_expand_symtabs_matching & friends The previous patch had added dw2_expand_symtabs_matching_symbol and dw2_expand_marked_cus forward declarations and did not reindent dw2_expand_marked_cus to avoid moving the code around while changing it at the same time. gdb/ChangeLog: 2017-11-08 Pedro Alves * dwarf2read.c (dw2_expand_marked_cus) (dw2_expand_symtabs_matching_symbol): Remove forward declarations. (dw2_expand_symtabs_matching): Move further below. (dw2_expand_marked_cus): Reindent. commit 3f563c840a2c891ec2868b3e08bfaecb6f7aa57f Author: Pedro Alves Date: Wed Nov 8 14:22:32 2017 +0000 Optimize .gdb_index symbol name searching As mentioned in the previous patch, .gdb_index name lookup got significantly slower with the previous patch. This patch addresses that, and in the process makes .gdb_index name searching faster than what we had before the previous patch, even. Using the same test: $ cat script.cmd set pagination off set $count = 0 while $count < 400 complete b string_prin printf "count = %d\n", $count set $count = $count + 1 end $ time gdb --batch -q ./gdb-with-index -ex "source script.cmd" I got, before the previous patch (-O2, x86-64): real 0m1.773s user 0m1.737s sys 0m0.040s and after this patch: real 0m1.361s user 0m1.315s sys 0m0.040s The basic idea here is simple: instead of always iterating over all the symbol names in the index, we build an accelerator/sorted name table and binary search names in it. Later in the series, we'll want to support wild matching for C++ too, so this mechanism already considers that. For example, say that you're looking up functions/methods named "func", no matter the containing namespace/class. If we sorted the table by qualified name, then we obviously wouldn't be able to find those symbols with a binary search: func ns1::a::b::func ns1::b::func ns2::func (function symbol names in .gdb_index have no parameter info, like psymbols) To address that out, we put an entry for each name component in the sorted table. something like this: Table Entry Actual symbol --------------------------------- func func func ns1::a::b::func b::func ns1::a::b::func a::b::func ns1::a::b::func ns1::a::b::func ns1::a::b::func func ns1::b::func b::func ns1::b::func ns1::b::func ns1::b::func func ns2::func ns2::func ns2::func Which sorted results in this: Table Entry Actual symbol --------------------------------- a::b::func ns1::a::b::func b::func ns1::a::b::func b::func ns1::b::func func func func ns1::a::b::func func ns1::b::func func ns2::func ns1::a::b::func ns1::a::b::func ns1::b::func ns1::b::func ns2::func ns2::func And we can binary search this. Note that a binary search approach works for both completion and regular lookup, while a name hashing approach only works for normal symbol looking, since obviously "fun" and "func" have different hashes. At first I was a bit wary of these tables potentially growing GDB's memory significantly. But I did an experiment that convinced it's not a worry at all. I hacked gdb to count the total number of entries in all the tables, attached that gdb to my system/Fedora's Firefox (Fedora's debug packages uses .gdb_index), did "set max-completions unlimited", and then hit "b [TAB]" to cause everything to expand. That resulted in 1351355 name_components. Each entry takes 8 bytes, so that's 10810840 bytes (ignoring std::vector overhead), or ~10.3 MB. That's IMO too small to worry about, given GDB was using over 7400MB total at that point. I.e., we're talking about 0.1% increase. dw2_expand_symtabs_matching unit tests covering this will be added in a follow up patch. If the size of this table turns out to be a concern, I have an idea to reduce the size of the table further at the expense of a bit more code -- the vast majority of the name offsets are either 0 or fit in 8-bits: total name_component = 1351355, of which, name_component::name_offset instances need 0 bits = 679531 name_component::name_offset instances need 8 bits = 669526 name_component::name_offset instances need 16 bits = 2298 name_component::name_offset instances need 32 bits = 0 name_component::idx instances need 0 bits = 51 name_component::idx instances need 8 bits = 8361 name_component::idx instances need 16 bits = 280329 name_component::idx instances need 32 bits = 1062614 so we could have separate tables for 0 name_offset, 8-bit name_offset and 32-bit name_offset. That'd give us roughly: 679531 * 0 + 669526 * 1 + 2298 * 4 + 1062614 * 4 = 4929174, or ~4.7MB with only 8-bit and 32-bit tables, that'd be: 1349057 * 1 + 2298 * 4 + 4 * 1351355 = 6763669 bytes, or ~6.5MB. I don't think we need to bother though. I also timed: $ time gdb --batch -q -p `pidof firefox` $ time gdb --batch -q -p `pidof firefox` -ex "b main" $ time gdb --batch -q -p `pidof firefox` -ex "set max-completion unlimited" -ex "complete b " and compared before previous patch vs this patch, and I didn't see a significant difference, seemingly because time to read debug info dominates. The "complete b " variant of the test takes ~2min currently... (I have a follow up series that speeds that up somewhat.) gdb/ChangeLog: 2017-11-08 Pedro Alves * dwarf2read.c (byte_swap, MAYBE_SWAP): Move higher up in file. (struct name_component): New. (mapped_index::name_components): New field. (mapped_index::symbol_name_at): New method. (dwarf2_read_index): Call mapped_index ctor. (dw2_map_matching_symbols): Add comment about name_components table. (dw2_expand_symtabs_matching): Factor part to... (dw2_expand_symtabs_matching_symbol): ... this new function. Build name components table, and lookup symbols in it before calling the name matcher. (dw2_expand_marked_cus): New, factored out from dw2_expand_symtabs_matching. (dwarf2_per_objfile_free): Call the mapped_index's dtor. commit b5ec771e60c1a0863e51eb491c85c674097e9e13 Author: Pedro Alves Date: Wed Nov 8 14:22:32 2017 +0000 Introduce lookup_name_info and generalize Ada's FULL/WILD name matching Summary: - This is preparation for supporting wild name matching on C++ too. - This is also preparation for TAB-completion fixes. - Makes symbol name matching (think strcmp_iw) be based on a per-language method. - Merges completion and non-completion name comparison (think language_ops::la_get_symbol_name_cmp generalized). - Avoid re-hashing lookup name multiple times - Centralizes preparing a name for lookup (Ada name encoding / C++ Demangling), both completion and non-completion. - Fixes Ada latent bug with verbatim name matches in expressions - Makes ada-lang.c use common|symtab.c completion code a bit more. Ada's wild matching basically means that "(gdb) break foo" will find all methods named "foo" in all packages. Translating to C++, it's roughly the same as saying that "break klass::method" sets breakpoints on all "klass::method" methods of all classes, no matter the namespace. A following patch will teach GDB about fullname vs wild matching for C++ too. This patch is preparatory work to get there. Another idea here is to do symbol name matching based on the symbol language's algorithm. I.e., avoid dependency on current language set. This allows for example doing (gdb) b foo::bar< int > ( and having gdb name match the C++ symbols correctly even if the current language is C or Assembly (or Rust, or Ada, or ...), which can easily happen if you step into an Assembly/C runtime library frame. By encapsulating all the information related to a lookup name in a class, we can also cache hash computation for a given language in the lookup name object, to avoid recomputing it over and over. Similarly, because we don't really know upfront which languages the lookup name will be matched against, for each language we store the lookup name transformed into a search name. E.g., for C++, that means demangling the name. But for Ada, it means encoding the name. This actually forces us to centralize all the different lookup name encoding in a central place, resulting in clearer code, IMO. See e.g., the new ada_lookup_name_info class. The lookup name -> symbol search name computation is also done only once per language. The old language->la_get_symbol_name_cmp / symbol_name_cmp_ftype are generalized to work with both completion, and normal symbol look up. At some point early on, I had separate completion vs non-completion language vector entry points, but a single method ends up being better IMO for simplifying things -- the more we merge the completion / non-completion name lookup code paths, the less changes for bugs causing completion vs normal lookup finding different symbols. The ada-lex.l change is necessary because when doing (gdb) p then the name that is passed to write_ write_var_or_type -> ada_lookup_symbol_list misses the "<>", i.e., it's just "UpperCase", and we end up doing a wild match against "UpperCase" lowercased by ada_lookup_name_info's constructor. I.e., "uppercase" wouldn't ever match "UpperCase", and the symbol lookup fails. This wouldn't cause any regression in the testsuite, but I added a new test that would pass before the patch and fail after, if it weren't for that fix. This is latent bug that happens to go unnoticed because that particular path was inconsistent with the rest of Ada symbol lookup by not lowercasing the lookup name. Ada's symbol_completion_add is deleted, replaced by using common code's completion_list_add_name. To make the latter work for Ada, we needed to add a new output parameter, because Ada wants to return back a custom completion candidates that are not the symbol name. With this patch, minimal symbol demangled name hashing is made consistent with regular symbol hashing. I.e., it now goes via the language vector's search_name_hash method too, as I had suggested in a previous patch. dw2_expand_symtabs_matching / .gdb_index symbol names were a challenge. The problem is that we have no way to telling what is the language of each symbol name found in the index, until we expand the corresponding full symbol, which is off course what we're trying to avoid. Language information is simply not considered in the index format... Since the symbol name hashing and comparison routines are per-language, we now have a problem. The patch sorts this out by matching each name against all languages. This is inneficient, and indeed slows down completion several times. E.g., with: $ cat script.cmd set pagination off set $count = 0 while $count < 400 complete b string_prin printf "count = %d\n", $count set $count = $count + 1 end $ time gdb --batch -q ./gdb-with-index -ex "source script-string_printf.cmd" I get, before patch (-O2, x86-64): real 0m1.773s user 0m1.737s sys 0m0.040s While after patch (-O2, x86-64): real 0m9.843s user 0m9.482s sys 0m0.034s However, the following patch will optimize this, and will actually make this use case faster compared to the "before patch" above: real 0m1.321s user 0m1.285s sys 0m0.039s gdb/ChangeLog: 2017-11-08 Pedro Alves * ada-lang.c (ada_encode): Rename to .. (ada_encode_1): ... this. Add throw_errors parameter and handle it. (ada_encode): Reimplement. (match_name): Delete, folded into full_name. (resolve_subexp): No longer pass the encoded name to ada_lookup_symbol_list. (should_use_wild_match): Delete. (name_match_type_from_name): New. (ada_lookup_simple_minsym): Use lookup_name_info and the language's symbol_name_matcher_ftype. (add_symbols_from_enclosing_procs, ada_add_local_symbols) (ada_add_block_renamings): Adjust to use lookup_name_info. (ada_lookup_name): New. (add_nonlocal_symbols, ada_add_all_symbols) (ada_lookup_symbol_list_worker, ada_lookup_symbol_list) (ada_iterate_over_symbols): Adjust to use lookup_name_info. (ada_name_for_lookup): Delete. (ada_lookup_encoded_symbol): Construct a verbatim name. (wild_match): Reverse sense of return type. Use bool. (full_match): Reverse sense of return type. Inline bits of old match_name here. (ada_add_block_symbols): Adjust to use lookup_name_info. (symbol_completion_match): Delete, folded into... (ada_lookup_name_info::matches): ... .this new method. (symbol_completion_add): Delete. (ada_collect_symbol_completion_matches): Add name_match_type parameter. Adjust to use lookup_name_info and completion_list_add_name. (get_var_value, ada_add_global_exceptions): Adjust to use lookup_name_info. (ada_get_symbol_name_cmp): Delete. (do_wild_match, do_full_match): New functions. (ada_lookup_name_info::ada_lookup_name_info): New method. (ada_symbol_name_matches, ada_get_symbol_name_matcher): New functions. (ada_language_defn): Install ada_get_symbol_name_matcher. * ada-lex.l (processId): If name starts with '<', copy it verbatim. * block.c (block_iter_match_step, block_iter_match_first) (block_iter_match_next, block_lookup_symbol) (block_lookup_symbol_primary, block_find_symbol): Adjust to use lookup_name_info. * block.h (block_iter_match_first, block_iter_match_next) (ALL_BLOCK_SYMBOLS_WITH_NAME): Adjust to use lookup_name_info. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Adjust comments to refer to la_get_symbol_name_matcher. * completer.c (complete_files_symbols) (collect_explicit_location_matches, symbol_completer): Pass a symbol_name_match_type down. * completer.h (class completion_match, completion_match_result): New classes. (completion_tracker::reset_completion_match_result): New method. (completion_tracker::m_completion_match_result): New field. * cp-support.c (make_symbol_overload_list_block): Adjust to use lookup_name_info. (cp_fq_symbol_name_matches, cp_get_symbol_name_matcher): New functions. * cp-support.h (cp_get_symbol_name_matcher): New declaration. * d-lang.c: Adjust comments to refer to la_get_symbol_name_matcher. * dictionary.c (dict_vector) : Adjust to use lookup_name_info. (dict_iter_match_first, dict_iter_match_next) (iter_match_first_hashed, iter_match_next_hashed) (iter_match_first_linear, iter_match_next_linear): Adjust to work with a lookup_name_info. * dictionary.h (dict_iter_match_first, dict_iter_match_next): Likewise. * dwarf2read.c (dw2_lookup_symbol): Adjust to use lookup_name_info. (dw2_map_matching_symbols): Adjust to use symbol_name_match_type. (gdb_index_symbol_name_matcher): New class. (dw2_expand_symtabs_matching) Adjust to use lookup_name_info and gdb_index_symbol_name_matcher. Accept a NULL symbol_matcher. * f-lang.c (f_collect_symbol_completion_matches): Adjust to work with a symbol_name_match_type. (f_language_defn): Adjust comments to refer to la_get_symbol_name_matcher. * go-lang.c (go_language_defn): Adjust comments to refer to la_get_symbol_name_matcher. * language.c (default_symbol_name_matcher) (language_get_symbol_name_matcher): New functions. (unknown_language_defn, auto_language_defn): Adjust comments to refer to la_get_symbol_name_matcher. * language.h (symbol_name_cmp_ftype): Delete. (language_defn) : Add match type parameter. : Delete field. : New field. : Adjust to use lookup_name_info. (default_symbol_name_matcher, language_get_symbol_name_matcher): Declare. * linespec.c (iterate_over_all_matching_symtabs) (iterate_over_file_blocks): Adjust to use lookup_name_info. (find_methods): Add language parameter, and use lookup_name_info and the language's symbol_name_matcher_ftype. (linespec_complete_function): Adjust. (lookup_prefix_sym): Use lookup_name_info. (add_all_symbol_names_from_pspace): Adjust. (find_superclass_methods): Add language parameter and pass it down. (find_method): Pass symbol language down. (find_linespec_symbols): Don't demangle or Ada encode here. (search_minsyms_for_name): Add lookup_name_info parameter. (add_matching_symbols_to_info): Add name_match_type parameter. Use lookup_name_info. * m2-lang.c (m2_language_defn): Adjust comments to refer to la_get_symbol_name_matcher. * minsyms.c: Include . (add_minsym_to_demangled_hash_table): Remove table parameter and add objfile parameter. Use search_name_hash, and add language to demangled languages vector. (struct found_minimal_symbols): New struct. (lookup_minimal_symbol_mangled, lookup_minimal_symbol_demangled): New functions. (lookup_minimal_symbol): Adjust to use them. Don't canonicalize input names here. Use lookup_name_info instead. Lookup up demangled names once for each language in the demangled names vector. (iterate_over_minimal_symbols): Use lookup_name_info. Lookup up demangled names once for each language in the demangled names vector. (build_minimal_symbol_hash_tables): Adjust. * minsyms.h (iterate_over_minimal_symbols): Adjust to pass down a lookup_name_info. * objc-lang.c (objc_language_defn): Adjust comment to refer to la_get_symbol_name_matcher. * objfiles.h: Include . (objfile_per_bfd_storage) : New field. * opencl-lang.c (opencl_language_defn): Adjust comment to refer to la_get_symbol_name_matcher. * p-lang.c (pascal_language_defn): Adjust comment to refer to la_get_symbol_name_matcher. * psymtab.c (psym_lookup_symbol): Use lookup_name_info. (match_partial_symbol): Use symbol_name_match_type, lookup_name_info and psymbol_name_matches. (lookup_partial_symbol): Use lookup_name_info. (map_block): Use symbol_name_match_type and lookup_name_info. (psym_map_matching_symbols): Use symbol_name_match_type. (psymbol_name_matches): New. (recursively_search_psymtabs): Use lookup_name_info and psymbol_name_matches. Rename 'kind' parameter to 'domain'. (psym_expand_symtabs_matching): Use lookup_name_info. Rename 'kind' parameter to 'domain'. * rust-lang.c (rust_language_defn): Adjust comment to refer to la_get_symbol_name_matcher. * symfile-debug.c (debug_qf_map_matching_symbols) (debug_qf_map_matching_symbols): Use symbol_name_match_type. (debug_qf_expand_symtabs_matching): Use lookup_name_info. * symfile.c (expand_symtabs_matching): Use lookup_name_info. * symfile.h (quick_symbol_functions) : Adjust to use symbol_name_match_type. : Adjust to use lookup_name_info. (expand_symtabs_matching): Adjust to use lookup_name_info. * symmisc.c (maintenance_expand_symtabs): Use lookup_name_info::match_any (). * symtab.c (symbol_matches_search_name): New. (eq_symbol_entry): Adjust to use lookup_name_info and the language's matcher. (demangle_for_lookup_info::demangle_for_lookup_info): New. (lookup_name_info::match_any): New. (iterate_over_symbols, search_symbols): Use lookup_name_info. (compare_symbol_name): Add language, lookup_name_info and completion_match_result parameters, and use them. (completion_list_add_name): Make extern. Add language and lookup_name_info parameters. Use them. (completion_list_add_symbol, completion_list_add_msymbol) (completion_list_objc_symbol): Add lookup_name_info parameters and adjust. Pass down language. (completion_list_add_fields): Add lookup_name_info parameters and adjust. Pass down language. (add_symtab_completions): Add lookup_name_info parameters and adjust. (default_collect_symbol_completion_matches_break_on): Add name_match_type parameter, and use it. Use lookup_name_info. (default_collect_symbol_completion_matches) (collect_symbol_completion_matches): Add name_match_type parameter, and pass it down. (collect_symbol_completion_matches_type): Adjust. (collect_file_symbol_completion_matches): Add name_match_type parameter, and use lookup_name_info. * symtab.h: Include and "common/gdb_optional.h". (enum class symbol_name_match_type): New. (class ada_lookup_name_info): New. (struct demangle_for_lookup_info): New. (class lookup_name_info): New. (symbol_name_matcher_ftype): New. (SYMBOL_MATCHES_SEARCH_NAME): Use symbol_matches_search_name. (symbol_matches_search_name): Declare. (MSYMBOL_MATCHES_SEARCH_NAME): Delete. (default_collect_symbol_completion_matches) (collect_symbol_completion_matches) (collect_file_symbol_completion_matches): Add name_match_type parameter. (iterate_over_symbols): Use lookup_name_info. (completion_list_add_name): Declare. * utils.c (enum class strncmp_iw_mode): Moved to utils.h. (strncmp_iw_with_mode): Now extern. * utils.h (enum class strncmp_iw_mode): Moved from utils.c. (strncmp_iw_with_mode): Declare. gdb/testsuite/ChangeLog: 2017-11-08 Pedro Alves * gdb.ada/complete.exp (p ): New test. (p Exported_Capitalized): New test. (p exported_capitalized): New test. commit 5ffa0793690b42b2a0c1c21dbb5e64634e58fa00 Author: Pedro Alves Date: Wed Nov 8 15:07:56 2017 +0000 Per-language symbol name hashing algorithm Currently, we have a mess of symbol name hashing/comparison routines. There's msymbol_hash for mangled names, and dict_hash and msymbol_hash_iw for demangled names. Then there's strcmp_iw, strcmp_iw_ordered and Ada's full_match/wild_match, which all have to agree with the hashing routines. That's why dict_hash is really about Ada names. From the inconsistency department, minimal symbol hashing doesn't go via dict_hash, so Ada's wild matching can't ever work with minimal symbols. This patch starts fixing this, by doing two things: #1 - adds a language vector method to let each language decide how to compute a symbol name hash. #2 - makes dictionaries know the language of the symbols they hold, and then use the dictionaries language to decide which hashing method to use. For now, this is just scaffolding, since all languages install the default method. The series will make C++ install its own hashing method later on, and will add per-language symbol name comparison routines too. This patch was originally based on a patch that Keith wrote for the libcc1/C++ WIP support. gdb/ChangeLog: 2017-11-08 Keith Seitz Pedro Alves * ada-lang.c (ada_language_defn): Install default_search_name_hash. * buildsym.c (struct buildsym_compunit): : New field. (finish_block_internal): Pass language when creating dictionaries. (start_buildsym_compunit, start_symtab): New language parameters. Use them. (restart_symtab): Pass down compilation unit's language. * buildsym.h (enum language): Forward declare. (start_symtab): New 'language' parameter. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Install default_search_name_hash. * coffread.c (coff_start_symtab): Adjust. * d-lang.c (d_language_defn): Install default_search_name_hash. * dbxread.c (struct symloc): Add 'pst_language' field. (PST_LANGUAGE): Define. (start_psymtab, read_ofile_symtab): Use it. (process_one_symbol): New 'language' parameter. Pass it down. * dictionary.c (struct dictionary) : New field. (DICT_LANGUAGE): Define. (dict_create_hashed, dict_create_hashed_expandable) (dict_create_linear, dict_create_linear_expandable): New parameter 'language'. Set the dictionary's language. (iter_match_first_hashed): Adjust to rename. (insert_symbol_hashed): Assert we don't see mismatching languages. Adjust to rename. (dict_hash): Rename to ... (default_search_name_hash): ... this and make extern. * dictionary.h (struct language_defn): Forward declare. (dict_create_hashed): New parameter 'language'. * dwarf2read.c (dwarf2_start_symtab): Pass down language. * f-lang.c (f_language_defn): Install default_search_name_hash. * go-lang.c (go_language_defn): Install default_search_name_hash. * jit.c (finalize_symtab): Pass compunit's language to dictionary creation. * language.c (unknown_language_defn, auto_language_defn): * language.h (language_defn::la_search_name_hash): New field. (default_search_name_hash): Declare. * m2-lang.c (m2_language_defn): Install default_search_name_hash. * mdebugread.c (new_block): New parameter 'language'. * mdebugread.c (parse_symbol): Pass symbol language to block allocation. (psymtab_to_symtab_1): Pass down language. (new_symtab): Pass compunit's language to block allocation. * objc-lang.c (objc_language_defn): Install default_search_name_hash. * opencl-lang.c (opencl_language_defn): * p-lang.c (pascal_language_defn): Install default_search_name_hash. * rust-lang.c (rust_language_defn): Install default_search_name_hash. * stabsread.h (enum language): Forward declare. (process_one_symbol): Add 'language' parameter. * symtab.c (search_name_hash): New function. * symtab.h (search_name_hash): Declare. * xcoffread.c (read_xcoff_symtab): Pass language to start_symtab. commit 2a1dde5da23779fd0d269c3e51c7814aba9001dd Author: Pedro Alves Date: Wed Nov 8 15:20:41 2017 +0000 Fix "make test-cp-name-parser" src/gdb/cp-name-parser.y: In function ‘int main(int, char**)’: src/gdb/cp-name-parser.y:2132:30: error: ISO C++ forbids converting a string constant to ‘char*’ [-Werror=write-strings] char *str2, *extra_chars = "", c; ^ Simply don't initialize the variable, it's not necessary. gdb/ChangeLog: 2017-11-08 Pedro Alves * cp-name-parser.y (main): Don't initialize extra_chars. commit 2841837fac18861bb62e039a20321075d1e76248 Author: Nick Clifton Date: Wed Nov 8 14:34:32 2017 +0000 Fix typo in changelog commit c0e7cef7156b2bc15ba43441ad14c6e83c09df8e Author: Nick Clifton Date: Wed Nov 8 14:30:53 2017 +0000 Split the AArch64 Crypto instructions for AES and SHA1+2 into their own options (+aes and +sha2). The new options are: +aes: Enables the AES instructions of Armv8-a, enabled by default with +crypto. +sha2: Enables the SHA1 and SHA2 instructions of Armv8-a, enabled by default with +crypto. These options have been turned on by default when +crypto is used, as such no breakage is expected. The reason for the split is because with the introduction of Armv8.4-a the implementation of AES has explicitly been made independent of the implementation of the other crypto extensions. Backporting the split does not break any of the previous requirements and so is safe to do. gas * config/tc-aarch64.c (aarch64_features): Include AES and SHA2 in CRYPTO. Add SHA2 and AES. include * opcode/aarch64.h: (AARCH64_FEATURE_SHA2, AARCH64_FEATURE_AES): New. opcodes * aarch64-tbl.h (aarch64_feature_crypto): Add AES and SHA2. (aarch64_feature_sha2, aarch64_feature_aes): New. (SHA2, AES): New. (AES_INSN, SHA2_INSN): New. (pmull, pmull2, aese, aesd, aesmc, aesimc): Change to AES_INS. (sha1h, sha1su1, sha256su0, sha1c, sha1p, sha1m, sha1su0, sha256h, sha256h2, sha256su1): Change to SHA2_INS. commit dec41383fff7116c9f66cdeca3105e968047a4e6 Author: Jiong Wang Date: Wed Nov 8 13:15:12 2017 +0000 Adds command line support for Armv8.4-A, via the new command line option -march=armv8.4-a. Add support for "+dotprod" ARM feature (required for ARMv8.4-A). Add assembler and disassembler support for new FP16 instructions introduced in Armv8.4-A gas * config/tc-arm.c (arm_extensions): (arm_archs): New entry for "armv8.4-a". Add FPU_ARCH_DOTPROD_NEON_VFP_ARMV8. (arm_ext_v8_2): New variable. (enum arm_reg_type): New enumeration REG_TYPE_NSD. (reg_expected_msgs): New entry for REG_TYPE_NSD. (parse_typed_reg_or_scalar): Handle REG_TYPE_NSD. (parse_scalar): Support REG_TYPE_VFS. (enum operand_parse_code): New enumerations OP_RNSD and OP_RNSD_RNSC. (parse_operands): Handle OP_RNSD and OP_RNSD_RNSC. (NEON_SHAPE_DEF): New entries for DHH and DHS. (neon_scalar_for_fmac_fp16_long): New function to generate Rm encoding for new FP16 instructions in ARMv8.2-A. (do_neon_fmac_maybe_scalar_long): New function to encode new FP16 instructions in ARMv8.2-A. (do_neon_vfmal): Wrapper function for vfmal. (do_neon_vfmsl): Wrapper function for vfmsl. (insns): New entries for vfmal and vfmsl. * doc/c-arm.texi (-march): Document "armv8.4-a". * testsuite/gas/arm/dotprod-mandatory.d: New test. * testsuite/gas/arm/armv8_2-a-fp16.s: New test source. * testsuite/gas/arm/armv8_2-a-fp16-illegal.s: New test source. * testsuite/gas/arm/armv8_2-a-fp16.d: New test. * testsuite/gas/arm/armv8_3-a-fp16.d: New test. * testsuite/gas/arm/armv8_4-a-fp16.d: New test. * testsuite/gas/arm/armv8_2-a-fp16-thumb2.d: New test. * testsuite/gas/arm/armv8_2-a-fp16-illegal.d: New test. * testsuite/gas/arm/armv8_2-a-fp16-illegal.l: New error file. opcodes * arm-dis.c (coprocessor_opcodes): New entries for ARMv8.2-A new FP16 instructions, including vfmal.f16 and vfmsl.f16. include * opcode/arm.h (ARM_AEXT2_V8_4A): Include Dot Product feature. (ARM_EXT2_V8_4A): New macro. (ARM_AEXT2_V8_4A): Likewise. (ARM_ARCH_V8_4A): Likewise. commit 6e98b3428bdd0bf388c3c72eb205105926b15a64 Author: Alan Modra Date: Tue Nov 7 17:03:41 2017 +1030 xtensa message pluralization * config/tc-xtensa.c (finish_vinsn): Properly pluralize error message. commit b346cb961f729e2955391513a5b05eaf02b308ea Author: GDB Administrator Date: Wed Nov 8 00:00:20 2017 +0000 Automatic date update in version.in commit 95a6b0a106fac6ea35670421534d461a3663c0ba Author: Tom Tromey Date: Sun Oct 15 08:36:51 2017 -0600 Constify execute_command This constifies execute_command and fixes up the callers. gdb/ChangeLog 2017-11-07 Tom Tromey * event-top.h (command_handler): Constify. * record-full.c (cmd_record_full_start): Update. * thread.c (thread_apply_all_command): Update. * printcmd.c (eval_command): Update. * mi/mi-main.c (mi_execute_cli_command): Update. (mi_execute_async_cli_command): Update. * tui/tui-stack.c (tui_update_command): Update. * cli/cli-interp.c (safe_execute_command): Constify. * record.c (record_start): Update. (record_start, record_stop, cmd_record_start): Update. * record-btrace.c (cmd_record_btrace_bts_start): Update. (cmd_record_btrace_pt_start): Update. (cmd_record_btrace_start): Update. (cmd_record_btrace_start): Update. * reverse.c (exec_reverse_once): Update. * python/python.c (execute_gdb_command): Don't copy the command. * event-top.c (command_line_handler): Update. (command_handler): Constify. * defs.h (deprecated_call_command_hook): Constify. * cli/cli-script.h (execute_user_command): Constify. * cli/cli-script.c (execute_user_command): Constify. (execute_cmd_pre_hook, execute_cmd_post_hook): Constify. (enum command_control_type): Update. * main.c (catch_command_errors): Remove non-const overload. (catch_command_errors_ftype): Remove. * python/py-cmd.c (cmdpy_function): Constify. * guile/scm-cmd.c (cmdscm_function): Constify. * cli/cli-dump.c (call_dump_func): Constify. * cli/cli-decode.c (do_const_cfunc): Constify. (do_sfunc): Constify. (cmd_func): Constify. * gdbcmd.h (execute_command, execute_command_to_string): Constify. * top.h (execute_command): Constify. * top.c (execute_command): Constify. (execute_command_to_string): Constify. (deprecated_call_command_hook): Constify. * command.h (cmd_func): Constify. * cli/cli-decode.h (struct cmd_list_element) : Constify. commit eb4c3f4aaae2ee1b27c210e951260a7e699133b4 Author: Tom Tromey Date: Sat Oct 14 09:07:00 2017 -0600 Constify add_setshow_* This constifies the add_setshow_* family of functions, and then fixes up the fallout. The bulk of this patch was written by script. gdb/ChangeLog 2017-11-07 Tom Tromey * ada-lang.c (catch_ada_exception_command): Constify. (catch_assert_command): Constify. * break-catch-throw.c (catch_catch_command, catch_throw_command) (catch_rethrow_command): Constify. (catch_exception_command_1): Constify. * breakpoint.h (add_catch_command): Constify. * break-catch-syscall.c (catch_syscall_command_1): Constify. (catch_syscall_split_args): Constify. * break-catch-sig.c (catch_signal_command): Constify. (catch_signal_split_args): Constify. * cli/cli-decode.h (struct cmd_list_element) : Use cmd_const_sfunc_ftype. * cli/cli-decode.c (add_setshow_cmd_full): Constify. (add_setshow_enum_cmd, add_setshow_auto_boolean_cmd) (add_setshow_boolean_cmd, add_setshow_filename_cmd) (add_setshow_string_cmd, struct cmd_list_element) (add_setshow_optional_filename_cmd, add_setshow_integer_cmd) (add_setshow_uinteger_cmd, add_setshow_zinteger_cmd) (add_setshow_zuinteger_unlimited_cmd, add_setshow_zuinteger_cmd): Constify. (set_cmd_sfunc): Constify. (empty_sfunc): Constify. * command.h (add_setshow_enum_cmd, add_setshow_auto_boolean_cmd) (add_setshow_boolean_cmd, add_setshow_filename_cmd) (add_setshow_string_cmd, add_setshow_string_noescape_cmd) (add_setshow_optional_filename_cmd, add_setshow_integer_cmd) (add_setshow_uinteger_cmd, add_setshow_zinteger_cmd) (add_setshow_zuinteger_cmd, add_setshow_zuinteger_unlimited_cmd): Constify. (set_cmd_sfunc): Constify. (cmd_sfunc_ftype): Remove. * compile/compile.c (set_compile_args): Constify. * infrun.c (set_disable_randomization): Constify. * infcmd.c (set_args_command, set_cwd_command): Constify. * breakpoint.c (set_condition_evaluation_mode): Constify. (add_catch_command): Constify. (catch_fork_command_1, catch_exec_command_1) (catch_load_command_1, catch_unload_command_1): Constify. (catch_load_or_unload): Constify. * guile/scm-param.c (pascm_set_func): Constify. (add_setshow_generic): Constify. * python/py-param.c (get_set_value): Constify. * top.h (set_verbose): Constify. * tui/tui-win.c (tui_set_var_cmd): Constify. * mi/mi-main.c (set_mi_async_command): Constify. * cli/cli-logging.c (set_logging_overwrite) (set_logging_redirect): Constify. * value.c (set_max_value_size): Constify. * valprint.c (set_input_radix, set_output_radix): Constify. * utils.c (set_width_command, set_height_command): Constify. * typeprint.c (set_print_type_methods, set_print_type_typedefs): Constify. * tracepoint.c (set_disconnected_tracing) (set_circular_trace_buffer, set_trace_buffer_size) (set_trace_user, set_trace_notes, set_trace_stop_notes): Constify. * top.c (set_history_size_command, set_verbose, set_editing) (set_gdb_datadir, set_history_filename): Constify. * target.c (set_targetdebug, maint_set_target_async_command) (maint_set_target_non_stop_command, set_target_permissions) (set_write_memory_permission): Constify. (open_target): Constify. * target-descriptions.c (set_tdesc_filename_cmd): Constify. * target-dcache.c (set_stack_cache, set_code_cache): Constify. * symtab.c (set_symbol_cache_size_handler): Constify. * symfile.c (set_ext_lang_command): Constify. * symfile-debug.c (set_debug_symfile): Constify. * source.c (set_directories_command): Constify. * solib.c (reload_shared_libraries, gdb_sysroot_changed): Constify. * serial.c (set_parity): Constify. * rs6000-tdep.c (powerpc_set_soft_float, powerpc_set_vector_abi): Constify. * remote.c (set_remote_exec_file, set_remotebreak) (set_remote_protocol_Z_packet_cmd, set_range_stepping): Constify. * record.c (set_record_insn_history_size) (set_record_call_history_size): Constify. * record-full.c (set_record_full_insn_max_num): Constify. * proc-api.c (set_procfs_trace_cmd, set_procfs_file_cmd): Constify. * osabi.c (set_osabi): Constify. * mips-tdep.c (set_mips64_transfers_32bit_regs) (reinit_frame_cache_sfunc, mips_abi_update): Constify. * maint.c (maintenance_set_profile_cmd): Constify. * linux-thread-db.c (set_libthread_db_search_path): Constify. * language.c (set_language_command, set_range_command) (set_case_command): Constify. * infrun.c (set_non_stop, set_observer_mode) (set_stop_on_solib_events, set_schedlock_func) (set_exec_direction_func): Constify. * infcmd.c (set_inferior_tty_command): Constify. * disasm.c (set_disassembler_options_sfunc): Constify. * demangle.c (set_demangling_command): Constify. * dcache.c (set_dcache_size, set_dcache_line_size): Constify. * cris-tdep.c (set_cris_version, set_cris_mode) (set_cris_dwarf2_cfi): Constify. * corefile.c (set_gnutarget_command): Constify. * charset.c (set_host_charset_sfunc, set_target_charset_sfunc) (set_target_wide_charset_sfunc): Constify. * breakpoint.c (update_dprintf_commands): Constify. * auto-load.c (set_auto_load_dir, set_auto_load_safe_path): Constify. * arm-tdep.c (set_fp_model_sfunc, arm_set_abi) (set_disassembly_style_sfunc): Constify. * arch-utils.c (set_endian, set_architecture): Constify. * alpha-tdep.c (reinit_frame_cache_sfunc): Constify. * agent.c (set_can_use_agent): Constify. commit 5fed81ff351121887a93b5b57caebb86667cbbd2 Author: Tom Tromey Date: Fri Oct 13 22:58:21 2017 -0600 Remove cmd_cfunc_ftype This removes cmd_cfunc_ftype and the non-const overload of add_cmd; then fixes up the fallout. For the most part this patch is straightforward. There are a few files (go32-nat.c, windows-nat.c, and gnu-nat.c) that I could not compile; so I made a best effort there. gdb/ChangeLog 2017-11-07 Tom Tromey * go32-nat.c (go32_sysinfo, go32_sldt, go32_sgdt, go32_sidt) (go32_pde, go32_pte, go32_pte_for_address): Constify. * gnu-nat.c (_parse_bool_arg, show_thread_default_pause_cmd) (set_thread_default_pause_cmd, set_thread_default_run_cmd) (show_thread_default_run_cmd, set_thread_default_detach_sc_cmd) (parse_int_arg, show_thread_default_detach_sc_cmd) (set_signals_cmd, show_signals_cmd, set_sig_thread_cmd) (show_sig_thread_cmd, set_stopped_cmd, show_stopped_cmd) (set_exceptions_cmd, show_exceptions_cmd, set_task_pause_cmd) (show_task_pause_cmd, set_task_detach_sc_cmd) (show_task_detach_sc_cmd, set_task_exc_port_cmd) (set_noninvasive_cmd, set_thread_pause_cmd) (show_thread_pause_cmd, set_thread_run_cmd, show_thread_run_cmd) (set_thread_detach_sc_cmd, show_thread_detach_sc_cmd) (set_thread_exc_port_cmd, thread_takeover_sc_cmd): Constify. * windows-nat.c (display_selectors): Constify. * cli/cli-decode.h (struct cmd_list_element) : Remove non-const "cfunc". * cli/cli-decode.c (set_cmd_cfunc): Remove non-const overload. (cmd_cfunc_eq): Likewise. (struct cmd_list_element): Likewise. (do_cfunc): Remove. (cli_user_command_p): Update. * command.h (add_cmd): Remove non-const overload. (cmd_cfunc_ftype): Remove typedef. (cmd_cfunc_eq): Remove non-const overload. * value.c (show_values): Constify. * thread.c (thread_apply_all_command): Constify. * symfile.c (load_command): Constify. * source.c (directory_command): Constify. * maint.c (maintenance_internal_error) (maintenance_demangler_warning, maintenance_space_display) (maintenance_print_architecture, maintenance_translate_address) (maintenance_info_selftests, maintenance_internal_warning): Constify. * breakpoint.c (disable_trace_command, enable_trace_command): Constify. * auto-load.c (info_auto_load_local_gdbinit, add_auto_load_dir): Constify. (add_auto_load_safe_path): Constify. * guile/scm-auto-load.c (info_auto_load_guile_scripts): Constify. * top.h (show_commands): Constify. * linux-thread-db.c (info_auto_load_libthread_db): Constify. * sparc64-tdep.c (adi_examine_command): Constify. (adi_assign_command): Constify. commit 1d12d88f186fe1ae66deccf877b5509c506c4d39 Author: Tom Tromey Date: Fri Oct 13 22:07:26 2017 -0600 Constify add_info This patch constifies add_info and updates all the info commands. The bulk of this patch was written using a script; and then I did a manual pass to fix up the remaining compilation errors. I could not compile every changed file; in particular nto-procfs.c, gnu-nat.c, and darwin-nat-info.c; but I at least tried to check the correctness by inspection. gdb/ChangeLog 2017-11-07 Tom Tromey * frame.h (info_locals_command, info_args_command): Constify. * auto-load.h (auto_load_info_scripts): Constify. * inferior.h (registers_info): Constify. * copying.c: Rebuild. * copying.awk: Constify generated commands. * auto-load.c (auto_load_info_scripts) (info_auto_load_gdb_scripts): Constify. * cli/cli-decode.c (struct cmd_list_element): Take a cmd_const_cfunc_ftype. * command.h (add_info): Take a cmd_const_cfunc_ftype. * tui/tui-win.c (tui_all_windows_info): Constify. * python/py-auto-load.c (info_auto_load_python_scripts): Constify. * cli/cli-cmds.c (show_command): Remove non-const overload. * tracepoint.c (info_tvariables_command, info_scope_command): Constify. (info_static_tracepoint_markers_command): Constify. * thread.c (info_threads_command): Constify. (print_thread_info_1): Constify. * target.c (info_target_command): Constify. * symtab.c (info_sources_command, info_functions_command) (info_types_command): Constify. (info_variables_command): Remove non-const overload. * symfile.c (info_ext_lang_command): Constify. * stack.c (info_frame_command, info_locals_command) (info_args_command): Constify. (backtrace_command): Remove non-const overload. * source.c (info_source_command, info_line_command): Constify. * solib.c (info_sharedlibrary_command): Constify. * skip.c (info_skip_command): Constify. * ser-go32.c (info_serial_command): Constify. * reverse.c (info_bookmarks_command): Constify. * printcmd.c (info_symbol_command, info_address_command) (info_display_command): Constify. * osdata.c (info_osdata_command): Constify. * objc-lang.c (info_selectors_command, info_classes_command): Constify. * nto-procfs.c (procfs_pidlist, procfs_meminfo): Constify. * memattr.c (info_mem_command): Constify. * macrocmd.c (info_macro_command, info_macros_command): Constify. * linux-fork.c (info_checkpoints_command): Constify. * infrun.c (info_signals_command): Constify. * inflow.c (info_terminal_command): Constify. * inferior.c (info_inferiors_command): Constify. (print_inferior): Constify. * infcmd.c (info_program_command, info_all_registers_command) (info_registers_command, info_vector_command) (info_float_command): Constify. (registers_info): Constify. * gnu-nat.c (info_send_rights_cmd, info_recv_rights_cmd) (info_port_sets_cmd, info_dead_names_cmd, info_port_rights_cmd): Constify. * f-valprint.c (info_common_command): Constify. * dcache.c (info_dcache_command): Constify. (dcache_info_1): Constify. * darwin-nat-info.c (info_mach_tasks_command) (info_mach_task_command, info_mach_ports_command) (info_mach_port_command, info_mach_threads_command) (info_mach_thread_command, info_mach_regions_command) (info_mach_regions_recurse_command, info_mach_region_command) (info_mach_exceptions_command): Constify. (get_task_from_args): Constify. * cp-support.c (info_vtbl_command): Constify. * breakpoint.c (info_watchpoints_command) (info_tracepoints_command): Constify. (info_breakpoints_command): Remove non-const overload. * avr-tdep.c (avr_io_reg_read_command): Constify. * auxv.c (info_auxv_command): Constify. * ada-tasks.c (info_tasks_command): Constify. (info_task): Constify. * ada-lang.c (info_exceptions_command): Constify. commit 0b39b52e6e92cf6d465d48499c657fcb17a63c7f Author: Tom Tromey Date: Wed Oct 11 15:43:01 2017 -0600 Constify add_com This changes add_com to take a cmd_const_cfunc_ftype, and then fixes up all the command implementations. In most cases this is trivial. In a couple of places I had to again introduce a temporary non-const overload. These overloads will be removed when add_info is constified. gdb/ChangeLog 2017-11-07 Tom Tromey * solib.h (no_shared_libraries): Constify. * frame.h (return_command): Constify. * cli/cli-cmds.h (quit_command): Constify. * top.h (quit_command, execute_command): Constify. * target.h (flash_erase_command): Constify. * inferior.h (set_inferior_args, attach_command): Constify. * tracepoint.h (start_tracing, stop_tracing): Constify. * breakpoint.h (break_command, tbreak_command) (hbreak_command_wrapper, thbreak_command_wrapper) (rbreak_command_wrapper, watch_command_wrapper) (awatch_command_wrapper, rwatch_command_wrapper) (get_tracepoint_by_number): Constify. * symtab.c (info_variables_command, rbreak_command) (symtab_symbol_info): Constify. (info_variables_command): Add non-const overload. * top.c (dont_repeat_command): Constify. * breakpoint.c (ignore_command, commands_command) (condition_command, tbreak_command, hbreak_command) (thbreak_command, clear_command, break_command) (info_breakpoints_command, watch_command, rwatch_command) (awatch_command, trace_command, ftrace_command, strace_command) (trace_pass_command, break_range_command, dprintf_command) (agent_printf_command, get_tracepoint_by_number) (watch_maybe_just_location, trace_pass_command): Constify. (info_breakpoints_command): Add non-const overload. * tracefile.c (tsave_command): Constify. * infcmd.c (attach_command, disconnect_command, signal_command) (queue_signal_command, stepi_command, nexti_command) (finish_command, next_command, step_command, until_command) (advance_command, jump_command, continue_command, run_command) (start_command, starti_command, interrupt_command) (run_command_1, set_inferior_args, step_1): Constify. * inferior.c (add_inferior_command, remove_inferior_command) (clone_inferior_command): Constify. * linux-fork.c (checkpoint_command, restart_command): Constify. * windows-nat.c (signal_event_command): Constify. * guile/guile.c (guile_repl_command, guile_command): Constify. * printcmd.c (x_command, display_command, printf_command) (output_command, set_command, call_command, print_command) (eval_command): Constify. (non_const_set_command): Remove. (_initialize_printcmd): Update. * source.c (forward_search_command, reverse_search_command): Constify. * jit.c (jit_reader_load_command, jit_reader_unload_command): Constify. * infrun.c (handle_command): Constify. * memattr.c (mem_command): Constify. * stack.c (return_command, up_command, up_silently_command) (down_command, down_silently_command, frame_command) (backtrace_command, func_command, backtrace_command_1): Constify. (backtrace_command): Add non-const overload. * remote-sim.c (simulator_command): Constify. * exec.c (set_section_command): Constify. * tracepoint.c (tdump_command, trace_variable_command) (tstatus_command, tstop_command, tstart_command) (end_actions_pseudocommand, while_stepping_pseudocommand) (collect_pseudocommand, teval_pseudocommand, actions_command) (start_tracing, stop_tracing): Constify. * value.c (init_if_undefined_command): Constify. * tui/tui-stack.c (tui_update_command): Constify. * tui/tui-win.c (tui_refresh_all_command) (tui_set_tab_width_command, tui_set_win_height_command) (tui_set_focus_command, tui_scroll_forward_command) (tui_scroll_backward_command, tui_scroll_left_command) (tui_scroll_right_command, parse_scrolling_args, tui_set_focus) (tui_set_win_height): Constify. * tui/tui-layout.c (tui_layout_command): Constify. * procfs.c (proc_trace_syscalls, proc_trace_sysentry_cmd) (proc_trace_sysexit_cmd, proc_untrace_sysentry_cmd) (proc_untrace_sysexit_cmd): Constify. * remote.c (threadlist_test_cmd, threadinfo_test_cmd) (threadset_test_cmd, threadlist_update_test_cmd) (threadalive_test): Constify. * objc-lang.c (print_object_command): Constify. * command.h (add_com): Constify. * cli/cli-dump.c (restore_command): Constify. * cli/cli-cmds.c (pwd_command, echo_command, quit_command) (help_command, complete_command, shell_command, edit_command) (list_command, disassemble_command, make_command) (apropos_command, alias_command): Constify. * cli/cli-script.c (document_command, define_command) (while_command, if_command, validate_comname): Constify. * cli/cli-decode.c (struct cmd_list_element): Change type of "fun". * target.c (do_monitor_command, flash_erase_command): Constify. * regcache.c (reg_flush_command): Constify. * reverse.c (reverse_step, reverse_next, reverse_stepi) (reverse_nexti, reverse_continue, reverse_finish) (save_bookmark_command, goto_bookmark_command) (exec_reverse_once): Constify. * python/python.c (python_interactive_command, python_command): Constify. * typeprint.c (ptype_command, whatis_command, whatis_exp): Constify. * solib.c (sharedlibrary_command, no_shared_libraries): Constify. * gcore.c (gcore_command): Constify. commit 85c4be7c83b80acf647e6ffcaed0f0cdbcb8c3eb Author: Tom Tromey Date: Thu Oct 12 08:27:21 2017 -0600 Add set_repeat_arguments function The "x", "list", and "show commands" commands have special repetition behavior: repeating the command doesn't re-run it with the same arguments This is currently implemented by modifying the passed-in argument; but that won't work properly with const arguments (and seems pretty obscure besides). This patch adds a new "set_repeat_arguments" function and changes the relevant places to call it. gdb/ChangeLog 2017-11-07 Tom Tromey * printcmd.c (x_command): Call set_repeat_arguments. * cli/cli-cmds.c (list_command): Call set_repeat_arguments. * top.c (repeat_arguments): New global. (set_repeat_arguments): New function. (execute_command): Handle repeat_arguments. (show_commands): Calls set_repeat_arguments. * command.h (set_repeat_arguments): Declare. commit 022643b4456ee13752b0f3a8411238ab8c53bf6d Author: Tom Tromey Date: Thu Oct 12 08:08:00 2017 -0600 Remove cleanup from backtrace_command This removes a cleanup from backtrace_command, replacing it with std::string. This patch temporarily changes backtrace_command so that the parameter is named "args_in" and is immediately constified; this is fixed again in the constification patch. gdb/ChangeLog 2017-11-07 Tom Tromey * stack.c (backtrace_command): Use std::string. (backtrace_command_1): Make "count_exp" const. commit 5614fb77203f5ea01edfb2d739e9d4f3d570dc09 Author: Tom Tromey Date: Wed Oct 11 17:04:29 2017 -0600 Constify add_path and friends This constifies add_path, mod_path, and directory_switch. gdb/ChangeLog 2017-11-07 Tom Tromey * source.c (directory_switch, mod_path, add_path): Constify. * defs.h (add_path, mod_path, directory_switch): Constify. * mi/mi-cmd-env.c (env_mod_path): Constify. commit 6be9a197d96c3c346271b46ec6270bd719eb9932 Author: Tom Tromey Date: Tue Oct 10 21:54:01 2017 -0600 Make strip_bg_char return a unique_xmalloc_ptr This changes strip_bg_char to return a unique_xmalloc_ptr and removes several cleanups. gdb/ChangeLog 2017-11-07 Tom Tromey * infcmd.c (strip_bg_char): Return gdb::unique_xmalloc_ptr. (run_command_1, continue_command, step_1, jump_command) (signal_command, until_command, advance_command, finish_command) (attach_command): Update. commit c2252c0dd8dcf3bb95598149aecd3158e89c31d7 Author: Tom Tromey Date: Tue Oct 10 18:14:10 2017 -0600 Make set_cmd_cfunc private set_cmd_cfunc is only used in cli-decode.c, and I don't think there is a good reason to expose it directly. So, this patch makes it private. gdb/ChangeLog 2017-11-07 Tom Tromey * command.h (set_cmd_cfunc): Don't declare. * cli/cli-decode.c (set_cmd_cfunc): Now static. commit 1ee870c5249864d36717a08864c60d7166b6b292 Author: Tom Tromey Date: Tue Oct 10 18:12:06 2017 -0600 Constify add_com_suppress_notification This constifies add_com_suppress_notification and fixes the one caller. gdb/ChangeLog 2017-11-07 Tom Tromey * stack.c (select_frame_command): Constify. * cli/cli-decode.c (add_com_suppress_notification): Constify. * command.h (add_com_suppress_notification): Constify. commit ee7ddd713206fdf02512a9fb3fe928a210200c11 Author: Tom Tromey Date: Tue Oct 10 17:51:52 2017 -0600 Constify add_abbrev_prefix_cmd This changes add_abbrev_prefix_cmd to take a const-taking callback function and then fixes the one caller. gdb/ChangeLog 2017-11-07 Tom Tromey * breakpoint.c (stop_command): Constify. * cli/cli-decode.c (struct cmd_list_element): Constify. * command.h (add_abbrev_prefix_cmd): Constify. commit 52eab766df54915f8d3d71475235868285c4ca82 Author: Andrew Burgess Date: Tue Nov 7 20:24:21 2017 +0000 opcodes/arc: Fix incorrect insn_class for some nps insns A small number of NPS400 instruction incorrectly used NONE as an insn_class_t, which would trigger a build warning. Fixed by changing to MISC. opcodes/ChangeLog: * arc-nps400-tbl.h: Change incorrect use of NONE to MISC. ----------------------------------------------------------------------- Summary of changes: COPYING.LIBGLOSS | 8 +- ChangeLog | 22 + bfd/ChangeLog | 5179 +- bfd/ChangeLog-2017 | 5727 + bfd/MAINTAINERS | 2 +- bfd/Makefile.am | 2 +- bfd/Makefile.in | 2 +- bfd/PORTING | 2 +- bfd/README | 2 +- bfd/TODO | 2 +- bfd/acinclude.m4 | 2 +- bfd/aix386-core.c | 4 +- bfd/aix5ppc-core.c | 2 +- bfd/aout-adobe.c | 40 +- bfd/aout-arm.c | 36 +- bfd/aout-cris.c | 6 +- bfd/aout-ns32k.c | 16 +- bfd/aout-sparcle.c | 2 +- bfd/aout-target.h | 6 +- bfd/aout-tic30.c | 28 +- bfd/aout0.c | 2 +- bfd/aout32.c | 2 +- bfd/aout64.c | 2 +- bfd/aoutf1.h | 4 +- bfd/aoutx.h | 229 +- bfd/arc-got.h | 28 +- bfd/arc-plt.def | 10 +- bfd/arc-plt.h | 14 +- bfd/archive.c | 33 +- bfd/archive64.c | 4 +- bfd/archures.c | 540 +- bfd/armnetbsd.c | 8 +- bfd/bfd-in.h | 24 +- bfd/bfd-in2.h | 826 +- bfd/bfd.c | 153 +- bfd/bfd.m4 | 2 +- bfd/bfdio.c | 126 +- bfd/bfdwin.c | 2 +- bfd/binary.c | 56 +- bfd/bout.c | 42 +- bfd/cache.c | 44 +- bfd/cf-i386lynx.c | 2 +- bfd/cf-sparclynx.c | 2 +- bfd/cisco-core.c | 34 +- bfd/coff-alpha.c | 10 +- bfd/coff-apollo.c | 16 +- bfd/coff-arm.c | 429 +- bfd/coff-aux.c | 2 +- bfd/coff-bfd.c | 2 +- bfd/coff-bfd.h | 2 +- bfd/coff-go32.c | 2 +- bfd/coff-h8300.c | 4 +- bfd/coff-h8500.c | 2 +- bfd/coff-i386.c | 19 +- bfd/coff-i860.c | 101 +- bfd/coff-i960.c | 18 +- bfd/coff-ia64.c | 2 +- bfd/coff-m68k.c | 27 +- bfd/coff-m88k.c | 11 +- bfd/coff-mcore.c | 138 +- bfd/coff-mips.c | 12 +- bfd/coff-ppc.c | 638 +- bfd/coff-rs6000.c | 242 +- bfd/coff-sh.c | 136 +- bfd/coff-sparc.c | 2 +- bfd/coff-stgo32.c | 6 +- bfd/coff-svm68k.c | 2 +- bfd/coff-tic30.c | 2 +- bfd/coff-tic4x.c | 24 +- bfd/coff-tic54x.c | 32 +- bfd/coff-tic80.c | 16 +- bfd/coff-u68k.c | 2 +- bfd/coff-w65.c | 2 +- bfd/coff-we32k.c | 16 +- bfd/coff-x86_64.c | 56 +- bfd/coff-z80.c | 22 +- bfd/coff-z8k.c | 52 +- bfd/coff64-rs6000.c | 76 +- bfd/coffcode.h | 108 +- bfd/coffgen.c | 140 +- bfd/cofflink.c | 206 +- bfd/coffswap.h | 4 +- bfd/compress.c | 6 +- bfd/config.bfd | 2 +- bfd/configure | 20 +- bfd/configure.ac | 2 +- bfd/configure.com | 2 +- bfd/configure.host | 2 +- bfd/corefile.c | 28 +- bfd/cpu-aarch64.c | 2 +- bfd/cpu-alpha.c | 4 +- bfd/cpu-arc.c | 2 +- bfd/cpu-arm.c | 26 +- bfd/cpu-avr.c | 4 +- bfd/cpu-bfin.c | 18 +- bfd/cpu-cr16.c | 16 +- bfd/cpu-cr16c.c | 4 +- bfd/cpu-cris.c | 2 +- bfd/cpu-crx.c | 10 +- bfd/cpu-d10v.c | 4 +- bfd/cpu-d30v.c | 2 +- bfd/cpu-dlx.c | 2 +- bfd/cpu-epiphany.c | 2 +- bfd/cpu-fr30.c | 2 +- bfd/cpu-frv.c | 8 +- bfd/cpu-ft32.c | 50 +- bfd/cpu-h8300.c | 2 +- bfd/cpu-h8500.c | 2 +- bfd/cpu-hppa.c | 2 +- bfd/cpu-i370.c | 30 +- bfd/cpu-i386.c | 2 +- bfd/cpu-i860.c | 2 +- bfd/cpu-i960.c | 14 +- bfd/cpu-ia64-opc.c | 8 +- bfd/cpu-ia64.c | 2 +- bfd/cpu-iamcu.c | 2 +- bfd/cpu-ip2k.c | 4 +- bfd/cpu-iq2000.c | 2 +- bfd/cpu-k1om.c | 2 +- bfd/cpu-l1om.c | 2 +- bfd/cpu-lm32.c | 25 +- bfd/cpu-m10200.c | 2 +- bfd/cpu-m10300.c | 2 +- bfd/cpu-m32c.c | 2 +- bfd/cpu-m32r.c | 4 +- bfd/cpu-m68hc11.c | 2 +- bfd/cpu-m68hc12.c | 2 +- bfd/cpu-m68k.c | 2 +- bfd/cpu-m88k.c | 2 +- bfd/cpu-m9s12x.c | 2 +- bfd/cpu-m9s12xg.c | 2 +- bfd/cpu-mcore.c | 24 +- bfd/cpu-mep.c | 2 +- bfd/cpu-metag.c | 2 +- bfd/cpu-microblaze.c | 24 +- bfd/cpu-mips.c | 66 +- bfd/cpu-mmix.c | 2 +- bfd/cpu-moxie.c | 16 +- bfd/cpu-msp430.c | 2 +- bfd/cpu-mt.c | 16 +- bfd/cpu-nds32.c | 2 +- bfd/cpu-nios2.c | 4 +- bfd/cpu-ns32k.c | 18 +- bfd/cpu-or1k.c | 14 +- bfd/cpu-pdp11.c | 2 +- bfd/cpu-pj.c | 2 +- bfd/cpu-plugin.c | 2 +- bfd/cpu-powerpc.c | 56 +- bfd/cpu-pru.c | 4 +- bfd/cpu-riscv.c | 2 +- bfd/cpu-rl78.c | 2 +- bfd/cpu-rs6000.c | 2 +- bfd/cpu-rx.c | 2 +- bfd/cpu-s390.c | 2 +- bfd/cpu-score.c | 2 +- bfd/cpu-sh.c | 84 +- bfd/cpu-sparc.c | 2 +- bfd/cpu-spu.c | 4 +- bfd/cpu-tic30.c | 2 +- bfd/cpu-tic4x.c | 2 +- bfd/cpu-tic54x.c | 2 +- bfd/cpu-tic6x.c | 2 +- bfd/cpu-tic80.c | 2 +- bfd/cpu-tilegx.c | 2 +- bfd/cpu-tilepro.c | 2 +- bfd/cpu-v850.c | 14 +- bfd/cpu-v850_rh850.c | 18 +- bfd/cpu-vax.c | 2 +- bfd/cpu-visium.c | 2 +- bfd/cpu-w65.c | 2 +- bfd/cpu-wasm32.c | 2 +- bfd/cpu-we32k.c | 2 +- bfd/cpu-xc16x.c | 2 +- bfd/cpu-xgate.c | 4 +- bfd/cpu-xstormy16.c | 2 +- bfd/cpu-xtensa.c | 2 +- bfd/cpu-z80.c | 8 +- bfd/cpu-z8k.c | 2 +- bfd/demo64.c | 2 +- bfd/development.sh | 2 +- bfd/doc/Makefile.am | 2 +- bfd/doc/Makefile.in | 2 +- bfd/doc/bfd.texinfo | 6 +- bfd/doc/bfdint.texi | 4 +- bfd/doc/bfdsumm.texi | 2 +- bfd/doc/chew.c | 2 +- bfd/doc/header.sed | 2 +- bfd/doc/makefile.vms | 2 +- bfd/dwarf1.c | 18 +- bfd/dwarf2.c | 148 +- bfd/ecoff.c | 152 +- bfd/ecofflink.c | 192 +- bfd/ecoffswap.h | 192 +- bfd/elf-attrs.c | 2 +- bfd/elf-bfd.h | 49 +- bfd/elf-eh-frame.c | 18 +- bfd/elf-hppa.h | 14 +- bfd/elf-ifunc.c | 2 +- bfd/elf-linux-core.h | 2 +- bfd/elf-m10200.c | 8 +- bfd/elf-m10300.c | 86 +- bfd/elf-nacl.c | 2 +- bfd/elf-nacl.h | 2 +- bfd/elf-properties.c | 16 +- bfd/elf-s390-common.c | 10 +- bfd/elf-s390.h | 2 +- bfd/elf-strtab.c | 6 +- bfd/elf-vxworks.c | 20 +- bfd/elf-vxworks.h | 2 +- bfd/elf.c | 417 +- bfd/elf32-am33lin.c | 8 +- bfd/elf32-arc.c | 64 +- bfd/elf32-arm.c | 1007 +- bfd/elf32-avr.c | 2290 +- bfd/elf32-avr.h | 14 +- bfd/elf32-bfin.c | 392 +- bfd/elf32-cr16.c | 3354 +- bfd/elf32-cr16c.c | 14 +- bfd/elf32-cris.c | 82 +- bfd/elf32-crx.c | 12 +- bfd/elf32-d10v.c | 136 +- bfd/elf32-d30v.c | 10 +- bfd/elf32-dlx.c | 270 +- bfd/elf32-dlx.h | 2 +- bfd/elf32-epiphany.c | 74 +- bfd/elf32-fr30.c | 108 +- bfd/elf32-frv.c | 97 +- bfd/elf32-ft32.c | 114 +- bfd/elf32-gen.c | 2 +- bfd/elf32-h8300.c | 28 +- bfd/elf32-hppa.c | 297 +- bfd/elf32-hppa.h | 2 +- bfd/elf32-i370.c | 18 +- bfd/elf32-i386.c | 275 +- bfd/elf32-i860.c | 198 +- bfd/elf32-i960.c | 8 +- bfd/elf32-ip2k.c | 264 +- bfd/elf32-iq2000.c | 6 +- bfd/elf32-lm32.c | 2322 +- bfd/elf32-m32c.c | 163 +- bfd/elf32-m32r.c | 2065 +- bfd/elf32-m68hc11.c | 706 +- bfd/elf32-m68hc12.c | 74 +- bfd/elf32-m68hc1x.c | 772 +- bfd/elf32-m68hc1x.h | 16 +- bfd/elf32-m68k.c | 132 +- bfd/elf32-m88k.c | 4 +- bfd/elf32-mcore.c | 138 +- bfd/elf32-mep.c | 82 +- bfd/elf32-metag.c | 207 +- bfd/elf32-metag.h | 2 +- bfd/elf32-microblaze.c | 1561 +- bfd/elf32-mips.c | 96 +- bfd/elf32-moxie.c | 22 +- bfd/elf32-msp430.c | 164 +- bfd/elf32-mt.c | 288 +- bfd/elf32-nds32.c | 347 +- bfd/elf32-nds32.h | 10 +- bfd/elf32-nios2.c | 62 +- bfd/elf32-nios2.h | 2 +- bfd/elf32-or1k.c | 3214 +- bfd/elf32-pj.c | 76 +- bfd/elf32-ppc.c | 582 +- bfd/elf32-ppc.h | 10 +- bfd/elf32-pru.c | 22 +- bfd/elf32-rl78.c | 273 +- bfd/elf32-rx.c | 259 +- bfd/elf32-rx.h | 8 +- bfd/elf32-s390.c | 374 +- bfd/elf32-score.c | 3028 +- bfd/elf32-score.h | 76 +- bfd/elf32-score7.c | 2686 +- bfd/elf32-sh-relocs.h | 2 +- bfd/elf32-sh-symbian.c | 42 +- bfd/elf32-sh.c | 147 +- bfd/elf32-sh64-com.c | 2 +- bfd/elf32-sh64.c | 6 +- bfd/elf32-sh64.h | 2 +- bfd/elf32-sparc.c | 8 +- bfd/elf32-spu.c | 52 +- bfd/elf32-spu.h | 7 +- bfd/elf32-tic6x.c | 131 +- bfd/elf32-tic6x.h | 2 +- bfd/elf32-tilegx.c | 20 +- bfd/elf32-tilegx.h | 16 +- bfd/elf32-tilepro.c | 901 +- bfd/elf32-tilepro.h | 14 +- bfd/elf32-v850.c | 448 +- bfd/elf32-vax.c | 68 +- bfd/elf32-visium.c | 2 +- bfd/elf32-wasm32.c | 76 +- bfd/elf32-xc16x.c | 136 +- bfd/elf32-xgate.c | 36 +- bfd/elf32-xgate.h | 4 +- bfd/elf32-xstormy16.c | 156 +- bfd/elf32-xtensa.c | 106 +- bfd/elf32.c | 2 +- bfd/elf64-alpha.c | 189 +- bfd/elf64-gen.c | 2 +- bfd/elf64-hppa.c | 73 +- bfd/elf64-hppa.h | 2 +- bfd/elf64-ia64-vms.c | 723 +- bfd/elf64-mips.c | 78 +- bfd/elf64-mmix.c | 49 +- bfd/elf64-ppc.c | 500 +- bfd/elf64-ppc.h | 5 +- bfd/elf64-s390.c | 259 +- bfd/elf64-sh64.c | 210 +- bfd/elf64-sparc.c | 44 +- bfd/elf64-tilegx.c | 20 +- bfd/elf64-tilegx.h | 16 +- bfd/elf64-x86-64.c | 363 +- bfd/elf64.c | 2 +- bfd/elfcode.h | 10 +- bfd/elfcore.h | 6 +- bfd/elflink.c | 224 +- bfd/elfn32-mips.c | 104 +- bfd/elfnn-aarch64.c | 293 +- bfd/elfnn-ia64.c | 105 +- bfd/elfnn-riscv.c | 164 +- bfd/elfxx-aarch64.c | 72 +- bfd/elfxx-aarch64.h | 8 +- bfd/elfxx-ia64.c | 48 +- bfd/elfxx-ia64.h | 4 +- bfd/elfxx-mips.c | 364 +- bfd/elfxx-mips.h | 2 +- bfd/elfxx-riscv.c | 22 +- bfd/elfxx-riscv.h | 2 +- bfd/elfxx-sparc.c | 531 +- bfd/elfxx-sparc.h | 2 +- bfd/elfxx-target.h | 2 +- bfd/elfxx-tilegx.c | 737 +- bfd/elfxx-tilegx.h | 2 +- bfd/elfxx-x86.c | 139 +- bfd/elfxx-x86.h | 10 +- bfd/epoc-pe-arm.c | 2 +- bfd/epoc-pei-arm.c | 2 +- bfd/format.c | 2 +- bfd/freebsd.h | 4 +- bfd/gen-aout.c | 2 +- bfd/genlink.h | 2 +- bfd/hash.c | 20 +- bfd/host-aout.c | 4 +- bfd/hosts/alphalinux.h | 2 +- bfd/hosts/alphavms.h | 2 +- bfd/hosts/decstation.h | 2 +- bfd/hosts/delta68.h | 2 +- bfd/hosts/dpx2.h | 2 +- bfd/hosts/hp300bsd.h | 2 +- bfd/hosts/i386bsd.h | 2 +- bfd/hosts/i386linux.h | 2 +- bfd/hosts/i386mach3.h | 2 +- bfd/hosts/i386sco.h | 2 +- bfd/hosts/i860mach3.h | 2 +- bfd/hosts/m68kaux.h | 2 +- bfd/hosts/m68klinux.h | 2 +- bfd/hosts/m88kmach3.h | 2 +- bfd/hosts/mipsbsd.h | 2 +- bfd/hosts/mipsmach3.h | 2 +- bfd/hosts/news-mips.h | 2 +- bfd/hosts/news.h | 2 +- bfd/hosts/pc532mach.h | 2 +- bfd/hosts/riscos.h | 2 +- bfd/hosts/symmetry.h | 2 +- bfd/hosts/tahoe.h | 2 +- bfd/hosts/vaxbsd.h | 2 +- bfd/hosts/vaxlinux.h | 2 +- bfd/hosts/vaxult.h | 2 +- bfd/hosts/vaxult2.h | 2 +- bfd/hosts/x86-64linux.h | 10 +- bfd/hp300bsd.c | 2 +- bfd/hp300hpux.c | 44 +- bfd/hppabsd-core.c | 4 +- bfd/hpux-core.c | 140 +- bfd/i386aout.c | 16 +- bfd/i386bsd.c | 2 +- bfd/i386dynix.c | 2 +- bfd/i386freebsd.c | 2 +- bfd/i386linux.c | 4 +- bfd/i386lynx.c | 22 +- bfd/i386mach3.c | 4 +- bfd/i386msdos.c | 12 +- bfd/i386netbsd.c | 4 +- bfd/i386os9k.c | 2 +- bfd/ieee.c | 26 +- bfd/ihex.c | 94 +- bfd/init.c | 2 +- bfd/irix-core.c | 14 +- bfd/libaout.h | 72 +- bfd/libbfd-in.h | 10 +- bfd/libbfd.c | 18 +- bfd/libbfd.h | 16 +- bfd/libcoff-in.h | 14 +- bfd/libcoff.h | 35 +- bfd/libecoff.h | 2 +- bfd/libhppa.h | 2 +- bfd/libieee.h | 2 +- bfd/libnlm.h | 58 +- bfd/liboasys.h | 2 +- bfd/libpei.h | 32 +- bfd/libxcoff.h | 4 +- bfd/linker.c | 101 +- bfd/lynx-core.c | 12 +- bfd/m68k4knetbsd.c | 4 +- bfd/m68klinux.c | 4 +- bfd/m68knetbsd.c | 4 +- bfd/m88kmach3.c | 4 +- bfd/m88kopenbsd.c | 2 +- bfd/mach-o-aarch64.c | 34 +- bfd/mach-o-arm.c | 136 +- bfd/mach-o-i386.c | 196 +- bfd/mach-o-target.c | 74 +- bfd/mach-o-x86-64.c | 124 +- bfd/mach-o.c | 886 +- bfd/mach-o.h | 28 +- bfd/makefile.vms | 2 +- bfd/mep-relocs.pl | 2 +- bfd/merge.c | 28 +- bfd/mipsbsd.c | 6 +- bfd/mmo.c | 8 +- bfd/netbsd-core.c | 6 +- bfd/netbsd.h | 6 +- bfd/newsos3.c | 4 +- bfd/nlm-target.h | 70 +- bfd/nlm.c | 2 +- bfd/nlm32-alpha.c | 2 +- bfd/nlm32-i386.c | 2 +- bfd/nlm32-ppc.c | 530 +- bfd/nlm32-sparc.c | 8 +- bfd/nlm32.c | 2 +- bfd/nlm64.c | 2 +- bfd/nlmcode.h | 4 +- bfd/nlmswap.h | 2 +- bfd/ns32k.h | 14 +- bfd/ns32knetbsd.c | 4 +- bfd/oasys.c | 74 +- bfd/opncls.c | 62 +- bfd/osf-core.c | 2 +- bfd/pc532-mach.c | 4 +- bfd/pdp11.c | 114 +- bfd/pe-arm-wince.c | 2 +- bfd/pe-arm.c | 8 +- bfd/pe-i386.c | 10 +- bfd/pe-mcore.c | 8 +- bfd/pe-mips.c | 82 +- bfd/pe-ppc.c | 2 +- bfd/pe-sh.c | 2 +- bfd/pe-x86_64.c | 12 +- bfd/peXXigen.c | 330 +- bfd/pef-traceback.h | 2 +- bfd/pef.c | 70 +- bfd/pef.h | 8 +- bfd/pei-arm-wince.c | 2 +- bfd/pei-arm.c | 4 +- bfd/pei-i386.c | 10 +- bfd/pei-ia64.c | 2 +- bfd/pei-mcore.c | 4 +- bfd/pei-mips.c | 2 +- bfd/pei-ppc.c | 2 +- bfd/pei-sh.c | 2 +- bfd/pei-x86_64.c | 20 +- bfd/peicode.h | 160 +- bfd/plugin.c | 74 +- bfd/plugin.h | 2 +- bfd/po/Make-in | 10 +- bfd/po/bfd.pot | 2168 +- bfd/po/fr.po | 3779 +- bfd/po/ru.po | 7115 +- bfd/po/uk.po | 3770 +- bfd/ppcboot.c | 6 +- bfd/ptrace-core.c | 4 +- bfd/reloc.c | 296 +- bfd/reloc16.c | 2 +- bfd/riscix.c | 84 +- bfd/rs6000-core.c | 22 +- bfd/sco5-core.c | 2 +- bfd/section.c | 88 +- bfd/simple.c | 2 +- bfd/som.c | 304 +- bfd/som.h | 10 +- bfd/sparclinux.c | 4 +- bfd/sparclynx.c | 2 +- bfd/sparcnetbsd.c | 4 +- bfd/srec.c | 68 +- bfd/stab-syms.c | 2 +- bfd/stabs.c | 8 +- bfd/sunos.c | 44 +- bfd/syms.c | 170 +- bfd/sysdep.h | 2 +- bfd/targets.c | 258 +- bfd/tekhex.c | 78 +- bfd/trad-core.c | 4 +- bfd/vax1knetbsd.c | 4 +- bfd/vaxbsd.c | 2 +- bfd/vaxnetbsd.c | 4 +- bfd/verilog.c | 52 +- bfd/versados.c | 68 +- bfd/version.h | 2 +- bfd/version.m4 | 2 +- bfd/vms-alpha.c | 6146 +- bfd/vms-lib.c | 1602 +- bfd/vms-misc.c | 14 +- bfd/vms.h | 2 +- bfd/warning.m4 | 2 +- bfd/wasm-module.c | 252 +- bfd/wasm-module.h | 12 +- bfd/xcofflink.c | 38 +- bfd/xsym.c | 64 +- bfd/xsym.h | 74 +- bfd/xtensa-isa.c | 2 +- bfd/xtensa-modules.c | 2 +- binutils/BRANCHES | 5 +- binutils/ChangeLog | 1629 +- binutils/ChangeLog-2017 | 1886 + binutils/MAINTAINERS | 9 +- binutils/Makefile.am | 2 +- binutils/Makefile.in | 2 +- binutils/NEWS | 12 +- binutils/README | 2 +- binutils/README-how-to-make-a-release | 130 +- binutils/addr2line.c | 2 +- binutils/ar.c | 3 +- binutils/arlex.l | 2 +- binutils/arparse.y | 2 +- binutils/arsup.c | 2 +- binutils/arsup.h | 2 +- binutils/bfdtest1.c | 2 +- binutils/bfdtest2.c | 2 +- binutils/bin2c.c | 2 +- binutils/binemul.c | 2 +- binutils/binemul.h | 2 +- binutils/bucomm.c | 2 +- binutils/bucomm.h | 2 +- binutils/budbg.h | 2 +- binutils/coffdump.c | 2 +- binutils/coffgrok.c | 2 +- binutils/coffgrok.h | 2 +- binutils/configure | 20 +- binutils/configure.ac | 2 +- binutils/configure.com | 2 +- binutils/configure.tgt | 2 +- binutils/cxxfilt.c | 2 +- binutils/debug.c | 2 +- binutils/debug.h | 2 +- binutils/deflex.l | 2 +- binutils/defparse.y | 2 +- binutils/dlltool.c | 2 +- binutils/dlltool.h | 2 +- binutils/dllwrap.c | 2 +- binutils/doc/Makefile.am | 2 +- binutils/doc/Makefile.in | 2 +- binutils/doc/binutils.texi | 96 +- binutils/doc/debug.options.texi | 144 + binutils/dwarf-mode.el | 2 +- binutils/dwarf.c | 1244 +- binutils/dwarf.h | 46 +- binutils/elfcomm.c | 12 +- binutils/elfcomm.h | 12 +- binutils/elfedit.c | 2 +- binutils/embedspu.sh | 2 +- binutils/emul_aix.c | 2 +- binutils/emul_vanilla.c | 2 +- binutils/filemode.c | 2 +- binutils/ieee.c | 2 +- binutils/is-ranlib.c | 2 +- binutils/is-strip.c | 2 +- binutils/makefile.vms | 2 +- binutils/maybe-ranlib.c | 2 +- binutils/maybe-strip.c | 2 +- binutils/mclex.c | 2 +- binutils/mcparse.y | 2 +- binutils/nlmconv.c | 2 +- binutils/nlmconv.h | 2 +- binutils/nlmheader.y | 2 +- binutils/nm.c | 19 +- binutils/not-ranlib.c | 2 +- binutils/not-strip.c | 2 +- binutils/objcopy.c | 557 +- binutils/objdump.c | 93 +- binutils/objdump.h | 2 +- binutils/od-elf32_avr.c | 2 +- binutils/od-macho.c | 2 +- binutils/od-xcoff.c | 2 +- binutils/po/Make-in | 10 +- binutils/po/bg.po | 3613 +- binutils/po/binutils.pot | 3534 +- binutils/po/fr.po | 3815 +- binutils/po/sv.po | 3718 +- binutils/po/uk.po | 3902 +- binutils/prdbg.c | 2 +- binutils/ranlib.sh | 2 +- binutils/rclex.c | 2 +- binutils/rcparse.y | 2 +- binutils/rdcoff.c | 2 +- binutils/rddbg.c | 2 +- binutils/readelf.c | 2854 +- binutils/rename.c | 2 +- binutils/resbin.c | 2 +- binutils/rescoff.c | 2 +- binutils/resrc.c | 2 +- binutils/resres.c | 2 +- binutils/sanity.sh | 2 +- binutils/size.c | 2 +- binutils/srconv.c | 2 +- binutils/stabs.c | 2 +- binutils/strings.c | 2 +- binutils/sysdep.h | 2 +- binutils/sysdump.c | 2 +- binutils/sysinfo.y | 2 +- binutils/syslex.l | 2 +- binutils/syslex_wrap.c | 2 +- .../testsuite/binutils-all/aarch64/aarch64.exp | 2 +- binutils/testsuite/binutils-all/aarch64/objdump.d | 19 + binutils/testsuite/binutils-all/aarch64/objdump.s | 9 + binutils/testsuite/binutils-all/ar.exp | 3 +- binutils/testsuite/binutils-all/arc/objdump.exp | 8 +- binutils/testsuite/binutils-all/arm/objdump.exp | 103 +- binutils/testsuite/binutils-all/bfin/objdump.exp | 31 +- binutils/testsuite/binutils-all/compress.exp | 2 +- binutils/testsuite/binutils-all/debuglink.s | 67 + binutils/testsuite/binutils-all/dlltool.exp | 2 +- binutils/testsuite/binutils-all/dw2-1.S | 2 +- binutils/testsuite/binutils-all/dw2-2.S | 2 +- binutils/testsuite/binutils-all/dw2-3.S | 2 +- binutils/testsuite/binutils-all/dw2-compressed.S | 2 +- binutils/testsuite/binutils-all/dw2-ranges.S | 2 +- binutils/testsuite/binutils-all/dw5.S | 2 +- binutils/testsuite/binutils-all/dw5.W | 2 +- binutils/testsuite/binutils-all/dwarf-attributes.S | 2 +- binutils/testsuite/binutils-all/dwo.s | 84 + binutils/testsuite/binutils-all/elfedit.exp | 2 +- binutils/testsuite/binutils-all/hppa/objdump.exp | 68 +- binutils/testsuite/binutils-all/i386/i386.exp | 2 +- binutils/testsuite/binutils-all/linkdebug.s | 54 + binutils/testsuite/binutils-all/m68k/objdump.exp | 60 +- .../testsuite/binutils-all/mips/mips-note-2r-n32.d | 6 +- .../testsuite/binutils-all/mips/mips-note-2r-n64.d | 10 +- .../testsuite/binutils-all/mips/mips-note-2r.d | 6 +- binutils/testsuite/binutils-all/mips/mips.exp | 2 +- binutils/testsuite/binutils-all/nm.exp | 237 +- binutils/testsuite/binutils-all/note-2-32.d | 16 +- binutils/testsuite/binutils-all/note-2-32.s | 18 +- binutils/testsuite/binutils-all/note-2-64.d | 20 +- binutils/testsuite/binutils-all/note-2-64.s | 15 +- binutils/testsuite/binutils-all/note-3-32.d | 16 +- binutils/testsuite/binutils-all/note-3-32.s | 1 + binutils/testsuite/binutils-all/note-3-64.d | 16 +- binutils/testsuite/binutils-all/note-3-64.s | 1 + binutils/testsuite/binutils-all/note-4-32.d | 19 + binutils/testsuite/binutils-all/note-4-32.s | 74 + binutils/testsuite/binutils-all/note-4-64.d | 19 + binutils/testsuite/binutils-all/note-4-64.s | 78 + binutils/testsuite/binutils-all/objcopy.exp | 5 +- binutils/testsuite/binutils-all/objdump.WK2 | 25 + binutils/testsuite/binutils-all/objdump.WL | 2 +- binutils/testsuite/binutils-all/objdump.Wk | 8 + binutils/testsuite/binutils-all/objdump.exp | 89 +- binutils/testsuite/binutils-all/readelf.exp | 40 +- binutils/testsuite/binutils-all/readelf.k | 7 + binutils/testsuite/binutils-all/readelf.k2 | 4 + binutils/testsuite/binutils-all/size.exp | 65 +- binutils/testsuite/binutils-all/update-section.exp | 2 +- binutils/testsuite/binutils-all/vax/objdump.exp | 51 +- binutils/testsuite/binutils-all/wasm32/wasm32.exp | 2 +- binutils/testsuite/binutils-all/windres/README | 2 +- binutils/testsuite/binutils-all/windres/msupdate | 2 +- .../testsuite/binutils-all/windres/windres.exp | 2 +- binutils/testsuite/binutils-all/x86-64/objects.exp | 62 + .../testsuite/binutils-all/x86-64/pr22451.o.bz2 | Bin 0 -> 297 bytes binutils/testsuite/binutils-all/x86-64/x86-64.exp | 2 +- binutils/testsuite/config/default.exp | 2 +- binutils/testsuite/lib/binutils-common.exp | 2 +- binutils/testsuite/lib/utils-lib.exp | 3 +- binutils/unwind-ia64.c | 2 +- binutils/unwind-ia64.h | 2 +- binutils/version.c | 4 +- binutils/windint.h | 2 +- binutils/windmc.c | 2 +- binutils/windmc.h | 2 +- binutils/windres.c | 2 +- binutils/windres.h | 2 +- binutils/winduni.c | 2 +- binutils/winduni.h | 2 +- binutils/wrstabs.c | 2 +- config-ml.in | 16 +- config.guess | 110 +- config.sub | 52 +- config/ChangeLog | 51 + config/acx.m4 | 28 +- config/ax_check_define.m4 | 92 + config/bootstrap-cet.mk | 4 + config/bootstrap-debug-lean.mk | 1 + config/bootstrap-lto-noplugin.mk | 4 +- config/bootstrap-lto.mk | 4 +- config/cet.m4 | 38 + config/gcc-plugin.m4 | 15 +- config/hwcaps.m4 | 60 + config/isl.m4 | 20 +- config/mt-android | 1 + configure | 301 +- configure.ac | 223 +- cpu/ChangeLog | 4 + elfcpp/ChangeLog | 37 +- elfcpp/{ChangeLog => ChangeLog-2017} | 0 elfcpp/README | 2 +- elfcpp/aarch64.h | 2 +- elfcpp/arm.h | 2 +- elfcpp/dwarf.h | 2 +- elfcpp/elfcpp.h | 2 +- elfcpp/elfcpp_file.h | 2 +- elfcpp/elfcpp_internal.h | 2 +- elfcpp/elfcpp_swap.h | 2 +- elfcpp/i386.h | 2 +- elfcpp/mips.h | 2 +- elfcpp/powerpc.h | 2 +- elfcpp/s390.h | 2 +- elfcpp/sparc.h | 2 +- elfcpp/tilegx.h | 2 +- elfcpp/x86_64.h | 2 +- etc/ChangeLog | 10 + etc/add-log.el | 8 +- etc/texi2pod.pl | 2 +- etc/update-copyright.py | 2 +- gas/CONTRIBUTORS | 2 +- gas/ChangeLog | 3727 +- gas/ChangeLog-2017 | 4419 + gas/MAINTAINERS | 2 +- gas/Makefile.am | 2 +- gas/Makefile.in | 2 +- gas/NEWS | 4 +- gas/README | 2 +- gas/app.c | 2 +- gas/as.c | 13 +- gas/as.h | 2 +- gas/asintl.h | 2 +- gas/atof-generic.c | 2 +- gas/bignum.h | 2 +- gas/bit_fix.h | 2 +- gas/cgen.c | 2 +- gas/cgen.h | 2 +- gas/compress-debug.c | 2 +- gas/compress-debug.h | 2 +- gas/cond.c | 2 +- gas/config/aout_gnu.h | 9 +- gas/config/atof-ieee.c | 2 +- gas/config/atof-vax.c | 2 +- gas/config/bfin-aux.h | 2 +- gas/config/bfin-defs.h | 2 +- gas/config/bfin-lex-wrapper.c | 2 +- gas/config/bfin-lex.l | 2 +- gas/config/bfin-parse.y | 2 +- gas/config/e-crisaout.c | 2 +- gas/config/e-criself.c | 2 +- gas/config/e-i386aout.c | 2 +- gas/config/e-i386coff.c | 2 +- gas/config/e-i386elf.c | 2 +- gas/config/e-mipself.c | 2 +- gas/config/itbl-mips.h | 2 +- gas/config/m68k-parse.h | 2 +- gas/config/m68k-parse.y | 2 +- gas/config/obj-aout.c | 2 +- gas/config/obj-aout.h | 2 +- gas/config/obj-coff-seh.c | 2 +- gas/config/obj-coff-seh.h | 2 +- gas/config/obj-coff.c | 2 +- gas/config/obj-coff.h | 2 +- gas/config/obj-ecoff.c | 2 +- gas/config/obj-ecoff.h | 2 +- gas/config/obj-elf.c | 3 +- gas/config/obj-elf.h | 2 +- gas/config/obj-evax.c | 2 +- gas/config/obj-evax.h | 2 +- gas/config/obj-fdpicelf.c | 2 +- gas/config/obj-fdpicelf.h | 2 +- gas/config/obj-macho.c | 2 +- gas/config/obj-macho.h | 2 +- gas/config/obj-multi.c | 2 +- gas/config/obj-multi.h | 5 +- gas/config/obj-som.c | 2 +- gas/config/obj-som.h | 2 +- gas/config/rl78-defs.h | 2 +- gas/config/rl78-parse.y | 2 +- gas/config/rx-defs.h | 2 +- gas/config/rx-parse.y | 2 +- gas/config/tc-aarch64.c | 56 +- gas/config/tc-aarch64.h | 2 +- gas/config/tc-alpha.c | 2 +- gas/config/tc-alpha.h | 2 +- gas/config/tc-arc.c | 2 +- gas/config/tc-arc.h | 2 +- gas/config/tc-arm.c | 290 +- gas/config/tc-arm.h | 2 +- gas/config/tc-avr.c | 2 +- gas/config/tc-avr.h | 2 +- gas/config/tc-bfin.c | 2 +- gas/config/tc-bfin.h | 2 +- gas/config/tc-cr16.c | 2 +- gas/config/tc-cr16.h | 2 +- gas/config/tc-cris.c | 2 +- gas/config/tc-cris.h | 2 +- gas/config/tc-crx.c | 2 +- gas/config/tc-crx.h | 2 +- gas/config/tc-d10v.c | 2 +- gas/config/tc-d10v.h | 2 +- gas/config/tc-d30v.c | 2 +- gas/config/tc-d30v.h | 2 +- gas/config/tc-dlx.c | 2 +- gas/config/tc-dlx.h | 2 +- gas/config/tc-epiphany.c | 2 +- gas/config/tc-epiphany.h | 2 +- gas/config/tc-fr30.c | 2 +- gas/config/tc-fr30.h | 2 +- gas/config/tc-frv.c | 2 +- gas/config/tc-frv.h | 2 +- gas/config/tc-ft32.c | 2 +- gas/config/tc-ft32.h | 2 +- gas/config/tc-generic.c | 2 +- gas/config/tc-generic.h | 2 +- gas/config/tc-h8300.c | 2 +- gas/config/tc-h8300.h | 2 +- gas/config/tc-hppa.c | 2 +- gas/config/tc-hppa.h | 2 +- gas/config/tc-i370.c | 2 +- gas/config/tc-i370.h | 2 +- gas/config/tc-i386-intel.c | 100 +- gas/config/tc-i386.c | 635 +- gas/config/tc-i386.h | 2 +- gas/config/tc-i860.c | 2 +- gas/config/tc-i860.h | 2 +- gas/config/tc-i960.c | 2 +- gas/config/tc-i960.h | 2 +- gas/config/tc-ia64.c | 2 +- gas/config/tc-ia64.h | 2 +- gas/config/tc-ip2k.c | 2 +- gas/config/tc-ip2k.h | 2 +- gas/config/tc-iq2000.c | 2 +- gas/config/tc-iq2000.h | 2 +- gas/config/tc-lm32.c | 2 +- gas/config/tc-lm32.h | 2 +- gas/config/tc-m32c.c | 8 +- gas/config/tc-m32c.h | 8 +- gas/config/tc-m32r.c | 2 +- gas/config/tc-m32r.h | 2 +- gas/config/tc-m68851.h | 2 +- gas/config/tc-m68hc11.c | 2 +- gas/config/tc-m68hc11.h | 2 +- gas/config/tc-m68k.c | 2 +- gas/config/tc-m68k.h | 2 +- gas/config/tc-mcore.c | 2 +- gas/config/tc-mcore.h | 2 +- gas/config/tc-mep.c | 2 +- gas/config/tc-mep.h | 2 +- gas/config/tc-metag.c | 2 +- gas/config/tc-metag.h | 2 +- gas/config/tc-microblaze.c | 2 +- gas/config/tc-microblaze.h | 2 +- gas/config/tc-mips.c | 17 +- gas/config/tc-mips.h | 2 +- gas/config/tc-mmix.c | 2 +- gas/config/tc-mmix.h | 2 +- gas/config/tc-mn10200.c | 2 +- gas/config/tc-mn10200.h | 2 +- gas/config/tc-mn10300.c | 2 +- gas/config/tc-mn10300.h | 2 +- gas/config/tc-moxie.c | 2 +- gas/config/tc-moxie.h | 2 +- gas/config/tc-msp430.c | 2 +- gas/config/tc-msp430.h | 2 +- gas/config/tc-mt.c | 8 +- gas/config/tc-mt.h | 8 +- gas/config/tc-nds32.c | 2 +- gas/config/tc-nds32.h | 2 +- gas/config/tc-nios2.c | 2 +- gas/config/tc-nios2.h | 2 +- gas/config/tc-ns32k.c | 2 +- gas/config/tc-ns32k.h | 2 +- gas/config/tc-or1k.c | 2 +- gas/config/tc-or1k.h | 2 +- gas/config/tc-pdp11.c | 2 +- gas/config/tc-pdp11.h | 2 +- gas/config/tc-pj.c | 2 +- gas/config/tc-pj.h | 2 +- gas/config/tc-ppc.c | 68 +- gas/config/tc-ppc.h | 2 +- gas/config/tc-pru.c | 2 +- gas/config/tc-pru.h | 2 +- gas/config/tc-riscv.c | 65 +- gas/config/tc-riscv.h | 5 +- gas/config/tc-rl78.c | 2 +- gas/config/tc-rl78.h | 2 +- gas/config/tc-rx.c | 9 +- gas/config/tc-rx.h | 2 +- gas/config/tc-s390.c | 2 +- gas/config/tc-s390.h | 2 +- gas/config/tc-score.c | 2 +- gas/config/tc-score.h | 2 +- gas/config/tc-score7.c | 2 +- gas/config/tc-sh.c | 2 +- gas/config/tc-sh.h | 2 +- gas/config/tc-sh64.c | 2 +- gas/config/tc-sh64.h | 2 +- gas/config/tc-sparc.c | 2 +- gas/config/tc-sparc.h | 2 +- gas/config/tc-spu.c | 2 +- gas/config/tc-spu.h | 2 +- gas/config/tc-tic30.c | 2 +- gas/config/tc-tic30.h | 2 +- gas/config/tc-tic4x.c | 2 +- gas/config/tc-tic4x.h | 2 +- gas/config/tc-tic54x.c | 2 +- gas/config/tc-tic54x.h | 2 +- gas/config/tc-tic6x.c | 2 +- gas/config/tc-tic6x.h | 2 +- gas/config/tc-tilegx.c | 2 +- gas/config/tc-tilegx.h | 2 +- gas/config/tc-tilepro.c | 2 +- gas/config/tc-tilepro.h | 2 +- gas/config/tc-v850.c | 2 +- gas/config/tc-v850.h | 2 +- gas/config/tc-vax.c | 2 +- gas/config/tc-vax.h | 2 +- gas/config/tc-visium.c | 8 +- gas/config/tc-visium.h | 8 +- gas/config/tc-wasm32.c | 2 +- gas/config/tc-wasm32.h | 2 +- gas/config/tc-xc16x.c | 2 +- gas/config/tc-xc16x.h | 2 +- gas/config/tc-xgate.c | 2 +- gas/config/tc-xgate.h | 2 +- gas/config/tc-xstormy16.c | 2 +- gas/config/tc-xstormy16.h | 2 +- gas/config/tc-xtensa.c | 1016 +- gas/config/tc-xtensa.h | 9 +- gas/config/tc-z80.c | 2 +- gas/config/tc-z80.h | 2 +- gas/config/tc-z8k.c | 2 +- gas/config/tc-z8k.h | 2 +- gas/config/te-386bsd.h | 2 +- gas/config/te-aix.h | 2 +- gas/config/te-aix5.h | 2 +- gas/config/te-armeabi.h | 2 +- gas/config/te-armfbsdeabi.h | 2 +- gas/config/te-armfbsdvfp.h | 2 +- gas/config/te-armlinuxeabi.h | 2 +- gas/config/te-dragonfly.h | 2 +- gas/config/te-dynix.h | 2 +- gas/config/te-epoc-pe.h | 2 +- gas/config/te-freebsd.h | 2 +- gas/config/te-generic.h | 2 +- gas/config/te-gnu.h | 2 +- gas/config/te-go32.h | 2 +- gas/config/te-hppa.h | 2 +- gas/config/te-hppa64.h | 2 +- gas/config/te-hppalinux64.h | 2 +- gas/config/te-hpux.h | 2 +- gas/config/te-i386aix.h | 2 +- gas/config/te-ia64aix.h | 2 +- gas/config/te-interix.h | 2 +- gas/config/te-irix.h | 2 +- gas/config/te-linux.h | 2 +- gas/config/te-lynx.h | 2 +- gas/config/te-mach.h | 2 +- gas/config/te-macos.h | 2 +- gas/config/te-nacl.h | 2 +- gas/config/te-nbsd.h | 2 +- gas/config/te-nbsd532.h | 2 +- gas/config/te-netware.h | 2 +- gas/config/te-pc532mach.h | 2 +- gas/config/te-pe.h | 2 +- gas/config/te-pep.h | 2 +- gas/config/te-psos.h | 2 +- gas/config/te-riscix.h | 2 +- gas/config/te-solaris.h | 2 +- gas/config/te-sparcaout.h | 2 +- gas/config/te-sun3.h | 2 +- gas/config/te-svr4.h | 2 +- gas/config/te-symbian.h | 2 +- gas/config/te-tmips.h | 2 +- gas/config/te-uclinux.h | 2 +- gas/config/te-vms.c | 2 +- gas/config/te-vms.h | 2 +- gas/config/te-vxworks.h | 2 +- gas/config/te-wince-pe.h | 2 +- gas/config/vax-inst.h | 2 +- gas/config/xtensa-istack.h | 2 +- gas/config/xtensa-relax.c | 2 +- gas/config/xtensa-relax.h | 2 +- gas/configure | 23 +- gas/configure.ac | 5 +- gas/configure.com | 2 +- gas/configure.tgt | 2 +- gas/debug.c | 2 +- gas/depend.c | 2 +- gas/doc/Makefile.am | 2 +- gas/doc/Makefile.in | 2 +- gas/doc/all.texi | 2 +- gas/doc/as.texinfo | 45 +- gas/doc/c-aarch64.texi | 19 +- gas/doc/c-alpha.texi | 2 +- gas/doc/c-arc.texi | 2 +- gas/doc/c-arm.texi | 5 +- gas/doc/c-avr.texi | 2 +- gas/doc/c-bfin.texi | 2 +- gas/doc/c-cr16.texi | 2 +- gas/doc/c-cris.texi | 2 +- gas/doc/c-d10v.texi | 2 +- gas/doc/c-d30v.texi | 2 +- gas/doc/c-epiphany.texi | 2 +- gas/doc/c-h8300.texi | 2 +- gas/doc/c-hppa.texi | 2 +- gas/doc/c-i370.texi | 2 +- gas/doc/c-i386.texi | 25 +- gas/doc/c-i860.texi | 2 +- gas/doc/c-i960.texi | 2 +- gas/doc/c-ia64.texi | 2 +- gas/doc/c-ip2k.texi | 2 +- gas/doc/c-lm32.texi | 2 +- gas/doc/c-m32c.texi | 2 +- gas/doc/c-m32r.texi | 2 +- gas/doc/c-m68hc11.texi | 2 +- gas/doc/c-m68k.texi | 2 +- gas/doc/c-metag.texi | 2 +- gas/doc/c-microblaze.texi | 2 +- gas/doc/c-mips.texi | 6 +- gas/doc/c-mmix.texi | 2 +- gas/doc/c-msp430.texi | 2 +- gas/doc/c-mt.texi | 2 +- gas/doc/c-nds32.texi | 2 +- gas/doc/c-nios2.texi | 2 +- gas/doc/c-ns32k.texi | 2 +- gas/doc/c-pdp11.texi | 2 +- gas/doc/c-pj.texi | 2 +- gas/doc/c-ppc.texi | 2 +- gas/doc/c-pru.texi | 2 +- gas/doc/c-riscv.texi | 112 +- gas/doc/c-rl78.texi | 2 +- gas/doc/c-rx.texi | 2 +- gas/doc/c-s390.texi | 2 +- gas/doc/c-score.texi | 2 +- gas/doc/c-sh.texi | 2 +- gas/doc/c-sh64.texi | 2 +- gas/doc/c-sparc.texi | 2 +- gas/doc/c-tic54x.texi | 2 +- gas/doc/c-tic6x.texi | 2 +- gas/doc/c-tilegx.texi | 2 +- gas/doc/c-tilepro.texi | 2 +- gas/doc/c-v850.texi | 2 +- gas/doc/c-vax.texi | 2 +- gas/doc/c-visium.texi | 2 +- gas/doc/c-wasm32.texi | 2 +- gas/doc/c-xc16x.texi | 2 +- gas/doc/c-xgate.texi | 2 +- gas/doc/c-xstormy16.texi | 2 +- gas/doc/c-xtensa.texi | 2 +- gas/doc/c-z80.texi | 2 +- gas/doc/c-z8k.texi | 2 +- gas/doc/h8.texi | 2 +- gas/doc/internals.texi | 2 +- gas/dw2gencfi.c | 2 +- gas/dw2gencfi.h | 2 +- gas/dwarf2dbg.c | 2 +- gas/dwarf2dbg.h | 2 +- gas/ecoff.c | 12 +- gas/ecoff.h | 2 +- gas/ehopt.c | 2 +- gas/emul-target.h | 2 +- gas/emul.h | 2 +- gas/expr.c | 9 +- gas/expr.h | 2 +- gas/flonum-copy.c | 2 +- gas/flonum-konst.c | 2 +- gas/flonum-mult.c | 2 +- gas/flonum.h | 2 +- gas/frags.c | 2 +- gas/frags.h | 2 +- gas/hash.c | 2 +- gas/hash.h | 2 +- gas/input-file.c | 2 +- gas/input-file.h | 2 +- gas/input-scrub.c | 2 +- gas/itbl-lex-wrapper.c | 2 +- gas/itbl-lex.h | 2 +- gas/itbl-lex.l | 2 +- gas/itbl-ops.c | 2 +- gas/itbl-ops.h | 2 +- gas/itbl-parse.y | 2 +- gas/listing.c | 2 +- gas/listing.h | 2 +- gas/literal.c | 2 +- gas/macro.c | 2 +- gas/macro.h | 2 +- gas/makefile.vms | 2 +- gas/messages.c | 2 +- gas/obj.h | 2 +- gas/output-file.c | 2 +- gas/output-file.h | 2 +- gas/po/Make-in | 10 +- gas/po/fr.po | 5091 +- gas/po/gas.pot | 5023 +- gas/po/uk.po | 5120 +- gas/read.c | 11 +- gas/read.h | 3 +- gas/remap.c | 2 +- gas/sb.c | 2 +- gas/sb.h | 2 +- gas/stabs.c | 2 +- gas/struc-symbol.h | 2 +- gas/subsegs.c | 2 +- gas/subsegs.h | 2 +- gas/symbols.c | 8 +- gas/symbols.h | 2 +- gas/tc.h | 2 +- gas/testsuite/config/default.exp | 2 +- gas/testsuite/gas/aarch64/aarch64.exp | 2 +- gas/testsuite/gas/aarch64/addsub.s | 2 +- gas/testsuite/gas/aarch64/advsimd-across.s | 2 +- gas/testsuite/gas/aarch64/advsimd-misc.s | 2 +- gas/testsuite/gas/aarch64/advsisd-copy.s | 2 +- gas/testsuite/gas/aarch64/advsisd-misc.s | 2 +- gas/testsuite/gas/aarch64/alias.s | 2 +- .../gas/aarch64/armv8_2-a-crypto-fp16-illegal.d | 3 + .../gas/aarch64/armv8_2-a-crypto-fp16-illegal.l | 25 + .../gas/aarch64/armv8_2-a-crypto-fp16-illegal.s | 14 + gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d | 3428 + gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.s | 118 + gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d | 3429 + gas/testsuite/gas/aarch64/armv8_4-a-crypto-fp16.d | 3429 + gas/testsuite/gas/aarch64/armv8_4-a-illegal.d | 3 + gas/testsuite/gas/aarch64/armv8_4-a-illegal.l | 4 + gas/testsuite/gas/aarch64/armv8_4-a-illegal.s | 5 + .../gas/aarch64/armv8_4-a-registers-illegal.d | 3 + .../gas/aarch64/armv8_4-a-registers-illegal.l | 178 + .../gas/aarch64/armv8_4-a-registers-illegal.s | 80 + gas/testsuite/gas/aarch64/armv8_4-a-registers.d | 192 + gas/testsuite/gas/aarch64/armv8_4-a-registers.s | 94 + gas/testsuite/gas/aarch64/armv8_4-a.d | 2204 + gas/testsuite/gas/aarch64/armv8_4-a.s | 146 + gas/testsuite/gas/aarch64/bitfield-alias.s | 2 +- gas/testsuite/gas/aarch64/bitfield-bfm.s | 2 +- gas/testsuite/gas/aarch64/crc32.s | 2 +- gas/testsuite/gas/aarch64/crypto.s | 2 +- gas/testsuite/gas/aarch64/dotproduct.d | 864 +- gas/testsuite/gas/aarch64/dotproduct_armv8_4.d | 10 + gas/testsuite/gas/aarch64/dotproduct_armv8_4.s | 2 + gas/testsuite/gas/aarch64/floatdp2.s | 2 +- gas/testsuite/gas/aarch64/fp-const0-parse.s | 2 +- gas/testsuite/gas/aarch64/fp_cvt_int.s | 2 +- gas/testsuite/gas/aarch64/illegal-lse.s | 2 +- gas/testsuite/gas/aarch64/illegal.s | 2 +- gas/testsuite/gas/aarch64/ldst-exclusive.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-pair.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-uns-imm.s | 2 +- gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.s | 2 +- gas/testsuite/gas/aarch64/lor.s | 2 +- gas/testsuite/gas/aarch64/lse-atomic.s | 2 +- gas/testsuite/gas/aarch64/msr.s | 2 +- gas/testsuite/gas/aarch64/neon-fp-cvt-int.s | 2 +- gas/testsuite/gas/aarch64/pan.s | 2 +- gas/testsuite/gas/aarch64/pr22529.d | 4 + gas/testsuite/gas/aarch64/pr22529.l | 17 + gas/testsuite/gas/aarch64/pr22529.s | 3 + gas/testsuite/gas/aarch64/rdma.s | 2 +- gas/testsuite/gas/aarch64/register_aliases.d | 4 +- gas/testsuite/gas/aarch64/register_aliases.s | 2 + gas/testsuite/gas/aarch64/rm-simd-ext.s | 2 +- gas/testsuite/gas/aarch64/shifted.s | 2 +- gas/testsuite/gas/aarch64/sysreg-1.s | 2 +- gas/testsuite/gas/aarch64/system.d | 2 +- gas/testsuite/gas/aarch64/tls.s | 2 +- gas/testsuite/gas/aarch64/uao.s | 2 +- gas/testsuite/gas/aarch64/virthostext.s | 2 +- gas/testsuite/gas/all/err-fakelabel.s | 3 + gas/testsuite/gas/all/gas.exp | 2 +- gas/testsuite/gas/all/itbl-test.c | 2 +- gas/testsuite/gas/all/test-example.c | 2 +- gas/testsuite/gas/all/test-gen.c | 2 +- gas/testsuite/gas/alpha/alpha.exp | 2 +- gas/testsuite/gas/arc/arc.exp | 2 +- gas/testsuite/gas/arc/b.d | 68 +- gas/testsuite/gas/arc/bl.d | 66 +- gas/testsuite/gas/arc/hregs-err.s | 11 + gas/testsuite/gas/arc/jli-1.d | 2 +- gas/testsuite/gas/arc/lp.d | 56 +- gas/testsuite/gas/arc/nps400-12.d | 6 +- gas/testsuite/gas/arc/pcl-print.d | 8 + gas/testsuite/gas/arc/pcl-print.s | 5 + gas/testsuite/gas/arc/pcl-relocs.d | 6 +- gas/testsuite/gas/arc/pcrel-relocs.d | 10 +- gas/testsuite/gas/arc/pic-relocs.d | 4 +- gas/testsuite/gas/arc/plt-relocs.d | 10 +- gas/testsuite/gas/arc/pseudos.d | 56 +- gas/testsuite/gas/arc/relax-add01.d | 2 +- gas/testsuite/gas/arc/relax-add04.d | 2 +- gas/testsuite/gas/arc/relax-avoid2.d | 2 +- gas/testsuite/gas/arc/relax-avoid3.d | 2 +- gas/testsuite/gas/arc/relax-b.d | 4 +- gas/testsuite/gas/arc/relax-ld01.d | 2 +- gas/testsuite/gas/arc/relax-sub01.d | 2 +- gas/testsuite/gas/arc/relax-sub02.d | 2 +- gas/testsuite/gas/arc/relax-sub04.d | 2 +- gas/testsuite/gas/arc/tls-relocs.d | 6 +- gas/testsuite/gas/arc/warn.exp | 2 +- gas/testsuite/gas/arm/archv8m-cmse-main.s | 13 +- gas/testsuite/gas/arm/arm.exp | 2 +- gas/testsuite/gas/arm/armv8-ar-bad.l | 2 +- gas/testsuite/gas/arm/armv8-ar-it-bad.l | 30 +- gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.d | 2 + gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.l | 5 + gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.s | 8 + gas/testsuite/gas/arm/armv8_2-a-fp16-thumb2.d | 249 + gas/testsuite/gas/arm/armv8_2-a-fp16.d | 249 + gas/testsuite/gas/arm/armv8_2-a-fp16.s | 46 + gas/testsuite/gas/arm/armv8_3-a-fp16.d | 249 + gas/testsuite/gas/arm/armv8_4-a-fp16.d | 249 + gas/testsuite/gas/arm/csdb.d | 10 + gas/testsuite/gas/arm/csdb.s | 6 + gas/testsuite/gas/arm/dotprod-mandatory.d | 297 + gas/testsuite/gas/arm/maverick.c | 2 +- .../gas/arm/sp-pc-validations-bad-t-v8a.l | 60 +- gas/testsuite/gas/arm/thumb2_it_bad.l | 1 + gas/testsuite/gas/arm/thumb2_it_bad.s | 2 + gas/testsuite/gas/arm/udf.d | 1 + gas/testsuite/gas/arm/udf.l | 4 +- gas/testsuite/gas/avr/avr.exp | 2 +- gas/testsuite/gas/avr/large-debug-line-table.d | 2 +- gas/testsuite/gas/bfin/bfin.exp | 2 +- gas/testsuite/gas/bfin/error.exp | 2 +- gas/testsuite/gas/cfi/cfi.exp | 2 +- gas/testsuite/gas/cr16/cr16.exp | 2 +- gas/testsuite/gas/cr16/pic.exp | 2 +- gas/testsuite/gas/cris/cris.exp | 2 +- gas/testsuite/gas/crx/allinsn.exp | 2 +- gas/testsuite/gas/d10v/d10v.exp | 2 +- gas/testsuite/gas/d30v/d30.exp | 2 +- gas/testsuite/gas/dlx/alltests.exp | 2 +- gas/testsuite/gas/elf/dwarf2-1.s | 2 +- gas/testsuite/gas/elf/dwarf2-10.l | 2 +- gas/testsuite/gas/elf/dwarf2-10.s | 2 +- gas/testsuite/gas/elf/dwarf2-11.d | 2 +- gas/testsuite/gas/elf/dwarf2-11.s | 2 +- gas/testsuite/gas/elf/dwarf2-12.d | 2 +- gas/testsuite/gas/elf/dwarf2-12.s | 2 +- gas/testsuite/gas/elf/dwarf2-13.d | 2 +- gas/testsuite/gas/elf/dwarf2-13.s | 2 +- gas/testsuite/gas/elf/dwarf2-14.d | 2 +- gas/testsuite/gas/elf/dwarf2-14.s | 2 +- gas/testsuite/gas/elf/dwarf2-15.d | 2 +- gas/testsuite/gas/elf/dwarf2-15.s | 2 +- gas/testsuite/gas/elf/dwarf2-16.d | 2 +- gas/testsuite/gas/elf/dwarf2-16.s | 2 +- gas/testsuite/gas/elf/dwarf2-17.d | 2 +- gas/testsuite/gas/elf/dwarf2-17.s | 2 +- gas/testsuite/gas/elf/dwarf2-18.d | 2 +- gas/testsuite/gas/elf/dwarf2-18.s | 2 +- gas/testsuite/gas/elf/dwarf2-2.s | 2 +- gas/testsuite/gas/elf/dwarf2-5.d | 2 +- gas/testsuite/gas/elf/dwarf2-5.s | 2 +- gas/testsuite/gas/elf/dwarf2-6.d | 2 +- gas/testsuite/gas/elf/dwarf2-6.s | 2 +- gas/testsuite/gas/elf/dwarf2-7.d | 2 +- gas/testsuite/gas/elf/dwarf2-7.s | 2 +- gas/testsuite/gas/elf/dwarf2-8.s | 2 +- gas/testsuite/gas/elf/dwarf2-9.s | 2 +- gas/testsuite/gas/elf/elf.exp | 2 +- gas/testsuite/gas/epiphany/allinsn.exp | 2 +- gas/testsuite/gas/fr30/allinsn.exp | 2 +- gas/testsuite/gas/fr30/fr30.exp | 2 +- gas/testsuite/gas/frv/allinsn.exp | 2 +- gas/testsuite/gas/ft32/ft32.exp | 2 +- gas/testsuite/gas/h8300/h8300-coff.exp | 2 +- gas/testsuite/gas/h8300/h8300-elf.exp | 2 +- gas/testsuite/gas/h8300/h8300.exp | 2 +- gas/testsuite/gas/h8300/t01_mov.exp | 2 +- gas/testsuite/gas/h8300/t02_mova.exp | 2 +- gas/testsuite/gas/h8300/t03_add.exp | 2 +- gas/testsuite/gas/h8300/t04_sub.exp | 2 +- gas/testsuite/gas/h8300/t05_cmp.exp | 2 +- gas/testsuite/gas/h8300/t06_ari2.exp | 2 +- gas/testsuite/gas/h8300/t07_ari3.exp | 2 +- gas/testsuite/gas/h8300/t08_or.exp | 2 +- gas/testsuite/gas/h8300/t09_xor.exp | 2 +- gas/testsuite/gas/h8300/t10_and.exp | 2 +- gas/testsuite/gas/h8300/t11_logs.exp | 2 +- gas/testsuite/gas/h8300/t12_bit.exp | 2 +- gas/testsuite/gas/h8300/t13_otr.exp | 2 +- gas/testsuite/gas/hppa/README | 2 +- gas/testsuite/gas/hppa/basic/basic.exp | 2 +- gas/testsuite/gas/hppa/parse/parse.exp | 2 +- gas/testsuite/gas/hppa/reloc/reloc.exp | 2 +- gas/testsuite/gas/hppa/unsorted/unsorted.exp | 2 +- gas/testsuite/gas/i386/align-1.s | 7 + gas/testsuite/gas/i386/align-1a.d | 17 + gas/testsuite/gas/i386/align-1b.d | 24 + gas/testsuite/gas/i386/arch-4.d | 6 +- gas/testsuite/gas/i386/arch-4.s | 5 +- gas/testsuite/gas/i386/avx512_4fmaps-intel.d | 64 +- gas/testsuite/gas/i386/avx512_4fmaps-warn.l | 12 +- gas/testsuite/gas/i386/avx512_4fmaps-warn.s | 20 +- gas/testsuite/gas/i386/avx512_4fmaps.d | 64 +- gas/testsuite/gas/i386/avx512_4fmaps.s | 64 +- gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d | 78 - gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.l | 13 - gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.s | 23 - gas/testsuite/gas/i386/avx512_4fmaps_vl.d | 78 - gas/testsuite/gas/i386/avx512_4fmaps_vl.s | 74 - gas/testsuite/gas/i386/avx512_4vnniw_vl-intel.d | 79 - gas/testsuite/gas/i386/avx512_4vnniw_vl.d | 79 - gas/testsuite/gas/i386/avx512_4vnniw_vl.s | 75 - gas/testsuite/gas/i386/avx512bw-intel.d | 28 + gas/testsuite/gas/i386/avx512bw.d | 28 + gas/testsuite/gas/i386/avx512bw.s | 28 + gas/testsuite/gas/i386/avx512bw_vl-intel.d | 56 + gas/testsuite/gas/i386/avx512bw_vl.d | 56 + gas/testsuite/gas/i386/avx512bw_vl.s | 56 + gas/testsuite/gas/i386/avx512f-intel.d | 6 + gas/testsuite/gas/i386/avx512f.d | 6 + gas/testsuite/gas/i386/avx512f.s | 8 + gas/testsuite/gas/i386/avx512f_vaes-intel.d | 16 +- gas/testsuite/gas/i386/avx512f_vaes-wig1-intel.d | 16 +- gas/testsuite/gas/i386/avx512f_vaes-wig1.d | 16 +- gas/testsuite/gas/i386/avx512f_vaes.d | 16 +- gas/testsuite/gas/i386/avx512vl_vaes-intel.d | 32 +- gas/testsuite/gas/i386/avx512vl_vaes.d | 32 +- gas/testsuite/gas/i386/cet-ibt-inval.l | 3 + gas/testsuite/gas/i386/cet-ibt-inval.s | 7 + gas/testsuite/gas/i386/cet-shstk-inval.l | 3 + gas/testsuite/gas/i386/cet-shstk-inval.s | 7 + gas/testsuite/gas/i386/dw2-compress-1.s | 2 +- gas/testsuite/gas/i386/i386.exp | 31 +- gas/testsuite/gas/i386/ilp32/cfi/ilp32.exp | 2 +- gas/testsuite/gas/i386/ilp32/elf/ilp32.exp | 2 +- gas/testsuite/gas/i386/ilp32/ilp32.exp | 2 +- gas/testsuite/gas/i386/ilp32/lns/ilp32.exp | 2 +- gas/testsuite/gas/i386/ilp32/x86-64-reg-intel.d | 8 + gas/testsuite/gas/i386/ilp32/x86-64-reg.d | 8 + gas/testsuite/gas/i386/ilp32/x86-64-sse-noavx.d | 4 +- gas/testsuite/gas/i386/ilp32/x86-64-sse3.d | 2 +- gas/testsuite/gas/i386/intel.d | 11 +- gas/testsuite/gas/i386/intel.s | 8 +- gas/testsuite/gas/i386/intelok.d | 1 + gas/testsuite/gas/i386/intelok.e | 2 + gas/testsuite/gas/i386/intelok.s | 2 +- gas/testsuite/gas/i386/inval-avx512f.l | 17 +- gas/testsuite/gas/i386/inval-avx512f.s | 8 + gas/testsuite/gas/i386/inval-pseudo.l | 11 + gas/testsuite/gas/i386/inval-pseudo.s | 5 + gas/testsuite/gas/i386/inval-seg.l | 22 +- gas/testsuite/gas/i386/inval-seg.s | 9 +- gas/testsuite/gas/i386/inval.l | 7 + gas/testsuite/gas/i386/inval.s | 4 + gas/testsuite/gas/i386/noextreg.d | 53 + gas/testsuite/gas/i386/noextreg.s | 57 + gas/testsuite/gas/i386/opcode-intel.d | 2 +- gas/testsuite/gas/i386/opcode-suffix.d | 6 +- gas/testsuite/gas/i386/opcode.d | 6 +- gas/testsuite/gas/i386/opcode.s | 2 +- gas/testsuite/gas/i386/pconfig-intel.d | 11 + gas/testsuite/gas/i386/pconfig.d | 11 + gas/testsuite/gas/i386/pconfig.s | 5 + gas/testsuite/gas/i386/ptwrite-intel.d | 1 + gas/testsuite/gas/i386/ptwrite.d | 1 + gas/testsuite/gas/i386/ptwrite.s | 1 + gas/testsuite/gas/i386/reloc64.d | 4 + gas/testsuite/gas/i386/reloc64.s | 6 + gas/testsuite/gas/i386/sse-noavx.d | 4 +- gas/testsuite/gas/i386/sse-noavx.s | 2 + gas/testsuite/gas/i386/sse3.d | 2 +- gas/testsuite/gas/i386/string-bad.l | 20 +- gas/testsuite/gas/i386/string-bad.s | 10 + gas/testsuite/gas/i386/string-ok.d | 17 +- gas/testsuite/gas/i386/string-ok.e | 10 - gas/testsuite/gas/i386/string-ok.s | 19 +- gas/testsuite/gas/i386/wbnoinvd-intel.d | 11 + gas/testsuite/gas/i386/wbnoinvd.d | 11 + gas/testsuite/gas/i386/wbnoinvd.s | 5 + .../gas/i386/x86-64-avx512_4fmaps-intel.d | 64 +- gas/testsuite/gas/i386/x86-64-avx512_4fmaps.d | 64 +- gas/testsuite/gas/i386/x86-64-avx512_4fmaps.s | 64 +- .../gas/i386/x86-64-avx512_4fmaps_vl-intel.d | 79 - .../gas/i386/x86-64-avx512_4fmaps_vl-warn.l | 13 - .../gas/i386/x86-64-avx512_4fmaps_vl-warn.s | 23 - gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d | 79 - gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s | 75 - .../gas/i386/x86-64-avx512_4vnniw_vl-intel.d | 79 - gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.d | 79 - gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.s | 75 - gas/testsuite/gas/i386/x86-64-avx512f_vaes-intel.d | 8 + gas/testsuite/gas/i386/x86-64-avx512f_vaes-wig.s | 8 + .../gas/i386/x86-64-avx512f_vaes-wig1-intel.d | 8 + gas/testsuite/gas/i386/x86-64-avx512f_vaes-wig1.d | 8 + gas/testsuite/gas/i386/x86-64-avx512f_vaes.d | 8 + gas/testsuite/gas/i386/x86-64-avx512f_vaes.s | 8 + .../gas/i386/x86-64-avx512vl_vaes-intel.d | 32 +- gas/testsuite/gas/i386/x86-64-avx512vl_vaes-wig.s | 16 + .../gas/i386/x86-64-avx512vl_vaes-wig1-intel.d | 16 + gas/testsuite/gas/i386/x86-64-avx512vl_vaes-wig1.d | 16 + gas/testsuite/gas/i386/x86-64-avx512vl_vaes.d | 32 +- gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l | 3 + gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s | 7 + gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l | 3 + gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s | 7 + gas/testsuite/gas/i386/x86-64-inval-avx512f.l | 15 +- gas/testsuite/gas/i386/x86-64-inval-avx512f.s | 8 + gas/testsuite/gas/i386/x86-64-inval-seg.l | 22 +- gas/testsuite/gas/i386/x86-64-inval-seg.s | 6 - gas/testsuite/gas/i386/x86-64-inval.l | 2 + gas/testsuite/gas/i386/x86-64-inval.s | 1 + gas/testsuite/gas/i386/x86-64-movd-intel.d | 47 + gas/testsuite/gas/i386/x86-64-movd.d | 46 + gas/testsuite/gas/i386/x86-64-movd.s | 41 + gas/testsuite/gas/i386/x86-64-pconfig-intel.d | 11 + gas/testsuite/gas/i386/x86-64-pconfig.d | 11 + gas/testsuite/gas/i386/x86-64-pconfig.s | 5 + gas/testsuite/gas/i386/x86-64-reg-bad.l | 21 + gas/testsuite/gas/i386/x86-64-reg-bad.s | 11 + gas/testsuite/gas/i386/x86-64-reg-intel.d | 8 + gas/testsuite/gas/i386/x86-64-reg.d | 8 + gas/testsuite/gas/i386/x86-64-reg.s | 9 + gas/testsuite/gas/i386/x86-64-specific-reg.l | 90 +- gas/testsuite/gas/i386/x86-64-sse-noavx.d | 4 +- gas/testsuite/gas/i386/x86-64-sse-noavx.s | 2 + gas/testsuite/gas/i386/x86-64-sse3.d | 2 +- gas/testsuite/gas/i386/x86-64-wbnoinvd-intel.d | 11 + gas/testsuite/gas/i386/x86-64-wbnoinvd.d | 11 + gas/testsuite/gas/i386/x86-64-wbnoinvd.s | 5 + gas/testsuite/gas/i386/x86-64-xop.d | 1200 +- gas/testsuite/gas/i386/xop.d | 1184 +- gas/testsuite/gas/i386/xop32reg.d | 4 +- gas/testsuite/gas/i860/README.i860 | 2 +- gas/testsuite/gas/i860/i860.exp | 2 +- gas/testsuite/gas/ia64/group-1.d | 2 +- gas/testsuite/gas/ia64/group-2.d | 19 +- gas/testsuite/gas/ia64/ia64.exp | 2 +- gas/testsuite/gas/ia64/xdata.d | 2 +- gas/testsuite/gas/ieee-fp/x930509a.exp | 2 +- gas/testsuite/gas/iq2000/allinsn.exp | 2 +- gas/testsuite/gas/iq2000/load-hazards.exp | 2 +- gas/testsuite/gas/iq2000/odd-ldw.exp | 2 +- gas/testsuite/gas/iq2000/odd-sdw.exp | 2 +- gas/testsuite/gas/iq2000/yield.exp | 2 +- gas/testsuite/gas/lm32/all.exp | 2 +- gas/testsuite/gas/lns/lns.exp | 3 +- gas/testsuite/gas/m32r/allinsn.exp | 2 +- gas/testsuite/gas/m32r/error.exp | 2 +- gas/testsuite/gas/m32r/m32r2.exp | 2 +- gas/testsuite/gas/m32r/m32rx.exp | 2 +- gas/testsuite/gas/m32r/pic.exp | 2 +- gas/testsuite/gas/m32r/rel32.exp | 2 +- gas/testsuite/gas/m68hc11/m68hc11.exp | 2 +- gas/testsuite/gas/m68k-coff/gas.exp | 2 +- gas/testsuite/gas/m68k/all.exp | 2 +- gas/testsuite/gas/mach-o/mach-o.exp | 2 +- gas/testsuite/gas/macros/macros.exp | 2 +- gas/testsuite/gas/mcore/allinsn.exp | 2 +- gas/testsuite/gas/mep/allinsn.exp | 2 +- gas/testsuite/gas/mep/complex-relocs.exp | 2 +- gas/testsuite/gas/metag/metag.exp | 2 +- gas/testsuite/gas/microblaze/allinsn.exp | 2 +- gas/testsuite/gas/microblaze/endian.exp | 2 +- gas/testsuite/gas/microblaze/reloc_sym.exp | 2 +- gas/testsuite/gas/microblaze/special_reg.exp | 2 +- gas/testsuite/gas/mips/mips.exp | 2 +- gas/testsuite/gas/mmix/mmix-err.exp | 2 +- gas/testsuite/gas/mmix/mmix-list.exp | 2 +- gas/testsuite/gas/mmix/mmix.exp | 2 +- gas/testsuite/gas/mn10200/basic.exp | 2 +- gas/testsuite/gas/mn10300/am33-2.c | 2 +- gas/testsuite/gas/mn10300/basic.exp | 2 +- gas/testsuite/gas/mri/mri.exp | 2 +- gas/testsuite/gas/msp430/msp430.exp | 2 +- gas/testsuite/gas/mt/errors.exp | 2 +- gas/testsuite/gas/mt/mt.exp | 2 +- gas/testsuite/gas/mt/relocs.exp | 2 +- gas/testsuite/gas/nds32/nds32.exp | 2 +- gas/testsuite/gas/nios2/nios2.exp | 2 +- gas/testsuite/gas/pdp11/absreloc.s | 2 +- gas/testsuite/gas/pdp11/opcode.s | 2 +- gas/testsuite/gas/pdp11/pdp11.exp | 2 +- gas/testsuite/gas/pe/pe.exp | 2 +- gas/testsuite/gas/pj/pj.exp | 2 +- gas/testsuite/gas/ppc/aix.exp | 2 +- gas/testsuite/gas/ppc/efs.d | 2 +- gas/testsuite/gas/ppc/efs2.d | 2 +- gas/testsuite/gas/ppc/lsp-checks.d | 2 +- gas/testsuite/gas/ppc/lsp.d | 2 +- gas/testsuite/gas/ppc/ppc.exp | 44 +- gas/testsuite/gas/ppc/spe.d | 2 +- gas/testsuite/gas/ppc/spe2-checks.d | 2 +- gas/testsuite/gas/ppc/spe2.d | 2 +- gas/testsuite/gas/ppc/spe_ambiguous.d | 2 +- gas/testsuite/gas/ppc/vle-mult-ld-st-insns.d | 2 +- gas/testsuite/gas/ppc/vle-reloc.d | 2 +- gas/testsuite/gas/ppc/vle-simple-1.d | 2 +- gas/testsuite/gas/ppc/vle-simple-2.d | 2 +- gas/testsuite/gas/ppc/vle-simple-3.d | 2 +- gas/testsuite/gas/ppc/vle-simple-4.d | 2 +- gas/testsuite/gas/ppc/vle-simple-5.d | 2 +- gas/testsuite/gas/ppc/vle-simple-6.d | 2 +- gas/testsuite/gas/ppc/vle.d | 2 +- gas/testsuite/gas/pru/extern.d | 10 + gas/testsuite/gas/pru/extern.s | 5 + gas/testsuite/gas/pru/pru.exp | 2 +- gas/testsuite/gas/riscv/align-1.l | 1 + gas/testsuite/gas/riscv/align-1.s | 3 + gas/testsuite/gas/riscv/auipc-x0.d | 12 + gas/testsuite/gas/riscv/auipc-x0.s | 4 + gas/testsuite/gas/riscv/c-ld.d | 17 + gas/testsuite/gas/riscv/c-ld.s | 9 + gas/testsuite/gas/riscv/c-lw.d | 17 + gas/testsuite/gas/riscv/c-lw.s | 9 + gas/testsuite/gas/riscv/c-nonzero-imm.d | 3 + gas/testsuite/gas/riscv/c-nonzero-imm.l | 2 + gas/testsuite/gas/riscv/c-nonzero-imm.s | 3 + gas/testsuite/gas/riscv/c-nonzero-reg.d | 3 + gas/testsuite/gas/riscv/c-nonzero-reg.l | 4 + gas/testsuite/gas/riscv/c-nonzero-reg.s | 3 + gas/testsuite/gas/riscv/c-zero-imm-64.d | 11 + gas/testsuite/gas/riscv/c-zero-imm-64.s | 4 + gas/testsuite/gas/riscv/c-zero-imm.d | 17 + gas/testsuite/gas/riscv/c-zero-imm.s | 11 + gas/testsuite/gas/riscv/c-zero-reg.d | 20 + gas/testsuite/gas/riscv/c-zero-reg.s | 13 + gas/testsuite/gas/riscv/fsxxi.d | 13 + gas/testsuite/gas/riscv/fsxxi.s | 4 + gas/testsuite/gas/riscv/priv-reg.d | 253 + gas/testsuite/gas/riscv/priv-reg.s | 269 + gas/testsuite/gas/riscv/riscv.exp | 11 +- gas/testsuite/gas/rl78/rl78.exp | 2 +- gas/testsuite/gas/rx/explode | 6 +- gas/testsuite/gas/rx/make-d | 2 +- gas/testsuite/gas/rx/pr22737.d | 15 + gas/testsuite/gas/rx/pr22737.s | 1 + gas/testsuite/gas/rx/rx.exp | 3 +- gas/testsuite/gas/score/relax.exp | 2 +- gas/testsuite/gas/score/relax_32.exp | 2 +- gas/testsuite/gas/sh/arch/arch.exp | 2 +- gas/testsuite/gas/sh/basic.exp | 2 +- gas/testsuite/gas/sh/err.exp | 2 +- gas/testsuite/gas/sh/sh64/sh64.exp | 2 +- gas/testsuite/gas/sparc-solaris/addend.exp | 2 +- gas/testsuite/gas/sparc-solaris/gas.exp | 2 +- gas/testsuite/gas/sparc/mismatch.exp | 2 +- gas/testsuite/gas/sparc/sparc.exp | 2 +- gas/testsuite/gas/sun4/addend.exp | 2 +- gas/testsuite/gas/symver/symver.exp | 2 +- gas/testsuite/gas/tic4x/tic4x.exp | 2 +- gas/testsuite/gas/tic54x/tic54x.exp | 2 +- gas/testsuite/gas/tic6x/tic6x.exp | 2 +- gas/testsuite/gas/tilegx/tilegx.exp | 2 +- gas/testsuite/gas/tilepro/tilepro.exp | 2 +- gas/testsuite/gas/v850/basic.exp | 2 +- gas/testsuite/gas/vax/vax.exp | 2 +- gas/testsuite/gas/visium/error.exp | 2 +- gas/testsuite/gas/visium/visium.exp | 2 +- gas/testsuite/gas/wasm32/wasm32.exp | 2 +- gas/testsuite/gas/xc16x/xc16x.exp | 2 +- gas/testsuite/gas/xgate/xgate.exp | 2 +- gas/testsuite/gas/xstormy16/allinsn.exp | 2 +- gas/testsuite/gas/xtensa/all.exp | 3 +- gas/testsuite/gas/xtensa/trampoline-2.l | 1 + gas/testsuite/gas/xtensa/trampoline-2.s | 20 + gas/testsuite/gas/xtensa/trampoline.d | 35 +- gas/testsuite/gas/xtensa/trampoline.s | 2 + gas/testsuite/gas/xtensa/xtensa-err.exp | 2 +- gas/testsuite/gas/z80/z80.exp | 2 +- gas/testsuite/gas/z8k/z8k.exp | 2 +- gas/testsuite/lib/gas-defs.exp | 2 +- gas/testsuite/lib/gas-dg.exp | 2 +- gas/write.c | 2 +- gas/write.h | 15 +- gdb/.dir-locals.el | 2 +- gdb/ChangeLog |16000 +--- gdb/ChangeLog-2017 |18463 ++++ gdb/MAINTAINERS | 58 +- gdb/Makefile.in | 519 +- gdb/NEWS | 135 +- gdb/README | 17 + gdb/aarch32-linux-nat.c | 2 +- gdb/aarch32-linux-nat.h | 2 +- gdb/aarch64-fbsd-nat.c | 2 +- gdb/aarch64-fbsd-tdep.c | 2 +- gdb/aarch64-fbsd-tdep.h | 2 +- gdb/aarch64-linux-nat.c | 4 +- gdb/aarch64-linux-tdep.c | 15 +- gdb/aarch64-linux-tdep.h | 2 +- gdb/aarch64-newlib-tdep.c | 2 +- gdb/aarch64-tdep.c | 40 +- gdb/aarch64-tdep.h | 4 +- gdb/acinclude.m4 | 2 +- gdb/aclocal.m4 | 30 +- gdb/acx_configure_dir.m4 | 2 +- gdb/ada-exp.y | 63 +- gdb/ada-lang.c | 1520 +- gdb/ada-lang.h | 15 +- gdb/ada-lex.l | 24 +- gdb/ada-operator.def | 2 +- gdb/ada-tasks.c | 113 +- gdb/ada-typeprint.c | 2 +- gdb/ada-valprint.c | 44 +- gdb/ada-varobj.c | 22 +- gdb/addrmap.c | 2 +- gdb/addrmap.h | 2 +- gdb/agent.c | 4 +- gdb/aix-thread.c | 63 +- gdb/alpha-bsd-nat.c | 2 +- gdb/alpha-bsd-tdep.c | 2 +- gdb/alpha-bsd-tdep.h | 2 +- gdb/alpha-linux-nat.c | 2 +- gdb/alpha-linux-tdep.c | 2 +- gdb/alpha-mdebug-tdep.c | 2 +- gdb/alpha-nbsd-tdep.c | 2 +- gdb/alpha-obsd-tdep.c | 2 +- gdb/alpha-tdep.c | 22 +- gdb/alpha-tdep.h | 2 +- gdb/amd64-bsd-nat.c | 2 +- gdb/amd64-darwin-tdep.c | 2 +- gdb/amd64-darwin-tdep.h | 2 +- gdb/amd64-dicos-tdep.c | 2 +- gdb/amd64-fbsd-nat.c | 2 +- gdb/amd64-fbsd-tdep.c | 2 +- gdb/amd64-linux-nat.c | 2 +- gdb/amd64-linux-tdep.c | 7 +- gdb/amd64-linux-tdep.h | 2 +- gdb/amd64-nat.c | 2 +- gdb/amd64-nat.h | 2 +- gdb/amd64-nbsd-nat.c | 2 +- gdb/amd64-nbsd-tdep.c | 2 +- gdb/amd64-obsd-nat.c | 2 +- gdb/amd64-obsd-tdep.c | 2 +- gdb/amd64-sol2-tdep.c | 2 +- gdb/amd64-tdep.c | 69 +- gdb/amd64-tdep.h | 2 +- gdb/amd64-windows-nat.c | 2 +- gdb/amd64-windows-tdep.c | 2 +- gdb/annotate.c | 2 +- gdb/annotate.h | 2 +- gdb/arc-newlib-tdep.c | 2 +- gdb/arc-tdep.c | 2 +- gdb/arc-tdep.h | 2 +- gdb/arch-utils.c | 7 +- gdb/arch-utils.h | 2 +- gdb/arch/aarch64-insn.c | 2 +- gdb/arch/aarch64-insn.h | 2 +- gdb/arch/aarch64.c | 42 + gdb/arch/aarch64.h | 6 +- gdb/arch/amd64.c | 2 +- gdb/arch/amd64.h | 2 +- gdb/arch/arm-get-next-pcs.c | 2 +- gdb/arch/arm-get-next-pcs.h | 2 +- gdb/arch/arm-linux.c | 2 +- gdb/arch/arm-linux.h | 2 +- gdb/arch/arm.c | 2 +- gdb/arch/arm.h | 2 +- gdb/arch/i386.c | 2 +- gdb/arch/i386.h | 2 +- gdb/arch/tdesc.h | 27 +- gdb/arch/tic6x.c | 47 + gdb/arch/tic6x.h | 26 + gdb/arch/xtensa.h | 2 +- gdb/arm-bsd-tdep.c | 2 +- gdb/arm-fbsd-nat.c | 2 +- gdb/arm-fbsd-tdep.c | 2 +- gdb/arm-fbsd-tdep.h | 2 +- gdb/arm-linux-nat.c | 2 +- gdb/arm-linux-tdep.c | 13 +- gdb/arm-linux-tdep.h | 2 +- gdb/arm-nbsd-nat.c | 2 +- gdb/arm-nbsd-tdep.c | 2 +- gdb/arm-obsd-tdep.c | 2 +- gdb/arm-symbian-tdep.c | 2 +- gdb/arm-tdep.c | 18 +- gdb/arm-tdep.h | 2 +- gdb/arm-wince-tdep.c | 2 +- gdb/auto-load.c | 18 +- gdb/auto-load.h | 4 +- gdb/auxv.c | 4 +- gdb/auxv.h | 2 +- gdb/avr-tdep.c | 6 +- gdb/ax-gdb.c | 22 +- gdb/ax-gdb.h | 4 +- gdb/ax-general.c | 2 +- gdb/ax.h | 2 +- gdb/ax_cxx_compile_stdcxx.m4 | 2 +- gdb/bcache.c | 2 +- gdb/bcache.h | 2 +- gdb/bfd-target.c | 2 +- gdb/bfd-target.h | 2 +- gdb/bfin-linux-tdep.c | 2 +- gdb/bfin-tdep.c | 4 +- gdb/bfin-tdep.h | 2 +- gdb/block.c | 41 +- gdb/block.h | 36 +- gdb/blockframe.c | 2 +- gdb/break-catch-sig.c | 6 +- gdb/break-catch-syscall.c | 27 +- gdb/break-catch-throw.c | 29 +- gdb/breakpoint.c | 290 +- gdb/breakpoint.h | 16 +- gdb/bsd-kvm.c | 6 +- gdb/bsd-kvm.h | 2 +- gdb/bsd-uthread.c | 2 +- gdb/bsd-uthread.h | 2 +- gdb/btrace.c | 45 +- gdb/btrace.h | 2 +- gdb/build-id.c | 2 +- gdb/build-id.h | 2 +- gdb/buildsym.c | 36 +- gdb/buildsym.h | 6 +- gdb/c-exp.y | 22 +- gdb/c-lang.c | 14 +- gdb/c-lang.h | 2 +- gdb/c-typeprint.c | 1160 +- gdb/c-valprint.c | 11 +- gdb/c-varobj.c | 12 +- gdb/charset-list.h | 2 +- gdb/charset.c | 10 +- gdb/charset.h | 2 +- gdb/cli-out.c | 2 +- gdb/cli-out.h | 2 +- gdb/cli/cli-cmds.c | 60 +- gdb/cli/cli-cmds.h | 4 +- gdb/cli/cli-decode.c | 135 +- gdb/cli/cli-decode.h | 8 +- gdb/cli/cli-dump.c | 9 +- gdb/cli/cli-interp.c | 14 +- gdb/cli/cli-interp.h | 2 +- gdb/cli/cli-logging.c | 8 +- gdb/cli/cli-script.c | 44 +- gdb/cli/cli-script.h | 4 +- gdb/cli/cli-setshow.c | 2 +- gdb/cli/cli-setshow.h | 2 +- gdb/cli/cli-utils.c | 2 +- gdb/cli/cli-utils.h | 2 +- gdb/coff-pe-read.c | 2 +- gdb/coff-pe-read.h | 2 +- gdb/coffread.c | 9 +- gdb/command.h | 65 +- gdb/common/agent.c | 2 +- gdb/common/agent.h | 2 +- gdb/common/array-view.h | 2 +- gdb/common/ax.def | 2 +- gdb/common/break-common.h | 2 +- gdb/common/btrace-common.c | 2 +- gdb/common/btrace-common.h | 2 +- gdb/common/buffer.c | 2 +- gdb/common/buffer.h | 2 +- gdb/common/byte-vector.h | 2 +- gdb/common/cleanups.c | 2 +- gdb/common/cleanups.h | 2 +- gdb/common/common-debug.c | 2 +- gdb/common/common-debug.h | 2 +- gdb/common/common-defs.h | 2 +- gdb/common/common-exceptions.c | 2 +- gdb/common/common-exceptions.h | 2 +- gdb/common/common-gdbthread.h | 2 +- gdb/common/common-inferior.h | 2 +- gdb/common/common-regcache.c | 2 +- gdb/common/common-regcache.h | 2 +- gdb/common/common-types.h | 2 +- gdb/common/common-utils.c | 9 +- gdb/common/common-utils.h | 16 +- gdb/common/common.host | 2 +- gdb/common/common.m4 | 4 +- gdb/common/create-version.sh | 2 +- gdb/common/def-vector.h | 2 +- gdb/common/default-init-alloc.h | 2 +- gdb/common/diagnostics.h | 12 +- gdb/common/enum-flags.h | 2 +- gdb/common/environ.c | 2 +- gdb/common/environ.h | 2 +- gdb/common/errors.c | 2 +- gdb/common/errors.h | 2 +- gdb/common/fileio.c | 2 +- gdb/common/fileio.h | 2 +- gdb/common/filestuff.c | 32 +- gdb/common/filestuff.h | 2 +- gdb/common/format.c | 64 +- gdb/common/format.h | 49 +- gdb/common/function-view.h | 2 +- gdb/common/gdb_assert.h | 5 +- gdb/common/gdb_locale.h | 2 +- gdb/common/gdb_optional.h | 2 +- gdb/common/gdb_ref_ptr.h | 2 +- gdb/common/gdb_setjmp.h | 2 +- gdb/common/gdb_signals.h | 2 +- gdb/common/gdb_splay_tree.h | 2 +- gdb/common/gdb_sys_time.h | 2 +- gdb/common/gdb_tilde_expand.c | 2 +- gdb/common/gdb_tilde_expand.h | 2 +- gdb/common/gdb_unique_ptr.h | 2 +- gdb/common/gdb_unlinker.h | 2 +- gdb/common/gdb_vecs.c | 2 +- gdb/common/gdb_vecs.h | 4 +- gdb/common/gdb_wait.h | 2 +- gdb/common/hash_enum.h | 45 + gdb/common/host-defs.h | 2 +- gdb/common/job-control.c | 2 +- gdb/common/job-control.h | 2 +- gdb/common/mingw-strerror.c | 2 +- gdb/common/new-op.c | 2 +- gdb/common/offset-type.h | 2 +- gdb/common/poison.h | 134 +- gdb/common/posix-strerror.c | 2 +- gdb/common/preprocessor.h | 2 +- gdb/common/print-utils.c | 2 +- gdb/common/print-utils.h | 2 +- gdb/common/ptid.c | 2 +- gdb/common/ptid.h | 2 +- gdb/common/queue.h | 2 +- gdb/common/refcounted-object.h | 2 +- gdb/common/rsp-low.c | 15 +- gdb/common/rsp-low.h | 8 +- gdb/common/run-time-clock.c | 2 +- gdb/common/run-time-clock.h | 2 +- gdb/common/scoped_restore.h | 2 +- gdb/common/selftest.c | 2 +- gdb/common/selftest.h | 3 +- gdb/common/signals-state-save-restore.c | 33 +- gdb/common/signals-state-save-restore.h | 7 +- gdb/common/signals.c | 2 +- gdb/common/symbol.h | 2 +- gdb/common/traits.h | 2 +- gdb/common/underlying.h | 2 +- gdb/common/valid-expr.h | 2 +- gdb/common/vec.c | 2 +- gdb/common/vec.h | 2 +- gdb/common/version.h | 2 +- gdb/common/x86-xstate.h | 2 +- gdb/common/xml-utils.c | 2 +- gdb/common/xml-utils.h | 2 +- gdb/compile/compile-c-support.c | 2 +- gdb/compile/compile-c-symbols.c | 2 +- gdb/compile/compile-c-types.c | 2 +- gdb/compile/compile-internal.h | 2 +- gdb/compile/compile-loc2c.c | 3 +- gdb/compile/compile-object-load.c | 12 +- gdb/compile/compile-object-load.h | 2 +- gdb/compile/compile-object-run.c | 4 +- gdb/compile/compile-object-run.h | 2 +- gdb/compile/compile.c | 16 +- gdb/compile/compile.h | 2 +- gdb/complaints.c | 6 +- gdb/complaints.h | 25 +- gdb/completer.c | 190 +- gdb/completer.h | 236 +- gdb/config.in | 30 +- gdb/config/djgpp/djcheck.sh | 2 +- gdb/config/djgpp/djconfig.sh | 2 +- gdb/config/djgpp/fnchange.lst | 1 + gdb/config/djgpp/langinfo.h | 2 +- gdb/config/djgpp/nl_types.h | 2 +- gdb/config/i386/nm-fbsd.h | 2 +- gdb/config/i386/nm-i386gnu.h | 2 +- gdb/config/nm-linux.h | 2 +- gdb/config/nm-nto.h | 2 +- gdb/config/sparc/nm-sol2.h | 2 +- gdb/configure | 775 +- gdb/configure.ac | 79 +- gdb/configure.nat | 5 +- gdb/configure.tgt | 20 +- gdb/continuations.c | 2 +- gdb/continuations.h | 2 +- gdb/contrib/ari/create-web-ari-in-src.sh | 2 +- gdb/contrib/ari/gdb_ari.sh | 4 +- gdb/contrib/ari/gdb_find.sh | 2 +- gdb/contrib/ari/update-web-ari.sh | 2 +- gdb/contrib/cc-with-tweaks.sh | 42 +- gdb/contrib/cleanup_check.py | 2 +- gdb/contrib/excheck.py | 2 +- gdb/contrib/expect-read1.c | 2 +- gdb/contrib/expect-read1.sh | 2 +- gdb/contrib/exsummary.py | 2 +- gdb/contrib/gcc-with-excheck | 2 +- gdb/contrib/gdb-add-index.sh | 55 +- gdb/contrib/test_pubnames_and_indexes.py | 2 +- gdb/copying.awk | 8 +- gdb/copying.c | 8 +- gdb/copyright.py | 17 +- gdb/core-regset.c | 118 - gdb/corefile.c | 9 +- gdb/corelow.c | 7 +- gdb/cp-abi.c | 2 +- gdb/cp-abi.h | 2 +- gdb/cp-name-parser.y | 32 +- gdb/cp-namespace.c | 8 +- gdb/cp-support.c | 576 +- gdb/cp-support.h | 22 +- gdb/cp-valprint.c | 2 +- gdb/cris-linux-tdep.c | 2 +- gdb/cris-tdep.c | 14 +- gdb/cris-tdep.h | 2 +- gdb/ctf.c | 18 +- gdb/ctf.h | 2 +- gdb/d-exp.y | 13 +- gdb/d-lang.c | 5 +- gdb/d-lang.h | 2 +- gdb/d-namespace.c | 2 +- gdb/d-valprint.c | 2 +- gdb/darwin-nat-info.c | 72 +- gdb/darwin-nat.c | 303 +- gdb/darwin-nat.h | 49 +- gdb/data-directory/Makefile.in | 2 +- gdb/dbxread.c | 17 +- gdb/dcache.c | 12 +- gdb/dcache.h | 2 +- gdb/debug.c | 2 +- gdb/defs.h | 10 +- gdb/demangle.c | 5 +- gdb/dicos-tdep.c | 2 +- gdb/dicos-tdep.h | 2 +- gdb/dictionary.c | 150 +- gdb/dictionary.h | 50 +- gdb/disable-implicit-rules.mk | 2 +- gdb/disasm-selftests.c | 2 +- gdb/disasm.c | 5 +- gdb/disasm.h | 2 +- gdb/doc/ChangeLog | 135 + gdb/doc/Doxyfile-base.in | 2 +- gdb/doc/Doxyfile-gdb-api.in | 2 +- gdb/doc/Doxyfile-gdb-xref.in | 2 +- gdb/doc/Doxyfile-gdbserver.in | 2 +- gdb/doc/Makefile.in | 11 +- gdb/doc/agentexpr.texi | 2 +- gdb/doc/all-cfg.texi | 2 +- gdb/doc/annotate.texinfo | 2 +- gdb/doc/doxy-index.in | 2 +- gdb/doc/gdb.texinfo | 633 +- gdb/doc/guile.texi | 2 +- gdb/doc/observer.texi | 2 +- gdb/doc/python.texi | 89 +- gdb/doc/refcard.tex | 6 +- gdb/doc/stabs.texinfo | 2 +- gdb/dtrace-probe.c | 560 +- gdb/dummy-frame.c | 2 +- gdb/dummy-frame.h | 2 +- gdb/dwarf2-frame-tailcall.c | 2 +- gdb/dwarf2-frame-tailcall.h | 2 +- gdb/dwarf2-frame.c | 2 +- gdb/dwarf2-frame.h | 2 +- gdb/dwarf2expr.c | 2 +- gdb/dwarf2expr.h | 2 +- gdb/dwarf2loc.c | 5 +- gdb/dwarf2loc.h | 2 +- gdb/dwarf2read.c | 5469 +- gdb/elfread.c | 49 +- gdb/eval.c | 8 +- gdb/event-loop.c | 2 +- gdb/event-loop.h | 2 +- gdb/event-top.c | 11 +- gdb/event-top.h | 4 +- gdb/exceptions.c | 2 +- gdb/exceptions.h | 2 +- gdb/exec.c | 10 +- gdb/exec.h | 2 +- gdb/expprint.c | 2 +- gdb/expression.h | 7 +- gdb/extension-priv.h | 77 +- gdb/extension.c | 160 +- gdb/extension.h | 103 +- gdb/f-exp.y | 9 +- gdb/f-lang.c | 7 +- gdb/f-lang.h | 2 +- gdb/f-typeprint.c | 2 +- gdb/f-valprint.c | 7 +- gdb/fbsd-nat.c | 387 +- gdb/fbsd-nat.h | 2 +- gdb/fbsd-tdep.c | 652 +- gdb/fbsd-tdep.h | 9 +- gdb/features/Makefile | 15 +- gdb/features/aarch64-core.c | 65 + gdb/features/aarch64-core.xml | 2 +- gdb/features/aarch64-fpu.c | 133 + gdb/features/aarch64-fpu.xml | 2 +- gdb/features/aarch64.c | 191 - gdb/features/aarch64.xml | 2 +- gdb/features/arc-arcompact.c | 33 +- gdb/features/arc-arcompact.xml | 2 +- gdb/features/arc-v2.c | 43 +- gdb/features/arc-v2.xml | 2 +- gdb/features/arm/arm-core.xml | 2 +- gdb/features/arm/arm-fpa.xml | 2 +- gdb/features/arm/arm-m-profile.xml | 2 +- gdb/features/arm/arm-vfpv2.xml | 2 +- gdb/features/arm/arm-vfpv3.xml | 2 +- gdb/features/arm/arm-with-iwmmxt.c | 27 +- gdb/features/arm/arm-with-iwmmxt.xml | 2 +- gdb/features/arm/arm-with-m-fpa-layout.xml | 2 +- gdb/features/arm/arm-with-m-vfp-d16.xml | 2 +- gdb/features/arm/arm-with-m.xml | 2 +- gdb/features/arm/arm-with-neon.xml | 2 +- gdb/features/arm/arm-with-vfpv2.xml | 2 +- gdb/features/arm/arm-with-vfpv3.xml | 2 +- gdb/features/arm/xscale-iwmmxt.xml | 2 +- gdb/features/btrace-conf.dtd | 2 +- gdb/features/btrace.dtd | 2 +- gdb/features/feature_to_c.sh | 2 +- gdb/features/gdb-target.dtd | 2 +- gdb/features/i386/32bit-avx.xml | 2 +- gdb/features/i386/32bit-avx512.c | 6 +- gdb/features/i386/32bit-avx512.xml | 2 +- gdb/features/i386/32bit-core.c | 39 +- gdb/features/i386/32bit-core.xml | 2 +- gdb/features/i386/32bit-linux.xml | 2 +- gdb/features/i386/32bit-mpx.c | 42 +- gdb/features/i386/32bit-mpx.xml | 2 +- gdb/features/i386/32bit-pkeys.xml | 2 +- gdb/features/i386/32bit-sse.c | 75 +- gdb/features/i386/32bit-sse.xml | 2 +- gdb/features/i386/64bit-avx.xml | 2 +- gdb/features/i386/64bit-avx512.c | 49 +- gdb/features/i386/64bit-avx512.xml | 2 +- gdb/features/i386/64bit-core.c | 39 +- gdb/features/i386/64bit-core.xml | 2 +- gdb/features/i386/64bit-linux.xml | 2 +- gdb/features/i386/64bit-mpx.c | 42 +- gdb/features/i386/64bit-mpx.xml | 2 +- gdb/features/i386/64bit-pkeys.xml | 2 +- gdb/features/i386/64bit-segments.xml | 2 +- gdb/features/i386/64bit-sse.c | 75 +- gdb/features/i386/64bit-sse.xml | 2 +- gdb/features/i386/amd64-avx-avx512-linux.xml | 2 +- gdb/features/i386/amd64-avx-avx512.xml | 2 +- gdb/features/i386/amd64-avx-linux.xml | 2 +- .../i386/amd64-avx-mpx-avx512-pku-linux.xml | 2 +- gdb/features/i386/amd64-avx-mpx-avx512-pku.xml | 2 +- gdb/features/i386/amd64-avx-mpx-linux.xml | 2 +- gdb/features/i386/amd64-avx-mpx.xml | 2 +- gdb/features/i386/amd64-avx.xml | 2 +- gdb/features/i386/amd64-linux.xml | 2 +- gdb/features/i386/amd64-mpx-linux.xml | 2 +- gdb/features/i386/amd64-mpx.xml | 2 +- gdb/features/i386/amd64.xml | 2 +- gdb/features/i386/i386-avx-avx512-linux.xml | 2 +- gdb/features/i386/i386-avx-avx512.xml | 2 +- gdb/features/i386/i386-avx-linux.xml | 2 +- .../i386/i386-avx-mpx-avx512-pku-linux.xml | 2 +- gdb/features/i386/i386-avx-mpx-avx512-pku.xml | 2 +- gdb/features/i386/i386-avx-mpx-linux.xml | 2 +- gdb/features/i386/i386-avx-mpx.xml | 2 +- gdb/features/i386/i386-avx.xml | 2 +- gdb/features/i386/i386-linux.xml | 2 +- gdb/features/i386/i386-mmx-linux.xml | 2 +- gdb/features/i386/i386-mmx.xml | 2 +- gdb/features/i386/i386-mpx-linux.xml | 2 +- gdb/features/i386/i386-mpx.xml | 2 +- gdb/features/i386/i386.xml | 2 +- gdb/features/i386/x32-avx-avx512-linux.xml | 2 +- gdb/features/i386/x32-avx-linux.xml | 2 +- gdb/features/i386/x32-core.c | 39 +- gdb/features/i386/x32-core.xml | 2 +- gdb/features/i386/x32-linux.xml | 2 +- gdb/features/library-list-aix.dtd | 2 +- gdb/features/library-list-svr4.dtd | 2 +- gdb/features/library-list.dtd | 2 +- gdb/features/microblaze-core.xml | 2 +- gdb/features/microblaze-stack-protect.xml | 2 +- gdb/features/microblaze-with-stack-protect.xml | 2 +- gdb/features/microblaze.xml | 2 +- gdb/features/mips-cp0.xml | 2 +- gdb/features/mips-cpu.xml | 2 +- gdb/features/mips-dsp-linux.xml | 2 +- gdb/features/mips-dsp.xml | 2 +- gdb/features/mips-fpu.xml | 2 +- gdb/features/mips-linux.xml | 2 +- gdb/features/mips64-cp0.xml | 2 +- gdb/features/mips64-cpu.xml | 2 +- gdb/features/mips64-dsp-linux.xml | 2 +- gdb/features/mips64-dsp.xml | 2 +- gdb/features/mips64-fpu.xml | 2 +- gdb/features/mips64-linux.xml | 2 +- gdb/features/nds32-core.xml | 2 +- gdb/features/nds32-fpu.xml | 2 +- gdb/features/nds32-system.xml | 2 +- gdb/features/nds32.xml | 2 +- gdb/features/nios2-cpu.xml | 2 +- gdb/features/nios2-linux.c | 71 - gdb/features/nios2-linux.xml | 2 +- gdb/features/nios2.xml | 2 +- gdb/features/or1k-core.xml | 65 + gdb/features/or1k.c | 76 + gdb/features/or1k.xml | 12 + gdb/features/osdata.dtd | 2 +- gdb/features/rs6000/power-altivec.xml | 2 +- gdb/features/rs6000/power-core.xml | 2 +- gdb/features/rs6000/power-fpu-isa205.xml | 2 +- gdb/features/rs6000/power-fpu.xml | 2 +- gdb/features/rs6000/power-linux.xml | 2 +- gdb/features/rs6000/power-oea.xml | 2 +- gdb/features/rs6000/power-spe.xml | 2 +- gdb/features/rs6000/power-vsx.xml | 2 +- gdb/features/rs6000/power64-core.xml | 2 +- gdb/features/rs6000/power64-linux.xml | 2 +- gdb/features/rs6000/powerpc-32.xml | 2 +- gdb/features/rs6000/powerpc-32l.xml | 2 +- gdb/features/rs6000/powerpc-403.xml | 2 +- gdb/features/rs6000/powerpc-403gc.xml | 2 +- gdb/features/rs6000/powerpc-405.xml | 2 +- gdb/features/rs6000/powerpc-505.xml | 2 +- gdb/features/rs6000/powerpc-601.xml | 2 +- gdb/features/rs6000/powerpc-602.xml | 2 +- gdb/features/rs6000/powerpc-603.xml | 2 +- gdb/features/rs6000/powerpc-604.xml | 2 +- gdb/features/rs6000/powerpc-64.xml | 2 +- gdb/features/rs6000/powerpc-64l.xml | 2 +- gdb/features/rs6000/powerpc-7400.c | 33 +- gdb/features/rs6000/powerpc-7400.xml | 2 +- gdb/features/rs6000/powerpc-750.xml | 2 +- gdb/features/rs6000/powerpc-860.xml | 2 +- gdb/features/rs6000/powerpc-altivec32.c | 33 +- gdb/features/rs6000/powerpc-altivec32.xml | 2 +- gdb/features/rs6000/powerpc-altivec32l.c | 33 +- gdb/features/rs6000/powerpc-altivec32l.xml | 2 +- gdb/features/rs6000/powerpc-altivec64.c | 33 +- gdb/features/rs6000/powerpc-altivec64.xml | 2 +- gdb/features/rs6000/powerpc-altivec64l.c | 33 +- gdb/features/rs6000/powerpc-altivec64l.xml | 2 +- gdb/features/rs6000/powerpc-cell32l.c | 33 +- gdb/features/rs6000/powerpc-cell32l.xml | 2 +- gdb/features/rs6000/powerpc-cell64l.c | 33 +- gdb/features/rs6000/powerpc-cell64l.xml | 2 +- gdb/features/rs6000/powerpc-e500.xml | 2 +- gdb/features/rs6000/powerpc-e500l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-32l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-64l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-altivec32l.c | 33 +- gdb/features/rs6000/powerpc-isa205-altivec32l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-altivec64l.c | 33 +- gdb/features/rs6000/powerpc-isa205-altivec64l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-vsx32l.c | 33 +- gdb/features/rs6000/powerpc-isa205-vsx32l.xml | 2 +- gdb/features/rs6000/powerpc-isa205-vsx64l.c | 33 +- gdb/features/rs6000/powerpc-isa205-vsx64l.xml | 2 +- gdb/features/rs6000/powerpc-vsx32.c | 33 +- gdb/features/rs6000/powerpc-vsx32.xml | 2 +- gdb/features/rs6000/powerpc-vsx32l.c | 33 +- gdb/features/rs6000/powerpc-vsx32l.xml | 2 +- gdb/features/rs6000/powerpc-vsx64.c | 33 +- gdb/features/rs6000/powerpc-vsx64.xml | 2 +- gdb/features/rs6000/powerpc-vsx64l.c | 33 +- gdb/features/rs6000/powerpc-vsx64l.xml | 2 +- gdb/features/rs6000/rs6000.xml | 2 +- gdb/features/s390-acr.xml | 2 +- gdb/features/s390-core32.xml | 2 +- gdb/features/s390-core64.xml | 2 +- gdb/features/s390-fpr.xml | 2 +- gdb/features/s390-gs-linux64.c | 45 +- gdb/features/s390-gs-linux64.xml | 2 +- gdb/features/s390-gs.xml | 2 +- gdb/features/s390-gsbc.xml | 2 +- gdb/features/s390-linux32.xml | 2 +- gdb/features/s390-linux32v1.xml | 2 +- gdb/features/s390-linux32v2.xml | 2 +- gdb/features/s390-linux64.xml | 2 +- gdb/features/s390-linux64v1.xml | 2 +- gdb/features/s390-linux64v2.xml | 2 +- gdb/features/s390-tdb.xml | 2 +- gdb/features/s390-te-linux64.xml | 2 +- gdb/features/s390-tevx-linux64.c | 45 +- gdb/features/s390-tevx-linux64.xml | 2 +- gdb/features/s390-vx-linux64.c | 45 +- gdb/features/s390-vx-linux64.xml | 2 +- gdb/features/s390-vx.xml | 2 +- gdb/features/s390x-core64.xml | 2 +- gdb/features/s390x-gs-linux64.c | 45 +- gdb/features/s390x-gs-linux64.xml | 2 +- gdb/features/s390x-linux64.xml | 2 +- gdb/features/s390x-linux64v1.xml | 2 +- gdb/features/s390x-linux64v2.xml | 2 +- gdb/features/s390x-te-linux64.xml | 2 +- gdb/features/s390x-tevx-linux64.c | 45 +- gdb/features/s390x-tevx-linux64.xml | 2 +- gdb/features/s390x-vx-linux64.c | 45 +- gdb/features/s390x-vx-linux64.xml | 2 +- gdb/features/sparc/sparc32-cp0.xml | 2 +- gdb/features/sparc/sparc32-cpu.xml | 2 +- gdb/features/sparc/sparc32-fpu.xml | 2 +- gdb/features/sparc/sparc32-solaris.xml | 2 +- gdb/features/sparc/sparc64-cp0.xml | 2 +- gdb/features/sparc/sparc64-cpu.xml | 2 +- gdb/features/sparc/sparc64-fpu.xml | 2 +- gdb/features/sparc/sparc64-solaris.xml | 2 +- gdb/features/threads.dtd | 2 +- gdb/features/tic6x-c62x-linux.xml | 2 +- gdb/features/tic6x-c62x.xml | 12 - gdb/features/tic6x-c64x-linux.xml | 2 +- gdb/features/tic6x-c64x.xml | 13 - gdb/features/tic6x-c64xp-linux.xml | 2 +- gdb/features/tic6x-c64xp.xml | 14 - gdb/features/tic6x-c6xp.c | 16 + gdb/features/tic6x-c6xp.xml | 2 +- gdb/features/tic6x-core.c | 47 + gdb/features/tic6x-core.xml | 2 +- gdb/features/tic6x-gp.c | 45 + gdb/features/tic6x-gp.xml | 2 +- gdb/features/traceframe-info.dtd | 2 +- gdb/features/xinclude.dtd | 2 +- gdb/filename-seen-cache.c | 2 +- gdb/filename-seen-cache.h | 2 +- gdb/filesystem.c | 2 +- gdb/filesystem.h | 2 +- gdb/findcmd.c | 6 +- gdb/findvar.c | 2 +- gdb/fork-child.c | 2 +- gdb/frame-base.c | 2 +- gdb/frame-base.h | 2 +- gdb/frame-unwind.c | 2 +- gdb/frame-unwind.h | 2 +- gdb/frame.c | 2 +- gdb/frame.h | 8 +- gdb/frv-linux-tdep.c | 2 +- gdb/frv-tdep.c | 8 +- gdb/frv-tdep.h | 2 +- gdb/ft32-tdep.c | 2 +- gdb/ft32-tdep.h | 2 +- gdb/gcore.c | 19 +- gdb/gcore.h | 2 +- gdb/gcore.in | 49 +- gdb/gdb-code-style.el | 2 +- gdb/gdb-demangle.h | 2 +- gdb/gdb-dlfcn.c | 2 +- gdb/gdb-dlfcn.h | 2 +- gdb/gdb-gdb.py | 2 +- gdb/gdb-stabs.h | 2 +- gdb/gdb.c | 2 +- gdb/gdb_bfd.c | 14 +- gdb/gdb_bfd.h | 19 +- gdb/gdb_buildall.sh | 2 +- gdb/gdb_curses.h | 2 +- gdb/gdb_expat.h | 2 +- gdb/gdb_mbuild.sh | 2 +- gdb/gdb_obstack.c | 2 +- gdb/gdb_obstack.h | 2 +- gdb/gdb_proc_service.h | 2 +- gdb/gdb_regex.c | 2 +- gdb/gdb_regex.h | 2 +- gdb/gdb_select.h | 2 +- gdb/gdb_usleep.c | 2 +- gdb/gdb_usleep.h | 2 +- gdb/gdb_vfork.h | 2 +- gdb/gdb_wchar.h | 2 +- gdb/gdbarch-selftests.c | 52 +- gdb/gdbarch.c | 24 +- gdb/gdbarch.h | 10 +- gdb/gdbarch.sh | 10 +- gdb/gdbcmd.h | 6 +- gdb/gdbcore.h | 2 +- gdb/gdbserver/ChangeLog | 378 + gdb/gdbserver/Makefile.in | 5 +- gdb/gdbserver/ax.c | 24 +- gdb/gdbserver/ax.h | 2 +- gdb/gdbserver/config.in | 3 - gdb/gdbserver/configure | 11 +- gdb/gdbserver/configure.ac | 8 +- gdb/gdbserver/configure.srv | 31 +- gdb/gdbserver/debug.c | 2 +- gdb/gdbserver/debug.h | 2 +- gdb/gdbserver/dll.c | 2 +- gdb/gdbserver/dll.h | 2 +- gdb/gdbserver/event-loop.c | 2 +- gdb/gdbserver/event-loop.h | 2 +- gdb/gdbserver/fork-child.c | 2 +- gdb/gdbserver/gdb_proc_service.h | 2 +- gdb/gdbserver/gdbreplay.c | 4 +- gdb/gdbserver/gdbthread.h | 14 +- gdb/gdbserver/hostio-errno.c | 2 +- gdb/gdbserver/hostio.c | 2 +- gdb/gdbserver/hostio.h | 2 +- gdb/gdbserver/i387-fp.c | 2 +- gdb/gdbserver/i387-fp.h | 2 +- gdb/gdbserver/inferiors.c | 73 +- gdb/gdbserver/inferiors.h | 35 +- gdb/gdbserver/linux-aarch32-low.c | 2 +- gdb/gdbserver/linux-aarch32-low.h | 2 +- gdb/gdbserver/linux-aarch64-ipa.c | 11 +- gdb/gdbserver/linux-aarch64-low.c | 32 +- gdb/gdbserver/linux-aarch64-tdesc-selftest.c | 45 + gdb/gdbserver/linux-aarch64-tdesc.c | 46 + gdb/gdbserver/linux-aarch64-tdesc.h | 24 + gdb/gdbserver/linux-amd64-ipa.c | 34 +- gdb/gdbserver/linux-arm-low.c | 57 +- gdb/gdbserver/linux-bfin-low.c | 2 +- gdb/gdbserver/linux-cris-low.c | 2 +- gdb/gdbserver/linux-crisv32-low.c | 2 +- gdb/gdbserver/linux-i386-ipa.c | 27 +- gdb/gdbserver/linux-ia64-low.c | 2 +- gdb/gdbserver/linux-low.c | 685 +- gdb/gdbserver/linux-low.h | 2 +- gdb/gdbserver/linux-m32r-low.c | 2 +- gdb/gdbserver/linux-m68k-low.c | 33 +- gdb/gdbserver/linux-mips-low.c | 39 +- gdb/gdbserver/linux-nios2-low.c | 2 +- gdb/gdbserver/linux-ppc-ipa.c | 2 +- gdb/gdbserver/linux-ppc-low.c | 2 +- gdb/gdbserver/linux-ppc-tdesc.h | 2 +- gdb/gdbserver/linux-s390-ipa.c | 2 +- gdb/gdbserver/linux-s390-low.c | 2 +- gdb/gdbserver/linux-s390-tdesc.h | 2 +- gdb/gdbserver/linux-sh-low.c | 2 +- gdb/gdbserver/linux-sparc-low.c | 2 +- gdb/gdbserver/linux-tic6x-low.c | 126 +- gdb/gdbserver/linux-tile-low.c | 2 +- gdb/gdbserver/linux-x86-low.c | 2 +- gdb/gdbserver/linux-x86-tdesc-selftest.c | 2 +- gdb/gdbserver/linux-x86-tdesc.c | 2 +- gdb/gdbserver/linux-x86-tdesc.h | 2 +- gdb/gdbserver/linux-xtensa-low.c | 2 +- gdb/gdbserver/lynx-i386-low.c | 2 +- gdb/gdbserver/lynx-low.c | 18 +- gdb/gdbserver/lynx-low.h | 2 +- gdb/gdbserver/lynx-ppc-low.c | 2 +- gdb/gdbserver/mem-break.c | 2 +- gdb/gdbserver/mem-break.h | 2 +- gdb/gdbserver/notif.c | 2 +- gdb/gdbserver/notif.h | 2 +- gdb/gdbserver/nto-low.c | 2 +- gdb/gdbserver/nto-low.h | 2 +- gdb/gdbserver/nto-x86-low.c | 2 +- gdb/gdbserver/proc-service.c | 2 +- gdb/gdbserver/proc-service.list | 2 +- gdb/gdbserver/regcache.c | 21 +- gdb/gdbserver/regcache.h | 2 +- gdb/gdbserver/remote-utils.c | 9 +- gdb/gdbserver/remote-utils.h | 2 +- gdb/gdbserver/server.c | 80 +- gdb/gdbserver/server.h | 2 +- gdb/gdbserver/spu-low.c | 4 +- gdb/gdbserver/symbol.c | 2 +- gdb/gdbserver/target.c | 2 +- gdb/gdbserver/target.h | 2 +- gdb/gdbserver/tdesc.c | 28 +- gdb/gdbserver/tdesc.h | 2 +- gdb/gdbserver/thread-db.c | 16 +- gdb/gdbserver/tracepoint.c | 2 +- gdb/gdbserver/tracepoint.h | 2 +- gdb/gdbserver/utils.c | 2 +- gdb/gdbserver/utils.h | 2 +- gdb/gdbserver/win32-arm-low.c | 2 +- gdb/gdbserver/win32-i386-low.c | 31 +- gdb/gdbserver/win32-low.c | 43 +- gdb/gdbserver/win32-low.h | 2 +- gdb/gdbserver/wincecompat.c | 2 +- gdb/gdbserver/wincecompat.h | 2 +- gdb/gdbserver/x86-low.c | 2 +- gdb/gdbserver/x86-low.h | 2 +- gdb/gdbserver/xtensa-xtregs.c | 2 +- gdb/gdbthread.h | 20 +- gdb/gdbtypes.c | 86 +- gdb/gdbtypes.h | 39 +- gdb/glibc-tdep.c | 2 +- gdb/glibc-tdep.h | 2 +- gdb/gnu-nat.c | 132 +- gdb/gnu-nat.h | 2 +- gdb/gnu-v2-abi.c | 2 +- gdb/gnu-v3-abi.c | 2 +- gdb/gnulib/Makefile.in | 2 +- gdb/gnulib/configure.ac | 2 +- gdb/gnulib/update-gnulib.sh | 2 +- gdb/go-exp.y | 9 +- gdb/go-lang.c | 5 +- gdb/go-lang.h | 2 +- gdb/go-typeprint.c | 2 +- gdb/go-valprint.c | 2 +- gdb/go32-nat.c | 16 +- gdb/gregset.h | 2 +- gdb/guile/guile-internal.h | 2 +- gdb/guile/guile.c | 11 +- gdb/guile/guile.h | 2 +- gdb/guile/lib/gdb.scm | 2 +- gdb/guile/lib/gdb/boot.scm | 2 +- gdb/guile/lib/gdb/experimental.scm | 2 +- gdb/guile/lib/gdb/init.scm | 2 +- gdb/guile/lib/gdb/iterator.scm | 2 +- gdb/guile/lib/gdb/printing.scm | 2 +- gdb/guile/lib/gdb/support.scm | 2 +- gdb/guile/lib/gdb/types.scm | 2 +- gdb/guile/scm-arch.c | 2 +- gdb/guile/scm-auto-load.c | 4 +- gdb/guile/scm-block.c | 2 +- gdb/guile/scm-breakpoint.c | 9 +- gdb/guile/scm-cmd.c | 9 +- gdb/guile/scm-disasm.c | 2 +- gdb/guile/scm-exception.c | 2 +- gdb/guile/scm-frame.c | 3 +- gdb/guile/scm-gsmob.c | 2 +- gdb/guile/scm-iterator.c | 2 +- gdb/guile/scm-lazy-string.c | 2 +- gdb/guile/scm-math.c | 2 +- gdb/guile/scm-objfile.c | 2 +- gdb/guile/scm-param.c | 7 +- gdb/guile/scm-ports.c | 6 +- gdb/guile/scm-pretty-print.c | 7 +- gdb/guile/scm-progspace.c | 2 +- gdb/guile/scm-safe-call.c | 2 +- gdb/guile/scm-string.c | 3 +- gdb/guile/scm-symbol.c | 2 +- gdb/guile/scm-symtab.c | 3 +- gdb/guile/scm-type.c | 4 +- gdb/guile/scm-utils.c | 4 +- gdb/guile/scm-value.c | 2 +- gdb/h8300-tdep.c | 6 +- gdb/hppa-bsd-tdep.c | 2 +- gdb/hppa-bsd-tdep.h | 2 +- gdb/hppa-linux-nat.c | 2 +- gdb/hppa-linux-offsets.h | 2 +- gdb/hppa-linux-tdep.c | 2 +- gdb/hppa-nbsd-nat.c | 2 +- gdb/hppa-nbsd-tdep.c | 2 +- gdb/hppa-obsd-nat.c | 2 +- gdb/hppa-obsd-tdep.c | 2 +- gdb/hppa-tdep.c | 4 +- gdb/hppa-tdep.h | 2 +- gdb/i386-bsd-nat.c | 2 +- gdb/i386-bsd-nat.h | 2 +- gdb/i386-bsd-tdep.c | 2 +- gdb/i386-cygwin-tdep.c | 2 +- gdb/i386-darwin-nat.c | 2 +- gdb/i386-darwin-tdep.c | 2 +- gdb/i386-darwin-tdep.h | 2 +- gdb/i386-dicos-tdep.c | 2 +- gdb/i386-fbsd-nat.c | 2 +- gdb/i386-fbsd-tdep.c | 2 +- gdb/i386-fbsd-tdep.h | 2 +- gdb/i386-gnu-nat.c | 2 +- gdb/i386-gnu-tdep.c | 2 +- gdb/i386-go32-tdep.c | 2 +- gdb/i386-linux-nat.c | 2 +- gdb/i386-linux-nat.h | 2 +- gdb/i386-linux-tdep.c | 2 +- gdb/i386-linux-tdep.h | 2 +- gdb/i386-nbsd-nat.c | 2 +- gdb/i386-nbsd-tdep.c | 2 +- gdb/i386-nto-tdep.c | 2 +- gdb/i386-obsd-nat.c | 2 +- gdb/i386-obsd-tdep.c | 2 +- gdb/i386-sol2-nat.c | 4 +- gdb/i386-sol2-tdep.c | 2 +- gdb/i386-tdep.c | 72 +- gdb/i386-tdep.h | 2 +- gdb/i386-v4-nat.c | 2 +- gdb/i386-windows-nat.c | 2 +- gdb/i387-tdep.c | 2 +- gdb/i387-tdep.h | 2 +- gdb/ia64-libunwind-tdep.c | 2 +- gdb/ia64-libunwind-tdep.h | 2 +- gdb/ia64-linux-nat.c | 2 +- gdb/ia64-linux-tdep.c | 2 +- gdb/ia64-tdep.c | 32 +- gdb/ia64-tdep.h | 2 +- gdb/ia64-vms-tdep.c | 2 +- gdb/inf-child.c | 2 +- gdb/inf-child.h | 2 +- gdb/inf-loop.c | 12 +- gdb/inf-loop.h | 2 +- gdb/inf-ptrace.c | 20 +- gdb/inf-ptrace.h | 4 +- gdb/infcall.c | 2 +- gdb/infcall.h | 2 +- gdb/infcmd.c | 187 +- gdb/inferior.c | 31 +- gdb/inferior.h | 20 +- gdb/inflow.c | 54 +- gdb/inflow.h | 2 +- gdb/infrun.c | 110 +- gdb/infrun.h | 2 +- gdb/inline-frame.c | 2 +- gdb/inline-frame.h | 2 +- gdb/interps.c | 22 +- gdb/interps.h | 2 +- gdb/iq2000-tdep.c | 2 +- gdb/jit-reader.in | 2 +- gdb/jit.c | 28 +- gdb/jit.h | 2 +- gdb/language.c | 59 +- gdb/language.h | 66 +- gdb/libiberty.m4 | 2 +- gdb/libmcheck.m4 | 2 +- gdb/linespec.c | 285 +- gdb/linespec.h | 14 +- gdb/linux-fork.c | 10 +- gdb/linux-fork.h | 4 +- gdb/linux-nat.c | 63 +- gdb/linux-nat.h | 2 +- gdb/linux-record.c | 2 +- gdb/linux-record.h | 2 +- gdb/linux-tdep.c | 32 +- gdb/linux-tdep.h | 2 +- gdb/linux-thread-db.c | 62 +- gdb/lm32-tdep.c | 2 +- gdb/location.c | 98 +- gdb/location.h | 51 +- gdb/m2-exp.y | 16 +- gdb/m2-lang.c | 5 +- gdb/m2-lang.h | 2 +- gdb/m2-typeprint.c | 2 +- gdb/m2-valprint.c | 3 +- gdb/m32c-tdep.c | 36 +- gdb/m32r-linux-nat.c | 2 +- gdb/m32r-linux-tdep.c | 2 +- gdb/m32r-tdep.c | 2 +- gdb/m32r-tdep.h | 2 +- gdb/m68hc11-tdep.c | 8 +- gdb/m68k-bsd-nat.c | 2 +- gdb/m68k-bsd-tdep.c | 2 +- gdb/m68k-linux-nat.c | 2 +- gdb/m68k-linux-tdep.c | 2 +- gdb/m68k-tdep.c | 2 +- gdb/m68k-tdep.h | 2 +- gdb/m88k-bsd-nat.c | 2 +- gdb/m88k-tdep.c | 2 +- gdb/m88k-tdep.h | 2 +- gdb/machoread.c | 2 +- gdb/macrocmd.c | 19 +- gdb/macroexp.c | 2 +- gdb/macroexp.h | 2 +- gdb/macroscope.c | 2 +- gdb/macroscope.h | 2 +- gdb/macrotab.c | 2 +- gdb/macrotab.h | 2 +- gdb/main.c | 71 +- gdb/main.h | 2 +- gdb/maint.c | 43 +- gdb/maint.h | 2 +- gdb/make-target-delegates | 14 +- gdb/mdebugread.c | 33 +- gdb/mdebugread.h | 2 +- gdb/mem-break.c | 2 +- gdb/memattr.c | 60 +- gdb/memattr.h | 2 +- gdb/memory-map.c | 18 +- gdb/memory-map.h | 2 +- gdb/memrange.c | 2 +- gdb/memrange.h | 2 +- gdb/mep-tdep.c | 11 +- gdb/mi/mi-cmd-break.c | 5 +- gdb/mi/mi-cmd-break.h | 2 +- gdb/mi/mi-cmd-catch.c | 2 +- gdb/mi/mi-cmd-disas.c | 2 +- gdb/mi/mi-cmd-env.c | 6 +- gdb/mi/mi-cmd-file.c | 3 +- gdb/mi/mi-cmd-info.c | 2 +- gdb/mi/mi-cmd-stack.c | 2 +- gdb/mi/mi-cmd-target.c | 2 +- gdb/mi/mi-cmd-var.c | 78 +- gdb/mi/mi-cmds.c | 2 +- gdb/mi/mi-cmds.h | 2 +- gdb/mi/mi-common.c | 2 +- gdb/mi/mi-common.h | 2 +- gdb/mi/mi-console.c | 2 +- gdb/mi/mi-console.h | 2 +- gdb/mi/mi-getopt.c | 2 +- gdb/mi/mi-getopt.h | 2 +- gdb/mi/mi-interp.c | 3 +- gdb/mi/mi-interp.h | 2 +- gdb/mi/mi-main.c | 154 +- gdb/mi/mi-main.h | 2 +- gdb/mi/mi-out.c | 2 +- gdb/mi/mi-out.h | 2 +- gdb/mi/mi-parse.c | 2 +- gdb/mi/mi-parse.h | 2 +- gdb/mi/mi-symbol-cmds.c | 2 +- gdb/microblaze-linux-tdep.c | 4 +- gdb/microblaze-tdep.c | 2 +- gdb/microblaze-tdep.h | 2 +- gdb/mingw-hdep.c | 2 +- gdb/minidebug.c | 3 +- gdb/minsyms.c | 427 +- gdb/minsyms.h | 15 +- gdb/mips-fbsd-nat.c | 2 +- gdb/mips-fbsd-tdep.c | 2 +- gdb/mips-fbsd-tdep.h | 2 +- gdb/mips-linux-nat.c | 2 +- gdb/mips-linux-tdep.c | 3 +- gdb/mips-linux-tdep.h | 2 +- gdb/mips-nbsd-nat.c | 2 +- gdb/mips-nbsd-tdep.c | 2 +- gdb/mips-nbsd-tdep.h | 2 +- gdb/mips-sde-tdep.c | 2 +- gdb/mips-tdep.c | 22 +- gdb/mips-tdep.h | 2 +- gdb/mips64-obsd-nat.c | 2 +- gdb/mips64-obsd-tdep.c | 2 +- gdb/mipsread.c | 2 +- gdb/mn10300-linux-tdep.c | 2 +- gdb/mn10300-tdep.c | 2 +- gdb/mn10300-tdep.h | 2 +- gdb/moxie-tdep.c | 2 +- gdb/moxie-tdep.h | 2 +- gdb/msp430-tdep.c | 4 +- gdb/mt-tdep.c | 1218 - gdb/namespace.c | 2 +- gdb/namespace.h | 2 +- gdb/nat/aarch64-linux-hw-point.c | 2 +- gdb/nat/aarch64-linux-hw-point.h | 2 +- gdb/nat/aarch64-linux.c | 2 +- gdb/nat/aarch64-linux.h | 2 +- gdb/nat/amd64-linux-siginfo.c | 2 +- gdb/nat/amd64-linux-siginfo.h | 2 +- gdb/nat/fork-inferior.c | 2 +- gdb/nat/fork-inferior.h | 2 +- gdb/nat/gdb_ptrace.h | 2 +- gdb/nat/gdb_thread_db.h | 2 +- gdb/nat/linux-btrace.c | 4 +- gdb/nat/linux-btrace.h | 2 +- gdb/nat/linux-namespaces.c | 2 +- gdb/nat/linux-namespaces.h | 2 +- gdb/nat/linux-nat.h | 2 +- gdb/nat/linux-osdata.c | 2 +- gdb/nat/linux-osdata.h | 2 +- gdb/nat/linux-personality.c | 73 +- gdb/nat/linux-personality.h | 29 +- gdb/nat/linux-procfs.c | 2 +- gdb/nat/linux-procfs.h | 2 +- gdb/nat/linux-ptrace.c | 59 +- gdb/nat/linux-ptrace.h | 16 +- gdb/nat/linux-waitpid.c | 2 +- gdb/nat/linux-waitpid.h | 2 +- gdb/nat/mips-linux-watch.c | 2 +- gdb/nat/mips-linux-watch.h | 2 +- gdb/nat/ppc-linux.c | 2 +- gdb/nat/ppc-linux.h | 2 +- gdb/nat/x86-cpuid.h | 2 +- gdb/nat/x86-dregs.c | 2 +- gdb/nat/x86-dregs.h | 2 +- gdb/nat/x86-gcc-cpuid.h | 2 +- gdb/nat/x86-linux-dregs.c | 2 +- gdb/nat/x86-linux-dregs.h | 2 +- gdb/nat/x86-linux.c | 2 +- gdb/nat/x86-linux.h | 2 +- gdb/nbsd-nat.c | 2 +- gdb/nbsd-nat.h | 2 +- gdb/nbsd-tdep.c | 2 +- gdb/nbsd-tdep.h | 2 +- gdb/nds32-tdep.c | 4 +- gdb/nds32-tdep.h | 2 +- gdb/nios2-linux-tdep.c | 6 +- gdb/nios2-tdep.c | 4 +- gdb/nios2-tdep.h | 2 +- gdb/nto-procfs.c | 44 +- gdb/nto-tdep.c | 12 +- gdb/nto-tdep.h | 18 +- gdb/objc-lang.c | 11 +- gdb/objc-lang.h | 2 +- gdb/objfile-flags.h | 6 +- gdb/objfiles.c | 4 +- gdb/objfiles.h | 14 +- gdb/obsd-nat.c | 2 +- gdb/obsd-nat.h | 2 +- gdb/obsd-tdep.c | 2 +- gdb/obsd-tdep.h | 2 +- gdb/observer.c | 2 +- gdb/observer.sh | 2 +- gdb/opencl-lang.c | 5 +- gdb/or1k-tdep.c | 1294 + gdb/or1k-tdep.h | 56 + gdb/osabi.c | 6 +- gdb/osabi.h | 2 +- gdb/osdata.c | 220 +- gdb/osdata.h | 44 +- gdb/p-exp.y | 14 +- gdb/p-lang.c | 5 +- gdb/p-lang.h | 2 +- gdb/p-typeprint.c | 2 +- gdb/p-valprint.c | 12 +- gdb/parse.c | 97 +- gdb/parser-defs.h | 113 +- gdb/posix-hdep.c | 2 +- gdb/ppc-fbsd-nat.c | 2 +- gdb/ppc-fbsd-tdep.c | 2 +- gdb/ppc-fbsd-tdep.h | 2 +- gdb/ppc-linux-nat.c | 2 +- gdb/ppc-linux-tdep.c | 42 +- gdb/ppc-linux-tdep.h | 2 +- gdb/ppc-nbsd-nat.c | 2 +- gdb/ppc-nbsd-tdep.c | 2 +- gdb/ppc-nbsd-tdep.h | 2 +- gdb/ppc-obsd-nat.c | 2 +- gdb/ppc-obsd-tdep.c | 2 +- gdb/ppc-obsd-tdep.h | 2 +- gdb/ppc-ravenscar-thread.c | 2 +- gdb/ppc-ravenscar-thread.h | 2 +- gdb/ppc-sysv-tdep.c | 2 +- gdb/ppc-tdep.h | 14 +- gdb/ppc64-tdep.c | 103 +- gdb/ppc64-tdep.h | 2 +- gdb/printcmd.c | 85 +- gdb/probe.c | 438 +- gdb/probe.h | 360 +- gdb/proc-api.c | 364 +- gdb/proc-events.c | 1207 +- gdb/proc-flags.c | 220 +- gdb/proc-service.c | 2 +- gdb/proc-service.list | 2 +- gdb/proc-utils.h | 2 +- gdb/proc-why.c | 63 +- gdb/procfs.c | 1931 +- gdb/procfs.h | 2 +- gdb/producer.c | 2 +- gdb/producer.h | 2 +- gdb/progspace-and-thread.c | 2 +- gdb/progspace-and-thread.h | 2 +- gdb/progspace.c | 2 +- gdb/progspace.h | 2 +- gdb/prologue-value.c | 2 +- gdb/prologue-value.h | 2 +- gdb/psympriv.h | 2 +- gdb/psymtab.c | 191 +- gdb/psymtab.h | 3 +- gdb/ptrace.m4 | 2 +- gdb/python/lib/gdb/FrameDecorator.py | 2 +- gdb/python/lib/gdb/FrameIterator.py | 2 +- gdb/python/lib/gdb/__init__.py | 2 +- gdb/python/lib/gdb/command/__init__.py | 2 +- gdb/python/lib/gdb/command/explore.py | 2 +- gdb/python/lib/gdb/command/frame_filters.py | 2 +- gdb/python/lib/gdb/command/pretty_printers.py | 2 +- gdb/python/lib/gdb/command/prompt.py | 2 +- gdb/python/lib/gdb/command/type_printers.py | 2 +- gdb/python/lib/gdb/command/unwinders.py | 2 +- gdb/python/lib/gdb/command/xmethods.py | 2 +- gdb/python/lib/gdb/frames.py | 2 +- gdb/python/lib/gdb/function/__init__.py | 2 +- gdb/python/lib/gdb/function/as_string.py | 2 +- gdb/python/lib/gdb/function/caller_is.py | 2 +- gdb/python/lib/gdb/function/strfns.py | 2 +- gdb/python/lib/gdb/printer/__init__.py | 2 +- gdb/python/lib/gdb/printer/bound_registers.py | 2 +- gdb/python/lib/gdb/printing.py | 2 +- gdb/python/lib/gdb/prompt.py | 2 +- gdb/python/lib/gdb/types.py | 2 +- gdb/python/lib/gdb/unwinder.py | 2 +- gdb/python/lib/gdb/xmethod.py | 2 +- gdb/python/py-all-events.def | 2 +- gdb/python/py-arch.c | 2 +- gdb/python/py-auto-load.c | 4 +- gdb/python/py-block.c | 2 +- gdb/python/py-bpevent.c | 2 +- gdb/python/py-breakpoint.c | 147 +- gdb/python/py-cmd.c | 5 +- gdb/python/py-continueevent.c | 2 +- gdb/python/py-event-types.def | 2 +- gdb/python/py-event.c | 2 +- gdb/python/py-event.h | 2 +- gdb/python/py-events.h | 2 +- gdb/python/py-evtregistry.c | 2 +- gdb/python/py-evts.c | 2 +- gdb/python/py-exitedevent.c | 2 +- gdb/python/py-finishbreakpoint.c | 2 +- gdb/python/py-frame.c | 2 +- gdb/python/py-framefilter.c | 2 +- gdb/python/py-function.c | 2 +- gdb/python/py-gdb-readline.c | 4 +- gdb/python/py-inferior.c | 2 +- gdb/python/py-infevents.c | 3 +- gdb/python/py-infthread.c | 2 +- gdb/python/py-instruction.c | 2 +- gdb/python/py-instruction.h | 2 +- gdb/python/py-lazy-string.c | 2 +- gdb/python/py-linetable.c | 2 +- gdb/python/py-newobjfileevent.c | 2 +- gdb/python/py-objfile.c | 2 +- gdb/python/py-param.c | 4 +- gdb/python/py-prettyprint.c | 2 +- gdb/python/py-progspace.c | 2 +- gdb/python/py-record-btrace.c | 3 +- gdb/python/py-record-btrace.h | 2 +- gdb/python/py-record-full.c | 2 +- gdb/python/py-record-full.h | 2 +- gdb/python/py-record.c | 2 +- gdb/python/py-record.h | 2 +- gdb/python/py-ref.h | 2 +- gdb/python/py-signalevent.c | 2 +- gdb/python/py-stopevent.c | 2 +- gdb/python/py-stopevent.h | 2 +- gdb/python/py-symbol.c | 2 +- gdb/python/py-symtab.c | 2 +- gdb/python/py-threadevent.c | 2 +- gdb/python/py-type.c | 3 +- gdb/python/py-unwind.c | 9 +- gdb/python/py-utils.c | 2 +- gdb/python/py-value.c | 3 +- gdb/python/py-varobj.c | 2 +- gdb/python/py-xmethods.c | 145 +- gdb/python/python-internal.h | 23 +- gdb/python/python.c | 225 +- gdb/python/python.h | 2 +- gdb/ravenscar-thread.c | 262 +- gdb/ravenscar-thread.h | 2 +- gdb/record-btrace.c | 16 +- gdb/record-btrace.h | 2 +- gdb/record-full.c | 8 +- gdb/record-full.h | 2 +- gdb/record.c | 25 +- gdb/record.h | 5 +- gdb/regcache.c | 386 +- gdb/regcache.h | 2 +- gdb/regformats/regdat.sh | 2 +- gdb/regformats/regdef.h | 2 +- gdb/reggroups.c | 48 +- gdb/reggroups.h | 8 +- gdb/registry.c | 2 +- gdb/registry.h | 6 +- gdb/regset.h | 2 +- gdb/remote-fileio.c | 4 +- gdb/remote-fileio.h | 2 +- gdb/remote-notif.c | 2 +- gdb/remote-notif.h | 2 +- gdb/remote-sim.c | 16 +- gdb/remote.c | 557 +- gdb/remote.h | 2 +- gdb/reply_mig_hack.awk | 2 +- gdb/reverse.c | 26 +- gdb/rl78-tdep.c | 29 +- gdb/rs6000-aix-tdep.c | 2 +- gdb/rs6000-aix-tdep.h | 2 +- gdb/rs6000-lynx178-tdep.c | 2 +- gdb/rs6000-nat.c | 2 +- gdb/rs6000-tdep.c | 65 +- gdb/rs6000-tdep.h | 2 +- gdb/rust-exp.y | 17 +- gdb/rust-lang.c | 81 +- gdb/rust-lang.h | 2 +- gdb/rx-tdep.c | 4 +- gdb/s390-linux-nat.c | 3 +- gdb/s390-linux-tdep.c | 7228 +-- gdb/s390-linux-tdep.h | 178 +- gdb/s390-tdep.c | 7123 ++ gdb/s390-tdep.h | 318 + gdb/score-tdep.c | 2 +- gdb/score-tdep.h | 2 +- gdb/selftest-arch.c | 2 +- gdb/selftest-arch.h | 2 +- gdb/sentinel-frame.c | 2 +- gdb/sentinel-frame.h | 2 +- gdb/ser-base.c | 2 +- gdb/ser-base.h | 2 +- gdb/ser-event.c | 4 +- gdb/ser-event.h | 2 +- gdb/ser-go32.c | 4 +- gdb/ser-mingw.c | 2 +- gdb/ser-pipe.c | 2 +- gdb/ser-tcp.c | 2 +- gdb/ser-tcp.h | 2 +- gdb/ser-unix.c | 2 +- gdb/ser-unix.h | 2 +- gdb/serial.c | 5 +- gdb/serial.h | 2 +- gdb/sh-linux-tdep.c | 2 +- gdb/sh-nbsd-nat.c | 2 +- gdb/sh-nbsd-tdep.c | 2 +- gdb/sh-tdep.c | 6 +- gdb/sh-tdep.h | 2 +- gdb/sh64-tdep.c | 10 +- gdb/sh64-tdep.h | 2 +- gdb/sim-regno.h | 2 +- gdb/skip.c | 4 +- gdb/skip.h | 2 +- gdb/sol-thread.c | 10 +- gdb/sol2-tdep.c | 2 +- gdb/sol2-tdep.h | 2 +- gdb/solib-aix.c | 22 +- gdb/solib-aix.h | 2 +- gdb/solib-darwin.c | 2 +- gdb/solib-darwin.h | 2 +- gdb/solib-dsbt.c | 2 +- gdb/solib-frv.c | 2 +- gdb/solib-spu.c | 2 +- gdb/solib-spu.h | 2 +- gdb/solib-svr4.c | 56 +- gdb/solib-svr4.h | 2 +- gdb/solib-target.c | 22 +- gdb/solib-target.h | 2 +- gdb/solib.c | 12 +- gdb/solib.h | 4 +- gdb/solist.h | 2 +- gdb/source.c | 29 +- gdb/source.h | 2 +- gdb/sparc-linux-nat.c | 2 +- gdb/sparc-linux-tdep.c | 2 +- gdb/sparc-nat.c | 2 +- gdb/sparc-nat.h | 2 +- gdb/sparc-nbsd-nat.c | 2 +- gdb/sparc-nbsd-tdep.c | 2 +- gdb/sparc-obsd-tdep.c | 2 +- gdb/sparc-ravenscar-thread.c | 2 +- gdb/sparc-ravenscar-thread.h | 2 +- gdb/sparc-sol2-nat.c | 4 +- gdb/sparc-sol2-tdep.c | 2 +- gdb/sparc-tdep.c | 6 +- gdb/sparc-tdep.h | 2 +- gdb/sparc64-fbsd-nat.c | 2 +- gdb/sparc64-fbsd-tdep.c | 2 +- gdb/sparc64-linux-nat.c | 2 +- gdb/sparc64-linux-tdep.c | 2 +- gdb/sparc64-nat.c | 2 +- gdb/sparc64-nbsd-nat.c | 2 +- gdb/sparc64-nbsd-tdep.c | 2 +- gdb/sparc64-obsd-nat.c | 2 +- gdb/sparc64-obsd-tdep.c | 2 +- gdb/sparc64-sol2-tdep.c | 2 +- gdb/sparc64-tdep.c | 32 +- gdb/sparc64-tdep.h | 2 +- gdb/spu-linux-nat.c | 2 +- gdb/spu-multiarch.c | 2 +- gdb/spu-tdep.c | 25 +- gdb/spu-tdep.h | 2 +- gdb/stabsread.c | 2 +- gdb/stabsread.h | 5 +- gdb/stack.c | 49 +- gdb/stack.h | 4 +- gdb/stap-probe.c | 560 +- gdb/stap-probe.h | 16 +- gdb/std-operator.def | 2 +- gdb/std-regs.c | 2 +- gdb/stub-termcap.c | 2 +- gdb/stubs/buildvms.com | 2 +- gdb/stubs/ia64vms-stub.c | 2 +- gdb/symfile-add-flags.h | 2 +- gdb/symfile-debug.c | 38 +- gdb/symfile-mem.c | 2 +- gdb/symfile.c | 171 +- gdb/symfile.h | 35 +- gdb/symmisc.c | 3 +- gdb/symtab.c | 494 +- gdb/symtab.h | 427 +- gdb/syscalls/aarch64-linux.xml | 2 +- gdb/syscalls/aarch64-linux.xml.in | 2 +- gdb/syscalls/amd64-linux.xml | 2 +- gdb/syscalls/amd64-linux.xml.in | 2 +- gdb/syscalls/apply-defaults.xsl | 2 +- gdb/syscalls/arm-linux.py | 2 +- gdb/syscalls/arm-linux.xml | 2 +- gdb/syscalls/arm-linux.xml.in | 2 +- gdb/syscalls/bfin-linux.xml.in | 2 +- gdb/syscalls/freebsd.xml | 2 +- gdb/syscalls/gdb-syscalls.dtd | 2 +- gdb/syscalls/i386-linux.xml | 2 +- gdb/syscalls/i386-linux.xml.in | 2 +- gdb/syscalls/linux-defaults.xml.in | 2 +- gdb/syscalls/mips-n32-linux.xml | 2 +- gdb/syscalls/mips-n32-linux.xml.in | 2 +- gdb/syscalls/mips-n64-linux.xml | 2 +- gdb/syscalls/mips-n64-linux.xml.in | 2 +- gdb/syscalls/mips-o32-linux.xml | 2 +- gdb/syscalls/mips-o32-linux.xml.in | 2 +- gdb/syscalls/ppc-linux.xml | 2 +- gdb/syscalls/ppc-linux.xml.in | 2 +- gdb/syscalls/ppc64-linux.xml | 2 +- gdb/syscalls/ppc64-linux.xml.in | 2 +- gdb/syscalls/s390-linux.xml | 2 +- gdb/syscalls/s390-linux.xml.in | 2 +- gdb/syscalls/s390x-linux.xml | 2 +- gdb/syscalls/s390x-linux.xml.in | 2 +- gdb/syscalls/sparc-linux.xml | 2 +- gdb/syscalls/sparc-linux.xml.in | 2 +- gdb/syscalls/sparc64-linux.xml | 2 +- gdb/syscalls/sparc64-linux.xml.in | 2 +- gdb/system-gdbinit/elinos.py | 2 +- gdb/system-gdbinit/wrs-linux.py | 2 +- gdb/target-dcache.c | 6 +- gdb/target-dcache.h | 2 +- gdb/target-debug.h | 12 +- gdb/target-delegates.c | 36 +- gdb/target-descriptions.c | 1364 +- gdb/target-descriptions.h | 12 +- gdb/target-float.c | 1667 +- gdb/target-float.h | 2 +- gdb/target-memory.c | 2 +- gdb/target.c | 89 +- gdb/target.h | 66 +- gdb/target/resume.h | 2 +- gdb/target/target.h | 2 +- gdb/target/wait.h | 2 +- gdb/target/waitstatus.c | 2 +- gdb/target/waitstatus.h | 2 +- gdb/terminal.h | 2 +- gdb/testsuite/ChangeLog | 747 +- gdb/testsuite/ChangeLog-1993-2013 | 2 +- gdb/testsuite/Makefile.in | 2 +- gdb/testsuite/analyze-racy-logs.py | 2 +- gdb/testsuite/boards/cc-with-tweaks.exp | 7 +- gdb/testsuite/boards/dwarf4-gdb-index.exp | 7 +- gdb/testsuite/boards/fission-dwp.exp | 2 +- gdb/testsuite/boards/fission.exp | 8 +- gdb/testsuite/boards/gdbserver-base.exp | 2 +- gdb/testsuite/boards/local-board.exp | 2 +- gdb/testsuite/boards/local-remote-host-native.exp | 2 +- gdb/testsuite/boards/local-remote-host-notty.exp | 2 +- gdb/testsuite/boards/local-remote-host.exp | 2 +- gdb/testsuite/boards/native-extended-gdbserver.exp | 2 +- gdb/testsuite/boards/native-gdbserver.exp | 2 +- gdb/testsuite/boards/native-stdio-gdbserver.exp | 2 +- .../boards/remote-gdbserver-on-localhost.exp | 2 +- gdb/testsuite/boards/remote-stdio-gdbserver.exp | 2 +- gdb/testsuite/boards/stabs.exp | 8 +- gdb/testsuite/boards/stdio-gdbserver-base.exp | 2 +- gdb/testsuite/config/cfdbug.exp | 2 +- gdb/testsuite/config/d10v.exp | 2 +- gdb/testsuite/config/default.exp | 2 +- gdb/testsuite/config/dve.exp | 2 +- gdb/testsuite/config/extended-gdbserver.exp | 2 +- gdb/testsuite/config/gdbserver.exp | 2 +- gdb/testsuite/config/i960.exp | 2 +- gdb/testsuite/config/m32r.exp | 2 +- gdb/testsuite/config/mips-idt.exp | 2 +- gdb/testsuite/config/mips.exp | 2 +- gdb/testsuite/config/mn10300-eval.exp | 2 +- gdb/testsuite/config/monitor.exp | 2 +- gdb/testsuite/config/proelf.exp | 2 +- gdb/testsuite/config/rom68k.exp | 2 +- gdb/testsuite/config/sh.exp | 2 +- gdb/testsuite/config/sid.exp | 2 +- gdb/testsuite/config/sim.exp | 2 +- gdb/testsuite/config/slite.exp | 2 +- gdb/testsuite/config/unix.exp | 2 +- gdb/testsuite/config/vr4300.exp | 2 +- gdb/testsuite/config/vr5000.exp | 2 +- gdb/testsuite/configure.ac | 2 +- gdb/testsuite/dg-extract-results.sh | 2 +- gdb/testsuite/gdb.ada/O2_float_param.exp | 2 +- gdb/testsuite/gdb.ada/O2_float_param/callee.adb | 2 +- gdb/testsuite/gdb.ada/O2_float_param/callee.ads | 2 +- gdb/testsuite/gdb.ada/O2_float_param/caller.adb | 2 +- gdb/testsuite/gdb.ada/O2_float_param/caller.ads | 2 +- gdb/testsuite/gdb.ada/O2_float_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/O2_float_param/io.adb | 2 +- gdb/testsuite/gdb.ada/O2_float_param/io.ads | 2 +- gdb/testsuite/gdb.ada/access_tagged_param.exp | 40 + gdb/testsuite/gdb.ada/access_tagged_param/foo.adb | 20 + gdb/testsuite/gdb.ada/access_tagged_param/pck.adb | 21 + gdb/testsuite/gdb.ada/access_tagged_param/pck.ads | 21 + gdb/testsuite/gdb.ada/access_to_packed_array.exp | 2 +- .../gdb.ada/access_to_packed_array/foo.adb | 2 +- .../gdb.ada/access_to_packed_array/pack.adb | 2 +- .../gdb.ada/access_to_packed_array/pack.ads | 2 +- gdb/testsuite/gdb.ada/addr_arith.exp | 2 +- gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb | 2 +- gdb/testsuite/gdb.ada/addr_arith/pck.adb | 2 +- gdb/testsuite/gdb.ada/addr_arith/pck.ads | 2 +- gdb/testsuite/gdb.ada/aliased_array.exp | 2 +- gdb/testsuite/gdb.ada/aliased_array/foo.adb | 2 +- gdb/testsuite/gdb.ada/aliased_array/pck.adb | 2 +- gdb/testsuite/gdb.ada/aliased_array/pck.ads | 2 +- gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp | 55 + .../gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb | 28 + .../gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads | 48 + .../arr_acc_idx_w_gap/enum_with_gap_main.adb | 25 + gdb/testsuite/gdb.ada/arr_arr.exp | 2 +- gdb/testsuite/gdb.ada/arr_arr/foo.adb | 2 +- gdb/testsuite/gdb.ada/arr_arr/pck.adb | 2 +- gdb/testsuite/gdb.ada/arr_arr/pck.ads | 2 +- gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp | 33 + .../gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb | 24 + gdb/testsuite/gdb.ada/array_bounds.exp | 2 +- gdb/testsuite/gdb.ada/array_bounds/bar.adb | 2 +- gdb/testsuite/gdb.ada/array_char_idx.exp | 5 +- gdb/testsuite/gdb.ada/array_char_idx/foo.adb | 2 +- gdb/testsuite/gdb.ada/array_char_idx/pck.adb | 2 +- gdb/testsuite/gdb.ada/array_char_idx/pck.ads | 5 +- gdb/testsuite/gdb.ada/array_of_variable_length.exp | 2 +- .../gdb.ada/array_of_variable_length/foo.adb | 2 +- .../gdb.ada/array_of_variable_length/pck.adb | 2 +- .../gdb.ada/array_of_variable_length/pck.ads | 2 +- gdb/testsuite/gdb.ada/array_ptr_renaming.exp | 2 +- gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb | 2 +- gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads | 2 +- gdb/testsuite/gdb.ada/array_return.exp | 2 +- gdb/testsuite/gdb.ada/array_return/p.adb | 2 +- gdb/testsuite/gdb.ada/array_return/pck.adb | 2 +- gdb/testsuite/gdb.ada/array_return/pck.ads | 2 +- gdb/testsuite/gdb.ada/array_subscript_addr.exp | 2 +- gdb/testsuite/gdb.ada/array_subscript_addr/p.adb | 2 +- gdb/testsuite/gdb.ada/arraydim.exp | 2 +- gdb/testsuite/gdb.ada/arraydim/foo.adb | 2 +- gdb/testsuite/gdb.ada/arraydim/inc.c | 2 +- gdb/testsuite/gdb.ada/arraydim/pck.adb | 2 +- gdb/testsuite/gdb.ada/arraydim/pck.ads | 2 +- gdb/testsuite/gdb.ada/arrayidx.exp | 2 +- gdb/testsuite/gdb.ada/arrayidx/p.adb | 2 +- gdb/testsuite/gdb.ada/arrayparam.exp | 2 +- gdb/testsuite/gdb.ada/arrayparam/foo.adb | 2 +- gdb/testsuite/gdb.ada/arrayparam/pck.adb | 2 +- gdb/testsuite/gdb.ada/arrayparam/pck.ads | 2 +- gdb/testsuite/gdb.ada/arrayptr.exp | 2 +- gdb/testsuite/gdb.ada/arrayptr/foo.adb | 2 +- gdb/testsuite/gdb.ada/arrayptr/pck.adb | 2 +- gdb/testsuite/gdb.ada/arrayptr/pck.ads | 2 +- gdb/testsuite/gdb.ada/assign_1.exp | 2 +- gdb/testsuite/gdb.ada/assign_arr.exp | 30 + gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb | 21 + .../gdb.ada/assign_arr/target_wrapper.ads | 26 + gdb/testsuite/gdb.ada/atomic_enum.exp | 2 +- gdb/testsuite/gdb.ada/atomic_enum/foo.adb | 2 +- gdb/testsuite/gdb.ada/atomic_enum/pck.adb | 2 +- gdb/testsuite/gdb.ada/atomic_enum/pck.ads | 2 +- gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp | 2 +- gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb | 2 +- gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp | 2 +- gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb | 2 +- gdb/testsuite/gdb.ada/boolean_expr.exp | 2 +- gdb/testsuite/gdb.ada/bp_c_mixed_case.exp | 104 + gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c | 21 + .../gdb.ada/bp_c_mixed_case/foo_h731_021.adb | 24 + gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c | 21 + gdb/testsuite/gdb.ada/bp_enum_homonym.exp | 2 +- gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb | 2 +- gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb | 2 +- gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads | 2 +- gdb/testsuite/gdb.ada/bp_inlined_func.exp | 59 + gdb/testsuite/gdb.ada/bp_inlined_func/b.adb | 28 + gdb/testsuite/gdb.ada/bp_inlined_func/b.ads | 19 + gdb/testsuite/gdb.ada/bp_inlined_func/c.adb | 27 + gdb/testsuite/gdb.ada/bp_inlined_func/c.ads | 19 + gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb | 23 + gdb/testsuite/gdb.ada/bp_on_var.exp | 2 +- gdb/testsuite/gdb.ada/bp_on_var/foo.adb | 2 +- gdb/testsuite/gdb.ada/bp_on_var/pck.adb | 2 +- gdb/testsuite/gdb.ada/bp_on_var/pck.ads | 2 +- gdb/testsuite/gdb.ada/bp_range_type.exp | 2 +- gdb/testsuite/gdb.ada/bp_range_type/foo.adb | 2 +- gdb/testsuite/gdb.ada/bp_range_type/pck.adb | 2 +- gdb/testsuite/gdb.ada/bp_range_type/pck.ads | 2 +- gdb/testsuite/gdb.ada/bp_reset.exp | 2 +- gdb/testsuite/gdb.ada/bp_reset/foo.adb | 2 +- gdb/testsuite/gdb.ada/bp_reset/io.adb | 2 +- gdb/testsuite/gdb.ada/bp_reset/io.ads | 2 +- gdb/testsuite/gdb.ada/bp_reset/pck.adb | 2 +- gdb/testsuite/gdb.ada/bp_reset/pck.ads | 2 +- gdb/testsuite/gdb.ada/byte_packed_arr.exp | 2 +- .../gdb.ada/byte_packed_arr/array_list_g.ads | 2 +- gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb | 2 +- gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads | 2 +- .../gdb.ada/byte_packed_arr/reprod_main.adb | 2 +- gdb/testsuite/gdb.ada/call_pn.exp | 2 +- gdb/testsuite/gdb.ada/call_pn/foo.adb | 2 +- gdb/testsuite/gdb.ada/call_pn/pck.adb | 2 +- gdb/testsuite/gdb.ada/call_pn/pck.ads | 2 +- gdb/testsuite/gdb.ada/catch_ex.exp | 10 +- gdb/testsuite/gdb.ada/catch_ex/foo.adb | 2 +- gdb/testsuite/gdb.ada/char_enum.exp | 2 +- gdb/testsuite/gdb.ada/char_enum/foo.adb | 2 +- gdb/testsuite/gdb.ada/char_enum/pck.adb | 2 +- gdb/testsuite/gdb.ada/char_enum/pck.ads | 2 +- gdb/testsuite/gdb.ada/char_param.exp | 2 +- gdb/testsuite/gdb.ada/char_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/char_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/char_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/complete.exp | 33 +- gdb/testsuite/gdb.ada/complete/aux_pck.adb | 2 +- gdb/testsuite/gdb.ada/complete/aux_pck.ads | 2 +- gdb/testsuite/gdb.ada/complete/foo.adb | 2 +- gdb/testsuite/gdb.ada/complete/pck.adb | 2 +- gdb/testsuite/gdb.ada/complete/pck.ads | 2 +- gdb/testsuite/gdb.ada/cond_lang.exp | 2 +- gdb/testsuite/gdb.ada/cond_lang/a.adb | 2 +- gdb/testsuite/gdb.ada/cond_lang/foo.c | 2 +- gdb/testsuite/gdb.ada/cond_lang/mixed.adb | 2 +- gdb/testsuite/gdb.ada/cond_lang/mixed.ads | 2 +- gdb/testsuite/gdb.ada/cond_lang/pck.adb | 2 +- gdb/testsuite/gdb.ada/cond_lang/pck.ads | 2 +- gdb/testsuite/gdb.ada/convvar_comp.exp | 34 + gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb | 23 + gdb/testsuite/gdb.ada/convvar_comp/pck.adb | 21 + gdb/testsuite/gdb.ada/convvar_comp/pck.ads | 29 + gdb/testsuite/gdb.ada/disc_arr_bound.exp | 2 +- .../gdb.ada/disc_arr_bound/foo_n612_026.adb | 2 +- gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb | 2 +- gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads | 2 +- gdb/testsuite/gdb.ada/dot_all.exp | 2 +- gdb/testsuite/gdb.ada/dot_all/foo.adb | 2 +- gdb/testsuite/gdb.ada/dot_all/pck.adb | 2 +- gdb/testsuite/gdb.ada/dot_all/pck.ads | 2 +- gdb/testsuite/gdb.ada/dyn_arrayidx.exp | 2 +- gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb | 2 +- gdb/testsuite/gdb.ada/dyn_loc.exp | 2 +- gdb/testsuite/gdb.ada/dyn_loc/p.adb | 2 +- gdb/testsuite/gdb.ada/dyn_loc/pack.adb | 2 +- gdb/testsuite/gdb.ada/dyn_loc/pack.ads | 2 +- gdb/testsuite/gdb.ada/dyn_stride.exp | 41 + gdb/testsuite/gdb.ada/dyn_stride/foo.adb | 42 + gdb/testsuite/gdb.ada/enum_idx_packed.exp | 2 +- gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb | 2 +- gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb | 2 +- gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads | 2 +- gdb/testsuite/gdb.ada/excep_handle.exp | 171 + gdb/testsuite/gdb.ada/excep_handle/foo.adb | 103 + gdb/testsuite/gdb.ada/excep_handle/pck.ads | 19 + gdb/testsuite/gdb.ada/exec_changed.exp | 2 +- gdb/testsuite/gdb.ada/exec_changed/first.adb | 2 +- gdb/testsuite/gdb.ada/exec_changed/second.adb | 2 +- gdb/testsuite/gdb.ada/expr_delims.exp | 2 +- gdb/testsuite/gdb.ada/expr_delims/foo.adb | 2 +- gdb/testsuite/gdb.ada/expr_delims/pck.adb | 2 +- gdb/testsuite/gdb.ada/expr_delims/pck.ads | 2 +- gdb/testsuite/gdb.ada/exprs.exp | 2 +- gdb/testsuite/gdb.ada/exprs/p.adb | 2 +- gdb/testsuite/gdb.ada/fin_fun_out.exp | 2 +- gdb/testsuite/gdb.ada/fin_fun_out/bar.adb | 2 +- gdb/testsuite/gdb.ada/fin_fun_out/bar.ads | 2 +- gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb | 2 +- gdb/testsuite/gdb.ada/fixed_cmp.exp | 2 +- gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb | 2 +- gdb/testsuite/gdb.ada/fixed_cmp/pck.adb | 2 +- gdb/testsuite/gdb.ada/fixed_cmp/pck.ads | 2 +- gdb/testsuite/gdb.ada/fixed_points.exp | 2 +- .../gdb.ada/fixed_points/fixed_points.adb | 2 +- gdb/testsuite/gdb.ada/float_param.exp | 2 +- gdb/testsuite/gdb.ada/float_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/float_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/float_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/formatted_ref.exp | 2 +- gdb/testsuite/gdb.ada/formatted_ref/defs.adb | 2 +- gdb/testsuite/gdb.ada/formatted_ref/defs.ads | 2 +- .../gdb.ada/formatted_ref/formatted_ref.adb | 2 +- gdb/testsuite/gdb.ada/frame_args.exp | 2 +- gdb/testsuite/gdb.ada/frame_args/foo.adb | 2 +- gdb/testsuite/gdb.ada/frame_args/pck.adb | 2 +- gdb/testsuite/gdb.ada/frame_args/pck.ads | 2 +- gdb/testsuite/gdb.ada/fullname_bp.exp | 2 +- gdb/testsuite/gdb.ada/fullname_bp/dn.adb | 2 +- gdb/testsuite/gdb.ada/fullname_bp/dn.ads | 2 +- gdb/testsuite/gdb.ada/fullname_bp/foo.adb | 2 +- gdb/testsuite/gdb.ada/fullname_bp/pck.adb | 2 +- gdb/testsuite/gdb.ada/fullname_bp/pck.ads | 2 +- gdb/testsuite/gdb.ada/fun_addr.exp | 2 +- gdb/testsuite/gdb.ada/fun_addr/foo.adb | 2 +- gdb/testsuite/gdb.ada/fun_in_declare.exp | 2 +- gdb/testsuite/gdb.ada/fun_in_declare/foo.adb | 2 +- gdb/testsuite/gdb.ada/fun_in_declare/pck.adb | 2 +- gdb/testsuite/gdb.ada/fun_in_declare/pck.ads | 2 +- gdb/testsuite/gdb.ada/fun_overload_menu.exp | 2 +- gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb | 2 +- gdb/testsuite/gdb.ada/fun_renaming.exp | 2 +- .../gdb.ada/fun_renaming/fun_renaming.adb | 2 +- gdb/testsuite/gdb.ada/fun_renaming/pack.adb | 2 +- gdb/testsuite/gdb.ada/fun_renaming/pack.ads | 2 +- gdb/testsuite/gdb.ada/funcall_char.exp | 2 +- gdb/testsuite/gdb.ada/funcall_char/foo.adb | 2 +- gdb/testsuite/gdb.ada/funcall_param.exp | 2 +- gdb/testsuite/gdb.ada/funcall_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/funcall_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/funcall_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/funcall_ptr.exp | 40 + gdb/testsuite/gdb.ada/funcall_ptr/foo.adb | 21 + gdb/testsuite/gdb.ada/funcall_ptr/pck.adb | 23 + gdb/testsuite/gdb.ada/funcall_ptr/pck.ads | 24 + gdb/testsuite/gdb.ada/funcall_ref.exp | 2 +- gdb/testsuite/gdb.ada/funcall_ref/foo.adb | 2 +- gdb/testsuite/gdb.ada/homonym.exp | 2 +- gdb/testsuite/gdb.ada/homonym/homonym.adb | 2 +- gdb/testsuite/gdb.ada/homonym/homonym.ads | 2 +- gdb/testsuite/gdb.ada/homonym/homonym_main.adb | 2 +- gdb/testsuite/gdb.ada/homonym/pck.adb | 2 +- gdb/testsuite/gdb.ada/homonym/pck.ads | 2 +- gdb/testsuite/gdb.ada/info_addr_mixed_case.exp | 41 + gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb | 21 + gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb | 24 + gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads | 35 + gdb/testsuite/gdb.ada/info_exc.exp | 2 +- gdb/testsuite/gdb.ada/info_exc/const.ads | 2 +- gdb/testsuite/gdb.ada/info_exc/foo.adb | 2 +- gdb/testsuite/gdb.ada/info_locals_renaming.exp | 2 +- gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb | 2 +- gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb | 2 +- gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads | 2 +- gdb/testsuite/gdb.ada/info_types.c | 2 +- gdb/testsuite/gdb.ada/info_types.exp | 2 +- gdb/testsuite/gdb.ada/int_deref.exp | 2 +- gdb/testsuite/gdb.ada/int_deref/foo.adb | 2 +- gdb/testsuite/gdb.ada/int_deref/pck.ads | 2 +- gdb/testsuite/gdb.ada/interface.exp | 2 +- gdb/testsuite/gdb.ada/interface/foo.adb | 2 +- gdb/testsuite/gdb.ada/interface/types.adb | 2 +- gdb/testsuite/gdb.ada/interface/types.ads | 2 +- gdb/testsuite/gdb.ada/iwide.exp | 2 +- gdb/testsuite/gdb.ada/iwide/classes.adb | 2 +- gdb/testsuite/gdb.ada/iwide/classes.ads | 2 +- gdb/testsuite/gdb.ada/iwide/p.adb | 2 +- gdb/testsuite/gdb.ada/lang_switch.exp | 2 +- gdb/testsuite/gdb.ada/lang_switch/foo.c | 2 +- gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb | 2 +- gdb/testsuite/gdb.ada/maint_with_ada.exp | 38 + .../{var_arr_typedef => maint_with_ada}/pack.adb | 0 .../{var_arr_typedef => maint_with_ada}/pack.ads | 0 .../var_arr_typedef.adb | 0 gdb/testsuite/gdb.ada/mi_catch_ex.exp | 14 +- gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb | 2 +- gdb/testsuite/gdb.ada/mi_dyn_arr.exp | 2 +- gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb | 2 +- gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb | 2 +- gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads | 2 +- gdb/testsuite/gdb.ada/mi_ex_cond.exp | 4 +- gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb | 2 +- gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads | 2 +- gdb/testsuite/gdb.ada/mi_exc_info.exp | 2 +- gdb/testsuite/gdb.ada/mi_exc_info/const.ads | 2 +- gdb/testsuite/gdb.ada/mi_exc_info/foo.adb | 2 +- gdb/testsuite/gdb.ada/mi_interface.exp | 6 +- gdb/testsuite/gdb.ada/mi_interface/foo.adb | 2 +- gdb/testsuite/gdb.ada/mi_interface/pck.adb | 2 +- gdb/testsuite/gdb.ada/mi_interface/pck.ads | 2 +- gdb/testsuite/gdb.ada/mi_task_arg.exp | 2 +- gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb | 2 +- gdb/testsuite/gdb.ada/mi_task_info.exp | 2 +- gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb | 2 +- gdb/testsuite/gdb.ada/mi_var_array.exp | 4 +- gdb/testsuite/gdb.ada/mi_var_array/bar.adb | 2 +- gdb/testsuite/gdb.ada/mi_var_array/pck.adb | 2 +- gdb/testsuite/gdb.ada/mi_var_array/pck.ads | 2 +- gdb/testsuite/gdb.ada/minsyms.exp | 41 + gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb | 20 + gdb/testsuite/gdb.ada/minsyms/pck.adb | 21 + gdb/testsuite/gdb.ada/minsyms/pck.ads | 21 + gdb/testsuite/gdb.ada/mod_from_name.exp | 2 +- gdb/testsuite/gdb.ada/mod_from_name/foo.adb | 2 +- gdb/testsuite/gdb.ada/n_arr_bound.exp | 2 +- gdb/testsuite/gdb.ada/n_arr_bound/foo.adb | 2 +- gdb/testsuite/gdb.ada/n_arr_bound/pck.adb | 2 +- gdb/testsuite/gdb.ada/n_arr_bound/pck.ads | 2 +- gdb/testsuite/gdb.ada/nested.exp | 2 +- gdb/testsuite/gdb.ada/nested/hello.adb | 2 +- gdb/testsuite/gdb.ada/null_array.exp | 2 +- gdb/testsuite/gdb.ada/null_array/foo.adb | 2 +- gdb/testsuite/gdb.ada/null_array/pck.adb | 2 +- gdb/testsuite/gdb.ada/null_array/pck.ads | 2 +- gdb/testsuite/gdb.ada/null_record.exp | 2 +- gdb/testsuite/gdb.ada/null_record/bar.adb | 2 +- gdb/testsuite/gdb.ada/null_record/bar.ads | 2 +- gdb/testsuite/gdb.ada/null_record/null_record.adb | 2 +- gdb/testsuite/gdb.ada/operator_bp.exp | 2 +- gdb/testsuite/gdb.ada/operator_bp/ops.adb | 2 +- gdb/testsuite/gdb.ada/operator_bp/ops.ads | 2 +- gdb/testsuite/gdb.ada/operator_bp/ops_test.adb | 2 +- gdb/testsuite/gdb.ada/optim_drec.exp | 2 +- gdb/testsuite/gdb.ada/optim_drec/foo.adb | 2 +- gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp | 2 +- .../gdb.ada/out_of_line_in_inlined/bar.adb | 2 +- .../gdb.ada/out_of_line_in_inlined/bar.ads | 2 +- .../out_of_line_in_inlined/foo_o224_021.adb | 2 +- gdb/testsuite/gdb.ada/packed_array.exp | 2 +- gdb/testsuite/gdb.ada/packed_array/pa.adb | 2 +- gdb/testsuite/gdb.ada/packed_array/pck.adb | 2 +- gdb/testsuite/gdb.ada/packed_array/pck.ads | 2 +- gdb/testsuite/gdb.ada/packed_tagged.exp | 2 +- gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb | 2 +- gdb/testsuite/gdb.ada/pckd_arr_ren.exp | 2 +- gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb | 2 +- gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb | 2 +- gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads | 2 +- gdb/testsuite/gdb.ada/pckd_neg.exp | 2 +- gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb | 2 +- gdb/testsuite/gdb.ada/pckd_neg/pck.adb | 2 +- gdb/testsuite/gdb.ada/pckd_neg/pck.ads | 2 +- gdb/testsuite/gdb.ada/pkd_arr_elem.exp | 16 +- gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb | 2 +- gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb | 2 +- gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads | 2 +- gdb/testsuite/gdb.ada/pp-rec-component.exp | 2 +- gdb/testsuite/gdb.ada/pp-rec-component.py | 2 +- gdb/testsuite/gdb.ada/pp-rec-component/foo.adb | 2 +- gdb/testsuite/gdb.ada/pp-rec-component/pck.adb | 2 +- gdb/testsuite/gdb.ada/pp-rec-component/pck.ads | 2 +- gdb/testsuite/gdb.ada/print_chars.exp | 2 +- gdb/testsuite/gdb.ada/print_chars/foo.adb | 2 +- gdb/testsuite/gdb.ada/print_chars/pck.adb | 2 +- gdb/testsuite/gdb.ada/print_chars/pck.ads | 2 +- gdb/testsuite/gdb.ada/print_pc.exp | 2 +- gdb/testsuite/gdb.ada/ptr_typedef.exp | 2 +- gdb/testsuite/gdb.ada/ptr_typedef/foo.adb | 2 +- gdb/testsuite/gdb.ada/ptr_typedef/pck.adb | 2 +- gdb/testsuite/gdb.ada/ptr_typedef/pck.ads | 2 +- gdb/testsuite/gdb.ada/ptype_arith_binop.exp | 2 +- gdb/testsuite/gdb.ada/ptype_field.exp | 2 +- gdb/testsuite/gdb.ada/ptype_field/foo.adb | 2 +- gdb/testsuite/gdb.ada/ptype_field/pck.adb | 2 +- gdb/testsuite/gdb.ada/ptype_field/pck.ads | 2 +- gdb/testsuite/gdb.ada/ptype_tagged_param.exp | 2 +- gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/py_range.exp | 2 +- gdb/testsuite/gdb.ada/py_range/foo.adb | 2 +- gdb/testsuite/gdb.ada/py_range/pck.adb | 2 +- gdb/testsuite/gdb.ada/py_range/pck.ads | 2 +- gdb/testsuite/gdb.ada/rdv_wait.exp | 2 +- gdb/testsuite/gdb.ada/rdv_wait/foo.adb | 2 +- gdb/testsuite/gdb.ada/rdv_wait/pck.adb | 2 +- gdb/testsuite/gdb.ada/rdv_wait/pck.ads | 2 +- gdb/testsuite/gdb.ada/rec_comp.exp | 2 +- gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb | 2 +- gdb/testsuite/gdb.ada/rec_comp/pck.adb | 2 +- gdb/testsuite/gdb.ada/rec_comp/pck.ads | 2 +- gdb/testsuite/gdb.ada/rec_return.exp | 2 +- gdb/testsuite/gdb.ada/rec_return/foo.adb | 2 +- gdb/testsuite/gdb.ada/rec_return/pck.adb | 2 +- gdb/testsuite/gdb.ada/rec_return/pck.ads | 2 +- gdb/testsuite/gdb.ada/ref_param.exp | 2 +- gdb/testsuite/gdb.ada/ref_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/ref_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/ref_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/ref_tick_size.exp | 2 +- gdb/testsuite/gdb.ada/ref_tick_size/p.adb | 2 +- gdb/testsuite/gdb.ada/ref_tick_size/pck.adb | 2 +- gdb/testsuite/gdb.ada/ref_tick_size/pck.ads | 2 +- gdb/testsuite/gdb.ada/rename_subscript_param.exp | 44 + .../gdb.ada/rename_subscript_param/pb30_012.adb | 22 + .../gdb.ada/rename_subscript_param/pck.adb | 21 + .../gdb.ada/rename_subscript_param/pck.ads | 19 + .../gdb.ada/rename_subscript_param/pkg.adb | 30 + .../gdb.ada/rename_subscript_param/pkg.ads | 21 + gdb/testsuite/gdb.ada/repeat_dyn.exp | 30 + gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb | 25 + gdb/testsuite/gdb.ada/repeat_dyn/pck.adb | 27 + gdb/testsuite/gdb.ada/repeat_dyn/pck.ads | 22 + gdb/testsuite/gdb.ada/same_component_name.exp | 60 + gdb/testsuite/gdb.ada/same_component_name/foo.adb | 31 + gdb/testsuite/gdb.ada/same_component_name/pck.adb | 42 + gdb/testsuite/gdb.ada/same_component_name/pck.ads | 51 + gdb/testsuite/gdb.ada/same_enum.exp | 2 +- gdb/testsuite/gdb.ada/same_enum/a.adb | 2 +- gdb/testsuite/gdb.ada/same_enum/pck.adb | 2 +- gdb/testsuite/gdb.ada/same_enum/pck.ads | 2 +- gdb/testsuite/gdb.ada/scoped_watch.exp | 83 + .../gdb.ada/scoped_watch/foo_p708_025.adb | 25 + gdb/testsuite/gdb.ada/scoped_watch/pck.adb | 44 + gdb/testsuite/gdb.ada/scoped_watch/pck.ads | 21 + gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp | 2 +- gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb | 2 +- gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb | 2 +- gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads | 2 +- gdb/testsuite/gdb.ada/set_wstr.exp | 2 +- gdb/testsuite/gdb.ada/set_wstr/a.adb | 2 +- gdb/testsuite/gdb.ada/set_wstr/pck.adb | 2 +- gdb/testsuite/gdb.ada/set_wstr/pck.ads | 2 +- gdb/testsuite/gdb.ada/small_reg_param.exp | 2 +- gdb/testsuite/gdb.ada/small_reg_param/foo.adb | 2 +- gdb/testsuite/gdb.ada/small_reg_param/pck.adb | 2 +- gdb/testsuite/gdb.ada/small_reg_param/pck.ads | 2 +- gdb/testsuite/gdb.ada/start.exp | 2 +- gdb/testsuite/gdb.ada/start/dummy.adb | 2 +- gdb/testsuite/gdb.ada/str_binop_equal.exp | 39 + .../gdb.ada/str_binop_equal/foo_p211_061.adb | 22 + gdb/testsuite/gdb.ada/str_binop_equal/pck.adb | 22 + gdb/testsuite/gdb.ada/str_binop_equal/pck.ads | 20 + gdb/testsuite/gdb.ada/str_ref_cmp.exp | 2 +- gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb | 2 +- gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads | 2 +- gdb/testsuite/gdb.ada/str_uninit.exp | 2 +- gdb/testsuite/gdb.ada/str_uninit/parse.adb | 2 +- gdb/testsuite/gdb.ada/str_uninit/pck.adb | 2 +- gdb/testsuite/gdb.ada/str_uninit/pck.ads | 2 +- gdb/testsuite/gdb.ada/sym_print_name.exp | 2 +- gdb/testsuite/gdb.ada/sym_print_name/foo.adb | 2 +- gdb/testsuite/gdb.ada/sym_print_name/pck.adb | 2 +- gdb/testsuite/gdb.ada/sym_print_name/pck.ads | 2 +- gdb/testsuite/gdb.ada/taft_type.exp | 2 +- gdb/testsuite/gdb.ada/taft_type/p.adb | 2 +- gdb/testsuite/gdb.ada/taft_type/pck.adb | 2 +- gdb/testsuite/gdb.ada/taft_type/pck.ads | 2 +- gdb/testsuite/gdb.ada/tagged.exp | 2 +- gdb/testsuite/gdb.ada/tagged/foo.adb | 2 +- gdb/testsuite/gdb.ada/tagged/pck.adb | 2 +- gdb/testsuite/gdb.ada/tagged/pck.ads | 2 +- gdb/testsuite/gdb.ada/tagged_access.exp | 2 +- gdb/testsuite/gdb.ada/tagged_access/p.adb | 2 +- gdb/testsuite/gdb.ada/tagged_access/pack.adb | 2 +- gdb/testsuite/gdb.ada/tagged_access/pack.ads | 2 +- gdb/testsuite/gdb.ada/tagged_not_init.exp | 2 +- gdb/testsuite/gdb.ada/tagged_not_init/foo.adb | 2 +- gdb/testsuite/gdb.ada/tagged_not_init/pck.adb | 2 +- gdb/testsuite/gdb.ada/tagged_not_init/pck.ads | 2 +- gdb/testsuite/gdb.ada/task_bp.exp | 2 +- gdb/testsuite/gdb.ada/task_bp/foo.adb | 2 +- gdb/testsuite/gdb.ada/task_bp/pck.adb | 2 +- gdb/testsuite/gdb.ada/task_bp/pck.ads | 2 +- gdb/testsuite/gdb.ada/task_switch_in_core.exp | 80 + .../gdb.ada/task_switch_in_core/crash.adb | 53 + gdb/testsuite/gdb.ada/tasks.exp | 2 +- gdb/testsuite/gdb.ada/tasks/foo.adb | 2 +- gdb/testsuite/gdb.ada/tick_last_segv.exp | 2 +- gdb/testsuite/gdb.ada/tick_last_segv/foo.adb | 2 +- .../gdb.ada/tick_length_array_enum_idx.exp | 2 +- .../tick_length_array_enum_idx/foo_n207_004.adb | 2 +- .../gdb.ada/tick_length_array_enum_idx/pck.adb | 2 +- .../gdb.ada/tick_length_array_enum_idx/pck.ads | 2 +- gdb/testsuite/gdb.ada/type_coercion.exp | 2 +- gdb/testsuite/gdb.ada/type_coercion/assign.adb | 2 +- gdb/testsuite/gdb.ada/type_coercion/ident.adb | 2 +- gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp | 2 +- .../gdb.ada/unc_arr_ptr_in_var_rec/foo.adb | 2 +- .../gdb.ada/unc_arr_ptr_in_var_rec/pck.adb | 2 +- .../gdb.ada/unc_arr_ptr_in_var_rec/pck.ads | 2 +- gdb/testsuite/gdb.ada/uninitialized_vars.exp | 2 +- gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb | 2 +- .../uninitialized_vars/parse_controlled.ads | 2 +- gdb/testsuite/gdb.ada/var_arr_attrs.exp | 2 +- .../gdb.ada/var_arr_attrs/foo_o115_002.adb | 2 +- gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb | 2 +- gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads | 2 +- gdb/testsuite/gdb.ada/var_arr_typedef.exp | 2 +- gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb | 2 +- gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads | 2 +- .../gdb.ada/var_arr_typedef/var_arr_typedef.adb | 2 +- gdb/testsuite/gdb.ada/var_rec_arr.exp | 2 +- gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb | 2 +- gdb/testsuite/gdb.ada/var_rec_arr/pck.adb | 2 +- gdb/testsuite/gdb.ada/var_rec_arr/pck.ads | 2 +- .../gdb.ada/variant_record_packed_array.exp | 26 +- .../gdb.ada/variant_record_packed_array/foo.adb | 2 +- .../gdb.ada/variant_record_packed_array/pck.adb | 2 +- .../gdb.ada/variant_record_packed_array/pck.ads | 2 +- gdb/testsuite/gdb.ada/watch_arg.exp | 15 +- gdb/testsuite/gdb.ada/watch_arg/pck.adb | 2 +- gdb/testsuite/gdb.ada/watch_arg/pck.ads | 2 +- gdb/testsuite/gdb.ada/watch_arg/watch.adb | 2 +- gdb/testsuite/gdb.ada/whatis_array_val.exp | 2 +- gdb/testsuite/gdb.ada/whatis_array_val/foo.adb | 2 +- gdb/testsuite/gdb.ada/whatis_array_val/pck.adb | 2 +- gdb/testsuite/gdb.ada/whatis_array_val/pck.ads | 2 +- gdb/testsuite/gdb.ada/widewide.exp | 2 +- gdb/testsuite/gdb.ada/widewide/foo.adb | 2 +- gdb/testsuite/gdb.ada/widewide/pck.adb | 2 +- gdb/testsuite/gdb.ada/widewide/pck.ads | 2 +- gdb/testsuite/gdb.ada/win_fu_syms.exp | 2 +- gdb/testsuite/gdb.ada/win_fu_syms/foo.adb | 2 +- gdb/testsuite/gdb.ada/win_fu_syms/pck.adb | 2 +- gdb/testsuite/gdb.ada/win_fu_syms/pck.ads | 2 +- gdb/testsuite/gdb.arch/aarch64-atomic-inst.c | 2 +- gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp | 5 +- gdb/testsuite/gdb.arch/aarch64-fp.c | 2 +- gdb/testsuite/gdb.arch/aarch64-fp.exp | 5 +- gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c | 57 + gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp | 105 + gdb/testsuite/gdb.arch/alpha-step.c | 2 +- gdb/testsuite/gdb.arch/alpha-step.exp | 2 +- gdb/testsuite/gdb.arch/altivec-abi.exp | 2 +- gdb/testsuite/gdb.arch/altivec-regs.exp | 6 +- gdb/testsuite/gdb.arch/amd64-byte.exp | 2 +- gdb/testsuite/gdb.arch/amd64-disp-step-avx.S | 70 + gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp | 139 + gdb/testsuite/gdb.arch/amd64-disp-step.S | 2 +- gdb/testsuite/gdb.arch/amd64-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/amd64-dword.exp | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value-inline.S | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value-inline.c | 2 +- .../gdb.arch/amd64-entry-value-inline.exp | 2 +- .../gdb.arch/amd64-entry-value-param-dwarf5.S | 2 +- .../gdb.arch/amd64-entry-value-param-dwarf5.c | 2 +- .../gdb.arch/amd64-entry-value-param-dwarf5.exp | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value-param.S | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value-param.c | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value-param.exp | 2 +- .../gdb.arch/amd64-entry-value-paramref.S | 2 +- .../gdb.arch/amd64-entry-value-paramref.cc | 2 +- .../gdb.arch/amd64-entry-value-paramref.exp | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value.cc | 2 +- gdb/testsuite/gdb.arch/amd64-entry-value.exp | 10 +- gdb/testsuite/gdb.arch/amd64-entry-value.s | 2 +- gdb/testsuite/gdb.arch/amd64-gs_base.c | 2 +- gdb/testsuite/gdb.arch/amd64-gs_base.exp | 2 +- gdb/testsuite/gdb.arch/amd64-i386-address.S | 2 +- gdb/testsuite/gdb.arch/amd64-i386-address.exp | 2 +- .../gdb.arch/amd64-invalid-stack-middle.S | 2 +- .../gdb.arch/amd64-invalid-stack-middle.c | 2 +- .../gdb.arch/amd64-invalid-stack-middle.exp | 2 +- gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c | 2 +- gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp | 2 +- gdb/testsuite/gdb.arch/amd64-optimout-repeat.S | 2 +- gdb/testsuite/gdb.arch/amd64-optimout-repeat.c | 2 +- gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp | 2 +- gdb/testsuite/gdb.arch/amd64-prologue-skip.S | 2 +- gdb/testsuite/gdb.arch/amd64-prologue-skip.exp | 2 +- gdb/testsuite/gdb.arch/amd64-prologue-xmm.c | 2 +- gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp | 2 +- gdb/testsuite/gdb.arch/amd64-prologue-xmm.s | 2 +- gdb/testsuite/gdb.arch/amd64-pseudo.c | 2 +- .../gdb.arch/amd64-stap-optional-prefix.S | 2 +- .../gdb.arch/amd64-stap-optional-prefix.exp | 2 +- .../gdb.arch/amd64-stap-special-operands.exp | 2 +- gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c | 2 +- gdb/testsuite/gdb.arch/amd64-stap-triplet.S | 2 +- gdb/testsuite/gdb.arch/amd64-stap-triplet.c | 2 +- gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S | 2 +- gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-noret.S | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-noret.c | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-ret.S | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-ret.c | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-self.S | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-self.c | 2 +- gdb/testsuite/gdb.arch/amd64-tailcall-self.exp | 2 +- gdb/testsuite/gdb.arch/amd64-word.exp | 2 +- gdb/testsuite/gdb.arch/arc-analyze-prologue.S | 2 +- gdb/testsuite/gdb.arch/arc-analyze-prologue.exp | 2 +- gdb/testsuite/gdb.arch/arc-decode-insn.S | 2 +- gdb/testsuite/gdb.arch/arc-decode-insn.exp | 2 +- gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp | 2 +- gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml | 2 +- gdb/testsuite/gdb.arch/arm-bl-branch-dest.c | 2 +- gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp | 2 +- .../gdb.arch/arm-disassembler-options.exp | 2 +- gdb/testsuite/gdb.arch/arm-disp-step.S | 2 +- gdb/testsuite/gdb.arch/arm-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/arm-neon.c | 2 +- gdb/testsuite/gdb.arch/arm-neon.exp | 2 +- .../gdb.arch/arm-single-step-kernel-helper.c | 2 +- .../gdb.arch/arm-single-step-kernel-helper.exp | 2 +- gdb/testsuite/gdb.arch/avr-flash-qualifier.c | 2 +- gdb/testsuite/gdb.arch/avr-flash-qualifier.exp | 2 +- gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp | 2 +- gdb/testsuite/gdb.arch/e500-abi.exp | 2 +- gdb/testsuite/gdb.arch/e500-prologue.c | 2 +- gdb/testsuite/gdb.arch/e500-prologue.exp | 2 +- gdb/testsuite/gdb.arch/e500-regs.exp | 2 +- gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp | 2 +- gdb/testsuite/gdb.arch/gdb1291.exp | 2 +- gdb/testsuite/gdb.arch/gdb1291.s | 2 +- gdb/testsuite/gdb.arch/gdb1431.exp | 2 +- gdb/testsuite/gdb.arch/gdb1431.s | 2 +- gdb/testsuite/gdb.arch/gdb1558.c | 2 +- gdb/testsuite/gdb.arch/gdb1558.exp | 2 +- gdb/testsuite/gdb.arch/i386-avx.c | 2 +- gdb/testsuite/gdb.arch/i386-avx.exp | 27 +- gdb/testsuite/gdb.arch/i386-avx512.c | 2 +- gdb/testsuite/gdb.arch/i386-avx512.exp | 2 +- gdb/testsuite/gdb.arch/i386-biarch-core.exp | 2 +- gdb/testsuite/gdb.arch/i386-bp_permanent.c | 2 +- gdb/testsuite/gdb.arch/i386-bp_permanent.exp | 2 +- gdb/testsuite/gdb.arch/i386-byte.exp | 2 +- gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S | 2 +- gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp | 2 +- gdb/testsuite/gdb.arch/i386-disp-step.S | 2 +- gdb/testsuite/gdb.arch/i386-disp-step.exp | 2 +- gdb/testsuite/gdb.arch/i386-dr3-watch.c | 2 +- gdb/testsuite/gdb.arch/i386-dr3-watch.exp | 2 +- gdb/testsuite/gdb.arch/i386-float.S | 2 +- gdb/testsuite/gdb.arch/i386-float.exp | 2 +- gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S | 2 +- gdb/testsuite/gdb.arch/i386-gnu-cfi.c | 2 +- gdb/testsuite/gdb.arch/i386-gnu-cfi.exp | 2 +- gdb/testsuite/gdb.arch/i386-mpx-call.c | 2 +- gdb/testsuite/gdb.arch/i386-mpx-call.exp | 2 +- gdb/testsuite/gdb.arch/i386-mpx-map.c | 2 +- gdb/testsuite/gdb.arch/i386-mpx-map.exp | 2 +- gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c | 2 +- gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp | 2 +- gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c | 2 +- gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp | 2 +- gdb/testsuite/gdb.arch/i386-mpx.c | 2 +- gdb/testsuite/gdb.arch/i386-mpx.exp | 2 +- gdb/testsuite/gdb.arch/i386-permbkpt.S | 2 +- gdb/testsuite/gdb.arch/i386-permbkpt.exp | 2 +- gdb/testsuite/gdb.arch/i386-pkru.c | 2 +- gdb/testsuite/gdb.arch/i386-pkru.exp | 2 +- gdb/testsuite/gdb.arch/i386-prologue.c | 2 +- gdb/testsuite/gdb.arch/i386-prologue.exp | 2 +- gdb/testsuite/gdb.arch/i386-pseudo.c | 2 +- gdb/testsuite/gdb.arch/i386-signal.c | 2 +- gdb/testsuite/gdb.arch/i386-signal.exp | 2 +- gdb/testsuite/gdb.arch/i386-size-overlap.c | 2 +- gdb/testsuite/gdb.arch/i386-size-overlap.exp | 2 +- gdb/testsuite/gdb.arch/i386-size.c | 2 +- gdb/testsuite/gdb.arch/i386-size.exp | 2 +- gdb/testsuite/gdb.arch/i386-sse-stack-align.S | 2 +- gdb/testsuite/gdb.arch/i386-sse-stack-align.c | 2 +- gdb/testsuite/gdb.arch/i386-sse-stack-align.exp | 4 +- gdb/testsuite/gdb.arch/i386-sse.c | 2 +- gdb/testsuite/gdb.arch/i386-sse.exp | 2 +- gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S | 2 +- gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c | 2 +- gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp | 2 +- gdb/testsuite/gdb.arch/i386-unwind.c | 2 +- gdb/testsuite/gdb.arch/i386-unwind.exp | 2 +- gdb/testsuite/gdb.arch/i386-word.exp | 2 +- gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S | 2 +- gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp | 2 +- gdb/testsuite/gdb.arch/insn-reloc.c | 2 +- gdb/testsuite/gdb.arch/iwmmxt-regs.c | 2 +- gdb/testsuite/gdb.arch/iwmmxt-regs.exp | 2 +- gdb/testsuite/gdb.arch/mips-fcr.c | 2 +- gdb/testsuite/gdb.arch/mips-fcr.exp | 2 +- gdb/testsuite/gdb.arch/mips-octeon-bbit.exp | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-inmain.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-main.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-sin.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c | 2 +- gdb/testsuite/gdb.arch/mips16-thunks.exp | 2 +- gdb/testsuite/gdb.arch/pa-nullify.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-aix-prologue.c | 2 +- gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec.s | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec2.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec2.s | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec3.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-altivec3.s | 2 +- gdb/testsuite/gdb.arch/powerpc-d128-regs.c | 2 +- gdb/testsuite/gdb.arch/powerpc-d128-regs.exp | 8 +- .../gdb.arch/powerpc-disassembler-options.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-power7.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-power7.s | 2 +- gdb/testsuite/gdb.arch/powerpc-power8.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-power8.s | 2 +- gdb/testsuite/gdb.arch/powerpc-power9.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-power9.s | 2 +- gdb/testsuite/gdb.arch/powerpc-prologue.c | 2 +- gdb/testsuite/gdb.arch/powerpc-prologue.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-stackless.S | 2 +- gdb/testsuite/gdb.arch/powerpc-stackless.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx.s | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx2.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx2.s | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx3.exp | 2 +- gdb/testsuite/gdb.arch/powerpc-vsx3.s | 2 +- gdb/testsuite/gdb.arch/ppc-dfp.c | 2 +- gdb/testsuite/gdb.arch/ppc-dfp.exp | 2 +- gdb/testsuite/gdb.arch/ppc-fp.c | 2 +- gdb/testsuite/gdb.arch/ppc-fp.exp | 2 +- gdb/testsuite/gdb.arch/ppc-longdouble.c | 38 + gdb/testsuite/gdb.arch/ppc-longdouble.exp | 58 + gdb/testsuite/gdb.arch/ppc64-atomic-inst.S | 2 +- gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp | 5 +- gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S | 2 +- gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c | 2 +- .../gdb.arch/ppc64-isa207-atomic-inst.exp | 5 +- gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp | 2 +- .../gdb.arch/s390-disassembler-options.exp | 2 +- gdb/testsuite/gdb.arch/s390-multiarch.c | 2 +- gdb/testsuite/gdb.arch/s390-multiarch.exp | 6 +- gdb/testsuite/gdb.arch/s390-stackless.S | 2 +- gdb/testsuite/gdb.arch/s390-stackless.exp | 2 +- gdb/testsuite/gdb.arch/s390-tdbregs.c | 11 +- gdb/testsuite/gdb.arch/s390-tdbregs.exp | 9 +- gdb/testsuite/gdb.arch/s390-vregs.S | 2 +- gdb/testsuite/gdb.arch/s390-vregs.exp | 6 +- gdb/testsuite/gdb.arch/sparc-sysstep.c | 2 +- gdb/testsuite/gdb.arch/sparc-sysstep.exp | 2 +- gdb/testsuite/gdb.arch/sparc64-adi.c | 2 +- gdb/testsuite/gdb.arch/sparc64-adi.exp | 2 +- gdb/testsuite/gdb.arch/sparc64-regs.S | 2 +- gdb/testsuite/gdb.arch/sparc64-regs.exp | 2 +- gdb/testsuite/gdb.arch/spu-info.c | 7 +- gdb/testsuite/gdb.arch/spu-info.exp | 48 +- gdb/testsuite/gdb.arch/spu-ls.c | 2 +- gdb/testsuite/gdb.arch/spu-ls.exp | 15 +- gdb/testsuite/gdb.arch/thumb-bx-pc.S | 2 +- gdb/testsuite/gdb.arch/thumb-bx-pc.exp | 2 +- gdb/testsuite/gdb.arch/thumb-prologue.c | 2 +- gdb/testsuite/gdb.arch/thumb-prologue.exp | 2 +- gdb/testsuite/gdb.arch/thumb-singlestep.S | 2 +- gdb/testsuite/gdb.arch/thumb-singlestep.exp | 2 +- gdb/testsuite/gdb.arch/thumb2-it.S | 2 +- gdb/testsuite/gdb.arch/thumb2-it.exp | 2 +- gdb/testsuite/gdb.arch/vsx-regs.exp | 14 +- gdb/testsuite/gdb.asm/asm-source.exp | 4 +- gdb/testsuite/gdb.base/a2-run.exp | 2 +- gdb/testsuite/gdb.base/advance.exp | 2 +- gdb/testsuite/gdb.base/alias.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-0.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-1.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-2.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-3.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-4.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-5.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-6.exp | 2 +- gdb/testsuite/gdb.base/all-architectures-7.exp | 2 +- gdb/testsuite/gdb.base/all-architectures.exp.in | 2 +- gdb/testsuite/gdb.base/all-bin.exp | 2 +- .../gdb.base/annota-input-while-running.c | 2 +- .../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/anon.exp | 2 +- gdb/testsuite/gdb.base/args.exp | 2 +- gdb/testsuite/gdb.base/argv0-symlink.c | 2 +- gdb/testsuite/gdb.base/argv0-symlink.exp | 2 +- gdb/testsuite/gdb.base/arithmet.exp | 2 +- gdb/testsuite/gdb.base/arrayidx.c | 2 +- gdb/testsuite/gdb.base/arrayidx.exp | 2 +- gdb/testsuite/gdb.base/asmlabel.c | 2 +- gdb/testsuite/gdb.base/asmlabel.exp | 2 +- gdb/testsuite/gdb.base/assign.exp | 2 +- gdb/testsuite/gdb.base/async-shell.c | 2 +- gdb/testsuite/gdb.base/async-shell.exp | 2 +- gdb/testsuite/gdb.base/async.exp | 2 +- gdb/testsuite/gdb.base/attach-non-pgrp-leader.c | 2 +- gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp | 2 +- gdb/testsuite/gdb.base/attach-pie-misread.c | 2 +- gdb/testsuite/gdb.base/attach-pie-misread.exp | 2 +- gdb/testsuite/gdb.base/attach-pie-noexec.c | 2 +- gdb/testsuite/gdb.base/attach-pie-noexec.exp | 4 +- gdb/testsuite/gdb.base/attach-twice.c | 2 +- gdb/testsuite/gdb.base/attach-twice.exp | 2 +- gdb/testsuite/gdb.base/attach-wait-input.c | 2 +- gdb/testsuite/gdb.base/attach-wait-input.exp | 2 +- gdb/testsuite/gdb.base/attach.exp | 2 +- .../gdb.base/auto-connect-native-target.c | 2 +- .../gdb.base/auto-connect-native-target.exp | 2 +- gdb/testsuite/gdb.base/auto-load-script | 2 +- gdb/testsuite/gdb.base/auto-load.c | 2 +- gdb/testsuite/gdb.base/auto-load.exp | 2 +- gdb/testsuite/gdb.base/auxv.c | 2 +- gdb/testsuite/gdb.base/auxv.exp | 2 +- gdb/testsuite/gdb.base/bad-file.exp | 2 +- gdb/testsuite/gdb.base/bang.exp | 2 +- .../gdb.base/batch-preserve-term-settings.c | 2 +- .../gdb.base/batch-preserve-term-settings.exp | 2 +- gdb/testsuite/gdb.base/bfp-test.c | 2 +- gdb/testsuite/gdb.base/bfp-test.exp | 2 +- gdb/testsuite/gdb.base/bg-execution-repeat.c | 2 +- gdb/testsuite/gdb.base/bg-execution-repeat.exp | 2 +- gdb/testsuite/gdb.base/bigcore.c | 2 +- gdb/testsuite/gdb.base/bigcore.exp | 2 +- gdb/testsuite/gdb.base/bitfields.exp | 2 +- gdb/testsuite/gdb.base/bitfields2.exp | 2 +- gdb/testsuite/gdb.base/bitops.exp | 2 +- gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c | 35 + gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp | 136 + .../gdb.base/bp-cmds-execution-x-script.c | 2 +- .../gdb.base/bp-cmds-execution-x-script.exp | 2 +- .../gdb.base/bp-cmds-execution-x-script.gdb | 2 +- gdb/testsuite/gdb.base/bp-permanent.c | 4 +- gdb/testsuite/gdb.base/bp-permanent.exp | 2 +- gdb/testsuite/gdb.base/branch-to-self.c | 2 +- gdb/testsuite/gdb.base/branch-to-self.exp | 2 +- gdb/testsuite/gdb.base/break-always.c | 2 +- gdb/testsuite/gdb.base/break-always.exp | 2 +- gdb/testsuite/gdb.base/break-caller-line.c | 2 +- gdb/testsuite/gdb.base/break-caller-line.exp | 2 +- gdb/testsuite/gdb.base/break-entry.exp | 2 +- gdb/testsuite/gdb.base/break-fun-addr.exp | 2 +- gdb/testsuite/gdb.base/break-fun-addr1.c | 2 +- gdb/testsuite/gdb.base/break-fun-addr2.c | 2 +- gdb/testsuite/gdb.base/break-idempotent.c | 2 +- gdb/testsuite/gdb.base/break-idempotent.exp | 2 +- gdb/testsuite/gdb.base/break-include.c | 57 + gdb/testsuite/gdb.base/break-include.exp | 34 + gdb/testsuite/gdb.base/break-include.inc | 18 + gdb/testsuite/gdb.base/break-inline.c | 2 +- gdb/testsuite/gdb.base/break-inline.exp | 2 +- gdb/testsuite/gdb.base/break-interp-lib.c | 2 +- gdb/testsuite/gdb.base/break-interp-main.c | 2 +- gdb/testsuite/gdb.base/break-interp.exp | 5 +- .../gdb.base/break-main-file-remove-fail.c | 2 +- .../gdb.base/break-main-file-remove-fail.exp | 2 +- .../gdb.base/break-on-linker-gcd-function.cc | 2 +- .../gdb.base/break-on-linker-gcd-function.exp | 2 +- gdb/testsuite/gdb.base/break-probes-solib.c | 2 +- gdb/testsuite/gdb.base/break-probes.c | 2 +- gdb/testsuite/gdb.base/break-probes.exp | 2 +- gdb/testsuite/gdb.base/break-unload-file.c | 2 +- gdb/testsuite/gdb.base/break-unload-file.exp | 2 +- gdb/testsuite/gdb.base/break.c | 2 +- gdb/testsuite/gdb.base/break.exp | 14 +- gdb/testsuite/gdb.base/break1.c | 2 +- gdb/testsuite/gdb.base/breakpoint-in-ro-region.c | 2 +- gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp | 2 +- gdb/testsuite/gdb.base/breakpoint-shadow.c | 2 +- gdb/testsuite/gdb.base/breakpoint-shadow.exp | 2 +- gdb/testsuite/gdb.base/call-ar-st.exp | 2 +- gdb/testsuite/gdb.base/call-rt-st.exp | 2 +- gdb/testsuite/gdb.base/call-sc.c | 2 +- gdb/testsuite/gdb.base/call-sc.exp | 2 +- gdb/testsuite/gdb.base/call-signal-resume.exp | 2 +- gdb/testsuite/gdb.base/call-signals.c | 2 +- gdb/testsuite/gdb.base/call-strs.exp | 2 +- gdb/testsuite/gdb.base/callexit.c | 2 +- gdb/testsuite/gdb.base/callexit.exp | 2 +- gdb/testsuite/gdb.base/callfuncs.c | 2 +- gdb/testsuite/gdb.base/callfuncs.exp | 2 +- gdb/testsuite/gdb.base/catch-fork-kill.c | 2 +- gdb/testsuite/gdb.base/catch-fork-kill.exp | 2 +- gdb/testsuite/gdb.base/catch-fork-static.exp | 2 +- gdb/testsuite/gdb.base/catch-gdb-caused-signals.c | 2 +- .../gdb.base/catch-gdb-caused-signals.exp | 2 +- gdb/testsuite/gdb.base/catch-load-so.c | 2 +- gdb/testsuite/gdb.base/catch-load.c | 2 +- gdb/testsuite/gdb.base/catch-load.exp | 2 +- gdb/testsuite/gdb.base/catch-signal-fork.c | 2 +- gdb/testsuite/gdb.base/catch-signal-fork.exp | 2 +- gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c | 2 +- .../gdb.base/catch-signal-siginfo-cond.exp | 2 +- gdb/testsuite/gdb.base/catch-signal.c | 2 +- gdb/testsuite/gdb.base/catch-signal.exp | 2 +- gdb/testsuite/gdb.base/catch-syscall.exp | 2 +- gdb/testsuite/gdb.base/charset-malloc.c | 2 +- gdb/testsuite/gdb.base/charset.c | 2 +- gdb/testsuite/gdb.base/charset.exp | 2 +- gdb/testsuite/gdb.base/checkpoint-ns.exp | 2 +- gdb/testsuite/gdb.base/checkpoint.c | 2 +- gdb/testsuite/gdb.base/checkpoint.exp | 2 +- gdb/testsuite/gdb.base/chng-syms.exp | 2 +- gdb/testsuite/gdb.base/code-expr.exp | 2 +- gdb/testsuite/gdb.base/code_elim.exp | 2 +- gdb/testsuite/gdb.base/code_elim1.c | 2 +- gdb/testsuite/gdb.base/code_elim2.c | 2 +- gdb/testsuite/gdb.base/command-line-input.exp | 2 +- gdb/testsuite/gdb.base/commands.exp | 2 +- gdb/testsuite/gdb.base/compare-sections.c | 2 +- gdb/testsuite/gdb.base/compare-sections.exp | 2 +- gdb/testsuite/gdb.base/complete-empty.exp | 44 + gdb/testsuite/gdb.base/completion.exp | 94 +- gdb/testsuite/gdb.base/complex.c | 2 +- gdb/testsuite/gdb.base/complex.exp | 2 +- gdb/testsuite/gdb.base/comprdebug.exp | 2 +- gdb/testsuite/gdb.base/cond-eval-mode.c | 2 +- gdb/testsuite/gdb.base/cond-eval-mode.exp | 2 +- gdb/testsuite/gdb.base/cond-expr.exp | 2 +- gdb/testsuite/gdb.base/condbreak-call-false.c | 2 +- gdb/testsuite/gdb.base/condbreak-call-false.exp | 2 +- gdb/testsuite/gdb.base/condbreak.exp | 2 +- gdb/testsuite/gdb.base/consecutive-step-over.c | 2 +- gdb/testsuite/gdb.base/consecutive-step-over.exp | 2 +- gdb/testsuite/gdb.base/consecutive.exp | 2 +- gdb/testsuite/gdb.base/constvars.exp | 2 +- .../gdb.base/continue-after-aborted-step-over.c | 29 + .../gdb.base/continue-after-aborted-step-over.exp | 87 + .../gdb.base/continue-all-already-running.c | 2 +- .../gdb.base/continue-all-already-running.exp | 2 +- gdb/testsuite/gdb.base/coredump-filter.c | 2 +- gdb/testsuite/gdb.base/coredump-filter.exp | 48 +- gdb/testsuite/gdb.base/corefile.exp | 2 +- gdb/testsuite/gdb.base/coremaker.c | 2 +- gdb/testsuite/gdb.base/ctxobj-f.c | 2 +- gdb/testsuite/gdb.base/ctxobj-m.c | 2 +- gdb/testsuite/gdb.base/ctxobj-v.c | 2 +- gdb/testsuite/gdb.base/ctxobj.exp | 2 +- gdb/testsuite/gdb.base/cursal.c | 2 +- gdb/testsuite/gdb.base/cursal.exp | 2 +- gdb/testsuite/gdb.base/cvexpr.c | 2 +- gdb/testsuite/gdb.base/cvexpr.exp | 2 +- gdb/testsuite/gdb.base/dbx.exp | 2 +- gdb/testsuite/gdb.base/dcache-line-read-error.c | 2 +- gdb/testsuite/gdb.base/dcache-line-read-error.exp | 2 +- gdb/testsuite/gdb.base/debug-expr.exp | 2 +- gdb/testsuite/gdb.base/default.exp | 2 +- gdb/testsuite/gdb.base/define.exp | 2 +- gdb/testsuite/gdb.base/del.c | 2 +- gdb/testsuite/gdb.base/del.exp | 2 +- gdb/testsuite/gdb.base/detach.exp | 2 +- gdb/testsuite/gdb.base/dfp-exprs.exp | 2 +- gdb/testsuite/gdb.base/dfp-test.c | 2 +- gdb/testsuite/gdb.base/dfp-test.exp | 2 +- gdb/testsuite/gdb.base/disabled-location.c | 2 +- gdb/testsuite/gdb.base/disabled-location.exp | 2 +- gdb/testsuite/gdb.base/disasm-end-cu-1.c | 2 +- gdb/testsuite/gdb.base/disasm-end-cu-2.c | 2 +- gdb/testsuite/gdb.base/disasm-end-cu.exp | 2 +- gdb/testsuite/gdb.base/disasm-optim.S | 2 +- gdb/testsuite/gdb.base/disasm-optim.c | 2 +- gdb/testsuite/gdb.base/disasm-optim.exp | 2 +- gdb/testsuite/gdb.base/disasm-optim.h | 2 +- gdb/testsuite/gdb.base/display.exp | 2 +- gdb/testsuite/gdb.base/dmsym.c | 2 +- gdb/testsuite/gdb.base/dmsym.exp | 2 +- gdb/testsuite/gdb.base/dmsym_main.c | 2 +- .../gdb.base/double-prompt-target-event-error.c | 2 +- .../gdb.base/double-prompt-target-event-error.exp | 2 +- gdb/testsuite/gdb.base/dprintf-bp-same-addr.c | 2 +- gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp | 2 +- gdb/testsuite/gdb.base/dprintf-detach.c | 2 +- gdb/testsuite/gdb.base/dprintf-detach.exp | 2 +- gdb/testsuite/gdb.base/dprintf-next.c | 2 +- gdb/testsuite/gdb.base/dprintf-next.exp | 2 +- gdb/testsuite/gdb.base/dprintf-non-stop.c | 2 +- gdb/testsuite/gdb.base/dprintf-non-stop.exp | 2 +- gdb/testsuite/gdb.base/dprintf-pending.c | 2 +- gdb/testsuite/gdb.base/dprintf-pending.exp | 2 +- gdb/testsuite/gdb.base/dprintf-pendshr.c | 2 +- gdb/testsuite/gdb.base/dprintf.c | 2 +- gdb/testsuite/gdb.base/dprintf.exp | 2 +- gdb/testsuite/gdb.base/dso2dso-dso1.c | 2 +- gdb/testsuite/gdb.base/dso2dso-dso1.h | 2 +- gdb/testsuite/gdb.base/dso2dso-dso2.c | 2 +- gdb/testsuite/gdb.base/dso2dso-dso2.h | 2 +- gdb/testsuite/gdb.base/dso2dso.c | 2 +- gdb/testsuite/gdb.base/dso2dso.exp | 2 +- gdb/testsuite/gdb.base/dtrace-probe.c | 2 +- gdb/testsuite/gdb.base/dtrace-probe.d | 2 +- gdb/testsuite/gdb.base/dtrace-probe.exp | 2 +- gdb/testsuite/gdb.base/dump.exp | 2 +- gdb/testsuite/gdb.base/dup-sect.S | 2 +- gdb/testsuite/gdb.base/dup-sect.exp | 2 +- gdb/testsuite/gdb.base/duplicate-bp.c | 2 +- gdb/testsuite/gdb.base/duplicate-bp.exp | 2 +- gdb/testsuite/gdb.base/echo.exp | 2 +- gdb/testsuite/gdb.base/empty_exe.exp | 2 +- gdb/testsuite/gdb.base/ena-dis-br.exp | 2 +- gdb/testsuite/gdb.base/ending-run.exp | 6 +- gdb/testsuite/gdb.base/enum_cond.c | 2 +- gdb/testsuite/gdb.base/enum_cond.exp | 2 +- gdb/testsuite/gdb.base/enumval.c | 2 +- gdb/testsuite/gdb.base/enumval.exp | 2 +- gdb/testsuite/gdb.base/environ.exp | 2 +- gdb/testsuite/gdb.base/eu-strip-infcall.c | 2 +- gdb/testsuite/gdb.base/eu-strip-infcall.exp | 2 +- gdb/testsuite/gdb.base/eval-avoid-side-effects.exp | 2 +- gdb/testsuite/gdb.base/eval-skip.exp | 2 +- gdb/testsuite/gdb.base/eval.exp | 2 +- gdb/testsuite/gdb.base/examine-backward.c | 2 +- gdb/testsuite/gdb.base/examine-backward.exp | 2 +- gdb/testsuite/gdb.base/exe-lock.exp | 2 +- gdb/testsuite/gdb.base/exec-invalid-sysroot.exp | 2 +- gdb/testsuite/gdb.base/execl-update-breakpoints.c | 2 +- .../gdb.base/execl-update-breakpoints.exp | 2 +- gdb/testsuite/gdb.base/execution-termios.c | 2 +- gdb/testsuite/gdb.base/execution-termios.exp | 2 +- gdb/testsuite/gdb.base/exitsignal.exp | 2 +- gdb/testsuite/gdb.base/expand-psymtabs.c | 2 +- gdb/testsuite/gdb.base/expand-psymtabs.exp | 5 +- gdb/testsuite/gdb.base/exprs.exp | 2 +- gdb/testsuite/gdb.base/fileio.exp | 2 +- gdb/testsuite/gdb.base/filesym.c | 2 +- gdb/testsuite/gdb.base/filesym.exp | 2 +- gdb/testsuite/gdb.base/find-unmapped.c | 2 +- gdb/testsuite/gdb.base/find-unmapped.exp | 2 +- gdb/testsuite/gdb.base/find.c | 2 +- gdb/testsuite/gdb.base/find.exp | 2 +- gdb/testsuite/gdb.base/finish.exp | 2 +- gdb/testsuite/gdb.base/fixsection.c | 2 +- gdb/testsuite/gdb.base/fixsection.exp | 2 +- gdb/testsuite/gdb.base/float.c | 2 +- gdb/testsuite/gdb.base/float.exp | 2 +- gdb/testsuite/gdb.base/float128.c | 6 +- gdb/testsuite/gdb.base/float128.exp | 5 +- gdb/testsuite/gdb.base/floatn.c | 2 +- gdb/testsuite/gdb.base/floatn.exp | 2 +- gdb/testsuite/gdb.base/foll-exec-mode.c | 2 +- gdb/testsuite/gdb.base/foll-exec-mode.exp | 2 +- gdb/testsuite/gdb.base/foll-exec.c | 2 +- gdb/testsuite/gdb.base/foll-exec.exp | 2 +- gdb/testsuite/gdb.base/foll-fork.exp | 2 +- gdb/testsuite/gdb.base/foll-vfork-exit.c | 2 +- gdb/testsuite/gdb.base/foll-vfork.c | 2 +- gdb/testsuite/gdb.base/foll-vfork.exp | 2 +- gdb/testsuite/gdb.base/fork-running-state.c | 2 +- gdb/testsuite/gdb.base/fork-running-state.exp | 2 +- gdb/testsuite/gdb.base/fortran-sym-case.c | 2 +- gdb/testsuite/gdb.base/fortran-sym-case.exp | 2 +- gdb/testsuite/gdb.base/frame-args.c | 2 +- gdb/testsuite/gdb.base/frame-args.exp | 2 +- gdb/testsuite/gdb.base/freebpcmd.c | 2 +- gdb/testsuite/gdb.base/freebpcmd.exp | 2 +- gdb/testsuite/gdb.base/fullname.c | 2 +- gdb/testsuite/gdb.base/fullname.exp | 2 +- gdb/testsuite/gdb.base/fullpath-expand-func.c | 2 +- gdb/testsuite/gdb.base/fullpath-expand.c | 2 +- gdb/testsuite/gdb.base/fullpath-expand.exp | 2 +- gdb/testsuite/gdb.base/func-ptr.c | 2 +- gdb/testsuite/gdb.base/func-ptr.exp | 2 +- gdb/testsuite/gdb.base/func-ptrs.c | 2 +- gdb/testsuite/gdb.base/func-ptrs.exp | 2 +- gdb/testsuite/gdb.base/funcargs.exp | 2 +- gdb/testsuite/gdb.base/gcore-buffer-overflow.c | 2 +- gdb/testsuite/gdb.base/gcore-buffer-overflow.exp | 2 +- gdb/testsuite/gdb.base/gcore-relro-lib.c | 2 +- gdb/testsuite/gdb.base/gcore-relro-main.c | 2 +- gdb/testsuite/gdb.base/gcore-relro-pie.c | 2 +- gdb/testsuite/gdb.base/gcore-relro-pie.exp | 2 +- gdb/testsuite/gdb.base/gcore-relro.exp | 2 +- gdb/testsuite/gdb.base/gcore.c | 2 +- gdb/testsuite/gdb.base/gcore.exp | 2 +- gdb/testsuite/gdb.base/gdb-sigterm-2.exp | 2 +- gdb/testsuite/gdb.base/gdb-sigterm.c | 2 +- gdb/testsuite/gdb.base/gdb-sigterm.exp | 2 +- gdb/testsuite/gdb.base/gdb1056.exp | 2 +- gdb/testsuite/gdb.base/gdb1090.c | 2 +- gdb/testsuite/gdb.base/gdb1090.exp | 2 +- gdb/testsuite/gdb.base/gdb11530.c | 2 +- gdb/testsuite/gdb.base/gdb11530.exp | 2 +- gdb/testsuite/gdb.base/gdb11531.c | 2 +- gdb/testsuite/gdb.base/gdb11531.exp | 2 +- gdb/testsuite/gdb.base/gdb1250.c | 2 +- gdb/testsuite/gdb.base/gdb1250.exp | 2 +- gdb/testsuite/gdb.base/gdb1555-main.c | 2 +- gdb/testsuite/gdb.base/gdb1555.c | 2 +- gdb/testsuite/gdb.base/gdb1555.exp | 2 +- gdb/testsuite/gdb.base/gdb1821.c | 2 +- gdb/testsuite/gdb.base/gdb1821.exp | 2 +- gdb/testsuite/gdb.base/gdbhistsize-history.exp | 2 +- gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c | 2 +- gdb/testsuite/gdb.base/gdbindex-stabs.c | 2 +- gdb/testsuite/gdb.base/gdbindex-stabs.exp | 2 +- gdb/testsuite/gdb.base/gdbinit-history.exp | 2 +- gdb/testsuite/gdb.base/gdbvars.exp | 2 +- .../gdb.base/global-var-nested-by-dso-solib1.c | 2 +- .../gdb.base/global-var-nested-by-dso-solib2.c | 2 +- gdb/testsuite/gdb.base/global-var-nested-by-dso.c | 2 +- .../gdb.base/global-var-nested-by-dso.exp | 2 +- gdb/testsuite/gdb.base/gnu-debugdata.c | 2 +- gdb/testsuite/gdb.base/gnu-debugdata.exp | 2 +- gdb/testsuite/gdb.base/gnu-ifunc-lib.c | 2 +- gdb/testsuite/gdb.base/gnu-ifunc.c | 2 +- gdb/testsuite/gdb.base/gnu-ifunc.exp | 2 +- gdb/testsuite/gdb.base/gnu_vector.c | 2 +- gdb/testsuite/gdb.base/gnu_vector.exp | 2 +- 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-shr.c | 2 +- gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c | 2 +- .../gdb.base/hbreak-in-shr-unsupported.exp | 2 +- gdb/testsuite/gdb.base/hbreak-unmapped.c | 2 +- gdb/testsuite/gdb.base/hbreak-unmapped.exp | 2 +- gdb/testsuite/gdb.base/hbreak.c | 2 +- gdb/testsuite/gdb.base/hbreak.exp | 2 +- gdb/testsuite/gdb.base/hbreak2.exp | 2 +- gdb/testsuite/gdb.base/help.exp | 2 +- gdb/testsuite/gdb.base/history-duplicates.exp | 2 +- gdb/testsuite/gdb.base/hook-stop.c | 2 +- gdb/testsuite/gdb.base/hook-stop.exp | 2 +- gdb/testsuite/gdb.base/huge.exp | 2 +- gdb/testsuite/gdb.base/ifelse.exp | 2 +- gdb/testsuite/gdb.base/included.c | 2 +- gdb/testsuite/gdb.base/included.exp | 2 +- gdb/testsuite/gdb.base/included.h | 2 +- gdb/testsuite/gdb.base/infcall-exec.c | 2 +- gdb/testsuite/gdb.base/infcall-exec.exp | 2 +- gdb/testsuite/gdb.base/infcall-exec2.c | 2 +- gdb/testsuite/gdb.base/infcall-input.c | 2 +- gdb/testsuite/gdb.base/infcall-input.exp | 2 +- gdb/testsuite/gdb.base/inferior-died.c | 2 +- gdb/testsuite/gdb.base/inferior-died.exp | 2 +- gdb/testsuite/gdb.base/infnan.c | 2 +- gdb/testsuite/gdb.base/infnan.exp | 2 +- gdb/testsuite/gdb.base/info-fun-solib.c | 2 +- gdb/testsuite/gdb.base/info-fun.c | 2 +- gdb/testsuite/gdb.base/info-fun.exp | 2 +- gdb/testsuite/gdb.base/info-macros.exp | 2 +- gdb/testsuite/gdb.base/info-os.c | 2 +- gdb/testsuite/gdb.base/info-os.exp | 4 +- gdb/testsuite/gdb.base/info-proc.exp | 2 +- gdb/testsuite/gdb.base/info-program.exp | 2 +- gdb/testsuite/gdb.base/info-shared-solib1.c | 2 +- gdb/testsuite/gdb.base/info-shared-solib2.c | 2 +- gdb/testsuite/gdb.base/info-shared.c | 2 +- gdb/testsuite/gdb.base/info-shared.exp | 2 +- gdb/testsuite/gdb.base/info-target.exp | 2 +- gdb/testsuite/gdb.base/infoline.c | 2 +- gdb/testsuite/gdb.base/infoline.exp | 2 +- gdb/testsuite/gdb.base/interact.exp | 2 +- gdb/testsuite/gdb.base/interp.c | 2 +- gdb/testsuite/gdb.base/interp.exp | 2 +- gdb/testsuite/gdb.base/interrupt-noterm.c | 2 +- gdb/testsuite/gdb.base/interrupt-noterm.exp | 2 +- gdb/testsuite/gdb.base/interrupt.exp | 2 +- gdb/testsuite/gdb.base/jit-attach-pie.c | 2 +- gdb/testsuite/gdb.base/jit-attach-pie.exp | 4 +- gdb/testsuite/gdb.base/jit-main.c | 2 +- gdb/testsuite/gdb.base/jit-protocol.h | 2 +- gdb/testsuite/gdb.base/jit-reader.exp | 2 +- gdb/testsuite/gdb.base/jit-simple-dl.c | 2 +- gdb/testsuite/gdb.base/jit-simple-jit.c | 2 +- gdb/testsuite/gdb.base/jit-simple.c | 2 +- gdb/testsuite/gdb.base/jit-simple.exp | 2 +- gdb/testsuite/gdb.base/jit-so.exp | 2 +- gdb/testsuite/gdb.base/jit-solib.c | 2 +- gdb/testsuite/gdb.base/jit.exp | 2 +- gdb/testsuite/gdb.base/jithost.c | 2 +- gdb/testsuite/gdb.base/jithost.h | 2 +- gdb/testsuite/gdb.base/jitreader.c | 2 +- gdb/testsuite/gdb.base/jump.exp | 2 +- gdb/testsuite/gdb.base/kill-after-signal.c | 2 +- gdb/testsuite/gdb.base/kill-after-signal.exp | 2 +- gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c | 2 +- .../gdb.base/kill-detach-inferiors-cmd.exp | 2 +- gdb/testsuite/gdb.base/killed-outside.c | 2 +- gdb/testsuite/gdb.base/killed-outside.exp | 2 +- gdb/testsuite/gdb.base/label.exp | 2 +- gdb/testsuite/gdb.base/langs.exp | 4 +- gdb/testsuite/gdb.base/langs1.f | 2 +- gdb/testsuite/gdb.base/ldbl_e308.c | 2 +- gdb/testsuite/gdb.base/ldbl_e308.exp | 2 +- gdb/testsuite/gdb.base/libsegfault.exp | 84 + gdb/testsuite/gdb.base/line-symtabs.c | 2 +- gdb/testsuite/gdb.base/line-symtabs.exp | 2 +- gdb/testsuite/gdb.base/line-symtabs.h | 2 +- gdb/testsuite/gdb.base/lineinc.exp | 2 +- gdb/testsuite/gdb.base/linespecs.exp | 2 +- gdb/testsuite/gdb.base/list-ambiguous.exp | 2 +- gdb/testsuite/gdb.base/list-ambiguous0.c | 2 +- gdb/testsuite/gdb.base/list-ambiguous1.c | 2 +- gdb/testsuite/gdb.base/list.exp | 2 +- gdb/testsuite/gdb.base/logical.exp | 2 +- gdb/testsuite/gdb.base/long-inferior-output.c | 2 +- gdb/testsuite/gdb.base/long-inferior-output.exp | 2 +- gdb/testsuite/gdb.base/long_long.c | 2 +- gdb/testsuite/gdb.base/long_long.exp | 2 +- gdb/testsuite/gdb.base/longest-types.c | 2 +- gdb/testsuite/gdb.base/longest-types.exp | 2 +- gdb/testsuite/gdb.base/longjmp.c | 2 +- gdb/testsuite/gdb.base/longjmp.exp | 2 +- gdb/testsuite/gdb.base/macscp.exp | 4 +- gdb/testsuite/gdb.base/maint.exp | 11 +- gdb/testsuite/gdb.base/max-value-size.c | 2 +- gdb/testsuite/gdb.base/max-value-size.exp | 2 +- gdb/testsuite/gdb.base/memattr.c | 2 +- gdb/testsuite/gdb.base/memattr.exp | 14 +- gdb/testsuite/gdb.base/mips_pro.exp | 2 +- gdb/testsuite/gdb.base/miscexprs.exp | 2 +- gdb/testsuite/gdb.base/morestack.c | 2 +- gdb/testsuite/gdb.base/morestack.exp | 2 +- gdb/testsuite/gdb.base/moribund-step.exp | 2 +- gdb/testsuite/gdb.base/multi-forks.c | 2 +- gdb/testsuite/gdb.base/multi-forks.exp | 2 +- .../gdb.base/multi-line-starts-subshell.exp | 2 +- gdb/testsuite/gdb.base/nested-addr.c | 2 +- gdb/testsuite/gdb.base/nested-addr.exp | 2 +- gdb/testsuite/gdb.base/nested-subp1.c | 2 +- gdb/testsuite/gdb.base/nested-subp1.exp | 2 +- gdb/testsuite/gdb.base/nested-subp2.c | 2 +- gdb/testsuite/gdb.base/nested-subp2.exp | 2 +- gdb/testsuite/gdb.base/nested-subp3.c | 2 +- gdb/testsuite/gdb.base/nested-subp3.exp | 2 +- gdb/testsuite/gdb.base/new-ui-echo.c | 2 +- gdb/testsuite/gdb.base/new-ui-echo.exp | 2 +- gdb/testsuite/gdb.base/new-ui-pending-input.c | 2 +- gdb/testsuite/gdb.base/new-ui-pending-input.exp | 2 +- gdb/testsuite/gdb.base/new-ui.c | 2 +- gdb/testsuite/gdb.base/new-ui.exp | 2 +- gdb/testsuite/gdb.base/nextoverexit.c | 2 +- gdb/testsuite/gdb.base/nextoverexit.exp | 2 +- gdb/testsuite/gdb.base/nodebug.exp | 2 +- gdb/testsuite/gdb.base/nofield.c | 2 +- gdb/testsuite/gdb.base/nofield.exp | 2 +- gdb/testsuite/gdb.base/noreturn-finish.c | 2 +- gdb/testsuite/gdb.base/noreturn-finish.exp | 2 +- gdb/testsuite/gdb.base/noreturn-return.c | 2 +- gdb/testsuite/gdb.base/noreturn-return.exp | 2 +- gdb/testsuite/gdb.base/normal.c | 2 +- gdb/testsuite/gdb.base/nostdlib.c | 2 +- gdb/testsuite/gdb.base/nostdlib.exp | 2 +- gdb/testsuite/gdb.base/offsets.c | 2 +- gdb/testsuite/gdb.base/offsets.exp | 2 +- gdb/testsuite/gdb.base/opaque.exp | 2 +- gdb/testsuite/gdb.base/overlays.exp | 2 +- gdb/testsuite/gdb.base/page.exp | 2 +- .../gdb.base/paginate-after-ctrl-c-running.c | 2 +- .../gdb.base/paginate-after-ctrl-c-running.exp | 2 +- gdb/testsuite/gdb.base/paginate-bg-execution.c | 2 +- gdb/testsuite/gdb.base/paginate-bg-execution.exp | 2 +- .../gdb.base/paginate-execution-startup.c | 2 +- .../gdb.base/paginate-execution-startup.exp | 2 +- gdb/testsuite/gdb.base/paginate-inferior-exit.c | 2 +- gdb/testsuite/gdb.base/paginate-inferior-exit.exp | 2 +- gdb/testsuite/gdb.base/pc-fp.exp | 4 +- gdb/testsuite/gdb.base/pending.c | 2 +- gdb/testsuite/gdb.base/pending.exp | 2 +- gdb/testsuite/gdb.base/pendshr.c | 2 +- gdb/testsuite/gdb.base/permissions.exp | 2 +- gdb/testsuite/gdb.base/pie-execl.c | 2 +- gdb/testsuite/gdb.base/pie-execl.exp | 2 +- gdb/testsuite/gdb.base/pointers.exp | 2 +- gdb/testsuite/gdb.base/pr10179.exp | 2 +- gdb/testsuite/gdb.base/pr11022.c | 2 +- gdb/testsuite/gdb.base/pr11022.exp | 2 +- gdb/testsuite/gdb.base/prelink-lib.c | 2 +- gdb/testsuite/gdb.base/prelink.c | 2 +- gdb/testsuite/gdb.base/prelink.exp | 2 +- gdb/testsuite/gdb.base/print-file-var-lib1.c | 2 +- gdb/testsuite/gdb.base/print-file-var-lib2.c | 2 +- gdb/testsuite/gdb.base/print-file-var-main.c | 2 +- gdb/testsuite/gdb.base/print-file-var.exp | 2 +- gdb/testsuite/gdb.base/print-symbol-loading-lib.c | 2 +- gdb/testsuite/gdb.base/print-symbol-loading-main.c | 2 +- gdb/testsuite/gdb.base/print-symbol-loading.exp | 2 +- gdb/testsuite/gdb.base/printcmds.exp | 2 +- gdb/testsuite/gdb.base/prologue-include.c | 2 +- gdb/testsuite/gdb.base/prologue-include.exp | 2 +- gdb/testsuite/gdb.base/prologue-include.h | 2 +- gdb/testsuite/gdb.base/prologue.c | 2 +- gdb/testsuite/gdb.base/prologue.exp | 2 +- gdb/testsuite/gdb.base/psymtab.exp | 2 +- gdb/testsuite/gdb.base/ptr-typedef.c | 2 +- gdb/testsuite/gdb.base/ptr-typedef.exp | 2 +- gdb/testsuite/gdb.base/ptype-offsets.cc | 193 + gdb/testsuite/gdb.base/ptype-offsets.exp | 318 + gdb/testsuite/gdb.base/ptype.exp | 2 +- gdb/testsuite/gdb.base/quit-live.c | 2 +- gdb/testsuite/gdb.base/quit-live.exp | 2 +- gdb/testsuite/gdb.base/quit.exp | 2 +- gdb/testsuite/gdb.base/radix.exp | 2 +- gdb/testsuite/gdb.base/random-signal.c | 2 +- gdb/testsuite/gdb.base/random-signal.exp | 2 +- gdb/testsuite/gdb.base/randomize.c | 2 +- gdb/testsuite/gdb.base/randomize.exp | 2 +- gdb/testsuite/gdb.base/range-stepping.c | 2 +- gdb/testsuite/gdb.base/range-stepping.exp | 2 +- gdb/testsuite/gdb.base/readline-ask.c | 2 +- gdb/testsuite/gdb.base/readline-ask.exp | 2 +- gdb/testsuite/gdb.base/readline-ask.inputrc | 2 +- gdb/testsuite/gdb.base/readline.exp | 2 +- gdb/testsuite/gdb.base/readnever.c | 41 + gdb/testsuite/gdb.base/readnever.exp | 83 + gdb/testsuite/gdb.base/realname-expand-real.c | 2 +- gdb/testsuite/gdb.base/realname-expand.c | 2 +- gdb/testsuite/gdb.base/realname-expand.exp | 2 +- gdb/testsuite/gdb.base/recpar.c | 2 +- gdb/testsuite/gdb.base/recpar.exp | 2 +- gdb/testsuite/gdb.base/recurse.exp | 2 +- gdb/testsuite/gdb.base/reggroups.c | 22 + gdb/testsuite/gdb.base/reggroups.exp | 113 + gdb/testsuite/gdb.base/relational.exp | 2 +- gdb/testsuite/gdb.base/relativedebug.c | 2 +- gdb/testsuite/gdb.base/relativedebug.exp | 2 +- gdb/testsuite/gdb.base/relocate.c | 2 +- gdb/testsuite/gdb.base/relocate.exp | 100 +- gdb/testsuite/gdb.base/remote.exp | 2 +- gdb/testsuite/gdb.base/remotetimeout.exp | 2 +- gdb/testsuite/gdb.base/reread-readsym.c | 2 +- gdb/testsuite/gdb.base/reread-readsym.exp | 2 +- gdb/testsuite/gdb.base/reread.exp | 2 +- gdb/testsuite/gdb.base/restore.c | 2 +- gdb/testsuite/gdb.base/restore.exp | 2 +- gdb/testsuite/gdb.base/return-nodebug.c | 2 +- gdb/testsuite/gdb.base/return-nodebug.exp | 2 +- gdb/testsuite/gdb.base/return-nodebug1.c | 2 +- gdb/testsuite/gdb.base/return.c | 2 +- gdb/testsuite/gdb.base/return.exp | 2 +- gdb/testsuite/gdb.base/return2.exp | 2 +- gdb/testsuite/gdb.base/run-after-attach.c | 2 +- gdb/testsuite/gdb.base/run-after-attach.exp | 2 +- gdb/testsuite/gdb.base/save-bp.c | 2 +- gdb/testsuite/gdb.base/save-bp.exp | 2 +- gdb/testsuite/gdb.base/savedregs.c | 2 +- gdb/testsuite/gdb.base/savedregs.exp | 2 +- gdb/testsuite/gdb.base/scope.exp | 2 +- gdb/testsuite/gdb.base/sect-cmd.exp | 2 +- gdb/testsuite/gdb.base/segv.c | 2 +- gdb/testsuite/gdb.base/sep-proc.c | 2 +- gdb/testsuite/gdb.base/sep.c | 2 +- gdb/testsuite/gdb.base/sep.exp | 2 +- gdb/testsuite/gdb.base/sepdebug.c | 2 +- gdb/testsuite/gdb.base/sepdebug.exp | 2 +- gdb/testsuite/gdb.base/sepdebug2.c | 2 +- gdb/testsuite/gdb.base/sepsymtab.c | 2 +- gdb/testsuite/gdb.base/sepsymtab.exp | 2 +- gdb/testsuite/gdb.base/server-del-break.c | 22 + gdb/testsuite/gdb.base/server-del-break.exp | 38 + gdb/testsuite/gdb.base/set-cwd.c | 2 +- gdb/testsuite/gdb.base/set-cwd.exp | 2 +- gdb/testsuite/gdb.base/set-inferior-tty.c | 2 +- gdb/testsuite/gdb.base/set-inferior-tty.exp | 2 +- gdb/testsuite/gdb.base/set-lang-auto.exp | 2 +- gdb/testsuite/gdb.base/set-noassign.exp | 2 +- gdb/testsuite/gdb.base/setshow.exp | 2 +- gdb/testsuite/gdb.base/setvar.exp | 2 +- gdb/testsuite/gdb.base/share-env-with-gdbserver.c | 2 +- .../gdb.base/share-env-with-gdbserver.exp | 2 +- gdb/testsuite/gdb.base/shell.exp | 2 +- gdb/testsuite/gdb.base/shlib-call.exp | 2 +- gdb/testsuite/gdb.base/shreloc.exp | 2 +- gdb/testsuite/gdb.base/sigall.exp | 2 +- gdb/testsuite/gdb.base/sigaltstack.c | 2 +- gdb/testsuite/gdb.base/sigaltstack.exp | 2 +- gdb/testsuite/gdb.base/sigbpt.c | 2 +- gdb/testsuite/gdb.base/sigbpt.exp | 2 +- gdb/testsuite/gdb.base/sigchld.c | 2 +- gdb/testsuite/gdb.base/sigchld.exp | 2 +- gdb/testsuite/gdb.base/siginfo-addr.c | 2 +- gdb/testsuite/gdb.base/siginfo-addr.exp | 2 +- gdb/testsuite/gdb.base/siginfo-infcall.c | 2 +- gdb/testsuite/gdb.base/siginfo-infcall.exp | 2 +- gdb/testsuite/gdb.base/siginfo-obj.c | 2 +- gdb/testsuite/gdb.base/siginfo-obj.exp | 2 +- gdb/testsuite/gdb.base/siginfo-thread.c | 2 +- gdb/testsuite/gdb.base/siginfo-thread.exp | 2 +- gdb/testsuite/gdb.base/siginfo.c | 2 +- gdb/testsuite/gdb.base/siginfo.exp | 2 +- gdb/testsuite/gdb.base/signals-state-child.c | 2 +- gdb/testsuite/gdb.base/signals-state-child.exp | 2 +- gdb/testsuite/gdb.base/signals.exp | 2 +- gdb/testsuite/gdb.base/signest.c | 2 +- gdb/testsuite/gdb.base/signest.exp | 2 +- gdb/testsuite/gdb.base/signull.c | 2 +- gdb/testsuite/gdb.base/signull.exp | 2 +- gdb/testsuite/gdb.base/sigrepeat.c | 2 +- gdb/testsuite/gdb.base/sigrepeat.exp | 2 +- gdb/testsuite/gdb.base/sigstep.c | 2 +- gdb/testsuite/gdb.base/sigstep.exp | 2 +- gdb/testsuite/gdb.base/sizeof.exp | 2 +- gdb/testsuite/gdb.base/skip-solib.exp | 2 +- gdb/testsuite/gdb.base/skip.c | 2 +- gdb/testsuite/gdb.base/skip.exp | 2 +- gdb/testsuite/gdb.base/skip1.c | 2 +- gdb/testsuite/gdb.base/so-disc-shr.c | 2 +- gdb/testsuite/gdb.base/so-impl-ld.exp | 2 +- gdb/testsuite/gdb.base/solib-corrupted.exp | 2 +- gdb/testsuite/gdb.base/solib-disc.c | 2 +- gdb/testsuite/gdb.base/solib-disc.exp | 2 +- gdb/testsuite/gdb.base/solib-display-lib.c | 2 +- gdb/testsuite/gdb.base/solib-display-main.c | 2 +- gdb/testsuite/gdb.base/solib-display.exp | 2 +- gdb/testsuite/gdb.base/solib-nodir.exp | 2 +- gdb/testsuite/gdb.base/solib-overlap-lib.c | 2 +- gdb/testsuite/gdb.base/solib-overlap-main.c | 2 +- gdb/testsuite/gdb.base/solib-overlap.exp | 2 +- gdb/testsuite/gdb.base/solib-search-lib1.c | 2 +- gdb/testsuite/gdb.base/solib-search-lib2.c | 2 +- gdb/testsuite/gdb.base/solib-search.c | 2 +- gdb/testsuite/gdb.base/solib-search.exp | 2 +- gdb/testsuite/gdb.base/solib-search.h | 2 +- gdb/testsuite/gdb.base/solib-symbol-lib.c | 2 +- gdb/testsuite/gdb.base/solib-symbol-main.c | 2 +- gdb/testsuite/gdb.base/solib-symbol.exp | 2 +- gdb/testsuite/gdb.base/solib-vanish-lib1.c | 24 + gdb/testsuite/gdb.base/solib-vanish-lib2.c | 22 + gdb/testsuite/gdb.base/solib-vanish-main.c | 75 + gdb/testsuite/gdb.base/solib-vanish.exp | 107 + gdb/testsuite/gdb.base/solib-weak.c | 2 +- gdb/testsuite/gdb.base/solib-weak.exp | 2 +- gdb/testsuite/gdb.base/source-dir.exp | 2 +- gdb/testsuite/gdb.base/source-error.gdb | 2 +- gdb/testsuite/gdb.base/source-execution.c | 2 +- gdb/testsuite/gdb.base/source-execution.exp | 2 +- gdb/testsuite/gdb.base/source-execution.gdb | 2 +- gdb/testsuite/gdb.base/source-nofile.gdb | 2 +- gdb/testsuite/gdb.base/source-test.gdb | 2 +- gdb/testsuite/gdb.base/source.exp | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp.c | 2 +- gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp | 2 +- gdb/testsuite/gdb.base/stack-checking.c | 2 +- gdb/testsuite/gdb.base/stack-checking.exp | 2 +- gdb/testsuite/gdb.base/stale-infcall.c | 2 +- gdb/testsuite/gdb.base/stale-infcall.exp | 2 +- gdb/testsuite/gdb.base/stap-probe.c | 2 +- gdb/testsuite/gdb.base/stap-probe.exp | 2 +- gdb/testsuite/gdb.base/start.c | 2 +- gdb/testsuite/gdb.base/start.exp | 2 +- gdb/testsuite/gdb.base/starti.c | 2 +- gdb/testsuite/gdb.base/starti.exp | 4 +- gdb/testsuite/gdb.base/startup-with-shell.c | 2 +- gdb/testsuite/gdb.base/startup-with-shell.exp | 2 +- gdb/testsuite/gdb.base/statistics.exp | 2 +- gdb/testsuite/gdb.base/step-break.c | 2 +- gdb/testsuite/gdb.base/step-break.exp | 2 +- gdb/testsuite/gdb.base/step-bt.c | 2 +- gdb/testsuite/gdb.base/step-bt.exp | 2 +- gdb/testsuite/gdb.base/step-line.c | 4 +- gdb/testsuite/gdb.base/step-line.exp | 2 +- gdb/testsuite/gdb.base/step-line.inp | 4 +- gdb/testsuite/gdb.base/step-over-clone.c | 2 +- gdb/testsuite/gdb.base/step-over-exit.c | 2 +- gdb/testsuite/gdb.base/step-over-exit.exp | 2 +- gdb/testsuite/gdb.base/step-over-fork.c | 2 +- gdb/testsuite/gdb.base/step-over-no-symbols.exp | 2 +- gdb/testsuite/gdb.base/step-over-syscall.exp | 2 +- gdb/testsuite/gdb.base/step-over-vfork.c | 2 +- gdb/testsuite/gdb.base/step-resume-infcall.c | 2 +- gdb/testsuite/gdb.base/step-resume-infcall.exp | 2 +- .../gdb.base/step-sw-breakpoint-adjust-pc.c | 2 +- .../gdb.base/step-sw-breakpoint-adjust-pc.exp | 2 +- gdb/testsuite/gdb.base/step-symless.c | 2 +- gdb/testsuite/gdb.base/step-symless.exp | 2 +- gdb/testsuite/gdb.base/step-test.exp | 2 +- gdb/testsuite/gdb.base/store.exp | 2 +- gdb/testsuite/gdb.base/structs.c | 2 +- gdb/testsuite/gdb.base/structs.exp | 2 +- gdb/testsuite/gdb.base/structs2.exp | 2 +- gdb/testsuite/gdb.base/structs3.c | 2 +- gdb/testsuite/gdb.base/structs3.exp | 2 +- gdb/testsuite/gdb.base/subst.exp | 2 +- gdb/testsuite/gdb.base/sym-file-lib.c | 2 +- gdb/testsuite/gdb.base/sym-file-loader.c | 2 +- gdb/testsuite/gdb.base/sym-file-loader.h | 2 +- gdb/testsuite/gdb.base/sym-file-main.c | 2 +- gdb/testsuite/gdb.base/sym-file.exp | 2 +- gdb/testsuite/gdb.base/symbol-alias.c | 2 +- gdb/testsuite/gdb.base/symbol-alias.exp | 2 +- gdb/testsuite/gdb.base/symbol-alias2.c | 2 +- .../gdb.base/symbol-without-target_section.c | 2 +- .../gdb.base/symbol-without-target_section.exp | 2 +- gdb/testsuite/gdb.base/symtab-search-order-1.c | 2 +- .../gdb.base/symtab-search-order-shlib-1.c | 2 +- gdb/testsuite/gdb.base/symtab-search-order.c | 2 +- gdb/testsuite/gdb.base/symtab-search-order.exp | 2 +- gdb/testsuite/gdb.base/term.c | 2 +- gdb/testsuite/gdb.base/term.exp | 2 +- gdb/testsuite/gdb.base/testenv.c | 2 +- gdb/testsuite/gdb.base/testenv.exp | 2 +- gdb/testsuite/gdb.base/trace-commands.exp | 2 +- gdb/testsuite/gdb.base/twice.exp | 2 +- gdb/testsuite/gdb.base/type-opaque-lib.c | 2 +- gdb/testsuite/gdb.base/type-opaque-main.c | 2 +- gdb/testsuite/gdb.base/type-opaque.exp | 2 +- gdb/testsuite/gdb.base/ui-redirect.exp | 2 +- gdb/testsuite/gdb.base/unload.c | 2 +- gdb/testsuite/gdb.base/unload.exp | 2 +- gdb/testsuite/gdb.base/unloadshr.c | 2 +- gdb/testsuite/gdb.base/unloadshr2.c | 2 +- gdb/testsuite/gdb.base/until-nodebug.exp | 2 +- gdb/testsuite/gdb.base/until.exp | 2 +- gdb/testsuite/gdb.base/unwindonsignal.c | 2 +- gdb/testsuite/gdb.base/unwindonsignal.exp | 2 +- gdb/testsuite/gdb.base/valgrind-db-attach.c | 2 +- gdb/testsuite/gdb.base/valgrind-db-attach.exp | 2 +- gdb/testsuite/gdb.base/valgrind-disp-step.c | 2 +- gdb/testsuite/gdb.base/valgrind-disp-step.exp | 2 +- gdb/testsuite/gdb.base/valgrind-infcall.c | 2 +- gdb/testsuite/gdb.base/valgrind-infcall.exp | 2 +- gdb/testsuite/gdb.base/value-double-free.c | 2 +- gdb/testsuite/gdb.base/value-double-free.exp | 2 +- gdb/testsuite/gdb.base/varargs.exp | 2 +- gdb/testsuite/gdb.base/vdso-warning.c | 2 +- gdb/testsuite/gdb.base/vdso-warning.exp | 2 +- gdb/testsuite/gdb.base/vforked-prog.c | 2 +- gdb/testsuite/gdb.base/vla-datatypes.c | 2 +- gdb/testsuite/gdb.base/vla-datatypes.exp | 2 +- gdb/testsuite/gdb.base/vla-ptr.c | 2 +- gdb/testsuite/gdb.base/vla-ptr.exp | 2 +- gdb/testsuite/gdb.base/vla-sideeffect.c | 2 +- gdb/testsuite/gdb.base/vla-sideeffect.exp | 2 +- gdb/testsuite/gdb.base/vla-stub-define.c | 2 +- gdb/testsuite/gdb.base/vla-stub.c | 2 +- gdb/testsuite/gdb.base/vla-stub.exp | 2 +- gdb/testsuite/gdb.base/volatile.exp | 2 +- gdb/testsuite/gdb.base/watch-bitfields.c | 2 +- gdb/testsuite/gdb.base/watch-bitfields.exp | 2 +- gdb/testsuite/gdb.base/watch-cond-infcall.c | 2 +- gdb/testsuite/gdb.base/watch-cond-infcall.exp | 2 +- gdb/testsuite/gdb.base/watch-cond.c | 2 +- gdb/testsuite/gdb.base/watch-cond.exp | 2 +- gdb/testsuite/gdb.base/watch-non-mem.c | 2 +- gdb/testsuite/gdb.base/watch-non-mem.exp | 2 +- gdb/testsuite/gdb.base/watch-read.c | 2 +- gdb/testsuite/gdb.base/watch-read.exp | 2 +- gdb/testsuite/gdb.base/watch-vfork.c | 2 +- gdb/testsuite/gdb.base/watch-vfork.exp | 2 +- gdb/testsuite/gdb.base/watch_thread_num.c | 2 +- gdb/testsuite/gdb.base/watch_thread_num.exp | 2 +- .../gdb.base/watchpoint-cond-gone-stripped.c | 2 +- gdb/testsuite/gdb.base/watchpoint-cond-gone.c | 2 +- gdb/testsuite/gdb.base/watchpoint-cond-gone.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-delete.c | 2 +- gdb/testsuite/gdb.base/watchpoint-delete.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c | 2 +- gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-hw.c | 2 +- gdb/testsuite/gdb.base/watchpoint-hw.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-reuse-slot.c | 2 +- gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp | 2 +- gdb/testsuite/gdb.base/watchpoint-solib-shr.c | 2 +- gdb/testsuite/gdb.base/watchpoint-solib.c | 2 +- gdb/testsuite/gdb.base/watchpoint-solib.exp | 2 +- .../gdb.base/watchpoint-stops-at-right-insn.c | 2 +- .../gdb.base/watchpoint-stops-at-right-insn.exp | 2 +- gdb/testsuite/gdb.base/watchpoint.exp | 2 +- gdb/testsuite/gdb.base/watchpoints.c | 2 +- gdb/testsuite/gdb.base/watchpoints.exp | 2 +- gdb/testsuite/gdb.base/wchar.c | 2 +- gdb/testsuite/gdb.base/wchar.exp | 2 +- gdb/testsuite/gdb.base/weaklib1.c | 2 +- gdb/testsuite/gdb.base/weaklib2.c | 2 +- gdb/testsuite/gdb.base/whatis-exp.exp | 2 +- gdb/testsuite/gdb.base/whatis-ptype-typedefs.c | 12 +- gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp | 50 +- gdb/testsuite/gdb.base/whatis.c | 2 +- gdb/testsuite/gdb.base/whatis.exp | 27 +- gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c | 2 +- .../gdb.base/wrong_frame_bt_full-opaque.c | 2 +- gdb/testsuite/gdb.base/wrong_frame_bt_full.exp | 2 +- gdb/testsuite/gdb.btrace/buffer-size.exp | 2 +- gdb/testsuite/gdb.btrace/data.c | 2 +- gdb/testsuite/gdb.btrace/data.exp | 2 +- gdb/testsuite/gdb.btrace/delta.exp | 2 +- gdb/testsuite/gdb.btrace/dlopen-dso.c | 2 +- gdb/testsuite/gdb.btrace/dlopen.c | 2 +- gdb/testsuite/gdb.btrace/dlopen.exp | 2 +- gdb/testsuite/gdb.btrace/enable-running.c | 2 +- gdb/testsuite/gdb.btrace/enable-running.exp | 2 +- gdb/testsuite/gdb.btrace/enable.c | 2 +- gdb/testsuite/gdb.btrace/enable.exp | 2 +- gdb/testsuite/gdb.btrace/exception.cc | 2 +- gdb/testsuite/gdb.btrace/exception.exp | 2 +- gdb/testsuite/gdb.btrace/function_call_history.c | 2 +- gdb/testsuite/gdb.btrace/function_call_history.exp | 2 +- gdb/testsuite/gdb.btrace/gcore.exp | 2 +- gdb/testsuite/gdb.btrace/i686-record_goto.S | 2 +- gdb/testsuite/gdb.btrace/i686-tailcall-only.S | 2 +- gdb/testsuite/gdb.btrace/i686-tailcall.S | 2 +- gdb/testsuite/gdb.btrace/instruction_history.S | 2 +- gdb/testsuite/gdb.btrace/instruction_history.c | 2 +- gdb/testsuite/gdb.btrace/instruction_history.exp | 2 +- gdb/testsuite/gdb.btrace/multi-thread-step.c | 2 +- gdb/testsuite/gdb.btrace/multi-thread-step.exp | 2 +- gdb/testsuite/gdb.btrace/nohist.exp | 2 +- gdb/testsuite/gdb.btrace/non-stop.c | 2 +- gdb/testsuite/gdb.btrace/non-stop.exp | 2 +- gdb/testsuite/gdb.btrace/reconnect.c | 2 +- gdb/testsuite/gdb.btrace/reconnect.exp | 2 +- gdb/testsuite/gdb.btrace/record_goto-step.exp | 2 +- gdb/testsuite/gdb.btrace/record_goto.c | 2 +- gdb/testsuite/gdb.btrace/record_goto.exp | 2 +- gdb/testsuite/gdb.btrace/rn-dl-bind.c | 2 +- gdb/testsuite/gdb.btrace/rn-dl-bind.exp | 2 +- gdb/testsuite/gdb.btrace/segv.c | 2 +- gdb/testsuite/gdb.btrace/segv.exp | 2 +- gdb/testsuite/gdb.btrace/step.exp | 2 +- gdb/testsuite/gdb.btrace/stepi.exp | 2 +- gdb/testsuite/gdb.btrace/tailcall-only.c | 2 +- gdb/testsuite/gdb.btrace/tailcall-only.exp | 2 +- gdb/testsuite/gdb.btrace/tailcall.c | 2 +- gdb/testsuite/gdb.btrace/tailcall.exp | 2 +- gdb/testsuite/gdb.btrace/tsx.c | 2 +- gdb/testsuite/gdb.btrace/tsx.exp | 2 +- gdb/testsuite/gdb.btrace/unknown_functions.c | 2 +- gdb/testsuite/gdb.btrace/unknown_functions.exp | 2 +- gdb/testsuite/gdb.btrace/vdso.c | 2 +- gdb/testsuite/gdb.btrace/vdso.exp | 2 +- gdb/testsuite/gdb.btrace/x86-tsx.S | 2 +- gdb/testsuite/gdb.btrace/x86_64-record_goto.S | 2 +- gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S | 2 +- gdb/testsuite/gdb.btrace/x86_64-tailcall.S | 2 +- gdb/testsuite/gdb.cell/arch.exp | 6 +- gdb/testsuite/gdb.cell/break-spu.c | 2 +- gdb/testsuite/gdb.cell/break.c | 2 +- gdb/testsuite/gdb.cell/break.exp | 6 +- gdb/testsuite/gdb.cell/bt-spu.c | 2 +- gdb/testsuite/gdb.cell/bt.c | 2 +- gdb/testsuite/gdb.cell/bt.exp | 10 +- gdb/testsuite/gdb.cell/bt2-spu.c | 2 +- gdb/testsuite/gdb.cell/core.exp | 6 +- gdb/testsuite/gdb.cell/coremaker-spu.c | 2 +- gdb/testsuite/gdb.cell/coremaker.c | 2 +- gdb/testsuite/gdb.cell/data-spu.c | 2 +- gdb/testsuite/gdb.cell/data.c | 2 +- gdb/testsuite/gdb.cell/data.exp | 6 +- gdb/testsuite/gdb.cell/dwarfaddr.S | 2 +- gdb/testsuite/gdb.cell/dwarfaddr.exp | 4 +- gdb/testsuite/gdb.cell/ea-cache-spu.c | 2 +- gdb/testsuite/gdb.cell/ea-cache.c | 2 +- gdb/testsuite/gdb.cell/ea-cache.exp | 6 +- gdb/testsuite/gdb.cell/ea-standalone.c | 2 +- gdb/testsuite/gdb.cell/ea-standalone.exp | 4 +- gdb/testsuite/gdb.cell/ea-test.c | 2 +- gdb/testsuite/gdb.cell/ea-test.exp | 4 +- gdb/testsuite/gdb.cell/f-regs.exp | 6 +- gdb/testsuite/gdb.cell/fork-spu.c | 2 +- gdb/testsuite/gdb.cell/fork.c | 2 +- gdb/testsuite/gdb.cell/fork.exp | 6 +- gdb/testsuite/gdb.cell/gcore.exp | 9 +- gdb/testsuite/gdb.cell/mem-access-spu.c | 2 +- gdb/testsuite/gdb.cell/mem-access.c | 2 +- gdb/testsuite/gdb.cell/mem-access.exp | 6 +- gdb/testsuite/gdb.cell/ptype.exp | 6 +- gdb/testsuite/gdb.cell/registers.exp | 6 +- gdb/testsuite/gdb.cell/size-spu.c | 2 +- gdb/testsuite/gdb.cell/size.c | 2 +- gdb/testsuite/gdb.cell/sizeof.exp | 6 +- gdb/testsuite/gdb.cell/solib-symbol.exp | 6 +- gdb/testsuite/gdb.cell/solib.exp | 6 +- gdb/testsuite/gdb.compile/compile-constvar.S | 2 +- gdb/testsuite/gdb.compile/compile-constvar.c | 2 +- gdb/testsuite/gdb.compile/compile-ifunc.c | 2 +- gdb/testsuite/gdb.compile/compile-ifunc.exp | 2 +- gdb/testsuite/gdb.compile/compile-mod.c | 2 +- gdb/testsuite/gdb.compile/compile-nodebug.c | 2 +- gdb/testsuite/gdb.compile/compile-ops.c | 2 +- gdb/testsuite/gdb.compile/compile-ops.exp | 2 +- gdb/testsuite/gdb.compile/compile-print.c | 2 +- gdb/testsuite/gdb.compile/compile-print.exp | 2 +- gdb/testsuite/gdb.compile/compile-setjmp-mod.c | 2 +- gdb/testsuite/gdb.compile/compile-setjmp.c | 2 +- gdb/testsuite/gdb.compile/compile-setjmp.exp | 2 +- gdb/testsuite/gdb.compile/compile-shlib.c | 2 +- gdb/testsuite/gdb.compile/compile-tls.c | 2 +- gdb/testsuite/gdb.compile/compile-tls.exp | 2 +- gdb/testsuite/gdb.compile/compile.c | 2 +- gdb/testsuite/gdb.compile/compile.exp | 9 +- gdb/testsuite/gdb.cp/abstract-origin.cc | 2 +- gdb/testsuite/gdb.cp/abstract-origin.exp | 2 +- gdb/testsuite/gdb.cp/ambiguous.exp | 2 +- gdb/testsuite/gdb.cp/annota2.exp | 2 +- gdb/testsuite/gdb.cp/annota3.exp | 2 +- gdb/testsuite/gdb.cp/anon-ns.cc | 2 +- gdb/testsuite/gdb.cp/anon-ns.exp | 2 +- gdb/testsuite/gdb.cp/anon-ns2.cc | 2 +- gdb/testsuite/gdb.cp/anon-struct.cc | 2 +- gdb/testsuite/gdb.cp/anon-struct.exp | 2 +- gdb/testsuite/gdb.cp/anon-union.exp | 2 +- gdb/testsuite/gdb.cp/arg-reference.cc | 2 +- gdb/testsuite/gdb.cp/arg-reference.exp | 2 +- gdb/testsuite/gdb.cp/baseenum.cc | 2 +- gdb/testsuite/gdb.cp/baseenum.exp | 2 +- gdb/testsuite/gdb.cp/bool.cc | 2 +- gdb/testsuite/gdb.cp/bool.exp | 2 +- gdb/testsuite/gdb.cp/breakpoint.cc | 4 +- gdb/testsuite/gdb.cp/breakpoint.exp | 2 +- gdb/testsuite/gdb.cp/bs15503.cc | 2 +- gdb/testsuite/gdb.cp/bs15503.exp | 2 +- gdb/testsuite/gdb.cp/call-c-1.c | 2 +- gdb/testsuite/gdb.cp/call-c.cc | 2 +- gdb/testsuite/gdb.cp/call-c.exp | 2 +- gdb/testsuite/gdb.cp/casts.exp | 2 +- gdb/testsuite/gdb.cp/casts03.cc | 2 +- gdb/testsuite/gdb.cp/chained-calls.cc | 2 +- gdb/testsuite/gdb.cp/chained-calls.exp | 2 +- gdb/testsuite/gdb.cp/class2.cc | 2 +- gdb/testsuite/gdb.cp/class2.exp | 2 +- gdb/testsuite/gdb.cp/classes.cc | 2 +- gdb/testsuite/gdb.cp/classes.exp | 2 +- gdb/testsuite/gdb.cp/cmpd-minsyms.cc | 2 +- gdb/testsuite/gdb.cp/cmpd-minsyms.exp | 2 +- gdb/testsuite/gdb.cp/converts.exp | 2 +- gdb/testsuite/gdb.cp/cp-relocate.cc | 2 +- gdb/testsuite/gdb.cp/cp-relocate.exp | 2 +- gdb/testsuite/gdb.cp/cpcompletion.exp | 46 +- gdb/testsuite/gdb.cp/cpexprs.cc | 2 +- gdb/testsuite/gdb.cp/cpexprs.exp | 2 +- gdb/testsuite/gdb.cp/cplabel.cc | 2 +- gdb/testsuite/gdb.cp/cplabel.exp | 2 +- gdb/testsuite/gdb.cp/cplusfuncs.exp | 2 +- gdb/testsuite/gdb.cp/cpsizeof.cc | 2 +- gdb/testsuite/gdb.cp/cpsizeof.exp | 2 +- gdb/testsuite/gdb.cp/ctti.exp | 2 +- gdb/testsuite/gdb.cp/cttiadd.cc | 2 +- gdb/testsuite/gdb.cp/cttiadd1.cc | 2 +- gdb/testsuite/gdb.cp/cttiadd2.cc | 2 +- gdb/testsuite/gdb.cp/cttiadd3.cc | 2 +- gdb/testsuite/gdb.cp/debug-expr.exp | 2 +- gdb/testsuite/gdb.cp/demangle.exp | 2 +- gdb/testsuite/gdb.cp/derivation.cc | 2 +- gdb/testsuite/gdb.cp/derivation.exp | 2 +- gdb/testsuite/gdb.cp/derivation2.cc | 2 +- gdb/testsuite/gdb.cp/destrprint.exp | 2 +- gdb/testsuite/gdb.cp/dispcxx.cc | 2 +- gdb/testsuite/gdb.cp/dispcxx.exp | 2 +- gdb/testsuite/gdb.cp/ena-dis-br-range.cc | 2 +- gdb/testsuite/gdb.cp/ena-dis-br-range.exp | 2 +- gdb/testsuite/gdb.cp/enum-class.cc | 2 +- gdb/testsuite/gdb.cp/enum-class.exp | 2 +- gdb/testsuite/gdb.cp/exception.cc | 2 +- gdb/testsuite/gdb.cp/exception.exp | 2 +- gdb/testsuite/gdb.cp/exceptprint.cc | 2 +- gdb/testsuite/gdb.cp/exceptprint.exp | 2 +- gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc | 2 +- gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp | 5 +- gdb/testsuite/gdb.cp/expand-sals.cc | 2 +- gdb/testsuite/gdb.cp/expand-sals.exp | 2 +- gdb/testsuite/gdb.cp/extern-c.cc | 2 +- gdb/testsuite/gdb.cp/extern-c.exp | 2 +- gdb/testsuite/gdb.cp/filename.cc | 2 +- gdb/testsuite/gdb.cp/filename.exp | 2 +- gdb/testsuite/gdb.cp/formatted-ref.cc | 2 +- gdb/testsuite/gdb.cp/formatted-ref.exp | 2 +- gdb/testsuite/gdb.cp/fpointer.exp | 2 +- gdb/testsuite/gdb.cp/gdb1355.exp | 2 +- gdb/testsuite/gdb.cp/gdb2384-base.cc | 2 +- gdb/testsuite/gdb.cp/gdb2384-base.h | 2 +- gdb/testsuite/gdb.cp/gdb2384.cc | 2 +- gdb/testsuite/gdb.cp/gdb2384.exp | 2 +- gdb/testsuite/gdb.cp/gdb2495.cc | 2 +- gdb/testsuite/gdb.cp/gdb2495.exp | 2 +- gdb/testsuite/gdb.cp/hang.exp | 2 +- gdb/testsuite/gdb.cp/impl-this.cc | 2 +- gdb/testsuite/gdb.cp/impl-this.exp | 2 +- gdb/testsuite/gdb.cp/includefile | 2 +- gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc | 2 +- gdb/testsuite/gdb.cp/infcall-dlopen.cc | 2 +- gdb/testsuite/gdb.cp/infcall-dlopen.exp | 2 +- gdb/testsuite/gdb.cp/inherit.exp | 2 +- gdb/testsuite/gdb.cp/iostream.cc | 2 +- gdb/testsuite/gdb.cp/iostream.exp | 2 +- gdb/testsuite/gdb.cp/koenig.exp | 2 +- gdb/testsuite/gdb.cp/local-static.c | 2 +- gdb/testsuite/gdb.cp/local-static.exp | 2 +- gdb/testsuite/gdb.cp/local.exp | 2 +- gdb/testsuite/gdb.cp/m-data.exp | 2 +- gdb/testsuite/gdb.cp/m-static.exp | 2 +- gdb/testsuite/gdb.cp/maint.exp | 2 +- gdb/testsuite/gdb.cp/mb-ctor.exp | 2 +- gdb/testsuite/gdb.cp/mb-inline.exp | 2 +- gdb/testsuite/gdb.cp/mb-inline.h | 2 +- gdb/testsuite/gdb.cp/mb-inline1.cc | 2 +- gdb/testsuite/gdb.cp/mb-inline2.cc | 2 +- gdb/testsuite/gdb.cp/mb-templates.exp | 2 +- gdb/testsuite/gdb.cp/member-name.cc | 2 +- gdb/testsuite/gdb.cp/member-name.exp | 2 +- gdb/testsuite/gdb.cp/member-ptr.cc | 2 +- gdb/testsuite/gdb.cp/member-ptr.exp | 2 +- gdb/testsuite/gdb.cp/meth-typedefs.cc | 2 +- gdb/testsuite/gdb.cp/meth-typedefs.exp | 41 +- gdb/testsuite/gdb.cp/method.exp | 2 +- gdb/testsuite/gdb.cp/method2.exp | 2 +- gdb/testsuite/gdb.cp/minsym-fallback-main.cc | 2 +- gdb/testsuite/gdb.cp/minsym-fallback.cc | 2 +- gdb/testsuite/gdb.cp/minsym-fallback.exp | 2 +- gdb/testsuite/gdb.cp/minsym-fallback.h | 2 +- gdb/testsuite/gdb.cp/misc.cc | 2 +- gdb/testsuite/gdb.cp/misc.exp | 2 +- gdb/testsuite/gdb.cp/namelessclass.S | 2 +- gdb/testsuite/gdb.cp/namelessclass.cc | 2 +- gdb/testsuite/gdb.cp/namelessclass.exp | 2 +- gdb/testsuite/gdb.cp/namespace-enum.exp | 2 +- gdb/testsuite/gdb.cp/namespace-nested-import.exp | 2 +- gdb/testsuite/gdb.cp/namespace.exp | 4 +- gdb/testsuite/gdb.cp/namespace1.cc | 2 +- gdb/testsuite/gdb.cp/nested-types.cc | 628 + gdb/testsuite/gdb.cp/nested-types.exp | 322 + gdb/testsuite/gdb.cp/nextoverthrow.cc | 2 +- gdb/testsuite/gdb.cp/nextoverthrow.exp | 2 +- gdb/testsuite/gdb.cp/no-dmgl-verbose.cc | 2 +- gdb/testsuite/gdb.cp/no-dmgl-verbose.exp | 2 +- gdb/testsuite/gdb.cp/non-trivial-retval.cc | 2 +- gdb/testsuite/gdb.cp/non-trivial-retval.exp | 2 +- gdb/testsuite/gdb.cp/noparam.cc | 2 +- gdb/testsuite/gdb.cp/noparam.exp | 2 +- gdb/testsuite/gdb.cp/nsalias.cc | 2 +- gdb/testsuite/gdb.cp/nsalias.exp | 2 +- gdb/testsuite/gdb.cp/nsdecl.exp | 2 +- gdb/testsuite/gdb.cp/nsimport.exp | 2 +- gdb/testsuite/gdb.cp/nsnested.exp | 2 +- gdb/testsuite/gdb.cp/nsnoimports.exp | 2 +- gdb/testsuite/gdb.cp/nsrecurs.exp | 2 +- gdb/testsuite/gdb.cp/nsstress.exp | 2 +- gdb/testsuite/gdb.cp/nsusing.exp | 2 +- gdb/testsuite/gdb.cp/operator.exp | 2 +- gdb/testsuite/gdb.cp/oranking.exp | 2 +- gdb/testsuite/gdb.cp/overload-const.cc | 2 +- gdb/testsuite/gdb.cp/overload-const.exp | 2 +- gdb/testsuite/gdb.cp/overload.exp | 2 +- gdb/testsuite/gdb.cp/ovldbreak.exp | 2 +- gdb/testsuite/gdb.cp/ovsrch.exp | 2 +- gdb/testsuite/gdb.cp/ovsrch.h | 2 +- gdb/testsuite/gdb.cp/ovsrch1.cc | 2 +- gdb/testsuite/gdb.cp/ovsrch2.cc | 2 +- gdb/testsuite/gdb.cp/ovsrch3.cc | 2 +- gdb/testsuite/gdb.cp/ovsrch4.cc | 2 +- gdb/testsuite/gdb.cp/paren-type.cc | 2 +- gdb/testsuite/gdb.cp/paren-type.exp | 2 +- gdb/testsuite/gdb.cp/parse-lang.cc | 2 +- gdb/testsuite/gdb.cp/parse-lang.exp | 2 +- gdb/testsuite/gdb.cp/pass-by-ref.cc | 2 +- gdb/testsuite/gdb.cp/pass-by-ref.exp | 2 +- gdb/testsuite/gdb.cp/pr-1023.exp | 2 +- gdb/testsuite/gdb.cp/pr-1210.exp | 2 +- gdb/testsuite/gdb.cp/pr-574.cc | 2 +- gdb/testsuite/gdb.cp/pr-574.exp | 2 +- gdb/testsuite/gdb.cp/pr10687.exp | 2 +- gdb/testsuite/gdb.cp/pr10728.exp | 2 +- gdb/testsuite/gdb.cp/pr12028.exp | 2 +- gdb/testsuite/gdb.cp/pr17132.cc | 2 +- gdb/testsuite/gdb.cp/pr17132.exp | 2 +- gdb/testsuite/gdb.cp/pr17494.cc | 2 +- gdb/testsuite/gdb.cp/pr17494.exp | 2 +- gdb/testsuite/gdb.cp/pr9067.exp | 2 +- gdb/testsuite/gdb.cp/pr9167.exp | 2 +- gdb/testsuite/gdb.cp/pr9594.cc | 13 + gdb/testsuite/gdb.cp/pr9631.cc | 2 +- gdb/testsuite/gdb.cp/pr9631.exp | 2 +- gdb/testsuite/gdb.cp/printmethod.cc | 2 +- gdb/testsuite/gdb.cp/printmethod.exp | 2 +- gdb/testsuite/gdb.cp/psmang.exp | 2 +- gdb/testsuite/gdb.cp/psmang1.cc | 2 +- gdb/testsuite/gdb.cp/psmang2.cc | 2 +- gdb/testsuite/gdb.cp/psymtab-parameter.cc | 3 +- gdb/testsuite/gdb.cp/psymtab-parameter.exp | 2 +- gdb/testsuite/gdb.cp/ptype-cv-cp.cc | 2 +- gdb/testsuite/gdb.cp/ptype-cv-cp.exp | 2 +- gdb/testsuite/gdb.cp/ptype-flags.cc | 2 +- gdb/testsuite/gdb.cp/ptype-flags.exp | 2 +- gdb/testsuite/gdb.cp/punctuator.exp | 2 +- gdb/testsuite/gdb.cp/re-set-overloaded.cc | 2 +- gdb/testsuite/gdb.cp/re-set-overloaded.exp | 2 +- gdb/testsuite/gdb.cp/readnow-language.cc | 2 +- gdb/testsuite/gdb.cp/readnow-language.exp | 2 +- gdb/testsuite/gdb.cp/ref-params.cc | 2 +- gdb/testsuite/gdb.cp/ref-params.exp | 2 +- gdb/testsuite/gdb.cp/ref-types.cc | 2 +- gdb/testsuite/gdb.cp/ref-types.exp | 2 +- gdb/testsuite/gdb.cp/rtti.exp | 2 +- gdb/testsuite/gdb.cp/rtti.h | 2 +- gdb/testsuite/gdb.cp/rtti1.cc | 2 +- gdb/testsuite/gdb.cp/rtti2.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-casts.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-casts.exp | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-overload.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-params.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-types.cc | 2 +- gdb/testsuite/gdb.cp/rvalue-ref-types.exp | 2 +- gdb/testsuite/gdb.cp/save-bp-qualified.cc | 40 + gdb/testsuite/gdb.cp/save-bp-qualified.exp | 74 + gdb/testsuite/gdb.cp/scope-err.cc | 2 +- gdb/testsuite/gdb.cp/scope-err.exp | 2 +- gdb/testsuite/gdb.cp/shadow.cc | 1 + gdb/testsuite/gdb.cp/shadow.exp | 2 +- gdb/testsuite/gdb.cp/smartp.cc | 2 +- gdb/testsuite/gdb.cp/smartp.exp | 2 +- gdb/testsuite/gdb.cp/static-method.cc | 2 +- gdb/testsuite/gdb.cp/static-method.exp | 2 +- gdb/testsuite/gdb.cp/static-print-quit.cc | 2 +- gdb/testsuite/gdb.cp/static-print-quit.exp | 2 +- gdb/testsuite/gdb.cp/temargs.cc | 2 +- gdb/testsuite/gdb.cp/temargs.exp | 2 +- gdb/testsuite/gdb.cp/templates.exp | 2 +- gdb/testsuite/gdb.cp/try_catch.cc | 2 +- gdb/testsuite/gdb.cp/try_catch.exp | 2 +- gdb/testsuite/gdb.cp/typedef-operator.cc | 2 +- gdb/testsuite/gdb.cp/typedef-operator.exp | 2 +- gdb/testsuite/gdb.cp/typeid.cc | 2 +- gdb/testsuite/gdb.cp/typeid.exp | 2 +- gdb/testsuite/gdb.cp/userdef.cc | 2 +- gdb/testsuite/gdb.cp/userdef.exp | 2 +- gdb/testsuite/gdb.cp/using-crash.cc | 2 +- gdb/testsuite/gdb.cp/using-crash.exp | 2 +- gdb/testsuite/gdb.cp/var-tag-2.cc | 2 +- gdb/testsuite/gdb.cp/var-tag-3.cc | 2 +- gdb/testsuite/gdb.cp/var-tag-4.cc | 2 +- gdb/testsuite/gdb.cp/var-tag.cc | 2 +- gdb/testsuite/gdb.cp/var-tag.exp | 2 +- gdb/testsuite/gdb.cp/virtbase.exp | 2 +- gdb/testsuite/gdb.cp/virtfunc.cc | 2 +- gdb/testsuite/gdb.cp/virtfunc.exp | 2 +- gdb/testsuite/gdb.cp/virtfunc2.cc | 2 +- gdb/testsuite/gdb.cp/virtfunc2.exp | 2 +- gdb/testsuite/gdb.cp/vla-cxx.cc | 2 +- gdb/testsuite/gdb.cp/vla-cxx.exp | 2 +- gdb/testsuite/gdb.cp/wide_char_types.c | 2 +- gdb/testsuite/gdb.cp/wide_char_types.exp | 2 +- gdb/testsuite/gdb.disasm/am33.exp | 2 +- gdb/testsuite/gdb.disasm/disassembler-options.exp | 2 +- gdb/testsuite/gdb.disasm/h8300s.exp | 2 +- gdb/testsuite/gdb.disasm/hppa.exp | 2 +- gdb/testsuite/gdb.disasm/mn10300.exp | 2 +- gdb/testsuite/gdb.disasm/sh3.exp | 2 +- gdb/testsuite/gdb.disasm/t01_mov.exp | 2 +- gdb/testsuite/gdb.disasm/t02_mova.exp | 2 +- gdb/testsuite/gdb.disasm/t03_add.exp | 2 +- gdb/testsuite/gdb.disasm/t04_sub.exp | 2 +- gdb/testsuite/gdb.disasm/t05_cmp.exp | 2 +- gdb/testsuite/gdb.disasm/t06_ari2.exp | 2 +- gdb/testsuite/gdb.disasm/t07_ari3.exp | 2 +- gdb/testsuite/gdb.disasm/t08_or.exp | 2 +- gdb/testsuite/gdb.disasm/t09_xor.exp | 2 +- gdb/testsuite/gdb.disasm/t10_and.exp | 2 +- gdb/testsuite/gdb.disasm/t11_logs.exp | 2 +- gdb/testsuite/gdb.disasm/t12_bit.exp | 2 +- gdb/testsuite/gdb.disasm/t13_otr.exp | 2 +- gdb/testsuite/gdb.dlang/circular.c | 2 +- gdb/testsuite/gdb.dlang/circular.exp | 2 +- gdb/testsuite/gdb.dlang/debug-expr.exp | 2 +- gdb/testsuite/gdb.dlang/demangle.exp | 2 +- gdb/testsuite/gdb.dlang/expression.exp | 2 +- gdb/testsuite/gdb.dlang/primitive-types.exp | 2 +- gdb/testsuite/gdb.dlang/properties.exp | 2 +- gdb/testsuite/gdb.dlang/watch-loc.c | 22 +- gdb/testsuite/gdb.dlang/watch-loc.exp | 2 +- gdb/testsuite/gdb.dwarf2/ada-valprint-error.c | 23 + gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp | 115 + gdb/testsuite/gdb.dwarf2/arr-stride.c | 2 +- gdb/testsuite/gdb.dwarf2/arr-stride.exp | 2 +- gdb/testsuite/gdb.dwarf2/arr-subrange.c | 2 +- gdb/testsuite/gdb.dwarf2/arr-subrange.exp | 2 +- gdb/testsuite/gdb.dwarf2/atomic-type.exp | 2 +- gdb/testsuite/gdb.dwarf2/atomic.c | 2 +- gdb/testsuite/gdb.dwarf2/bad-regnum.c | 2 +- gdb/testsuite/gdb.dwarf2/bad-regnum.exp | 2 +- .../gdb.dwarf2/bitfield-parent-optimized-out.exp | 2 +- gdb/testsuite/gdb.dwarf2/callframecfa.S | 2 +- gdb/testsuite/gdb.dwarf2/callframecfa.exp | 2 +- gdb/testsuite/gdb.dwarf2/clztest.S | 2 +- gdb/testsuite/gdb.dwarf2/clztest.exp | 2 +- gdb/testsuite/gdb.dwarf2/comp-unit-lang.c | 2 +- gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp | 2 +- gdb/testsuite/gdb.dwarf2/corrupt.c | 2 +- gdb/testsuite/gdb.dwarf2/corrupt.exp | 2 +- gdb/testsuite/gdb.dwarf2/count.exp | 2 +- gdb/testsuite/gdb.dwarf2/data-loc.c | 2 +- gdb/testsuite/gdb.dwarf2/data-loc.exp | 2 +- gdb/testsuite/gdb.dwarf2/dup-psym.S | 2 +- gdb/testsuite/gdb.dwarf2/dup-psym.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp | 2 +- .../gdb.dwarf2/dw2-bad-mips-linkage-name.c | 2 +- .../gdb.dwarf2/dw2-bad-mips-linkage-name.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S | 2 +- .../gdb.dwarf2/dw2-bad-parameter-type.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-basic.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-basic.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp | 2 +- .../gdb.dwarf2/dw2-case-insensitive-debug.S | 20 +- gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-common-block.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-common-block.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-compressed.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-compressed.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-const.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-const.exp | 2 +- .../gdb.dwarf2/dw2-cp-infcall-ref-static-main.c | 2 +- .../gdb.dwarf2/dw2-cp-infcall-ref-static.S | 2 +- .../gdb.dwarf2/dw2-cp-infcall-ref-static.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-cu-size.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S | 2 +- .../gdb.dwarf2/dw2-double-set-die-type.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-entry-value.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-error.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-error.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-error.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-filename.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-filename.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-icycle.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-icycle.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-icycle.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inheritance.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-break.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-param.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-intercu.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-intercu.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-intermix.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-intermix.exp | 2 +- .../gdb.dwarf2/dw2-lexical-block-bare.exp | 2 +- .../gdb.dwarf2/dw2-linkage-name-trust-main.cc | 2 +- gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S | 2 +- .../gdb.dwarf2/dw2-linkage-name-trust.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp | 2 +- .../gdb.dwarf2/dw2-namespaceless-anonymous.S | 2 +- .../gdb.dwarf2/dw2-namespaceless-anonymous.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-noloc.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-noloc.exp | 2 +- .../gdb.dwarf2/dw2-objfile-overlap-inner.S | 2 +- .../gdb.dwarf2/dw2-objfile-overlap-outer.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-call.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-call.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-param-error.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-param-error.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-producer.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-producer.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges2.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges3.c | 2 +- .../gdb.dwarf2/dw2-ref-missing-frame-func.c | 2 +- .../gdb.dwarf2/dw2-ref-missing-frame-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-restore.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-restore.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-restrict.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-restrict.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-restrict.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp | 2 +- .../gdb.dwarf2/dw2-single-line-discriminators.S | 2 +- .../gdb.dwarf2/dw2-single-line-discriminators.c | 2 +- .../gdb.dwarf2/dw2-single-line-discriminators.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-strp.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-strp.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c | 2 +- .../gdb.dwarf2/dw2-undefined-ret-addr.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c | 2 +- gdb/testsuite/gdb.dwarf2/dw2-unresolved.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S | 2 +- gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp | 2 +- gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c | 2 +- gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp | 2 +- gdb/testsuite/gdb.dwarf2/dwp-symlink.c | 2 +- gdb/testsuite/gdb.dwarf2/dwp-symlink.exp | 2 +- gdb/testsuite/gdb.dwarf2/dwz.exp | 2 +- gdb/testsuite/gdb.dwarf2/dwzbuildid.exp | 2 +- gdb/testsuite/gdb.dwarf2/dynarr-ptr.c | 2 +- gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp | 2 +- gdb/testsuite/gdb.dwarf2/enum-type.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-base.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-base.c | 2 +- gdb/testsuite/gdb.dwarf2/fission-base.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-loclists.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-loclists.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-mix.c | 2 +- gdb/testsuite/gdb.dwarf2/fission-mix.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-mix.h | 2 +- gdb/testsuite/gdb.dwarf2/fission-mix2.c | 2 +- gdb/testsuite/gdb.dwarf2/fission-multi-cu.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp | 2 +- gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c | 2 +- gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c | 2 +- gdb/testsuite/gdb.dwarf2/fission-reread.S | 2 +- gdb/testsuite/gdb.dwarf2/fission-reread.exp | 2 +- gdb/testsuite/gdb.dwarf2/formdata16.c | 2 +- gdb/testsuite/gdb.dwarf2/formdata16.exp | 2 +- gdb/testsuite/gdb.dwarf2/gdb-index.exp | 21 +- gdb/testsuite/gdb.dwarf2/implptr-64bit.exp | 2 +- gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp | 2 +- gdb/testsuite/gdb.dwarf2/implptr.c | 2 +- gdb/testsuite/gdb.dwarf2/implptr.exp | 2 +- gdb/testsuite/gdb.dwarf2/implptrconst.c | 2 +- gdb/testsuite/gdb.dwarf2/implptrconst.exp | 2 +- gdb/testsuite/gdb.dwarf2/implptrpiece.exp | 2 +- gdb/testsuite/gdb.dwarf2/implref-array.c | 2 +- gdb/testsuite/gdb.dwarf2/implref-array.exp | 2 +- gdb/testsuite/gdb.dwarf2/implref-const.exp | 2 +- gdb/testsuite/gdb.dwarf2/implref-global.c | 2 +- gdb/testsuite/gdb.dwarf2/implref-global.exp | 2 +- gdb/testsuite/gdb.dwarf2/implref-struct.c | 2 +- gdb/testsuite/gdb.dwarf2/implref-struct.exp | 2 +- .../gdb.dwarf2/info-locals-optimized-out.c | 23 + .../gdb.dwarf2/info-locals-optimized-out.exp | 74 + gdb/testsuite/gdb.dwarf2/mac-fileno.S | 2 +- gdb/testsuite/gdb.dwarf2/mac-fileno.exp | 2 +- gdb/testsuite/gdb.dwarf2/main-subprogram.c | 2 +- gdb/testsuite/gdb.dwarf2/main-subprogram.exp | 2 +- gdb/testsuite/gdb.dwarf2/main.c | 2 +- gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S | 2 +- gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp | 2 +- gdb/testsuite/gdb.dwarf2/method-ptr.cc | 2 +- gdb/testsuite/gdb.dwarf2/method-ptr.exp | 2 +- gdb/testsuite/gdb.dwarf2/missing-sig-type.exp | 2 +- gdb/testsuite/gdb.dwarf2/nonvar-access.exp | 2 +- gdb/testsuite/gdb.dwarf2/nostaticblock.exp | 2 +- gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c | 2 +- gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c | 2 +- gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp | 2 +- gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S | 2 +- gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c | 2 +- gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp | 2 +- gdb/testsuite/gdb.dwarf2/pieces.S | 2 +- gdb/testsuite/gdb.dwarf2/pieces.c | 2 +- gdb/testsuite/gdb.dwarf2/pieces.exp | 2 +- gdb/testsuite/gdb.dwarf2/pr10770.exp | 8 +- gdb/testsuite/gdb.dwarf2/pr11465.S | 2 +- gdb/testsuite/gdb.dwarf2/pr11465.exp | 2 +- gdb/testsuite/gdb.dwarf2/pr13961.S | 2 +- gdb/testsuite/gdb.dwarf2/pr13961.exp | 2 +- gdb/testsuite/gdb.dwarf2/shortpiece.exp | 2 +- gdb/testsuite/gdb.dwarf2/staticvirtual.exp | 2 +- gdb/testsuite/gdb.dwarf2/subrange.exp | 2 +- gdb/testsuite/gdb.dwarf2/symtab-producer.exp | 2 +- gdb/testsuite/gdb.dwarf2/trace-crash.exp | 2 +- gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S | 2 +- gdb/testsuite/gdb.dwarf2/typeddwarf.S | 2 +- gdb/testsuite/gdb.dwarf2/typeddwarf.exp | 2 +- gdb/testsuite/gdb.dwarf2/valop.S | 2 +- gdb/testsuite/gdb.dwarf2/valop.exp | 2 +- gdb/testsuite/gdb.dwarf2/var-access.c | 2 +- gdb/testsuite/gdb.dwarf2/var-access.exp | 2 +- gdb/testsuite/gdb.dwarf2/watch-notconst.c | 2 +- gdb/testsuite/gdb.dwarf2/watch-notconst.exp | 2 +- gdb/testsuite/gdb.dwarf2/watch-notconst2.S | 2 +- gdb/testsuite/gdb.dwarf2/watch-notconst2.c | 2 +- gdb/testsuite/gdb.fortran/array-element.exp | 2 +- gdb/testsuite/gdb.fortran/array-element.f | 2 +- gdb/testsuite/gdb.fortran/charset.exp | 2 +- gdb/testsuite/gdb.fortran/common-block.exp | 5 +- gdb/testsuite/gdb.fortran/common-block.f90 | 5 +- gdb/testsuite/gdb.fortran/complex.exp | 2 +- gdb/testsuite/gdb.fortran/complex.f | 2 +- .../gdb.fortran/derived-type-function.exp | 2 +- .../gdb.fortran/derived-type-function.f90 | 2 +- gdb/testsuite/gdb.fortran/derived-type.exp | 2 +- gdb/testsuite/gdb.fortran/derived-type.f90 | 2 +- gdb/testsuite/gdb.fortran/exprs.exp | 2 +- gdb/testsuite/gdb.fortran/library-module-lib.f90 | 2 +- gdb/testsuite/gdb.fortran/library-module-main.f90 | 2 +- gdb/testsuite/gdb.fortran/library-module.exp | 2 +- gdb/testsuite/gdb.fortran/logical.exp | 5 +- gdb/testsuite/gdb.fortran/logical.f90 | 2 +- gdb/testsuite/gdb.fortran/module.exp | 2 +- gdb/testsuite/gdb.fortran/module.f90 | 2 +- gdb/testsuite/gdb.fortran/multi-dim.exp | 2 +- gdb/testsuite/gdb.fortran/multi-dim.f90 | 2 +- gdb/testsuite/gdb.fortran/nested-funcs.exp | 2 +- gdb/testsuite/gdb.fortran/nested-funcs.f90 | 2 +- gdb/testsuite/gdb.fortran/print-formatted.exp | 2 +- gdb/testsuite/gdb.fortran/print-formatted.f90 | 2 +- gdb/testsuite/gdb.fortran/printing-types.exp | 2 +- gdb/testsuite/gdb.fortran/printing-types.f90 | 2 +- gdb/testsuite/gdb.fortran/ptr-indentation.exp | 2 +- gdb/testsuite/gdb.fortran/ptr-indentation.f90 | 2 +- gdb/testsuite/gdb.fortran/subarray.exp | 2 +- gdb/testsuite/gdb.fortran/subarray.f | 2 +- gdb/testsuite/gdb.fortran/type.f90 | 2 +- gdb/testsuite/gdb.fortran/types.exp | 2 +- gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp | 2 +- gdb/testsuite/gdb.fortran/vla-datatypes.exp | 2 +- gdb/testsuite/gdb.fortran/vla-datatypes.f90 | 5 +- gdb/testsuite/gdb.fortran/vla-history.exp | 2 +- gdb/testsuite/gdb.fortran/vla-ptr-info.exp | 2 +- gdb/testsuite/gdb.fortran/vla-ptype-sub.exp | 2 +- gdb/testsuite/gdb.fortran/vla-ptype.exp | 2 +- gdb/testsuite/gdb.fortran/vla-sizeof.exp | 2 +- gdb/testsuite/gdb.fortran/vla-sub.f90 | 5 +- gdb/testsuite/gdb.fortran/vla-type.exp | 2 +- gdb/testsuite/gdb.fortran/vla-type.f90 | 2 +- .../gdb.fortran/vla-value-sub-arbitrary.exp | 2 +- gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp | 2 +- gdb/testsuite/gdb.fortran/vla-value-sub.exp | 2 +- gdb/testsuite/gdb.fortran/vla-value.exp | 2 +- gdb/testsuite/gdb.fortran/vla.f90 | 2 +- gdb/testsuite/gdb.fortran/whatis_type.exp | 2 +- gdb/testsuite/gdb.gdb/complaints.exp | 29 +- gdb/testsuite/gdb.gdb/observer.exp | 2 +- gdb/testsuite/gdb.gdb/python-interrupts.exp | 2 +- gdb/testsuite/gdb.gdb/python-selftest.exp | 2 +- gdb/testsuite/gdb.gdb/selftest.exp | 2 +- gdb/testsuite/gdb.gdb/unittest.exp | 19 +- gdb/testsuite/gdb.go/basic-types.exp | 2 +- gdb/testsuite/gdb.go/chan.exp | 2 +- gdb/testsuite/gdb.go/handcall.exp | 2 +- gdb/testsuite/gdb.go/hello.exp | 2 +- gdb/testsuite/gdb.go/integers.exp | 2 +- gdb/testsuite/gdb.go/methods.exp | 2 +- gdb/testsuite/gdb.go/package.exp | 2 +- gdb/testsuite/gdb.go/print.exp | 2 +- gdb/testsuite/gdb.go/strings.exp | 2 +- gdb/testsuite/gdb.go/types.exp | 2 +- gdb/testsuite/gdb.go/unsafe.exp | 2 +- gdb/testsuite/gdb.guile/guile.exp | 2 +- gdb/testsuite/gdb.guile/scm-arch.c | 2 +- gdb/testsuite/gdb.guile/scm-arch.exp | 2 +- gdb/testsuite/gdb.guile/scm-block.c | 2 +- gdb/testsuite/gdb.guile/scm-block.exp | 2 +- gdb/testsuite/gdb.guile/scm-breakpoint.c | 2 +- gdb/testsuite/gdb.guile/scm-breakpoint.exp | 2 +- gdb/testsuite/gdb.guile/scm-cmd.c | 2 +- gdb/testsuite/gdb.guile/scm-cmd.exp | 2 +- gdb/testsuite/gdb.guile/scm-disasm.c | 2 +- gdb/testsuite/gdb.guile/scm-disasm.exp | 2 +- gdb/testsuite/gdb.guile/scm-equal.c | 2 +- gdb/testsuite/gdb.guile/scm-equal.exp | 2 +- gdb/testsuite/gdb.guile/scm-error-1.scm | 2 +- gdb/testsuite/gdb.guile/scm-error-2.scm | 2 +- gdb/testsuite/gdb.guile/scm-error.exp | 2 +- gdb/testsuite/gdb.guile/scm-frame-args.c | 2 +- gdb/testsuite/gdb.guile/scm-frame-args.exp | 2 +- gdb/testsuite/gdb.guile/scm-frame-args.scm | 2 +- gdb/testsuite/gdb.guile/scm-frame-inline.c | 2 +- gdb/testsuite/gdb.guile/scm-frame-inline.exp | 2 +- gdb/testsuite/gdb.guile/scm-frame.exp | 2 +- gdb/testsuite/gdb.guile/scm-gsmob.exp | 2 +- gdb/testsuite/gdb.guile/scm-iterator.c | 2 +- gdb/testsuite/gdb.guile/scm-iterator.exp | 2 +- gdb/testsuite/gdb.guile/scm-lazy-string.c | 2 +- gdb/testsuite/gdb.guile/scm-lazy-string.exp | 2 +- gdb/testsuite/gdb.guile/scm-math.c | 2 +- gdb/testsuite/gdb.guile/scm-math.exp | 2 +- gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in | 2 +- gdb/testsuite/gdb.guile/scm-objfile-script.c | 2 +- gdb/testsuite/gdb.guile/scm-objfile-script.exp | 2 +- gdb/testsuite/gdb.guile/scm-objfile.c | 2 +- gdb/testsuite/gdb.guile/scm-objfile.exp | 2 +- gdb/testsuite/gdb.guile/scm-parameter.exp | 2 +- gdb/testsuite/gdb.guile/scm-ports.c | 2 +- gdb/testsuite/gdb.guile/scm-ports.exp | 4 +- gdb/testsuite/gdb.guile/scm-pretty-print.c | 2 +- gdb/testsuite/gdb.guile/scm-pretty-print.exp | 2 +- gdb/testsuite/gdb.guile/scm-pretty-print.scm | 2 +- gdb/testsuite/gdb.guile/scm-progspace.c | 2 +- gdb/testsuite/gdb.guile/scm-progspace.exp | 2 +- gdb/testsuite/gdb.guile/scm-section-script.c | 2 +- gdb/testsuite/gdb.guile/scm-section-script.exp | 2 +- gdb/testsuite/gdb.guile/scm-section-script.scm | 2 +- gdb/testsuite/gdb.guile/scm-symbol.c | 2 +- gdb/testsuite/gdb.guile/scm-symbol.exp | 2 +- gdb/testsuite/gdb.guile/scm-symtab-2.c | 2 +- gdb/testsuite/gdb.guile/scm-symtab.c | 2 +- gdb/testsuite/gdb.guile/scm-symtab.exp | 2 +- gdb/testsuite/gdb.guile/scm-type.c | 2 +- gdb/testsuite/gdb.guile/scm-type.exp | 2 +- gdb/testsuite/gdb.guile/scm-value-cc.cc | 2 +- gdb/testsuite/gdb.guile/scm-value-cc.exp | 2 +- gdb/testsuite/gdb.guile/scm-value.c | 2 +- gdb/testsuite/gdb.guile/scm-value.exp | 2 +- gdb/testsuite/gdb.guile/source2.scm | 2 +- gdb/testsuite/gdb.guile/types-module.cc | 2 +- gdb/testsuite/gdb.guile/types-module.exp | 2 +- gdb/testsuite/gdb.linespec/3explicit.c | 2 +- gdb/testsuite/gdb.linespec/base/one/header.h | 2 +- gdb/testsuite/gdb.linespec/base/two/header.h | 2 +- gdb/testsuite/gdb.linespec/break-ask.exp | 2 +- gdb/testsuite/gdb.linespec/break-asm-file.c | 2 +- gdb/testsuite/gdb.linespec/break-asm-file.exp | 2 +- gdb/testsuite/gdb.linespec/break-asm-file0.s | 2 +- gdb/testsuite/gdb.linespec/break-asm-file1.s | 2 +- gdb/testsuite/gdb.linespec/cpcompletion.exp | 957 + gdb/testsuite/gdb.linespec/cpexplicit.cc | 2 +- gdb/testsuite/gdb.linespec/cpexplicit.exp | 2 +- gdb/testsuite/gdb.linespec/cpls-abi-tag.cc | 93 + gdb/testsuite/gdb.linespec/cpls-abi-tag.exp | 286 + gdb/testsuite/gdb.linespec/cpls-hyphen.cc | 33 + gdb/testsuite/gdb.linespec/cpls-ops.cc | 254 + gdb/testsuite/gdb.linespec/cpls-ops.exp | 574 + gdb/testsuite/gdb.linespec/cpls.cc | 386 + gdb/testsuite/gdb.linespec/cpls2.cc | 46 + gdb/testsuite/gdb.linespec/explicit.c | 2 +- gdb/testsuite/gdb.linespec/explicit.exp | 226 +- gdb/testsuite/gdb.linespec/explicit2.c | 2 +- gdb/testsuite/gdb.linespec/keywords.c | 2 +- gdb/testsuite/gdb.linespec/keywords.exp | 2 +- gdb/testsuite/gdb.linespec/linespec.exp | 2 +- gdb/testsuite/gdb.linespec/ls-dollar.cc | 2 +- gdb/testsuite/gdb.linespec/ls-dollar.exp | 2 +- gdb/testsuite/gdb.linespec/ls-errs.c | 2 +- gdb/testsuite/gdb.linespec/ls-errs.exp | 5 +- gdb/testsuite/gdb.linespec/macro-relative.c | 2 +- gdb/testsuite/gdb.linespec/macro-relative.exp | 2 +- gdb/testsuite/gdb.linespec/skip-two.exp | 2 +- gdb/testsuite/gdb.linespec/thread.c | 2 +- gdb/testsuite/gdb.linespec/thread.exp | 2 +- gdb/testsuite/gdb.mi/array.f | 2 +- gdb/testsuite/gdb.mi/basics.c | 4 +- gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c | 23 +- gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c | 2 +- gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S | 2 +- gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp | 2 +- gdb/testsuite/gdb.mi/gdb2549.exp | 2 +- gdb/testsuite/gdb.mi/gdb669.exp | 2 +- gdb/testsuite/gdb.mi/gdb680.exp | 2 +- gdb/testsuite/gdb.mi/gdb701.exp | 2 +- gdb/testsuite/gdb.mi/gdb792.exp | 2 +- .../gdb.mi/list-thread-groups-available.c | 2 +- .../gdb.mi/list-thread-groups-available.exp | 2 +- gdb/testsuite/gdb.mi/mi-async-run.c | 2 +- gdb/testsuite/gdb.mi/mi-async-run.exp | 2 +- gdb/testsuite/gdb.mi/mi-async.exp | 2 +- gdb/testsuite/gdb.mi/mi-basics.exp | 2 +- gdb/testsuite/gdb.mi/mi-break.exp | 13 +- gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp | 2 +- gdb/testsuite/gdb.mi/mi-catch-load-so.c | 2 +- gdb/testsuite/gdb.mi/mi-catch-load.c | 2 +- gdb/testsuite/gdb.mi/mi-catch-load.exp | 2 +- gdb/testsuite/gdb.mi/mi-cli.exp | 2 +- gdb/testsuite/gdb.mi/mi-cmd-error.exp | 2 +- gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp | 2 +- .../gdb.mi/mi-condbreak-call-thr-state-mt.c | 2 +- .../gdb.mi/mi-condbreak-call-thr-state-st.c | 2 +- gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c | 2 +- .../gdb.mi/mi-condbreak-call-thr-state.exp | 2 +- gdb/testsuite/gdb.mi/mi-console.exp | 2 +- gdb/testsuite/gdb.mi/mi-detach.exp | 2 +- gdb/testsuite/gdb.mi/mi-disassemble.exp | 2 +- gdb/testsuite/gdb.mi/mi-dprintf-pending.c | 2 +- gdb/testsuite/gdb.mi/mi-dprintf-pending.exp | 2 +- gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c | 2 +- gdb/testsuite/gdb.mi/mi-dprintf.c | 2 +- gdb/testsuite/gdb.mi/mi-dprintf.exp | 2 +- gdb/testsuite/gdb.mi/mi-editing.exp | 2 +- gdb/testsuite/gdb.mi/mi-eval.exp | 2 +- gdb/testsuite/gdb.mi/mi-exec-run.exp | 2 +- gdb/testsuite/gdb.mi/mi-exit-code.c | 2 +- gdb/testsuite/gdb.mi/mi-exit-code.exp | 2 +- gdb/testsuite/gdb.mi/mi-file-transfer.exp | 2 +- gdb/testsuite/gdb.mi/mi-file.exp | 2 +- gdb/testsuite/gdb.mi/mi-fill-memory.exp | 2 +- gdb/testsuite/gdb.mi/mi-frame-regs.exp | 186 + gdb/testsuite/gdb.mi/mi-fullname-deleted.exp | 2 +- gdb/testsuite/gdb.mi/mi-hack-cli.exp | 2 +- gdb/testsuite/gdb.mi/mi-i-cmd.exp | 2 +- gdb/testsuite/gdb.mi/mi-info-os.exp | 2 +- .../gdb.mi/mi-inheritance-syntax-error.exp | 2 +- gdb/testsuite/gdb.mi/mi-language.exp | 2 +- gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc | 2 +- gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp | 2 +- gdb/testsuite/gdb.mi/mi-logging.exp | 2 +- gdb/testsuite/gdb.mi/mi-memory-changed.exp | 2 +- gdb/testsuite/gdb.mi/mi-nonstop-exit.exp | 2 +- gdb/testsuite/gdb.mi/mi-nonstop.exp | 2 +- gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp | 2 +- gdb/testsuite/gdb.mi/mi-nsintrall.exp | 2 +- gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 2 +- gdb/testsuite/gdb.mi/mi-nsthrexec.exp | 2 +- gdb/testsuite/gdb.mi/mi-pending.c | 2 +- gdb/testsuite/gdb.mi/mi-pending.exp | 2 +- gdb/testsuite/gdb.mi/mi-pendshr.c | 2 +- gdb/testsuite/gdb.mi/mi-pendshr2.c | 2 +- gdb/testsuite/gdb.mi/mi-pthreads.exp | 2 +- gdb/testsuite/gdb.mi/mi-read-memory.exp | 2 +- gdb/testsuite/gdb.mi/mi-record-changed.exp | 2 +- gdb/testsuite/gdb.mi/mi-reg-undefined.S | 2 +- gdb/testsuite/gdb.mi/mi-reg-undefined.c | 2 +- gdb/testsuite/gdb.mi/mi-reg-undefined.exp | 2 +- gdb/testsuite/gdb.mi/mi-regs.exp | 2 +- gdb/testsuite/gdb.mi/mi-return.exp | 2 +- gdb/testsuite/gdb.mi/mi-reverse.exp | 4 +- gdb/testsuite/gdb.mi/mi-simplerun.exp | 6 +- gdb/testsuite/gdb.mi/mi-solib.exp | 2 +- gdb/testsuite/gdb.mi/mi-stack.c | 2 +- gdb/testsuite/gdb.mi/mi-stack.exp | 2 +- gdb/testsuite/gdb.mi/mi-start.c | 2 +- gdb/testsuite/gdb.mi/mi-start.exp | 2 +- gdb/testsuite/gdb.mi/mi-stepi.exp | 2 +- gdb/testsuite/gdb.mi/mi-stepn.c | 2 +- gdb/testsuite/gdb.mi/mi-stepn.exp | 2 +- gdb/testsuite/gdb.mi/mi-syn-frame.exp | 2 +- gdb/testsuite/gdb.mi/mi-threads-interrupt.c | 2 +- gdb/testsuite/gdb.mi/mi-threads-interrupt.exp | 2 +- gdb/testsuite/gdb.mi/mi-undefined-cmd.exp | 2 +- gdb/testsuite/gdb.mi/mi-until.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-block.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-child-f.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-child.c | 2 +- gdb/testsuite/gdb.mi/mi-var-child.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-cmd.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-cp.cc | 2 +- gdb/testsuite/gdb.mi/mi-var-cp.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-create-rtti.c | 2 +- gdb/testsuite/gdb.mi/mi-var-create-rtti.exp | 7 +- gdb/testsuite/gdb.mi/mi-var-display.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-invalidate.exp | 2 +- .../mi-var-list-children-invalid-grandchild.c | 2 +- .../mi-var-list-children-invalid-grandchild.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-rtti.cc | 2 +- gdb/testsuite/gdb.mi/mi-var-rtti.exp | 2 +- gdb/testsuite/gdb.mi/mi-vla-c99.exp | 2 +- gdb/testsuite/gdb.mi/mi-vla-fortran.exp | 2 +- gdb/testsuite/gdb.mi/mi-watch-nonstop.exp | 2 +- gdb/testsuite/gdb.mi/mi-watch.exp | 2 +- gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c | 2 +- gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp | 2 +- gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s | 2 +- gdb/testsuite/gdb.mi/mi2-prompt.exp | 2 +- gdb/testsuite/gdb.mi/mi2-var-child.exp | 2 +- gdb/testsuite/gdb.mi/new-ui-mi-sync.c | 2 +- gdb/testsuite/gdb.mi/new-ui-mi-sync.exp | 2 +- gdb/testsuite/gdb.mi/non-stop-exit.c | 2 +- gdb/testsuite/gdb.mi/non-stop.c | 2 +- gdb/testsuite/gdb.mi/ns-stale-regcache.c | 2 +- gdb/testsuite/gdb.mi/nsintrall.c | 2 +- gdb/testsuite/gdb.mi/nsmoribund.c | 2 +- gdb/testsuite/gdb.mi/nsthrexec.c | 2 +- gdb/testsuite/gdb.mi/pending.c | 2 +- gdb/testsuite/gdb.mi/pendshr1.c | 2 +- gdb/testsuite/gdb.mi/pendshr2.c | 2 +- gdb/testsuite/gdb.mi/pr11022.c | 2 +- gdb/testsuite/gdb.mi/pr11022.exp | 2 +- gdb/testsuite/gdb.mi/pthreads.c | 2 +- gdb/testsuite/gdb.mi/solib-lib.c | 2 +- gdb/testsuite/gdb.mi/solib-main.c | 2 +- gdb/testsuite/gdb.mi/user-selected-context-sync.c | 2 +- .../gdb.mi/user-selected-context-sync.exp | 2 +- gdb/testsuite/gdb.mi/var-cmd.c | 2 +- gdb/testsuite/gdb.mi/vla.c | 2 +- gdb/testsuite/gdb.mi/vla.f90 | 2 +- gdb/testsuite/gdb.mi/watch-nonstop.c | 2 +- gdb/testsuite/gdb.modula2/unbounded-array.exp | 2 +- gdb/testsuite/gdb.modula2/unbounded1.c | 2 +- gdb/testsuite/gdb.multi/base.exp | 2 +- gdb/testsuite/gdb.multi/bkpt-multi-exec.exp | 2 +- gdb/testsuite/gdb.multi/dummy-frame-restore.c | 2 +- gdb/testsuite/gdb.multi/dummy-frame-restore.exp | 2 +- gdb/testsuite/gdb.multi/goodbye.c | 2 +- gdb/testsuite/gdb.multi/hangout.c | 2 +- gdb/testsuite/gdb.multi/hello.c | 2 +- gdb/testsuite/gdb.multi/info-threads.exp | 2 +- gdb/testsuite/gdb.multi/multi-arch-exec.c | 2 +- gdb/testsuite/gdb.multi/multi-arch-exec.exp | 2 +- gdb/testsuite/gdb.multi/multi-arch.exp | 2 +- gdb/testsuite/gdb.multi/multi-attach.c | 2 +- gdb/testsuite/gdb.multi/multi-attach.exp | 8 +- gdb/testsuite/gdb.multi/remove-inferiors.c | 2 +- gdb/testsuite/gdb.multi/remove-inferiors.exp | 2 +- gdb/testsuite/gdb.multi/tids.c | 2 +- gdb/testsuite/gdb.multi/tids.exp | 2 +- gdb/testsuite/gdb.multi/watchpoint-multi-exit.c | 2 +- gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp | 2 +- gdb/testsuite/gdb.multi/watchpoint-multi.c | 2 +- gdb/testsuite/gdb.multi/watchpoint-multi.exp | 2 +- gdb/testsuite/gdb.objc/basicclass.exp | 2 +- gdb/testsuite/gdb.objc/nondebug.exp | 2 +- gdb/testsuite/gdb.objc/objcdecode.exp | 2 +- gdb/testsuite/gdb.objc/print.exp | 2 +- gdb/testsuite/gdb.opencl/callfuncs.cl | 2 +- gdb/testsuite/gdb.opencl/callfuncs.exp | 2 +- gdb/testsuite/gdb.opencl/convs_casts.cl | 2 +- gdb/testsuite/gdb.opencl/convs_casts.exp | 2 +- gdb/testsuite/gdb.opencl/datatypes.cl | 2 +- gdb/testsuite/gdb.opencl/datatypes.exp | 2 +- gdb/testsuite/gdb.opencl/operators.cl | 2 +- gdb/testsuite/gdb.opencl/operators.exp | 2 +- gdb/testsuite/gdb.opencl/vec_comps.cl | 2 +- gdb/testsuite/gdb.opencl/vec_comps.exp | 2 +- gdb/testsuite/gdb.opt/clobbered-registers-O2.c | 2 +- gdb/testsuite/gdb.opt/clobbered-registers-O2.exp | 2 +- gdb/testsuite/gdb.opt/inline-break.c | 2 +- gdb/testsuite/gdb.opt/inline-break.exp | 2 +- gdb/testsuite/gdb.opt/inline-bt.c | 2 +- gdb/testsuite/gdb.opt/inline-bt.exp | 2 +- gdb/testsuite/gdb.opt/inline-cmds.c | 2 +- gdb/testsuite/gdb.opt/inline-cmds.exp | 2 +- gdb/testsuite/gdb.opt/inline-locals.c | 2 +- gdb/testsuite/gdb.opt/inline-locals.exp | 40 +- gdb/testsuite/gdb.opt/inline-markers.c | 2 +- gdb/testsuite/gdb.opt/solib-intra-step-lib.c | 2 +- gdb/testsuite/gdb.opt/solib-intra-step-main.c | 2 +- gdb/testsuite/gdb.opt/solib-intra-step.exp | 2 +- .../gdb.pascal/case-insensitive-symbols.exp | 2 +- .../gdb.pascal/case-insensitive-symbols.pas | 2 +- gdb/testsuite/gdb.pascal/floats.exp | 2 +- gdb/testsuite/gdb.pascal/floats.pas | 2 +- gdb/testsuite/gdb.pascal/gdb11492.exp | 2 +- gdb/testsuite/gdb.pascal/gdb11492.pas | 2 +- gdb/testsuite/gdb.pascal/hello.exp | 2 +- gdb/testsuite/gdb.pascal/integers.exp | 2 +- gdb/testsuite/gdb.pascal/integers.pas | 2 +- gdb/testsuite/gdb.pascal/print.exp | 2 +- gdb/testsuite/gdb.pascal/stub-method.exp | 2 +- gdb/testsuite/gdb.pascal/stub-method.pas | 2 +- gdb/testsuite/gdb.pascal/types.exp | 2 +- gdb/testsuite/gdb.perf/backtrace.c | 2 +- gdb/testsuite/gdb.perf/backtrace.exp | 2 +- gdb/testsuite/gdb.perf/backtrace.py | 2 +- gdb/testsuite/gdb.perf/disassemble.exp | 2 +- gdb/testsuite/gdb.perf/disassemble.py | 2 +- gdb/testsuite/gdb.perf/gm-hello.cc | 2 +- gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc | 2 +- gdb/testsuite/gdb.perf/gm-pervasive-typedef.h | 2 +- gdb/testsuite/gdb.perf/gm-std.cc | 2 +- gdb/testsuite/gdb.perf/gm-std.h | 2 +- gdb/testsuite/gdb.perf/gm-use-cerr.cc | 2 +- gdb/testsuite/gdb.perf/gm-utils.h | 2 +- gdb/testsuite/gdb.perf/gmonster-null-lookup.py | 2 +- .../gdb.perf/gmonster-pervasive-typedef.py | 2 +- gdb/testsuite/gdb.perf/gmonster-print-cerr.py | 2 +- gdb/testsuite/gdb.perf/gmonster-ptype-string.py | 2 +- gdb/testsuite/gdb.perf/gmonster-runto-main.py | 2 +- gdb/testsuite/gdb.perf/gmonster-select-file.py | 2 +- gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp | 2 +- .../gdb.perf/gmonster1-pervasive-typedef.exp | 2 +- gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp | 2 +- gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp | 2 +- gdb/testsuite/gdb.perf/gmonster1-runto-main.exp | 2 +- gdb/testsuite/gdb.perf/gmonster1-select-file.exp | 2 +- gdb/testsuite/gdb.perf/gmonster1.cc | 2 +- gdb/testsuite/gdb.perf/gmonster1.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp | 2 +- .../gdb.perf/gmonster2-pervasive-typedef.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2-runto-main.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2-select-file.exp | 2 +- gdb/testsuite/gdb.perf/gmonster2.cc | 2 +- gdb/testsuite/gdb.perf/gmonster2.exp | 2 +- gdb/testsuite/gdb.perf/lib/perftest/__init__.py | 2 +- gdb/testsuite/gdb.perf/lib/perftest/measure.py | 2 +- gdb/testsuite/gdb.perf/lib/perftest/perftest.py | 2 +- gdb/testsuite/gdb.perf/lib/perftest/reporter.py | 2 +- gdb/testsuite/gdb.perf/lib/perftest/testresult.py | 2 +- gdb/testsuite/gdb.perf/lib/perftest/utils.py | 2 +- gdb/testsuite/gdb.perf/single-step.c | 2 +- gdb/testsuite/gdb.perf/single-step.exp | 2 +- gdb/testsuite/gdb.perf/single-step.py | 2 +- gdb/testsuite/gdb.perf/skip-command.cc | 2 +- gdb/testsuite/gdb.perf/skip-command.exp | 2 +- gdb/testsuite/gdb.perf/skip-command.py | 2 +- gdb/testsuite/gdb.perf/skip-prologue.c | 2 +- gdb/testsuite/gdb.perf/skip-prologue.exp | 2 +- gdb/testsuite/gdb.perf/skip-prologue.py | 2 +- gdb/testsuite/gdb.perf/solib.c | 2 +- gdb/testsuite/gdb.perf/solib.exp | 2 +- gdb/testsuite/gdb.perf/solib.py | 2 +- .../gdb.python/amd64-py-framefilter-invalidarg.S | 2 +- gdb/testsuite/gdb.python/lib-types.cc | 2 +- gdb/testsuite/gdb.python/lib-types.exp | 2 +- gdb/testsuite/gdb.python/py-arch.c | 2 +- gdb/testsuite/gdb.python/py-arch.exp | 2 +- gdb/testsuite/gdb.python/py-as-string.c | 2 +- gdb/testsuite/gdb.python/py-as-string.exp | 2 +- gdb/testsuite/gdb.python/py-bad-printers.c | 2 +- gdb/testsuite/gdb.python/py-bad-printers.exp | 2 +- gdb/testsuite/gdb.python/py-bad-printers.py | 2 +- gdb/testsuite/gdb.python/py-block.c | 2 +- gdb/testsuite/gdb.python/py-block.exp | 2 +- .../gdb.python/py-breakpoint-create-fail.c | 2 +- .../gdb.python/py-breakpoint-create-fail.exp | 2 +- .../gdb.python/py-breakpoint-create-fail.py | 2 +- gdb/testsuite/gdb.python/py-breakpoint.c | 12 +- gdb/testsuite/gdb.python/py-breakpoint.exp | 156 +- gdb/testsuite/gdb.python/py-caller-is.c | 2 +- gdb/testsuite/gdb.python/py-caller-is.exp | 2 +- gdb/testsuite/gdb.python/py-cmd.c | 2 +- gdb/testsuite/gdb.python/py-cmd.exp | 2 +- gdb/testsuite/gdb.python/py-completion.exp | 2 +- gdb/testsuite/gdb.python/py-completion.py | 2 +- gdb/testsuite/gdb.python/py-error.exp | 2 +- gdb/testsuite/gdb.python/py-error.py | 2 +- gdb/testsuite/gdb.python/py-events-shlib.c | 2 +- gdb/testsuite/gdb.python/py-events.c | 2 +- gdb/testsuite/gdb.python/py-events.exp | 2 +- gdb/testsuite/gdb.python/py-events.py | 2 +- gdb/testsuite/gdb.python/py-evsignal.exp | 2 +- gdb/testsuite/gdb.python/py-evthreads.c | 2 +- gdb/testsuite/gdb.python/py-evthreads.exp | 2 +- gdb/testsuite/gdb.python/py-explore-cc.exp | 2 +- gdb/testsuite/gdb.python/py-explore.c | 2 +- gdb/testsuite/gdb.python/py-explore.cc | 2 +- gdb/testsuite/gdb.python/py-explore.exp | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint.c | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint.exp | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint.py | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint2.cc | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint2.exp | 2 +- gdb/testsuite/gdb.python/py-finish-breakpoint2.py | 2 +- gdb/testsuite/gdb.python/py-frame-args.c | 2 +- gdb/testsuite/gdb.python/py-frame-args.exp | 2 +- gdb/testsuite/gdb.python/py-frame-args.py | 2 +- gdb/testsuite/gdb.python/py-frame-inline.c | 2 +- gdb/testsuite/gdb.python/py-frame-inline.exp | 2 +- gdb/testsuite/gdb.python/py-frame.exp | 2 +- gdb/testsuite/gdb.python/py-framefilter-gdb.py.in | 2 +- .../gdb.python/py-framefilter-invalidarg-gdb.py.in | 2 +- .../gdb.python/py-framefilter-invalidarg.exp | 2 +- .../gdb.python/py-framefilter-invalidarg.py | 2 +- gdb/testsuite/gdb.python/py-framefilter-mi.c | 2 +- gdb/testsuite/gdb.python/py-framefilter-mi.exp | 2 +- gdb/testsuite/gdb.python/py-framefilter.c | 2 +- gdb/testsuite/gdb.python/py-framefilter.exp | 2 +- gdb/testsuite/gdb.python/py-framefilter.py | 2 +- gdb/testsuite/gdb.python/py-function.exp | 2 +- gdb/testsuite/gdb.python/py-inferior.exp | 2 +- gdb/testsuite/gdb.python/py-infthread.exp | 2 +- gdb/testsuite/gdb.python/py-lazy-string.c | 2 +- gdb/testsuite/gdb.python/py-lazy-string.exp | 2 +- gdb/testsuite/gdb.python/py-linetable.S | 2 +- gdb/testsuite/gdb.python/py-linetable.c | 2 +- gdb/testsuite/gdb.python/py-linetable.exp | 2 +- gdb/testsuite/gdb.python/py-lookup-type.exp | 2 +- gdb/testsuite/gdb.python/py-mi-events-gdb.py | 2 +- gdb/testsuite/gdb.python/py-mi-events.c | 2 +- gdb/testsuite/gdb.python/py-mi-events.exp | 2 +- gdb/testsuite/gdb.python/py-mi-objfile-gdb.py | 2 +- gdb/testsuite/gdb.python/py-mi-objfile.c | 2 +- gdb/testsuite/gdb.python/py-mi-objfile.exp | 2 +- gdb/testsuite/gdb.python/py-mi.exp | 14 +- gdb/testsuite/gdb.python/py-objfile-script-gdb.py | 2 +- gdb/testsuite/gdb.python/py-objfile-script.c | 2 +- gdb/testsuite/gdb.python/py-objfile-script.exp | 2 +- gdb/testsuite/gdb.python/py-objfile.c | 2 +- gdb/testsuite/gdb.python/py-objfile.exp | 2 +- gdb/testsuite/gdb.python/py-parameter.exp | 2 +- gdb/testsuite/gdb.python/py-pp-integral.c | 2 +- gdb/testsuite/gdb.python/py-pp-integral.exp | 2 +- gdb/testsuite/gdb.python/py-pp-integral.py | 2 +- gdb/testsuite/gdb.python/py-pp-maint.c | 2 +- gdb/testsuite/gdb.python/py-pp-maint.exp | 2 +- gdb/testsuite/gdb.python/py-pp-maint.py | 2 +- gdb/testsuite/gdb.python/py-pp-re-notag.c | 2 +- gdb/testsuite/gdb.python/py-pp-re-notag.exp | 2 +- gdb/testsuite/gdb.python/py-pp-re-notag.py | 2 +- gdb/testsuite/gdb.python/py-pp-registration.c | 2 +- gdb/testsuite/gdb.python/py-pp-registration.exp | 2 +- gdb/testsuite/gdb.python/py-pp-registration.py | 2 +- gdb/testsuite/gdb.python/py-prettyprint.c | 2 +- gdb/testsuite/gdb.python/py-prettyprint.exp | 2 +- gdb/testsuite/gdb.python/py-prettyprint.py | 2 +- gdb/testsuite/gdb.python/py-progspace.c | 2 +- gdb/testsuite/gdb.python/py-progspace.exp | 2 +- gdb/testsuite/gdb.python/py-prompt.c | 2 +- gdb/testsuite/gdb.python/py-prompt.exp | 2 +- gdb/testsuite/gdb.python/py-rbreak-func2.c | 34 + gdb/testsuite/gdb.python/py-rbreak.c | 70 + gdb/testsuite/gdb.python/py-rbreak.exp | 62 + .../gdb.python/py-record-btrace-threads.c | 2 +- .../gdb.python/py-record-btrace-threads.exp | 2 +- gdb/testsuite/gdb.python/py-record-btrace.c | 2 +- gdb/testsuite/gdb.python/py-record-btrace.exp | 2 +- gdb/testsuite/gdb.python/py-record-full.c | 2 +- gdb/testsuite/gdb.python/py-record-full.exp | 2 +- gdb/testsuite/gdb.python/py-recurse-unwind.c | 2 +- gdb/testsuite/gdb.python/py-recurse-unwind.exp | 2 +- gdb/testsuite/gdb.python/py-recurse-unwind.py | 2 +- gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc | 2 +- .../gdb.python/py-rvalue-ref-value-cc.exp | 2 +- gdb/testsuite/gdb.python/py-section-script.c | 2 +- gdb/testsuite/gdb.python/py-section-script.exp | 2 +- gdb/testsuite/gdb.python/py-section-script.py | 2 +- gdb/testsuite/gdb.python/py-shared-sl.c | 2 +- gdb/testsuite/gdb.python/py-shared.c | 2 +- gdb/testsuite/gdb.python/py-shared.exp | 2 +- gdb/testsuite/gdb.python/py-strfns.c | 2 +- gdb/testsuite/gdb.python/py-strfns.exp | 2 +- gdb/testsuite/gdb.python/py-symbol.c | 2 +- gdb/testsuite/gdb.python/py-symbol.exp | 2 +- gdb/testsuite/gdb.python/py-symtab.exp | 2 +- gdb/testsuite/gdb.python/py-sync-interp.c | 2 +- gdb/testsuite/gdb.python/py-sync-interp.exp | 2 +- gdb/testsuite/gdb.python/py-template.cc | 2 +- gdb/testsuite/gdb.python/py-template.exp | 2 +- gdb/testsuite/gdb.python/py-thrhandle.c | 2 +- gdb/testsuite/gdb.python/py-thrhandle.exp | 2 +- gdb/testsuite/gdb.python/py-type.c | 2 +- gdb/testsuite/gdb.python/py-type.exp | 2 +- gdb/testsuite/gdb.python/py-typeprint.cc | 2 +- gdb/testsuite/gdb.python/py-typeprint.exp | 2 +- gdb/testsuite/gdb.python/py-typeprint.py | 2 +- gdb/testsuite/gdb.python/py-unwind-maint.c | 2 +- gdb/testsuite/gdb.python/py-unwind-maint.exp | 2 +- gdb/testsuite/gdb.python/py-unwind-maint.py | 2 +- gdb/testsuite/gdb.python/py-unwind.c | 2 +- gdb/testsuite/gdb.python/py-unwind.exp | 2 +- gdb/testsuite/gdb.python/py-unwind.py | 2 +- gdb/testsuite/gdb.python/py-value-cc.cc | 2 +- gdb/testsuite/gdb.python/py-value-cc.exp | 2 +- gdb/testsuite/gdb.python/py-value.c | 2 +- gdb/testsuite/gdb.python/py-value.exp | 2 +- gdb/testsuite/gdb.python/py-xmethods.cc | 2 +- gdb/testsuite/gdb.python/py-xmethods.exp | 2 +- gdb/testsuite/gdb.python/py-xmethods.py | 2 +- gdb/testsuite/gdb.python/python-1.c | 2 +- gdb/testsuite/gdb.python/python.c | 2 +- gdb/testsuite/gdb.python/python.exp | 2 +- gdb/testsuite/gdb.python/source1 | 2 +- gdb/testsuite/gdb.python/source2.py | 2 +- gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S | 2 +- gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c | 2 +- .../gdb.reverse/amd64-tailcall-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/break-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/break-reverse.c | 2 +- gdb/testsuite/gdb.reverse/break-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/consecutive-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/consecutive-reverse.c | 2 +- gdb/testsuite/gdb.reverse/consecutive-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/finish-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp | 2 +- gdb/testsuite/gdb.reverse/finish-reverse.c | 2 +- gdb/testsuite/gdb.reverse/finish-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/fstatat-reverse.c | 2 +- gdb/testsuite/gdb.reverse/fstatat-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/getresuid-reverse.c | 2 +- gdb/testsuite/gdb.reverse/getresuid-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/i386-precsave.exp | 98 +- gdb/testsuite/gdb.reverse/i386-reverse.c | 2 +- gdb/testsuite/gdb.reverse/i386-reverse.exp | 98 +- gdb/testsuite/gdb.reverse/i386-sse-reverse.c | 2 +- gdb/testsuite/gdb.reverse/i386-sse-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/i387-env-reverse.exp | 64 +- gdb/testsuite/gdb.reverse/i387-stack-reverse.exp | 128 +- gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c | 2 +- gdb/testsuite/gdb.reverse/insn-reverse-arm.c | 2 +- gdb/testsuite/gdb.reverse/insn-reverse-x86.c | 2 +- gdb/testsuite/gdb.reverse/insn-reverse.c | 2 +- gdb/testsuite/gdb.reverse/insn-reverse.exp | 2 +- .../gdb.reverse/machinestate-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/machinestate.c | 2 +- gdb/testsuite/gdb.reverse/machinestate.exp | 2 +- gdb/testsuite/gdb.reverse/ms1.c | 2 +- .../gdb.reverse/next-reverse-bkpt-over-sr.exp | 2 +- gdb/testsuite/gdb.reverse/pipe-reverse.c | 2 +- gdb/testsuite/gdb.reverse/pipe-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/readv-reverse.c | 2 +- gdb/testsuite/gdb.reverse/readv-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/recvmsg-reverse.c | 2 +- gdb/testsuite/gdb.reverse/recvmsg-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/rerun-prec.c | 2 +- gdb/testsuite/gdb.reverse/rerun-prec.exp | 2 +- gdb/testsuite/gdb.reverse/s390-mvcle.c | 2 +- gdb/testsuite/gdb.reverse/s390-mvcle.exp | 2 +- gdb/testsuite/gdb.reverse/shr.h | 2 +- gdb/testsuite/gdb.reverse/shr1.c | 2 +- gdb/testsuite/gdb.reverse/shr2.c | 2 +- gdb/testsuite/gdb.reverse/sigall-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/sigall-reverse.c | 2 +- gdb/testsuite/gdb.reverse/sigall-reverse.exp | 2 +- .../gdb.reverse/singlejmp-reverse-nodebug.S | 2 +- .../gdb.reverse/singlejmp-reverse-nodebug.c | 2 +- gdb/testsuite/gdb.reverse/singlejmp-reverse.S | 2 +- gdb/testsuite/gdb.reverse/singlejmp-reverse.c | 2 +- gdb/testsuite/gdb.reverse/singlejmp-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/solib-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/solib-reverse.c | 2 +- gdb/testsuite/gdb.reverse/solib-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/step-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/step-reverse.c | 2 +- gdb/testsuite/gdb.reverse/step-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/time-reverse.c | 2 +- gdb/testsuite/gdb.reverse/time-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/until-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/until-reverse.c | 2 +- gdb/testsuite/gdb.reverse/until-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/ur1.c | 2 +- gdb/testsuite/gdb.reverse/waitpid-reverse.c | 2 +- gdb/testsuite/gdb.reverse/waitpid-reverse.exp | 2 +- gdb/testsuite/gdb.reverse/watch-precsave.exp | 2 +- gdb/testsuite/gdb.reverse/watch-reverse.c | 2 +- gdb/testsuite/gdb.reverse/watch-reverse.exp | 2 +- gdb/testsuite/gdb.rust/expr.exp | 2 +- gdb/testsuite/gdb.rust/generics.exp | 2 +- gdb/testsuite/gdb.rust/generics.rs | 2 +- gdb/testsuite/gdb.rust/methods.exp | 2 +- gdb/testsuite/gdb.rust/methods.rs | 2 +- gdb/testsuite/gdb.rust/modules.exp | 22 +- gdb/testsuite/gdb.rust/modules.rs | 8 +- gdb/testsuite/gdb.rust/simple.exp | 2 +- gdb/testsuite/gdb.rust/simple.rs | 2 +- gdb/testsuite/gdb.rust/traits.exp | 47 + gdb/testsuite/gdb.rust/traits.rs | 37 + gdb/testsuite/gdb.rust/unsized.exp | 2 +- gdb/testsuite/gdb.rust/unsized.rs | 2 +- gdb/testsuite/gdb.rust/watch.exp | 2 +- gdb/testsuite/gdb.rust/watch.rs | 2 +- gdb/testsuite/gdb.server/connect-stopped-target.c | 2 +- .../gdb.server/connect-stopped-target.exp | 2 +- .../gdb.server/connect-with-no-symbol-file.c | 2 +- .../gdb.server/connect-with-no-symbol-file.exp | 2 +- .../gdb.server/connect-without-multi-process.c | 2 +- .../gdb.server/connect-without-multi-process.exp | 2 +- gdb/testsuite/gdb.server/ext-attach.c | 2 +- gdb/testsuite/gdb.server/ext-attach.exp | 4 +- gdb/testsuite/gdb.server/ext-restart.exp | 4 +- gdb/testsuite/gdb.server/ext-run.exp | 4 +- gdb/testsuite/gdb.server/ext-wrapper.exp | 4 +- gdb/testsuite/gdb.server/file-transfer.exp | 2 +- gdb/testsuite/gdb.server/no-thread-db.c | 2 +- gdb/testsuite/gdb.server/no-thread-db.exp | 2 +- gdb/testsuite/gdb.server/non-existing-program.exp | 2 +- gdb/testsuite/gdb.server/normal.c | 2 +- gdb/testsuite/gdb.server/reconnect-ctrl-c.c | 28 + gdb/testsuite/gdb.server/reconnect-ctrl-c.exp | 72 + .../gdb.server/run-without-local-binary.exp | 2 +- gdb/testsuite/gdb.server/server-exec-info.exp | 2 +- gdb/testsuite/gdb.server/server-kill.c | 2 +- gdb/testsuite/gdb.server/server-kill.exp | 2 +- gdb/testsuite/gdb.server/server-mon.exp | 2 +- gdb/testsuite/gdb.server/server-run.exp | 2 +- gdb/testsuite/gdb.server/server.c | 2 +- gdb/testsuite/gdb.server/solib-list-lib.c | 2 +- gdb/testsuite/gdb.server/solib-list-main.c | 2 +- gdb/testsuite/gdb.server/solib-list.exp | 2 +- gdb/testsuite/gdb.server/stop-reply-no-thread.c | 22 + gdb/testsuite/gdb.server/stop-reply-no-thread.exp | 74 + gdb/testsuite/gdb.server/unittest.exp | 15 +- gdb/testsuite/gdb.server/wrapper.c | 2 +- gdb/testsuite/gdb.server/wrapper.exp | 2 +- gdb/testsuite/gdb.stabs/exclfwd.exp | 2 +- gdb/testsuite/gdb.stabs/exclfwd.h | 2 +- gdb/testsuite/gdb.stabs/exclfwd1.c | 2 +- gdb/testsuite/gdb.stabs/exclfwd2.c | 2 +- gdb/testsuite/gdb.stabs/gdb11479.c | 2 +- gdb/testsuite/gdb.stabs/gdb11479.exp | 2 +- gdb/testsuite/gdb.stabs/weird.exp | 2 +- gdb/testsuite/gdb.threads/attach-into-signal.c | 2 +- gdb/testsuite/gdb.threads/attach-into-signal.exp | 2 +- .../gdb.threads/attach-many-short-lived-threads.c | 2 +- .../attach-many-short-lived-threads.exp | 2 +- gdb/testsuite/gdb.threads/attach-stopped.c | 2 +- gdb/testsuite/gdb.threads/attach-stopped.exp | 2 +- gdb/testsuite/gdb.threads/bp_in_thread.c | 2 +- gdb/testsuite/gdb.threads/bp_in_thread.exp | 2 +- gdb/testsuite/gdb.threads/break-while-running.c | 2 +- gdb/testsuite/gdb.threads/break-while-running.exp | 2 +- gdb/testsuite/gdb.threads/clone-attach-detach.c | 2 +- gdb/testsuite/gdb.threads/clone-attach-detach.exp | 2 +- gdb/testsuite/gdb.threads/clone-new-thread-event.c | 2 +- .../gdb.threads/clone-new-thread-event.exp | 2 +- gdb/testsuite/gdb.threads/clone-thread_db.c | 2 +- gdb/testsuite/gdb.threads/clone-thread_db.exp | 2 +- .../gdb.threads/continue-pending-after-query.c | 2 +- .../gdb.threads/continue-pending-after-query.exp | 2 +- .../gdb.threads/continue-pending-status.c | 2 +- .../gdb.threads/continue-pending-status.exp | 2 +- gdb/testsuite/gdb.threads/corethreads.c | 2 +- gdb/testsuite/gdb.threads/corethreads.exp | 2 +- gdb/testsuite/gdb.threads/create-fail.c | 2 +- gdb/testsuite/gdb.threads/create-fail.exp | 2 +- gdb/testsuite/gdb.threads/current-lwp-dead.c | 2 +- gdb/testsuite/gdb.threads/current-lwp-dead.exp | 2 +- gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c | 2 +- gdb/testsuite/gdb.threads/dlopen-libpthread.c | 2 +- gdb/testsuite/gdb.threads/dlopen-libpthread.exp | 2 +- gdb/testsuite/gdb.threads/execl.c | 2 +- gdb/testsuite/gdb.threads/execl.exp | 2 +- gdb/testsuite/gdb.threads/execl1.c | 2 +- gdb/testsuite/gdb.threads/fork-child-threads.c | 2 +- gdb/testsuite/gdb.threads/fork-child-threads.exp | 2 +- gdb/testsuite/gdb.threads/fork-plus-threads.c | 2 +- gdb/testsuite/gdb.threads/fork-plus-threads.exp | 2 +- gdb/testsuite/gdb.threads/fork-thread-pending.c | 2 +- gdb/testsuite/gdb.threads/fork-thread-pending.exp | 2 +- .../gdb.threads/forking-threads-plus-breakpoint.c | 2 +- .../forking-threads-plus-breakpoint.exp | 2 +- gdb/testsuite/gdb.threads/gcore-stale-thread.c | 2 +- gdb/testsuite/gdb.threads/gcore-stale-thread.exp | 2 +- gdb/testsuite/gdb.threads/gcore-thread.exp | 2 +- gdb/testsuite/gdb.threads/hand-call-in-threads.c | 2 +- gdb/testsuite/gdb.threads/hand-call-in-threads.exp | 2 +- gdb/testsuite/gdb.threads/hand-call-new-thread.c | 2 +- gdb/testsuite/gdb.threads/hand-call-new-thread.exp | 2 +- gdb/testsuite/gdb.threads/ia64-sigill.c | 2 +- gdb/testsuite/gdb.threads/ia64-sigill.exp | 2 +- gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c | 2 +- gdb/testsuite/gdb.threads/info-threads-cur-sal.c | 2 +- gdb/testsuite/gdb.threads/info-threads-cur-sal.exp | 2 +- .../gdb.threads/interrupt-while-step-over.c | 2 +- .../gdb.threads/interrupt-while-step-over.exp | 2 +- gdb/testsuite/gdb.threads/interrupted-hand-call.c | 2 +- .../gdb.threads/interrupted-hand-call.exp | 2 +- gdb/testsuite/gdb.threads/kill.c | 2 +- gdb/testsuite/gdb.threads/kill.exp | 2 +- gdb/testsuite/gdb.threads/killed.c | 2 +- gdb/testsuite/gdb.threads/killed.exp | 2 +- gdb/testsuite/gdb.threads/leader-exit.c | 2 +- gdb/testsuite/gdb.threads/leader-exit.exp | 2 +- gdb/testsuite/gdb.threads/linux-dp.exp | 2 +- .../gdb.threads/local-watch-wrong-thread.c | 2 +- .../gdb.threads/local-watch-wrong-thread.exp | 2 +- gdb/testsuite/gdb.threads/manythreads.c | 2 +- gdb/testsuite/gdb.threads/manythreads.exp | 2 +- .../gdb.threads/multi-create-ns-info-thr.exp | 2 +- gdb/testsuite/gdb.threads/multi-create.c | 2 +- gdb/testsuite/gdb.threads/multi-create.exp | 2 +- gdb/testsuite/gdb.threads/multiple-step-overs.c | 2 +- gdb/testsuite/gdb.threads/multiple-step-overs.exp | 2 +- gdb/testsuite/gdb.threads/names.c | 2 +- gdb/testsuite/gdb.threads/names.exp | 2 +- gdb/testsuite/gdb.threads/next-bp-other-thread.c | 2 +- gdb/testsuite/gdb.threads/next-bp-other-thread.exp | 2 +- .../gdb.threads/next-while-other-thread-longjmps.c | 2 +- .../next-while-other-thread-longjmps.exp | 2 +- gdb/testsuite/gdb.threads/no-unwaited-for-left.c | 2 +- gdb/testsuite/gdb.threads/no-unwaited-for-left.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-1.c | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-1.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-2.c | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-2.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-3.c | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-3.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-4.c | 2 +- gdb/testsuite/gdb.threads/non-ldr-exc-4.exp | 2 +- gdb/testsuite/gdb.threads/non-ldr-exit.c | 2 +- gdb/testsuite/gdb.threads/non-ldr-exit.exp | 2 +- gdb/testsuite/gdb.threads/non-stop-fair-events.c | 2 +- gdb/testsuite/gdb.threads/non-stop-fair-events.exp | 2 +- gdb/testsuite/gdb.threads/pending-step.c | 2 +- gdb/testsuite/gdb.threads/pending-step.exp | 2 +- gdb/testsuite/gdb.threads/print-threads.exp | 2 +- .../gdb.threads/process-dies-while-detaching.c | 24 +- .../gdb.threads/process-dies-while-detaching.exp | 57 +- .../gdb.threads/process-dies-while-handling-bp.c | 2 +- .../gdb.threads/process-dies-while-handling-bp.exp | 2 +- gdb/testsuite/gdb.threads/pthread_cond_wait.c | 2 +- gdb/testsuite/gdb.threads/pthread_cond_wait.exp | 2 +- gdb/testsuite/gdb.threads/pthreads.c | 2 +- gdb/testsuite/gdb.threads/pthreads.exp | 2 +- gdb/testsuite/gdb.threads/queue-signal.c | 2 +- gdb/testsuite/gdb.threads/queue-signal.exp | 2 +- gdb/testsuite/gdb.threads/reconnect-signal.c | 2 +- gdb/testsuite/gdb.threads/reconnect-signal.exp | 2 +- gdb/testsuite/gdb.threads/schedlock.c | 2 +- gdb/testsuite/gdb.threads/schedlock.exp | 2 +- gdb/testsuite/gdb.threads/siginfo-threads.c | 2 +- gdb/testsuite/gdb.threads/siginfo-threads.exp | 2 +- .../gdb.threads/signal-command-handle-nopass.c | 2 +- .../gdb.threads/signal-command-handle-nopass.exp | 2 +- .../signal-command-multiple-signals-pending.c | 2 +- .../signal-command-multiple-signals-pending.exp | 2 +- .../gdb.threads/signal-delivered-right-thread.c | 2 +- .../gdb.threads/signal-delivered-right-thread.exp | 2 +- gdb/testsuite/gdb.threads/signal-sigtrap.c | 2 +- gdb/testsuite/gdb.threads/signal-sigtrap.exp | 2 +- .../signal-while-stepping-over-bp-other-thread.c | 2 +- .../signal-while-stepping-over-bp-other-thread.exp | 2 +- gdb/testsuite/gdb.threads/sigstep-threads.c | 2 +- gdb/testsuite/gdb.threads/sigstep-threads.exp | 2 +- gdb/testsuite/gdb.threads/sigthread.exp | 2 +- gdb/testsuite/gdb.threads/staticthreads.c | 2 +- gdb/testsuite/gdb.threads/staticthreads.exp | 2 +- .../gdb.threads/step-bg-decr-pc-switch-thread.c | 2 +- .../gdb.threads/step-bg-decr-pc-switch-thread.exp | 2 +- .../gdb.threads/step-over-lands-on-breakpoint.c | 2 +- .../gdb.threads/step-over-lands-on-breakpoint.exp | 2 +- .../gdb.threads/step-over-trips-on-watchpoint.c | 2 +- .../gdb.threads/step-over-trips-on-watchpoint.exp | 2 +- gdb/testsuite/gdb.threads/stepi-random-signal.c | 2 +- gdb/testsuite/gdb.threads/stepi-random-signal.exp | 2 +- gdb/testsuite/gdb.threads/switch-threads.c | 2 +- gdb/testsuite/gdb.threads/switch-threads.exp | 2 +- gdb/testsuite/gdb.threads/thread-execl.c | 2 +- gdb/testsuite/gdb.threads/thread-execl.exp | 2 +- gdb/testsuite/gdb.threads/thread-find.exp | 2 +- gdb/testsuite/gdb.threads/thread-specific-bp.c | 2 +- gdb/testsuite/gdb.threads/thread-specific-bp.exp | 2 +- gdb/testsuite/gdb.threads/thread-specific.c | 2 +- gdb/testsuite/gdb.threads/thread-specific.exp | 2 +- .../gdb.threads/thread-unwindonsignal.exp | 2 +- gdb/testsuite/gdb.threads/thread_check.c | 2 +- gdb/testsuite/gdb.threads/thread_check.exp | 2 +- gdb/testsuite/gdb.threads/thread_events.c | 2 +- gdb/testsuite/gdb.threads/thread_events.exp | 2 +- gdb/testsuite/gdb.threads/threadapply.c | 2 +- gdb/testsuite/gdb.threads/threadapply.exp | 2 +- gdb/testsuite/gdb.threads/threxit-hop-specific.c | 2 +- gdb/testsuite/gdb.threads/threxit-hop-specific.exp | 2 +- gdb/testsuite/gdb.threads/tid-reuse.c | 2 +- gdb/testsuite/gdb.threads/tid-reuse.exp | 2 +- gdb/testsuite/gdb.threads/tls-core.c | 37 + gdb/testsuite/gdb.threads/tls-core.exp | 56 + gdb/testsuite/gdb.threads/tls-nodebug-pie.c | 2 +- gdb/testsuite/gdb.threads/tls-nodebug-pie.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.c | 2 +- gdb/testsuite/gdb.threads/tls-so_extern.exp | 2 +- gdb/testsuite/gdb.threads/tls-so_extern_main.c | 2 +- gdb/testsuite/gdb.threads/tls-var-main.c | 2 +- gdb/testsuite/gdb.threads/tls-var.c | 2 +- gdb/testsuite/gdb.threads/tls-var.exp | 2 +- gdb/testsuite/gdb.threads/tls.exp | 2 +- gdb/testsuite/gdb.threads/tls2.c | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork-child.c | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork-mt.c | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork-parent.c | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork-st.c | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork.exp | 2 +- gdb/testsuite/gdb.threads/watchpoint-fork.h | 2 +- gdb/testsuite/gdb.threads/watchthreads-reorder.c | 2 +- gdb/testsuite/gdb.threads/watchthreads-reorder.exp | 2 +- gdb/testsuite/gdb.threads/watchthreads.c | 2 +- gdb/testsuite/gdb.threads/watchthreads.exp | 2 +- gdb/testsuite/gdb.threads/watchthreads2.c | 2 +- gdb/testsuite/gdb.threads/watchthreads2.exp | 2 +- gdb/testsuite/gdb.threads/wp-replication.c | 2 +- gdb/testsuite/gdb.threads/wp-replication.exp | 2 +- gdb/testsuite/gdb.trace/actions-changed.c | 2 +- gdb/testsuite/gdb.trace/actions-changed.exp | 2 +- gdb/testsuite/gdb.trace/actions.c | 2 +- gdb/testsuite/gdb.trace/actions.exp | 2 +- gdb/testsuite/gdb.trace/ax.exp | 2 +- gdb/testsuite/gdb.trace/backtrace.exp | 2 +- gdb/testsuite/gdb.trace/change-loc-1.c | 2 +- gdb/testsuite/gdb.trace/change-loc-2.c | 2 +- gdb/testsuite/gdb.trace/change-loc.c | 2 +- gdb/testsuite/gdb.trace/change-loc.exp | 2 +- gdb/testsuite/gdb.trace/change-loc.h | 2 +- gdb/testsuite/gdb.trace/circ.c | 2 +- gdb/testsuite/gdb.trace/circ.exp | 2 +- gdb/testsuite/gdb.trace/collection.c | 2 +- gdb/testsuite/gdb.trace/collection.exp | 2 +- gdb/testsuite/gdb.trace/deltrace.exp | 2 +- gdb/testsuite/gdb.trace/disconnected-tracing.c | 2 +- gdb/testsuite/gdb.trace/disconnected-tracing.exp | 2 +- gdb/testsuite/gdb.trace/entry-values.c | 2 +- gdb/testsuite/gdb.trace/entry-values.exp | 2 +- gdb/testsuite/gdb.trace/ftrace-lock.c | 2 +- gdb/testsuite/gdb.trace/ftrace-lock.exp | 2 +- gdb/testsuite/gdb.trace/ftrace.c | 2 +- gdb/testsuite/gdb.trace/ftrace.exp | 35 +- gdb/testsuite/gdb.trace/infotrace.exp | 2 +- .../gdb.trace/mi-trace-frame-collected.exp | 2 +- gdb/testsuite/gdb.trace/mi-trace-save.exp | 2 +- gdb/testsuite/gdb.trace/mi-trace-unavailable.exp | 2 +- gdb/testsuite/gdb.trace/mi-traceframe-changed.exp | 2 +- gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp | 2 +- gdb/testsuite/gdb.trace/mi-tsv-changed.exp | 2 +- gdb/testsuite/gdb.trace/no-attach-trace.c | 2 +- gdb/testsuite/gdb.trace/no-attach-trace.exp | 2 +- gdb/testsuite/gdb.trace/packetlen.exp | 2 +- gdb/testsuite/gdb.trace/passc-dyn.exp | 2 +- gdb/testsuite/gdb.trace/passcount.exp | 2 +- gdb/testsuite/gdb.trace/pending.c | 2 +- gdb/testsuite/gdb.trace/pending.exp | 2 +- gdb/testsuite/gdb.trace/pendshr1.c | 2 +- gdb/testsuite/gdb.trace/pendshr2.c | 2 +- gdb/testsuite/gdb.trace/pr16508.exp | 2 +- gdb/testsuite/gdb.trace/qtro.c | 2 +- gdb/testsuite/gdb.trace/qtro.exp | 2 +- gdb/testsuite/gdb.trace/range-stepping.c | 2 +- gdb/testsuite/gdb.trace/range-stepping.exp | 2 +- gdb/testsuite/gdb.trace/read-memory.c | 2 +- gdb/testsuite/gdb.trace/read-memory.exp | 2 +- gdb/testsuite/gdb.trace/report.exp | 2 +- gdb/testsuite/gdb.trace/save-trace.exp | 2 +- gdb/testsuite/gdb.trace/signal.c | 2 +- gdb/testsuite/gdb.trace/signal.exp | 2 +- gdb/testsuite/gdb.trace/stap-trace.c | 2 +- gdb/testsuite/gdb.trace/stap-trace.exp | 2 +- gdb/testsuite/gdb.trace/status-stop.c | 2 +- gdb/testsuite/gdb.trace/status-stop.exp | 2 +- gdb/testsuite/gdb.trace/strace.c | 2 +- gdb/testsuite/gdb.trace/strace.exp | 2 +- gdb/testsuite/gdb.trace/tfile.c | 2 +- gdb/testsuite/gdb.trace/tfile.exp | 2 +- gdb/testsuite/gdb.trace/tfind.exp | 2 +- gdb/testsuite/gdb.trace/trace-break.c | 2 +- gdb/testsuite/gdb.trace/trace-break.exp | 2 +- gdb/testsuite/gdb.trace/trace-buffer-size.c | 2 +- gdb/testsuite/gdb.trace/trace-buffer-size.exp | 2 +- gdb/testsuite/gdb.trace/trace-common.h | 2 +- gdb/testsuite/gdb.trace/trace-condition.c | 2 +- gdb/testsuite/gdb.trace/trace-condition.exp | 2 +- gdb/testsuite/gdb.trace/trace-enable-disable.c | 2 +- gdb/testsuite/gdb.trace/trace-enable-disable.exp | 2 +- gdb/testsuite/gdb.trace/trace-mt.c | 2 +- gdb/testsuite/gdb.trace/trace-mt.exp | 2 +- gdb/testsuite/gdb.trace/trace-unavailable.c | 2 +- gdb/testsuite/gdb.trace/tracecmd.exp | 2 +- gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c | 2 +- gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp | 2 +- gdb/testsuite/gdb.trace/tspeed.c | 2 +- gdb/testsuite/gdb.trace/tspeed.exp | 2 +- gdb/testsuite/gdb.trace/tstatus.exp | 2 +- gdb/testsuite/gdb.trace/tsv.exp | 2 +- gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c | 2 +- .../gdb.trace/unavailable-dwarf-piece.exp | 2 +- gdb/testsuite/gdb.trace/unavailable.cc | 2 +- gdb/testsuite/gdb.trace/unavailable.exp | 2 +- gdb/testsuite/gdb.trace/while-dyn.exp | 2 +- gdb/testsuite/gdb.trace/while-stepping.exp | 2 +- gdb/testsuite/gdb.tui/completion.exp | 38 +- gdb/testsuite/gdb.tui/tui-disasm-long-lines.c | 2 +- gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp | 2 +- gdb/testsuite/gdb.tui/tui-layout.c | 2 +- gdb/testsuite/gdb.tui/tui-layout.exp | 2 +- gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp | 2 +- gdb/testsuite/gdb.xml/extra-regs.xml | 1 + gdb/testsuite/gdb.xml/maint_print_struct.exp | 2 +- gdb/testsuite/gdb.xml/maint_print_struct.xml | 2 +- gdb/testsuite/gdb.xml/tdesc-arch.exp | 2 +- gdb/testsuite/gdb.xml/tdesc-errors.exp | 2 +- gdb/testsuite/gdb.xml/tdesc-regs.exp | 8 +- gdb/testsuite/gdb.xml/tdesc-xinclude.exp | 2 +- gdb/testsuite/lib/ada.exp | 2 +- gdb/testsuite/lib/append_gdb_boards_dir.exp | 2 +- gdb/testsuite/lib/build-piece.exp | 2 +- gdb/testsuite/lib/cache.exp | 2 +- gdb/testsuite/lib/cell.exp | 2 +- gdb/testsuite/lib/cl_util.c | 2 +- gdb/testsuite/lib/cl_util.h | 2 +- gdb/testsuite/lib/compiler.c | 2 +- gdb/testsuite/lib/compiler.cc | 2 +- gdb/testsuite/lib/completion-support.exp | 483 + gdb/testsuite/lib/cp-support.exp | 366 +- gdb/testsuite/lib/d-support.exp | 2 +- gdb/testsuite/lib/data-structures.exp | 164 + gdb/testsuite/lib/dtrace.exp | 2 +- gdb/testsuite/lib/dwarf.exp | 2 +- gdb/testsuite/lib/fortran.exp | 2 +- gdb/testsuite/lib/future.exp | 2 +- gdb/testsuite/lib/gdb-guile.exp | 2 +- gdb/testsuite/lib/gdb-python.exp | 2 +- gdb/testsuite/lib/gdb-utils.exp | 2 +- gdb/testsuite/lib/gdb.exp | 22 +- gdb/testsuite/lib/gdbserver-support.exp | 2 +- gdb/testsuite/lib/gen-perf-test.exp | 2 +- gdb/testsuite/lib/go.exp | 2 +- gdb/testsuite/lib/memory.exp | 2 +- gdb/testsuite/lib/mi-support.exp | 2 +- gdb/testsuite/lib/objc.exp | 2 +- gdb/testsuite/lib/opencl.exp | 2 +- gdb/testsuite/lib/opencl_hostapp.c | 2 +- gdb/testsuite/lib/pascal.exp | 2 +- gdb/testsuite/lib/pdtrace.in | 2 +- gdb/testsuite/lib/perftest.exp | 2 +- gdb/testsuite/lib/prelink-support.exp | 2 +- gdb/testsuite/lib/prompt.exp | 2 +- gdb/testsuite/lib/range-stepping-support.exp | 2 +- gdb/testsuite/lib/read1.c | 2 +- gdb/testsuite/lib/rust-support.exp | 2 +- gdb/testsuite/lib/selftest-support.exp | 2 +- gdb/testsuite/lib/set_unbuffered_mode.c | 2 +- gdb/testsuite/lib/trace-support.exp | 2 +- gdb/testsuite/lib/unbuffer_output.c | 2 +- gdb/thread-fsm.c | 2 +- gdb/thread-fsm.h | 2 +- gdb/thread.c | 44 +- gdb/tic6x-linux-tdep.c | 2 +- gdb/tic6x-tdep.c | 2 +- gdb/tic6x-tdep.h | 2 +- gdb/tid-parse.c | 2 +- gdb/tid-parse.h | 2 +- gdb/tilegx-linux-nat.c | 2 +- gdb/tilegx-linux-tdep.c | 2 +- gdb/tilegx-tdep.c | 2 +- gdb/tilegx-tdep.h | 2 +- gdb/top.c | 78 +- gdb/top.h | 11 +- gdb/tracefile-tfile.c | 3 +- gdb/tracefile.c | 4 +- gdb/tracepoint.c | 114 +- gdb/tracepoint.h | 11 +- gdb/trad-frame.c | 2 +- gdb/trad-frame.h | 2 +- gdb/tramp-frame.c | 2 +- gdb/tramp-frame.h | 2 +- gdb/transform.m4 | 2 +- gdb/tui/tui-command.c | 2 +- gdb/tui/tui-command.h | 2 +- gdb/tui/tui-data.c | 2 +- gdb/tui/tui-data.h | 2 +- gdb/tui/tui-disasm.c | 2 +- gdb/tui/tui-disasm.h | 2 +- gdb/tui/tui-file.c | 2 +- gdb/tui/tui-file.h | 2 +- gdb/tui/tui-hooks.c | 2 +- gdb/tui/tui-hooks.h | 2 +- gdb/tui/tui-interp.c | 2 +- gdb/tui/tui-io.c | 2 +- gdb/tui/tui-io.h | 2 +- gdb/tui/tui-layout.c | 7 +- gdb/tui/tui-layout.h | 2 +- gdb/tui/tui-out.c | 2 +- gdb/tui/tui-out.h | 2 +- gdb/tui/tui-regs.c | 2 +- gdb/tui/tui-regs.h | 2 +- gdb/tui/tui-source.c | 2 +- gdb/tui/tui-source.h | 2 +- gdb/tui/tui-stack.c | 11 +- gdb/tui/tui-stack.h | 2 +- gdb/tui/tui-win.c | 70 +- gdb/tui/tui-win.h | 2 +- gdb/tui/tui-windata.c | 2 +- gdb/tui/tui-windata.h | 2 +- gdb/tui/tui-wingeneral.c | 2 +- gdb/tui/tui-wingeneral.h | 2 +- gdb/tui/tui-winsource.c | 2 +- gdb/tui/tui-winsource.h | 2 +- gdb/tui/tui.c | 2 +- gdb/tui/tui.h | 2 +- gdb/typeprint.c | 121 +- gdb/typeprint.h | 22 +- gdb/ui-file.c | 2 +- gdb/ui-file.h | 2 +- gdb/ui-out.c | 2 +- gdb/ui-out.h | 2 +- gdb/unittests/array-view-selftests.c | 2 +- gdb/unittests/common-utils-selftests.c | 2 +- gdb/unittests/environ-selftests.c | 2 +- gdb/unittests/function-view-selftests.c | 2 +- gdb/unittests/lookup_name_info-selftests.c | 111 + gdb/unittests/memory-map-selftests.c | 87 + gdb/unittests/memrange-selftests.c | 2 +- gdb/unittests/offset-type-selftests.c | 2 +- gdb/unittests/optional-selftests.c | 2 +- gdb/unittests/optional/assignment/1.cc | 2 +- gdb/unittests/optional/assignment/2.cc | 2 +- gdb/unittests/optional/assignment/3.cc | 2 +- gdb/unittests/optional/assignment/4.cc | 2 +- gdb/unittests/optional/assignment/5.cc | 2 +- gdb/unittests/optional/assignment/6.cc | 2 +- gdb/unittests/optional/assignment/7.cc | 2 +- gdb/unittests/optional/cons/copy.cc | 2 +- gdb/unittests/optional/cons/default.cc | 2 +- gdb/unittests/optional/cons/move.cc | 2 +- gdb/unittests/optional/cons/value.cc | 2 +- gdb/unittests/optional/in_place.cc | 2 +- gdb/unittests/optional/observers/1.cc | 2 +- gdb/unittests/optional/observers/2.cc | 2 +- gdb/unittests/ptid-selftests.c | 2 +- gdb/unittests/rsp-low-selftests.c | 59 + gdb/unittests/scoped_restore-selftests.c | 2 +- gdb/unittests/xml-utils-selftests.c | 2 +- gdb/unwind_stop_reasons.def | 2 +- gdb/user-regs.c | 2 +- gdb/user-regs.h | 2 +- gdb/utils.c | 361 +- gdb/utils.h | 46 +- gdb/v850-tdep.c | 2 +- gdb/valarith.c | 3 +- gdb/valops.c | 54 +- gdb/valprint.c | 39 +- gdb/valprint.h | 2 +- gdb/value.c | 57 +- gdb/value.h | 42 +- gdb/varobj-iter.h | 2 +- gdb/varobj.c | 646 +- gdb/varobj.h | 115 +- gdb/vax-bsd-nat.c | 2 +- gdb/vax-nbsd-tdep.c | 2 +- gdb/vax-tdep.c | 2 +- gdb/vax-tdep.h | 2 +- gdb/version.in | 2 +- gdb/warning.m4 | 2 +- gdb/windows-nat.c | 8 +- gdb/windows-nat.h | 2 +- gdb/windows-tdep.c | 2 +- gdb/windows-tdep.h | 2 +- gdb/x86-bsd-nat.c | 2 +- gdb/x86-bsd-nat.h | 2 +- gdb/x86-linux-nat.c | 2 +- gdb/x86-linux-nat.h | 2 +- gdb/x86-nat.c | 2 +- gdb/x86-nat.h | 2 +- gdb/xcoffread.c | 63 +- gdb/xcoffread.h | 2 +- gdb/xml-support.c | 44 +- gdb/xml-support.h | 16 +- gdb/xml-syscall.c | 26 +- gdb/xml-syscall.h | 2 +- gdb/xml-tdesc.c | 107 +- gdb/xml-tdesc.h | 2 +- gdb/xstormy16-tdep.c | 2 +- gdb/xtensa-config.c | 2 +- gdb/xtensa-linux-nat.c | 2 +- gdb/xtensa-linux-tdep.c | 2 +- gdb/xtensa-tdep.c | 17 +- gdb/xtensa-tdep.h | 2 +- gdb/xtensa-xtregs.c | 2 +- gdb/yy-remap.h | 2 +- gold/ChangeLog | 663 +- gold/ChangeLog-2017 | 848 + gold/Makefile.am | 2 +- gold/Makefile.in | 2 +- gold/NEWS | 15 +- gold/README | 2 +- gold/aarch64-reloc-property.cc | 2 +- gold/aarch64-reloc-property.h | 2 +- gold/aarch64-reloc.def | 2 +- gold/aarch64.cc | 35 +- gold/archive.cc | 2 +- gold/archive.h | 2 +- gold/arm-reloc-property.cc | 2 +- gold/arm-reloc-property.h | 2 +- gold/arm-reloc.def | 2 +- gold/arm.cc | 2 +- gold/attributes.cc | 2 +- gold/attributes.h | 2 +- gold/binary.cc | 2 +- gold/binary.h | 2 +- gold/common.cc | 2 +- gold/common.h | 2 +- gold/compressed_output.cc | 2 +- gold/compressed_output.h | 2 +- gold/configure.ac | 2 +- gold/configure.tgt | 2 +- gold/copy-relocs.cc | 2 +- gold/copy-relocs.h | 2 +- gold/cref.cc | 8 +- gold/cref.h | 2 +- gold/debug.h | 2 +- gold/defstd.cc | 2 +- gold/defstd.h | 2 +- gold/descriptors.cc | 2 +- gold/descriptors.h | 2 +- gold/dirsearch.cc | 2 +- gold/dirsearch.h | 2 +- gold/dwarf_reader.cc | 21 +- gold/dwarf_reader.h | 9 +- gold/dwp.cc | 4 +- gold/dwp.h | 2 +- gold/dynobj.cc | 2 +- gold/dynobj.h | 2 +- gold/ehframe.cc | 2 +- gold/ehframe.h | 2 +- gold/errors.cc | 2 +- gold/errors.h | 2 +- gold/expression.cc | 2 +- gold/ffsll.c | 2 +- gold/fileread.cc | 2 +- gold/fileread.h | 2 +- gold/freebsd.h | 2 +- gold/ftruncate.c | 2 +- gold/gc.cc | 2 +- gold/gc.h | 2 +- gold/gdb-index.cc | 2 +- gold/gdb-index.h | 2 +- gold/gold-threads.cc | 2 +- gold/gold-threads.h | 2 +- gold/gold.cc | 4 +- gold/gold.h | 2 +- gold/i386.cc | 2 +- gold/icf.cc | 2 +- gold/icf.h | 2 +- gold/incremental-dump.cc | 2 +- gold/incremental.cc | 6 +- gold/incremental.h | 2 +- gold/int_encoding.cc | 2 +- gold/int_encoding.h | 2 +- gold/layout.cc | 6 +- gold/layout.h | 2 +- gold/main.cc | 2 +- gold/mapfile.cc | 2 +- gold/mapfile.h | 2 +- gold/merge.cc | 2 +- gold/merge.h | 2 +- gold/mips.cc | 2 +- gold/mremap.c | 2 +- gold/nacl.cc | 2 +- gold/nacl.h | 2 +- gold/object.cc | 52 +- gold/object.h | 5 +- gold/options.cc | 10 +- gold/options.h | 10 +- gold/output.cc | 20 +- gold/output.h | 2 +- gold/parameters.cc | 2 +- gold/parameters.h | 2 +- gold/plugin.cc | 65 +- gold/plugin.h | 21 +- gold/po/Make-in | 8 +- gold/po/gold.pot | 2493 +- gold/po/uk.po | 2697 +- gold/powerpc.cc | 308 +- gold/pread.c | 2 +- gold/readsyms.cc | 2 +- gold/readsyms.h | 2 +- gold/reduced_debug_output.cc | 2 +- gold/reduced_debug_output.h | 2 +- gold/reloc-types.h | 2 +- gold/reloc.cc | 2 +- gold/reloc.h | 2 +- gold/resolve.cc | 22 +- gold/s390.cc | 2 +- gold/script-c.h | 2 +- gold/script-sections.cc | 2 +- gold/script-sections.h | 2 +- gold/script.cc | 2 +- gold/script.h | 2 +- gold/sparc.cc | 2 +- gold/stringpool.cc | 2 +- gold/stringpool.h | 2 +- gold/symtab.cc | 65 +- gold/symtab.h | 5 +- gold/system.h | 2 +- gold/target-reloc.h | 21 +- gold/target-select.cc | 2 +- gold/target-select.h | 2 +- gold/target.cc | 2 +- gold/target.h | 2 +- gold/testsuite/Makefile.am | 67 +- gold/testsuite/Makefile.in | 191 +- gold/testsuite/arm_abs_global.sh | 2 +- gold/testsuite/arm_farcall_arm_arm.sh | 2 +- gold/testsuite/arm_farcall_arm_thumb.sh | 2 +- gold/testsuite/arm_target2_got_rel.sh | 2 +- gold/testsuite/arm_target2_rel.sh | 2 +- gold/testsuite/bnd_ifunc_1.sh | 2 +- gold/testsuite/common_test_1.c | 2 +- gold/testsuite/copy_test_2.cc | 2 +- gold/testsuite/debug_msg.sh | 6 +- gold/testsuite/discard_locals_relocatable_test.c | 2 +- gold/testsuite/dwp_test.h | 2 +- gold/testsuite/dwp_test_2.cc | 2 +- gold/testsuite/dwp_test_main.cc | 2 +- gold/testsuite/dyn_weak_ref_1.c | 2 +- gold/testsuite/dynamic_list_2.t | 2 +- gold/testsuite/ehdr_start_def.cc | 2 +- gold/testsuite/ehdr_start_test.cc | 2 +- gold/testsuite/empty_command_line_test.sh | 43 + gold/testsuite/file_in_many_sections_test.sh | 2 +- gold/testsuite/gc_dynamic_list_test.c | 2 +- gold/testsuite/gc_dynamic_list_test.sh | 2 +- gold/testsuite/gc_orphan_section_test.cc | 2 +- gold/testsuite/gc_tls_test.cc | 2 +- gold/testsuite/gdb_index_test.cc | 2 +- gold/testsuite/gdb_index_test_1.sh | 2 +- gold/testsuite/icf_preemptible_functions_test.sh | 2 +- gold/testsuite/icf_safe_so_test.cc | 2 +- gold/testsuite/icf_sht_rel_addend_test_1.cc | 2 +- gold/testsuite/icf_string_merge_test.cc | 2 +- gold/testsuite/icf_test.cc | 2 +- gold/testsuite/incremental_test.sh | 2 +- gold/testsuite/incremental_test_2.c | 2 +- gold/testsuite/initpri3.c | 2 +- gold/testsuite/justsyms.t | 2 +- gold/testsuite/justsyms_exec.c | 2 +- gold/testsuite/justsyms_lib.c | 2 +- gold/testsuite/memory_test.sh | 2 +- gold/testsuite/missing_key_func.sh | 2 +- gold/testsuite/no_version_test.c | 2 +- gold/testsuite/odr_violation2.cc | 8 + gold/testsuite/pie_copyrelocs_shared_test.cc | 2 +- gold/testsuite/plugin_common_test_1.c | 2 +- gold/testsuite/plugin_final_layout.sh | 16 +- gold/testsuite/plugin_new_section_layout.c | 182 + gold/testsuite/plugin_section_alignment.cc | 2 +- gold/testsuite/plugin_test.c | 2 +- gold/testsuite/plugin_test_10.sh | 2 +- gold/testsuite/plugin_test_11.sh | 2 +- gold/testsuite/plugin_test_2.sh | 2 +- gold/testsuite/plugin_test_7_2.c | 2 +- gold/testsuite/plugin_test_start_lib.sh | 2 +- gold/testsuite/pr20717.sh | 2 +- gold/testsuite/pr22266_a.c | 13 + gold/testsuite/pr22266_main.c | 13 + gold/testsuite/pr22266_script.t | 24 + gold/testsuite/relro_test.sh | 2 +- gold/testsuite/relro_test_main.cc | 2 +- gold/testsuite/script_test_14.sh | 2 +- gold/testsuite/script_test_4.sh | 2 +- gold/testsuite/script_test_5.cc | 2 +- gold/testsuite/script_test_5.t | 2 +- gold/testsuite/script_test_9.sh | 2 +- gold/testsuite/section_sorting_name.cc | 2 +- gold/testsuite/section_sorting_name.sh | 2 +- gold/testsuite/split_x32.sh | 2 +- gold/testsuite/strong_ref_weak_def_2.c | 2 +- gold/testsuite/test.cc | 2 +- gold/testsuite/text_section_grouping.sh | 2 +- gold/testsuite/thin_archive_test_2.cc | 2 +- gold/testsuite/thin_archive_test_4.cc | 2 +- gold/testsuite/tls_test.cc | 2 +- gold/testsuite/two_file_shared.sh | 2 +- gold/testsuite/two_file_test.h | 2 +- gold/testsuite/two_file_test_1.cc | 3 + gold/testsuite/two_file_test_1_v1.cc | 3 + gold/testsuite/two_file_test_main.cc | 2 +- gold/testsuite/two_file_test_tls.cc | 2 +- gold/testsuite/ver_matching_test.sh | 2 +- gold/testsuite/ver_test.h | 2 +- gold/testsuite/ver_test_1.sh | 2 +- gold/testsuite/ver_test_10.script | 2 +- gold/testsuite/ver_test_10.sh | 2 +- gold/testsuite/ver_test_4.cc | 2 +- gold/testsuite/ver_test_4.script | 2 +- gold/testsuite/ver_test_6.c | 2 +- gold/testsuite/ver_test_8.script | 2 +- gold/testsuite/weak_alias_test_1.cc | 2 +- gold/testsuite/weak_plt.sh | 2 +- gold/testsuite/weak_undef_file1.cc | 2 +- gold/testsuite/weak_undef_file3.cc | 2 +- gold/testsuite/x32_overflow_pc32.sh | 2 +- gold/testsuite/x86_64_mov_to_lea.sh | 2 +- gold/tilegx.cc | 2 +- gold/timer.cc | 2 +- gold/timer.h | 2 +- gold/tls.h | 2 +- gold/token.h | 2 +- gold/version.cc | 6 +- gold/workqueue-internal.h | 2 +- gold/workqueue-threads.cc | 2 +- gold/workqueue.cc | 2 +- gold/workqueue.h | 2 +- gold/x86_64.cc | 40 +- gold/yyscript.y | 2 +- gprof/ChangeLog | 49 +- gprof/ChangeLog-2017 | 69 + gprof/MAINTAINERS | 2 +- gprof/Makefile.am | 2 +- gprof/Makefile.in | 2 +- gprof/README | 2 +- gprof/TODO | 2 +- gprof/basic_blocks.c | 2 +- gprof/basic_blocks.h | 2 +- gprof/bb_exit_func.c | 2 +- gprof/bbconv.pl | 2 +- gprof/bsd_callg_bl.m | 2 +- gprof/call_graph.c | 2 +- gprof/call_graph.h | 2 +- gprof/cg_arcs.h | 2 +- gprof/cg_dfn.h | 2 +- gprof/cg_print.c | 2 +- gprof/cg_print.h | 2 +- gprof/configure | 20 +- gprof/configure.ac | 2 +- gprof/corefile.c | 2 +- gprof/corefile.h | 2 +- gprof/flat_bl.m | 2 +- gprof/fsf_callg_bl.m | 2 +- gprof/gmon_io.c | 2 +- gprof/gmon_io.h | 2 +- gprof/gmon_out.h | 2 +- gprof/gprof.texi | 6 +- gprof/hertz.h | 2 +- gprof/hist.c | 2 +- gprof/hist.h | 2 +- gprof/po/Make-in | 10 +- gprof/po/gprof.pot | 2 +- gprof/search_list.c | 2 +- gprof/search_list.h | 2 +- gprof/source.c | 2 +- gprof/source.h | 2 +- gprof/sym_ids.c | 2 +- gprof/sym_ids.h | 2 +- gprof/symtab.c | 2 +- gprof/symtab.h | 2 +- gprof/utils.h | 2 +- include/ChangeLog | 769 +- include/ChangeLog-2017 | 871 + include/MAINTAINERS | 2 +- include/alloca-conf.h | 2 +- include/ansidecl.h | 2 +- include/aout/adobe.h | 2 +- include/aout/aout64.h | 2 +- include/aout/ar.h | 2 +- include/aout/dynix3.h | 2 +- include/aout/encap.h | 2 +- include/aout/host.h | 2 +- include/aout/hp.h | 2 +- include/aout/hp300hpux.h | 2 +- include/aout/hppa.h | 2 +- include/aout/ranlib.h | 2 +- include/aout/reloc.h | 2 +- include/aout/stab.def | 2 +- include/aout/stab_gnu.h | 2 +- include/aout/sun4.h | 2 +- include/bfdlink.h | 5 +- include/binary-io.h | 2 +- include/bout.h | 2 +- include/cgen/basic-modes.h | 2 +- include/cgen/basic-ops.h | 2 +- include/cgen/bitset.h | 2 +- include/coff/alpha.h | 2 +- include/coff/apollo.h | 2 +- include/coff/arm.h | 2 +- include/coff/aux-coff.h | 2 +- include/coff/ecoff.h | 2 +- include/coff/external.h | 2 +- include/coff/go32exe.h | 2 +- include/coff/h8300.h | 2 +- include/coff/h8500.h | 2 +- include/coff/i386.h | 2 +- include/coff/i860.h | 2 +- include/coff/i960.h | 2 +- include/coff/ia64.h | 2 +- include/coff/internal.h | 2 +- include/coff/m68k.h | 2 +- include/coff/m88k.h | 2 +- include/coff/mcore.h | 2 +- include/coff/mips.h | 2 +- include/coff/mipspe.h | 2 +- include/coff/pe.h | 7 +- include/coff/powerpc.h | 2 +- include/coff/rs6000.h | 2 +- include/coff/rs6k64.h | 2 +- include/coff/sh.h | 2 +- include/coff/sparc.h | 2 +- include/coff/ti.h | 2 +- include/coff/tic30.h | 2 +- include/coff/tic4x.h | 2 +- include/coff/tic54x.h | 2 +- include/coff/tic80.h | 2 +- include/coff/w65.h | 2 +- include/coff/we32k.h | 2 +- include/coff/x86_64.h | 2 +- include/coff/xcoff.h | 2 +- include/coff/z80.h | 2 +- include/coff/z8k.h | 2 +- include/demangle.h | 2 +- include/dis-asm.h | 2 +- include/dwarf2.def | 2 +- include/dwarf2.h | 2 +- include/dyn-string.h | 2 +- include/elf/aarch64.h | 2 +- include/elf/alpha.h | 2 +- include/elf/arc-cpu.def | 2 +- include/elf/arc-reloc.def | 2 +- include/elf/arc.h | 2 +- include/elf/arm.h | 2 +- include/elf/avr.h | 2 +- include/elf/bfin.h | 2 +- include/elf/common.h | 2 +- include/elf/cr16.h | 2 +- include/elf/cr16c.h | 2 +- include/elf/cris.h | 2 +- include/elf/crx.h | 2 +- include/elf/d10v.h | 2 +- include/elf/d30v.h | 2 +- include/elf/dlx.h | 2 +- include/elf/dwarf.h | 2 +- include/elf/epiphany.h | 2 +- include/elf/external.h | 18 +- include/elf/fr30.h | 2 +- include/elf/frv.h | 2 +- include/elf/ft32.h | 2 +- include/elf/h8.h | 2 +- include/elf/hppa.h | 2 +- include/elf/i370.h | 2 +- include/elf/i386.h | 2 +- include/elf/i860.h | 2 +- include/elf/i960.h | 2 +- include/elf/ia64.h | 2 +- include/elf/internal.h | 2 +- include/elf/ip2k.h | 2 +- include/elf/iq2000.h | 2 +- include/elf/lm32.h | 2 +- include/elf/m32c.h | 2 +- include/elf/m32r.h | 2 +- include/elf/m68hc11.h | 2 +- include/elf/m68k.h | 2 +- include/elf/mcore.h | 2 +- include/elf/mep.h | 2 +- include/elf/metag.h | 2 +- include/elf/microblaze.h | 2 +- include/elf/mips.h | 2 +- include/elf/mmix.h | 2 +- include/elf/mn10200.h | 2 +- include/elf/mn10300.h | 2 +- include/elf/moxie.h | 2 +- include/elf/msp430.h | 2 +- include/elf/mt.h | 2 +- include/elf/nds32.h | 2 +- include/elf/nios2.h | 2 +- include/elf/or1k.h | 2 +- include/elf/pj.h | 2 +- include/elf/ppc.h | 2 +- include/elf/ppc64.h | 2 +- include/elf/pru.h | 2 +- include/elf/reloc-macros.h | 2 +- include/elf/riscv.h | 2 +- include/elf/rl78.h | 2 +- include/elf/rx.h | 2 +- include/elf/s390.h | 2 +- include/elf/score.h | 2 +- include/elf/sh.h | 2 +- include/elf/sparc.h | 2 +- include/elf/spu.h | 2 +- include/elf/tic6x-attrs.h | 2 +- include/elf/tic6x.h | 2 +- include/elf/tilegx.h | 2 +- include/elf/tilepro.h | 2 +- include/elf/v850.h | 2 +- include/elf/vax.h | 2 +- include/elf/visium.h | 2 +- include/elf/vxworks.h | 2 +- include/elf/wasm32.h | 2 +- include/elf/x86-64.h | 2 +- include/elf/xc16x.h | 2 +- include/elf/xgate.h | 2 +- include/elf/xstormy16.h | 2 +- include/elf/xtensa.h | 2 +- include/environ.h | 2 +- include/fibheap.h | 2 +- include/filenames.h | 2 +- include/floatformat.h | 2 +- include/fnmatch.h | 2 +- include/fopen-bin.h | 2 +- include/fopen-same.h | 2 +- include/fopen-vms.h | 2 +- include/gcc-c-fe.def | 2 +- include/gcc-c-interface.h | 2 +- include/gcc-cp-fe.def | 2 +- include/gcc-cp-interface.h | 2 +- include/gcc-interface.h | 2 +- include/gdb/ChangeLog | 2 +- include/gdb/callback.h | 2 +- include/gdb/fileio.h | 2 +- include/gdb/gdb-index.h | 2 +- include/gdb/remote-sim.h | 2 +- include/gdb/section-scripts.h | 2 +- include/gdb/signals.def | 2 +- include/gdb/signals.h | 2 +- include/gdb/sim-aarch64.h | 2 +- include/gdb/sim-arm.h | 2 +- include/gdb/sim-bfin.h | 2 +- include/gdb/sim-cr16.h | 2 +- include/gdb/sim-d10v.h | 2 +- include/gdb/sim-frv.h | 2 +- include/gdb/sim-ft32.h | 2 +- include/gdb/sim-h8300.h | 2 +- include/gdb/sim-lm32.h | 2 +- include/gdb/sim-m32c.h | 2 +- include/gdb/sim-ppc.h | 2 +- include/gdb/sim-rl78.h | 2 +- include/gdb/sim-rx.h | 2 +- include/gdb/sim-sh.h | 2 +- include/getopt.h | 2 +- include/hashtab.h | 2 +- include/hp-symtab.h | 2 +- include/ieee.h | 2 +- include/leb128.h | 2 +- include/libiberty.h | 2 +- include/longlong.h | 2 +- include/lto-symtab.h | 2 +- include/mach-o/arm.h | 2 +- include/mach-o/arm64.h | 2 +- include/mach-o/codesign.h | 2 +- include/mach-o/external.h | 2 +- include/mach-o/loader.h | 2 +- include/mach-o/reloc.h | 2 +- include/mach-o/unwind.h | 2 +- include/mach-o/x86-64.h | 2 +- include/md5.h | 2 +- include/nlm/alpha-ext.h | 2 +- include/nlm/common.h | 2 +- include/nlm/external.h | 2 +- include/nlm/i386-ext.h | 2 +- include/nlm/internal.h | 2 +- include/nlm/ppc-ext.h | 2 +- include/nlm/sparc32-ext.h | 2 +- include/oasys.h | 2 +- include/objalloc.h | 2 +- include/obstack.h | 2 +- include/opcode/aarch64.h | 27 +- include/opcode/alpha.h | 2 +- include/opcode/arc-attrs.h | 2 +- include/opcode/arc-func.h | 2 +- include/opcode/arc.h | 2 +- include/opcode/arm.h | 12 +- include/opcode/avr.h | 2 +- include/opcode/bfin.h | 2 +- include/opcode/cgen.h | 2 +- include/opcode/convex.h | 2 +- include/opcode/cr16.h | 2 +- include/opcode/cris.h | 2 +- include/opcode/crx.h | 2 +- include/opcode/d10v.h | 2 +- include/opcode/d30v.h | 2 +- include/opcode/dlx.h | 2 +- include/opcode/ft32.h | 2 +- include/opcode/h8300.h | 2 +- include/opcode/hppa.h | 2 +- include/opcode/i370.h | 2 +- include/opcode/i386.h | 2 +- include/opcode/i860.h | 2 +- include/opcode/i960.h | 2 +- include/opcode/ia64.h | 2 +- include/opcode/m68hc11.h | 2 +- include/opcode/m68k.h | 2 +- include/opcode/m88k.h | 2 +- include/opcode/metag.h | 2 +- include/opcode/mips.h | 2 +- include/opcode/mmix.h | 2 +- include/opcode/mn10200.h | 2 +- include/opcode/mn10300.h | 2 +- include/opcode/moxie.h | 2 +- include/opcode/msp430-decode.h | 2 +- include/opcode/msp430.h | 2 +- include/opcode/nds32.h | 2 +- include/opcode/nios2.h | 2 +- include/opcode/nios2r1.h | 2 +- include/opcode/nios2r2.h | 2 +- include/opcode/np1.h | 2 +- include/opcode/ns32k.h | 2 +- include/opcode/pdp11.h | 2 +- include/opcode/pj.h | 2 +- include/opcode/pn.h | 2 +- include/opcode/ppc.h | 24 +- include/opcode/pru.h | 2 +- include/opcode/pyr.h | 2 +- include/opcode/riscv-opc.h | 368 +- include/opcode/riscv.h | 2 +- include/opcode/rl78.h | 2 +- include/opcode/rx.h | 2 +- include/opcode/s390.h | 2 +- include/opcode/score-datadep.h | 2 +- include/opcode/score-inst.h | 2 +- include/opcode/sparc.h | 2 +- include/opcode/spu-insns.h | 2 +- include/opcode/spu.h | 2 +- include/opcode/tahoe.h | 2 +- include/opcode/tic30.h | 2 +- include/opcode/tic4x.h | 2 +- include/opcode/tic54x.h | 2 +- include/opcode/tic6x-control-registers.h | 2 +- include/opcode/tic6x-insn-formats.h | 2 +- include/opcode/tic6x-opcode-table.h | 2 +- include/opcode/tic6x.h | 2 +- include/opcode/tic80.h | 2 +- include/opcode/tilegx.h | 2 +- include/opcode/tilepro.h | 2 +- include/opcode/v850.h | 2 +- include/opcode/vax.h | 2 +- include/opcode/visium.h | 2 +- include/opcode/wasm.h | 2 +- include/opcode/xgate.h | 2 +- include/os9k.h | 2 +- include/partition.h | 2 +- include/plugin-api.h | 20 +- include/progress.h | 2 +- include/safe-ctype.h | 2 +- include/sha1.h | 2 +- include/simple-object.h | 2 +- include/som/aout.h | 2 +- include/som/clock.h | 2 +- include/som/internal.h | 2 +- include/som/lst.h | 2 +- include/som/reloc.h | 2 +- include/sort.h | 2 +- include/splay-tree.h | 2 +- include/symcat.h | 2 +- include/timeval-utils.h | 2 +- include/vms/dcx.h | 2 +- include/vms/dmt.h | 2 +- include/vms/dsc.h | 2 +- include/vms/dst.h | 2 +- include/vms/eeom.h | 2 +- include/vms/egps.h | 2 +- include/vms/egsd.h | 2 +- include/vms/egst.h | 2 +- include/vms/egsy.h | 2 +- include/vms/eiaf.h | 2 +- include/vms/eicp.h | 2 +- include/vms/eidc.h | 2 +- include/vms/eiha.h | 2 +- include/vms/eihd.h | 2 +- include/vms/eihi.h | 2 +- include/vms/eihs.h | 2 +- include/vms/eihvn.h | 2 +- include/vms/eisd.h | 2 +- include/vms/emh.h | 2 +- include/vms/eobjrec.h | 2 +- include/vms/esdf.h | 2 +- include/vms/esdfm.h | 2 +- include/vms/esdfv.h | 2 +- include/vms/esgps.h | 2 +- include/vms/esrf.h | 2 +- include/vms/etir.h | 2 +- include/vms/internal.h | 2 +- include/vms/lbr.h | 2 +- include/vms/prt.h | 2 +- include/vms/shl.h | 2 +- include/vtv-change-permission.h | 2 +- include/xregex2.h | 2 +- include/xtensa-config.h | 2 +- include/xtensa-isa-internal.h | 2 +- include/xtensa-isa.h | 2 +- ld/ChangeLog | 3928 +- ld/ChangeLog-2017 | 4038 + ld/MAINTAINERS | 2 +- ld/Makefile.am | 2 +- ld/Makefile.in | 2 +- ld/NEWS | 9 +- ld/README | 2 +- ld/configure | 20 +- ld/configure.ac | 2 +- ld/configure.host | 2 +- ld/configure.tgt | 2 +- ld/deffile.h | 2 +- ld/deffilep.y | 2 +- ld/emulparams/README | 2 +- ld/emulparams/elf32_x86_64.sh | 4 +- ld/emulparams/elf32lriscv-defs.sh | 14 +- ld/emulparams/elf32mcore.sh | 1 - ld/emulparams/elf_i386.sh | 4 +- ld/emulparams/elf_iamcu.sh | 4 +- ld/emulparams/elf_x86_64.sh | 4 +- ld/emultempl/README | 2 +- ld/emultempl/aarch64elf.em | 2 +- ld/emultempl/aix.em | 2 +- ld/emultempl/alphaelf.em | 2 +- ld/emultempl/arclinux.em | 2 +- ld/emultempl/armcoff.em | 2 +- ld/emultempl/armelf.em | 2 +- ld/emultempl/avrelf.em | 2 +- ld/emultempl/beos.em | 2 +- ld/emultempl/bfin.em | 2 +- ld/emultempl/cr16elf.em | 2 +- ld/emultempl/crxelf.em | 2 +- ld/emultempl/elf-generic.em | 2 +- ld/emultempl/elf32.em | 115 +- ld/emultempl/epiphanyelf_4x4.em | 2 +- ld/emultempl/genelf.em | 2 +- ld/emultempl/generic.em | 2 +- ld/emultempl/gld960.em | 2 +- ld/emultempl/gld960c.em | 2 +- ld/emultempl/hppaelf.em | 2 +- ld/emultempl/ia64elf.em | 2 +- ld/emultempl/irix.em | 2 +- ld/emultempl/linux.em | 2 +- ld/emultempl/lnk960.em | 2 +- ld/emultempl/m68hc1xelf.em | 2 +- ld/emultempl/m68kcoff.em | 2 +- ld/emultempl/m68kelf.em | 2 +- ld/emultempl/metagelf.em | 2 +- ld/emultempl/mipself.em | 2 +- ld/emultempl/mmix-elfnmmo.em | 2 +- ld/emultempl/mmixelf.em | 2 +- ld/emultempl/mmo.em | 2 +- ld/emultempl/msp430.em | 2 +- ld/emultempl/nds32elf.em | 2 +- ld/emultempl/needrelax.em | 2 +- ld/emultempl/netbsd.em | 2 +- ld/emultempl/nios2elf.em | 2 +- ld/emultempl/pe.em | 2 +- ld/emultempl/pep.em | 2 +- ld/emultempl/ppc32elf.em | 117 +- ld/emultempl/ppc64elf.em | 32 +- ld/emultempl/pruelf.em | 2 +- ld/emultempl/riscvelf.em | 2 +- ld/emultempl/rxelf.em | 2 +- ld/emultempl/s390.em | 2 +- ld/emultempl/scoreelf.em | 2 +- ld/emultempl/sh64elf.em | 2 +- ld/emultempl/solaris2.em | 70 +- ld/emultempl/spu_ovl.S | 2 +- ld/emultempl/spuelf.em | 4 +- ld/emultempl/sunos.em | 2 +- ld/emultempl/tic6xdsbt.em | 2 +- ld/emultempl/ticoff.em | 2 +- ld/emultempl/v850elf.em | 23 +- ld/emultempl/vanilla.em | 2 +- ld/emultempl/vms.em | 2 +- ld/emultempl/vxworks.em | 2 +- ld/emultempl/xtensaelf.em | 2 +- ld/emultempl/z80.em | 2 +- ld/gen-doc.texi | 2 +- ld/genscripts.sh | 78 +- ld/h8-doc.texi | 2 +- ld/ld.h | 2 +- ld/ld.texinfo | 37 +- ld/ldbuildid.c | 2 +- ld/ldbuildid.h | 2 +- ld/ldcref.c | 2 +- ld/ldctor.c | 2 +- ld/ldctor.h | 2 +- ld/ldemul.c | 2 +- ld/ldemul.h | 2 +- ld/ldexp.c | 387 +- ld/ldexp.h | 52 +- ld/ldfile.c | 2 +- ld/ldfile.h | 2 +- ld/ldgram.y | 2 +- ld/ldint.texinfo | 6 +- ld/ldlang.c | 244 +- ld/ldlang.h | 2 +- ld/ldlex-wrapper.c | 2 +- ld/ldlex.h | 2 +- ld/ldlex.l | 2 +- ld/ldmain.c | 2 +- ld/ldmain.h | 2 +- ld/ldmisc.c | 207 +- ld/ldmisc.h | 2 +- ld/ldver.c | 4 +- ld/ldver.h | 2 +- ld/ldwrite.c | 6 +- ld/ldwrite.h | 2 +- ld/lexsup.c | 6 +- ld/mri.c | 2 +- ld/mri.h | 2 +- ld/pe-dll.c | 5 +- ld/pe-dll.h | 2 +- ld/pep-dll.c | 2 +- ld/pep-dll.h | 2 +- ld/plugin.c | 2 +- ld/plugin.h | 2 +- ld/po/Make-in | 10 +- ld/po/ld.pot | 551 +- ld/po/pt_BR.po | 566 +- ld/po/uk.po | 600 +- ld/scripttempl/DWARF.sc | 2 +- ld/scripttempl/README | 2 +- ld/scripttempl/aix.sc | 4 +- ld/scripttempl/alpha.sc | 4 +- ld/scripttempl/alphavms.sc | 4 +- ld/scripttempl/aout.sc | 4 +- ld/scripttempl/arclinux.sc | 4 +- ld/scripttempl/armaout.sc | 4 +- ld/scripttempl/armbpabi.sc | 4 +- ld/scripttempl/armcoff.sc | 4 +- ld/scripttempl/avr.sc | 4 +- ld/scripttempl/crisaout.sc | 4 +- ld/scripttempl/delta68.sc | 4 +- ld/scripttempl/dlx.sc | 4 +- ld/scripttempl/elf.sc | 46 +- ld/scripttempl/elf32cr16.sc | 4 +- ld/scripttempl/elf32cr16c.sc | 4 +- ld/scripttempl/elf32crx.sc | 4 +- ld/scripttempl/elf32msp430.sc | 4 +- ld/scripttempl/elf32msp430_3.sc | 4 +- ld/scripttempl/elf32sh-symbian.sc | 4 +- ld/scripttempl/elf32xc16x.sc | 4 +- ld/scripttempl/elf32xc16xl.sc | 4 +- ld/scripttempl/elf32xc16xs.sc | 4 +- ld/scripttempl/elf64hppa.sc | 4 +- ld/scripttempl/elf_chaos.sc | 4 +- ld/scripttempl/elfd10v.sc | 4 +- ld/scripttempl/elfd30v.sc | 4 +- ld/scripttempl/elfi370.sc | 4 +- ld/scripttempl/elfm68hc11.sc | 4 +- ld/scripttempl/elfm68hc12.sc | 4 +- ld/scripttempl/elfmicroblaze.sc | 4 +- ld/scripttempl/elfxgate.sc | 4 +- ld/scripttempl/elfxtensa.sc | 4 +- ld/scripttempl/epiphany_4x4.sc | 4 +- ld/scripttempl/epocpe.sc | 4 +- ld/scripttempl/h8300.sc | 4 +- ld/scripttempl/h8300h.sc | 4 +- ld/scripttempl/h8300hn.sc | 4 +- ld/scripttempl/h8300s.sc | 4 +- ld/scripttempl/h8300sn.sc | 4 +- ld/scripttempl/h8300sx.sc | 4 +- ld/scripttempl/h8300sxn.sc | 4 +- ld/scripttempl/h8500.sc | 4 +- ld/scripttempl/h8500b.sc | 4 +- ld/scripttempl/h8500c.sc | 4 +- ld/scripttempl/h8500m.sc | 4 +- ld/scripttempl/h8500s.sc | 4 +- ld/scripttempl/hppaelf.sc | 4 +- ld/scripttempl/i386beos.sc | 4 +- ld/scripttempl/i386coff.sc | 4 +- ld/scripttempl/i386go32.sc | 4 +- ld/scripttempl/i386msdos.sc | 4 +- ld/scripttempl/i860coff.sc | 4 +- ld/scripttempl/i960.sc | 4 +- ld/scripttempl/ia64vms.sc | 4 +- ld/scripttempl/ip2k.sc | 4 +- ld/scripttempl/iq2000.sc | 4 +- ld/scripttempl/m68kaux.sc | 4 +- ld/scripttempl/m68kcoff.sc | 4 +- ld/scripttempl/m88kbcs.sc | 4 +- ld/scripttempl/mcorepe.sc | 4 +- ld/scripttempl/mep.sc | 4 +- ld/scripttempl/mips.sc | 4 +- ld/scripttempl/mipsbsd.sc | 4 +- ld/scripttempl/mmo.sc | 4 +- ld/scripttempl/moxie.sc | 4 +- ld/scripttempl/nds32elf.sc | 4 +- ld/scripttempl/nw.sc | 4 +- ld/scripttempl/pe.sc | 4 +- ld/scripttempl/pep.sc | 4 +- ld/scripttempl/pj.sc | 4 +- ld/scripttempl/ppcpe.sc | 4 +- ld/scripttempl/psos.sc | 4 +- ld/scripttempl/riscix.sc | 4 +- ld/scripttempl/sh.sc | 4 +- ld/scripttempl/sparccoff.sc | 4 +- ld/scripttempl/st2000.sc | 4 +- ld/scripttempl/tic30aout.sc | 4 +- ld/scripttempl/tic30coff.sc | 4 +- ld/scripttempl/tic4xcoff.sc | 4 +- ld/scripttempl/tic54xcoff.sc | 4 +- ld/scripttempl/tic80coff.sc | 4 +- ld/scripttempl/v850.sc | 4 +- ld/scripttempl/v850_rh850.sc | 4 +- ld/scripttempl/vanilla.sc | 2 +- ld/scripttempl/visium.sc | 2 +- ld/scripttempl/w65.sc | 4 +- ld/scripttempl/xstormy16.sc | 4 +- ld/scripttempl/z80.sc | 4 +- ld/scripttempl/z8000.sc | 4 +- ld/sysdep.h | 2 +- ld/testplug.c | 2 +- ld/testplug2.c | 2 +- ld/testplug3.c | 2 +- ld/testplug4.c | 2 +- ld/testsuite/config/default.exp | 4 +- ld/testsuite/ld-aarch64/aarch64-elf.exp | 4 +- ld/testsuite/ld-aarch64/emit-relocs-258-dyn-bad.d | 4 + ld/testsuite/ld-aarch64/emit-relocs-258.s | 6 + ld/testsuite/ld-aarch64/emit-relocs-259-dyn-bad.d | 4 + ld/testsuite/ld-aarch64/emit-relocs-259.s | 6 + ld/testsuite/ld-aarch64/gc-relocs-257.s | 8 +- ld/testsuite/ld-alpha/alpha.exp | 2 +- ld/testsuite/ld-alpha/tlsbin.rd | 2 +- ld/testsuite/ld-alpha/tlsbinr.rd | 2 +- ld/testsuite/ld-arc/arc.exp | 2 +- ld/testsuite/ld-arc/jli-simple.dd | 4 +- ld/testsuite/ld-arm/arm-elf.exp | 2 +- ld/testsuite/ld-arm/export-class.exp | 2 +- ld/testsuite/ld-auto-import/auto-import.exp | 2 +- ld/testsuite/ld-avr/avr.exp | 2 +- ld/testsuite/ld-avr/gc-section-debugline.d | 2 +- ld/testsuite/ld-bootstrap/bootstrap.exp | 2 +- ld/testsuite/ld-cdtest/cdtest.exp | 2 +- ld/testsuite/ld-checks/checks.exp | 2 +- ld/testsuite/ld-cris/cris.exp | 2 +- ld/testsuite/ld-crx/crx.exp | 2 +- ld/testsuite/ld-cygwin/exe-export.exp | 2 +- ld/testsuite/ld-d10v/d10v.exp | 2 +- ld/testsuite/ld-discard/discard.exp | 2 +- ld/testsuite/ld-elf/audit.exp | 2 +- ld/testsuite/ld-elf/binutils.exp | 2 +- ld/testsuite/ld-elf/comm-data.exp | 2 +- ld/testsuite/ld-elf/compress.exp | 2 +- ld/testsuite/ld-elf/compress1-alt.s | 12 + ld/testsuite/ld-elf/compress1.s | 2 +- ld/testsuite/ld-elf/compressed1d-alt.d | 10 + ld/testsuite/ld-elf/compressed1d.d | 4 +- ld/testsuite/ld-elf/dwarf.exp | 2 +- ld/testsuite/ld-elf/eh-frame-hdr.d | 4 +- ld/testsuite/ld-elf/eh-group.exp | 2 +- ld/testsuite/ld-elf/elf.exp | 54 +- ld/testsuite/ld-elf/exclude.exp | 2 +- ld/testsuite/ld-elf/export-class.exp | 2 +- ld/testsuite/ld-elf/frame.exp | 2 +- ld/testsuite/ld-elf/group1.d | 2 +- ld/testsuite/ld-elf/indirect.exp | 2 +- ld/testsuite/ld-elf/interleave-0.d | 9 + ld/testsuite/ld-elf/interleave-4.d | 9 + ld/testsuite/ld-elf/interleave.ld | 11 + ld/testsuite/ld-elf/interleave.s | 18 + ld/testsuite/ld-elf/linkinfo1a.d | 4 +- ld/testsuite/ld-elf/linkinfo1b.d | 4 +- ld/testsuite/ld-elf/note-3.t | 1 + ld/testsuite/ld-elf/pr16322.d | 2 +- ld/testsuite/ld-elf/pr21562c.t | 2 + ld/testsuite/ld-elf/pr21562d.t | 2 + ld/testsuite/ld-elf/pr21884.d | 2 +- ld/testsuite/ld-elf/pr22393-1.s | 21 + ld/testsuite/ld-elf/pr22393-1a.d | 9 + ld/testsuite/ld-elf/pr22393-1b.d | 9 + ld/testsuite/ld-elf/pr22393-1c.d | 9 + ld/testsuite/ld-elf/pr22393-1d.d | 9 + ld/testsuite/ld-elf/pr22393-1e.d | 9 + ld/testsuite/ld-elf/pr22393-1f.d | 9 + ld/testsuite/ld-elf/pr22393-2a.c | 7 + ld/testsuite/ld-elf/pr22393-2a.rd | 9 + ld/testsuite/ld-elf/pr22393-2b.c | 7 + ld/testsuite/ld-elf/pr22393-2b.rd | 9 + ld/testsuite/ld-elf/pr22423.d | 8 + ld/testsuite/ld-elf/pr22450.d | 12 + ld/testsuite/ld-elf/pr22450.s | 19 + ld/testsuite/ld-elf/pr22471.t | 1 + ld/testsuite/ld-elf/pr22471a.s | 1 + ld/testsuite/ld-elf/pr22471b.s | 17 + ld/testsuite/ld-elf/pr22649-1.s | 4 + ld/testsuite/ld-elf/pr22649-2a.s | 8 + ld/testsuite/ld-elf/pr22649-2b.s | 7 + ld/testsuite/ld-elf/pr22649.msg | 3 + ld/testsuite/ld-elf/pr22677.d | 18 + ld/testsuite/ld-elf/pr22677.s | 16 + ld/testsuite/ld-elf/provide-hidden.exp | 2 +- ld/testsuite/ld-elf/readelf.exp | 2 +- ld/testsuite/ld-elf/sec-to-seg.exp | 2 +- ld/testsuite/ld-elf/sec64k.exp | 2 +- ld/testsuite/ld-elf/shared.exp | 186 +- ld/testsuite/ld-elf/textrel.map | 3 + ld/testsuite/ld-elf/textrel.rd | 3 + ld/testsuite/ld-elf/textrel.s | 5 + ld/testsuite/ld-elf/textrel.warn | 3 + ld/testsuite/ld-elf/tls.exp | 2 +- ld/testsuite/ld-elf/tls_common.exp | 2 +- ld/testsuite/ld-elf/wrap.exp | 2 +- ld/testsuite/ld-elfcomm/elfcomm.exp | 2 +- ld/testsuite/ld-elfvers/vers.exp | 2 +- ld/testsuite/ld-elfvsb/elfvsb.exp | 2 +- ld/testsuite/ld-elfweak/alias.c | 3 + ld/testsuite/ld-elfweak/alias.dat | 1 + ld/testsuite/ld-elfweak/aliasmain.c | 12 + ld/testsuite/ld-elfweak/elfweak.exp | 167 +- ld/testsuite/ld-elfweak/weakref1.c | 2 + ld/testsuite/ld-elfweak/weakref2.c | 2 + ld/testsuite/ld-fastcall/fastcall.exp | 2 +- ld/testsuite/ld-frv/fdpic.exp | 2 +- ld/testsuite/ld-frv/frv-elf.exp | 2 +- ld/testsuite/ld-frv/tls.exp | 2 +- ld/testsuite/ld-gc/gc.exp | 2 +- ld/testsuite/ld-h8300/h8300.exp | 2 +- ld/testsuite/ld-i386/export-class.exp | 2 +- ld/testsuite/ld-i386/i386.exp | 2 +- ld/testsuite/ld-i386/no-plt.exp | 2 +- ld/testsuite/ld-i386/pr17935-1.d | 2 +- ld/testsuite/ld-i386/pr17935-2.d | 2 +- ld/testsuite/ld-i386/tls.exp | 2 +- ld/testsuite/ld-ia64/ia64.exp | 2 +- ld/testsuite/ld-ia64/line.exp | 2 +- ld/testsuite/ld-ia64/tlsbin.rd | 2 +- ld/testsuite/ld-ifunc/binutils.exp | 2 +- ld/testsuite/ld-ifunc/ifunc.exp | 8 +- ld/testsuite/ld-libs/libs.exp | 2 +- ld/testsuite/ld-linkonce/linkonce.exp | 2 +- ld/testsuite/ld-m68hc11/m68hc11.exp | 2 +- ld/testsuite/ld-m68k/m68k-got.exp | 2 +- ld/testsuite/ld-m68k/m68k.exp | 2 +- ld/testsuite/ld-mep/mep.exp | 2 +- ld/testsuite/ld-metag/metag.exp | 2 +- ld/testsuite/ld-mips-elf/comm-data.exp | 2 +- ld/testsuite/ld-mips-elf/export-class.exp | 2 +- ld/testsuite/ld-mips-elf/mips-elf-flags.exp | 2 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 2 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d | 4 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got | 2 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d | 4 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got | 2 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d | 4 +- ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got | 2 +- ld/testsuite/ld-misc/defsym.exp | 2 +- ld/testsuite/ld-mmix/mmix.exp | 2 +- ld/testsuite/ld-mn10300/mn10300.exp | 5 +- ld/testsuite/ld-msp430-elf/msp430-elf.exp | 2 +- ld/testsuite/ld-nds32/nds32.exp | 2 +- ld/testsuite/ld-pe/pe-compile.exp | 2 +- ld/testsuite/ld-pe/pe-run.exp | 2 +- ld/testsuite/ld-pe/pe-run2.exp | 2 +- ld/testsuite/ld-pe/pe.exp | 2 +- ld/testsuite/ld-pie/pie.exp | 2 +- ld/testsuite/ld-plugin/lto.exp | 37 +- ld/testsuite/ld-plugin/plugin.exp | 2 +- ld/testsuite/ld-plugin/pr22502a.c | 16 + ld/testsuite/ld-plugin/pr22502b.c | 3 + ld/testsuite/ld-plugin/pr22721.t | 7 + ld/testsuite/ld-plugin/pr22721a.s | 8 + ld/testsuite/ld-plugin/pr22721b.c | 7 + ld/testsuite/ld-powerpc/aix52.exp | 2 +- ld/testsuite/ld-powerpc/elfv2exe.d | 10 +- ld/testsuite/ld-powerpc/elfv2so.d | 20 +- ld/testsuite/ld-powerpc/export-class.exp | 2 +- ld/testsuite/ld-powerpc/powerpc.exp | 58 +- ld/testsuite/ld-powerpc/relbrlt.d | 44 +- ld/testsuite/ld-powerpc/relbrlt.s | 2 +- ld/testsuite/ld-powerpc/tlsexe.d | 5 +- ld/testsuite/ld-powerpc/tlsexe.r | 4 +- ld/testsuite/ld-powerpc/tlsexe32.d | 16 +- ld/testsuite/ld-powerpc/tlsexe32.g | 2 +- ld/testsuite/ld-powerpc/tlsexe32.r | 4 +- ld/testsuite/ld-powerpc/tlsexetoc.d | 5 +- ld/testsuite/ld-powerpc/tlsexetoc.r | 4 +- ld/testsuite/ld-powerpc/tlsopt5_32.d | 10 +- ld/testsuite/ld-powerpc/tlsso.d | 5 +- ld/testsuite/ld-powerpc/tlstocso.d | 5 +- ld/testsuite/ld-riscv-elf/c-lui.d | 4 +- ld/testsuite/ld-riscv-elf/c-lui.s | 4 +- ld/testsuite/ld-riscv-elf/disas-jalr.d | 13 + ld/testsuite/ld-riscv-elf/disas-jalr.s | 5 + ld/testsuite/ld-riscv-elf/gp-test-lib.sd | 9 + ld/testsuite/ld-riscv-elf/gp-test.s | 6 + ld/testsuite/ld-riscv-elf/gp-test.sd | 5 + ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 31 +- ld/testsuite/ld-s390/s390.exp | 2 +- ld/testsuite/ld-s390/tlsbin.rd | 2 +- ld/testsuite/ld-s390/tlsbin_64.rd | 2 +- ld/testsuite/ld-scripts/align.exp | 2 +- ld/testsuite/ld-scripts/alignof.exp | 2 +- ld/testsuite/ld-scripts/assert.exp | 2 +- ld/testsuite/ld-scripts/crossref.exp | 2 +- ld/testsuite/ld-scripts/data.exp | 2 +- ld/testsuite/ld-scripts/default-script.exp | 2 +- ld/testsuite/ld-scripts/defined.exp | 2 +- ld/testsuite/ld-scripts/dynamic-sections.exp | 2 +- ld/testsuite/ld-scripts/empty-address.exp | 2 +- ld/testsuite/ld-scripts/empty-aligned.exp | 2 +- ld/testsuite/ld-scripts/empty-orphan.exp | 2 +- ld/testsuite/ld-scripts/exclude-file.exp | 2 +- ld/testsuite/ld-scripts/expr.exp | 2 +- ld/testsuite/ld-scripts/extern.exp | 2 +- ld/testsuite/ld-scripts/include.exp | 2 +- ld/testsuite/ld-scripts/log2.exp | 2 +- ld/testsuite/ld-scripts/map-address.exp | 2 +- ld/testsuite/ld-scripts/overlay-size.exp | 2 +- ld/testsuite/ld-scripts/phdrs.exp | 2 +- ld/testsuite/ld-scripts/phdrs2.exp | 2 +- ld/testsuite/ld-scripts/phdrs3.exp | 2 +- ld/testsuite/ld-scripts/print-memory-usage.exp | 2 +- ld/testsuite/ld-scripts/provide-3.d | 1 + ld/testsuite/ld-scripts/provide-4-map.d | 13 - ld/testsuite/ld-scripts/provide-4.d | 2 +- ld/testsuite/ld-scripts/provide-4.map | 13 + ld/testsuite/ld-scripts/provide-5-map.d | 6 - ld/testsuite/ld-scripts/provide-5.d | 2 +- ld/testsuite/ld-scripts/provide-5.map | 6 + ld/testsuite/ld-scripts/provide-6.d | 9 + ld/testsuite/ld-scripts/provide-6.t | 11 + ld/testsuite/ld-scripts/provide-7.d | 8 + ld/testsuite/ld-scripts/provide-7.t | 11 + ld/testsuite/ld-scripts/provide-8.d | 8 + ld/testsuite/ld-scripts/provide-8.t | 14 + ld/testsuite/ld-scripts/provide.exp | 14 +- ld/testsuite/ld-scripts/rgn-at.exp | 2 +- ld/testsuite/ld-scripts/rgn-over.exp | 2 +- ld/testsuite/ld-scripts/script.exp | 2 +- ld/testsuite/ld-scripts/section-flags.exp | 2 +- ld/testsuite/ld-scripts/section-match.exp | 2 +- ld/testsuite/ld-scripts/size.exp | 2 +- ld/testsuite/ld-scripts/sizeof.exp | 2 +- ld/testsuite/ld-scripts/sort.exp | 2 +- ld/testsuite/ld-scripts/sysroot-prefix.exp | 2 +- ld/testsuite/ld-scripts/weak.exp | 2 +- ld/testsuite/ld-selective/sel-dump.exp | 2 +- ld/testsuite/ld-selective/selective.exp | 2 +- ld/testsuite/ld-sh/arch/arch.exp | 2 +- ld/testsuite/ld-sh/rd-sh.exp | 2 +- ld/testsuite/ld-sh/sh-vxworks.exp | 2 +- ld/testsuite/ld-sh/sh.exp | 2 +- ld/testsuite/ld-sh/sh64/rd-sh64.exp | 2 +- ld/testsuite/ld-sh/sh64/relax.exp | 2 +- ld/testsuite/ld-sh/sh64/relfail.exp | 2 +- ld/testsuite/ld-sh/sh64/sh64.exp | 2 +- ld/testsuite/ld-shared/shared.exp | 2 +- ld/testsuite/ld-size/size.exp | 2 +- ld/testsuite/ld-sparc/sparc.exp | 2 +- ld/testsuite/ld-sparc/tlssunbin32.rd | 2 +- ld/testsuite/ld-sparc/tlssunbin64.rd | 2 +- ld/testsuite/ld-spu/spu.exp | 2 +- ld/testsuite/ld-srec/srec.exp | 2 +- ld/testsuite/ld-tic6x/tic6x.exp | 2 +- ld/testsuite/ld-tilegx/tilegx.exp | 2 +- ld/testsuite/ld-tilepro/tilepro.exp | 2 +- ld/testsuite/ld-undefined/entry.exp | 2 +- ld/testsuite/ld-undefined/require-defined.exp | 2 +- ld/testsuite/ld-undefined/undefined.exp | 2 +- ld/testsuite/ld-undefined/weak-undef.exp | 2 +- ld/testsuite/ld-unique/pr21529.d | 2 +- ld/testsuite/ld-unique/unique.exp | 2 +- ld/testsuite/ld-v850/v850.exp | 2 +- ld/testsuite/ld-vax-elf/export-class.exp | 2 +- ld/testsuite/ld-vax-elf/vax-elf.exp | 2 +- ld/testsuite/ld-versados/versados.exp | 2 +- ld/testsuite/ld-visium/visium.exp | 2 +- ld/testsuite/ld-vxworks/vxworks.exp | 2 +- ld/testsuite/ld-x86-64/apic.d | 18 + ld/testsuite/ld-x86-64/apic.s | 13 + ld/testsuite/ld-x86-64/dwarfreloc.exp | 2 +- ld/testsuite/ld-x86-64/export-class.exp | 2 +- ld/testsuite/ld-x86-64/line.exp | 2 +- ld/testsuite/ld-x86-64/mpx.exp | 2 +- ld/testsuite/ld-x86-64/no-plt.exp | 2 +- ld/testsuite/ld-x86-64/pr17935-1.d | 2 +- ld/testsuite/ld-x86-64/pr17935-2.d | 2 +- ld/testsuite/ld-x86-64/pr22393-3a.c | 7 + ld/testsuite/ld-x86-64/pr22393-3a.rd | 9 + ld/testsuite/ld-x86-64/pr22393-3b.c | 7 + ld/testsuite/ld-x86-64/pr22393-3b.rd | 9 + ld/testsuite/ld-x86-64/tls.exp | 2 +- ld/testsuite/ld-x86-64/x86-64.exp | 74 +- ld/testsuite/ld-xc16x/xc16x.exp | 2 +- ld/testsuite/ld-xstormy16/xstormy16.exp | 2 +- ld/testsuite/ld-xtensa/coalesce.exp | 2 +- ld/testsuite/ld-xtensa/diff_overflow.exp | 2 +- ld/testsuite/ld-xtensa/lcall.exp | 2 +- ld/testsuite/ld-xtensa/xtensa.exp | 2 +- ld/testsuite/ld-z8k/z8k.exp | 2 +- ld/testsuite/lib/ld-lib.exp | 82 +- libiberty/ChangeLog | 64 + libiberty/Makefile.in | 2 +- libiberty/_doprnt.c | 2 +- libiberty/argv.c | 2 +- libiberty/asprintf.c | 2 +- libiberty/choose-temp.c | 2 +- libiberty/clock.c | 2 +- libiberty/concat.c | 2 +- libiberty/copying-lib.texi | 2 +- libiberty/cp-demangle.c | 150 +- libiberty/cp-demangle.h | 2 +- libiberty/cp-demint.c | 2 +- libiberty/cplus-dem.c | 2 +- libiberty/crc32.c | 2 +- libiberty/d-demangle.c | 2 +- libiberty/dwarfnames.c | 2 +- libiberty/dyn-string.c | 2 +- libiberty/fdmatch.c | 2 +- libiberty/fibheap.c | 2 +- libiberty/filename_cmp.c | 2 +- libiberty/floatformat.c | 2 +- libiberty/fnmatch.c | 2 +- libiberty/fopen_unlocked.c | 2 +- libiberty/gather-docs | 2 +- libiberty/getopt.c | 2 +- libiberty/getopt1.c | 2 +- libiberty/getruntime.c | 2 +- libiberty/hashtab.c | 2 +- libiberty/hex.c | 2 +- libiberty/lbasename.c | 2 +- libiberty/libiberty.texi | 4 +- libiberty/lrealpath.c | 2 +- libiberty/maint-tool | 2 +- libiberty/make-relative-prefix.c | 2 +- libiberty/make-temp-file.c | 2 +- libiberty/md5.c | 2 +- libiberty/memmem.c | 2 +- libiberty/mempcpy.c | 2 +- libiberty/mkstemps.c | 2 +- libiberty/objalloc.c | 2 +- libiberty/obstack.c | 2 +- libiberty/partition.c | 2 +- libiberty/pex-common.c | 2 +- libiberty/pex-common.h | 2 +- libiberty/pex-djgpp.c | 2 +- libiberty/pex-msdos.c | 2 +- libiberty/pex-one.c | 2 +- libiberty/pex-unix.c | 2 +- libiberty/pex-win32.c | 2 +- libiberty/pexecute.c | 2 +- libiberty/physmem.c | 2 +- libiberty/putenv.c | 2 +- libiberty/regex.c | 2 +- libiberty/rust-demangle.c | 2 +- libiberty/safe-ctype.c | 2 +- libiberty/setenv.c | 2 +- libiberty/setproctitle.c | 2 +- libiberty/sha1.c | 2 +- libiberty/simple-object-coff.c | 2 +- libiberty/simple-object-common.h | 2 +- libiberty/simple-object-elf.c | 70 +- libiberty/simple-object-mach-o.c | 2 +- libiberty/simple-object-xcoff.c | 2 +- libiberty/simple-object.c | 5 +- libiberty/snprintf.c | 2 +- libiberty/sort.c | 2 +- libiberty/spaces.c | 2 +- libiberty/splay-tree.c | 2 +- libiberty/stack-limit.c | 2 +- libiberty/stpcpy.c | 2 +- libiberty/stpncpy.c | 2 +- libiberty/strndup.c | 2 +- libiberty/strtod.c | 2 +- libiberty/strverscmp.c | 2 +- libiberty/testsuite/Makefile.in | 2 +- libiberty/testsuite/demangle-expected | 54 +- libiberty/testsuite/demangler-fuzzer.c | 2 +- libiberty/testsuite/test-demangle.c | 2 +- libiberty/testsuite/test-expandargv.c | 2 +- libiberty/testsuite/test-pexecute.c | 2 +- libiberty/testsuite/test-strtol.c | 2 +- libiberty/timeval-utils.c | 2 +- libiberty/unlink-if-ordinary.c | 2 +- libiberty/vasprintf.c | 2 +- libiberty/vfprintf.c | 2 +- libiberty/vprintf-support.c | 2 +- libiberty/vprintf-support.h | 2 +- libiberty/vsnprintf.c | 2 +- libiberty/vsprintf.c | 2 +- libiberty/xasprintf.c | 2 +- libiberty/xexit.c | 2 +- libiberty/xmalloc.c | 2 +- libiberty/xstrndup.c | 2 +- libiberty/xvasprintf.c | 2 +- opcodes/ChangeLog | 1564 +- opcodes/ChangeLog-2017 | 1977 + opcodes/MAINTAINERS | 2 +- opcodes/Makefile.am | 2 +- opcodes/Makefile.in | 2 +- opcodes/aarch64-asm-2.c | 395 +- opcodes/aarch64-asm.c | 34 +- opcodes/aarch64-asm.h | 3 +- opcodes/aarch64-dis-2.c | 8269 +- opcodes/aarch64-dis.c | 39 +- opcodes/aarch64-dis.h | 3 +- opcodes/aarch64-gen.c | 4 +- opcodes/aarch64-opc-2.c | 23 +- opcodes/aarch64-opc.c | 161 +- opcodes/aarch64-opc.h | 5 +- opcodes/aarch64-tbl.h | 244 +- opcodes/alpha-dis.c | 2 +- opcodes/alpha-opc.c | 2 +- opcodes/arc-dis.c | 64 +- opcodes/arc-dis.h | 2 +- opcodes/arc-ext-tbl.h | 2 +- opcodes/arc-ext.c | 2 +- opcodes/arc-ext.h | 2 +- opcodes/arc-fxi.h | 2 +- opcodes/arc-nps400-tbl.h | 8 +- opcodes/arc-opc.c | 6 +- opcodes/arc-regs.h | 2 +- opcodes/arc-tbl.h | 2 +- opcodes/arm-dis.c | 26 +- opcodes/avr-dis.c | 2 +- opcodes/bfin-dis.c | 2 +- opcodes/cgen-asm.c | 2 +- opcodes/cgen-asm.in | 2 +- opcodes/cgen-bitset.c | 2 +- opcodes/cgen-dis.c | 2 +- opcodes/cgen-dis.in | 2 +- opcodes/cgen-ibld.in | 2 +- opcodes/cgen-opc.c | 2 +- opcodes/cgen.sh | 2 +- opcodes/configure | 20 +- opcodes/configure.ac | 2 +- opcodes/configure.com | 2 +- opcodes/cr16-dis.c | 2 +- opcodes/cr16-opc.c | 2 +- opcodes/cris-dis.c | 2 +- opcodes/cris-opc.c | 2 +- opcodes/crx-dis.c | 2 +- opcodes/crx-opc.c | 2 +- opcodes/d10v-dis.c | 2 +- opcodes/d10v-opc.c | 2 +- opcodes/d30v-dis.c | 2 +- opcodes/d30v-opc.c | 2 +- opcodes/dis-buf.c | 2 +- opcodes/dis-init.c | 2 +- opcodes/disassemble.c | 7 +- opcodes/disassemble.h | 2 +- opcodes/dlx-dis.c | 2 +- opcodes/epiphany-asm.c | 2 +- opcodes/epiphany-desc.c | 2 +- opcodes/epiphany-desc.h | 2 +- opcodes/epiphany-dis.c | 2 +- opcodes/epiphany-ibld.c | 2 +- opcodes/epiphany-opc.c | 2 +- opcodes/epiphany-opc.h | 2 +- opcodes/fr30-asm.c | 2 +- opcodes/fr30-desc.c | 2 +- opcodes/fr30-desc.h | 2 +- opcodes/fr30-dis.c | 2 +- opcodes/fr30-ibld.c | 2 +- opcodes/fr30-opc.c | 2 +- opcodes/fr30-opc.h | 2 +- opcodes/frv-asm.c | 2 +- opcodes/frv-desc.c | 2 +- opcodes/frv-desc.h | 2 +- opcodes/frv-dis.c | 2 +- opcodes/frv-ibld.c | 2 +- opcodes/frv-opc.c | 2 +- opcodes/frv-opc.h | 2 +- opcodes/ft32-dis.c | 2 +- opcodes/ft32-opc.c | 2 +- opcodes/h8300-dis.c | 2 +- opcodes/h8500-dis.c | 2 +- opcodes/h8500-opc.h | 2 +- opcodes/hppa-dis.c | 2 +- opcodes/i370-dis.c | 2 +- opcodes/i370-opc.c | 2 +- opcodes/i386-dis-evex.h | 8 +- opcodes/i386-dis.c | 273 +- opcodes/i386-gen.c | 135 +- opcodes/i386-init.h | 705 +- opcodes/i386-opc.c | 2 +- opcodes/i386-opc.h | 60 +- opcodes/i386-opc.tbl | 8154 +- opcodes/i386-reg.tbl | 18 +- opcodes/i386-tbl.h |111784 ++++++++++---------- opcodes/i860-dis.c | 2 +- opcodes/i960-dis.c | 2 +- opcodes/ia64-asmtab.c | 2 +- opcodes/ia64-asmtab.h | 2 +- opcodes/ia64-dis.c | 2 +- opcodes/ia64-gen.c | 4 +- opcodes/ia64-opc-a.c | 2 +- opcodes/ia64-opc-b.c | 2 +- opcodes/ia64-opc-d.c | 2 +- opcodes/ia64-opc-f.c | 2 +- opcodes/ia64-opc-i.c | 2 +- opcodes/ia64-opc-m.c | 2 +- opcodes/ia64-opc-x.c | 2 +- opcodes/ia64-opc.c | 2 +- opcodes/ia64-opc.h | 2 +- opcodes/ip2k-asm.c | 2 +- opcodes/ip2k-desc.c | 2 +- opcodes/ip2k-desc.h | 2 +- opcodes/ip2k-dis.c | 2 +- opcodes/ip2k-ibld.c | 2 +- opcodes/ip2k-opc.c | 2 +- opcodes/ip2k-opc.h | 2 +- opcodes/iq2000-asm.c | 2 +- opcodes/iq2000-desc.c | 2 +- opcodes/iq2000-desc.h | 2 +- opcodes/iq2000-dis.c | 2 +- opcodes/iq2000-ibld.c | 2 +- opcodes/iq2000-opc.c | 2 +- opcodes/iq2000-opc.h | 2 +- opcodes/lm32-asm.c | 2 +- opcodes/lm32-desc.c | 2 +- opcodes/lm32-desc.h | 2 +- opcodes/lm32-dis.c | 2 +- opcodes/lm32-ibld.c | 2 +- opcodes/lm32-opc.c | 2 +- opcodes/lm32-opc.h | 2 +- opcodes/lm32-opinst.c | 2 +- opcodes/m10200-dis.c | 2 +- opcodes/m10200-opc.c | 2 +- opcodes/m10300-dis.c | 2 +- opcodes/m10300-opc.c | 2 +- opcodes/m32c-asm.c | 2 +- opcodes/m32c-desc.c | 2 +- opcodes/m32c-desc.h | 2 +- opcodes/m32c-dis.c | 2 +- opcodes/m32c-ibld.c | 2 +- opcodes/m32c-opc.c | 2 +- opcodes/m32c-opc.h | 2 +- opcodes/m32r-asm.c | 2 +- opcodes/m32r-desc.c | 2 +- opcodes/m32r-desc.h | 2 +- opcodes/m32r-dis.c | 2 +- opcodes/m32r-ibld.c | 2 +- opcodes/m32r-opc.c | 2 +- opcodes/m32r-opc.h | 2 +- opcodes/m32r-opinst.c | 2 +- opcodes/m68hc11-dis.c | 2 +- opcodes/m68hc11-opc.c | 2 +- opcodes/m68k-dis.c | 2 +- opcodes/m68k-opc.c | 2 +- opcodes/m88k-dis.c | 2 +- opcodes/makefile.vms | 2 +- opcodes/mcore-dis.c | 2 +- opcodes/mcore-opc.h | 2 +- opcodes/mep-asm.c | 2 +- opcodes/mep-desc.c | 2 +- opcodes/mep-desc.h | 2 +- opcodes/mep-dis.c | 2 +- opcodes/mep-ibld.c | 2 +- opcodes/mep-opc.c | 2 +- opcodes/mep-opc.h | 2 +- opcodes/metag-dis.c | 2 +- opcodes/microblaze-dis.c | 2 +- opcodes/microblaze-dis.h | 2 +- opcodes/microblaze-opc.h | 2 +- opcodes/microblaze-opcm.h | 2 +- opcodes/micromips-opc.c | 2 +- opcodes/mips-dis.c | 2 +- opcodes/mips-formats.h | 2 +- opcodes/mips-opc.c | 2 +- opcodes/mips16-opc.c | 2 +- opcodes/mmix-dis.c | 2 +- opcodes/mmix-opc.c | 2 +- opcodes/moxie-dis.c | 2 +- opcodes/moxie-opc.c | 2 +- opcodes/msp430-decode.c | 2 +- opcodes/msp430-decode.opc | 2 +- opcodes/msp430-dis.c | 2 +- opcodes/mt-asm.c | 2 +- opcodes/mt-desc.c | 2 +- opcodes/mt-desc.h | 2 +- opcodes/mt-dis.c | 2 +- opcodes/mt-ibld.c | 2 +- opcodes/mt-opc.c | 2 +- opcodes/mt-opc.h | 2 +- opcodes/nds32-asm.c | 2 +- opcodes/nds32-asm.h | 2 +- opcodes/nds32-dis.c | 2 +- opcodes/nds32-opc.h | 2 +- opcodes/nios2-dis.c | 2 +- opcodes/nios2-opc.c | 2 +- opcodes/ns32k-dis.c | 2 +- opcodes/opc2c.c | 2 +- opcodes/opintl.h | 2 +- opcodes/or1k-asm.c | 2 +- opcodes/or1k-desc.c | 2 +- opcodes/or1k-desc.h | 2 +- opcodes/or1k-dis.c | 2 +- opcodes/or1k-ibld.c | 2 +- opcodes/or1k-opc.c | 2 +- opcodes/or1k-opc.h | 2 +- opcodes/or1k-opinst.c | 2 +- opcodes/pdp11-dis.c | 2 +- opcodes/pdp11-opc.c | 2 +- opcodes/pj-dis.c | 2 +- opcodes/pj-opc.c | 2 +- opcodes/po/Make-in | 10 +- opcodes/po/de.po | 791 +- opcodes/po/opcodes.pot | 774 +- opcodes/po/pt_BR.po | 1917 +- opcodes/po/uk.po | 847 +- opcodes/po/zh_CN.po | 1378 +- opcodes/ppc-dis.c | 92 +- opcodes/ppc-opc.c | 942 +- opcodes/pru-dis.c | 2 +- opcodes/pru-opc.c | 2 +- opcodes/riscv-dis.c | 6 +- opcodes/riscv-opc.c | 62 +- opcodes/rl78-decode.c | 2 +- opcodes/rl78-decode.opc | 2 +- opcodes/rl78-dis.c | 2 +- opcodes/rx-decode.c | 2 +- opcodes/rx-decode.opc | 2 +- opcodes/rx-dis.c | 2 +- opcodes/s390-dis.c | 2 +- opcodes/s390-mkopc.c | 2 +- opcodes/s390-opc.c | 2 +- opcodes/s390-opc.txt | 2 +- opcodes/score-dis.c | 2 +- opcodes/score-opc.h | 2 +- opcodes/score7-dis.c | 2 +- opcodes/sh-dis.c | 2 +- opcodes/sh-opc.h | 2 +- opcodes/sh64-dis.c | 2 +- opcodes/sh64-opc.c | 2 +- opcodes/sh64-opc.h | 2 +- opcodes/sparc-dis.c | 2 +- opcodes/sparc-opc.c | 2 +- opcodes/spu-dis.c | 2 +- opcodes/spu-opc.c | 2 +- opcodes/sysdep.h | 2 +- opcodes/tic30-dis.c | 2 +- opcodes/tic4x-dis.c | 2 +- opcodes/tic54x-dis.c | 2 +- opcodes/tic54x-opc.c | 2 +- opcodes/tic6x-dis.c | 2 +- opcodes/tic80-dis.c | 2 +- opcodes/tic80-opc.c | 2 +- opcodes/tilegx-dis.c | 2 +- opcodes/tilegx-opc.c | 2 +- opcodes/tilepro-dis.c | 2 +- opcodes/tilepro-opc.c | 2 +- opcodes/v850-dis.c | 2 +- opcodes/v850-opc.c | 2 +- opcodes/vax-dis.c | 2 +- opcodes/visium-dis.c | 2 +- opcodes/visium-opc.c | 2 +- opcodes/w65-dis.c | 2 +- opcodes/w65-opc.h | 2 +- opcodes/wasm32-dis.c | 2 +- opcodes/xc16x-asm.c | 2 +- opcodes/xc16x-desc.c | 2 +- opcodes/xc16x-desc.h | 2 +- opcodes/xc16x-dis.c | 2 +- opcodes/xc16x-ibld.c | 2 +- opcodes/xc16x-opc.c | 2 +- opcodes/xc16x-opc.h | 2 +- opcodes/xgate-dis.c | 2 +- opcodes/xgate-opc.c | 2 +- opcodes/xstormy16-asm.c | 2 +- opcodes/xstormy16-desc.c | 2 +- opcodes/xstormy16-desc.h | 2 +- opcodes/xstormy16-dis.c | 2 +- opcodes/xstormy16-ibld.c | 2 +- opcodes/xstormy16-opc.c | 2 +- opcodes/xstormy16-opc.h | 2 +- opcodes/xtensa-dis.c | 2 +- opcodes/z80-dis.c | 2 +- opcodes/z8k-dis.c | 2 +- opcodes/z8k-opc.h | 2 +- opcodes/z8kgen.c | 4 +- sim/ChangeLog | 40 + sim/MAINTAINERS | 2 +- sim/Makefile.in | 2 +- sim/aarch64/Makefile.in | 2 +- sim/aarch64/configure.ac | 2 +- sim/aarch64/cpustate.c | 2 +- sim/aarch64/cpustate.h | 2 +- sim/aarch64/decode.h | 2 +- sim/aarch64/interp.c | 2 +- sim/aarch64/memory.c | 2 +- sim/aarch64/memory.h | 2 +- sim/aarch64/sim-main.h | 2 +- sim/aarch64/simulator.c | 2 +- sim/aarch64/simulator.h | 2 +- sim/arm/ChangeLog | 6 + sim/arm/Makefile.in | 2 +- sim/arm/iwmmxt.c | 2 +- sim/arm/iwmmxt.h | 2 +- sim/arm/maverick.c | 4 +- sim/arm/sim-main.h | 2 +- sim/arm/wrapper.c | 2 +- sim/avr/Makefile.in | 2 +- sim/avr/interp.c | 2 +- sim/avr/sim-main.h | 2 +- sim/bfin/Makefile.in | 2 +- sim/bfin/arch.h | 2 +- sim/bfin/bfin-sim.c | 2 +- sim/bfin/bfin-sim.h | 2 +- sim/bfin/devices.c | 2 +- sim/bfin/devices.h | 2 +- sim/bfin/dv-bfin_cec.c | 2 +- sim/bfin/dv-bfin_cec.h | 2 +- sim/bfin/dv-bfin_ctimer.c | 2 +- sim/bfin/dv-bfin_ctimer.h | 2 +- sim/bfin/dv-bfin_dma.c | 2 +- sim/bfin/dv-bfin_dma.h | 2 +- sim/bfin/dv-bfin_dmac.c | 2 +- sim/bfin/dv-bfin_dmac.h | 2 +- sim/bfin/dv-bfin_ebiu_amc.c | 2 +- sim/bfin/dv-bfin_ebiu_amc.h | 2 +- sim/bfin/dv-bfin_ebiu_ddrc.c | 2 +- sim/bfin/dv-bfin_ebiu_ddrc.h | 2 +- sim/bfin/dv-bfin_ebiu_sdc.c | 2 +- sim/bfin/dv-bfin_ebiu_sdc.h | 2 +- sim/bfin/dv-bfin_emac.c | 2 +- sim/bfin/dv-bfin_emac.h | 2 +- sim/bfin/dv-bfin_eppi.c | 2 +- sim/bfin/dv-bfin_eppi.h | 2 +- sim/bfin/dv-bfin_evt.c | 2 +- sim/bfin/dv-bfin_evt.h | 2 +- sim/bfin/dv-bfin_gpio.c | 2 +- sim/bfin/dv-bfin_gpio.h | 2 +- sim/bfin/dv-bfin_gpio2.c | 2 +- sim/bfin/dv-bfin_gpio2.h | 2 +- sim/bfin/dv-bfin_gptimer.c | 2 +- sim/bfin/dv-bfin_gptimer.h | 2 +- sim/bfin/dv-bfin_jtag.c | 2 +- sim/bfin/dv-bfin_jtag.h | 2 +- sim/bfin/dv-bfin_mmu.c | 2 +- sim/bfin/dv-bfin_mmu.h | 2 +- sim/bfin/dv-bfin_nfc.c | 2 +- sim/bfin/dv-bfin_nfc.h | 2 +- sim/bfin/dv-bfin_otp.c | 2 +- sim/bfin/dv-bfin_otp.h | 2 +- sim/bfin/dv-bfin_pfmon.c | 2 +- sim/bfin/dv-bfin_pfmon.h | 2 +- sim/bfin/dv-bfin_pint.c | 2 +- sim/bfin/dv-bfin_pint.h | 2 +- sim/bfin/dv-bfin_pll.c | 2 +- sim/bfin/dv-bfin_pll.h | 2 +- sim/bfin/dv-bfin_ppi.c | 2 +- sim/bfin/dv-bfin_ppi.h | 2 +- sim/bfin/dv-bfin_rtc.c | 2 +- sim/bfin/dv-bfin_rtc.h | 2 +- sim/bfin/dv-bfin_sic.c | 2 +- sim/bfin/dv-bfin_sic.h | 2 +- sim/bfin/dv-bfin_spi.c | 2 +- sim/bfin/dv-bfin_spi.h | 2 +- sim/bfin/dv-bfin_trace.c | 2 +- sim/bfin/dv-bfin_trace.h | 2 +- sim/bfin/dv-bfin_twi.c | 2 +- sim/bfin/dv-bfin_twi.h | 2 +- sim/bfin/dv-bfin_uart.c | 2 +- sim/bfin/dv-bfin_uart.h | 2 +- sim/bfin/dv-bfin_uart2.c | 2 +- sim/bfin/dv-bfin_uart2.h | 2 +- sim/bfin/dv-bfin_wdog.c | 2 +- sim/bfin/dv-bfin_wdog.h | 2 +- sim/bfin/dv-bfin_wp.c | 2 +- sim/bfin/dv-bfin_wp.h | 2 +- sim/bfin/dv-eth_phy.c | 2 +- sim/bfin/gui.c | 2 +- sim/bfin/gui.h | 2 +- sim/bfin/insn_list.def | 2 +- sim/bfin/interp.c | 2 +- sim/bfin/linux-fixed-code.s | 2 +- sim/bfin/machs.c | 2 +- sim/bfin/machs.h | 2 +- sim/bfin/proc_list.def | 2 +- sim/bfin/sim-main.h | 2 +- sim/common/ChangeLog | 18 + sim/common/Make-common.in | 2 +- sim/common/Makefile.in | 2 +- sim/common/callback.c | 2 +- sim/common/cgen-accfp.c | 40 + sim/common/cgen-cpu.h | 2 +- sim/common/cgen-defs.h | 2 +- sim/common/cgen-engine.h | 2 +- sim/common/cgen-fpu.h | 4 + sim/common/cgen-mem.h | 2 +- sim/common/cgen-ops.h | 20 +- sim/common/cgen-par.c | 2 +- sim/common/cgen-par.h | 2 +- sim/common/cgen-run.c | 2 +- sim/common/cgen-scache.c | 2 +- sim/common/cgen-scache.h | 2 +- sim/common/cgen-sim.h | 2 +- sim/common/cgen-trace.c | 2 +- sim/common/cgen-trace.h | 2 +- sim/common/cgen-types.h | 2 +- sim/common/cgen-utils.c | 2 +- sim/common/dv-cfi.c | 2 +- sim/common/dv-cfi.h | 2 +- sim/common/dv-core.c | 2 +- sim/common/dv-glue.c | 2 +- sim/common/dv-pal.c | 2 +- sim/common/dv-sockser.c | 2 +- sim/common/dv-sockser.h | 2 +- sim/common/genmloop.sh | 2 +- sim/common/hw-alloc.c | 2 +- sim/common/hw-alloc.h | 2 +- sim/common/hw-base.c | 2 +- sim/common/hw-base.h | 2 +- sim/common/hw-device.c | 2 +- sim/common/hw-device.h | 2 +- sim/common/hw-events.c | 2 +- sim/common/hw-events.h | 2 +- sim/common/hw-handles.c | 2 +- sim/common/hw-handles.h | 2 +- sim/common/hw-instances.c | 2 +- sim/common/hw-instances.h | 2 +- sim/common/hw-main.h | 2 +- sim/common/hw-ports.c | 2 +- sim/common/hw-ports.h | 2 +- sim/common/hw-properties.c | 2 +- sim/common/hw-properties.h | 2 +- sim/common/hw-tree.c | 2 +- sim/common/hw-tree.h | 2 +- sim/common/nrun.c | 2 +- sim/common/run.1 | 2 +- sim/common/sim-abort.c | 2 +- sim/common/sim-alu.h | 2 +- sim/common/sim-arange.c | 2 +- sim/common/sim-arange.h | 2 +- sim/common/sim-assert.h | 2 +- sim/common/sim-base.h | 2 +- sim/common/sim-basics.h | 2 +- sim/common/sim-bits.c | 2 +- sim/common/sim-bits.h | 2 +- sim/common/sim-close.c | 2 +- sim/common/sim-command.c | 2 +- sim/common/sim-config.c | 2 +- sim/common/sim-config.h | 2 +- sim/common/sim-core.c | 2 +- sim/common/sim-core.h | 2 +- sim/common/sim-cpu.c | 2 +- sim/common/sim-cpu.h | 2 +- sim/common/sim-endian.c | 2 +- sim/common/sim-endian.h | 2 +- sim/common/sim-engine.c | 2 +- sim/common/sim-engine.h | 2 +- sim/common/sim-events.c | 2 +- sim/common/sim-events.h | 2 +- sim/common/sim-fpu.c | 88 +- sim/common/sim-fpu.h | 15 +- sim/common/sim-hload.c | 2 +- sim/common/sim-hrw.c | 2 +- sim/common/sim-hw.c | 2 +- sim/common/sim-hw.h | 2 +- sim/common/sim-info.c | 2 +- sim/common/sim-inline.c | 2 +- sim/common/sim-inline.h | 2 +- sim/common/sim-io.c | 2 +- sim/common/sim-io.h | 2 +- sim/common/sim-load.c | 2 +- sim/common/sim-memopt.c | 2 +- sim/common/sim-memopt.h | 2 +- sim/common/sim-model.c | 2 +- sim/common/sim-model.h | 2 +- sim/common/sim-module.c | 2 +- sim/common/sim-module.h | 2 +- sim/common/sim-n-bits.h | 2 +- sim/common/sim-n-core.h | 2 +- sim/common/sim-n-endian.h | 2 +- sim/common/sim-options.c | 2 +- sim/common/sim-options.h | 2 +- sim/common/sim-profile.c | 2 +- sim/common/sim-profile.h | 2 +- sim/common/sim-reason.c | 2 +- sim/common/sim-reg.c | 2 +- sim/common/sim-resume.c | 2 +- sim/common/sim-run.c | 2 +- sim/common/sim-signal.c | 2 +- sim/common/sim-signal.h | 2 +- sim/common/sim-stop.c | 2 +- sim/common/sim-syscall.c | 2 +- sim/common/sim-syscall.h | 2 +- sim/common/sim-trace.c | 2 +- sim/common/sim-trace.h | 2 +- sim/common/sim-types.h | 2 +- sim/common/sim-utils.c | 2 +- sim/common/sim-utils.h | 2 +- sim/common/sim-watch.c | 2 +- sim/common/sim-watch.h | 2 +- sim/common/syscall.c | 2 +- sim/common/version.h | 2 +- sim/configure | 9 + sim/configure.tgt | 3 + sim/cr16/Makefile.in | 2 +- sim/cr16/cr16_sim.h | 2 +- sim/cr16/gencode.c | 2 +- sim/cr16/interp.c | 2 +- sim/cr16/sim-main.h | 2 +- sim/cr16/simops.c | 2 +- sim/cris/Makefile.in | 2 +- sim/cris/arch.c | 2 +- sim/cris/arch.h | 2 +- sim/cris/cpuall.h | 2 +- sim/cris/cpuv10.c | 2 +- sim/cris/cpuv10.h | 2 +- sim/cris/cpuv32.c | 2 +- sim/cris/cpuv32.h | 2 +- sim/cris/cris-desc.c | 2 +- sim/cris/cris-desc.h | 2 +- sim/cris/cris-opc.h | 2 +- sim/cris/cris-sim.h | 2 +- sim/cris/cris-tmpl.c | 2 +- sim/cris/crisv10f.c | 2 +- sim/cris/crisv32f.c | 2 +- sim/cris/decodev10.c | 2 +- sim/cris/decodev10.h | 2 +- sim/cris/decodev32.c | 2 +- sim/cris/decodev32.h | 2 +- sim/cris/dv-cris.c | 2 +- sim/cris/dv-cris_900000xx.c | 2 +- sim/cris/dv-rv.c | 2 +- sim/cris/mloop.in | 2 +- sim/cris/modelv10.c | 2 +- sim/cris/modelv32.c | 2 +- sim/cris/rvdummy.c | 2 +- sim/cris/semcrisv10f-switch.c | 2 +- sim/cris/semcrisv32f-switch.c | 2 +- sim/cris/sim-if.c | 2 +- sim/cris/sim-main.h | 2 +- sim/cris/traps.c | 2 +- sim/d10v/Makefile.in | 2 +- sim/d10v/sim-main.h | 2 +- sim/erc32/Makefile.in | 2 +- sim/erc32/configure.ac | 2 +- sim/erc32/erc32.c | 2 +- sim/erc32/exec.c | 2 +- sim/erc32/float.c | 2 +- sim/erc32/func.c | 2 +- sim/erc32/help.c | 2 +- sim/erc32/interf.c | 2 +- sim/erc32/sis.c | 2 +- sim/erc32/sis.h | 2 +- sim/erc32/startsim | 2 +- sim/frv/Makefile.in | 2 +- sim/frv/arch.c | 2 +- sim/frv/arch.h | 2 +- sim/frv/cache.c | 2 +- sim/frv/cache.h | 2 +- sim/frv/cpu.c | 2 +- sim/frv/cpu.h | 2 +- sim/frv/cpuall.h | 2 +- sim/frv/decode.c | 2 +- sim/frv/decode.h | 2 +- sim/frv/frv-sim.h | 2 +- sim/frv/frv.c | 2 +- sim/frv/interrupts.c | 2 +- sim/frv/memory.c | 2 +- sim/frv/mloop.in | 2 +- sim/frv/model.c | 2 +- sim/frv/options.c | 2 +- sim/frv/pipeline.c | 2 +- sim/frv/profile-fr400.c | 2 +- sim/frv/profile-fr400.h | 2 +- sim/frv/profile-fr450.c | 2 +- sim/frv/profile-fr500.c | 2 +- sim/frv/profile-fr500.h | 2 +- sim/frv/profile-fr550.c | 2 +- sim/frv/profile-fr550.h | 2 +- sim/frv/profile.c | 2 +- sim/frv/profile.h | 2 +- sim/frv/registers.c | 2 +- sim/frv/registers.h | 2 +- sim/frv/reset.c | 2 +- sim/frv/sem.c | 2 +- sim/frv/sim-if.c | 2 +- sim/frv/sim-main.h | 2 +- sim/frv/traps.c | 2 +- sim/ft32/Makefile.in | 2 +- sim/ft32/ft32-sim.h | 2 +- sim/ft32/interp.c | 2 +- sim/ft32/sim-main.h | 2 +- sim/h8300/Makefile.in | 2 +- sim/igen/Makefile.in | 2 +- sim/igen/compare_igen_models | 2 +- sim/igen/filter.c | 2 +- sim/igen/filter.h | 2 +- sim/igen/filter_host.c | 2 +- sim/igen/filter_host.h | 2 +- sim/igen/gen-engine.c | 2 +- sim/igen/gen-engine.h | 2 +- sim/igen/gen-icache.c | 2 +- sim/igen/gen-icache.h | 2 +- sim/igen/gen-idecode.c | 2 +- sim/igen/gen-idecode.h | 2 +- sim/igen/gen-itable.c | 2 +- sim/igen/gen-itable.h | 2 +- sim/igen/gen-model.c | 2 +- sim/igen/gen-model.h | 2 +- sim/igen/gen-semantics.c | 2 +- sim/igen/gen-semantics.h | 2 +- sim/igen/gen-support.c | 2 +- sim/igen/gen-support.h | 2 +- sim/igen/gen.c | 2 +- sim/igen/gen.h | 2 +- sim/igen/igen.c | 2 +- sim/igen/igen.h | 2 +- sim/igen/ld-cache.c | 2 +- sim/igen/ld-cache.h | 2 +- sim/igen/ld-decode.c | 2 +- sim/igen/ld-decode.h | 2 +- sim/igen/ld-insn.c | 2 +- sim/igen/ld-insn.h | 2 +- sim/igen/lf.c | 2 +- sim/igen/lf.h | 2 +- sim/igen/misc.c | 2 +- sim/igen/misc.h | 2 +- sim/igen/table.c | 2 +- sim/igen/table.h | 2 +- sim/iq2000/Makefile.in | 2 +- sim/iq2000/arch.c | 2 +- sim/iq2000/arch.h | 2 +- sim/iq2000/cpu.c | 2 +- sim/iq2000/cpu.h | 2 +- sim/iq2000/cpuall.h | 2 +- sim/iq2000/decode.c | 2 +- sim/iq2000/decode.h | 2 +- sim/iq2000/iq2000.c | 2 +- sim/iq2000/mloop.in | 2 +- sim/iq2000/model.c | 2 +- sim/iq2000/sem-switch.c | 2 +- sim/iq2000/sem.c | 2 +- sim/iq2000/sim-if.c | 2 +- sim/lm32/arch.c | 2 +- sim/lm32/arch.h | 2 +- sim/lm32/cpu.c | 2 +- sim/lm32/cpu.h | 2 +- sim/lm32/cpuall.h | 2 +- sim/lm32/decode.c | 2 +- sim/lm32/decode.h | 2 +- sim/lm32/dv-lm32cpu.c | 2 +- sim/lm32/dv-lm32timer.c | 2 +- sim/lm32/dv-lm32uart.c | 2 +- sim/lm32/lm32-sim.h | 2 +- sim/lm32/lm32.c | 2 +- sim/lm32/model.c | 2 +- sim/lm32/sem-switch.c | 2 +- sim/lm32/sem.c | 2 +- sim/lm32/sim-if.c | 2 +- sim/lm32/sim-main.h | 2 +- sim/lm32/traps.c | 2 +- sim/lm32/user.c | 2 +- sim/m32c/Makefile.in | 2 +- sim/m32c/configure.ac | 2 +- sim/m32c/cpu.h | 2 +- sim/m32c/gdb-if.c | 2 +- sim/m32c/int.c | 2 +- sim/m32c/int.h | 2 +- sim/m32c/load.c | 2 +- sim/m32c/load.h | 2 +- sim/m32c/m32c.opc | 2 +- sim/m32c/main.c | 2 +- sim/m32c/mem.c | 2 +- sim/m32c/mem.h | 2 +- sim/m32c/misc.c | 2 +- sim/m32c/misc.h | 2 +- sim/m32c/opc2c.c | 2 +- sim/m32c/r8c.opc | 2 +- sim/m32c/reg.c | 2 +- sim/m32c/safe-fgets.c | 2 +- sim/m32c/safe-fgets.h | 2 +- sim/m32c/srcdest.c | 2 +- sim/m32c/syscalls.c | 2 +- sim/m32c/syscalls.h | 2 +- sim/m32c/trace.c | 2 +- sim/m32c/trace.h | 2 +- sim/m32r/Makefile.in | 2 +- sim/m32r/arch.c | 2 +- sim/m32r/arch.h | 2 +- sim/m32r/cpu.c | 2 +- sim/m32r/cpu.h | 2 +- sim/m32r/cpu2.c | 2 +- sim/m32r/cpu2.h | 2 +- sim/m32r/cpuall.h | 2 +- sim/m32r/cpux.c | 2 +- sim/m32r/cpux.h | 2 +- sim/m32r/decode.c | 2 +- sim/m32r/decode.h | 2 +- sim/m32r/decode2.c | 2 +- sim/m32r/decode2.h | 2 +- sim/m32r/decodex.c | 2 +- sim/m32r/decodex.h | 2 +- sim/m32r/dv-m32r_cache.c | 2 +- sim/m32r/dv-m32r_cache.h | 2 +- sim/m32r/dv-m32r_uart.c | 2 +- sim/m32r/dv-m32r_uart.h | 2 +- sim/m32r/m32r-sim.h | 2 +- sim/m32r/m32r.c | 2 +- sim/m32r/m32r2.c | 2 +- sim/m32r/m32rx.c | 2 +- sim/m32r/mloop.in | 2 +- sim/m32r/mloop2.in | 2 +- sim/m32r/mloopx.in | 2 +- sim/m32r/model.c | 2 +- sim/m32r/model2.c | 2 +- sim/m32r/modelx.c | 2 +- sim/m32r/sem-switch.c | 2 +- sim/m32r/sem.c | 2 +- sim/m32r/sem2-switch.c | 2 +- sim/m32r/semx-switch.c | 2 +- sim/m32r/sim-if.c | 2 +- sim/m32r/traps-linux.c | 2 +- sim/m32r/traps.c | 2 +- sim/m68hc11/Makefile.in | 2 +- sim/m68hc11/dv-m68hc11.c | 2 +- sim/m68hc11/dv-m68hc11eepr.c | 2 +- sim/m68hc11/dv-m68hc11sio.c | 2 +- sim/m68hc11/dv-m68hc11spi.c | 2 +- sim/m68hc11/dv-m68hc11tim.c | 2 +- sim/m68hc11/dv-nvram.c | 2 +- sim/m68hc11/emulos.c | 2 +- sim/m68hc11/gencode.c | 2 +- sim/m68hc11/interp.c | 2 +- sim/m68hc11/interrupts.c | 2 +- sim/m68hc11/interrupts.h | 2 +- sim/m68hc11/m68hc11_sim.c | 2 +- sim/m68hc11/sim-main.h | 2 +- sim/mcore/Makefile.in | 2 +- sim/mcore/interp.c | 2 +- sim/mcore/sim-main.h | 2 +- sim/microblaze/Makefile.in | 2 +- sim/microblaze/interp.c | 2 +- sim/microblaze/microblaze.h | 2 +- sim/microblaze/microblaze.isa | 2 +- sim/microblaze/sim-main.h | 2 +- sim/mips/configure.ac | 2 +- sim/mips/cp1.c | 2 +- sim/mips/cp1.h | 2 +- sim/mips/dsp.c | 2 +- sim/mips/dsp.igen | 2 +- sim/mips/dsp2.igen | 2 +- sim/mips/dv-tx3904cpu.c | 2 +- sim/mips/dv-tx3904irc.c | 2 +- sim/mips/dv-tx3904sio.c | 2 +- sim/mips/dv-tx3904tmr.c | 2 +- sim/mips/m16e.igen | 2 +- sim/mips/mdmx.c | 2 +- sim/mips/mdmx.igen | 2 +- sim/mips/micromips.igen | 2 +- sim/mips/micromipsdsp.igen | 2 +- sim/mips/micromipsrun.c | 2 +- sim/mips/mips3264r2.igen | 2 +- sim/mips/mips3d.igen | 2 +- sim/mips/sb1.igen | 2 +- sim/mips/sim-main.h | 2 +- sim/mips/smartmips.igen | 2 +- sim/mn10300/Makefile.in | 2 +- sim/mn10300/dv-mn103cpu.c | 2 +- sim/mn10300/dv-mn103int.c | 2 +- sim/mn10300/dv-mn103iop.c | 2 +- sim/mn10300/dv-mn103ser.c | 2 +- sim/mn10300/dv-mn103tim.c | 2 +- sim/mn10300/sim-main.h | 2 +- sim/moxie/Makefile.in | 2 +- sim/moxie/interp.c | 2 +- sim/moxie/sim-main.h | 2 +- sim/msp430/Makefile.in | 2 +- sim/msp430/configure.ac | 2 +- sim/msp430/msp430-sim.c | 2 +- sim/msp430/msp430-sim.h | 2 +- sim/msp430/sim-main.h | 2 +- sim/or1k/Makefile.in | 147 + sim/or1k/README | 107 + sim/or1k/aclocal.m4 | 119 + sim/or1k/arch.c | 38 + sim/or1k/arch.h | 50 + sim/or1k/config.in | 248 + sim/or1k/configure |16043 +++ sim/or1k/configure.ac | 17 + sim/or1k/cpu.c |10181 ++ sim/or1k/cpu.h | 5024 + sim/or1k/cpuall.h | 66 + sim/or1k/decode.c | 2559 + sim/or1k/decode.h | 94 + sim/or1k/mloop.in | 241 + sim/or1k/model.c | 3809 + sim/or1k/or1k-sim.h | 93 + sim/or1k/or1k.c | 356 + sim/or1k/sem-switch.c | 2748 + sim/or1k/sem.c | 2953 + sim/or1k/sim-if.c | 279 + sim/or1k/sim-main.h | 81 + sim/or1k/traps.c | 299 + sim/ppc/altivec.igen | 2 +- sim/ppc/altivec_expression.h | 2 +- sim/ppc/altivec_registers.h | 2 +- sim/ppc/dp-bit.c | 2 +- sim/ppc/e500.igen | 2 +- sim/ppc/e500_expression.h | 2 +- sim/ppc/e500_registers.h | 2 +- sim/ppc/gdb-sim.c | 2 +- sim/ppc/psim.texinfo | 2 +- sim/rl78/Makefile.in | 2 +- sim/rl78/configure.ac | 2 +- sim/rl78/cpu.c | 2 +- sim/rl78/cpu.h | 2 +- sim/rl78/gdb-if.c | 2 +- sim/rl78/load.c | 2 +- sim/rl78/load.h | 2 +- sim/rl78/main.c | 2 +- sim/rl78/mem.c | 2 +- sim/rl78/mem.h | 2 +- sim/rl78/rl78.c | 2 +- sim/rl78/trace.c | 2 +- sim/rl78/trace.h | 2 +- sim/rx/Makefile.in | 2 +- sim/rx/configure.ac | 2 +- sim/rx/cpu.h | 2 +- sim/rx/err.c | 2 +- sim/rx/err.h | 2 +- sim/rx/fpu.c | 2 +- sim/rx/fpu.h | 2 +- sim/rx/gdb-if.c | 2 +- sim/rx/load.c | 2 +- sim/rx/load.h | 2 +- sim/rx/main.c | 2 +- sim/rx/mem.c | 2 +- sim/rx/mem.h | 2 +- sim/rx/misc.c | 2 +- sim/rx/misc.h | 2 +- sim/rx/reg.c | 2 +- sim/rx/rx.c | 2 +- sim/rx/syscalls.c | 2 +- sim/rx/syscalls.h | 2 +- sim/rx/trace.c | 2 +- sim/rx/trace.h | 2 +- sim/sh/Makefile.in | 2 +- sim/sh/sim-main.h | 2 +- sim/sh64/Makefile.in | 2 +- sim/sh64/arch.c | 2 +- sim/sh64/arch.h | 2 +- sim/sh64/cpu.c | 2 +- sim/sh64/cpu.h | 2 +- sim/sh64/cpuall.h | 2 +- sim/sh64/decode-compact.c | 2 +- sim/sh64/decode-compact.h | 2 +- sim/sh64/decode-media.c | 2 +- sim/sh64/decode-media.h | 2 +- sim/sh64/defs-compact.h | 2 +- sim/sh64/defs-media.h | 2 +- sim/sh64/eng.h | 2 +- sim/sh64/sem-compact-switch.c | 2 +- sim/sh64/sem-compact.c | 2 +- sim/sh64/sem-media-switch.c | 2 +- sim/sh64/sem-media.c | 2 +- sim/sh64/sh-desc.c | 2 +- sim/sh64/sh-desc.h | 2 +- sim/sh64/sh-opc.h | 2 +- sim/sh64/sh64-sim.h | 2 +- sim/sh64/sh64.c | 2 +- sim/sh64/sim-if.c | 2 +- sim/testsuite/ChangeLog | 5 + sim/testsuite/Makefile.in | 2 +- sim/testsuite/common/bits-gen.c | 2 +- sim/testsuite/configure | 4 + sim/testsuite/d10v-elf/Makefile.in | 2 +- sim/testsuite/frv-elf/Makefile.in | 2 +- sim/testsuite/m32r-elf/Makefile.in | 2 +- sim/testsuite/mips64el-elf/Makefile.in | 2 +- sim/testsuite/sim/cris/asm/asm.exp | 2 +- sim/testsuite/sim/cris/c/c.exp | 2 +- sim/testsuite/sim/cris/hw/rv-n-cris/rvc.exp | 2 +- sim/testsuite/sim/m32c/blinky.s | 2 +- sim/testsuite/sim/m32c/gloss.s | 2 +- sim/testsuite/sim/m32c/sample.ld | 2 +- sim/testsuite/sim/m32c/sample.s | 2 +- sim/testsuite/sim/m32c/sample2.c | 2 +- sim/testsuite/sim/mips/hilo-hazard-4.s | 2 +- sim/testsuite/sim/mips/mips32-dsp.s | 2 +- sim/testsuite/sim/mips/testutils.inc | 2 +- sim/testsuite/sim/mips/utils-dsp.inc | 2 +- sim/testsuite/sim/mips/utils-fpu.inc | 2 +- sim/testsuite/sim/mips/utils-mdmx.inc | 2 +- sim/testsuite/sim/or1k/ChangeLog | 28 + sim/testsuite/sim/or1k/add.S | 639 + sim/testsuite/sim/or1k/alltests.exp | 34 + sim/testsuite/sim/or1k/and.S | 198 + sim/testsuite/sim/or1k/basic.S | 522 + sim/testsuite/sim/or1k/div.S | 291 + sim/testsuite/sim/or1k/ext.S | 236 + sim/testsuite/sim/or1k/find.S | 100 + sim/testsuite/sim/or1k/flag.S | 386 + sim/testsuite/sim/or1k/fpu.S | 129 + sim/testsuite/sim/or1k/jump.S | 105 + sim/testsuite/sim/or1k/load.S | 358 + sim/testsuite/sim/or1k/mac.S | 778 + sim/testsuite/sim/or1k/mfspr.S | 171 + sim/testsuite/sim/or1k/mul.S | 574 + sim/testsuite/sim/or1k/or.S | 199 + sim/testsuite/sim/or1k/or1k-asm-test-env.h | 59 + sim/testsuite/sim/or1k/or1k-asm-test-helpers.h | 121 + sim/testsuite/sim/or1k/or1k-asm-test.h | 226 + sim/testsuite/sim/or1k/or1k-asm.h | 37 + sim/testsuite/sim/or1k/or1k-test.ld | 75 + sim/testsuite/sim/or1k/ror.S | 159 + sim/testsuite/sim/or1k/shift.S | 541 + sim/testsuite/sim/or1k/spr-defs.h | 120 + sim/testsuite/sim/or1k/sub.S | 215 + sim/testsuite/sim/or1k/xor.S | 200 + sim/v850/Makefile.in | 2 +- src-release.sh | 4 +- 8482 files changed, 304933 insertions(+), 193562 deletions(-) create mode 100644 bfd/ChangeLog-2017 create mode 100644 binutils/ChangeLog-2017 create mode 100644 binutils/doc/debug.options.texi create mode 100644 binutils/testsuite/binutils-all/aarch64/objdump.d create mode 100644 binutils/testsuite/binutils-all/aarch64/objdump.s create mode 100644 binutils/testsuite/binutils-all/debuglink.s create mode 100644 binutils/testsuite/binutils-all/dwo.s create mode 100644 binutils/testsuite/binutils-all/linkdebug.s create mode 100644 binutils/testsuite/binutils-all/note-4-32.d create mode 100644 binutils/testsuite/binutils-all/note-4-32.s create mode 100644 binutils/testsuite/binutils-all/note-4-64.d create mode 100644 binutils/testsuite/binutils-all/note-4-64.s create mode 100644 binutils/testsuite/binutils-all/objdump.WK2 create mode 100644 binutils/testsuite/binutils-all/objdump.Wk create mode 100644 binutils/testsuite/binutils-all/readelf.k create mode 100644 binutils/testsuite/binutils-all/readelf.k2 create mode 100644 binutils/testsuite/binutils-all/x86-64/objects.exp create mode 100644 binutils/testsuite/binutils-all/x86-64/pr22451.o.bz2 create mode 100644 config/ax_check_define.m4 create mode 100644 config/bootstrap-cet.mk create mode 100644 config/cet.m4 create mode 100644 config/hwcaps.m4 create mode 100644 config/mt-android copy elfcpp/{ChangeLog => ChangeLog-2017} (100%) create mode 100644 gas/ChangeLog-2017 create mode 100644 gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.d create mode 100644 gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.l create mode 100644 gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16-illegal.s create mode 100644 gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d create mode 100644 gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.s create mode 100644 gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-crypto-fp16.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-illegal.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-illegal.l create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-illegal.s create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.l create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.s create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-registers.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a-registers.s create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a.d create mode 100644 gas/testsuite/gas/aarch64/armv8_4-a.s create mode 100644 gas/testsuite/gas/aarch64/dotproduct_armv8_4.d create mode 100644 gas/testsuite/gas/aarch64/dotproduct_armv8_4.s create mode 100644 gas/testsuite/gas/aarch64/pr22529.d create mode 100644 gas/testsuite/gas/aarch64/pr22529.l create mode 100644 gas/testsuite/gas/aarch64/pr22529.s create mode 100644 gas/testsuite/gas/all/err-fakelabel.s create mode 100644 gas/testsuite/gas/arc/hregs-err.s create mode 100644 gas/testsuite/gas/arc/pcl-print.d create mode 100644 gas/testsuite/gas/arc/pcl-print.s create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.d create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.l create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16-illegal.s create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16-thumb2.d create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16.d create mode 100644 gas/testsuite/gas/arm/armv8_2-a-fp16.s create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp16.d create mode 100644 gas/testsuite/gas/arm/armv8_4-a-fp16.d create mode 100644 gas/testsuite/gas/arm/csdb.d create mode 100644 gas/testsuite/gas/arm/csdb.s create mode 100644 gas/testsuite/gas/arm/dotprod-mandatory.d create mode 100644 gas/testsuite/gas/i386/align-1.s create mode 100644 gas/testsuite/gas/i386/align-1a.d create mode 100644 gas/testsuite/gas/i386/align-1b.d delete mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-intel.d delete mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.l delete mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl-warn.s delete mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl.d delete mode 100644 gas/testsuite/gas/i386/avx512_4fmaps_vl.s delete mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl-intel.d delete mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl.d delete mode 100644 gas/testsuite/gas/i386/avx512_4vnniw_vl.s create mode 100644 gas/testsuite/gas/i386/cet-ibt-inval.l create mode 100644 gas/testsuite/gas/i386/cet-ibt-inval.s create mode 100644 gas/testsuite/gas/i386/cet-shstk-inval.l create mode 100644 gas/testsuite/gas/i386/cet-shstk-inval.s create mode 100644 gas/testsuite/gas/i386/intelok.e create mode 100644 gas/testsuite/gas/i386/inval-pseudo.l create mode 100644 gas/testsuite/gas/i386/inval-pseudo.s create mode 100644 gas/testsuite/gas/i386/noextreg.d create mode 100644 gas/testsuite/gas/i386/noextreg.s create mode 100644 gas/testsuite/gas/i386/pconfig-intel.d create mode 100644 gas/testsuite/gas/i386/pconfig.d create mode 100644 gas/testsuite/gas/i386/pconfig.s create mode 100644 gas/testsuite/gas/i386/wbnoinvd-intel.d create mode 100644 gas/testsuite/gas/i386/wbnoinvd.d create mode 100644 gas/testsuite/gas/i386/wbnoinvd.s delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.l delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl-warn.s delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl-intel.d delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.d delete mode 100644 gas/testsuite/gas/i386/x86-64-avx512_4vnniw_vl.s create mode 100644 gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s create mode 100644 gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s create mode 100644 gas/testsuite/gas/i386/x86-64-movd-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-movd.d create mode 100644 gas/testsuite/gas/i386/x86-64-movd.s create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig.d create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig.s create mode 100644 gas/testsuite/gas/i386/x86-64-reg-bad.l create mode 100644 gas/testsuite/gas/i386/x86-64-reg-bad.s create mode 100644 gas/testsuite/gas/i386/x86-64-wbnoinvd-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-wbnoinvd.d create mode 100644 gas/testsuite/gas/i386/x86-64-wbnoinvd.s create mode 100644 gas/testsuite/gas/pru/extern.d create mode 100644 gas/testsuite/gas/pru/extern.s create mode 100644 gas/testsuite/gas/riscv/align-1.l create mode 100644 gas/testsuite/gas/riscv/align-1.s create mode 100644 gas/testsuite/gas/riscv/auipc-x0.d create mode 100644 gas/testsuite/gas/riscv/auipc-x0.s create mode 100644 gas/testsuite/gas/riscv/c-ld.d create mode 100644 gas/testsuite/gas/riscv/c-ld.s create mode 100644 gas/testsuite/gas/riscv/c-lw.d create mode 100644 gas/testsuite/gas/riscv/c-lw.s create mode 100644 gas/testsuite/gas/riscv/c-nonzero-imm.d create mode 100644 gas/testsuite/gas/riscv/c-nonzero-imm.l create mode 100644 gas/testsuite/gas/riscv/c-nonzero-imm.s create mode 100644 gas/testsuite/gas/riscv/c-nonzero-reg.d create mode 100644 gas/testsuite/gas/riscv/c-nonzero-reg.l create mode 100644 gas/testsuite/gas/riscv/c-nonzero-reg.s create mode 100644 gas/testsuite/gas/riscv/c-zero-imm-64.d create mode 100644 gas/testsuite/gas/riscv/c-zero-imm-64.s create mode 100644 gas/testsuite/gas/riscv/c-zero-imm.d create mode 100644 gas/testsuite/gas/riscv/c-zero-imm.s create mode 100644 gas/testsuite/gas/riscv/c-zero-reg.d create mode 100644 gas/testsuite/gas/riscv/c-zero-reg.s create mode 100644 gas/testsuite/gas/riscv/fsxxi.d create mode 100644 gas/testsuite/gas/riscv/fsxxi.s create mode 100644 gas/testsuite/gas/riscv/priv-reg.d create mode 100644 gas/testsuite/gas/riscv/priv-reg.s create mode 100644 gas/testsuite/gas/rx/pr22737.d create mode 100644 gas/testsuite/gas/rx/pr22737.s create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.l create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.s create mode 100644 gdb/ChangeLog-2017 create mode 100644 gdb/arch/aarch64.c create mode 100644 gdb/arch/tic6x.c create mode 100644 gdb/arch/tic6x.h create mode 100644 gdb/common/hash_enum.h delete mode 100644 gdb/core-regset.c create mode 100644 gdb/features/aarch64-core.c create mode 100644 gdb/features/aarch64-fpu.c delete mode 100644 gdb/features/aarch64.c delete mode 100644 gdb/features/nios2-linux.c create mode 100644 gdb/features/or1k-core.xml create mode 100644 gdb/features/or1k.c create mode 100644 gdb/features/or1k.xml delete mode 100644 gdb/features/tic6x-c62x.xml delete mode 100644 gdb/features/tic6x-c64x.xml delete mode 100644 gdb/features/tic6x-c64xp.xml create mode 100644 gdb/features/tic6x-c6xp.c create mode 100644 gdb/features/tic6x-core.c create mode 100644 gdb/features/tic6x-gp.c create mode 100644 gdb/gdbserver/linux-aarch64-tdesc-selftest.c create mode 100644 gdb/gdbserver/linux-aarch64-tdesc.c create mode 100644 gdb/gdbserver/linux-aarch64-tdesc.h delete mode 100644 gdb/mt-tdep.c create mode 100644 gdb/or1k-tdep.c create mode 100644 gdb/or1k-tdep.h create mode 100644 gdb/s390-tdep.c create mode 100644 gdb/s390-tdep.h create mode 100644 gdb/testsuite/gdb.ada/access_tagged_param.exp create mode 100644 gdb/testsuite/gdb.ada/access_tagged_param/foo.adb create mode 100644 gdb/testsuite/gdb.ada/access_tagged_param/pck.adb create mode 100644 gdb/testsuite/gdb.ada/access_tagged_param/pck.ads create mode 100644 gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp create mode 100644 gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb create mode 100644 gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads create mode 100644 gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb create mode 100644 gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp create mode 100644 gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb create mode 100644 gdb/testsuite/gdb.ada/assign_arr.exp create mode 100644 gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb create mode 100644 gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads create mode 100644 gdb/testsuite/gdb.ada/bp_c_mixed_case.exp create mode 100644 gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c create mode 100644 gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb create mode 100644 gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func.exp create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func/b.adb create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func/b.ads create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func/c.adb create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func/c.ads create mode 100644 gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb create mode 100644 gdb/testsuite/gdb.ada/convvar_comp.exp create mode 100644 gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb create mode 100644 gdb/testsuite/gdb.ada/convvar_comp/pck.adb create mode 100644 gdb/testsuite/gdb.ada/convvar_comp/pck.ads create mode 100644 gdb/testsuite/gdb.ada/dyn_stride.exp create mode 100644 gdb/testsuite/gdb.ada/dyn_stride/foo.adb create mode 100644 gdb/testsuite/gdb.ada/excep_handle.exp create mode 100644 gdb/testsuite/gdb.ada/excep_handle/foo.adb create mode 100644 gdb/testsuite/gdb.ada/excep_handle/pck.ads create mode 100644 gdb/testsuite/gdb.ada/funcall_ptr.exp create mode 100644 gdb/testsuite/gdb.ada/funcall_ptr/foo.adb create mode 100644 gdb/testsuite/gdb.ada/funcall_ptr/pck.adb create mode 100644 gdb/testsuite/gdb.ada/funcall_ptr/pck.ads create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case.exp create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb create mode 100644 gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads create mode 100644 gdb/testsuite/gdb.ada/maint_with_ada.exp copy gdb/testsuite/gdb.ada/{var_arr_typedef => maint_with_ada}/pack.adb (100%) copy gdb/testsuite/gdb.ada/{var_arr_typedef => maint_with_ada}/pack.ads (100%) copy gdb/testsuite/gdb.ada/{var_arr_typedef => maint_with_ada}/var_arr_typedef.adb (100%) create mode 100644 gdb/testsuite/gdb.ada/minsyms.exp create mode 100644 gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb create mode 100644 gdb/testsuite/gdb.ada/minsyms/pck.adb create mode 100644 gdb/testsuite/gdb.ada/minsyms/pck.ads create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param.exp create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb create mode 100644 gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads create mode 100644 gdb/testsuite/gdb.ada/repeat_dyn.exp create mode 100644 gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb create mode 100644 gdb/testsuite/gdb.ada/repeat_dyn/pck.adb create mode 100644 gdb/testsuite/gdb.ada/repeat_dyn/pck.ads create mode 100644 gdb/testsuite/gdb.ada/same_component_name.exp create mode 100644 gdb/testsuite/gdb.ada/same_component_name/foo.adb create mode 100644 gdb/testsuite/gdb.ada/same_component_name/pck.adb create mode 100644 gdb/testsuite/gdb.ada/same_component_name/pck.ads create mode 100644 gdb/testsuite/gdb.ada/scoped_watch.exp create mode 100644 gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb create mode 100644 gdb/testsuite/gdb.ada/scoped_watch/pck.adb create mode 100644 gdb/testsuite/gdb.ada/scoped_watch/pck.ads create mode 100644 gdb/testsuite/gdb.ada/str_binop_equal.exp create mode 100644 gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb create mode 100644 gdb/testsuite/gdb.ada/str_binop_equal/pck.adb create mode 100644 gdb/testsuite/gdb.ada/str_binop_equal/pck.ads create mode 100644 gdb/testsuite/gdb.ada/task_switch_in_core.exp create mode 100644 gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb create mode 100644 gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp create mode 100644 gdb/testsuite/gdb.arch/amd64-disp-step-avx.S create mode 100644 gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp create mode 100644 gdb/testsuite/gdb.arch/ppc-longdouble.c create mode 100644 gdb/testsuite/gdb.arch/ppc-longdouble.exp create mode 100644 gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c create mode 100644 gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp create mode 100644 gdb/testsuite/gdb.base/break-include.c create mode 100644 gdb/testsuite/gdb.base/break-include.exp create mode 100644 gdb/testsuite/gdb.base/break-include.inc create mode 100644 gdb/testsuite/gdb.base/complete-empty.exp create mode 100644 gdb/testsuite/gdb.base/continue-after-aborted-step-over.c create mode 100644 gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp create mode 100644 gdb/testsuite/gdb.base/libsegfault.exp create mode 100644 gdb/testsuite/gdb.base/ptype-offsets.cc create mode 100644 gdb/testsuite/gdb.base/ptype-offsets.exp create mode 100644 gdb/testsuite/gdb.base/readnever.c create mode 100644 gdb/testsuite/gdb.base/readnever.exp create mode 100644 gdb/testsuite/gdb.base/reggroups.c create mode 100644 gdb/testsuite/gdb.base/reggroups.exp create mode 100644 gdb/testsuite/gdb.base/server-del-break.c create mode 100644 gdb/testsuite/gdb.base/server-del-break.exp create mode 100644 gdb/testsuite/gdb.base/solib-vanish-lib1.c create mode 100644 gdb/testsuite/gdb.base/solib-vanish-lib2.c create mode 100644 gdb/testsuite/gdb.base/solib-vanish-main.c create mode 100644 gdb/testsuite/gdb.base/solib-vanish.exp create mode 100644 gdb/testsuite/gdb.cp/nested-types.cc create mode 100644 gdb/testsuite/gdb.cp/nested-types.exp create mode 100644 gdb/testsuite/gdb.cp/save-bp-qualified.cc create mode 100644 gdb/testsuite/gdb.cp/save-bp-qualified.exp create mode 100644 gdb/testsuite/gdb.dwarf2/ada-valprint-error.c create mode 100644 gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp create mode 100644 gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c create mode 100644 gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp create mode 100644 gdb/testsuite/gdb.linespec/cpcompletion.exp create mode 100644 gdb/testsuite/gdb.linespec/cpls-abi-tag.cc create mode 100644 gdb/testsuite/gdb.linespec/cpls-abi-tag.exp create mode 100644 gdb/testsuite/gdb.linespec/cpls-hyphen.cc create mode 100644 gdb/testsuite/gdb.linespec/cpls-ops.cc create mode 100644 gdb/testsuite/gdb.linespec/cpls-ops.exp create mode 100644 gdb/testsuite/gdb.linespec/cpls.cc create mode 100644 gdb/testsuite/gdb.linespec/cpls2.cc create mode 100644 gdb/testsuite/gdb.mi/mi-frame-regs.exp create mode 100644 gdb/testsuite/gdb.python/py-rbreak-func2.c create mode 100644 gdb/testsuite/gdb.python/py-rbreak.c create mode 100644 gdb/testsuite/gdb.python/py-rbreak.exp create mode 100644 gdb/testsuite/gdb.rust/traits.exp create mode 100644 gdb/testsuite/gdb.rust/traits.rs create mode 100644 gdb/testsuite/gdb.server/reconnect-ctrl-c.c create mode 100644 gdb/testsuite/gdb.server/reconnect-ctrl-c.exp create mode 100644 gdb/testsuite/gdb.server/stop-reply-no-thread.c create mode 100644 gdb/testsuite/gdb.server/stop-reply-no-thread.exp create mode 100644 gdb/testsuite/gdb.threads/tls-core.c create mode 100644 gdb/testsuite/gdb.threads/tls-core.exp create mode 100644 gdb/testsuite/lib/completion-support.exp create mode 100644 gdb/testsuite/lib/data-structures.exp create mode 100644 gdb/unittests/lookup_name_info-selftests.c create mode 100644 gdb/unittests/memory-map-selftests.c create mode 100644 gdb/unittests/rsp-low-selftests.c create mode 100644 gold/ChangeLog-2017 create mode 100755 gold/testsuite/empty_command_line_test.sh create mode 100644 gold/testsuite/plugin_new_section_layout.c create mode 100644 gold/testsuite/pr22266_a.c create mode 100644 gold/testsuite/pr22266_main.c create mode 100644 gold/testsuite/pr22266_script.t create mode 100644 gprof/ChangeLog-2017 create mode 100644 include/ChangeLog-2017 create mode 100644 ld/ChangeLog-2017 create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-258-dyn-bad.d create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-258.s create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-259-dyn-bad.d create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-259.s create mode 100644 ld/testsuite/ld-elf/compress1-alt.s create mode 100644 ld/testsuite/ld-elf/compressed1d-alt.d create mode 100644 ld/testsuite/ld-elf/interleave-0.d create mode 100644 ld/testsuite/ld-elf/interleave-4.d create mode 100644 ld/testsuite/ld-elf/interleave.ld create mode 100644 ld/testsuite/ld-elf/interleave.s create mode 100644 ld/testsuite/ld-elf/pr22393-1.s create mode 100644 ld/testsuite/ld-elf/pr22393-1a.d create mode 100644 ld/testsuite/ld-elf/pr22393-1b.d create mode 100644 ld/testsuite/ld-elf/pr22393-1c.d create mode 100644 ld/testsuite/ld-elf/pr22393-1d.d create mode 100644 ld/testsuite/ld-elf/pr22393-1e.d create mode 100644 ld/testsuite/ld-elf/pr22393-1f.d create mode 100644 ld/testsuite/ld-elf/pr22393-2a.c create mode 100644 ld/testsuite/ld-elf/pr22393-2a.rd create mode 100644 ld/testsuite/ld-elf/pr22393-2b.c create mode 100644 ld/testsuite/ld-elf/pr22393-2b.rd create mode 100644 ld/testsuite/ld-elf/pr22423.d create mode 100644 ld/testsuite/ld-elf/pr22450.d create mode 100644 ld/testsuite/ld-elf/pr22450.s create mode 100644 ld/testsuite/ld-elf/pr22471.t create mode 100644 ld/testsuite/ld-elf/pr22471a.s create mode 100644 ld/testsuite/ld-elf/pr22471b.s create mode 100644 ld/testsuite/ld-elf/pr22649-1.s create mode 100644 ld/testsuite/ld-elf/pr22649-2a.s create mode 100644 ld/testsuite/ld-elf/pr22649-2b.s create mode 100644 ld/testsuite/ld-elf/pr22649.msg create mode 100644 ld/testsuite/ld-elf/pr22677.d create mode 100644 ld/testsuite/ld-elf/pr22677.s create mode 100644 ld/testsuite/ld-elf/textrel.map create mode 100644 ld/testsuite/ld-elf/textrel.rd create mode 100644 ld/testsuite/ld-elf/textrel.s create mode 100644 ld/testsuite/ld-elf/textrel.warn create mode 100644 ld/testsuite/ld-elfweak/alias.c create mode 100644 ld/testsuite/ld-elfweak/alias.dat create mode 100644 ld/testsuite/ld-elfweak/aliasmain.c create mode 100644 ld/testsuite/ld-elfweak/weakref1.c create mode 100644 ld/testsuite/ld-elfweak/weakref2.c create mode 100644 ld/testsuite/ld-plugin/pr22502a.c create mode 100644 ld/testsuite/ld-plugin/pr22502b.c create mode 100644 ld/testsuite/ld-plugin/pr22721.t create mode 100644 ld/testsuite/ld-plugin/pr22721a.s create mode 100644 ld/testsuite/ld-plugin/pr22721b.c create mode 100644 ld/testsuite/ld-riscv-elf/disas-jalr.d create mode 100644 ld/testsuite/ld-riscv-elf/disas-jalr.s create mode 100644 ld/testsuite/ld-riscv-elf/gp-test-lib.sd create mode 100644 ld/testsuite/ld-riscv-elf/gp-test.s create mode 100644 ld/testsuite/ld-riscv-elf/gp-test.sd delete mode 100644 ld/testsuite/ld-scripts/provide-4-map.d create mode 100644 ld/testsuite/ld-scripts/provide-4.map delete mode 100644 ld/testsuite/ld-scripts/provide-5-map.d create mode 100644 ld/testsuite/ld-scripts/provide-5.map create mode 100644 ld/testsuite/ld-scripts/provide-6.d create mode 100644 ld/testsuite/ld-scripts/provide-6.t create mode 100644 ld/testsuite/ld-scripts/provide-7.d create mode 100644 ld/testsuite/ld-scripts/provide-7.t create mode 100644 ld/testsuite/ld-scripts/provide-8.d create mode 100644 ld/testsuite/ld-scripts/provide-8.t create mode 100644 ld/testsuite/ld-x86-64/apic.d create mode 100644 ld/testsuite/ld-x86-64/apic.s create mode 100644 ld/testsuite/ld-x86-64/pr22393-3a.c create mode 100644 ld/testsuite/ld-x86-64/pr22393-3a.rd create mode 100644 ld/testsuite/ld-x86-64/pr22393-3b.c create mode 100644 ld/testsuite/ld-x86-64/pr22393-3b.rd create mode 100644 opcodes/ChangeLog-2017 create mode 100644 sim/or1k/Makefile.in create mode 100644 sim/or1k/README create mode 100644 sim/or1k/aclocal.m4 create mode 100644 sim/or1k/arch.c create mode 100644 sim/or1k/arch.h create mode 100644 sim/or1k/config.in create mode 100755 sim/or1k/configure create mode 100644 sim/or1k/configure.ac create mode 100644 sim/or1k/cpu.c create mode 100644 sim/or1k/cpu.h create mode 100644 sim/or1k/cpuall.h create mode 100644 sim/or1k/decode.c create mode 100644 sim/or1k/decode.h create mode 100644 sim/or1k/mloop.in create mode 100644 sim/or1k/model.c create mode 100644 sim/or1k/or1k-sim.h create mode 100644 sim/or1k/or1k.c create mode 100644 sim/or1k/sem-switch.c create mode 100644 sim/or1k/sem.c create mode 100644 sim/or1k/sim-if.c create mode 100644 sim/or1k/sim-main.h create mode 100644 sim/or1k/traps.c create mode 100644 sim/testsuite/sim/or1k/ChangeLog create mode 100644 sim/testsuite/sim/or1k/add.S create mode 100644 sim/testsuite/sim/or1k/alltests.exp create mode 100644 sim/testsuite/sim/or1k/and.S create mode 100644 sim/testsuite/sim/or1k/basic.S create mode 100644 sim/testsuite/sim/or1k/div.S create mode 100644 sim/testsuite/sim/or1k/ext.S create mode 100644 sim/testsuite/sim/or1k/find.S create mode 100644 sim/testsuite/sim/or1k/flag.S create mode 100644 sim/testsuite/sim/or1k/fpu.S create mode 100644 sim/testsuite/sim/or1k/jump.S create mode 100644 sim/testsuite/sim/or1k/load.S create mode 100644 sim/testsuite/sim/or1k/mac.S create mode 100644 sim/testsuite/sim/or1k/mfspr.S create mode 100644 sim/testsuite/sim/or1k/mul.S create mode 100644 sim/testsuite/sim/or1k/or.S create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-env.h create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test-helpers.h create mode 100644 sim/testsuite/sim/or1k/or1k-asm-test.h create mode 100644 sim/testsuite/sim/or1k/or1k-asm.h create mode 100644 sim/testsuite/sim/or1k/or1k-test.ld create mode 100644 sim/testsuite/sim/or1k/ror.S create mode 100644 sim/testsuite/sim/or1k/shift.S create mode 100644 sim/testsuite/sim/or1k/spr-defs.h create mode 100644 sim/testsuite/sim/or1k/sub.S create mode 100644 sim/testsuite/sim/or1k/xor.S First 500 lines of diff: diff --git a/COPYING.LIBGLOSS b/COPYING.LIBGLOSS index d813065..ee3ef9f 100644 --- a/COPYING.LIBGLOSS +++ b/COPYING.LIBGLOSS @@ -313,10 +313,10 @@ 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; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. + 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. As a special exception, if you link this library with files compiled with GCC to produce an executable, this does not cause diff --git a/ChangeLog b/ChangeLog index b5c224e..7db5d82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2018-01-13 Nick Clifton + + * src-release.sh: Update copyright notice. Change reference to devo + to be a reference to root. + +2018-01-10 Nick Clifton + + * config-ml.in: Sync with gcc sources. + * config.guess: Likewise. + * config.sub: Likewise. + * configure.ac: Likewise. + * configure: Regenerate. + +2017-12-14 Nick Clifton + + * COPYING.LIBGLOSS: Update address of FSF in copyright notice. + +2017-12-12 Stafford Horne + + * configure.ac: Remove logic adding gdb to noconfigsdirs for or1k. + * configure: Regenerate. + 2017-09-15 Nick Clifton * src-release.sh (LZIPPROG): New define. Provides the name of the diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9e820c5..b545b28 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5091 +1,174 @@ -2017-11-07 Alan Modra +2018-01-23 Maciej W. Rozycki - * elf64-ppc.c (ppc64_elf_build_stubs): Correct pluralization in - statistics message. + * elfxx-mips.c (_bfd_mips_elf_final_link): Update a stale + `mips_elf32_section_processing' comment reference. -2017-11-07 Alan Modra +2018-01-20 H.J. Lu - * sysdep.h: Formatting, comment fixes. - (gettext, ngettext): Redefine when ENABLE_NLS. - (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. - (_): Define using gettext. - (textdomain, bindtextdomain): Use safer "do nothing". - * hosts/alphavms.h (textdomain, bindtextdomain): Likewise. - (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. + PR ld/22721 + * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Check the + versioned __tls_get_addr symbol. -2017-11-05 Alan Modra - - PR 22397 - * bfd.c (_bfd_doprnt_scan): Check args index before storing, not - after. - -2017-11-05 Alan Modra - - PR 22397 - * bfd.c (union _bfd_doprnt_args): New. - (PRINT_TYPE): Add FIELD arg. Take value from args. - (_bfd_doprnt): Replace ap parameter with args. Adjust all - PRINT_TYPE invocations and reading of format args to suit. - Move "%%" handling out of switch handling args. Support - positional parameters. - (_bfd_doprnt_scan): New function. - (error_handler_internal): Call _bfd_doprnt_scan and read args. - -2017-11-04 Alan Modra - - * elf32-ppc.c (got_entries_needed, got_relocs_needed): New functions. - (allocate_dynrelocs, ppc_elf_size_dynamic_sections): Use them here. - (ppc_elf_relocate_section): Don't output a dynamic relocation - for IE GOT entries in an executable. - * elf64-ppc.c (allocate_got): Trim unnecessary TPREL relocs. - (ppc64_elf_size_dynamic_sections): Likewise. - (ppc64_elf_relocate_section): Likewise. - -2017-11-04 Alan Modra - - * elf32-ppc.c (readonly_dynrelocs): Delete info param. Update all - callers. Don't bother with SEC_ALLOC test. Return section pointer. - Move minfo call to.. - (maybe_set_textrel): ..here. - * elf64-ppc.c (readonly_dynrelocs): Return section pointer. - (maybe_set_textrel): Call minfo to print textrel warning to map file. - -2017-11-04 Alan Modra - - * elf32-hppa.c (enum _tls_type): Move. - (struct elf32_hppa_link_hash_entry): Make tls_type a bitfield. - (elf32_hppa_check_relocs): Set DF_STATIC_TLS only for shared libraries. - Tidy tls_type handling. Set symbol tls_type for GOT_TLS_LDM too. - (got_entries_needed, got_relocs_needed): New functions. - (allocate_dynrelocs): Use them. - (elf32_hppa_size_dynamic_sections): Likewise. - (elf32_hppa_relocate_section): Delete bogus FIXME. Formatting. - Correct code emitting relocs on GD/IE got entries. Report an - error when a symbol has both normal and TLS GOT relocs. - -2017-11-04 Alan Modra - - PR 22394 - * elf32-hppa.c (elf32_hppa_check_relocs): Don't create dyn_relocs - for plabels when non-pic. - (maybe_set_textrel): New function. - (readonly_dynrelocs): Move and rewrite. - (elf32_hppa_adjust_dynamic_symbol): Use it. Don't create copy - relocs when def_regular or -z nocopyreloc. Handle non_got_ref - for functions. Expand non_got_ref comments. - (elf32_hppa_size_dynamic_sections): Use maybe_set_textrel. - -2017-11-03 H.J. Lu - - * elf32-i386.c (elf_i386_check_relocs): Set plt.refcount to 1. - Don't use func_pointer_refcount. Don't set plt.refcount nor - non_got_ref for function pointer reference. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - * elfxx-x86.c (elf_x86_allocate_dynrelocs): Don't use - func_pointer_refcount. - (_bfd_x86_elf_copy_indirect_symbol): Don't copy - func_pointer_refcount. - (_bfd_x86_elf_hide_symbol): Don't use func_pointer_refcount. - * elfxx-x86.h (GENERATE_DYNAMIC_RELOCATION_P): Likewise. - (elf_x86_link_hash_entry): Remove func_pointer_refcount. - -2017-11-03 Mingi Cho - Nick Clifton - - PR 22385 - * coffgen.c (_bfd_coff_get_external_symbols): Check for an - overlarge raw syment count. - (coff_get_normalized_symtab): Likewise. - -2017-11-01 James Bowman - - * archures.c: Add bfd_mach_ft32b. - * cpu-ft32.c: Add arch_info_struct. - * elf32-ft32.c: Add R_FT32_RELAX, SC0, SC1, - DIFF32. - (ft32_elf_relocate_section): Add clauses for R_FT32_SC0, SC1, - DIFF32. - (ft32_reloc_shortable, elf32_ft32_is_diff_reloc) - (elf32_ft32_adjust_diff_reloc_value) - (elf32_ft32_adjust_reloc_if_spans_insn) - (elf32_ft32_relax_delete_bytes, elf32_ft32_relax_is_branch_target) - (ft32_elf_relax_section): New function. - * reloc.c: Add BFD_RELOC_FT32_RELAX, SC0, SC1, DIFF32. - * bfd-in2.h: Regenerate. - * libbfd.h: Regenerate. - -2017-11-01 Nick Clifton - - PR 22376 - * coffcode.h (coff_slurp_line_table): Check for an excessively - large line number count. - -2017-11-01 Nick Clifton - - PR 22373 - * peicode.h (pe_bfd_read_buildid): Revise check for invalid size - and offset in light of further possible bogus values. - -2017-11-01 Alan Modra - - PR 22374 - * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't create a plt - entry when just a dynamic reloc can serve. Ensure no dynamic - relocations when UNDEFWEAK_NO_DYNAMIC_RELOC by setting non_got_ref. - Expand and move the non_got_ref comment. - * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise. - -2017-11-01 Nick Clifton - - PR 22369 - * coffgen.c (_bfd_coff_free_symbols): Fail if called on a non-COFF - file. - * cofflink.c (coff_link_check_archive_element): Skip non-COFF - members of an archive. - -2017-10-31 Nick Clifton - - PR 22373 - * peicode.h (pe_bfd_read_buildid): Check for invalid size and data - offset values. - -2017-10-30 Alan Modra - - * elf32-frv.c (ELF_TARGET_ID): Don't define for generic - elf target. - - * elflink.c (elf_gc_sweep): Test elf_object_id in addition to - relocs_compatible. - (bfd_elf_gc_sections): Likewise. - -2017-10-30 Alan Modra - - PR 22269 - * elf32-hppa.c (elf32_hppa_check_relocs): Move SEC_ALLOC test to - ensure non_got_ref is not set due to debug references. - (elf32_hppa_adjust_dynamic_symbol): Tidy plabel handling. Use - SYMBOL_CALLS_LOCAL and UNDEFWEAK_NO_DYNAMIC_RELOC when determining - need for a plt entry. - (allocate_dynrelocs): Similarly for got entries. Tidy code discarding - dynamic relocs when pic. Remove bogus code attempting to handle - commons. - (elf32_hppa_relocate_section): Similarly. Delete resolved_to_zero - and simplify. - (elf32_hppa_finish_dynamic_symbol): Use UNDEFWEAK_NO_DYNAMIC_RELOC - and SYMBOL_REFERENCES_LOCAL in GOT handling. - -2017-10-28 Alan Modra - - PR 22300 - * elflink.c (_bfd_elf_merge_symbol): Remove relocs_compatible check. - * elf32-hppa.c (elf_backend_relocs_compatible): Define. - * elf32-ppc.c (elf_backend_relocs_compatible): Define. - * elf64-ppc.c (elf_backend_relocs_compatible): Define. - -2017-10-25 Alan Modra - - * archive.c (_bfd_compute_and_write_armap): Match "__gnu_lto_slim" - optionally prefixed with "_". - * linker.c (_bfd_generic_link_add_one_symbol): Likewise. - -2017-10-24 Andrew Waterman - - * elfnn-riscv.c (_bfd_riscv_relax_lui): Don't relax to c.lui - when rd is x0. - -2017-10-24 Renlin Li - - PR ld/21703 - * elflink.c (_bfd_elf_merge_symbol): Handle multiple definition case. - -2017-10-23 Nick Clifton - - PR 22319 - * elflink.c (elf_link_output_extsym): Keep global undefined - symbols if they have been marked as needed. - -2017-10-23 Maciej W. Rozycki - - * elfn32-mips.c (mips_elf_n32_mkobject): New prototype and - function. - (bfd_elf32_mkobject): Use `mips_elf_n32_mkobject' rather than - `_bfd_mips_elf_mkobject'. - -2017-10-22 Hans-Peter Nilsson - - PR gas/22304 - * config.bfd (cris-*-* | crisv32-*-*): Require a 64-bit BFD. - -2017-10-19 Palmer Dabbelt - - * elfnn-riscv.c (riscv_pcgp_hi_reloc): New structure. - (riscv_pcgp_lo_reloc): Likewise. - (riscv_pcgp_relocs): Likewise. - (riscv_init_pcgp_relocs): New function. - (riscv_free_pcgp_relocs): Likewise. - (riscv_record_pcgp_hi_reloc): Likewise. - (riscv_record_pcgp_lo_reloc): Likewise. - (riscv_delete_pcgp_hi_reloc): Likewise. - (riscv_use_pcgp_hi_reloc): Likewise. - (riscv_record_pcgp_lo_reloc): Likewise. - (riscv_find_pcgp_lo_reloc): Likewise. - (riscv_delete_pcgp_lo_reloc): Likewise. - (_bfd_riscv_relax_pc): Likewise. - (_bfd_riscv_relax_section): Handle R_RISCV_PCREL_* relocations - via the new functions above. - -2017-10-19 Palmer Dabbelt - - * elfnn-riscv.c (R_RISCV_DELETE): New define. - (_bfd_riscv_relax_delete): New function. - (perform_relocation): Handle R_RISCV_DELETE. - (_bfd_riscv_relax_section): Likewise. - -2017-10-19 H.J. Lu - - PR ld/22263 - * elfxx-tilegx.c (tilegx_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (tilegx_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (tilegx_elf_relocate_section): Likewise. - -2017-10-19 H.J. Lu - - PR ld/22263 - * elf32-tilepro.c (tilepro_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (tilepro_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (tilepro_elf_relocate_section): Likewise. - -2017-10-19 H.J. Lu - - PR ld/22263 - * elfxx-sparc.c (sparc_elf_tls_transition): Replace - bfd_link_pic with !bfd_link_executable, !bfd_link_pic with - bfd_link_executable for TLS check. - (_bfd_sparc_elf_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (_bfd_sparc_elf_relocate_section): Likewise. - -2017-10-18 H.J. Lu - - * elf32-tilepro.c (tilepro_elf_gc_mark_hook): Call - _bfd_generic_link_add_one_symbol to mark __tls_get_addr. - * elfxx-tilegx.c (tilegx_elf_gc_mark_hook): Likewise. - -2017-10-17 H.J. Lu - - * elf32-microblaze.c (microblaze_elf_check_relocs): Check for - indirect and warning symbols. - -2017-10-17 Alan Modra - - PR 22307 - * elf-properties.c (_bfd_elf_parse_gnu_properties): Compare datasz - against size left rather than comparing pointers. Reorganise loop. - -2017-10-17 Alan Modra - - PR 22306 - * aoutx.h (aout_get_external_symbols): Handle stringsize of zero, - and error for any other size that doesn't cover the header word. - -2017-10-16 H.J. Lu - - * elf-bfd.h (elf_backend_data): Remove gc_sweep_hook. - * elf32-arm.c (elf32_arm_gc_sweep_hook): Removed. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-bfin.c (bfin_gc_sweep_hook): Likewise. - (bfinfdpic_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-cr16.c (elf32_cr16_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-lm32.c (lm32_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-m68k.c (elf_m68k_got_entry): Remove elf_m68k_gc_sweep_hook - from comments. - (elf_m68k_remove_got_entry_type): Removed. - (elf_m68k_find_got_entry_ptr): Likewise. - (elf_m68k_remove_got_entry): Likewise. - (elf_m68k_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-mcore.c (mcore_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-metag.c (elf_metag_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-microblaze.c (elf_backend_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-mips.c (elf_backend_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-nds32.c (nds32_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-nios2.c (nios2_elf32_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-or1k.c (or1k_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-ppc.c (ppc_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-sparc.c (elf_backend_gc_sweep_hook): Likewise. - * elf32-tic6x.c (elf32_tic6x_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-tilegx.c (elf_backend_gc_sweep_hook): Likewise. - * elf32-tilepro.c (tilepro_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-alpha.c (elf64_alpha_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-mips.c (elf_backend_gc_sweep_hook): Likewise. - * elf64-mmix.c (mmix_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-ppc.c (elf_backend_gc_sweep_hook): Likewise. - (ppc64_elf_gc_sweep_hook): Likewise. - * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elf64-sparc.c (elf_backend_gc_sweep_hook): Likewise. - * elf64-tilegx.c (elf_backend_gc_sweep_hook): Likewise. - * elflink.c (elf_link_add_object_symbols): Don't call - _bfd_elf_link_check_relocs here. - (gc_sweep_hook_fn): Removed. - (elf_gc_sweep): Remove gc_sweep_hook. - * elfnn-aarch64.c (elfNN_aarch64_gc_sweep_hook): Removed. - (elf_backend_gc_sweep_hook): Likewise. - * elfnn-riscv.c (riscv_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise. - * elfxx-mips.h (_bfd_mips_elf_gc_sweep_hook): Likewise. - (elf_backend_gc_sweep_hook): Likewise. - * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise. - * elfxx-sparc.h (_bfd_sparc_elf_gc_sweep_hook): Likewise. - * elfxx-target.h (elf_backend_gc_sweep_hook): Likewise. - (elfNN_bed): Remove elf_backend_gc_sweep_hook. - * elfxx-tilegx.c (tilegx_elf_gc_sweep_hook): Removed. - * elfxx-tilegx.h (tilegx_elf_gc_sweep_hook): Likewise. - -2017-10-14 H.J. Lu - - * elf32-i386.c (elf_i386_backend_data): Removed. - (get_elf_i386_backend_data): Likewise. - (elf_i386_arch_bed): Replace elf_i386_backend_data with - elf_x86_backend_data. - (elf_i386_get_synthetic_symtab): Likewise. - (elf_i386_nacl_arch_bed): Likewise. - (elf_i386_vxworks_arch_bed): Likewise. - (elf_i386_relocate_section): Check target_os instead of - is_vxworks. - (elf_i386_finish_dynamic_symbol): Likewise. - (elf_i386_finish_dynamic_sections): Use htab->plt0_pad_byte. - Check target_os instead of is_vxworks. - (elf_i386_link_setup_gnu_properties): Remove normal_target and - is_vxworks. Initialize plt0_pad_byte. - * elf64-x86-64.c (elf_x86_64_backend_data); Removed. - (get_elf_x86_64_arch_data): Likewise. - (get_elf_x86_64_backend_data): Likewise. - (elf_x86_64_arch_bed): Replace elf_x86_64_backend_data with - elf_x86_backend_data. - (elf_x86_64_get_synthetic_symtab): Likewise. - (elf_x86_64_nacl_arch_bed): Likewise. - (elf_x86_64_link_setup_gnu_properties): Remove is_vxworks and - normal_target. Initialize plt0_pad_byte. - * elfxx-x86.c (elf_x86_allocate_dynrelocs): Check target_os - instead of is_vxworks. - (_bfd_x86_elf_size_dynamic_sections): Likewise. - (_bfd_x86_elf_finish_dynamic_sections): Likewise. - (_bfd_x86_elf_adjust_dynamic_symbol): Likewise. - (_bfd_x86_elf_link_hash_table_create): Initialize target_os. - (_bfd_x86_elf_link_setup_gnu_properties): Remove is_vxworks. - Update normal_target. Set up plt0_pad_byte. Check target_os - instead of is_vxworks. - * elfxx-x86.h (elf_x86_target_os): New. - (elf_x86_backend_data): Likewise. - (get_elf_x86_backend_data): Likewise. - (elf_x86_link_hash_table): Remove is_vxworks. Add plt0_pad_byte - and target_os. - (elf_x86_init_table): Remove normal_target and is_vxworks. Add - plt0_pad_byte. - -2017-10-14 H.J. Lu - - * elf32-i386.c (elf_i386_finish_dynamic_sections): Call - _bfd_x86_elf_finish_dynamic_sections. - * elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Likewise. - * elfxx-x86.c (_bfd_x86_elf_finish_dynamic_sections): New - function. - * elfxx-x86.h (_bfd_x86_elf_finish_dynamic_sections): New - prototype. - -2017-10-14 H.J. Lu - - PR ld/21384 - * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't - hide symbol which was forced to be dynamic. - -2017-10-14 H.J. Lu - - PR ld/22269 hooks/post-receive -- Repository for Project Archer.