public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  scox/gdbserver-multi-client: Merge branch 'master' into scox/gdbserver-multi-client
@ 2018-01-24 15:20 scox
  0 siblings, 0 replies; only message in thread
From: scox @ 2018-01-24 15:20 UTC (permalink / raw)
  To: archer-commits

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1556204 bytes --]

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 <scox@redhat.com>
Date:   Wed Jan 24 10:18:12 2018 -0500

    Merge branch 'master' into scox/gdbserver-multi-client

commit 0984958bd1d20245e4d42888a697b6015dc6172f
Author: Maciej W. Rozycki <macro@mips.com>
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)"),
    <https://sourceware.org/ml/binutils/2012-12/msg00240.html> 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 <macro@mips.com>
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"),
    <https://sourceware.org/ml/binutils/2009-01/msg00335.html>, 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 <macro@mips.com>
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"),
    <https://sourceware.org/ml/binutils/1999-q3/msg00072.html>.
    
    	bfd/
    	* elfxx-mips.c (_bfd_mips_elf_final_link): Update a stale
    	`mips_elf32_section_processing' comment reference.

commit be3a8dca2d7241878302ca55f45129d532b6f746
Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
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 <igor.v.tsimbalist@intel.com>
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 <macro@mips.com>
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"),
    <https://sourceware.org/ml/binutils/2003-05/msg00187.html> 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 <macro@mips.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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 <prudo@linux.vnet.ibm.com>
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) <tdesc>: New field.
    	(s390_gdbarch_tdep_alloc): Adjust.
    	(s390_gdbarch_init): Adjust.

commit ab9bcc67975f2a04dfa0e670096fc8161d7840b9
Author: Philipp Rudo <prudo@linux.vnet.ibm.com>
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) <have_linux_v1, have_linux_v2>
    	<have_tdb>: Change type to bool.
    	(s390_gdbarch_tdep_alloc): Adjust.
    	(s390_gdbarch_init): Adjust.

commit 21f6f5ffc652e116e518fee29ebdc8fbfeeaa734
Author: Philipp Rudo <prudo@linux.vnet.ibm.com>
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) <ABI_NONE>: New default field.
    	(gdbarch_tdep) <have_upper, have_vx>: 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 <prudo@linux.vnet.ibm.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Jan 23 00:00:22 2018 +0000

    Automatic date update in version.in

commit 75c80ee120e7d1bfb78570aa89d8d8fec6812d0f
Author: Maciej W. Rozycki <macro@mips.com>
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 <macro@mips.com>
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 <palves@redhat.com>
Date:   Mon Jan 22 17:33:13 2018 +0000

    Fix segfault with 'set print object on' + 'whatis <struct>' & 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  <palves@redhat.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* typeprint.c (whatis_exp): Initialize "val" in the "whatis type"
    	case.
    
    gdb/testsuite/ChangeLog:
    2018-01-22  Pedro Alves  <palves@redhat.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* gdb.base/whatis.exp: Add tests for 'set print object on' +
    	'whatis <struct>' 'whatis <struct> *' and 'whatis <struct> &'.

commit d65ce302abcb260e14ca5f201b78e8e6d4a2e720
Author: Maciej W. Rozycki <macro@mips.com>
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 <olegendo@gcc.gnu.org>
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 <nickc@redhat.com>
Date:   Mon Jan 22 13:48:15 2018 +0000

    Update Swedish translation for the binutils sub-directory

commit ec7a5fcbfd90b2f67f1a0e3f9866b11c5968ae61
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* regcache.c (cooked_write_test): New function.
    	(_initialize_regcache): Register the test.

commit 11f57cb67ecf5c69911eff21b54e05e93bbf2734
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* jit.c (jit_frame_prev_register): Call regcache::cooked_read
    	instead of gdbarch_pseudo_register_read_value.

commit de4cb04a20782b817fc80b49bba83b43cf1cb85d
Author: Joel Brobecker <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Mon Jan 22 00:00:29 2018 +0000

    Automatic date update in version.in

commit e707fc445e68ccfa136a52cd4989b0cb778d1ca7
Author: Andrew Burgess <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <gdbadmin@sourceware.org>
Date:   Sun Jan 21 00:00:35 2018 +0000

    Automatic date update in version.in

commit 8a1b824af786989f879ab1421a4279f60bba141a
Author: H.J. Lu <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Jan 20 00:00:22 2018 +0000

    Automatic date update in version.in

commit fcfcc376969c4d7a6d20827c47b584db389a32b9
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* rust-lang.c (rust_lookup_symbol_nonlocal): Look up qualified
    	symbols in the static and global blocks.
    
    2018-01-19  Tom Tromey  <tom@tromey.com>
    
    	* gdb.rust/modules.rs (TWENTY_THREE): New global.
    	* gdb.rust/modules.exp: Add ::-qualified lookup test.

commit 634c1c3109a2ffdf43ef9dab839c88108d9980f3
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
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 <jrtc27@jrtc27.com>
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 <jrtc27@jrtc27.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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) <to_detach>: 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 <simon.marchi@ericsson.com>
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) <to_detach>: 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) <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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    gas/
    	* config/tc-arm.c (ToC macro): Remove spurious comment.
    	(ToU macro): Likewise.

commit d6ad07fdef94777bb512f072361706bcc743d51c
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
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 <nickc@redhat.com>
Date:   Fri Jan 19 10:50:06 2018 +0000

    Update French translation in bfd sub-directory

commit 88af8ea80b9732f951e61a4ed8868e722f337c8e
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* arm-linux-tdep.c (arm_linux_gcc_target_options): New function.
    	(arm_linux_init_abi): Install it.

commit dea445b940545f9564972c5410ac8792b72cc9c3
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* osabi.c (gdb_osabi_names): Extend the regexp for
    	arm-linux-gnueabihf and arm-linux-gnueabi.

commit adf8243ba9220966bbb8f67460b2d323e00cbfdb
Author: Ruslan Kabatsayev <b7.10110111@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Jan 19 00:00:31 2018 +0000

    Automatic date update in version.in

commit dcc069254040954ee72b3ed65b772d48cdff93df
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
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 <arnez@linux.vnet.ibm.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* dwarf2read.c (abbrev_table) <abbrevs>: Rename it to
    	m_abbrevs.
    	(abbrev_table::add_abbrev): Update.
    	(abbrev_table::lookup_abbrev): Update.

commit d679c21a43852305c5eeae957854f6e13d6f884c
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* ppc-linux-tdep.c (ppu2spu_prev_register): Call cooked_read.

commit 691d2e9af211ff8dd5fa8c96cb961b73a78394d7
Author: Alan Modra <amodra@gmail.com>
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 <nickc@redhat.com>
Date:   Thu Jan 18 09:38:59 2018 +0000

    Update Bulgarian translation of the binutils sub-directory

commit 2f89d95b71478464a898147fb20dd50ece260168
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Thu Jan 18 00:00:24 2018 +0000

    Automatic date update in version.in

commit 7d937cad0acdccd0ff485435fbe16f005e994c66
Author: Sergio Durigan Junior <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* compile/compile.c (compile_to_object): Convert "triplet_rx"
    	to "std::string".

commit e925c834ecdb4a0ce595ad8d3da9c7d4f499ede0
Author: Jim Wilson <jimw@sifive.com>
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) <addi>: Use z instead of 0.

commit 9e14690d06ac55136b7f051a2d2b8e173fa3bbdf
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* dwarf2read.c (symbolp): Remove typedef.  Don't instantiate VEC.

commit 50a820477b5d48d4c2d28ca1c22ba6d93c9fd7cb
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <simon.marchi@ericsson.com>
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  <tom@tromey.com>
    	    Simon Marchi  <simon.marchi@ericsson.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    	    Simon Marchi  <simon.marchi@ericsson.com>
    
    	* dwarf2read.c (struct dwarf2_cu) <abbrev_table>: Remove.
    	(struct die_reader_specs) <abbrev_table>: New member.
    	(struct abbrev_table): Add constructor.
    	<alloc_abbrev, add_abbrev, lookup_abbrev>: Declare.
    	<abbrev_obstack>: 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <simon.marchi@ericsson.com>
Date:   Wed Jan 17 12:59:51 2018 -0500

    Fix ChangeLog dates of previous commit

commit 416675305692976aca45860e24b963982a2e682a
Author: Mike Gulick <mike.gulick@mathworks.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <igor.v.tsimbalist@intel.com>
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 <nickc@redhat.com>
Date:   Wed Jan 17 15:52:37 2018 +0000

    Update Ukranian and Russian translations in bfd library

commit f517c1805ac50c64c2dbb086c16b3bcf33b15a89
Author: Eldar Abusalimov <eldar.abusalimov@jetbrains.com>
Date:   Mon Jan 15 16:57:42 2018 +0300

    configure: Fix test for fs_base/gs_base in <sys/user.h>
    
    Make <sys/types.h> be included prior to including <sys/user.h>.
    
    glibc versions older than 2.14 use __uintNN_t types within certain
    structures defined in <sys/user.h> 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 <sys/user.h>
        |
        | 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 <sys/user.h>,
    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  <eldar.abusalimov@jetbrains.com>
    
    	PR gdb/21559
    	* configure.ac: Include <sys/types.h> prior to <sys/user.h> when
    	checking for fs_base/gs_base fields in struct user_regs_struct.
    	* configure: Regenerate.
    
    gdb/gdbserver/ChangeLog:
    2018-01-17  Eldar Abusalimov  <eldar.abusalimov@jetbrains.com>
    
    	PR gdb/21559
    	* configure.ac: Include <sys/types.h> prior to <sys/user.h> when
    	checking for fs_base/gs_base fields in struct user_regs_struct.
    	* configure: Regenerate.

commit 7045b1ca73b8c0cb12d1158f3bc59d251dca0fa5
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <function called from gdb>^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  <function called from gdb>^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  <yao.qi@linaro.org>
    
    	* gdb.compile/compile.exp: Match the address printed for
    	frame in the output of command "bt".

commit c75bc4f76fe456c57ef1e446db5378182692c429
Author: Alan Modra <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Jan 17 00:00:42 2018 +0000

    Automatic date update in version.in

commit 0dd86f32bcb1675e9d1db5e7b916a347667709d3
Author: Joel Brobecker <brobecker@adacore.com>
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 <nickc@redhat.com>
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 <brobecker@adacore.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	PR gdb/18749
    	* linux-low.c (fetch_register): Call supply_register instead of
    	error.

commit 46a7082471545e05e7161737fa3b6f597e150b72
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Tue Jan 16 00:00:34 2018 +0000

    Automatic date update in version.in

commit 2721d702a055fe0f7621386123b103b5c4d84662
Author: Jim Wilson <jimw@sifive.com>
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) <addi>: Handle an addi that compresses to c.nop.

commit db422fb2120e311318657d9c7dd0e7b0b5a5eac9
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* common/signals-state-save-restore.c
    	(save_original_signals_state): Fix typos.

commit 86d6a90c58ee3fb924bcbca154f4e32347437e6c
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* gdb.guile/scm-ports.exp (test_mem_port_rw): Use get_valueof to
    	compute sp_reg.

commit 930b5f8bfb8e2d971f459c570d248714183a08d5
Author: Cary Coutant <ccoutant@gmail.com>
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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <szabolcs.nagy@arm.com>
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 <nickc@redhat.com>
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 <szabolcs.nagy@arm.com>
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 <sergiodj@redhat.com>
    
        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 <gdbadmin@sourceware.org>
Date:   Mon Jan 15 00:00:29 2018 +0000

    Automatic date update in version.in

commit 1f8e8a3540865686686e1a87e6b5e16dc6011595
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sun Jan 14 00:00:44 2018 +0000

    Automatic date update in version.in

commit 19e2900bd399d1ba272afe8b5b50b1b29a948bbe
Author: Nick Clifton <nickc@redhat.com>
Date:   Sat Jan 13 14:29:27 2018 +0000

    Update notes on how to make a release

commit 3957a4963f38fb249eced6c880efacd22f10eb28
Author: Nick Clifton <nickc@redhat.com>
Date:   Sat Jan 13 13:56:48 2018 +0000

    Update pot files

commit 769c7ea507209948135facd04bf8defc3f21a8a4
Author: Nick Clifton <nickc@redhat.com>
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 <nickc@redhat.com>
Date:   Sat Jan 13 13:26:38 2018 +0000

    Add note about 2.30 branch creation to changelogs

commit 9176ac5bfce8c1771063c2514b7d46efa613cc1b
Author: Nick Clifton <nickc@redhat.com>
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 <ccoutant@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Jan 13 00:00:33 2018 +0000

    Automatic date update in version.in

commit cbcdb1aaddb4dd1a388eadbea6b6ec342c7ab067
Author: Andrew Burgess <andrew.burgess@embecosm.com>
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 <sergiodj@redhat.com>
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 <naesten@gmail.com>
      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  <tom@tromey.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* Makefile.in (install-only): Install gdb-add-index.
    
    gdb/doc/ChangeLog:
    2017-01-12  Tom Tromey  <tom@tromey.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* 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 <jhb@FreeBSD.org>
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 <echristo@gmail.com>
Date:   Fri Jan 12 11:05:58 2018 -0800

    Apply:
    
    2018-01-12 Sterling Augustine <saugustine@google.com>
    
    	   * cref.cc (Cref_inputs::Cref_table_compare::operator): Add
    	   conditionals and calls to is_forwarder.

commit eea61984abfea2c0acdc7e46ec182a14698b3bf9
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* gdb.base/continue-after-aborted-step-over.c: New.
    	* gdb.base/continue-after-aborted-step-over.exp: New.

commit bdf2a94aa535016a1640d56e9b2b539c4376bf31
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
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  <arnez@linux.vnet.ibm.com>
    
    	* infrun.c (keep_going_pass_signal): Clear step-over info when
    	insert_breakpoints fails.

commit 98ab9e9603cdf52faab5b838c078c24be4e1364b
Author: Nick Clifton <nickc@redhat.com>
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 <jl@opera.com>
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 <gnikl@users.sourceforge.net>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <vlad@ivanov.email>
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 <nickc@redhat.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <simon.marchi@ericsson.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Jan 12 00:00:23 2018 +0000

    Automatic date update in version.in

commit d664fd41e15f058aab41b70c567ad09f2fab1115
Author: H.J. Lu <hjl.tools@gmail.com>
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 <palves@redhat.com>
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
    <https://sourceware.org/ml/gdb-patches/2017-12/msg00212.html>, 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  <palves@redhat.com>
    
    	PR gdb/22583
    	* infrun.c (resume): Rename to ...
    	(resume_1): ... this.
    	(resume): Reimplement as wrapper around resume_1.

commit 8b6f4cd34fdde524ea035c65f7d48aaa3fb449b5
Author: H.J. Lu <hjl.tools@gmail.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <andrew.burgess@embecosm.com>
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 <hjl.tools@gmail.com>
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 <szabolcs.nagy@arm.com>
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 <jhb@FreeBSD.org>
    
        Document support for 'info proc' on FreeBSD.
    
    fail to build.
    
    gdb/doc/ChangeLog:
    
    	* gdb.texinfo (pwd): Fix whitespace.

commit 3cada74087687907311b52781354ff551e10a0ed
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Jan 11 00:23:04 2018 +0000

    Fix backwards compatibility with old GDBservers (PR remote/22597)
    
    At <https://sourceware.org/ml/gdb-patches/2017-12/msg00285.html>,
    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 <main>]
      (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 <Thread ID 2> 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 <remote_ops>, 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 <remote_ops>, 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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	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 <igor.v.tsimbalist@intel.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Jan 11 00:00:23 2018 +0000

    Automatic date update in version.in

commit b90d5ba0b6e068db21650ad42ec9dea22426df00
Author: Alan Modra <amodra@gmail.com>
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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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 <MixedCaseFunc>
        $1 = {<text variable, no debug info>} 0x4024dc <MixedCaseFunc>
    
    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  <MixedCaseFunc>
        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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	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 <palves@redhat.com>
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  <palves@redhat.com>
    
            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  <palves@redhat.com>
    
            PR gdb/22670
    	* gdb.ada/complete.exp ("complete break ada"): Replace kfail with
    	a fail.

commit 8825213e97f0476068dc3b52b1b61df96b40708a
Author: Pedro Alves <palves@redhat.com>
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., "<MixedCase>" 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  <palves@redhat.com>
    
    	PR gdb/22670
    	* minsyms.c (linkage_name_str): New function.
    	(iterate_over_minimal_symbols): Use it.
    
    gdb/testsuite/ChangeLog:
    2018-01-10  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/22670
    	* gdb.ada/bp_c_mixed_case.exp: Remove setup_kfail calls.

commit 7ec0cd50bf2c93854ef02b9c1f3b4edc4b70cd46
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Jan 10 15:35:34 2018 +0000

    oops - updates to ChangeLog omitted by accident from previous delta.

commit bf41f30dde0f2ad09c2b7a9894fd7992e4b36a16
Author: Nick Clifton <nickc@redhat.com>
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  <boris@codesynthesis.com>
    
    	* gcc-plugin.m4: Add support for MinGW.
    
    	2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
    
    	* cet.m4: New file.
    
    	2017-11-15  Alexandre Oliva <aoliva@redhat.com>
    
    	* bootstrap-debug-lean.mk (do-compare): Use the
    	contrib/compare-debug script.
    
    	2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
    
    	* bootstrap-cet.mk: New file.
    
    	2017-06-19  Martin Liska  <mliska@suse.cz>
    
    	* bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages.
    	* bootstrap-lto.mk: Likewise.
    
    	2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>
    
    	* mt-android: New file.
    
    	2017-02-13  Richard Biener  <rguenther@suse.de>
    
    	* isl.m4: Remove support for ISL 0.14.
    
    	2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
    
    	PR target/78478
    	* ax_check_define.m4: New file.
    
    	2017-01-17  Jakub Jelinek  <jakub@redhat.com>
    
    	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  <ro@CeBiTec.Uni-Bielefeld.DE>
    
    	PR go/78978
    	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.

commit 2a8ae7146cacb006105e2e9c6f4635aca543e7ec
Author: Nick Clifton <nickc@redhat.com>
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  <rguenther@suse.de>
    
    	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  <rguenther@suse.de>
    
    	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  <amodra@gmail.com>
    
    	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  <amodra@gmail.com>
    
    	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  <jakub@redhat.com>
    
    	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  <nathan@acm.org>
    
    	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  <nathan@acm.org>
    
    	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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Jan 10 00:00:34 2018 +0000

    Automatic date update in version.in

commit 2d97a5d9d33aea87c3bd02fd1fa417f5d4e1fa05
Author: John Baldwin <jhb@FreeBSD.org>
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 <jhb@FreeBSD.org>
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.<pid>
      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.<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 <jhb@FreeBSD.org>
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 <jhb@FreeBSD.org>
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.<pid> 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 <jhb@FreeBSD.org>
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 <jimw@sifive.com>
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 <james.greenhalgh@arm.com>
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  <james.greenhalgh@arm.com>
    
    	* arm-dis.c (arm_opcodes): Add csdb.
    	(thumb32_opcodes): Add csdb.
    
    gas/
    
    2018-01-09  James Greenhalgh  <james.greenhalgh@arm.com>
    
    	* 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 <james.greenhalgh@arm.com>
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 <roirand@adacore.com>
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   <MULTIPLE>
    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 <kuanlinchentw@gmail.com>
Date:   Tue Jan 9 16:04:58 2018 +0800

    PR22662, nds32: Fix a typographical error.

commit 7615ca1dc941bb9f225a1c50df7fdd8d31afc9e8
Author: Jim Wilson <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Jan 9 00:00:33 2018 +0000

    Automatic date update in version.in

commit 9c4ac400f0f7d8daa8483dbe73b5699782ae3e22
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
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 <elf.h> and <link.h>.
    	(gnu_xfer_auxv): New function.
    	(gnu_xfer_partial): Call gnu_xfer_auxv when `object' is
    	TARGET_OBJECT_AUXV.

commit 704a705d7aaab8041df76e2981e2a1efc014aad0
Author: H.J. Lu <hjl.tools@gmail.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    	    Simon Marchi  <simon.marchi@ericsson.com>
    
    	* 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  <simon.marchi@ericsson.com>
    
    	* gdb.server/unittest.exp: Match the output in non-development
    	mode.

commit 1e5ded6ce688ddee065fa852053dda07fcce959e
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    	    Simon Marchi  <simon.marchi@ericsson.com>
    
    	* 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  <simon.marchi@ericsson.com>
    
    	* gdb.gdb/unittest.exp: Match output in non-development mode.

commit 9f86398b29d53a5a0aaea390ce813628715b3125
Author: Joel Brobecker <brobecker@adacore.com>
Date:   Mon Jan 8 04:39:23 2018 -0500

    Fix second-to-last gdb/testsuite/ChangeLog entry.

commit 30066b0b00a2c09baed08e49437c2ae3c44bc4e0
Author: Joel Brobecker <brobecker@adacore.com>
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 <nickc@redhat.com>
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 <roirand@adacore.com>
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  <brobecker@adacore.com>):
    
            * 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 <gdbadmin@sourceware.org>
Date:   Mon Jan 8 00:00:33 2018 +0000

    Automatic date update in version.in

commit 518817b361167ac91e7cdad8528b4d90cdc3fb26
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <dwarf2_per_objfile>: 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 <simon.marchi@ericsson.com>
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.
    	<dwarf2_per_objfile>: 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) <index>: Remove.
    	<dwarf2_per_objfile>: 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) <constructor>: Add dwarf2_per_objfile
    	parameter, update m_debugstrlookup construction.
    	(debug_names::debug_str_lookup): Add dwarf2_per_objfile
    	parameter.
    	<m_dwarf2_per_objfile>: New field.
    	<lookup>: 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 <simon.marchi@ericsson.com>
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) <objfile>: Remove.
    	<dwarf2_per_objfile>: New field.
    	(struct dwarf2_per_cu_data) <objfile>: Remove.
    	<dwarf2_per_objfile>: 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 <simon.marchi@polymtl.ca>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@polymtl.ca>
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.
    	<value>: 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 <simon.marchi@polymtl.ca>
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) <clone>: Remove.
    	* python/py-xmethods.c (struct python_xmethod_worker) <clone>:
    	Remove.
    	(python_xmethod_worker::clone): Remove.
    	* valops.c (find_overload_match): Use std::move instead of
    	clone.

commit ba18742c3a1b62ff218db99bee47bb932af6dab9
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <clone_xmethod_worker_data>: Remove.
    	<free_xmethod_worker_data>: Remove.
    	<get_matching_xmethod_workers>: Chance VEC to std::vector.
    	<get_xmethod_arg_types>: Remove.
    	<get_xmethod_result_type>: Remove.
    	<invoke_xmethod>: 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.
    	<data>: Remove.
    	<value>: Remove.
    	<invoke, clone, do_get_result_type, do_get_arg_types>: New
    	virtual pure methods.
    	<get_arg_types, get_result_type>: 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.
    	<invoke, clone, do_get_arg_types, do_get_result_type>: 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 <gdbadmin@sourceware.org>
Date:   Sun Jan 7 00:00:33 2018 +0000

    Automatic date update in version.in

commit 35eeb78fa9535df6a273c053d8f102e046261b89
Author: Jim Wilson <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Jan 6 00:00:28 2018 +0000

    Automatic date update in version.in

commit be1dce26256aa9f6c7742e81c8c3db9eacff079d
Author: Jim Wilson <jimw@sifive.com>
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 <palves@redhat.com>
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 <http://gnu.org/licenses/gpl.html>
     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:
     <http://www.gnu.org/software/gdb/bugs/>.
     Find the GDB manual and other documentation resources online at:
     <http://www.gnu.org/software/gdb/documentation/>.
     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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	PR gdb/18653
    	* server.c (captured_main): Pass quiet=false to
    	save_original_signals_state.
    
    gdb/testsuite/ChangeLog:
    2018-01-05  Pedro Alves  <palves@redhat.com>
    
    	PR gdb/18653
    	* gdb.base/libsegfault.exp: New.

commit a655456c134e5e02bab33941e1c738ca33905d23
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* spu-tdep.c (spu_catch_start): Pass
    	symbol_name_match_type::SEARCH_NAME to block_lookup_symbol.

commit de63c46b549d1cf4f7851e47872cb759a12983f4
Author: Pedro Alves <palves@redhat.com>
Date:   Fri Jan 5 14:04:09 2018 +0000

    Fix regresssion(internal-error) printing subprogram argument (PR gdb/22670)
    
    At <https://sourceware.org/ml/gdb-patches/2017-12/msg00298.html>, 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  <palves@redhat.com>
    
    	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  <brobecker@adacore.com>
    
    	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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	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 <brobecker@adacore.com>
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  <derodat@adacore.com>
      |
      | * 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 <guitton@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
Date:   Fri Jan 5 02:39:10 2018 -0500

    fix date of latest gdb/ChangeLog entry

commit 672a41aa12fb24fe24dbf52d2e78a3a846dc0225
Author: Joel Brobecker <brobecker@adacore.com>
Date:   Thu Jan 4 23:51:55 2018 -0500

    Fix email address in latest gdb/testsuite/ChangeLog entry

commit e3861a03138e24e7f2f0e8c4982bdad2a6e1dbaf
Author: Xavier Roirand <roirand@adacore.com>
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 <repeats 256 times>)
    
    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 <repeats 256 times>)
    
    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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Jan 5 00:00:35 2018 +0000

    Automatic date update in version.in

commit 645a2c5b46e18013ac9cb16b66ba7b6b97cd01c5
Author: Jim Wilson <jimw@sifive.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <MixedCaseFunc>
        Function "<MixedCaseFunc>" 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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Jan 4 00:00:20 2018 +0000

    Automatic date update in version.in

commit ddb2bbcf0624ef5f75c0a007c6b192c09b6fa70b
Author: John Baldwin <jhb@FreeBSD.org>
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 <nickc@redhat.com>
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 <nickc@redhat.com>
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 <roirand@adacore.com>
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) <ada_catch_handlers>:
            Add field.
            * ada-lang.c (struct exception_support_info) <catch_handlers_sym>:
            Add field.
            (default_exception_support_info) <catch_handlers_sym>: Add field.
            (exception_support_info_fallback) <catch_handlers_sym>: Add field.
            (ada_exception_name_addr_1): Add "catch handlers" handling.
            (ada_exception_catchpoint_cond_string) <ex>: New parameter.
            Update all callers.
            (create_excep_cond_exprs) <ex>: 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) <is_catch_handlers_cmd>:
            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 <amodra@gmail.com>
Date:   Wed Jan 3 15:47:27 2018 +1030

    Update year range in copyright notice of binutils files

commit 1e563868718a69231c80a1d86698cee0cf847e72
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Jan 3 15:45:17 2018 +1030

    ChangeLog rotation

commit bd570f80f6e47c93f4b1cc1e94688cdde33ca931
Author: Joel Brobecker <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Jan 3 00:00:31 2018 +0000

    Automatic date update in version.in

commit 43724d16bebb38fe6794f6a3741352a7698038de
Author: Nick Clifton <nickc@redhat.com>
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 <nickc@redhat.com>
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 <jbeulich@novell.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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) <DYN_PROP_BYTE_STRIDE>:
            New enum value.
            (create_array_type_with_stride): Add byte_stride_prop parameter.
            * gdbtypes.c (create_array_type_with_stride) <byte_stride_prop>:
            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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Jan 2 00:00:32 2018 +0000

    Automatic date update in version.in

commit c76ff6936bd0c7f8a331e57939b1b12d84466b9b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Mon Jan 1 00:00:38 2018 +0000

    Automatic date update in version.in

commit 47fea877452b84b94ac6ffb26f194f12845526fa
Author: Ruslan Kabatsayev <b7.10110111@gmail.com>
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 <simon.marchi@ericsson.com>
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))
      ^
    <scratch space>: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 <simon.marchi@ericsson.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    	    Simon Marchi  <simon.marchi@ericsson.com>
    
    	* 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.
    	<expout>: 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) <la_post_parser>: Change type
    	of "expp".

commit a594729cfb10457e0046359d2dde0c28b4185449
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sun Dec 31 00:00:27 2017 +0000

    Automatic date update in version.in

commit fc898b42e355fef58e6a029799fdd71b9dda5dc6
Author: Simon Marchi <simon.marchi@ericsson.com>
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<mapped_debug_names>::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<mapped_debug_names, std::default_delete<mapped_debug_names> >::~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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Dec 30 00:00:30 2017 +0000

    Automatic date update in version.in

commit ffd727ca6e52d448137c8cddfbd361c67532e4e1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Fri Dec 29 00:00:34 2017 +0000

    Automatic date update in version.in

commit d9be0c189a9a9b77a6bf4501f8891544b8ce9593
Author: Jim Wilson <jimw@sifive.com>
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 <simon.marchi@polymtl.ca>
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) <TARGET_OBJECT_HPUX_UREGS,
    	TARGET_OBJECT_HPUX_SOLIB_GOT>: Remove.

commit 0f833180d3e7a4551ffcd00ee9b6d2483ea23a8a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Thu Dec 28 00:00:21 2017 +0000

    Automatic date update in version.in

commit cef0f8684e818f8b6c71c44dc9cc28a6d0ac3754
Author: Stafford Horne <shorne@gmail.com>
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  <franck.jullien@gmail.com>
    	    Stafford Horne  <shorne@gmail.com>
    
    	* 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  <shorne@gmail.com>
    
    	* 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  <shorne@gmail.com>
    
    	* gdb.texinfo (Target Description Format): Explain that arbitrary
    	strings are now allowed for register groups.

commit f7efd549485db1fd84dbd2f2ee36d80c2739f224
Author: Stafford Horne <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* 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 <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* 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 <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* infcmd.c (_initialize_infcmd): Add help for info reg $reggroup
    	and info all-registers $reggroup feature.
    
    gdb/doc/ChangeLog:
    
    yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>
    
    	* gdb.texinfo (Registers): Document info reg $reggroup feature.
    
    gdb/testsuite/ChangeLog:
    
    yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>
    
    	* gdb.base/reggroups.c: New file.
    	* gdb.base/reggroups.exp: New file.

commit 76bce0d1d5c4e434736ce4331bc987c7a1ee702c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Wed Dec 27 00:00:21 2017 +0000

    Automatic date update in version.in

commit a811763d7467c8c0c819d7f0a93c4406b7c049dd
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Tue Dec 26 00:00:28 2017 +0000

    Automatic date update in version.in

commit dc6af97a85961f06b3b4e14707dad2bcac39921a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Mon Dec 25 00:00:30 2017 +0000

    Automatic date update in version.in

commit a6c42a6e7404cc469db89a382d2eebd31d794d5b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sun Dec 24 00:00:39 2017 +0000

    Automatic date update in version.in

commit 6e8c24fe27098f407000812e61fa8210095a7970
Author: Simon Marchi <simon.marchi@polymtl.ca>
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)
    	<printf_field_type_assignment>: Add ATTRIBUTE_PRINTF.

commit 5c8833d2fa4bcb6a0ef4249dd095bcf29a240465
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sat Dec 23 00:00:31 2017 +0000

    Automatic date update in version.in

commit 845756abe87ee8a272171edf032242ce4ad13865
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Fri Dec 22 00:00:31 2017 +0000

    Automatic date update in version.in

commit a8d2e5856f87a658d69018fe1ccd56482eebdd59
Author: Simon Marchi <simon.marchi@ericsson.com>
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) <visit>: Don't output
    	field_type declaration, use printf_field_type_assignment
    	instead.
    	<printf_field_type_assignment>: 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 <ubizjak@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Dec 21 00:00:39 2017 +0000

    Automatic date update in version.in

commit 21a186f28061ea51e422ae47d062793ceac2180f
Author: Jim Wilson <jimw@sifive.com>
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) <o>: 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) <li>: Delete "d,0" line.  Change Cj to Co.
    	<andi, and, add, addiw, addw, c.addi>: Change Cj to Co.
    	<add>: Add explanatory comment for 4-operand add instruction.
    	<c.nop>: Add support for immediate operand.
    	<c.mv, c.add>: Use match_c_add_with_hint instead of match_c_add.
    	<c.lui>: Use match_c_lui_with_hint instead of match_c_lui.
    	<c.li, c.slli>: Use match_opcode instead of match_rd_nonzero.

commit 396d3980f518cfc9a936e3fb8138b0492399525a
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <simon.marchi@ericsson.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Dec 20 00:00:21 2017 +0000

    Automatic date update in version.in

commit 00c2093f698e8f40c04340cb1832d09e11ece237
Author: Tamar Christina <tamar.christina@arm.com>
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 <tamar.christina@arm.com>
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<num>.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 <nickc@redhat.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Dec 19 00:00:18 2017 +0000

    Automatic date update in version.in

commit 63f452a8bfd9c89b56dcc087cea84151e7a9ec24
Author: Alan Modra <amodra@gmail.com>
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 <amodra@gmail.com>
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 <nickc@redhat.com>
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 <nickc@redhat.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <brobecker@adacore.com>
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 = <error reading variable: value has been optimized out>
    
    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 = <error reading variable: unable to read value of fd__Tints_doubledC___XVZ (value has been optimized out)>
    
    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 <brobecker@adacore.com>
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><ae9>: Abbrev Number: 7 (DW_TAG_structure_type)
        <aea>   DW_AT_name        : (indirect string, offset: 0x1045): target_wrapper__parameters
        [...]
     <2><af5>: Abbrev Number: 8 (DW_TAG_member)
        <af6>   DW_AT_name        : u2
        [...]
        <afb>   DW_AT_type        : <0xaca>
    
    and, looking at DIE 0xaca to get input.u2's type, we see:
    
     <1><aca>: Abbrev Number: 4 (DW_TAG_typedef)
        <acb>   DW_AT_name        : (indirect string, offset: 0x1060): target_wrapper__float_array_3
        [...]
        <ad1>   DW_AT_type        : <0xad5>
    
    We can also confirm, following the DW_AT_type attribute (0xad5), that
    it's a typedef of our array:
    
     <1><ad5>: Abbrev Number: 5 (DW_TAG_array_type)
        <ad6>   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 <roirand@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Mon Dec 18 00:00:20 2017 +0000

    Automatic date update in version.in

commit 390c91cfcffe1a0d75b6100d1542cda2544993b3
Author: H.J. Lu <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Sun Dec 17 00:00:31 2017 +0000

    Automatic date update in version.in

commit 38af1824019684e819ffb880bdf7fb03a2c2000a
Author: Stafford Horne <shorne@gmail.com>
Date:   Sun Dec 17 07:20:51 2017 +0900

    gdb: Fix function parameter alignments in or1k-tdep.c.
    
    As suggested by Joel Brobecker <brobecker@adacore.com> 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 <shorne@gmail.com>
Date:   Sun Dec 17 07:20:50 2017 +0900

    gdb: Add news entries for new or1k target.
    
    gdb/ChangeLog:
    
    yyyy-mm-dd  Stafford Horne  <shorne@gmail.com>
    
    	* NEWS (Changes since GDB 8.0): Mention new or1k target and new
    	commands to set/show or1k debug.

commit 46afe196ec282505dcd2727725bfb5ef87ea4b21
Author: Sergio Durigan Junior <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* typeprint.c (whatis_exp): Fix ARI warning and reindent "if"
    	condition.

commit 09da3ecf04d75084ea7d9c43e3cc0b18b2443ea3
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sat Dec 16 00:00:33 2017 +0000

    Automatic date update in version.in

commit 7c1618381fdaa0697a211721ac31844f884797ac
Author: Sergio Durigan Junior <sergiodj@redhat.com>
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:
    
      <https://src.fedoraproject.org/rpms/gdb/blob/master/f/gdb-archer.patch#_311>
    
    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  <sergiodj@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	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) <print_offsets>: New field.
    
    gdb/testsuite/ChangeLog:
    2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	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  <sergiodj@redhat.com>
    
    	PR cli/16224
    	* gdb.texinfo (ptype): Add documentation for new flag '/o'.

commit a27ed7d613ec91c3a79965d6bdab1fa96d559c85
Author: Sergio Durigan Junior <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* 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 <nickc@redhat.com>
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 <rth@redhat.com>
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  <rth@redhat.com>
    	    Uros Bizjak  <ubizjak@gmail.com>
    
    	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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* gdb.gdb/unittest.exp: Skip 'maintenance check xml-descriptions'
    	if XML is disabled.

commit 97d4fac10fb9dac465d1d7e7a26c6b9cfb0b1326
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* unittests/memory-map-selftests.c: Wrap test with HAVE_LIBEXPAT.

commit fbc2255575afc0d332b28fd4991235e020cda667
Author: Dimitar Dimitrov <dimitar@dinux.eu>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <amodra@gmail.com>
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 <roirand@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Dec 15 00:00:27 2017 +0000

    Automatic date update in version.in

commit 8e557e52b3fd45a56fb42dbbaad3d6ece3694eb4
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <module>
          b1 = gdb.Breakpoint("foo", qualified=False)
      TypeError: argument 10 (impossible<bad format char>)
    
    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 <nickc@redhat.com>
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 <amodra@gmail.com>
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 <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    
    	* 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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Dec 14 00:00:20 2017 +0000

    Automatic date update in version.in

commit 25982ee0222196381863a17dc135fc1d2763b385
Author: Jim Wilson <jimw@sifive.com>
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) <fsrmi, fsflagsi>: New.

commit b89641bab55496e52094282fabe146289c57b6d1
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* lib/completion-support.exp (test_gdb_complete_tab_multiple):
    	Tighten regexp by matching with an anchor.

commit a22ecf70263eff75ca2c5878fe7e8d0311d6737f
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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<char> &&,
    	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<char> &&,
    	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 <simon.marchi@ericsson.com>
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 <renlin.li@arm.com>
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 <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* 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 <simon.marchi@ericsson.com>
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 <dimitar@dinux.eu>
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 <krebbel@linux.vnet.ibm.com>
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  <krebbel@linux.vnet.ibm.com>
    
    	* 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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Dec 13 00:00:21 2017 +0000

    Automatic date update in version.in

commit 702d582e2c5ab9fbd6e9a68f26d49575bfe7e062
Author: Peter Gavin <pgavin@gmail.com>
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  <pgavin@gmail.com>
    	    Stafford Horne <shorne@gmail.com>
    
    	* 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  <shorne@gmail.com>
    	    Peter Gavin  <pgavin@gmail.com>
    
    	* configure: Regenerated.

commit 0cd79707332aef140efa2275363c40aaaeba1c22
Author: Stafford Horne <shorne@gmail.com>
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  <shorne@gmail.com>
    	    Peter Gavin  <pgavin@gmail.com>
    
    	* configure: Regenerated.
    	* or1k/aclocal.m4: Generated.
    	* or1k/config.in: Generated.
    	* or1k/configure: Generated.

commit 6e51bfa75535439cc66039bcf4e8ebf16e8fe124
Author: Stafford Horne <shorne@gmail.com>
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  <shorne@gmail.com>
    	    Peter Gavin  <pgavin@gmail.com>
    
    	* 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 <shorne@gmail.com>
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  <shorne@gmail.com>
    	    Peter Gavin  <pgavin@gmail.com>
    
    	* 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 <pgavin@gmail.com>
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  <pgavin@gmail.com>
    	    Stafford Horne  <shorne@gmail.com>
    
    	* cgen-ops.h (MUL2OFSI): New function, 2's complement overflow
    	flag.
    	(MUL1OFSI): New function, 1's complement overflow flag.

commit 07b95864f35f19636e2a95eaf3083a8b18ac7cda
Author: Peter Gavin <pgavin@gmail.com>
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  <pgavin@gmail.com>
    	    Stafford Horne <shorne@gmail.com>
    
    	* 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 <shorne@gmail.com>
Date:   Sat Dec 9 05:57:25 2017 +0900

    Add gdb for or1k build
    
    * ChangeLog:
    
    2017-12-12  Stafford Horne  <shorne@gmail.com>
    
    	* configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.
    	* configure: Regenerate.
    
    Cc: gcc-patches@gcc.gnu.org

commit fe49c6f559b67fee381f0c2a6f67c10ca306ca8a
Author: Stafford Horne <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* gdb.xml/tdesc-regs.exp: Add or1k support.

commit c3d186206bf04a40244e727fa381f78a1600f196
Author: Stafford Horne <shorne@gmail.com>
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  <shorne@gmail.com>
    
    	* gdb.base/bp-permanent.c: Define nop of or1k.

commit a994fec4f8f7a886be61cfb3023c354cd2483b9d
Author: Franck Jullien <franck.jullien@gmail.com>
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  <shorne@gmail.com>
    	    Stefan Wallentowitz  <stefan@wallentowitz.de>
    	    Franck Jullien  <franck.jullien@gmail.com>
    	    Jeremy Bennett  <jeremy.bennett@embecosm.com>
    
    	* gdb.texinfo: Add OpenRISC documentation.
    
    gdb/ChangeLog:
    
    2017-12-12  Stafford Horne  <shorne@gmail.com>
    	    Stefan Wallentowitz  <stefan@wallentowitz.de>
    	    Stefan Kristiansson  <stefan.kristiansson@saunalahti.fi>
    	    Franck Jullien  <franck.jullien@gmail.com>
    	    Jeremy Bennett  <jeremy.bennett@embecosm.com>
    
    	* 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 <amodra@gmail.com>
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 <simon.marchi@ericsson.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Dec 12 00:00:33 2017 +0000

    Automatic date update in version.in

commit c4e648430f3c5c135310f87280d45dba581aaa7b
Author: Stephen Crane <sjc@immunant.com>
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  <sjc@immunant.com>
    
    	* 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 <renlin.li@arm.com>
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  <petr.pavlu@arm.com>
    	    Renlin Li  <renlin.li@arm.com>
    
    	* aarch64-dis.c (print_insn_aarch64): Move symbol section check ...
    	(get_sym_code_type): Here.
    
    binutils/
    
    2017-12-11  Renlin Li  <renlin.li@arm.com>
    
    	* testsuite/binutils-all/aarch64/objdump.d: New.
    	* testsuite/binutils-all/aarch64/objdump.s: New.

commit 3c0aa29aab3949363f8b23d062c2e0cb1ccf017a
Author: Pedro Alves <palves@redhat.com>
Date:   Mon Dec 11 13:24:32 2017 +0000

    Unbreak build for non-ELF ports
    
    As reported at
    <https://sourceware.org/ml/gdb-patches/2017-12/msg00229.html>, this
    commit:
    
    ~~~~
     commit abccd1e7b7a37385159610ca4e0bc2632a547e9a
     Author:     Jan Kratochvil <jan.kratochvil@redhat.com>
     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  <palves@redhat.com>
    
    	* 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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <brobecker@adacore.com>
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 <roirand@adacore.com>
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) <ada_primitive_type_storage_offset>:
            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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Mon Dec 11 00:00:20 2017 +0000

    Automatic date update in version.in

commit 57a2957f2ead9ec2464a1b6fbdb250e90d27afab
Author: Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>
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 <gdbadmin@sourceware.org>
Date:   Sun Dec 10 00:00:26 2017 +0000

    Automatic date update in version.in

commit c5ba17787d077249ab7071192566a2c0205fc97f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sat Dec 9 00:00:14 2017 +0000

    Automatic date update in version.in

commit a3c5fafd2e0bc8c1ea98c579c0a044c5b324967b
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* 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  <jan.kratochvil@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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<sect_offset, dwarf2_per_cu_data*>
    
    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<sect_offset, std::hash<sect_offset> >’:
      /usr/include/c++/5.3.1/type_traits:137:12:   required from ‘struct std::__and_<std::__is_fast_hash<std::hash<sect_offset> >, std::__detail::__is_noexcept_hash<sect_offset, std::hash<sect_offset> > >’
      /usr/include/c++/5.3.1/type_traits:148:38:   required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<sect_offset> >, std::__detail::__is_noexcept_hash<sect_offset, std::hash<sect_offset> > > >’
      /usr/include/c++/5.3.1/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<sect_offset, dwarf2_per_cu_data*>’
      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<sect_offset>) (const sect_offset&)’
        noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
    				    ^
      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  <palves@redhat.com>
    
    	* common/hash_enum.h: New file.

commit 4b514bc80885fa91e57b9d80f74ea267df343c46
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    
    	* 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 <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    
    	* 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 <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* 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<Elem, Alloc> &)): 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  <jan.kratochvil@redhat.com>
    
    	* 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 <jan.kratochvil@redhat.com>
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  <jan.kratochvil@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* 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 <amodra@gmail.com>
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 <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new
    	"expression_up" inside the TRY block.

commit f17d9474776e50ae47aa71c52211ea6e21adf5d5
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* breakpoint.c (update_watchpoint): Call
    	address_significant.
    
    gdb/testsuite:
    
    2017-12-08  Yao Qi  <yao.qi@linaro.org>
    
    	* gdb.arch/aarch64-tagged-pointer.c (main): Update.
    	* gdb.arch/aarch64-tagged-pointer.exp: Add tests for watchpoint.

commit a0de8c21baf46c40ed8e62faef5f750b1e5453ea
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* breakpoint.c (adjust_breakpoint_address): Call
    	address_significant.
    
    gdb/testsuite:
    
    2017-12-08  Yao Qi  <yao.qi@linaro.org>
    
    	* gdb.arch/aarch64-tagged-pointer.c (main): Update.
    	* gdb.arch/aarch64-tagged-pointer.exp: Add test for breakpoint.

commit a738ea1d41daeec0cccb4ab6671f4f6d53bd9e18
Author: Yao Qi <yao.qi@linaro.org>
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 <global>:	0x00000000
    (gdb) x/x 0xf000000000411030
    0xf000000000411030:	Cannot access memory at address 0xf000000000411030
    
    After this patch,
    
    (gdb) x/x 0x0000000000411030
    0x411030 <global>:	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  <yao.qi@linaro.org>
    
    	* 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  <yao.qi@linaro.org>
    
    gdb/testsuite:
    
    	* gdb.arch/aarch64-tagged-pointer.c: New file.
    	* gdb.arch/aarch64-tagged-pointer.exp: New file.

commit 8e481c3ba86e512b39b16b41de24e87a17f7d968
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* printcmd.c (ui_printf): Update.  Use std::vector.
    	* common/format.h (struct format_piece): Add constructor.
    	<string>: 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  <tom@tromey.com>
    
    	* ax.c (ax_printf): Update.

commit 10af2a65c8891435d0d63411a3e694cc74c9447c
Author: Max Filippov <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <sergiodj@redhat.com>
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 <palves@redhat.com>
    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  <sergiodj@redhat.com>
    
    	* gdb.arch/i386-sse-stack-align.exp: Cast "print" function call
    	"int".

commit 6b05c8bd437152d7a3ecfc19074ab243ee6c92f2
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	PR breakpionts/22567
    	* linespec.c (minsym_found): Set sal.section.

commit 336ef6d22a5dba921eed85eb4fa75ed22a02a633
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
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 <nickc@redhat.com>
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 <sangamesh.swamy@in.ibm.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Dec 8 00:00:21 2017 +0000

    Automatic date update in version.in

commit fa6eb693cf43b427474b1d96ce093f6ea9e5da6a
Author: Keith Seitz <keiths@redhat.com>
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 <keiths@redhat.com>
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 {
       <no data fields>
    }
    
    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 {
        <no data fields>
        class A::B {
            <no data fields>
        };
    }
    (gdb) set print type nested-type-limit 2
    type = class A {
        <no data fields>
        class A::B {
            <no data fields>
            class A::B::C {
                <no data fields>
            };
        };
    }
    
    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) <nested_types_list, nested_types_list_count>:
    	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) <nested_types, nested_types_count>: 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 <simon.marchi@ericsson.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	PR breakpoints/22511:
    	* breakpoint.c (commands_command_1): Don't throw an exception when
    	no commands have been read.
    
    2017-12-07  Tom Tromey  <tom@tromey.com>
    
    	* gdb.base/break.exp: Add test for empty "commands".

commit 23a8d1862b7e5b95f0fe9d724c6be326e545e6d1
Author: Adam Stylinski <adam.stylinski@etegent.com>
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  <adam.stylinski@etegent.com>
    
    	PR c++/21222
    	* target-descriptions.c (print_c_tdesc::visit_pre): Change type of
    	range-for variable.

commit a8806230241d201f808d856eaae4d44088117b0c
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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  <yao.qi@linaro.org>
    
    	* gdb.trace/ftrace.exp (run_trace_experiment): Set breakpoint on
    	malloc and catch syscall.

commit 30970df7d56bd65657c97296f31fe9862bf27e1d
Author: Simon Marchi <simon.marchi@ericsson.com>
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<selftests::selftest>::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<selftests::selftest, std::default_delete<selftests::selftest> >::~unique_ptr' requested here
        tests[name] = std::unique_ptr<selftest> (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 <pmuldoon@redhat.com>
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  <pmuldoon@redhat.com>
    
           * 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  <pmuldoon@redhat.com>
    
           * python.texi (Breakpoints In Python): Add text relating
           to allowed explicit locations and keywords in gdb.Breakpoints.
    
    testsuite/ChangeLog
    
    2017-12-07  Phil Muldoon  <pmuldoon@redhat.com>
    
           * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Add new
           tests for explicit locations.

commit 9c226a8689db8bced43b94f551e118551219ce54
Author: Joel Brobecker <brobecker@adacore.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Dec 7 00:00:30 2017 +0000

    Automatic date update in version.in

commit 649a140ccf129ff79ea55ac0cc23ebddec0f02ef
Author: Pedro Alves <palves@redhat.com>
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) <to_set_syscall_catchpoint>: Use
    	gdb::array_view and bool.
    	(target_set_syscall_catchpoint): Likewise.

commit 9a93831ccc0ba3ba447552069f230e6d93dcbf3f
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <jimw@sifive.com>
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 <palves@redhat.com>
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 <palves@redhat.com>
      Date: Fri, 25 Apr 2014 18:07:02 +0100
      Subject: [PATCH] Fix several "set remote foo-packet on/off" commands.
      <https://sourceware.org/ml/gdb-patches/2014-04/msg00006.html>
    
    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  <palves@redhat.com>
    
    	* 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  <palves@redhat.com>
    
    	* 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 <nickc@redhat.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <target>-linux
    (in contrast to <target>-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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Dec 6 00:00:23 2017 +0000

    Automatic date update in version.in

commit 0527614a9b805d1f640f477f51f9780403487ef8
Author: Jim Wilson <jimw@sifive.com>
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 <simon.marchi@ericsson.com>
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) <registers>: Use
    	tdesc_reg_up typedef.
    	(struct target_desc) <features>: Use tdesc_feature_up typedef.

commit d4a0e8b57d6f85e4ee4a31e0e6929ff5b4fd9823
Author: Simon Marchi <simon.marchi@polymtl.ca>
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.
    	<u>: Remove.
    	<accept>: 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) <visit>: Remove overload with tdesc_type
    	parameter, add overloads for tdesc_type_builtin,
    	tdesc_type_with_fields and tdesc_type_vector.
    	<m_printed_type>: Remove.
    	<m_printed_element_type, m_printed_type_with_fields>: 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) <current_type>: 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 <simon.marchi@polymtl.ca>
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.
    	<arch_regs>: 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 <simon.marchi@polymtl.ca>
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.
    	<name>: Change type to std::string.
    	(struct tdesc_type) <tdesc_type>: Instantiate vector if the type
    	kind uses it.
    	<~tdesc_type>: Destroy vector if the type kind uses it.
    	<u::u::fields>: 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) <visit>: Adjust.

commit 082b9140d953b9e6a78271384ec48ff5d0ba8fad
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <name>: Change type
    	to std::string.
    	<~tdesc_type>: Don't manually free name.
    	<operator==>: Adjust.
    	(tdesc_named_type): Adjust.
    	(tdesc_find_type): Adjust.
    	(tdesc_gdb_type): Adjust.
    	(class print_c_tdesc) <visit>: Adjust.

commit 53c934e9fed9a35542661690e4e71febcbebb539
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <types>: Change type to std::vector.
    	<~tdesc_feature>: Replace with default implementation.
    	<accept>: 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 <simon.marchi@ericsson.com>
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) <tdesc_reg>: Change
    	type of name_ parameter, adjust to std::string change.
    	<name, group, type>: Change type to std::string.
    	<~tdesc_reg>: Replace with default implementation.
    	<operator==>: Adjust.
    	(tdesc_find_register_early): Adjust.
    	(tdesc_register_name): Adjust.
    	(tdesc_register_type): Adjust.
    	(tdesc_register_in_reggroup_p): Adjust.
    	(class print_c_tdesc) <visit>: Adjust.
    	(class print_c_feature) <visit>: Adjust.

commit c9c895b9666e33a2b910faf9c1b667ea665f00f1
Author: Simon Marchi <simon.marchi@ericsson.com>
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) <registers>: Change type to std::vector.
    	<~tdesc_feature>: Don't manually free registers.
    	<accept>: Adjust.
    	<operator==>: Adjust.
    	(tdesc_has_registers): Adjust.
    	(tdesc_find_register_early): Adjust.
    	(tdesc_use_registers): Adjust.
    	(tdesc_create_reg): Adjust.

commit f65ff9f9a4add415e5ae332a094b2134c1625517
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <name>: Change type to
    	std::string.
    	<~tdesc_feature>: Don't manually free name.
    	<operator==>: Adjust.
    	(tdesc_find_feature): Adjust.
    	(tdesc_feature_name): Adjust.
    	(class print_c_tdesc) <visit_pre>: Adjust.
    	(class print_c_feature) <visit_pre>: Adjust.

commit 3eea796c5daeb7b60531fc3d707470fa91a86e11
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <features>: Change type to std::vector.
    	<~target_desc>: Replace with default implementation.
    	<accept>: Adjust.
    	<operator==>: Adjust.
    	(tdesc_has_registers): Adjust.
    	(tdesc_find_feature): Adjust.
    	(tdesc_use_registers): Adjust.
    	(tdesc_create_feature): Adjust.

commit 40e2a9835f6cf47b630babef3fd788e413ef2dc5
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <compatible>: Change type to std::vector.
    	<~target_desc>: Don't manually free compatible.
    	(tdesc_compatible_p): Adjust.
    	(tdesc_add_compatible): Adjust.
    	(class print_c_tdesc) <visit_pre>: Adjust.

commit 129c10bcb9b3bc2ed9682040aa9a0d144bb5e959
Author: Simon Marchi <simon.marchi@polymtl.ca>
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) <properties>: Make an std::vector.
    	<~target_desc>: Don't manually free properties.
    	(tdesc_property): Adjust.
    	(set_tdesc_property): Adjust.
    	(class print_c_tdesc) <visit_pre>: Adjust.

commit ed9376bd95c52ba00aa37b224b4407030a00d184
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Dec 5 00:00:22 2017 +0000

    Automatic date update in version.in

commit 3e1a70a0189ae8d2dacfef93790e42e42e721762
Author: Sergio Lopez <slp@redhat.com>
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  <slp@redhat.com>
    
    	* gdb.core/coredump-filter.exp: Extend test to verify
    	the functionality of the dump-excluded-mappings command.

commit c179febe79bf2fe2f64852c827813fc46da819f5
Author: Sergio Lopez <slp@redhat.com>
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  <slp@redhat.com>
    
    	* NEWS (Changes since GDB 8.0): Announce new "-a"
    	command line option for gcore.
    
    gdb/doc/ChangeLog:
    2017-11-29  Sergio Lopez  <slp@redhat.com>
    
    	* gdb.texinfo (gcore man): Document new "-a" command line option.

commit cd93789b89f55355d3eeda6c31ed7bd0ed318acd
Author: Sergio Lopez <slp@redhat.com>
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  <slp@redhat.com>
    
    	* gcore.in: Add "-a" command line option for instructing gdb to
    	dump all memory mappings (OS dependent).

commit 1e52e8495a074c9d1f7ef17f13b9060b76be6f41
Author: Sergio Lopez <slp@redhat.com>
Date:   Mon Dec 4 09:17:13 2017 +0100

    Document new {set,show} dump-excluded-mappings commands.
    
    gdb/ChangeLog:
    2017-11-29  Sergio Lopez  <slp@redhat.com>
    
    	* NEWS (Changes since GDB 8.0): Announce {set,show}
    	dump_excluded_mappings commands.
    
    gdb/doc/ChangeLog:
    2017-11-29  Sergio Lopez  <slp@redhat.com>
    
    	* gdb.texinfo (gcore): Mention new {set,show}
    	dump-excluded-mappings commands.
    	(set dump-excluded-mappings): Document new command.

commit afa840dcc021eaeb975dcde3bedbf46ea0511717
Author: Sergio Lopez <slp@redhat.com>
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  <slp@redhat.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* NEWS: Mention Rust trait object inspection.
    
    2017-12-04  Tom Tromey  <tom@tromey.com>
    
    	* gdb.texinfo (Rust): Update trait object status

commit 50a1fdd59c1777672a9be0e81fe2301c2a115fce
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	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 <amodra@gmail.com>
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 <amodra@gmail.com>
Date:   Mon Dec 4 22:25:45 2017 +1030

    Documentation fix
    
    	PR 22544
    	* doc/as.texinfo (8byte): Correct.

commit c88f7cba81551fe60246af61ac41effa2d51d36a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Mon Dec 4 00:00:26 2017 +0000

    Automatic date update in version.in

commit 48f7f3036a792c655c98b0742574841743e38f58
Author: Alan Modra <amodra@gmail.com>
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 <amodra@gmail.com>
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 <jimw@sifive.com>
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 <simon.marchi@ericsson.com>
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) <to_memory_map>: Change return type to
    	std::vector<mem_region>.
    	* 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 <palves@redhat.com>
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<int> 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<const_int> (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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* gdb.threads/process-dies-while-detaching.c: Include <errno.h>
    	and <string.h>.
    	(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 <amodra@gmail.com>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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 <gdbadmin@sourceware.org>
Date:   Sun Dec 3 00:00:36 2017 +0000

    Automatic date update in version.in

commit 222b39c283e3fd7823ad95ccc58ae94e76b63237
Author: Cary Coutant <ccoutant@gmail.com>
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  <vladimir@kondratyev.su>
    	    Cary Coutant  <ccoutant@gmail.com>
    
    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 <ccoutant@gmail.com>
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 <ccoutant@gmail.com>
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 <ccoutant@gmail.com>
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 <sergiodj@redhat.com>
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  <cagney@redhat.com>
    	    Joel Brobecker  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* 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) <OBJF_READNEVER>: 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  <cagney@redhat.com>
    	    Joel Brobecker  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* 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  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* gdb.base/readnever.c, gdb.base/readnever.exp: New files.

commit 754fa8997d48bc9da80e8c2e0baaf36a313ba74a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Sat Dec 2 00:00:25 2017 +0000

    Automatic date update in version.in

commit b57e49f726f854e65b2ce5e87dc7ee664daac1fb
Author: Jim Wilson <jimw@sifive.com>
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 <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* 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  <sergiodj@redhat.com>
    
    	* 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 <sergiodj@redhat.com>
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 <ccoutant@gmail.com>
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 <brobecker@adacore.com>
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 <bp@benjamin.pe>
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 <sjc@immunant.com>
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  <sjc@immunant.com>
    
    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 <sergiodj@redhat.com>
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  <cagney@redhat.com>
    	    Joel Brobecker  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* 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) <OBJF_READNEVER>: 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  <cagney@redhat.com>
    	    Joel Brobecker  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* 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  <brobecker@adacore.com>
    	    Sergio Durigan Junior  <sergiodj@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* gdb.base/readnever.c, gdb.base/readnever.exp: New files.

commit 0f873fd58b51a2906f31bb445ab685da04a1be23
Author: Peter Bergner <bergner@vnet.ibm.com>
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) <opcode>: Update type.
    	(struct powerpc_opcode) <mask>: Likewise.
    	(struct powerpc_opcode) <bitm>: Likewise.
    	(struct powerpc_opcode) <insert>: Likewise.
    	(struct powerpc_opcode) <extract>: Likewise.
    	(ppc_optional_operand_value): Likewise.
    
    gas/
    	* config/tc-ppc.c (last_insn): Update type.
    	(insn_validate) <omask, mask>: Likewise.
    	(ppc_setup_opcodes) <mask, right_bit>: Likewise.
    	<PRINT_OPCODE_TABLE>: Update types and printf format specifiers.
    	(ppc_insert_operand): Update return and argument types and remove
    	unneeded type casts.
    	<min, max, right, tmp>: Update type.
    	(md_assemble): Remove unneeded type casts.
    	<insn, val, tmp_insn>: Update type.
    
    opcodes/
    	* opcodes/ppc-dis.c (disassemble_init_powerpc): Fix white space.
    	(operand_value_powerpc): Update return and argument type.
    	<value, top>: Update type.
    	(skip_optional_operands): Update argument type.
    	(lookup_powerpc): Likewise.
    	(lookup_vle): Likewise.
    	<table_opcd, table_mask, insn2>: Update type.
    	(lookup_spe2): Update argument type.
    	<table_opcd, table_mask, insn2>: Update type.
    	(print_insn_powerpc) <insn, value>: 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (all_deps_files): New variable.
    	Include .Po files using all_deps_files.

commit 2ee0c9b3eedca5d1071870334d2721be80a77ea1
Author: Joel Brobecker <brobecker@adacore.com>
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 <hjl.tools@gmail.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <tobiasu@tmux.org>
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 <o.pikozh@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Dec 1 00:00:33 2017 +0000

    Automatic date update in version.in

commit 875fb7a785e78fddef6da270636e8f4efbfd3e0d
Author: Joel Brobecker <brobecker@adacore.com>
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 <peter.smith@linaro.org>
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 <ccoutant@gmail.com>
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  <peter.smith@linaro.org>
    	    Cary Coutant  <ccoutant@gmail.com>
    
    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 <peter.smith@linaro.org>
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 <amodra@gmail.com>
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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <simon.marchi@ericsson.com>
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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <ro@CeBiTec.Uni-Bielefeld.DE>
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:
    
    * <sys/syscall.h> 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 <sys/procfs.h> with #define _STRUCTURED_PROC 1.
      Theoretically, it would be better to include <procfs.h> on Solaris
      (which includes that define), but that breaks the build over
      <procfs.h> 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 <sys/syscall.h>, 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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <nickc@redhat.com>
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 <ro@CeBiTec.Uni-Bielefeld.DE>
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 <amodra@gmail.com>
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 <jhb@FreeBSD.org>
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 <gdbadmin@sourceware.org>
Date:   Thu Nov 30 00:00:20 2017 +0000

    Automatic date update in version.in

commit f5a91472120952bbc40f277561626b8ccdf7b194
Author: Joel Brobecker <brobecker@adacore.com>
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 <palves@redhat.com>
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<TAB>"  -> "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<TAB>"  -> "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  <palves@redhat.com>
    
    	PR c++/19436
    	* NEWS: Mention setting breakpoints on functions with C++ ABI
    	tags.
    	* completer.h (completion_match_for_lcd) <match,
    	mark_ignored_range>: New methods.
    	<finish>: Consider ignored ranges.
    	<clear>: Clear ignored ranges.
    	<m_ignored_ranges, m_finished_storage>: 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  <palves@redhat.com>
    
    	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  <palves@redhat.com>
    
    	PR c++/19436
    	* gdb.texinfo (Debugging C Plus Plus): Document setting
    	breakpoints in functions with ABI tags.

commit a20714ff39f621961151d0c204e89062ab2107eb
Author: Pedro Alves <palves@redhat.com>
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<tab>
      (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<tab>
      (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  <palves@redhat.com>
    
    	* 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  <palves@redhat.com>
    
    	* 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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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
    <https://sourceware.org/ml/gdb-patches/2017-11/msg00666.html>.
    
    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  <palves@redhat.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (distclean): Handle the case where rmdir fails.

commit 6cf829987c6bc9ae61c7c9e8b4c71c4eea8ba2f9
Author: Jim Wilson <jimw@sifive.com>
Date:   Wed Nov 29 10:51:36 2017 -0800

    Give Palmer co-credit for last patch.

commit 36877bfb88f99dd0e4336f98233f7caaa1d594a7
Author: Jim Wilson <jimw@sifive.com>
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 <jimw@sifive.com>
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 <renlin.li@arm.com>
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  <renlin.li@arm.com>
    
    	* 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 <nickc@redhat.com>
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 <pmuldoon@redhat.com>
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  <pmuldoon@redhat.com>
    
    	* gdb.python/py-rbreak.exp: Set nosharedlibrary before tests.

commit 8ca2f0b9ac024db56ca40f2b37c0b6b2bfcd139b
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* symfile.c (_initialize_symfile): Update usage text for
    	add-symbol-file, symbol-file, load.

commit 02ca603a481d55e175765ab5bff30a04b86e905a
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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  <tom@tromey.com>
    
    	* gdb.base/relocate.exp: Update invalid argument test.
    	Add new tests for invalid arguments.

commit ed6c0bfb2643861636581ac8775144efa1728c7c
Author: Thomas Preud'homme <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <nickc@redhat.com>
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 <hjl.tools@gmail.com>
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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <stroestefan@gmail.com>
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 <nickc@redhat.com>
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 <ccoutant@gmail.com>
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 <ccoutant@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Nov 29 00:00:23 2017 +0000

    Automatic date update in version.in

commit b0029dce6867de1a2828293177b0e030d2f0f03c
Author: Nick Clifton <nickc@redhat.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <nickc@redhat.com>
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 <hjl.tools@gmail.com>
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 <amodra@gmail.com>
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 <DEFINED>): Return a result for first phase.  Test
    	ldscript_def.
    	(fold_name <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 <amodra@gmail.com>
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 <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 <hjl.tools@gmail.com>
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 <jimw@sifive.com>
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 <ccoutant@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Tue Nov 28 00:00:24 2017 +0000

    Automatic date update in version.in

commit 18ca73470a0d7eb96a807c97559cbb9fddb4b461
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (REMOTE_OBS): Remove.
    	(SFILES): Remove remote sources.
    	(COMMON_SFILES): Add remote sources.
    	(ALLDEPFILES): Remove dcache.c.

commit 66599a7dc0369583229c0c51e5e009cfa7cceb73
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (COMMON_SFILES): New.
    	(SFILES): Move some entries to COMMON_SFILES.
    	(COMMON_OBS): Use COMMON_SFILES.

commit afa0a4115985939f242bcd54211c98345eefe16b
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (YYFILES): Update comment.
    	(YYOBJ): Redefine.

commit 8fd8d003de32661ed703ae9fd7e1a856f1b58f81
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (SUBDIR_UNITTESTS_OBS): Redefine.
    	(%.o): Remove unittests rule.
    	(CONFIG_SRC_SUBDIR): Add unittests.

commit 5c8a943144f6972dc0854f2d01d7cb365b06fceb
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (SUBDIR_TUI_OBS): Redefine.
    	(CONFIG_SRC_SUBDIR): Add tui.
    	(%.o): Remove tui rule.

commit a26aa30cc535c9bde457cdd00daf0c82f25da0af
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (SUBDIR_GCC_COMPILE_OBS): Redefine.
    	(%.o): Remove compile rule.
    	(CONFIG_SRC_SUBDIR): Add compile.

commit 6f3cdf9a3bfa2c0a22fa9dc40b45578e2ea7957d
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* Makefile.in (SUBDIR_CLI_OBS): Redefine.
    	(%.o): Remove cli rule.
    	(CONFIG_SRC_SUBDIR): Add cli.

commit b22c88c2ca013cc25d7a8fcbc748122bb1a349bb
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* config/tc-xtensa.c (find_trampoline_seg): Add static variable
    	that caches the result of the most recent search.

commit 148d6384291720bcaaa062badf1179b6215f6da3
Author: Max Filippov <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <jcmvbkbc@gmail.com>
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  <jcmvbkbc@gmail.com>
    
    	* 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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
        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 <szabolcs.nagy@arm.com>
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 <szabolcs.nagy@arm.com>
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 <nickc@redhat.com>
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 <nickc@redhat.com>
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 <nickc@redhat.com>
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 <dominik.b.czarnota@gmail.com>
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 <simon.marchi@polymtl.ca>
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 <gdbadmin@sourceware.org>
Date:   Mon Nov 27 00:00:27 2017 +0000

    Automatic date update in version.in

commit 6a997029fb0fca1a9e2832db80a3afb9bccaaf59
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* common/format.h: Add include guards.

commit 2b63c337d99fe12220e6ca12a71dac6cdd3224d3
Author: H.J. Lu <hjl.tools@gmail.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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  <tom@tromey.com>
    
    	* linux-low.c (linux_create_inferior): Update.

commit 44287fd89091a833451e74c79e46404c23fdaf9b
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* gcore.c (write_gcore_file_1): Use gdb::unique_xmalloc_ptr.

commit 8e2495f2f75120baae14f9dac9d29b043c539b2b
Author: H.J. Lu <hjl.tools@gmail.com>
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 <ulrich.weigand@de.ibm.com>
Date:   Sun Nov 26 17:29:00 2017 +0100

    Fix broken ChangeLog entry for last commit.

commit 617cd4bc366e47f92ecee3c3f9850a0fd2e6c6a9
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* gdb.arch/spu-info.c: Include <unistd.h>.
    	(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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <gdbadmin@sourceware.org>
Date:   Sun Nov 26 00:00:27 2017 +0000

    Automatic date update in version.in

commit 0e5457dca14e2e0474432566dc7a603db6c990f7
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date:   Sat Nov 25 10:57:58 2017 -0500

    Adding ChangeLog entry for the last commit.

commit 685de8c2990a04fba5e2954b7ff089a2c641071f
Author: Sergio Durigan Junior <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	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 <palves@redhat.com>
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
    <https://sourceware.org/ml/gdb/2017-11/msg00021.html>.
    
    gdb/ChangeLog:
    2017-11-25  Pedro Alves  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* completer.c (complete_line_internal_1): Skip spaces until the
    	start of the command.
    
    gdb/testsuite/ChangeLog:
    2017-11-25   Pedro Alves  <palves@redhat.com>
    
    	* gdb.base/complete-empty.exp: New file.
    	* gdb.base/completion.exp: Adjust.

commit 6a3c6ee41898743234d8fd9f9cab15f2ecdaba49
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <gdbadmin@sourceware.org>
Date:   Sat Nov 25 00:00:26 2017 +0000

    Automatic date update in version.in

commit 8955eb2da31d78690c762748fab3a16832ef1f81
Author: Pedro Alves <palves@redhat.com>
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<int>()"
         "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<bar>()"
    
       ... 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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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<tab>"
    
    expecting to get "thread", but getting instead:
    
      "b func tion"
    
    ...
    
    Also, this:
    
      "b rettypefunc<int>"
    
    manages to set a breakpoint on "rettype func<int>()".
    
    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  <palves@redhat.com>
    
    	* 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 <algorithm>.
    	(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 <hjl.tools@gmail.com>
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 <brobecker@adacore.com>
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 <simon.marchi@ericsson.com>
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 <memory-map> element accepts exactly one <memory> OR <property>
        as a child.  This is a problem because you can't have multiple
        <memory> elements and you shouldn't be able to have <property> elements
        as direct children of <memory-map>.
      - The <memory> element wants exactly one <property> 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 <memory> 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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* spu-low.c (spu_create_inferior): Fix typo in argument name.

commit d7fcdff980f113ccf77f8dd2f8fb3de3d6addaa3
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* configure.nat <spu-linux>: Add fork-inferior.o to NATDEPFILES.

commit 4e25ac038efbe5293885cc75d8a3e08b23da7cc9
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <jimw@sifive.com>
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 <hjl.tools@gmail.com>
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 <prudo@linux.vnet.ibm.com>
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 <alan.hayward@arm.com>
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 <simon.marchi@polymtl.ca>
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<T>;
    
    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_trivially_destructible<T>, std::is_void<T>>;
    
    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<T>::value, "Trying to use XNEW with a non-POD\
           ^~~~~~~~~~~~~
    
    Generated-code-wise, it adds one more function call (xnew<T>) 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 <simon.marchi@polymtl.ca>
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) <priv>: Change type to unique_ptr.
    	<private_dtor>: 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.
    	<dying>: 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.
    	<name>: 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.
    	<extra, name>: Change type to std::string.
    	<thread_handle>: 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.
    	<thread_handle>: 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 <simon.marchi@polymtl.ca>
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.
    	<extra, name>: Change type to std::string.
    	<core>: Initialize.
    	<thread_handle>: Make non-pointer.
    	(thread_item_t): Remove typedef.
    	(DEF_VEC_O(thread_item_t)): Remove.
    	(threads_listing_context) <contains_thread>: New method.
    	<remove_thread>: New method.
    	<items>: 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 <simon.marchi@ericsson.com>
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) <priv>: 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.
    	<threads>: 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 <palves@redhat.com>
Date:   Fri Nov 24 15:21:16 2017 +0000

    Document linespec/explicit locations & completion improvements (manual + NEWS)
    
    gdb/ChangeLog:
    2017-11-24  Pedro Alves  <palves@redhat.com>
    
    	* NEWS: Mention linespecs and explicit locations, and completion
    	improvements.
    
    gdb/doc/ChangeLog:
    2017-11-24  Pedro Alves  <palves@redhat.com>
    
    	* gdb.texinfo (Completion): Update need-quoting examples.  Remove
    	false claim that GDB inserts quoting automatically.
    	(Symbols): Add anchor.

commit e8d58cbaacb9ca54ad32eee1a38301202e09f878
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* regcache.c (regcache::dump): Remove footnote_register_size.

commit 650444eb540f9fd85e821567a3f943b4bc41b8be
Author: H.J. Lu <hjl.tools@gmail.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* regcache.c (cooked_read_test): Add more test for readonly
    	regcache.

commit 1b30aaa56607a563fa263b9d2ee9eba89d79c1b4
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <alan.hayward@arm.com>
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 <alan.hayward@arm.com>
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 <alan.hayward@arm.com>
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 <alan.hayward@arm.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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  <yao.qi@linaro.org>
    
    	* 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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <simon.marchi@ericsson.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Nov 24 00:00:23 2017 +0000

    Automatic date update in version.in

commit c139731b13f83da3c9436f92d52b915e94ff7480
Author: Jim Wilson <jimw@sifive.com>
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 <jimw@sifive.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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) <children_requested_>: Rename
    	back to...
    	<children_requested>: ... this.
    	(varobj_get_num_children, varobj_update): Adjust.

commit 4c37490d92c0168e5192ce109a791c4b3fec9f8e
Author: Simon Marchi <simon.marchi@ericsson.com>
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) <floating, is_valid>: Likewise.
    	(struct varobj_dynamic) <children_requested>: 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) <type_changed,
    	children_changed, changed, value_installed>: Likewise.
    	(struct varobj) <updated, frozen, not_fetched>: Likewise.
    	(struct lang_varobj_ops) <value_is_changeable_p,
    	value_has_mutated, is_path_expr_parent>: 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 <kryukov@frtk.ru>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* gdb.base/macscp.exp: Append -g3 to additional_flags for clang.

commit be7d1531e1ce34efbdb9367f1483f9cdad477059
Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <martin@martin.st>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <sergiodj@redhat.com>
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
    <https://sourceware.org/bugzilla/show_bug.cgi?id=22420>.
    
    gdb/ChangeLog:
    2017-11-22  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* dtrace-probe.c (struct probe_ops dtrace_probe_ops): Delete.
    	(struct dtrace_probe_arg) <dtrace_probe_arg>: New constructor.
    	<type_str>: Convert to 'std::string'.
    	<expr>: 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 <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    	    Simon Marchi  <simark@simark.ca>
    
    	* stap-probe.c (struct probe_ops stap_probe_ops): Delete
    	variable.
    	(struct stap_probe_arg) <stap_probe_arg>: New constructor.
    	<aexpr>: 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 <sergiodj@redhat.com>
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  <sergiodj@redhat.com>
    
    	* 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<const probe_ops *> all_probe_ops): Delete.
    	(std::vector<const static_probe_ops *> all_static_probe_ops):
    	New variable.
    	(_initialize_probe): Use 'all_static_probe_ops' instead of
    	'all_probe_ops'.
    	* probe.h (struct info_probe_column) <field_name>: 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) <bound_probe>: Delete extraneous
    	newline.  Adjust constructor to receive 'probe' instead of
    	'struct probe'.
    	<probe>: Rename to...
    	<prob>: ...this.  Delete extraneous newline.
    	<objfile>: 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) <probe>: Rename to...
    	<prob>: ...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) <probe>: Rename to...
    	<prob>: ...this.
    	* tracepoint.c (start_tracing): Use 'prob' when applicable.
    	Call probe methods.
    	(stop_tracing): Likewise.

commit 88108bf28c4a726af84dfec2f85b8404cc2ac0bd
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Thu Nov 23 00:00:27 2017 +0000

    Automatic date update in version.in

commit 8f6cb6c33815f38b41e1e93e59f12869db07c070
Author: Joel Brobecker <brobecker@adacore.com>
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 <simon.marchi@polymtl.ca>
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.
    	<name, value>: Change type to std::string.
    	(DEF_VEC_O (osdata_column_s)): Remove.
    	(osdata_item_s): Remove typedef.
    	(struct osdata_item) <columns>: Change type to std::vector.
    	(DEF_VEC_O (osdata_item_s)): Remove.
    	(struct osdata): Add constructor.
    	<type>: Change type to std::string.
    	<items>: 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) <osdata>: Change type to
    	unique_ptr.
    	<property_name>: 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 <map>.
    	(free_vector_of_osdata_items): Remove.
    	(list_available_thread_groups): Adjust, use std::map instead of
    	splay tree.

commit 41bd68f52c05f5654bed49f312f6562c8d048897
Author: Simon Marchi <simon.marchi@ericsson.com>
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 <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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.
    	<newobj>: 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 <simon.marchi@polymtl.ca>
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) <parent>: Remove const.
    	<children>: 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 <simon.marchi@polymtl.ca>
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 <jimw@sifive.com>
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 <jimw@sifive.com>
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 <ulrich.weigand@de.ibm.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* gdb.base/info-os.exp: Pass pthreads.
    	* gdb.multi/multi-attach.exp: Likewise.

commit 88465e872cb6649c42863e5c47011bae9e17bbdb
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* gdb.dwarf2/pr10770.exp: Remove code skipping non-gcc
    	compiler.

commit 94b98370de3ee157e039f26865390b5994c47c3b
Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <igor.v.tsimbalist@intel.com>
Date:   Wed Nov 22 17:23:38 2017 +0300

    Update ChangeLog

commit c7478d028e8829402b05478f571eb5e1916c63d3
Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
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 <thomas.preudhomme@arm.com>
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  <thomas.preudhomme@arm.com>
    
    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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <mpfr.h>.
    	(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  <uweigand@de.ibm.com>
    
    	* gdb.texinfo (Requirements): Document use of GNU MPFR.
    
    gdb/testsuite/ChangeLog:
    2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
    
    	* gdb.base/float128.c (large128): New variable.
    	* gdb.base/float128.exp: Add test to print largest __float128 value.

commit 7a26362d360ee34de1e8e927bd7159860fe8354b
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
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<float>        Implemented via host FP in given type
      host_float_ops<double>
      host_float_ops<long double>
      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  <uweigand@de.ibm.com>
    
    	* target-float.c: Do not include <math.h>.
    	Include <cmath> and <limits>.
    	(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<T>::from_target): ... this.  Use template type T
    	instead of DOUBLEST.  Use C++ math routines.  Update recursive calls.
    	(host_float_ops<T>::from_target): New overload using a type argument.
    	(floatformat_from_doublest): Rename to ...
    	(host_float_ops<T>::to_target): ... this.  Use template type T
    	instead of DOUBLEST.  Use C++ math routines.  Update recursive calls.
    	(host_float_ops<T>::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<T>::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<T>::from_string): ... this.  Use type instead of
    	floatformat argument.  Use scanf_length_modifier.
    	(floatformat_to_longest): Rename to ...
    	(host_float_ops<T>::to_longest): ... this.  Use type instead of
    	floatformat argument.  Handle out-of-range values deterministically.
    	(floatformat_from_longest): Rename to ...
    	(host_float_ops<T>::from_longest): ... this.  Use type instead of
    	floatformat argument.
    	(floatformat_from_ulongest): Rename to ...
    	(host_float_ops<T>::from_ulongest): ... this.  Use type instead of
    	floatformat argument.
    	(floatformat_to_host_double): Rename to ...
    	(host_float_ops<T>::to_host_double): ... this.  Use type instead of
    	floatformat argument.
    	(floatformat_from_host_double): Rename to ...
    	(host_float_ops<T>::from_host_double): ... this.  Use type instead of
    	floatformat argument.
    	(floatformat_convert): Rename to ...
    	(host_float_ops<T>::convert): ... this.  Use type instead of
    	floatformat arguments.  Remove handling of no-op conversions.
    	(floatformat_binop): Rename to ...
    	(host_float_ops<T>::binop): ... this.  Use type instead of
    	floatformat arguments.
    	(floatformat_compare): Rename to ...
    	(host_float_ops<T>::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  <uweigand@de.ibm.com>
    
    	* gdb.arch/vsx-regs.exp: Update register content checks.

commit a9f26f609e3a1b6ae3aab300b55442e0a81e2bce
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* python/py-gdb-readline.c (gdbpy_readline_wrapper): Use strcpy.

commit 29f9a5673764c1b2711c0ceeba380a6ee764d1b2
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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  <yao.qi@linaro.org>
    
    	* remote-utils.c (prepare_resume_reply): Use memcpy.

commit dc958481429708ecf91f9b2c445063d43397f07e
Author: claziss <claziss@synopsys.com>
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 <claziss@synopsys.com>
    
            * testsuite/gas/arc/hregs-err.s: New test.
    
    opcodes/
    2017-11-21  Claudiu Zissulescu <claziss@synopsys.com>
    
            * arc-opc.c (insert_rhv2): Check h-regs range.

commit 0ad71725d917c51b46ffacbad25744dd889e87da
Author: H.J. Lu <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Nov 22 00:00:23 2017 +0000

    Automatic date update in version.in

commit 3b1b69bffe522f22d269723856d2caa901041819
Author: Jerome Guitton <guitton@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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 <brobecker@adacore.com>
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) <base_cpu>: New field.
            * ada-lang.c (struct atcb_fieldno) <base_cpu>: 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 <brobecker@adacore.com>
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 <hjl.tools@gmail.com>
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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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  <uweigand@de.ibm.com>
    
    	* gdb.arch/ppc-longdouble.exp: New file.
    	* gdb.arch/ppc-longdouble.c: Likewise.

commit a25d69c6dcbabf3f6629b847246ffb4ddbc29472
Author: Pedro Alves <palves@redhat.com>
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 = (<data variable, no debug info> *) 0x60208c <some_minsym>
      (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  <palves@redhat.com>
    
    	* gdb.ada/minsyms.exp: Accept any address for 'some_minsym'.

commit 2824e1bd4fc93f112875969b1ba606980aaa55ba
Author: Nick Clifton <nickc@redhat.com>
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 <claziss@synopsys.com>
Date:   Tue Nov 21 15:04:22 2017 +0100

    [ARC] [COMMITTED] Update test pattern patching.
    
    2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
    
    	* testsuite/binutils-all/arc/objdump.exp: Update pattern matching
    	expression.

commit 50d2740d562edc68b2fbcacc0585c3acfc2c302f
Author: claziss <claziss@synopsys.com>
Date:   Tue Nov 21 14:03:03 2017 +0100

    [ARC] Improve printing of pc-relative instructions.
    
    opcodes/
    2017-11-21  Claudiu Zissulescu <claziss@synopsys.com>
    
    	* 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 <claziss@synopsys.com>
    
    	* 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 <claziss@synopsys.com>
    
    	* testsuite/ld-arc/jli-simple.d: Update test.

commit d85bf2ba86fea1cf918f065d179b98eb4ddbde86
Author: Nick Clifton <nickc@redhat.com>
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 <simon.marchi@polymtl.ca>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* dwarf2read.c (mapped_index::find_name_components_bounds)
    	<completion mode, upper bound>: 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* dwarf2read.c (mapped_index::name_components_casing): New field.
    	(mapped_index) <build_name_components,
    	find_name_components_bounds): Declare new methods.
    	(mapped_index::find_name_components_bounds)
    	(mapped_index::build_name_components): New methods, factored out
    	from dw2_expand_symtabs_matching_symbol.
    	(check_find_bounds_finds)
    	(test_mapped_index_find_name_component_bounds): New.
    	(run_test): Rename to ...
    	(test_dw2_expand_symtabs_matching_symbol): ... this.
    	(run_test): Reimplement.

commit e1ef7d7a5166f846b14bea5a77acb0dec76661a8
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <gdbadmin@sourceware.org>
Date:   Tue Nov 21 00:00:14 2017 +0000

    Automatic date update in version.in

commit 73fcf6418ddce47ead4ffde4fc9fea8e8bd1f4af
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <nickc@redhat.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <simon.marchi@ericsson.com>
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 <ccoutant@gmail.com>
Date:   Sun Nov 19 18:02:31 2017 -0800

    Fix typo in ChangeLog entry.

commit 20dd9c210ef05fc6e87afe07670d8ceba530a1c5
Author: Cary Coutant <ccoutant@gmail.com>
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  <iant@google.com>
    	    Cary Coutant  <ccoutant@gmail.com>
    
    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 <gdbadmin@sourceware.org>
Date:   Mon Nov 20 00:00:30 2017 +0000

    Automatic date update in version.in

commit 671275c35e71d3bcdde173d8817e34e89b984241
Author: Jim Wilson <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Sun Nov 19 00:00:28 2017 +0000

    Automatic date update in version.in

commit 160b1a618ad94988410dc81fce9189fcda5b7ff4
Author: Alan Modra <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Nov 18 00:00:10 2017 +0000

    Automatic date update in version.in

commit 033366417daedf6bf044608df1c7a8dfe01a0de2
Author: Jim Wilson <jimw@sifive.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* symtab.h (enum symbol_subclass_kind): New.
    	(struct symbol) <is_cplus_template_function, is_rust_vtable>:
    	Remove.
    	<subclass>: 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* dwarf2read.c (read_func_scope): Update.
    	* symtab.h (struct template_symbol): Derive from symbol.
    	<base>: Remove.

commit 71a3c36949407eafea744bf00334c4e0c136f927
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* symtab.h (struct symbol) <is_rust_vtable>: 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)
    	<find_compunit_symtab_by_address>: 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) <case UNOP_IND>: 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) <psymbol_map>: New member.
    	* dwarf2read.c (dwarf2_gdb_index_functions): Update.
    	(process_die) <DW_TAG_variable>: New case.  Call read_variable.
    	(rust_containing_type, read_variable): New functions.
    
    2017-11-17  Tom Tromey  <tom@tromey.com>
    
    	* gdb.rust/traits.rs: New file.
    	* gdb.rust/traits.exp: New file.

commit 7468702dcb37013edbbbc62e247e23c4b2632379
Author: Simon Marchi <simon.marchi@polymtl.ca>
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 <simon.marchi@polymtl.ca>
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<int>.  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..
    	<syscalls_to_catch>: Change type to std::vector<int>.
    	* 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 <simon.marchi@polymtl.ca>
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 <algorithm>.
    	(open_fds): Change type to std::vector<int>.
    	(do_mark_open_fd): Adjust.
    	(unmark_fd_no_cloexec): Adjust.
    	(do_close): Adjust.

commit 5c632425957f0150a0d5d1e747f0425f74622132
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date:   Fri Nov 17 13:02:23 2017 -0500

    Make output_thread_groups take an std::vector<int>
    
    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 <brobecker@adacore.com>
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) <UNOP_CAST>: Replace code by call to
            ada_evaluate_subexp_for_cast.
            (ada_evaluate_subexp) <nosideret>: 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 <Exported_Capitalized>
        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 <nickc@redhat.com>
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 <hjl.tools@gmail.com>
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 <nickc@redhat.com>
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 <brobecker@adacore.com>
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 <gdbadmin@sourceware.org>
Date:   Fri Nov 17 00:00:18 2017 +0000

    Automatic date update in version.in

commit a0922d80dff15d4fbd5d469f56bcd1696846b90a
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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 <class 'KeyboardInterrupt'> <class 'KeyboardInterrupt'>:
      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  <palves@redhat.com>
    
    	* python/py-unwind.c (pyuw_sniffer): Translate
    	PyExc_KeyboardInterrupt to a GDB Quit exception.

commit d930703d68ae160ddfe8ebe5fdcf416fb6090e1e
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* inf-loop.c (inferior_event_handler): Don't swallow the exception
    	if the prompt is blocked.

commit 688fca4fe6c83a6802731faa8455d177998d614d
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* breakpoint.c (insert_bp_location): Replace bp_err and
    	bp_err_message locals by a gdb_exception local.

commit e2c33ac745108550dcc2dc61d23378fb2fa9e911
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* inflow.c (scoped_ignore_sigttou): New class.
    	(child_terminal_ours_1, new_tty): Use it.

commit ea04e54ca8b935b01155c3d40381d879dd6ba683
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <ulrich.weigand@de.ibm.com>
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  <uweigand@de.ibm.com>
    
    	* 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 <tamar.christina@arm.com>
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 <tamar.christina@arm.com>
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  <tamar.christina@arm.com>
    
    	* 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 <tamar.christina@arm.com>
Date:   Thu Nov 16 16:13:01 2017 +0000

    Update documentation for Arvm8.4-A changes to AArch64.
    
    gas/
    
    2017-11-16  Tamar Christina  <tamar.christina@arm.com>
    
    	* doc/c-aarch64.texi (armv8.4-a, sha2, sha3, sm4): New.
    	(dotprod): Update default note.

commit e9dbdd80cb02ac66cf7d4cd1207ec11928db2c95
Author: Tamar Christina <tamar.christina@arm.com>
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 <palves@redhat.com>
Date:   Thu Nov 16 14:58:51 2017 +0000

    GDBserver: Fix ignored Ctrl-C after reconnection
    
    This fixes the issue reported by Dmitry Antipov <dantipov@nvidia.com>
    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  <palves@redhat.com>
    
    	* remote-utils.c (remote_close): Block SIGIO signals instead of
    	uninstalling the SIGIO handler.
    
    gdb/testsuite/ChangeLog:
    2017-11-16  Pedro Alves  <palves@redhat.com>
    
    	* gdb.server/reconnect-ctrl-c.c: New file.
    	* gdb.server/reconnect-ctrl-c.exp: New file.

commit 80a0437873045cc08753fcac4af154e2931a99fd
Author: Nick Clifton <nickc@redhat.com>
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 <pmuldoon@redhat.com>
Date:   Thu Nov 16 14:14:03 2017 +0000

    Add Python rbreak command.
    
    gdb/Changelog
    
    2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>
    
    	* python/python.c (gdbpy_rbreak): New function.
            * NEWS: Document Python rbreak feature.
    
    testsuite/Changelog
    
    2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>
    
    	* 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  <pmuldoon@redhat.com>
    
    	* python.texi (Basic Python): Add rbreak documentation.

commit 38b28f7088057d70497de7312cd983ec8e408a76
Author: Nick Clifton <nickc@redhat.com>
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 <jbeulich@novell.com>
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 <palves@redhat.com>
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 <ret> 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  <palves@redhat.com>
    
    	* 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 <jbeulich@novell.com>
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 <hjl.tools@gmail.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* features/tic6x-c62x.xml: Remove.
    	* features/tic6x-c64x.xml: Remove.
    	* features/tic6x-c64xp.xml: Remove.

commit 1d0aa65c24f7c6406718cb506bed912aeec1d5c9
Author: Alan Hayward <alan.hayward@arm.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* linux-tic6x-low.c (tic6x_fill_gregset): Cast buf.
    	(tic6x_store_gregset): Likewise.
    	(tic6x_usrregs_info): Move it up.

commit be7f7611881bae0fb9e26c892ecd61387d32542d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Thu Nov 16 00:00:23 2017 +0000

    Automatic date update in version.in

commit a014b87a9ac665d2b92cfc66384d1af3ddd345dd
Author: John Baldwin <jhb@FreeBSD.org>
Date:   Wed Nov 15 11:36:42 2017 -0800

    Include <array> to declare std::array<>.
    
    gdb/ChangeLog:
    
    	* symtab.h: Include <array>.

commit 9476501135dbbe1eb2e104ff219c7988920d23fc
Author: John Baldwin <jhb@FreeBSD.org>
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 <simon.marchi@ericsson.com>
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<const char *>.  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 <simon.marchi@ericsson.com>
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<TAB>, "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 <tamar.christina@arm.com>
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 <cagney@gnu.org>
Date:   Wed Nov 15 10:26:59 2017 -0500

    Remove no-longer applicable maintainer entries
    
    2017-11-15  Andrew Cagney  <cagney@gnu.org>
    
           * MAINTAINERS: Remove no-longer applicable entries.

commit 34a7ebaff9e522913afba4e9cac9d8d5064e5480
Author: Andrew Cagney <cagney@gnu.org>
Date:   Wed Nov 15 10:12:12 2017 -0500

    Move self to Past Maintainers.
    
    2017-11-15  Andrew Cagney  <cagney@gnu.org>
    
          * MAINTAINERS: Move self to Past Maintainers.

commit 5334ef3907e2fbb98aef6839df23e41dccfaf701
Author: Yao Qi <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* 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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <nickc@redhat.com>
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 <alan.hayward@arm.com>
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 <yao.qi@linaro.org>
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  <yao.qi@linaro.org>
    
    	* m68hc11-tdep.c (M68HC11_NUM_REGS): Change it to
    	M68HC11_LAST_HARD_REG + 1.

commit 390a67891e4f1ed334e266cf084ba8948da5fcdf
Author: Jan Beulich <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <amodra@gmail.com>
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 <jimw@sifive.com>
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 <jimw@sifive.com>
Date:   Tue Nov 14 17:07:32 2017 -0800

    Add modified file I missed in last commit.

commit 754842fba3981b8d9d4d516d6cfc65d3992fa4b2
Author: Jim Wilson <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Nov 15 00:00:25 2017 +0000

    Automatic date update in version.in

commit 92ffd475192030a46a6046177c732372b4dadad5
Author: Paul Carroll <pcarroll@codesourcery.com>
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 <simon.marchi@ericsson.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <amodra@gmail.com>
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 <simon.marchi@polymtl.ca>
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 <gdbadmin@sourceware.org>
Date:   Tue Nov 14 00:00:24 2017 +0000

    Automatic date update in version.in

commit 58e6cc77b7605e26cbf3fccc166089c01ceee95f
Author: H.J. Lu <hjl.tools@gmail.com>
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 <schwab@suse.de>
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) <supports_hardware_single_step>: Initialize.

commit 5b2b928e83538b23eb1b3f585b14c3d6cf1bfd7e
Author: Jan Beulich <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <jbeulich@novell.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
Date:   Sun Nov 12 17:23:22 2017 -0800

    cl

commit cba6246d3ad332ab353afeff0016b195ffc69e05
Author: H.J. Lu <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Mon Nov 13 00:00:24 2017 +0000

    Automatic date update in version.in

commit ce3ad333570333287842ed20f55220534ad4a025
Author: H.J. Lu <hjl.tools@gmail.com>
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 <amodra@gmail.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Sun Nov 12 00:00:18 2017 +0000

    Automatic date update in version.in

commit f617a0f6ceeb34dfd39d8673b0ab225c9127aab6
Author: Jim Wilson <jimw@sifive.com>
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 <gdbadmin@sourceware.org>
Date:   Sat Nov 11 00:00:20 2017 +0000

    Automatic date update in version.in

commit 09a5b18a6ae9fc5ad30f88d646b7f7313a14929e
Author: GDB Administrator <gdbadmin@sourceware.org>
Date:   Fri Nov 10 00:00:28 2017 +0000

    Automatic date update in version.in

commit 584a564f366de16d1cecd1910ab0be8ca6167415
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* gdb.cp/cpcompletion.exp (test_class_complete): Tighten regex to
    	match till end of line.

commit 2c88253fc469fbf40be7f0d1f7060b81055f2eb1
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* gdb.base/memattr.exp: Tighten regexes to match the end line.

commit c7a3851716f98540396b9e02be7d2fcd3bff2d29
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* gdb.asm/asm-source.exp ("kill" test): Match the whole query
    	output.  Fix '?' match.

commit fb24d531e9ef7ad7831ca62298d21684717cbe38
Author: H.J. Lu <hjl.tools@gmail.com>
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 <brobecker@adacore.com>
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 <jimw@sifive.com>
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 <tamar.christina@arm.com>
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 <tamar.christina@arm.com>
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 <tamar.christina@arm.com>
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 <tamar.christina@arm.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* psymtab.c (psymbol_hash): Do not hash string contents.
    	(psymbol_compare): Add comment.

commit 7e8835c5f44931d02ecd8c8ba3d167e891981d24
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* dictionary.c (dict_hash): Move "TKB" check into the "switch".

commit b6b9ca0c3ec9589d0dd40b2b86ba748a361b48eb
Author: Tamar Christina <tamar.christina@arm.com>
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 <nickc@redhat.com>
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 <brobecker@adacore.com>
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 <simon.marchi@ericsson.com>
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<std::string>.  This eliminates some cleanups in remote.c.
    
    Regtested on the buildbot.
    
    gdb/ChangeLog:
    
    	* tracepoint.h (class collection_list) <stringify>: Return
    	std::vector<std::string>.
    	(encode_actions_rsp): Change parameters to
    	std::vector<std::string> *.
    	* tracepoint.c (collection_list::stringify): Return
    	std::vector<std::string> and adjust accordingly.
    	(encode_actions_rsp): Changee parameters to
    	std::vector<std::string> 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 <hjl.tools@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Thu Nov 9 00:00:11 2017 +0000

    Automatic date update in version.in

commit 62d7ae92341b53ef10b709464edca759d6738500
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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  <palves@redhat.com>
    
    	* gdb.gdb/complaints.exp (test_initial_complaints)
    	(test_serial_complaints, test_short_complaints): Call
    	complaint_internal instead of complaint.

commit 333d0055f6f162c334c36f1946b6fcdb5c92b681
Author: James Clarke <jrtc27@jrtc27.com>
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 <echristo@gmail.com>
Date:   Wed Nov 8 14:03:55 2017 -0800

    Apply:
    
    2017-11-08  Kyle Butt  <iteratee@google.com>
    
            * 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 <djordje.todorovic@rt-rk.com>
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 <djordje.todorovic@rt-rk.com>
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 <djordje.todorovic@rt-rk.com>
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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* dwarf2read.c (symbolp): Remove typedef.
    	(read_func_scope): Use std::vector.
    	(process_structure_scope): Use std::vector.

commit f9d67a22392f8f52c779f68a2561eb35c2f86b81
Author: Pedro Alves <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* 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 <palves@redhat.com>
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 > (<tab>
    
    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 <UpperCase>
    
    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  <palves@redhat.com>
    
    	* 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) <iter_match_first, iter_match_next>:
    	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) <la_collect_symbol_completion_matches>: Add match
    	type parameter.
    	<la_get_symbol_name_cmp>: Delete field.
    	<la_get_symbol_name_matcher>: New field.
    	<la_iterate_over_symbols>: 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 <algorithm>.
    	(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 <vector>.
    	(objfile_per_bfd_storage) <demangled_hash_languages>: 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) <map_matching_symbols>:
    	Adjust to use symbol_name_match_type.
    	<expand_symtabs_matching>: 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 <string> 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  <palves@redhat.com>
    
    	* gdb.ada/complete.exp (p <Exported_Capitalized>): New test.
    	(p Exported_Capitalized): New test.
    	(p exported_capitalized): New test.

commit 5ffa0793690b42b2a0c1c21dbb5e64634e58fa00
Author: Pedro Alves <palves@redhat.com>
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  <keiths@redhat.com>
    	    Pedro Alves  <palves@redhat.com>
    
    	* ada-lang.c (ada_language_defn): Install
    	default_search_name_hash.
    	* buildsym.c (struct buildsym_compunit): <language>: 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) <language>: 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 <palves@redhat.com>
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  <palves@redhat.com>
    
    	* cp-name-parser.y (main): Don't initialize extra_chars.

commit 2841837fac18861bb62e039a20321075d1e76248
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Nov 8 14:34:32 2017 +0000

    Fix typo in changelog

commit c0e7cef7156b2bc15ba43441ad14c6e83c09df8e
Author: Nick Clifton <nickc@redhat.com>
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 <jiong.wang@arm.com>
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 <amodra@gmail.com>
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 <gdbadmin@sourceware.org>
Date:   Wed Nov 8 00:00:20 2017 +0000

    Automatic date update in version.in

commit 95a6b0a106fac6ea35670421534d461a3663c0ba
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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) <func>: Constify.

commit eb4c3f4aaae2ee1b27c210e951260a7e699133b4
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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) <function>: 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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) <function>: 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* stack.c (backtrace_command): Use std::string.
    	(backtrace_command_1): Make "count_exp" const.

commit 5614fb77203f5ea01edfb2d739e9d4f3d570dc09
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* command.h (set_cmd_cfunc): Don't declare.
    	* cli/cli-decode.c (set_cmd_cfunc): Now static.

commit 1ee870c5249864d36717a08864c60d7166b6b292
Author: Tom Tromey <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <tom@tromey.com>
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  <tom@tromey.com>
    
    	* 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 <andrew.burgess@embecosm.com>
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                                 |