From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 117110 invoked by alias); 20 Jun 2019 20:18:07 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 116224 invoked by uid 440); 20 Jun 2019 20:18:03 -0000 Date: Thu, 20 Jun 2019 20:18:00 -0000 Message-ID: <20190620201803.116208.qmail@sourceware.org> From: scox@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] scox/strace: Merge branch 'master' into scox/strace X-Git-Refname: refs/heads/scox/strace X-Git-Reftype: branch X-Git-Oldrev: 90309e60ba3d5ddd633266743104b390270be73d X-Git-Newrev: 625ae1b6b5d4a9f805d97640ef99c897279324f7 X-SW-Source: 2019-q2/txt/msg00004.txt.bz2 List-Id: The branch, scox/strace has been updated via 625ae1b6b5d4a9f805d97640ef99c897279324f7 (commit) via 680e1beed31da40080f61a35f6ccd626de818056 (commit) via dcf3792354ddcd6e10e59e32060e34b27246e7da (commit) via 6f5601c4d0ad43254244f1b624900cdd5afd02ba (commit) via 4a4e7361d67cd9262be1413300795eede564f4cb (commit) via 312413cb844dcce24b0c30254f5789b77a54b0fc (commit) via 494986d596a977e1d24f9f068696f5b3e993ebf7 (commit) via 0ed4690a67e2c4703d9088312de652d0d5f1aaaf (commit) via 3360b6e7963e3c579e50078e78d226ea63e2960f (commit) via 4ed4690fc21b1d052092299f820f48694f3ef3eb (commit) via d20ed5fd574ce1b72543c2963fa53946eb2225de (commit) via 86e04673b48d5f8121f28b7958cc5a0d9dd01132 (commit) via 5bb4fed3d48e4637015a89e40672c938c7f61e72 (commit) via 310b3441a07cb07713a8065a39032504e098047b (commit) via ba9777bef059df0926ad5dd6813d5785cb652ccf (commit) via 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc (commit) via 39c05d9435893ed0b51c4b5c8e95fe977b983921 (commit) via 08bb0061ba5c8826c1ec4d273d539cb32b5c217e (commit) via 2b9f6e89d67b342593734d14f328625848fa5156 (commit) via 431b3eadc4f842231d404e7e995ae5c1dbd28414 (commit) via d04b44a16cdfde95de487bcedd541c6e71d82676 (commit) via bf5142e7fef4e2eca5d98cf805dbadc737118c1e (commit) via c4973306879b6079bdfc997474a2cbbd89f49bd2 (commit) via 395f9c911460b3e868c0b700e831c7f92746fad7 (commit) via cafb34387d063fa47bc2cdb33fc3fe2f13e6cec0 (commit) via 93cb9841d68263174a600dc70af742a8e2eabfc6 (commit) via 730ead81dfffc181f79a4b79ba8abf6850e63596 (commit) via e79be6e5f33d52b2bbb6aafdc61659a4bbb55849 (commit) via 399aaebd1a5e9e3971758396bd0c5c3ec5ae2386 (commit) via 6ac6a19371b72f848626666af5301612b76e800e (commit) via 584a927c5ad0d18e9995a0049066b6c503bb7482 (commit) via 30056ea04ae3ecd828e2a06e12e6f174ae6659c9 (commit) via ec8e2b6d3051f0b4b2a8eee9917898e95046c62f (commit) via 0d3abd8cc936360f8c46502135edd2e646473438 (commit) via 00df30ae1ea6db8f3693cad8a499f55f1d66e913 (commit) via afda45a206f83389782a400f86668714400a1cb7 (commit) via 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9 (commit) via 49455d8bbd8eac5b7ce7e26c691af27998647584 (commit) via 0735b091aba72d4b35aebb671a02c5cb4a837fe9 (commit) via 52ce35e2894e55cea94011dda6443be51e154f37 (commit) via 73cc72729a184f00bf6fc4d74684a8516ba6b683 (commit) via f568655424ad268c8c5df3f56e4e19a86b16623d (commit) via a0c1ffedcf1988bc13fc5b6d57d3b74a17b60299 (commit) via 7c39e397aafaea64812f2611b061bdd50f30dce4 (commit) via f411722cbc18820e5266ec4c2aadd2269eb15447 (commit) via 4268ec187d401b9b132afa1a13c73e0026a53c5d (commit) via abdb711e0855f0597a96db0486b598144b788212 (commit) via 9a9e394b05a841bdd9163f280d7ef19cc65634d6 (commit) via e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26 (commit) via bcc5a6eb668e560a0020114b6dc261ef494981ba (commit) via 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1 (commit) via e3fa7860f44b85bc89b09998546fcb09624c3c68 (commit) via d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17 (commit) via f8164777cde276244d015a2411f68f63a4bd28aa (commit) via 4c04873103043dc9a1c8d6cdeea1b9b1f545f375 (commit) via 57a63d27dcc8c7620f2168b370b649c7458c687e (commit) via 3c83b496d4ee7d732b6844c585c3ea9d83ca0f4c (commit) via b4f9e0034660e15d233627f9c5a732ab023b7daf (commit) via f1cc84f59441d59827748e47a5971a12ed1ac283 (commit) via 688cea90bc0af3a0188695a25f5c4e8db4ef763b (commit) via 7ccbb4437a29896955a6ff3b0406b1cc2a7f6fe2 (commit) via 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2 (commit) via e41d1c49a12aab7db33d7ad66d62f7413b8f0480 (commit) via 3345721af145007661f4e7e7f4300470095ba622 (commit) via 6206060d9be8da3e701fe0307c6c01390e2b4ae2 (commit) via 6665660a411ead049daa85cac5c629d637e22044 (commit) via f7e13587eaf1e2d433e21ac0a9e413a98e53652d (commit) via 5d7071341dd3c01d38fc01398ef8b23b1bd3783c (commit) via 272d4594343349a713f7d8967d90ae2413ecbc30 (commit) via e2a689da55d3feb7b79a141f69c4049112f59c91 (commit) via 90a1ef8762a57f3f57007db2186099c026152034 (commit) via d4c16835cad70bd8c04ff30d5d6f40ac65e7f7e1 (commit) via 2daf894ed0baf72dd3f422b7a71630145568db30 (commit) via e6ed716cd5514c08b9d7c469d185b1aa177dbc22 (commit) via 7d8062de98203eeec70d4439ab460b9ef50a2e0f (commit) via 9d0faba9f52b898f0be539bc4d6fbd084772259d (commit) via 2c722807a752ce468b04fcf6d29857f377beeaf5 (commit) via dee7b4c83a636471ee321fb4fe1c3be0a16a9ea7 (commit) via dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f (commit) via ccf46844d3e5ad4af9f3a10cc0599c939138d566 (commit) via 597bf39df91c9a2e27cf1966dd4c942ac645ae33 (commit) via 48c410fb70fe09c036e27092880db687e5c2fb0b (commit) via 93bcb04349eb500781747a542ececc7a8ba3bd95 (commit) via cbba3ecd36f0f861e4e810fbd5415c9759080cdc (commit) via b9a3f8429b012b753e30a4222bd8e4cbba019fad (commit) via 3844e605e61777555aed09ab8ce88db2da95bc0b (commit) via 00b56dbe7016bc33f882525a47faab943fdeda9a (commit) via e4c4ac46e8e7ef92311181f85b193af369897151 (commit) via a2e4218f237dd1555249555f8be4165aa8e56b6a (commit) via eb212c84a12bd0adb29792737ab2423d72c182f7 (commit) via d3ad6278d6b977cfeb3156b65862224899549c76 (commit) via 6ce26ac7c381c78858b9a7bac344b5cd04bfb03e (commit) via a0e44ef56c4d1a20785fe3bcb368638d1af148cf (commit) via 6fbc939cfdbdf02f205c20925583738b0f835e62 (commit) via 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701 (commit) via 9abca70219e8e15991b9a4d3034672c9f720234f (commit) via c0d38b0ec6756de6a0b68477e47bb8619eef2262 (commit) via 540e617049db92b4371fa90cadd4cd994508f86d (commit) via 0529f3fe5c33894387df407b2f33879da7778e08 (commit) via d106773eaca95698838b930a7b512469a38a6771 (commit) via a5fd13a91534b1c79a4b61995894a5bb4f08d3b0 (commit) via 2057d69dccf36206be3bec5d48ff165621e9a06c (commit) via 08f10e02be1bb218d6edcde87b9f59dd11b40a78 (commit) via 1c7fe9515dc1e8aa6378075ef56a646c1efdf7f5 (commit) via c93dbb25ac4dba2e959bfd30684a36773298c853 (commit) via 89549d7f4d27b63c4aaab4456e21dab1ee96a40a (commit) via fea82da0fe15137fda0056c0f0b92b6e70997ea8 (commit) via 86108c1311d82af6707d38e6d3dae1ec0aa92ec9 (commit) via 8c2e74f18120dd2f2da7d653466c79dea6841b5e (commit) via b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5 (commit) via 8bbce0c70250334f436b4e52983f3538d3bdb9ce (commit) via a7067863418451b27130bb4300ac1890ff806c12 (commit) via 9ab084121f50a6858b7298de6c5326cee3687c43 (commit) via f19e22e9226444ee566b5b5633c0a48a4f981eda (commit) via e99f9db0f5211455ca4256e8db9d9081967d255e (commit) via c6a636ce375d5af4ce0b3aa78b1cc90fd82040bd (commit) via 9bf7038bb229d6e46a1f1861c257fc47843f114d (commit) via 422186a95cbb02ee1d34388adceeb4bd289074b9 (commit) via 58e07198f34c3a8bb7d64392e8b978a0d741244e (commit) via 25ce02ee7b7667fb7bb882421ff869c080777bee (commit) via caa429d81a9999699a40b6394c9fb7b258669d54 (commit) via 2e02f29632218fc24d71fbbefc368d551d0528a7 (commit) via a3972330f49f81b3bea64af0970d22f42ae56ec3 (commit) via 81873cc81effbd657efe5f525d369e430ce77d7a (commit) via a72f8c4ce397a0bbe98281d4151982330ad16f15 (commit) via 2e1a984c23da8a9dbd2542e3f506de6a64da670d (commit) via c588b266bf1605b38c5f56a5a847e12e65392e4e (commit) via c1b00498af77c012beed6809175f38923906ecb9 (commit) via 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c (commit) via 595a4d439bc5976d5bdf61da6d44337b3995d967 (commit) via f5e73be11b24b6c4b7ecec5f762784c4bb40ec18 (commit) via bec3a0c8224a76b315c1742b8254d04ab06885ac (commit) via 4fa0265edea0940b865678d93749e224547dd36a (commit) via 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807 (commit) via dd455cf51d2b273edf6173fcb25fc1e3c5b966b2 (commit) via 8d01b5310ee3c5f8b62eb1b8177e6ab7f25d4a2c (commit) via 3847a7bfbf6340372962c07f31187ff87b4f492c (commit) via 237df8fe1863bb47fcf71ce125cd962666173aaa (commit) via 8bf6d176b0a442a8091d338d4af971591d19922c (commit) via 811731b21b0a5b5459b33bfcbe26f40c6d9bc7c0 (commit) via 12efd68d159444ad8dfe24e49965a228ba980b86 (commit) via 62d8e3b73139b159963025b5568ec1f5051450f0 (commit) via 0088ba596bba2e0b94139f1c2c4f5875848edbd6 (commit) via 312617a3d06b8df67b9f4f63f92ebfaa6b591921 (commit) via fbe4d6650d714643fe340d9ccba7fc500c26b91d (commit) via b02f78f9285728ce2d05ce01e7b14880f70cd6e6 (commit) via d3238f7d90715dad7e8da2a8c2486d26124b0c84 (commit) via 76fad9996335e52f177c99c1ebf024fc7f761be2 (commit) via 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa (commit) via ad118caa9f690114d11384b0813f30980cc333f3 (commit) via 6b22174ff163b828a2069f22353018ca97fc0fb4 (commit) via 941accce38bc70a23c62e3c9439b67bf23298124 (commit) via a610aa4f9cf61d38b8e0fe60dfaac078d636089f (commit) via 9186c494a3bb61a55a29ec04aa0d1684a8c46838 (commit) via 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 (commit) via e1f2e1a2dadbaeffe0a8a6da7aab7effc6b046d2 (commit) via a9d96ab97edabea31bed089bfd4caca80838e31c (commit) via 1ff30553d8972fb027d77d76d29643f2173f17d6 (commit) via e664d728038abf414b6fb1a1c8cd3aacd0bb3b67 (commit) via 206584bdf15aa19bb3c971b28e2c1fc04f32d027 (commit) via 66d8c862859ab241c1db9b40c3981f8a71951bd4 (commit) via 9303eb2fb1630678def10613c81215c2bd21d278 (commit) via 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4 (commit) via 4f6d070adb32e61c3c61e621c6566fc2d5af2232 (commit) via 6187fc5364f6cc327805ecb4ba4962953f25122a (commit) via 88ed7edbc632245fad33145e723d27976b6732ca (commit) via 96605592395fc57e531de249883ccf6fafed540f (commit) via 0b62c71c0839764aca82bf32ac6aa339020ae0c8 (commit) via e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d (commit) via 708dc93ed0c8ee744e2784a1c349d8129a84200f (commit) via 947d39462e26b0edee9b58003ea579552dbf4fa8 (commit) via b8fd091888383703f5d708c597c496d7b9e47a21 (commit) via 68bb5386b84af4031175bf186269eb6b54b8611d (commit) via a0486bac41d6ce47f27795a5abbca5cc53ddba00 (commit) via ff4a4474eba6488c8ad3cae51a685fe282ab249a (commit) via 4288405d5ec2c68c7e9d8d68a090c6c9ff3825d1 (commit) via bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b (commit) via 0ef209f22c24b9243de68c35c576f7111198f915 (commit) via e3f56a99f66298bb505d0426950b9716a853a5df (commit) via ae9ac79e5e291a2bc5c6620a10c37a3558d55d36 (commit) via 54a471e5fd44d7a91297ece1383b0ad6d62c7306 (commit) via 955b06fa576df1a6954263043ea3f3a5b9ad5940 (commit) via f49055a52f04f75b6560f304eb975128dd82ad68 (commit) via fa9c3fa035433debc24503e32c59688650ffcdbb (commit) via 4330d61dfb05d77fd925efdca45091f12e3a6266 (commit) via 6ff185b89017b16e9092142515f0a119b684ac72 (commit) via 1336939d3cd4cb02670c48ef065bafdf0fdae300 (commit) via 33a6bc350f5b4f03d586ba9d32667b6fea1dce4a (commit) via 000439d52897541ad00a84026ac471b4f8cb3c97 (commit) via e33f2313bf63b77763739732be14b469b4b647b7 (commit) via f948b2de97884bfb4e5fc11d40a6bea9e0b096ae (commit) via 90bd54236cb8b1c31c3662977159be971044c20d (commit) via 9698cf9b1c485edbbeabc9f65bfd0fdef92e3854 (commit) via 90f879191c1bc8455527f66fb4ab46873aa870aa (commit) via 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8 (commit) via a2f4b66c9eb5210f8ef6038d7194af1e5f314f97 (commit) via c0e70c624fc7d89f5cf281350692de89a063786f (commit) via 88981b157b08f2e9a404a2f86d4ee131f17ce3d4 (commit) via 7d9813f196bd1a98d49c2b9b7b90351cb2435b0d (commit) via 0e65dfbaf3a0299e4837216a103c28625d4b4f1d (commit) via a30b3e182aad25f94de6412efd5d78f7805fb4d3 (commit) via 6dbf2b734063522b4f3d7403ce7a2b436802b839 (commit) via 6c33b742ce19cc2fd226d84f2991572239199a62 (commit) via c499eb6896cd803d26da8c719bfac9c03e596c08 (commit) via b437bfe0f4cf06559ca4c508a2869383196ddc6b (commit) via 316afdb130346e44622229793d1fb8d391059f8d (commit) via 143dce8481f09f60704ab52b98cf8fe6d8b29fc9 (commit) via 9402cc593f4aa54677203efa9a92c4f28d3033eb (commit) via 72f3392127e1892cb203a98092b4ae32485365fe (commit) via 47d546f427d0d3bf9f503b5b118ae05b49d73d28 (commit) via a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1 (commit) via c0754cdd9af6d8259eac5c9daad9f9b0611358dd (commit) via 479604f44fc1eaa02a97ebcc1b60f55a606c4046 (commit) via 94585e7f93c9477bcf2835d8245e967053ce2b41 (commit) via 60da9d955964759b1f52690bff587ad32a198507 (commit) via 2e94b05630514109994abb77ee2dae730f17c263 (commit) via fceac76e64b998c9b66a229134a9ead25209e095 (commit) via eabf307f1d77b952dd76f2618e4e6f72d87e5d10 (commit) via 65f381e729bedb933f3e1376e7f53f0ff63ac9a8 (commit) via 766f883622ef008230250aa5aecef9fb9b29f233 (commit) via 0f4a61b42002f568473f821f00dd240413beadd0 (commit) via 94667ab146a0c94f87f3d9aa7d1c819663b28338 (commit) via 28fbeab8064f97ca5fe1a851fdc4146b7aed8863 (commit) via a0f6fd217fa53ab80a335fb69f12f1f28ac3335a (commit) via c83004d526c9f5e203926a979d405f7b720b9ede (commit) via 586338b839d3f65d22eb3baef41f7395974f1f11 (commit) via a7b34aba62ce347b4e64ca197a5c8b997e3b72df (commit) via 0eb32b6e1dee07ac199b4bba855205e4de099213 (commit) via 58db964680f0f17197849a714c30430deafb8bc7 (commit) via eb41253a15e2c976869ba1b1f0c3c0e60065fd4f (commit) via 5f63875b309f3ae9854ac8a12470111b794a70a2 (commit) via 61dd8e19a8b43037125d4a767f27e98e9181521b (commit) via ce5aecf87372749a5ec511f218956756aa185d0f (commit) via 3d7d6a6ff4678685f86976f08ab4c9c639e262e1 (commit) via d5b7ce35a19350969b609c56a8bfff17f91cca20 (commit) via 5b6d4fc74b505850a7849175a800b55aea4d9363 (commit) via b3811e90dc878d2a23737d20c6d55a972e5b0fd6 (commit) via 823710d5856996d1f54f04ecb2f7647aeae99b5b (commit) via 0b4eac57c44ec4c9e13f5201b40936c3b3e6c639 (commit) via f166ae0188dcb89c5ae925034260a708a254ab2f (commit) via 2301ed1c9af1316b4bad3747d2b03f7d44940f87 (commit) via 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c (commit) via 5a01c34c62ff9085a0f45ec2a43a38e7b455b23b (commit) via 04bdff6a76b863e61ee46375dd7cdc9adfb75540 (commit) via 4a421c53cf609d68fe956c2e7270d34c0ab8500f (commit) via 5663e321848545857a690f30a780187e3366bd2d (commit) via 8acf14351c818d956babe50e61711740f378c941 (commit) via dd7efa79151ed5a56caccfac870865764d922a2f (commit) via fcb36d746247a9f5e266afa65019129eee9273f2 (commit) via 45d5293f6e098ff7e85a30554fcdc8c7f00db675 (commit) via 27830e0d383e4ed5e8d131c38f262d3fcc3eff25 (commit) via aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b (commit) via 8376927b2cc8b80cd5aa1e48aabafc85c0ad4f3e (commit) via f8861f5dc2391e0c46dd118370195e7730ec46ca (commit) via 79472b45328232b083e897a511d4160a6dde0463 (commit) via ea195bb04cc5c964126aeff0f87d7161a03ca926 (commit) via fd0de36e274c8141a5dd4579cd04856dc88370da (commit) via 8ebe62124023224eafd1b82c8bc2325962711ef8 (commit) via 2376c3702e43ad8a717d80888b34e1e7eaeacaa8 (commit) via 82d7a6f4e3ccb3d714b5beb03eeb24f7356d4380 (commit) via 016181423bff8c04b2808f2dca9a95f0c9d92fe5 (commit) via 4ca51187d21562b6626eea2bd0e45f6b64719dfd (commit) via 18125b163947bfd0c358d4a5acf4e0e3b43b64cf (commit) via af1a8d038798bef11471e28d999ad1687312a6a7 (commit) via e7fe496b1b8c0dfc44876f86131f756b424d4e70 (commit) via 6ec6968b1b259948ba42f0a47a3da048377058bc (commit) via 8fca4da0759df376bcb646bc4b79a92ba27e2362 (commit) via b706061469811a16ff2fb8d42f6e98a22e454212 (commit) via 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d (commit) via 7166f90a7756a3b68cfb93b5ea4a026e9b5f2459 (commit) via b0f4fbf81a1cf67d49558b2e8890e5c8628f8403 (commit) via 9ec2f606ce9ebfe9b7d1c6d3db0614d19bd03a6b (commit) via 4decd602d8570eda5d36fd6cca2e50091000fa7a (commit) via 22c6ccb89e0f38a70a42fb49eb167e7857d51f5c (commit) via a7df56e5f840e2ce8bb09487ee0b6570cddb1550 (commit) via dc42e902cc54af2b7e7b54a1171d562f867342d5 (commit) via b474a2022dc14fea0dd8ea4cc66b813486132075 (commit) via 304f09d0d4b519f143144d213e1280a0691de8ba (commit) via ba6cd17f0a28e54d9b4ef46397d448f1d208d9a0 (commit) via e39c1607a2df3a97bf7b70bef6de5b7a2db55eea (commit) via 23d00a419fe67801afc02a87f7ab9c5374b0238e (commit) via cd4797ee054654160fe6c4b6fbecd636b7961e19 (commit) via 3734320dc054bd9f6632607e9e5c901c57450791 (commit) via 6467207116c66ff2c58f8bc35cb15b2596f5c457 (commit) via fb7806c7a49d6eb75cdbff183d10d00f75968c0f (commit) via 669d0468399d8375f4d25289938a0c06d12e7f2e (commit) via 8fe9a076adf308ec813246a96f915c5ab5b6a75f (commit) via e6f65e7573a317ac4efff26fe0e49fe1b9e7a596 (commit) via 739b5c9c778dee9e2f54d864f83a81ecb0639535 (commit) via fab7c86ea474291776621eba042132f47af124e1 (commit) via ce3ebcaae382a3f95530d633e6875f97e53ef273 (commit) via e2d1595531b62487749e1af680d8f0c48c684feb (commit) via 7622049e0bef81fab900860400838bc977449892 (commit) via 338ba75534fbfeb64d7009f29a89f25826a1f4d2 (commit) via da0523c66604dc11b8787d3e0123ea80a2503f14 (commit) via 302d65e0b264df2db2f42a2ef51fb9d69f3225de (commit) via d87343802b81ad123a27beccb140d406f54727c6 (commit) via cffc205c9eaacfa312323807cd60b9d3d1c26894 (commit) via efa9760914311fdd9b9a299f1e6cd5a85d64c5ff (commit) via 999b073bdb188635feaf1f719237b4845b5b06f3 (commit) via 2a912e42d7b9aafae0e8507360cbca52cd29fa9a (commit) via 1aea5580c4b760e27e480fb4cb82146a2388e504 (commit) via 34d11c682fd96c7dbe3ebd6cd9033e65d51ec7a3 (commit) via 122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf (commit) via 3e2cf42fe5c305ebb5a4a69427a37e950385ea60 (commit) via 1c8ce0ebbe603b7016fff924eb7636d8406f44ba (commit) via 33d0e35aed8870ad317af7eeca5274cf4fd87d15 (commit) via a45575b0356d671df2c55fcfc66de719b6b2e5e5 (commit) via 87781e8475f8ec80463937130cde48540ff87149 (commit) via b420b89e4b321ff31f2e76cac499b908f042069b (commit) via 408e9b8b9ebeb854baea9aac52fa8df4d41eb53d (commit) via f9e2e39d23495844d998f54a0fccb9d6be7edb0e (commit) via 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa (commit) via 29b523140ecf72bc3fdf570c71fbda6fe85cf930 (commit) via ca1285d17534cff3041c07ac7841288e1b3ba19c (commit) via 334fe02b5f9cb1dd3abb0f79856ee1f4285f39c1 (commit) via f3a09c800fcd1d597fa2b9578cb59adfc15b698d (commit) via af4fa23fba220c1b26bb3c8a7996b406dcc181cc (commit) via 26648588294d039fcf1efbf512d785753cb6286d (commit) via 6e035501e15e72398fcd9db88c97dd30e585a9ae (commit) via 7d0e2ecedef69de0a242ac49a475f6a3968d4476 (commit) via fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f (commit) via 6275948b473f6ed3149e97bc18f6f8de28bb3f04 (commit) via 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0 (commit) via f3da9116654bb2e899063a0aa9e11c2606b38fff (commit) via f1bb75ab2a68b7d0878966f5a945eb7d33a48280 (commit) via 3ca58cdea13ddad01d70aa170eb419903b241b94 (commit) via af2d9beee989c7b75de849d9c08629a1e3f567ad (commit) via 61c9c4212daa0be96503b9069da387aebf9cba04 (commit) via 64c350f2b7930050b869fd3268547452316a19ac (commit) via 514bbb0fd96e0742bdef8c6c706e5a030323d198 (commit) via 4d6ac854515b14ac5304c1553d37f9b1d78ca333 (commit) via 14b456f2a011b28d8136a64022f2a418391054e3 (commit) via f49bb598d96fd66bb6f2e9b14951f094e3d29396 (commit) via 56858bea624ab405d53379ae25f433880ecafc68 (commit) via e523f10159d469dc0ca77069d092411f200685a1 (commit) via 66dcaa5d55eb39471d962bb949df009a9ea3f959 (commit) via d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2 (commit) via ed63aa178c4b5e47eb8658813b2a3b621b7a092b (commit) via 897b9bbcffa894bd3f3664d7f1b666379493d9b2 (commit) via 1c8f2df85f56d8f3213667e2a11cd480f2a26667 (commit) via d3b6314397347943f40cdbf6efe34e209a162cc0 (commit) via 14925797f833c9f4eedab98c7c50961d180aa03f (commit) via c507f10b0711f24e1b82b8bd096e605317cf77fe (commit) via bf0b396de71b76c02f6dd37e61e4044cdccb28d3 (commit) via ef1576a1b5f14276b44ee4c0fc259832ca0dfd99 (commit) via aef6d006581cab8a858e7abd36c57e73ea6e97a2 (commit) via 04d54ace12e77deb8b1d26541de0f2cbc11880f5 (commit) via 9743db035e9bc256b5accdcbdecd7d1e9b41d4be (commit) via 143275ea7e56baf5ad7a736698b79a90b473183a (commit) via f08d8ce3cd39f34f26dbc681d873e59a0d7e6780 (commit) via 73cd51e51b294af9591ecc2e8a28a9bec4f466b3 (commit) via 1f6234a335eab15c3ad878338b5256b5bdc190ab (commit) via acca5630749e83ce4ec893e650afa015a086cc0f (commit) via 5150f0d83e7525e75d900c6859163db8797507c3 (commit) via 4401c2414dffebc5c5e4914fb611d1ecc738e3d5 (commit) via a710b305c5ca8307e8b9d14bbb014641f60d3b48 (commit) via 4aa88b50c4eec0256bcba33e02135f224a725d68 (commit) via 1be7aba392cd32a9a7165ecb4635c2733b5ac7ba (commit) via 35d1cfc2000388028c8f032e714b576615e8db02 (commit) via 42b16635dd63ab3e71c76af130423e0ef16d5995 (commit) via 8b8b22a426d6b2473731176c83b47042bd8184b8 (commit) via 3063888ecfd248ebb4a9b9c61819c9b6eb07bef2 (commit) via 1a186d296c88d5341d2939eb0eedf792b053f8a5 (commit) via 2d78f95bb639209254eb7252f9c48c520bd90d56 (commit) via a8465a06e0986374f501d0e286a5f351af2aa878 (commit) via 93925576e90a2d5ce84176bf2638f685d1a13ec6 (commit) via 13ccd4c06fdccad1cb97f15878cd411aa22bf12f (commit) via 8cd7817067daffd567fbe09a85b215b609c56e1d (commit) via 935295b51d80180ecd8c35d0edbd91283ae135a2 (commit) via 7df54120334049020e377ec17a0fdf4ecc63d6a7 (commit) via d58196e061969786922cae5cdaa2ade56dadd95f (commit) via b409bdb60e6a5c1b865dd25eb6bae484eb9b1b04 (commit) via f30ee27c150efbdffbca53f84449b2aac605b6c5 (commit) via 5d281bf033bbf2018a30183c2009182d947d3dfd (commit) via f601a00c4c70f396defc66d592c4786135616545 (commit) via 26c1e780920096772b5735250fa31a4184d2253c (commit) via c2dafc2a05c7bb1a341def59e6f39c1da42984dd (commit) via 1b8833198c014f2d7f7a67097061f3b990707084 (commit) via 57785aa2ff465ec72baa75bbd62e321a46e0633e (commit) via dd9634d97c05168870624cadf8fddf9b62ee3008 (commit) via f5f10c66f8dc5466536181a1e5cce2419a5bcbd7 (commit) via 35c228db7089caf9525c1ef4cb35f6a8335eeea9 (commit) via 886e1c739b5441aca92a9725c932d0d446097a32 (commit) via a302e574182dc12e95850dec078dac93701f1bde (commit) via 485dee97c6431267b662b723eb092a6abfa4167c (commit) via 5ee9134313f9cce06d38144f5bc77c59e04df884 (commit) via a7ad558c377fd5f5cc7bc77837c532f907f2c53b (commit) via a2699ef206aedf8e8d49d8519ae8a535e4b4afe5 (commit) via 4d8d49e80ab6964a211ec3507be22c092afcd83a (commit) via 14237686d71b6ef1e6a85f2791cb54d1ec019cb1 (commit) via 9ddc1af18c31e775ae7b107779addfcde92c723f (commit) via 95008a882803920a0faf672dd4a54edcc6ab66a7 (commit) via 7bede82892a06e6c26989803e70f53697392dcf9 (commit) via 905f5b3f1d20569e2788add66687e6de11130159 (commit) via f6bd0b7677cbe76cab7322974a418e0e539400d6 (commit) via 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211 (commit) via 8f02ae5bac22b8d7f57f233ca1957ef9dbe751ab (commit) via ded12894f5a2836b06c997b899d04c9f692004c1 (commit) via c5358db468d582e658488c2bcc1befe6e6e47366 (commit) via e48371ffd5f89a9ceecd6e814b69e26609fd8402 (commit) via c408a94f8115767ea7e6aa1a75bc59ea5ae960fa (commit) via a0a3a1e9d71887bbff54fcd1e33fcefcbc78b603 (commit) via c2509a1cc8beff40b1da8f85a3f27bf9df1d6c02 (commit) via e7bd7fba34ae1f892acf1e13ac86fca55b68026d (commit) via 35015cd193be5e603ed31c14472d2d9d17e14e7a (commit) via 37d0d09177dc02e0002ab8b90d9b7bc402af9240 (commit) via 3076e59490428c9719765f9b007d6d0d0238f006 (commit) via a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd (commit) via 2764128dee821448ba43a50ed8cee387f2ee8dca (commit) via 3c2fcaf9132b994ff3dcb19847717f175098289b (commit) via 175cbe22a36861976dc328baaf5ebff3fad35ed8 (commit) via 30d5f9e82139702e56a862ac19a5b36545fe3de5 (commit) via 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41 (commit) via 1ace968ad55778bc178ef36182b87ab7e3dad652 (commit) via 21c219fd5bbd0720b7adc5f250c91fc2fd1c4941 (commit) via 387e762476ff224ee40760910e73a3905a2c380a (commit) via 0067be51e9436c5bbd961a4f54c10dbd50c491ea (commit) via 55cb8bb5a870380a9d5f45d8002b7ffab529f6ff (commit) via e173ea00c2941af42ea4e2267446d6039a70da6e (commit) via 1367480341749b1498a6c5e7a7b79c7a4ab4ed34 (commit) via a9eac7f9b45e92b83db476d167e5ff26607a8b47 (commit) via a97c8e56362b77fcbbf5b57e5053356320273977 (commit) via 71bed2dba6c0706633ead4994cc89e063abf28ea (commit) via b8e07335d04f8c8e611a65905598915f68b0b707 (commit) via 391bf8918b16f9f3ad1060d5cb0fc0c4048421bb (commit) via 24c54127c5c4da81b9e6c248c8e918b3564b271a (commit) via f3e606a3db56db3ce1ab172511a4ffe9310a496f (commit) via bda678b9e5e4a343a9bb2b0fd20cf52035bad78e (commit) via 8de09632ff6683a48b8acfb05d3b35b4ab4507fe (commit) via 63b667adb4a915f13ec3ace77af4b9cbd76bceac (commit) via e111c7d1eb8404f29c45f3aa5dbc531062ebbd73 (commit) via 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f (commit) via 28ed815ad2b0cb93eede83022269d6a60b9cdf31 (commit) via fd1dc4a0c1b87c1efa7e0398fd47fd1e87fa0fb4 (commit) via 31e36ab341498bb477a46a0475100ec5d471c4f2 (commit) via 1be5f94f9c85821287b9ae423f738a8bab499526 (commit) via 3c17238bc9fe8a078a6199470291f07bab9c64c8 (commit) via cd50a87ae29f163e7d254729a902a5e51fcccbbc (commit) via 3c705960ca0e12bb5d3a12d14ca6703006102d98 (commit) via 0a57e14ffa4c2900f64780375282dc5dc493e250 (commit) via c469c86473273e115b267a6f8c93c8942deb93c4 (commit) via 116adc27470ed3682b6236e44e3b18838673036c (commit) via 3bd82c86f0f432bd7653101069bf056fda14b7cd (commit) via adccc50753467ac66573471f180a60d8d96ce223 (commit) via 5cd99750959f54fea9e7290ec850df6c96878b56 (commit) via 7ce2460a77a8f66a145c11522f494f3262255390 (commit) via dd3189990b1d918b3a9e482ec6e9cc9a8b9e8fe9 (commit) via b42560a24154570a42360294f44ff14a95d795ec (commit) via 9cfd2b89bd3fe943a87d5425d0bb0f8b14c85eb6 (commit) via 7a1021395e0ef7a92e1653533b753a2221396015 (commit) via 924d79e23306bb85fd1dd78564f4779fd3aeec56 (commit) via 4c58e3376da3fedaca81f8c9386f3ccb81261f8a (commit) via d772d2abcc163142fc38655896c4704b06dae0b6 (commit) via d11d83f47bad5dfc959ac60b3619017ac60bdaf9 (commit) via 9a73f0ad6ca2a9c027f30fca3d79fa958784dcbf (commit) via 8127a2fab5780f27a1c9998b0be4d8b5c28c1603 (commit) via 91d3055d8b77d56cf64f85ace4237a0ccca98a4a (commit) via 31930bd34d15dd22c5ef47b46d8bc95a5ec34d0e (commit) via bdb3ed9e634d3db8164d90dee12bc8b5e2458786 (commit) via f37b313d5cafbed4e724db4724d1ab567b373be4 (commit) via 246994051b6659bf9f4c89b5d5ede86717c5bbef (commit) via d4e05d2fea956e65618fc12c57fb81e8788ef07d (commit) via 14ef6690f1f24ad6b2f87bac36607146fbda6ccb (commit) via 814cf43a1f16157fcbe2c662f567d064393a0fcb (commit) via 02dc647ed65b1429b9af4986ed467f90fbe0c33b (commit) via 092324387247f92c66f25a3e1927cf8821bb4943 (commit) via 7b4a314f8b9b50c2289ca6b5d21513052c48730b (commit) via 51d3063a35fad1fa0cd53c167bb5a4325afeea16 (commit) via 89fb8848d7f00cabeb56344762860469238c24e1 (commit) via e9b89e2d01043108283df02261ed718aae705bc8 (commit) via 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7 (commit) via 5bfd760d66c816d53a930635a84990c8536bb545 (commit) via e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab (commit) via f6aa7436201194e80e8d7761e6d88ecf0ec1e327 (commit) via 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b (commit) via 6509b8ebfb19769d726c16eb3a8967ac6784f621 (commit) via 35632941c90f406f69512c9559ae7ba561f7eee8 (commit) via 3017b94d60f1e8929886be6992547973ad354f4c (commit) via a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16 (commit) via 5f6e90a0cec8c269634ba0bff3c9e549a903c39a (commit) via 1bd0c6e4964f68523794aded05aa4d184db44d48 (commit) via 2228ef7700e81bfedbffe352f3efa3716224cdbe (commit) via 60fcc1c3d0d8f1e271b19210b1707b4aa589f273 (commit) via ed2b7c1703246eef1ce6b393ced99fe267cbeb7b (commit) via b0be6c912f9e901a87740c72f18be1e54ad5267d (commit) via 587ee17bd492a324c927437fb561b99b274e1d8e (commit) via ca1df239078318425cf8038995bf02f1b9ab6e50 (commit) via 99f20f08682ecc7be882774ff78409530802d000 (commit) via 80e55b132940813fa454da2592a31db6c8af85f1 (commit) via 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3 (commit) via 844333e24966817fe4d622494a75c8ae0acdb91f (commit) via 988915ee7b880ff059f849893b71118d9bd2c4fc (commit) via 2379f9c475505ecedc97607b39af7184bd67aa88 (commit) via 46752c37b06c83a8cbf6be887beac4092d5e3505 (commit) via 79299211a1a9a701f146620d419da6ee0175798c (commit) via 762172a4dc4c1a7c25b3ef18f32b6e378cac6487 (commit) via 9632a526cae4cb10276e39d8c4bd1f649d13f8e8 (commit) via 9420801e573e77f0dd522150932eb27199052a04 (commit) via c91f298b52766b41e9612fabf93f249cd179bdd7 (commit) via b654832d0d514a9fe4bf802751df1a7093666c93 (commit) via 7bd55dac80c2faced875119b60acfb51741e397e (commit) via 75f06e9dc59d3f810e2afe2f47afbcb74204ef61 (commit) via 77e7aaa4bd980fb96244b874bc867e20b399fe60 (commit) via 456ba0fa36d17648a6cf32d1561c8c5802103153 (commit) via 0f1309c8f7530b31ecc73c55e86572ff72256947 (commit) via 26bfd82367d6ffeb1a61495ac445542e757df5b2 (commit) via c0a57f1536fceabe89c4e8100c7170f6dd8bab38 (commit) via e90a813d9660bb9d951963fd7ae03ce004a52ad6 (commit) via 41cee0897b670168e0d6f455c9bc45c73f8023df (commit) via be0d3bbbcdbdba83f74d8ad1be6c4c759255af0b (commit) via 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02 (commit) via e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9 (commit) via 334d91b9407c5f9f37f224b0f43551c01964eff1 (commit) via 62e6b7b3b3c6f2fffe9f5863ddebf430533b79f0 (commit) via bd1efd7d2111e37e2471facca117650a213f332e (commit) via 1231b7b8255b54993c0afcb0ea40a5a096d67e90 (commit) via 89055eaa122ceb99ae20bfe10d028da2ca7fee83 (commit) via 5da01df5b5601cae695cee588547fb9ef0967081 (commit) via fbdf05a16ec647358e65582721c4ca7dae15e58d (commit) via 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b (commit) via 9c056022194f9d1f068885cb45c9d23a2e44db54 (commit) via fa9c2a59e3110d8c7d37c1fa602cb6b25b796dc7 (commit) via e2eb806a17490963f23be1d567cff357537df678 (commit) via 6fe876770ad6739a5b3ca50f53dfcfbe433ba0fa (commit) via 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b (commit) via b6484282f85bf7f11451b2441599c241d302ad9d (commit) via af97b4161f07a716783183f1b17fa5cac9f99a49 (commit) via 9d6d4be89d12747a92629ed1bde1d423e2831de1 (commit) via 27cdfa03b5be812683c18e64009a5da042190ae6 (commit) via a288c270991de1578ad28ac312120f4167347234 (commit) via 66452beb773568c7f60dbc6b7c70f671a8c9cf4b (commit) via bde09ab7026edf3d79122872b79c6a8f164ee0ff (commit) via b5d5eb444b6443855d65f73ea6b6623f5fbdaa0e (commit) via 222a8d255834c717f1690658a9f85501a46f9403 (commit) via fcd60b848ed7619461b0b0e316201e7745cdb61d (commit) via 0fdfd794d22b3b516c3031e76afecaa0ed813931 (commit) via 353ea2d106a51cfd1680f7d351f35eb8f69c9248 (commit) via 5f2459c233faebe8f882e556b2f4a86594a51292 (commit) via 41f61c65a2e1cfdb4aca3bccf6e11025495ba02e (commit) via 80062eb94959467fb0c27b988b87ac08dada4bd8 (commit) via 06f74c5cb868cfd37af3e680d29784c217700bdf (commit) via b8c05e85ef4ce9610a3a43198180cf24aea327cb (commit) via 2cdc1a970d3249888524d251abfb87a9bdc77434 (commit) via e37f3ecd59eeb56e08c4a210a6e9764f1cedbc83 (commit) via b83b4b138298d2a6bfab11f533d7e315c0a1c97b (commit) via 2ecde2b63245d4794a4967f318772e7166feb310 (commit) via 4504bbdec57c77b6468838276e62b2137eedfdd5 (commit) via d48e62f4a263a871b7a62793e8000625735bc2f6 (commit) via 25a0274483cb00c27945b0337005be4f169ff09f (commit) via f59f30f55776b10d4f728065e9f9a10cf63a1b29 (commit) via b70bfc540d3fa7759f5957bce23b6a1e6783ccb3 (commit) via 640c50672cffe19a58a0296bbf7731b59a013cd5 (commit) via 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b (commit) via ab4ee6147eb2e8fafd1fb96c945029c789182d3b (commit) via 8ed5b76ea2de370265382dab1d538a919e2603ab (commit) via 2ff0a947394eebf5ff9cd26088dce60ec8c10b48 (commit) via a776957c8c3a9177345ee7ca91077234ed7f508e (commit) via 066f4018ae7822d81cb6747fd9494e5dd63bfecf (commit) via 8107ddcea1da07f1c4e902c17f045684beb78079 (commit) via 06ddcada14d90c4da28f9585801aaae48304d8ea (commit) via bc68014d16c30a6e90fdf9fc43e98be8cbbead9a (commit) via f1fdc960664c24d911d6189b94e5c054b4bb9053 (commit) via bf7a4de1722a63c8b017d010e75d5e9e5e622f36 (commit) via bbe75b9d00cc6f0694ff26569505c349d55e35f1 (commit) via 1db455a76c39e2be6a8a9613b7a19439f24722d0 (commit) via b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c (commit) via 83228e93efa82f84a132f7cec44d0e760d4ad22b (commit) via 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1 (commit) via 5acad1a18219912bbb83b667c7bb4955d4af10ca (commit) via 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7 (commit) via 4be290b2517839872ef7de47230be8dbd291a7e5 (commit) via 721b08c68679ad4058bfa7ae73811e6f9e845cfd (commit) via fc913e53c353218ba1a9efa423c08767691a682a (commit) via d2b584a55b658fa52ffa3a42b689940d2e98e969 (commit) via 4a90ce955e5bcde074b8616ff9d20f9939a9a358 (commit) via 637d4b78c55640b9d858546a65d51024a70b5247 (commit) via fa731fa0d400568fb1fd68c247fc0c55b53c2a2f (commit) via 4cacd8ca8de0f9c22380e5a68cff7ff9f6bd4704 (commit) via 8a522c6cab56bd55f1454638786f999f6f636354 (commit) via 136afab8c7d8a8a91dbf38e79be4f9dc4125d552 (commit) via a45328b93bdd5399da8a9e56817e445cc2068edd (commit) via 45f0ab12d463cb3999a4286e679bdef05884b3a3 (commit) via 7cb22ff84745da0856bf74578b9bd7dff4379ed5 (commit) via c54f15248ee990df6cea0b4730cd61b227a0e082 (commit) via 8e1920d611ab3330d6dfa610ff771cf5dc796097 (commit) via a094d01f01688a49810c2cd970086ed22ea617f4 (commit) via 152d61760a048909bf93f256063b5657b34ffd4c (commit) via 725cbb63263d27e87f5a4f9b73281e7710de53e4 (commit) via 3d1cbb78936fbf2985ffd2ebf074841599ead788 (commit) via 94aeb44b001ab2d632806242a3bacb0a879abe15 (commit) via 680d7fd5fcff860a31021845389d4dfeb7b42e3c (commit) via c6fdd8b2052baa9b7a27d4d34f109c9622b53509 (commit) via cc06b668978e542ecbc2aff1beca40e5baff86b0 (commit) via cf532bd13616fbabe487d98107cde3202ad58ab7 (commit) via 82433e3e270973c3f49d55d41266de6adbf9006d (commit) via 57e5e645010430b3d73f8c6a757d09f48dc8f8d5 (commit) via dd06d4d6889ee58b76255b775f52ba8e475a7a2d (commit) via 6fe014bcd33686cb75e6355f9c36ce483a64ec62 (commit) via 723adb650a31859d7cc45832cb8adca0206455ed (commit) via 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d (commit) via cd0923370be1a6412e9b8fb5c8e9e39d90f1d3ea (commit) via f88dbe3f8a9cef79a6ff32ba3734a7a308b8ea26 (commit) via 38c3873e5d53902cf9cc73a4a5a05adf371296a6 (commit) via 1670072efb31e82d52d408940062860e2835d79c (commit) via 44ed80923ab89e141120defa8c1209b69869a7ac (commit) via 596179f77c803d3fc5586465f4ece6503055d035 (commit) via a59240a41ac34d91e4ef5dd8b484763639388364 (commit) via 1b8dd6432644c256ab294d205a8e00f6c6dc5073 (commit) via 1903f1385bff910861942743860d8577423bcb6c (commit) via a679f24ecc00ff7df02c5e6e4804fc9f19cbe595 (commit) via d10be0cb9e61f29a0de368ebcc78bba22a902ad5 (commit) via 05b1991f1a942f9d13b5363fb4c05e34ea44ef57 (commit) via f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a (commit) via b614e6f3f820fe08d407b57821456f672d4d1a6f (commit) via 14faed38e730e3ab2a1aa8d5232b4883638fd857 (commit) via 541aad8ac923fa2d4a9d35fdf82b487b9f6e0ea8 (commit) via 29222070e410d441108895fcc3011f576bd05461 (commit) via 0f534d767b257fffd8a9b231c97ff9ed33688452 (commit) via 1ba7b7f9384eafc0748cee4c6731d6bdb717bd20 (commit) via d31f262c36a450fe64e5886228d585c75cfecf14 (commit) via 6d14d64dfefef524398f45fd59c1443ebac624f6 (commit) via a40dde9db56ffcea8c2b99e8c4e292ce64f64f9c (commit) via 47c47d6907bc44a599baff948d2809616c74c44e (commit) via 833a4480dd7cadfd645d7b141168a0e22dc50665 (commit) via 3f2cef4945a916e3b566010340bbc70cfe927916 (commit) via 96acf8844a655e34de3f3b014a7f64f26266dee1 (commit) via ca0ab0aa8194eda711cf52efe6c26cb821218476 (commit) via c825904428f7c89a65eeb313b243f65e950a0a19 (commit) via 27f113c8e9b2361caf3dfcf15437020306bf93b9 (commit) via aee6c3cd1fea463422f19394f95c311f239b6067 (commit) via 8e2b5aea9d3f16961f7fac15caec00e955c1dc81 (commit) via 43cf3eded2d3ec0af6f5cf534dd89f47d4958a92 (commit) via 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8 (commit) via 89b268d8233e11acdfbc5af196166aacc1440ff3 (commit) via 946c28d2f93789ff4eec86a8c321af35759fa20a (commit) via bf12844a68f3f4f267846a19df6a280f53e7ec5f (commit) via ecbc06d2a687f369da7c304201c9f2cbfed80ec6 (commit) via 030197b43cd8ccfe6869f798dd39fa27a29c0e01 (commit) via b907456c3eb8a08f6b211f66abb448df962749e1 (commit) via 9e97ba436a8e59ac4574001d618240eac0328934 (commit) via 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade (commit) via 6892f60143f7809641dc1824e29dcc406a705df6 (commit) via ba22ff8694e366fe5f27824566aae65fc6626841 (commit) via 624a24513d2dcf7f2c2d42dbdf6d86be2f6d74aa (commit) via cc9519e7d6251b84dd95c55b562a15b25d703bc0 (commit) via 6f38008bb423d71e6984c8ce49b4fc83d2cdaf0d (commit) via 336d760da60d93ce76c4560525f65339f3403914 (commit) via 4a4153dfc945701938b6f52795cf234fa0a5f5fe (commit) via ad9d13f8e966a844e7e647af6e82259101956f17 (commit) via 79b8e8ab453619cb0262e1ad18447d918a605073 (commit) via d70cc3ba8740fc0eb0328da2453cefba8211944b (commit) via 7905fc359d6921c411999633e382330e6fd04fb6 (commit) via 73f8a5908695e96d8ecd5e0fbe9f1ebb16179547 (commit) via 1ce0f4f2422c19a2626c23d88c7dbaf808898b56 (commit) via d6e00f507d764bd8a3b2e55ef9c68a70591098e8 (commit) via f2ae8bc88390f91cca8531823db51a8e35f0a0a0 (commit) via 4884b57f24fca3d3abf73515e09a3917ed4f356c (commit) via fb8819867993ee942aacd8ea6d5027b16cecda48 (commit) via 8732db6ceb3d5d352685199a15306dbb69c086d6 (commit) via 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 (commit) via b494cdff6922944383ef4dc20fcc90c4d823d315 (commit) via cf250e36790aaa255bb486e2122bb83c95c7669b (commit) via 61f4b350419e91560be94e0671a760b2e4902c65 (commit) via 189b8c2e104017600104457b97315da74a22f549 (commit) via 8ecb59f8567956c1520b491ea31396363efcb1ef (commit) via 62160ec9547cdd21ac7334d9a378ca2930aac61c (commit) via ee3c5f8968e7b43854204898fa46933b3a1b5991 (commit) via d563b953142db796f61425a1a300f0feddcdcd55 (commit) via 5ce032bdfc60a8f44f6307b2297384c852100f95 (commit) via fce9773608d45757dfb26ef7783f37d432ae9a88 (commit) via e7da54fcdbea8e60c8e577b32b6ed63f8effbfd6 (commit) via 36cd4ba59817473935f781174744e7883ff221ee (commit) via dc34c8972ec803b093201c4c12e084f059be32f7 (commit) via 85bec12d61ca50669cac5975c88d3a1e377375f9 (commit) via b73715df01e6e9b3de5a49cd7bf4170deef48461 (commit) via 5d5b0bd35f1f8b8484349c3ec51aa8e19a1627cf (commit) via 05be37e5c34b822ff3032791c2415e652fbf9fbf (commit) via 9a7f0679fd3b9815b8eb938bfdad3934b8435419 (commit) via 4e84a8f8bbeab52fa7048873655e582ceb92534d (commit) via e25de718de3b613cfafb9c5b28dea8e55a8649b8 (commit) via afff667ae800adee5934020c92012e3ecbf4dabd (commit) via d557977487bc21e8ed19603527949a8541c44832 (commit) via a12e57448ecf2644e3ddc98bbd4bbb914a5f8c92 (commit) via a7e559cc087b10b9ea337b58e52cc13964aae3fb (commit) via aeb2e706e1b9c491d20c88c8ead1ae9df9cee04a (commit) via c1bc0935a4afb513486dc0a479cd57c0924b677c (commit) via 1cfe2726f1564df1247f7844077717db04522a88 (commit) via c01660c625766e848195285cc20581b9ed7ecfe2 (commit) via fe7e91e7764d8db4a45c9d7b3dd55cb635f44f5e (commit) via a0fb96150814fef91598e0b528c071201fe18891 (commit) via 5bc113360ccc33797a3f882e02824a5c426da175 (commit) via 90bd3c903fe76a8a3a5ced98c76e4366c5a0948f (commit) via 871a6bd2d852b0fb677386e1be78c3f4c6939b48 (commit) via 02e902e1a1ec7b74125f329b3faef1992efb6d51 (commit) via 4aa866af6b13c7080c6d92201fc1a2f4ea19998e (commit) via 86333705ae268aa00da41b094b0d632eae31e9ae (commit) via 48574d91bf1289074f2c88b1f83aa3cd37d524d9 (commit) via 4da037ef9dba6c17089250d228efdbe6f7d830c9 (commit) via ccb8d7e8194b848a6c4aa43272540eec0f4f21f2 (commit) via 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66 (commit) via efd6b3591b4bc8440f4145dfc0e6dbfc0545f7d8 (commit) via 6b0dd094741bc5e9963eabc64a7030783e471941 (commit) via 4b5a202f107b5393da30fd0b488c3eff2bc758a5 (commit) via 60f993ce170b91876ad41e8f7339c24afd63fac2 (commit) via f6b2b12db82f7b76c30ec389a67fbce5d2805323 (commit) via 1889da7048b310151d142b100678b6bd6053b548 (commit) via 65d1bc05e89e45b102783422c3984ed718547d5c (commit) via 1caf72a5849abf9a717ed3e0232abf591ff933e7 (commit) via f1c7f42126274d48f6b0a929e4e15a32193997c6 (commit) via 4389b29a5af431eeac517272b66560e12df3c430 (commit) via e5d6e09ee6cea13942a8042945e784f483a6f3af (commit) via e2b0ab597857bfe9d7c8742ff50bbb77c70936c4 (commit) via e12437dc862690eeaa4a487fee35a237703d2b29 (commit) via e0991585ade56ff86a382978bb3b0268d6e1f31c (commit) via 031254f2111f945ce6a1b8827e1a58ed7141fefe (commit) via 8669f96f0d1fee8eddc4cb56ba68125abfe61f56 (commit) via d94c001b358b1a947a61bafc10a18660bb5eef59 (commit) via 798066abd8e5ec2a411979fd34bfe0cd494c1813 (commit) via bdc8beb41b656e8071af275ef0e98c4f2d05e564 (commit) via 3315614d19a7fb409227298ead9b356bdbcca3bc (commit) via c40e31a1217f6ec9dd47e2e6806c2562096e31fe (commit) via 50ff67e6cf65dbe1b8fbbdb7a6c2e43919af95f4 (commit) via 35add35e85c21f02e3e5808273cb77b24069b0aa (commit) via 9c9f1b1f39f37ce75c2fc3c378aa059b67df2ea2 (commit) via 8114a5c51e6d07e3dfd243eee1cfad6e63cc52aa (commit) via e5a557ac01a775df64ae8149c5fe7d503f46a92f (commit) via d04ebfb8178e56bdcbf925ec0ed55cf14488e3fb (commit) via 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c (commit) via 3bbec4bd95396936f21dbb07b79d2b6286b4cfec (commit) via e5a1a79a4e0ee33292d45b10a759eb41f7358b7c (commit) via 62253a61473764b0d084b01eff06a93fb38bb2e3 (commit) via 3822612df0694cc07597e534fa73b34aa2540812 (commit) via a9158a863c18545634cb0f0462b326aeca30634c (commit) via 41077b6625d16cc6c0c4b404a177a8850300b8a0 (commit) via 9f0272f8548164b024ff9fd151686b2b904a5d59 (commit) via 02cf60c7a42710ee0364698c436b6ca5e771374b (commit) via c0b4cd465573f1772927cb3ad5d6e7d17af21622 (commit) via 6f2b77153170392f6b6c38367d7e5c4d007a9c49 (commit) via f8aecf3cc9a3c71a0fb9a8ddca8f131dde648276 (commit) via 548791769dc737f05cb12e5ee4190b7e853beac9 (commit) via 035801cebe9ffbdddb465b81ae514a465ce9c64c (commit) via c30391f893fd99e768c1a6282763ef553c45f1ff (commit) via 233a00833b984319d5e94db3f5d5d9a735edc984 (commit) via ca4e63310228df72ba47e5b29f4c275e62496dcf (commit) via b3d7a86748247a68c69939cdf9925d4a78448f2d (commit) via a0ea3a14dc6a6062c0c1f2bfbb7ad0373ec20843 (commit) via 9bff840e8cc560f5096a43609ed3e0d980733fd9 (commit) via ce12121b63145322b4961bbb2b94b939cb916ba7 (commit) via bd7ceb8d26e011ff3fd23402ec2587d7c374f090 (commit) via e54010f1aeb050cb9d65862a0afe9095a7a85f27 (commit) via 68811f8ff84895ef1cad37ac6947f1a340dd2ae2 (commit) via 795e3bb7de9ce2eb1ec3de3faf8f6bc925a58c9e (commit) via 3f52fdbcb599f76b4838020721ca6c9f1cc28f84 (commit) via e7f0831be837c00511573e4466a57cc0b8b097d4 (commit) via c1202057eb9161a86af27d867703235fee7b7555 (commit) via e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe (commit) via ee3711344b6e0cffeb237fa6889aab04853f9004 (commit) via bf227d6105cb3908cde816429c84569da12e829c (commit) via b05971a652c35ed72d3c95290e18d8f6e4ef6c46 (commit) via a5def729be2596496aec225e843903b25c672e01 (commit) via e6aded7c34054a2eea55ec56ca3b997ddd0197cf (commit) via 53b81c6de19a1f89e3c797631e72d05ba41444dc (commit) via c55b17b8098abde4ae7dfe0ec1f3b22a7fb0a34d (commit) via 6feda62721cd6e288f79b0ee5f1489fee8e570ab (commit) via 12400dcc0f3a4be8d1d165dc2b3a9f0bb9b579f0 (commit) via 789ce185ac3353ed5bc21dd8ea70a8094e4876d5 (commit) via 8dc433a0fb04f8fa37530d0788053dd9bea5c37d (commit) via b0319eaaf9d1f4e730c532058f2fff0b4e5ce682 (commit) via 9ab8741a48294e19d514721c710c81bba46db7f2 (commit) via 9ca1957fcb3c6904d9e5fb0a0e78d4b98f76b1b6 (commit) via e242fd1249ae85a97f08f95d5c61f4cbe3b906e0 (commit) via 7e96e219a4fc703282ea5b0cc8845a96c01ca030 (commit) via 2b0c8b019996b23fb4717687f5e7ac8c5620c089 (commit) via c369f8f0face23a06e0cf114bf70a024ba9b4959 (commit) via 947210e5690c61b395ccd887bc58bcb45ccd357b (commit) via 50a82723c446c556287dcabe22183bc5cedab566 (commit) via cf63b0162b6cbf74bdb056609d1ad777c6d48954 (commit) via 3d6c62048d8408fbfb6c66830e0c650e36259637 (commit) via 462cac5884ed4c38e6180b2e2769aaa5225e695b (commit) via 8c402d4151a18c735d1d23ddbe56957d65322064 (commit) via c93c0e7f3f21f809d9390e2e7096f7e2cb8334e2 (commit) via 56be6ea89cdf94078d5dff3734b8c1970dbf52fa (commit) via 3ae61bb67d62eb53d110835b8b7c3a289e6bce45 (commit) via 82b535931242b017a0929460e38c430178b0d72e (commit) via da9b5f7be7cb44e832972252dbaf53d242b0e099 (commit) via 6f2791d5de45a9490ba6844617feac038c8da8bd (commit) via eedc3f4f0a02c9774277bd1a34aab6ebdc32f797 (commit) via 26003a205e207db7985c32ec1964a04652b68413 (commit) via d272eb370a4c086a1d0f86a7a94e89328ec8d97e (commit) via 230d2906b9d1d009b22fd526181bf43e1084ed59 (commit) via a70b814420059e1f2de2130d532ddd7b2b2500fc (commit) via 3d6e9d2336c9ffcedb10f89631981a23dd518e8e (commit) via c5c10118216867e133c132b4f46e19fb6aa9258a (commit) via d970ee2bae1925bb9265d37adef0b92e2678d666 (commit) via 5f2a6b85105b51f2963aaeb1212c724cab678050 (commit) via 5a826ffff854ddcea96dbe9d9ef1592bb3a4ed12 (commit) via 48ab418ec75e8b1cbea3e1561de6ec634dad2bf3 (commit) via e392bad3ec99458369723e14ded8c23b5b13073c (commit) via dffaa15c481cea4081732d616334e24abc557fd1 (commit) via 07ffcfecac22d21774a110db0f65f0387c8f1102 (commit) via 5f60cccf9db8b5f4aa4303f8e4ccc246f723fbe5 (commit) via 4de283e4b5f21207fe12f99913d1f28d4f07843c (commit) via 5b9c07b2782fb9368f06c2561b7329c384ec5da0 (commit) via d55e5aa6b29906346c51ad00e6a9b112590aa294 (commit) via d128f9b8d41a1e0c38b52d0e752e65f6e5943927 (commit) via 4ef40579f9d4d89e59f6cc0923130e48e4309bbf (commit) via d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad (commit) via 0570503dd31bc20294e228339fcbdd39b19608cc (commit) via 227a9e65b91958cb414ade82c614717579d8849e (commit) via 699bd4cfa8895d0767d491a3e44ac09d3f4d1801 (commit) via dac43e327d002107f6bc9481749de039f410df73 (commit) via 2a61252965c91540133bece7deb92eb22e3cf929 (commit) via 43476f0b1b628352ad8e3064e50128cb3461d3d0 (commit) via 5776fca307b8af3d852525b77e9b917a9aa97370 (commit) via 8621b685bfdcb8773b8177fb2b89e45499902868 (commit) via 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696 (commit) via 1e58a4a4db997cf09315c22f3da725d1da7f9ee7 (commit) via 37eedb39824dc26c82a92b5515a352d7de0c9b5b (commit) via 73923d7eedc7ab52144308ef7e9c12cbe4341bca (commit) via fa9f5be6830e9245ee1ad1eab9725cc039d45d07 (commit) via 1201a264c8fd227737342345ab54e938295188b6 (commit) via e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8 (commit) via bec858ea4d0cef2d8be47b96669b803f73902014 (commit) via 66e85460855837af3a3b0224f7846c436cc7d1e0 (commit) via c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f (commit) via 82477cd28aac011c884d75a429d47a0523cbac26 (commit) via aae9718e4d4e8d01dcee22684e82b000203d3e52 (commit) via e9f8e3f109d57c119eaaa1e56378926f7f20863f (commit) via e691a46f7db8db7c126f06551e3cec47f875f512 (commit) via 403b0b61f6d4358aee8493cb1d11814e368942c9 (commit) via 1c6aafe894645ca1da5c0dd0661bca19caf37ad0 (commit) via 092da96ac4fc1bfa4c794320f538edb4e8d4fcfd (commit) via 4b24dd1acad5c133d12aab6a575c83269336e47f (commit) via 49149495dabc2ef54b7cd38a9346a8696b205da7 (commit) via 87f98bacb76001157d5a26555a41738ac3841a56 (commit) via 4c7c79dd9858438a25fcc37ba419baa00d31978d (commit) via d7df654955c2423190b05b2507caf624ce3d65bc (commit) via 8bdc16587e26100282094c8eaa8e83180ba57afd (commit) via c29705b71a8ec966478c0dc4712194a95291c6de (commit) via 05caa1d236440cd8967f8804be8dbcf27fb490b6 (commit) via 9d1447e09d4aa673826039321163b5a684e8e043 (commit) from 90309e60ba3d5ddd633266743104b390270be73d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 625ae1b6b5d4a9f805d97640ef99c897279324f7 Merge: 90309e6 680e1be Author: Stan Cox Date: Thu Jun 20 16:15:47 2019 -0400 Merge branch 'master' into scox/strace commit 680e1beed31da40080f61a35f6ccd626de818056 Author: Tom Tromey Date: Thu May 30 14:13:10 2019 -0600 Fix crash when setting breakpoint condition gdb could crash when setting a breakpoint condition on a breakpoint when using the Ada language. The problem occurred because the ada_evaluate_subexp would try to evaluate the array to compute its attributes, but evaluating can't really be done at this time. This patch fixes the problem by arranging not to try to evaluate in EVAL_AVOID_SIDE_EFFECTS mode when computing an attribute. Tested on x86-64 Fedora 29. Because this is Ada-specific, and because Joel approved it internally, I am checking it in. gdb/ChangeLog 2019-06-19 Tom Tromey * ada-lang.c (ada_evaluate_subexp) : Handle EVAL_AVOID_SIDE_EFFECTS specially. gdb/testsuite/ChangeLog 2019-06-19 Tom Tromey * gdb.ada/length_cond.exp: New file. * gdb.ada/length_cond/length_cond.adb: New file. * gdb.ada/length_cond/pck.adb: New file. * gdb.ada/length_cond/pck.ads: New file. commit dcf3792354ddcd6e10e59e32060e34b27246e7da Author: Tom Tromey Date: Tue Jun 18 12:18:24 2019 -0600 Instantiate a single source highlighter It occurred to me that there's no reason to make a new source highlighter each time gdb needs to highlight some source code. Instead, a single one can be created and then simply reused each time. This patch implements this idea. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-19 Tom Tromey * source-cache.c (highlighter): New global. (source_cache::get_source_lines): Create a highlighter on demand. commit 6f5601c4d0ad43254244f1b624900cdd5afd02ba Author: Alan Modra Date: Wed Jun 19 13:55:59 2019 +0930 PR24697, R_PPC_EMB_SDA21 relocation PR 24697 * elf32-ppc.c (ppc_elf_relocate_section): Don't read insn for R_PPC_EMB_RELSDA. Mask low bit of R_PPC_EMB_SDA21 r_offset. commit 4a4e7361d67cd9262be1413300795eede564f4cb Author: Alan Modra Date: Tue Jun 18 10:34:14 2019 +0930 PowerPC64 notoc calls Calls from functions that don't have a valid toc pointer in r2 (these calls are marked with _NOTOC relocs) to functions that require r2 valid must go via the callee global entry point. This patch corrects the condition the linker was using to detect functions that require r2 to be valid. Values of both zero and one in st_other local entry bits mean a function doesn't care about r2. * elf64-ppc.c (ppc64_elf_inline_plt): Correct st_other test for functions that require r2 valid to use local entry. (ppc64_elf_size_stubs, ppc64_elf_relocate_section): Likewise. commit 312413cb844dcce24b0c30254f5789b77a54b0fc Author: GDB Administrator Date: Wed Jun 19 00:00:31 2019 +0000 Automatic date update in version.in commit 494986d596a977e1d24f9f068696f5b3e993ebf7 Author: Andrew Burgess Date: Tue Jun 18 13:08:36 2019 +0100 gdb: Remove use of deprecated_interactive_hook The deprecated_interactive_hook is not used within GDB. It is used in gdbtk, however this patch removes that use: https://sourceware.org/ml/insight/2019-q2/msg00001.html So I think there is no longer a reason to keep this hook around. This patch removes it. There should be no user visible changes after this commit. gdb/ChangeLog: * defs.h (deprecated_interactive_hook): Delete declaration. * interps.c (clear_interpreter_hooks): Remove use of deprecated_interactive_hook. * top.c (deprecated_interactive_hook): Delete definition. * utils.c (maybe_quit): Remove use of deprecated_interactive_hook. commit 0ed4690a67e2c4703d9088312de652d0d5f1aaaf Author: Tom de Vries Date: Tue Jun 18 19:03:38 2019 +0200 [gdb/testsuite] Use -fuse-ld=gold in fission.exp The target board fission.exp requires the gold linker (because it supports --gdb-index). When running the target board on a system where the default linker is not gold, most tests will fail to compile. Fix this by adding "-fuse-ld=gold" ( supported in gcc since version 4.8). gdb/testsuite/ChangeLog: 2019-06-18 Tom de Vries * boards/fission.exp (debug_flags): Add "-fuse-ld=gold". commit 3360b6e7963e3c579e50078e78d226ea63e2960f Author: Tom de Vries Date: Tue Jun 18 18:59:51 2019 +0200 [gdb] Fix abstract_to_concrete type The test-case varval.exp fails here: ... FAIL: gdb.dwarf2/varval.exp: print varval2 ... with boards readnow/cc-with-gdb-index/cc-with-debug-names, as well as if gdb is build with -fsanitize=address -lasan. The problem is that the abstract_to_concrete map in which we track the association of abstract to concrete DIEs (for DW_OP_GNU_variable_value support) has type std::unordered_map>, and the die_info_ptrs that we register in the map may be invalid by the time that we start to lookup DIEs in the map. Fix this by using the sect_offset instead to identify the DIEs in the map. Build and tested on x86_64-linux. gdb/ChangeLog: 2019-06-18 Tom de Vries PR gdb/24515 * dwarf2read.h (abstract_to_concrete): Change type from std::unordered_map> to std::unordered_map>. * dwarf2read.c (read_variable): Update. (dwarf2_fetch_die_loc_sect_off): Update. commit 4ed4690fc21b1d052092299f820f48694f3ef3eb Author: Simon Marchi Date: Tue Jun 18 12:40:13 2019 -0400 doc: fix false claim about second argument to gdb Section "Invoking GDB" of the manual states that if you try to launch gdb with: gdb program 1234 it will try to attach to the process with id 1234, unless there is a file named 1234 in the current working directory, in which case it will try to open that file as a core. In fact, when the second argument starts with a digit, GDB tries to attach to process 1234 first, before trying to open file 1234 as a core. So that last remark is not true and therefore this patch removes it. The same remark is present in the man page, so it is removed there too. Section "Choosing Files" correctly states: If the second argument begins with a decimal digit, GDB will first attempt to attach to it as a process, and if that fails, attempt to open it as a corefile. so it is unchanged. Finally, the man page has an additional detail compared to section "Invoking GDB", regarding the use of the -p switch, so I added the same detail to the "Invoking GDB" section. gdb/doc/ChangeLog: * gdb.texinfo (Invoking GDB): Remove sentence about how GDB deals with a file that has the same name as the specified pid to attach to. Add example using -p option. (gdb man): Remove same sentence as in previous item. commit d20ed5fd574ce1b72543c2963fa53946eb2225de Author: Tom Tromey Date: Tue Jun 18 09:27:45 2019 -0600 Add comment to list0.h Pedro suggested adding a comment to list0.h to explain the control character. Tested on x86-64 Fedora 29. gdb/testsuite/ChangeLog 2019-06-18 Tom Tromey * gdb.base/list0.h: Add comment explaining control character. commit 86e04673b48d5f8121f28b7958cc5a0d9dd01132 Author: Tom de Vries Date: Tue Jun 18 08:52:16 2019 +0200 [gdb/testsuite] Break up long debug_flags line in fission.exp gdb/testsuite/ChangeLog: 2019-06-18 Tom de Vries * boards/fission.exp: Break up long debug_flags line. commit 5bb4fed3d48e4637015a89e40672c938c7f61e72 Author: GDB Administrator Date: Tue Jun 18 00:00:13 2019 +0000 Automatic date update in version.in commit 310b3441a07cb07713a8065a39032504e098047b Author: Tom de Vries Date: Mon Jun 17 22:25:06 2019 +0200 [gdb] Fix heap-buffer-overflow in child_path When compiling gdb with '-lasan -fsanitizer=address' and running tests with: - export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0", and - a target board using local-board.exp, which sets sysroot to "" we run into a heap-buffer-overflow in child_path for f.i. gdb.arch/amd64-byte: ... ==3997==ERROR: AddressSanitizer: heap-buffer-overflow on address \ 0x60200002abcf at pc 0x5602acdf6872 bp 0x7ffe5237a090 sp 0x7ffe5237a080 READ of size 1 at 0x60200002abcf thread T0 #0 0x5602acdf6871 in child_path(char const*, char const*) \ gdb/common/pathstuff.c:161 #1 0x5602adb06587 in find_separate_debug_file gdb/symfile.c:1483 #2 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \ gdb/symfile.c:1563 #3 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293 #4 0x5602adb01cfa in read_symbols gdb/symfile.c:798 #5 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000 #6 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017 #7 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124 #8 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/symfile.c:1204 #9 0x5602ada5a78d in solib_read_symbols(...) gdb/solib.c:695 #10 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004 #11 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394 #12 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028 #13 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215 #14 0x5602ad347f66 in post_create_inferior(target_ops*, int) \ gdb/infcmd.c:467 #15 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663 #16 0x5602ad348e55 in run_command gdb/infcmd.c:686 #17 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106 #18 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \ gdb/cli/cli-decode.c:1892 #19 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630 #20 0x5602ad5053e6 in catch_command_errors gdb/main.c:372 #21 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138 #22 0x5602ad5081ec in captured_main gdb/main.c:1163 #23 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188 #24 0x5602ac9ddc3a in main gdb/gdb.c:32 #25 0x7f582b56eb96 in __libc_start_main \ (/lib/x86_64-linux-gnu/libc.so.6+0x21b96) #26 0x5602ac9dda09 in _start \ (/home/smarchi/build/binutils-gdb/gdb/gdb+0x19a2a09) 0x60200002abcf is located 1 bytes to the left of 1-byte region \ [0x60200002abd0,0x60200002abd1) allocated by thread T0 here: #0 0x7f582e0e4b50 in __interceptor_malloc \ (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50) #1 0x5602acdd3656 in xmalloc gdb/common/common-utils.c:44 #2 0x5602aefe17d1 in xstrdup libiberty/xstrdup.c:34 #3 0x5602acdf61f6 in gdb_realpath(char const*) gdb/common/pathstuff.c:80 #4 0x5602adb06278 in find_separate_debug_file gdb/symfile.c:1444 #5 0x5602adb06f2f in find_separate_debug_file_by_debuglink[abi:cxx11](...) \ gdb/symfile.c:1563 #6 0x5602ad13b743 in elf_symfile_read gdb/elfread.c:1293 #7 0x5602adb01cfa in read_symbols gdb/symfile.c:798 #8 0x5602adb03769 in syms_from_objfile_1 gdb/symfile.c:1000 #9 0x5602adb039d0 in syms_from_objfile gdb/symfile.c:1017 #10 0x5602adb04551 in symbol_file_add_with_addrs gdb/symfile.c:1124 #11 0x5602adb04ebf in symbol_file_add_from_bfd(...) gdb/solib.c:695 #13 0x5602ada5bdae in solib_add(char const*, int, int) gdb/solib.c:1004 #14 0x5602ada49bcd in enable_break gdb/solib-svr4.c:2394 #15 0x5602ada4dae9 in svr4_solib_create_inferior_hook gdb/solib-svr4.c:3028 #16 0x5602ada5d4f1 in solib_create_inferior_hook(int) gdb/solib.c:1215 #17 0x5602ad347f66 in post_create_inferior(target_ops*, int) \ gdb/infcmd.c:467 #18 0x5602ad348b3c in run_command_1 gdb/infcmd.c:663 #19 0x5602ad348e55 in run_command gdb/infcmd.c:686 #20 0x5602acd7d32b in do_const_cfunc gdb/cli/cli-decode.c:106 #21 0x5602acd84bfe in cmd_func(cmd_list_element*, char const*, int) \ gdb/cli/cli-decode.c:1892 #22 0x5602adc62a90 in execute_command(char const*, int) gdb/top.c:630 #23 0x5602ad5053e6 in catch_command_errors gdb/main.c:372 #24 0x5602ad507eb1 in captured_main_1 gdb/main.c:1138 #25 0x5602ad5081ec in captured_main gdb/main.c:1163 #26 0x5602ad508281 in gdb_main(captured_main_args*) gdb/main.c:1188 #27 0x5602ac9ddc3a in main gdb/gdb.c:32 #28 0x7f582b56eb96 in __libc_start_main \ (/lib/x86_64-linux-gnu/libc.so.6+0x21b96) SUMMARY: AddressSanitizer: heap-buffer-overflow gdb/common/pathstuff.c:161 \ in child_path(char const*, char const*) Shadow bytes around the buggy address: 0x0c047fffd520: fa fa fd fd fa fa fd fd fa fa fd fa fa fa fd fa 0x0c047fffd530: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fffd540: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fffd550: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fa 0x0c047fffd560: fa fa fd fa fa fa fd fa fa fa fd fa fa fa 00 00 =>0x0c047fffd570: fa fa 07 fa fa fa 00 fa fa[fa]01 fa fa fa fa fa 0x0c047fffd580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fffd590: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fffd5a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fffd5b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fffd5c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==3997==ABORTING ... The direct cause is that child_path gets called with parent == "", so this test: ... if (IS_DIR_SEPARATOR (parent[parent_len - 1])) ... accesses parent[-1]. [ There is an open discussion (1) about whether an empty sysroot should indeed be represented internally as "". But this patch focuses on fixing the heap-buffer-overflow without any redesign. ] Fix this by guarding the test with 'parent_len > 0'. Note that the fix makes child_path behave the same for: - parent == "/" && child == "/foo" (returns "foo") - parent == "" and child == "/foo" (returns "foo"). Build and reg-tested on x86_64-linux. (1) https://sourceware.org/ml/gdb-patches/2019-05/msg00193.html gdb/ChangeLog: 2019-06-17 Tom de Vries PR gdb/24617 * common/pathstuff.c (child_path): Make sure parent_len > 0 before accessing parent[parent_len - 1]. commit ba9777bef059df0926ad5dd6813d5785cb652ccf Author: Paul Pluzhnikov Date: Mon Jun 17 10:49:15 2019 -0700 PR gdb/24364: Don't call dtrace_process_dof with NULL dof. commit 6e1c90b7f5d60aedc547dd84873d1c9291eefcdc Author: H.J. Lu Date: Mon Jun 17 10:20:04 2019 -0700 i386: Check vector length for vshufXXX/vinsertXXX/vextractXXX Since not all vector lengths are supported by vshufXXX, vinsertXXX and vextractXXX, decode them only with supported vector lengths. gas/ PR binutils/24691 * testsuite/gas/i386/disassem.s: Add test for vshuff32x4 with invalid vector length. * testsuite/gas/i386/x86-64-disassem.s: Likewise. * testsuite/gas/i386/disassem.d: Updated. * testsuite/gas/i386/x86-64-disassem.d: Likewise. opcodes/ PR binutils/24691 * i386-dis-evex.h (evex_table): Update EVEX_W_0F3A23_P_2, EVEX_W_0F3A38_P_2, EVEX_W_0F3A39_P_2, EVEX_W_0F3A3A_P_2, EVEX_W_0F3A3B_P_2 and EVEX_W_0F3A43_P_2. (evex_len_table): Add EVEX_LEN_0F3A23_P_2_W_0, EVEX_LEN_0F3A23_P_2_W_1, EVEX_LEN_0F3A38_P_2_W_0, EVEX_LEN_0F3A38_P_2_W_1, EVEX_LEN_0F3A39_P_2_W_0, EVEX_LEN_0F3A39_P_2_W_1, EVEX_LEN_0F3A3A_P_2_W_0, EVEX_LEN_0F3A3A_P_2_W_1, EVEX_LEN_0F3A3B_P_2_W_0, EVEX_LEN_0F3A3B_P_2_W_1, EVEX_LEN_0F3A43_P_2_W_0 and EVEX_LEN_0F3A43_P_2_W_1. * i386-dis.c (EVEX_LEN_0F3A23_P_2_W_0): New enum. (EVEX_LEN_0F3A23_P_2_W_1): Likewise. (EVEX_LEN_0F3A38_P_2_W_0): Likewise. (EVEX_LEN_0F3A38_P_2_W_1): Likewise. (EVEX_LEN_0F3A39_P_2_W_0): Likewise. (EVEX_LEN_0F3A39_P_2_W_1): Likewise. (EVEX_LEN_0F3A3A_P_2_W_0): Likewise. (EVEX_LEN_0F3A3A_P_2_W_1): Likewise. (EVEX_LEN_0F3A3B_P_2_W_0): Likewise. (EVEX_LEN_0F3A3B_P_2_W_1): Likewise. (EVEX_LEN_0F3A43_P_2_W_0): Likewise. (EVEX_LEN_0F3A43_P_2_W_1): Likewise. commit 39c05d9435893ed0b51c4b5c8e95fe977b983921 Author: Szabolcs Nagy Date: Mon Jun 10 16:40:54 2019 +0100 aarch64: remove unnecessary loc_hash_table traversal The loc_hash_table should only contain local ifunc symbols. The current code already aborts if there is anything else and for defined ifunc symbols elfNN_aarch64_allocate_dynrelocs is a no-op. bfd/ChangeLog: * elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove. (elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal with elfNN_aarch64_allocate_local_dynrelocs. commit 08bb0061ba5c8826c1ec4d273d539cb32b5c217e Author: GDB Administrator Date: Mon Jun 17 00:00:13 2019 +0000 Automatic date update in version.in commit 2b9f6e89d67b342593734d14f328625848fa5156 Author: Tom de Vries Date: Sun Jun 16 23:57:17 2019 +0200 [gdb/contrib] Fix gdb/contrib/gdb-add-index.sh for dwz-m-ed execs Atm gdb-add-index.exp fails with target board cc-with-dwz-m. Fix this by updating gdb/contrib/gdb-add-index.sh to handle a dwz-m-ed executable. Tested on x86_64-linux. gdb/ChangeLog: 2019-06-16 Tom de Vries PR gdb/24445 * contrib/gdb-add-index.sh: Update to handle dwz-m-ed executable. commit 431b3eadc4f842231d404e7e995ae5c1dbd28414 Author: Tom Tromey Date: Sun Jun 16 14:10:25 2019 -0600 Don't cast a tui_win_info directly to tui_gen_win_info I found a few spots that directly cast a tui_win_info to a tui_gen_win_info. However, I think it's a bit better here to take the address of the "generic" member. As far as I know, nothing relies on being able to downcast here, so this gives us the freedom to rearrange the structure. gdb/ChangeLog 2019-06-16 Tom Tromey * tui/tui-wingeneral.c (tui_unhighlight_win, tui_highlight_win) (make_all_visible): Use address of member. commit d04b44a16cdfde95de487bcedd541c6e71d82676 Author: Tom Tromey Date: Sun Jun 16 13:48:21 2019 -0600 Remove more unnecessary casts of NULL I found a few more spots that unnecessarily cast NULL to a pointer type. My earlier search included a "*" in the cast, but these use a typedef to a pointer type instead. This patch removes these casts. gdb/ChangeLog 2019-06-16 Tom Tromey * tui/tui-data.c (tui_clear_win_detail, init_win_info) (tui_free_window, free_content, free_content_elements): Remove unnecessary cast. * tui/tui-windata.c (tui_display_all_data): Remove unnecessary cast. * tui/tui-regs.c (tui_show_register_group) (tui_display_registers_from, tui_display_reg_element_at_line): Remove unnecessary cast. commit bf5142e7fef4e2eca5d98cf805dbadc737118c1e Author: Andrew Burgess Date: Sun Jun 16 17:34:22 2019 +0100 gdb: Remove unused signal mask In the following commit: commit 7feb7d068ae65557ede03c36468ebac61b0939ca Date: Mon May 11 12:08:03 2009 +0000 The last useful uses of normal_mask in linux-nat.c were removed, since then this variable has sat around being initialised, but never used. There should be no user visible changes after this commit. gdb/ChangeLog: * linux-nat.c (normal_mask): Delete. (_initialize_linux_nat): Don't initialise normal_mask. commit c4973306879b6079bdfc997474a2cbbd89f49bd2 Author: Simon Marchi Date: Sun Jun 16 10:13:56 2019 -0400 Write index for dwz -m file PR 24445 ("dwz multifile index not written to index cache") exposed the fact that we are not doing things right when we generate an index for an object file that has is linked to a dwz file. The same happens whether the index is generated with the intent of populating the index cache or using the save gdb-index command. The problem can be observed when running these tests with the cc-with-dwz-m board: FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats FAIL: gdb.dwarf2/gdb-index.exp: index used FAIL: gdb.dwarf2/gdb-index.exp: index used after symbol reloading When generating the index for such file and inspecting the CU list of the resulting index (with readelf --debug-dump=gdb_index), we can see something like: CU table: [ 0] 0x0 - 0xb9 [ 1] 0x0 - 0x44 This is supposed to be a sorted list of the ranges of all CUs in the file this index represents, so already having some overlap is a red flag. It turns out that we save the ranges of CUs coming from both the main file and the dwz file in the same index. After digging a little bit, it became quite obvious that the index in the main file should only list the CUs present in the main file, and a separate index should be generated for the dwz file, listing the CUs present in that file. First, that's what happens if you run dwz on a file that already has a GDB index embedded. Second, dwarf2read.c has code to read an index from a dwz file. The index in the dwz file is actually required to be present, if the main file has an index. So this patch changes write_psymtabs_to_index to generate an index for the dwz file, if present. That index only contains a CU list, just like what the dwz tool does when processing a file that already contains an index. Some notes about the implementation: - The file management (creating a temp file, make sure it's close/removed on error - in the right order) is a bit heavy in write_psymtabs_to_index, and I needed to add a third file. I factored this pattern in a separate class, index_wip_file. - It became a bit tedious to keep the call to assert_file_size in write_psymtabs_to_index, write_gdbindex would have had to return two sizes. Instead, I moved the calls to assert_file_size where the file is written. The downside is that we lose the filename at this point, but it was only used for the very improbable case of ftell failing, so I think it's not a problem. - The actual writing of the index file is factored out to write_gdbindex_1, so it can be re-used for both index files. - While the "save gdb-index" command will now write two .gdb-index files, this patch does not update the gdb-add-index.sh script, this will come in a later patch. gdb/ChangeLog: YYYY-MM-DD Simon Marchi PR gdb/24445 * dwarf-index-write.h (write_psymtabs_to_index): Add dwz_basename parameter. * dwarf-index-write.c (write_gdbindex): Move file writing to write_gdbindex_1. Change return type void. (assert_file_size): Move up, remove filename parameter. (write_gdbindex_1): New function. (write_debug_names): Change return type to void, call assert_file_size. (struct index_wip_file): New struct. (write_psymtabs_to_index): Add dwz_basename parameter. Move file logic to index_wip_file. Write index for dwz file if needed. (save_gdb_index_command): Pass basename of dwz file, if present. * dwarf-index-cache.c (index_cache::store): Obtain and pass build-id of dwz file, if present. * dwarf2read.c (struct dwz_file): Move to dwarf2read.h. (dwarf2_get_dwz_file): Likewise. * dwarf2read.h (struct dwz_file): Move from dwarf2read.c. (dwarf2_get_dwz_file): Likewise. gdb/testsuite/ChangeLog: YYYY-MM-DD Tom de Vries PR gdb/24445 * gdb.dwarf2/gdb-index.exp (add_gdb_index): Update dwz file with generated index. commit 395f9c911460b3e868c0b700e831c7f92746fad7 Author: Tom Tromey Date: Sun Jun 16 10:00:52 2019 -0600 Replace uses of concat with xstrdup I noticed a couple of spots using concat that could use xstrdup instead. This patch fixes these. gdb/ChangeLog 2019-06-16 Tom Tromey * coffread.c (process_coff_symbol): Use xstrdup. * value.c (create_internalvar): Use xstrdup. commit cafb34387d063fa47bc2cdb33fc3fe2f13e6cec0 Author: Tom Tromey Date: Sun Jun 16 09:56:35 2019 -0600 Remove unnecessary casts of NULL I noticed some unnecessary casts of NULL. This removes all the unnecessary ones, leaving only ones where we must ensure that NULL has pointer type for passing through varargs. I removed a couple of useless casts of 0 that I noticed while writing this. Tested by rebuilding. gdb/ChangeLog 2019-06-16 Tom Tromey * valops.c (value_cast, value_slice): Remove unnecessary cast. * breakpoint.c (stopin_command, stopat_command) (until_break_command, decode_location_default): Remove unnecessary cast. * utils.c (subset_compare): Remove unnecessary cast. * ada-lang.c (ada_update_initial_language): Remove unnecessary cast. * linespec.c (decode_line_with_last_displayed): Remove unnecessary cast. * infcmd.c (path_command): Remove unnecessary cast. * coffread.c (decode_type): Remove unnecessary cast. * xcoffread.c (read_xcoff_symtab): Remove unnecessary cast. * mipsread.c (mipscoff_symfile_read): Remove unnecessary cast. * tui/tui-stack.c (tui_show_locator_content) (tui_show_frame_info): Remove unnecessary cast. * tui/tui-win.c (tui_scroll_forward_command) (tui_scroll_backward_command, tui_set_focus, tui_set_win_height) (parse_scrolling_args): Remove unnecessary cast. * tui/tui-data.c (init_win_info, tui_del_window) (tui_free_window, tui_del_data_windows, tui_free_data_content) (free_content_elements): Remove unnecessary cast. * tui/tui-windata.c (tui_first_data_item_displayed): Remove unnecessary cast. * tui/tui-source.c (tui_set_source_content) (tui_vertical_source_scroll): Remove unnecessary cast. * tui/tui-layout.c (tui_default_win_height): Remove unnecessary cast. * tui/tui-io.c (tui_initialize_io): Remove unnecessary cast. * tui/tui-regs.c (tui_display_registers_from) (tui_display_register): Remove unnecessary cast. * tui/tui-wingeneral.c (tui_refresh_win, tui_delete_win) (tui_unhighlight_win, tui_highlight_win, tui_make_window) (make_visible): Remove unnecessary cast. * tui/tui-winsource.c (tui_erase_source_content) (tui_update_breakpoint_info, tui_set_exec_info_content): Remove unnecessary cast. * ax-gdb.c (agent_command_1): Remove unnecessary cast. * cli/cli-setshow.c (cmd_show_list): Remove unnecessary cast. * stabsread.c (read_type, read_array_type, read_range_type): Remove unnecessary cast. * mdebugread.c (mdebug_build_psymtabs): Remove unnecessary cast. (parse_symbol, parse_type, upgrade_type, parse_external) (parse_partial_symbols, psymtab_to_symtab_1, cross_ref): Remove unnecessary cast. * gdb_bfd.c (gdb_bfd_map_section): Remove unnecessary cast. commit 93cb9841d68263174a600dc70af742a8e2eabfc6 Author: Andrew Burgess Date: Sun Jun 16 16:17:59 2019 +0100 gdb/testsuite: Improve detection of bug gdb/24541 In bug gdb/24686 a testsuite failure was reported, this failure was actually just another instance of bug gdb/24541, however, due to the non-deterministic nature of bug gdb/24541 the testsuite pattern that was intended to catch this bug failed. This commit adds a second pattern to help detect gdb/24541, which should change the FAIL reported in gdb/24686 into a KFAIL. gdb/testsuite/ChangeLog: PR gdb/24686 * gdb.mi/mi-catch-cpp-exceptions.exp: Add an extra pattern to improve detection of bug gdb/24541. commit 730ead81dfffc181f79a4b79ba8abf6850e63596 Author: Tom Tromey Date: Sat Jun 15 16:06:27 2019 -0600 Remove some NULL checks from the TUI I found a few spots in the TUI that were NULL-checking the result of XNEW. This cannot return NULL, so this patch removes the checks. gdb/ChangeLog 2019-06-16 Tom Tromey * tui/tui-data.c (tui_alloc_generic_win_info) (tui_alloc_win_info, tui_add_content_elements): Remove NULL checks. commit e79be6e5f33d52b2bbb6aafdc61659a4bbb55849 Author: Simon Marchi Date: Sun Jun 16 10:00:39 2019 -0400 Fix some whitespace issues in gdb ChangeLogs commit 399aaebd1a5e9e3971758396bd0c5c3ec5ae2386 Author: Simon Marchi Date: Sun Jun 16 09:07:16 2019 -0400 Make gdb.base/index-cache.exp work with readnow board (PR 24669) The gdb.base/index-cache.exp test fails with the readnow board: $ make check TESTS="gdb.base/index-cache.exp" RUNTESTFLAGS="--target_board=readnow" FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: at least one file was created FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: expected file is there FAIL: gdb.base/index-cache.exp: test_cache_enabled_miss: check index-cache stats FAIL: gdb.base/index-cache.exp: test_cache_enabled_hit: check index-cache stats The problem is similar to what was fixed in 5a56d6a65f84 ("[gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names}") In that commit, gdb.base/index-cache.exp was modified to account for the fact that the index cache is not used when the binary already has an embedded index. The same situation happens when GDB is started with the -readnow flag: it bypasses indices and partial symbols. So this patch updates the test to also expect the index cache not to be used if -readnow is present in $GDBFLAGS, gdb/testsuite/ChangeLog: PR gdb/24669 * gdb.base/index-cache.exp (uses_readnow, expecting_index_cache_use): Define global variable. (test_cache_enabled_miss, test_cache_enabled_hit): Use expecting_index_cache_use. commit 6ac6a19371b72f848626666af5301612b76e800e Author: GDB Administrator Date: Sun Jun 16 00:01:04 2019 +0000 Automatic date update in version.in commit 584a927c5ad0d18e9995a0049066b6c503bb7482 Author: Andrew Burgess Date: Fri Mar 1 11:12:33 2019 +0000 gdb/fortran: Show the type for non allocated / associated types Show the type of not-allocated and/or not-associated types. For array types and pointer to array types we are going to print the number of ranks. Consider this Fortran program: program test integer, allocatable :: vla (:) logical l allocate (vla(5:12)) l = allocated (vla) end program test And this GDB session with current HEAD: (gdb) start ... 2 integer, allocatable :: vla (:) (gdb) n 4 allocate (vla(5:12)) (gdb) ptype vla type = (gdb) p vla $1 = (gdb) And the same session with this patch applied: (gdb) start ... 2 integer, allocatable :: vla (:) (gdb) n 4 allocate (vla(5:12)) (gdb) ptype vla type = integer(kind=4), allocatable (:) (gdb) p vla $1 = (gdb) The type of 'vla' is now printed correctly, while the value itself still shows as ''. How GDB prints the type of associated pointers has changed in a similar way. gdb/ChangeLog: * f-typeprint.c (f_print_type): Don't return early for not associated or not allocated types. (f_type_print_varspec_suffix): Add print_rank parameter and print ranks of array types in case they dangling. (f_type_print_base): Add print_rank parameter. gdb/testsuite/ChangeLog: * gdb.fortran/pointers.f90: New file. * gdb.fortran/print_type.exp: New file. * gdb.fortran/vla-ptype.exp: Adapt expected results. * gdb.fortran/vla-type.exp: Likewise. * gdb.fortran/vla-value.exp: Likewise. * gdb.mi/mi-vla-fortran.exp: Likewise. commit 30056ea04ae3ecd828e2a06e12e6f174ae6659c9 Author: Andrew Burgess Date: Wed May 8 19:01:36 2019 +0100 gdb/mi: New commands to catch C++ exceptions Adds some MI commands to catch C++ exceptions. The new commands are -catch-throw, -catch-rethrow, and -catch-catch, these all correspond to the CLI commands 'catch throw', 'catch rethrow', and 'catch catch'. Each MI command takes two optional arguments, '-t' has the effect of calling 'tcatch' instead of 'catch', for example: (gdb) -catch-throw -t Is the same as: (gdb) tcatch throw There is also a '-r REGEXP' argument that can supply a regexp to match against the exception type, so: (gdb) -catch-catch -r PATTERN Is the same as: (gdb) catch catch PATTERN The change in print_mention_exception_catchpoint might seem a little strange; changing the output from using ui_out::field_int and ui_out::text to using ui_out::message. The print_mention_exception_catchpoint is used as the 'print_mention' method for the exception catchpoint breakpoint object. Most of the other 'print_mention' methods (see breakpoint.c) use either printf_filtered, of ui_out::message. Using field_int was causing an unexpected field to be added to the MI output. Here's the output without the change in print_mention_exception_catchpoint: (gdb) -catch-throw ^done,bkptno="1",bkpt={number="1",type="breakpoint",disp="keep", enabled="y",addr="0x00000000004006c0", what="exception throw",catch-type="throw", thread-groups=["i1"],times="0"} Notice the breakpoint number appears in both the 'bkptno' field, and the 'number' field within the 'bkpt' tuple. Here's the output with the change in print_mention_exception_catchpoint: (gdb) -catch-throw ^done,bkpt={number="1",type="breakpoint",disp="keep", enabled="y",addr="0x00000000004006c0", what="exception throw",catch-type="throw", thread-groups=["i1"],times="0"} gdb/ChangeLog: * NEWS: Mention new MI commands. * break-catch-throw.c (enum exception_event_kind): Move to breakpoint.h. (print_mention_exception_catchpoint): Output text as a single message. (catch_exception_command_1): Rename to... (catch_exception_event): ...this, make non-static, update header command, and change some parameter types. (catch_catch_command): Update for changes to catch_exception_command_1. (catch_throw_command): Likewise. (catch_rethrow_command): Likewise. * breakpoint.c (enum exception_event_kind): Delete. * breakpoint.h (enum exception_event_kind): Moved here from break-catch-throw.c. (catch_exception_event): Declare. * mi/mi-cmd-catch.c (mi_cmd_catch_exception_event): New function. (mi_cmd_catch_throw): New function. (mi_cmd_catch_rethrow): New function. (mi_cmd_catch_catch): New function. * mi/mi-cmds.c (mi_cmds): Add 'catch-throw', 'catch-rethrow', and 'catch-catch' entries. * mi/mi-cmds.h (mi_cmd_catch_throw): Declare. (mi_cmd_catch_rethrow): Declare. (mi_cmd_catch_catch): Declare. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Catchpoint Commands): Add menu entry to new node. (C++ Exception GDB/MI Catchpoint Commands): New node to describe new MI commands. gdb/testsuite/ChangeLog: * gdb.mi/mi-catch-cpp-exceptions.cc: New file. * gdb.mi/mi-catch-cpp-exceptions.exp: New file. * lib/mi-support.exp (mi_expect_stop): Handle 'exception-caught' as a stop reason. commit ec8e2b6d3051f0b4b2a8eee9917898e95046c62f Author: Andrew Burgess Date: Fri Jun 14 23:43:00 2019 +0100 gdb: Don't allow annotations to influence what else GDB prints The annotations should be additional information printed by GDB to be consumed by users (GUIs), but GDB shouldn't reduce what it prints based on whether annotations are on or not. However, this is what happens for annotate_source_line. This commit makes annotate_source_line a void function that simply outputs the annotation information, GDB will then print the contents of the source line to the terminal in the normal way. Some tests needed to be updated after this commit. gdb/ChangeLog: * annotate.c (annotate_source_line): Change return type to void, update implementation to match. * annotate.h (annotate_source_line): Change return type to void, update header comment. * stack.c (print_frame_info): Don't change what frame information is printed based on whether annotations are on or not. gdb/testsuite/ChangeLog: * gdb.base/annota1.exp: Update expected results. * gdb.cp/annota2.exp: Likewise. * gdb.cp/annota3.exp: Likewise. commit 0d3abd8cc936360f8c46502135edd2e646473438 Author: Andrew Burgess Date: Wed Jun 12 22:34:26 2019 +0100 gdb: Remove an update of current_source_line and current_source_symtab While reviewing some of the annotation code I noticed that identify_source_line (in source.c) sets current_source_line, current_source_symtab, and also calls clear_lines_listed_range. This seems a little strange, identify_source_line is really a wrapper around annotate_source, and is only called when annotation_level is greater than 0 (so annotations are turned on). It seems weird (to me) that when annotations are on we update GDB's idea of the "current" line/symtab, but when they are off we don't, given that annotations are really about communicating GDB's state to a user (GUI) and surely shouldn't be changing GDB's behaviour. This commit removes from identify_source_line all of the setting of current line/symtab and the call to clear_lines_listed_range, after doing this GDB still passes all tests, so I don't believe these lines were actually required. With this code removed identify_source_line is only a wrapper around annotate_source, so I moved identify_source_line to annotate.c and renamed it to annotate_source_line. gdb/ChangeLog: * annotate.c: Add 'source.h' and 'objfiles.h' includes. (annotate_source): Make static. (annotate_source_line): Moved from source.c and renamed from identify_source_line. Update the return type. * annotate.h (annotate_source): Delete declaration. (annotate_source_line): Declaration moved from source.h, and renamed from identify_source_line. Return type updated. * source.c (identify_source_line): Moved to annotate.c and renamed to annotate_source_line. (info_line_command): Remove check of annotation_level. * source.h (identify_source_line): Move declaration to annotate.h and rename to annotate_source_line. * stack.c: Add 'annotate.h' include. (print_frame_info): Remove check of annotation_level before calling annotate_source_line. commit 00df30ae1ea6db8f3693cad8a499f55f1d66e913 Author: Andrew Burgess Date: Fri Jun 14 22:16:52 2019 +0100 gdb: New function to open source file and compute line charpos data Every place that a symtab's line_charpos data is loaded always follows the same pattern, so create a new function to contain this logic and make use of it throughout GDB. There should be no user visible changes after this commit. gdb/ChangeLog: * source-cache.c (source_cache::get_plain_source_lines): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. (source_cache::get_source_lines): Likewise. * source.c (find_source_lines): Make static. (get_filename_and_charpos): Renamed into... (open_source_file_with_line_charpos): ..this along with changes to return a scoped_fd, and some other minor clean ups. (identify_source_line): Use open_source_file_with_line_charpos. (search_command_helper): Use open_source_file_with_line_charpos instead of just open_source_file, remove call to find_source_lines. * source.h (open_source_file_with_line_charpos): Declare new function. (find_source_lines): Delete declaration. commit afda45a206f83389782a400f86668714400a1cb7 Author: Andrew Burgess Date: Fri Jun 14 21:57:42 2019 +0100 gdb: Remove unused parameter The parameter 'fullname' is always passed as NULL to the function get_filename_and_charpos in source.c, so lets remove the parameter. There should be no user visible changes after this commit. gdb/ChangeLog: * source.c (get_filename_and_charpos): Remove fullname parameter. (identify_source_line): Update call to get_filename_and_charpos. commit 09e4c4e1f1732ed978db4b8c75877bf8a8097ae9 Author: Andrew Burgess Date: Fri Jun 14 23:31:10 2019 +0100 gdb: Remove file path from test name Having paths in test names makes comparing sum files difficult, rename a test to avoid paths in test names. gdb/testsuite/ChangeLog: * gdb.base/style-logging.exp: Remove path from test name. commit 49455d8bbd8eac5b7ce7e26c691af27998647584 Author: GDB Administrator Date: Sat Jun 15 00:00:41 2019 +0000 Automatic date update in version.in commit 0735b091aba72d4b35aebb671a02c5cb4a837fe9 Author: Tom Tromey Date: Tue Apr 30 11:17:15 2019 -0600 Do not emit style escape sequences to log file PR gdb/24502 requests that the "set logging" log file not contain style escape sequences emitted by gdb. This seemed like a reasonable request to me, so this patch implements filtering for the log file. This also updates a comment in ui-style.h that I noticed while writing the patch. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey PR gdb/24502: * ui-style.h (skip_ansi_escape): Update comment. * ui-file.h (class no_terminal_escape_file): New class. * ui-file.c (no_terminal_escape_file::write) (no_terminal_escape_file::puts): New methods. * cli/cli-logging.c (handle_redirections): Use no_terminal_escape_file. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey PR gdb/24502: * gdb.base/style-logging.exp: New file. commit 52ce35e2894e55cea94011dda6443be51e154f37 Author: Tom Tromey Date: Fri Jun 14 12:30:17 2019 -0600 Minor NEWS rearrangement I noticed that a NEWS item about Python scripting changes appeared between an item about a convenience function and an item about a convenience variable. I think it's better for the latter to be next to each other. gdb/ChangeLog 2019-06-14 Tom Tromey * NEWS: Move convenience variable news above Python news. commit 73cc72729a184f00bf6fc4d74684a8516ba6b683 Author: Tom Tromey Date: Sun May 5 17:35:20 2019 -0600 Move gnulib to top level This patch moves the gdb/gnulib subdirectory to the top level. It adjusts the top-level build system to build gnulib when necessary, and changes gdb to use this. However, gdbserver still builds its own copy of gnulib, just from the new source location. A small hack was needed to ensure that gnulib is only built when gdb is enabled. The Makefile only provides an ordering -- the directory must be mentioned in configdirs to actually be compiled at all. Most of the patch is just a "git mv" of gnulib, though a few minor path adjustments were needed in some files there. Tested by the buildbot. ChangeLog 2019-06-14 Tom Tromey * MAINTAINERS: Add gnulib. * gnulib: New directory, move from gdb/gnulib. * configure.ac (host_libs): Add gnulib. * configure: Rebuild. * Makefile.def (host_modules, dependencies): Add gnulib. * Makefile.in: Rebuild. gdb/ChangeLog 2019-06-14 Tom Tromey * gnulib: Move directory to top-level. * configure.ac: Don't configure gnulib. * configure: Rebuild. * common/common-defs.h: Use new path to gnulib. * Makefile.in (GNULIB_BUILDDIR): Now ../gnulib. (GNULIB_H): Remove. (INCGNU): Look in new gnulib location. (HFILES_NO_SRCDIR): Remove gnulib files. (SUBDIR, REQUIRED_SUBDIRS): Remove gnulib. (generated_files): Remove GNULIB_H. ($(LIBGNU), all-lib): Remove targets. (distclean): Don't mention GNULIB_BUILDDIR. ($(GNULIB_BUILDDIR)/Makefile): Remove target. gdb/gdbserver/ChangeLog 2019-06-14 Tom Tromey * configure.ac: Use new path to gnulib. * configure: Rebuild. * Makefile.in (INCGNU, $(GNULIB_BUILDDIR)/Makefile): Use new path to gnulib. gnulib/ChangeLog 2019-06-14 Tom Tromey * update-gnulib.sh: Adjust paths. * Makefile.in: Adjust paths. * configure.ac: Adjust paths. Use ACX_LARGEFILE. * configure: Rebuild. commit f568655424ad268c8c5df3f56e4e19a86b16623d Author: Tom Tromey Date: Tue Jun 4 13:35:44 2019 -0600 Warn if add-symbol-file does not provide any symbols A user suggested that add-symbol-file ought to warn if the file does not in fact provide any symbols. This seemed like a decent idea, so this patch implements this idea. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey * symfile.c (add_symbol_file_command): Remove obsolete comment. Warn if symbol file does not provide any symbols. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey * gdb.base/symfile-warn.exp: New file. * gdb.base/symfile-warn.c: New file. commit a0c1ffedcf1988bc13fc5b6d57d3b74a17b60299 Author: Tom Tromey Date: Thu May 30 10:59:03 2019 -0600 Only compute realpath when basenames_may_differ is set A user noted that, when sources are symlinked, gdb annotations will print the real path, rather than the name of the symlink. It seems to me that it is better to print the name of the file that was actually used in the build, unless there is some reason not to. This patch implements this, with the caveat that it will not work when basenames-may-differ is enabled. The way this mode is currently implemented, returning the symbolic (not real) path is not possible. While I think it would be good to redo the source file name cache and perhaps integrate it with class source_cache, I haven't done so here. Regression tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-14 Tom Tromey * source.c (find_and_open_source): Respect basenames_may_differ. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey * gdb.base/annotate-symlink.exp: New file. commit 7c39e397aafaea64812f2611b061bdd50f30dce4 Author: Andrew Burgess Date: Thu Jun 13 22:13:28 2019 +0100 gdb: Use scoped_restore_terminal_state in annotate.c In a couple of places in annotate.c we are manually backing up and restoring the terminal ownership, we could instead make use of scoped_restore_terminal_state. gdb/ChangeLog: * annotate.c (annotate_breakpoints_invalid): Make use of scoped_restore_terminal_state. (annotate_frames_invalid): Likewise. commit f411722cbc18820e5266ec4c2aadd2269eb15447 Author: Tom Tromey Date: Wed Jun 5 10:53:16 2019 -0600 Allow re-assigning to convenience variables In Ada mode, re-assigning an array of a different size to a convenience variable will cause an error: (gdb) set lang ada (gdb) set $v := "abc" (gdb) set $v := "abcd" cannot assign arrays of different length However, this does not really make sense -- instead, it should always be possible to overwrite a convenience variable. This patch fixes this bug. This was reviewed off-list by Joel. I'm checking it in. gdb/ChangeLog 2019-06-14 Tom Tromey * ada-lang.c (ada_evaluate_subexp) : Always allow assignment to an internalvar. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey * gdb.ada/set_wstr.exp: Add reassignment test. commit 4268ec187d401b9b132afa1a13c73e0026a53c5d Author: Tom Tromey Date: Fri Jun 7 11:29:36 2019 -0600 Recognize _ in attribute names Ada attribute names can contain "_", but the lexer currently does not allow this -- even though the "attributes" array lists some attributes spelled this way. This patch fixes the bug and adds test cases for the existing attributes. This was reviewed off-list by Joel. I'm checking it in. gdb/ChangeLog 2019-06-14 Tom Tromey * ada-lex.l: Allow "_" in attribute names. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey * gdb.ada/formatted_ref.exp (test_p_x_addr): Check 'unchecked_access and 'unrestricted_access as well. commit abdb711e0855f0597a96db0486b598144b788212 Author: Tom Tromey Date: Tue Jun 11 06:59:38 2019 -0600 Remove alloca(0) calls PR gdb/24653 points out that a gcc snapshot will complain about the calls to alloca(0) in gdb. These calls are only needed when using the C alloca. I'm inclined to think that no current platform needs this, so this patch removes the calls. Let me know what you think. gdb/ChangeLog 2019-06-14 Tom Tromey PR gdb/24653: * regcache.c (registers_changed): Don't call alloca. * top.c (execute_command): Don't call alloca. commit 9a9e394b05a841bdd9163f280d7ef19cc65634d6 Author: Tom Tromey Date: Wed May 29 10:21:52 2019 -0600 Fix gdb.ada/vla.exp PR ada/24539 concerns a test failure in gdb.ada/vla.exp. The problem here is that different versions of Gnat emit the structure's fields in different orders -- with the order currently failing actually being the correct one. Joel pointed out that this can be fixed by simply adding the No_Component_Reordering pragma to the type in question, which is what this patch does. I've reported a Gnat compiler bug internally in hopes of getting the underlying problem fixed. gdb/testsuite/ChangeLog 2019-06-14 Tom Tromey PR ada/24539: * gdb.ada/vla.exp: Update tests. * gdb.ada/vla/vla.adb (Record_Type): Use No_Component_Reordering pragma. commit e30d1fa1bfb1ff2e225cfac9226c357f2cf07a26 Author: Szabolcs Nagy Date: Wed Nov 28 19:35:04 2018 +0000 Add R_AARCH64_P32_MOVW_PREL_* ELF32 relocs These ilp32 relocations were missing for some reason. bfd/ChangeLog: * elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32. include/ChangeLog: * elf/aarch64.h (R_AARCH64_P32_MOVW_PREL_G0): Define. (R_AARCH64_P32_MOVW_PREL_G0_NC): Define. (R_AARCH64_P32_MOVW_PREL_G1): Define. ld/ChangeLog: * testsuite/ld-aarch64/aarch64-elf.exp: Add emit-relocs-22 and -23. * testsuite/ld-aarch64/emit-relocs-22.d: New test. * testsuite/ld-aarch64/emit-relocs-22.s: New test. * testsuite/ld-aarch64/emit-relocs-23.d: New test. * testsuite/ld-aarch64/emit-relocs-23.s: New test. commit bcc5a6eb668e560a0020114b6dc261ef494981ba Author: Nick Clifton Date: Fri Jun 14 11:43:53 2019 +0100 Updated French translation for the opcodes subdirectory. * po/fr.po; Updated French translation. commit 3a3a077c4acaed1ab231a376ff9faf6b71b7a0f1 Author: Alan Modra Date: Fri Jun 14 10:30:35 2019 +0930 Regenerate with approved autotools version bfd/ * Makefile.in: Regenerate. * configure: Regenerate. binutils/ * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * doc/Makefile.in: Regenerate. gas/ * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. ld/ * Makefile.in: Regenerate. * configure: Regenerate. libctf/ * configure: Regenerate. commit e3fa7860f44b85bc89b09998546fcb09624c3c68 Author: Alan Modra Date: Fri Jun 14 10:23:20 2019 +0930 Fix alpha testsuite regression readelf st_other display improved for alpha. PR 24662 * testsuite/ld-alpha/tlsbin.rd: Update. * testsuite/ld-alpha/tlsbinr.rd: Update. * testsuite/ld-alpha/tlspic.rd: Update. commit d4b87b1eb6439e1cd01d1a9f90dcf19428db4b17 Author: Alan Modra Date: Fri Jun 14 10:22:49 2019 +0930 PowerPC comment fixes "paddi rt,sym@pcrel" as an abbreviation for "paddi rt,0,sym@pcrel,1" is invalid, so replace with "pla rt,sym@pcrel" which is a valid form of "pla rt,sym@pcrel(0),1". * elf64-ppc.c: Fix comments involving paddi. commit f8164777cde276244d015a2411f68f63a4bd28aa Author: GDB Administrator Date: Fri Jun 14 00:00:18 2019 +0000 Automatic date update in version.in commit 4c04873103043dc9a1c8d6cdeea1b9b1f545f375 Author: Pedro Alves Date: Thu Jun 13 15:22:44 2019 +0100 Fix "set integer-command unlimited junk" With integer commands that support "unlimited", we currently fail to notice junk after "unlimited": (gdb) show print elements Limit on string chars or array elements to print is 200. (gdb) set print elements unlimited foo (gdb) show print elements Limit on string chars or array elements to print is unlimited. This commit fixes that. After, we get: (gdb) set print elements unlimited foo Junk after "unlimited": foo gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-setshow.c (cli/cli-setshow.c): New parameter 'expression'. When parsing an expression, error out if there's junk after "unlimited". (parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited) (do_set_command): Adjust calls to is_unlimited_literal. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/settings.exp (test-integer): Test junk after "unlimited". commit 57a63d27dcc8c7620f2168b370b649c7458c687e Author: Stafford Horne Date: Thu Jun 13 21:27:10 2019 +0900 sim/testsuite/or1k: Add tests for unordered compares Add tests for 32-bit and 64-bit unordered compare instructions. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne * fpu-unordered.S: New file. * fpu64a32-unordered.S: New file. commit 3c83b496d4ee7d732b6844c585c3ea9d83ca0f4c Author: Stafford Horne Date: Thu Jun 13 21:27:10 2019 +0900 sim/testsuite/or1k: Add test case for l.adrp instruction This is a simple test to ensure that the l.adrp instruction can be assembled and simulated correctly. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne * adrp.S: New file. commit b4f9e0034660e15d233627f9c5a732ab023b7daf Author: Stafford Horne Date: Thu Jun 13 21:27:10 2019 +0900 sim/testsuite/or1k: Add test for 64-bit fpu operations This is a very basic test but it ensure the machine is wired up correctly and that the assembler works. sim/testsuite/sim/or1k/ChangeLog: yyyy-mm-dd Stafford Horne * fpu64a32.S: New file. commit f1cc84f59441d59827748e47a5971a12ed1ac283 Author: Stafford Horne Date: Thu Jun 13 21:27:10 2019 +0900 sim/common: wire up new unordered comparisons Define and wire up unordered floating point comparison operations for cgen targets. This patch depends on my posted cgen patches[0]. [0] https://www.sourceware.org/ml/cgen/2019-q2/msg00013.html sim/common/ChangeLog: yyyy-mm-dd Stafford Horne * cgen-accfp.c (unorderedsf, unordereddf): New functions. (cgen_init_accurate_fpu): Wire up unorderedsf and unordereddf. * cgen-fpu.h (cgen_fp_ops): Define fields unorderedsf and unordereddf. commit 688cea90bc0af3a0188695a25f5c4e8db4ef763b Author: Stafford Horne Date: Thu Jun 13 21:27:10 2019 +0900 sim/common: Wire in df/di conversion Up until now these have not been used in any CGEN targets, add them as they are now used by OpenRISC. sim/common/ChangeLog: * cgen-accfp.c (floatdidf, fixdfdi): New functions. (cgen_init_accurate_fpu): Add floatdidf and fixdfdi. commit 7ccbb4437a29896955a6ff3b0406b1cc2a7f6fe2 Author: Stafford Horne Date: Thu Jun 13 21:27:09 2019 +0900 sim/or1k: Regenerate sim This picks up changes for: - new orfpx64a32 spec - new unordered instructions - documentation and symbol updates sim/ChangeLog: * or1k/cpu.c: Regenerate. * or1k/cpu.h: Regenerate. * or1k/decode.c: Regenerate. * or1k/decode.h: Regenerate. * or1k/model.c: Regenerate. * or1k/sem-switch.c: Regenerate. * or1k/sem.c: Regenerate. commit 66eb1ed3882aa3c54daa2fe24b7479b5ee0538f2 Author: Pedro Alves Date: Thu Jun 13 08:58:54 2019 +0100 Fix gdb build with -std=gnu++11 The options framework series broken the build with gcc 4.8, or any other compiler were we end up forcing -std=gnu++11, causing errors like these: ../../binutils-gdb/gdb/compile/compile.c: In function gdb::option::option_def_group make_compile_options_def_group(compile_options*): ../../binutils-gdb/gdb/compile/compile.c:266:44: error: could not convert (const gdb::option::option_def*)(& compile_command_option_defs) from const gdb::option::option_def* to gdb::array_view return {compile_command_option_defs, opts}; ^ CXX copying.o ../../binutils-gdb/gdb/compile/compile.c:267:1: error: control reaches end of non-void function [-Werror=return-type] } ^ This is a C++11 vs C++14 difference -- C++14 relaxed the rules for eliding braces. This commit fixes it by adding the missing (in C++11) braces. Tested with g++ 4.8. gdb/ChangeLog: 2019-06-13 Pedro Alves * compile/compile.c (make_compile_options_def_group): Add braces around array_view initializer. * thread.c (make_thread_apply_all_options_def_group) (make_thread_apply_all_options_def_group): Likewise. commit e41d1c49a12aab7db33d7ad66d62f7413b8f0480 Author: GDB Administrator Date: Thu Jun 13 00:00:38 2019 +0000 Automatic date update in version.in commit 3345721af145007661f4e7e7f4300470095ba622 Author: Pedro Alves Date: Thu Jun 13 00:06:54 2019 +0100 NEWS and manual changes for command options changes gdb/ChangeLog: 2019-06-13 Pedro Alves * NEWS (New commands): Mention "maint test-options require-delimiter", "maint test-options unknown-is-error", "maint test-options unknown-is-operand" and "maint show test-options-completion-result". (New command options, command completion): New section. (Completion improvements): New section. Mention that you can abbreviate "unlimited". gdb/doc/ChangeLog: 2019-06-13 Pedro Alves * gdb.texinfo (Command Completion): Mention command options too. (Command Options): New node. (Threads): Add anchors. Extend descriptions of the "taas" and "tfaas" commands. (Backtrace): Describe new options of the "backtrace" command. Add anchors. (Frame Apply): Describe new options of the "frame apply" and "faas" commands. Add anchors. (Data): Describe new options of the "print" command. Add anchors. (Compiling and Injecting Code): Mention options of the "compile print" command. (Maintenance Commands): Mention "maint test-options" subcommands and the "maint show test-options-completion-result" command. commit 6206060d9be8da3e701fe0307c6c01390e2b4ae2 Author: Pedro Alves Date: Thu Jun 13 00:06:54 2019 +0100 Delete parse_flags/parse_flags_qcs Now that "thread/frame apply" have been converted to the gdb::option framework, these functions are no longer used. For a while, I thought about keeping the unit tests, by making a local version of parse_flags_qcs in the unit tests file. But all that would really test that is used by GDB itself, is the validate_flags_qcs function. So in the end, I went through all the unit tests, and converted any that wasn't already covered to gdb.base/options.exp tests. And those have all already been added in previous patches. gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-utils.c (parse_flags, parse_flags_qcs): Delete. * cli/cli-utils.h (parse_flags, parse_flags_qcs): Delete. * unittests/cli-utils-selftests.c (test_parse_flags) (test_parse_flags_qcs): Delete. (test_cli_utils): Don't call deleted functions. commit 6665660a411ead049daa85cac5c629d637e22044 Author: Pedro Alves Date: Thu Jun 13 00:06:54 2019 +0100 Make "thread apply" use the gdb::option framework Similarly to the "frame apply" patch, this makes the "thread apply" family of commands -- "thread apply TID", "thread apply all" and "taas" use the gdb::option framework for '-'-style options. No new options are added, but there are some user-visible changes: - Can now abbreviate and complete "-ascending" - We now have a completer for "thread apply" commands Can now complete options ("thread apply all -[TAB]"), and also, 'thread apply all COMMAND[TAB]' now does what you'd expect, by making use of the new complete_command routine. - "help" output tweaked with auto-generated option descriptions: ~~~ Usage: thread apply all [OPTION]... COMMAND Prints per-inferior thread number and target system's thread id followed by COMMAND output. By default, an error raised during the execution of COMMAND aborts "thread apply". Options: -ascending Call COMMAND for all threads in ascending order. The default is descending order. -q Disables printing the thread information. -c Print any error raised by COMMAND and continue. -s Silently ignore any errors or empty output produced by COMMAND. ~~~ The "By default ..." sentence is new as well. gdb/ChangeLog: 2019-06-13 Pedro Alves * thread.c: Include "cli/cli-option.h". (tp_array_compar_ascending): Global. (tp_array_compar): Delete function. (tp_array_compar_ascending, tp_array_compar_descending): New functions. (ascending_option_def, qcs_flag_option_def) (thr_qcs_flags_option_defs) (make_thread_apply_all_options_def_group) (make_thread_apply_options_def_group): New. (thread_apply_all_command): Use gdb::option::process_options. (thread_apply_command_completer) (thread_apply_all_command_completer): New. (thread_apply_command): Use gdb::option::process_options. (_initialize_thread): Delete THREAD_APPLY_FLAGS_HELP, replace it with a new THREAD_APPLY_OPTION_HELP. Use gdb::option::build_help to generate help text of "thread apply". Adjust "taas"'s help. * tid-parse.c (tid_range_parser::in_thread_range): New method. * tid-parse.h (tid_range_parser::in_thread_range): New method. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.exp (test-thread-apply): New. (top level): Call it. commit f7e13587eaf1e2d433e21ac0a9e413a98e53652d Author: Pedro Alves Date: Thu Jun 13 00:06:54 2019 +0100 "thread apply 1 -- -" vs "frame apply level 0 -- -" With the following patch, we'll be able to explicitly tell "thread apply" where options end, using the "--" delimiter. A test added by that patch caught a pre-existing inconsistency: (gdb) thread apply 1 -- - Invalid thread ID: - (gdb) frame apply level 0 -- - #0 main () at threads.c:55 Cannot enable the TUI when output is not a terminal Above, "thread apply" did not try to run the command, while "frame apply level" did. ("-" is a valid TUI command.) That "-" is past "--", so it should have not been confused with an invalid TID, in the "thread apply" case. That error actually doesn't come from the TID parser, but instead from thread_apply_command directly. So that error/check needs tweaking. The next question is what to tweak it to. "-" is actually a valid TUI command: (gdb) help - Scroll window backward. Usage: - [WIN] [N] (gdb) frame apply level 0 -- - #0 main () at threads.c:55 Cannot enable the TUI when output is not a terminal While I don't imagine it being useful to use that "-" command with "thread apply" or "frame apply level", the fact is that you can use it with "frame apply level", but not with "thread apply". And since it's an actual command, pedantically it seems right to allow it. That's what this commit does. Note: simply removing the "isalpha" check regresses gdb.multi/tids.exp -- see related commit 3f5b7598805c. gdb/ChangeLog: 2019-06-13 Pedro Alves * thread.c (thread_apply_command): Check for invalid TID with isdigit instead of !isalpha. commit 5d7071341dd3c01d38fc01398ef8b23b1bd3783c Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Make "frame apply" support -OPT options This adds support for '-'-style options to the "frame apply" family of commands -- "frame apply COUNT", "frame apply level", "frame apply all", "faas" and "tfaas". The -q/-c/-s flags were already supported, -past-main/-past-entry is new: ~~~ (gdb) help frame apply all Apply a command to all frames. Usage: frame apply all [OPTION]... COMMAND Prints the frame location information followed by COMMAND output. By default, an error raised during the execution of COMMAND aborts "frame apply". Options: -q Disables printing the frame location information. -c Print any error raised by COMMAND and continue. -s Silently ignore any errors or empty output produced by COMMAND. -past-main [on|off] Set whether backtraces should continue past "main". Normally the caller of "main" is not of interest, so GDB will terminate the backtrace at "main". Set this if you need to see the rest of the stack trace. -past-entry [on|off] Set whether backtraces should continue past the entry point of a program. Normally there are no callers beyond the entry point of a program, so GDB will terminate the backtrace there. Set this if you need to see the rest of the stack trace. ~~~ TAB completion of options is now supported. Also, TAB completion of COMMAND in "frame apply all COMMAND" does the right thing now, making use of complete_command, added by the previous patch. E.g.: (gdb) thread apply all -ascending frame apply all -past-main print -[TAB] -address -elements -pretty -symbol -array -null-stop -repeats -union -array-indexes -object -static-members -vtbl (gdb) thread apply all -ascending frame apply all -past-main print glo[TAB] global1 global2 The change to tfaas_command is necessary because otherwise you get this: (gdb) tfaas -- Unrecognized option at: frame apply all -s -- That's because the above is equivalent to: (gdb) thread apply all -s frame apply all -s -- and the "--" instructs "thread apply" to consider everything up to "--" as its command options. And from that view, "frame" is an invalid option. The change makes tfaas be equivalent to: (gdb) thread apply all -s -- frame apply all -s -- gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-utils.c (parse_flags_qcs): Use validate_flags_qcs. (validate_flags_qcs): New. * cli/cli-utils.h (struct qcs_flags): Change field types to int. (validate_flags_qcs): Declare. * stack.c (qcs_flag_option_def, fr_qcs_flags_option_defs): New. (make_frame_apply_options_def_group): New. (frame_apply_command_count): Process options with gdb::option::process_options. (frame_apply_completer): New. (frame_apply_level_completer, frame_apply_all_completer) (frame_apply_completer): New. (_initialize_stack): Update help of "frame apply", "frame apply level", "frame apply all" and "faas" to mention supported options and install command completers. * stack.h (frame_apply_all_completer): Declare. * thread.c: Include "stack.h". (tfaas_command): Add "--". (_initialize_thread): Update help "tfaas" to mention supported options and install command completer. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.exp (test-frame-apply): New. (top level): Test print commands with different "frame apply" prefixes. commit 272d4594343349a713f7d8967d90ae2413ecbc30 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Introduce complete_nested_command_line This adds a completion helper routine that makes it possible for a command that takes another command as argument, such as "frame apply all COMMAND" as "thread apply all COMMAND", to complete on COMMAND, and have the completion machinery recurse and complete COMMAND as if you tried to complete "(gdb) COMMAND". I.e., we'll be able to complete like this, for example: (gdb) thread apply all -[TAB] -c -ascending -q -s (gdb) thread apply all -ascending frame apply all -[TAB] -c -limit -past-entry -past-main -q -s (gdb) thread apply all -ascending frame apply all -past-main print -[TAB] -address -elements -pretty -symbol -array -null-stop -repeats -union -array-indexes -object -static-members -vtbl (gdb) thread apply all -ascending frame apply all -past-main print glo[TAB] global1 global2 Above, the completer function understands that "thread apply all" is a command, and then parses "-ascending" successfully and understand that the rest of the string is "thread apply all"'s operand. And then, the process repeats for the "frame apply" command, and on and on. gdb/ChangeLog: 2019-06-13 Pedro Alves * completer.c (complete_nested_command_line): New. (gdb_completion_word_break_characters_throw): Add assertion. * completer.h (complete_nested_command_line): Declare. commit e2a689da55d3feb7b79a141f69c4049112f59c91 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 lib/completion-support.exp: Add test_gdb_completion_offers_commands This adds a procedure to the collection of completion-testing routines, that allows checking whether completion offers all commands as completion candidates. This will be used for testing completing "frame apply all [TAB]", "thread apply all [TAB]", etc. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * lib/completion-support.exp (test_gdb_complete_tab_multiple) (test_gdb_complete_cmd_multiple, test_gdb_complete_multiple): Add 'max_completions' parameter and handle it. (test_gdb_completion_offers_commands): New. commit 90a1ef8762a57f3f57007db2186099c026152034 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 "backtrace full/no-filters/hide" completer "backtrace"'s completer now completes on command options: (gdb) bt -[TAB] -entry-values -full -no-filters -past-main -frame-arguments -hide -past-entry -raw-frame-arguments But it doesn't know how to complete on qualifiers: (gdb) bt fu[TAB] funlockfile futimens futimes.c funlockfile.c futimens.c futimesat futex-internal.h futimes futimesat.c This commit fixes that: (gdb) bt fu[TAB]ll (gdb) bt n[TAB]o-filters (gdb) bt h[TAB]ide I considered teaching the gdb::option framework to handle non-'-' options, but decided it wasn't worth it for this special case, and I'd rather not make it easy to add new qualifier-like options. gdb/ChangeLog: 2019-06-13 Pedro Alves * stack.c (parse_backtrace_qualifiers): New. (backtrace_command): Use it. (backtrace_command_completer): Complete on qualifiers. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.exp (test-backtrace): Test completing qualifiers. commit d4c16835cad70bd8c04ff30d5d6f40ac65e7f7e1 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Make "backtrace" support -OPT options This adds support for comand options to the "backtrace" command. We'll get: (gdb) bt - -entry-values -hide -past-main -frame-arguments -no-filters -raw-frame-arguments -full -past-entry ~~~~ (gdb) help backtrace Print backtrace of all stack frames, or innermost COUNT frames. Usage: backtrace [OPTION]... [QUALIFIER]... [COUNT | -COUNT] Options: -entry-values no|only|preferred|if-needed|both|compact|default Set printing of function arguments at function entry GDB can sometimes determine the values of function arguments at entry, in addition to their current values. This option tells GDB whether to print the current value, the value at entry (marked as val@entry), or both. Note that one or both of these values may be . -frame-arguments all|scalars|none Set printing of non-scalar frame arguments -raw-frame-arguments [on|off] Set whether to print frame arguments in raw form. If set, frame arguments are printed in raw form, bypassing any pretty-printers for that value. -past-main [on|off] Set whether backtraces should continue past "main". Normally the caller of "main" is not of interest, so GDB will terminate the backtrace at "main". Set this if you need to see the rest of the stack trace. -past-entry [on|off] Set whether backtraces should continue past the entry point of a program. Normally there are no callers beyond the entry point of a program, so GDB will terminate the backtrace there. Set this if you need to see the rest of the stack trace. -full Print values of local variables. -no-filters Prohibit frame filters from executing on a backtrace. -hide Causes Python frame filter elided frames to not be printed. For backward compatibility, the following qualifiers are supported: full - same as -full option. no-filters - same as -no-filters option. hide - same as -hide. With a negative COUNT, print outermost -COUNT frames. ~~~~ Implementation wise, this: - Moves relevant options/settings globals to structures. - Tweaks a number of functions to pass down references to such structures. - Adds option_def structures describing the options/settings. - Makes backtrace_command parse the options, with gdb::option::process_options. - Tweaks "backtrace"'s help to describe the new options. - Adds testcases. Note that backtrace is a PROCESS_OPTIONS_UNKNOWN_IS_OPERAND command, because of the "-COUNT" argument. The COUNT/-COUNT argument is currently parsed as an expression. I considered whether it would be prudent here to require "--", but concluded that the risk of causing a significant breakage here is much lower compared to "print", since printing the expression is not the whole point of the "backtrace" command. Seems OK to me to require typing "backtrace -past-main -- -p" if the user truly wants to refer to the negative of a backtrace count stored in an inferior variable called "p". gdb/ChangeLog: 2019-06-13 Pedro Alves * frame.c: Include "cli/cli-option.h. (user_set_backtrace_options): New. (backtrace_past_main, backtrace_past_entry, backtrace_limit): Delete. (get_prev_frame): Adjust. (boolean_option_def, uinteger_option_def) (set_backtrace_option_defs): New. (_initialize_frame): Adjust and use gdb::option::add_setshow_cmds_for_options to install "set backtrace past-main" and "set backtrace past-entry". * frame.h: Include "cli/cli-option.h". (struct frame_print_options): Forward declare. (print_frame_arguments_all, print_frame_arguments_scalars) (print_frame_arguments_none): Declare. (print_entry_values): Delete declaration. (struct frame_print_options, user_frame_print_options): New. (struct set_backtrace_options): New. (set_backtrace_option_defs, user_set_backtrace_options): Declare. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames) (mi_cmd_stack_list_locals, mi_cmd_stack_list_args) (mi_cmd_stack_list_variables): Pass down USER_FRAME_PRINT_OPTIONS. (list_args_or_locals): Add frame_print_options parameter. (mi_cmd_stack_info_frame): Pass down USER_FRAME_PRINT_OPTIONS. * python/py-framefilter.c (enumerate_args): Pass down USER_FRAME_PRINT_OPTIONS. * stack.c: Include "cli/cli-option.h". (print_frame_arguments_all, print_frame_arguments_scalars) (print_frame_arguments_none): Declare. (print_raw_frame_arguments, print_entry_values): Delete. (user_frame_print_options): New. (boolean_option_def, enum_option_def, frame_print_option_defs): New. (struct backtrace_cmd_options): New. (bt_flag_option_def): New. (backtrace_command_option_defs): New. (print_stack_frame): Pass down USER_FRAME_PRINT_OPTIONS. (print_frame_arg, read_frame_arg, print_frame_args) (print_frame_info, print_frame): Add frame_print_options parameter and use it. (info_frame_command_core): Pass down USER_FRAME_PRINT_OPTIONS. (backtrace_command_1): Add frame_print_options and backtrace_cmd_options parameters and use them. (make_backtrace_options_def_group): New. (backtrace_command): Process command options with gdb::option::process_options. (backtrace_command_completer): New. (_initialize_stack): Extend "backtrace"'s help to mention supported options. Install completer for "backtrace". Install some settings commands with add_setshow_cmds_for_options. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.exp (test-backtrace): New. (top level): Call it. commit 2daf894ed0baf72dd3f422b7a71630145568db30 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 "set print raw frame-arguments" -> "set print raw-frame-arguments" A following patch will introduce options for the "backtrace" command, based on some "set print" and "set backtrace" settings. There's one setting in particular that is a bit annoying if we want to describe the backtrace options and the settings commands using the same data structures: "set print raw frame-arguments" The problem is that space between "raw" and "frame-arguments". Calling the option "bt -raw frame-arguments" would be odd. So I'm calling the option "bt -raw-frame-arguments" instead. And for consistency, this patch renames the set/show commands to: "set print raw-frame-arguments" "show print raw-frame-arguments" I.e., dash instead of space. The old commands are left in place, but marked deprecated. We need to adjust a couple testcases, because the relevant tests use gdb_test_no_output and the old commands are no longer silent: (gdb) set print raw frame-arguments on Warning: command 'set print raw frame-arguments' is deprecated. Use 'set print raw-frame-arguments'. gdb/ChangeLog: 2019-06-13 Pedro Alves * NEWS (Changed commands): Mention set/show print raw-frame-arguments, and that "set/show print raw frame-arguments" are now deprecated. * cli/cli-decode.c (add_setshow_boolean_cmd): Now returns the command. * command.h (add_setshow_boolean_cmd): Return cmd_list_element *. * stack.c (_initialize_stack): Install "set/show print raw-frame-arguments", and deprecate "set/show print raw frame-arguments". * valprint.c (_initialize_valprint): Deprecate "set/show print raw". gdb/doc/ChangeLog: 2019-06-13 Pedro Alves * gdb.texinfo (Print Settings): Document "set/show print raw-frame-arguments" instead of "set/show print raw frame-arguments". gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.guile/scm-frame-args.exp: Use "set print raw-frame-arguments" instead of "set print raw frame-arguments". * gdb.python/py-frame-args.exp: Likewise. commit e6ed716cd5514c08b9d7c469d185b1aa177dbc22 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Migrate rest of compile commands to new options framework As I was in the neighbourhood, I converted the other "compile" subcommands to the new options framework too. Specifically, "compile code" and "compile file". The user-visible changes are: - All abbreviations of "-raw" are accepted now, instead of just -r. Obviously that means "-ra" is now accepted. - Option completion now works. - "compile file" did not have a completer yet, and now it knows to complete on filenames. - You couldn't use "compile file" with a file named "-something". You can now, with "compile file -- -something". gdb/ChangeLog: 2019-06-13 Pedro Alves * compile/compile.c (struct compile_options): New. (compile_flag_option_def, compile_command_option_defs) (make_compile_options_def_group): New. (compile_file_command): Handle options with gdb::option::process_options. (compile_file_command_completer): New function. (compile_code_command): Handle options with gdb::option::process_options. (compile_code_command_completer): New function. (_initialize_compiler): Install completers for "compile code" and "compile file". Mention available options in "compile code" and "compile code"'s help. * completer.c (advance_to_completion_word): New, factored out from ... (advance_to_expression_complete_word_point): ... this. (advance_to_filename_complete_word_point): New. * completer.h (advance_to_filename_complete_word_point): New declaration. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.compile/compile.exp: Adjust expected output to option processing changes. commit 7d8062de98203eeec70d4439ab460b9ef50a2e0f Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Make "print" and "compile print" support -OPT options This patch adds support for "print -option optval --", etc. Likewise for "compile print". We'll get: ~~~~~~ (gdb) help print Print value of expression EXP. Usage: print [[OPTION]... --] [/FMT] [EXP] Options: -address [on|off] Set printing of addresses. -array [on|off] Set pretty formatting of arrays. -array-indexes [on|off] Set printing of array indexes. -elements NUMBER|unlimited Set limit on string chars or array elements to print. "unlimited" causes there to be no limit. -max-depth NUMBER|unlimited Set maximum print depth for nested structures, unions and arrays. When structures, unions, or arrays are nested beyond this depth then they will be replaced with either '{...}' or '(...)' depending on the language. Use "unlimited" to print the complete structure. -null-stop [on|off] Set printing of char arrays to stop at first null char. -object [on|off] Set printing of C++ virtual function tables. -pretty [on|off] Set pretty formatting of structures. -repeats NUMBER|unlimited Set threshold for repeated print elements. "unlimited" causes all elements to be individually printed. -static-members [on|off] Set printing of C++ static members. -symbol [on|off] Set printing of symbol names when printing pointers. -union [on|off] Set printing of unions interior to structures. -vtbl [on|off] Set printing of C++ virtual function tables. Note: because this command accepts arbitrary expressions, if you specify any command option, you must use a double dash ("--") to mark the end of option processing. E.g.: "print -o -- myobj". ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I want to highlight the comment above about "--". At first, I thought we could make the print command parse the options, and if the option wasn't recognized, fallback to parsing as an expression. Then, if the user wanted to disambiguate, he'd use the "--" option delimiter. For example, if you had a variable called "object" and you wanted to print its negative, you'd have to do: (gdb) print -- -object After getting that working, I saw that gdb.pascal/floats.exp regressed, in these tests: gdb_test "print -r" " = -1\\.2(499.*|5|500.*)" gdb_test "print -(r)" " = -1.2(499.*|5|500.*)" gdb_test "print -(r + s)" " = -3\\.4(499.*|5|500.*)" It's the first one that I found most concerning. It regressed because "-r" is the abbreviation of "-raw". I realized then that the behavior change was a bit risker than I'd like, considering scripts, wrappers around gdb, etc., and even user expectation. So instead, I made the print command _require_ the "--" options delimiter if you want to specify any option. So: (gdb) print -r is parsed as an expression, and (gdb) print -r -- is parsed as an option. I noticed that that's also what lldb's expr (the equivalent of print) does to handle the same problem. Going back the options themselves, note that: - you can shorten option names, as long as unambiguous. - For boolean options, 0/1 stand for off/on. - For boolean options, "true" is implied. So these are all equivalent: (gdb) print -object on -static-members off -pretty on -- foo (gdb) print -object -static-members off -pretty -- foo (gdb) print -object -static-members 0 -pretty -- foo (gdb) print -o -st 0 -p -- foo TAB completion is fully supported: (gdb) p -[TAB] -address -elements -pretty -symbol -array -null-stop -repeats -union -array-indexes -object -static-members -vtbl Note that the code is organized such that some of the options and the "set/show" commands code is shared. In particular, the "print" options and the corresponding "set print" commands are defined with the same structures. The commands are installed with the gdb::option::add_setshow_cmds_for_options function. gdb/ChangeLog: 2019-06-13 Pedro Alves * compile/compile.c: Include "cli/cli-option.h". (compile_print_value): Scope data pointer is now a value_print_options pointer; adjust. (compile_print_command): Process options. Scope data pointer is now a value_print_options pointer; adjust. (_initialize_compile): Update "compile print"'s help to include supported options. Install a completer for "compile print". * cp-valprint.c (show_vtblprint, show_objectprint) (show_static_field_print): Delete. (_initialize_cp_valprint): Don't install "set print static-members", "set print vtbl", "set print object" here. * printcmd.c: Include "cli/cli-option.h" and "common/gdb_optional.h". (print_command_parse_format): Rework to fill in a value_print_options instead of a format_data. (print_value): Change parameter type from format_data pointer to value_print_options reference. Adjust. (print_command_1): Process options. Adjust to pass down a value_print_options. (print_command_completer): New. (_initialize_printcmd): Install print_command_completer as handle_brkchars completer for the "print" command. Update "print"'s help to include supported options. * valprint.c: Include "cli/cli-option.h". (show_vtblprint, show_objectprint, show_static_field_print): Moved here from cp-valprint.c. (boolean_option_def, uinteger_option_def) (value_print_option_defs, make_value_print_options_def_group): New. Use gdb::option::add_setshow_cmds_for_options to install "set print elements", "set print null-stop", "set print repeats", "set print pretty", "set print union", "set print array", "set print address", "set print symbol", "set print array-indexes". * valprint.h: Include and "cli/cli-option.h". (make_value_print_options_def_group): Declare. (print_value): Change parameter type from format_data pointer to value_print_options reference. (print_command_completer): Declare. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.exp: Build executable. (test-print): New procedure. (top level): Call it, once for "print" and another for "compile print". commit 9d0faba9f52b898f0be539bc4d6fbd084772259d Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 Introduce generic command options framework This commit adds a generic command options framework, that makes it easy enough to add '-'-style options to commands in a uniform way, instead of each command implementing option parsing in its own way. Options are defined in arrays of option_def objects (for option definition), and the same options definitions are used for supporting TAB completion, and also for generating the relevant help fragment of the "help" command. See the gdb::options::build_help function, which returns a string with the result of replacing %OPTIONS% in a template string with an auto-generated "help" string fragment for all the passed-in options. Since most options in GDB are in the form of "-OPT", with a single dash, this is the format that the framework supports. I like to think of gdb's "-OPT" as the equivalent to getopt's long options format ("--OPT"), and gdb's "/" as the equivalent to getopt's short options format. getopt's short options format allows mixing several one-character options, like "ls -als", kind of similar to gdb's "x /FMT" and "disassemble /MOD", etc. While with gdb's "-" options, the option is expected to have a full name, and to be abbreviatable. E.g., "watch -location", "break -function main", etc. This patch only deals with "-" options. The above comment serves more to disclose why I don't think we should support mixing several unrelated options in a single "-" option invocation, like "thread apply -qcs" instead of "thread apply -q -c -s". The following patches will add uses of the infrastructure to several key commands. Most notably, "print", "compile print", "backtrace", "frame apply" and "thread apply". I tried to add options to several commands in order to make sure the framework didn't leave that many open holes open. Options use the same type as set commands -- enum var_types. So boolean options are var_boolean, enum options are var_enum, etc. The idea is to share code between settings commands and command options. The "print" options will be based on the "set print" commands, and their names will be the same. Actually, their definitions will be the same too. There is a function to create "set/show" commands from an array for option definitions: /* Install set/show commands for options defined in OPTIONS. DATA is a pointer to the structure that holds the data associated with the OPTIONS array. */ extern void add_setshow_cmds_for_options (command_class cmd_class, void *data, gdb::array_view options, struct cmd_list_element **set_list, struct cmd_list_element **show_list); That will be used by several following patches. Other features: - You can use the "--" delimiter to explicitly indicate end of options. Several existing commands use this token sequence for this effect already, so this just standardizes it. - You can shorten option names, as long as unambiguous. Currently, some commands allow this (e.g., break -function), while others do not (thread apply all -ascending). As GDB allows abbreviating command names and other things, it feels more GDB-ish to allow abbreviating option names too, to me. - For boolean options, 0/1 stands for off/on, just like with boolean "set" commands. - For boolean options, "true" is implied, just like with boolean "set commands. These are the option types supported, with a few examples: - boolean options (var_boolean). The option's argument is optional. (gdb) print -pretty on -- *obj (gdb) print -pretty off -- *obj (gdb) print -p -- *obj (gdb) print -p 0 -- *obj - flag options (like var_boolean, but no option argument (on/off)) (gdb) thread apply all -s COMMAND - enum options (var_enum) (gdb) bt -entry-values compact (gdb) bt -e c - uinteger options (var_uinteger) (gdb) print -elements 100 -- *obj (gdb) print -e 100 -- *obj (gdb) print -elements unlimited -- *obj (gdb) print -e u -- *obj - zuinteger-unlimited options (var_zuinteger_unlimited) (gdb) print -max-depth 100 -- obj (gdb) print -max-depth -1 -- obj (gdb) print -max-depth unlimited -- obj Other var_types could be supported, of course. These were just the types that I needed for the commands that I ported over, in the following patches. It was interesting (and unfortunate) to find that we need at least 3 different modes to cover the existing commands: - Commands that require ending options with "--" if you specify any option: "print" and "compile print". - Commands that do not want to require "--", and want to error out if you specify an unknown option (i.e., an unknown argument that starts with '-'): "compile code" / "compile file". - Commands that do not want to require "--", and want to process unknown options themselves: "bt", because of "bt -COUNT", "thread/frame apply", because "-" is a valid command. The different behavior is encoded in the process_options_mode enum, passed to process_options/complete_options. For testing, this patch adds one representative maintenance command for each of the process_options_mode values, that are used by the testsuite to exercise the options framework: (gdb) maint test-options require-delimiter (gdb) maint test-options unknown-is-error (gdb) maint test-options unknown-is-operand and adds another command to help with TAB-completion testing: (gdb) maint show test-options-completion-result See their description at the top of the maint-test-options.c file. Docs/NEWS are in a patch later in the series. gdb/ChangeLog: 2019-06-13 Pedro Alves * Makefile.in (SUBDIR_CLI_SRCS): Add cli/cli-option.c. (COMMON_SFILES): Add maint-test-settings.c. * cli/cli-decode.c (boolean_enums): New global, factored out from ... (add_setshow_boolean_cmd): ... here. * cli/cli-decode.h (boolean_enums): Declare. * cli/cli-option.c: New file. * cli/cli-option.h: New file. * cli/cli-setshow.c (parse_cli_boolean_value(const char **)): New, factored out from ... (parse_cli_boolean_value(const char *)): ... this. (is_unlimited_literal): Change parameter type to pointer to pointer. Adjust and advance ARG pointer. (parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited) (parse_cli_var_enum): New, factored out from ... (do_set_command): ... this. Adjust. * cli/cli-setshow.h (parse_cli_boolean_value) (parse_cli_var_uinteger, parse_cli_var_zuinteger_unlimited) (parse_cli_var_enum): Declare. * cli/cli-utils.c: Include "cli/cli-option.h". (get_ulongest): New. * cli/cli-utils.h (get_ulongest): Declare. (check_for_argument): New overloads. * maint-test-options.c: New file. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/options.c: New file. * gdb.base/options.exp: New file. commit 2c722807a752ce468b04fcf6d29857f377beeaf5 Author: Pedro Alves Date: Thu Jun 13 00:06:53 2019 +0100 number_or_range_parser::get_number, don't treat "1 -" as a range While adding -OPT options to "frame apply level", I noticed that: (gdb) frame apply level 0 -[TAB] wasn't completing on the supported options. This commit fixes it. We'll get instead: (gdb) frame apply level 0 - -c -past-entry -past-main -q -s I added the isspace check because this case: (gdb) frame apply level 0- can't be an option. Tests for this will be in a new gdb.base/options.exp file, in a following patch. It will exercise all of: (gdb) frame apply level 0- (gdb) frame apply level 0 - (gdb) frame apply level 0 -- (gdb) frame apply level 0 -- - gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-utils.c (number_or_range_parser::get_number): Do not parse a range if "-" is at the end of the string. commit dee7b4c83a636471ee321fb4fe1c3be0a16a9ea7 Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 boolean/auto-boolean commands, make "o" ambiguous We currently accept "o" with boolean/auto-boolean commands, taking it to mean "on". But "o" is ambiguous, between "on" and "off". I can't imagine why assuming the user wanted to type "on" is a good idea, it might have been a typo. This commit makes gdb error out. We now get: (gdb) maint test-settings set boolean o "on" or "off" expected. (gdb) maint test-settings set auto-boolean o "on", "off" or "auto" expected. gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-setshow.c (parse_auto_binary_operation) (parse_cli_boolean_value): Don't allow "o". gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/settings.exp (test-boolean, test-auto-boolean): Check that "o" is ambiguous. commit dca0f6c0a4bafff9039d8bdb2a7efec9f70ce82f Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 New set/show testing framework (gdb.base/settings.exp) This commit adds new representative commands for all types of settings commands supported by gdb (enum var_types), and then uses them to exercise settings parsing and completion. (gdb) maint test-settings s[TAB] set show (gdb) maint test-settings set [TAB] auto-boolean integer uinteger boolean optional-filename zinteger enum string zuinteger filename string-noescape zuinteger-unlimited (gdb) maint test-settings set enum [TAB] xxx yyy zzz etc. This is basically unit testing, except that it goes fully via GDB. It must be done this way in order to exercise TAB completion properly, which must go via readline. gdb/ChangeLog: 2019-06-13 Pedro Alves * Makefile.in (COMMON_SFILES): Add maint-test-settings.c. * NEWS: Mention maint test-settings KIND. * maint-test-settings.c: New file. gdb/doc/ChangeLog: 2019-06-13 Pedro Alves * gdb.texinfo (Maintenance Commands): Document "maint test-settings" commands. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/settings.c: New file. * gdb.base/settings.exp: New file. commit ccf46844d3e5ad4af9f3a10cc0599c939138d566 Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 gdb.base/completion.exp: Fix comment typo Noticed this while writing the following patch. We cd to $srcdir, not $objdir. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.base/completion.exp: Fix comment typo. commit 597bf39df91c9a2e27cf1966dd4c942ac645ae33 Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Remove "show" command completers, "set" command completers for string commands The default command completer is symbol_completer, but it makes no sense for a "show" command to complete on symbols, or anything else, really. I wonder whether we should instead make the default be no completer. That seems like a much larger/complicated audit/change, so I'd like to move forward with this version, as it'll be covered by tests. I noticed this because a following patch will add a new gdb.base/settings.exp testcase that exercises all sorts of details of settings commands, including completing the show commands, using new representative "maint test-settings " commands. Also remove the completer for var_string and var_string_noescape commands. No point in completing symbols when GDB is expecting a string. gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-decode.c (add_setshow_cmd_full): Remove "show" completer. (add_setshow_string_cmd, add_setshow_string_noescape_cmd): Remove "set" completers. commit 48c410fb70fe09c036e27092880db687e5c2fb0b Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Fix "set enum-command value junk" With enum commands, we currently fail to notice junk after the value. Currently: (gdb) set print entry-values compact foo (gdb) show print entry-values foo Printing of function arguments at function entry is "compact". After this fix: (gdb) set print entry-values compact foo Junk after item "compact": foo gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-setshow.c (do_set_command) : Detect junk after item. commit 93bcb04349eb500781747a542ececc7a8ba3bd95 Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Allow "unlimited" abbreviations Currently we can abbreviate "on/off/enable/disable/yes/no" in boolean settings, (gdb) set non-stop of (gdb) set non-stop en we can abbreviate the items of enumeration commands, (gdb) set print frame-arguments scal (gdb) set scheduler-locking rep but we cannot abbreviate "unlimited" in integer commands. (gdb) set print elements u No symbol "u" in current context. This commit fixes that. Testcases will be in gdb.base/settings.exp and gdb.base/options.exp, in following patches. gdb/ChangeLog: 2019-06-13 Pedro Alves * cli/cli-setshow.c (is_unlimited_literal): Allow abbreviations. commit cbba3ecd36f0f861e4e810fbd5415c9759080cdc Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Make check_for_argument skip whitespace after arg itself Basically every caller of check_for_argument needs to skip space after the argument. This patch makes check_for_argument do it itself. Suggested by Philippe Waroquiers. gdb/ChangeLog: 2019-06-13 Pedro Alves * ax-gdb.c (agent_command_1): Remove skip_spaces call. * breakpoint.c (watch_maybe_just_location): Remove skip_spaces call. * cli/cli-cmds.c (apropos_command): Remove skip_spaces call. * cli/cli-utils.c (extract_info_print_args): Remove skip_spaces calls. (check_for_argument): Skip spaces after argument. commit b9a3f8429b012b753e30a4222bd8e4cbba019fad Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Fix TID parser bug I noticed this inconsistency in the error messages below: (gdb) print --1 Left operand of assignment is not an lvalue. (gdb) thread apply 1 print --1 Thread 1 (Thread 0x7ffff7fb6740 (LWP 17805)): inverted range The "inverted range" error happens because get_number_trailer returns 0 to indicate error, but number_or_range_parser::get_number is not checking for that. I tried detected the error there, but that doesn't work because number_of_range_parser is used in places that _do_ want to legitimately handle 0. IMO we should fix get_number_trailer's interface or use something else when we want to parse 0 too. I've decided to fix it in a different way, similarly to how number_or_range_parser::finished was changed in commit 529c08b25ec7 ("Add helper functions parse_flags and parse_flags_qcs"). Seems like a good change, even if we tweaked number_or_range_parser::get_number, as it simplifies thread_apply_command and makes them consistent with number_or_range_parser::finished(). We now get the same error message in both cases: (gdb) print --1 Left operand of assignment is not an lvalue. (gdb) thread apply 1 print --1 Thread 1 (Thread 0x7ffff7fb6740 (LWP 17805)): Left operand of assignment is not an lvalue. gdb/ChangeLog: 2019-06-13 Pedro Alves * thread.c (thread_apply_command): Adjust TID parsing. * tid-parse.c (tid_range_parser::finished): Ensure parsing end is detected before end of string. (tid_is_in_list): Error out if LIST is invalid. gdb/testsuite/ChangeLog: 2019-06-13 Pedro Alves * gdb.multi/tids.exp: Adjust expected output. Add "thread apply 1 foo --1" test. commit 3844e605e61777555aed09ab8ce88db2da95bc0b Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Fix latent bug with custom word point completers Completion routines that use a custom word point, and that then recurse into complete_line (e.g., if we make "thread apply" a custom word point completer, and complete on the command passed as argument), we stumble on this latent bug: (gdb) thread apply all pri[TAB] (gdb) thread apply all priprint The problem is that there's a spot in complete_line_internal_1 that rewinds the completion word but does not reflect that change in the custom word point in the tracker. This patch fixes it. gdb/ChangeLog: 2019-06-13 Pedro Alves * completer.c (complete_line_internal_1): Rewind completion word point. (completion_tracker::advance_custom_word_point_by): Change parameter type to int. * completer.h (completion_tracker::advance_custom_word_point_by): Likewise. commit 00b56dbe7016bc33f882525a47faab943fdeda9a Author: Pedro Alves Date: Thu Jun 13 00:06:52 2019 +0100 Fix latent bug in custom word point completion handling Without this fix, if we switch the "print" completer to custom word point handling, we regress gdb.base/completion.exp like this: (gdb) p "break1.c FAIL: gdb.base/completion.exp: complete 'p "break1' (timeout) The problem is that completing an expression that starts with double quotes, and resolves to a filename, like this: (gdb) p "break1[TAB] would change from this, with current master: (gdb) p "break1.c"| ^^^^^^^^^^| \- cursor here to this: (gdb) p "break1.c | ^^^^^^^^^^| \- quote replaced by space The issue is that completer.c:advance_to_completion_word misses telling the completion tracker to emulate readline's handling of completing a string when rl_find_completion_word returns a delimiter. This commit fixes the latent bug. gdb/ChangeLog: 2019-06-13 Pedro Alves * completer.c (advance_to_completion_word): Handle delimiters. commit e4c4ac46e8e7ef92311181f85b193af369897151 Author: Stafford Horne Date: Thu Jun 13 06:16:19 2019 +0900 opcodes/or1k: Regenerate opcodes This picks up changes for: - new orfpx64a32 spec additions - new unordered instructions - symbol and documentation updates opcodes/ChangeLog: * or1k-asm.c: Regenerated. * or1k-desc.c: Regenerated. * or1k-desc.h: Regenerated. * or1k-dis.c: Regenerated. * or1k-ibld.c: Regenerated. * or1k-opc.c: Regenerated. * or1k-opc.h: Regenerated. * or1k-opinst.c: Regenerated. commit a2e4218f237dd1555249555f8be4165aa8e56b6a Author: Stafford Horne Date: Thu Jun 13 06:16:19 2019 +0900 cpu/or1k: Update fpu compare symbols to imply set flag The fpu compare symbols where not including 'sf' in the mnemonic. So instead of `lf-sfeq` (implying set flag if operands are equal) we were having `lf-eq`. This patch adds the 'sf'. This helps with making the generated CGEN documentation consistent and ordered correctly. cpu/ChangeLog: yyyy-mm-dd Stafford Horne * or1korfpx.cpu (float-setflag-insn-base): Add 'sf' to symbol. commit eb212c84a12bd0adb29792737ab2423d72c182f7 Author: Stafford Horne Date: Thu Jun 13 06:16:19 2019 +0900 cpu/or1k: Document no branch delay slot architectures and l.adrp The 'nd' architectures did not mention what the 'nd' stands for. Document that these mean 'no brach delay slot'. cpu/ChangeLog: yyyy-mm-dd Stafford Horne * or1k.cpu (or64nd, or32nd, or1200nd): Update comment.a (l-adrp): Improve comment. commit d3ad6278d6b977cfeb3156b65862224899549c76 Author: Stafford Horne Date: Thu Jun 13 06:16:19 2019 +0900 cpu/or1k: Define unordered comparisons Add support for new floating point unordered comparisons. These have been defined in OpenRISC architecture proposal 7[0] and are now included in the architecture specification 1.3. These new instructions provide the ability for floating point comparisons to detect NaNs. [0] https://openrisc.io/proposals/lfsf cpu/ChangeLog: yyyy-mm-dd Stafford Horne * or1korfpx.cpu (insn-opcode-float-regreg): Add SFUEQ_S, SFUNE_S, SFUGT_S, SFUGE_S, SFULT_S, SFULE_S, SFUN_S, SFUEQ_D, SFUNE_D, SFUGT_D, SFUGE_D, SFULT_D, SFULE_D, SFUN_D opcodes. (float-setflag-insn-base): New pmacro based on float-setflag-insn. (float-setflag-symantics, float-setflag-unordered-cmp-symantics, float-setflag-unordered-symantics): New pmacro for instruction symantics. (float-setflag-insn): Update to use float-setflag-insn-base. (float-setflag-unordered-insn): New pmacro for generating instructions. commit 6ce26ac7c381c78858b9a7bac344b5cd04bfb03e Author: Stafford Horne Date: Thu Jun 13 06:16:18 2019 +0900 cpu/or1k: Add support for orfp64a32 spec This patch adds support for OpenRISC 64-bit FPU operations on 32-bit cores by using register pairs. The functionality has been added to OpenRISC architecture specification version 1.3 as per architecture proposal 14[0]. For supporting assembly of both 64-bit and 32-bit precision instructions we have defined CGEN_VALIDATE_INSN_SUPPORTED. This allows cgen to use 64-bit bit architecture assembly parsing on 64-bit toolchains and 32-bit architecture assembly parsing on 32-bit toolchains. Without this the assembler has issues parsing register pairs. This patch also contains a few fixes to the symantics for existing OpenRISC single and double precision FPU operations. [0] https://openrisc.io/proposals/orfpx64a32 cpu/ChangeLog: yyyy-mm-dd Andrey Bacherov Stafford Horne * or1k.cpu (ORFPX64A32-MACHS): New pmacro. (ORFPX-MACHS): Removed pmacro. * or1k.opc (or1k_cgen_insn_supported): New function. (CGEN_VALIDATE_INSN_SUPPORTED): Define macro. (parse_regpair, print_regpair): New functions. * or1kcommon.cpu (h-spr, spr-shift, spr-address, h-gpr): Reorder and add comments. (h-fdr): Update comment to indicate or64. (reg-pair-reg-lo, reg-pair-reg-hi): New pmacros for register pairs. (h-fd32r): New hardware for 64-bit fpu registers. (h-i64r): New hardware for 64-bit int registers. * or1korbis.cpu (f-resv-8-1): New field. * or1korfpx.cpu (rDSF, rASF, rBSF): Update attribute to ORFPX32-MACHS. (rDDF, rADF, rBDF): Update operand comment to indicate or64. (f-rdoff-10-1, f-raoff-9-1, f-rboff-8-1): New fields. (h-roff1): New hardware. (double-field-and-ops mnemonic): New pmacro to generate operations rDD32F, rAD32F, rBD32F, rDDI and rADI. (float-regreg-insn): Update single precision generator to MACH ORFPX32-MACHS. Add generator for or32 64-bit instructions. (float-setflag-insn): Update single precision generator to MACH ORFPX32-MACHS. Fix double instructions from single to double precision. Add generator for or32 64-bit instructions. (float-cust-insn cust-num): Update single precision generator to MACH ORFPX32-MACHS. Add generator for or32 64-bit instructions. (lf-rem-s, lf-itof-s, lf-ftoi-s, lf-madd-s): Update MACH to ORFPX32-MACHS. (lf-rem-d): Fix operation from mod to rem. (lf-rem-d32, lf-itof-d32, lf-ftoi-d32, lf-madd-d32): New instruction. (lf-itof-d): Fix operands from single to double. (lf-ftoi-d): Update operand mode from DI to WI. commit a0e44ef56c4d1a20785fe3bcb368638d1af148cf Author: Peter Bergner Date: Wed Jun 12 15:51:01 2019 -0500 Add missing ChangeLog entries commit 6fbc939cfdbdf02f205c20925583738b0f835e62 Author: Peter Bergner Date: Wed Jun 12 15:48:53 2019 -0500 Remove the ldmx mnemonic that never made it into POWER9. opcodes/ * ppc-opc.c (powerpc_opcodes) : Delete mnemonic. gas/ * testsuite/gas/ppc/power9.d: Delete ldmx tests. * testsuite/gas/ppc/power9.s: Likewise. commit 62e0492f5723dd3db5e5a48a3a0ac161d7ba2701 Author: Adam Lackorzymski Date: Wed Jun 12 15:05:21 2019 +0100 Prevent a seg-fault from objdup when disassembling binaries which do not contain a symbol table. PR 24643 * elf32-arm.c (arm_elf_find_function): Fail if the symol table is absent, or the bfd is not in the ELF formart. * elfnn-aarch64.c (aarch64_elf_find_function): Likewise. commit 9abca70219e8e15991b9a4d3034672c9f720234f Author: Christos Zoulas Date: Wed Jun 12 14:51:17 2019 +0100 Add support for NetBSD PaX notes to readelf. PR 24663 * readelf.c (process_netbsd_elf_note): Add support for NT_NETBSD_PAX. (process_note): Add support for PaX notes. commit c0d38b0ec6756de6a0b68477e47bb8619eef2262 Author: Christos Zoulas Date: Wed Jun 12 14:35:04 2019 +0100 Add support for NetBSD/sh3 core reg sections to readelf. PR 24665 * readelf.c (get_netbsd_elfcore_note_type): Add support for SH core notes. commit 540e617049db92b4371fa90cadd4cd994508f86d Author: Christos Zoulas Date: Wed Jun 12 13:52:04 2019 +0100 Add support to readelf to display NetBSD auxv notes in core files. PR 24664 * readelf.c (get_netbsd_elfcore_note_type): Add support for NetBSD auxv notes. commit 0529f3fe5c33894387df407b2f33879da7778e08 Author: GDB Administrator Date: Wed Jun 12 00:00:16 2019 +0000 Automatic date update in version.in commit d106773eaca95698838b930a7b512469a38a6771 Author: Pedro Alves Date: Tue Jun 11 20:37:09 2019 +0100 Dwarf: Don't add nameless modules to partial symbol table (ChangeLogs) Add missing ChangeLog entries for previous commit. gdb/ChangeLog: 2019-06-11 Bernhard Heckel * dwarf2read.c (add_partial_symbol): Skip nameless modules. gdb/testsuite/Changelog: 2019-06-11 Bernhard Heckel * gdb.fortran/block-data.f: New. * gdb.fortran/block-data.exp: New. commit a5fd13a91534b1c79a4b61995894a5bb4f08d3b0 Author: Bernhard Heckel Date: Wed Feb 27 15:21:12 2019 +0100 Dwarf: Don't add nameless modules to partial symbol table A name for BLOCK DATA in Fortran is optional. If no name has been assigned, GDB crashes during read-in of DWARF when BLOCK DATA is represented via DW_TAG_module. BLOCK DATA is used for one-time initialization of non-pointer variables in named common blocks. As of now there is no issue when gfortran is used as DW_TAG_module is not emitted. However, with Intel ifort the nameless DW_TAG_module is present and has the following form: ... <1>
: Abbrev Number: 7 (DW_TAG_module) DW_AT_decl_line : 46 DW_AT_decl_file : 1 DW_AT_description : (indirect string, offset: 0x110): block data DW_AT_high_pc : 0x402bb7 DW_AT_low_pc : 0x402bb7 ... The missing name leads to a crash in add_partial_symbol, during length calculation. gdb/ChangeLog: 2019-06-11 Bernhard Heckel * dwarf2read.c (add_partial_symbol): Skip nameless modules. gdb/testsuite/Changelog: 2019-06-11 Bernhard Heckel * gdb.fortran/block-data.f: New. * gdb.fortran/block-data.exp: New. commit 2057d69dccf36206be3bec5d48ff165621e9a06c Author: Christos Zoulas Date: Tue Jun 11 16:43:25 2019 +0100 Add support for reporting Alpha and Vax symbol visibility in readelf. PR 24662 * readelf.c (get_alpha_symbol_other): New function. (get_symbol_other): Use for Alpha symbols. (is_32bit_pcrel_reloc): Add R_VAX_PCREL32. commit 08f10e02be1bb218d6edcde87b9f59dd11b40a78 Author: Tom Tromey Date: Wed May 29 15:49:10 2019 -0600 Move gdb's xmalloc and friends to new file When "common" becomes a library, linking will cause a symbol clash, because "xmalloc" and some related symbols are defined in that library, libiberty, and readline. To work around this problem, this patch moves the clashing symbols to a new file, which is then compiled separately for both gdb and gdbserver. gdb/ChangeLog 2019-06-11 Tom Tromey * common/common-utils.c (xmalloc, xrealloc, xcalloc) (xmalloc_failed): Move to alloc.c. * alloc.c: New file. * Makefile.in (COMMON_SFILES): Add alloc.c. gdb/gdbserver/ChangeLog 2019-06-11 Tom Tromey * Makefile.in (SFILES): Add alloc.c. (OBS): Add alloc.o. (IPA_OBJS): Add alloc-ipa.o. (alloc-ipa.o): New target. (%.o: ../%.c): New pattern rule. commit 1c7fe9515dc1e8aa6378075ef56a646c1efdf7f5 Author: Tom Tromey Date: Sun May 5 18:28:13 2019 -0600 Remove linux-waitpid.c debugging code The debugging code in linux-waitpid.c is one of the few remaining spots that depends on the gdb/gdbserver difference. My first thought was that this code is not extremely useful, so this patch removes this code. (However, if it is actually useful to someone, we could make it work by introducing a new abstraction.) gdb/ChangeLog 2019-06-11 Tom Tromey * nat/linux-waitpid.c: Don't include server.h. (linux_debug): Remove. (my_waitpid): Update. commit c93dbb25ac4dba2e959bfd30684a36773298c853 Author: Christos Zoulas Date: Tue Jun 11 14:36:47 2019 +0100 Fix an unitinitalised local variable in decode_arm_unwind(). PR 24661 * readelf.c (decode_arm_unwind): Ensure that the local variable 'addr' is always initialised. commit 89549d7f4d27b63c4aaab4456e21dab1ee96a40a Author: Tom Tromey Date: Tue Jun 4 06:17:09 2019 -0600 Remove trailing newlines from help text I noticed recently that some command had a trailing newline in its "help" output. So, I temporarily hacked cli-decode.c to print something when a new command was installed that had a trailing newline in its help message, and wrote this patch, which removes all the ones I could find this way. (There could still be a few more in *-nat files.) Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-11 Tom Tromey * infcall.c (_initialize_infcall): Remove trailing newline from help. * user-regs.c (_initialize_user_regs): Remove trailing newline from help. * typeprint.c (_initialize_typeprint): Remove trailing newline from help. * reverse.c (_initialize_reverse): Remove trailing newlines from help. * tracepoint.c (_initialize_tracepoint): Remove trailing newlines from help. * language.c (add_set_language_command): Remove trailing newline from help. * infcmd.c (_initialize_infcmd): Remove trailing newlines from help. * disasm.c (_initialize_disasm): Remove trailing newline from help. * top.c (init_main): Remove trailing newline from help. * interps.c (_initialize_interpreter): Remove trailing newline from help. * btrace.c (_initialize_btrace): Remove trailing newlines from help. * breakpoint.c (_initialize_breakpoint): Remove trailing newline from help. * python/python.c (_initialize_python): Remove trailing newline from help. * spu-tdep.c (_initialize_spu_tdep): Remove trailing newlines from help. * tui/tui-win.c (_initialize_tui_win): Remove trailing newlines from help. Reformat some text. * tui/tui-stack.c (_initialize_tui_stack): Remove trailing newline from help. * tui/tui-layout.c (_initialize_tui_layout): Remove trailing newline from help. commit fea82da0fe15137fda0056c0f0b92b6e70997ea8 Author: Tom de Vries Date: Tue Jun 11 13:54:10 2019 +0200 [gdb/testsuite] Fix remove-inferiors.exp FAIL with readnow board We see this failure with the readnow board: ... FAIL: gdb.multi/remove-inferiors.exp: load binary ... When running with board readnow, an extra message "Expanding full symbols" is emitted after the "Reading symbols" message, and the regexp corresponding to the FAIL only allows the first message. Fix this by allowing the extra message in the regexp. gdb/testsuite/ChangeLog: 2019-06-11 Tom de Vries PR testsuite/24521 * gdb.multi/remove-inferiors.exp: Allow "Expanding full symbols" message. commit 86108c1311d82af6707d38e6d3dae1ec0aa92ec9 Author: Tom Tromey Date: Mon Jun 10 22:49:04 2019 +0200 Remove shadowing from darwin-nat.c Building on Darwin with gcc showed that darwin-nat.c had some shadowing variable declarations. This removes them. gdb/ChangeLog 2019-06-11 Tom Tromey * darwin-nat.c (darwin_decode_exception_message) (darwin_decode_message, darwin_nat_target::kill): Fix shadowing. commit 8c2e74f18120dd2f2da7d653466c79dea6841b5e Author: Tom de Vries Date: Tue Jun 11 13:22:27 2019 +0200 [gdb/testsuite] Fix main high_pc in nonvar-access.exp When running gdb.dwarf2/nonvar-access.exp with board readnow, we have: ... FAIL: gdb.dwarf2/nonvar-access.exp: print/x def_implicit_s ... and 12 more similar failures. I've tracked this down to the range of main being hardcoded to [_main, _main+0x10000) in the dwarf assembly: ... DW_TAG_subprogram { {name main} {DW_AT_external 1 flag} {low_pc [gdb_target_symbol main] DW_FORM_addr} {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr} } { ... which overlaps with the .debug_info for the elf-init.c CU (containing __libc_csu_init and __libc_csu_fini). Fix this by using function_range to find the actual range of main. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-06-11 Tom de Vries PR testsuite/24521 * gdb.dwarf2/nonvar-access.exp: Fix main high_pc. commit b49851c8e2bbb38e0e0f977e3fcc7abe3ad157b5 Author: Tom de Vries Date: Tue Jun 11 09:42:56 2019 +0200 [gdb/testsuite] Add readnow.exp Add a target board to test -readnow. gdb/testsuite/ChangeLog: 2019-06-11 Tom de Vries * boards/readnow.exp: New file. commit 8bbce0c70250334f436b4e52983f3538d3bdb9ce Author: GDB Administrator Date: Tue Jun 11 00:00:19 2019 +0000 Automatic date update in version.in commit a7067863418451b27130bb4300ac1890ff806c12 Author: Andrew Burgess Date: Thu May 23 19:49:41 2019 +0100 gdb: Check for not allocated/associated values during array slicing When extracting an array slice we should give up if the array is not-allocated or not-associated. For Fortran, at least in gfortran compiled code, the upper and lower bounds are undefined if the array is not allocated or not associated, in which case performing checks against these bounds will result in undefined behaviour. Better then to throw an error if we try to slice such an array. This changes the error message that the user will receive in these cases (if they got an error message before). Previously they may have gotten "slice out of range" now they'll get "array not allocated" or "array not associated". gdb/ChangeLog: * valops.c (value_slice): Check for not allocated or not associated values. gdb/testsuite/ChangeLog: * gdb.fortran/vla-sizeof.exp: Update expected results. commit 9ab084121f50a6858b7298de6c5326cee3687c43 Author: Tom de Vries Date: Mon Jun 10 20:27:09 2019 +0200 [gdb] Fix heap-buffer-overflow in cp_find_first_component_aux When compiling gdb with '-lasan -fsanitizer=address' and running tests with: - export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0", - target board cc-with-gdb-index, - the "[gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver" commit reverted to avoid running into PR24617, we get with gdb.arch/amd64-init-x87-values.exp: ... ==31229==ERROR: AddressSanitizer: heap-buffer-overflow on address \ 0x62500098c93c at pc 0x000000bcc748 bp 0x7ffe39487660 sp 0x7ffe39487658 READ of size 1 at 0x62500098c93c thread T0 #0 0xbcc747 in cp_find_first_component_aux src/gdb/cp-support.c:999 #1 0xbcc6e9 in cp_find_first_component(char const*) \ src/gdb/cp-support.c:977 #2 0xcc2cf3 in mapped_index_base::build_name_components() \ src/gdb/dwarf2read.c:4499 #3 0xcc3322 in dw2_expand_symtabs_matching_symbol src/gdb/dwarf2read.c:4552 #4 0xcc817f in dw2_expand_symtabs_matching src/gdb/dwarf2read.c:5228 #5 0xfe8f48 in iterate_over_all_matching_symtabs src/gdb/linespec.c:1147 #6 0x1003506 in add_matching_symbols_to_info src/gdb/linespec.c:4413 #7 0xffe21b in find_function_symbols src/gdb/linespec.c:3886 #8 0xffe4a2 in find_linespec_symbols src/gdb/linespec.c:3914 #9 0xfee3ad in linespec_parse_basic src/gdb/linespec.c:1865 #10 0xff5128 in parse_linespec src/gdb/linespec.c:2655 #11 0xff8872 in event_location_to_sals src/gdb/linespec.c:3150 #12 0xff90a8 in decode_line_full(event_location const*, int, \ program_space*, symtab*, int, linespec_result*, \ char const*, char const*) src/gdb/linespec.c:3230 #13 0x9ce449 in parse_breakpoint_sals src/gdb/breakpoint.c:9057 #14 0x9ea022 in create_sals_from_location_default src/gdb/breakpoint.c:13708 #15 0x9e2c1f in bkpt_create_sals_from_location src/gdb/breakpoint.c:12514 #16 0x9cff06 in create_breakpoint(gdbarch*, event_location const*, \ char const*, int, char const*, int, int, bptype, int, \ auto_boolean, breakpoint_ops const*, int, int, int, \ unsigned int) src/gdb/breakpoint.c:9238 #17 0x9d114a in break_command_1 src/gdb/breakpoint.c:9402 #18 0x9d1b60 in break_command(char const*, int) src/gdb/breakpoint.c:9473 #19 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106 #20 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \ src/gdb/cli/cli-decode.c:1892 #21 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630 #22 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586 #23 0xdde7c1 in command_line_handler(std::unique_ptr >&&) src/gdb/event-top.c:773 #24 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217 #25 0x16f2198 in rl_callback_read_char src/readline/callback.c:220 #26 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \ src/gdb/event-top.c:175 #27 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192 #28 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514 #29 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731 #30 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857 #31 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321 #32 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370 #33 0x10a7715 in captured_command_loop src/gdb/main.c:331 #34 0x10aa548 in captured_main src/gdb/main.c:1173 #35 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188 #36 0x87bd35 in main src/gdb/gdb.c:32 #37 0x7f16e1434f89 in __libc_start_main (/lib64/libc.so.6+0x20f89) #38 0x87bb49 in _start (build/gdb/gdb+0x87bb49) 0x62500098c93c is located 0 bytes to the right of 8252-byte region \ [0x62500098a900,0x62500098c93c) allocated by thread T0 here: #0 0x7f16e359a600 in malloc (/usr/lib64/libasan.so.5+0xeb600) #1 0x1742ddf in bfd_malloc src/bfd/libbfd.c:275 #2 0x1738824 in bfd_get_full_section_contents src/bfd/compress.c:253 #3 0xe30044 in gdb_bfd_map_section(bfd_section*, unsigned long*) \ src/gdb/gdb_bfd.c:704 #4 0xcb56bf in dwarf2_read_section(objfile*, dwarf2_section_info*) \ src/gdb/dwarf2read.c:2539 #5 0xd5bcd0 in get_gdb_index_contents_from_section \ src/gdb/dwarf2read.c:6217 #6 0xd7fc7d in gdb::function_view \ (...) const src/gdb/common/function-view.h:284 #7 0xd7fddd in gdb::function_view \ (...) src/gdb/common/function-view.h:278 #8 0xd730cf in gdb::function_view \ (...) const src/gdb/common/function-view.h:247 #9 0xcbc7ee in dwarf2_read_gdb_index src/gdb/dwarf2read.c:3582 #10 0xcce731 in dwarf2_initialize_objfile(objfile*, dw_index_kind*) \ src/gdb/dwarf2read.c:6297 #11 0xdb88c4 in elf_symfile_read src/gdb/elfread.c:1256 #12 0x141262a in read_symbols src/gdb/symfile.c:798 #13 0x14140a7 in syms_from_objfile_1 src/gdb/symfile.c:1000 #14 0x1414393 in syms_from_objfile src/gdb/symfile.c:1017 #15 0x1414fb7 in symbol_file_add_with_addrs src/gdb/symfile.c:1124 #16 0x14159b7 in symbol_file_add_from_bfd(bfd*, char const*, \ enum_flags, std::vector >*, \ enum_flags, objfile*) src/gdb/symfile.c:1203 #17 0x1415b6c in symbol_file_add(char const*, enum_flags, std::vector >*, \ enum_flags) src/gdb/symfile.c:1216 #18 0x1415f2f in symbol_file_add_main_1 src/gdb/symfile.c:1240 #19 0x1418599 in symbol_file_command(char const*, int) \ src/gdb/symfile.c:1675 #20 0xde2fa6 in file_command src/gdb/exec.c:433 #21 0xac96aa in do_const_cfunc src/gdb/cli/cli-decode.c:106 #22 0xad0e5a in cmd_func(cmd_list_element*, char const*, int) \ src/gdb/cli/cli-decode.c:1892 #23 0x15226f6 in execute_command(char const*, int) src/gdb/top.c:630 #24 0xddde37 in command_handler(char const*) src/gdb/event-top.c:586 #25 0xdde7c1 in command_line_handler(std::unique_ptr >&&) src/gdb/event-top.c:773 #26 0xddc9e8 in gdb_rl_callback_handler src/gdb/event-top.c:217 #27 0x16f2198 in rl_callback_read_char src/readline/callback.c:220 #28 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \ src/gdb/event-top.c:175 #29 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192 SUMMARY: AddressSanitizer: heap-buffer-overflow src/gdb/cp-support.c:999 in \ cp_find_first_component_aux Shadow bytes around the buggy address: 0x0c4a801298d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c4a801298e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c4a801298f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c4a80129900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c4a80129910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c4a80129920: 00 00 00 00 00 00 00[04]fa fa fa fa fa fa fa fa 0x0c4a80129930: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c4a80129940: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c4a80129950: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c4a80129960: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c4a80129970: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==31229==ABORTING ... The problem happens as follows. The executable amd64-init-x87-values gets an index (due to target board cc-with-gdb-index), which looks as follows: ... Hex dump of section '.gdb_index': 0x00000000 08000000 18000000 28000000 28000000 ........(...(... 0x00000010 3c000000 3c200000 00000000 00000000 <...< .......... 0x00000020 2e000000 00000000 d4004000 00000000 ..........@..... 0x00000030 db004000 00000000 00000000 00000000 ..@............. 0x00000040 00000000 00000000 00000000 00000000 ................ 0x00000050 00000000 00000000 00000000 00000000 ................ ... more zeroes ... 0x00002010 00000000 00000000 00000000 00000000 ................ 0x00002020 00000000 00000000 00000000 00000000 ................ 0x00002030 00000000 00000000 00000000 ............ ... The structure of this index is: ... header : [0x0, 0x18) : size 0x18 culist : [0x18 ,0x28) : size 0x10 typesculist : [0x28, 0x28) : size 0x0 adress area : [0x28, 0x3c) : size 0x14 symbol table : [0x3c, 0x203c) : size 0x2000 constant pool: [0x203c, 0x203c): size 0x0 EOF : 0x203c ... Note that the symbol table consists entirely of empty slots (where an empty slot is a pair of 32-bit zeroes), and that the constant pool is empty. The problem happens here in mapped_index_base::build_name_components: ... auto count = this->symbol_name_count (); for (offset_type idx = 0; idx < count; idx++) { if (this->symbol_name_slot_invalid (idx)) continue; const char *name = this->symbol_name_at (idx); ... when accessing the slot at idx == 0 in the symbol table, symbol_name_slot_invalid returns false so we calculate name, which is calculated using 'constant_pool + symbol_table[idx].name', which means we get name == constant_pool. And given that the constant pool is empty, name now points past the memory allocated for the index, and when we access name[0] for the first time in cp_find_first_component_aux, we run into the heap-buffer-overflow. Fix this by fixing the definition of symbol_name_slot_invalid: ... - return bucket.name == 0 && bucket.vec; + return bucket.name == 0 && bucket.vec == 0; ... Tested on x86_64-linux. gdb/ChangeLog: 2019-06-10 Tom de Vries PR gdb/24618 * dwarf2read.c (struct mapped_index::symbol_name_slot_invalid): Make sure an empty slot (defined by a 32-bit zero pair) is recognized as invalid. commit f19e22e9226444ee566b5b5633c0a48a4f981eda Author: Tom de Vries Date: Mon Jun 10 20:17:14 2019 +0200 [gdb] Fix dynamic-stack-buffer-overflow in linespec_lexer_lex_string When compiling gdb with '-lasan -fsanitizer=address' and running tests with 'export ASAN_OPTIONS="detect_leaks=0:alloc_dealloc_mismatch=0"', I run into: ... ERROR: GDB process no longer exists UNRESOLVED: gdb.linespec/cpls-abi-tag.exp: \ test_abi_tag: completion: at tag: tab complete "b test_abi_tag_function[abi:" ... In more detail: ... ==3637==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address \ 0x7fff5952bbdd at pc 0x000000fe5c57 bp 0x7fff5952af30 sp 0x7fff5952af28 READ of size 1 at 0x7fff5952bbdd thread T0 #0 0xfe5c56 in linespec_lexer_lex_string src/gdb/linespec.c:727 #1 0xfe7473 in linespec_lexer_lex_one src/gdb/linespec.c:946 #2 0xfe799d in linespec_lexer_consume_token src/gdb/linespec.c:982 #3 0xff446d in parse_linespec src/gdb/linespec.c:2564 #4 0xff78be in linespec_complete(completion_tracker&, char const*, \ symbol_name_match_type) src/gdb/linespec.c:2961 #5 0xb9299c in complete_address_and_linespec_locations \ src/gdb/completer.c:573 #6 0xb93e90 in location_completer(cmd_list_element*, completion_tracker&, \ char const*, char const*) src/gdb/completer.c:919 #7 0xb940c5 in location_completer_handle_brkchars src/gdb/completer.c:956 #8 0xb957ec in complete_line_internal_normal_command \ src/gdb/completer.c:1208 #9 0xb96507 in complete_line_internal_1 src/gdb/completer.c:1430 #10 0xb965c2 in complete_line_internal src/gdb/completer.c:1449 #11 0xb98630 in gdb_completion_word_break_characters_throw \ src/gdb/completer.c:1862 #12 0xb98838 in gdb_completion_word_break_characters() \ src/gdb/completer.c:1897 #13 0x16c6362 in _rl_find_completion_word src/readline/complete.c:943 #14 0x16ca8d0 in rl_complete_internal src/readline/complete.c:1843 #15 0x16c460c in rl_complete src/readline/complete.c:408 #16 0x16b3368 in _rl_dispatch_subseq src/readline/readline.c:774 #17 0x16b3092 in _rl_dispatch src/readline/readline.c:724 #18 0x16b2939 in readline_internal_char src/readline/readline.c:552 #19 0x16f1fb0 in rl_callback_read_char src/readline/callback.c:201 #20 0xddc5a1 in gdb_rl_callback_read_char_wrapper_noexcept \ src/gdb/event-top.c:175 #21 0xddc773 in gdb_rl_callback_read_char_wrapper src/gdb/event-top.c:192 #22 0xddd9f5 in stdin_event_handler(int, void*) src/gdb/event-top.c:514 #23 0xdd7d8f in handle_file_event src/gdb/event-loop.c:731 #24 0xdd8607 in gdb_wait_for_event src/gdb/event-loop.c:857 #25 0xdd629c in gdb_do_one_event() src/gdb/event-loop.c:321 #26 0xdd6344 in start_event_loop() src/gdb/event-loop.c:370 #27 0x10a7715 in captured_command_loop src/gdb/main.c:331 #28 0x10aa548 in captured_main src/gdb/main.c:1173 #29 0x10aa5d8 in gdb_main(captured_main_args*) src/gdb/main.c:1188 #30 0x87bd35 in main src/gdb/gdb.c:32 #31 0x7fb0364c6f89 in __libc_start_main (/lib64/libc.so.6+0x20f89) #32 0x87bb49 in _start (build/gdb/gdb+0x87bb49) Address 0x7fff5952bbdd is located in stack of thread T0 at offset 557 in frame #0 0xb93702 in location_completer(cmd_list_element*, completion_tracker&, \ char const*, char const*) src/gdb/completer.c:831 This frame has 4 object(s): [32, 40) 'copy' [96, 104) 'location' [160, 168) 'text' [224, 256) 'completion_info' <== Memory access at offset 557 overflows \ this variable HINT: this may be a false positive if your program uses some custom stack \ unwind mechanism or swapcontext (longjmp and C++ exceptions *are* supported) SUMMARY: AddressSanitizer: dynamic-stack-buffer-overflow \ src/gdb/linespec.c:727 in linespec_lexer_lex_string Shadow bytes around the buggy address: 0x10006b29d720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x10006b29d730: 00 00 00 00 00 00 f1 f1 f1 f1 00 f2 f2 f2 f2 f2 0x10006b29d740: f2 f2 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f2 f2 0x10006b29d750: f2 f2 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00 0x10006b29d760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x10006b29d770: 00 00 00 00 ca ca ca ca 00 00 00[05]cb cb cb cb 0x10006b29d780: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 0x10006b29d790: 00 f2 f2 f2 f2 f2 f2 f2 00 f2 f2 f2 f3 f3 f3 f3 0x10006b29d7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x10006b29d7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x10006b29d7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==3637==ABORTING ... The problem happens in linespec_lexer_lex_string when lexing "b test_abi_tag_function[abi:\0" (using a notation where we make the implicit terminating \0 explicit). We arrrive here with (PARSER_STREAM (parser)) == ":\0": ... /* Do not tokenize ABI tags such as "[abi:cxx11]". */ else if (PARSER_STREAM (parser) - start > 4 && startswith (PARSER_STREAM (parser) - 4, "[abi")) ++(PARSER_STREAM (parser)); ... and consume ':', after which we end up here and consume '\0': ... /* Advance the stream. */ ++(PARSER_STREAM (parser)); ... after which (PARSER_STREAM (parser)) points past the end of the string. Fix this by removing the first "++(PARSER_STREAM (parser))", and add an assert to the second one to detect moving past the end-of-string. Build and tested on x86_64-linux. gdb/ChangeLog: 2019-06-10 Tom de Vries PR gdb/24611 * linespec.c (linespec_lexer_lex_string): Remove incorrect "++(PARSER_STREAM (parser))" for "[abi"-prefixed colon. Add assert. commit e99f9db0f5211455ca4256e8db9d9081967d255e Author: Tom de Vries Date: Mon Jun 10 20:05:04 2019 +0200 [gdb/symtab] Fix symbol loading performance regression The commit "[gdb/symtab] Fix language of duplicate static minimal symbol" introduces a performance regression, when loading a cc1 executable build with -O0 -g and gcc 7.4.0. The performance regression, measured in 'real' time is about 175%. The slower execution comes from the fact that the fix in symbol_set_names makes the call to symbol_find_demangled_name unconditional. Fix this by reverting the commit, and redoing the fix as follows. Recapturing the original problem, the first time symbol_set_names is called with gsymbol.language == lang_auto and linkage_name == "_ZL3foov", the name is not present in the per_bfd->demangled_names_hash hash table, so symbol_find_demangled_name is called to demangle the name, after which the mangled/demangled pair is added to the hashtable. The call to symbol_find_demangled_name also sets gsymbol.language to lang_cplus. The second time symbol_set_names is called with gsymbol.language == lang_auto and linkage_name == "_ZL3foov", the name is present in the hash table, so the demangled name from the hash table is used. However, the language of the symbol remains lang_auto. Fix this by adding a field language in struct demangled_name_entry, and using the field in symbol_set_names to set the language of gsymbol, if necessary. Tested on x86_64-linux. gdb/ChangeLog: 2019-06-10 Tom de Vries PR symtab/24545 * symtab.c (struct demangled_name_entry): Add language field. (symbol_set_names): Revert "[gdb/symtab] Fix language of duplicate static minimal symbol". Set and use language field. commit c6a636ce375d5af4ce0b3aa78b1cc90fd82040bd Author: Nick Clifton Date: Mon Jun 10 15:30:02 2019 +0100 Fix printing large decimal values in strings. PR 24651 * strings.c (print_strings): Use %u to print unsigned values in decimal. commit 9bf7038bb229d6e46a1f1861c257fc47843f114d Author: Tom Tromey Date: Mon Jun 3 09:25:39 2019 -0600 Update help text in ada-lang.c I noticed that the "catch assert" help text erroneously claimed to accept an argument, and while fixing this I went ahead and added "Usage" text and made other minor updates to the commands in ada-lang.c. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-10 Tom Tromey * ada-lang.c (_initialize_ada_language): Update help text. commit 422186a95cbb02ee1d34388adceeb4bd289074b9 Author: Tom Tromey Date: Mon Jun 3 08:07:29 2019 -0600 Remove newlines from warnings ARI pointed out that a recent patch introduced a call to "warning" with a string that ended in a newline: https://sourceware.org/ml/gdb-patches/2019-06/msg00000.html This is generally forbidden, I believe, because warning adds its own newline. This patch removes all of the trailing newlines I was able to find. I searched for 'warning (.*\\n"' and then fixed the ones where the newline appeared at the end of the string (some had internal newlines). Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-10 Tom Tromey * m32c-tdep.c (m32c_m16c_address_to_pointer): Don't end warning with a newline. * guile/guile.c (handle_boot_error): Don't end warning with a newline. * cli/cli-cmds.c (exit_status_set_internal_vars): Don't end warning with a newline. * s12z-tdep.c (s12z_skip_prologue): Don't end warning with a newline. (s12z_frame_cache): Likewise. * dwarf-index-cache.c (index_cache::store): Don't end warning with a newline. * solib-svr4.c (disable_probes_interface): Don't end warning with a newline. * nat/fork-inferior.c (fork_inferior): Don't end warning with a newline. * python/python.c (do_finish_initialization): Don't end warning with a newline. gdb/gdbserver/ChangeLog 2019-06-10 Tom Tromey * remote-utils.c (look_up_one_symbol, relocate_instruction): Don't end warning with a newline. * linux-s390-low.c (s390_get_wordsize): Don't end warning with a newline. * thread-db.c (attach_thread): Don't end warning with a newline. (thread_db_notice_clone): Likewise. * tracepoint.c (gdb_agent_helper_thread): Don't end warning with a newline. * linux-x86-low.c (x86_get_min_fast_tracepoint_insn_len): Don't end warning with a newline. commit 58e07198f34c3a8bb7d64392e8b978a0d741244e Author: Christos Zoulas Date: Mon Jun 10 14:41:35 2019 +0100 Add support for NetBSD/sh3 core file sections. Merge multiple copies of auxv section creation into one function. PR 24650 * elf.c (elfcore_make_auxv_note_section): New function. (elfcore_grok_note): Use it. (elfcore_grok_freebsd_note): Likewise. (elfcore_grok_openbsd_note): Likewise. (elfcore_grok_netbsd_note): Likewise. Plus add support for NT_NETBSDCORE_AUXV notes. commit 25ce02ee7b7667fb7bb882421ff869c080777bee Author: Tom Tromey Date: Fri Jun 7 16:08:47 2019 -0600 Use gdbpy_enter in py-breakpoint.c A few spots in py-breakpoint.c acquire the GIL manually. However, because these spots generate events, and because events are expected to be arbitrary gdb-flavored Python code, it's important to use gdbpy_enter instead, in order to ensure that the other gdb-related Python globals are set correctly. This patch makes this change. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-10 Tom Tromey * python/py-breakpoint.c (gdbpy_breakpoint_created) (gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use gdbpy_enter. commit caa429d81a9999699a40b6394c9fb7b258669d54 Author: Tom Tromey Date: Fri Jun 7 15:01:50 2019 -0600 Delay allocation of dbx_symfile_info I noticed that elfread.c always allocates a dbx_symfile_info, even though this is only ever needed in the unusual case of reading stabs in ELF. This patch moves the allocation into dbxread.c, and applies the same treatment to similar code in coffread.c. Regression tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-10 Tom Tromey * elfread.c (elf_read_minimal_symbols): Don't set the dbx objfile data. (elf_new_init): Don't call stabsread_new_init. * dbxread.c (coffstab_build_psymtabs): Set dbx objfile data. (elfstab_build_psymtabs): Likewise. Call stabsread_new_init. * coffread.c (coff_symfile_init): Don't set the dbx objfile data. commit 2e02f29632218fc24d71fbbefc368d551d0528a7 Author: Christos Zoulas Date: Mon Jun 10 13:15:23 2019 +0100 Tidy up ar_open by using asprintf to replace xmalloc and sprintf. PR 24649 * arsup.c (ar_open): Use asprintf in place of xmalloc and sprintf. commit a3972330f49f81b3bea64af0970d22f42ae56ec3 Author: Martin Liska Date: Fri Jun 7 07:36:52 2019 +0200 Fix a missing include of gold/ChangeLog: 2019-06-07 Martin Liska * errors.h: Include string. commit 81873cc81effbd657efe5f525d369e430ce77d7a Author: Tom de Vries Date: Mon Jun 10 09:28:30 2019 +0200 [gdb/symtab] Support DW_AT_main_subprogram with -readnow. DW_AT_main_subprogram is supported in normal mode in read_partial_die, but not in -readnow mode. Fix this by adding support for DW_AT_main_subprogram in read_func_scope. Tested on x86_64-linux with native and RFC target board readnow ( https://sourceware.org/ml/gdb-patches/2019-05/msg00073.html ). gdb/ChangeLog: 2019-06-10 Tom de Vries PR symtab/16264 PR symtab/24517 * dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram. commit a72f8c4ce397a0bbe98281d4151982330ad16f15 Author: GDB Administrator Date: Mon Jun 10 00:00:20 2019 +0000 Automatic date update in version.in commit 2e1a984c23da8a9dbd2542e3f506de6a64da670d Author: GDB Administrator Date: Sun Jun 9 00:01:03 2019 +0000 Automatic date update in version.in commit c588b266bf1605b38c5f56a5a847e12e65392e4e Author: GDB Administrator Date: Sat Jun 8 00:00:34 2019 +0000 Automatic date update in version.in commit c1b00498af77c012beed6809175f38923906ecb9 Author: Maciej W. Rozycki Date: Fri Jun 7 19:25:21 2019 +0100 LD/doc: Clarify `-rpath' option's semantics WRT link-time dependencies Mention in the description of the `-rpath' LD option the restrictions the option has with respect to searching link-time dependencies of shared objects referred in the link. Previously these restrictions were only documented along with the `-rpath-link' option, which may not be the place one would consider when looking for the semantics of `-rpath'. Copy the relevant part of the `-rpath-link' option description then, splitting the now overlong paragraph into three, for legibility. ld/ * ld.texi (Options): Also document `-rpath' option restrictions in the description of the option itself. commit 942d35f72bea5a0d19a5d0e0a5ca533e37a88b2c Author: Nick Alcock Date: Thu Jun 6 14:10:08 2019 +0100 libctf: avoid strndup Not all platforms have it. Use libiberty xstrndup() instead. (The include of libiberty.h happens in an unusual place due to the requirements of synchronization of most source files between this project and another that does not use libiberty. It serves to pull libiberty.h in for all source files in libctf/, which does the trick.) Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0, sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32. libctf/ * ctf-decls.h: Include . * ctf-lookup.c (ctf_lookup_by_name): Call xstrndup(), not strndup(). commit 595a4d439bc5976d5bdf61da6d44337b3995d967 Author: Nick Alcock Date: Thu Jun 6 13:59:56 2019 +0100 libctf: explicitly cast more size_t types used in printf()s Unsigned long will always be adequate (the only cases involving an ssize_t are cases in which no error can be generated, or in which negative output would require a seriously corrupted file: the latter has been rewritten on a branch in any case). Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0, sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32. libctf/ * ctf-dump.c (ctf_dump_format_type): Cast size_t's used in printf()s. (ctf_dump_objts): Likewise. (ctf_dump_funcs): Likewise. (ctf_dump_member): Likewise. (ctf_dump_str): Likewise. commit f5e73be11b24b6c4b7ecec5f762784c4bb40ec18 Author: Nick Alcock Date: Thu Jun 6 13:59:28 2019 +0100 libctf: mark various args as unused in the !HAVE_MMAP case Tested on x86_64-pc-linux-gnu, x86_64-unknown-freebsd12.0, sparc-sun-solaris2.11, i686-pc-cygwin, i686-w64-mingw32. libctf/ * ctf-archive.c (arc_mmap_header): Mark fd as potentially unused. * ctf-subr.c (ctf_data_protect): Mark both args as potentially unused. commit bec3a0c8224a76b315c1742b8254d04ab06885ac Author: GDB Administrator Date: Fri Jun 7 00:00:14 2019 +0000 Automatic date update in version.in commit 4fa0265edea0940b865678d93749e224547dd36a Author: Руслан Ижбулатов Date: Thu Feb 28 10:25:41 2019 +0000 Apply substitute-path to relative filenames as well When source file path is relative to the build directory (which is considered a good practice and is enforced in certain buildsystems, such as meson), gdb only applies substitute-path to the build directory path. Then gdb appends the source file path to the rewritten build directory path, and tries to access that. This fails if either two of the following conditions are true: a) The user didn't specify substitute-path for the build directory. This is highly likely, since path substitution for build directories is not documented anywhere, and since gdb does not tell[0] the user the path to the build directory, just the source file path. b) The source file path changed. This can also easily happen, since a source path that is relative to the build directory can include any number of directory names that are not part of the program source tree (starting with the name of the root directory of the source tree). Gdb will not apply substitute-path to that relative path, thus there is no way for the user to tell gdb about these changes. This commit changes the code to apply substitute-path to all filenames, both relative and absolute. This way it is possible to do things like: set substitute-path ../foobar-1.0 /src/my/foobar-1.0 which is completely in line with the user expectations. This might break unusual cases where build directory path is also relative (is that even possible?) and happens to match the path to the source directory (i.e. happens to match a substitution rule). [0]: There's a "maintenance info symtabs" command that does show the names of the build directories, but normal users are not required to know or use that. gdb/ChangeLog 2019-06-06 Руслан Ижбулатов * source.c (find_and_open_source): Also rewrite relative file names. commit 1a3da2cd6175e8f25cec95fc685d4f0f43bf6807 Author: Amos Bird Date: Fri Jun 7 01:10:14 2019 +0800 Add thread-exit annotation. gdb/ChangeLog 2019-04-26 Amos Bird * annotate.c (annotate_thread_exited): Add "thread-exited" annotation. gdb/doc/ChangeLog 2019-06-06 Amos Bird * annotate.texinfo (Multi-threaded Apps): Add entry for thread-exited annotation. gdb/testsuite/ChangeLog 2019-06-06 Amos Bird * gdb.base/annota1.exp (thread_switch): Add test for thread-exited annotation. commit dd455cf51d2b273edf6173fcb25fc1e3c5b966b2 Author: H.J. Lu Date: Thu Jun 6 07:57:52 2019 -0700 gas: Add .enqcmd and noenqcmd directives 2019-06-06 Lili Cui * config/tc-i386.c (cpu_arch): Add .enqcmd. (cpu_noarch): Add noenqcmd. * doc/c-i386.texi: Document noenqcmd. commit 8d01b5310ee3c5f8b62eb1b8177e6ab7f25d4a2c Author: H.J. Lu Date: Thu Jun 6 07:55:40 2019 -0700 gas: Correct ChangeLog for commit 5d79adc4b22b0abd commit 3847a7bfbf6340372962c07f31187ff87b4f492c Author: Tom Tromey Date: Thu Apr 11 11:26:02 2019 -0600 Add timestamps to "maint time" output Currently "maint time" will print the amount of time a command took. Sometimes, though, it's useful to have a timestamp as well -- for example if one is correlating a gdb log with some other log. This patch adds a timestamp to the start and end of each command when this setting is in effect. This also removes a "//" comment and changes scoped_command_stats to use DISABLE_COPY_AND_ASSIGN; two minor things I noticed while working on the patch. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-06-06 Tom Tromey * maint.h (class scoped_command_stats): Use DISABLE_COPY_AND_ASSIGN. : New method. * maint.c (scoped_command_stats, ~scoped_command_stats): Call print_time. (scoped_command_stats::print_time): New method. gdb/testsuite/ChangeLog 2019-06-06 Tom Tromey * gdb.base/maint.exp: Expect command started/finished output. commit 237df8fe1863bb47fcf71ce125cd962666173aaa Author: Sudakshina Das Date: Thu Jun 6 12:27:41 2019 +0100 [BFD, AArch64] Fix PT_GNU_PROPERTY alignment issue If the new GNU property section was being created by the linker (this will happen only if none of the inputs have any GNU property section but the command line to the linker forces a bti with --force-bti), the alignment of the section and hence the program header of PT_GNU_PROPERTY type was not being set correctly. This patch fixes this issue. bfd/ChangeLog: 2019-06-06 Sudakshina Das * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Set alignment of the new gnu property section. ld/ChangeLog: 2019-06-06 Sudakshina Das * testsuite/ld-aarch64/aarch64-elf.exp: Add new tests. * testsuite/ld-aarch64/property-bti-pac4-a.d: New test. * testsuite/ld-aarch64/property-bti-pac4-b.d: New test. * testsuite/ld-aarch64/property-bti-pac4.s: New test. commit 8bf6d176b0a442a8091d338d4af971591d19922c Author: Sudakshina Das Date: Thu Jun 6 12:21:14 2019 +0100 [LD, AArch64] Move ELF options behind -z This patch moves the current AArch64 ld options of --force-bti and --pac-plt to -z force-bti and -z pac-plt since these are ELF specific options. *** bfd/ChangeLog *** 2019-06-06 Sudakshina Das * bfd-in.h: Change comment. * bfd-in2.h: Regenerate. * elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Update warning. * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties): Likwise. *** ld/ChangeLog *** 2019-06-06 Sudakshina Das * NEWS: Update options names. * emultempl/aarch64elf.em (OPTION_FORCE_BTI, OPTION_PAC_PLT): Remove. (PARSE_AND_LIST_LONGOPTS): Remove force-bti and pac-plt. (PARSE_AND_LIST_OPTIONS): Update to -z. (PARSE_AND_LIST_ARGS_CASE_Z_AARCH64): New. (PARSE_AND_LIST_ARGS_CASE_Z): Add PARSE_AND_LIST_ARGS_CASE_Z_AARCH64. (PARSE_AND_LIST_ARGS_CASES): Move cases for these options. * testsuite/ld-aarch64/bti-pac-plt-1.d: Update option. * testsuite/ld-aarch64/bti-pac-plt-2.d: Likewise. * testsuite/ld-aarch64/bti-plt-1.d: Likewise. * testsuite/ld-aarch64/bti-plt-2.d: Likewise. * testsuite/ld-aarch64/bti-plt-3.d: Likewise. * testsuite/ld-aarch64/bti-plt-4.d: Likewise. * testsuite/ld-aarch64/bti-plt-6.d: Likewise. * testsuite/ld-aarch64/bti-plt-7.d: Likewise. * testsuite/ld-aarch64/bti-warn.d: Likewise. * testsuite/ld-aarch64/pac-plt-1.d: Likewise. * testsuite/ld-aarch64/pac-plt-2.d: Likewise. commit 811731b21b0a5b5459b33bfcbe26f40c6d9bc7c0 Author: GDB Administrator Date: Thu Jun 6 00:00:21 2019 +0000 Automatic date update in version.in commit 12efd68d159444ad8dfe24e49965a228ba980b86 Author: H.J. Lu Date: Wed Jun 5 10:27:08 2019 -0700 i386: Check vector length for EVEX vextractfXX and vinsertfXX Since not all vector lengths are supported by EVEX vextractfXX and vinsertfXX, decode them only with supported vector lengths. gas/ PR binutils/24633 * testsuite/gas/i386/disassem.s: Add tests for invalid vector lengths for EVEX vextractfXX and vinsertfXX. * testsuite/gas/i386/x86-64-disassem.s: Likewise. * testsuite/gas/i386/disassem.d: Updated. * testsuite/gas/i386/x86-64-disassem.d: Likewise. opcodes/ PR binutils/24633 * i386-dis-evex.h (evex_table): Update EVEX_W_0F3A18_P_2, EVEX_W_0F3A19_P_2, EVEX_W_0F3A1A_P_2 and EVEX_W_0F3A1B_P_2. (evex_len_table): EVEX_LEN_0F3A18_P_2_W_0, EVEX_LEN_0F3A18_P_2_W_1, EVEX_LEN_0F3A19_P_2_W_0, EVEX_LEN_0F3A19_P_2_W_1, EVEX_LEN_0F3A1A_P_2_W_0, EVEX_LEN_0F3A1A_P_2_W_1, EVEX_LEN_0F3A1B_P_2_W_0, EVEX_LEN_0F3A1B_P_2_W_1. * i386-dis.c (EVEX_LEN_0F3A18_P_2_W_0): New enum. (EVEX_LEN_0F3A18_P_2_W_1): Likewise. (EVEX_LEN_0F3A19_P_2_W_0): Likewise. (EVEX_LEN_0F3A19_P_2_W_1): Likewise. (EVEX_LEN_0F3A1A_P_2_W_0): Likewise. (EVEX_LEN_0F3A1A_P_2_W_1): Likewise. (EVEX_LEN_0F3A1B_P_2_W_0): Likewise. (EVEX_LEN_0F3A1B_P_2_W_1): Likewise. commit 62d8e3b73139b159963025b5568ec1f5051450f0 Author: Nick Alcock Date: Wed Jun 5 13:34:36 2019 +0100 libctf: eschew %zi format specifier Too many platforms don't support it, and we can always safely use %lu or %li anyway, because the only uses are in debugging output. libctf/ * ctf-archive.c (ctf_arc_write): Eschew %zi format specifier. (ctf_arc_open_by_offset): Likewise. * ctf-create.c (ctf_add_type): Likewise. commit 0088ba596bba2e0b94139f1c2c4f5875848edbd6 Author: Andrew Burgess Date: Wed Jun 5 10:33:54 2019 +0100 gdb/testsuite: Improve comments in recently added test Remove the use of 'I' within some comments in a recently added test. gdb/testsuite/ChangeLog: * gdb.arch/riscv-unwind-long-insn-6.s: Remove use of 'I' in comment. * gdb.arch/riscv-unwind-long-insn-8.s: Likewise. commit 312617a3d06b8df67b9f4f63f92ebfaa6b591921 Author: Andrew Burgess Date: Tue Jun 4 10:30:41 2019 +0100 gdb/riscv: Don't error when decoding a 6 or 8 byte instruction If the RISC-V prologue scanner finds a 6 or 8 byte instruction we currently throw an internal error, which is not great for the user. A mechanism already exists in the prologue scanner to leave instructions marked as unknown so that we can stop the prologue scan without raising an error, this is used for all 2 and 4 byte instructions that are not part of the small set the prologue scanner actually understands. This commit changes GDB so that all 6 and 8 byte instructions are marked as unknown, rather than causing an error. gdb/ChangeLog: * riscv-tdep.c (riscv_insn::decode): Gracefully ignore instructions of lengths 6 or 8 bytes. gdb/testsuite/ChangeLog: * gdb.arch/riscv-unwind-long-insn-6.s: New file. * gdb.arch/riscv-unwind-long-insn-8.s: New file. * gdb.arch/riscv-unwind-long-insn.c: New file. * gdb.arch/riscv-unwind-long-insn.exp: New file. commit fbe4d6650d714643fe340d9ccba7fc500c26b91d Author: GDB Administrator Date: Wed Jun 5 00:00:20 2019 +0000 Automatic date update in version.in commit b02f78f9285728ce2d05ce01e7b14880f70cd6e6 Author: Pedro Alves Date: Tue Jun 4 22:40:54 2019 +0100 Introduce and use make_unique_xstrdup Adds an utility function to make it shorter to write the common case of wrapping an xstrdup with a unique_xmalloc_ptr, and uses it throughout. Note: I tried to put this in common/common-utils.h near skip_spaces, etc. but that is included in common/common-defs.h before common/gdb_unique_ptr.h is included, so it would fail to compile because gdb::unique_xmalloc_ptr isn't defined at that point yet. I tried moving the gdb_unique_ptr.h inclusion before common-utils.h, but that doesn't work because gdb_unique_ptr.h depends on common-utils.h for xfree. gdb/ChangeLog: 2019-06-04 Pedro Alves * common/gdb_unique_ptr.h (make_unique_xstrdup): New. * ada-lang.c (catch_ada_completer): Use make_unique_xstrdup. * breakpoint.c (condition_completer): Likewise. * cli/cli-dump.c (scan_expression): Likewise. * common/filestuff.c (mkdir_recursive): Likewise. * common/gdb_tilde_expand.c (gdb_tilde_expand_up) * common/pathstuff.c (gdb_realpath, gdb_realpath_keepfile) (gdb_abspath): Likewise. * compile/compile-cplus-types.c (compile_cplus_instance::decl_name): Likewise. * completer.c (complete_explicit_location): (signal_completer, reg_or_group_completer_1): Likewise. * cp-support.c (cp_remove_params_if_any): Likewise. * fbsd-tdep.c (fbsd_core_vnode_path): Likewise. * guile/scm-safe-call.c (gdbscm_safe_eval_string): Likewise. * infcmd.c (strip_bg_char): Likewise. * linespec.c (copy_token_string): Likewise. * mi/mi-main.c (output_cores): Likewise. * psymtab.c (psymtab_search_name): * symfile.c (test_set_ext_lang_command): Likewise. * target.c (target_fileio_read_stralloc): Likewise. * tui/tui-regs.c (tui_reggroup_completer): Likewise. * value.c (complete_internalvar): Likewise. gdb/gdbserver/ChangeLog: 2019-06-04 Pedro Alves * server.c (captured_main): Use make_unique_xstrdup. commit d3238f7d90715dad7e8da2a8c2486d26124b0c84 Author: Pedro Alves Date: Tue Jun 4 22:44:36 2019 +0100 Fix paths to ChangeLog files commit 76fad9996335e52f177c99c1ebf024fc7f761be2 Author: Tom Tromey Date: Tue Jun 4 12:16:57 2019 -0600 Use CHAR_BIT instead of NBBY in libctf On x86-64 Fedora 29, I tried to build a mingw-hosted gdb that targets ppc-linux. You can do this with: ../binutils-gdb/configure --host=i686-w64-mingw32 --target=ppc-linux \ --disable-{binutils,gas,gold,gprof,ld} The build failed with these errors in libctf: In file included from ../../binutils-gdb/libctf/ctf-create.c:20: ../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_encoded': ../../binutils-gdb/libctf/ctf-create.c:803:59: error: 'NBBY' undeclared (first use in this function) dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY); ^~~~ ../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP' #define P2ROUNDUP(x, align) (-(-(x) & -(align))) ^~~~~ ../../binutils-gdb/libctf/ctf-create.c:803:59: note: each undeclared identifier is reported only once for each function it appears in dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY); ^~~~ ../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP' #define P2ROUNDUP(x, align) (-(-(x) & -(align))) ^~~~~ ../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_slice': ../../binutils-gdb/libctf/ctf-create.c:862:59: error: 'NBBY' undeclared (first use in this function) dtd->dtd_data.ctt_size = clp2 (P2ROUNDUP (ep->cte_bits, NBBY) / NBBY); ^~~~ ../../binutils-gdb/libctf/ctf-impl.h:254:42: note: in definition of macro 'P2ROUNDUP' #define P2ROUNDUP(x, align) (-(-(x) & -(align))) ^~~~~ ../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_member_offset': ../../binutils-gdb/libctf/ctf-create.c:1341:21: error: 'NBBY' undeclared (first use in this function) off += lsize * NBBY; ^~~~ ../../binutils-gdb/libctf/ctf-create.c: In function 'ctf_add_type': ../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=] ctf_dprintf ("Conflict for type %s against ID %lx: " ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/libctf/ctf-create.c:1823:35: note: format string is defined here "union size differs, old %zi, new %zi\n", ^ ../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: unknown conversion type character 'z' in format [-Wformat=] ctf_dprintf ("Conflict for type %s against ID %lx: " ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/libctf/ctf-create.c:1823:44: note: format string is defined here "union size differs, old %zi, new %zi\n", ^ ../../binutils-gdb/libctf/ctf-create.c:1822:16: warning: too many arguments for format [-Wformat-extra-args] ctf_dprintf ("Conflict for type %s against ID %lx: " ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This patch fixes the actual errors in here. I did not try to fix the printf warnings, though I think someone ought to. Ok? libctf/ChangeLog 2019-06-04 Tom Tromey * ctf-create.c (ctf_add_encoded, ctf_add_slice) (ctf_add_member_offset): Use CHAR_BIT, not NBBY. commit 63c6fc6cacf82e6b39f7373d44c1e1e1a0a757fa Author: H.J. Lu Date: Tue Jun 4 12:45:20 2019 -0700 i386: Check for reserved VEX.vvvv and EVEX.vvvv If VEX.vvvv and EVEX.vvvv are reserved, they must be all 1s, which are all 0s in inverted form. Add check for unused VEX.vvvv and EVEX.vvvv when disassembling VEX and EVEX instructions. gas/ PR binutils/24626 * testsuite/gas/i386/disassem.s: Add tests for reserved VEX.vvvv and EVEX.vvvv. * testsuite/gas/i386/x86-64-disassem.s: Likewise. * testsuite/gas/i386/disassem.d: Updated. * testsuite/gas/i386/x86-64-disassem.d: Likewise. opcodes/ PR binutils/24626 * i386-dis.c (print_insn): Check for unused VEX.vvvv and EVEX.vvvv when disassembling VEX and EVEX instructions. (OP_VEX): Set vex.register_specifier to 0 after readding vex.register_specifier. (OP_Vex_2src_1): Likewise. (OP_Vex_2src_2): Likewise. (OP_LWP_E): Likewise. (OP_EX_Vex): Don't check vex.register_specifier. (OP_XMM_Vex): Likewise. commit ad118caa9f690114d11384b0813f30980cc333f3 Author: Nick Alcock Date: Tue Jun 4 15:04:49 2019 +0100 libctf: work on platforms without O_CLOEXEC. (Not tested on any such platforms, since I don't have access to any at the moment. Testing encouraged.) libctf/ * configure.ac: Check for O_CLOEXEC. * ctf-decls.h (O_CLOEXEC): Define (to 0), if need be. * config.h.in: Regenerate. commit 6b22174ff163b828a2069f22353018ca97fc0fb4 Author: Nick Alcock Date: Mon Jun 3 14:02:09 2019 +0100 libctf: look for BSD versus GNU qsort_r signatures We cannot just look for any declaration of qsort_r, because some operating systems have a qsort_r that has a different prototype but which still has a pair of pointers in the right places (the last two args are interchanged): so use AC_LINK_IFELSE to check for both known variants of qsort_r(), and swap their args into a consistent order in a suitable inline function. (The code for this is taken almost unchanged from gnulib.) (Now we are not using AC_LIBOBJ any more, we can use a better name for the qsort_r replacement as well.) libctf/ * qsort_r.c: Rename to... * ctf-qsort_r.c: ... this. (_quicksort): Define to ctf_qsort_r. * ctf-decls.h (qsort_r): Remove. (ctf_qsort_r): Add. (struct ctf_qsort_arg): New, transport the real ARG and COMPAR. (ctf_qsort_compar_thunk): Rearrange the arguments to COMPAR. * Makefile.am (libctf_a_LIBADD): Remove. (libctf_a_SOURCES): New, add ctf-qsort_r.c. * ctf-archive.c (ctf_arc_write): Call ctf_qsort_r, not qsort_r. * ctf-create.c (ctf_update): Likewise. * configure.ac: Check for BSD versus GNU qsort_r signature. * Makefile.in: Regenerate. * config.h.in: Likewise. * configure: Likewise. commit 941accce38bc70a23c62e3c9439b67bf23298124 Author: Nick Alcock Date: Mon Jun 3 20:26:02 2019 +0100 libctf: fix use-after-free in function dumping This is actually a free-before-initializing (i.e. a free of garbage). libctf/ * ctf-dump.c (ctf_dump_funcs): Free in the right place. commit a610aa4f9cf61d38b8e0fe60dfaac078d636089f Author: Nick Alcock Date: Mon Jun 3 11:38:08 2019 +0100 libctf: fix the type of ctf_enum.cte_value This stops the file format from depending on the size of the host int. (It does mean that we cannot encode enums with a value > 2^32 on platforms with an int > 2^32: this will be fixed in the next format revision.) include/ * ctf.h (ctf_enum.cte_value): Fix type to int32_t. commit 9186c494a3bb61a55a29ec04aa0d1684a8c46838 Author: H.J. Lu Date: Tue Jun 4 08:58:21 2019 -0700 Enable Intel AVX512_VP2INTERSECT insn This patch enables support for VP2INTERSECT in binutils. Please refer to https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf for VP2INTERSECT details. Make check-gas is ok. gas/ 2019-06-04 Igor Tsimbalist Lili Cui * config/tc-i386.c (cpu_arch): Add .avx512_vp2intersect. (cpu_noarch): Likewise. * doc/c-i386.texi: Document avx512_vp2intersect. * testsuite/gas/i386/i386.exp: Run vp2intersect tests. * testsuite/gas/i386/vp2intersect-intel.d: New test. * testsuite/gas/i386/vp2intersect.d: Likewise. * testsuite/gas/i386/vp2intersect.s: Likewise. * testsuite/gas/i386/vp2intersect-inval-bcast.l: Likewise. * testsuite/gas/i386/vp2intersect-inval-bcast.s: Likewise. * testsuite/gas/i386/x86-64-vp2intersect-intel.d: Likewise. * testsuite/gas/i386/x86-64-vp2intersect.d: Likewise. * testsuite/gas/i386/x86-64-vp2intersect.s: Likewise. * testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.l: Likewise. * testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.s: Likewise. opcodes/ 2019-06-04 Igor Tsimbalist Lili Cui * i386-dis.c (enum): Add PREFIX_EVEX_0F3868, EVEX_W_0F3868_P_3. * i386-dis-evex.h (evex_table): Add AVX512_VP2INTERSECT instructions. * i386-gen.c (cpu_flag_init): Add CPU_AVX512_VP2INTERSECT_FLAGS, CPU_ANY_AVX512_VP2INTERSECT_FLAGS. (cpu_flags): Add CpuAVX512_VP2INTERSECT. * i386-opc.h (enum): Add CpuAVX512_VP2INTERSECT. (i386_cpu_flags): Add cpuavx512_vp2intersect. * i386-opc.tbl: Add AVX512_VP2INTERSECT insns. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. commit 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 Author: H.J. Lu Date: Tue Jun 4 08:50:10 2019 -0700 Add support for Intel ENQCMD[S] instructions This patch enables support for ENQCMD[S] in binutils. Please refer to https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf for ENQCMD[S] details. Make check-gas is ok. gas/ChangeLog: 2019-06-04 Xuepeng Guo Lili Cui * doc/c-i386.texi: Document enqcmd. * testsuite/gas/i386/enqcmd-intel.d: New file. * testsuite/gas/i386/enqcmd-inval.l: Likewise. * testsuite/gas/i386/enqcmd-inval.s: Likewise. * testsuite/gas/i386/enqcmd.d: Likewise. * testsuite/gas/i386/enqcmd.s: Likewise. * testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise. * testsuite/gas/i386/x86-64-enqcmd-inval.l: Likewise. * testsuite/gas/i386/x86-64-enqcmd-inval.s: Likewise. * testsuite/gas/i386/x86-64-enqcmd.d: Likewise. * testsuite/gas/i386/x86-64-enqcmd.s: Likewise. * testsuite/gas/i386/i386.exp: Run enqcmd-intel, enqcmd-inval, enqcmd, x86-64-enqcmd-intel, x86-64-enqcmd-inval, and x86-64-enqcmd. opcodes/ChangeLog: 2019-06-04 Xuepeng Guo Lili Cui * i386-dis.c (enum): Add MOD_0F38F8_PREFIX_1 and MOD_0F38F8_PREFIX_3. (prefix_table): New instructions (see prefix above). (mod_table): New instructions (see prefix above). * i386-gen.c (cpu_flag_init): Add entries for enqcmd. (cpu_flags): Add a bitfield for enqmcd. * i386-init.h: Regenerated. * i386-opc.h (enum): Add CpuENQCMD. (i386_cpu_flags): Add a bitfield for cpuenqcmd. * i386-opc.tbl: Add enqcmd and enqcmds instructions. * i386-init.h: Regenerated. * i386-tbl.h: Regenerated. commit e1f2e1a2dadbaeffe0a8a6da7aab7effc6b046d2 Author: Christian Biesinger via gdb-patches Date: Thu May 23 16:37:29 2019 -0500 Add an objfile getter to gdb.Type This allows users of the Python API to find the objfile where a type was defined. gdb/ChangeLog: gdb/ChangeLog 2019-06-04 Christian Biesinger Add objfile property to gdb.Type. * gdb/NEWS: Mention Python API addition. * gdb/python/py-type.c (typy_get_objfile): New method. gdb/doc/ChangeLog 2019-06-04 Christian Biesinger * gdb/doc/python.texi: Document new gdb.Type.objfile property. gdb/testsuite/ChangeLog 2019-06-04 Christian Biesinger * gdb/testsuite/gdb.python/py-type.exp: Test for new gdb.Type.objfile property. commit a9d96ab97edabea31bed089bfd4caca80838e31c Author: Alan Hayward Date: Tue Jun 4 14:25:08 2019 +0100 Remove an unnecessary set of parentheses in the arm-dis.c source file. * arm-dis.c (is_mve_unpredictable): Remove spurious paranthesis. commit 1ff30553d8972fb027d77d76d29643f2173f17d6 Author: GDB Administrator Date: Tue Jun 4 00:00:13 2019 +0000 Automatic date update in version.in commit e664d728038abf414b6fb1a1c8cd3aacd0bb3b67 Author: Philippe Waroquiers Date: Mon Jun 3 21:51:56 2019 +0200 Document in NEWS and gdb.texinfo the "help", "apropos" and "show style" changes. commit 206584bdf15aa19bb3c971b28e2c1fc04f32d027 Author: Philippe Waroquiers Date: Mon Jun 3 21:50:22 2019 +0200 Update tests following changes to "help" and "apropos" Factorizes the testing of the help output, by having a single place that defines the common help trailer and/or prefix messages. commit 66d8c862859ab241c1db9b40c3981f8a71951bd4 Author: Philippe Waroquiers Date: Fri May 31 14:00:47 2019 +0200 Improve usability and/or readibility of help and apropos output. The "help" command can output long list of command names or classes. Use the title style to style the command names or classes to make the output more readable. Similarly, change "apropos" command to also style the command names. It is sometimes unclear why "apropos REGEXP" lists some commands, and then the user has to manually do 'help command' for all commands listed by "apropos" to see more details about the matching commands. => Add an optional flag -v so that "apropos -v REGEXP": * outputs the full documentation of matching commands. * highlights the documentation parts matching REGEXP. commit 9303eb2fb1630678def10613c81215c2bd21d278 Author: Philippe Waroquiers Date: Fri May 31 13:47:37 2019 +0200 Add highlight style, title style, fputs_highlighted. Improve 'show style' Have 'show style' and its subcommands using a style to style its output. This allows the GDB user or developer to use 'show style' to visually see with one command how all the current styles look like. Add 2 new styles highlight style, title style and fputs_highlighted function. Highlight style is used by fputs_highlighted to highlight the parts of its char *STR argument that match a HIGHLIGHT regexp. This (and the title style) will be used in a following patch. commit 79b377b3cf3a0e71e1e4710c4ee1e65e7a27a5d4 Author: Nick Clifton Date: Mon Jun 3 16:28:15 2019 +0100 Revert patch that disables building libctf for non-ELF based targets. Revert: binutls 2019-05-29 Nick Clifton * configure.ac (LIBCTF): Export. Set to empty for non-ELF based targets. (HAVE_LIBCTF): Define if libctf support is available. * Makefile.am (LIBCTF): Set value to @LIBCTF@. * objdump.c: Make CTF code conditional upon HAVE_LIBCTF being defined. * readelf.c: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * config.in: Regenerate. top 2019-05-29 Nick Clifton * configure.ac (noconfigdirs): Add libctf if the target does not use the ELF file format. * configure: Regenerate. commit 4f6d070adb32e61c3c61e621c6566fc2d5af2232 Author: Alan Modra Date: Mon Jun 3 11:46:04 2019 +0930 Don't waste space in prefix_opcd_indices * ppc-dis.c (prefix_opcd_indices): Correct size. commit 6187fc5364f6cc327805ecb4ba4962953f25122a Author: GDB Administrator Date: Mon Jun 3 00:00:54 2019 +0000 Automatic date update in version.in commit 88ed7edbc632245fad33145e723d27976b6732ca Author: Tom Tromey Date: Sat Jun 1 09:16:04 2019 -0600 Remove fromhex implementation from gdbreplay gdbreplay had its own implementation of fromhex. This patch changes it to use the one in common/. gdb/gdbserver/ChangeLog 2019-06-02 Tom Tromey * gdbreplay.c (fromhex): Remove. * Makefile.in (GDBREPLAY_OBS): Add rsp-low.o. commit 96605592395fc57e531de249883ccf6fafed540f Author: GDB Administrator Date: Sun Jun 2 00:01:00 2019 +0000 Automatic date update in version.in commit 0b62c71c0839764aca82bf32ac6aa339020ae0c8 Author: GDB Administrator Date: Sat Jun 1 00:00:23 2019 +0000 Automatic date update in version.in commit e2c52041c02e2bdee5b28e97c7997caf0ee5bb2d Author: Philippe Waroquiers Date: Sat May 4 15:39:27 2019 +0200 NEWS and documentation for | (pipe) command. gdb/ChangeLog * NEWS: Mention new pipe command and new convenience variables. gdb/doc/ChangeLog * gdb.texinfo (Shell Commands): Document pipe command. (Logging Output): Add a reference to pipe command. (Convenience Variables): Document $_shell_exitcode and $_shell_exitstatus. commit 708dc93ed0c8ee744e2784a1c349d8129a84200f Author: Philippe Waroquiers Date: Sat Apr 20 22:17:17 2019 +0200 Test the | (pipe) command. gdb/testsuite/ChangeLog 2019-05-31 Philippe Waroquiers * gdb.base/shell.exp: Test pipe command, $_shell_exitcode, $_shell_exitsignal. * gdb.base/default.exp: Update for new convenience variables. commit 947d39462e26b0edee9b58003ea579552dbf4fa8 Author: Philippe Waroquiers Date: Sat Apr 20 14:14:23 2019 +0200 Implement | (pipe) command. The pipe command allows to run a GDB command, and pipe its output to a shell command: (gdb) help pipe Send the output of a gdb command to a shell command. Usage: | [COMMAND] | SHELL_COMMAND Usage: | -d DELIM COMMAND DELIM SHELL_COMMAND Usage: pipe [COMMAND] | SHELL_COMMAND Usage: pipe -d DELIM COMMAND DELIM SHELL_COMMAND Executes COMMAND and sends its output to SHELL_COMMAND. The -d option indicates to use the string DELIM to separate COMMAND from SHELL_COMMAND, in alternative to |. This is useful in case COMMAND contains a | character. With no COMMAND, repeat the last executed command and send its output to SHELL_COMMAND. (gdb) For example: (gdb) pipe print some_data_structure | grep -B3 -A3 something The pipe character is defined as an alias for pipe command, so that the above can be typed as: (gdb) | print some_data_structure | grep -B3 -A3 something If no GDB COMMAND is given, then the previous command is relaunched, and its output is sent to the given SHELL_COMMAND. This also defines convenience vars $_shell_exitcode and $_shell_exitsignal to record the exit code and exit signal of the last shell command launched by GDB e.g. by "shell", "pipe", ... gdb/ChangeLog 2019-05-31 Philippe Waroquiers * cli/cli-cmds.c (pipe_command): New function. (_initialize_cli_cmds): Call add_com for pipe_command. Define | as an alias for pipe. (exit_status_set_internal_vars): New function. (shell_escape): Call exit_status_set_internal_vars. cli/cli-decode.c (find_command_name_length): Recognize | as a single character command. commit b8fd091888383703f5d708c597c496d7b9e47a21 Author: Philippe Waroquiers Date: Fri Apr 26 20:52:16 2019 +0200 Add function execute_command_to_ui_file 2019-05-31 Philippe Waroquiers * gdbcmd.h (execute_command_to_ui_file): New declaration. top.c (execute_command_to_ui_file): New function, mostly a copy of execute_command_to_string. (execute_command_to_string): Implement by calling execute_command_to_ui_file. commit 68bb5386b84af4031175bf186269eb6b54b8611d Author: Philippe Waroquiers Date: Sat Apr 20 14:02:29 2019 +0200 Add previous_saved_command_line to allow a command to repeat a previous command. Currently, a previous command can be repeated when the user types an empty line. This is implemented in handle_line_of_input by returning saved_command_line in case an empty line has been input. If we want a command to repeat the previous command, we need to save the previous saved_command_line, as when a command runs, the saved_command_line already contains the current command line of the command being executed. As suggested by Tom, the previous_saved_command_line is made static. At the same time, saved_command_line is also made static. The support functions/variables for the repeat command logic are now all located inside top.c. gdb/ChangeLog 2019-05-31 Philippe Waroquiers * top.h (saved_command_line): Remove declaration. * top.c (previous_saved_command_line, previous_repeat_arguments): New variables. (saved_command_line): Make static, define together with other 'repeat variables'. (dont_repeat): Clear repeat_arguments. (repeat_previous, get_saved_command_line, save_command_line): New functions. (gdb_init): Initialize saved_command_line and previous_saved_command_line. * main.c (captured_main_1): Remove saved_command_line initialization. * event-top.c (handle_line_of_input): Update to use the new 'repeat' related functions instead of direct access to saved_command_line. * command.h (repeat_previous, get_saved_command_line, save_command_line): New declarations. (dont_repeat): Add comment. commit a0486bac41d6ce47f27795a5abbca5cc53ddba00 Author: Jose E. Marchesi Date: Fri May 31 11:10:51 2019 +0200 libctf: fix a number of build problems found on Solaris and NetBSD - Use of nonportable - Use of qsort_r - Use of zlib without appropriate magic to pull in the binutils zlib - Use of off64_t without checking (fixed by dropping the unused fields that need off64_t entirely) - signedness problems due to long being too short a type on 32-bit platforms: ctf_id_t is now 'unsigned long', and CTF_ERR must be used only for functions that return ctf_id_t - One lingering use of bzero() and of All fixed, using code from gnulib where possible. Relatedly, set cts_size in a couple of places it was missed (string table and symbol table loading upon ctf_bfdopen()). binutils/ * objdump.c (make_ctfsect): Drop cts_type, cts_flags, and cts_offset. * readelf.c (shdr_to_ctf_sect): Likewise. include/ * ctf-api.h (ctf_sect_t): Drop cts_type, cts_flags, and cts_offset. (ctf_id_t): This is now an unsigned type. (CTF_ERR): Cast it to ctf_id_t. Note that it should only be used for ctf_id_t-returning functions. libctf/ * Makefile.am (ZLIB): New. (ZLIBINC): Likewise. (AM_CFLAGS): Use them. (libctf_a_LIBADD): New, for LIBOBJS. * configure.ac: Check for zlib, endian.h, and qsort_r. * ctf-endian.h: New, providing htole64 and le64toh. * swap.h: Code style fixes. (bswap_identity_64): New. * qsort_r.c: New, from gnulib (with one added #include). * ctf-decls.h: New, providing a conditional qsort_r declaration, and unconditional definitions of MIN and MAX. * ctf-impl.h: Use it. Do not use . (ctf_set_errno): Now returns unsigned long. * ctf-util.c (ctf_set_errno): Adjust here too. * ctf-archive.c: Use ctf-endian.h. (ctf_arc_open_by_offset): Use memset, not bzero. Drop cts_type, cts_flags and cts_offset. (ctf_arc_write): Drop debugging dependent on the size of off_t. * ctf-create.c: Provide a definition of roundup if not defined. (ctf_create): Drop cts_type, cts_flags and cts_offset. (ctf_add_reftype): Do not check if type IDs are below zero. (ctf_add_slice): Likewise. (ctf_add_typedef): Likewise. (ctf_add_member_offset): Cast error-returning ssize_t's to size_t when known error-free. Drop CTF_ERR usage for functions returning int. (ctf_add_member_encoded): Drop CTF_ERR usage for functions returning int. (ctf_add_variable): Likewise. (enumcmp): Likewise. (enumadd): Likewise. (membcmp): Likewise. (ctf_add_type): Likewise. Cast error-returning ssize_t's to size_t when known error-free. * ctf-dump.c (ctf_is_slice): Drop CTF_ERR usage for functions returning int: use CTF_ERR for functions returning ctf_type_id. (ctf_dump_label): Likewise. (ctf_dump_objts): Likewise. * ctf-labels.c (ctf_label_topmost): Likewise. (ctf_label_iter): Likewise. (ctf_label_info): Likewise. * ctf-lookup.c (ctf_func_args): Likewise. * ctf-open.c (upgrade_types): Cast to size_t where appropriate. (ctf_bufopen): Likewise. Use zlib types as needed. * ctf-types.c (ctf_member_iter): Drop CTF_ERR usage for functions returning int. (ctf_enum_iter): Likewise. (ctf_type_size): Likewise. (ctf_type_align): Likewise. Cast to size_t where appropriate. (ctf_type_kind_unsliced): Likewise. (ctf_type_kind): Likewise. (ctf_type_encoding): Likewise. (ctf_member_info): Likewise. (ctf_array_info): Likewise. (ctf_enum_value): Likewise. (ctf_type_rvisit): Likewise. * ctf-open-bfd.c (ctf_bfdopen): Drop cts_type, cts_flags and cts_offset. (ctf_simple_open): Likewise. (ctf_bfdopen_ctfsect): Likewise. Set cts_size properly. * Makefile.in: Regenerate. * aclocal.m4: Likewise. * config.h: Likewise. * configure: Likewise. commit ff4a4474eba6488c8ad3cae51a685fe282ab249a Author: GDB Administrator Date: Fri May 31 00:00:14 2019 +0000 Automatic date update in version.in commit 4288405d5ec2c68c7e9d8d68a090c6c9ff3825d1 Author: Jim Wilson Date: Thu May 30 15:23:10 2019 -0700 RISC-V: Fix lui argument parsing. This fixes a bug reported on the riscv.org sw-dev mailing list. This rejects "lui x1,symbol", as a symbol should only be accepted here when used inside %hi(). Without the fix, this gets assembled as "lui x1,0" with no relocation which is clearly wrong. gas/ * config/tc-riscv.c (riscv_ip) <'u'>: Move O_constant check inside if statement. Delete O_symbol and O_constant check after if statement. * testsuite/gas/riscv/auipc-parsing.s: Test lui with missing %hi. * testsuite/gas/riscv/auipc-parsing.l: Update. commit bfcdb85206cd3c3b8ad73b13db6bfb2ec608239b Author: Tom Tromey Date: Thu May 30 08:50:22 2019 -0600 Two comment fixes in gdbtypes.h This fixes a couple of comments in gdbtypes.h. One comment had a typo; and another comment referred to "Moto", which is presumably some long-gone Motorola-related project. Tested by rebuilding. gdb/ChangeLog 2019-05-30 Tom Tromey * gdbtypes.h (struct range_bounds) : Fix comment. (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED): Rewrite comment. commit 0ef209f22c24b9243de68c35c576f7111198f915 Author: Jan Vrany Date: Thu May 30 13:04:26 2019 +0100 Initialize variable word in complete The complete function should set parameter word to the end of the word to complete. However, completion_find_completion_word may fail, leaving word uninitialized. To make sure word is always set, initialize it to the completion point which is the end of the line parameter. gdb/Changelog PR cli/24587 * completer.c (complete): Initialize variable word. commit e3f56a99f66298bb505d0426950b9716a853a5df Author: Nick Clifton Date: Thu May 30 11:17:19 2019 +0100 Revert "Sync top level files with versions from gcc." This reverts commit f948b2de97884bfb4e5fc11d40a6bea9e0b096ae. commit ae9ac79e5e291a2bc5c6620a10c37a3558d55d36 Author: Nick Clifton Date: Thu May 30 10:17:29 2019 +0100 Harmonize readelf's output for version sections. PR 24627 binutils * readelf.c (process_version_sections): Add 0x prefix to address display. Correct indentation. ld * testsuite/ld-elf/ver_def.vd: Update expected output. commit 54a471e5fd44d7a91297ece1383b0ad6d62c7306 Author: GDB Administrator Date: Thu May 30 00:00:14 2019 +0000 Automatic date update in version.in commit 955b06fa576df1a6954263043ea3f3a5b9ad5940 Author: Sergio Durigan Junior Date: Wed May 29 10:36:57 2019 -0400 Don't crash is dwarf_decode_macro_bytes's 'body' is NULL, even when '!is_define' Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1715008 On commit 7bede82892a06e6c26989803e70f53697392dcf9 ("Don't crash if dwarf_decode_macro_bytes's 'body' is NULL"), I was too strict when checking if 'body' is NULL: the check only comprised the case when 'is_define' is true. However, the corruption of .debug_macro by rpmbuild's "debugedit" also affects the case when 'is_define' is false, i.e., when the macro is being undefined. This commit improves the check and covers both cases now. This has been tested on Fedora 30 with a problematic debuginfo, and I don't see a segfault anymore. OK to push? gdb/ChangeLog: 2019-05-29 Sergio Durigan Junior Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192 Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1715008 * dwarf2read.c (dwarf_decode_macro_bytes): Move check to see if 'body' is NULL to the outter 'if', protecting the '!is_define' situation as well. commit f49055a52f04f75b6560f304eb975128dd82ad68 Author: Tom Tromey Date: Tue May 28 10:55:59 2019 -0600 Fix failure in gdb.ada/complete.exp I noticed a failure in gdb.ada/complete.exp when testing locally: FAIL: gdb.ada/complete.exp: complete break ada This failed due to this output: [...] break ada/generated/gnatvsn.ads break ada/libgnat/s-excmac.ads break ada/sdefault.adb break ada/snames.adb break ada/snames.ads This patch updates the regexp to allow "/" and "-" to appear. gdb/testsuite/ChangeLog 2019-05-29 Tom Tromey * gdb.ada/complete.exp (test_gdb_no_completion): Add "/" and "-" to "break complete ada" test case's regexp. commit fa9c3fa035433debc24503e32c59688650ffcdbb Author: Tom Tromey Date: Wed May 22 09:08:49 2019 -0400 Make some DWARF complaints clearer I noticed that the complaint in partial_die_parent_scope was not using dwarf_tag_name, so I changed that. Then I noticed that dwarf_tag_name does not show the numeric value for an unrecognized tag, so I changed that function and all the related functions to do so. gdb/ChangeLog 2019-05-29 Tom Tromey * dwarf2read.c (partial_die_parent_scope): Call dwarf_tag_name. (dwarf_unknown): New function. (dwarf_tag_name, dwarf_attr_name, dwarf_form_name) (dwarf_type_encoding_name): Use dwarf_unknown. commit 4330d61dfb05d77fd925efdca45091f12e3a6266 Author: Tom Tromey Date: Wed May 29 09:34:50 2019 -0600 Fix crash in cp_print_value_fields PR c++/20020 concerns a crash in cp_print_value_fields. The immediate cause is that cp_print_value_fields does not handle the case where value_static_field fails. This is fixed in this patch by calling cp_print_static_field from the "try" block. Digging a bit deeper, the error occurs because GCC does not emit a DW_AT_const_value for a static constexpr member appearing in a template class. I've filed a GCC bug for this. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-29 Tom Tromey PR c++/20020: * cp-valprint.c (cp_print_value_fields): Call cp_print_static_field inside "try". gdb/testsuite/ChangeLog 2019-05-29 Tom Tromey PR c++/20020: * gdb.cp/constexpr-field.exp: New file. * gdb.cp/constexpr-field.cc: New file. commit 6ff185b89017b16e9092142515f0a119b684ac72 Author: Alan Modra Date: Wed May 29 22:56:30 2019 +0930 s12z genelf.em This changes s12z to use generic.em and genelf.em, which is more suited to targets that use the generic linker hash table. A tweak or two to some testsuite predicates then gives a clean testsuite result on the target. PR 24596 binutils/ * testsuite/lib/binutils-common.exp (supports_gnu_unique): Add s12z to targets not supporting this feature. ld/ * emulparams/m9s12zelf.sh (TEMPLATE_NAME): Set to generic. (EXTRA_EM_FILE): Define to genelf. * testsuite/lib/ld-lib.exp (uses_genelf): Add s12z. commit 1336939d3cd4cb02670c48ef065bafdf0fdae300 Author: Alan Modra Date: Wed May 29 22:54:37 2019 +0930 Support tcl procedure calls in run_dump_test xfail Also support tcl procedure calls in the run_ld_link_tests and run_ld_link_exec_tests optional "xfail" args. Implements "is_generic" and renames "is_generic_elf" to "uses_genelf", then uses these procs in lots of ld tests. moxie-elf -FAIL: ld-elf/orphan3 mt-elf -FAIL: ld-elf/merge s12z-elf -FAIL: ld-discard/extern s12z-elf -FAIL: ld-discard/start s12z-elf -FAIL: ld-discard/static s12z-elf -FAIL: PR ld/21703 s12z-elf -FAIL: PR ld/21703 -r s12z-elf -FAIL: Symbol flags copy s12z-elf -FAIL: ld-elf/group1 s12z-elf -FAIL: ld-elf/group3b s12z-elf -FAIL: ld-elf/group8a s12z-elf -FAIL: ld-elf/group8b s12z-elf -FAIL: ld-elf/group9a s12z-elf -FAIL: ld-elf/group9b s12z-elf -FAIL: ld-elf/linkonce2 s12z-elf -FAIL: ld-elf/merge2 s12z-elf -FAIL: ld-elf/merge3 s12z-elf -FAIL: ld-elf/pr12851 s12z-elf -FAIL: ld-elf/pr17550c s12z-elf -FAIL: ld-elf/pr17550d s12z-elf -FAIL: ld-elf/pr22677 s12z-elf -FAIL: ld-elf/pr22836-1a s12z-elf -FAIL: ld-elf/pr22836-1b s12z-elf -FAIL: ld-elf/warn1 s12z-elf -FAIL: ld-elf/warn3 binutils/ * testsuite/lib/binutils-common.exp (run_dump_test): Support tcl procedures for xfail args. ld/ * testsuite/lib/ld-lib.exp (run_ld_link_tests): Support procedure calls in optional "xfail" args. (run_ld_link_exec_tests): Likewise. (is_generic): New. (uses_genelf): Rename from is_generic_elf. Delete bogus semicolons. * testsuite/ld-scripts/align.exp: Rename is_generic_elf call. * testsuite/ld-elf/elf.exp: Use is_generic and uses_genelf. Delete xfail_implib var. * testsuite/ld-elf/sec64k.exp: Use is_generic. * testsuite/ld-elf/shared.exp: Likewise. * testsuite/ld-discard/extern.d: Use is_generic in xfail. * testsuite/ld-discard/start.d: Likewise. * testsuite/ld-discard/static.d: Likewise. * testsuite/ld-elf/attributes.d: Likewise. * testsuite/ld-elf/group1.d: Likewise. * testsuite/ld-elf/group3b.d: Likewise. * testsuite/ld-elf/group8a.d: Likewise. * testsuite/ld-elf/group8b.d: Likewise. * testsuite/ld-elf/group9a.d: Likewise. * testsuite/ld-elf/group9b.d: Likewise. * testsuite/ld-elf/linkonce2.d: Likewise. * testsuite/ld-elf/merge2.d: Likewise. * testsuite/ld-elf/merge3.d: Likewise. * testsuite/ld-elf/pr12851.d: Likewise. * testsuite/ld-elf/pr12975.d: Likewise. * testsuite/ld-elf/pr13177.d: Likewise. * testsuite/ld-elf/pr13195.d: Likewise. * testsuite/ld-elf/pr17550c.d: Likewise. * testsuite/ld-elf/pr17550d.d: Likewise. * testsuite/ld-elf/pr17615.d: Likewise. * testsuite/ld-elf/pr21562a.d: Likewise. * testsuite/ld-elf/pr21562b.d: Likewise. * testsuite/ld-elf/pr21562c.d: Likewise. * testsuite/ld-elf/pr21562d.d: Likewise. * testsuite/ld-elf/pr21562i.d: Likewise. * testsuite/ld-elf/pr21562j.d: Likewise. * testsuite/ld-elf/pr21562k.d: Likewise. * testsuite/ld-elf/pr21562l.d: Likewise. * testsuite/ld-elf/pr21562m.d: Likewise. * testsuite/ld-elf/pr21562n.d: Likewise. * testsuite/ld-elf/pr22677.d: Likewise. * testsuite/ld-elf/pr22836-1a.d: Likewise. * testsuite/ld-elf/pr22836-1b.d: Likewise. * testsuite/ld-elf/warn3.d: Likewise. * testsuite/ld-elf/warn1.d: Likewise and xfail sparc solaris targets rather than notarget. * testsuite/ld-elf/compressed1d.d: Use uses_genelf in xfail. * testsuite/ld-elf/orphan-10.d: Likewise. * testsuite/ld-elf/orphan-9.d: Likewise. * testsuite/ld-elf/orphan-region.d: Likewise. * testsuite/ld-elf/orphan.d: Likewise. * testsuite/ld-elf/orphan3.d: Likewise. * testsuite/ld-elf/pr20528a.d: Likewise. * testsuite/ld-elf/pr20528b.d: Likewise. * testsuite/ld-elf/pr23658-1a.d: Likewise. * testsuite/ld-elf/pr23658-1b.d: Likewise. * testsuite/ld-elf/pr349.d: Likewise. * testsuite/ld-elf/warn2.d: Likewise and xfail sparc solaris targets rather than notarget. * testsuite/ld-elf/merge.d: Correct ms1-*-* to mt-*-*. commit 33a6bc350f5b4f03d586ba9d32667b6fea1dce4a Author: Tom Tromey Date: Fri May 10 09:25:19 2019 -0600 Add new GCC 9 warnings to warnings.m4 GCC 9 has a few new warnings that aren't enabled in the gdb build by default: -Wdeprecated-copy, -Wdeprecated-copy-dtor, and -Wredundant-move. This patch enables them all. Tested by rebuilding with a new GCC (git master) on x86-64 Fedora 29. gdb/ChangeLog 2019-05-29 Tom Tromey * inflow.c (struct terminal_info): Add default operator=. * configure: Rebuild. * warning.m4 (AM_GDB_WARNINGS): Add -Wdeprecated-copy, -Wdeprecated-copy-dtor, -Wredundant-move. gdb/gdbserver/ChangeLog 2019-05-29 Tom Tromey * configure: Rebuild. commit 000439d52897541ad00a84026ac471b4f8cb3c97 Author: Tom Tromey Date: Wed May 15 13:06:59 2019 -0600 Add "set print finish" A user wanted to be able to disable the display of the value when using "finish" -- but still have the value entered into the value history in case it was useful later on. Part of the rationale here is that sometimes the value might be quite large, or expensive to display (in their case this was compounded by a rogue pretty-printer). This patch implements this idea. gdb/ChangeLog 2019-05-29 Tom Tromey * NEWS: Add entry. * infcmd.c (print_return_value_1): Handle finish_print option. (show_print_finish): New function. (_initialize_infcmd): Add "set/show print finish" commands. * valprint.c (user_print_options): Initialize new member. * valprint.h (struct value_print_options) : New member. gdb/doc/ChangeLog 2019-05-29 Tom Tromey * gdb.texinfo (Continuing and Stepping): Document new commands. gdb/testsuite/ChangeLog 2019-05-29 Tom Tromey * gdb.base/finish.exp (finish_no_print): New proc. (finish_tests): Call it. commit e33f2313bf63b77763739732be14b469b4b647b7 Author: Nick Clifton Date: Wed May 29 12:49:13 2019 +0100 Update release tools with libctf support. top * src-release.sh (do_proto_toplev): Add libctf to list of directories that can be disabled. binutils* README-how-to-make-a-release: Add libctf to list of directories that need updates in their ChangeLogs. commit f948b2de97884bfb4e5fc11d40a6bea9e0b096ae Author: Nick Clifton Date: Wed May 29 12:43:42 2019 +0100 Sync top level files with versions from gcc. top * Makefile.def (target_modules): Add libphobos. (flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and GDCFLAGS_FOR_TARGET. (dependencies): Make libphobos depend on libatomic, libbacktrace configure, and zlib configure. (language): Add language d. * Makefile.in: Rebuild. * Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS. (HOST_EXPORTS): Add GDC. (POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD. (BASE_TARGET_EXPORTS): Add GDC. (GDC_FOR_BUILD, GDC, GDCFLAGS): New variables. (GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables. (EXTRA_HOST_FLAGS): Add GDC. (STAGE1_FLAGS_TO_PASS): Add GDC. (EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS. * config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag environment variables. * configure: Rebuild. * configure.ac: Add target-libphobos to target_libraries. Set and substitute GDC_FOR_BUILD and GDC_FOR_TARGET. commit 90bd54236cb8b1c31c3662977159be971044c20d Author: Nick Clifton Date: Wed May 29 11:31:16 2019 +0100 Do not build libctf for targets that do not use the ELF file format. top * configure.ac (noconfigdirs): Add libctf if the target does not use the ELF file format. * configure: Regenerate. binutils* configure.ac (LIBCTF): Export. Set to empty for non-ELF based targets. (HAVE_LIBCTF): Define if libctf support is available. * Makefile.am (LIBCTF): Set value to @LIBCTF@. * objdump.c: Make CTF code conditional upon HAVE_LIBCTF being defined. * readelf.c: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * config.in: Regenerate. commit 9698cf9b1c485edbbeabc9f65bfd0fdef92e3854 Author: Nick Alcock Date: Wed May 29 11:11:37 2019 +0200 Fix libctf build on non-ELF targets. All machinery works as on ELF, except for automatic loading of ELF string and symbol tables in the BFD-style open machinery. * Makefile.def (dependencies): configure-libctf depends on all-bfd and all its deps. * Makefile.in: Regenerated. libctf/ * configure.in: Check for bfd_section_from_elf_index. * configure: Regenerate. * config.h.in [HAVE_BFD_ELF]: Likewise. * libctf/ctf_open_bfd (ctf_bfdopen_ctfsect): Use it. abfd is potentially unused now. commit 90f879191c1bc8455527f66fb4ab46873aa870aa Author: GDB Administrator Date: Wed May 29 00:00:28 2019 +0000 Automatic date update in version.in commit 1e129bbefadbf09ace0fc7fcb3cfcda13700e3b8 Author: Faraz Shahbazker Date: Thu May 23 18:16:08 2019 -0700 MIPS/LD: Skip overflow check for %pcrel_hi relocations Overflow checks were removed for all hi16 relocations except PC-relative high relocations per PR ld/16720. Remove overflow checks from %pcrel_hi relocations so that we can correctly handle negative offsets from PC. bfd/ * elfxx-mips.c (mips_elf_calculate_relocation) : Remove overflow check. ld/ * testsuite/ld-mips-elf/undefweak-overflow.s: Remove test case for pcrel_hi/pcrel_lo. * testsuite/ld-mips-elf/undefweak-overflow.d: Update to match. * testsuite/ld-mips-elf/reloc-pcrel-r6.s: New test source. * testsuite/ld-mips-elf/reloc-pcrel-r6.d: New test linker script. * testsuite/ld-mips-elf/reloc-pcrel-r6.ld: New test. * testsuite/ld-mips-elf/mips-elf.exp: Run the new test. commit a2f4b66c9eb5210f8ef6038d7194af1e5f314f97 Author: H.J. Lu Date: Tue May 28 10:05:28 2019 -0700 x86: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL For AVX512 instructions with Disp8ShiftVL and Broadcast, we may need to add CheckRegSize to check if broadcast matches the destination register size. gas/ PR gas/24625 * testsuite/gas/i386/inval-avx512f.s: Add tests for AVX512_BF16 instructions with invalid broadcast. * testsuite/gas/i386/x86-64-inval-avx512f.s: Likewise. * testsuite/gas/i386/inval-avx512f.l: Updated. * testsuite/gas/i386/x86-64-inval-avx512f.l: Likewise. opcodes/ PR gas/24625 * i386-opc.tbl: Add CheckRegSize to AVX512_BF16 instructions with Disp8ShiftVL. * i386-tbl.h: Regenerated. commit c0e70c624fc7d89f5cf281350692de89a063786f Author: Tom Tromey Date: Thu May 23 10:40:27 2019 -0400 Remove find_old_style_renaming_symbol We found a case where a "bt" was very slow with Ada code. Profiling with callgrind showed this to be primarily due to calls to find_old_style_renaming_symbol. Because new-style renaming symbols were implemented in 2007, it seems safe enough to remove this old code. A "-batch -ex bt" test on a large Ada program improves from: 13.23user 0.57system 0:13.82elapsed 99%CPU (0avgtext+0avgdata 571408maxresident)k to 4.25user 0.48system 0:04.74elapsed 99%CPU (0avgtext+0avgdata 559844maxresident)k with this patch. Tested on x86-64 Fedora 29. Joel reviewed this internally; and as it is Ada-specific, I am checking it in. gdb/ChangeLog 2019-05-28 Tom Tromey * ada-lang.c (ada_remove_Xbn_suffix) (find_old_style_renaming_symbol) (parse_old_style_renaming): Remove. (ada_find_renaming_symbol): Don't call find_old_style_renaming_symbol. (ada_is_renaming_symbol): Rename from ada_find_renaming_symbol. Remove "block" parameter. Return bool. Now static. (ada_read_var_value): Update and simplify. * ada-exp.y (write_var_or_type): Remove old code. commit 88981b157b08f2e9a404a2f86d4ee131f17ce3d4 Author: Nick Alcock Date: Tue May 28 17:01:32 2019 +0100 Add libctf to top-level MAINTAINERS; add myself as CTF maintainer. commit 7d9813f196bd1a98d49c2b9b7b90351cb2435b0d Author: Nick Alcock Date: Wed Apr 24 12:04:33 2019 +0100 binutils: CTF support for objdump and readelf This introduces CTF support for objdump and readelf. objdump has the following new arguments: --ctf=SECTION: display CTF in the given SECTION --ctf-parent=SECTION: name of CTF section that is the parent of this section readelf has the above, and these two as well: --ctf-symbols=SECTION: name of symbol table section (optional) --ctf-strings=SECTION: name of string table section (optional) (objdump can always use BFD machinery to determine the applicable string and symbol tables automatically, so these arguments are unnecessary.) Nearly all the work is done by the ctf_dump machinery in libctf: most of the remaining work is option-processing and section-reading, and thus is different for objdump and readelf: the minimal amount of similar code remaining is, in my view, too small to share, particularly given that objdump uses ctf_bfdopen() and readelf uses ctf_simple_open() since it doesn't have a bfd. I am not particularly satisfied with the way resources are freed in either of these (I was forced to do it at the top level, for lack of anywhere else to free resources allocated during option processing), but I can't see any better way to do it without introducing new infrastructure for no other purpose. There are essentially arbitrary ordering changes to the Makefile.in's order of libtool-related stuff that I can't get rid of, but they have no semantic effect. (It is possible that some hunks of these changes could be dropped, but that seems a bit risky to me.) binutils/ * objdump.c (ctf-api.h): New include. (dump_ctf_section_info): New variable. (dump_ctf_section_name): Likewise. (usage): Describe new options. (enum option_values): Add OPTION_CTF and OPTION_CTF_PARENT. (main): Use them to add --ctf and --ctf-parent. (read_section_stabs): Add new parameter, entsize_ptr. (find_stabs_section): Adjust accordingly. (make_ctfsect): New. (dump_ctf_indent_lines): New. (dump_ctf_archive_member): New. (dump_ctf): New. (dump_bfd): Call it. Free resources afterwards. * readelf.c (ctf-api.h): New include. (CTF_DUMP): New. (static bfd_boolean do_ctf): Likewise. (dump_ctf_parent_name): Likewise. (dump_ctf_symtab_name): Likewise. (dump_ctf_strtab_name): Likewise. (OPTION_CTF_DUMP): Likewise. (OPTION_CTF_PARENT): Likewise. (OPTION_CTF_SYMBOLS): Likewise. (OPTION_CTF_STRINGS): Likewise. (options): Add them. (usage): Likewise. (parse_args): Handle the new options, requesting CTF_DUMP. (process_section_contents): Handle CTF_DUMP. (shdr_to_ctf_sect): New. (dump_ctf_indent_lines): New. (dump_section_as_ctf): New. (main): Free resources. * Makefile.am (LIBCTF): New variable. (objdump_DEPENDENCIES): Use it. (readelf_DEPENDENCIES): Likewise. (objdump_LDADD): Likewise. (readelf_LDADD): Likewise. * aclocal.m4: Regenerated. * Makefile.in: Likewise. * doc/binutils.texi (objdump): Document the new options. (readelf): Likewise. * doc/ctf.options.texi: New. * doc/Makefile.in: Regenerated. * NEWS: Mention the new feature. commit 0e65dfbaf3a0299e4837216a103c28625d4b4f1d Author: Nick Alcock Date: Wed Apr 24 11:49:48 2019 +0100 libctf: build system This ties libctf into the build system, and makes binutils depend on it (used by the next commits). * Makefile.def (host_modules): Add libctf. * Makefile.def (dependencies): Likewise. libctf depends on zlib, libiberty, and bfd. * Makefile.in: Regenerated. * configure.ac (host_libs): Add libctf. * configure: Regenerated. libctf/ * Makefile.am: New. * Makefile.in: Regenerated. * config.h.in: Likewise. * aclocal.m4: Likewise. * configure: Likewise. commit a30b3e182aad25f94de6412efd5d78f7805fb4d3 Author: Nick Alcock Date: Wed Apr 24 11:41:00 2019 +0100 libctf: debug dumping This introduces ctf_dump(), an iterator which returns a series of strings, each representing a debugging dump of one item from a given section in the CTF file. The items may be multiline: a callback is provided to allow the caller to decorate each line as they desire before the line is returned. libctf/ * ctf-dump.c: New. include/ * ctf-api.h (ctf_dump_decorate_f): New. (ctf_dump_state_t): new. (ctf_dump): New. commit 6dbf2b734063522b4f3d7403ce7a2b436802b839 Author: Nick Alcock Date: Wed Apr 24 11:35:37 2019 +0100 libctf: labels This facility allows you to associate regions of type IDs with *labels*, a labelled tiling of the type ID space. You can use these to define CTF containers with distinct parents for distinct ranges of the ID space, or to assist with parallelization of CTF processing, or for any other purpose you can think of. Notably absent from here (though declared in the API header) is any way to define new labels: this will probably be introduced soon, as part of the linker deduplication work. (One existed in the past, but was deeply tied to the Solaris CTF file generator and had to be torn out.) libctf/ * ctf-labels.c: New. include/ * ctf-api.h (ctf_label_f): New. (ctf_label_set): New. (ctf_label_get): New. (ctf_label_topmost): New. (ctf_label_info): New. (ctf_label_iter): New. commit 6c33b742ce19cc2fd226d84f2991572239199a62 Author: Nick Alcock Date: Wed Apr 24 11:26:42 2019 +0100 libctf: library version enforcement This old Solaris standard allows callers to specify that they are expecting one particular API and/or CTF file format from the library. libctf/ * ctf-impl.h (_libctf_version): New declaration. * ctf-subr.c (_libctf_version): Define it. (ctf_version): New. include/ * ctf-api.h (ctf_version): New. commit c499eb6896cd803d26da8c719bfac9c03e596c08 Author: Nick Alcock Date: Wed Apr 24 11:22:03 2019 +0100 libctf: type copying ctf_add_type() allows you to copy types, and all the types they depend on, from one container to another (writable) container. This lets a program maintaining multiple distinct containers (not in a parent-child relationship) introduce types that depend on types in one container in another writable one, by copying the necessary types. libctf/ * ctf-create.c (enumcmp): New. (enumadd): Likewise. (membcmp): Likewise. (membadd): Likewise. (ctf_add_type): Likewise. commit b437bfe0f4cf06559ca4c508a2869383196ddc6b Author: Nick Alcock Date: Wed Apr 24 11:15:33 2019 +0100 libctf: lookups by name and symbol These functions allow you to look up types given a name in a simple subset of C declarator syntax (no function pointers), to look up the types of variables given a name, and to look up the types of data objects and the type signatures of functions given symbol table offsets. (Despite its name, one function in this commit, ctf_lookup_symbol_name(), is for the internal use of libctf only, and does not appear in any public header files.) libctf/ * ctf-lookup.c (isqualifier): New. (ctf_lookup_by_name): Likewise. (struct ctf_lookup_var_key): Likewise. (ctf_lookup_var): Likewise. (ctf_lookup_variable): Likewise. (ctf_lookup_symbol_name): Likewise. (ctf_lookup_by_symbol): Likewise. (ctf_func_info): Likewise. (ctf_func_args): Likewise. include/ * ctf-api.h (ctf_func_info): New. (ctf_func_args): Likewise. (ctf_lookup_by_symbol): Likewise. (ctf_lookup_by_symbol): Likewise. (ctf_lookup_variable): Likewise. commit 316afdb130346e44622229793d1fb8d391059f8d Author: Nick Alcock Date: Wed Apr 24 11:03:37 2019 +0100 libctf: core type lookup Finally we get to the functions used to actually look up and enumerate properties of types in a container (names, sizes, members, what type a pointer or cv-qual references, determination of whether two types are assignment-compatible, etc). With a very few exceptions these do not work for types newly added via ctf_add_*(): they only work on types in read-only containers, or types added before the most recent call to ctf_update(). This also adds support for lookup of "variables" (string -> type ID mappings) and for generation of C type names corresponding to a type ID. libctf/ * ctf-decl.c: New file. * ctf-types.c: Likewise. * ctf-impl.h: New declarations. include/ * ctf-api.h (ctf_visit_f): New definition. (ctf_member_f): Likewise. (ctf_enum_f): Likewise. (ctf_variable_f): Likewise. (ctf_type_f): Likewise. (ctf_type_isparent): Likewise. (ctf_type_ischild): Likewise. (ctf_type_resolve): Likewise. (ctf_type_aname): Likewise. (ctf_type_lname): Likewise. (ctf_type_name): Likewise. (ctf_type_sizee): Likewise. (ctf_type_align): Likewise. (ctf_type_kind): Likewise. (ctf_type_reference): Likewise. (ctf_type_pointer): Likewise. (ctf_type_encoding): Likewise. (ctf_type_visit): Likewise. (ctf_type_cmp): Likewise. (ctf_type_compat): Likewise. (ctf_member_info): Likewise. (ctf_array_info): Likewise. (ctf_enum_name): Likewise. (ctf_enum_value): Likewise. (ctf_member_iter): Likewise. (ctf_enum_iter): Likewise. (ctf_type_iter): Likewise. (ctf_variable_iter): Likewise. commit 143dce8481f09f60704ab52b98cf8fe6d8b29fc9 Author: Nick Alcock Date: Wed Apr 24 10:46:39 2019 +0100 libctf: ELF file opening via BFD These functions let you open an ELF file with a customarily-named CTF section in it, automatically opening the CTF file or archive and associating the symbol and string tables in the ELF file with the CTF container, so that you can look up the types of symbols in the ELF file via ctf_lookup_by_symbol(), and so that strings can be shared between the ELF file and CTF container, to save space. It uses BFD machinery to do so. This has now been lightly tested and seems to work. In particular, if you already have a bfd you can pass it in to ctf_bfdopen(), and if you want a bfd made for you you can call ctf_open() or ctf_fdopen(), optionally specifying a target (or try once without a target and then again with one if you get ECTF_BFD_AMBIGUOUS back). We use a forward declaration for the struct bfd in ctf-api.h, so that ctf-api.h users are not required to pull in . (This is mostly for the sake of readelf.) libctf/ * ctf-open-bfd.c: New file. * ctf-open.c (ctf_close): New. * ctf-impl.h: Include bfd.h. (ctf_file): New members ctf_data_mmapped, ctf_data_mmapped_len. (ctf_archive_internal): New members ctfi_abfd, ctfi_data, ctfi_bfd_close. (ctf_bfdopen_ctfsect): New declaration. (_CTF_SECTION): likewise. include/ * ctf-api.h (struct bfd): New forward. (ctf_fdopen): New. (ctf_bfdopen): Likewise. (ctf_open): Likewise. (ctf_arc_open): Likewise. commit 9402cc593f4aa54677203efa9a92c4f28d3033eb Author: Nick Alcock Date: Wed Apr 24 11:30:17 2019 +0100 libctf: mmappable archives If you need to store a large number of CTF containers somewhere, this provides a dedicated facility for doing so: an mmappable archive format like a very simple tar or ar without all the system-dependent format horrors or need for heavy file copying, with built-in compression of files above a particular size threshold. libctf automatically mmap()s uncompressed elements of these archives, or uncompresses them, as needed. (If the platform does not support mmap(), copying into dynamically-allocated buffers is used.) Archive iteration operations are partitioned into raw and non-raw forms. Raw operations pass thhe raw archive contents to the callback: non-raw forms open each member with ctf_bufopen() and pass the resulting ctf_file_t to the iterator instead. This lets you manipulate the raw data in the archive, or the contents interpreted as a CTF file, as needed. It is not yet known whether we will store CTF archives in a linked ELF object in one of these (akin to debugdata) or whether they'll get one section per TU plus one parent container for types shared between them. (In the case of ELF objects with very large numbers of TUs, an archive of all of them would seem preferable, so we might just use an archive, and add lzma support so you can assume that .gnu_debugdata and .ctf are compressed using the same algorithm if both are present.) To make usage easier, the ctf_archive_t is not the on-disk representation but an abstraction over both ctf_file_t's and archives of many ctf_file_t's: users see both CTF archives and raw CTF files as ctf_archive_t's upon opening, the only difference being that a raw CTF file has only a single "archive member", named ".ctf" (the default if a null pointer is passed in as the name). The next commit will make use of this facility, in addition to providing the public interface to actually open archives. (In the future, it should be possible to have all CTF sections in an ELF file appear as an "archive" in the same fashion.) This machinery is also used to allow library-internal creators of ctf_archive_t's (such as the next commit) to stash away an ELF string and symbol table, so that all opens of members in a given archive will use them. This lets CTF archives exploit the ELF string and symbol table just like raw CTF files can. (All this leads to somewhat confusing type naming. The ctf_archive_t is a typedef for the opaque internal type, struct ctf_archive_internal: the non-internal "struct ctf_archive" is the on-disk structure meant for other libraries manipulating CTF files. It is probably clearest to use the struct name for struct ctf_archive_internal inside the program, and the typedef names outside.) libctf/ * ctf-archive.c: New. * ctf-impl.h (ctf_archive_internal): New type. (ctf_arc_open_internal): New declaration. (ctf_arc_bufopen): Likewise. (ctf_arc_close_internal): Likewise. include/ * ctf.h (CTFA_MAGIC): New. (struct ctf_archive): New. (struct ctf_archive_modent): Likewise. * ctf-api.h (ctf_archive_member_f): New. (ctf_archive_raw_member_f): Likewise. (ctf_arc_write): Likewise. (ctf_arc_close): Likewise. (ctf_arc_open_by_name): Likewise. (ctf_archive_iter): Likewise. (ctf_archive_raw_iter): Likewise. (ctf_get_arc): Likewise. commit 72f3392127e1892cb203a98092b4ae32485365fe Author: Nick Alcock Date: Wed Apr 24 10:17:13 2019 +0100 libctf: opening This fills in the other half of the opening/creation puzzle: opening of already-existing CTF files. Such files are always read-only: if you want to add to a CTF file opened with one of the opening functions in this file, use ctf_add_type(), in a later commit, to copy appropriate types into a newly ctf_create()d, writable container. The lowest-level opening functions are in here: ctf_bufopen(), which takes ctf_sect_t structures akin to ELF section headers, and ctf_simple_open(), which can be used if you don't have an entire ELF section header to work from. Both will malloc() new space for the buffers only if necessary, will mmap() directly from the file if requested, and will mprotect() it afterwards to prevent accidental corruption of the types. These functions are also used by ctf_update() when converting types in a writable container into read-only types that can be looked up using the lookup functions (in later commits). The files are always of the native endianness of the system that created them: at read time, the endianness of the header magic number is used to determine whether or not the file needs byte-swapping, and the entire thing is aggressively byte-swapped. The agggressive nature of this swapping avoids complicating the rest of the code with endianness conversions, while the native endianness introduces no byte-swapping overhead in the common case. (The endianness-independence code is also much newer than everything else in this file, and deserves closer scrutiny.) The accessors at the top of the file are there to transparently support older versions of the CTF file format, allowing translation from older formats that have different sizes for the structures in ctf.h: currently, these older formats are intermingled with the newer ones in ctf.h: they will probably migrate to a compatibility header in time, to ease readability. The ctf_set_base() function is split out for the same reason: when conversion code to a newer format is written, it would need to malloc() new storage for the entire ctf_file_t if a file format change causes it to grow, and for that we need ctf_set_base() to be a separate function. One pair of linked data structures supported by this file has no creation code in libctf yet: the data and function object sections read by init_symtab(). These will probably arrive soon, when the linker comes to need them. (init_symtab() has hardly been changed since 2009, but if any code in libctf has rotted over time, this will.) A few simple accessors are also present that can even be called on read-only containers because they don't actually modify them, since the relevant things are not stored in the container but merely change its operation: ctf_setmodel(), which lets you specify whether a container is LP64 or not (used to statically determine the sizes of a few types), ctf_import(), which is the only way to associate a parent container with a child container, and ctf_setspecific(), which lets the caller associate an arbitrary pointer with the CTF container for any use. If the user doesn't call these functions correctly, libctf will misbehave: this is particularly important for ctf_import(), since a container built against a given parent container will not be able to resolve types that depend on types in the parent unless it is ctf_import()ed with a parent container with the same set of types at the same IDs, or a superset. Possible future extensions (also noted in the ctf-hash.c file) include storing a count of things so that we don't need to do one pass over the CTF file counting everything, and computing a perfect hash at CTF creation time in some compact form, storing it in the CTF file, and using it to hash things so we don't need to do a second pass over the entire CTF file to set up the hashes used to go from names to type IDs. (There are multiple such hashes, one for each C type namespace: types, enums, structs, and unions.) libctf/ * ctf-open.c: New file. * swap.h: Likewise. include/ * ctf-api.h (ctf_file_close): New declaration. (ctf_getdatasect): Likewise. (ctf_parent_file): Likewise. (ctf_parent_name): Likewise. (ctf_parent_name_set): Likewise. (ctf_import): Likewise. (ctf_setmodel): Likewise. (ctf_getmodel): Likewise. (ctf_setspecific): Likewise. (ctf_getspecific): Likewise. commit 47d546f427d0d3bf9f503b5b118ae05b49d73d28 Author: Nick Alcock Date: Tue Apr 23 22:45:46 2019 +0100 libctf: creation functions The CTF creation process looks roughly like (error handling elided): int err; ctf_file_t *foo = ctf_create (&err); ctf_id_t type = ctf_add_THING (foo, ...); ctf_update (foo); ctf_*write (...); Some ctf_add_THING functions accept other type IDs as arguments, depending on the type: cv-quals, pointers, and structure and union members all take other types as arguments. So do 'slices', which let you take an existing integral type and recast it as a type with a different bitness or offset within a byte, for bitfields. One class of THING is not a type: "variables", which are mappings of names (in the internal string table) to types. These are mostly useful when encoding variables that do not appear in a symbol table but which some external user has some other way to figure out the address of at runtime (dynamic symbol lookup or querying a VM interpreter or something). You can snapshot the creation process at any point: rolling back to a snapshot deletes all types and variables added since that point. You can make arbitrary type queries on the CTF container during the creation process, but you must call ctf_update() first, which translates the growing dynamic container into a static one (this uses the CTF opening machinery, added in a later commit), which is quite expensive. This function must also be called after adding types and before writing the container out. Because addition of types involves looking up existing types, we add a little of the type lookup machinery here, as well: only enough to look up types in dynamic containers under construction. libctf/ * ctf-create.c: New file. * ctf-lookup.c: New file. include/ * ctf-api.h (zlib.h): New include. (ctf_sect_t): New. (ctf_sect_names_t): Likewise. (ctf_encoding_t): Likewise. (ctf_membinfo_t): Likewise. (ctf_arinfo_t): Likewise. (ctf_funcinfo_t): Likewise. (ctf_lblinfo_t): Likewise. (ctf_snapshot_id_t): Likewise. (CTF_FUNC_VARARG): Likewise. (ctf_simple_open): Likewise. (ctf_bufopen): Likewise. (ctf_create): Likewise. (ctf_add_array): Likewise. (ctf_add_const): Likewise. (ctf_add_enum_encoded): Likewise. (ctf_add_enum): Likewise. (ctf_add_float): Likewise. (ctf_add_forward): Likewise. (ctf_add_function): Likewise. (ctf_add_integer): Likewise. (ctf_add_slice): Likewise. (ctf_add_pointer): Likewise. (ctf_add_type): Likewise. (ctf_add_typedef): Likewise. (ctf_add_restrict): Likewise. (ctf_add_struct): Likewise. (ctf_add_union): Likewise. (ctf_add_struct_sized): Likewise. (ctf_add_union_sized): Likewise. (ctf_add_volatile): Likewise. (ctf_add_enumerator): Likewise. (ctf_add_member): Likewise. (ctf_add_member_offset): Likewise. (ctf_add_member_encoded): Likewise. (ctf_add_variable): Likewise. (ctf_set_array): Likewise. (ctf_update): Likewise. (ctf_snapshot): Likewise. (ctf_rollback): Likewise. (ctf_discard): Likewise. (ctf_write): Likewise. (ctf_gzwrite): Likewise. (ctf_compress_write): Likewise. commit a5be9bbe896d4adb6077e9bb2ebcaaa4426bdde1 Author: Nick Alcock Date: Tue Apr 23 22:24:13 2019 +0100 libctf: implementation definitions related to file creation We now enter a series of commits that are sufficiently tangled that avoiding forward definitions is almost impossible: no attempt is made to make individual commits compilable (which is why the build system does not reference any of them yet): the only important thing is that they should form something like conceptual groups. But first, some definitions, including the core ctf_file_t itself. Uses of these definitions will be introduced in later commits. libctf/ * ctf-impl.h: New definitions and declarations for type creation and lookup. commit c0754cdd9af6d8259eac5c9daad9f9b0611358dd Author: Nick Alcock Date: Tue Apr 23 22:12:16 2019 +0100 libctf: hashing libctf maintains two distinct hash ADTs, one (ctf_dynhash) for wrapping dynamically-generated unknown-sized hashes during CTF file construction, one (ctf_hash) for wrapping unchanging hashes whose size is known at creation time for reading CTF files that were previously created. In the binutils implementation, these are both fairly thin wrappers around libiberty hashtab. Unusually, this code is not kept synchronized with libdtrace-ctf, due to its dependence on libiberty hashtab. libctf/ * ctf-hash.c: New file. * ctf-impl.h: New declarations. commit 479604f44fc1eaa02a97ebcc1b60f55a606c4046 Author: Nick Alcock Date: Tue Apr 23 22:05:52 2019 +0100 libctf: error handling CTF functions return zero on success or an extended errno value which can be translated into a string via the functions in this commit. The errno numbers start at -CTF_BASE. libctf/ * ctf-error.c: New file. include/ * ctf-api.h (ctf_errno): New declaration. (ctf_errmsg): Likewise. commit 94585e7f93c9477bcf2835d8245e967053ce2b41 Author: Nick Alcock Date: Tue Apr 23 21:45:30 2019 +0100 libctf: low-level list manipulation and helper utilities These utilities are a bit of a ragbag of small things needed by more than one TU: list manipulation, ELF32->64 translators, routines to look up strings in string tables, dynamically-allocated string appenders, and routines to set the specialized errno values previously committed in . We do still need to dig around in raw ELF symbol tables in places, because libctf allows the caller to pass in the contents of string and symbol sections without telling it where they come from, so we cannot use BFD to get the symbols (BFD reasonably demands the entire file). So extract minimal ELF definitions from glibc into a private header named libctf/elf.h: later, we use those to get symbols. (The start-of- copyright range on elf.h reflects this glibc heritage.) libctf/ * ctf-util.c: New file. * elf.h: Likewise. * ctf-impl.h: Include it, and add declarations. commit 60da9d955964759b1f52690bff587ad32a198507 Author: Nick Alcock Date: Tue Apr 23 18:55:27 2019 +0100 libctf: lowest-level memory allocation and debug-dumping wrappers The memory-allocation wrappers are simple things to allow malloc interposition: they are only used inconsistently at present, usually where malloc debugging was required in the past. These provide a default implementation that is environment-variable triggered (initialized on the first call to the libctf creation and file-opening functions, the first functions people will use), and a ctf_setdebug()/ctf_getdebug() pair that allows the caller to explicitly turn debugging off and on. If ctf_setdebug() is called, the automatic setting from an environment variable is skipped. libctf/ * ctf-impl.h: New file. * ctf-subr.c: New file. include/ * ctf-api.h (ctf_setdebug): New. (ctf_getdebug): Likewise. commit 2e94b05630514109994abb77ee2dae730f17c263 Author: Nick Alcock Date: Tue Apr 23 18:42:34 2019 +0100 include: new header ctf-api.h This non-installed header is the means by which libctf consumers communicate with libctf. This header will be extended in subsequent commits. include/ * ctf-api.h: New file. commit fceac76e64b998c9b66a229134a9ead25209e095 Author: Nick Alcock Date: Tue Apr 23 18:02:25 2019 +0100 include: new header ctf.h: file format description The data structures and macros in this header can be used, if desired, to access or create CTF files directly, without going through libctf, though this should rarely be necessary in practice. libctf relies on this header as its description of the CTF file format. include/ * ctf.h: New file. commit eabf307f1d77b952dd76f2618e4e6f72d87e5d10 Author: Alan Modra Date: Tue May 28 20:12:32 2019 +0930 PE linker segmentation fault with MALLOC_PERTURB_=1 PR 24596 * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Check that the output is coff before accessing coff tdata. * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise. commit 65f381e729bedb933f3e1376e7f53f0ff63ac9a8 Author: Szabolcs Nagy Date: Tue May 28 11:48:08 2019 +0100 aarch64: fix variant_pcs ld tests Force sysv hash style for reliable symbol table layout. ld/ChangeLog: * testsuite/ld-aarch64/variant_pcs-now.d: Use --hash-style=sysv. * testsuite/ld-aarch64/variant_pcs-shared.d: Likewise. commit 766f883622ef008230250aa5aecef9fb9b29f233 Author: Alan Hayward Date: Tue May 28 10:07:54 2019 +0100 Suppress SIGTTOU when handling errors Calls to error () can cause SIGTTOU to send gdb to the background. For example, on an Arm build: (gdb) b main Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binutils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174. (gdb) r Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/watchpoint [1]+ Stopped ../gdb ./outputs/gdb.base/watchpoint/watchpoint localhost$ fg ../gdb ./outputs/gdb.base/watchpoint/watchpoint Cannot parse expression `.L1199 4@r4'. warning: Probes-based dynamic linker interface failed. Reverting to original interface. The SIGTTOU is raised whilst inside a syscall during the call to tcdrain. Fix is to use scoped_ignore_sigttou to ensure SIGTTOU is blocked. In addition fix include comments - job_control is not included via terminal.h gdb/ChangeLog: * event-top.c: Remove include comment. * inflow.c (class scoped_ignore_sigttou): Move from here... * inflow.h (class scoped_ignore_sigttou): ...to here. * ser-unix.c (hardwire_drain_output): Block SIGTTOU during drain. * top.c: Remove include comment. commit 0f4a61b42002f568473f821f00dd240413beadd0 Author: Alan Modra Date: Tue May 28 17:52:42 2019 +0930 COFF linker segmentation faults A plugin can change the element, so call the generic bfd_link_add_symbols. PR 24596 * cofflink.c (coff_link_check_archive_element): Don't assume element is a coff object file after calling add_archive_element. commit 94667ab146a0c94f87f3d9aa7d1c819663b28338 Author: Alan Modra Date: Tue May 28 15:54:15 2019 +0930 Microblaze linker segmentation fault PR 24596 * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Don't attempt to set sh_entsize for excluded PLT section. commit 28fbeab8064f97ca5fe1a851fdc4146b7aed8863 Author: Alan Modra Date: Tue May 28 15:06:47 2019 +0930 Alpha-linux linker segmentation fault This patch cures a linker segfault, and "FAIL: Build pr22263-1". PR 24596 * elf64-alpha.c (elf64_alpha_relocate_section): Don't attempt to emit R_ALPHA_GOTTPREL in PIEs, for which no space is allocated in alpha_dynamic_entries_for_reloc. commit a0f6fd217fa53ab80a335fb69f12f1f28ac3335a Author: Alan Modra Date: Tue May 28 14:34:37 2019 +0930 LM32 linker segmentation faults PR 24596 * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Don't segfault on NULL output_section. * elflink.c (elf_final_link_free): Don't free -1 symshndxbuf. commit c83004d526c9f5e203926a979d405f7b720b9ede Author: Alan Modra Date: Tue May 28 11:49:30 2019 +0930 m68k linker segmentation faults This doesn't fix the underlying bug, but an abort is better than a segfault. PR 24596 * elf32-m68k.c (elf_m68k_get_got_entry): Don't create a new entry when MUST_FIND. Abort when MUST_FIND not found. (elf_m68k_get_bfd2got_entry): Likewise. (elf_m68k_relocate_section): Remove now useless assert. commit 586338b839d3f65d22eb3baef41f7395974f1f11 Author: Alan Modra Date: Tue May 28 08:41:56 2019 +0930 HPPA64 linker segmentation faults One of the ld tests produces: failed with: , no expected output FAIL: Discarded dynamic relocation section This patch cures the segv. (The test still fails with ld producing a really messed up output, DT_RELA at address 0!) PR 24596 * elf64-hppa.c (elf64_hppa_finalize_dynreloc): Get the output bfd from bfd_link_info, not an output section owner. (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd): Likewise. (elf_hppa_final_link_relocate): Likewise. commit a7b34aba62ce347b4e64ca197a5c8b997e3b72df Author: Alan Modra Date: Mon May 27 20:00:11 2019 +0930 Obsolete tic30-aout, and linker segmentation faults See also the FIXME. tic30-aout linker support is so bad (and has been that way since the initial tic30-aout commit) that I'm obsoleting the target. This patch fixes numerous linker testsuite segmentation faults. PR 24596 * aout-tic30.c (MY_bfd_final_link): Don't segfault on missing create_object_symbols_section, obj_textsec, obj_datasec or obj_bsssec. Fix other errors in placement. * config.bfd: Obsolete tic30-aout. commit 0eb32b6e1dee07ac199b4bba855205e4de099213 Author: Alan Modra Date: Mon May 27 15:38:55 2019 +0930 XCOFF linker segmentation fault The XCOFF linker temporarily trims the output bfd section list, without adjusting section_count to suit. This is a little rude, but the dwarf line number code can easily cope with this situation. So check for a NULL end of list as well as limiting the saved section VMAs to the first section_count list entries. Also fixes -FAIL: Weak test 3 (main, static) (32-bit) -FAIL: Weak test 3 (main, static) (64-bit) PR 24596 * dwarf2.c (save_section_vma, section_vma_same): Check for NULL end of section list as well as section_count. * xcofflink.c (xcoff_link_add_symbols): Fix temporarily changed section list before returning error. commit 58db964680f0f17197849a714c30430deafb8bc7 Author: GDB Administrator Date: Tue May 28 00:00:15 2019 +0000 Automatic date update in version.in commit eb41253a15e2c976869ba1b1f0c3c0e60065fd4f Author: Tom Tromey Date: Mon May 27 14:53:12 2019 -0600 Fix typo in gdb/NEWS I noticed a typo in gdb/NEWS. This fixes it. gdb/ChangeLog 2019-05-27 Tom Tromey * NEWS: Fix typo. commit 5f63875b309f3ae9854ac8a12470111b794a70a2 Author: Alan Modra Date: Mon May 27 11:37:51 2019 +0930 Fix failure on powerpc 32-bit only targets Targets that lack ppc64 support were failing the new prefix-reloc test. This patch adds some test infrastructure to deal with that, and changes the powerpc gas usage info so that "-a64" is omitted when unsupported. I've been meaning to break up the usage message for a long time; While doing so causes translators some work now, it should make it easier next time a new powerpc option is added. * config/tc-ppc.c (is_ppc64_target): New function. (md_show_usage): Split up usage message. Don't show -a64 when unsupported. testsuite/gas/ppc/ppc.exp (supports_ppc64): New. (prefix-reloc): Only run for ppc64. commit 61dd8e19a8b43037125d4a767f27e98e9181521b Author: Alan Modra Date: Mon May 27 10:37:37 2019 +0930 readelf group errors/warnings I noticed that one of the readelf errors stopped processing of further group sections. This patch makes readelf continue on to other groups, like it does with the other errors. * readelf.c (process_section_groups): Continue processing groups when sh_entsize exceeds group size. commit ce5aecf87372749a5ec511f218956756aa185d0f Author: Alan Modra Date: Mon May 27 10:29:22 2019 +0930 Another generic ELF target assertion failure After fixing the ld-elf/pr22836-1a segmentation fault we run into an assertion failure due to the generic ELF target not removing empty SHT_GROUP sections. Avoid that. * elf.c (bfd_elf_set_group_contents): Exit on zero size section. commit 3d7d6a6ff4678685f86976f08ab4c9c639e262e1 Author: Alan Modra Date: Mon May 27 09:38:42 2019 +0930 Generic ELF target group signature symbol Even though the generic ELF target doesn't handle groups correctly, this helps avoid a segfault in bfd_elf_set_group_contents seen on d30v-elf, dlx-elf, pj-elf, and xgate-elf when linking the pr22836 testcase. PR 24596 bfd/ * linker.c (_bfd_generic_link_output_symbols): Heed BSF_KEEP. ld/ * emultempl/genelf.em (gld${EMULATION_NAME}_after_open): Set BFS_KEEP on group signature symbol. commit d5b7ce35a19350969b609c56a8bfff17f91cca20 Author: GDB Administrator Date: Mon May 27 00:00:12 2019 +0000 Automatic date update in version.in commit 5b6d4fc74b505850a7849175a800b55aea4d9363 Author: GDB Administrator Date: Sun May 26 00:01:00 2019 +0000 Automatic date update in version.in commit b3811e90dc878d2a23737d20c6d55a972e5b0fd6 Author: GDB Administrator Date: Sat May 25 00:00:20 2019 +0000 Automatic date update in version.in commit 823710d5856996d1f54f04ecb2f7647aeae99b5b Author: Szabolcs Nagy Date: Thu Apr 25 15:07:14 2019 +0100 aarch64: handle STO_AARCH64_VARIANT_PCS in bfd Propagate STO_AARCH64_VARIANT_PCS st_other attribute to the output and add DT_AARCH64_VARIANT_PCS dynamic tag if necessary. Mismatching attributes are not diagnosed. bfd/ChangeLog: * elfnn-aarch64.c (elfNN_aarch64_merge_symbol_attribute): New function. (struct elf_aarch64_link_hash_table): Add variant_pcs member. (elfNN_aarch64_allocate_dynrelocs): Update variant_pcs. (elfNN_aarch64_size_dynamic_sections): Add DT_AARCH64_VARIANT_PCS. (elf_backend_merge_symbol_attribute): Define. ld/ChangeLog: * testsuite/ld-aarch64/aarch64-elf.exp: Add new tests. * testsuite/ld-aarch64/variant_pcs-1.s: New asm for tests. * testsuite/ld-aarch64/variant_pcs-2.s: New asm for tests. * testsuite/ld-aarch64/variant_pcs-now.d: New test. * testsuite/ld-aarch64/variant_pcs-r.d: New test. * testsuite/ld-aarch64/variant_pcs-shared.d: New test. * testsuite/ld-aarch64/variant_pcs.ld: New linker script for tests. commit 0b4eac57c44ec4c9e13f5201b40936c3b3e6c639 Author: Szabolcs Nagy Date: Thu Apr 25 15:07:10 2019 +0100 aarch64: override default elf .set handling in gas Allow st_other values such as STO_AARCH64_VARIANT_PCS to be set for alias symbols independently. This is needed for ifunc symbols which are aliased to the resolver using .set and don't expect resolver attributes to override the ifunc symbol attributes. This means .variant_pcs must be added explicitly to aliases. gas/ChangeLog: * config/tc-aarch64.c (aarch64_elf_copy_symbol_attributes): Define. * config/tc-aarch64.h (aarch64_elf_copy_symbol_attributes): Declare. (OBJ_COPY_SYMBOL_ATTRIBUTES): Define. * testsuite/gas/aarch64/symbol-variant_pcs-3.d: New test. * testsuite/gas/aarch64/symbol-variant_pcs-3.s: New test. commit f166ae0188dcb89c5ae925034260a708a254ab2f Author: Szabolcs Nagy Date: Thu Apr 25 15:06:53 2019 +0100 aarch64: handle .variant_pcs directive in gas In ELF objects the specified symbol is marked with STO_AARCH64_VARIANT_PCS. gas/ChangeLog: * config/tc-aarch64.c (s_variant_pcs): New function. * doc/c-aarch64.texi: Document .variant_pcs. * testsuite/gas/aarch64/symbol-variant_pcs-1.d: New test. * testsuite/gas/aarch64/symbol-variant_pcs-1.s: New test. * testsuite/gas/aarch64/symbol-variant_pcs-2.d: New test. * testsuite/gas/aarch64/symbol-variant_pcs-2.s: New test. commit 2301ed1c9af1316b4bad3747d2b03f7d44940f87 Author: Szabolcs Nagy Date: Thu Apr 25 13:46:01 2019 +0100 aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS The bottom 2 bits of st_other are used for visibility, the top 6 bits are de facto reserved for processor specific use. This patch defines a bits to mark function symbols that follow a variant procedure call standard with different register usage convention. A dynamic tag is also defined that marks modules with R__JUMP_SLOT relocations referencing symbols marked with STO_AARCH64_VARIANT_PCS. This can be used by dynamic linkers that support lazy binding to decide what registers need to be preserved during symbol resolution. binutils/ChangeLog: * readelf.c (get_aarch64_dynamic_type): Handle DT_AARCH64_VARIANT_PCS. (get_aarch64_symbol_other): New, handles STO_AARCH64_VARIANT_PCS. (get_symbol_other): Call get_aarch64_symbol_other. include/ChangeLog: * elf/aarch64.h (DT_AARCH64_VARIANT_PCS): Define. (STO_AARCH64_VARIANT_PCS): Define. commit 405b5bd86fbcfa9ad5e67e9cdc49dfcdaacf533c Author: Alan Modra Date: Fri May 24 23:09:56 2019 +0930 Regen POTFILES for bpf bfd/ * po/SRC-POTFILES.in: Regenerate. gas/ * po/POTFILES.in: Regenerate. ld/ * po/BLD-POTFILES.in: Regenerate. opcodes/ * po/POTFILES.in: Regenerate. commit 5a01c34c62ff9085a0f45ec2a43a38e7b455b23b Author: Tom de Vries Date: Fri May 24 14:25:33 2019 +0200 [gdb/testsuite] Add test-case for gdb-add-index.sh Add a test-case gdb.dwarf2/gdb-add-index.exp to test gdb/contrib/gdb-add-index.sh. Tested with x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-24 Tom de Vries * gdb.dwarf2/gdb-add-index.exp: New file. commit 04bdff6a76b863e61ee46375dd7cdc9adfb75540 Author: Alan Modra Date: Thu Aug 9 22:53:00 2018 +0930 PowerPC notoc linkage stubs Use pcrel addressing instructions in linkage stubs. bfd/ * elf64-ppc.c: Comment on powerxx _notoc stub variants. (LI_R11_0, LIS_R11, ORI_R11_R11_0, SLDI_R11_R11_34): Define. (PADDI_R12_PC, PLD_R12_PC, D34, HA34): Define. (struct ppc_link_hash_table): Add powerxx_stubs. (ppc64_elf_check_relocs): Set powerxx_stubs. (build_powerxx_offset, size_powerxx_offset), (num_relocs_for_powerxx_offset), (emit_relocs_for_powerxx_offset): New functions. (plt_stub_size): Size powerxx stubs. (ppc_build_one_stub): Emit powerxx stubs. (ppc_size_one_stub): Size powerxx stubs. Omit .eh_frame for powerxx stubs. ld/ * testsuite/ld-powerpc/notoc2.d, * testsuite/ld-powerpc/notoc2.s: New test. * testsuite/ld-powerpc/powerpc.exp: Run it. commit 4a421c53cf609d68fe956c2e7270d34c0ab8500f Author: Alan Modra Date: Tue Apr 30 16:33:25 2019 +0930 PowerPC GOT_PCREL34 optimisation bfd/ * elf64-ppc.c (ppc64_elf_check_relocs): Set has_gotrel for R_PPC64_GOT_PCREL34. (xlate_pcrel_opt): New function. (ppc64_elf_edit_toc): Handle R_PPC64_GOT_PCREL34. (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative for R_PPC64_GOT_PCREL34. Implement R_PPC64_PCREL_OPT optimisation. ld/ * testsuite/ld-powerpc/pcrelopt.s, * testsuite/ld-powerpc/pcrelopt.d, * testsuite/ld-powerpc/pcrelopt.sec: New test. * testsuite/ld-powerpc/powerpc.exp: Run it. commit 5663e321848545857a690f30a780187e3366bd2d Author: Alan Modra Date: Wed Aug 29 14:22:34 2018 +0930 PowerPC relocations for prefix insns include/ * elf/ppc64.h (R_PPC64_PLTSEQ_NOTOC, R_PPC64_PLTCALL_NOTOC), (R_PPC64_PCREL_OPT, R_PPC64_D34, R_PPC64_D34_LO, R_PPC64_D34_HI30), (R_PPC64_D34_HA30, R_PPC64_PCREL34, R_PPC64_GOT_PCREL34), (R_PPC64_PLT_PCREL34, R_PPC64_PLT_PCREL34_NOTOC), (R_PPC64_ADDR16_HIGHER34, R_PPC64_ADDR16_HIGHERA34), (R_PPC64_ADDR16_HIGHEST34, R_PPC64_ADDR16_HIGHESTA34), (R_PPC64_REL16_HIGHER34, R_PPC64_REL16_HIGHERA34), (R_PPC64_REL16_HIGHEST34, R_PPC64_REL16_HIGHESTA34), (R_PPC64_D28, R_PPC64_PCREL28): Define. bfd/ * reloc.c (BFD_RELOC_PPC64_D34, BFD_RELOC_PPC64_D34_LO), (BFD_RELOC_PPC64_D34_HI30, BFD_RELOC_PPC64_D34_HA30), (BFD_RELOC_PPC64_PCREL34, BFD_RELOC_PPC64_GOT_PCREL34), (BFD_RELOC_PPC64_PLT_PCREL34), (BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34), (BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34), (BFD_RELOC_PPC64_REL16_HIGHER34, BFD_RELOC_PPC64_REL16_HIGHERA34), (BFD_RELOC_PPC64_REL16_HIGHEST34, BFD_RELOC_PPC64_REL16_HIGHESTA34), (BFD_RELOC_PPC64_D28, BFD_RELOC_PPC64_PCREL28): New reloc enums. * elf64-ppc.c (PNOP): Define. (ppc64_elf_howto_raw): Add reloc howtos for new relocations. (ppc64_elf_reloc_type_lookup): Translate new bfd reloc numbers. (ppc64_elf_ha_reloc): Adjust addend for highera34 and highesta34 relocs. (ppc64_elf_prefix_reloc): New function. (struct ppc_link_hash_table): Add notoc_plt. (is_branch_reloc): Add R_PPC64_PLTCALL_NOTOC. (is_plt_seq_reloc): Add R_PPC64_PLT_PCREL34, R_PPC64_PLT_PCREL34_NOTOC, and R_PPC64_PLTSEQ_NOTOC. (ppc64_elf_check_relocs): Handle pcrel got and plt relocs. Set has_pltcall for section on seeing R_PPC64_PLTCALL_NOTOC. Handle possible need for dynamic relocs on non-pcrel powerxx relocs. (dec_dynrel_count): Handle non-pcrel powerxx relocs. (ppc64_elf_inline_plt): Handle R_PPC64_PLTCALL_NOTOC. (toc_adjusting_stub_needed): Likewise. (ppc64_elf_tls_optimize): Handle R_PPC64_PLTSEQ_NOTOC. (ppc64_elf_relocate_section): Handle new powerxx relocs. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. gas/ * config/tc-ppc.c (ppc_elf_suffix): Support @pcrel, @got@pcrel, @plt@pcrel, @higher34, @highera34, @highest34, and @highesta34. (fixup_size): Handle new powerxx relocs. (md_assemble): Warn for @pcrel on non-prefix insns. Accept @l, @h and @ha on prefix insns, and infer reloc without any @ suffix. Translate powerxx relocs to suit DQ and DS field instructions. Include operand tests as well as opcode test to translate BFD_RELOC_HI16_S to BFD_RELOC_PPC_16DX_HA. (ppc_fix_adjustable): Return false for pcrel GOT and PLT relocs. (md_apply_fix): Handle new powerxx relocs. * config/tc-ppc.h (TC_FORCE_RELOCATION_SUB_LOCAL): Accept BFD_RELOC_PPC64_ADDR16_HIGHER34, BFD_RELOC_PPC64_ADDR16_HIGHERA34, BFD_RELOC_PPC64_ADDR16_HIGHEST34, BFD_RELOC_PPC64_ADDR16_HIGHESTA34, BFD_RELOC_PPC64_D34, and BFD_RELOC_PPC64_D28. * testsuite/gas/ppc/prefix-reloc.d, * testsuite/gas/ppc/prefix-reloc.s: New test. * testsuite/gas/ppc/ppc.exp: Run it. commit 8acf14351c818d956babe50e61711740f378c941 Author: Peter Bergner Date: Fri Jul 27 22:21:43 2018 -0500 PowerPC D-form prefixed loads and stores opcodes/ * ppc-opc.c (insert_d34, extract_d34, insert_nsi34, extract_nsi34), (insert_pcrel, extract_pcrel, extract_pcrel0): New functions. (extract_esync, extract_raq, extract_tbr, extract_sxl): Comment. (powerpc_operands ): Define and add entries. (P8LS, PMLS, P_D_MASK, P_DRAPCREL_MASK): Define. (prefix_opcodes): Add pli, paddi, pla, psubi, plwz, plbz, pstw, pstb, plhz, plha, psth, plfs, plfd, pstfs, pstfd, plq, plxsd, plxssp, pld, plwa, pstxsd, pstxssp, pstxv, pstd, and pstq. gas/ * config/tc-ppc.c (ppc_insert_operand): Only sign extend fields that are 32-bits or smaller. * messages.c (as_internal_value_out_of_range): Do not truncate variables and use BFD_VMA_FMT to print them. * testsuite/gas/ppc/prefix-pcrel.s, * testsuite/gas/ppc/prefix-pcrel.d: New test. * testsuite/gas/ppc/ppc.exp: Run it. commit dd7efa79151ed5a56caccfac870865764d922a2f Author: Peter Bergner Date: Tue May 15 16:48:14 2018 -0500 PowerPC add initial -mfuture instruction support This patch adds initial 64-bit insn assembler/disassembler support. The only instruction added is "pnop" along with the automatic aligning of prefix instruction so they do not cross 64-byte boundaries. include/ * dis-asm.h (WIDE_OUTPUT): Define. * opcode/ppc.h (prefix_opcodes, prefix_num_opcodes): Declare. (PPC_OPCODE_POWERXX, PPC_GET_PREFIX, PPC_GET_SUFFIX), (PPC_PREFIX_P, PPC_PREFIX_SEG): Define. opcodes/ * ppc-dis.c (ppc_opts): Add "future" entry. (PREFIX_OPCD_SEGS): Define. (prefix_opcd_indices): New array. (disassemble_init_powerpc): Initialize prefix_opcd_indices. (lookup_prefix): New function. (print_insn_powerpc): Handle 64-bit prefix instructions. * ppc-opc.c (PREFIX_OP, PREFIX_FORM, SUFFIX_MASK, PREFIX_MASK), (PMRR, POWERXX): Define. (prefix_opcodes): New instruction table. (prefix_num_opcodes): New constant. binutils/ * objdump.c (disassemble_bytes): Set WIDE_OUTPUT in flags. gas/ * config/tc-ppc.c (ppc_setup_opcodes): Handle prefix_opcodes. (struct insn_label_list): New. (insn_labels, free_insn_labels): New variables. (ppc_record_label, ppc_clear_labels, ppc_start_line_hook): New funcs. (ppc_frob_label, ppc_new_dot_label): Move functions earlier in file and call ppc_record_label. (md_assemble): Handle 64-bit prefix instructions. Align labels that are on the same line as a prefix instruction. * config/tc-ppc.h (tc_frob_label, ppc_frob_label): Move to later in the file. (md_start_line_hook): Define. (ppc_start_line_hook): Declare. * testsuite/gas/ppc/prefix-align.d, * testsuite/gas/ppc/prefix-align.s: New test. * testsuite/gas/ppc/ppc.exp: Run new test. commit fcb36d746247a9f5e266afa65019129eee9273f2 Author: GDB Administrator Date: Fri May 24 00:00:23 2019 +0000 Automatic date update in version.in commit 45d5293f6e098ff7e85a30554fcdc8c7f00db675 Author: Jose E. Marchesi Date: Thu May 23 23:17:39 2019 +0200 bfd: fix build with --enable-targets=all in 32-bit hosts This patch avoids for bpf_elf64_le_vec to be referenced in targmatch.h when building a BFD without BFD64, resulting in an undefined symbol. This was a regression introduced along with the BPF target. bfd/ChangeLog: 2019-05-23 Jose E. Marchesi * config.bfd (targ_cpu): Process bpf-*-none only if BFD64. * configure.ac: Set target_size=64 for bpf_elf64_le_vec and bpf_elf64_be_vec. * configure: Regenerate. commit 27830e0d383e4ed5e8d131c38f262d3fcc3eff25 Author: Jose E. Marchesi Date: Thu May 23 19:07:07 2019 +0200 binutils: add myself as the maintainer for BPF binutils/ChangeLog: 2019-05-23 Jose E. Marchesi * MAINTAINERS: Add myself as the maintainer for BPF. commit aca4efc7a4fc42bac5b7b029c52cbb2a2bc2574b Author: Jose E. Marchesi Date: Thu May 23 19:06:17 2019 +0200 binutils: add support for eBPF This patch adds support for ELF64 eBPF to readelf, and fixes a `nm' test to run properly in bpf-*-* targets. binutils/ChangeLog: 2019-05-23 Jose E. Marchesi * readelf.c: Include elf/bpf.h. (guess_is_rela): Hanle EM_BPF. (dump_relocations): Likewise. (is_32bit_abs_reloc): Likewise. * testsuite/binutils-all/nm.exp: Add bpf-*-* to the list of ELF targets. commit 8376927b2cc8b80cd5aa1e48aabafc85c0ad4f3e Author: Jose E. Marchesi Date: Thu May 23 19:05:42 2019 +0200 ld: add support for eBPF This patch adds support to the linker for the Linux eBPF architecture. A minimal testsuite is included. ld/ChangeLog: 2019-05-23 Jose E. Marchesi * Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64bpf.c. * Makefile.in (prefix): Regenerate. * configure.tgt (targ_extra_ofiles): Add case for bpf-*-* targets. * emulparams/elf64bpf.sh: New file. * testsuite/lib/ld-lib.exp (check_gc_sections_available): Add bpf-*-* to the list of targets not supporting gc-sections. * testsuite/ld-bpf/bar.s: New file. * testsuite/ld-bpf/jump-1.d: Likewise. * testsuite/ld-bpf/foo.s: Likewise. * testsuite/ld-bpf/call-1.d: Likewise. * testsuite/ld-bpf/bpf.exp: Likewise. * testsuite/ld-bpf/baz.s: Likewise. commit f8861f5dc2391e0c46dd118370195e7730ec46ca Author: Jose E. Marchesi Date: Thu May 23 19:05:12 2019 +0200 gas: add support for eBPF This patch adds a port for the Linux kernel eBPF to the GNU assembler. A testsuite and documentation updates are included. gas/ChangeLog: 2019-05-23 Jose E. Marchesi * configure.ac: Handle bpf-*-* targets. * configure.tgt (generic_target): Likewise. * configure: Regenerate. * Makefile.am (TARGET_CPU_CFILES): Add tc-bpf.c. (TARGET_CPU_HFILES): Add tc-bpf.h. * Makefile.in: Regenerated. * config/tc-bpf.c: New file. * config/tc-bpf.h: Likewise. * doc/Makefile.am (CPU_DOCS): Add c-bpf.texi. * doc/Makefile.in: Regenerated. * doc/all.texi: set BPF. * doc/as.texi: Add eBPF contents. * doc/c-bpf.texi: New file. * testsuite/gas/bpf/alu.d: New file. * testsuite/gas/bpf/mem-be.d: Likewise. * testsuite/gas/bpf/mem.s: Likewise. * testsuite/gas/bpf/mem.d: Likewise. * testsuite/gas/bpf/lddw-be.d: Likewise. * testsuite/gas/bpf/lddw.s: Likewise. * testsuite/gas/bpf/lddw.d: Likewise. * testsuite/gas/bpf/jump-be.d: Likewise. * testsuite/gas/bpf/jump.s: Likewise. * testsuite/gas/bpf/jump.d: Likewise. * testsuite/gas/bpf/exit-be.d: Likewise. * testsuite/gas/bpf/exit.s: Likewise. * testsuite/gas/bpf/exit.d: Likewise. * testsuite/gas/bpf/call-be.d: Likewise. * testsuite/gas/bpf/call.s: Likewise. * testsuite/gas/bpf/call.d: Likewise. * testsuite/gas/bpf/bpf.exp: Likewise. * testsuite/gas/bpf/atomic-be.d: Likewise. * testsuite/gas/bpf/atomic.s: Likewise. * testsuite/gas/bpf/atomic.d: Likewise. * testsuite/gas/bpf/alu-be.d: Likewise. * testsuite/gas/bpf/alu32-be.d: Likewise. * testsuite/gas/bpf/alu32.s: Likewise. * testsuite/gas/bpf/alu32.d: Likewise. * testsuite/gas/bpf/alu.s: Likewise. * testsuite/gas/all/gas.exp: Introduce a nop_type for eBPF. * testsuite/gas/all/org-1.s: Support nop_type 6. * testsuite/gas/all/org-1.l: Updated to reflect changes in org-1.s. commit 79472b45328232b083e897a511d4160a6dde0463 Author: Jose E. Marchesi Date: Thu May 23 19:04:36 2019 +0200 opcodes: add support for eBPF This patch adds support for the Linux kernel eBPF architecture to the opcodes. The port is based on CGEN. opcodes/ChangeLog: 2019-05-23 Jose E. Marchesi * configure.ac (SHARED_DEPENDENCIES): Add case for bfd_bpf_arch. * configure: Regenerated. * Makefile.am: Add rules for the files generated from cpu/bpf.cpu and cpu/bpf.opc. (HFILES): Add bpf-desc.h and bpf-opc.h. (TARGET_LIBOPCODES_CFILES): Add bpf-asm.c, bpf-desc.c, bpf-dis.c, bpf-ibld.c and bpf-opc.c. (BPF_DEPS): Define. * Makefile.in: Regenerated. * disassemble.c (ARCH_bpf): Define. (disassembler): Add case for bfd_arch_bpf. (disassemble_init_for_target): Likewise. (enum epbf_isa_attr): Define. * disassemble.h: extern print_insn_bpf. * bpf-asm.c: Generated. * bpf-opc.h: Likewise. * bpf-opc.c: Likewise. * bpf-ibld.c: Likewise. * bpf-dis.c: Likewise. * bpf-desc.h: Likewise. * bpf-desc.c: Likewise. commit ea195bb04cc5c964126aeff0f87d7161a03ca926 Author: Jose E. Marchesi Date: Thu May 23 19:03:59 2019 +0200 cpu: add eBPF cpu description This patch adds a CPU description for the Linux kernel eBPF virtual machine, plus supporting code for disassembler and assembler. cpu/ChangeLog: 2019-05-23 Jose E. Marchesi * bpf.cpu: New file. * bpf.opc: Likewise. commit fd0de36e274c8141a5dd4579cd04856dc88370da Author: Jose E. Marchesi Date: Thu May 23 19:33:41 2019 +0200 bfd: add support for eBPF This patch adds support to BFD for elf64-bpf, in both little-endian and big-endian variants. bfd/ChangeLog: 2019-05-23 Jose E. Marchesi * configure.ac: Add bpf_elf64_le_vec and bpf_elf64_be_vec. * configure: Regenerated. * Makefile.am (ALL_MACHINES): Add cpu-bpf.lo. (ALL_MACHINES_CFILES): Add cpu-bpf.c. (BFD64_BACKENDS): Add elf64-bpf.lo. (BFD64_BACKENDS_CFILES): Add elf64-bpf.c. * Makefile.in (SOURCE_HFILES): Regenerate. * config.bfd (targ_cpu): Handle bpf-*-* targets. * cpu-bpf.c: New file. * elf64-bpf.c: Likewise. * targets.c (_bfd_target_vector): Add bpf_elf64_be_vec and bpf_elf64_le_vec. * archures.c: Define architecture bfd_arch_bpf and machine bfd_arch_bpf. * reloc.c: Define BFD relocations used by the BPF target. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. commit 8ebe62124023224eafd1b82c8bc2325962711ef8 Author: Jose E. Marchesi Date: Thu May 23 18:30:42 2019 +0200 include: add elf/bpf.h This patch adds a header file with BPF-specific ELF definitions. In particular, the architecture relocations. include/ChangeLog: 2019-05-23 Jose E. Marchesi * elf/bpf.h: New file. commit 2376c3702e43ad8a717d80888b34e1e7eaeacaa8 Author: Jose E. Marchesi Date: Thu May 23 18:19:56 2019 +0200 config.guess,config.sub: synchronize with config project master sources This is to bring in the newly introduced support for bpf-*-* targets. ChangeLog: 2019-05-23 Jose E. Marchesi * config.guess: Synchronize with config project master sources. * config.sub: Likewise. * readline/support/config.guess: Likewise. * readline/support/config.sub: Likewise. commit 82d7a6f4e3ccb3d714b5beb03eeb24f7356d4380 Author: Alan Modra Date: Thu May 23 10:22:56 2019 +0930 Re: Have the linker report an error if the same script is used twice git commit 6ec6968b1b2 results in ... error: linker script file '/usr/local/lib64/libgcc_s.so' appears multiple times collect2: error: ld returned 1 exit status FAIL: bootstrap This patch changes things so that an error is given only when a -T script or the default script is invoked more than once. I'm still a little nervous that we match script file names, not the entire path. PR 24576 * ldfile.c (enum script_open_style): New. (struct script_name_list): New. (ldfile_open_command_file_1): Take a script_open_style param rather than booleans. Adjust callers. Only fail when -T or default -T script is invoked twice. (ldfile_try_open_bfd): Revert last change. commit 016181423bff8c04b2808f2dca9a95f0c9d92fe5 Author: GDB Administrator Date: Thu May 23 00:00:14 2019 +0000 Automatic date update in version.in commit 4ca51187d21562b6626eea2bd0e45f6b64719dfd Author: Tom Tromey Date: Wed May 22 15:41:28 2019 -0400 Constify target_ops::follow_exec I noticed that target_ops::follow_exec took a "char *" parameter, where "const char *" would be more correct. This patch changes this (and related functions) to be constified. Tested by rebuilding. gdb/ChangeLog 2019-05-22 Tom Tromey * target.c (target_follow_exec): Constify parameter. * target-delegates.c: Rebuild. * remote.c (remote_target::follow_exec): Constify parameter. * infrun.c (follow_exec): Constify parameter. * target.h (struct target_ops) : Constify parameter. (target_follow_exec): Likewise. commit 18125b163947bfd0c358d4a5acf4e0e3b43b64cf Author: Tom Tromey Date: Tue May 14 08:04:22 2019 -0600 Add "style" proc to the test suite This adds a "style" helper proc to the test suite, and updates existing style tests to use it. Thanks to Sergio for the idea. Tested on x86-64 Fedora 29. gdb/testsuite/ChangeLog 2019-05-22 Tom Tromey * gdb.base/info-shared.exp (check_info_shared): Use "style". * gdb.base/style.exp: Use "style". * lib/gdb-utils.exp (style): New proc. commit af1a8d038798bef11471e28d999ad1687312a6a7 Author: Tom de Vries Date: Wed May 22 18:13:04 2019 +0200 [gdb/testsuite] Require c++11 for gdb.base/align.exp When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb testsuite we run into a failure due align.exp requiring at least c++11. Fix this by adding -std=c++11. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-22 Tom de Vries * gdb.base/align.exp: Require c++11. commit e7fe496b1b8c0dfc44876f86131f756b424d4e70 Author: Tom de Vries Date: Wed May 22 17:55:44 2019 +0200 [gdb/testsuite] Add missing mi_skip_python_tests to py-mi-var-info-path-expression.exp Fix gdb.python/py-mi-var-info-path-expression.exp for a gdb build without python support. gdb/testsuite/ChangeLog: 2019-05-22 Tom de Vries PR testsuite/24586 * gdb.python/py-mi-var-info-path-expression.exp: Call mi_skip_python_tests to check if python is supported. commit 6ec6968b1b259948ba42f0a47a3da048377058bc Author: Nick Clifton Date: Wed May 22 15:58:57 2019 +0100 Have the linker report an error if the same script is used twice. PR 24576 * ld/ldfile.c: (ldfile_open_command_file_1): Add new parameter - is_script. If true check that the file has not already been parsed as a linker script. (ldfile_open_script_file): New function. (ldfile_try_open_bfd): Use the new function in place of ldfile_open_command_line. * ldmain.c (main): Likewise. * lexsup.c (parse_args): Use the new function for opening linker scripts with the -T option. * ldfile.h (ldfile_open_script_file): Add prototype. commit 8fca4da0759df376bcb646bc4b79a92ba27e2362 Author: Alan Hayward Date: Wed May 22 14:02:17 2019 +0100 AArch64: Treat pauth ops as nops on non-pauth systems Running an address signed binary through GDB on a non pauth system gives the following error: Call Frame Instruction op 45 in vendor extension space is not handled on this architecture. Instead GDB should ignore the op, treating it as a nop. Add test case for pauth binaries, regardless of whether the target supports it. gdb/ChangeLog: * aarch64-tdep.c (aarch64_execute_dwarf_cfa_vendor_op): Treat DW_CFA_AARCH64_negate_ra_state as nop on non pauth targets. gdb/testsuite/ChangeLog: * gdb.arch/aarch64-pauth.c: New test. * gdb.arch/aarch64-pauth.exp: New file. commit b706061469811a16ff2fb8d42f6e98a22e454212 Author: Alan Hayward Date: Wed May 22 13:40:20 2019 +0100 Document gdb.in/gdb.cmd files and debugredirect cli command Add missing documentation for the debugredirect setting. Add description and uses of gdb.in/gdb.cmd to the testsuite README. Mention this in the NEWS file. gdb/ChangeLog: * NEWS: Add debugredirect and testsuite sections. gdb/doc/ChangeLog: * gdb.texinfo (Shell Commands): Add debugredirect. gdb/testsuite/ChangeLog: * README (Re-running Tests Outside The Testsuite): New section. commit 0a5954bd5f96dd665cb733b9ab6f2ca67bb4632d Author: Simon Cook Date: Wed May 22 12:59:58 2019 +0100 gdb/riscv: Improve flen length determination This solves an assertion failure when a remote provides a target description which only refers to floating point registers by their hardware name (e.g. f0), rather than their ABI name (e.g. ft0). GDB assumed that should the floating point register feature be presented, it would contain a register called ft0. The floating point length is now instead determined by searching for the same register, but looking for any of its aliases. gdb/ChangeLog: * riscv-tdep.c (riscv_gdbarch_init): Support determining flen from target descriptions using exclusively floating point register name aliases. commit 7166f90a7756a3b68cfb93b5ea4a026e9b5f2459 Author: Jan Vrany Date: Wed May 22 12:48:26 2019 +0100 gdb/doc: Minor formatting fixes in documentation of -complete gdb/doc/Changelog: * gdb.texinfo: Minor formatting fixes. commit b0f4fbf81a1cf67d49558b2e8890e5c8628f8403 Author: Alan Modra Date: Wed May 22 18:29:20 2019 +0930 ARM STM32L4XX erratum test failure with MALLOC_PERTURB_ * elf32-arm.c (arm_allocate_glue_section_space): Clear section contents. commit 9ec2f606ce9ebfe9b7d1c6d3db0614d19bd03a6b Author: Alan Modra Date: Wed May 22 18:00:16 2019 +0930 vms-alpha gas segfault * vms-alpha.c (_bfd_vms_write_etir): Don't attempt further processing on "size error in section". commit 4decd602d8570eda5d36fd6cca2e50091000fa7a Author: Alan Modra Date: Wed May 22 17:52:59 2019 +0930 bfdtest1 segfaults on hppa-hp-hpux10 The archive element cache needs tidying when closing an archive element. This patch fixes these failures: -FAIL: ar long file names (bfdtest1) -FAIL: ar thin archive (bfdtest1) -FAIL: ar thin archive with nested archive (bfdtest1) * som.c (som_bfd_free_cached_info): Call _bfd_generic_close_and_cleanup. commit 22c6ccb89e0f38a70a42fb49eb167e7857d51f5c Author: John Darrington Date: Wed May 22 07:16:14 2019 +0200 S12Z: GAS: New option --mdollar-hex. This option (also implied by --traditional) causes '$' to introduce literal hexadecimal constants, rather than the modern convention '0x'. gas/ * config/tc-s12z.c (s12z_strtol): New function. (md_show_usage): Update. (md_parse_option): new case OPTION_DOLLAR_HEX. (s12z_init_after_args): (): Use s12z_strtol instead of strtol. * doc/c-s12z.texi (S12Z Options): Document new option -mdollar-hex. * testsuite/gas/s12z/dollar-hex.d: New file. * testsuite/gas/s12z/dollar-hex.s: New file. * testsuite/gas/s12z/s12z.exp: Add them. commit a7df56e5f840e2ce8bb09487ee0b6570cddb1550 Author: GDB Administrator Date: Wed May 22 00:00:17 2019 +0000 Automatic date update in version.in commit dc42e902cc54af2b7e7b54a1171d562f867342d5 Author: Andrew Burgess Date: Tue May 21 22:14:05 2019 +0100 gdb/fortran: Handle gdbarch_floatformat_for_type returning nullptr In this commit: commit 34d11c682fd96c7dbe3ebd6cd9033e65d51ec7a3 Date: Fri May 3 15:23:55 2019 +0100 gdb/fortran: Use floatformats_ia64_quad for fortran 16-byte floats GDB was changed such that the Fortran's 16-byte float format was obtained by calling gdbarch_floatformat_for_type instead of just using gdbarch_long_double_format as it was before. The problem with this default_floatformat_for_type can return NULL in some cases, and the code introduced in 34d11c682f didn't consider this. This commit introduces several alternative strategies for finding a suitable 16-byte floating point type. First GDB calls gdbarch_floatformat_for_type (this was what 34d11c682f added), if this returns null GDB will use gdbarch_long_double_format if it is the correct size (this was the format used before 34d11c682f). Finally, if neither of the above provides a suitable type then GDB will create a new dummy type. This final dummy type is unlikely to provide an correct debug experience as far as examining the 16-byte floats, but it should prevent GDB crashing. gdb/ChangeLog: PR gdb/18644: * f-lang.c (build_fortran_types): Handle the case where gdbarch_floatformat_for_type returns a nullptr. commit b474a2022dc14fea0dd8ea4cc66b813486132075 Author: Faraz Shahbazker Date: Sat May 18 01:19:04 2019 -0700 MIPS/LD: Reject tprel_hi and tprel_lo relocations in shared library bfd/ * elfxx-mips.c (_bfd_mips_elf_check_relocs): Generate error for TLS_TPREL_HI16(/LO16) relocations in shared library. ld/ * testsuite/ld-mips-elf/pic-reloc-5.s: Add tests for %tprel_hi and %tprel_lo relocations. * testsuite/ld-mips-elf/pic-reloc-6.s: Likewise. * testsuite/ld-mips-elf/pic-reloc-5.d: Update accordingly. * testsuite/ld-mips-elf/pic-reloc-6.d: Likewise. * testsuite/ld-mips-elf/pic-reloc-tls.ld: New test linker script file. commit 304f09d0d4b519f143144d213e1280a0691de8ba Author: Faraz Shahbazker Date: Sat May 18 01:19:03 2019 -0700 MIPS/LD: Fix memory fault linking non-PIC object in to shared library bfd/ * elfxx-mips.c (_bfd_mips_elf_check_relocs): Add NULL pointer checks. Search the RELA table for n64 relocations. ld/ * testsuite/ld-mips-elf/pic-reloc-5.d: New test. * testsuite/ld-mips-elf/pic-reloc-6.d: New test. * testsuite/ld-mips-elf/pic-reloc-7.d: New test. * testsuite/ld-mips-elf/pic-reloc-5.s: New test source. * testsuite/ld-mips-elf/pic-reloc-6.s: New test source. * testsuite/ld-mips-elf/pic-reloc-7.s: New test source. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. commit ba6cd17f0a28e54d9b4ef46397d448f1d208d9a0 Author: Sudakshina Das Date: Tue May 21 18:20:48 2019 +0100 [binutils, ARM] changes for VMRS and VMSR instructions This patch makes changes to the operand for VMRS and VMSR instructions as per the Armv8.1-M Mainline. New options to support are: 0b0010: FPSCR_nzcvqc, access to FPSCR condition and saturation flags. 0b1100: VPR, privileged only access to the VPR register. 0b1101: P0, access to VPR.P0 predicate fields 0b1110: FPCXT_NS, enables saving and restoring of Non-secure floating point context. 0b1111: FPCXT_S, enables saving and restoring of Secure floating point context *** gas/ChangeLog *** 2019-05-21 Sudakshina Das * config/tc-arm.c (parse_operands): Update case OP_RVC to parse p0 and P0. (do_vmrs): Add checks for valid operands with respect to cpu and fpu options. (do_vmsr): Likewise. (reg_names): New reg_names for FPSCR_nzcvqc, VPR, FPCXT_NS and FPCXT_S. * testsuite/gas/arm/armv8_1-m-spec-reg.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg.s: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad1.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad2.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad3.d: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad1.l: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad2.l: New. * testsuite/gas/arm/armv8_1-m-spec-reg-bad3.l: New. * testsuite/gas/arm/vfp1xD.d: Updated to allow new valid values. * testsuite/gas/arm/vfp1xD_t2.d: Likewise. *** opcodes/ChangeLog *** 2019-05-21 Sudakshina Das * arm-dis.c (coprocessor_opcodes): New instructions for VMRS and VMSR with the new operands. commit e39c1607a2df3a97bf7b70bef6de5b7a2db55eea Author: Sudakshina Das Date: Tue May 21 18:15:13 2019 +0100 [binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline This patch adds the following instructions which are part of the Armv8.1-M Mainline: CINC CINV CNEG CSINC CSINV CSNEG CSET CSETM CSEL gas/ChangeLog: 2019-05-21 Sudakshina Das * config/tc-arm.c (TOGGLE_BIT): New. (T16_32_TAB): New entries for cinc, cinv, cneg, csinc, csinv, csneg, cset, csetm and csel. (operand_parse_code): New OP_RR_ZR. (parse_operand): Handle case for OP_RR_ZR. (do_t_cond): New. (insns): New instructions for cinc, cinv, cneg, csinc, csinv, csneg, cset, csetm, csel. * testsuite/gas/arm/armv8_1-m-cond-bad.d: New test. * testsuite/gas/arm/armv8_1-m-cond-bad.l: New test. * testsuite/gas/arm/armv8_1-m-cond-bad.s: New test. * testsuite/gas/arm/armv8_1-m-cond.d: New test. * testsuite/gas/arm/armv8_1-m-cond.s: New test. opcodes/ChangeLog: 2019-05-21 Sudakshina Das * arm-dis.c (enum mve_instructions): New enum for csinc, csinv, csneg, csel, cset, csetm, cinv, cinv and cneg. (mve_opcodes): New instructions as above. (is_mve_encoding_conflict): Add cases for csinc, csinv, csneg and csel. (print_insn_mve): Accept new %c and %C. commit 23d00a419fe67801afc02a87f7ab9c5374b0238e Author: Sudakshina Das Date: Tue May 21 18:11:08 2019 +0100 [binutils, Arm] Add support for shift instructions in MVE This patch adds the following instructions which are part of Armv8.1-M MVE: ASRL (imm) ASRL (reg) LSLL (imm) LSLL (reg) LSRL SQRSHRL SRQSHR SQSHLL SQSHL SRSHRL SRSHR UQRSHLL UQRSHL UQSHLL UQSHL URSHLL URSHL *** gas/ChangeLog *** 2019-05-21 Sudakshina Das * config/tc-arm.c (operand_parse_code): New entries for OP_RRnpcsp_I32 (register or integer operands). (do_mve_scalar_shift): New. (insns): New instructions for asrl, lsll, lsrl, sqrshrl, sqrshr, sqshl sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll, uqshl, urshrl and urshr. * testsuite/gas/arm/mve-shift.d: New. * testsuite/gas/arm/mve-shift.s: New. * testsuite/gas/arm/mve-shift-bad.d: New. * testsuite/gas/arm/mve-shift-bad.s: New. * testsuite/gas/arm/mve-shift-bad.l: New. *** opcodes/ChangeLog *** 2019-05-21 Sudakshina Das * arm-dis.c (emun mve_instructions): Updated for new instructions. (mve_opcodes): New instructions for asrl, lsll, lsrl, sqrshrl, sqrshr, sqshl, sqshll, srshr, srshrl, uqrshll, uqrshl, uqshll, uqshl, urshrl and urshr. (is_mve_okay_in_it): Add new instructions to TRUE list. (is_mve_unpredictable): Add cases for UNPRED_R13 and UNPRED_R15. (print_insn_mve): Updated to accept new %j, %m and %n patterns. commit cd4797ee054654160fe6c4b6fbecd636b7961e19 Author: Faraz Shahbazker Date: Mon May 13 17:19:37 2019 -0700 MIPS/gas: Reject $0 as source register for DAUI instruction The MIPS64R6 TRM requires that the source register for DAUI not be r0. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS64 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00087, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 67-68. gas/ * testsuite/gas/mips/r6-branch-constraints.s: Rename to ... * testsuite/gas/mips/r6-reg-constraints.s: this and add test case for DAUI. * testsuite/gas/mips/r6-branch-constraints.l: Rename to ... * testsuite/gas/mips/r6-reg-constraints.l: this and add test for DAUI. * testsuite/gas/mips/mips.exp: Rename test from r6-branch-constraints to r6-reg-constraints. opcodes/ * mips-opc.c (mips_builtin_opcodes): Change source register constraint for DAUI. commit 3734320dc054bd9f6632607e9e5c901c57450791 Author: Matthew Fortune Date: Mon May 13 17:03:19 2019 -0700 [MIPS] Add generation of PLT entries with compact jumps for MIPS R6 Add a new option to get the linker to emit PLTs that use compact branches instead of delay slot branches. bfd/ * elfxx-mips.c (LA25_BC): New macro. (mips_elf_link_hash_table): New field. (STUB_JALRC): New macro. (mipsr6_o32_exec_plt0_entry_compact): New array. (mipsr6_n32_exec_plt0_entry_compact): Likewise. (mipsr6_n64_exec_plt0_entry_compact): Likewise. (mipsr6_exec_plt_entry_compact): Likewise. (mips_elf_create_la25_stub): Use BC instead of J for stubs when compact_branches is true. (_bfd_mips_elf_finish_dynamic_symbol): Choose the compact PLT for MIPSR6 with compact_branches. Do not reorder the compact branches PLT. Switch the lazy stub for MIPSR6 with compact_branches to use JALRC. (mips_finish_exec_plt): Choose the compact PLT0 for MIPSR6 when compact_branches is true. (_bfd_mips_elf_compact_branches): New function. * elfxx-mips.h (_bfd_mips_elf_compact_branches): New prototype. ld/ * emultempl/mipself.em (compact_branches): New static variable. (mips_create_output_section_statements): Call _bfd_mips_elf_compact_branches. (PARSE_AND_LIST_PROLOGUE): Add OPTION_COMPACT_BRANCHES and OPTION_NO_COMPACT_BRANCHES. (PARSE_AND_LIST_LONGOPTS): Add compact-branches, no-compact-branches. (PARSE_AND_LIST_OPTIONS): Add --compact-branches, --no-compact-branches. (PARSE_AND_LIST_ARGS_CASES): Handle the above. * ld.texinfo: Document --compact-branches, --no-compact-branches. * testsuite/ld-mips-elf/pic-and-nonpic-1-r6.dd: New test. * testsuite/ld-mips-elf/pic-and-nonpic-1-r6.nd: New test. * testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.dd: New test. * testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.gd: New test. * testsuite/ld-mips-elf/pic-and-nonpic-1a-r6.s: New test source. * testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.s: New test source. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. commit 6467207116c66ff2c58f8bc35cb15b2596f5c457 Author: Tamar Christina Date: Tue May 21 17:15:36 2019 +0100 AArch64: Fix -Werror on build This patch fixes a hardcoded `l` specifier on a `bfd_signed_vma`. Instead this now uses BFD_VMA_FMT which fixes the build on 32 bit hosts. Committed under the obvious rule. bfd/ChangeLog: PR ld/24373 * elfnn-aarch64.c (_bfd_aarch64_erratum_843419_branch_to_stub): Fix print formatter. commit fb7806c7a49d6eb75cdbff183d10d00f75968c0f Author: Tom de Vries Date: Tue May 21 16:32:41 2019 +0200 [gdb/cli] Fix use of uninitialized variable in complete_command When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb testsuite we run into: ... FAIL: gdb.linespec/explicit.exp: complete after -line: \ cmd complete "b -line argument " (timeout) ... The failure is reproducible outside the testsuite like this: ... $ gdb -q build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit \ -ex "complete b -line argument" Reading symbols from \ build/gdb/testsuite/outputs/gdb.linespec/explicit/explicit... terminate called after throwing an instance of 'std::length_error' what(): basic_string::_M_create Aborted (core dumped) ... The problem is here in complete_command: ... completion_result result = complete (arg, &word, "e_char); std::string arg_prefix (arg, word - arg); if (result.number_matches != 0) ... The problem is that the word variable is not initialized when result.number_matches == 0, but the variable is still used in the arg_prefix initialization. Fix this by guarding the arg_prefix initialization with the 'result.number_matches != 0' test. Build and tested on x86_64-linux. gdb/ChangeLog: 2019-05-21 Tom de Vries PR cli/24587 * cli/cli-cmds.c (complete_command): Fix use of unitialized variable. commit 669d0468399d8375f4d25289938a0c06d12e7f2e Author: Tom de Vries Date: Tue May 21 16:32:41 2019 +0200 [gdb/testsuite] Require c++11 where necessary When building gdb on ubuntu 16.04 with gcc 5.4.0, and running the gdb testsuite we run into failures due test-cases requiring at least c++1. Fix this by adding -std=c++11 to those test-cases. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-21 Tom de Vries * gdb.arch/amd64-eval.exp: Require c++11. * gdb.base/max-depth.exp: Same. * gdb.compile/compile-cplus-array-decay.exp: Same. * gdb.cp/meth-typedefs.exp: Same. * gdb.cp/subtypes.exp: Same. * gdb.cp/temargs.exp: Same. commit 8fe9a076adf308ec813246a96f915c5ab5b6a75f Author: Andre Vieira Date: Tue May 21 14:51:43 2019 +0100 [GAS, Arm] PR24559: Fix pseudo load-operations for Armv8-M Baseline gas/ChangeLog: 2019-05-21 Andre Vieira PR 24559 * config/tc-arm.c (move_or_literal_pool): Set size_req to 0 for MOVW replacement. * testsuite/gas/arm/load-pseudo.s: New test input. * testsuite/gas/arm/m0-load-pseudo.d: New test. * testsuite/gas/arm/m23-load-pseudo.d: New test. * testsuite/gas/arm/m33-load-pseudo.d: New test. commit e6f65e7573a317ac4efff26fe0e49fe1b9e7a596 Author: Andre Vieira Date: Tue May 21 14:49:03 2019 +0100 [binutils][Arm] Fix Branch Future relocation handling and testisms bfd/ChangeLog: 2019-05-21 Andre Vieira PR/target 24460 * elf32-arm.c (get_value_helper): Remove. (elf32_arm_final_link_relocate): Fix branch future relocations. gas/ChangeLog: 2019-05-21 Andre Vieira * testsuite/gas/arm/armv8_1-m-bf.d: Allow different branch target naming conventions. * testsuite/gas/arm/armv8_1-m-bfl.d: Likewise. * testsuite/gas/arm/armv8_1-m-bfcsel.d: Likewise. * testsuite/gas/arm/armv8_1-m-loloop.d: Likewise. * testsuite/gas/arm/armv8_1-m-bf-rel.d: Skip for vxworks. * testsuite/gas/arm/armv8_1-m-bf-rela.d: New test. * testsuite/gas/arm/armv8_1-m-bfl-rel.d: Skip for vxworks. * testsuite/gas/arm/armv8_1-m-bfl-rela.d: New test. ld/ChangeLog: 2019-05-21 Andre Vieira * testsuite/ld-arm/arm-elf.exp: Add tests * testsuite/ld-arm/bfs-0.s: New test. * testsuite/ld-arm/bfs-1.s: New test. * testsuite/ld-arm/branch-futures.d: New test. commit 739b5c9c778dee9e2f54d864f83a81ecb0639535 Author: Tamar Christina Date: Tue May 21 13:04:08 2019 +0100 AArch64: Implement choice between Cortex-A53 erratum workarounds. (PR ld/24373) The Cortex-A53 erratum currently has two ways it can resolve the erratum when using the flag --fix-cortex-a53-843419: 1) If the address is within the range of an ADR instruction it rewrites the ADRP into an ADR, and those doesn't need the use of a veneer. 2) If the address is not within range, it adds a branch to a veneer which will execute the final bit of the erratum workaround and branch back to the call site. When we do this we always generate the veneers and we always align the size of the text section to 4KB. This is because we only know which workaround we can use after all linking has finished and all addresses are known. This means even though the veneers are not used, we still generate the section and we still change the size of the input section. This is problematic for small memory devices as this would require the user to take about a ~4KB hit in memory even though it's not even used. Since there's no real way to restart the linking process from the final write phase this patch solves the issue by allowing the user more control over which erratum workaround gets used. Concretely this changes the option --fix-cortex-a53-843419 to take optional arguments --fix-cortex-a53-843419[=full|adr|adrp] - full (default): Use both ADRP and ADR workaround. This is equivalent to not specifying any options and is the default behavior before this patch. - adr: Only use the ADR workaround, this will not cause any increase in binary size but linking will fail if the referenced address is out of range of an ADR instruction. - adrp: Use only the ADRP workaround, this will never rewrite your ADRP. In the cases where the user knows how big their binaries are the `adr` option would prevent the unneeded overhead. bfd/ChangeLog: PR ld/24373 * bfd-in.h (enum erratum_84319_opts): New (bfd_elf64_aarch64_set_options, bfd_elf32_aarch64_set_options): Change int to enum erratum_84319_opts. * bfd-in2.h: Regenerate. * elfnn-aarch64.c (struct elf_aarch64_link_hash_table): Change fix_erratum_843419 to use new enum, remove fix_erratum_843419_adr. (_bfd_aarch64_add_stub_entry_after): Conditionally create erratum stub. (aarch64_size_one_stub): Conditionally size erratum 843419 stubs. (_bfd_aarch64_resize_stubs): Amend comment. (elfNN_aarch64_size_stubs): Don't generate stubs when no workaround requested. (bfd_elfNN_aarch64_set_options): Use new fix_erratum_843419 enum. (_bfd_aarch64_erratum_843419_branch_to_stub): Implement selection of erratum workaround. (clear_erratum_843419_entry): Update erratum conditional. ld/ChangeLog: PR ld/24373 * emultempl/aarch64elf.em (PARSE_AND_LIST_LONGOPTS): Add optional args to flags. * NEWS: Add changes to flag. (PARSE_AND_LIST_OPTIONS): Update help descriptions. (PARSE_AND_LIST_ARGS_CASES): Add new options to parser. * testsuite/ld-aarch64/aarch64-elf.exp: Add new run_dump_tests. * testsuite/ld-aarch64/erratum843419-adr.d: New test. * testsuite/ld-aarch64/erratum843419-adrp.d: New test. * testsuite/ld-aarch64/erratum843419-far-adr.d: New test. * testsuite/ld-aarch64/erratum843419-far-full.d: New test. * testsuite/ld-aarch64/erratum843419-far.s: New test. * testsuite/ld-aarch64/erratum843419-full.d: New test. * testsuite/ld-aarch64/erratum843419-near.s: New test. * testsuite/ld-aarch64/erratum843419-no-args.d: New test. commit fab7c86ea474291776621eba042132f47af124e1 Author: Tamar Christina Date: Tue May 21 11:03:45 2019 +0100 AArch64: Add SVE DWARF registers The SVE DRAWF register names are missing from binutils, this may cause objdump and readelf to ignore certain DRAWF output as the registers are unknown (most notably CIEs). This patch adds the registers in accordance to the "DWARF for ARM(r) 64-bit Architecture (AARch64) with SVE support" documentation [1]. [1] https://developer.arm.com/docs/100985/latest/dwarf-for-the-arm-64-bit-architecture-aarch64-with-sve-support binutils/ChangeLog: * dwarf.c (dwarf_regnames_aarch64): Add SVE registers. * testsuite/binutils-all/aarch64/sve-dwarf-registers.d: New test. * testsuite/binutils-all/aarch64/sve-dwarf-registers.s: New test. commit ce3ebcaae382a3f95530d633e6875f97e53ef273 Author: Alan Hayward Date: Tue May 21 10:11:51 2019 +0100 testsuite: Mark the kill in gdbserver_run as optional This matches the kill in gdb_file_cmd, and ensures that the command is not sent to the gdb.in file. When gdb.in is used as a batch file, any kill commands run before the target is started will cause gdb to stop processing commands. gdb/testsuite/ChangeLog: * lib/gdbserver-support.exp (gdbserver_run): Mark kill as optional. commit e2d1595531b62487749e1af680d8f0c48c684feb Author: John Darrington Date: Tue May 21 10:11:40 2019 +0200 GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. In an upcoming commit, I need to be able to set the prefix used to introduce hexadecimal literal constants using a command line flag. This is not currently possible, because the switch which determines this (LITERAL_PREFIXDOLLAR_HEX) is a macro set at build time. This change substitutes it for a variable to be set at start up. gas/ChangeLog: * expr.c (literal_prefix_dollar_hex): New variable. (operand)[case '$']: Use the new variable instead of the old macro. Also, move this instance of "case '$'" next to the other one, and enable it only in the complementary proprocessor case. * expr.h (literal_prefix_dollar_hex): Declare it. * config/tc-epiphany.c (md_begin): Assign literal_prefix_dollar_hex. * config/tc-ip2k.c: ditto * config/tc-mt.c: ditto * config/tc-epiphany.h (LITERAL_PREFIXDOLLAR_HEX): Remove macro definition. * config/tc-ip2k.h: ditto * config/tc-mt.h: ditto commit 7622049e0bef81fab900860400838bc977449892 Author: Senthil Kumar Selvaraj Date: Thu May 16 12:12:33 2019 +0530 Fix PR 24571 - Relaxation does not shorten jmp or call to target at pc-relative range boundary The range check done to transform an absolute call/jump to a pc-relative one is off-by-one, and that causes this shortening optimization to be missed if the branch target is right at the range boundary. In the non-shrinkable case, the range is what is mentioned in the ISA - -4094 bytes in the backward direction, and 4096 bytes in the positive direction. In the shrinkable case, the forward jump range increases by two bytes (deleted because of the shortening from call/jmp to rcall/rjmp), and therefore, the range is -4094 in the reverse, and 4098 in the positive direction. Fix the ranges for !shrinkable and shrinkable cases, and add a test caes to ensure jumps to max forward and backward ranges get relaxed to rjmp. commit 338ba75534fbfeb64d7009f29a89f25826a1f4d2 Author: Senthil Kumar Selvaraj Date: Thu May 16 17:16:36 2019 +0530 Fix PR 24564 - link fails for some rcalls/rjmps with wraparound The current code to compute relative distance in the wrap around case does not handle the edge case of the target (after adjusting for implicit PC increment) being exactly half of the wrap around distance. This patch fixes that and adds a testcase. The range for a forward relative jump call is 4096 bytes ((2 * 2047) + (2 bytes for the implicit PC increment)). If the target of the jump is at a distance of 4098 bytes, it is out of range for a forward jump - however, a backward jump can still reach that address if pmem-wrap-around is 8192. Assume address 0 has rjmp to address 4098. With a wrap around of 8192 and *without* adjusting for the implicit PC increment of 2 bytes, rjmp .-4096 will jump to address 4096 (wrap around at 8192 and decreasing addresses from then on). Adjusting 2 bytes for the implicit PC increment, the actual target is 4098. avr_relative_distance_considering_wrap_around though, does the wrap around only if the passed in distance is less than half of the wrap around distance. In this case, it is exactly equal to half (original distance 4098, adjusted distance of 4096 and wraparound of 8192), and the bypassed wrap around causes the reloc overflow error. Fix by wrapping around even if adjusted distance is equal to half of wrap around distance. commit da0523c66604dc11b8787d3e0123ea80a2503f14 Author: John Darrington Date: Tue May 21 07:30:05 2019 +0200 Revert "GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value." This reverts commit cffc205c9eaacfa312323807cd60b9d3d1c26894. commit 302d65e0b264df2db2f42a2ef51fb9d69f3225de Author: GDB Administrator Date: Tue May 21 00:00:28 2019 +0000 Automatic date update in version.in commit d87343802b81ad123a27beccb140d406f54727c6 Author: Faraz Shahbazker Date: Mon May 6 09:09:02 2019 -0700 [MIPS] PR gas/14798: Limit IRIX5 specific default typing to IRIX targets On IRIX 5, every global symbol that is not explicitly labelled as being a function is assumed to be an object. There is no reason why IRIX behaviour should extend to all MIPS targets, so limit this to only IRIX targets. gas/ PR 14798 * config/tc-mips.c (s_mips_globl): Only treat symbols that are not explicitly labelled as BSF_OBJECTs for IRIX targets. * testsuite/gas/mips/pr14798.s: New test source. * testsuite/gas/mips/pr14798-irix.d: New test. * testsuite/gas/mips/pr14798.d: Likewise. * testsuite/gas/mips/mips.exp: Run the new tests. binutils/ PR 14798 * testsuite/binutils-all/readelf.ss-mips: Update reference output. * testsuite/binutils-all/readelf.ss-tmips: Likewise. ld/ PR 14798 * testsuite/ld-mips-elf/reloc-6a.s: Specify .text section for global code symbols. * testsuite/ld-mips-elf/reloc-6b.s: Likewise. commit cffc205c9eaacfa312323807cd60b9d3d1c26894 Author: John Darrington Date: Mon May 20 19:53:30 2019 +0200 GAS: Replace macro LITERAL_PREFIXDOLLAR_HEX with a runtime value. In an upcoming commit, I need to be able to set the prefix used to introduce hexadecimal literal constants using a command line flag. This is not currently possible, because the switch which determines this (LITERAL_PREFIXDOLLAR_HEX) is a macro set at build time. This change substitutes it for a variable to be set at start up. gas/ChangeLog: * expr.c (literal_prefix_dollar_hex): New variable. (operand)[case '$']: Use the new variable instead of the old macro. * expr.h (literal_prefix_dollar_hex): Declare it. * config/tc-epiphany.c (md_begin): Assign literal_prefix_dollar_hex. * config/tc-ip2k.c: ditto * config/tc-mt.c: ditto * config/tc-epiphany.h (LITERAL_PREFIXDOLLAR_HEX): Remove macro definition. * config/tc-ip2k.h: ditto * config/tc-mt.h: ditto commit efa9760914311fdd9b9a299f1e6cd5a85d64c5ff Author: Nick Clifton Date: Mon May 20 17:17:24 2019 +0100 Correct the alpha sorting of the short options in the usage description of the gprof program. PR 24569 * gprof.c (usage): Restore alphabetical sorting to short options list. Add -r, -R and -t short options to the list. (main): Add comment about -g and -G possibly being deprecated. * gprof.texi: Update usage example in line with changes above. commit 999b073bdb188635feaf1f719237b4845b5b06f3 Author: Nick Clifton Date: Mon May 20 16:18:19 2019 +0100 Updated translations for various binutils subdirectories. bfd * po/fr.po: Updated French translation. binutils* po/ca.po: Updated Catalan translation. gprof * po/de.po: Updated German translation. opcodes * po/fr.po: Updated French translation. commit 2a912e42d7b9aafae0e8507360cbca52cd29fa9a Author: GDB Administrator Date: Mon May 20 00:00:22 2019 +0000 Automatic date update in version.in commit 1aea5580c4b760e27e480fb4cb82146a2388e504 Author: GDB Administrator Date: Sun May 19 00:01:13 2019 +0000 Automatic date update in version.in commit 34d11c682fd96c7dbe3ebd6cd9033e65d51ec7a3 Author: Andrew Burgess Date: Fri May 3 15:23:55 2019 +0100 gdb/fortran: Use floatformats_ia64_quad for fortran 16-byte floats PR gdb/18644 is caused by GDB using the wrong floating point format for gfortran's 16-byte floating point type, including when the 16-byte float is used as the component of a 32-byte complex type. This commit addresses the issue in two places, first in i386-tdep.c, there is already some code to force the use of floatformats_ia64_quad for specific named types, this is extended to include the type names that gfortran uses for its 16-byte floats. Second, the builtin 16-byte float type (in f-lang.c) is changed so it no longer uses gdbarch_long_double_format. On i386 this type is not 16-bytes, but is smaller, this is not what gfortran is expecting. Instead we now use gdbarch_floatformat_for_type and ask for a 16-byte (128 bit) type using the common gfortran type name. This is then spotted in i386-tdep.c (thanks to the first change above) and we again get floatformats_ia64_quad returned. This patch was tested on X86-64/GNU-Linux using '--target_board=unix' and '--target_board=unix/-m32', and resolves all of the known failures associated with PR gdb/18644. I've also added the test case from the original bug report. gdb/ChangeLog: PR gdb/18644: * f-lang.c (build_fortran_types): Use floatformats_ia64_quad for 16-byte floats. * i386-tdep.c (i386_floatformat_for_type): Use floatformats_ia64_quad for the 16-byte floating point component within a fortran 32-byte complex number. gdb/testsuite/ChangeLog: PR gdb/18644 * gdb.fortran/complex.exp: Remove setup_kfail calls. * gdb.fortran/printing-types.exp: Add new test. * gdb.fortran/printing-types.f90: Add 16-byte real variable for testing. * gdb.fortran/type-kinds.exp (test_cast_1_to_type_kind): Remove setup_kfail call. commit 122cf0f2d93ae6f7a53e8dd643ebb068b79df9cf Author: Andrew Burgess Date: Fri May 17 22:30:34 2019 +0100 gdb: Add constructor to struct cu_partial_die_info Adds a constructor to 'struct cu_partial_die_info' and disables the default constructor, preventing partially initialised instances from being created. Update 'find_partial_die' to return a const struct. Users of 'find_partial_die' are updated to take account of the above two changes. There should be no user visible changes after this commit. gdb/ChangeLog: * dwarf2read.c (struct cu_partial_die_info): Add constructor, delete default constructor. (find_partial_die): Update to return const struct. (partial_die_parent_scope): Move variable declaration into scope of its use and change its type to auto. (guess_partial_die_structure_name): Likewise. (partial_die_info::fixup): Likewise. commit 3e2cf42fe5c305ebb5a4a69427a37e950385ea60 Author: John Darrington Date: Sat May 18 08:25:18 2019 +0200 S12Z (doc): Minor improvements to text and formatting. gas/ * doc/c-s12z.texi: Miscellaneous adjustments. commit 1c8ce0ebbe603b7016fff924eb7636d8406f44ba Author: GDB Administrator Date: Sat May 18 00:00:20 2019 +0000 Automatic date update in version.in commit 33d0e35aed8870ad317af7eeca5274cf4fd87d15 Author: Tom Tromey Date: Fri May 17 08:42:10 2019 -0600 Don't cast away const in find_and_open_source find_and_open_source casts away const, but hasn't needed to in a while. This removes the cast and a strangely hostile comment. gdb/ChangeLog 2019-05-17 Tom Tromey * source.c (find_and_open_source): Remove cast. commit a45575b0356d671df2c55fcfc66de719b6b2e5e5 Author: Tom Tromey Date: Fri May 17 08:41:12 2019 -0600 Constify annotate_source I noticed that annotate_source takes a "char *", but really should take a "const char *". This patch fixes this. gdb/ChangeLog 2019-05-17 Tom Tromey * annotate.c (annotate_source): Make "filename" const. * annotate.h (annotate_source): Use const. commit 87781e8475f8ec80463937130cde48540ff87149 Author: Alan Hayward Date: Fri May 17 16:48:36 2019 +0100 testsuite: Remove TRANSCRIPT support TRANSCRIPT is superseeded by the .in, .cmd and .debug files, and can be removed. gdb/testsuite/ChangeLog * README (Running the Testsuite): Change example. (Testsuite Parameters): Remove TRANSCRIPT. * lib/gdb.exp: Remove TRANSCRIPT check. commit b420b89e4b321ff31f2e76cac499b908f042069b Author: Alan Hayward Date: Tue Apr 30 16:00:29 2019 +0100 testsuite: Add replay logging to GDBSERVER_DEBUG Add "replay" to the list of GDBSERVER_DEBUG options. This will cause a gdbserver.replay file to be written to the test output directory. At the same time switch this to a comma separated list in order to easily handle all possible options. The replay log is created by GDB, but has been added to GDBSERVER_DEBUG as it is only required for gdbserver tests. To enable it, the gdb_debug_init is overridden to allow the additional checking, before calling the original function. gdb/testsuite/ChangeLog: * README (Testsuite Parameters): Add replay logging to GDBSERVER_DEBUG. (gdbserver,debug): Refer to GDBSERVER_DEBUG. * lib/gdbserver-support.exp (gdbserver_start): Treat gdbserverdebug as a comma separated list. (gdb_debug_init): Override procedure. commit 408e9b8b9ebeb854baea9aac52fa8df4d41eb53d Author: Alan Hayward Date: Fri May 17 16:38:02 2019 +0100 testsuite: Create .cmd files for gdb and gdbserver When spawning gdb or gdbserver create a .cmd file in the test output directory containing the full command line, ensuring the current gdb instance is appended to the files so that they can be quickly matched to the corresponding gdb.in file. gdb/testsuite/ChangeLog: * lib/gdb.exp (default_gdb_spawn): Call gdb_write_cmd_file. (gdb_write_cmd_file): New procedure. * lib/gdbserver-support.exp (gdbserver_start): Call gdbserver_write_cmd_file. (gdbserver_write_cmd_file): New proedure. commit f9e2e39d23495844d998f54a0fccb9d6be7edb0e Author: Alan Hayward Date: Fri May 17 16:30:09 2019 +0100 testsuite: Record all gdb input to gdb.in When debugging testsuite failures, it can be awkward parsing gdb.log to obtain all the commands run in order to manually re-run the test. This patch adds the functionality to save all gdb commands to the file gdb.in when the testsuite is run. The file is saved in the directory for the test and if gdb is restarted then .1, .2, .3 etc is added to the filename. Once a test has been run, the .in file can be used to re-run the test in the following way: gdb -x outputs/gdb.store/gdb.in outputs/gdb.store/store The code works by intercepting send_gdb. I've added a TYPE to ensure that any commands that would destroy the playback are kept from the log (for example the Y from an answer to a y/n question). Adds library function standard_output_file_with_gdb_instance to open a file postfixed with count of the gdb instance. Ensure this count is reset when a new .exp script is run. I've re-run a random selection of .in files to check they do not error. Logs with commands such as "attach " will not directly work when re-run. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_unload): Mark Y as an answer. (delete_breakpoints): Likewise. (gdb_run_cmd): Likewise. (gdb_start_cmd): Likewise. (gdb_starti_cmd): Likewise. (gdb_internal_error_resync): Likewise. (gdb_test_multiple): Likewise. (gdb_reinitialize_dir): Likewise. (default_gdb_exit): Likewise. (gdb_file_cmd): Mark kill as optional. (default_gdb_start): Call gdb_stdin_log_init. (send_gdb): Call gdb_stdin_log_write. (rerun_to_main): Mark Y as an answer. (gdb_stdin_log_init): New function. (gdb_stdin_log_write): Likewise. commit 81f47ac29f8cdb888f2d81c5daa9bfc4747738aa Author: Alan Hayward Date: Fri May 17 15:35:08 2019 +0100 testsuite: Disable some tests when logging Fix up all failures encountered when running the testsuite with GDB_DEBUG="infrun". Some tests rely on enabling debugging for various components. With debugging on, this will be lost to the debug file. Disable separate tty for mi tests when debugging. This currently does not work. disasm.c should send errors to the stderr instead of the logfile. Note that enabling debug for other components might still cause additional errors above what has been fixed here. gdb/ChangeLog: * disasm.c (set_disassembler_options): Send errors to stderr. gdb/testsuite/ChangeLog: * gdb.base/breakpoint-in-ro-region.exp: Disable when debugging. * gdb.base/debug-expr.exp: Likewise. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise. * gdb.base/fork-print-inferior-events.exp: Likewise. * gdb.base/gdb-sigterm.exp: Likewise. * gdb.base/gdbinit-history.exp: Likewise. * gdb.base/osabi.exp: Likewise. * gdb.base/sss-bp-on-user-bp-2.exp: Likewise. * gdb.base/ui-redirect.exp: Likewise. * gdb.gdb/unittest.exp: Likewise. * gdb.mi/mi-break.exp: Disable separate-mi-tty when debugging. * gdb.mi/mi-watch.exp: Likewise. * gdb.mi/new-ui-mi-sync.exp: Likewise. * gdb.mi/user-selected-context-sync.exp: Likewise. * gdb.python/python.exp: Disable debug test when debugging. * gdb.threads/check-libthread-db.exp: Disable when debugging. * gdb.threads/signal-while-stepping-over-bp-other-thread.exp: Likewise. * gdb.threads/stepi-random-signal.exp: Likewise. commit 29b523140ecf72bc3fdf570c71fbda6fe85cf930 Author: Alan Hayward Date: Fri May 17 14:35:23 2019 +0100 testsuite: Add option to capture GDB debug Add both board option and environment variable which enables gdb debug via a comma separated list and sends it to the file gdb.debug, located in the output directory for the current test. Document this. Add support for the environment variable in the Makefile. The testsuite can be run with gdb debug enabled in the following way: make check GDB_DEBUG="infrun,target,remote" A Test with multiple invocations of GDB will all append debug to the same log file. gdb/testsuite/ChangeLog: * Makefile.in: Pass through GDB_DEBUG. * README (Testsuite Parameters): Add GDB_DEBUG. (gdb,debug): Add board setting. * lib/gdb.exp (default_gdb_start): Start debugging. (gdb_debug_enabled): New procedure. (gdb_debug_init): Likewise. commit ca1285d17534cff3041c07ac7841288e1b3ba19c Author: Alan Hayward Date: Fri May 17 14:15:01 2019 +0100 Add debug redirect option Currently, when logging is enabled, output will be sent to both a logfile and standard terminal output. The redirect option sends output only to the logfile. This includes all debug output. Add the option to redirect debug output seperately to normal output, using the cli command: set logging debugredirect on By setting this and enabling logging, all output and debug will be sent to the logfile. The user will still see all output but no debug output. This causes a change in behaviour for anyone currently using logging redirect, as now only output will be redirected. Users will have to issue the additional command above to also redirect debug. Expand ui-redirect.exp cover the changes. gdb/ChangeLog: * cli/cli-interp.c (struct saved_output_files): Add saved entry. (cli_interp_base::set_logging): Check debug_redirect. * cli/cli-interp.h (set_logging): Add debug_redirect parameter. * cli/cli-logging.c (debug_redirect): Add static variable. (pop_output_files): Add default param. (handle_redirections): Print debug setting. (show_logging_command): Likewise. (_initialize_cli_logging): Add debugredirect command. * interps.c (current_interp_set_logging): Add debug_redirect parameter. * interps.h (set_logging): Add debug_redirect parameter. (current_interp_set_logging): Likewise. * mi/mi-common.h: Likewise. * mi/mi-interp.c (mi_interp::set_logging): Likewise. gdb/testsuite/ChangeLog: * gdb.base/ui-redirect.exp: Add debug redirect tests. commit 334fe02b5f9cb1dd3abb0f79856ee1f4285f39c1 Author: John Darrington Date: Fri May 17 15:05:44 2019 +0200 GAS (documentation): Remove trademark acknowledgements. GNU policy is not to include trademark acknowlegements in documentation [1] [1] https://www.gnu.org/prep/standards/html_node/Trademarks.html Committing as obvious. gas/ * doc/c-arm.texi (ARM Options): Remove "(r)" and "(tm)" * doc/c-bfin.texi (Blackfin Syntax): Remove "(r)" commit f3a09c800fcd1d597fa2b9578cb59adfc15b698d Author: Alan Hayward Date: Fri May 17 14:07:04 2019 +0100 Change file close behavior for tee_file Instead of using two bools to decide if the files should close when tee_file is closed, make file one stay open and file two close. This simplifies the use cases for it. Inline the make_logging_output into the calling functions (the logic here looks ugly in order to simplify a later change). Expand ui-redirect.exp to cover the changes, similar to mi-logging.exp. gdb/ChangeLog: * cli/cli-interp.c (cli_interp_base::set_logging): Create tee_file directly. * cli/cli-interp.h (make_logging_output): Remove declaration. * cli/cli-logging.c (make_logging_output): Remove function. * mi/mi-interp.c (mi_interp::set_logging): Create tee_file directly. * ui-file.c (tee_file::tee_file): Remove bools. (tee_file::~tee_file): Remove deletes. * ui-file.h (tee_file): Remove bools. gdb/testsuite/ChangeLog: * gdb.base/ui-redirect.exp: Test redirection. commit af4fa23fba220c1b26bb3c8a7996b406dcc181cc Author: Alan Modra Date: Fri May 17 19:09:42 2019 +0930 PR24567, assertion failure in ldlang.c:6868 when compiling with -flto As the existing comment said: "a common ought to be overridden by a def in a -flto object". This patch makes the code actually do that, rather than allowing a normal object file common to override a -flto defined symbol. PR 24567 * plugin.c (plugin_notice): Do not let a common symbol override a non-common definition in IR. commit 26648588294d039fcf1efbf512d785753cb6286d Author: Jan Vrany Date: Fri May 17 10:58:23 2019 +0100 MI: Add new command -complete There is a CLI command 'complete' intended to use with emacs. Such a command would also be useful for MI frontends, when separate CLI and MI channels cannot be used. For example, on Windows (because of lack of PTYs) or when GDB is used through SSH session. This commit adds a new '-complete' MI command. gdb/Changelog: 2019-01-28 Jan Vrany * mi/mi-cmds.h (mi_cmd_complete): New function. * mi/mi-main.c (mi_cmd_complete): Likewise. * mi/mi-cmds.c: Define new MI command -complete. * NEWS: Mention new -complete command. gdb/doc/ChangeLog: 2019-01-28 Jan Vrany * gdb.texinfo (Miscellaneous GDB/MI Commands): Document new MI command -complete. gdb/testsuite/ChangeLog: 2019-01-28 Jan Vrany * gdb.mi/mi-complete.exp: New file. * gdb.mi/mi-complete.cc: Likewise. commit 6e035501e15e72398fcd9db88c97dd30e585a9ae Author: Jan Vrany Date: Fri May 17 10:58:23 2019 +0100 MI: extract command completion logic from complete_command() Extract completion logic from CLI complete_command() into a new helper function complete(). gdb/Changelog: * completer.h (complete): New function. * completer.c (complete): Likewise. * cli/cli-cmds.c: (complete_command): Update to use new complete() function defined in completer.h. commit 7d0e2ecedef69de0a242ac49a475f6a3968d4476 Author: Jan Vrany Date: Fri May 17 10:48:12 2019 +0100 Add myself to gdb/MAINTAINERS gdb/Changelog: * MAINTAINERS (Write After Approval): Add myself. commit fb816e8b1c8ef6b7b07eb3612bb61bd7ef1ff94f Author: Tom de Vries Date: Fri May 17 09:35:19 2019 +0200 [gdb] Fix heap-use-after-free in typename_concat When running gdb using AddressSanitizer, and loading a cc1plus binary built with profiledbootstrap and -flto, we run into a heap-use-after-free error: ... $ LD_PRELOAD=/usr/lib64/libasan.so.3 ./gdb -batch cc1plus ==26855==ERROR: AddressSanitizer: heap-use-after-free on address \ 0x62100ad8a8b0 at pc 0x7f13803cc9e3 bp 0x7ffe55b0d090 sp 0x7ffe55b0c840 READ of size 47 at 0x62100ad8a8b0 thread T0 #0 0x7f13803cc9e2 (/usr/lib64/libasan.so.3+0x3e9e2) #1 0x5e7a0d in typename_concat gdb/dwarf2read.c:22661 #2 0x5c6437 in partial_die_full_name gdb/dwarf2read.c:8876 #3 0x5c6555 in add_partial_symbol gdb/dwarf2read.c:8893 #4 0x5c6ecf in add_partial_subprogram gdb/dwarf2read.c:9156 #5 0x5c5e90 in scan_partial_symbols gdb/dwarf2read.c:8668 #6 0x5c6c0a in add_partial_namespace gdb/dwarf2read.c:9081 #7 0x5c5f99 in scan_partial_symbols gdb/dwarf2read.c:8702 #8 0x5c48b6 in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8056 #9 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689 #10 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140 #11 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500 #12 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337 #13 0x612359 in read_psyms gdb/elfread.c:1311 #14 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115 #15 0x867d7b in read_symbols gdb/symfile.c:821 #16 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000 #17 0x8684a1 in syms_from_objfile gdb/symfile.c:1017 #18 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124 #19 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \ enum_flags, std::vector >*, \ enum_flags, objfile*) gdb/symfile.c:1204 #20 0x868b64 in symbol_file_add(char const*, \ enum_flags, \ std::vector >*, \ enum_flags) gdb/symfile.c:1217 #21 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240 #22 0x868bd0 in symbol_file_add_main(char const*, \ enum_flags) gdb/symfile.c:1231 #23 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395 #24 0x71f10e in catch_command_errors gdb/main.c:372 #25 0x71ff5f in captured_main_1 gdb/main.c:1043 #26 0x72045d in captured_main gdb/main.c:1163 #27 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188 #28 0x40fd7d in main gdb/gdb.c:32 #29 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49) #30 0x40fc89 in _start (/data/gdb_versions/devel/build/gdb/gdb+0x40fc89) 0x62100ad8a8b0 is located 944 bytes inside of 4064-byte region \ [0x62100ad8a500,0x62100ad8b4e0) freed by thread T0 here: #0 0x7f13804523a0 in __interceptor_free (/usr/lib64/libasan.so.3+0xc43a0) #1 0x435e44 in xfree gdb/common/common-utils.h:60 #2 0xa82c25 in call_freefun libiberty/obstack.c:103 #3 0xa83098 in _obstack_free libiberty/obstack.c:280 #4 0x4367da in auto_obstack::~auto_obstack() gdb/gdb_obstack.h:101 #5 0x5ed72c in dwarf2_cu::~dwarf2_cu() gdb/dwarf2read.c:25341 #6 0x5fb5bb in std::default_delete::operator()(dwarf2_cu*) const \ /usr/include/c++/7/bits/unique_ptr.h:78 #7 0x5f7334 in std::unique_ptr >::~unique_ptr() \ /usr/include/c++/7/bits/unique_ptr.h:268 #8 0x5c3ce5 in init_cutu_and_read_dies gdb/dwarf2read.c:7624 #9 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140 #10 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500 #11 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337 #12 0x612359 in read_psyms gdb/elfread.c:1311 #13 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115 #14 0x867d7b in read_symbols gdb/symfile.c:821 #15 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000 #16 0x8684a1 in syms_from_objfile gdb/symfile.c:1017 #17 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124 #18 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \ enum_flags, std::vector >*, \ enum_flags, objfile*) gdb/symfile.c:1204 #19 0x868b64 in symbol_file_add(char const*, \ enum_flags, std::vector >*, \ enum_flags) gdb/symfile.c:1217 #20 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240 #21 0x868bd0 in symbol_file_add_main(char const*, \ enum_flags) gdb/symfile.c:1231 #22 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395 #23 0x71f10e in catch_command_errors gdb/main.c:372 #24 0x71ff5f in captured_main_1 gdb/main.c:1043 #25 0x72045d in captured_main gdb/main.c:1163 #26 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188 #27 0x40fd7d in main gdb/gdb.c:32 #28 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49) previously allocated by thread T0 here: #0 0x7f13804526b8 in __interceptor_malloc (/usr/lib64/libasan.so.3+0xc46b8) #1 0x5114b5 in xmalloc gdb/common/common-utils.c:44 #2 0xa82bd5 in call_chunkfun libiberty/obstack.c:94 #3 0xa82eda in _obstack_newchunk libiberty/obstack.c:206 #4 0x477310 in allocate_on_obstack::operator new(unsigned long, obstack*) \ gdb/gdb_obstack.h:117 #5 0x5dea8c in load_partial_dies gdb/dwarf2read.c:18571 #6 0x5c487f in process_psymtab_comp_unit_reader gdb/dwarf2read.c:8054 #7 0x5c3c1f in init_cutu_and_read_dies gdb/dwarf2read.c:7689 #8 0x5c4c03 in process_psymtab_comp_unit gdb/dwarf2read.c:8140 #9 0x5c58a2 in dwarf2_build_psymtabs_hard gdb/dwarf2read.c:8500 #10 0x5c0d03 in dwarf2_build_psymtabs(objfile*) gdb/dwarf2read.c:6337 #11 0x612359 in read_psyms gdb/elfread.c:1311 #12 0x798a64 in require_partial_symbols(objfile*, int) gdb/psymtab.c:115 #13 0x867d7b in read_symbols gdb/symfile.c:821 #14 0x8683d9 in syms_from_objfile_1 gdb/symfile.c:1000 #15 0x8684a1 in syms_from_objfile gdb/symfile.c:1017 #16 0x868873 in symbol_file_add_with_addrs gdb/symfile.c:1124 #17 0x868b0a in symbol_file_add_from_bfd(bfd*, char const*, \ enum_flags, \ std::vector >*, \ enum_flags, objfile*) gdb/symfile.c:1204 #18 0x868b64 in symbol_file_add(char const*, enum_flags, \ std::vector >*, \ enum_flags) gdb/symfile.c:1217 #19 0x868c39 in symbol_file_add_main_1 gdb/symfile.c:1240 #20 0x868bd0 in symbol_file_add_main(char const*, \ enum_flags) gdb/symfile.c:1231 #21 0x71f1b2 in symbol_file_add_main_adapter gdb/main.c:395 #22 0x71f10e in catch_command_errors gdb/main.c:372 #23 0x71ff5f in captured_main_1 gdb/main.c:1043 #24 0x72045d in captured_main gdb/main.c:1163 #25 0x7204c8 in gdb_main(captured_main_args*) gdb/main.c:1188 #26 0x40fd7d in main gdb/gdb.c:32 #27 0x7f137e300f49 in __libc_start_main (/lib64/libc.so.6+0x20f49) ... This error happens as follows. The function find_partial_die has a cu argument, but returns a pdi which may or may not be from that cu: ... /* Find a partial DIE at OFFSET, which may or may not be in CU, except in the case of .debug_types DIEs which do not reference outside their CU (they do however referencing other types via DW_FORM_ref_sig8). */ static struct partial_die_info * find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu) ... So the pdi returned by find_partial_die here in partial_die_parent_scope may be from another cu: ... partial_die_parent_scope (struct partial_die_info *pdi, struct dwarf2_cu *cu) { const char *grandparent_scope; struct partial_die_info *parent, *real_pdi; /* We need to look at our parent DIE; if we have a DW_AT_specification, then this means the parent of the specification DIE. */ real_pdi = pdi; while (real_pdi->has_specification) real_pdi = find_partial_die (real_pdi->spec_offset, real_pdi->spec_is_dwz, cu); parent = real_pdi->die_parent; ... in which case both real_pdi and parent will be not from cu, but from another one, say cu2. Subsequently, cu's comp_unit_obstack is used to set parent->scope: ... parent->scope = typename_concat (&cu->comp_unit_obstack, grandparent_scope, parent->name, 0, cu); ... So, we use cu->comp_unit_obstack to assign a value to the scope field of a pdi belonging to cu2, and when cu is deleted, the scope field points to a freed value. Fix this by making find_partial_die return the cu corresponding to the returned pdi, and handling this at the call sites. Tested on x86_64-linux. gdb/ChangeLog: 2019-05-17 Tom de Vries PR gdb/24094 * dwarf2read.c (struct cu_partial_die_info): New struct. (find_partial_die): Return cu_partial_die_info. (partial_die_parent_scope, guess_partial_die_structure_name) (partial_die_info::fixup): Handle new return type of find_partial_die. commit 6275948b473f6ed3149e97bc18f6f8de28bb3f04 Author: GDB Administrator Date: Fri May 17 00:00:14 2019 +0000 Automatic date update in version.in commit 677052f2a5c67f1d9b2e6d1b2a2149b5f0c20cd0 Author: Sergio Durigan Junior Date: Thu May 16 16:23:24 2019 -0400 Make stap-probe.c:stap_parse_register_operand's "regname" an std::string This patch simplifies the code of stap-probe.c:stap_parse_register_operand by making "regname" an std::string. No functionality change. I'm this code's maintainer, so I'm pushing this as it's a fairly trivial patch. gdb/ChangeLog: 2019-05-16 Sergio Durigan Junior * stap-probe.c (stap_parse_register_operand): Make "regname" an "std::string", simplifying the algorithm. commit f3da9116654bb2e899063a0aa9e11c2606b38fff Author: Sergio Durigan Junior Date: Thu May 16 16:20:39 2019 -0400 Fix complaint string formatting on stap-probe.c I think the string formatting for complaints was messed up by Tom's patch to simplify the complaint mechanism. This small and trivial patch fixes them. Pushed as obvious. gdb/ChangeLog: 2019-05-16 Sergio Durigan Junior * stap-probe.c (handle_stap_probe): Fix complaint formatting. (stap_static_probe_ops::get_probes): Likewise. commit f1bb75ab2a68b7d0878966f5a945eb7d33a48280 Author: Sergio Durigan Junior Date: Thu May 16 16:17:30 2019 -0400 Slightly improve logic of some operations on stap-probe.c This patch contains three very small improvement on the logic of some operations we do on stap-probe.c. They don't change what the code does. Pushed as obvious. gdb/ChangeLog: 2019-05-16 Sergio Durigan Junior * stap-probe.c (stap_parse_register_operand): Make "if (*p->arg == '-')" and "else if". (stap_parse_single_operand): Join checks for "gdbarch_stap_parse_special_token_p" and "gdbarch_stap_parse_special_token" in the same "if" statement. Invert check when verifying for operation on register displacement. commit 3ca58cdea13ddad01d70aa170eb419903b241b94 Author: Sergio Durigan Junior Date: Thu May 16 16:11:20 2019 -0400 Update some comments on stap-probe.c Some functions's comments were not entirely correct on stap-probe.c, so this patch updates them. Pushed as obvious. gdb/ChangeLog: 2019-05-16 Sergio Durigan Junior * stap-probe.c (stap_get_opcode): Update comment. (stap_get_expected_argument_type): Likewise. (handle_stap_probe): Likewise. commit af2d9beee989c7b75de849d9c08629a1e3f567ad Author: Sergio Durigan Junior Date: Thu May 16 15:58:55 2019 -0400 Bool-ify stap-probe.c and stap-related code on i386-tdep.c This simple patch converts a bunch of "int"s to "bool" on stap-probe.c and on the stap-related code present on i386-tdep.c. Pushed as obvious (+ I'm the maintainer of this code). gdb/ChangeLog: 2019-05-16 Sergio Durigan Junior * i386-tdep.c (i386_stap_parse_special_token_triplet): Change return type to 'bool'. Adjust comment. Use 'bool' when appropriate. (i386_stap_parse_special_token_three_arg_disp): Likewise. * stap-probe.c (stap_parse_argument_1): Likewise. (stap_is_operator): Likewise. (stap_is_generic_prefix): Likewise. (stap_is_register_prefix): Likewise. (stap_is_register_indirection_prefix): Likewise. (stap_is_integer_prefix): Likewise. (stap_generic_check_suffix): Likewise. (stap_check_integer_suffix): Likewise. (stap_check_register_suffix): Likewise. (stap_check_register_indirection_suffix): Likewise. (stap_parse_register_operand): Likewise. (stap_parse_single_operand): Likewise. (stap_parse_argument_1): Likewise. (stap_probe::get_argument_count): Likewise. (stap_is_operator): Likewise. commit 61c9c4212daa0be96503b9069da387aebf9cba04 Author: Tom Tromey Date: Thu May 16 10:45:57 2019 -0600 Fix darwin-nat.c build John Marshall pointed out that darwin-nat.c fails to build: CXX darwin-nat.o ../../../binutils-gdb/gdb/darwin-nat.c:1709:8: error: must use 'class' tag to refer to type 'thread_info' in this scope for (thread_info *it : all_threads ()) /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/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 Mach has a thread_info() function declared in that header, which darwin-nat.c #includes. This patch fixes the problem by reintroducing the struct keyword. gdb/ChangeLog 2019-05-16 Tom Tromey * darwin-nat.c (thread_info_from_private_thread_info): Add struct keyword to foreach. commit 64c350f2b7930050b869fd3268547452316a19ac Author: Andre Vieira Date: Thu May 16 16:10:22 2019 +0100 [PATCH, GAS, Arm] Refactor check_simd_pred_availability gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (check_simd_pred_availability): Refactor. (do_neon_dyadic_i_su): Refactor use of check_simd_pred_availability. (do_neon_dyadic_i64_su): Likewise. (do_neon_shl): Likewise. (do_neon_qshl): Likewise. (do_neon_rshl): Likewise. (do_neon_logic): Likewise. (do_neon_dyadic_if_su): Likewise. (do_neon_addsub_if_i): Likewise. (do_neon_mac_maybe_scalar): Likewise. (do_neon_fmac): Likewise. (do_neon_mul): Likewise. (do_neon_qdmulh): Likewise. (do_neon_qrdmlah): Likewise. (do_neon_abs_neg): Likewise. (do_neon_sli): Likewise. (do_neon_sri): Likewise. (do_neon_qshlu_imm): Likewise. (do_neon_cvt_1): Likewise. (do_neon_cvttb_1): Likewise. (do_neon_mvn): Likewise. (do_neon_rev): Likewise. (do_neon_dup): Likewise. (do_neon_mov): Likewise. (do_neon_rshift_round_imm): Likewise. (do_neon_sat_abs_neg): Likewise. (do_neon_cls): Likewise. (do_neon_clz): Likewise. (do_vmaxnm): Likewise. (do_vrint_1): Likewise. (do_vcmla): Likewise. (do_vcadd): Likewise. commit 514bbb0fd96e0742bdef8c6c706e5a030323d198 Author: Andre Vieira Date: Thu May 16 16:08:36 2019 +0100 [PATCH, binutils, Arm] Add Armv8.1-M Mainline and MVE enablement to NEWS gas/ChangeLog: 2019-05-16 Andre Vieira * NEWS: Mention Armv8.1-M Mainline and MVE. binutils/ChangeLog: 2019-05-16 Andre Vieira * NEWS: Mention Armv8.1-M Mainline and MVE. commit 4d6ac854515b14ac5304c1553d37f9b1d78ca333 Author: Andre Vieira Date: Thu May 16 16:06:29 2019 +0100 [PATCH 57/57][Arm][GAS] MVE Tests gas/ChangeLog: 2019-05-16 Andre Vieira * testsuite/gas/arm/mve-tailpredloop.d: New test. * testsuite/gas/arm/mve-tailpredloop.s: New test. * testsuite/gas/arm/mve-vabav.d: New test. * testsuite/gas/arm/mve-vabav.s: New test. * testsuite/gas/arm/mve-vabd.d: New test. * testsuite/gas/arm/mve-vabd.s: New test. * testsuite/gas/arm/mve-vabsneg.d: New test. * testsuite/gas/arm/mve-vabsneg.s: New test. * testsuite/gas/arm/mve-vadc.d: New test. * testsuite/gas/arm/mve-vadc.s: New test. * testsuite/gas/arm/mve-vaddlv.d: New test. * testsuite/gas/arm/mve-vaddlv.s: New test. * testsuite/gas/arm/mve-vaddsub.d: New test. * testsuite/gas/arm/mve-vaddsub.s: New test. * testsuite/gas/arm/mve-vaddv.d: New test. * testsuite/gas/arm/mve-vaddv.s: New test. * testsuite/gas/arm/mve-vand.d: New test. * testsuite/gas/arm/mve-vand.s: New test. * testsuite/gas/arm/mve-vbic.d: New test. * testsuite/gas/arm/mve-vbic.s: New test. * testsuite/gas/arm/mve-vbrsr.d: New test. * testsuite/gas/arm/mve-vbrsr.s: New test. * testsuite/gas/arm/mve-vcadd.d: New test. * testsuite/gas/arm/mve-vcadd.s: New test. * testsuite/gas/arm/mve-vcls.d: New test. * testsuite/gas/arm/mve-vcls.s: New test. * testsuite/gas/arm/mve-vclz.d: New test. * testsuite/gas/arm/mve-vclz.s: New test. * testsuite/gas/arm/mve-vcmla.d: New test. * testsuite/gas/arm/mve-vcmla.s: New test. * testsuite/gas/arm/mve-vcmp.d: New test. * testsuite/gas/arm/mve-vcmp.s: New test. * testsuite/gas/arm/mve-vcmul.d: New test. * testsuite/gas/arm/mve-vcmul.s: New test. * testsuite/gas/arm/mve-vcvt-1.d: New test. * testsuite/gas/arm/mve-vcvt-1.s: New test. * testsuite/gas/arm/mve-vcvt-2.d: New test. * testsuite/gas/arm/mve-vcvt-2.s: New test. * testsuite/gas/arm/mve-vcvt-3.d: New test. * testsuite/gas/arm/mve-vcvt-3.s: New test. * testsuite/gas/arm/mve-vcvt-4.d: New test. * testsuite/gas/arm/mve-vcvt-4.s: New test. * testsuite/gas/arm/mve-vddup.d: New test. * testsuite/gas/arm/mve-vddup.s: New test. * testsuite/gas/arm/mve-vdup.d: New test. * testsuite/gas/arm/mve-vdup.s: New test. * testsuite/gas/arm/mve-veor.d: New test. * testsuite/gas/arm/mve-veor.s: New test. * testsuite/gas/arm/mve-vfma-vfms.d: New test. * testsuite/gas/arm/mve-vfma-vfms.s: New test. * testsuite/gas/arm/mve-vfmas.d: New test. * testsuite/gas/arm/mve-vfmas.s: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.d: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.s: New test. * testsuite/gas/arm/mve-vhcadd.d: New test. * testsuite/gas/arm/mve-vhcadd.s: New test. * testsuite/gas/arm/mve-vmax-vmin.d: New test. * testsuite/gas/arm/mve-vmax-vmin.s: New test. * testsuite/gas/arm/mve-vmaxa-vmina.d: New test. * testsuite/gas/arm/mve-vmaxa-vmina.s: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm.d: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm.s: New test. * testsuite/gas/arm/mve-vmaxnma-vminnma.s: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv.d: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv.s: New test. * testsuite/gas/arm/mve-vmaxv-vminv.d: New test. * testsuite/gas/arm/mve-vmaxv-vminv.s: New test. * testsuite/gas/arm/mve-vmla.d: New test. * testsuite/gas/arm/mve-vmla.s: New test. * testsuite/gas/arm/mve-vmladav.d: New test. * testsuite/gas/arm/mve-vmladav.s: New test. * testsuite/gas/arm/mve-vmlaldav.d: New test. * testsuite/gas/arm/mve-vmlaldav.s: New test. * testsuite/gas/arm/mve-vmlalv.d: New test. * testsuite/gas/arm/mve-vmlalv.s: New test. * testsuite/gas/arm/mve-vmlas.d: New test. * testsuite/gas/arm/mve-vmlas.s: New test. * testsuite/gas/arm/mve-vmlav.d: New test. * testsuite/gas/arm/mve-vmlav.s: New test. * testsuite/gas/arm/mve-vmlsdav.d: New test. * testsuite/gas/arm/mve-vmlsdav.s: New test. * testsuite/gas/arm/mve-vmlsldav.d: New test. * testsuite/gas/arm/mve-vmlsldav.s: New test. * testsuite/gas/arm/mve-vmov-1.d: New test. * testsuite/gas/arm/mve-vmov-1.s: New test. * testsuite/gas/arm/mve-vmov-2.d: New test. * testsuite/gas/arm/mve-vmov-2.s: New test. * testsuite/gas/arm/mve-vmul.d: New test. * testsuite/gas/arm/mve-vmul.s: New test. * testsuite/gas/arm/mve-vmulh.d: New test. * testsuite/gas/arm/mve-vmulh.s: New test. * testsuite/gas/arm/mve-vmullbt.d: New test. * testsuite/gas/arm/mve-vmullbt.s: New test. * testsuite/gas/arm/mve-vmvn.d: New test. * testsuite/gas/arm/mve-vmvn.s: New test. * testsuite/gas/arm/mve-vorn.d: New test. * testsuite/gas/arm/mve-vorn.s: New test. * testsuite/gas/arm/mve-vorr.d: New test. * testsuite/gas/arm/mve-vorr.s: New test. * testsuite/gas/arm/mve-vpnot.d: New test. * testsuite/gas/arm/mve-vpnot.s: New test. * testsuite/gas/arm/mve-vpsel.d: New test. * testsuite/gas/arm/mve-vpsel.s: New test. * testsuite/gas/arm/mve-vpt.d: New test. * testsuite/gas/arm/mve-vpt.s: New test. * testsuite/gas/arm/mve-vqabsneg.s: New test. * testsuite/gas/arm/mve-vqaddsub.d: New test. * testsuite/gas/arm/mve-vqaddsub.s: New test. * testsuite/gas/arm/mve-vqdmladh.d: New test. * testsuite/gas/arm/mve-vqdmladh.s: New test. * testsuite/gas/arm/mve-vqdmlah.d: New test. * testsuite/gas/arm/mve-vqdmlah.s: New test. * testsuite/gas/arm/mve-vqdmlash.d: New test. * testsuite/gas/arm/mve-vqdmlash.s: New test. * testsuite/gas/arm/mve-vqdmlsdh.d: New test. * testsuite/gas/arm/mve-vqdmlsdh.s: New test. * testsuite/gas/arm/mve-vqdmulh.d: New test. * testsuite/gas/arm/mve-vqdmulh.s: New test. * testsuite/gas/arm/mve-vqdmull.d: New test. * testsuite/gas/arm/mve-vqdmull.s: New test. * testsuite/gas/arm/mve-vqmovn.d: New test. * testsuite/gas/arm/mve-vqmovn.s: New test. * testsuite/gas/arm/mve-vqrshl.d: New test. * testsuite/gas/arm/mve-vqrshl.s: New test. * testsuite/gas/arm/mve-vqrshrn.d: New test. * testsuite/gas/arm/mve-vqrshrn.s: New test. * testsuite/gas/arm/mve-vqshl.d: New test. * testsuite/gas/arm/mve-vqshl.s: New test. * testsuite/gas/arm/mve-vrev.d: New test. * testsuite/gas/arm/mve-vrev.s: New test. * testsuite/gas/arm/mve-vrint.d: New test. * testsuite/gas/arm/mve-vrint.s: New test. * testsuite/gas/arm/mve-vrmlaldavh.d: New test. * testsuite/gas/arm/mve-vrmlaldavh.s: New test. * testsuite/gas/arm/mve-vrshl.d: New test. * testsuite/gas/arm/mve-vrshl.s: New test. * testsuite/gas/arm/mve-vsbc.d: New test. * testsuite/gas/arm/mve-vsbc.s: New test. * testsuite/gas/arm/mve-vshl.d: New test. * testsuite/gas/arm/mve-vshl.s: New test. * testsuite/gas/arm/mve-vshlc.d: New test. * testsuite/gas/arm/mve-vshlc.s: New test. * testsuite/gas/arm/mve-vshll.d: New test. * testsuite/gas/arm/mve-vshll.s: New test. * testsuite/gas/arm/mve-vshr.d: New test. * testsuite/gas/arm/mve-vshr.s: New test. * testsuite/gas/arm/mve-vshrn.d: New test. * testsuite/gas/arm/mve-vshrn.s: New test. * testsuite/gas/arm/mve-vsli.d: New test. * testsuite/gas/arm/mve-vsli.s: New test. * testsuite/gas/arm/mve-vsri.d: New test. * testsuite/gas/arm/mve-vsri.s: New test. * testsuite/gas/arm/mve-vstld.d: New test. * testsuite/gas/arm/mve-vstld.s: New test. * testsuite/gas/arm/mve-vstrldr-1.d: New test. * testsuite/gas/arm/mve-vstrldr-1.s: New test. * testsuite/gas/arm/mve-vstrldr-2.d: New test. * testsuite/gas/arm/mve-vstrldr-2.s: New test. * testsuite/gas/arm/mve-vstrldr-3.d: New test. * testsuite/gas/arm/mve-vstrldr-3.s: New test. commit 14b456f2a011b28d8136a64022f2a418391054e3 Author: Andre Vieira Date: Thu May 16 14:48:34 2019 +0100 [PATCH 56/57][Arm][OBJDUMP] Add support for MVE instructions: vpnot, vpsel, vqabs, vqadd, vqsub, vqneg and vrev opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (enum mve_instructions): Likewise. (enum mve_undefined): Add new reasons. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_size): Likewise. commit f49bb598d96fd66bb6f2e9b14951f094e3d29396 Author: Andre Vieira Date: Thu May 16 14:47:12 2019 +0100 [PATCH 55/57][Arm][OBJDUMP] Add support for MVE instructions: vmul, vmulh, vrmulh and vneg opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (enum mve_instructions): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. commit 56858bea624ab405d53379ae25f433880ecafc68 Author: Andre Vieira Date: Thu May 16 14:45:17 2019 +0100 [PATCH 54/57][Arm][OBJDUMP] Add support for MVE instructions: vmax(a), vmax(a)v, vmaxnm(a), vmaxnm(a)v, vmin(a), vmin(a)v, vminnm(a), vminnm(a)v and vmla opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (enum mve_instructions): Likewise. (is_mve_encoding_conflict): Likewise. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. commit e523f10159d469dc0ca77069d092411f200685a1 Author: Andre Vieira Date: Thu May 16 14:44:19 2019 +0100 [PATCH 53/57][Arm][OBJDUMP] Add support for MVE instructions: vand, vbrsr, vcls, vclz and vctp opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (enum mve_instructions): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. commit 66dcaa5d55eb39471d962bb949df009a9ea3f959 Author: Andre Vieira Date: Thu May 16 14:42:53 2019 +0100 [PATCH 52/57][Arm][OBJDUMP] Add support for MVE instructions: vadc, vabav, vabd, vabs, vadd, vsbc and vsub opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (enum mve_instructions): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit d052b9b7cb90e0f76e35b0cf3c44e9b168b158c2 Author: Andre Vieira Date: Thu May 16 14:41:41 2019 +0100 [PATCH 51/57][Arm][OBJDUMP] Add support for MVE instructions: lctp, letp, wlstp and dlstp opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (thumb32_opcodes): Add new instructions. (print_insn_thumb32): Handle new instructions. commit ed63aa178c4b5e47eb8658813b2a3b621b7a092b Author: Andre Vieira Date: Thu May 16 14:39:12 2019 +0100 [PATCH 50/57][Arm][OBJDUMP] Add support for MVE shift instructions opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_undefined): Add new reasons. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_size): Likewise. (print_mve_shift_n): Likewise. (print_insn_mve): Likewise. commit 897b9bbcffa894bd3f3664d7f1b666379493d9b2 Author: Andre Vieira Date: Thu May 16 14:34:44 2019 +0100 [PATCH 49/57][Arm][OBJDUMP] Add support for MVE complex number instructions opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (is_mve_encoding_conflict): Handle new instructions. (is_mve_unpredictable): Likewise. (print_mve_rotate): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit 1c8f2df85f56d8f3213667e2a11cd480f2a26667 Author: Andre Vieira Date: Thu May 16 14:33:36 2019 +0100 [PATCH 48/57][Arm][OBJDUMP] Add support for MVE instructions: vddup, vdwdup, vidup and viwdup opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (is_mve_encoding_conflict): Handle new instructions. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit d3b6314397347943f40cdbf6efe34e209a162cc0 Author: Andre Vieira Date: Thu May 16 14:32:01 2019 +0100 [PATCH 47/57][Arm][OBJDUMP] Add support for MVE instructions: vaddv, vmlaldav, vmladav, vmlas, vrmlsldavh, vmlsldav, vmlsdav, vrmlaldavh, vqdmlah, vqrdmlash, vqrdmlash, vqdmlsdh, vqrdmlsdh, vqdmulh and vqrdmulh opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_undefined): Add new reasons. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit 14925797f833c9f4eedab98c7c50961d180aa03f Author: Andre Vieira Date: Thu May 16 14:30:38 2019 +0100 [PATCH 46/57][Arm][OBJDUMP] Add support for MVE instructions: vmovl, vmull, vqdmull, vqmovn, vqmovun and vmovn opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit c507f10b0711f24e1b82b8bd096e605317cf77fe Author: Andre Vieira Date: Thu May 16 14:29:36 2019 +0100 [PATCH 45/57][Arm][OBJDUMP] Add support for MVE instructions: vmov, vmvn, vorr, vorn, vmovx and vbic opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (enum mve_undefined): Likewise. (is_mve_okay_in_it): Handle new isntructions. (is_mve_encoding_conflict): Likewise. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_vmov_index): Likewise. (print_simd_imm8): Likewise. (print_mve_undefined): Likewise. (print_mve_unpredictable): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit bf0b396de71b76c02f6dd37e61e4044cdccb28d3 Author: Andre Vieira Date: Thu May 16 14:08:17 2019 +0100 [PATCH 44/57][Arm][OBJDUMP] Add support for MVE instructions: vcvt and vrint opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (enum mve_undefined): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_unpredictable): Likewise. (print_mve_rounding_mode): Likewise. (print_mve_vcvt_size): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit ef1576a1b5f14276b44ee4c0fc259832ca0dfd99 Author: Andre Vieira Date: Thu May 16 14:06:46 2019 +0100 [PATCH 43/57][Arm][OBJDUMP] Add support for MVE instructions: scatter stores and gather loads opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (enum mve_undefined): Likewise. (is_mve_undefined): Handle new instructions. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_unpredictable): Likewise. (print_mve_size): Likewise. (print_insn_mve): Likewise. commit aef6d006581cab8a858e7abd36c57e73ea6e97a2 Author: Andre Vieira Date: Thu May 16 14:05:38 2019 +0100 [PATCH 42/57][Arm][OBJDUMP] Add support for MVE instructions: vldr[bhw] and vstr[bhw] opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_undefined): Add new reasons. (insns): Add new instructions. (is_mve_encoding_conflict): (print_mve_vld_str_addr): New print function. (is_mve_undefined): Handle new instructions. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_size): Likewise. (print_insn_coprocessor_1): Handle MVE VLDR, VSTR instructions. (print_insn_mve): Handle new operands. commit 04d54ace12e77deb8b1d26541de0f2cbc11880f5 Author: Andre Vieira Date: Thu May 16 14:04:35 2019 +0100 [PATCH 41/57][Arm][OBJDUMP] Add support for MVE instructions: vld[24] and vst[24] opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (is_mve_encoding_conflict): Handle new instructions. (is_mve_unpredictable): Likewise. (mve_opcodes): Add new instructions. (print_mve_unpredictable): Handle new reasons. (print_mve_register_blocks): New print function. (print_mve_size): Handle new instructions. (print_insn_mve): Likewise. commit 9743db035e9bc256b5accdcbdecd7d1e9b41d4be Author: Andre Vieira Date: Thu May 16 14:02:05 2019 +0100 [PATCH 40/57][Arm][OBJDUMP] Add support for MVE instructions: vdup, veor, vfma, vfms, vhadd, vhsub and vrhadd opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new reasons. (enum mve_undefined): Likewise. (is_mve_encoding_conflict): Handle new instructions. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (coprocessor_opcodes): Move NEON VDUP from here... (neon_opcodes): ... to here. (mve_opcodes): Add new instructions. (print_mve_undefined): Handle new reasons. (print_mve_unpredictable): Likewise. (print_mve_size): Handle new instructions. (print_insn_neon): Handle vdup. (print_insn_mve): Handle new operands. commit 143275ea7e56baf5ad7a736698b79a90b473183a Author: Andre Vieira Date: Thu May 16 13:57:57 2019 +0100 [PATCH 39/57][Arm][OBJDUMP] Add support for MVE instructions: vpt, vpst and vcmp opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): Add new instructions. (enum mve_unpredictable): Add new values. (mve_opcodes): Add new instructions. (vec_condnames): New array with vector conditions. (mve_predicatenames): New array with predicate suffixes. (mve_vec_sizename): New array with vector sizes. (enum vpt_pred_state): New enum with vector predication states. (struct vpt_block): New struct type for vpt blocks. (vpt_block_state): Global struct to keep track of state. (mve_extract_pred_mask): New helper function. (num_instructions_vpt_block): Likewise. (mark_outside_vpt_block): Likewise. (mark_inside_vpt_block): Likewise. (invert_next_predicate_state): Likewise. (update_next_predicate_state): Likewise. (update_vpt_block_state): Likewise. (is_vpt_instruction): Likewise. (is_mve_encoding_conflict): Add entries for new instructions. (is_mve_unpredictable): Likewise. (print_mve_unpredictable): Handle new cases. (print_instruction_predicate): Likewise. (print_mve_size): New function. (print_vec_condition): New function. (print_insn_mve): Handle vpt blocks and new print operands. commit f08d8ce3cd39f34f26dbc681d873e59a0d7e6780 Author: Andre Vieira Date: Thu May 16 13:55:20 2019 +0100 [PATCH 38/57][Arm][OBJDUMP] Disable the use of MVE reserved coproc numbers in coprocessor instructions opcodes/ChangeLog: 2019-05-16 Andre Vieira * arm-dis.c (print_insn_coprocessor_1): Disable the use of coprocessors 8, 14 and 15 for Armv8.1-M Mainline. commit 73cd51e51b294af9591ecc2e8a28a9bec4f466b3 Author: Andre Vieira Date: Thu May 16 13:54:24 2019 +0100 [PATCH 37/57][Arm][OBJDUMP] Add framework for MVE instructions opcodes/ChangeLog: 2019-05-16 Andre Vieira Michael Collison * arm-dis.c (enum mve_instructions): New enum. (enum mve_unpredictable): Likewise. (enum mve_undefined): Likewise. (struct mopcode32): New struct. (is_mve_okay_in_it): New function. (is_mve_architecture): Likewise. (arm_decode_field): Likewise. (arm_decode_field_multiple): Likewise. (is_mve_encoding_conflict): Likewise. (is_mve_undefined): Likewise. (is_mve_unpredictable): Likewise. (print_mve_undefined): Likewise. (print_mve_unpredictable): Likewise. (print_insn_coprocessor_1): Use arm_decode_field_multiple. (print_insn_mve): New function. (print_insn_thumb32): Handle MVE architecture. (select_arm_features): Force thumb for Armv8.1-m Mainline. commit 1f6234a335eab15c3ad878338b5256b5bdc190ab Author: Andre Vieira Date: Thu May 16 13:52:51 2019 +0100 [PATCH 36/57][Arm][GAS] Add support for MVE instructions: wlstp, dlstp, letp and lctp gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (T16_32_TAB): Add new instructions. (do_t_loloop): Changed to handle tail predication variants. (md_apply_fix): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-tailpredloop-bad.d: New test. * testsuite/gas/arm/mve-tailpredloop-bad.l: New test. * testsuite/gas/arm/mve-tailpredloop-bad.s: New test. * testsuite/gas/arm/mve-tailpredloop.d: New test. commit acca5630749e83ce4ec893e650afa015a086cc0f Author: Andre Vieira Date: Thu May 16 13:44:14 2019 +0100 [PATCH 35/57][Arm][GAS] Add support for MVE instructions: vshlc and vshll gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vshll): New encoding function. (do_mve_vshlc): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vshlc-bad.d: New test. * testsuite/gas/arm/mve-vshlc-bad.l: New test. * testsuite/gas/arm/mve-vshlc-bad.s: New test. * testsuite/gas/arm/mve-vshll-bad.d: New test. * testsuite/gas/arm/mve-vshll-bad.l: New test. * testsuite/gas/arm/mve-vshll-bad.s: New test. commit 5150f0d83e7525e75d900c6859163db8797507c3 Author: Andre Vieira Date: Thu May 16 12:17:44 2019 +0100 [PATCH 34/57][Arm][GAS] Add support for MVE instructions: vshl and vqshl gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): Add new operand. (parse_operands): Handle new operand. (do_neon_shl_imm): Accept MVE variants. (do_neon_shl): Likewise. (do_neon_qshl_imm): Likewise. (do_neon_qshl): Likewise. (do_neon_qshlu_imm): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vqshl-bad.d: New test. * testsuite/gas/arm/mve-vqshl-bad.l: New test. * testsuite/gas/arm/mve-vqshl-bad.s: New test. * testsuite/gas/arm/mve-vshl-bad.d: New test. * testsuite/gas/arm/mve-vshl-bad.l: New test. * testsuite/gas/arm/mve-vshl-bad.s: New test. commit 4401c2414dffebc5c5e4914fb611d1ecc738e3d5 Author: Andre Vieira Date: Thu May 16 12:08:38 2019 +0100 [PATCH 33/57][Arm][GAS] Add support for MVE instructions: vshr, vrshr, vsli, vsri, vrev16, vrev32 and vrev64 gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_neon_sli): Accept MVE variants. (do_neon_sri): Likewise. (do_neon_rev): Likewise. (do_neon_rshift_round_imm): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vrev-bad.d: New test. * testsuite/gas/arm/mve-vrev-bad.l: New test. * testsuite/gas/arm/mve-vrev-bad.s: New test. * testsuite/gas/arm/mve-vshr-bad.d: New test. * testsuite/gas/arm/mve-vshr-bad.l: New test. * testsuite/gas/arm/mve-vshr-bad.s: New test. * testsuite/gas/arm/mve-vsli-bad.d: New test. * testsuite/gas/arm/mve-vsli-bad.l: New test. * testsuite/gas/arm/mve-vsli-bad.s: New test. * testsuite/gas/arm/mve-vsri-bad.d: New test. * testsuite/gas/arm/mve-vsri-bad.l: New test. * testsuite/gas/arm/mve-vsri-bad.s: New test. commit a710b305c5ca8307e8b9d14bbb014641f60d3b48 Author: Andre Vieira Date: Thu May 16 12:07:22 2019 +0100 [PATCH 32/57][Arm][GAS] Add support for MVE instructions: vrintn, vrintx, vrinta, vrintz, vrintm and vrintp gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_vrint_1): Accept MVE variants. (insns): Change entries to accept MVE variants. * testsuite/gas/arm/mve-vrint-bad.d: New test. * testsuite/gas/arm/mve-vrint-bad.l: New test. * testsuite/gas/arm/mve-vrint-bad.s: New test. commit 4aa88b50c4eec0256bcba33e02135f224a725d68 Author: Andre Vieira Date: Thu May 16 12:05:34 2019 +0100 [PATCH 31/57][Arm][GAS] Add support for MVE instructions: vshrn[tb], vrshrn[tb], vqshrn[tb], vqshrun[tb], vqrshrn[tb] and vqrshrun[tb] gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vshrnt, M_MNEM_vshrnb, M_MNEM_vrshrnt, M_MNEM_vqshrnt, M_MNEM_vqshrnb, M_MNEM_vqshrunt, M_MNEM_vqshrunb, M_MNEM_vrshrnb, M_MNEM_vqrshrnt, M_MNEM_vqrshrnb, M_MNEM_vqrshrunt, M_MNEM_vqrshrunb): New instruction encodings. (do_mve_vshrn): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vqrshrn-bad.d: New test. * testsuite/gas/arm/mve-vqrshrn-bad.l: New test. * testsuite/gas/arm/mve-vqrshrn-bad.s: New test. * testsuite/gas/arm/mve-vshrn-bad.d: New test. * testsuite/gas/arm/mve-vshrn-bad.l: New test. * testsuite/gas/arm/mve-vshrn-bad.s: New test. commit 1be7aba392cd32a9a7165ecb4635c2733b5ac7ba Author: Andre Vieira Date: Thu May 16 12:04:35 2019 +0100 [PATCH 30/57][Arm][GAS] Add support for MVE instructions: vqmovnt, vqmovnb, vqmovunt, vqmovunb, vqrshl and vrshl gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vqmovnt, M_MNEM_vqmovnb, M_MNEM_vqmovunt, M_MNEM_vqmovunb): New instruction encodings. (do_mve_vqmovn): New encoding function. (do_neon_rshl): Change to accepte MVE variants. (insns): Change entries and add new for MVE mnemonics. * testsuite/gas/arm/mve-vqmovn-bad.d: New test. * testsuite/gas/arm/mve-vqmovn-bad.l: New test. * testsuite/gas/arm/mve-vqmovn-bad.s: New test. * testsuite/gas/arm/mve-vqrshl-bad.d: New test. * testsuite/gas/arm/mve-vqrshl-bad.l: New test. * testsuite/gas/arm/mve-vqrshl-bad.s: New test. * testsuite/gas/arm/mve-vrshl-bad.d: New test. * testsuite/gas/arm/mve-vrshl-bad.l: New test. * testsuite/gas/arm/mve-vrshl-bad.s: New test. commit 35d1cfc2000388028c8f032e714b576615e8db02 Author: Andre Vieira Date: Thu May 16 12:03:30 2019 +0100 [PATCH 29/57][Arm][GAS] Add support for MVE instructions: vqdmullt and vqdmullb gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): Add new operand. (parse_operands): Handle new operand. (do_mve_vqdmull): New encoding function. (insns): Add entry for MVE mnemonics. * testsuite/gas/arm/mve-vqdmull-bad.d: New test. * testsuite/gas/arm/mve-vqdmull-bad.l: New test. * testsuite/gas/arm/mve-vqdmull-bad.s: New test. commit 42b16635dd63ab3e71c76af130423e0ef16d5995 Author: Andre Vieira Date: Thu May 16 12:00:54 2019 +0100 [PATCH 28/57][Arm][GAS] Add support for MVE instructions: vqdmlah, vqrdmlah, vqdmlash, vqrdmlash, vqdmulh and vqrdmulh gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): Add new operand. (parse_operands): Handle new operand. (mve_encode_qqr): Handle new instructions. (do_neon_qdmulh): Add support for MVE variants. (do_neon_qrdmlah): Likewise. (do_mve_vqdmlah): New encoding function. (insns): Change entries and add new entries for MVE mnemonics. * testsuite/gas/arm/mve-vqdmulh-bad.d: New test. * testsuite/gas/arm/mve-vqdmulh-bad.l: New test. * testsuite/gas/arm/mve-vqdmulh-bad.s: New test. commit 8b8b22a426d6b2473731176c83b47042bd8184b8 Author: Andre Vieira Date: Thu May 16 11:59:36 2019 +0100 [PATCH 27/57][Arm][GAS] Add support for MVE instructions: vqdmladh, vqrdmladh, vqdmlsdh and vqrdmlsdh gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vqdmladh): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vqdmladh-bad.d: New test. * testsuite/gas/arm/mve-vqdmladh-bad.l: New test. * testsuite/gas/arm/mve-vqdmladh-bad.s: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.d: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.l: New test. * testsuite/gas/arm/mve-vqdmlsdh-bad.s: New test. commit 3063888ecfd248ebb4a9b9c61819c9b6eb07bef2 Author: Andre Vieira Date: Thu May 16 11:57:44 2019 +0100 [PATCH 26/57][Arm][GAS] Add support for MVE instructions: vpnot and vpsel gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vpsel): New encoding function. (do_mve_vpnot): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vpnot-bad.d: New test. * testsuite/gas/arm/mve-vpnot-bad.l: New test. * testsuite/gas/arm/mve-vpnot-bad.s: New test. * testsuite/gas/arm/mve-vpsel-bad.d: New test. * testsuite/gas/arm/mve-vpsel-bad.l: New test. * testsuite/gas/arm/mve-vpsel-bad.s: New test. commit 1a186d296c88d5341d2939eb0eedf792b053f8a5 Author: Andre Vieira Date: Thu May 16 11:52:29 2019 +0100 [PATCH 25/57][Arm][GAS] Add support for MVE instruction: vmvn, vqabs and vqneg gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_neon_mvn): Change to accept MVE variants. (do_neon_sat_abs_neg): Likewise. (insns): Likewise. * testsuite/gas/arm/mve-vmvn-bad.d: New test. * testsuite/gas/arm/mve-vmvn-bad.l: New test. * testsuite/gas/arm/mve-vmvn-bad.s: New test. * testsuite/gas/arm/mve-vqabsneg-bad.d: New test. * testsuite/gas/arm/mve-vqabsneg-bad.l: New test. * testsuite/gas/arm/mve-vqabsneg-bad.s: New test. commit 2d78f95bb639209254eb7252f9c48c520bd90d56 Author: Andre Vieira Date: Thu May 16 11:49:02 2019 +0100 [PATCH 24/57][Arm][GAS] Add support for MVE instructions: vmlas, vmulh and vrmulh gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vmlas): New encoding function. (do_mve_vmulh): Likewise. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vmlas-bad.d: New test. * testsuite/gas/arm/mve-vmlas-bad.l: New test. * testsuite/gas/arm/mve-vmlas-bad.s: New test. * testsuite/gas/arm/mve-vmulh-bad.d: New test. * testsuite/gas/arm/mve-vmulh-bad.l: New test. * testsuite/gas/arm/mve-vmulh-bad.s: New test. commit a8465a06e0986374f501d0e286a5f351af2aa878 Author: Andre Vieira Date: Thu May 16 11:46:48 2019 +0100 [PATCH 23/57][Arm][GAS] Add support for MVE instructions: vmla, vmul, vqadd and vqsub gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): New operand. (parse_operands): Handle new operand. (mve_encode_qqr): Handle new instructions. (do_neon_dyadic_i64_su): Accept MVE variants. (neon_dyadic_misc): Likewise. (do_neon_mac_maybe_scalar): Likewise. (do_neon_mul): Likewise. (insns): Change to accept MVE variants. * testsuite/gas/arm/mve-vmla-bad.d: New test. * testsuite/gas/arm/mve-vmla-bad.l: New test. * testsuite/gas/arm/mve-vmla-bad.s: New test. * testsuite/gas/arm/mve-vmul-bad-1.d: New test. * testsuite/gas/arm/mve-vmul-bad-1.l: New test. * testsuite/gas/arm/mve-vmul-bad-1.s: New test. * testsuite/gas/arm/mve-vmul-bad-2.d: New test. * testsuite/gas/arm/mve-vmul-bad-2.l: New test. * testsuite/gas/arm/mve-vmul-bad-2.s: New test. * testsuite/gas/arm/mve-vqaddsub-bad.d: New test. * testsuite/gas/arm/mve-vqaddsub-bad.l: New test. * testsuite/gas/arm/mve-vqaddsub-bad.s: New test. commit 93925576e90a2d5ce84176bf2638f685d1a13ec6 Author: Andre Vieira Date: Thu May 16 11:45:46 2019 +0100 [PATCH 22/57][Arm][GAS] Add support for MVE instructions: vmlaldav, vmlalv, vmlsldav, vrmlaldavh, vrmlalvh and vrmlsldavh gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vmlaldav, M_MNEM_vmlaldava, M_MNEM_vmlaldavx, M_MNEM_vmlaldavax, M_MNEM_vmlsldav, M_MNEM_vmlsldava, M_MNEM_vmlsldavx, M_MNEM_vmlsldavax, M_MNEM_vrmlaldavhx, M_MNEM_vrmlaldavhax, M_MNEM_vrmlsldavh, M_MNEM_vrmlsldavha, M_MNEM_vrmlsldavhx, M_MNEM_vrmlsldavhax): New instruction encodings. (NEON_SHAPE_DEF): New shape (mve_encode_rrqq): New encoding helper function. (do_mve_vmlaldav): New encoding function. (do_mve_vrmlaldavh): New encoding function. (insns): Add entries for MVE mnemonics. * testsuite/gas/arm/mve-vmlaldav-bad.d: New test. * testsuite/gas/arm/mve-vmlaldav-bad.l: New test. * testsuite/gas/arm/mve-vmlaldav-bad.s: New test. * testsuite/gas/arm/mve-vmlalv-bad.d: New test. * testsuite/gas/arm/mve-vmlalv-bad.l: New test. * testsuite/gas/arm/mve-vmlalv-bad.s: New test. * testsuite/gas/arm/mve-vmlsldav-bad.d: New test. * testsuite/gas/arm/mve-vmlsldav-bad.l: New test. * testsuite/gas/arm/mve-vmlsldav-bad.s: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.d: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.l: New test. * testsuite/gas/arm/mve-vrmlaldavh-bad.s: New test. commit 13ccd4c06fdccad1cb97f15878cd411aa22bf12f Author: Andre Vieira Date: Thu May 16 11:44:19 2019 +0100 [PATCH 21/57][Arm][GAS] Add support for MVE instructions: vmaxv, vmaxav, vminv and vminav gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vmaxv, M_MNEM_vmaxav, M_MNEM_vminv, M_MNEM_vminav): New instruction encodings. (do_mve_vmaxv): New encoding function. (insns): Add entries for new MVE mnemonics. * testsuite/gas/arm/mve-vmaxv-vminv-bad.d: New test. * testsuite/gas/arm/mve-vmaxv-vminv-bad.l: New test. * testsuite/gas/arm/mve-vmaxv-vminv-bad.s: New test. commit 8cd7817067daffd567fbe09a85b215b609c56e1d Author: Andre Vieira Date: Thu May 16 11:42:52 2019 +0100 [PATCH 20/57][Arm][GAS] Add support for MVE instructions: vmaxnmv, vmaxnmav, vminnmv and vminnmav gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vmaxnmv): New encoding function. (insns): Add entries for new mnemonics. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.d: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.l: New test. * testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.s: New test. commit 935295b51d80180ecd8c35d0edbd91283ae135a2 Author: Andre Vieira Date: Thu May 16 11:41:52 2019 +0100 [PATCH 19/57][Arm][GAS] Add support for MVE instructions: vmax[nm][a] and vmin[nm][a] gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vmaxa_vmina): New encoding function. (do_mve_vmaxnma_vminnma): Likewise. (do_neon_dyadic_if_su): Change to support MVE variants. (do_vmaxnm): Likewise. (insns): Change to accept MVE variants and add new. * testsuite/gas/arm/mve-vmax-vmin-bad.d: New test. * testsuite/gas/arm/mve-vmax-vmin-bad.l: New test. * testsuite/gas/arm/mve-vmax-vmin-bad.s: New test. * testsuite/gas/arm/mve-vmaxa-vmina-bad.d: New test. * testsuite/gas/arm/mve-vmaxa-vmina-bad.l: New test. * testsuite/gas/arm/mve-vmaxa-vmina-bad.s: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.d: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.l: New test. * testsuite/gas/arm/mve-vmaxnm-vminnm-bad.s: New test. * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.d: New test. * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.l: New test. * testsuite/gas/arm/mve-vmaxnma-vminnma-bad.s: New test. commit 7df54120334049020e377ec17a0fdf4ecc63d6a7 Author: Andre Vieira Date: Thu May 16 11:40:26 2019 +0100 [PATCH 18/57][Arm][GAS] Add support for MVE instructions: vhcadd, vhadd, vhsub and vrhadd gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): New operand. (parse_operands): Handle new operand. (mve_encode_qqr): Change to support new instructions. (enum vfp_or_neon_is_neon_bits): Moved. (vfp_or_neon_is_neon): Moved. (check_simd_pred_availability): Moved. (do_neon_dyadic_i_su): Changed to support MVE variants. (neon_dyadic_misc): Changed mve_encode_qqr call. (do_mve_vbrsr): Likewise. (do_mve_vhcadd): New encoding function. (insns): Change existing to accept MVE variants and add new. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.d: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.l: New test. * testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.s: New test. * testsuite/gas/arm/mve-vhcadd-bad.d: New test. * testsuite/gas/arm/mve-vhcadd-bad.l: New test. * testsuite/gas/arm/mve-vhcadd-bad.s: New test. commit d58196e061969786922cae5cdaa2ade56dadd95f Author: Andre Vieira Date: Thu May 16 11:39:24 2019 +0100 [PATCH 17/57][Arm][GAS] Add support for MVE instructions: vfma and vfms gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_neon_fmac): Change to support MVE variants. (insns): Change to accept MVE variants. * testsuite/gas/arm/mve-vfma-vfms-bad.d: New test. * testsuite/gas/arm/mve-vfma-vfms-bad.l: New test. * testsuite/gas/arm/mve-vfma-vfms-bad.s: New test. commit b409bdb60e6a5c1b865dd25eb6bae484eb9b1b04 Author: Andre Vieira Date: Wed May 15 18:36:48 2019 +0100 [PATCH 16/57][Arm][GAS] Add support for MVE instructions: vdup, vddup, vdwdup, vidup and viwdup gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vddup, M_MNEM_vdwdup, M_MNEM_vidup, M_MNEM_viwdup): New instruction encodings. (NEON_SHAPE_DEF): New shapes. (do_mve_viddup): New encoding function. (do_neon_dup): Change to support new MVE variants. (insns): Change existing to accept MVE variants and add new. * testsuite/gas/arm/mve-vddup-bad.d: New test. * testsuite/gas/arm/mve-vddup-bad.l: New test. * testsuite/gas/arm/mve-vddup-bad.s: New test. * testsuite/gas/arm/mve-vdup-bad.d: New test. * testsuite/gas/arm/mve-vdup-bad.l: New test. * testsuite/gas/arm/mve-vdup-bad.s: New test. * testsuite/gas/arm/mve-vidup-bad.d: New test. * testsuite/gas/arm/mve-vidup-bad.l: New test. * testsuite/gas/arm/mve-vidup-bad.s: New test. commit f30ee27c150efbdffbca53f84449b2aac605b6c5 Author: Andre Vieira Date: Wed May 15 18:31:38 2019 +0100 [PATCH 15/57][Arm][GAS] Add support for MVE instructions: vcls, vclz and vfmas gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_mve_vfmas): New encoding function. (do_neon_cls): Change to support MVE variants. (do_neon_clz): Change to support MVE variants. (insns): Change to support MVE variants and add new. * testsuite/gas/arm/mve-vcls-bad.d: New test. * testsuite/gas/arm/mve-vcls-bad.l: New test. * testsuite/gas/arm/mve-vcls-bad.s: New test. * testsuite/gas/arm/mve-vclz-bad.d: New test. * testsuite/gas/arm/mve-vclz-bad.l: New test. * testsuite/gas/arm/mve-vclz-bad.s: New test. * testsuite/gas/arm/mve-vfmas-bad.d: New test. * testsuite/gas/arm/mve-vfmas-bad.l: New test. * testsuite/gas/arm/mve-vfmas-bad.s: New test. commit 5d281bf033bbf2018a30183c2009182d947d3dfd Author: Andre Vieira Date: Wed May 15 18:21:32 2019 +0100 [PATCH 14/57][Arm][GAS] Add support for MVE instructions: vcadd, vcmla and vcmul gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): New operands. (parse_operands): Handle new operands. (do_mve_vcmul): New encoding function. (do_vcmla): Change to support MVE variants. (do_vcadd): Change to support MVE variants. (insns): Change existing to support MVE variants and add new. * testsuite/gas/arm/mve-vcadd-bad-1.d: New test. * testsuite/gas/arm/mve-vcadd-bad-1.l: New test. * testsuite/gas/arm/mve-vcadd-bad-1.s: New test. * testsuite/gas/arm/mve-vcadd-bad-2.d: New test. * testsuite/gas/arm/mve-vcadd-bad-2.l: New test. * testsuite/gas/arm/mve-vcadd-bad-2.s: New test. * testsuite/gas/arm/mve-vcmla-bad-1.d: New test. * testsuite/gas/arm/mve-vcmla-bad-1.l: New test. * testsuite/gas/arm/mve-vcmla-bad-1.s: New test. * testsuite/gas/arm/mve-vcmla-bad-2.d: New test. * testsuite/gas/arm/mve-vcmla-bad-2.l: New test. * testsuite/gas/arm/mve-vcmla-bad-2.s: New test. * testsuite/gas/arm/mve-vcmul-bad-1.d: New test. * testsuite/gas/arm/mve-vcmul-bad-1.l: New test. * testsuite/gas/arm/mve-vcmul-bad-1.s: New test. * testsuite/gas/arm/mve-vcmul-bad-2.d: New test. * testsuite/gas/arm/mve-vcmul-bad-2.l: New test. * testsuite/gas/arm/mve-vcmul-bad-2.s: New test. commit f601a00c4c70f396defc66d592c4786135616545 Author: Andre Vieira Date: Wed May 15 17:40:06 2019 +0100 [PATCH 13/57][Arm][GAS] Add support for MVE instructions: vand, vbic, vorr, vorn and veor gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): New operands. (parse_operands): Handle new operands. (enum vfp_or_neon_is_neon_bits): Moved (vfp_or_neon_is_neon): Moved (check_simd_pred_availability): Moved. (do_neon_logic): Change to accept MVE variants. (insns): Changed to accept MVE variants. * testsuite/gas/arm/mve-vand-bad.d: New test. * testsuite/gas/arm/mve-vand-bad.l: New test. * testsuite/gas/arm/mve-vand-bad.s: New test. * testsuite/gas/arm/mve-vbic-bad.d: New test. * testsuite/gas/arm/mve-vbic-bad.l: New test. * testsuite/gas/arm/mve-vbic-bad.s: New test. * testsuite/gas/arm/mve-veor-bad.d: New test. * testsuite/gas/arm/mve-veor-bad.l: New test. * testsuite/gas/arm/mve-veor-bad.s: New test. * testsuite/gas/arm/mve-vorn-bad.d: New test. * testsuite/gas/arm/mve-vorn-bad.l: New test. * testsuite/gas/arm/mve-vorn-bad.s: New test. * testsuite/gas/arm/mve-vorr-bad.d: New test. * testsuite/gas/arm/mve-vorr-bad.l: New test. * testsuite/gas/arm/mve-vorr-bad.s: New test. commit 26c1e780920096772b5735250fa31a4184d2253c Author: Andre Vieira Date: Wed May 15 17:38:12 2019 +0100 [PATCH 12/57][Arm][GAS] Add support for MVE instructions: vaddlv and vaddv gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vaddlv, M_MNEM_vaddlva, M_MNEM_vaddv, M_MNEM_vaddva): New instruction encodings. (mve_encode_rq): New encoding helper function. (do_mve_vaddlv): New encoding function. (do_mve_vaddv): New encoding function. * testsuite/gas/arm/mve-vaddlv-bad.d: New test. * testsuite/gas/arm/mve-vaddlv-bad.l: New test. * testsuite/gas/arm/mve-vaddlv-bad.s: New test. * testsuite/gas/arm/mve-vaddv-bad.d: New test. * testsuite/gas/arm/mve-vaddv-bad.l: New test. * testsuite/gas/arm/mve-vaddv-bad.s: New test. commit c2dafc2a05c7bb1a341def59e6f39c1da42984dd Author: Andre Vieira Date: Wed May 15 17:37:07 2019 +0100 [PATCH 11/57][Arm][GAS] Add support for MVE instructions: vadc, vsbc and vbrsr gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (M_MNEM_vadc, M_MNEM_vadci, M_MNEM_vbrsr): New instruction encodings. (do_mve_vadc): New encoding instruction. (do_mve_vbrsr): Likewise. (do_mve_vsbc): Likewise. * testsuite/gas/arm/mve-vadc-bad.d: New test. * testsuite/gas/arm/mve-vadc-bad.l: New test. * testsuite/gas/arm/mve-vadc-bad.s: New test. * testsuite/gas/arm/mve-vbrsr-bad.d: New test. * testsuite/gas/arm/mve-vbrsr-bad.l: New test. * testsuite/gas/arm/mve-vbrsr-bad.s: New test. * testsuite/gas/arm/mve-vsbc-bad.d: New test. * testsuite/gas/arm/mve-vsbc-bad.l: New test. * testsuite/gas/arm/mve-vsbc-bad.s: New test. commit 1b8833198c014f2d7f7a67097061f3b990707084 Author: Andre Vieira Date: Wed May 15 17:35:43 2019 +0100 [PATCH 10/57][Arm][GAS] Add support for MVE instructions: vcmp and vpt gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (MVE_BAD_QREG): New error message. (enum operand_parse_code): Define new operand. (parse_operands): Handle new operand. (do_mve_vpt): Change for VPT blocks. (NEON_SHAPE_DEF): New shape. (neon_logbits): Moved. (LOW4): Moved (HI1): Moved (mve_get_vcmp_vpt_cond): New function to translate vpt conditions. (do_mve_vcmp): New encoding function. (do_vfp_nsyn_cmp): Changed to support MVE variants. (insns): Change to support MVE variants of vcmp and add vpt. * testsuite/gas/arm/mve-vcmp-bad-1.d: New test. * testsuite/gas/arm/mve-vcmp-bad-1.l: New test. * testsuite/gas/arm/mve-vcmp-bad-1.s: New test. * testsuite/gas/arm/mve-vcmp-bad-2.d: New test. * testsuite/gas/arm/mve-vcmp-bad-2.l: New test. * testsuite/gas/arm/mve-vcmp-bad-2.s: New test. * testsuite/gas/arm/mve-vpt-bad-1.d: New test. * testsuite/gas/arm/mve-vpt-bad-1.l: New test. * testsuite/gas/arm/mve-vpt-bad-1.s: New test. * testsuite/gas/arm/mve-vpt-bad-2.d: New test. * testsuite/gas/arm/mve-vpt-bad-2.l: New test. * testsuite/gas/arm/mve-vpt-bad-2.s: New test. commit 57785aa2ff465ec72baa75bbd62e321a46e0633e Author: Andre Vieira Date: Wed May 15 17:31:25 2019 +0100 [PATCH 9/57][Arm][GAS] Add support for MVE instructions: vmov gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (struct arm_it): Expand isscalar field to be able to distinguish between types of scalar. (parse_typed_reg_or_scalar): Change to accept MVE scalar variants. (parse_scalar): Likewise. (parse_neon_mov): Accept MVE variant. (po_scalar_or_goto): Make use reg_type. (parse_operands): Change uses of po_scalar_or_goto. (do_vfp_sp_monadic): Change to accept MVE variants. (do_vfp_reg_from_sp): Likewise. (do_vfp_sp_from_reg): Likewise. (do_vfp_dp_rd_rm): Likewise. (do_vfp_dp_rd_rn_rm): Likewise. (do_vfp_dp_rm_rd_rn): Likewise. (M_MNEM_vmovlt, M_MNEM_vmovlb, M_MNEM_vmovnt, M_MNEM_vmovnb): New instruction encodings. (NEON_SHAPE_DEF): New shape. (do_mve_mov): New encoding fuction. (do_mve_movn): Likewise. (do_mve_movl): Likewise. (do_neon_mov): Change to accept MVE variants. (mcCE): New MACRO. (insns): Accept new MVE variants and instructions. * testsuite/gas/arm/mve-vmov-bad-1.d: New test. * testsuite/gas/arm/mve-vmov-bad-1.l: New test. * testsuite/gas/arm/mve-vmov-bad-1.s: New test. * testsuite/gas/arm/mve-vmov-bad-2.d: New test. * testsuite/gas/arm/mve-vmov-bad-2.l: New test. * testsuite/gas/arm/mve-vmov-bad-2.s: New test. commit dd9634d97c05168870624cadf8fddf9b62ee3008 Author: Andre Vieira Date: Wed May 15 17:21:53 2019 +0100 [PATCH 8/57][Arm][GAS] Add support for MVE instructions: vcvt gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum operand_parse_code): Add new operand. (parse_operands): Handle new operand. (do_neon_cvt_1): Handle MVE variants. (do_neon_cvttb_1): Likewise. (insns): Accept MVE variants. * testsuite/gas/arm/mve-vcvt-bad-1.d: New test. * testsuite/gas/arm/mve-vcvt-bad-1.l: New test. * testsuite/gas/arm/mve-vcvt-bad-1.s: New test. * testsuite/gas/arm/mve-vcvt-bad-2.d: New test. * testsuite/gas/arm/mve-vcvt-bad-2.l: New test. * testsuite/gas/arm/mve-vcvt-bad-2.s: New test. * testsuite/gas/arm/mve-vcvt-bad-3.d: New test. * testsuite/gas/arm/mve-vcvt-bad-3.l: New test. * testsuite/gas/arm/mve-vcvt-bad-3.s: New test. * testsuite/gas/arm/mve-vcvt-bad-4.d: New test. * testsuite/gas/arm/mve-vcvt-bad-4.l: New test. * testsuite/gas/arm/mve-vcvt-bad-4.s: New test. * testsuite/gas/arm/mve-vcvt-bad.d: New test. * testsuite/gas/arm/mve-vcvt-bad.l: New test. * testsuite/gas/arm/mve-vcvt-bad.s: New test. commit f5f10c66f8dc5466536181a1e5cce2419a5bcbd7 Author: Andre Vieira Date: Wed May 15 17:20:46 2019 +0100 [PATCH 7/57][Arm][GAS] Add support for MVE instructions: vstr/vldr gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (struct arm_it): Make immisreg field larger to hold type of register. (enum shift_kind): Add SHIFT_UXTW shift kind. (enum parse_shift_mode): Add SHIFT_UXTW_IMMEDIATE shift mode. (parse_shift): Handle new shift type. (parse_address_main): Accept new addressing modes. (M_MNEM_vstrb, M_MNEM_vstrh, M_MNEM_vstrw, M_MNEM_vstrd, M_MNEM_vldrb, M_MNEM_vldrh, M_MNEM_vldrw, M_MNEM_vldrd): New instruction encodings. (do_mve_vstr_vldr_QI): New encoding functions. (do_mve_vstr_vldr_RQ): Likewise. (do_mve_vstr_vldr_RI): Likewise. (do_mve_vstr_vldr): Likewise. * testsuite/gas/arm/mve-vldr-bad-1.d: New test. * testsuite/gas/arm/mve-vldr-bad-1.l: New test. * testsuite/gas/arm/mve-vldr-bad-1.s: New test. * testsuite/gas/arm/mve-vldr-bad-2.d: New test. * testsuite/gas/arm/mve-vldr-bad-2.l: New test. * testsuite/gas/arm/mve-vldr-bad-2.s: New test. * testsuite/gas/arm/mve-vldr-bad-3.d: New test. * testsuite/gas/arm/mve-vldr-bad-3.l: New test. * testsuite/gas/arm/mve-vldr-bad-3.s: New test. * testsuite/gas/arm/mve-vstr-bad-1.d: New test. * testsuite/gas/arm/mve-vstr-bad-1.l: New test. * testsuite/gas/arm/mve-vstr-bad-1.s: New test. * testsuite/gas/arm/mve-vstr-bad-2.d: New test. * testsuite/gas/arm/mve-vstr-bad-2.l: New test. * testsuite/gas/arm/mve-vstr-bad-2.s: New test. * testsuite/gas/arm/mve-vstr-bad-3.d: New test. * testsuite/gas/arm/mve-vstr-bad-3.l: New test. * testsuite/gas/arm/mve-vstr-bad-3.s: New test. commit 35c228db7089caf9525c1ef4cb35f6a8335eeea9 Author: Andre Vieira Date: Wed May 15 17:05:58 2019 +0100 [PATCH 6/57][Arm][GAS] Add support for MVE instructions: vst/vld{2,4} gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum it_instruction_type): Add MVE_UNPREDICABLE_INSN. (BAD_EL_TYPE): New error message. (parse_neon_el_struct_list): Adapt to be able to accept MVE variant. (parse_address_main): Likewise. (group_reloc_type): Add GROUP_MVE. (enum operand_parse_code): Add new operands. (parse_operands): Handle new operands. (M_MNEM_vst20, M_MNEM_vst21, M_MNEM_vst40, M_MNEM_vst41, M_MNEM_vst42, M_MNEM_vst43, M_MNEM_vld20, M_MNEM_vld21, M_MNEM_vld40, M_MNEM_vld41, M_MNEM_vld42, M_MNEM_vld43): New encodings. (do_mve_vst_vld): New encoding function. (do_neon_ld_st_interleave): Use BAD_EL_TYPE. (it_fsm_pre_encode): Handle new it_instruction_type (handle_pred_state): Likewise. * testsuite/gas/arm/mve-vstld-bad.d: New test. * testsuite/gas/arm/mve-vstld-bad.l: New test. * testsuite/gas/arm/mve-vstld-bad.s: New test. commit 886e1c739b5441aca92a9725c932d0d446097a32 Author: Andre Vieira Date: Wed May 15 16:56:30 2019 +0100 [PATCH 5/57][Arm][GAS] Add support for MVE instructions: vmull{b,t} gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (BAD_MVE_AUTO): New error message. (BAD_MVE_SRCDEST): Likewise. (mark_feature_used): Diagnose MVE only instructions when in auto-detection mode or -march=all. (enum operand_parse_code): Define new operand. (parse_operands): Handle new operand. (M_MNEM_vmullt, M_MNEM_vmullb): New encodings. (mve_encode_qqq): New encoding helper function. (do_mve_vmull): New encoding function. (insns): Handle new instructions. * testsuite/gas/arm/mve-vmullbt-bad.d: New test. * testsuite/gas/arm/mve-vmullbt-bad.l: New test. * testsuite/gas/arm/mve-vmullbt-bad.s: New test. commit a302e574182dc12e95850dec078dac93701f1bde Author: Andre Vieira Date: Wed May 15 16:54:23 2019 +0100 [PATCH 4/57][Arm][GAS] Add support for MVE instructions: vabav, vmladav and vmlsdav gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (struct asm_opcode): Make avalue a full int. (BAD_ODD, BAD_EVEN, BAD_SIMD_TYPE): New errors. (enum operand_parse_code): Handle new operands. (parse_operands): Likewise. (M_MNEM_vabav, M_MNEM_vmladav, M_MNEM_vmladava, M_MNEM_vmladavx, M_MNEM_vmladavax, M_MNEM_vmlsdav, M_MNEM_vmlsdava, M_MNEM_vmlsdavx, M_MNEM_vmlsdavax): Define new encodings. (NEON_SHAPE_DEF): Add new shape. (neon_check_type): Use BAD_SIMD_TYPE. (mve_encode_rqq): New encoding helper function. (do_mve_vabav, do_mve_vmladav): New encoding functions. (mCEF): New MACRO. * testsuite/gas/arm/mve-vabav-bad.d: New test. * testsuite/gas/arm/mve-vabav-bad.l: New test. * testsuite/gas/arm/mve-vabav-bad.s: New test. * testsuite/gas/arm/mve-vmladav-bad.d: New test. * testsuite/gas/arm/mve-vmladav-bad.l: New test. * testsuite/gas/arm/mve-vmladav-bad.s: New test. * testsuite/gas/arm/mve-vmlav-bad.d: New test. * testsuite/gas/arm/mve-vmlav-bad.l: New test. * testsuite/gas/arm/mve-vmlav-bad.s: New test. * testsuite/gas/arm/mve-vmlsdav-bad.d: New test. * testsuite/gas/arm/mve-vmlsdav-bad.l: New test. * testsuite/gas/arm/mve-vmlsdav-bad.s: New test. commit 485dee97c6431267b662b723eb092a6abfa4167c Author: Andre Vieira Date: Wed May 15 16:52:50 2019 +0100 [PATCH 3/57][Arm][GAS] Add support for MVE instructions: vabs and vneg gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (do_neon_abs_neg): Make it accept MVE variant. (insns): Change vabs and vneg entries to accept MVE variants. * testsuite/gas/arm/mve-vabsneg-bad-1.d: New test. * testsuite/gas/arm/mve-vabsneg-bad-1.l: New test. * testsuite/gas/arm/mve-vabsneg-bad-1.s: New test. * testsuite/gas/arm/mve-vabsneg-bad-2.d: New test. * testsuite/gas/arm/mve-vabsneg-bad-2.l: New test. * testsuite/gas/arm/mve-vabsneg-bad-2.s: New test. commit 5ee9134313f9cce06d38144f5bc77c59e04df884 Author: Andre Vieira Date: Wed May 15 16:50:58 2019 +0100 [PATCH 2/57][Arm][GAS] Add support for MVE instructions: vpst, vadd, vsub and vabd gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (enum it_instruction_type): Rename to... (enum pred_instruction_type): ... this. Include VPT types. (it_insn_type): Rename to ... (pred_insn_type): .. this. (arm_it): Change comment. (enum arm_reg_type): Add new value. (reg_expected_msgs): New entry. (asm_opcode): Add mayBeVecPred member. (BAD_SYNTAX, BAD_NOT_VPT, BAD_OUT_VPT, BAD_VPT_COND, MVE_NOT_IT, MVE_NOT_VPT, MVE_BAD_PC, MVE_BAD_SP): New diagnostic MACROS. (arm_vcond_hsh): New table for vector condition codes. (now_it): Rename to ... (now_pred): ... this. (now_it_compatible): Rename to ... (now_pred_compatible): ... this. (in_it_block): Rename to ... (in_pred_block): ... this. (handle_it_state): Rename to ... (handle_pred_state): ... this. And change it to accept VPT blocks. (set_it_insn_type): Rename to ... (set_pred_insn_type): ... this. (set_it_insn_type_nonvoid): Rename to ... (set_pred_insn_type_nonvoid): ... this. (set_it_insn_type_last): Rename to ... (set_pred_insn_type_last): ... this. (record_feature_use): Moved. (mark_feature_used): Likewise. (parse_typed_reg_or_scalar): Add new case for REG_TYPE_MQ. (emit_insn): Use renamed functions and variables. (enum operand_parse_code): Add new operands. (parse_operands): Handle new operands. (do_scalar_fp16_v82_encode): Change predication detection. (do_it): Use renamed functions and variables. (do_t_add_sub): Likewise. (do_t_arit3): Likewise. (do_t_arit3c): Likewise. (do_t_blx): Likewise. (do_t_branch): Likewise. (do_t_bkpt_hlt1): Likewise. (do_t_branch23): Likewise. (do_t_bx): Likewise. (do_t_bxj): Likewise. (do_t_cond): Likewise. (do_t_csdb): Likewise. (do_t_cps): Likewise. (do_t_cpsi): Likewise. (do_t_cbz): Likewise. (do_t_it): Likewise. (do_mve_vpt): New function to handle VPT blocks. (encode_thumb2_multi): Use renamed functions and variables. (do_t_ldst): Use renamed functions and variables. (do_t_mov_cmp): Likewise. (do_t_mvn_tst): Likewise. (do_t_mul): Likewise. (do_t_nop): Likewise. (do_t_neg): Likewise. (do_t_rsb): Likewise. (do_t_setend): Likewise. (do_t_shift): Likewise. (do_t_smc): Likewise. (do_t_tb): Likewise. (do_t_udf): Likewise. (do_t_loloop): Likewise. (do_neon_cvt_1): Likewise. (do_vfp_nsyn_cvt_fpv8): Likewise. (do_vsel): Likewise. (do_vmaxnm): Likewise. (do_vrint_1): Likewise. (do_crypto_2op_1): Likewise. (do_crypto_3op_1): Likewise. (do_crc32_1): Likewise. (it_fsm_pre_encode): Likewise. (it_fsm_post_encode): Likewise. (force_automatic_it_block_close): Likewise. (check_it_blocks_finished): Likewise. (check_pred_blocks_finished): Likewise. (arm_cleanup): Likewise. (now_it_add_mask): Rename to ... (now_pred_add_mask): ... this. And use new variables and functions. (NEON_ENC_TAB): Add entries for vabdl, vaddl and vsubl. (N_I_MVE, N_F_MVE, N_SU_MVE): New MACROs. (neon_check_type): Generalize error message. (mve_encode_qqr): New MVE generic encoding function. (neon_dyadic_misc): Change to accept MVE variants. (do_neon_dyadic_if_su): Likewise. (do_neon_addsub_if_i): Likewise. (do_neon_dyadic_long): Likewise. (vfp_or_neon_is_neon): Add extra checks. (check_simd_pred_availability): Helper function to check SIMD instruction availability with respect to predication. (enum opcode_tag): New suffix value. (opcode_lookup): Change to handle VPT blocks. (new_automatic_it_block): Rename to ... (close_automatic_it_block): ...this. (TxCE, TxC3, TxC3w, TUE, TUEc, TUF, CE, C3, ToC, ToU, toC, toU, CL, cCE, cCL, C3E, xCM_, UE, UF, NUF, nUF, NCE_tag, NCE, NCEF, nCE_tag, nCE, nCEF): Add default value for new field. (mCEF, mnCEF, mnCE, MNUF, mnUF, mToC, MNCE, MNCEF): New MACROs. (insns): Redefine vadd, vsub, cabd, vabdl, vaddl, vsubl to accept MVE variants. Add entries for vscclrm, and vpst. (md_begin): Add arm_vcond_hsh initialization. * config/tc-arm.h (enum it_state): Rename to... (enum pred_state): ...this. (struct current_it): Rename to... (struct current_pred): ...this. (enum pred_type): New enum. (struct arm_segment_info_type): Use current_pred. * testsuite/gas/arm/armv8_3-a-fp-bad.l: Update error message. * testsuite/gas/arm/armv8_3-a-simd-bad.l: Update error message. * testsuite/gas/arm/dotprod-illegal.l: Update error message. * testsuite/gas/arm/mve-vaddsubabd-bad-1.d: New test. * testsuite/gas/arm/mve-vaddsubabd-bad-1.l: New test. * testsuite/gas/arm/mve-vaddsubabd-bad-1.s: New test. * testsuite/gas/arm/mve-vaddsubabd-bad-2.d: New test. * testsuite/gas/arm/mve-vaddsubabd-bad-2.l: New test. * testsuite/gas/arm/mve-vaddsubabd-bad-2.s: New test. * testsuite/gas/arm/mve-vpst-bad.d: New test. * testsuite/gas/arm/mve-vpst-bad.l: New test. * testsuite/gas/arm/mve-vpst-bad.s: New test. * testsuite/gas/arm/neon-ldst-es-bad.l: Updated error message. commit a7ad558c377fd5f5cc7bc77837c532f907f2c53b Author: Andre Vieira Date: Wed May 15 16:44:57 2019 +0100 [PATCH 1/57][Arm][GAS]: Add support for +mve and +mve.fp bfd/ChangeLog: 2019-05-16 Andre Vieira * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add case for Tag_MVE_arch. binutils/ChangeLog: 2019-05-16 Andre Vieira * readelf.c (arm_attr_tag_MVE_arch): New array for Tag_MVE_arch values. (arm_attr_public_tag arm_attr_public_tags): Add case for Tag_MVE_arch. elfcpp/ChangeLog: 2019-05-16 Andre Vieira * arm.h (Tag_MVE_arch): Define new enum value. gas/ChangeLog: 2019-05-16 Andre Vieira * config/tc-arm.c (mve_ext, mve_fp_ext): New features. (armv8_1m_main_ext_table): Add new extensions. (aeabi_set_public_attributes): Translate new features to new build attributes. (arm_convert_symbolic_attribute): Add Tag_MVE_arch. * doc/c-arm.texi: Document new extensions and new build attribute. include/ChangeLog: 2019-05-16 Andre Vieira * elf/arm.h (Tag_MVE_arch): Define new enum value. * opcode/arm.h (FPU_MVE, FPU_MVE_FP): New MACROs for new features. commit a2699ef206aedf8e8d49d8519ae8a535e4b4afe5 Author: Alan Modra Date: Thu May 16 22:35:25 2019 +0930 Revert "ARM STM32L4XX erratum test failure" This reverts commit 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211. commit 4d8d49e80ab6964a211ec3507be22c092afcd83a Author: GDB Administrator Date: Thu May 16 00:00:20 2019 +0000 Automatic date update in version.in commit 14237686d71b6ef1e6a85f2791cb54d1ec019cb1 Author: Andrew Burgess Date: Fri Mar 1 11:19:22 2019 +0000 gdb/fortran: Add sizeof tests for indexed and sliced arrays Add tests for calling sizeof on indexed and sliced arrays, and on pointers to arrays. These are all things that currently work, but were previously untested. gdb/testsuite/ChangeLog: * gdb.fortran/vla-sizeof.exp: Add tests of sizeof applied to indexed and sliced arrays, and pointers to arrays. commit 9ddc1af18c31e775ae7b107779addfcde92c723f Author: Simon Marchi Date: Wed May 15 11:20:16 2019 -0400 linux-thread-db.c: use bool where possible in thread_db code I happened to be looking at this code and noticed we could replace ints by bools at a few places. gdb/ChangeLog: * linux-thread-db.c (try_thread_db_load_1): Change return type to bool. (try_thread_db_load): Likewise. (try_thread_db_load_from_pdir_1): Likewise. (try_thread_db_load_from_pdir): Likewise. (try_thread_db_load_from_sdir): Likewise. (try_thread_db_load_from_dir): Likewise. (thread_db_load_search): Likewise. (has_libpthread): Likewise. (thread_db_load): Likewise. commit 95008a882803920a0faf672dd4a54edcc6ab66a7 Author: John Darrington Date: Wed May 15 14:16:33 2019 +0200 S12Z: New option -mreg-prefix Add a new machine dependent option to set a prefix for register names. gas/ * config/tc-s12z.c (register_prefix): New variable. (md_show_usage, md_parse_option): parse the new option. (lex_reg_name): Scan the prefix if one is set. * doc/c-s12z.texi (S12Z-Opts): Document the new option. * testsuite/gas/s12z/reg-prefix.d: New file. * testsuite/gas/s12z/reg-prefix.s: New file. * testsuite/gas/s12z/s12z.exp: Add them. commit 7bede82892a06e6c26989803e70f53697392dcf9 Author: Sergio Durigan Junior Date: Fri May 10 16:57:26 2019 -0400 Don't crash if dwarf_decode_macro_bytes's 'body' is NULL Hi, Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192 https://bugzilla.redhat.com/show_bug.cgi?id=1708786 During the Fedora RPM build process, gdb-add-index is invoked to extract the DWARF index from the binary, and GDB will segfault because dwarf2read.c:parse_definition_macro's 'body' variable is NULL. The underlying problem is that Fedora's rpm-build's "debugedit" program will silently corrupt .debug_macro strings when a binary is compiled with -g3. This is being taken care of by Mark Wielaard, here: https://bugzilla.redhat.com/show_bug.cgi?id=1708786 However, I still feel it's important to make GDB more resilient against invalid DWARF input, so I'm proposing this rather simple patch to catch the situation when "body == NULL" (i.e., it's probably been corrupted) and issue a complaint. This is not a real fix to the problem, of course, but at least GDB is able to finish without segfaulting. OK for master? gdb/ChangeLog: 2019-05-15 Sergio Durigan Junior Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192 * dwarf2read.c (dwarf_decode_macro_bytes): Check whether 'body' is NULL, and complain if that's the case. commit 905f5b3f1d20569e2788add66687e6de11130159 Author: John Darrington Date: Wed May 15 14:15:02 2019 +0200 GAS (doc): Fix misaligned menu entry. gas/ * doc/as.texi (Machine Dependencies): Fix misaligned menu entry. commit f6bd0b7677cbe76cab7322974a418e0e539400d6 Author: Alan Modra Date: Wed May 15 16:37:18 2019 +0930 C-SKY FAIL: jbt - csky Another failure seen with MALLOC_PERTURB_=1. * config/tc-csky.c (md_convert_frag): Initialise trailing padding for COND_JUMP_PIC. commit 3a1bb98c3c4f983b950fbaf2797ddcd21fcb5211 Author: Alan Modra Date: Wed May 15 16:31:28 2019 +0930 ARM STM32L4XX erratum test failure Fixes a failure seen with MALLOC_PERTURB_=1. * elf32-arm.c (elf32_arm_write_section): Don't leave error case of STM32L4XX_ERRATUM_BRANCH_TO_VENEER with unitialised section contents. commit 8f02ae5bac22b8d7f57f233ca1957ef9dbe751ab Author: Alan Modra Date: Wed May 15 11:24:09 2019 +0930 .file file number checking This adds another test for file numbers given in .file directives, checking that the value can be represented as an unsigned int and that a memory allocation expression doesn't overflow. I removed a test added recently since an earlier test (num < 1) already covers the (num < 0) case. * dwarf2dbg.c: Whitespace fixes. (get_filenum): Don't strdup "file". Adjust error message. (dwarf2_directive_filename): Use an unsigned type for "num". Catch truncation of file number and overflow of get_filenum XRESIZEVEC multiplication. Delete dead code. commit ded12894f5a2836b06c997b899d04c9f692004c1 Author: Alan Modra Date: Wed May 15 11:15:17 2019 +0930 tic54x_start_line_hook git commit 3076e59490 caused tic54x-coff +FAIL: c54x subsym assignment/use PR 24538 * config/tc-tic54x.c (tic54x_start_line_hook): Do skip end of line chars in setting endp. commit c5358db468d582e658488c2bcc1befe6e6e47366 Author: John Darrington Date: Wed May 15 06:47:16 2019 +0200 GDB (s12z): Improve reliability of the stack unwinder. Previously, the stack unwinder searched through consecutive bytes for values which it thought might be the start of a stack mutating operation. This was error prone, because such bytes could also be the operands of other instructions. This change uses the opcodes api to interpret the code in each frame. gdb/ChangeLog: * s12z-tdep.c (push_pull_get_stack_adjustment): New function. (advance, posn, abstract_read_memory): New functions. [struct mem_read_abstraction]: New struct. (s12z_frame_cache): Use opcodes API to interpret stack frame code. commit e48371ffd5f89a9ceecd6e814b69e26609fd8402 Author: GDB Administrator Date: Wed May 15 00:00:15 2019 +0000 Automatic date update in version.in commit c408a94f8115767ea7e6aa1a75bc59ea5ae960fa Author: Tom Tromey Date: Fri May 10 10:40:15 2019 -0600 Fix assertion failure in coerce_unspec_val_to_type coerce_unspec_val_to_type does: set_value_address (result, value_address (val)); However, this is only valid for lval_memory. This patch changes this code to only set the address for lval_memory values. This seems like an ordinary oversight in coerce_unspec_val_to_type, and a test case would be difficult to write, so I'm submitting it without a test case. Tested on x86-64 Fedora 29; plus using an Ada program that exhibits the bug (but which cannot be shared). gdb/ChangeLog 2019-05-14 Tom Tromey * ada-lang.c (coerce_unspec_val_to_type): Only set address when value is not lval_memory. commit a0a3a1e9d71887bbff54fcd1e33fcefcbc78b603 Author: Tom de Vries Date: Tue May 14 17:45:51 2019 +0200 [gdb/doc] Mention index cache in concept and command index The "automatic symbol index cache" entry in the docs is missing entries in the concept and command indices. Add them. gdb/doc/ChangeLog: 2019-05-14 Tom de Vries * gdb.texinfo (Automatic symbol index cache): Add concept and command index entries. commit c2509a1cc8beff40b1da8f85a3f27bf9df1d6c02 Author: Nick Clifton Date: Tue May 14 16:16:56 2019 +0100 Add missing verilogtest.s file. commit e7bd7fba34ae1f892acf1e13ac86fca55b68026d Author: Tom Tromey Date: Mon May 13 09:35:19 2019 -0600 Add file name styling to "info sharedlibrary" This changes "info sharedlibrary" to add styling to the file name. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-14 Tom Tromey * solib.c (info_sharedlibrary_command): Style the file name. gdb/testsuite/ChangeLog 2019-05-14 Tom Tromey * gdb.base/info-shared.exp (check_info_shared): Add "info shared" styling test. commit 35015cd193be5e603ed31c14472d2d9d17e14e7a Author: Nick Clifton Date: Tue May 14 12:42:02 2019 +0100 Fix illegal memory access triggered when attempting to assemble a bogus i386 source file. PR 24538 * config/tc-i386-intel.c (i386_intel_simplify_register): Reject illegal register numbers. commit 37d0d09177dc02e0002ab8b90d9b7bc402af9240 Author: Jamey Hicks Date: Tue May 14 10:40:04 2019 +0100 Add new option to objcopy: --verilog-data-width. Use this option to set the size of byte bundles generated in verilog format files. PR 19921 binutils* objcopy.c: Add new option --verilog-data-width. Use it to set the value of VerilogDataWidth. * doc/binutils.texi: Document the new option. * testsuite/binutils-all/objcopy.exp: Run tests of new option. * testsuite/binutils-all/verilog-1.hex: New file. * testsuite/binutils-all/verilog-2.hex: New file. * testsuite/binutils-all/verilog-4.hex: New file. * testsuite/binutils-all/verilog-8.hex: New file. * NEWS: Mention the new feature. bfd * verilog.c: (VerilogDataWidth): New variable. (verilog_write_record): Emit bytes in VerilogDataWidth bundles. commit 3076e59490428c9719765f9b007d6d0d0238f006 Author: Nick Clifton Date: Fri May 10 16:57:31 2019 +0100 A series of fixes to addres problems detected by compiling the assembler with address sanitization enabled. PR 24538 gas * macro.c (get_any_string): Increase size of buffer used to hold decimal value of expression result. * dw2gencfi.c (get_debugseg_name): Handle an empty name. * dwarf2dbg.c (get_filenum): Catch integer wraparound when extending allocate file array. (dwarf2_directive_filename): Add extra checks of the computed file number. * config/tc-arm.c (arm_tc_equal_in_insn): Insert copy of name into warning hash table. (s_arm_eabi_attribute): Check for obj_elf_vendor_attribute returning -1. * config/tc-i386.c (i386_output_nops): Catch an attempt to generate nops of negative lengths. * as.h (MAX_LITTLENUMS): Move definition to here from... * config/atof-ieee.c: ...here. * config/tc-aarch64.c: ...here. * config/tc-arc.c: ...here. * config/tc-arm.c: ...here. * config/tc-epiphany.c: ...here. * config/tc-i386.c: ...here. * config/tc-ia64.c: ...here. (And correct the value). * config/tc-m32c.c: ...here. * config/tc-m32r.c: ...here. * config/tc-metag.c: ...here. * config/tc-microblaze.c: ...here. * config/tc-nds32.c: ...here. * config/tc-or1k.c: ...here. * config/tc-score.c: ...here. * config/tc-score7.c: ...here. * config/tc-tic4x.c: ...here. * config/tc-tilegx.c: ...here. * config/tc-tilepro.c: ...here. * config/tc-visium.c: ...here. * config/tc-sh.c (md_assemble): Add check for an instruction with no opcodes. * config/tc-mips.c (mips_lookup_insn): Add check for very short instruction name. * config/tc-tic54x.c: Use unsigned chars to access is_end_of_line array. (tic54x_start_line_hook): Check for an empty line. (next_line_shows_parallel): Do not walk off the end of the string. (tic54x_macro_start): Check for too much macro nesting. (tic54x_start_label): Add label_start parameter. Use this parameter to check the first character of the label. * config/tc-tic54x.h (TC_START_LABEL_WITHOUT_COLON): Pass line_start variable to tic54x_start_label. PR 24538 opcodes * ia64-opc.c (ia64_find_matching_opcode): Check for reaching the end of the table prematurely. commit a6d0f2490c0c7969eb60038f01c0ee0f46e4d5fd Author: Alan Hayward Date: Tue May 14 10:09:05 2019 +0100 AArch64: Add half float view to V registers AArch64 can fill the vector registers with half precision floats. Add a view for this. Add builtin type ieee half and connect this to the existing floatformats_ieee_half. gdb/ChangeLog: 2019-05-14 Alan Hayward * aarch64-tdep.c (aarch64_vnh_type): Add half view. (aarch64_vnv_type): Likewise. * target-descriptions.c (make_gdb_type): Add TDESC_TYPE_IEEE_HALF. * common/tdesc.c: Likewise. * common/tdesc.h (enum tdesc_type_kind): Likewise. * features/aarch64-fpu.c (create_feature_aarch64_fpu): Regenerate. * features/aarch64-fpu.xml: Add ieee half view. * features/aarch64-sve.c (create_feature_aarch64_fpu): Likewise. * gdbtypes.c (gdbtypes_post_init): Add builtin_half * gdbtypes.h (struct builtin_type): Likewise. (struct objfile_type): Likewise. commit 2764128dee821448ba43a50ed8cee387f2ee8dca Author: Tom de Vries Date: Tue May 14 10:10:08 2019 +0200 [gdb/testsuite] Fix base address selection entry encoding in dw2-skip-prologue.S A base address selection entry in a location list consist of two (constant or relocated) address offsets. The two offsets are the same size as an address on the target machine. The test-case gdb.dwarf2/dw2-skip-prologue.S encodes a base address selection entry using .4byte, which is incorrect for 8-byte pointer size. [ Which triggers an assert in dwz, see PR dwz/24172. ] Fix this by using PTRBYTE instead. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-14 Tom de Vries * gdb.dwarf2/dw2-skip-prologue.S (.debug_loc): Fix base address selection entry encoding. commit 3c2fcaf9132b994ff3dcb19847717f175098289b Author: Tom de Vries Date: Tue May 14 09:58:12 2019 +0200 [gdb/doc] Fix "maint info selftests" command index entry Currently, the entry for the command "maint info selftests" in the Command, Variable, and Function Index is listed at '"', rather than next to the other "maint info" commands. Fix this by removing the superfluous quoting in the @kindex entry. gdb/doc/ChangeLog: 2019-05-14 Tom de Vries * gdb.texinfo (Maintenance Commands): Remove superfluous quoting on command index entry for "maint info selftests". commit 175cbe22a36861976dc328baaf5ebff3fad35ed8 Author: GDB Administrator Date: Tue May 14 00:00:20 2019 +0000 Automatic date update in version.in commit 30d5f9e82139702e56a862ac19a5b36545fe3de5 Author: GDB Administrator Date: Mon May 13 00:00:23 2019 +0000 Automatic date update in version.in commit 66b8bb74ca8fb23e407b80e1b0e7c1a433286b41 Author: Simon Marchi Date: Sun May 12 11:47:37 2019 -0400 Fix two langauge -> language typos commit 1ace968ad55778bc178ef36182b87ab7e3dad652 Author: GDB Administrator Date: Sun May 12 00:01:00 2019 +0000 Automatic date update in version.in commit 21c219fd5bbd0720b7adc5f250c91fc2fd1c4941 Author: Joel Brobecker Date: Sat May 11 11:29:24 2019 -0700 Document the GDB 8.3 release in gdb/ChangeLog gdb/ChangeLog: GDB 8.3 released. commit 387e762476ff224ee40760910e73a3905a2c380a Author: Faraz Shahbazker Date: Mon May 6 09:29:20 2019 -0700 Add macro expansions for ADD, SUB, DADD and DSUB for MIPS r6 Release 6 of the MIPS architecture does not have an ADDI instruction. ADD/SUB instructions with immediate operands can be expanded to load and immediate value and then perform the operation. gas/ * config/tc-mips.c (macro) : Add expansions for MIPS r6. * testsuite/gas/mips/add.s: Enable tests for R6. * testsuite/gas/mips/daddi.s: Annotate to test DADD for R6. * testsuite/gas/mips/mipsr6@add.d: Likewise. * gas/testsuite/gas/mips/mipsr6@dadd.d: New test. * gas/testsuite/gas/mips/mips.exp: Run the new test. opcodes/ * mips-opc.c (mips_opcodes): Enable ADD, SUB, DADD and DSUB macros for R6. commit 0067be51e9436c5bbd961a4f54c10dbd50c491ea Author: Alan Modra Date: Sat May 11 09:42:00 2019 +0930 PowerPC objdump -Mraw * ppc-dis.c (print_insn_powerpc) Don't skip optional operands when -Mraw is in effect. commit 55cb8bb5a870380a9d5f45d8002b7ffab529f6ff Author: GDB Administrator Date: Sat May 11 00:00:19 2019 +0000 Automatic date update in version.in commit e173ea00c2941af42ea4e2267446d6039a70da6e Author: Joshua Oreman Date: Sat May 11 07:27:10 2019 +0800 Fix problem with ICF where diffs in EH frame info is ignored. PR gold/21066 * gc.h (gc_process_relocs): Track relocations in .eh_frame sections when ICF is enabled, even though the .eh_frame sections themselves are not foldable. * icf.cc (get_section_contents): Change arguments to permit operation on just part of a section. Include extra identity regions in the referring section's contents recursively. (match_sections): Lock object here instead of in get_section_contents so that get_section_contents can operate recursively. (Icf::add_ehframe_links): New method. (Icf::find_identical_sections): Pass .eh_frame sections to add_ehframe_links(). Increase default iteration count from 2 to 3 because handling exception info typically requires one extra iteration. * icf.h (Icf::extra_identity_list_): New data member with accessor. (is_section_foldable_candidate): Include .gcc_except_table sections. * options.h: Update documentation for new default ICF iteration count. * testsuite/Makefile.am (icf_test_pr21066): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/icf_test_pr21066.cc: New source file. * testsuite/icf_test_pr21066.sh: New test script. commit 1367480341749b1498a6c5e7a7b79c7a4ab4ed34 Author: Simon Marchi Date: Fri May 10 17:22:09 2019 -0400 Fix GDB build when using --disable-gdbmi Since commit b4be1b064860 ("Fix MI output for multi-location breakpoints") we get this error when building with --disable-gdbmi: CXXLD gdb /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:6358: error: undefined reference to 'mi_multi_location_breakpoint_output_fixed(ui_out*)' This is due to breakpoint.c using a function defined in mi/mi-main.c, even though mi/mi-main.c isn't included in the build. To fix it, use the flags feature of ui_out. mi_ui_out has the new fix_multi_location_breakpoint_output flag set for versions >= 3. Also, move the global variable fix_multi_location_breakpoint_output to breakpoint.c, so it can be read there even when we build without MI. I renamed it to fix_multi_location_breakpoint_output_globally so it doesn't clash with the new enumerator. gdb/ChangeLog: * breakpoint.h (fix_multi_location_breakpoint_output_globally): New variable declaration. * breakpoint.c (fix_multi_location_breakpoint_output_globally): New variable. (print_one_breakpoint): Use ui_out::test_flags and new global variable to compute use_fixed_output. * mi/mi-main.h (mi_multi_location_breakpoint_output_fixed): Remove. * mi/mi-main.c (fix_multi_location_breakpoint_output): Remove. (mi_multi_location_breakpoint_output_fixed): Remove. (mi_cmd_fix_multi_location_breakpoint_output): Adjust to set the new variable. * mi/mi-out.c (mi_ui_out::mi_ui_out): Set fix_multi_location_breakpoint_output flag if version >= 3. * ui-out.h (enum ui_out_flag) : New enumerator. commit a9eac7f9b45e92b83db476d167e5ff26607a8b47 Author: Simon Marchi Date: Fri May 10 16:29:00 2019 -0400 cc-with-tweaks: show dwz stderr and verify result When running the gdb.base/index-cache.exp test case with the cc-with-dwz-m board, I noticed that the final executable didn't actually contain a .gnu_debugaltlink section with the name of the external dwz file: $ readelf --debug-dump=links testsuite/outputs/gdb.base/index-cache/index-cache * empty * Running dwz by hand, I realized it's because dwz complains that the output .debug_info section is empty and fails: $ gcc ~/src/binutils-gdb/gdb/testsuite/gdb.base/index-cache.c -g3 -O0 -o a && cp a b $ dwz -m foo a b dwz: foo: .debug_info section not present $ echo $? 1 This is because index-cache.c is trivial (just an empty main) and dwz doesn't find anything to factor out to the dwz file. [1] I think that cc-with-tweaks should fail in this scenario: if the user asks for an external dwz file to be generated (the -m flag), then it should be an error if cc-with-tweaks doesn't manage to produce an executable with the proper link to this external dwz file. Otherwise, the test runs with a regular non-dwzified executable, which gives a false sense of security about whether the feature under test works with dwzified executables. So this patch adds checks for that after invoking dwz. It also removes the 2>&1 to allow the error message to be printed like so: Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.base/index-cache.exp ... gdb compile failed, dwz: /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.base/index-cache/index-cache.dwz: .debug_info section not present - In the -m case (multi-file compression), we check if the expected output file exists. - In the -z case (single-file compression), we check if the file contents has changed. This should catch cases where dwz doesn't modify the file because it's not worth it. It was chosen not to check for dwz's exit code, as it is not very reliable up to dwz 0.12. With this patch, fewer tests will pass than before with the cc-with-dwz and cc-with-dwz-m boards, but those were false positives anyway, as the test ran with regular executables. [1] Note that dwz has been patched by Tom de Vries to work correctly in this case, so we can use dwz master to run the test: https://sourceware.org/git/?p=dwz.git;a=commit;h=08becc8b33453b6d013a65e7eeae57fc1881e801 gdb/ChangeLog: * contrib/cc-with-tweaks.sh: Validate dwz's work. commit a97c8e56362b77fcbbf5b57e5053356320273977 Author: Tom Tromey Date: Fri May 10 08:19:04 2019 -0600 Document lazy computation for pretty-printer "children" method I found out recently that some users didn't know that the Python pretty-printers "children" method should compute its result lazily. This has been a good idea since the earliest days, but wasn't mentioned in the docs. This patch adds some text to this effect. gdb/doc/ChangeLog 2019-05-10 Tom Tromey * python.texi (Pretty Printing API): Mention lazy computation for "children". commit 71bed2dba6c0706633ead4994cc89e063abf28ea Author: Tom Tromey Date: Fri May 3 17:03:40 2019 -0600 Add completion for Ada catch commands This patch adds a completion function to the "catch exception" and "catch handlers" commands. Tested on x86-64 Fedora 29; reviewed off-list by Joel. gdb/ChangeLog 2019-05-10 Tom Tromey * ada-lang.c (catch_ada_completer): New function. (_initialize_ada_language): Use it. gdb/testsuite/ChangeLog 2019-05-10 Tom Tromey * gdb.ada/info_exc.exp: Add "complete" test. commit b8e07335d04f8c8e611a65905598915f68b0b707 Author: Tom Tromey Date: Fri May 10 06:59:19 2019 -0600 Minor "catch" documentation improvements This patch makes a few minor improvements to the catchpoint documentation: * "catch exception" and "catch handlers" now mention the argument in the @item. * "catch exception unhandled" is moved to be closer to "catch exception", rather than after "catch handlers". * "catch load" and "catch unload" now wrap the argument in @var. gdb/doc/ChangeLog 2019-05-10 Tom Tromey * gdb.texinfo (Set Catchpoints): Add text for parameter to "catch exception" and "catch handlers". Move "catch exception unhandled" text. Use @var for "catch load" and "catch unload" commit 391bf8918b16f9f3ad1060d5cb0fc0c4048421bb Author: Alan Modra Date: Fri May 10 23:17:45 2019 +0930 Re: Sign-extend start and stop address inputs to objdump git commit 2379f9c475 introduced an rx-elf test failure. This fixes it. * testsuite/binutils-all/objdump.exp (test_objdump_disas_limited), (test_objdump_content_limited): Add text arg, use in place of .text. (bintest_signed.o): Call get_standard_section_names for name of text section. commit 24c54127c5c4da81b9e6c248c8e918b3564b271a Author: Tom Tromey Date: Fri May 10 07:17:48 2019 -0600 Two minor constifications I noticed a couple of spots where a "char *" was used where a "const char *" made more sense. This patch fixes both of them. Tested by rebuilding. gdb/ChangeLog 2019-05-10 Tom Tromey * thread.c (print_thread_info): Make "requested_threads" const. * gdbthread.h (print_thread_info): Make "requested_threads" const. * ada-tasks.c (print_ada_task_info): Make "taskno_str" const. * ada-lang.h (print_ada_task_info): Make "taskno_str" const. commit f3e606a3db56db3ce1ab172511a4ffe9310a496f Author: GDB Administrator Date: Fri May 10 00:00:37 2019 +0000 Automatic date update in version.in commit bda678b9e5e4a343a9bb2b0fd20cf52035bad78e Author: Peter Bergner Date: Thu May 9 09:09:47 2019 -0500 Update printing of optional operands during disassembly. opcodes/ * ppc-dis.c (skip_optional_operands): Change return type and returns. (print_insn_powerpc) : Change type. Call skip_optional_operands if we have not skipped any operands. gas/ * testsuite/gas/ppc/476.d: Update expected output. * testsuite/gas/ppc/power6.d: Likewise. commit 8de09632ff6683a48b8acfb05d3b35b4ab4507fe Author: Matthew Malcomson Date: Thu May 9 14:52:45 2019 +0100 [gas][testsuite] Don't specify arch in testsuite output My testcase matched against a file format of elf64-littleaarch64 in the objdump output. This was unnecessarily restrictive and causes testcase failures on aarch64_be. Here we remove that restriction. Committed as obvious. Testing done on aarch64_be-none-elf gas to see the failure goes away. gas/ChangeLog: 2019-05-09 Matthew Malcomson * testsuite/gas/aarch64/sve2.d: Remove file format restriction. commit 63b667adb4a915f13ec3ace77af4b9cbd76bceac Author: Tom de Vries Date: Thu May 9 12:24:38 2019 +0200 [gdb/testsuite] Fix gdb.arch/amd64-tailcall-self.S The test-case gdb.arch/amd64-tailcall-self.exp fails here: ... if ![runto b] { return -1 } ... like: ... (gdb) file build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\ amd64-tailcall-self Reading symbols from build/gdb/testsuite/outputs/gdb.arch/\ amd64-tailcall-self/amd64-tailcall-self... Dwarf Error: Cannot find DIE at 0x1f5 referenced from DIE at 0x107 [in \ module build/gdb/testsuite/outputs/gdb.arch/amd64-tailcall-self/\ amd64-tailcall-self] ... The problem is that in amd64-tailcall-self.S, CU-relative references are assigned .debug_info section relative values. [ This is similar to the problem fixed by "Fix gdb.arch/amd64-entry-value-paramref.S". ] Fix this by assigning CU-relative references instead. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-09 Tom de Vries * gdb.arch/amd64-tailcall-self.S: Make DW_FORM_ref4 references CU-relative. commit e111c7d1eb8404f29c45f3aa5dbc531062ebbd73 Author: Matthew Malcomson Date: Thu May 9 10:29:29 2019 +0100 [binutils][aarch64] Add SVE2 tests Add tests that SVE2 instructions are encoded as they should be, and tests that invalid instructions have their problems reported. Also check that each sve2 cryptographic extension is required to use the corresponding cryptographic instructions. Finally, test to ensure that sve2 instructions using mnemonics that exist in sve1 still need the sve2 feature to be used. gas/ChangeLog: 2019-05-09 Matthew Malcomson * testsuite/gas/aarch64/illegal-sve2-aes.d: New test. * testsuite/gas/aarch64/illegal-sve2-bitperm.d: New test. * testsuite/gas/aarch64/illegal-sve2-sha3.d: Test new instructions. * testsuite/gas/aarch64/illegal-sve2-sm4.d: Test new instructions. * testsuite/gas/aarch64/illegal-sve2-sve1ext.d: Test new instructions. * testsuite/gas/aarch64/illegal-sve2-sve1ext.l: Test new instructions. * testsuite/gas/aarch64/illegal-sve2.d: Test new instructions. * testsuite/gas/aarch64/illegal-sve2.l: Test new instructions. * testsuite/gas/aarch64/illegal-sve2.s: Test new instructions. * testsuite/gas/aarch64/sve1-extended-sve2.s: New test. * testsuite/gas/aarch64/sve2.d: Test new instructions. * testsuite/gas/aarch64/sve2.s: Test new instructions. commit 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f Author: Matthew Malcomson Date: Thu May 9 10:29:28 2019 +0100 [binutils][aarch64] Add SVE2 instructions. This patch adds all the SVE2 instructions and their associated qualifier sets. Ok for trunk? opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-dis-2.c: Regenerate. * aarch64-tbl.h (OP_SVE_BBU): New variant set. (OP_SVE_BBB): New variant set. (OP_SVE_DDDD): New variant set. (OP_SVE_HHH): New variant set. (OP_SVE_HHHU): New variant set. (OP_SVE_SSS): New variant set. (OP_SVE_SSSU): New variant set. (OP_SVE_SHH): New variant set. (OP_SVE_SBBU): New variant set. (OP_SVE_DSS): New variant set. (OP_SVE_DHHU): New variant set. (OP_SVE_VMV_HSD_BHS): New variant set. (OP_SVE_VVU_HSD_BHS): New variant set. (OP_SVE_VVVU_SD_BH): New variant set. (OP_SVE_VVVU_BHSD): New variant set. (OP_SVE_VVV_QHD_DBS): New variant set. (OP_SVE_VVV_HSD_BHS): New variant set. (OP_SVE_VVV_HSD_BHS2): New variant set. (OP_SVE_VVV_BHS_HSD): New variant set. (OP_SVE_VV_BHS_HSD): New variant set. (OP_SVE_VVV_SD): New variant set. (OP_SVE_VVU_BHS_HSD): New variant set. (OP_SVE_VZVV_SD): New variant set. (OP_SVE_VZVV_BH): New variant set. (OP_SVE_VZV_SD): New variant set. (aarch64_opcode_table): Add sve2 instructions. commit 28ed815ad2b0cb93eede83022269d6a60b9cdf31 Author: Matthew Malcomson Date: Thu May 9 10:29:27 2019 +0100 [binutils][aarch64] New SVE_SHLIMM_UNPRED_22 operand. New operand describes a shift-left immediate encoded in bits 22:20-19:18-16 where UInt(bits) - esize == shift. This operand is useful for instructions like sshllb. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (parse_operands): Handle new SVE_SHLIMM_UNPRED_22 operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_SHLIMM_UNPRED_22 operand. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_SHLIMM_UNPRED_22. (aarch64_print_operand): Add printing for SVE_SHLIMM_UNPRED_22. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_SHLIMM_UNPRED_22 operand. commit fd1dc4a0c1b87c1efa7e0398fd47fd1e87fa0fb4 Author: Matthew Malcomson Date: Thu May 9 10:29:26 2019 +0100 [binutils][aarch64] New sve_size_tsz_bhs iclass. Add sve_size_tsz_bhs iclass needed for sqxtnb and similar instructions. This iclass encodes one of three variants by the most significant bit set in a 3-bit value where only one bit may be set. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_tsz_bhs iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_tsz_bhs iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_tsz_bhs iclass decode. commit 31e36ab341498bb477a46a0475100ec5d471c4f2 Author: Matthew Malcomson Date: Thu May 9 10:29:24 2019 +0100 [binutils][aarch64] New SVE_Zm4_11_INDEX operand. This includes defining a new single bit field SVE_i2h at position 20. SVE_Zm4_11_INDEX handles indexed Zn registers where the index is encoded in bits 20:11 and the register is chosed from range z0-z15 in bits 19-16. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (parse_operands): Handle new SVE_Zm4_11_INDEX operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_Zm4_11_INDEX operand. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_Zm4_11_INDEX. (aarch64_print_operand): Add printing for SVE_Zm4_11_INDEX. (fields): Handle SVE_i2h field. * aarch64-opc.h (enum aarch64_field_kind): New SVE_i2h field. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_Zm4_11_INDEX operand. commit 1be5f94f9c85821287b9ae423f738a8bab499526 Author: Matthew Malcomson Date: Thu May 9 10:29:23 2019 +0100 [binutils][aarch64] New sve_shift_tsz_bhsd iclass. This new iclass encodes the variant by which is the most significant bit used of bits 23-22:20-19, where those bits are usually part of a given constant operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_shift_tsz_bhsd iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_shift_tsz_bhsd iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_shift_tsz_bhsd iclass decode. commit 3c17238bc9fe8a078a6199470291f07bab9c64c8 Author: Matthew Malcomson Date: Thu May 9 10:29:22 2019 +0100 [binutils][aarch64] New SVE_SHRIMM_UNPRED_22 operand. Include a new iclass to extract the variant from the most significant 3 bits of this operand. Instructions such as rshrnb include a constant shift amount as an operand, where the most significant three bits of this operand determine what size elements the instruction is operating on. The new SVE_SHRIMM_UNPRED_22 operand denotes this constant encoded in bits 22:20-19:18-16 while the new sve_shift_tsz_hsd iclass denotes that the SVE qualifier is encoded in bits 22:20-19. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (parse_operands): Handle new SVE_SHRIMM_UNPRED_22 operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_SHRIMM_UNPRED_22 operand. (enum aarch64_insn_class): Add sve_shift_tsz_hsd iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-asm.c (aarch64_ins_sve_shrimm): (aarch64_encode_variant_using_iclass): Handle sve_shift_tsz_hsd iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_shift_tsz_hsd iclass decode. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_SHRIMM_UNPRED_22. (aarch64_print_operand): Add printing for SVE_SHRIMM_UNPRED_22. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_SHRIMM_UNPRED_22 operand. commit cd50a87ae29f163e7d254729a902a5e51fcccbbc Author: Matthew Malcomson Date: Thu May 9 10:29:21 2019 +0100 [binutils][aarch64] New sve_size_013 iclass. Add sve_size_013 instruction class This new iclass handles instructions such as pmullb whose size specifier can only be encoded as 0, 1, or 3. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_013 iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_013 iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_013 iclass decode. commit 3c705960ca0e12bb5d3a12d14ca6703006102d98 Author: Matthew Malcomson Date: Thu May 9 10:29:20 2019 +0100 [binutils][aarch64] New sve_size_bh iclass. Add new iclass sve_size_bh to handle instructions that have two variants encoded with the SVE_sz field. This iclass behaves the same as the sve_size_sd iclass, but it has a nicer name for those instructions that choose between variants using the "B" and "H" size qualifiers. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_bh iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_bh iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_bh iclass decode. commit 0a57e14ffa4c2900f64780375282dc5dc493e250 Author: Matthew Malcomson Date: Thu May 9 10:29:19 2019 +0100 [binutils][aarch64] New sve_size_sd2 iclass. Define new sve_size_sd2 iclass to distinguish between the two variants of ldnt1sb and ldnt1sh. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_sd2 iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_sd2 iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_sd2 iclass decode. * aarch64-opc.c (fields): Handle SVE_sz2 field. * aarch64-opc.h (enum aarch64_field_kind): New SVE_sz2 field. commit c469c86473273e115b267a6f8c93c8942deb93c4 Author: Matthew Malcomson Date: Thu May 9 10:29:18 2019 +0100 [binutils][aarch64] New SVE_ADDR_ZX operand. Add AARCH64_OPND_SVE_ADDR_ZX operand that allows a vector of addresses in a Zn register, offset by an Xm register. This is used with scatter/gather SVE2 instructions. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (REG_ZR): Macro specifying zero register. (parse_address_main): Account for new addressing mode [Zn.S, Xm]. (parse_operands): Handle new SVE_ADDR_ZX operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_ADDR_ZX operand. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_ADDR_ZX. (aarch64_print_operand): Add printing for SVE_ADDR_ZX. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_ADDR_ZX operand. commit 116adc27470ed3682b6236e44e3b18838673036c Author: Matthew Malcomson Date: Thu May 9 10:29:17 2019 +0100 [binutils][aarch64] New SVE_Zm3_11_INDEX operand. Introduce new operand SVE_Zm3_11_INDEX that indicates a register between z0-z7 stored in bits 18-16 and an index stored in bits 20-19:11. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (parse_operands): Handle new SVE_Zm3_11_INDEX operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_Zm3_11_INDEX operand. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_Zm3_11_INDEX. (aarch64_print_operand): Add printing for SVE_Zm3_11_INDEX. (fields): Handle SVE_i3l and SVE_i3h2 fields. * aarch64-opc.h (enum aarch64_field_kind): New SVE_i3l and SVE_i3h2 fields. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_Zm3_11_INDEX operand. commit 3bd82c86f0f432bd7653101069bf056fda14b7cd Author: Matthew Malcomson Date: Thu May 9 10:29:16 2019 +0100 [binutils][aarch64] New iclass sve_size_hsd2. Add "sve_size_hsd2" iclass decode that uses the new FLD_SVE_size field value to determine the variant of an instruction. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_hsd2 iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_hsd2 iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_hsd2 iclass decode. * aarch64-opc.c (fields): Handle SVE_size field. * aarch64-opc.h (enum aarch64_field_kind): New SVE_size field. commit adccc50753467ac66573471f180a60d8d96ce223 Author: Matthew Malcomson Date: Thu May 9 10:29:15 2019 +0100 [binutils][aarch64] Introduce SVE_IMM_ROT3 operand. New operand AARCH64_OPND_SVE_IMM_ROT3 handles a single bit rotate operand encoded at bit position 10. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c (parse_operands): Handle new SVE_IMM_ROT3 operand. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (enum aarch64_opnd): New SVE_IMM_ROT3 operand. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Constraint checking for SVE_IMM_ROT3. (aarch64_print_operand): Add printing for SVE_IMM_ROT3. (fields): Handle SVE_rot3 field. * aarch64-opc.h (enum aarch64_field_kind): New SVE_rot3 field. * aarch64-tbl.h (AARCH64_OPERANDS): Use new SVE_IMM_ROT3 operand. commit 5cd99750959f54fea9e7290ec850df6c96878b56 Author: Matthew Malcomson Date: Thu May 9 10:29:13 2019 +0100 [binutils][aarch64] Allow movprfx for SVE2 instructions. SVE2 introduces a number of new instructions that work with the movprfx instruction. This commit ensures that SVE2 instructions are accounted for. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-opc.c (verify_constraints): Check for movprfx for sve2 instructions. commit 7ce2460a77a8f66a145c11522f494f3262255390 Author: Matthew Malcomson Date: Thu May 9 10:29:12 2019 +0100 [binutils][aarch64] SVE2 feature extension flags. Include all feature flag macros. The "sve2" extension that enables the core sve2 instructions. This also enables the sve extension, since sve is a requirement of sve2. Extra optional sve2 features are the bitperm, sm4, aes, and sha3 extensions. These are all given extra feature flags, "bitperm", "sve2-sm4", "sve2-aes", and "sve2-sha3" respectively. The sm4, aes, and sha3 extensions are explicitly marked as sve2 extensions to distinguish them from the corresponding NEON extensions. Rather than continue extending the current feature flag numbers, I used some bits that have been skipped. gas/ChangeLog: 2019-05-09 Matthew Malcomson * config/tc-aarch64.c: Add command line architecture feature flags "sve2", "sve2-sm4", "sve2-aes", "sve2-sha3", "bitperm". * doc/c-aarch64.texi: Document new architecture feature flags. include/ChangeLog: 2019-05-09 Matthew Malcomson * opcode/aarch64.h (AARCH64_FEATURE_SVE2 AARCH64_FEATURE_SVE2_AES, AARCH64_FEATURE_SVE2_BITPERM, AARCH64_FEATURE_SVE2_SM4, AARCH64_FEATURE_SVE2_SHA3): New feature macros. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson * aarch64-tbl.h (aarch64_feature_sve2, aarch64_feature_sve2aes, aarch64_feature_sve2sha3, aarch64_feature_sve2sm4, aarch64_feature_sve2bitperm): New feature sets. (SVE2, SVE2_AES, SVE2_SHA3, SVE2_SM4, SVE2_BITPERM): New macros for feature set addresses. (SVE2_INSN, SVE2_INSNC, SVE2AES_INSN, SVE2SHA3_INSN, SVE2SM4_INSN, SVE2SM4_INSNC, SVE2BITPERM_INSN): New macros. commit dd3189990b1d918b3a9e482ec6e9cc9a8b9e8fe9 Author: Dimitar Dimitrov Date: Thu May 9 10:26:11 2019 +0100 Use the correct names for the init and fini array start symbols in the default Pru linker script. * scripttempl/pru.sc (__init_array_begin, __init_array_begin): Rename. commit b42560a24154570a42360294f44ff14a95d795ec Author: GDB Administrator Date: Thu May 9 00:00:28 2019 +0000 Automatic date update in version.in commit 9cfd2b89bd3fe943a87d5425d0bb0f8b14c85eb6 Author: Tom de Vries Date: Thu May 9 00:41:26 2019 +0200 [gdb/testsuite] Fix gdb.arch/amd64-entry-value-paramref.S The file gdb.arch/amd64-entry-value-paramref.S contains a DIE for function bar: ... DIE29: .uleb128 0x2 # (DIE (0x29) DW_TAG_subprogram) .ascii "bar\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file (gdb.arch/amd64-entry-value-paramref.cc) .byte 0x15 # DW_AT_decl_line .long DIE45 # DW_AT_type .byte 0x1 # DW_AT_inline ... which refers to DIE45: ... DIE45: .uleb128 0x4 # (DIE (0x45) DW_TAG_base_type) .byte 0x4 # DW_AT_byte_size .byte 0x5 # DW_AT_encoding .ascii "int\0" # DW_AT_name ... using a form DW_FORM_ref4: ... .uleb128 0x2 # (abbrev code) .uleb128 0x2e # (TAG: DW_TAG_subprogram) .byte 0x1 # DW_children_yes ... .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) ... However, the DW_FORM_ref4 is a CU-relative reference, while using a label for the value will result in a section-relative value. So, if linked in object files contain dwarf info and are placed in the .debug_info section before the compilation units generated from amd64-entry-value-paramref.S, then the referenced type is at 0x108: ... <1><108>: Abbrev Number: 4 (DW_TAG_base_type) <109> DW_AT_byte_size : 4 <10a> DW_AT_encoding : 5 (signed) <10b> DW_AT_name : int ... but the reference will point to a non-existing DIE at 0x1cf: ... <1>: Abbrev Number: 2 (DW_TAG_subprogram) DW_AT_name : bar DW_AT_decl_file : 1 DW_AT_decl_line : 21 DW_AT_type : <0x1cf> DW_AT_inline : 1 (inlined) ... which happens to cause a GDB internal error described in PR23270 - "GDB internal error: dwarf2read.c:18656: internal-error: could not find partial DIE 0x1b7 in cache". Fix the invalid DWARF by making the reference value CU-relative: ... - .long DIE45 # DW_AT_type + .long DIE45 - .Ldebug_info0 # DW_AT_type ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-09 Tom de Vries * gdb.arch/amd64-entry-value-paramref.S: Make DW_FORM_ref4 references CU-relative. commit 7a1021395e0ef7a92e1653533b753a2221396015 Author: Tom Tromey Date: Thu May 2 16:13:50 2019 -0600 Convert gdbtypes.c to type-safe registry API This changes gdbtypes.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * gdbtypes.c (objfile_type_data): Change type. (objfile_type, _initialize_gdbtypes): Update. commit 924d79e23306bb85fd1dd78564f4779fd3aeec56 Author: Tom Tromey Date: Thu May 2 16:11:22 2019 -0600 Convert dwarf2-frame.c to type-safe registry API This changes dwarf2-frame.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * dwarf2-frame.c (dwarf2_frame_objfile_data): Change type. (dwarf2_frame_find_fde, dwarf2_build_frame_info) (_initialize_dwarf2_frame): Update. commit 4c58e3376da3fedaca81f8c9386f3ccb81261f8a Author: Tom Tromey Date: Thu May 2 16:08:54 2019 -0600 Convert objc-lang.c to type-safe registry API This changes objc-lang.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * objc-lang.c (objc_objfile_data): Change type. (find_methods): Update. (_initialize_objc_lang): Remove. commit d772d2abcc163142fc38655896c4704b06dae0b6 Author: Tom Tromey Date: Wed May 1 15:50:33 2019 -0600 Convert stabsread.c to type-safe registry API This changes stabsread.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * stabsread.c (rs6000_builtin_type_data): Change type. (rs6000_builtin_type, _initialize_stabsread): Update. commit d11d83f47bad5dfc959ac60b3619017ac60bdaf9 Author: Tom Tromey Date: Wed May 1 15:46:15 2019 -0600 Remove mips_pdr_data mips_pdr_data is unused, so this patch removes it. gdb/ChangeLog 2019-05-08 Tom Tromey * mips-tdep.c (mips_pdr_data): Remove. (_initialize_mips_tdep): Update. commit 9a73f0ad6ca2a9c027f30fca3d79fa958784dcbf Author: Tom Tromey Date: Wed May 1 15:44:00 2019 -0600 Convert hppa-tdep.c to type-safe registry API This changes hppa-tdep.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * hppa-tdep.c (hppa_objfile_priv_data): Change type. (hppa_init_objfile_priv_data, read_unwind_info) (find_unwind_entry, _initialize_hppa_tdep): Update. commit 8127a2fab5780f27a1c9998b0be4d8b5c28c1603 Author: Tom Tromey Date: Wed May 1 15:41:13 2019 -0600 Convert elfread.c to type-safe registry API This changes elfread.c to use the type-safe registry API. This also fixes a potential memory leak, by changing the hash table so that it is no longer allocated on an obstack. gdb/ChangeLog 2019-05-08 Tom Tromey * elfread.c (elf_objfile_gnu_ifunc_cache_data): Change type. (elf_gnu_ifunc_record_cache): Update. Don't allocate hash table on obstack. (elf_gnu_ifunc_resolve_by_cache, _initialize_elfread): Update. commit 91d3055d8b77d56cf64f85ace4237a0ccca98a4a Author: Tom Tromey Date: Wed May 1 15:31:10 2019 -0600 Convert mdebugread.c to type-safe registry API This changes mdebugread.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * mdebugread.c (basic_type_data): Change type. (basic_type, _initialize_mdebugread): Update. commit 31930bd34d15dd22c5ef47b46d8bc95a5ec34d0e Author: Tom Tromey Date: Wed May 1 15:28:18 2019 -0600 Add a noop deleter This adds a no-op deleter, which is used in subsequent patches. gdb/ChangeLog 2019-05-08 Tom Tromey * common/gdb_unique_ptr.h (struct noop_deleter): New. commit bdb3ed9e634d3db8164d90dee12bc8b5e2458786 Author: Tom Tromey Date: Wed May 1 15:21:36 2019 -0600 Convert nto-tdep.c to type-safe registry API This changes nto-tdep.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * nto-tdep.c (nto_inferior_data_reg): Change type. (nto_inferior_data): Update. (nto_inferior_data_cleanup, nto_new_inferior_data) (_initialize_nto_tdep): Remove. * nto-tdep.h (struct nto_inferior_data): Add initializers. commit f37b313d5cafbed4e724db4724d1ab567b373be4 Author: Tom Tromey Date: Wed May 1 15:18:31 2019 -0600 Convert ada-lang.c to type-safe registry API This changes ada-lang.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * ada-lang.c (struct ada_inferior_data): Add initializers. (ada_inferior_data): Change type. (ada_inferior_data_cleanup): Remove. (get_ada_inferior_data, ada_inferior_exit) (struct ada_pspace_data): Add initializers, destructor. (ada_pspace_data_handle): Change type. (get_ada_pspace_data): Update. (ada_pspace_data_cleanup): Remove. commit 246994051b6659bf9f4c89b5d5ede86717c5bbef Author: Tom Tromey Date: Wed May 1 15:09:25 2019 -0600 Convert coffread.c to type-safe registry API This changes coffread.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * coffread.c (struct coff_symfile_info): Add initializers. (coff_objfile_data_key): Move lower. Change type. (coff_symfile_init, coff_symfile_read, _initialize_coffread): Update. (coff_free_info): Remove. commit d4e05d2fea956e65618fc12c57fb81e8788ef07d Author: Tom Tromey Date: Wed May 1 15:05:58 2019 -0600 Convert fbsd-tdep.c to type-safe registry API This changes fbsd-tdep.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * fbsd-tdep.c (struct fbsd_pspace_data): Add initializers. (fbsd_pspace_data_handle): Move lower. Change type. (get_fbsd_pspace_data): Update. (fbsd_pspace_data_cleanup): Remove. (_initialize_fbsd_tdep): Update. commit 14ef6690f1f24ad6b2f87bac36607146fbda6ccb Author: Tom Tromey Date: Wed May 1 15:02:27 2019 -0600 Convert ada-tasks.c to type-safe registry API This changes ada-tasks.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * ada-tasks.c (ada_tasks_pspace_data_handle): Change type. (get_ada_tasks_pspace_data): Update. (ada_tasks_pspace_data_cleanup): Remove. (_initialize_tasks): Update. (ada_tasks_inferior_data_handle): Change type. (get_ada_tasks_inferior_data): Update. (ada_tasks_inferior_data_cleanup): Remove. (struct ada_tasks_pspace_data): Add initializers. commit 814cf43a1f16157fcbe2c662f567d064393a0fcb Author: Tom Tromey Date: Tue Apr 30 23:47:54 2019 -0600 Convert probes to type-safe registry API This changes the probes code in elfread.c to use the type-safe registry API. While doing this, I saw that the caller of get_probes owns the probes, so I went through the code and changed the vectors to store unique_ptrs, making the ownership relationship more clear. gdb/ChangeLog 2019-05-08 Tom Tromey * symfile.h (struct sym_probe_fns) : Change type. * symfile-debug.c (debug_sym_get_probes): Change type. * stap-probe.c (handle_stap_probe): (stap_static_probe_ops::get_probes): Change type. * probe.h (class static_probe_ops) : Change type. * probe.c (class any_static_probe_ops) : Change type. (parse_probes_in_pspace): Update. (find_probes_in_objfile, find_probe_by_pc, collect_probes): Update. (any_static_probe_ops::get_probes): Change type. * elfread.c (elfread_data): New typedef. (probe_key): Change type. (elf_get_probes): Likewise. Update. (probe_key_free): Remove. (_initialize_elfread): Update. * dtrace-probe.c (class dtrace_static_probe_ops) : Change type. (dtrace_process_dof_probe, dtrace_process_dof) (dtrace_static_probe_ops::get_probe): Change type. commit 02dc647ed65b1429b9af4986ed467f90fbe0c33b Author: Tom Tromey Date: Tue Apr 30 22:18:10 2019 -0600 Convert xcoffread.c to type-safe registry API This changes xcoffread.c to use the type-safe registry API. It also renames coff_symfile_info to xcoff_symfile_info, to avoid any possible ODR violation. gdb/ChangeLog 2019-05-08 Tom Tromey * xcoffread.c (struct xcoff_symfile_info): Rename from coff_symfile_info. Add initializers. (xcoff_objfile_data_key): Move lower. Change type. (XCOFF_DATA): Rewrite. (xcoff_free_info): Remove. (xcoff_symfile_init, _initialize_xcoffread, read_xcoff_symtab) (read_symbol, read_symbol_lineno, find_linenos, init_stringtab) (xcoff_initial_scan): Update. commit 092324387247f92c66f25a3e1927cf8821bb4943 Author: Tom Tromey Date: Tue Apr 30 21:58:50 2019 -0600 Convert solib-svr4.c to type-safe registry API This changes solib-svr4y.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * solib-svr4.c (struct svr4_info): Add initializers and destructor. : Now an htab_up. (solib_svr4_pspace_data): Change type. (free_probes_table): Simplify. (~svr4_info): Rename from svr4_pspace_data_cleanup. (get_svr4_info, probes_table_htab_remove_objfile_probes) (probes_table_remove_objfile_probes, register_solib_event_probe) (solib_event_probe_at, svr4_update_solib_event_breakpoint) (_initialize_svr4_solib): Update. commit 7b4a314f8b9b50c2289ca6b5d21513052c48730b Author: Tom Tromey Date: Sun Apr 21 12:48:39 2019 -0600 Convert remote.c to type-safe registry API This changes remote.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * remote.c (remote_pspace_data): Change type. (remote_pspace_data_cleanup): Remove. (get_remote_exec_file, set_pspace_remote_exec_file) (_initialize_remote): Update. commit 51d3063a35fad1fa0cd53c167bb5a4325afeea16 Author: Tom Tromey Date: Sun Apr 21 12:45:00 2019 -0600 Convert breakpoint.c to type-safe registry API This changes breakpoint.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * breakpoint.c (breakpoint_objfile_key): Change type. (get_breakpoint_objfile_data): Update. (free_breakpoint_objfile_data): Remove. (_initialize_breakpoint): Update. commit 89fb8848d7f00cabeb56344762860469238c24e1 Author: Tom Tromey Date: Sun Apr 21 12:43:17 2019 -0600 Convert linux-tdep.c to type-safe registry API This changes linux-tdep.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * linux-tdep.c (struct linux_info): Add initializers. (linux_inferior_data): Move. Change type. (invalidate_linux_cache_inf): Update. (linux_inferior_data_cleanup): Remove. (get_linux_inferior_data, _initialize_linux_tdep): Update. commit e9b89e2d01043108283df02261ed718aae705bc8 Author: Tom Tromey Date: Sun Apr 21 12:41:29 2019 -0600 Convert auxv.c to type-safe registry API This changes auxv.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * auxv.c (auxv_inferior_data): Move. Change type. (auxv_inferior_data_cleanup): Remove. (invalidate_auxv_cache_inf): Rewrite. (get_auxv_inferior_data, _initialize_auxv): Update. commit 8c42777cd8e1557ffb29fe9c172edd8cc1de14b7 Author: Tom Tromey Date: Sun Apr 21 12:37:59 2019 -0600 Convert symfile-debug.c to type-safe registry API This changes symfile-debug.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * symfile-debug.c (struct debug_sym_fns_data): Add initializers. (symfile_debug_objfile_data_key): Change type. (symfile_debug_installed, debug_qf_has_symbols) (debug_qf_find_last_source_symtab) (debug_qf_forget_cached_source_info) (debug_qf_map_symtabs_matching_filename, debug_qf_lookup_symbol) (debug_qf_print_stats, debug_qf_dump) (debug_qf_expand_symtabs_for_function) (debug_qf_expand_all_symtabs) (debug_qf_expand_symtabs_with_fullname) (debug_qf_map_matching_symbols) (debug_qf_expand_symtabs_matching) (debug_qf_find_pc_sect_compunit_symtab) (debug_qf_map_symbol_filenames) (debug_qf_find_compunit_symtab_by_address, debug_sym_get_probes) (debug_sym_new_init, debug_sym_init, debug_sym_read) (debug_sym_read_psymbols, debug_sym_finish, debug_sym_offsets) (debug_sym_read_linetable, debug_sym_relocate): Update. (symfile_debug_free_objfile): Remove. (install_symfile_debug_logging, _initialize_symfile_debug): Update. commit 5bfd760d66c816d53a930635a84990c8536bb545 Author: Tom Tromey Date: Sun Apr 21 12:32:47 2019 -0600 Convert dwarf2_per_objfile to type-safe registry API This changes dwarf2_per_objfile to use the type-safe registry API. This also changes dwarf2_per_objfile not to be allocated on an obstack. It seemed clearer to me to simply allocate it on the heap; and I didn't see a drawback from doing so. gdb/ChangeLog 2019-05-08 Tom Tromey * dwarf2read.h (struct dwarf2_per_objfile): Don't inherit from allocate_on_obstack. * dwarf2read.c (dwarf2_objfile_data_key): Change type. (get_dwarf2_per_objfile): Update. (set_dwarf2_per_objfile): Remove. (dwarf2_has_info, dwarf2_get_section_info): Update. (dwarf2_free_objfile): Remove. (_initialize_dwarf2_read): Update. commit e85e19b4d7d9b3b322f27684f8c0a3a9ac0e57ab Author: Tom Tromey Date: Sun Apr 21 09:34:16 2019 -0600 Convert auto-load.c to type-safe registry API This changes auto-load.c to use the type-safe registry API. It also changes a couple of types to "bool", removing uses of "FALSE". gdb/ChangeLog 2019-05-08 Tom Tromey * auto-load.c (struct auto_load_pspace_info): Add destructor and initializers. : Now bool. (auto_load_pspace_data): Change type. (~auto_load_pspace_info): Rename from auto_load_pspace_data_cleanup. (get_auto_load_pspace_data, init_loaded_scripts_info) (clear_section_scripts, maybe_print_unsupported_script_warning) (maybe_print_script_not_found_warning, _initialize_auto_load): Update. commit f6aa7436201194e80e8d7761e6d88ecf0ec1e327 Author: Tom Tromey Date: Sun Apr 21 09:29:13 2019 -0600 Convert objfiles.c to type-safe registry API This changes objfiles.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * objfiles.c (objfile_pspace_info): Add destructor and initializers. (objfiles_pspace_data): Change type. (~objfile_pspace_info): Rename from objfiles_pspace_data_cleanup. (get_objfile_pspace_data): Update. (objfiles_bfd_data): Change type. (get_objfile_bfd_data): Update. (objfile_bfd_data_free, _initialize_objfiles): Remove. commit 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b Author: Tom Tromey Date: Sun Apr 21 09:25:07 2019 -0600 Convert break-catch-syscall.c to type-safe registry API This changes break-catch-syscall.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * break-catch-syscall.c (catch_syscall_inferior_data): Move. Change type. (get_catch_syscall_inferior_data): Update. (catch_syscall_inferior_data_cleanup): Remove. (_initialize_break_catch_syscall): Update. commit 6509b8ebfb19769d726c16eb3a8967ac6784f621 Author: Tom Tromey Date: Sun Apr 21 09:20:20 2019 -0600 Convert inflow to type-safe registry API This changes inflow.c to use the type-safe registry API. This fixes a latent bug in swap_terminal_info, which previously said: terminal_info *info_a = (terminal_info *) inferior_data (a, inflow_inferior_data); terminal_info *info_b = (terminal_info *) inferior_data (a, inflow_inferior_data); ... both of which examine 'a'. gdb/ChangeLog 2019-05-08 Tom Tromey * inflow.c (struct terminal_info): Add destructor and initializers. (inflow_inferior_data): Change type. (~terminal_info): Rename from inflow_inferior_data_cleanup. (get_inflow_inferior_data, inflow_inferior_exit) (swap_terminal_info, _initialize_inflow): Update. commit 35632941c90f406f69512c9559ae7ba561f7eee8 Author: Tom Tromey Date: Sun Apr 21 09:12:47 2019 -0600 Convert target dcache to type-safe registry API This changes the target dcache to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * target-dcache.c (target_dcache_cleanup): Remove. (target_dcache_aspace_key): Change type. (target_dcache_init_p, target_dcache_invalidate) (target_dcache_get, target_dcache_get_or_init) (_initialize_target_dcache): Update. * dcache.h (struct dcache_deleter): New. commit 3017b94d60f1e8929886be6992547973ad354f4c Author: Tom Tromey Date: Tue Apr 9 21:46:16 2019 -0600 Convert symbol_cache to type-safe registry API This changes the symbol_cache to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * symtab.c (struct symbol_cache): Add destructor and initializers. (symbol_cache_key): Move. Change type. (make_symbol_cache, free_symbol_cache): Remove. (get_symbol_cache): Update. (symbol_cache_cleanup): Remove. (ALL_PSPACES, symbol_cache_flush) (maintenance_print_symbol_cache) (maintenance_print_symbol_cache_statistics, _initialize_symtab): Update. commit a32ad8c55c5c6bcdbc6773b6b825c4505fd44c16 Author: Tom Tromey Date: Tue Apr 9 20:26:09 2019 -0600 Convert main_info to type-safe registry API This changes main_info to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * symtab.c (struct main_info): Add destructor and initializers. (main_progspace_key): Move. Change type. (get_main_info): Update. (main_info_cleanup): Remove. (_initialize_symtab): Update. commit 5f6e90a0cec8c269634ba0bff3c9e549a903c39a Author: Tom Tromey Date: Tue Apr 9 20:21:06 2019 -0600 Add a type-safe C++ interface to a registry This changes DECLARE_REGISTRY to add a type-safe interface. This interface is a C++ class that handles the details of registering a key, and provides various useful methods, including policy-based cleanup. gdb/ChangeLog 2019-05-08 Tom Tromey * registry.h (DECLARE_REGISTRY): Define the _key class. commit 1bd0c6e4964f68523794aded05aa4d184db44d48 Author: Andrew Burgess Date: Wed May 8 20:59:50 2019 +0100 gdb: Merge two 'New commands' sections in NEWS file Commit 2e62ab400ff9 added a second 'New commands' section to the NEWS file, this commit merges the two together. gdb/ChangeLog: * NEWS: Merge two 'New commands' sections. commit 2228ef7700e81bfedbffe352f3efa3716224cdbe Author: Xavier Roirand Date: Wed May 8 12:55:44 2019 -0400 When debugging a mixed Ada/C program using this scenario: - set print frame-arguements all - an Ada function named pck.call_me calls a C function named break_me - you put a breakpoint in break_me and the program reaches this breakpoint. Now display the backtrace: (gdb) bt #0 break_me () at [...] #1 0x000000000040243e in pck.call_me ( s={P_ARRAY = 0x7fffffffe21c, P_BOUNDS = 0x41e6e8}) at [...] whereas we should expect: (gdb) bt #0 break_me () at [...] #1 0x000000000040243e in pck.call_me (s="test") at [...] The problem is that GDB prints the S parameter in the pck.call_me Ada function using the current language, so the C one, because the program is stopped in a C function, whereas it should use the pck.call_me frame one. This behavior is ok when user manually changes the language but it's not the right one when language is auto. This patch fixes this problem so now when using auto language, all Ada frame arguments are printed using Ada like syntax when the frame is part of Ada code, even if the program is stopped in a frame using a different language. If the user explicitly sets a language (using "set language ...") then no change here, all the Ada frame arguments are printed using this language. gdb/ChangeLog: * ada-valprint.c (ada_val_print_gnat_array): Remove language parameter and use Ada language definition instead. (ada_val_print_ptr): Remove unused language parameter. (ada_val_print_num): Remove language parameter and use Ada language definition instead. (ada_val_print_enum, ada_val_print_flt): Remove unused language parameter. (ada_val_print_struct_union, ada_val_print_ref): Remove language parameter and use Ada language definition instead. (ada_val_print_1): Update all ada_val_print_xxx calls. Remove language parameter. (ada_val_print): Update ada_val_print_1 call. gdb/testsuite/ChangeLog: * gdb.ada/frame_arg_lang.exp: New testcase. * gdb.ada/frame_arg_lang/bla.adb: New file. * gdb.ada/frame_arg_lang/pck.ads: New file. * gdb.ada/frame_arg_lang/pck.adb: New file. * gdb.ada/frame_arg_lang/foo.c: New file. Tested on x86_64-linux, no regressions. commit 60fcc1c3d0d8f1e271b19210b1707b4aa589f273 Author: Tom Tromey Date: Wed May 1 12:37:46 2019 -0600 Change some remote.c globals to "static" I noticed a three globals in remote.c that could be static. This patch makes this change. gdb/ChangeLog 2019-05-08 Tom Tromey * remote.c (remote_hw_watchpoint_limit) (remote_hw_watchpoint_length_limit, remote_hw_breakpoint_limit): Now static. commit ed2b7c1703246eef1ce6b393ced99fe267cbeb7b Author: Tom Tromey Date: Wed May 1 12:35:20 2019 -0600 Move "watchdog" to remote.c The "watchdog" global is only used in remote.c, so this patch moves it there and makes it static. gdb/ChangeLog 2019-05-08 Tom Tromey * maint.c (_initialize_maint_cmds): Move initialization code to remote.c. (watchdog, show_watchdog): Move to remote.c. * remote.c (watchdog, show_watchdog): Move from maint.c. Make "watchdog" static. (_initialize_remote): Move initialization code from maint.c. * defs.h (watchdog): Don't declare. commit b0be6c912f9e901a87740c72f18be1e54ad5267d Author: Tom Tromey Date: Wed May 1 12:28:45 2019 -0600 Move interpreter_p declaration to main.h This moves the interpreter_p declaration from defs.h to main.h. I think this makes more sense, as it is defined in main.c. Also, this declaration was in the wrong place -- between a comment and the things the comment described. gdb/ChangeLog 2019-05-08 Tom Tromey * tui/tui-interp.c: Include main.h. * interps.c: Include main.h. * main.h (interpreter_p): Declare. * defs.h (interpreter_p): Don't declare. commit 587ee17bd492a324c927437fb561b99b274e1d8e Author: Tom Tromey Date: Wed May 1 12:26:34 2019 -0600 Don't declare read_unsigned_leb128 in defs.h I noticed that read_unsigned_leb128 is declared in defs.h. There's no reason this should be here, so this patch moves it to dwarf2read.h. gdb/ChangeLog 2019-05-08 Tom Tromey * dwarf2loc.c: Include dwarf2read.h. * defs.h (read_unsigned_leb128): Don't declare. * dwarf2read.h (read_unsigned_leb128): Declare. commit ca1df239078318425cf8038995bf02f1b9ab6e50 Author: Tom Tromey Date: Wed May 8 10:35:09 2019 -0600 Fix build problem in fputs_maybe_filtered When merging commit 99f20f ("Fix style bug when paging") to master, I had to make some changes to get it to compile again. Unfortunately, I must not have added these to the index at the correct time, because they were not committed. This patch fixes the problem. gdb/ChangeLog 2019-05-08 Tom Tromey * utils.c (fputs_maybe_filtered): Call can_emit_style_escape as a method. commit 99f20f08682ecc7be882774ff78409530802d000 Author: Tom Tromey Date: Wed May 1 11:13:31 2019 -0600 Fix style bug when paging Philippe pointed out a styling bug that would occur in some conditions when paging: https://sourceware.org/ml/gdb-patches/2019-04/msg00101.html I was finally able to reproduce this, and this patch fixes the bug. The problem occurred when text overflowed the line, causing a pagination prompt, but when no wrap column had been set. In this case, the current style was reset to show the prompt, but then not reset back to the previously applied style before emitting the rest of the line. The fix is to record the applied style in this case, and re-apply it afterward -- but only if the pager prompt was emitted, something that the existing style.exp pointed out on the first, more naive, version of the patch. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-08 Tom Tromey * utils.c (fputs_maybe_filtered): Reset style after paging, even when no wrap column is set. commit 80e55b132940813fa454da2592a31db6c8af85f1 Author: Tom Tromey Date: Thu Apr 25 12:14:58 2019 -0600 Correctly handle non-C-style arrays in c_get_string A user here noticed that the Python Value.string method did not work for Ada arrays. I tracked this down to an oddity in value_as_address -- namely, it calls coerce_array, but that function will not force array coercion when the language has c_style_arrays=false, as Ada does. This patch fixes the problem by changing c_get_string so that arrays take the "in GDB's memory" branch. The actual patch is somewhat more complicated than you might think, because the caller can request more array elements than the type allows. This is normal when the type is using the C struct hack. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-08 Tom Tromey * c-lang.c (c_get_string): Handle non-C-style arrays. gdb/testsuite/ChangeLog 2019-05-08 Tom Tromey * gdb.python/py-value.exp (test_value_in_inferior): Add Ada test. commit 9d3421afbb9f3cfc8e67366ba75ea12ed8f732a3 Author: Tom Tromey Date: Mon Apr 29 09:55:56 2019 -0600 Change ptype/o to print bit offset Consider this short C example: struct inner { unsigned x; unsigned y : 3; unsigned z : 3; }; struct outer { unsigned char o : 3; struct inner i __attribute__ ((packed)); }; When I use "ptype/o" on this, I get: (gdb) ptype/o struct outer /* offset | size */ type = struct outer { /* 0: 5 | 1 */ unsigned char o : 3; /* XXX 5-bit hole */ /* 1 | 8 */ struct inner { /* 1 | 4 */ unsigned int x; /* 5:29 | 4 */ unsigned int y : 3; /* 5:26 | 4 */ unsigned int z : 3; /* XXX 2-bit padding */ /* XXX 3-byte padding */ /* total size (bytes): 8 */ } i; /* total size (bytes): 9 */ } In the location of "o" ("0: 5"), the "5" means "there are 5 bits left relative to the size of the underlying type. I find this very difficult to follow. On irc, Sergio said that this choice came because it is what pahole does. However, I think it's not very useful, and maybe is just an artifact of the way that DW_AT_bit_offset was defined in DWARF 3. This patch changes ptype/o to print the offset of a bitfield in a more natural way, that is, using the bit number according to the platform's bit numbering. With this patch, the output is now: (gdb) ptype/o struct outer /* offset | size */ type = struct outer { /* 0: 0 | 1 */ unsigned char o : 3; /* XXX 5-bit hole */ /* 1 | 8 */ struct inner { /* 1 | 4 */ unsigned int x; /* 5: 0 | 4 */ unsigned int y : 3; /* 5: 3 | 4 */ unsigned int z : 3; /* XXX 2-bit padding */ /* XXX 3-byte padding */ /* total size (bytes): 8 */ } i; /* total size (bytes): 9 */ } This is better, IMO, because now the "offset" of a bitfield is consistent with the offset of an ordinary member, referring to its offset from the start of the structure. gdb/ChangeLog 2019-05-08 Tom Tromey * typeprint.c (print_offset_data::update): Print the bit offset, not the number of bits remaining. gdb/doc/ChangeLog 2019-05-08 Tom Tromey * gdb.texinfo (Symbols): Document change to ptype/o. gdb/testsuite/ChangeLog 2019-05-08 Tom Tromey * gdb.base/ptype-offsets.exp: Update tests. commit 844333e24966817fe4d622494a75c8ae0acdb91f Author: Tom Tromey Date: Mon Apr 29 12:11:52 2019 -0600 Fix ptype/o comment formatting I noticed that ptype/o will print: /* 3: 3 | 1 */ signed char a4 : 2; /* XXX 3-bit hole */ That is, "*/" at the end of the "hole" message does not line up with the other comment ends. I thought it would be a bit nicer if this did line up, so I fixed it. Then, to my surprise, I found that I could not make ptype-offsets.exp fail. I still am not sure why it doesn't fail, but changing the tests to use string_to_regexp and changing the quoting helped. This in turn showed that some of the existing test cases were wrong, so I've also updated them here. gdb/ChangeLog 2019-05-08 Tom Tromey * typeprint.c (print_offset_data::maybe_print_hole): Add extra padding at end of comment. gdb/testsuite/ChangeLog 2019-05-08 Tom Tromey * gdb.base/ptype-offsets.exp: Use string_to_regexp. Fix test cases. * gdb.base/ptype-offsets.cc (struct abc) : Now "short". commit 988915ee7b880ff059f849893b71118d9bd2c4fc Author: Tom Tromey Date: Wed Apr 24 12:50:04 2019 -0600 Fix VLA printing for Ada While looking at a different Ada problem, I found that printing a record containing a VLA did not work properly. I tracked the problem down to dwarf2_evaluate_property trying, and failing, to compare two types that differed only in qualifiers. This patch changes dwarf2_evaluate_property to ignore qualifiers when comparing types. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-08 Tom Tromey * dwarf2loc.c (dwarf2_evaluate_property) : Compare main types. gdb/testsuite/ChangeLog 2019-05-08 Tom Tromey * gdb.ada/vla.exp: New file. * gdb.ada/vla/vla.adb: New file. commit 2379f9c475505ecedc97607b39af7184bd67aa88 Author: Faraz Shahbazker Date: Fri May 3 18:21:49 2019 -0700 Sign-extend start and stop address inputs to objdump For targets that treat addresses as signed (MIPS/SH64), user-specified start/stop address limits cannot be compared directly to section VMAs. We must sign-extend user-specified 32-bit address limits which have bit 31 set for such targets. binutils/ * objdump.c (sign_extend_address): New function. (dump_bfd): Sign-extend user-specified start/stop addresses for targets that need it. * testsuite/binutils-all/objdump.exp: Add tests for objdump with start and stop addresses in higher address ranges. commit 46752c37b06c83a8cbf6be887beac4092d5e3505 Author: Pekka Sepp?nen Date: Wed May 8 16:54:16 2019 +0100 Fix compile time warning when building the linker in a MinGw32 environment using gcc 8. PR 24536 * ldbuildid.c (generate_build_id): Cast return value from GetProcAddress in order to avoid a compile time warning. commit 79299211a1a9a701f146620d419da6ee0175798c Author: Nick Clifton Date: Wed May 8 14:51:32 2019 +0100 Do not force the m68k-elf linker to fail if it encoutners a non-ELF format file. PR 24523 * elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Return TRUE rather than FALSE if encountering a non-ELF file. commit 762172a4dc4c1a7c25b3ef18f32b6e378cac6487 Author: Alan Modra Date: Wed May 8 09:26:56 2019 +0930 gas/elf dwarf2 tests Make them work for tile, by using ".quad 0" as the simulated instruction and doubling size of aligns. The larger aligns tripped over riscv alignment handling, fixed by adding -mno-relax there. Also disable link-relax for avr, pru and xtensa, allowing these targets to pass these tests. With link-time relaxation enabled, these targets emit alignment relocations rather than aligning at assembly time. This means the assembler doesn't see a change in PC when it is expected over an alignment frag and thus view numbers are calculated incorrectly. * testsuite/gas/elf/dwarf2-1.s, * testsuite/gas/elf/dwarf2-2.s, * testsuite/gas/elf/dwarf2-5.s, * testsuite/gas/elf/dwarf2-7.s, * testsuite/gas/elf/dwarf2-8.s, * testsuite/gas/elf/dwarf2-9.s, * testsuite/gas/elf/dwarf2-10.s, * testsuite/gas/elf/dwarf2-11.s, * testsuite/gas/elf/dwarf2-12.s, * testsuite/gas/elf/dwarf2-13.s, * testsuite/gas/elf/dwarf2-14.s, * testsuite/gas/elf/dwarf2-15.s, * testsuite/gas/elf/dwarf2-16.s, * testsuite/gas/elf/dwarf2-17.s, * testsuite/gas/elf/dwarf2-18.s, * testsuite/gas/elf/dwarf2-19.s: Double size of align and simulated instructions. * testsuite/gas/elf/dwarf2-1.d, * testsuite/gas/elf/dwarf2-2.d, * testsuite/gas/elf/dwarf2-5.d, * testsuite/gas/elf/dwarf2-7.d, * testsuite/gas/elf/dwarf2-8.d, * testsuite/gas/elf/dwarf2-9.d, * testsuite/gas/elf/dwarf2-10.d, * testsuite/gas/elf/dwarf2-11.d, * testsuite/gas/elf/dwarf2-12.d, * testsuite/gas/elf/dwarf2-13.d, * testsuite/gas/elf/dwarf2-14.d, * testsuite/gas/elf/dwarf2-15.d, * testsuite/gas/elf/dwarf2-16.d, * testsuite/gas/elf/dwarf2-17.d, * testsuite/gas/elf/dwarf2-18.d, * testsuite/gas/elf/dwarf2-19.d: Use xfail rather than notarget. Remove avr, pru, tile, xtensa from xfails. Update expected output. * testsuite/gas/elf/elf.exp: Sort targets. (dump_opts): Pass {as -mno-relax} for riscv, {as -mno-link-relax} for avr and pru, and {as --no-link-relax} for xtensa to dwarf tests. * testsuite/gas/elf/section2.e-miwmmxt: Delete unused file. commit 9632a526cae4cb10276e39d8c4bd1f649d13f8e8 Author: Alan Modra Date: Wed May 8 09:26:36 2019 +0930 xtensa ignores option --no-link-relax md_begin happens after md_parse_option. * config/tc-xtensa.c (opt_linkrelax): New variable. (md_parse_option): Set it here. (md_begin): Copy opt_linkrelax to linkrelax. commit 9420801e573e77f0dd522150932eb27199052a04 Author: Alan Modra Date: Wed May 8 09:25:25 2019 +0930 PR24520, gprof fails to read compressed debug data PR 24520 * corefile.c (core_init): Set BFD_DECOMPRESS. commit c91f298b52766b41e9612fabf93f249cd179bdd7 Author: GDB Administrator Date: Wed May 8 00:00:21 2019 +0000 Automatic date update in version.in commit b654832d0d514a9fe4bf802751df1a7093666c93 Author: Alexandre Oliva Date: Tue May 7 16:34:19 2019 -0300 xfail locview tests on mep that use complex relocs for view numbers Expressions that compute view numbers that aren't simplified early enough to a constant end up being selected for representation as complex relocations, enabled on mep-* targets. It would be possible to recognize such expressions, that can resolve to constants, but this problem was hit before, in preexisting tests, so xfail the new hits similarly. The new hits were caused by yesterday's patch to dwarf2dbg.c: views in the beginning of subsections are now computed later, based on the final views or previous subsections in the same section. for gas/ChangeLog * testsuite/gas/elf/dwarf2-18.d: Xfail mep-*. * testsuite/gas/elf/dwarf2-19.d: Likewise. commit 7bd55dac80c2faced875119b60acfb51741e397e Author: Tom de Vries Date: Tue May 7 11:52:17 2019 +0200 [gdb/testsuite] Fix ls_host return in index-cache.exp When adding a debug print here in index-cache.exp: ... proc_with_prefix test_cache_disabled { cache_dir } { lassign [ls_host $cache_dir] ret files_before + puts "before: '$files_before'" + exit ... we have: ... files_before: '' ... When further adding: ... proc_with_prefix test_cache_disabled { cache_dir } { + exec touch $cache_dir/foo.1 $cache_dir/foo.2 $cache_dir/foo.3 ... we have: ... files_before: 'foo.1' ... while we're expecting file_before to contain foo.[123]. Fix this by making the return statement in ls_host return a list rather than a string (in accordance with the ls_host documentation), after which we have: ... files_before: 'foo.1 foo.2 foo.3' ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries * gdb.base/index-cache.exp (ls_host): Fix return statement. commit 75f06e9dc59d3f810e2afe2f47afbcb74204ef61 Author: Tom de Vries Date: Tue May 7 10:58:57 2019 +0200 [gdb/testsuite] Fix .debug_aranges in watch-loc.c When running gdb.dlang/watch-loc.exp with target board cc-with-debug-names, we run into: ... FAIL: gdb.dlang/watch-loc.exp: disassemble _Dmain (GDB internal error) ... in more detail: ... (gdb) disassemble _Dmain gdb/dwarf2read.c:5293: internal-error: \ compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \ bound_minimal_symbol, CORE_ADDR, obj_section*, int): \ Assertion `result != NULL' failed. ... The problem is that the .debug_aranges section in watch-loc.c contains a debug_info_offset which is set to 0: ... asm ( " .pushsection .debug_aranges,\"\",%progbits\n" " .4byte .Laranges_end - .Laranges_start\n" ".Laranges_start:\n" " .2byte 0x2\n" " .4byte 0\n" ... while the compilation unit at offset 0 in the .debug_section in the executable is in fact not the compilation unit generated from watch-loc-dw.S. [ Note: this is a non-trivial test-case. The file watch-loc-dw.S contains a .debug_info section, but not an .debug_aranges section or any actual code. The file watch-loc.c contains code and a .debug_aranges section, but no other debug section. So, the intent for the .debug_aranges section in watch-loc.c is to refer to a compilation unit in the .debug_info section in watch-loc-dw.S. ] This happens when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation units generated from watch-loc.c and watch-loc-dw.S. Fix this by defining the debug_info_offset field using a label .Lcu1_begin that defines the start of an empty .debug_section compilation unit: ... asm ( + " .pushsection .debug_info,\"\",%progbits\n" + ".Lcu1_begin:" + " .popsection\n" " .pushsection .debug_aranges,\"\",%progbits\n" " .4byte .Laranges_end - .Laranges_start \n" ".Laranges_start:\n" " .2byte 0x2\n" - " .4byte 0\n" + " .4byte .Lcu1_begin\n" ... which during linking merges with the start of the .debug_info section of watch-loc-dw.S. Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries PR testsuite/24522 * gdb.dlang/watch-loc.c: Fix debug_info_offset in .debug_aranges section. commit 77e7aaa4bd980fb96244b874bc867e20b399fe60 Author: Tom de Vries Date: Tue May 7 10:58:57 2019 +0200 [gdb/testsuite] Fix .debug_aranges in dw2-case-insensitive-debug.S When running gdb.dwarf2/dw2-case-insensitive.exp with target board cc-with-debug-names, we run into: ... FAIL: gdb.dwarf2/dw2-case-insensitive.exp: regexp case-sensitive off \ (GDB internal error) ... in more detail: ... (gdb) info functions fUnC_lang gdb/dwarf2read.c:5293: internal-error: \ compunit_symtab* dw2_find_pc_sect_compunit_symtab(objfile*, \ bound_minimal_symbol, CORE_ADDR, obj_section*, int): \ Assertion `result != NULL' failed. ... The problem is that the .debug_aranges section in dw2-case-insensitive-debug.S contains a debug_info_offset which is set to 0: ... .section .debug_aranges,"",@progbits .4byte .Laranges_end - .Laranges_start .Laranges_start: .2byte 0x2 .4byte 0 ... while the compilation unit at offset 0 in the .debug_section of the executable is in fact not the compilation unit generated from dw2-case-insensitive-debug.S. This happens when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation unit generated from dw2-case-insensitive-debug.S. Fix this by defining the debug_info_offset field using the label .Lcu1_begin that defines the start of the compilation unit: ... - .4byte 0 + .4byte .Lcu1_begin ... Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries PR testsuite/24522 * gdb.dwarf2/dw2-case-insensitive-debug.S: Fix debug_info_offset in .debug_aranges section. commit 456ba0fa36d17648a6cf32d1561c8c5802103153 Author: Tom de Vries Date: Tue May 7 10:38:36 2019 +0200 [gdb/testsuite] Fix handling of DW_FORM_ref_addr in dwarf assembler When running gdb.dwarf2/multidictionary.exp with target board cc-with-dwz and current dwz, we run into a dwz abort: ... gdb compile failed, gdb/contrib/cc-with-tweaks.sh: line 188: 11484 Aborted \ (core dumped) $DWZ "$output_file" > /dev/null 2>&1 UNTESTED: gdb.dwarf2/multidictionary.exp: multidictionary.exp ... The dwz abort (PR dwz/24169) is caused by an invalid DW_FORM_ref_addr in the multidictionary binary. The multidictionary binary is build from multidictionary.S which is generated using the dwarf assembler, and multidictionary.S contains dwarf for 3 compilation units. In multidictionary0.o (generated from multidictionary.S), we find a concrete formal parameter DIE: ... <2>: Abbrev Number: 4 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <0xa6> ... referring to an abstract formal parameter DIE at 0xa6: ... <2>: Abbrev Number: 8 (DW_TAG_formal_parameter) DW_AT_name : msg DW_AT_type : <0x92> ... but in the multidictionary binary the concrete formal parameter DIE is still referring to 0xa6: ... <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter) <1a4> DW_AT_abstract_origin: <0xa6> ... while the abstract formal parameter DIE has moved to 0x16d: ... <2><16d>: Abbrev Number: 8 (DW_TAG_formal_parameter) <16e> DW_AT_name : msg <172> DW_AT_type : <0x159> ... The concrete formal parameter DIE is specified in multidictionary.S like this: ... .Llabel21: .uleb128 4 .4byte .Llabel17 - .Lcu1_begin ... The problem is that the .Lcu1_begin label is assumed to mark the start of the .debug_info section in the executable, but in fact it marks the start of the first compilation unit from multidictionary.S in the executable. Usually these two entities are the same, but they are not when linked in object files contain dwarf info and are placed in the .debug_info section before the compilation units generated from multidictionary.S. Fix this in the dwarf assembler by generating instead the label itself: ... .Llabel21: .uleb128 4 .4byte .Llabel17 ... resulting in a relocation in the object file: ... Offset Info Type Sym. Value Sym. Name + Addend 0000000000dd 00040000000a R_X86_64_32 0000000000000000 .debug_info + a6 ... and resulting in the correct offset in the executable: ... <2><1a3>: Abbrev Number: 4 (DW_TAG_formal_parameter) <1a4> DW_AT_abstract_origin: <0x16d> ... Tested on x86_64-linux with native and cc-with-dwz. gdb/testsuite/ChangeLog: 2019-05-07 Tom de Vries PR testsuite/24159 * lib/dwarf.exp: Fix handling of DW_FORM_ref_addr. commit 0f1309c8f7530b31ecc73c55e86572ff72256947 Author: Alan Modra Date: Mon May 6 21:23:45 2019 +0930 Tidy use_complex_relocs_for Since I was looking at this I decided to fix the formatting, and used an old C switch statements trick to factor out common code. * symbols.c (use_complex_relocs_for): Formatting. Factor out X_add_symbol tests. commit 26bfd82367d6ffeb1a61495ac445542e757df5b2 Author: Tom Tromey Date: Mon May 6 19:54:53 2019 -0600 Fix scoped_mmap includes I noticed that scoped_mmap.h included config.h, and that scoped_mmap.c included defs.h. This patch fixes both of these problems. Tested by the buildbot. gdb/ChangeLog 2019-05-06 Tom Tromey * common/scoped_mmap.c: Include common-defs.h. * common/scoped_mmap.h: Don't include config.h. commit c0a57f1536fceabe89c4e8100c7170f6dd8bab38 Author: GDB Administrator Date: Tue May 7 00:00:24 2019 +0000 Automatic date update in version.in commit e90a813d9660bb9d951963fd7ae03ce004a52ad6 Author: Kevin Buettner Date: Mon May 6 10:28:44 2019 -0700 Fix regression caused by recently added syscall restart code This line of code... *(int64_t *) ptr = *(int32_t *) ptr; ...in linux-x86-low.c is not needed (and does not work correctly) within a 32-bit executable. I added an __x86_64__ ifdef (which is used extensively elsewhere in the file for like purposes) to prevent this code from being included in 32-bit builds. It fixes the following regressions when running on native i686-pc-linux-gnu: FAIL: gdb.server/abspath.exp: continue to main FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=auto: continue to main FAIL: gdb.server/connect-without-multi-process.exp: multiprocess=off: continue to main FAIL: gdb.server/ext-restart.exp: restart: run to main FAIL: gdb.server/ext-restart.exp: run to main FAIL: gdb.server/ext-run.exp: continue to main FAIL: gdb.server/ext-wrapper.exp: print d FAIL: gdb.server/ext-wrapper.exp: restart: print d FAIL: gdb.server/ext-wrapper.exp: restart: run to marker FAIL: gdb.server/ext-wrapper.exp: run to marker FAIL: gdb.server/no-thread-db.exp: continue to breakpoint: after tls assignment FAIL: gdb.server/reconnect-ctrl-c.exp: first: stop with control-c FAIL: gdb.server/reconnect-ctrl-c.exp: second: stop with control-c FAIL: gdb.server/run-without-local-binary.exp: run test program until the end FAIL: gdb.server/server-kill.exp: continue to breakpoint: after server_pid assignment FAIL: gdb.server/server-kill.exp: tstatus FAIL: gdb.server/server-run.exp: continue to main gdb/gdbserver/ChangeLog: * linux-x86-low.c (x86_fill_gregset): Don't compile 64-bit sign extension code on 32-bit builds. commit 41cee0897b670168e0d6f455c9bc45c73f8023df Author: Faraz Shahbazker Date: Sun Apr 28 18:21:00 2019 -0700 Add load-link, store-conditional paired EVA instructions Add paired load-link and store-conditional instructions to the EVA ASE for MIPS32R6[1]. These instructions are optional within the EVA ASE. Their presence is indicated by the XNP bit in the Config5 register. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS32 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 230-231, pp. 357-360. gas/ * config/tc-mips.c (mips_set_ase): Handle ASE_EVA_R6. (macro) : New cases. (mips_after_parse_args): Translate EVA to EVA_R6. * testsuite/gas/mips/ase-errors-1.s: Add new instructions. * testsuite/gas/mips/eva.s: Likewise. * testsuite/gas/mips/ase-errors-1.l: Check errors for new instructions. * testsuite/gas/mips/mipsr6@eva.d: Check new test cases. include/ * opcode/mips.h (ASE_EVA_R6): New macro. (M_LLWPE_AB, M_SCWPE_AB): New enum values. opcodes/ * mips-dis.c (mips_calculate_combination_ases): Add ISA argument and set ASE_EVA_R6 appropriately. (set_default_mips_dis_options): Pass ISA to above. (parse_mips_dis_option): Likewise. * mips-opc.c (EVAR6): New macro. (mips_builtin_opcodes): Add llwpe, scwpe. Derived from patch authored by Andrew Bennett commit be0d3bbbcdbdba83f74d8ad1be6c4c759255af0b Author: Alan Modra Date: Mon May 6 14:38:24 2019 +0930 sym->sy_value is not valid for struct local_symbol Fixes this mep-elf error: gas/elf/dwarf2-19.s: Error: Unknown expression operator (enum 0) gas/elf/dwarf2-19.s: Error: cannot convert expression symbol .L2 to complex relocation * symbols.c (symbol_relc_make_sym): Do not access sym->sy_value directly. commit 5a56d6a65f8406f1aadb4569fbb8ff00a6e92d02 Author: Tom de Vries Date: Mon May 6 08:42:24 2019 +0200 [gdb/testsuite] Fix index-cache.exp with cc-with-{gdb-index,debug-names} In gdb.base/index-cache.exp, handle the case that binfile contains either a .gdb_index or .debug_names index section. Tested on x86_64-linux with native, cc-with-gdb-index and cc-with-debug-names. gdb/testsuite/ChangeLog: 2019-05-06 Tom de Vries * lib/gdb.exp (exec_has_index_section): New proc. * gdb.base/index-cache.exp: Handle case that binfile contains an index section. commit e1cbf07ac4f8c8525dfadaa19bfb2997a2bfaad9 Author: Alan Modra Date: Mon May 6 09:13:53 2019 +0930 PicoJava weak undefined symbols This fixes the recently added ld-elf/pr24511 test failure on pj-elf. Incidentally, pj-elf has failed its gas "pj" test since 2005-12-22 (git commit 54758c3e39). I think that makes the target ripe for obsolescence. bfd/ * elf32-pj.c (pj_elf_reloc): Don't report undefined weak as an error. ld/ * testsuite/ld-undefined/weak-undef.exp: Don't xfail pj. commit 334d91b9407c5f9f37f224b0f43551c01964eff1 Author: Alan Modra Date: Mon May 6 08:43:32 2019 +0930 PowerPC reloc symbols that shouldn't be adjusted GOT and PLT relocs shouldn't have their symbols replaced with a section symbol plus added. Nor should the HIGHA TLS relocations, which failed to be caught by the range test in ppc_fix_adjustable. bfd/ * reloc.c (BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA), (BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA): Sort before BFD_RELOC_PPC64_DTPREL16_HIGHESTA entry. gas/ * config/tc-ppc.c (ppc_fix_adjustable): Exclude all GOT and PLT relocs, and VLE sdarel relocs. * testsuite/gas/ppc/power4.d: Adjust. commit 62e6b7b3b3c6f2fffe9f5863ddebf430533b79f0 Author: Alexandre Oliva Date: Sun May 5 23:07:20 2019 -0300 [LVu] base subseg head view on prev subseg's tail Location views at borders between subsegments/subsections in the same segment/section are computed as if each new subsegment/subsection started with a forced view reset to zero, but the line number program does not introduce resets that are not explicitly requested, so if a subsegment ends at the same address another starts, the line number program will have a continuity of views at the border address, whereas the initial view number label in the latter subsegment will be miscomputed as zero. This patch delays the assignment of view expressions at subsegment heads to the time of chaining the frags of subsegments into a single segment, so that they are set based on the view at the end of the previous subsegment in the same segment. The line number program created for the test program had an unnecessary DW_LNS_advance_pc at the end. This patch also arranges for us not to emit it. for gas/ChangeLog * dwarf2dbg.c (set_or_check_view): Skip heads when assigning views of prior locs. (dwarf2_gen_line_info_1): Skip heads. (size_inc_line_addr, emit_inc_line_addr): Drop DW_LNS_advance_pc for zero addr delta. (dwarf2_finish): Assign views for heads of segments. * testsuite/gas/elf/dwarf2-19.d: New. * testsuite/gas/elf/dwarf2-19.s: New. * testsuite/gas/elf/elf.exp: Test it. commit bd1efd7d2111e37e2471facca117650a213f332e Author: GDB Administrator Date: Mon May 6 00:00:14 2019 +0000 Automatic date update in version.in commit 1231b7b8255b54993c0afcb0ea40a5a096d67e90 Author: GDB Administrator Date: Sun May 5 00:00:56 2019 +0000 Automatic date update in version.in commit 89055eaa122ceb99ae20bfe10d028da2ca7fee83 Author: Tom Tromey Date: Mon Jul 23 19:51:58 2018 -0600 Remove a VEC from aarch64-tdep.c This removes a VEC from aarch64-tdep.c, replacing it with a std::vector. gdb/ChangeLog 2019-05-04 Tom Tromey * aarch64-tdep.c (stack_item_t): Remove typedef and DEF_VEC. (struct aarch64_call_info): Add initializers. : Now a std::vector. (pass_on_stack, aarch64_push_dummy_call): Update. commit 5da01df5b5601cae695cee588547fb9ef0967081 Author: Tom Tromey Date: Sun Jul 22 10:28:23 2018 -0600 Remove a VEC from ppc-linux-nat.c This replaces a VEC in ppc-linux-nat.c with a std::vector. gdb/ChangeLog 2019-05-04 Simon Marchi Tom Tromey * ppc-linux-nat.c (thread_points_p): Remove typedef and DEF_VEC. (ppc_threads): Now a std::vector. Now static. (hwdebug_find_thread_points_by_tid) (ppc_linux_nat_target::low_new_thread, ppc_linux_thread_exit): Update. commit fbdf05a16ec647358e65582721c4ca7dae15e58d Author: Tom Tromey Date: Wed Apr 24 16:24:05 2019 -0600 Change arc_tdesc_init to return bool This changes arc_tdesc_init to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey * arc-tdep.c (arc_tdesc_init): Return bool. commit 06d16ec97736b5fc0f41cb5a43f756b7ba3d974b Author: Tom Tromey Date: Wed Apr 24 16:22:57 2019 -0600 Use gdb_assert_not_reached in arm-linux-nat.c This changes arm-linux-nat.c to use gdb_assert_not_reached rather than an assert of false. gdb/ChangeLog 2019-05-04 Tom Tromey * arm-linux-nat.c (arm_linux_nat_target::can_use_hw_breakpoint): Use gdb_assert_not_reached. commit 9c056022194f9d1f068885cb45c9d23a2e44db54 Author: Tom Tromey Date: Wed Apr 24 16:19:51 2019 -0600 Use "false" in compile_cplus_convert_enum This changes compile_cplus_convert_enum to use "false". Note that this variable is never modified, which seems like an error. I filed PR compile/24473 for this. gdb/ChangeLog 2019-05-04 Tom Tromey * compile/compile-cplus-types.c (compile_cplus_convert_enum): Use "false". commit fa9c2a59e3110d8c7d37c1fa602cb6b25b796dc7 Author: Tom Tromey Date: Wed Apr 24 16:18:41 2019 -0600 Use bool, true, and false in arc-tdep.c This changes arc-tdep.c to use bool, true, and false. gdb/ChangeLog 2019-05-04 Tom Tromey * arc-tdep.c (arc_tdesc_init): Use bool. commit e2eb806a17490963f23be1d567cff357537df678 Author: Tom Tromey Date: Sun Apr 21 20:24:05 2019 -0600 Use "false" in select_frame_for_mi This changes select_frame_for_mi to use "false" rather than "FALSE". gdb/ChangeLog 2019-05-04 Tom Tromey * stack.c (select_frame_for_mi): Use "false", not "FALSE". commit 6fe876770ad6739a5b3ca50f53dfcfbe433ba0fa Author: Tom Tromey Date: Sun Apr 21 20:21:36 2019 -0600 Change valid_command_p to return bool This changes valid_command_p to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey * cli/cli-cmds.c (valid_command_p): Return bool. commit 7f008c9e6a3cbb248f5b6e8638af4b9d5225981b Author: Tom Tromey Date: Sun Apr 21 20:10:51 2019 -0600 Change valid_user_defined_cmd_name_p to return bool This changes valid_user_defined_cmd_name_p to return bool. gdb/ChangeLog 2019-05-04 Tom Tromey * cli/cli-decode.c (valid_user_defined_cmd_name_p): Return bool. * command.h (valid_user_defined_cmd_name_p): Channge return type. commit b6484282f85bf7f11451b2441599c241d302ad9d Author: Raul Tambre Date: Sat May 4 15:48:17 2019 -0400 Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py The 'is' operator is not meant to be used for comparisons. It currently working is an implementation detail of CPython. CPython 3.8 has added a SyntaxWarning for this. commit af97b4161f07a716783183f1b17fa5cac9f99a49 Author: Tom Tromey Date: Tue Apr 23 16:42:14 2019 -0600 Don't derive partial_symbol from general_symbol_info This patch partly reverts commit 8a6d42345 ("Change representation of psymbol to flush out accessors"); specifically, it changes partial_symbol to no longer derive from general_symbol_info. The basic problem here is that the bcache compares objects bitwise, and this change made it less likely that the relevant fields in the psymbol would be fully initialized. This could be seen by running a test under valgrind on the Fedora-i686 buildbot. I considered a simpler patch, namely just zeroing the psymbol's "value" field in add_psymbol_to_bcache. However, it wasn't clear to me that this memset could not then be optimized away by the compiler. Regression tested by the buildbot. I think this should go in 8.3 as well. gdb/ChangeLog 2019-05-04 Tom Tromey * psymtab.c (psymbol_name_matches, match_partial_symbol) (lookup_partial_symbol, print_partial_symbols) (recursively_search_psymtabs, sort_pst_symbols, psymbol_hash) (psymbol_compare): Update. (add_psymbol_to_bcache): Clear the entire psymbol. (maintenance_check_psymtabs): Update. * psympriv.h (struct partial_symbol): Don't derive from general_symbol_info. : Update. : New member. * dwarf-index-write.c (write_psymbols, debug_names::insert) (debug_names::write_psymbols): Update. commit 9d6d4be89d12747a92629ed1bde1d423e2831de1 Author: Tom de Vries Date: Sat May 4 10:11:53 2019 +0200 [gdb/testsuite] Add cc-with-debug-names.exp Add a target board that makes it easy to run the test suite with a .debug_names section added to executables. gdb/ChangeLog: 2019-05-04 Tom de Vries * contrib/cc-with-tweaks.sh: Support -n arg. gdb/testsuite/ChangeLog: 2019-05-04 Tom de Vries * boards/cc-with-debug-names.exp: New file. commit 27cdfa03b5be812683c18e64009a5da042190ae6 Author: Alan Modra Date: Sat May 4 16:03:47 2019 +0930 m32c padding with nops m32c_md_end attempted to pad out a code section with nops, but this was just plain wrong in many ways: - The padding didn't happen at all if the last section emitted wasn't a code section. - The padding went to the wrong place if subsections were used, and the last subseg used wasn't the highest numbered subseg. - Padding wasn't added to all code sections. - If the last section was empty, it was padded to 4 bytes. - The padding didn't go to a 4-byte alignment boundary, instead it effectively made the last instruction 4 bytes in size. - The padding didn't take into account that code sections may have contents other than machine instructions. So, rip it out and handle nop padding properly, also fixing .align .balign/.p2align in the middle of code. gas/ * config/tc-m32c.c (insn_size): Delete static var. (md_begin): Don't set it. (m32c_md_end): Delete. (md_assemble): Add insn_size auto var. * config/tc-m32c.h (md_end): Don't define. (m32c_md_end): Delete. (NOP_OPCODE, HANDLE_ALIGN, MAX_MEM_FOR_RS_ALIGN_CODE): Define. * testsuite/gas/all/align.d: Remove m32c from notarget list. * testsuite/gas/all/incbin.d: Likewise. * testsuite/gas/elf/dwarf2-11.d: Likewise. * testsuite/gas/macros/semi.d: Likewise. * testsuite/gas/all/gas.exp (do_comment): Similarly. ld/ * testsuite/ld-scripts/fill.d: Don't xfail m32c * testsuite/ld-scripts/fill16.d: Likewise. commit a288c270991de1578ad28ac312120f4167347234 Author: Alan Modra Date: Fri May 3 21:36:46 2019 +0930 PR24511, nm should not mark symbols in .init_array as "t" This patch restricts the section names matched in coff_section_type, a function that translates section names to symbol type, and arranges to translate section flags to symbol type before looking at names. The latter change resulted in various test failures due to improper section flags being used in tests, and by the plugin support, so fix that too. The new test fails on many ELF targets that lack .init/fini_array in their scripts. I've just xfailed those. pru-elf oddly defines __init_array_begin rather than __init_array_start. I've left that target as a FAIL, and pj-elf too which reports an error for undefined weak symbols. bfd/ PR 24511 * syms.c (coff_section_type): Only allow '.', '$' and numeric following the standard section names. (bfd_decode_symclass): Prioritize section flag tests in decode_section_type before name tests in coff_section_type. * plugin.c (bfd_plugin_canonicalize_symtab): Init fake_section and fake_common_section using BFD_FAKE_SECTION. Use "fake" as their names and choose standard .text section flags for fake_section. ld/ PR 24511 * testsuite/ld-elf/pr14156a.d: Allow for .init/.fini being a data section on hppa64. * testsuite/ld-elf/pr14156b.d: Likewise. * testsuite/ld-scripts/pr18963.t: Map standard sections to set output section flags. * testsuite/ld-scripts/sane1.t: Likewise. * testsuite/ld-elf/init-fini-arrays.s: Reference __init_array_start and __fini_array_start. Define __start et al. * testsuite/ld-elf/pr24511.d: New test. commit 66452beb773568c7f60dbc6b7c70f671a8c9cf4b Author: Philippe Waroquiers Date: Tue Apr 30 22:18:48 2019 +0200 Fix leaks by clearing registers and frame caches. Valgrind reports leaks such as the below in the tests: gdb.threads/corethreads.exp gdb.threads/gcore-thread.exp gdb.ada/task_switch_in_core.exp gdb.trace/tfile.exp gdb.base/siginfo-thread.exp ==12701== 1,123 (72 direct, 1,051 indirect) bytes in 1 blocks are definitely lost in loss record 2,928 of 3,247 ==12701== at 0x4C2C4CC: operator new(unsigned long) (vg_replace_malloc.c:344) ==12701== by 0x5CF771: get_thread_arch_aspace_regcache(ptid_t, gdbarch*, address_space*) (regcache.c:330) ==12701== by 0x5CF92A: get_thread_regcache (regcache.c:366) ==12701== by 0x5CF92A: get_current_regcache() (regcache.c:372) ==12701== by 0x4C7964: get_current_frame() (frame.c:1587) ==12701== by 0x4C7A3C: get_selected_frame(char const*) (frame.c:1651) ==12701== by 0x669EAD: print_thread_info_1(ui_out*, char const*, int, int, int) (thread.c:1151) ==12701== by 0x66A9A1: info_threads_command(char const*, int) (thread.c:1217) ==12701== by 0x40A878: cmd_func(cmd_list_element*, char const*, int) (cli-decode.c:1892) ... Fix these leaks by clearing registers and frame caches. This leak and fix is similar to the leak fixed by 799efbe8e01 commit bde09ab7026edf3d79122872b79c6a8f164ee0ff Author: Tom Tromey Date: Fri May 3 17:21:36 2019 -0600 Remove "struct" from foreach statements Some versions of gcc have a bug that causes for (struct mumble : something) ... to give a compiler error. We routinely work around this bug in gdb, but apparently had not done so in a while. This patch fixes the remaining known cases of this problem. gdb/ChangeLog 2019-05-03 Sandra Loosemore Tom Tromey * dictionary.c (collate_pending_symbols_by_language): Remove "struct" from foreach. * symtab.c (lookup_global_symbol_from_objfile) (lookup_symbol_in_objfile_from_linkage_name): Remove "struct" from foreach. * ser-tcp.c (net_open): Remove "struct" from foreach. * objfiles.c (objfile_relocate, objfile_rebase) (objfile_has_symbols): Remove "struct" from foreach. * minsyms.c (lookup_minimal_symbol_by_pc_section): Remove "struct" from foreach. * dwarf2read.c (handle_struct_member_die): Remove "struct" from foreach. * darwin-nat.c (thread_info_from_private_thread_info): Remove "struct" from foreach. * ada-lang.c (create_excep_cond_exprs) (ada_exception_catchpoint_cond_string): Remove "struct" from foreach. commit b5d5eb444b6443855d65f73ea6b6623f5fbdaa0e Author: GDB Administrator Date: Sat May 4 00:00:19 2019 +0000 Automatic date update in version.in commit 222a8d255834c717f1690658a9f85501a46f9403 Author: Tom Tromey Date: Fri May 3 12:18:26 2019 -0600 Fix cast of character to enum type in Ada An internal bug report points out that, when a global character enum type is used, casting fails, like: (gdb) print global_char_enum'('F') $1 = 70 The bug here turns out to be that enumerators are qualified, so for example the mangled name might be "pck__QU48", rather than "QU48". This patch fixes the problem by only examining the suffix of the enumerator. This is ok because the type is already known, and because the mangling scheme ensures that there won't be clashes. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-03 Tom Tromey * ada-exp.y (convert_char_literal): Check suffix of each enumerator. gdb/testsuite/ChangeLog 2019-05-03 Tom Tromey * gdb.ada/char_enum/pck.ads (Global_Enum_Type): New type. * gdb.ada/char_enum/foo.adb: Use Global_Enum_Type. * gdb.ada/char_enum.exp: Add test. commit fcd60b848ed7619461b0b0e316201e7745cdb61d Author: Dilyan Palauzov Date: Fri May 3 13:42:11 2019 -0600 Add noyywrap to ada-lex.l This patch comes from PR ada/21406. It adds the noyywrap option to ada-lex.l. This was already done (by the same author) for other .l files in the binutils-gdb tree, so it seems reasonably safe. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-05-03 Dilyan Palauzov PR ada/21406: * ada-exp.y (yywrap): Don't define. * ada-lex.l (%option): Add noyywrap (yywrap): Remove. commit 0fdfd794d22b3b516c3031e76afecaa0ed813931 Author: Tom de Vries Date: Fri May 3 12:57:58 2019 +0200 [gdb/testsuite] Add cc-with-gdb-index.exp Add a target board cc-with-gdb-index.exp, to make it easy to run cc-with-tweaks with CC_WITH_TWEAKS_FLAGS='-i'. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-05-03 Tom de Vries * boards/cc-with-gdb-index.exp: New file. commit 353ea2d106a51cfd1680f7d351f35eb8f69c9248 Author: Eli Zaretskii Date: Fri May 3 10:55:33 2019 +0300 On MS-Windows, define _WIN32_WINNT in a single common place. This changeset defines _WIN32_WINNT to at least 0x0501, the level of Windows XP, unless defined to a higher level, in a single place. It then removes all the overrides of _WIN32_WINNT in individual files as no longer needed. Doing this also solves compilation of windows-nat.c with mingw.org's MinGW, as that file uses CONSOLE_FONT_INFO which needs the XP level to become exposed in the Windows headers, while mingw.org defaults to Windows 9X. gdb/ChangeLog: 2019-05-03 Eli Zaretskii * common/common-defs.h [__MINGW32__ || __CYGWIN__]: Define _WIN32_WINNT to the XP level, unless already defined to a higher level. * unittests/parse-connection-spec-selftests.c: * ser-tcp.c: * common/netstuff.c [USE_WIN32API]: Remove the _WIN32_WINNT override. gdb/gdbserver/ChangeLog: 2019-05-03 Eli Zaretskii * remote-utils.c: * gdbreplay.c [USE_WIN32API]: Remove the _WIN32_WINNT override. commit 5f2459c233faebe8f882e556b2f4a86594a51292 Author: Eli Zaretskii Date: Fri May 3 10:29:59 2019 +0300 Fix lookup of separate debug file on MS-Windows. If you put the separate debug file in a global debug directory, GDB on MS-Windows would fail to find it. This happens because we obtain the directory to look up the debug file by concatenating the debug directory name with the leading directories of the executable, and the latter includes the drive letter on MS-Windows. So we get an invalid file name like d:/usr/lib/debug/d:/usr/bin/foo.debug This commit fixes that by removing the colon of the drive letter, thus producing d:/usr/lib/debug/d/usr/bin/foo.debug gdb/ChangeLog: 2019-05-03 Eli Zaretskii * symfile.c (find_separate_debug_file): Remove colon from the drive spec of DOS/Windows file names of the target, so that the file name produced from DEBUGDIR and the target's directory will be valid on DOS/Windows systems. gdb/doc/ChangeLog: 2019-05-03 Eli Zaretskii * gdb.texinfo (Separate Debug Files): Document how the subdirectory of the global debug directory is computed on MS-Windows/MS-DOS. commit 41f61c65a2e1cfdb4aca3bccf6e11025495ba02e Author: GDB Administrator Date: Fri May 3 00:00:15 2019 +0000 Automatic date update in version.in commit 80062eb94959467fb0c27b988b87ac08dada4bd8 Author: Andrew Burgess Date: Thu May 2 00:40:01 2019 +0100 gdb/rust: Handle printing structures containing strings When printing a rust structure that contains a string GDB can currently fail to read the fields that define the string. This is because GDB mistakenly treats a value that is the parent structure as though it is the structure that defines the string, and then fails to find the fields needed to extract a string. The solution is to create a new value to represent the string field of the parent value. gdb/ChangeLog: * rust-lang.c (val_print_struct): Handle printing structures containing strings. gdb/testsuite/ChangeLog: * gdb.rust/simple.exp: Add new test case. * gdb.rust/simple.rs (struct StringAtOffset): New struct. (main): Initialise an instance of the new struct. commit 06f74c5cb868cfd37af3e680d29784c217700bdf Author: H.J. Lu Date: Thu May 2 10:46:55 2019 -0700 i386: Issue a warning to IRET without suffix for .code16gcc The .code16gcc directive to support 16-bit mode with 32-bit address. For IRET without a suffix, generate 16-bit IRET with a warning to return from an interrupt handler in 16-bit mode. PR gas/24485 * config/tc-i386.c (process_suffix): Issue a warning to IRET without a suffix for .code16gcc. * testsuite/gas/i386/jump16.s: Add tests for iretX. * testsuite/gas/i386/jump16.d: Updated. * testsuite/gas/i386/jump16.e: New file. commit b8c05e85ef4ce9610a3a43198180cf24aea327cb Author: Tom Tromey Date: Thu May 2 08:15:59 2019 -0600 Remove _initialize_valarith I noticed that _initialize_valarith is empty. This patch removes it. Because init.c is constructed at build time, there's no reason to keep empty initialization functions around, because there's no overhead to reintroducing them when needed. gdb/ChangeLog 2019-05-02 Tom Tromey * valarith.c (_initialize_valarith): Remove. commit 2cdc1a970d3249888524d251abfb87a9bdc77434 Author: Nick Clifton Date: Thu May 2 15:11:39 2019 +0100 Treat the .gnu.debuglink and .gnu.debugaltlink sections as debug sections when reading them in from COFF/PE format files. PR 24493 * coffcode.h (styp_to_sec_flags): Treat .gnu.debuglink and .gnu.debugaltlink sections as debugging sections. commit e37f3ecd59eeb56e08c4a210a6e9764f1cedbc83 Author: GDB Administrator Date: Thu May 2 00:00:22 2019 +0000 Automatic date update in version.in commit b83b4b138298d2a6bfab11f533d7e315c0a1c97b Author: Sudakshina Das Date: Wed May 1 17:14:01 2019 +0100 [BINUTILS, AArch64] Enable Transactional Memory Extension This patch enables the new Transactional Memory Extension added recently as part of Arm's new architecture technologies. We introduce a new optional extension "tme" to enable this. The following instructions are part of the extension: * tstart * ttest * tcommit * tcancel # The ISA for the above can be found here: https://developer.arm.com/docs/ddi0602/latest/base-instructions-alphabetic-order *** gas/ChangeLog *** 2019-05-01 Sudakshina Das * config/tc-aarch64.c (parse_operands): Add case for AARCH64_OPND_TME_UIMM16. (aarch64_features): Add "tme". * doc/c-aarch64.texi: Document the same. * testsuite/gas/aarch64/tme-invalid.d: New test. * testsuite/gas/aarch64/tme-invalid.l: New test. * testsuite/gas/aarch64/tme-invalid.s: New test. * testsuite/gas/aarch64/tme.d: New test. * testsuite/gas/aarch64/tme.s: New test. *** include/ChangeLog *** 2019-05-01 Sudakshina Das * opcode/aarch64.h (AARCH64_FEATURE_TME): New. (enum aarch64_opnd): Add AARCH64_OPND_TME_UIMM16. *** opcodes/ChangeLog *** 2019-05-01 Sudakshina Das * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. * aarch64-opc.c (operand_general_constraint_met_p): Add case for AARCH64_OPND_TME_UIMM16. (aarch64_print_operand): Likewise. * aarch64-tbl.h (QL_IMM_NIL): New. (TME): New. (_TME_INSN): New. (struct aarch64_opcode): Add tstart, tcommit, ttest and tcancel. commit 2ecde2b63245d4794a4967f318772e7166feb310 Author: Matthew Malcomson Date: Wed May 1 16:52:51 2019 +0100 Fix spelling mistakes in binutils testsuite. * testsuite/binutils-all/objdump.exp: Correct executable spelling. * testsuite/binutils-all/compress.exp: Likewise. commit 4504bbdec57c77b6468838276e62b2137eedfdd5 Author: Tom Tromey Date: Mon Apr 29 09:55:39 2019 -0600 Fix bug in assignment to nested packed structure A user at AdaCore found a case where assignment to a nested packed structure would fail. The bug is that ada_value_primitive_field doesn't account for the situation where a field is not packed relative to its containing structure, but where the structure itself is packed in its parent. gdb/ChangeLog 2019-05-01 Tom Tromey * ada-lang.c (ada_value_primitive_field): Treat more fields as bitfields. gdb/testsuite/ChangeLog 2019-05-01 Tom Tromey * gdb.ada/packed_array_assign/aggregates.ads (Nested_Packed): New record. (NPR): New variable. * gdb.ada/packed_array_assign.exp: Add nested packed assignment test. commit d48e62f4a263a871b7a62793e8000625735bc2f6 Author: Tom Tromey Date: Fri Apr 26 10:57:52 2019 -0600 Fix big-endian aggregate assignment in Ada A bug internal to AdaCore notes that assigning a non-scalar value to an element of a packed array will sometimes fail. The bug turns out to be that ada_value_assign incorrectly computes the starting point for the assignment. This patch fixes the problem. gdb/ChangeLog 2019-05-01 Tom Tromey * ada-lang.c (ada_value_assign): Correctly compute starting offset for big-endian copies. gdb/testsuite/ChangeLog 2019-05-01 Tom Tromey * gdb.ada/packed_array_assign.exp: Add packed assignment regression test. commit 25a0274483cb00c27945b0337005be4f169ff09f Author: Nick Clifton Date: Wed May 1 14:43:06 2019 +0100 Change nm so that when it is running in POSIX compatible mode, it does not prefix symbol values with 0. PR 24507 * nm.c: (print_format): New variable. (value_format_32bit, value_format_64bit): Delete. (set_print_radix): Remove code to alter value_format strings. (set_output_format): Record chosen format in print_format. (get_print_format): New function - constructs a printf formatting string according to the requirements of size, radix, and output format. (print_value): Use get_print_format. * testsuite/binutils-all/nm.exp: Add tests of "nm --format=posix" and "nm -t d". commit f59f30f55776b10d4f728065e9f9a10cf63a1b29 Author: Tom de Vries Date: Wed May 1 15:31:14 2019 +0200 [gdb/testsuite] Fix "unable to find usable gdb" error with cc-with-tweaks.exp When running fullpath-expand.exp with target_board=dwarf4-gdb-index, we run into: ... $ make check-gdb RUNTESTFLAGS="--target_board=dwarf4-gdb-index fullpath-expand.exp" Running src/gdb/testsuite/gdb.base/fullpath-expand.exp ... gdb compile failed, cc-with-tweaks.sh: unable to find usable gdb === gdb Summary === nr of untested testcases 1 ... The same happens with fullname.exp. The dwarf4-gdb-index.exp board file includes cc-with-tweaks.exp, which uses cc-with-tweaks.sh, which calls gdb-add-index.sh. The gdb-add-index.sh script uses a gdb executable, defaulting to gdb: ... GDB=${GDB:=gdb} ... The cc-with-tweaks.sh script tries to ensure that the build gdb executable is used by gdb-add-index.sh: ... if [ -z "$GDB" ] then if [ -f ./gdb ] then GDB="./gdb -data-directory data-directory" elif [ -f ../gdb ] then GDB="../gdb -data-directory ../data-directory" elif [ -f ../../gdb ] then GDB="../../gdb -data-directory ../../data-directory" else echo "$myname: unable to find usable gdb" >&2 exit 1 fi fi ... So, if the current directory is build/gdb/testsuite, then a gdb executable build/gdb/testsuite/../gdb will be used. However, in the case of fullpath-expand.exp the test cd's into the sources: ... set saved_pwd [pwd] cd $srcdir set err [gdb_compile "${subdir}/${srcfile} ${subdir}/${srcfile2}" $binfile \ executable {debug}] cd $saved_pwd ... and cc-with-tweaks.sh generates the "unable to find usable gdb" error. The same error occurs if we use --target_board=cc-with-dwz instead (only in this case we actually don't need gdb, we just need the GDB variable to be set in cc-with-tweaks.sh, which arguably is a bug in cc-with-tweaks.sh). Fix both errors in cc-with-tweaks.exp by generating a gdb script gdb.sh using $GDB, $GDBFLAGS and $INTERNAL_GDBFLAGS and passing this script to cc-with-tweaks.sh by setting env(GDB). Tested on x86_64-linux for gdb.base. gdb/testsuite/ChangeLog: 2019-05-01 Tom de Vries * boards/cc-with-tweaks.exp: Generate gdb.sh, and pass it in env(GDB). commit b70bfc540d3fa7759f5957bce23b6a1e6783ccb3 Author: Tom de Vries Date: Wed May 1 13:30:52 2019 +0200 [gdb/testsuite] Use cc-with-tweaks.exp in dwarf4-gdb-index.exp Board file dwarf4-gdb-index.exp contains all the commands from cc-with-tweaks.exp (with CC_WITH_TWEAKS_FLAGS set to "-i"). Make dwarf4-gdb-index.exp smaller by including cc-with-tweaks.exp. Tested on x86_64-linux for gdb.base. gdb/testsuite/ChangeLog: 2019-05-01 Tom de Vries * boards/dwarf4-gdb-index.exp: Use cc-with-tweaks.exp. commit 640c50672cffe19a58a0296bbf7731b59a013cd5 Author: GDB Administrator Date: Wed May 1 00:00:15 2019 +0000 Automatic date update in version.in commit 15f18d1467aa08ff7a4793f21e02fd4c2ebc0a0b Author: Ali Tamur Date: Thu Apr 25 13:35:53 2019 -0700 Support DW_FORM_strx1, _strx2, _strx3, _strx4 forms. Dwarf5 defines DW_FORM_strx1 and others, which are similar to DW_FORM_strx but uses 1-4 bytes unsigned integers. This is a small step towards supporting dwarf5 in gdb. commit ab4ee6147eb2e8fafd1fb96c945029c789182d3b Author: Joel Brobecker Date: Tue Apr 30 16:00:19 2019 -0500 gdb/windows-nat.c: Get rid of main_thread_id global This global is meant to point to the "main" thread of execution of the program we are debugging. It is set when attaching to a process or when receiving a CREATE_PROCESS_DEBUG_EVENT event. The theory at the time was that this was also going to be the thread receiving the EXIT_PROCESS_DEBUG_EVENT event. Unfortunately, we have discovered since then that this is actually not guaranteed. What this means in practice is that there is moderate risk that main_thread_id refers to a thread which no longer exists. This global is used in 3 situations: - OUTPUT_DEBUG_STRING_EVENT - LOAD_DLL_DEBUG_EVENT - UNLOAD_DLL_DEBUG_EVENT It's not clear why we would need to use the main_thread_id in those cases instead of using the thread ID provided by the kernel events itself. So this patch implements this approach, which then allows us to delete the main_thread_id global. gdb/testsuite: * windows-nat.c (main_thread_id): Delete. (handle_output_debug_string): Replace main_thread_id by current_event.dwThreadId. (fake_create_process): Likewise. (get_windows_debug_event) : Do not set main_thread_id. : Replace main_thread_id by current_event.dwThreadId. : Likewise. commit 8ed5b76ea2de370265382dab1d538a919e2603ab Author: Joel Brobecker Date: Tue Apr 30 15:59:17 2019 -0500 (Windows) fix thr != nullptr assert failure in delete_thread_1 We have observed that GDB would randomly trip the following assertion failure when debugging on Windows. When allowing the program to run until the inferior exits, we occasionally see: (gdb) cont Continuing. [Thread 48192.0xd100 exited with code 1] [Thread 48192.0x10ad8 exited with code 1] [Thread 48192.0x36e28 exited with code 0] [Thread 48192.0x52be4 exited with code 0] [Thread 48192.0x5aa40 exited with code 0] ../../src/gdb/thread.c:453: internal-error: void delete_thread_1(thread_inf o*, bool): Assertion `thr != nullptr' failed. Running the same scenario with some additional traces enabled... (gdb) set verbose (gdb) set debugevents ... allows us to understand what the issue is. To understand, we need to first look at the events received when starting the program, and in particular which threads got created how. First, we get a CREATE_PROCESS_DEBUG_EVENT for tid=0x442a8: gdb: kernel event for pid=317536 tid=0x442a8 code=CREATE_PROCESS_DEBUG_EVENT) Shortly after, we get some CREATE_THREAD_DEBUG_EVENT events, one of them being for tid=0x4010c: gdb: kernel event for pid=317536 tid=0x4010c code=CREATE_THREAD_DEBUG_EVENT) Fast forward a bit of debugging, and we do a "cont" as above, at which point the programs reaches the end, and the system reports "exit" events. The first interesting one is the following: gdb: kernel event for pid=317536 tid=0x442a8 code=EXIT_THREAD_DEBUG_EVENT) This is reporting a thread-exit event for a thread whose tid is the TID of what we call the "main thread". That's the thread that was created when we received the CREATE_PROCESS_DEBUG_EVENT notification, and whose TID is actually stored in a global variable named main_thread_id. This is not something we expected, as the assumption we made was that the main thread would exit last, and we would be notified of it via an EXIT_PROCESS_DEBUG_EVENT. But apparently, this is not always true, at least on Windows Server 2012 and 2016 where this issue has been observed happening randomly. The consequence of the above notification is that we call windows_delete_thread for that thread, which removes it from our list of known threads. And a little bit later, then we then get the EXIT_PROCESS_DEBUG_EVENT, and we can see that the associated tid is not the main_thread_id, but rather the tid of one of the threads that was created during the lifetime of the program, in this case tid=0x4010c: gdb: kernel event for pid=317536 tid=0x4010c code=EXIT_PROCESS_DEBUG_EVENT) And the debug trace printed right after shows why we're crashing: [Deleting Thread 317536.0x442a8] We are trying to delete the thread whose tid=0x442a8, which is the main_thread_id! As we have already deleted that thread before, the search for it returns a nullptr, which then trips the assertion check in delete_thread_1. This commit fixes this issue. It ignores the open question of what to do with the main_thread_id global, particularly after that thread has been removed from our list of threads. This will be dealt with as a separate patch, to allow cherry-picking this patch into a release branch. For now, we fix the code so as to avoid this crash. gdb/ChangeLog: * windows-nat.c (get_windows_debug_event) : Use current_event.dwThreadId instead of main_thread_id. commit 2ff0a947394eebf5ff9cd26088dce60ec8c10b48 Author: Tom Tromey Date: Wed Mar 27 15:00:21 2019 -0600 Fix "catch exception" with dynamic linking When an Ada program is dynamically linked against libgnat, and when one of the standard exceptions is used, the exception object may be referenced by the main executable using a copy relocation. In this situation, a "catch exception" for those exceptions will not manage to stop. This happens because, under the hood, "catch exception" creates an expression object that examines the object addresses -- but in this case, the address will be incorrect. This patch fixes the problem by arranging for these filter expressions to examine all the relevant minimal symbols. This way, the object from libgnat will be found as well. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-04-30 Tom Tromey * ada-lang.c (ada_lookup_simple_minsyms): New function. (create_excep_cond_exprs): Iterate over program spaces. (ada_exception_catchpoint_cond_string): Examine all minimal symbols for exception types. gdb/testsuite/ChangeLog 2019-04-30 Tom Tromey * lib/ada.exp (find_ada_tool): New proc. * lib/gdb.exp (gdb_compile_shlib): Allow .o files as inputs. * gdb.ada/catch_ex_std.exp: New file. * gdb.ada/catch_ex_std/foo.adb: New file. * gdb.ada/catch_ex_std/some_package.adb: New file. * gdb.ada/catch_ex_std/some_package.ads: New file. commit a776957c8c3a9177345ee7ca91077234ed7f508e Author: Tom Tromey Date: Mon Apr 22 11:46:47 2019 -0600 Fix crash in dwarf2read.c with template parameters PR c++/24470 concerns a crash in dwarf2read.c that occurs with a particular test case. The issue turns out to be that process_structure_scope will pass NULL to symbol_symtab. This happens because new_symbol decided not to create a symbol for the particular DIE. This patch fixes the problem by finding another reasonably-appropriate symtab to use instead; issuing a complaint if one cannot be found for some reason. As mentioned in the bug, I think there are other bugs here. For example, when using "ptype" on the "l" object in the test case, I think I would expect to see the template parameter. I didn't research this too closely, since it seemed more important to fix the crash. Tested on x86-64 Fedora 29. I'd like to check this in to the 8.3 branch as well. 2019-04-30 Tom Tromey PR c++/24470: * dwarf2read.c (process_structure_scope): Handle case where type has template parameters but no symbol was created. gdb/testsuite/ChangeLog 2019-04-30 Tom Tromey PR c++/24470: * gdb.cp/temargs.cc: Add test code from PR. commit 066f4018ae7822d81cb6747fd9494e5dd63bfecf Author: Alan Modra Date: Tue Apr 30 16:31:01 2019 +0930 PowerPC64 GOT indirect to GOT relative optimisation This implements an optimisation that converts sequences like addis r9,r2,sym@got@ha ld r3,sym@got@l(r9) to addis r9,r2,sym@toc@ha addi r3,r9,sym@toc@l when "sym" is locally defined and can't be overridden. bfd/ * elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_gotrel. (struct _ppc64_elf_section_data): Likewise. (ppc64_elf_check_relocs): Set above fields. (ppc64_elf_edit_toc): Add a pass over GOT relocs. (ppc64_elf_relocate_section): Edit GOT indirect to GOT relative when possible. ld/ * testsuite/ld-powerpc/elfv2exe.d: Update. * testsuite/ld-powerpc/elfv2so.d: Update. * testsuite/ld-powerpc/tocopt.d: Update. * testsuite/ld-powerpc/tocopt.s: Update. * testsuite/ld-powerpc/tocopt5.d: Update. * testsuite/ld-powerpc/tocopt5.s: Update. * testsuite/ld-powerpc/tocopt7.d: Update. * testsuite/ld-powerpc/tocopt7.s: Update. * testsuite/ld-powerpc/tocopt8.d: Update. * testsuite/ld-powerpc/tocopt8.s: Update. commit 8107ddcea1da07f1c4e902c17f045684beb78079 Author: Alan Modra Date: Mon Apr 29 09:17:05 2019 +0930 Work around gcc9 warning bug * wrstabs.c (stab_start_class_type): Add assert to work around gcc9 warning. Tidy. commit 06ddcada14d90c4da28f9585801aaae48304d8ea Author: Alan Modra Date: Sat Apr 27 10:27:49 2019 +0930 ld.texi tweak for pod2man Fixes the following error: ld.pod around line 568: Expected '=item *' POD document had syntax errors at /usr/bin/pod2man line 71. * ld.texi (How GNU properties are merged): Avoid pod2man error. Correct example. commit bc68014d16c30a6e90fdf9fc43e98be8cbbead9a Author: Andrew Burgess Date: Thu Mar 7 16:53:54 2019 +0000 gdb/fortran: Add allocatable type qualifier Types in Fortran can have the 'allocatable' qualifier attached to indicate that memory needs to be explicitly allocated by the user. This patch extends GDB to show this qualifier when printing types. Lots of tests results are then updated to include this new qualifier in the expected results. gdb/ChangeLog: * f-typeprint.c (f_type_print_base): Print 'allocatable' type qualifier. * gdbtypes.h (TYPE_IS_ALLOCATABLE): Define. gdb/testsuite/ChangeLog: * gdb.fortran/vla-datatypes.exp: Update expected results. * gdb.fortran/vla-ptype.exp: Likewise. * gdb.fortran/vla-type.exp: Likewise. * gdb.fortran/vla-value.exp: Likewise. commit f1fdc960664c24d911d6189b94e5c054b4bb9053 Author: Andrew Burgess Date: Sun Feb 17 00:37:20 2019 +0000 gdb/fortran: Update rules for printing whitespace in types The whitespace produced as types are printed seems inconsistent. This commit updates the rules in an attempt to make whitespace more balanced and consistent. Expected results are updated. gdb/ChangeLog: * f-typeprint.c (f_print_type): Update rules for printing whitespace. (f_type_print_varspec_suffix): Likewise. gdb/testsuite/ChangeLog: * gdb.fortran/ptr-indentation.exp: Update expected results. * gdb.fortran/ptype-on-functions.exp: Likewise. * gdb.fortran/vla-ptr-info.exp: Likewise. * gdb.fortran/vla-value.exp: Likewise. commit bf7a4de1722a63c8b017d010e75d5e9e5e622f36 Author: Andrew Burgess Date: Sat Feb 16 17:26:44 2019 +0000 gdb/fortran: print function arguments when printing function type Before this commit using ptype on a Fortran function will include information about the functions return type, but not the expected arguments as it would for C or C++. After this commit argument types are included in the ptype output. For example, before GDB prints: (gdb) ptype fun1 type = integer(kind=4) () (gdb) ptype is_bigger type = logical(kind=4) () and after GDB prints: (gdb) ptype fun1 type = integer(kind=4) (integer(kind=4)) (gdb) ptype is_bigger type = logical(kind=4) (integer(kind=4), integer(kind=4)) gdb/ChangeLog: * f-typeprint.c (f_type_print_varspec_suffix): Handle printing function arguments. gdb/testsuite/ChangeLog: * gdb.fortran/ptype-on-functions.exp: New file. * gdb.fortran/ptype-on-functions.f90: New file. commit bbe75b9d00cc6f0694ff26569505c349d55e35f1 Author: Andrew Burgess Date: Sat Feb 16 16:39:29 2019 +0000 gdb/fortran: Print 'void' type in lower case For a program compiled with gfortran the base type names are written as lower cases in the DWARF, and so GDB will display them as lower case. Additionally, in most places where GDB supplies its own type names (for example all of the types defined in f-lang.c in `build_fortran_types`), the type names are all lower case. An exception to this is where GDB prints the void type for Fortran. In this case GDB uses upper case. I'm not aware of any reason why this type should merit special attention, and it looks our of place when printing types, so this commit changes from 'VOID' to 'void' to match all the other types. gdb/ChangeLog: * f-lang.c (build_fortran_types): Change name of void type to lower case. * f-typeprint.c (f_type_print_base): Print the name of the void type, rather than a fixed string. * f-valprint.c (f_decorations): Use lower case void string. gdb/testsuite/ChangeLog: * gdb.fortran/exprs.exp (test_convenience_variables): Expect lower case void string. commit 1db455a76c39e2be6a8a9613b7a19439f24722d0 Author: Andrew Burgess Date: Sat Feb 16 22:45:41 2019 +0000 gdb/fortran: better types for components of complex numbers Currently when using $_creal and $_cimag to access the components of a complex number the types of these components will have C type names 'float', 'double', etc. This is because the components of a complex number are not given type names in DWARF, so GDB has to pick some suitable names, and currently we always use the C names. This commit changes the type names used based on the language, so for Fortran we will now use the Fortran float types, and so will get the Fortran float type names 'real', 'real*8', etc. gdb/ChangeLog: * dwarf2read.c (dwarf2_init_complex_target_type): Use different types for Fortran. gdb/testsuite/ChangeLog: * gdb.fortran/complex.exp: Expand. * gdb.fortran/complex.f: Renamed to... * gdb.fortran/complex.f90: ...this, and extended to add more complex values. commit b6d03bb2b65ac5c919f1d08674bbaa2a9bfb2d0c Author: Andrew Burgess Date: Wed Feb 13 17:10:18 2019 +0000 gdb/fortran: Additional builtin procedures Add some additional builtin procedures for Fortran, these are MOD, CEILING, FLOOR, MODULO, and CMPLX. gdb/ChangeLog: * f-exp.y (BINOP_INTRINSIC): New token. (exp): New parser rule handling BINOP_INTRINSIC. (f77_keywords): Add new builtin procedures. * f-lang.c (evaluate_subexp_f): Handle BINOP_MOD, UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX. (operator_length_f): Handle UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX. (print_unop_subexp_f): New function. (print_binop_subexp_f): New function. (print_subexp_f): Handle UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX. (dump_subexp_body_f): Likewise. (operator_check_f): Likewise. * fortran-operator.def: Add UNOP_FORTRAN_CEILING, UNOP_FORTRAN_FLOOR, BINOP_FORTRAN_MODULO, BINOP_FORTRAN_CMPLX gdb/testsuite/ChangeLog: * gdb.fortran/intrinsics.exp: Extend to cover MOD, CEILING, FLOOR, MODULO, CMPLX. commit 83228e93efa82f84a132f7cec44d0e760d4ad22b Author: Andrew Burgess Date: Mon Apr 1 21:01:09 2019 +0100 gdb/fortran: Introduce fortran-operator.def file Future commits will add more Fortran specific expression operators. In preparation for these new operators, this commit adds a new fortran-operator.def file similar to how GDB already has ada-operator.def. I've moved UNOP_KIND the Fortran specific operator I introduced in commit 4d00f5d8f6c4 into this file, and renamed it to make it clearer that the operator is Fortran specific. I've then updated the Fortran exp_descriptor table (exp_descriptor_f) to use entirely Fortran specific functions that now handle UNOP_FORTRAN_KIND (the new name for UNOP_KIND). There should be no visible changes for standard users after this commit, though for developers, the output when 'set debug expression 1' is now better, before: (gdb) p kind (l1) Dump of expression @ 0x2ccc7a0, before conversion to prefix form: Language fortran, 5 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 42 *............... 1 OP_NULL 47730176 .N.............. 2 BINOP_INTDIV 47729184 J.............. 3 OP_VAR_VALUE 42 *............... 4 UNOP_KIND 78 N............... Dump of expression @ 0x2ccc7a0, after conversion to prefix form: Expression: `Invalid expression (gdb) and after: (gdb) p kind (l1) Dump of expression @ 0x294d0b0, before conversion to prefix form: Language fortran, 5 elements, 16 bytes each. Index Opcode Hex Value String Value 0 OP_VAR_VALUE 40 (............... 1 unknown opcode: 224 44088544 ................ 2 unknown opcode: 208 44087504 ................ 3 OP_VAR_VALUE 40 (............... 4 UNOP_FORTRAN_KIND 119 w............... Dump of expression @ 0x294d0b0, after conversion to prefix form: Expression: `KIND(test::l1)' Language fortran, 5 elements, 16 bytes each. 0 UNOP_FORTRAN_KIND 1 OP_VAR_VALUE Block @0x2a0bce0, symbol @0x2a0b8d0 (l1) $1 = 1 (gdb) gdb/ChangeLog: * gdb/expprint.c (dump_subexp_body_standard): Remove use of UNOP_KIND. * gdb/expression.h (exp_opcode): Include 'fortran-operator.def'. * gdb/f-exp.y (exp): Rename UNOP_KIND to UNOP_FORTRAN_KIND. * gdb/f-lang.c (evaluate_subexp_f): Likewise. (operator_length_f): New fuction. (print_subexp_f): New function. (op_name_f): New function. (dump_subexp_body_f): New function. (operator_check_f): New function. (exp_descriptor_f): Replace standard expression handling functions with new functions. * gdb/fortran-operator.def: New file. * gdb/parse.c (operator_length_standard): Remove use of UNOP_KIND. * gdb/std-operator.def: Remove UNOP_KIND. commit 6fdcd7cc87a5e345a1c09fcf898012d80eb43ee1 Author: Andrew Burgess Date: Sat Mar 30 17:14:23 2019 +0000 gdb: Remove an unbalanced stray double quote from a comment What appears to be a stray double quote character in std-operator.def causes incorrect highlighting in my editor. The quote was introduced in this commit: commit 858be34c5a03bb8973679ebf00d360182434dc00 Date: Mon Sep 4 20:21:15 2017 +0100 Handle "p S::method()::static_var" in the C++ parser I can't see any reason why the quote should be there, so this commit removes it. gdb/ChangeLog: * std-operator.def: Remove unbalanced, stray double quote character. commit 5acad1a18219912bbb83b667c7bb4955d4af10ca Author: GDB Administrator Date: Tue Apr 30 00:00:28 2019 +0000 Automatic date update in version.in commit 2e62ab400ff96334c92e5acf0a462cb9dc0d19a7 Author: Andrew Burgess Date: Thu Mar 21 15:13:23 2019 +0000 gdb: Introduce 'print max-depth' feature Introduce a new print setting max-depth which can be set with 'set print max-depth DEPTH'. The default value of DEPTH is 20, but this can also be set to unlimited. When GDB is printing a value containing nested structures GDB will stop descending at depth DEPTH. Here is a small example: typedef struct s1 { int a; } s1; typedef struct s2 { s1 b; } s2; typedef struct s3 { s2 c; } s3; typedef struct s4 { s3 d; } s4; s4 var = { { { { 3 } } } }; The following table shows how various depth settings affect printing of 'var': | Depth Setting | Result of 'p var' | |---------------+--------------------------------| | Unlimited | $1 = {d = {c = {b = {a = 3}}}} | | 4 | $1 = {d = {c = {b = {a = 3}}}} | | 3 | $1 = {d = {c = {b = {...}}}} | | 2 | $1 = {d = {c = {...}}} | | 1 | $1 = {d = {...}} | | 0 | $1 = {...} | Only structures, unions, and arrays are replaced in this way, scalars and strings are not replaced. The replacement is counted from the level at which you print, not from the top level of the structure. So, consider the above example and this GDB session: (gdb) set print max-depth 2 (gdb) p var $1 = {d = {c = {...}}} (gdb) p var.d $2 = {c = {b = {...}}} (gdb) p var.d.c $3 = {b = {a = 3}} Setting the max-depth to 2 doesn't prevent the user from exploring deeper into 'var' by asking for specific sub-fields to be printed. The motivation behind this feature is to try and give the user more control over how much is printed when examining large, complex data structures. The default max-depth of 20 means that there is a change in GDB's default behaviour. Someone printing a data structure with 20 levels of nesting will now see '{...}' instead of their data, they would need to adjust the max depth, or call print again naming a specific field in order to dig deeper into their data structure. If this is considered a problem then we could increase the default, or even make the default unlimited. This commit relies on the previous commit, which added a new field to the language structure, this new field was a string that contained the pattern that should be used when a structure/union/array is replaced in the output, this allows languages to use a syntax that is more appropriate, mostly this will be selecting the correct types of bracket '(...)' or '{...}', both of which are currently in use. This commit should have no impact on MI output, expressions are printed through the MI using -var-create and then -var-list-children. As each use of -var-list-children only ever displays a single level of an expression then the max-depth setting will have no impact. This commit also adds the max-depth mechanism to the scripting language pretty printers following basically the same rules as for the built in value printing. One quirk is that when printing a value using the display hint 'map', if the keys of the map are structs then GDB will hide the keys one depth level after it hides the values, this ensures that GDB produces output like this: $1 = map_object = {[{key1}] = {...}, [{key2}] = {...}} Instead of this less helpful output: $1 = map_object = {[{...}] = {...}, [{...}] = {...}} This is covered by the new tests in gdb.python/py-nested-maps.exp. gdb/ChangeLog: * cp-valprint.c (cp_print_value_fields): Allow an additional level of depth when printing anonymous structs or unions. * guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer): Don't print either the top-level value, or the children if the max-depth is exceeded. (ppscm_print_children): When printing the key of a map, allow one extra level of depth. * python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Don't print either the top-level value, or the children if the max-depth is exceeded. (print_children): When printing the key of a map, allow one extra level of depth. * python/py-value.c (valpy_format_string): Add max_depth keyword. * valprint.c: (PRINT_MAX_DEPTH_DEFAULT): Define. (user_print_options): Initialise max_depth field. (val_print_scalar_or_string_type_p): New function. (val_print): Check to see if the max depth has been reached. (val_print_check_max_depth): Define new function. (show_print_max_depth): New function. (_initialize_valprint): Add 'print max-depth' option. * valprint.h (struct value_print_options) : New field. (val_print_check_max_depth): Declare new function. * NEWS: Document new feature. gdb/doc/ChangeLog: * gdb.texinfo (Print Settings): Document 'print max-depth'. * guile.texi (Guile Pretty Printing API): Document that 'print max-depth' can effect the display of a values children. * python.texi (Pretty Printing API): Likewise. (Values From Inferior): Document max_depth keyword. gdb/testsuite/ChangeLog: * gdb.base/max-depth.c: New file. * gdb.base/max-depth.exp: New file. * gdb.python/py-nested-maps.c: New file. * gdb.python/py-nested-maps.exp: New file. * gdb.python/py-nested-maps.py: New file. * gdb.python/py-format-string.exp (test_max_depth): New proc. (test_all_common): Call test_max_depth. * gdb.fortran/max-depth.exp: New file. * gdb.fortran/max-depth.f90: New file. * gdb.go/max-depth.exp: New file. * gdb.go/max-depth.go: New file. * gdb.modula2/max-depth.exp: New file. * gdb.modula2/max-depth.c: New file. * lib/gdb.exp (get_print_expr_at_depths): New proc. commit 4be290b2517839872ef7de47230be8dbd291a7e5 Author: Andrew Burgess Date: Tue Apr 9 23:06:41 2019 +0100 gdb: Introduce new language field la_is_string_type_p This commit is preparation work for the next commit, and by itself makes no user visible change to GDB. I've split this work into a separate commit in order to make code review easier. This commit adds a new field 'la_is_string_type_p' to the language struct, this predicate will return true if a type is a string type for the given language. Some languages already have a "is this a string" predicate that I was able to reuse, while for other languages I've had to add a new predicate. In this case I took inspiration from the value printing code for that language - what different conditions would result in printing something as a string. A default "is this a string" method has also been added that looks for TYPE_CODE_STRING, this is the fallback I've used for a couple of languages. In this commit I add the new field and initialise it for each language, however at this stage the new field is never used. gdb/ChangeLog: * ada-lang.c (ada_language_defn): Initialise new field. * c-lang.c (c_is_string_type_p): New function. (c_language_defn): Initialise new field. (cplus_language_defn): Initialise new field. (asm_language_defn): Initialise new field. (minimal_language_defn): Initialise new field. * c-lang.h (c_is_string_type_p): Declare new function. * d-lang.c (d_language_defn): Initialise new field. * f-lang.c (f_is_string_type_p): New function. (f_language_defn): Initialise new field. * go-lang.c (go_is_string_type_p): New function. (go_language_defn): Initialise new field. * language.c (default_is_string_type_p): New function. (unknown_language_defn): Initialise new field. (auto_language_defn): Initialise new field. * language.h (struct language_defn) : New member variable. (default_is_string_type_p): Declare new function. * m2-lang.c (m2_language_defn): Initialise new field. * objc-lang.c (objc_language_defn): Initialise new field. * opencl-lang.c (opencl_language_defn): Initialise new field. * p-lang.c (pascal_is_string_type_p): New function. (pascal_language_defn): Initialise new field. * rust-lang.c (rust_is_string_type_p): New function. (rust_language_defn): Initialise new field. commit 721b08c68679ad4058bfa7ae73811e6f9e845cfd Author: Andrew Burgess Date: Tue Mar 26 19:34:06 2019 +0000 gdb: Introduce new language field la_struct_too_deep_ellipsis This commit is preparation work for a later commit, and by itself makes no user visible change to GDB. I've split this work into a separate commit in order to make code review easier. This commit adds a new field 'la_struct_too_deep_ellipsis' to the language struct, this string will be used in the next commit to print a language specific string from within the generic value printing code. In this commit I add the new field and initialise it for each language, however at this stage the new field is never used. gdb/ChangeLog: * language.h (struct language_defn) : New field. * ada-lang.c (ada_language_defn): Initialise new field. * c-lang.c (c_language_defn): Likewise. (cplus_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. * d-lang.c (d_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * go-lang.c (go_language_defn): Likewise. * language.c (unknown_language_defn): Likewise. (auto_language_defn): Likewise. * m2-lang.c (m2_language_defn): Likewise. * objc-lang.c (objc_language_defn): Likewise. * opencl-lang.c (opencl_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise. * rust-lang.c (rust_language_defn): Likewise. commit fc913e53c353218ba1a9efa423c08767691a682a Author: Andrew Burgess Date: Wed Apr 10 23:07:10 2019 +0100 gdb/ada: Update some predicate functions to return bool A later commit would like to make use of a pointer to the function ada_is_string_type, however, this will require the function to return a bool (so the signature matches). As the ada_is_string_type is a predicate function, and its return value is only ever used as either true or false, then this commit updates the function to return a bool. As a consequence ada_is_character_type needs to change too. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_is_character_type): Change return type to bool. (ada_is_string_type): Likewise. * ada-lang.h (ada_is_character_type): Update declaration (ada_is_string_type): Likewise. commit d2b584a55b658fa52ffa3a42b689940d2e98e969 Author: Tom de Vries Date: Mon Apr 29 16:52:10 2019 +0200 [gdb/testsuite] Fix regexp in skip_opencl_tests When running gdb-caching-proc.exp, if skip_opencl_tests fails like this: ... (gdb) run Starting program: \ build/gdb/testsuite/outputs/gdb.base/gdb-caching-proc/opencltest13530.x CHK_ERR (clGetPlatformIDs (1, &platform, NULL), -1001) src/gdb/testsuite/lib/opencl_hostapp.c:73 error: Unknown [Inferior 1 (process 13600) exited with code 01] (gdb) skip_opencl_tests: OpenCL support not detected ... then this regexp in skip_opencl_tests fails to match: ... -re ".*$inferior_exited_re code.*${gdb_prompt} $" { ... so instead we hit the default clause after a 30 seconds timeout. With the iteration count set at 10, we end up taking 6 minutes to run this test-case. Fix this by adding the missing "with" in the regexp, bring back the runtime to half a minute. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-04-29 Tom de Vries * lib/opencl.exp (skip_opencl_tests): Add missing "with" in regexp. commit 4a90ce955e5bcde074b8616ff9d20f9939a9a358 Author: John Darrington Date: Mon Apr 29 16:05:54 2019 +0200 S12Z: Opcodes: Fix crash when trying to decode a truncated operation. opcodes/ * s12z-opc.c (shift_discrim): Return OP_INVALID when reading fails. gas/ * testsuite/gas/s12z/truncated.d: New file. * testsuite/gas/s12z/truncated.s: New file. * testsuite/gas/s12z/s12z.exp: Add new test. commit 637d4b78c55640b9d858546a65d51024a70b5247 Author: GDB Administrator Date: Mon Apr 29 00:00:32 2019 +0000 Automatic date update in version.in commit fa731fa0d400568fb1fd68c247fc0c55b53c2a2f Author: Philippe Waroquiers Date: Sun Apr 28 06:54:32 2019 +0200 Follow-up to Support style in 'frame|thread apply' Fix build problem when configuring with guile. Fix the forgotten copy of ChangeLog info to ChangeLog. commit 4cacd8ca8de0f9c22380e5a68cff7ff9f6bd4704 Author: GDB Administrator Date: Sun Apr 28 00:01:02 2019 +0000 Automatic date update in version.in commit 8a522c6cab56bd55f1454638786f999f6f636354 Author: Philippe Waroquiers Date: Sat Mar 9 23:55:44 2019 +0100 Have 'thread|frame apply' style their output. 'thread|frame apply CMD' launches CMD so that CMD output goes to a string_file. This patch ensures that string_file for such CMD output contains style escape sequences that 'thread|frame apply' will later on output on the real terminal, so as to have CMD output properly styled. The idea is to have the class ui_file having overridable methods to indicate that the output to this ui_file should be done using 'terminal' behaviour such as styling. Then these methods are overriden in string_file so that a specially constructed string_file will get output with style escape sequences. After this patch, the output of CMD by thread|frame apply CMD is styled similarly as when CMD is launched directly. Note that string_file (term_out true) could also support wrapping, but this is not done (yet?). Tested on debian/amd64. gdb/ChangeLog 2019-04-27 Philippe Waroquiers Support style in 'frame|thread apply' * gdbcmd.h (execute_command_to_string): New term_out parameter. * record.c (record_start, record_stop): Update callers of execute_command_to_string with false. * ui-file.h (class ui_file): New term_out and can_emit_style_escape methods. (class string_file): New constructor with term_out parameter. Override methods term_out and can_emit_style_escape. New member term_out. (class stdio_file): Override can_emit_style_escape. (class tee_file): Override term_out and can_emit_style_escape. * utils.h (can_emit_style_escape): Remove. * utils.c (can_emit_style_escape): Likewise. Update all callers of can_emit_style_escape (SOMESTREAM) to SOMESTREAM->can_emit_style_escape. * source-cache.c (source_cache::get_source_lines): Likewise. * stack.c (frame_apply_command_count): Call execute_command_to_string passing the term_out characteristic of the current gdb_stdout. * thread.c (thr_try_catch_cmd): Likewise. * top.c (execute_command_to_string): pass term_out parameter to construct the string_file for the command output. * ui-file.c (term_cli_styling): New function (most code moved from utils.c can_emit_style_escape). (string_file::string_file, string_file::can_emit_style_escape, stdio_file::can_emit_style_escape, tee_file::term_out, tee_file::can_emit_style_escape): New functions. commit 136afab8c7d8a8a91dbf38e79be4f9dc4125d552 Author: Philippe Waroquiers Date: Tue Apr 23 23:43:24 2019 +0200 Implement show | set may-call-functions [on|off] Inferior function calls are powerful but might lead to undesired results such as crashes when calling nested functions (frequently used in particular in Ada). This implements a GDB setting to disable calling inferior functions. Note: the idea is that if/when the 'slash command' patch is pushed, that this setting can be changed e.g. by using the shortcut /c. This is version 2 of the patch. It handles all the received comments, mostly replace 'can-call' by 'may-call', and avoid using 'inferior function call' in factor of 'calling function in the program'. 2019-04-26 Philippe Waroquiers gdb/ChangeLog * NEWS: Mention the new set|show may-call-functions. * infcall.c (may_call_functions_p): New variable. (show_may_call_functions_p): New function. (call_function_by_hand_dummy): Throws an error if not may-call-functions. (_initialize_infcall): Call add_setshow_boolean_cmd for may-call-functions. gdb/testsuite/ChangeLog * gdb.base/callexit.exp: Test may-call-functions off. gdb/doc/ChangeLog * gdb.texinfo (Calling): Document the new set|show may-call-functions. commit a45328b93bdd5399da8a9e56817e445cc2068edd Author: Andrew Bennett Date: Mon Apr 22 15:12:09 2019 -0700 [MIPS] Add load-link, store-conditional paired instructions Add several baseline MIPS32R6[1] and MIPS64R6[2] instructions that were omitted from the initial spec. These instructions are optional in implementations but not associated with any ASE or pseudo-ASE. Their presence is indicated by the XNP bit in the Config5 register. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS32 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 228-229, pp. 354-357. [2] "MIPS Architecture for Programmers Volume II-A: The MIPS64 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00087, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 289-290 and pp. 458-460. gas/ * config/tc-mips.c (macro) : New cases and expansions for paired instructions. * testsuite/gas/mips/llpscp-32.s: New test source. * testsuite/gas/mips/llpscp-64.s: Likewise. * testsuite/gas/mips/llpscp-32.d: New test. * testsuite/gas/mips/llpscp-64.d: Likewise. * testsuite/gas/mips/mips.exp: Run the new tests. * testsuite/gas/mips/r6.s: Add new instructions to test source. * testsuite/gas/mips/r6-64.s: Likewise. * testsuite/gas/mips/r6-64-n32.d: Check new instructions. * testsuite/gas/mips/r6-64-n64.d: Likewise. * testsuite/gas/mips/r6-n32.d: Likewise. * testsuite/gas/mips/r6-n64.d: Likwwise. * testsuite/gas/mips/r6.d: Likewise. include/ * opcode/mips.h (M_LLWP_AB, M_LLDP_AB): New enum values. (M_SCWP_AB, M_SCDP_AB): Likewise. opcodes/ * mips-opc.c (mips_builtin_opcodes): Add llwp, lldp, scwp, scdp. commit 45f0ab12d463cb3999a4286e679bdef05884b3a3 Author: GDB Administrator Date: Sat Apr 27 00:00:28 2019 +0000 Automatic date update in version.in commit 7cb22ff84745da0856bf74578b9bd7dff4379ed5 Author: H.J. Lu Date: Fri Apr 26 10:19:53 2019 -0700 i386: Don't add 0x66 prefix to IRET for .code16gcc The .code16gcc directive supports 16bit mode with 32-bit address. Since IRET (opcode 0xcf) in 16bit mode returns from an interrupt in 16bit mode, we shouldn't add 0x66 prefix for IRET. PR gas/24485 * config/tc-i386.c (process_suffix): Don't add DATA_PREFIX_OPCODE to IRET for .code16gcc. * testsuite/gas/i386/jump16.s: Add IRET tests. * testsuite/gas/i386/jump16.d: Updated. commit c54f15248ee990df6cea0b4730cd61b227a0e082 Author: H.J. Lu Date: Fri Apr 26 07:52:00 2019 -0700 Don't complain undefined weak dynamic reference When undefined non-weak references in IR objects are optimized out by LTO, we can have weak dynamic referencs to symbols marked with bfd_link_hash_undefined. We shouldn't complain such undefined weak dynamic references. bfd/ PR ld/24486 * elflink.c (elf_link_output_extsym): Don't complain undefined weak dynamic reference. ld/ PR ld/24486 * testsuite/ld-plugin/lto.exp: Run PR ld/24486 tests. * testsuite/ld-plugin/pr24486a.c: New file. * testsuite/ld-plugin/pr24486b.c: Likewise. * testsuite/ld-plugin/pr24486c.c: Likewise. commit 8e1920d611ab3330d6dfa610ff771cf5dc796097 Author: Nick Clifton Date: Fri Apr 26 15:29:39 2019 +0100 Updated Russian translation for the ld subdirectory. * po/ru.po: Updated Russian translation. commit a094d01f01688a49810c2cd970086ed22ea617f4 Author: Christopher Yeleighton Date: Fri Apr 26 15:23:59 2019 +0100 Fix the hyphenation of word phrases such as "target specific" and "machine specific". * ld.texi: Properly hyphenate the word "specific". commit 152d61760a048909bf93f256063b5657b34ffd4c Author: GDB Administrator Date: Fri Apr 26 00:00:21 2019 +0000 Automatic date update in version.in commit 725cbb63263d27e87f5a4f9b73281e7710de53e4 Author: Keith Seitz Date: Thu Apr 25 13:05:51 2019 -0700 c++/24367: Infinite recursion of typedef substitution This bug finds another usage where we end up segfaulting while normalizing user input. inspect_type and replace_type recurse, attempting to substitute the "real" symbol name for the typedef name. However, since the both these names are the same, they keep calling each other until the stack overflows. A simple reproducer for it is given by typedef struct foo foo; int qux (foo *f) { return 0; } (gdb) b qux(foo*) Segmentation fault inspect_type already contains some special handling to prevent a similar situation from occurring with namespaces. I wonder, however, whether we need be so pedantic about the exact nature of the substitution. This patch implements this rather more aggressive assumption that these substitutions should be avoided whenever the replacement symbol's name is exactly the same as the one we're trying to substitute. [In the above example, we're trying to substitute the tyepdef named "foo" with the symbol named "foo" (a struct).] gdb/ChangeLog: PR c++/24367 * cp-support.c (inspect_type): Don't attempt substitutions of symbol with the same name. gdb/testsuite/ChangeLog: PR c++/24367 * gdb.cp/meth-typedefs.cc (incomplete_struct) (another_incomplete_struct, test_incomplete): New definitions. (main): Use new definitions. * gdb.cp/meth-typedefs.exp: Add new tests for `test_incomplete' functions. commit 3d1cbb78936fbf2985ffd2ebf074841599ead788 Author: Tom Tromey Date: Wed Apr 24 12:13:35 2019 -0600 Fix memory leak in exception code PR gdb/24475 concerns a memory leak coming from gdb's exception handling code. The leak occurs because throw_exception_sjlj does not arrange to destroy the exception object it is passed. However, because gdb_exception has a destructor, it's undefined to longjmp in this situation. This patch fixes the problem by avoiding the need to run any destructors in gdb_rl_callback_handler, by making the gdb_exception "static". gdb/ChangeLog 2019-04-25 Tom Tromey PR gdb/24475: * event-top.c (gdb_rl_callback_handler): Make "gdb_rl_expt" static. commit 94aeb44b001ab2d632806242a3bacb0a879abe15 Author: Tom Tromey Date: Wed Apr 24 06:50:06 2019 -0600 Make exception handling more efficient This makes exception handling more efficient in a few spots, through the use of const- and rvalue-references. I wrote this patch by commenting out the gdb_exception copy constructor and then examining the resulting error messages one by one, introducing the use of std::move where appropriate. gdb/ChangeLog 2019-04-25 Tom Tromey * xml-support.c (struct gdb_xml_parser) : Take an rvalue reference. (gdb_xml_start_element_wrapper, gdb_xml_end_element_wrapper) (gdb_xml_parser::parse): Use std::move. * python/python-internal.h (gdbpy_convert_exception): Take a const reference. * python/py-value.c (valpy_getitem, valpy_nonzero): Use std::move. * python/py-utils.c (gdbpy_convert_exception): Take a const reference. * python/py-inferior.c (infpy_write_memory, infpy_search_memory): Use std::move. * python/py-breakpoint.c (bppy_set_condition, bppy_set_commands): Use std::move. * mi/mi-main.c (mi_print_exception): Take a const reference. * main.c (handle_command_errors): Take a const reference. * linespec.c (parse_linespec): Use std::move. * infcall.c (run_inferior_call): Use std::move. (call_function_by_hand_dummy): Use std::move. * exec.c (try_open_exec_file): Use std::move. * exceptions.h (exception_print, exception_fprintf) (exception_print_same): Update. * exceptions.c (print_exception, exception_print) (exception_fprintf, exception_print_same): Change parameters to const reference. * event-top.c (gdb_rl_callback_read_char_wrapper): Update. * common/new-op.c: Use std::move. * common/common-exceptions.h (struct gdb_exception): Add move constructor. (struct gdb_exception_error, struct gdb_exception_quit, struct gdb_quit_bad_alloc): Change constructor to move constructor. (throw_exception): Change parameter to rvalue reference. * common/common-exceptions.c (throw_exception): Take rvalue reference. * cli/cli-interp.c (safe_execute_command): Use std::move. * breakpoint.c (insert_bp_location, location_to_sals): Use std::move. commit 680d7fd5fcff860a31021845389d4dfeb7b42e3c Author: Tom Tromey Date: Wed Apr 24 06:50:01 2019 -0600 Avoid undefined behavior in Guile exception handling The Guile code will longjmp (via scm_throw) when an object requiring destruction is on the stack. This is undefined behavior. This changes this code to run any destructors in inner scopes, and to pass a POD to gdbscm_throw_gdb_exception. gdb/ChangeLog 2019-04-25 Tom Tromey * guile/scm-exception.c (gdbscm_scm_from_gdb_exception) (gdbscm_throw_gdb_exception): Take a gdbscm_gdb_exception. * guile/scm-block.c, guile/scm-breakpoint.c, guile/scm-cmd.c, guile/scm-disasm.c, guile/scm-frame.c, guile/scm-lazy-string.c, guile/scm-math.c, guile/scm-param.c, guile/scm-ports.c, guile/scm-symbol.c, guile/scm-symtab.c, guile/scm-type.c, guile/scm-value.c: Use unpack. * guile/guile-internal.h (gdbscm_scm_from_gdb_exception): Take a gdbscm_gdb_exception. (gdbscm_throw_gdb_exception): Likewise. (struct gdbscm_gdb_exception): New. (unpack): New function. (gdbscm_wrap): Use unpack. commit c6fdd8b2052baa9b7a27d4d34f109c9622b53509 Author: Tom Tromey Date: Tue Apr 23 07:29:49 2019 -0600 Make SJLJ exceptions more efficient This changes the SJLJ exception handling code to be a bit more efficient, by using rvalue references and move assignment when possible. Tested by the buildbot. gdb/ChangeLog 2019-04-25 Tom Tromey * event-top.c (gdb_rl_callback_read_char_wrapper_noexcept) (gdb_rl_callback_handler): Use std::move. * common/common-exceptions.h (struct gdb_exception): Add move assignment operator. (throw_exception_sjlj): Change "exception" to const reference. * common/common-exceptions.c (exceptions_state_mc_catch): Update. (throw_exception_sjlj): Change "exception" to const reference. commit cc06b668978e542ecbc2aff1beca40e5baff86b0 Author: Tom Tromey Date: Tue Apr 23 15:31:07 2019 -0600 Remove exception_none Now that gdb_exception has a constructor, there's no need for exception_none. This patch removes it. gdb/ChangeLog 2019-04-25 Tom Tromey * xml-support.c (gdb_xml_parser::gdb_xml_parser): Update. * python/py-value.c (valpy_getitem, valpy_nonzero): Update. * python/py-inferior.c (infpy_write_memory, infpy_search_memory): Update. * python/py-breakpoint.c (bppy_set_condition, bppy_set_commands): Update. * mi/mi-interp.c (mi_interp::exec): Update. * linespec.c (parse_linespec): Update. * infcall.c (run_inferior_call): Update. * guile/scm-value.c (gdbscm_value_to_lazy_string): Update. * guile/scm-symbol.c (gdbscm_lookup_symbol) (gdbscm_lookup_global_symbol): Update. * guile/scm-param.c (gdbscm_parameter_value): Update. * guile/scm-frame.c (gdbscm_frame_read_register) (gdbscm_frame_read_var): Update. * guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Update. * exec.c (try_open_exec_file): Update. * event-top.c (gdb_rl_callback_read_char_wrapper_noexcept) (gdb_rl_callback_handler): Update. * common/common-exceptions.h (exception_none): Don't declare. * common/common-exceptions.c (exception_none): Don't define. (struct catcher) : Update. * cli/cli-interp.c (safe_execute_command): Update. * breakpoint.c (insert_bp_location, location_to_sals): Update. commit cf532bd13616fbabe487d98107cde3202ad58ab7 Author: Ali Tamur Date: Fri Mar 29 19:29:24 2019 -0700 [PATCH] Support for DW_FORM_strx tag DW_FORM_strx is the new name of DW_FORM_GNU_str_index in the Dwarf 5 standard. This is a small step towards supporting Dwarf 5 in gdb. commit 82433e3e270973c3f49d55d41266de6adbf9006d Author: Sergio Durigan Junior Date: Thu Apr 25 14:26:18 2019 -0400 ChangeLog entries for the previous commit. I forgot to include the ChangeLog entries in the commit 57e5e645010430b3d73f8c6a757d09f48dc8f8d5 ("Implement dump of mappings with ELF headers by gcore"). commit 57e5e645010430b3d73f8c6a757d09f48dc8f8d5 Author: Sergio Durigan Junior Date: Tue Apr 23 18:17:57 2019 -0400 Implement dump of mappings with ELF headers by gcore This patch has a long story, but it all started back in 2015, with commit df8411da087dc05481926f4c4a82deabc5bc3859 ("Implement support for checking /proc/PID/coredump_filter"). The purpose of that commit was to bring GDB's corefile generation closer to what the Linux kernel does. However, back then, I did not implement the full support for the dumping of memory mappings containing ELF headers (like mappings of DSOs or executables). These mappings were being dumped most of time, though, because the default value of /proc/PID/coredump_filter is 0x33, which would cause anonymous private mappings (DSOs/executable code mappings have this type) to be dumped. Well, until something happened on binutils... A while ago, I noticed something strange was happening with one of our local testcases on Fedora GDB: it was failing due to some strange build-id problem. On Fedora GDB, we (unfortunately) carry a bunch of "local" patches, and some of these patches actually extend upstream's build-id support in order to generate more useful information for the user of a Fedora system (for example, when the user loads a corefile into GDB, we detect whether the executable that generated that corefile is present, and if it's not we issue a warning suggesting that it should be installed, while also providing the build-id of the executable). A while ago, Fedora GDB stopped printing those warnings. I wanted to investigate this right away, and spent some time trying to determine what was going on, but other things happened and I got sidetracked. Meanwhile, the bug started to be noticed by some of our users, and its priority started changing. Then, someone on IRC also mentioned the problem, and when I tried helping him, I noticed he wasn't running Fedora. Hm... So maybe the bug was *also* present upstream. After "some" time investigating, and with a lot of help from Keith and others, I was finally able to determine that yes, the bug is also present upstream, and that even though it started with a change in ld, it is indeed a GDB issue. So, as I said, the problem started with binutils, more specifically after the following commit was pushed: commit f6aec96dce1ddbd8961a3aa8a2925db2021719bb Author: H.J. Lu Date: Tue Feb 27 11:34:20 2018 -0800 ld: Add --enable-separate-code This commit makes ld use "-z separate-code" by default on x86-64 machines. What this means is that code pages and data pages are now separated in the binary, which is confusing GDB when it tries to decide what to dump. BTW, Fedora 28 binutils doesn't have this code, which means that Fedora 28 GDB doesn't have the problem. From Fedora 29 on, binutils was rebased and incorporated the commit above, which started causing Fedora GDB to fail. Anyway, the first thing I tried was to pass "-z max-page-size" and specify a bigger page size (I saw a patch that did this and was proposed to Linux, so I thought it might help). Obviously, this didn't work, because the real "problem" is that ld will always use separate pages for code and data. So I decided to look into how GDB dumped the pages, and that's where I found the real issue. What happens is that, because of "-z separate-code", the first two pages of the ELF binary are (from /proc/PID/smaps): 00400000-00401000 r--p 00000000 fc:01 799548 /file Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 4 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 4 kB Private_Dirty: 0 kB Referenced: 4 kB Anonymous: 0 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd mr mw me dw sd 00401000-00402000 r-xp 00001000 fc:01 799548 /file Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 4 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 4 kB Referenced: 4 kB Anonymous: 4 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd ex mr mw me dw sd Whereas before, we had only one: 00400000-00401000 r-xp 00000000 fc:01 798593 /file Size: 4 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 4 kB Pss: 4 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 4 kB Referenced: 4 kB Anonymous: 4 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd ex mr mw me dw sd Notice how we have "Anonymous" data mapped into the page. This will be important. So, the way GDB decides which pages it should dump has been revamped by my patch in 2015, and now it takes the contents of /proc/PID/coredump_filter into account. The default value for Linux is 0x33, which means: Dump anonymous private, anonymous shared, ELF headers and HugeTLB private pages. Or: filter_flags filterflags = (COREFILTER_ANON_PRIVATE | COREFILTER_ANON_SHARED | COREFILTER_ELF_HEADERS | COREFILTER_HUGETLB_PRIVATE); Now, it is important to keep in mind that GDB doesn't always have *all* of the necessary information to exactly determine the type of a page, so the whole algorithm is based on heuristics (you can take a look at linux-tdep.c:dump_mapping_p and linux-tdep.c:linux_find_memory_regions_full for more info). Before the patch to make ld use "-z separate-code", the (single) page containing data and code was being flagged as an anonymous (due to the non-zero "Anonymous:" field) private (due to the "r-xp" permission), which means that it was being dumped into the corefile. That's why it was working fine. Now, as you can imagine, when "-z separate-code" is used, the *data* page (which is where the ELF notes are, including the build-id one) now doesn't have any "Anonymous:" mapping, so the heuristic is flagging it as file-backed private, which is *not* dumped by default. The next question I had to answer was: how come a corefile generated by the Linux kernel was correct? Well, the answer is that GDB, unlike Linux, doesn't actually implement the COREFILTER_ELF_HEADERS support. On Linux, even though the data page is also treated as a file-backed private mapping, it is also checked to see if there are any ELF headers in the page, and then, because we *do* have ELF headers there, it is dumped. So, after more time trying to think of ways to fix this, I was able to implement an algorithm that reads the first few bytes of the memory mapping being processed, and checks to see if the ELF magic code is present. This is basically what Linux does as well, except that, if it finds the ELF magic code, it just dumps one page to the corefile, whereas GDB will dump the whole mapping. But I don't think that's a big issue, to be honest. It's also important to explain that we *only* perform the ELF magic code check if: - The algorithm has decided *not* to dump the mapping so far, and; - The mapping is private, and; - The mapping's offset is zero, and; - The user has requested us to dump mappings with ELF headers. IOW, we're not going to blindly check every mapping. As for the testcase, I struggled even more trying to write it. Since our build-id support on upstream GDB is not very extensive, it's not really possible to determine whether a corefile contains build-id information or not just by using GDB. So, after thinking a lot about the problem, I decided to rely on an external tool, eu-unstrip, in order to verify whether the dump was successful. I verified the test here on my machine, and everything seems to work as expected (i.e., it fails without the patch, and works with the patch applied). We are working hard to upstream our "local" Fedora GDB patches, and we intend to submit our build-id extension patches "soon", so hopefully we'll be able to use GDB itself to perform this verification. I built and regtested this on the BuildBot, and no problems were found. gdb/ChangeLog: 2019-04-25 Sergio Durigan Junior PR corefiles/11608 PR corefiles/18187 * linux-tdep.c (dump_mapping_p): Add new parameters ADDR and OFFSET. Verify if current mapping contains an ELF header. (linux_find_memory_regions_full): Adjust call to dump_mapping_p. gdb/testsuite/ChangeLog: 2019-04-25 Sergio Durigan Junior PR corefiles/11608 PR corefiles/18187 * gdb.base/coredump-filter-build-id.exp: New file. commit dd06d4d6889ee58b76255b775f52ba8e475a7a2d Author: Alan Hayward Date: Fri Apr 12 16:36:51 2019 +0100 testsuite: Add option to capture gdbserver debug Add both board option and environment variable which enables gdbserver debug and sends it to the file gdbserver.debug, located in the output directory for the current test. Document this. Add support for the environment variable in the Makefile. The testsuite can be run with gdbserver debug enabled in the following way: make check GDBSERVER_DEBUG=all Disable tspeed.exp when debugging to prevent the log file filling many gigabytes then timing out. gdb/testsuite/ChangeLog: * Makefile.in: Pass through GDBSERVER_DEBUG. * README (Testsuite Parameters): Add GDBSERVER_DEBUG. (gdbserver,debug): Add board setting. * gdb.trace/tspeed.exp: Skip when debugging. * lib/gdb.exp (gdbserver_debug_enabled): New procedure. * lib/gdbserver-support.exp: Likewise commit 6fe014bcd33686cb75e6355f9c36ce483a64ec62 Author: H.J. Lu Date: Thu Apr 25 07:53:46 2019 -0700 LTO: Properly handle wrapper symbols in IR When a wrapper symbol, __wrap_FOO, is defined in IR, its resolution should be LDPR_PREVAILING_DEF, not PREVAILING_DEF_IRONLY, since LTO doesn't know that __wrap_FOO provides definition of FOO. And resolution of FOO should be LDPR_RESOLVED_IR since it is resolved by __wrap_FOO in IR. PR ld/24406 * ld.texi: Remove LTO warning from --wrap. * plugin.c (get_symbols): Update resolution for wrapper and wrapped symbols. * testsuite/ld-plugin/lto.exp: Run ld/24406 tests. * testsuite/ld-plugin/pr24406-1.c: New file. * testsuite/ld-plugin/pr24406-2a.c: Likewise. * testsuite/ld-plugin/pr24406-2b.c: Likewise. commit 723adb650a31859d7cc45832cb8adca0206455ed Author: Sandra Loosemore Date: Thu Apr 25 07:27:02 2019 -0700 Detect invalid length field in debug frame FDE header. GDB was failing to catch cases where a corrupt ELF or core file contained an invalid length value in a Dwarf debug frame FDE header. It was checking for buffer overflow but not cases where the length was negative or caused pointer wrap-around. In addition to the additional validity check, this patch cleans up the multiple signed/unsigned conversions on the length field so that an unsigned representation is used consistently throughout. This patch fixes CVE-2017-9778 and PR gdb/21600. 2019-04-25 Sandra Loosemore Kang Li PR gdb/21600 * dwarf2-frame.c (read_initial_length): Be consistent about using unsigned representation of length. (decode_frame_entry_1): Likewise. Check for wraparound of end pointer as well as buffer overflow. commit 68bb0359eec3093560929b8ad2b3f5d30e7a7e1d Author: Sudakshina Das Date: Thu Apr 25 11:37:25 2019 +0100 [BFD, AArch64] Improve bti/pac plts. This patch aims to improve the definitions of BTI and PAC based PLTs. The following changes are made: * PLT0 does not need PAC instructions since the PLTGOT[2] (and PLTGOT[1]) are readonly so they cannot be corrupted at runtime. Thus both PAC plt0 and BTI+PAC plt0 are removed and we can use basic plt0 and BTI plt0 instead, respectively. * We can remove the extra padding nops when we add the new bti instructions. BTI plt0 and BTI TLSDESC plt are updated. * For better performance PLTn could be padded to 24bytes. Both BTI pltn and PAC pltn are updated. *** bfd/ChangeLog *** 2019-04-25 Sudakshina Das * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): Remove. (PLT_BTI_TLSDESC_ENTRY_SIZE): Remove. (PLT_PAC_ENTRY_SIZE, PLT_BTI_PAC_ENTRY_SIZE): Remove. (PLT_BTI_SMALL_ENTRY_SIZE, PLT_PAC_SMALL_ENTRY_SIZE): Update. (elfNN_aarch64_small_plt0_pac_entry): Remove. (elfNN_aarch64_small_plt0_bti_pac_entry): Remove. (elfNN_aarch64_small_plt0_bti_entry): Update. (elfNN_aarch64_small_plt_bti_entry): Update. (elfNN_aarch64_small_plt_pac_entry): Update. (elfNN_aarch64_tlsdesc_small_plt_bti_entry): Update. (setup_plt_values): Setup new entries. (elfNN_aarch64_finish_dynamic_sections): Remove size change. (elfNN_aarch64_plt_sym_val): Likewise. *** ld/ChangeLog *** 2019-04-25 Sudakshina Das * testsuite/ld-aarch64/bti-pac-plt-1.d: Update. * testsuite/ld-aarch64/bti-pac-plt-2.d: Update. * testsuite/ld-aarch64/bti-plt-1.d: Update. * testsuite/ld-aarch64/bti-plt-3.d: Update. * testsuite/ld-aarch64/bti-plt-5.d: Update. * testsuite/ld-aarch64/pac-plt-1.d: Update. * testsuite/ld-aarch64/pac-plt-2.d: Update. commit cd0923370be1a6412e9b8fb5c8e9e39d90f1d3ea Author: Maciej W. Rozycki Date: Thu Apr 25 01:28:49 2019 +0100 MIPS/include: opcode/mips.h: Update stale comment for CODE20 operand Complement commit 1586d91e32ea ("/ 0 should send SIGFPE not SIGTRAP..."), , and update a stale comment referring the 20-bit code field of the BREAK and SDBBP instructions, by making it explicit that where permitted by choosing the MIPS32 or a later ISA the whole field can now be set with a single operand for the SDBBP instruction only. include/ * opcode/mips.h: Update comment for MIPS32 CODE20 operand. commit f88dbe3f8a9cef79a6ff32ba3734a7a308b8ea26 Author: GDB Administrator Date: Thu Apr 25 00:00:15 2019 +0000 Automatic date update in version.in commit 38c3873e5d53902cf9cc73a4a5a05adf371296a6 Author: Alexandre Oliva Date: Sat Apr 13 05:55:34 2019 -0300 Speed up locview resolution with relaxable frags Targets such as xtensa incur a much higher overhead to resolve location view numbers than e.g. x86, because the expressions used to compute view numbers cannot be resolved soon enough. Each view number is computed by incrementing the previous view, if they are both at the same address, or by resetting it to zero otherwise. If PV is the previous view number, PL is its location, and NL is the location of the next view, its number is computed by evaluating NV = !(NL > PL) * (PV + 1). set_or_check_view uses resolve_expression to decide whether portions of this expression can be simplified to constants. The (NL > PL) subexpression is one that can often be resolved to a constant, breaking chains of view number computations at instructions of nonzero length, but not after alignment that might be unnecessary. Alas, when nearly every frag ends with a relaxable instruction, frag_offset_fixed_p will correctly fail to determine a known offset between two unresolved addresses in neighboring frags, so the unresolved symbolic operation will be constructed and used in the computation of most view numbers. This results in very deep expressions. As view numbers get referenced in location view lists, each operand in the list goes through symbol_clone_if_forward_ref, which recurses on every subexpression. If each view number were to be referenced, this would exhibit O(n^2) behavior, where n is the depth of the view number expressions, i.e., the length of view number sequences without an early resolution that cuts the expression short. This patch enables address compares used by view numbering to be resolved even when exact offsets are not known, using new logic to determine when the location either remained the same or changed for sure, even with the possibility of relaxation. This enables most view number expressions to be resolved with a small, reasonable depth. PR gas/24444 * frags.c (frag_gtoffset_p): New. * frags.h (frag_gtoffset_p): Declare it. * expr.c (resolve_expression): Use it. commit 1670072efb31e82d52d408940062860e2835d79c Author: Tom Tromey Date: Wed Apr 24 13:43:27 2019 -0600 Fix Rust testing This changes the gdb test suite to omit -fno-stack-protector when compiling Rust code. This makes Rust testing work again. I think I saw this patch somewhere already, but I couldn't find it again just now, so I'm checking this version in. gdb/testsuite/ChangeLog 2019-04-24 Tom Tromey * lib/gdb.exp (gdb_compile): Don't add -fno-stack-protector for Rust. commit 44ed80923ab89e141120defa8c1209b69869a7ac Author: Sandra Loosemore Date: Wed Apr 24 12:14:56 2019 -0700 Use better test for usable compiler in ld testsuite. The ld testsuite includes numerous tests that depend on being able to compile and link programs with the C compiler. Some of these tests use [which $CC] to check for the presence of the compiler before proceeding with the test, but run_ld_link_exec_tests and run_cc_link_tests give ERRORs if compilation fails. Also, even if $CC is defined and present, it may not be usable due to missing libraries, etc. This patch adds a new procedure check_compiler_available that attempts to build an empty program and caches the result. Uses of [which $CC] are replaced with calls to this procedure, and run_ld_link_exec_tests and run_cc_link_tests now also guard attempts to use $CC. 2019-04-24 Sandra Loosemore ld/ * testsuite/config/default.exp: Use [check_compiler_available] instead of [which $CC]. * testsuite/ld-auto-import/auto-import.exp: Likewise. * testsuite/ld-cygwin/exe-export.exp: Likewise. * testsuite/ld-elf/audit.exp: Likewise. * testsuite/ld-elf/compress.exp: Likewise. * testsuite/ld-elf/dwarf.exp: Likewise. * testsuite/ld-elf/elf.exp: Likewise. * testsuite/ld-elf/indirect.exp: Likewise. * testsuite/ld-elf/linux-x86.exp: Likewise. * testsuite/ld-elf/shared.exp: Likewise. * testsuite/ld-elf/tls.exp: Likewise. * testsuite/ld-elf/wrap.exp: Likewise. * testsuite/ld-elfcomm/elfcomm.exp: Likewise. * testsuite/ld-elfvers/vers.exp: Likewise. * testsuite/ld-elfvsb/elfvsb.exp: Likewise. * testsuite/ld-elfweak/elfweak.exp: Likewise. * testsuite/ld-gc/gc.exp: Likewise. * testsuite/ld-i386/i386.exp: Likewise. * testsuite/ld-i386/no-plt.exp: Likewise. * testsuite/ld-i386/tls.exp: Likewise. * testsuite/ld-ifunc/ifunc.exp: Likewise. * testsuite/ld-mn10300/mn10300.exp: Likewise. * testsuite/ld-pe/pe-compile.exp: Likewise. * testsuite/ld-pe/pe-run.exp: Likewise. * testsuite/ld-pe/pe-run2.exp: Likewise. * testsuite/ld-pie/pie.exp: Likewise. * testsuite/ld-plugin/lto.exp: Likewise. * testsuite/ld-plugin/plugin.exp: Likewise. * testsuite/ld-scripts/crossref.exp: Likewise. * testsuite/ld-sh/sh.exp: Likewise. * testsuite/ld-shared/shared.exp: Likewise. * testsuite/ld-size/size.exp: Likewise. * testsuite/ld-srec/srec.exp: Likewise. * testsuite/ld-undefined/undefined.exp: Likewise. * testsuite/ld-unique/unique.exp: Likewise. * testsuite/ld-x86-64/mpx.exp: Likewise. * testsuite/ld-x86-64/no-plt.exp: Likewise. * testsuite/ld-x86-64/tls.exp: Likewise. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Call check_compiler_available before trying to use the compiler. (run_cc_link_tests): Likewise. (check_compiler_available): New. Use it instead of [which $CC]. commit 596179f77c803d3fc5586465f4ece6503055d035 Author: Sergio Durigan Junior Date: Wed Apr 24 14:53:59 2019 -0400 Use "pulongest" on aarch64-tdep.c:aarch64_gdbarch_init While trying to build GDB on i686, I found the following error: In file included from ../../gdb/common/common-defs.h:105, from ../../gdb/defs.h:28, from ../../gdb/aarch64-tdep.c:21: ../../gdb/aarch64-tdep.c: In function 'gdbarch* aarch64_gdbarch_init(gdbarch_info, gdbarch_list*)': ../../gdb/aarch64-tdep.c:3176:43: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] 3176 | internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../gdb/common/gdb_locale.h:28:29: note: in definition of macro '_' 28 | # define _(String) gettext (String) | ^~~~~~ ../../gdb/aarch64-tdep.c:3176:64: note: format string is defined here 3176 | internal_error (__FILE__, __LINE__, _("VQ out of bounds: %ld (max %d)"), | ~~^ | | | long int | %lld This happens because aarch64-tdep.c:aarch64_gdbarch_init prints a "uint64_t" variable using "%ld". This patch fixes the build by using "pulongest" instead. As explained in a similar fix (commit 495143533ad95369811391c6e3c6dadd69d7dd67), this should be safe because if aarch64-tdep.c is included in the build, then ULONGEST must be a 64-bit type. gdb/ChangeLog: 2019-04-24 Sergio Durigan Junior * aarch64-tdep.c (aarch64_gdbarch_init): Use "pulongest" to print "vq". commit a59240a41ac34d91e4ef5dd8b484763639388364 Author: Tom Tromey Date: Tue Apr 16 11:11:10 2019 -0600 Fix passing of struct with bitfields on x86-64 Commit 4aa866af ("Fix AMD64 return value ABI in expression evaluation") introduced a regression when calling a function with a structure that contains bitfields. Because the caller of amd64_has_unaligned_fields handles bitfields already, it seemed to me that the simplest fix was to ignore bitfields here. gdb/ChangeLog 2019-04-24 Tom Tromey * amd64-tdep.c (amd64_has_unaligned_fields): Ignore bitfields. gdb/testsuite/ChangeLog 2019-04-24 Tom Tromey * gdb.arch/amd64-eval.exp: Test bitfield return. * gdb.arch/amd64-eval.cc (struct Bitfields): New. (class Foo) : New method. (main): Call it. commit 1b8dd6432644c256ab294d205a8e00f6c6dc5073 Author: Nick Clifton Date: Wed Apr 24 17:44:31 2019 +0100 Stop strip from merging notes when stripping debug or dwo information. * objcopy.c (strip_main): Do not enable note merging by default if just stripping debug or dwo information. * doc/binutils.texi (strip): Update documentation. commit 1903f1385bff910861942743860d8577423bcb6c Author: Alan Modra Date: Wed Apr 24 11:26:51 2019 +0930 resolve_symbol_value vs. .loc view resolution In most cases we don't want expression symbols, such as that created for an expression like "symbol + (1f - .)", resolved down to a constant. Instead we'd like to leave the expression as "symbol + constant" once the "1f - ." part has been resolved, and let the backend decide whether "symbol" can be reduced further. However, that doesn't work when trying to resolve .loc view symbols early. We get expression symbols left as an O_symbol expression pointing at an absolute symbol, and marked as sy_flags.sy_resolved. That wouldn't really be a problem, but when one of those expression symbols is used in further .loc view expressions, its value is taken as zero. This patch fixes the symbol value mistake, and stops creation of O_symbol expression symbols pointing to absolute symbols. Either of these fixes would cure the .loc view usage. PR 24444 * symbols.c (resolve_symbol_value): When handling symbols marked as sy_flags.resolved, return correct value for the case of expression symbols left as an O_symbol expression. Merge O_symbol code handling undefined and common symbols with code handling special cases of expression symbols. Use seg_left to test for undefined and common symbols. Don't leave an O_symbol expression when X_add_symbol resolves to the absolute_section. Init final_val later. * testsuite/gas/mmix/basep-7.d: Adjust expected output. commit a679f24ecc00ff7df02c5e6e4804fc9f19cbe595 Author: John Darrington Date: Wed Apr 24 09:41:23 2019 +0200 S12Z: Opcodes: Handle bit map operations with non-canonical operands. opcodes/ * s12z-opc.c (bm_decode): Handle the RESERVERD0 case. gas/ * testsuite/gas/s12z/bit-manip-invalid.d: Extend the test. * testsuite/gas/s12z/bit-manip-invalid.s: Extend the test. commit d10be0cb9e61f29a0de368ebcc78bba22a902ad5 Author: John Darrington Date: Mon Apr 15 09:25:23 2019 +0200 S12Z: s12z-opc.h: Add extern "C" bracketing opcodes/ * s12z-opc.h: Add extern "C" bracketing to help users who wish to use this interface in c++ code. commit 05b1991f1a942f9d13b5363fb4c05e34ea44ef57 Author: GDB Administrator Date: Wed Apr 24 00:00:16 2019 +0000 Automatic date update in version.in commit f872fdbb5b83f39f359bc1cd016dcc0456cb0c0a Author: Andrew Burgess Date: Thu Jan 10 20:38:42 2019 +0000 gdb/s12z: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * s12z-tdep.c (s12z_unwind_pc): Delete. (s12z_unwind_sp): Delete. (s12z_gdbarch_init): Don't register deleted functions with gdbarch. commit b614e6f3f820fe08d407b57821456f672d4d1a6f Author: Andrew Burgess Date: Thu Jan 10 20:36:34 2019 +0000 gdb/rl78: Use default gdbarch methods where possible Make use of the default gdbarch method gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * rl78-tdep.c (rl78_unwind_sp): Delete. (rl78_gdbarch_init): Don't register deleted function with gdbarch. commit 14faed38e730e3ab2a1aa8d5232b4883638fd857 Author: Andrew Burgess Date: Thu Jan 10 20:32:40 2019 +0000 gdb/xstormy16: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * xstormy16-tdep.c (xstormy16_unwind_sp): Delete. (xstormy16_unwind_pc): Delete. (xstormy16_dummy_id): Delete. (xstormy16_gdbarch_init): Don't register deleted functions with gdbarch. commit 541aad8ac923fa2d4a9d35fdf82b487b9f6e0ea8 Author: Andrew Burgess Date: Thu Jan 10 20:30:32 2019 +0000 gdb/vax: Use default gdbarch methods where possible Make use of the default gdbarch method gdbarch_unwind_pc where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * vax-tdep.c (vax_unwind_pc): Delete. (vax_gdbarch_init): Don't register deleted function with gdbarch. commit 29222070e410d441108895fcc3011f576bd05461 Author: Andrew Burgess Date: Thu Jan 10 20:28:24 2019 +0000 gdb/v850: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * v850-tdep.c (v850_unwind_sp): Delete. (v850_unwind_pc): Delete. (v850_dummy_id): Delete. (v850_gdbarch_init): Don't register deleted functions with gdbarch. commit 0f534d767b257fffd8a9b231c97ff9ed33688452 Author: Andrew Burgess Date: Thu Jan 10 20:25:59 2019 +0000 gdb/tilegx: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * tilegx-tdep.c (tilegx_unwind_sp): Delete. (tilegx_unwind_pc): Delete. (tilegx_unwind_dummy_id): Delete. (tilegx_gdbarch_init): Don't register deleted functions with gdbarch. commit 1ba7b7f9384eafc0748cee4c6731d6bdb717bd20 Author: Andrew Burgess Date: Thu Jan 10 20:23:44 2019 +0000 gdb/tic6x: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * tic6x-tdep.c (tic6x_unwind_sp): Delete. (tic6x_dummy_id): Delete. (tic6x_gdbarch_init): Don't register deleted functions with gdbarch. commit d31f262c36a450fe64e5886228d585c75cfecf14 Author: Andrew Burgess Date: Thu Jan 10 20:20:25 2019 +0000 gdb/sparc: Use default_unwind_pc Make use of the default gdbarch method gdbarch_unwind_pc where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * sparc-tdep.c (sparc_unwind_pc): Delete. (sparc32_gdbarch_init): Don't register deleted function with gdbarch. commit 6d14d64dfefef524398f45fd59c1443ebac624f6 Author: Andrew Burgess Date: Thu Jan 10 20:17:00 2019 +0000 gdb/sh: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * sh-tdep.c (sh_unwind_sp): Delete. (sh_unwind_pc): Delete. (sh_dummy_id): Delete. (sh_gdbarch_init): Don't register deleted functions with gdbarch. commit a40dde9db56ffcea8c2b99e8c4e292ce64f64f9c Author: Andrew Burgess Date: Thu Jan 10 20:15:03 2019 +0000 gdb/score: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * score-tdep.c (score_unwind_sp): Delete. (score_unwind_pc): Delete. (score_dummy_id): Delete. (score_gdbarch_init): Don't register deleted functions with gdbarch. commit 47c47d6907bc44a599baff948d2809616c74c44e Author: Andrew Burgess Date: Thu Jan 10 20:12:28 2019 +0000 gdb/rx: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * rx-tdep.c (rx_unwind_pc): Delete. (rx_unwind_sp): Delete. (rx_dummy_id): Delete. (rx_gdbarch_init): Don't register deleted functions with gdbarch. Update comment. commit 833a4480dd7cadfd645d7b141168a0e22dc50665 Author: Andrew Burgess Date: Thu Jan 10 20:08:18 2019 +0000 gdb/rs6000: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * rs6000-tdep.c (rs6000_unwind_pc): Delete. (rs6000_dummy_id): Delete. (rs6000_gdbarch_init): Don't register deleted functions with gdbarch. commit 3f2cef4945a916e3b566010340bbc70cfe927916 Author: Andrew Burgess Date: Thu Jan 10 18:58:18 2019 +0000 gdb/or1k: Use default gdbarch methods where possible Make use of the default gdbarch method gdbarch_dummy_id where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. This commit leaves or1k_unwind_sp and or1k_unwind_pc in place. These functions do match the default methods except that they add additional debugging code. In order to preserve the debug I have left these functions unchanged. gdb/ChangeLog: * or1k-tdep.c (or1k_dummy_id): Delete. (or1k_gdbarch_init): Don't register deleted function with gdbarch. commit 96acf8844a655e34de3f3b014a7f64f26266dee1 Author: Andrew Burgess Date: Thu Jan 10 18:55:23 2019 +0000 gdb/nios2: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * nios2-tdep.c (nios2_dummy_id): Delete. (nios2_unwind_sp): Delete. (nios2_gdbarch_init): Don't register deleted functions with gdbarch. commit ca0ab0aa8194eda711cf52efe6c26cb821218476 Author: Andrew Burgess Date: Thu Jan 10 18:53:31 2019 +0000 gdb/nds32: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * nds32-tdep.c (nds32_dummy_id): Delete. (nds32_unwind_pc): Delete. (nds32_unwind_sp): Delete. (nds32_gdbarch_init): Don't register deleted functions with gdbarch. commit c825904428f7c89a65eeb313b243f65e950a0a19 Author: Andrew Burgess Date: Thu Jan 10 18:51:11 2019 +0000 gdb/msp430: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * msp430-tdep.c (msp430_unwind_pc): Delete. (msp430_unwind_sp): Delete. (msp430_dummy_id): Delete. (msp430_gdbarch_init): Don't register deleted functions with gdbarch. commit 27f113c8e9b2361caf3dfcf15437020306bf93b9 Author: Andrew Burgess Date: Thu Jan 10 18:48:53 2019 +0000 gdb/moxie: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * moxie-tdep.c (moxie_unwind_sp): Delete. (moxie_unwind_pc): Delete. (moxie_dummy_id): Delete. (moxie_gdbarch_init): Don't register deleted functions with gdbarch. commit aee6c3cd1fea463422f19394f95c311f239b6067 Author: Andrew Burgess Date: Thu Jan 10 18:46:27 2019 +0000 gdb/mn10300: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * mn10300-tdep.c (mn10300_dummy_id): Delete. (mn10300_unwind_pc): Delete. (mn10300_unwind_sp): Delete. (mn10300_push_dummy_call): Use gdbarch_unwind_sp not mn10300_unwind_sp. (mn10300_frame_unwind_init): Don't register deleted functions with gdbarch. commit 8e2b5aea9d3f16961f7fac15caec00e955c1dc81 Author: Andrew Burgess Date: Thu Jan 10 18:37:03 2019 +0000 gdb/mep: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * mep-tdep.c (mep_unwind_pc): Delete. (mep_unwind_sp): Delete. (mep_dummy_id): Delete. (mep_gdbarch_init): Don't register deleted functions with gdbarch. commit 43cf3eded2d3ec0af6f5cf534dd89f47d4958a92 Author: Andrew Burgess Date: Thu Jan 10 18:33:50 2019 +0000 gdb/m68hc11: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * m68hc11-tdep.c (m68hc11_unwind_pc): Delete. (m68hc11_unwind_sp): Delete. (m68hc11_gdbarch_init): Don't register deleted functions with gdbarch. commit 5e79b7bb69c797c3ca401cfa0f7a616eb2e3efe8 Author: Andrew Burgess Date: Thu Jan 10 18:29:47 2019 +0000 gdb/m32r: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * m32r-tdep.c (m32r_unwind_sp): Delete. (m32r_unwind_pc): Delete. (m32r_dummy_id): Delete. (m32r_gdbarch_init): Don't register deleted functions with gdbarch. commit 89b268d8233e11acdfbc5af196166aacc1440ff3 Author: Andrew Burgess Date: Thu Jan 10 18:27:12 2019 +0000 gdb/m32c: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * m32c-tdep.c (m32c_unwind_pc): Delete. (m32c_unwind_sp): Delete. (m32c_dummy_id): Delete. (m32c_gdbarch_init): Don't register deleted functions with gdbarch. commit 946c28d2f93789ff4eec86a8c321af35759fa20a Author: Andrew Burgess Date: Thu Jan 10 18:21:40 2019 +0000 gdb/lm32: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * gdb/lm32-tdep.c (lm32_unwind_sp): Delete. (lm32_unwind_pc): Delete. (lm32_dummy_id): Delete. (lm32_gdbarch_init): Don't register deleted functions with gdbarch. commit bf12844a68f3f4f267846a19df6a280f53e7ec5f Author: Andrew Burgess Date: Thu Jan 10 18:18:39 2019 +0000 gdb/iq2000: Use default gdbarch methods where possible Make use of the default gdbarch methods for gdbarch_dummy_id, gdbarch_unwind_pc, and gdbarch_unwind_sp where possible. I have not tested this change but, by inspecting the code, I believe the default methods are equivalent to the code being deleted. gdb/ChangeLog: * gdb/iq2000-tdep.c (iq2000_unwind_sp): Delete. (iq2000_unwind_pc): Delete. (iq2000_dummy_id): Delete. (iq2000_gdbarch_init): Don't register deleted functions with gdbarch. commit ecbc06d2a687f369da7c304201c9f2cbfed80ec6 Author: Andrew Burgess Date: Fri Apr 12 15:07:51 2019 +0100 gdb/nds32: Use type_align instead of nds32_type_align The general type_align method should be a suitable alternative to nds32_type_align, so switch to use that. The only change this will introduce is related to static fields in a struct or union, the existing code doesn't take account of static fields when computing the alignment for structs of unions, though this is probably a bug - which would probably be exposed by the test case gdb.cp/many-args.exp, though I don't have any way to test this target right now. gdb/ChangeLog: * nds32-tdep.c (nds32_type_align): Delete. (nds32_push_dummy_call): Use type_align instead. commit 030197b43cd8ccfe6869f798dd39fa27a29c0e01 Author: Andrew Burgess Date: Fri Apr 12 14:25:32 2019 +0100 gdb/arm: Use type_align instead of arm_type_align Replaces use of arm_type_align with common type_align function. Doing this fixes a bug in arm_type_align where static fields are considered as part of the alignment calculation of a struct, which results in arguments passed on the stack being misaligned, this bug was causing a failure in gdb.cp/many-args.exp. Part of the old arm_type_align is retained and used as the gdbarch type align callback in order to correctly align vectors. gdb/ChangeLog: * arm-tdep.c (arm_type_align): Only handle vector override case. (arm_push_dummy_call): Use type_align. (arm_gdbarch_init): Register arm_type_align gdbarch function. commit b907456c3eb8a08f6b211f66abb448df962749e1 Author: Andrew Burgess Date: Sun Apr 7 22:48:00 2019 +0100 gdb/aarch64: Use type_align instead of aarch64_type_align Replaces use of aarch64_type_align with common type_align function. Doing this fixes a bug in aarch64_type_align where static fields are considered as part of the alignment calculation of a struct, which results in arguments passed on the stack being misaligned. This bug is exposed in the new test gdb.cp/many-args.exp. Part of the old aarch64_type_align is retained and used as the gdbarch type align callback in order to correctly align vectors. gdb/ChangeLog: * aarch64-tdep.c (aarch64_type_align): Only handle vector override case. (pass_on_stack): Use type_align. (aarch64_gdbarch_init): Register aarch64_type_align gdbarch function. gdb/testsuite/ChangeLog: * gdb.cp/many-args.cc: New file. * gdb.cp/many-args.exp: New file. commit 9e97ba436a8e59ac4574001d618240eac0328934 Author: Tom Tromey Date: Tue Apr 23 10:48:40 2019 -0600 Remove unused overload of line_header::file_name_at I noticed that one of the overloads of line_header::file_name_at is unused. This patch removes it. gdb/ChangeLog 2019-04-23 Tom Tromey * dwarf2read.c (line_header::file_name_at): Remove unused overload. commit 5c565afd4c7ab6f3d287c9abd288d1d1e3e7cade Author: Tom de Vries Date: Tue Apr 23 15:49:52 2019 +0200 [gdb/testsuite] Fix gdb.btrace/reconnect.exp with native-gdbserver When running gdb.btrace/reconnect.exp with native-gdbserver, we run into: ... FAIL: gdb.btrace/reconnect.exp: first: stepi 19 ... due to the fact that we're trying to match: ... stepi 19^M 0x00007ffff7dd8b57 in _dl_start () from /lib64/ld-linux-x86-64.so.2^M ... using pattern: ... gdb_test "stepi 19" "0x.* in .* from target.*" ... Fix this by changing the pattern to: ... gdb_test "stepi 19" "0x.* in .* from .*" ... Tested on x86_64-linux with native and native-gdbserver. gdb/testsuite/ChangeLog: 2019-04-23 Tom de Vries PR gdb/24433 * gdb.btrace/reconnect.exp: Fix stepi 19 pattern. commit 6892f60143f7809641dc1824e29dcc406a705df6 Author: Tom de Vries Date: Tue Apr 23 15:35:21 2019 +0200 [gdb/contrib] Remove superfluous .alt file after dwz invocation in cc-with-tweaks.sh The -m option of cc-with-tweaks.sh sets want_multi to true, invoking dwz like this: ... elif [ "$want_multi" = true ]; then cp $output_file ${output_file}.alt $DWZ -m ${output_file}.dwz "$output_file" ${output_file}.alt \ > /dev/null 2>&1 fi ... The problem that is being solved here, is that we want to test dwz in multifile mode, which requires more than one input file, while we only have (at the scope of cc-with-tweaks.sh) one executable. We handle this by copying the executable and offering this as a second input (and using a copy has the additional benefit that it maximally enables dwz transformation). However, after the dwz invocation, the copy is no longer used, and the presence of the file actually causes a test regression: ... FAIL: gdb.base/jit-so.exp: test jit-reader-load filename completion ... Fix this by removing the superflous copy after dwz invocation. Tested on x86_64-linux. gdb/ChangeLog: 2019-04-23 Tom de Vries PR gdb/24438 * contrib/cc-with-tweaks.sh: Remove superfluous .alt file after dwz invocation. commit ba22ff8694e366fe5f27824566aae65fc6626841 Author: Alan Hayward Date: Tue Apr 23 14:12:25 2019 +0100 Testsuite: Remove pie from trace tests Ubuntu/Debian defaults PIE to enabled. This causes the trace tests to fall over due to variables being returned as "unavailable". The tests were never designed to work with pie. Simply ensure the nopie flag is always used for the failing tests. This removes 100+ failures when running native-gdbserver on Ubuntu 18.04. gdb/testsuite/ChangeLog: * gdb.trace/backtrace.exp: Use nopie flag. * gdb.trace/circ.exp: Likewise. * gdb.trace/collection.exp: Likewise. * gdb.trace/ftrace.exp: Likewise. * gdb.trace/mi-trace-unavailable.exp: Likewise. * gdb.trace/mi-traceframe-changed.exp: Likewise. * gdb.trace/qtro.exp: Likewise. * gdb.trace/read-memory.exp: Likewise. * gdb.trace/report.exp: Likewise. * gdb.trace/tfile.exp: Likewise. * gdb.trace/tfind.exp: Likewise. * gdb.trace/unavailable.exp: Likewise. commit 624a24513d2dcf7f2c2d42dbdf6d86be2f6d74aa Author: Nick Clifton Date: Tue Apr 23 11:19:58 2019 +0100 Update binutils release making documenation to mention changing the symbolic documentation link. * README-how-to-make-a-release: Add note to update the symbolic link from "docs" to "docs-2.x" on the sourceware website. commit cc9519e7d6251b84dd95c55b562a15b25d703bc0 Author: Alan Modra Date: Tue Apr 23 16:42:27 2019 +0930 Fix automatic makefile dependencies for generated ld/e*.c Commit c40e31a121 broke --enable-dependency-tracking=no. * Makefile.am (GENDEPDIR): New var, used.. (GENSCRIPTS): ..here. * Makefile.in: Regenerate. * genscripts.sh: Test for $DEPDIR set before every use. commit 6f38008bb423d71e6984c8ce49b4fc83d2cdaf0d Author: Matthew Fortune Date: Fri Apr 19 21:03:18 2019 +0000 Fix M5100 flags test with interAptiv-MR2 ld/ * testsuite/ld-mips-elf/mips-elf-flags.exp: Fix expected ASEs for M5100. commit 336d760da60d93ce76c4560525f65339f3403914 Author: Ali Tamur Date: Fri Mar 29 19:29:24 2019 -0700 Support for DW_OP_addrx and DW_FORM_addrx tags DW_OP_addrx is the new name of DW_OP_GNU_addr_index, and DW_FORM_addrx is the name of DW_FORM_addr_index in the Dwarf 5 standard. This is a small step towards supporting Dwarf 5 in gdb. Note: I could not find any tests specifically for *_GNU_addr_index, and I did not add any new tests, please advise. commit 4a4153dfc945701938b6f52795cf234fa0a5f5fe Author: GDB Administrator Date: Tue Apr 23 00:00:17 2019 +0000 Automatic date update in version.in commit ad9d13f8e966a844e7e647af6e82259101956f17 Author: Ali Tamur Date: Tue Apr 16 15:35:31 2019 -0700 [FYI] Add myself to gdb/MAINTAINERS commit 79b8e8ab453619cb0262e1ad18447d918a605073 Author: Jim Wilson Date: Mon Apr 22 14:17:55 2019 -0700 RISC-V: Enable 32-bit linux gdb core file support. bfd/ * elfnn-riscv.c (PRSTATUS_SIZE) [ARCH_SIZE==32]: Change from 0 to 204. commit d70cc3ba8740fc0eb0328da2453cefba8211944b Author: Simon Marchi Date: Mon Apr 22 14:02:36 2019 -0400 solib-svr4: Pass down svr4_info as much as possible While reviewing https://sourceware.org/ml/gdb-patches/2019-04/msg00141.html I noticed that we relied heavily on global state through the get_svr4_info function, which uses current_program_space. I thought we could improve this (make things more explicit and easier to follow) by - Making get_svr4_info accept a program_space parameter, making it return the SVR4 info for that program space. - Passing down the svr4_info object from callers as much as possible. This means looking up the svr4_info for the appropriate program space at the entry points of the solib-svr4.c file and passing it down. For now, these entry points (most of them are "methods" of svr4_so_ops) rely on current_program_space, but we can later try to change the target_so_ops interface to pass down the program space. gdb/ChangeLog: * solib-svr4.c (get_svr4_info): Add pspace parameter. (svr4_keep_data_in_core): Pass current_program_space to get_svr4_info. (open_symbol_file_object): Likewise. (svr4_default_sos): Add info parameter. (svr4_read_so_list): Likewise. (svr4_current_sos_direct): Adjust functions calls to pass down info. (svr4_current_sos_1): Add info parameter. (svr4_current_sos): Call get_svr4_info, pass info down to svr4_current_sos_1. (svr4_fetch_objfile_link_map): Pass objfile->pspace to get_svr4_info. (svr4_in_dynsym_resolve_code): Pass current_program_space to get_svr4_info. (probes_table_htab_remove_objfile_probes): Pass objfile->pspace to get_svr4_info. (probes_table_remove_objfile_probes): Likewise. (register_solib_event_probe): Add info parameter. (solist_update_incremental): Pass info parameter down to svr4_read_so_list. (disable_probes_interface): Add info parameter. (svr4_handle_solib_event): Pass current_program_space to get_svr4_info. Adjust disable_probes_interface cleanup. (svr4_create_probe_breakpoints): Add info parameter, pass it down to register_solib_event_probe. (svr4_create_solib_event_breakpoints): Add info parameter, pass it down to svr4_create_probe_breakpoints. (enable_break): Pass info down to svr4_create_solib_event_breakpoints. (svr4_solib_create_inferior_hook): Pass current_program_space to get_svr4_info. (svr4_clear_solib): Likewise. commit 7905fc359d6921c411999633e382330e6fd04fb6 Author: Pedro Alves Date: Mon Apr 22 14:20:59 2019 +0100 Fix "nosharedlibrary + continue + shared lib event" crash On systems that use the probes-based solib interface, GDB misbehaves if you run the "nosharelibrary" command, continue execution, and then the program hits the shared library event breakpoint. On my system it aborts like this: (gdb) nosharedlibrary (gdb) c Continuing. pure virtual method called terminate called without an active exception Aborted (core dumped) Though it's really undefined behavior territory, caused by deferencing a dangling solib event probe pointer. I've observed this by running "nosharedlibrary" when stopped at the entry point, but it should happen at any other point, if the program does a dlopen/dlclose after. The fix is to discard an objfile's probes from the svr4 probes table when an objfile is about to be released. New test included, works with both native and gdbserver testing. Valgrind log: (gdb) starti (gdb) nosharedlibrary (gdb) c Continuing. ==24895== Invalid read of size 8 ==24895== at 0x89E5FB: solib_event_probe_action(probe_and_action*) (solib-svr4.c:1735) ==24895== by 0x89E95A: svr4_handle_solib_event() (solib-svr4.c:1872) ==24895== by 0x8A7198: handle_solib_event() (solib.c:1274) ==24895== by 0x4E3407: bpstat_stop_status(address_space const*, unsigned long, thread_info*, target_waitstatus const*, bpstats*) (breakpoint.c:5407) ==24895== by 0x721F41: handle_signal_stop(execution_control_state*) (infrun.c:5685) ==24895== by 0x720B11: handle_inferior_event(execution_control_state*) (infrun.c:5129) ==24895== by 0x71DD93: fetch_inferior_event(void*) (infrun.c:3748) ==24895== by 0x7059C3: inferior_event_handler(inferior_event_type, void*) (inf-loop.c:43) ==24895== by 0x874DF0: remote_async_serial_handler(serial*, void*) (remote.c:14039) ==24895== by 0x894101: run_async_handler_and_reschedule(serial*) (ser-base.c:137) ==24895== by 0x8941E6: fd_event(int, void*) (ser-base.c:188) ==24895== by 0x67AFEF: handle_file_event(file_handler*, int) (event-loop.c:732) ==24895== Address 0x18b63860 is 0 bytes inside a block of size 136 free'd ==24895== at 0x4C2E616: operator delete(void*, unsigned long) (vg_replace_malloc.c:585) ==24895== by 0x8C6A12: stap_probe::~stap_probe() (stap-probe.c:124) ==24895== by 0x66F7DB: probe_key_free(bfd*, void*) (elfread.c:1382) ==24895== by 0x69B705: bfdregistry_callback_adaptor(void (*)(registry_container*, void*), registry_container*, void*) (gdb_bfd.c:131) ==24895== by 0x855A57: registry_clear_data(registry_data_registry*, void (*)(void (*)(registry_container*, void*), registry_container*, void*), registry_container*, registry_fields*) (registry.c:79) ==24895== by 0x855B01: registry_container_free_data(registry_data_registry*, void (*)(void (*)(registry_container*, void*), registry_container*, void*), registry_container*, registry_fields*) (registry.c:92) ==24895== by 0x69B783: bfd_free_data(bfd*) (gdb_bfd.c:131) ==24895== by 0x69C4BA: gdb_bfd_unref(bfd*) (gdb_bfd.c:609) ==24895== by 0x7CC33F: objfile::~objfile() (objfiles.c:651) ==24895== by 0x7CD559: objfile_purge_solibs() (objfiles.c:1021) ==24895== by 0x8A7132: no_shared_libraries(char const*, int) (solib.c:1252) ==24895== by 0x548E3D: do_const_cfunc(cmd_list_element*, char const*, int) (cli-decode.c:106) ==24895== Block was alloc'd at ==24895== at 0x4C2D42A: operator new(unsigned long) (vg_replace_malloc.c:334) ==24895== by 0x8C527C: handle_stap_probe(objfile*, sdt_note*, std::vector >*, unsigned long) (stap-probe.c:1561) ==24895== by 0x8C5535: stap_static_probe_ops::get_probes(std::vector >*, objfile*) const (stap-probe.c:1656) ==24895== by 0x66F71B: elf_get_probes(objfile*) (elfread.c:1365) ==24895== by 0x7EDD85: find_probes_in_objfile(objfile*, char const*, char const*) (probe.c:227) ==24895== by 0x4DF382: create_longjmp_master_breakpoint() (breakpoint.c:3275) ==24895== by 0x4F6562: breakpoint_re_set() (breakpoint.c:13828) ==24895== by 0x8A66AA: solib_add(char const*, int, int) (solib.c:1010) ==24895== by 0x89F7C6: enable_break(svr4_info*, int) (solib-svr4.c:2360) ==24895== by 0x8A104C: svr4_solib_create_inferior_hook(int) (solib-svr4.c:2992) ==24895== by 0x8A70B9: solib_create_inferior_hook(int) (solib.c:1215) ==24895== by 0x70C073: post_create_inferior(target_ops*, int) (infcmd.c:467) ==24895== pure virtual method called terminate called without an active exception ==24895== ==24895== Process terminating with default action of signal 6 (SIGABRT): dumping core ==24895== at 0x7CF3750: raise (raise.c:51) ==24895== by 0x7CF4D30: abort (abort.c:79) ==24895== by 0xB008F4: __gnu_cxx::__verbose_terminate_handler() (in build/gdb/gdb) ==24895== by 0xAFF845: __cxxabiv1::__terminate(void (*)()) (in build/gdb/gdb) ==24895== by 0xAFF890: std::terminate() (in build/gdb/gdb) ==24895== by 0xAFF95E: __cxa_pure_virtual (in build/gdb/gdb) ==24895== by 0x89E610: solib_event_probe_action(probe_and_action*) (solib-svr4.c:1735) ==24895== by 0x89E95A: svr4_handle_solib_event() (solib-svr4.c:1872) ==24895== by 0x8A7198: handle_solib_event() (solib.c:1274) ==24895== by 0x4E3407: bpstat_stop_status(address_space const*, unsigned long, thread_info*, target_waitstatus const*, bpstats*) (breakpoint.c:5407) ==24895== by 0x721F41: handle_signal_stop(execution_control_state*) (infrun.c:5685) ==24895== by 0x720B11: handle_inferior_event(execution_control_state*) (infrun.c:5129) ==24895== Note, this little bit in the patch is just a cleanup that I noticed: - lookup.prob = prob; lookup.address = address; That line isn't necessary because hashing/comparison only looks at the address. gdb/ChangeLog: 2019-04-22 Pedro Alves * solib-svr4.c (svr4_free_objfile_observer): New. (probe_and_action::objfile): New field. (probes_table_htab_remove_objfile_probes) (probes_table_remove_objfile_probes): New functions. (register_solib_event_probe): Add 'objfile' parameter. Store it in the new probe_and_action. Don't store the probe in 'lookup'. (svr4_create_probe_breakpoints): Pass objfile to register_solib_event_probe. (_initialize_svr4_solib): Register a free_objfile observer. gdb/testsuite/ChangeLog: 2019-04-22 Pedro Alves * gdb.base/solib-probes-nosharedlibrary.c, gdb.base/solib-probes-nosharedlibrary.exp: New files. commit 73f8a5908695e96d8ecd5e0fbe9f1ebb16179547 Author: Pedro Alves Date: Mon Apr 22 12:42:21 2019 +0100 Improve reverse debugging docs, mention built-in support and supports archs gdb/doc/ChangeLog: 2019-04-22 Pedro Alves * gdb.texinfo (Reverse Execution): Mention and xref process record and replay. Mention remote and system emulators. (Process Record and Replay): List supported architectures. Mention that "record btrace" is only supported on Intel processors. commit 1ce0f4f2422c19a2626c23d88c7dbaf808898b56 Author: GDB Administrator Date: Mon Apr 22 00:00:46 2019 +0000 Automatic date update in version.in commit d6e00f507d764bd8a3b2e55ef9c68a70591098e8 Author: GDB Administrator Date: Sun Apr 21 00:01:05 2019 +0000 Automatic date update in version.in commit f2ae8bc88390f91cca8531823db51a8e35f0a0a0 Author: Philippe Waroquiers Date: Sat Apr 13 10:22:41 2019 +0200 Fix GDB crash when registers cannot be modified. This crash was detected when using GDB with the valgrind gdbserver. To reproduce: valgrind sleep 10000 In another window: gdb target remote | vgdb p printf("make sleep print something\n") => terminate called after throwing an instance of 'gdb_exception_error' Aborted The problem is that the valgrind gdbserver does not allow to change registers when the inferior is blocked in a system call. GDB then raises an exception. The exception causes the destructor of typedef std::unique_ptr infcall_suspend_state_up; to be called. This destructor itself tries to restore the value of the registers, and fails similarly. We must catch the exception in the destructor to avoid crashing GDB. If the destructor encounters a problem, no warning is produced if there is an uncaught exception, as in this case, the user will already be informed of a problem via this exception. With this change, no crash anymore, and all the valgrind 3.15 tests pass succesfully. gdb/ChangeLog 2019-04-19 Philippe Waroquiers * inferior.h (struct infcall_suspend_state_deleter): Catch exception in destructor to avoid crash. commit 4884b57f24fca3d3abf73515e09a3917ed4f356c Author: GDB Administrator Date: Sat Apr 20 00:00:21 2019 +0000 Automatic date update in version.in commit fb8819867993ee942aacd8ea6d5027b16cecda48 Author: Tom Tromey Date: Sun Apr 7 16:32:54 2019 -0600 Remove common/queue.h gdb no longer needs common/queue.h, so this removes it. gdb/ChangeLog 2019-04-19 Tom Tromey * common/queue.h: Remove. commit 8732db6ceb3d5d352685199a15306dbb69c086d6 Author: Tom Tromey Date: Sun Apr 7 16:32:19 2019 -0600 Remove an include of common/queue.h event-loop.c does not need to include common/queue.h, so this removes it. gdb/ChangeLog 2019-04-19 Tom Tromey * event-loop.c: Don't include "common/queue.h". commit 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 Author: Tom Tromey Date: Sun Apr 7 16:31:01 2019 -0600 Use std::list for remote_notif_state::notif_queue This changes remote_notif_state::notif_queue to be a std::list and updates all the uses. gdb/ChangeLog 2019-04-19 Tom Tromey * remote.c (remote_target): Use delete. * remote-notif.h: Include , not "common/queue.h". (notif_client_p): Remove typedef. (remote_notif_state): Add constructor, destructor, initializer. : Now a std::list. (remote_notif_state_xfree): Don't declare. * remote-notif.c (remote_notif_process, handle_notification) (remote_notif_state_allocate): Update. (~remote_notif_state): Rename from remote_notif_state_xfree. commit b494cdff6922944383ef4dc20fcc90c4d823d315 Author: Tom Tromey Date: Sun Apr 7 16:17:40 2019 -0600 Use std::list for event notifications in gdbserver This changes gdbserver to use std::list rather than common/queue.h for event notifications. gdb/gdbserver/ChangeLog 2019-04-19 Tom Tromey * server.c (struct vstop_notif): Derive from notif_event. : Remove. (queue_stop_reply): Update. (remove_all_on_match_ptid): Change type. Rewrite. (discard_queued_stop_replies): Rewrite. (in_queued_stop_replies_ptid): Change type. (in_queued_stop_replies): Rewrite. (notif_stop): Update. (queue_stop_reply_callback): Update. (captured_main): Don't call initialize_notif. (push_stop_notification): Update. * notif.c (notif_write_event, handle_notif_ack) (notif_event_enque, notif_push): Update. (notif_event_xfree, initialize_notif): Remove. * notif.h (struct notif_event): Include , not "common/queue.h". (struct notif_server) : Now a std::list. (notif_event_p): Remove typedef. (initialize_notif): Don't declare. (struct notif_event): Add virtual destructor. commit cf250e36790aaa255bb486e2122bb83c95c7669b Author: Tom Tromey Date: Sun Apr 7 15:39:37 2019 -0600 Make objfile::static_links an htab_up This changes objfile::static_links to be an htab_up, so that ~objfile no longer has to explicitly destroy it. Tested by the buildbot. gdb/ChangeLog 2019-04-19 Tom Tromey * symfile.c (reread_symbols): Update. * objfiles.c (objfile_register_static_link) (objfile_lookup_static_link): Update (~objfile) Don't delete static_links. * objfiles.h (struct objfile) : Now an htab_up. commit 61f4b350419e91560be94e0671a760b2e4902c65 Author: Tom Tromey Date: Sun Apr 7 15:29:58 2019 -0600 Make copy_name return std::string This changes copy_name to return a std::string, updating all the callers. In some cases, an extra copy was removed. This also required a little bit of constification. Tested by the buildbot. gdb/ChangeLog 2019-04-19 Tom Tromey * type-stack.h (struct type_stack) : Constify string. * type-stack.c (type_stack::insert): Constify string. * gdbtypes.h (lookup_template_type): Update. (address_space_name_to_int): Update. * gdbtypes.c (address_space_name_to_int): Make space_identifier const. (lookup_template_type): Make name const. * c-exp.y: Update rules. (lex_one_token, classify_name, classify_inner_name) (c_print_token): Update. * p-exp.y: Update rules. (yylex): Update. * f-exp.y: Update rules. (yylex): Update. * d-exp.y: Update rules. (lex_one_token, classify_name, classify_inner_name): Update. * parse.c (write_dollar_variable, copy_name): Return std::string. * parser-defs.h (copy_name): Change return type. * m2-exp.y: Update rules. (yylex): Update. * go-exp.y (lex_one_token): Update. Update rules. (classify_unsafe_function, classify_packaged_name) (classify_name, yylex): Update. commit 189b8c2e104017600104457b97315da74a22f549 Author: Sergei Trofimovich Date: Sun Mar 17 22:48:02 2019 +0000 gdb/configure.ac: add --enable-source-highlight Allow disabling source-highlight dependency autodetection even it exists in the system. More details on problem of automatic dependencies: https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies Noticed by Jeroen Roovers in https://bugs.gentoo.org/680238 * configure.ac: add --enable-source-highlight switch. * configure: Regenerate. * top.c (print_gdb_version): plumb --enable-source-highlight status to "show configuration". gdb/ChangeLog 2019-04-19 Sergei Trofimovich * configure.ac: add --enable-source-highlight switch. * configure: Regenerate. * top.c (print_gdb_version): plumb --enable-source-highlight status to "show configuration". commit 8ecb59f8567956c1520b491ea31396363efcb1ef Author: Tom Tromey Date: Tue Apr 9 07:46:39 2019 -0600 Print non-Ada unions without crashing ada-lang.c is a bit too eager trying to decode unions in the Ada style -- looking for discriminants and such. This causes crashes when printing a non-Ada union in Ada mode, something that can easily happen when printing a value from history or certain registers on AArch64. This patch fixes the bug by changing ada-lang.c to only apply special Ada treatment to types coming from an Ada CU. This in turn required a couple of surprising changes. First, some of the Ada code was already using HAVE_GNAT_AUX_INFO to decide whether a type had already been fixed -- such types had INIT_CPLUS_SPECIFIC called on them. This patch changes these spots to use the "none" identifier instead. This then required changing value_rtti_type to avoid changing the language-specific object attached to an Ada type, which seems like a good change regardless. Tested on x86-64 Fedora 29. gdb/ChangeLog 2019-04-19 Tom Tromey * ada-lang.c (ada_is_variant_part, ada_to_fixed_type_1): Check ADA_TYPE_P. (empty_record, ada_template_to_fixed_record_type_1) (template_to_static_fixed_type) (to_record_with_fixed_variant_part): Use INIT_NONE_SPECIFIC. * cp-abi.c (value_rtti_type): Check HAVE_CPLUS_STRUCT. * gdbtypes.h (INIT_NONE_SPECIFIC, ADA_TYPE_P): New macros. gdb/testsuite/ChangeLog 2019-04-19 Tom Tromey * gdb.ada/ptype_union.c: New file. * gdb.ada/ptype_union.exp: New file. commit 62160ec9547cdd21ac7334d9a378ca2930aac61c Author: Tom Tromey Date: Tue Apr 9 12:52:46 2019 -0600 Fix "list" when control characters are seen PR symtab/24423 points out that control characters in a source file cause a hang in the "list" command, a regression introduced by the styling changes. This patch, from the PR, fixes the bug. I've included a minimal change to the "list" test that exercises this code. I recall that this bug was discussed on gdb-patches, and I thought there was a patch there as well, but I was unable to find it. gdb/ChangeLog 2019-04-19 Ilya Yu. Malakhov PR symtab/24423: * source.c (print_source_lines_base): Advance "iter" when a control character is seen. gdb/testsuite/ChangeLog 2019-04-19 Tom Tromey PR symtab/24423: * gdb.base/list0.h (foo): Add a control-l character. commit ee3c5f8968e7b43854204898fa46933b3a1b5991 Author: Philippe Waroquiers Date: Sat Apr 13 10:22:41 2019 +0200 Fix GDB crash when registers cannot be modified. This crash was detected when using GDB with the valgrind gdbserver. To reproduce: valgrind sleep 10000 In another window: gdb target remote | vgdb p printf("make sleep print something\n") => terminate called after throwing an instance of 'gdb_exception_error' Aborted The problem is that the valgrind gdbserver does not allow to change registers when the inferior is blocked in a system call. GDB then raises an exception. The exception causes the destructor of typedef std::unique_ptr infcall_suspend_state_up; to be called. This destructor itself tries to restore the value of the registers, and fails similarly. We must catch the exception in the destructor to avoid crashing GDB. If the destructor encounters a problem, no warning is produced if there is an uncaught exception, as in this case, the user will already be informed of a problem via this exception. With this change, no crash anymore, and all the valgrind 3.15 tests pass succesfully. gdb/ChangeLog 2019-04-19 Philippe Waroquiers * inferior.h (struct infcall_suspend_state_deleter): Catch exception in destructor to avoid crash. commit d563b953142db796f61425a1a300f0feddcdcd55 Author: Philippe Waroquiers Date: Fri Apr 19 13:45:00 2019 +0200 OBVIOUS move add_comm_alias "!" <=> "shell" near the add_com "shell" gdb/ChangeLog 2019-04-19 Philippe Waroquiers * cli/cli-cmds.c (_initialize_cli_cmds): Move "shell" "!" alias close to the add_com "shell". commit 5ce032bdfc60a8f44f6307b2297384c852100f95 Author: Nick Clifton Date: Fri Apr 19 10:39:47 2019 +0100 RX Assembler: Ensure that the internal limit on the number of relaxation iterations is not larger that the external limit. PR 24464 * config/tc-rx.h (md_relax_frag): Pass the max_iterations variable to the relaxation function. * config/tc-rx.c (rx_relax_frag): Add new parameter - the maximum number of iterations. Make sure that our internal iteration limit does not exceed this external iteration limit. commit fce9773608d45757dfb26ef7783f37d432ae9a88 Author: Alan Modra Date: Fri Apr 19 12:33:46 2019 +0930 s12z and h8300 no-print-map-discarded fails This tidies the remaining --no-print-map-discarded fails. h8300-elf warns on a section without flags, and s12z doesn't support --gc-sections. bfd/ * elf32-s12z.c (elf_backend_can_gc_sections): Don't define ld/ * testsuite/ld-gc/skip-map-discarded.s: Add section attributes. * testsuite/lib/ld-lib.exp (check_gc_sections_available): Add s12z to list of targets not supporting --gc-sections. commit e7da54fcdbea8e60c8e577b32b6ed63f8effbfd6 Author: GDB Administrator Date: Fri Apr 19 00:00:12 2019 +0000 Automatic date update in version.in commit 36cd4ba59817473935f781174744e7883ff221ee Author: Tom de Vries Date: Thu Apr 18 23:37:33 2019 +0200 [gdb/testsuite] Fix gdb.base/break-probes.exp with native-gdbserver When running break-probes.exp with native-gdbserver, we run into: ... FAIL: gdb.base/break-probes.exp: run til our library loads (the program exited) FAIL: gdb.base/break-probes.exp: call (int) foo(23) ... due to the fact that we're trying to match: ... Inferior loaded /data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\ /break-probes/break-probes-solib.so ... using pattern: ... Inferior loaded $sysroot$binfile_lib ... which expands into: ... Inferior loaded //data/gdb_versions/devel/build/gdb/testsuite/outputs/gdb.base\ /break-probes/break-probes-solib.so ... Fix by setting sysroot to "" in local-board.exp. Tested on x86_64-linux with native-gdbserver. gdb/testsuite/ChangeLog: 2019-04-18 Tom de Vries PR gdb/24433 * boards/local-board.exp: Set sysroot to "". commit dc34c8972ec803b093201c4c12e084f059be32f7 Author: Tom Tromey Date: Thu Apr 18 09:42:46 2019 -0600 Make process_stratum_target::stratum "final" It seemed to me that process_stratum_target::stratum ought to be "final". Tested by rebuilding, let me know what you think. gdb/ChangeLog 2019-04-18 Tom Tromey * process-stratum-target.h (class process_stratum_target) : Add "final". commit 85bec12d61ca50669cac5975c88d3a1e377375f9 Author: Matthew Fortune Date: Wed Apr 17 04:07:19 2019 +0000 Improve warning message for $0 constraint on MIPSR6 branches gas/ * config/tc-mips.c (match_non_zero_reg_operand): Update warning message. * testsuite/gas/mips/r6-branch-constraints.l: Likewise. commit b73715df01e6e9b3de5a49cd7bf4170deef48461 Author: Tom de Vries Date: Thu Apr 18 17:05:43 2019 +0100 [gdb] Handle vfork in thread with follow-fork-mode child When debugging any of the testcases added by this commit, which do a vfork in a thread with "set follow-fork-mode child" + "set detach-on-fork on", we run into this assertion: ... src/gdb/nat/x86-linux-dregs.c:146: internal-error: \ void x86_linux_update_debug_registers(lwp_info*): \ Assertion `lwp_is_stopped (lwp)' failed. ... The assert is caused by the following: the vfork-child exit or exec event is handled by handle_vfork_child_exec_or_exit, which calls target_detach to detach from the vfork parent. During target_detach we call linux_nat_target::detach, which: #1 - stops all the threads #2 - waits for all the threads to be stopped #3 - detaches all the threads However, during the second step we run into this code in stop_wait_callback: ... /* If this is a vfork parent, bail out, it is not going to report any SIGSTOP until the vfork is done with. */ if (inf->vfork_child != NULL) return 0; ... and we don't wait for the threads to be stopped, which results in this assert in x86_linux_update_debug_registers triggering during the third step: ... gdb_assert (lwp_is_stopped (lwp)); ... The fix is to reset the vfork parent's vfork_child field before calling target_detach in handle_vfork_child_exec_or_exit. There's already similar code for the other paths handled by handle_vfork_child_exec_or_exit, so this commit refactors the code a bit so that all paths share the same code. The new tests cover both a vfork child exiting, and a vfork child execing, since both cases would trigger the assertion. The new testcases also exercise following the vfork children with "set detach-on-fork off", since it doesn't seem to be tested anywhere. Tested on x86_64-linux, using native and native-gdbserver. gdb/ChangeLog: 2019-04-18 Tom de Vries Pedro Alves PR gdb/24454 * infrun.c (handle_vfork_child_exec_or_exit): Reset vfork parent's vfork_child field before calling target_detach. gdb/testsuite/ChangeLog: 2019-04-18 Tom de Vries Pedro Alves PR gdb/24454 * gdb.threads/vfork-follow-child-exec.c: New file. * gdb.threads/vfork-follow-child-exec.exp: New file. * gdb.threads/vfork-follow-child-exit.c: New file. * gdb.threads/vfork-follow-child-exit.exp: New file. commit 5d5b0bd35f1f8b8484349c3ec51aa8e19a1627cf Author: Jozef Lawrynowicz Date: Thu Apr 18 13:15:09 2019 +0100 MSP430 Assembler: Define symbols for functions to run through. gas * config/tc-msp430.c (msp430_make_init_symbols): Define __crt0_run_{preinit,init,fini}_array symbols if .{preinit,init,fini}_array sections exist. * testsuite/gas/msp430/fini-array.d: New test. * testsuite/gas/msp430/init-array.d: New test. * testsuite/gas/msp430/preinit-array.d: New test. * testsuite/gas/msp430/fini-array.s: New test source. * testsuite/gas/msp430/init-array.s: New test source. * testsuite/gas/msp430/preinit-array.s: New test source. * testsuite/gas/msp430/msp430.exp: Add new tests to driver. commit 05be37e5c34b822ff3032791c2415e652fbf9fbf Author: GDB Administrator Date: Thu Apr 18 00:00:22 2019 +0000 Automatic date update in version.in commit 9a7f0679fd3b9815b8eb938bfdad3934b8435419 Author: H.J. Lu Date: Wed Apr 17 10:22:19 2019 -0700 x86: Suggest -fPIE when not building shared object When PIC is needed, linker should suggest -fPIE, instead of -fPIC, when not building shared object. bfd/ * elf64-x86-64.c (elf_x86_64_need_pic): Suggest -fPIE when not building shared object. * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Likewise. ld/ * testsuite/ld-i386/i386.exp: Run pr18801a and pr18801b instead of pr18801. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/pr18801.d: Removed. * testsuite/ld-x86-64/pr18801.d: Likewise. * testsuite/ld-i386/pr18801a.d: New file. * testsuite/ld-i386/pr18801b.d: Likewise. * testsuite/ld-x86-64/pr18801a.d: Likewise. * testsuite/ld-x86-64/pr18801b.d: Likewise. * testsuite/ld-x86-64/pie2.d: Suggest -fPIE instead of -fPIC. * testsuite/ld-x86-64/pie2.d: Likewise. * testsuite/ld-x86-64/pr19719.d: Likewise. * testsuite/ld-x86-64/pr19807-2a.d: Likewise. * testsuite/ld-x86-64/pr19969.d: Likewise. * testsuite/ld-x86-64/pr21997-1a.err: Likewise. * testsuite/ld-x86-64/pr21997-1b.err: Likewise. * testsuite/ld-x86-64/pr22001-1a.err: Likewise. * testsuite/ld-x86-64/pr22001-1b.err: Likewise. * testsuite/ld-x86-64/pr22791-1.err: Likewise. commit 4e84a8f8bbeab52fa7048873655e582ceb92534d Author: H.J. Lu Date: Wed Apr 17 09:08:46 2019 -0700 x86: Also check x86 linker_def for non-shared definition Since elf_x86_linker_defined sets linker_def in elf_x86_link_hash_entry for linker defined symbols, SYMBOL_DEFINED_NON_SHARED_P should also check linker_def in elf_x86_link_hash_entry. bfd/ PR ld/24458 * elfxx-x86.h (SYMBOL_DEFINED_NON_SHARED_P): Also check x86 linker_def. ld/ PR ld/24458 * testsuite/ld-x86-64/x86-64.exp: Run PR ld/24458 tests. * testsuite/ld-x86-64/pr24458.s: New file. * testsuite/ld-x86-64/pr24458a-x32.d: Likewise. * testsuite/ld-x86-64/pr24458a.d: Likewise. * testsuite/ld-x86-64/pr24458b-x32.d: Likewise. * testsuite/ld-x86-64/pr24458b.d: Likewise. * testsuite/ld-x86-64/pr24458c-x32.d: Likewise. * testsuite/ld-x86-64/pr24458c.d: Likewise. commit e25de718de3b613cfafb9c5b28dea8e55a8649b8 Author: Jozef Lawrynowicz Date: Wed Apr 17 15:05:08 2019 +0100 MSP430 Linker: Define __crt0_init_bss/__crt0_movedata symbols when .lower or .either prefixed sections are present. ld * config/tc-msp430.c (msp430_make_init_symbols): Define __crt0_init_bss symbol when .lower.bss or .either.bss sections exist. Define __crt0_movedata when .lower.data or .either.data sections exist. * testsuite/gas/msp430/either-data-bss-sym.d: New test. * testsuite/gas/msp430/low-data-bss-sym.d: New test. * testsuite/gas/msp430/either-data-bss-sym.s: New test source. * testsuite/gas/msp430/low-data-bss-sym.s: New test source. * testsuite/gas/msp430/msp430.exp: Run new tests. Enable large code model when running -mdata-region={upper,either} tests. commit afff667ae800adee5934020c92012e3ecbf4dabd Author: Jozef Lawrynowicz Date: Wed Apr 17 15:03:27 2019 +0100 MSP430 Assembler: Leave placement of .lower and .upper sections to generic linker code. * config/tc-msp430.c (msp430_make_init_symbols): Define __crt0_init_bss symbol when .lower.bss or .either.bss sections exist. Define __crt0_movedata when .lower.data or .either.data sections exist. * testsuite/gas/msp430/either-data-bss-sym.d: New test. * testsuite/gas/msp430/low-data-bss-sym.d: New test. * testsuite/gas/msp430/either-data-bss-sym.s: New test source. * testsuite/gas/msp430/low-data-bss-sym.s: New test source. * testsuite/gas/msp430/msp430.exp: Run new tests. Enable large code model when running -mdata-region={upper,either} tests. commit d557977487bc21e8ed19603527949a8541c44832 Author: Jozef Lawrynowicz Date: Wed Apr 17 15:01:28 2019 +0100 MSP420 assembler: Add -m{u,U} options to enable/disable NOP warnings for unknown interrupt state changes gas * config/tc-msp430.c (options): New OPTION_UNKNOWN_INTR_NOPS, OPTION_NO_UNKNOWN_INTR_NOPS and do_unknown_interrupt_nops. (md_parse_option): Handle OPTION_UNKNOWN_INTR_NOPS and OPTION_NO_UNKNOWN_INTR_NOPS by setting do_unknown_interrupt_nops accordingly. (md_show_usage): Likewise. (md_shortopts): Add "mu" for OPTION_UNKNOWN_INTR_NOPS and "mU" for OPTION_NO_UNKNOWN_INTR_NOPS. (md_longopts): Likewise. (warn_eint_nop): Update comment. (warn_unsure_interrupt): Don't warn if prev_insn_is_nop or prev_insn_is_dint or we are assembling for 430 ISA. (msp430_operands): Only call warn_unsure_interrupt if do_unknown_interrupt_nops == TRUE. * testsuite/gas/msp430/nop-unknown-intr.s: New test source file. * testsuite/gas/msp430/nop-unknown-intr-430.d: New test. * testsuite/gas/msp430/nop-unknown-intr-430x.d: New test. * testsuite/gas/msp430/nop-unknown-intr-430x-ignore.d: New test. * testsuite/gas/msp430/nop-unknown-intr-430.l: Warning output for new test. * testsuite/gas/msp430/nop-unknown-intr-430x.l: Likewise. * testsuite/gas/msp430/msp430.exp: Add new tests to driver. commit a12e57448ecf2644e3ddc98bbd4bbb914a5f8c92 Author: Tom Tromey Date: Tue Apr 16 12:12:09 2019 -0600 Avoid crash in dwarf2_init_complex_target_type After commit 35add35 ("gdb: Fix failure in gdb.base/complex-parts.exp for x86-32"), dwarf2_init_complex_target_type can crash if "tt" is nullptr. This patch avoids the problem by checking for this case. No test case because I don't know a good way to write one; it was found by an internal AdaCore test case that apparently uses a 16 bit floating point type. gdb/ChangeLog: * dwarf2read.c (dwarf2_init_complex_target_type): Check "tt" against nullptr before use. gdb/ChangeLog 2019-04-17 Tom Tromey * dwarf2read.c (dwarf2_init_complex_target_type): Check "tt" against nullptr before use. commit a7e559cc087b10b9ea337b58e52cc13964aae3fb Author: Alan Hayward Date: Tue Apr 16 10:37:47 2019 +0100 gdbserver: Ensure all debug output uses debug functions All debug output needs to go via debug functions to ensure it writes to the correct output stream. gdb/ChangeLog: * nat/linux-waitpid.c (linux_debug): Call debug_vprintf. gdb/gdbserver/ChangeLog: * ax.c (ax_vdebug): Call debug_printf. * debug.c (debug_write): New function. * debug.h (debug_write): New declaration. * linux-low.c (sigchld_handler): Call debug_write. commit aeb2e706e1b9c491d20c88c8ead1ae9df9cee04a Author: Alan Hayward Date: Fri Apr 12 15:49:11 2019 +0100 gdbserver: Add debug-file option Add command line option to send all debug output to a given file. Always default back to stderr. Add matching monitor command. Add documentation. gdb/doc/ChangeLog: * gdb.texinfo (Other Command-Line Arguments for gdbserver): Add debug-file option. (Monitor Commands for gdbserver): Likewise. (gdbserver man): Likewise. gdb/gdbserver/ChangeLog: * debug.c (debug_set_output): New function. (debug_vprintf): Send output to debug_file. (debug_flush): Likewise. * debug.h (debug_set_output): New declaration. * server.c (handle_monitor_command): Add debug-file option. (captured_main): Likewise. commit c1bc0935a4afb513486dc0a479cd57c0924b677c Author: Alan Hayward Date: Fri Apr 12 14:21:55 2019 +0100 gdbserver: Move remote_debug to a single place A comment in debug.h (written in 2014) states: "We declare debug format variables here, and debug_threads but no other debug content variables (e.g., not remote_debug) because while this file is not currently used by IPA it may be some day, and IPA may have its own set of debug content variables". This has resulted in remote_debug being declared in many .c/.h files throughout gdbserver. It would be much simplier to define it one place. The most logical place to define it is in debug.h, surrounded by #define guards. If IPA is changed, then at that point the variable can be moved elsewhere. gdb/gdbserver/ChangeLog: * debug.c (remote_debug): Add definition. * debug.h (remote_debug): Add declaration. * hostio.c (remote_debug): Remove declaration. * remote-utils.c (struct ui_file): Likewise. (remote_debug): Likewise. * remote-utils.h (remote_debug): Likewise, * server.c (remote_debug): Remove definition. commit 1cfe2726f1564df1247f7844077717db04522a88 Author: GDB Administrator Date: Wed Apr 17 00:00:31 2019 +0000 Automatic date update in version.in commit c01660c625766e848195285cc20581b9ed7ecfe2 Author: Andrew Burgess Date: Wed Apr 17 00:31:43 2019 +0100 gdb/riscv: Allow breakpoints to be created at invalid addresses Some testsuite cases (gdb.cp/nsalias.exp for example) construct dwarf2 debug info for fake functions to test that this debug info is handled correctly. We currently get an error trying to read from an invalid address while creating breakpoints for these fake functions. Other targets allow creating breakpoints on invalid addresses, and only error when GDB actually tries to insert the breakpoints. In order to make RISC-V behave in the same way as other targets, this commit makes the failure to read memory during breakpoint creation non-fatal, we then expect to see a failure when GDB tries to insert the breakpoint, just like other targets. Tested with a riscv64-linux native testsuite run. gdb/ChangeLog: * riscv-tdep.c (riscv_breakpoint_kind_from_pc): Hanndle case where code read might fail, assume 4-byte breakpoint in that case. commit fe7e91e7764d8db4a45c9d7b3dd55cb635f44f5e Author: Alan Modra Date: Tue Apr 16 21:34:22 2019 +0930 xfail gas weakref1 test for nds32 Oops, I removed the wrong xfail from gas.exp in last commit, fix it here. * testsuite/gas/all/weakref1.d: xfail nds32. commit a0fb96150814fef91598e0b528c071201fe18891 Author: Alan Modra Date: Tue Apr 16 18:08:11 2019 +0930 ns32k testsuite tidy Some of these tests were excluded for ns32k-netbsd, exclude for all ns32k instead. binutils/ * testsuite/binutils-all/copy-2.d: Don't run for ns32k-*-*. * testsuite/binutils-all/copy-3.d: Likewise. gas/ * testsuite/gas/all/gas.exp: Remove ns32k xfails. * testsuite/gas/all/weakref1u.d: Don't run for ns32k-*-*. ld/ * testsuite/ld-scripts/pr20302.d: Don't run for ns32k-*-*. * testsuite/ld-scripts/section-match-1.d: Likewise. * testsuite/ld-undefined/require-defined.exp: Likewise. commit 5bc113360ccc33797a3f882e02824a5c426da175 Author: Alan Modra Date: Tue Apr 16 15:47:02 2019 +0930 Move fixup fx_bit_fixP and fx_im_disp fields to TC_FIX_TYPE These are only used by dlx and ns32k. * write.h: Don't include bit_fix.h. (struct fix): Rearrange some fields. Delete fx_im_disp and fx_bit_fixP. Use bitfields for fx_size and fx_pcrel_adjust. * write.c (fix_new_internal): Don't init fx_im_disp and fx_bit_fixP. (fixup_segment): Don't exclude overflow checks on fx_bit_fixP. (print_fixup): Don't print im_disp. * config/tc-cris.c (md_apply_fix): Remove tests of fx_bit_fixP and fx_im_disp. * config/tc-dlx.c (md_apply_fix): Remove wrong debug code. Set fx_no_overflow when fx_bit_fixP. * config/tc-dlx.h: Include bit_fix.h. (TC_FIX_TYPE, tc_fix_data, TC_INIT_FIX_DATA): Define. * config/tc-ns32k.c (fix_new_ns32k, fix_new_ns32k_exp): Set fx_no_overflow when bit_fixP. * config/tc-ns32k.h (TC_FIX_TYPE): Add fx_bit_fixP and fx_im_disp. (fix_im_disp, fix_bit_fixP): Adjust to suit. (TC_INIT_FIX_DATA, TC_FIX_DATA_PRINT): Likewise. commit 90bd3c903fe76a8a3a5ced98c76e4366c5a0948f Author: Alan Modra Date: Tue Apr 16 11:10:44 2019 +0930 Make fixup fx_where unsigned Another field that only stores unsigned values. * write.h (struct fix ): Make unsigned. (fix_new, fix_at_start, fix_new_exp): Adjust prototypes. * write.c (fix_new, fix_new_exp, fix_at_start): Make "where" and "size" parameters unsigned long. (fix_new_internal): Likewise. Adjust error format string to suit. * config/tc-mips.c (md_convert_frag): Remove cast of fx_where. * config/tc-sparc.c (md_apply_fix): Likewise. * config/tc-score.c (s3_convert_frag): Adjust for unsigned fx_where. * config/tc-score7.c (s7_convert_frag): Likewise. commit 871a6bd2d852b0fb677386e1be78c3f4c6939b48 Author: Alan Modra Date: Mon Apr 15 21:51:44 2019 +0930 Make frag fr_fix unsigned The field only stores unsigned values, so let's make it unsigned to stop people worrying about the possibility of negative values. * frags.h (struct frag ): Use unsigned type. * frags.c (frag_new): Assert that current size exceeds old_frags_var_max_size. * ehopt.c (get_cie_info): Adjust for unsigned fr_fix. * listing.c (calc_hex): Likewise. * write.c (cvt_frag_to_fill, write_relocs): Likewise. * config/tc-arc.c (md_convert_frag): Likewise. * config/tc-avr.c (avr_patch_gccisr_frag): Likewise. * config/tc-mips.c (md_convert_frag): Likewise. * config/tc-rl78.c (md_convert_frag): Likewise. * config/tc-rx.c (md_convert_frag): Likewise. * config/tc-sparc.c (md_apply_fix): Likewise. * config/tc-xtensa.c (next_instrs_are_b_retw): Likewise. (unrelaxed_frag_min_insn_count, unrelaxed_frag_has_b_j): Likewise. commit 02e902e1a1ec7b74125f329b3faef1992efb6d51 Author: GDB Administrator Date: Tue Apr 16 00:00:22 2019 +0000 Automatic date update in version.in commit 4aa866af6b13c7080c6d92201fc1a2f4ea19998e Author: Leszek Swirski Date: Mon Apr 15 11:56:43 2019 -0400 Fix AMD64 return value ABI in expression evaluation The AMD64 System V ABI specifies that when a function has a return type classified as MEMORY, the caller provides space for the value and passes the address to this space as the first argument to the function (before even the "this" pointer). The classification of MEMORY is applied to struct that are sufficiently large, or ones with unaligned fields. The expression evaluator uses call_function_by_hand to call functions, and the hand-built frame has to push arguments in a way that matches the ABI of the called function. call_function_by_hand supports ABI-based struct returns, based on the value of gdbarch_return_value, however on AMD64 the implementation of the classifier incorrectly assumed that all non-POD types (implemented as "all types with a base class") should be classified as MEMORY and use the struct return. This ABI mismatch resulted in issues when calling a function that returns a class of size <16 bytes which has a base class, including issues such as the "this" pointer being incorrect (as it was passed as the second argument rather than the first). This is now fixed by checking for field alignment rather than POD-ness, and a testsuite is added to test expression evaluation for AMD64. gdb/ChangeLog: * amd64-tdep.c (amd64_classify_aggregate): Use cp_pass_by_reference rather than a hand-rolled POD check when checking for forced MEMORY classification. gdb/testsuite/ChangeLog: * gdb.arch/amd64-eval.cc: New file. * gdb.arch/amd64-eval.exp: New file. commit 86333705ae268aa00da41b094b0d632eae31e9ae Author: Faraz Shahbazker Date: Mon Apr 15 08:48:42 2019 -0700 Skip print-map-discarded test for non-ELF targets ld/ * testsuite/ld-gc/gc.exp: Skip print-map-discarded test for non-ELF targets. commit 48574d91bf1289074f2c88b1f83aa3cd37d524d9 Author: Alan Hayward Date: Mon Apr 15 12:31:21 2019 +0100 AArch64 SVE: Support changing vector lengths for ptrace When writing registers to the kernel, check if regcache VG has been changed. If so then update the thread's vector length, then write back the registers. When reading registers from the kernel, ensure regcache VG register is updated. The regcache registers should already be of the correct length. Remove all the checks that error if the vector length has changed. gdb/ChangeLog: * aarch64-linux-nat.c (store_sveregs_to_thread): Set vector length. * nat/aarch64-sve-linux-ptrace.c (aarch64_sve_set_vq): New function. (aarch64_sve_regs_copy_to_reg_buf): Remove VG checks. (aarch64_sve_regs_copy_from_reg_buf): Likewise. * nat/aarch64-sve-linux-ptrace.h (aarch64_sve_set_vq): New declaration. commit 4da037ef9dba6c17089250d228efdbe6f7d830c9 Author: Alan Hayward Date: Mon Apr 15 12:29:40 2019 +0100 AArch64 SVE: Check for vector length change when getting gdbarch Override the thread_architecture method, similar to SPU. If the vector length has changed, then find the arch using info, making sure the vector length is passed down to the init routine. In the init routine, ensure the arch has the correct vector length. Example output. Program is stopped in thread 2, just before it calls prctl to change the vector length (gdb) info threads Id Target Id Frame 1 Thread 0xffffbf6f4000 (LWP 3188) "sve_change" 0x0000ffffbf6ae130 in pthread_join () * 2 Thread 0xffffbf55e200 (LWP 3189) "sve_change" thread1 (arg=0xfeedface) at sve_change_size.c:28 (gdb) print $vg $1 = 8 (gdb) print $z0.s.u $2 = {623191333, 623191333, 623191333, 623191333, 0 } (gdb) n 29 int ret = prctl(PR_SVE_SET_VL, vl/2); (gdb) n 30 printf ("Changed: ret\n", ret); (gdb) print $vg $4 = 4 (gdb) print $z0.s.u $5 = {623191333, 623191333, 623191333, 623191333, 0, 0, 0, 0} (gdb) thr 1 [Switching to thread 1 (Thread 0xffffbf6f4000 (LWP 3181))] (gdb) print $vg $6 = 8 (gdb) print $z0.s.u $7 = {623191333, 623191333, 623191333, 623191333, 0 } gdb/ChangeLog: * aarch64-linux-nat.c (aarch64_linux_nat_target::thread_architecture): Add override. * aarch64-tdep.c (aarch64_gdbarch_init): Ensure different tdesc for each VQ. commit ccb8d7e8194b848a6c4aa43272540eec0f4f21f2 Author: Alan Hayward Date: Mon Apr 15 12:27:31 2019 +0100 AArch64: Tidy up aarch64_gdbarch_init Move the lookup_by_info to the top of the function to avoid unnecessarily creating a new feature when the gdbarch already exists. Add some additional cleanups that have no functional effect. gdb/ChangeLog: * aarch64-tdep.c (aarch64_gdbarch_init): Move gdbarch lookup. commit 32c36c3ce94becbf0b8e1adad6ff28aa9d5e0b66 Author: Andre Vieira Date: Mon Apr 15 12:23:24 2019 +0100 [binutils, ARM, 16/16] Add support to VLDR and VSTR of system registers GNU as' Arm backend assumes each mnemonic has a single entry in the instruction table but VLDR (system register) and VSTR (system register) are different instructions than VLDR and VSTR. It is thus necessary to add some form of demultiplexing in the parser. It starts by creating a new operand type OP_VLDR which indicate that the operand is either the existing OP_RVSD operand or a system register. The function parse_operands () then tries these two cases in order, calling the new parse_sys_vldr_vstr for the second case. Since the encoding function is specified in the instruction table entry, it also need to have some sort of demultiplexing. This is done in do_vldr_vstr which either calls the existing do_neon_ldr_str () or calls the new do_t_vldr_vstr_sysreg (). A new internal relocation is needed as well since the offset has a shorter range than in other Thumb coprocessor instructions. Disassembly also requires special care since VSTR (system register) reuse the STC encoding with the coprocessor number 15. Armv8.1-M Mainline ARM manual states that coprocessor 8, 14 and 15 are reserved for floating-point and MVE instructions a feature bit check is added if the coprocessor number is one of this value and we are trying to match a coprocessor instruction (eg. STC) to forbid the match. ChangeLog entries are as follows: *** bfd/ChangeLog *** 2019-04-15 Thomas Preud'homme * reloc.c (BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM): New internal relocation. * bfd-in2.h: Regenerate. * libbfd.h: Likewise. *** gas/ChangeLog *** 2019-04-15 Thomas Preud'homme * config/tc-arm.c (parse_sys_vldr_vstr): New function. (OP_VLDR): New enum operand_parse_code enumerator. (parse_operands): Add logic for OP_VLDR. (do_t_vldr_vstr_sysreg): New function. (do_vldr_vstr): Likewise. (insns): Guard VLDR and VSTR by arm_ext_v4t for Thumb mode. (md_apply_fix): Add bound check for VLDR and VSTR co-processor offset. Add masking logic for BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM relocation. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Add examples of bad uses of VLDR and VSTR. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Add error messages for above bad uses. * testsuite/gas/arm/archv8m_1m-cmse-main.s: Add examples of VLDR and VSTR valid uses. * testsuite/gas/arm/archv8m_1m-cmse-main.d: Add disassembly for the above examples. *** opcodes/ChangeLog *** 2019-04-15 Thomas Preud'homme * arm-dis.c (coprocessor_opcodes): Document new %J and %K format specifier. Add entries for VLDR and VSTR of system registers. (print_insn_coprocessor): Forbid coprocessor numbers 8, 14 and 15 in coprocessor instructions on Armv8.1-M Mainline targets. Add handling of %J and %K format specifier. commit efd6b3591b4bc8440f4145dfc0e6dbfc0545f7d8 Author: Andre Vieira Date: Mon Apr 15 12:18:16 2019 +0100 [binutils, ARM, 15/16] Add support for VSCCLRM Like for CLRM, this patch aims to share as much logic with the similar looking VLDM/VSTM. This is achieved by adding 2 new enumerator values in enum reg_list_els for the single-precision and double-precision variants of VSCCLRM and extending parse_vfp_reg_list () to deal with these types. These behave like the existing REGLIST_VFP_S and REGLIST_VFP_D types with extra logic to expect VPR as the last element in the register list. The function is algo augmented with a new partial_match parameter to indicate if any register other than VPR had already been parsed in the register list so as to not try parsing the second variant if that's the case and return the right error message. The rest of the patch is the usual encoding function, new disassembler table entries and format specifier and parsing, encoding and disassembling tests. It is worth mentioning that the new entry in the disassembler table was added in the coprocessor-related table despite VSCCLRM always being available even in FPU-less configurations. The main reason for this is that VSCCLRM also match VLDMIA entry and must thus be tried first but coprocessor entries are tried before T32 entries. It also makes sense because it is in the same encoding space as coprocessor and VFP instructions and is thus the natural place for someone to look for this instruction. Note: Both variants of VSCCLRM support D16-D31 registers but Armv8.1-M Mainline overall does not. I have thus decided not to implement support for these registers in order to keep the code simpler. It can always be added later if needed. ChangeLog entries are as follows: *** gas/ChangeLog *** 2019-04-15 Thomas Preud'homme * config/tc-arm.c (arm_typed_reg_parse): Fix typo in comment. (enum reg_list_els): New REGLIST_VFP_S_VPR and REGLIST_VFP_D_VPR enumerators. (parse_vfp_reg_list): Add new partial_match parameter. Set *partial_match to TRUE if at least one element in the register list has matched. Add support for REGLIST_VFP_S_VPR and REGLIST_VFP_D_VPR register lists which expect VPR as last element in the list. (s_arm_unwind_save_vfp_armv6): Adapt call to parse_vfp_reg_list to new prototype. (s_arm_unwind_save_vfp): Likewise. (enum operand_parse_code): New OP_VRSDVLST enumerator. (parse_operands): Adapt call to parse_vfp_reg_list to new prototype. Handle new OP_VRSDVLST case. (do_t_vscclrm): New function. (insns): New entry for VSCCLRM instruction. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Add invalid VSCCLRM instructions. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Add error expectations for above instructions. * testsuite/gas/arm/archv8m_1m-cmse-main.s: Add tests for VSCCLRM instruction. * testsuite/gas/arm/archv8m_1m-cmse-main.d: Add expected disassembly for above instructions. *** opcodes/ChangeLog *** 2019-04-15 Thomas Preud'homme * arm-dis.c (coprocessor_opcodes): Document new %C format control code. Add new entries for VSCCLRM instruction. (print_insn_coprocessor): Handle new %C format control code. commit 6b0dd094741bc5e9963eabc64a7030783e471941 Author: Andre Vieira Date: Mon Apr 15 12:14:38 2019 +0100 [opcodes, ARM, 14/16] Add mode availability to coprocessor table entries The coprocessor_opcodes table is used both to share commonalities in coprocessor-related instructions and to avoid duplication between Arm and Thumb mode. However, some instructions do have differences between Arm and Thumb. For instance, vldmia allows PC as base register in Arm mode but not in Thumb mode. In that very case the distinction becomes necessary because the encoding with PC as base register is used in Thumb mode to denote a VSCCLRM. It is thus necessary to distinguish what is Arm or Thumb only from what is shared. This patch adds an extra field to the coprocessor_opcodes table entries to indicate what mode is a given instruction available in. The print_insn_coprocessor then uses that field to determine if an entry that matched the mark and value checked should be allowed to match or not given the current mode. ChangeLog entry is as follows: *** opcodes/ChangeLog *** 2019-04-15 Thomas Preud'homme * arm-dis.c (enum isa): New enum. (struct sopcode32): New structure. (coprocessor_opcodes): change type of entries to struct sopcode32 and set isa field of all current entries to ANY. (print_insn_coprocessor): Change type of insn to struct sopcode32. Only match an entry if its isa field allows the current mode. commit 4b5a202f107b5393da30fd0b488c3eff2bc758a5 Author: Andre Vieira Date: Mon Apr 15 12:07:20 2019 +0100 [binutils, ARM, 13/16] Add support for CLRM Given the similarity between LDM/STM and CLRM register lists, most of the changes in this patch aim at sharing code between those two sets of instruction. Sharing is achieved both in parsing and encoding of those instructions. In terms of parsing, parse_reg_list () is extended to take a type that describe what type of instruction is being parsed. The reg_list_els used for parse_vfp_reg_list () is reused for the type and that function is added an assert for the new REGLIST_CLRM and REGLIST_RN enumerators. parse_reg_list () is then taught to accept APSR and reject SP and PC when parsing for a CLRM instruction. At last, caller of parse_reg_list () is updated accordingly and logic is added for the new OP_CLRMLST operand. Encoding-wise, encode_thumb2_ldmstm () is reused to encode the variable bits of CLRM and is thus renamed encode_thumb2_multi (). A new do_io parameter is added to distinguish between LDM/STM and CLRM which guard all the LDM/STM specific code of the function. Finally objdump is told how to disassemble CLRM, again reusing the logic to print the LDM/STM register list (format specifier 'm'). Tests are also added in the form of negative tests to check parsing and encoding/disassembling tests. ChangeLog entries are as follows: *** gas/ChangeLog *** 2019-04-15 Thomas Preud'homme * config/tc-arm.c (enum reg_list_els): Define earlier and add REGLIST_RN and REGLIST_CLRM enumerators. (parse_reg_list): Add etype parameter to distinguish between regular core register list and CLRM register list. Add logic to recognize CLRM register list. (parse_vfp_reg_list): Assert type is not for core register list. (s_arm_unwind_save_core): Update call to parse_reg_list to new prototype. (enum operand_parse_code): Declare OP_CLRMLST enumerator. (parse_operands): Update call to parse_reg_list to new prototype. Add logic for OP_CLRMLST. (encode_thumb2_ldmstm): Rename into ... (encode_thumb2_multi): This. Add do_io parameter. Add logic to encode CLRM and guard LDM/STM only code by do_io. (do_t_ldmstm): Adapt to use encode_thumb2_multi. (do_t_push_pop): Likewise. (do_t_clrm): New function. (insns): Define CLRM. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.d: New file. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.l: Likewise. * testsuite/gas/arm/archv8m_1m-cmse-main-bad.s: Likewise. * testsuite/gas/arm/archv8m_1m-cmse-main.d: Likewise. * testsuite/gas/arm/archv8m_1m-cmse-main.s: Likewise. *** opcodes/ChangeLog *** 2019-04-15 Thomas Preud'homme * arm-dis.c (thumb_opcodes): Document %n control code. Add entry for CLRM. (print_insn_thumb32): Add logic to print %n CLRM register list. commit 60f993ce170b91876ad41e8f7339c24afd63fac2 Author: Andre Vieira Date: Mon Apr 15 11:58:47 2019 +0100 [binutils, ARM, 12/16] Scalar Low Overhead loop instructions for Armv8.1-M Mainline s patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This patch adds support to the Scalar low overhead loop instructions: LE WLS DLS We also add a new assembler resolvable relocation bfd_reloc_code_real enum for the 12-bit branch offset used in these instructions. ChangeLog entries are as follows: *** bfd/ChnageLog *** 2019-04-12 Sudakshina Das * reloc.c (BFD_RELOC_ARM_THUMB_LOOP12): New. * bfd-in2.h: Regenerated. * libbfd.h: Regenerated. *** gas/ChangeLog *** 2019-04-12 Sudakshina Das Andre Vieira * config/tc-arm.c (operand_parse_code): Add OP_LR and OP_oLR for the LR operand and optional LR operand. (parse_operands): Add switch cases for OP_LR and OP_oLR for both type checking and value checking. (encode_thumb32_addr_mode): New entries for DLS, WLS and LE. (v8_1_loop_reloc): New helper function for handling labels for the low overhead loop instructions. (do_t_loloop): New function to encode DLS, WLS and LE. (insns): New entries for WLS, DLS and LE. (md_pcrel_from_section): New switch case for BFD_RELOC_ARM_THUMB_LOOP12. (md_appdy_fix): Likewise. (tc_gen_reloc): Likewise. * testsuite/gas/arm/armv8_1-m-tloop.s: New. * testsuite/gas/arm/armv8_1-m-tloop.d: New. * testsuite/gas/arm/armv8_1-m-tloop-bad.s: New. * testsuite/gas/arm/armv8_1-m-tloop-bad.d: New. * testsuite/gas/arm/armv8_1-m-tloop-bad.l: New. *** opcodes/ChangeLog *** 2019-04-12 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %P and %Q patterns. commit f6b2b12db82f7b76c30ec389a67fbce5d2805323 Author: Andre Vieira Date: Mon Apr 15 11:53:25 2019 +0100 [binutils, ARM, 11/16] New BFCSEL instruction for Armv8.1-M Mainline s patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This patch adds the BFCSEL instruction. It also adds a local relocation with a new bfd_reloc_code_real enum. ChangeLog entries are as follows: 2019-04-15 Sudakshina Das * reloc.c (BFD_RELOC_THUMB_PCREL_BFCSEL): New relocation. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das Andre Vieira * config/tc-arm.c (T16_32_TAB): New entriy for bfcsel. (do_t_v8_1_branch): New switch case for bfcsel. (toU): Define. (insns): New instruction for bfcsel. (md_pcrel_from_section): New switch case for BFD_RELOC_THUMB_PCREL_BFCSEL. (md_appdy_fix): Likewise (tc_gen_reloc): Likewise. * testsuite/gas/arm/armv8_1-m-bfcsel.d: New. * testsuite/gas/arm/armv8_1-m-bfcsel.s: New. *** ld/ChangeLog *** 2019-04-15 Sudakshina Das * testsuite/ld-arm/bfcsel.s: New. * testsuite/ld-arm/bfcsel.d: New. * testsuite/ld-arm/arm-elf.exp: Add above test. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (thumb32_opcodes): New instruction bfcsel. (print_insn_thumb32): Edit the switch case for %Z. commit 1889da7048b310151d142b100678b6bd6053b548 Author: Andre Vieira Date: Mon Apr 15 11:46:54 2019 +0100 [binutils, ARM, 10/16] BFCSEL infrastructure with new global reloc R_ARM_THM_BF12 This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This adds infrastructure for the BFCSEL instructions which is one of the first instructions in Arm that have more than one relocations in them. This adds a new relocation R_ARM_THM_BF12. The inconsistency between external R_ARM_THM_BF12 and internal BFD_RELOC_ARM_THUMB_BF13 is because internally we count the static bit-0 of the immediate and we don't externally. ChangeLog entries are as follows : ChangeLog entries are as follows : *** bfd/ChnageLog *** 2019-04-04 Sudakshina Das * reloc.c (BFD_RELOC_ARM_THUMB_BF13): New. * bfd-in2.h: Regenerated. * libbfd.h: Regenerated. * elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF13. (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF13 and R_ARM_THM_BF12 together. (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF13. *** elfcpp/ChangeLog *** 2019-04-04 Sudakshina Das * arm.h (R_ARM_THM_BF12): New relocation code. *** gas/ChangeLog *** 2019-04-04 Sudakshina Das * config/tc-arm.c (md_pcrel_from_section): New switch case for BFD_RELOC_ARM_THUMB_BF13. (md_appdy_fix): Likewise. (tc_gen_reloc): Likewise. *** include/ChangeLog *** 2019-04-04 Sudakshina Das * elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF12. *** opcodes/ChangeLog *** 2019-04-04 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %Z pattern. commit 65d1bc05e89e45b102783422c3984ed718547d5c Author: Andre Vieira Date: Mon Apr 15 11:42:10 2019 +0100 [binutils, ARM, 9/16] New BFL instruction for Armv8.1-M Mainline This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This patch adds the BFL instruction. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das Andre Vieira * config/tc-arm.c (T16_32_TAB): New entrie for bfl. (do_t_v8_1_branch): New switch case for bfl. (insns): New instruction for bfl. * testsuite/gas/arm/armv8_1-m-bfl.d: New. * testsuite/gas/arm/armv8_1-m-bfl.s: New. * testsuite/gas/arm/armv8_1-m-bfl-bad.s: New. * testsuite/gas/arm/armv8_1-m-bfl-bad.d: New. * testsuite/gas/arm/armv8_1-m-bfl-bad.l: New. * testsuite/gas/arm/armv8_1-m-bfl-rel.d: New. * testsuite/gas/arm/armv8_1-m-bfl-rel.s: New. *** ld/ChangeLog *** 2019-04-15 Sudakshina Das * testsuite/ld-arm/bfl.s: New. * testsuite/ld-arm/bfl.d: New. * testsuite/ld-arm/arm-elf.exp: Add above test. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (thumb32_opcodes): New instruction bfl. commit 1caf72a5849abf9a717ed3e0232abf591ff933e7 Author: Andre Vieira Date: Mon Apr 15 11:37:51 2019 +0100 [binutils, ARM, 8/16] BFL infrastructure with new global reloc R_ARM_THM_BF18 This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This adds infrastructure for the BFL instructions which is one of the first instructions in Arm that have more than one relocations in them. This adds a new relocation R_ARM_THM_BF18. The inconsistency between external R_ARM_THM_BF18 and internal BFD_RELOC_ARM_THUMB_BF19 is because internally we count the static bit-0 of the immediate and we don't externally. ChangeLog entries are as follows : *** bfd/ChangeLog *** 2019-04-15 Sudakshina Das * reloc.c (BFD_RELOC_ARM_THUMB_BF19): New * libbfd.h: Regenerated. * bfd-in2.h: Regenerated. * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF18. (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF19 and R_ARM_THM_BF18 together. (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF19. *** elfcpp/ChangeLog *** 2019-04-15 Sudakshina Das * arm.h (R_ARM_THM_BF18): New relocation code. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (md_pcrel_from_section): New switch case for BFD_RELOC_ARM_THUMB_BF19. (md_appdy_fix): Likewise. (tc_gen_reloc): Likewise. *** include/ChangeLog *** 2019-04-15 Sudakshina Das * elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF18. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %Y pattern. commit f1c7f42126274d48f6b0a929e4e15a32193997c6 Author: Andre Vieira Date: Mon Apr 15 11:29:14 2019 +0100 [binutils, ARM, 7/16] New BFX and BFLX instruction for Armv8.1-M Mainline This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This patch adds the BFX and BFLX instructions. ChangeLog entries are as follows : *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (T16_32_TAB): New entries for bfx and bflx. (do_t_v8_1_branch): New switch cases for bfx and bflx. (insns): New instruction for bfx and bflx. * testsuite/gas/arm/armv8_1-m-bf-exchange.d: New. * testsuite/gas/arm/armv8_1-m-bf-exchange.s: New. * testsuite/gas/arm/armv8_1-m-bf-exchange-bad.s: New * testsuite/gas/arm/armv8_1-m-bf-exchange-bad.l: New * testsuite/gas/arm/armv8_1-m-bf-exchange-bad.d: New *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (print_insn_thumb32): Add '%S' to print an Arm register with r13 and r15 unpredictable. (thumb32_opcodes): New instructions for bfx and bflx. commit 4389b29a5af431eeac517272b66560e12df3c430 Author: Andre Vieira Date: Mon Apr 15 11:25:12 2019 +0100 [binutils, ARM, 6/16] New BF instruction for Armv8.1-M Mainline This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This patch adds the BF instruction. ChangeLog entries are as follows: *** gas/ChangeLog *** 2019-04-15 Sudakshina Das Andre Vieira * config/tc-arm.c (T16_32_TAB): New entries for bf. (do_t_branch_future): New. (insns): New instruction for bf. * testsuite/gas/arm/armv8_1-m-bf.d: New. * testsuite/gas/arm/armv8_1-m-bf.s: New. * testsuite/gas/arm/armv8_1-m-bf-bad.s: New. * testsuite/gas/arm/armv8_1-m-bf-bad.l: New. * testsuite/gas/arm/armv8_1-m-bf-bad.d: New. * testsuite/gas/arm/armv8_1-m-bf-rel.d: New. * testsuite/gas/arm/armv8_1-m-bf-rel.s: New. *** ld/ChangeLog *** 2019-04-15 Sudakshina Das * testsuite/ld-arm/bf.s: New. * testsuite/ld-arm/bf.d: New. * testsuite/ld-arm/arm-elf.exp: Add above test. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (thumb32_opcodes): New instructions for bf. commit e5d6e09ee6cea13942a8042945e784f483a6f3af Author: Andre Vieira Date: Mon Apr 15 11:18:57 2019 +0100 [binutils, ARM, 5/16] BF insns infrastructure with new global reloc R_ARM_THM_BF16 This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This adds infrastructure for the BF instructions which is one of the first instructions in Arm that have more than one relocations in them. This is the third infrastructure patch that adds a new relocation R_ARM_THM_BF16. The inconsistency between external R_ARM_THM_BF16 and internal BFD_RELOC_ARM_THUMB_BF17 is because internally we count the static bit-0 of the immediate and we don't externally. ChangeLog entries are as follows : *** bfd/ChangeLog *** 2019-04-15 Sudakshina Das * reloc.c (BFD_RELOC_ARM_THUMB_BF17): New enum. * bfd-in2.h: Regenerated. * libbfd.h: Regenerated. * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF16. (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF17 and R_ARM_THM_BF16 together. (get_value_helper): New reloc helper. (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF16. *** elfcpp/ChangeLog *** 2019-04-15 Sudakshina Das * arm.h (R_ARM_THM_BF16): New relocation code. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (md_pcrel_from_section): New switch case for BFD_RELOC_ARM_THUMB_BF17. (md_appdy_fix): Likewise. (tc_gen_reloc): Likewise. *** include/ChangeLog *** 2019-04-15 Sudakshina Das * elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF16. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %W pattern. commit e2b0ab597857bfe9d7c8742ff50bbb77c70936c4 Author: Andre Vieira Date: Mon Apr 15 11:12:57 2019 +0100 [binutils, ARM, 4/16] BF insns infrastructure with array of relocs in struct arm_it This patch is part of a series of patches to add support for ARMv8.1-M Mainline instructions to binutils. This adds infrastructure for the Branch Future instructions (BF, BFX, BFL, BFLX, BFCSEL). These are the first instructions in ARM that have more than one relocations in them. Their external relocations can be found in the 'ELF for the Arm Architecture - ABI 2019Q1' document on developer.arm.com This is the second infrastructure patch that adds support to allow up to 3 relocations in an instruction. This is done by changing the reloc member of struct arm_it to an array instead (relocs[3]). All the previous occurrences of reloc can now to referring to relocs[0]. ChangeLog entries are as follows : *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (ARM_IT_MAX_RELOCS): New macro. (arm_it): Member reloc renamed relocs and updated to an array. Rest: Replace all occurrences of reloc to relocs[0]. commit e12437dc862690eeaa4a487fee35a237703d2b29 Author: Andre Vieira Date: Mon Apr 15 11:06:30 2019 +0100 [binutils, ARM, 3/16] BF insns infrastructure with new bfd_reloc_code_real for fallback branch This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils. This adds infrastructure for the Branch Future instructions (BF, BFX, BFL, BFLX, BFCSEL). These are the first instructions in ARM that have more than one relocations in them. This is the first infrastructure patch that adds a new bfd_reloc_code_real enum for the fallback branch offset. This is common for all such instructions and needs to be resolvable by the assembler. ChangeLog entries are as follows : *** bfd/ChangeLog *** 2019-04-15 Sudakshina Das * reloc.c (BFD_RELOC_THUMB_PCREL_BRANCH5): New enum. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (md_pcrel_from_section): New switch case for BFD_RELOC_THUMB_PCREL_BRANCH5. (v8_1_branch_value_check): New function to check branch offsets. (md_appdy_fix): New switch case for BFD_RELOC_THUMB_PCREL_BRANCH5. (tc_gen_reloc): Likewise. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %G pattern. commit e0991585ade56ff86a382978bb3b0268d6e1f31c Author: Andre Vieira Date: Mon Apr 15 11:00:21 2019 +0100 [GAS, ARM, 2/16] Add CLI extension support for Armv8.1-M Mainline This patch implements the dsp, fp and fp.dp extensions for Armv8.1-M Mainline. This patch also removes the fp-armv8 check from the half-precision move instructions 'do_neon_movhf', as checking that the FP16 instructions extension feature bit is enabled 'ARM_EXT2_FP16_INST' is enough. gas/ChangeLog: 2019-04-15 Andre Vieira * config/tc-arm.c (do_neon_movhf): Remove fp-armv8 check. (armv8_1m_main_ext_table): New extension table. (arm_archs): Use the new extension table. * doc/c-arm.texi: Add missing arch and document new extensions. * testsuite/gas/arm/armv8.1-m.main-fp.d: New. * testsuite/gas/arm/armv8.1-m.main-fp-dp.d: New. * testsuite/gas/arm/armv8.1-m.main-hp.d: New. commit 031254f2111f945ce6a1b8827e1a58ed7141fefe Author: Andre Vieira Date: Mon Apr 15 10:54:42 2019 +0100 [binutils, ARM, 1/16] Add support for Armv8.1-M Mainline CLI The patch is straightforward, it does the following: - support the new Tag_CPU_arch build attribute value, ie.: + declare the new value + update all the asserts forcing logic to be reviewed for new architectures + create a corresponding bfd_mach_arm_8_1M_MAIN enumerator in bfd and add mapping from Tag_CPU_arch to it + teach readelf about new Tag_CPU_arch value - declare armv8.1-m.main as a supported architecture value - define Armv8.1-M Mainline in terms of feature bits available - tell objdump mapping from bfd_mach_arm_8_1M_MAIN enumerator to feature bits available - update architecture-specific logic in gas and bfd guarded by the asserts mentioned above. - tests for all the above ChangeLog entries are as follows: *** bfd/ChangeLog *** 2019-04-15 Thomas Preud'homme * archures.c (bfd_mach_arm_8_1M_MAIN): Define. * bfd-in2.h: Regenerate. * cpu-arm.c (arch_info_struct): Add entry for Armv8.1-M Mainline. * elf32-arm.c (using_thumb_only): Return true for Armv8.1-M Mainline and update assert. (using_thumb2): Likewise. (using_thumb2_bl): Update assert. (arch_has_arm_nop): Likewise. (bfd_arm_get_mach_from_attributes): Add case for Armv8.1-M Mainline. (tag_cpu_arch_combine): Add logic for Armv8.1-M Mainline merging. *** binutils/ChangeLog *** 2019-04-15 Thomas Preud'homme * readelf.c (arm_attr_tag_CPU_arch): Add entry for Armv8.1-M Mainline. *** gas/ChangeLog *** 2019-04-15 Thomas Preud'homme * config/tc-arm.c (cpu_arch_ver): Add entry for Armv8.1-M Mainline Tag_CPU_arch build attribute value. Reindent. (get_aeabi_cpu_arch_from_fset): Update assert. (aeabi_set_public_attributes): Update assert for Tag_DIV_use logic. * testsuite/gas/arm/attr-march-armv8_1-m.main.d: New test. *** include/ChangeLog *** 2019-04-15 Thomas Preud'homme * elf/arm.h (TAG_CPU_ARCH_V8_1M_MAIN): new macro. (MAX_TAG_CPU_ARCH): Set value to above macro. * opcode/arm.h (ARM_EXT2_V8_1M_MAIN): New macro. (ARM_AEXT_V8_1M_MAIN): Likewise. (ARM_AEXT2_V8_1M_MAIN): Likewise. (ARM_ARCH_V8_1M_MAIN): Likewise. *** ld/ChangeLog *** 2019-04-15 Thomas Preud'homme * testsuite/ld-arm/attr-merge-13.attr: New test. * testsuite/ld-arm/attr-merge-13a.s: New test. * testsuite/ld-arm/attr-merge-13b.s: New test. *** opcodes/ChangeLog *** 2019-04-15 Thomas Preud'homme * arm-dis.c (select_arm_features): Add logic for Armv8.1-M Mainline. commit 8669f96f0d1fee8eddc4cb56ba68125abfe61f56 Author: GDB Administrator Date: Mon Apr 15 00:00:16 2019 +0000 Automatic date update in version.in commit d94c001b358b1a947a61bafc10a18660bb5eef59 Author: GDB Administrator Date: Sun Apr 14 00:01:01 2019 +0000 Automatic date update in version.in commit 798066abd8e5ec2a411979fd34bfe0cd494c1813 Author: Andrew Burgess Date: Thu Apr 11 23:17:31 2019 +0100 sim: Use host not target byte order for merging and splitting values When using writes to memory through a struct to merge and extract multi-word value, it is the endianness of the host, not the target that affects which order the component words need to be written into the structure. Of the 5 functions adjusted here 4 of them are unused. The 5th, JOINSIDF will soon be used by the or1k target. For or1k, simulated on x86-64, this change fixes this function so that the correct bytes are now returned. sim/common/ChangeLog: * cgen-ops.h (SUBWORDXFSI): Compare HOST_BYTE_ORDER not CURRENT_TARGET_BYTE_ORDER. (SUBWORDTFSI): Likewise. (JOINSIDF): Likewise. (JOINSIXF): Likewise. (JOINSITF): Likewise. commit bdc8beb41b656e8071af275ef0e98c4f2d05e564 Author: Matthew Fortune Date: Tue Apr 9 20:40:00 2019 +0000 [MIPS] Add i6500 CPU and fix i6400 default ASEs gas/ * config/tc-mips.c (mips_cpu_info_table): Add i6500. Update default ASEs for i6400. * doc/c-mips.texi (-march): Document i6500. * testsuite/gas/mips/elf_mach_i6400.d: New test. * testsuite/gas/mips/elf_mach_i6500.d: New test. * testsuite/gas/mips/mips.exp: Run the new tests. commit 3315614d19a7fb409227298ead9b356bdbcca3bc Author: Matthew Fortune Date: Tue Apr 9 10:34:48 2019 -0700 [MIPS] Apply ASE information for the selected processor GAS does not enable implicit ASEs for most MIPS processors. The rework of option handling done as part of .module implementation left the implicit ASE logic broken and default enabled ASEs for most processors did not get applied. This patch ensures the ASE information is carried forward to the point where it is required. gas/ * config/tc-mips.c (mips_set_options) : New field. (file_mips_opts, mips_opts) : Initialize new field. (file_mips_check_options): Propagate initial ASE settings. (mips_after_parse_args, parse_code_option): Track the initial ASE settings for a CPU. (s_mipsset): Restore the initial ASE settings when reverting to the default arch. * testsuite/gas/mips/elf_mach_p6600.d: New test. * testsuite/gas/mips/mips.exp: Run the new test. commit c40e31a1217f6ec9dd47e2e6806c2562096e31fe Author: Alan Modra Date: Fri Apr 12 20:32:57 2019 +0930 Automatic makefile dependencies for generated ld/e*.c This patch modifies genscripts.sh to emit dependency info along with the generated emulation e*.c files. This is done by a new source_sh function that records its arg to a file (.deps/e*.Tc), using the function whenever a shell script is sourced. Entries in the file are made unique and written to .deps/e*.Pc. These files are then included by the Makefile. * Makefile.am (GENSCRIPTS): Pass LIB_PATH as a parameter. Add DEPDIR parameter. (ELF_DEPS, ELF_GEN_DEPS, ELF_X86_DEPS): Delete. (ALL_EMULATION_SOURCES, ALL_64_EMULATION_SOURCES): Depend on $GEN_DEPENDS. (e*.c): Delete all dependencies, instead include dependencies from $DEPDIR/*.Pc. * Makefile.in: Regenerate. * configure.ac (source_sh): Define and use function. * configure: Regenerate. * emulparams/aarch64cloudabib.sh, * emulparams/aarch64elf32b.sh, * emulparams/aarch64elfb.sh, * emulparams/aarch64fbsdb.sh, * emulparams/aarch64linux32b.sh, * emulparams/aarch64linuxb.sh, * emulparams/arcelf.sh, * emulparams/arcelf_prof.sh, * emulparams/arclinux.sh, * emulparams/arclinux_nps.sh, * emulparams/arclinux_prof.sh, * emulparams/arcv2elf.sh, * emulparams/arcv2elfx.sh, * emulparams/armelf_fbsd.sh, * emulparams/armelf_linux_eabi.sh, * emulparams/armelf_linux_fdpiceabi.sh, * emulparams/armelf_nacl.sh, * emulparams/armelf_nbsd.sh, * emulparams/armelf_vxworks.sh, * emulparams/armelfb.sh, * emulparams/armelfb_fbsd.sh, * emulparams/armelfb_fuchsia.sh, * emulparams/armelfb_linux.sh, * emulparams/armelfb_linux_eabi.sh, * emulparams/armelfb_linux_fdpiceabi.sh, * emulparams/armelfb_nacl.sh, * emulparams/armelfb_nbsd.sh, * emulparams/armsymbian.sh, * emulparams/cskyelf_linux.sh, * emulparams/elf32_sparc_sol2.sh, * emulparams/elf32_sparc_vxworks.sh, * emulparams/elf32_tic6x_be.sh, * emulparams/elf32_tic6x_elf_be.sh, * emulparams/elf32_tic6x_elf_le.sh, * emulparams/elf32_tic6x_linux_be.sh, * emulparams/elf32_tic6x_linux_le.sh, * emulparams/elf32_x86_64.sh, * emulparams/elf32_x86_64_nacl.sh, * emulparams/elf32b4300.sh, * emulparams/elf32bfinfd.sh, * emulparams/elf32bmipn32.sh, * emulparams/elf32bsmip.sh, * emulparams/elf32btsmip.sh, * emulparams/elf32btsmip_fbsd.sh, * emulparams/elf32btsmipn32.sh, * emulparams/elf32btsmipn32_fbsd.sh, * emulparams/elf32ebmip.sh, * emulparams/elf32ebmipvxworks.sh, * emulparams/elf32elmip.sh, * emulparams/elf32elmipvxworks.sh, * emulparams/elf32frvfd.sh, * emulparams/elf32l4300.sh, * emulparams/elf32lm32fd.sh, * emulparams/elf32lmip.sh, * emulparams/elf32lppc.sh, * emulparams/elf32lppclinux.sh, * emulparams/elf32lppcnto.sh, * emulparams/elf32lppcsim.sh, * emulparams/elf32lr5900.sh, * emulparams/elf32lr5900n32.sh, * emulparams/elf32lriscv.sh, * emulparams/elf32lriscv_ilp32.sh, * emulparams/elf32lriscv_ilp32f.sh, * emulparams/elf32lsmip.sh, * emulparams/elf32ltsmip.sh, * emulparams/elf32ltsmip_fbsd.sh, * emulparams/elf32ltsmipn32.sh, * emulparams/elf32ltsmipn32_fbsd.sh, * emulparams/elf32microblazeel.sh, * emulparams/elf32or1k_linux.sh, * emulparams/elf32ppc.sh, * emulparams/elf32ppc_fbsd.sh, * emulparams/elf32ppccommon.sh, * emulparams/elf32ppclinux.sh, * emulparams/elf32ppcnto.sh, * emulparams/elf32ppcsim.sh, * emulparams/elf32ppcvxworks.sh, * emulparams/elf32ppcwindiss.sh, * emulparams/elf32tilegx_be.sh, * emulparams/elf64_ia64_fbsd.sh, * emulparams/elf64_sparc_fbsd.sh, * emulparams/elf64_sparc_sol2.sh, * emulparams/elf64alpha_fbsd.sh, * emulparams/elf64alpha_nbsd.sh, * emulparams/elf64bmip-defs.sh, * emulparams/elf64bmip.sh, * emulparams/elf64btsmip.sh, * emulparams/elf64btsmip_fbsd.sh, * emulparams/elf64lppc.sh, * emulparams/elf64lriscv-defs.sh, * emulparams/elf64lriscv.sh, * emulparams/elf64lriscv_lp64.sh, * emulparams/elf64lriscv_lp64f.sh, * emulparams/elf64ltsmip.sh, * emulparams/elf64ltsmip_fbsd.sh, * emulparams/elf64ppc.sh, * emulparams/elf64ppc_fbsd.sh, * emulparams/elf64rdos.sh, * emulparams/elf64tilegx_be.sh, * emulparams/elf_i386.sh, * emulparams/elf_i386_be.sh, * emulparams/elf_i386_fbsd.sh, * emulparams/elf_i386_ldso.sh, * emulparams/elf_i386_nacl.sh, * emulparams/elf_i386_sol2.sh, * emulparams/elf_i386_vxworks.sh, * emulparams/elf_iamcu.sh, * emulparams/elf_k1om.sh, * emulparams/elf_k1om_fbsd.sh, * emulparams/elf_l1om.sh, * emulparams/elf_l1om_fbsd.sh, * emulparams/elf_x86_64.sh, * emulparams/elf_x86_64_cloudabi.sh, * emulparams/elf_x86_64_fbsd.sh, * emulparams/elf_x86_64_nacl.sh, * emulparams/elf_x86_64_sol2.sh, * emulparams/h8300helf.sh, * emulparams/h8300helf_linux.sh, * emulparams/h8300hnelf.sh, * emulparams/h8300self.sh, * emulparams/h8300self_linux.sh, * emulparams/h8300snelf.sh, * emulparams/h8300sxelf.sh, * emulparams/h8300sxelf_linux.sh, * emulparams/h8300sxnelf.sh, * emulparams/hppanbsd.sh, * emulparams/hppaobsd.sh, * emulparams/m32rlelf.sh, * emulparams/m32rlelf_linux.sh, * emulparams/m68kelfnbsd.sh, * emulparams/mn10300.sh, * emulparams/msp430X.sh, * emulparams/nds32belf.sh, * emulparams/nds32belf16m.sh, * emulparams/nds32belf_linux.sh, * emulparams/pjlelf.sh, * emulparams/ppclynx.sh, * emulparams/score7_elf.sh, * emulparams/shelf_fd.sh, * emulparams/shelf_linux.sh, * emulparams/shelf_nbsd.sh, * emulparams/shelf_uclinux.sh, * emulparams/shelf_vxworks.sh, * emulparams/shl.sh, * emulparams/shlelf.sh, * emulparams/shlelf_fd.sh, * emulparams/shlelf_nbsd.sh, * emulparams/shlelf_vxworks.sh: Use source_sh. * genscripts.sh: Adjust for changed parameters. Emit dependencies for e*.c to .deps/*.Pc. (source_sh): New function, use it throughout to source scripts. * genscrba.sh (source_em): Use source_sh. commit 50ff67e6cf65dbe1b8fbbdb7a6c2e43919af95f4 Author: Alan Modra Date: Fri Apr 12 19:02:44 2019 +0930 ld TDIRS substitution It is no longer true that autoconf/automake cannot substitute vars with embedded new-lines. * configure.ac (TDIRS): Build up tdirs in this variable and AC_SUBST, also using AM_SUBST_NOTMAKE. * configure: Regenerate. * Makefile.am (DISTCLEANFILES): Remove tdirs. * Makefile.in: Regenerate. commit 35add35e85c21f02e3e5808273cb77b24069b0aa Author: Andrew Burgess Date: Sat Apr 13 00:54:16 2019 +0100 gdb: Fix failure in gdb.base/complex-parts.exp for x86-32 The x86-32 ABI specifies 96-bit long double, this was causing a failure on the test gdb.base/complex-parts.exp. The problem is that GDB tries to find a builtin floating point type of the correct size in order to reuse the name of that type as the name for the components of the complex type being built. Previously GDB was only aware of floating point types sized 32, 64, or 128 bits. This patch teaches GDB how to handle 96 bit floating point type. gdb/ChangeLog: * dwarf2read.c (dwarf2_init_complex_target_type): Handle complex target types of size 96-bits, add some additional comments, and check that the builtin type we found was the correct size. commit 9c9f1b1f39f37ce75c2fc3c378aa059b67df2ea2 Author: GDB Administrator Date: Sat Apr 13 00:00:35 2019 +0000 Automatic date update in version.in commit 8114a5c51e6d07e3dfd243eee1cfad6e63cc52aa Author: John Darrington Date: Fri Apr 12 18:39:01 2019 +0200 GAS: S12Z: Remove definition of macro TC_M68K. gas/config: * tc-s12z.h: Remove inappropriate macro definition. commit e5a557ac01a775df64ae8149c5fe7d503f46a92f Author: John Darrington Date: Fri Apr 12 18:39:01 2019 +0200 S12Z: opcodes: Replace "operator" with "optr". opcodes/ * s12z-dis.c, s12z-opc.c, s12z-opc.h: Replace operator with optr. commit d04ebfb8178e56bdcbf925ec0ed55cf14488e3fb Author: John Darrington Date: Fri Apr 12 18:39:01 2019 +0200 GAS: tc-s12z.c: int -> bfd_boolean Use bfd_boolean where appropriate. commit 51196bbc5618a3741bd7bbed01ac76b25a2e6f9c Author: Eli Zaretskii Date: Fri Apr 12 15:35:57 2019 +0300 Another fix for GDB styling gdb/ChangeLog: 2019-04-12 Eli Zaretskii * utils.c (prompt_for_continue): Don't restore the styling at the end, as applied_style has the wrong value. This fixes styling in long lists of file names that are interrupted by the "Continue?" prompt. commit 3bbec4bd95396936f21dbb07b79d2b6286b4cfec Author: Nick Clifton Date: Fri Apr 12 13:15:21 2019 +0100 Fix thinko in linker documentation. PR 24450 * ld.texi (Output Section Attributes): Add ALIGN_WITH_INPUT to example of section attributes. commit e5a1a79a4e0ee33292d45b10a759eb41f7358b7c Author: Alan Hayward Date: Mon Apr 8 16:02:55 2019 +0100 Testsuite: Add gdbserver sysroot test The local board file ensures that the sysroot is always set to load files from the local filesystem. Add a gdbserver test to explicitly test the sysroot set to both the remote target and the local filesystem. gdb/testsuite/ChangeLog: * gdb.server/sysroot.c: New test. * gdb.server/sysroot.exp: New file. * lib/gdbserver-support.exp (gdb_target_cmd): Add additional text matching param. commit 62253a61473764b0d084b01eff06a93fb38bb2e3 Author: Andrew Burgess Date: Thu Apr 11 23:51:48 2019 +0100 gdb: Remove LANG_MAGIC The language_defn structure has an la_magic field, this used to be used as a basic check that the language_defn structure had the expected layout - at least the end of the structure was where we expected it to be. This feature only really makes sense if we imagine GDB dynamically loading language support from dynamic libraries, where a version mismatch might cause problems. However, in current GDB language support is statically built into GDB, and since this commit: commit 47e77640be31fc1a4eb3718f594ed5fd0faff065 Date: Thu Jul 20 18:28:01 2017 +0100 Make language_def O(1) the existing (if pointless) check of the la_magic field was removed. There now appears to be no use of the la_magic field, and I propose that we delete it. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_language_defn): Remove use of LANG_MAGIC. * c-lang.c (c_language_defn): Likewise. (cplus_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. * d-lang.c (d_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * go-lang.c (go_language_defn): Likewise. * language.c (unknown_language_defn): Likewise. (auto_language_defn): Likewise. * language.h (struct language_defn): Remove la_magic field. (LANG_MAGIC): Delete. * m2-lang.c (m2_language_defn): Remove use of LANG_MAGIC. * objc-lang.c (objc_language_defn): Likewise. * opencl-lang.c (opencl_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise. * rust-lang.c (rust_language_defn): Likewise. commit 3822612df0694cc07597e534fa73b34aa2540812 Author: GDB Administrator Date: Fri Apr 12 00:00:26 2019 +0000 Automatic date update in version.in commit a9158a863c18545634cb0f0462b326aeca30634c Author: Andrew Burgess Date: Sun Apr 7 22:30:37 2019 +0100 gdb/riscv: Remove riscv_type_alignment function Make use of the type_align function and remove riscv_type_alignment as it is no longer needed. I tested this against a number of RV32 and RV64 targets, and I also ran the tests with an assertion in place checking that the old riscv_type_alignment function gives the same answer as the common type_align function - it does, and all the tests still pass. gdb/ChangeLog: * riscv-tdep.c (riscv_type_align): New function. (riscv_type_alignment): Delete. (riscv_arg_location): Use 'type_align'. (riscv_gdbarch_init): Register riscv_type_align gdbarch function. commit 41077b6625d16cc6c0c4b404a177a8850300b8a0 Author: Andrew Burgess Date: Sat Apr 6 11:02:04 2019 +0100 gdb: Fix alignment computation for structs with only static fields The current code in gdbtypes.c:type_align incorrectly returns 0 as the alignment for a structure containing only static fields. After this patch the correct value of 1 is returned. The gdb.base/align.exp test is extended to cover this case. gdb/ChangeLog: * gdbtypes.c (type_align): A struct with no non-static fields also has alignment of 1. gdb/testsuite/ChangeLog: * gdb.base/align.exp: Extend test to cover structures containing only static fields. commit 9f0272f8548164b024ff9fd151686b2b904a5d59 Author: Andrew Burgess Date: Fri Apr 5 13:50:19 2019 +0100 gdb/riscv: Handle empty C++ structs during argument passing This commit resolves a large number of failures in the test script gdb.base/infcall-nested-structs.exp which were caused by GDB (for RISC-V) incorrectly handling empty C++ structures when preparing arguments for a dummy call, or collecting a return value. The issue is further complicated in that there was a bug in GCC, such that in some cases GCC would generate incorrect code when passing a small structure that contained empty sub-structures. This was fixed in GCC trunk on 5-March-2019, so in order to see the best results with this patch you'll need a recent version of GCC. Anything that used to work should continue to work after this patch, regardless of GCC version being used. The fix in this commit is that GDB now pays more attention to the offset of fields within a structure when preparing arguments as in C++ an empty structure has a non-zero size, this is an example: struct s1 { struct s2 { } empty; int f; }; We previously assumed that 'f' was at offset 0 inside type 's1', however this is not the case in C++ as 's2' has size 1, and with alignment 'f' is likely at some even bigger offset inside 's1'. gdb/ChangeLog: * riscv-tdep.c (riscv_call_arg_complex_float): Fix offset of first component to 0. (riscv_struct_info::riscv_struct_info): Initialise m_offsets member. (riscv_struct_info::analyse): New implementation using new analyse_inner member function. (riscv_struct_info::field_offset): New member function. (riscv_struct_info::m_offsets): New member variable. (riscv_struct_info::analyse_inner): New private member function, takes the old implementation of riscv_struct_info::analyse but extended to track field offsets. (riscv_call_arg_struct): Update the struct folding special cases to handle cases where empty C++ structs, which are non-zero length, are found. (riscv_arg_location): Initialise the length of each location, a non-zero length now indicates the location is in use. (riscv_push_dummy_call): Allow for the first location having a non-zero offset when setting up arguments. (riscv_return_value): Likewise, but for return values. commit 02cf60c7a42710ee0364698c436b6ca5e771374b Author: Tom Tromey Date: Thu Apr 11 13:00:48 2019 -0600 Make "msg" const in internal_vproblem I noticed that the "msg" variable in internal_vproblem could be "const". This seems like an improvement because it can wind up in rodata. Tested by rebuilding. gdb/ChangeLog 2019-04-11 Tom Tromey * utils.c (internal_vproblem): Make "msg" const. commit c0b4cd465573f1772927cb3ad5d6e7d17af21622 Author: Max Filippov Date: Thu Apr 4 17:06:57 2019 -0700 xtensa: gas: add relaxations tests gas/ 2019-04-11 Max Filippov * testsuite/gas/xtensa/loop-relax-2.d: New test definition. * testsuite/gas/xtensa/loop-relax.d: New test definition. * testsuite/gas/xtensa/loop-relax.s: New test source. * testsuite/gas/xtensa/text-section-literals-1a.d: New test definition. * testsuite/gas/xtensa/text-section-literals-2.d: New test definition. * testsuite/gas/xtensa/text-section-literals-2.s: New test source. * testsuite/gas/xtensa/text-section-literals-2a.d: New test definition. * testsuite/gas/xtensa/text-section-literals-3.d: New test definition. * testsuite/gas/xtensa/text-section-literals-3.s: New test source. * testsuite/gas/xtensa/text-section-literals-4.d: New test definition. * testsuite/gas/xtensa/text-section-literals-4.s: New test source. * testsuite/gas/xtensa/text-section-literals-4a.d: New test definition. commit 6f2b77153170392f6b6c38367d7e5c4d007a9c49 Author: Max Filippov Date: Thu Apr 4 17:51:00 2019 -0700 xtensa: gas: convert tests to run_dump_tests gas/ 2019-04-11 Max Filippov * testsuite/gas/xtensa/all.exp: Remove all expect-based tests and all explicit run_dump_test / run_list_test invocations. Add run_dump_tests for all .d files in the test subdirectory. * testsuite/gas/xtensa/entry_align.d: New test definition. * testsuite/gas/xtensa/entry_align.l: New test output. * testsuite/gas/xtensa/entry_misalign.d: New test definition. * testsuite/gas/xtensa/entry_misalign2.d: New test definition. * testsuite/gas/xtensa/j_too_far.d: New test definition. * testsuite/gas/xtensa/j_too_far.l: New test output. * testsuite/gas/xtensa/loop_align.d: New test definition. * testsuite/gas/xtensa/loop_misalign.d: New test definition. * testsuite/gas/xtensa/trampoline-2.d: New test definition. * testsuite/gas/xtensa/trampoline-2.l: Remove empty output. * testsuite/gas/xtensa/xtensa-err.exp: Use positive logic. commit f8aecf3cc9a3c71a0fb9a8ddca8f131dde648276 Author: Max Filippov Date: Wed Apr 10 01:18:01 2019 -0700 xtensa: gas: clean up literal management code gas/ 2019-04-11 Max Filippov * config/tc-xtensa.c (xtensa_literal_pseudo): Drop code that has no effect. (get_literal_pool_location): Only search for the literal pool when auto litpools is used, otherwise take one recorded in the tc_segment_info_data. (xtensa_assign_litpool_addresses): New function. (xtensa_move_literals): Don't duplicate 'literal pool location required...' error message. Call xtensa_assign_litpool_addresses. commit 548791769dc737f05cb12e5ee4190b7e853beac9 Author: Max Filippov Date: Mon Apr 8 13:47:18 2019 -0700 xtensa: gas: put .literal_position at section start Provide literal position at the beginning of each section for literal space reserved by relaxations when text-section-literals or auto-litpools options are used. Remove code that adds fill frag to the literal section for every .literal_position directive to avoid creation of empty literal sections. Fix auto-litpools tests that got literal pool address changes. gas/ 2019-04-11 Max Filippov * config/tc-xtensa.c (xtensa_is_init_fini): Add declaration. (xtensa_mark_literal_pool_location): Don't add fill frag to literal section that records literal pool location. (md_begin): Call xtensa_mark_literal_pool_location when text section literals or auto litpools are used. (xtensa_elf_section_change_hook): Call xtensa_mark_literal_pool_location when text section literals or auto litpools are used, there's no literal pool location defined for the current section and it's not .init or .fini. * testsuite/gas/xtensa/auto-litpools-first1.d: Fix up addresses. * testsuite/gas/xtensa/auto-litpools-first2.d: Likewise. * testsuite/gas/xtensa/auto-litpools.d: Likewise. commit 035801cebe9ffbdddb465b81ae514a465ce9c64c Author: Faraz Shahbazker Date: Tue Apr 2 20:17:16 2019 +0000 ld: Add --no-print-map-discarded option Add a new option to disable the listing of discarded sections in map file output. The use case stems from a large application built with -ffunction-sections --gc-sections where the list of discarded sections blows up the map file output. The default behaviour remains to print discarded sections, but the new option allows us to disable it. ld/ * NEWS: Mention new option --no-print-map-discarded. * ld.h (ld_config_type) : New field. * ldlang.c (lang_map): Conditionally output discarded sections in map files based on configuration option. * ldlex.h (option_values) : New. * ldmain.c (main): Enabled print_map_discarded by default. * lexsup.c (ld_options): Add new command-line options. (parse_args) : New cases. * ld.texi: Document new options. * testsuite/ld-gc/gc.exp: Add new test. * testsuite/ld-gc/skip-map-discarded.s: New file. * testsuite/ld-gc/skip-map-discarded.d: New file. * testsuite/ld-gc/skip-map-discarded.map: New file. commit c30391f893fd99e768c1a6282763ef553c45f1ff Author: Tom de Vries Date: Thu Apr 11 19:13:05 2019 +0200 [gdb/testsuite] Add cc-with-dwz.exp and cc-with-dwz-m.exp We can use CC_WITH_TWEAKS_FLAGS when cd-ing into the gdb build subdir and invoking make check: ... $ cd $objdir/gdb $ make check \ RUNTESTFLAGS='--target_board=cc-with-tweaks' \ CC_WITH_TWEAKS_FLAGS='-z' ... But when cd-ing into the top-level build dir and invoking make check-gdb instead: ... $ cd $objdir $ make check-gdb \ RUNTESTFLAGS='--target_board=cc-with-tweaks' \ CC_WITH_TWEAKS_FLAGS='-z' ... using CC_WITH_TWEAKS_FLAGS has no effect, because CC_WITH_TWEAKS_FLAGS is not passed down from the top level Makefile. Add cc-with-dwz.exp and cc-with-dwz-m.exp, that don't require CC_WITH_TWEAKS_FLAGS to be set in the make invocation, allowing us to run these test configurations from the toplevel build dir: ... $ cd $objdir $ make check-gdb \ RUNTESTFLAGS='--target_board=cc-with-dwz' ... Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-04-11 Tom de Vries * boards/cc-with-dwz-m.exp: New file. * boards/cc-with-dwz.exp: New file. * boards/cc-with-tweaks.exp: Note that check-gdb doesn't work. commit 233a00833b984319d5e94db3f5d5d9a735edc984 Author: H.J. Lu Date: Thu Apr 11 08:18:51 2019 -0700 x86: Add -z cet-report=[none|warning|error] Add -z cet-report=[none|warning|error] to report the missing Intel Indirect Branch Tracking (IBT) and Shadow Stack (SHSTK) properties in input .note.gnu.property section. -z cet-report=none, which is the default, will make the linker not report missing properties in input files. -z cet-report=warning will make the linker issue a warning for missing properties in input files. -z cet-report=error will make the linker issue an error for missing properties in input files. Note that -z ibt will turn off the missing IBT property report and -z shstk will turn off the missing SHSTK property report. Supported for Linux/i386 and Linux/x86_64. bfd/ * elf-linker-x86.h (elf_x86_cet_report): New. (elf_linker_x86_params): Add cet_report. * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report missing IBT and SHSTK properties if needed. ld/ * ld.texi: Document -z cet-report=[none|warning|error]. * emulparams/cet.sh: Add -z cet-report=[none|warning|error]. * testsuite/ld-i386/i386.exp: Run -z cet-report=[warning|error] tests. * testsuite/ld-x86-64/x86-64.exp: Likewise. * testsuite/ld-i386/property-x86-cet1.d: New file. * testsuite/ld-i386/property-x86-cet2a.d: Likewise. * testsuite/ld-i386/property-x86-cet2b.d: Likewise. * testsuite/ld-i386/property-x86-cet3a.d: Likewise. * testsuite/ld-i386/property-x86-cet3b.d: Likewise. * testsuite/ld-i386/property-x86-cet4a.d: Likewise. * testsuite/ld-i386/property-x86-cet4b.d: Likewise. * testsuite/ld-i386/property-x86-cet5a.d: Likewise. * testsuite/ld-i386/property-x86-cet5b.d: Likewise. * testsuite/ld-i386/property-x86-cet6.d: Likewise. * testsuite/ld-x86-64/property-x86-cet.s: Likewise. * testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet1.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2b.d: Likewise. * testsuite/ld-x86-64/property-x86-cet3a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet3a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet3b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet3b.d: Likewise. * testsuite/ld-x86-64/property-x86-cet4a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet4a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet4b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet4b.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b.d: Likewise. * testsuite/ld-x86-64/property-x86-cet6-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet6.d: Likewise. commit ca4e63310228df72ba47e5b29f4c275e62496dcf Author: H.J. Lu Date: Thu Apr 11 07:53:55 2019 -0700 Add PR ld/24436 to ChangeLog entry commit b3d7a86748247a68c69939cdf9925d4a78448f2d Author: H.J. Lu Date: Thu Apr 11 06:52:03 2019 -0700 ld: Add -static-pie tests Add -static-pie tests for DT_INIT_ARRAY, DT_FINI_ARRAY, DT_PREINIT_ARRAY and IFUNC. * testsuite/config/default.exp (STATIC_PIE_LDFLAGS): New. Set to "-static-pie" if target compiler supports it. * testsuite/ld-elf/elf.exp: Run -static-pie tests if $STATIC_PIE_LDFLAGS isn't empty. * testsuite/ld-ifunc/ifunc.exp: Likewise. commit a0ea3a14dc6a6062c0c1f2bfbb7ad0373ec20843 Author: H.J. Lu Date: Thu Apr 11 06:44:53 2019 -0700 Check corrupt VTENTRY entry in bfd_elf_gc_record_vtentry Instead of BFD_ASSERT (h != NULL) with ld: BFD ... assertion fail .../bfd/elf64-x86-64.c:2562 ld: bad.o: invalid string offset 50331648 >= 371 for section `nterp' check corrupt VTENTRY entry in bfd_elf_gc_record_vtentry with ld: bad.o: section 'g': corrupt VTENTRY entry * elf-m10300.c (mn10300_elf_check_relocs): Remove BFD_ASSERT of "h != NULL". Don't check "h != NULL" before calling. bfd_elf_gc_record_vtentry. * elf32-arm.c (elf32_arm_check_relocs): Likewise. * elf32-bfin.c (bfin_check_relocs): Likewise. * elf32-cris.c (cris_elf_check_relocs): Likewise. * elf32-csky.c (csky_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-i386.c (elf_i386_check_relocs): Likewise. * elf32-iq2000.c (iq2000_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-or1k.c (or1k_elf_check_relocs): Likewise. * elf32-ppc.c (ppc_elf_check_relocs): Likewise. * elf32-s390.c (elf_s390_check_relocs): Likewise. * elf32-sh.c (sh_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-mmix.c (mmix_elf_check_relocs): Likewise. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. * elf64-s390.c (elf_s390_check_relocs): Likewise. * elf64-x86-64.c (elf_s390_check_relocs): Likewise. * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. * elflink.c (bfd_elf_gc_record_vtinherit): Check for corrupt VTENTRY entry. commit 9bff840e8cc560f5096a43609ed3e0d980733fd9 Author: Alan Modra Date: Thu Apr 11 19:42:31 2019 +0930 PR24435, buffer overflow reading dynamic entries PR 24435 * elflink.c (elf_link_add_object_symbols): Don't read partial dynamic entries from fuzzed objects. commit ce12121b63145322b4961bbb2b94b939cb916ba7 Author: Tamar Christina Date: Thu Apr 11 11:27:28 2019 +0100 AArch64: When DF_BIND_NOW don't use TLSDESC GOT value. When using DF_BIND_NOW on AArch64 we don't reserve the GOT slot for a TLSDESC, but we still emitted DT_TLSDESC_GOT and DT_TLSDESC_PLT. This caused random memory corruption as the "special" value of (bfd_vma)-1 would be set for dt_tlsdesc_got. Since we don't have a value of dt_tlsdesc_got I also don't emit DT_TLSDESC_PLT now becuase it would point to an incomplete PLT. To be able to write the PLT entry DT_TLSDESC_GOT is needed and since we don't have one we can't write the PLT entry either. It is my understanding that GLIBC doesn't need these two entries when not lazy loading. Conversely AArch32 does not reserve neither the GOT not the PLT slot when doing DF_BIND_NOW. AArch32 does not need these checks because these values are initialized to 0 and so the if (...) checks don't pass, but on AArch64 these are initialized to (bfd_vma)-1 and thus we need some extra checks. bfd/ChangeLog: PR ld/24302 * elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Don't emit DT_TLSDESC_GOT and DT_TLSDESC_PLT when DF_BIND_NOW. (elfNN_aarch64_finish_dynamic_sections): Don't write PLT if DF_BIND_NOW. ld/ChangeLog: PR ld/24302 * testsuite/ld-aarch64/aarch64-elf.exp: Add new test. * testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: New test. commit bd7ceb8d26e011ff3fd23402ec2587d7c374f090 Author: Sudakshina Das Date: Thu Apr 11 10:19:37 2019 +0100 [BINUTILS, AArch64, 2/2] Update Store Allocation Tag instructions This patch updates the Store allocation tags instructions in Armv8.5-A Memory Tagging Extension. This is part of the changes that have been introduced recently in the 00bet10 release All of these instructions have an updated register operand (Xt -> ) - STG , [, #] - STG , [, #]! - STG , [], # - STZG , [, #] - STZG , [, #]! - STZG , [], # - ST2G , [, #] - ST2G , [, #]! - ST2G , [], # - STZ2G , [, #] - STZ2G , [, #]! - STZ2G , [], # In order to accept a new operand type Rt_SP is introduced which has the same field as FLD_Rt but follows other semantics of Rn_SP. *** gas/ChangeLog *** 2019-04-11 Sudakshina Das * config/tc-aarch64.c (process_omitted_operand): Add case for AARCH64_OPND_Rt_SP. (parse_operands): Likewise. * testsuite/gas/aarch64/armv8_5-a-memtag.d: Update tests. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** include/ChangeLog *** 2019-04-11 Sudakshina Das * opcode/aarch64.h (enum aarch64_opnd): Add AARCH64_OPND_Rt_SP. *** opcodes/ChangeLog *** 2019-04-11 Sudakshina Das * aarch64-opc.c (aarch64_print_operand): Add case for AARCH64_OPND_Rt_SP. (verify_constraints): Likewise. * aarch64-tbl.h (QL_LDST_AT): Update to add SP qualifier. (struct aarch64_opcode): Update stg, stzg, st2g, stz2g instructions to accept Rt|SP as first operand. (AARCH64_OPERANDS): Add new Rt_SP. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. commit e54010f1aeb050cb9d65862a0afe9095a7a85f27 Author: Sudakshina Das Date: Thu Apr 11 10:13:23 2019 +0100 [BINUTILS, AArch64, 1/2] Add new LDGM/STGM instruction This patch adds the new LDGM/STGM instructions of the Armv8.5-A Memory Tagging Extension. This is part of the changes that have been introduced recently in the 00bet10 release The instructions are as follows: LDGM Xt, [] STGM Xt, [] *** gas/ChangeLog *** 2019-04-11 Sudakshina Das * testsuite/gas/aarch64/armv8_5-a-memtag.d: New tests for ldgm and stgm. * testsuite/gas/aarch64/armv8_5-a-memtag.s: Likewise. * testsuite/gas/aarch64/illegal-memtag.l: Likewise. * testsuite/gas/aarch64/illegal-memtag.s: Likewise. *** opcodes/ChangeLog *** 2019-04-11 Sudakshina Das * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Likewise. * aarch64-opc-2.c: Likewise. * aarch64-tbl.h (aarch64_opcode): Add new ldgm and stgm. commit 68811f8ff84895ef1cad37ac6947f1a340dd2ae2 Author: Alan Hayward Date: Wed Apr 10 15:58:27 2019 +0100 AArch64: Ensure regcache is reset between tests A recent change made the AArch64 self tests resuse the saved regs cache, rather than creating a new one. Ensure it is reset to default values between tests. Do this by splitting the reset functionality from trad_frame_alloc_saved_regs into a new function. Fixes selftest on AArch64. gdb/ChangeLog: * aarch64-tdep.c (aarch64_analyze_prologue_test): Reset saved regs. * trad-frame.c (trad_frame_reset_saved_regs): New function. (trad_frame_alloc_saved_regs): Call trad_frame_reset_saved_regs. * trad-frame.h (trad_frame_reset_saved_regs): New declaration. commit 795e3bb7de9ce2eb1ec3de3faf8f6bc925a58c9e Author: H.J. Lu Date: Wed Apr 10 18:36:05 2019 -0700 ld: Don't define __rel[a]_iplt_start/__rel[a]_iplt_end in PIE __rel[a]_iplt_start and __rel[a]_iplt_end are defined to handle IFUNC in static executables. For PIE, since IFUNC is handled as the part of the normal dynamic relocation processing, there is no need to define these symbols in PIE. * scripttempl/elf.sc (CREATE_PIC): New. Set for CREATE_SHLIB or CREATE_PIE. (__rel_iplt_start): Don't define for CREATE_PIC. (__rel_iplt_end): Likewise. (__rela_iplt_start): Likewise. (__rela_iplt_end): Likewise. commit 3f52fdbcb599f76b4838020721ca6c9f1cc28f84 Author: Kevin Buettner Date: Sat Mar 16 12:40:01 2019 -0700 Fix amd64->i386 linux syscall restart problem This commit fixes some failures in gdb.base/interrupt.exp when debugging a 32-bit i386 linux inferior from an amd64 host. When running the following test... make check RUNTESTFLAGS="--target_board unix/-m32 interrupt.exp" ... without this commit, I see the following output: FAIL: gdb.base/interrupt.exp: continue (the program exited) FAIL: gdb.base/interrupt.exp: echo data FAIL: gdb.base/interrupt.exp: Send Control-C, second time FAIL: gdb.base/interrupt.exp: signal SIGINT (the program is no longer running) ERROR: Undefined command "". ERROR: GDB process no longer exists === gdb Summary === When the test is run with this commit in place, we see 12 passes instead. This is the desired behavior. Analysis: On Linux, when a syscall is interrupted by a signal, the syscall may return -ERESTARTSYS when a signal occurs. Doing so indicates that the syscall is restartable. Then, depending on settings associated with the signal handler, and after the signal handler is called, the kernel can then either return -EINTR or can cause the syscall to be restarted. In this discussion, we are concerned with the latter case. On i386, the kernel returns this status via the EAX register. When debugging a 32-bit (i386) process from a 64-bit (amd64) GDB, the debugger fetches 64-bit registers even though the process being debugged is 32-bit. Since we're debugging a 32-bit target, only 32 bits are being saved in the register cache. Now, ideally, GDB would save all 64-bits in the regcache and then would be able to restore those same values when it comes time to continue the target. I've looked into doing this, but it's not easy and I don't see many benefits to doing so. One benefit, however, would be that EAX would appear as a negative value for doing syscall restarts. At the moment, GDB is setting the high 32 bits of RAX (and other registers too) to 0. So, when GDB restores EAX just prior to a syscall restart, the high 32 bits of RAX are zeroed, thus making it look like a positive value. For this particular purpose, we need to sign extend EAX so that RAX will appear as a negative value when EAX is set to -ERESTARTSYS. This in turn will cause the signal handling code in the kernel to recognize -ERESTARTSYS which will in turn cause the syscall to be restarted. This commit is based on work by Jan Kratochvil from 2009: https://sourceware.org/ml/gdb-patches/2009-11/msg00592.html Jan's patch had the sign extension code in amd64-nat.c. Several other native targets make use of this code, so it seemed better to move the sign extension code to a linux specific file. I also added similar code to gdbserver. Another approach is to fix the problem in the kernel. Hui Zhu tried to get a fix into the kernel back in 2014, but it was not accepted. Discussion regarding this approach may be found here: https://lore.kernel.org/patchwork/patch/457841/ Even if a fix were to be put into the kernel, we'd still need some kind of fix in GDB in order to support older kernels. Finally, I'll note that Fedora has been carrying a similar patch for at least nine years. Other distributions, including RHEL and CentOS have picked up this change and have been using it too. gdb/ChangeLog: * amd64-linux-nat.c (amd64_linux_collect_native_gregset): New function. (fill_gregset): Call amd64_linux_collect_native_gregset instead of amd64_collect_native_gregset. (amd64_linux_nat_target::store_registers): Likewise. gdb/gdbserver/ChangeLog: * linux-x86-low.c (x86_fill_gregset): Sign extend EAX value when using a 64-bit gdbserver. commit e7f0831be837c00511573e4466a57cc0b8b097d4 Author: GDB Administrator Date: Thu Apr 11 00:00:28 2019 +0000 Automatic date update in version.in commit c1202057eb9161a86af27d867703235fee7b7555 Author: Nick Clifton Date: Wed Apr 10 15:49:36 2019 +0100 Pull in patch for libiberty that fixes a stack exhaustion bug when demangling a pathalogically constructed mangled name. PR 89394 * cp-demangle.c (cplus_demangle_fill_name): Reject negative lengths. (d_count_templates_scopes): Replace num_templates and num_scopes parameters with a struct d_print_info pointer parameter. Adjust body of the function accordingly. Add recursion counter and check that the recursion limit is not reached. (d_print_init): Pass dpi parameter to d_count_templates_scopes. Reset recursion counter afterwards, unless the recursion limit was reached. commit e9ad22ee5f0a40dfa1182ee68e3349dd72a42afe Author: Tom Tromey Date: Sun Mar 10 15:37:20 2019 -0600 Introduce a separate debug objfile iterator This introduces a new iterator and range adapter for iteration over the separate debug files of a given objfile. As in the current approach, the requested objfile is returned first, followed by the separate debug objfiles. gdb/ChangeLog 2019-04-10 Tom Tromey * symtab.c (lookup_global_symbol_from_objfile) (lookup_symbol_in_objfile_from_linkage_name): Use the iterator. * objfiles.h (class separate_debug_iterator): New. (class separate_debug_range): New. (struct objfile) : New method. (objfile_separate_debug_iterate): Don't declare. * objfiles.c (separate_debug_iterator::operator++): Rename from objfile_separate_debug_iterate. (objfile_relocate, objfile_rebase, objfile_has_symbols): Use the iterator. * minsyms.c (lookup_minimal_symbol_by_pc_section): Use the iterator. commit ee3711344b6e0cffeb237fa6889aab04853f9004 Author: Tom Tromey Date: Sun Mar 10 15:01:26 2019 -0600 Fix a couple of comments While working on objfiles I noticed a typo in one comment, and another comment that, as far as I can tell, has been obsolete for a very long time. gdb/ChangeLog 2019-04-10 Tom Tromey * symfile.c (reread_symbols): Remove old comment. * objfiles.c (free_all_objfiles): Fix a typo. commit bf227d6105cb3908cde816429c84569da12e829c Author: Tom Tromey Date: Sat Jan 19 21:30:36 2019 -0700 Remove some uses of "object_files" The "object_files" macro is sometimes used when iterating over objfiles. This patch removes a few such uses in favor of the new range adapter. gdb/ChangeLog 2019-04-10 Tom Tromey * ia64-tdep.c (ia64_get_dyn_info_list): Use foreach. * minsyms.c (lookup_minimal_symbol): Use foreach. (lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name) (lookup_minimal_symbol_solib_trampoline): Likewise. * symfile.c (reread_symbols): Use foreach. commit b05971a652c35ed72d3c95290e18d8f6e4ef6c46 Author: Michael Forney Date: Wed Apr 10 18:17:37 2019 +0930 PR24427, bfd/doc/chew.c reads uninitialized memory and subtracts from function pointer PR 24427 * doc/chew.c (free_words): Correctly free "push_text" strings. commit a5def729be2596496aec225e843903b25c672e01 Author: Rainer Orth Date: Wed Apr 10 09:48:43 2019 +0200 Disable R_X86_64_PLT32 generation as branch marker on Solaris/x86 The fix H.J. implemented for PR gas/22791 in the thread starting at [PATCH] x86-64: Treat PC32 relocation with branch as PLT32 https://sourceware.org/ml/binutils/2018-02/msg00065.html is causing problems on Solaris/x86. The native linker is strongly preferred there, and there's no intention of implementing the linker optimization he plans there. Besides, the kernel runtime linker, otherwise has no need to deal with that reloc at all, and instead of adding (possibly even more) workarounds with no benefit, it seems appropriate to disable the R_X86_64_PLT32 generation as branch marker on Solaris/x86 in the first place. The patch itself is trivial, the only complication is adapting the testsuite. Since I've found no way to have conditional sections in the .d files, I've instead used the solution already found elsewhere of having separate .d files for the affected tests in an i386/solaris subdirectory and skipping the original ones. Tested on amd64-pc-solaris2.11 and x86_64-pc-linux-gnu without regressions. * config/tc-i386.c (need_plt32_p) [TE_SOLARIS]: Return FALSE. * testsuite/gas/i386/solaris/solaris.exp: New driver. * testsuite/gas/i386/solaris/reloc64.d, testsuite/gas/i386/solaris/x86-64-jump.d, testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d, testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d, testsuite/gas/i386/solaris/x86-64-nop-3.d, testsuite/gas/i386/solaris/x86-64-nop-4.d, testsuite/gas/i386/solaris/x86-64-nop-5.d, testsuite/gas/i386/solaris/x86-64-relax-2.d, testsuite/gas/i386/solaris/x86-64-relax-3.d: New tests. * testsuite/gas/i386/reloc64.d, testsuite/gas/i386/x86-64-jump.d, testsuite/gas/i386/x86-64-mpx-branch-1.d, testsuite/gas/i386/x86-64-mpx-branch-2.d, testsuite/gas/i386/x86-64-nop-3.d, testsuite/gas/i386/x86-64-nop-4.d, testsuite/gas/i386/x86-64-nop-5.d, testsuite/gas/i386/x86-64-relax-2.d, testsuite/gas/i386/x86-64-relax-3.d: Skip on *-*-solaris*. commit e6aded7c34054a2eea55ec56ca3b997ddd0197cf Author: Alan Modra Date: Wed Apr 10 15:30:37 2019 +0930 Re: XFAIL PR ld/20995 tests for lynxos and nto targets * testsuite/ld-elf/shared.exp: Don't xfail PR ld/20995 for powerpc-nto. commit 53b81c6de19a1f89e3c797631e72d05ba41444dc Author: Alan Modra Date: Wed Apr 10 11:58:15 2019 +0930 cskyelf.em branch stub handling This fixes the csky-elf ld-elf/pr21884 and ld-unique/pr21529 failures, by disabling branch stubs for binary (and other non-csky) output. The csky-linux target gets branch stubs off by default because presumably there are reasons why branch stubs were disabled, but rather than killing the support completely it can be enabled by --branch-stub. * emultempl/cskyelf.em (csk_elf_before_parse): New function, setting use_branch_stub false for linux. (csky_elf_create_output_section_statements): Do emit this function and all others in the file for linux, plus the branch option control. Disable branch stubs when non-ELF. commit c55b17b8098abde4ae7dfe0ec1f3b22a7fb0a34d Author: Alan Modra Date: Wed Apr 10 11:35:48 2019 +0930 Fix some ld dependencies In looking at the csky-elf vs. csky-linux differences, the first thing I compared was csky_elf.sh and cskyelf_linux.sh. Those files are mostly the same but besides the real differences, annoyingly have some lines ordered differently. It's better in such cases to have one file source the other, making differences plain. This patch does that for csky and microblaze, removes an unused variable defined in a few places, and fixes ld makefile dependencies. * Makefile.am (eskyelf.c, eskyelf_linux.c): Depend on cskyelf.em. (ecskyelf_linux.c): Depend on cskyelf.sh. (eelf32microblazeel.c): Depend on elf32microblaze.sh. * Makefile.in: Regenerate. * emulparams/cskyelf.sh: Comment regarding cskelf_linux.sh. (PAGE_SIZE): Don't define. * emulparams/cskyelf_linux.sh: Source sckyelf.sh, leaving just the differing variable defs/undefs. * emulparams/elf32mcore.sh (PAGE_SIZE): Don't define. * emulparams/elf32microblaze.sh: Comment re. elf32microblazeel.sh. (OUTPUT_FORMAT): Use BIG_OUTPUT_FORMAT. (PAGE_SIZE): Don't define. * emulparams/elf32microblazeel.sh: Source elf32microblaze.sh, leaving just the differing OUTPUT_FORMAT. commit 6feda62721cd6e288f79b0ee5f1489fee8e570ab Author: Alan Modra Date: Wed Apr 10 11:57:00 2019 +0930 Regen BLD-POTFILES.in * po/BLD-POTFILES.in: Regenerate. commit 12400dcc0f3a4be8d1d165dc2b3a9f0bb9b579f0 Author: Alan Modra Date: Mon Apr 8 16:57:51 2019 +0930 te-cloudabi.h This patch is aimed a fixing large numbers of x86_64-cloudabi failures caused by gas selecting the wrong target name. * config/te-cloudabi.h: New file. * config/tc-aarch64.c (aarch64_after_parse_args): Use TE_CLOUDABI rather than TARGET_OS to select cloudabi. * config/tc-i386.h (ELF_TARGET_FORMAT64): Define for TE_CLOUDABI. * configure.tgt (*-*-cloudabi*): Set em=cloudabi. commit 789ce185ac3353ed5bc21dd8ea70a8094e4876d5 Author: GDB Administrator Date: Wed Apr 10 00:00:40 2019 +0000 Automatic date update in version.in commit 8dc433a0fb04f8fa37530d0788053dd9bea5c37d Author: Tom Tromey Date: Tue Apr 9 13:19:28 2019 -0600 Fix Rust lexer buglet PR rust/24414 points out that the Rust lexer uses strtoul when lexing an integer, and that this can give the wrong results in some situations. This patch changes it to use strtoulst, like most of the rest of gdb. It also adds a self test. Tested on x86-64 Fedora 29 using an i686 build. gdb/ChangeLog 2019-04-09 Ivan Begert Tom Tromey PR rust/24414: * rust-exp.y (rust_parser::lex_number): Use strtoulst. (rust_lex_int_test): Change "value" to be LONGEST. (rust_lex_tests): Add test for long integer literal. commit b0319eaaf9d1f4e730c532058f2fff0b4e5ce682 Author: Tom Tromey Date: Thu Apr 4 16:57:11 2019 -0600 Use find_thread_in_random in select_event_lwp I noticed that find_thread_in_random duplicates the code in find_thread_in_random, so this patch changes the latter to use the former. There are two other spots in gdb that do this, but to unify all of them would require switching some code from using the "iterate over" idiom to using iterators. Another possible improvement is that find_thread_in_random could be made single-pass using reservoir sampling. Tested by the buildbot. gdb/gdbserver/ChangeLog 2019-04-09 Tom Tromey * linux-low.c (select_event_lwp): Use find_thread_in_random. commit 9ab8741a48294e19d514721c710c81bba46db7f2 Author: Tom Tromey Date: Thu Apr 4 17:03:27 2019 -0600 Consistently use bool for fake_pid_p I noticed a few spots where fake_pid_p is handled as an int, whereas the field in struct inferior has type bool. This patch changes the remaining places to use bool as well. Tested by the buildbot. gdb/ChangeLog 2019-04-09 Tom Tromey * remote.c (remote_target::remote_add_inferior): Change fake_pid_p to bool. (extended_remote_target::attach): Update. (remote_target::remote_notice_new_inferior): Update. (remote_target::add_current_inferior_and_thread): Update. * inferior.c (exit_inferior_1): Use "false". * corelow.c (add_to_thread_list): Make fake_pid_p bool. commit 9ca1957fcb3c6904d9e5fb0a0e78d4b98f76b1b6 Author: Simon Marchi Date: Tue Apr 9 12:35:29 2019 -0400 Fix typo in latest ChangeLog entry commit e242fd1249ae85a97f08f95d5c61f4cbe3b906e0 Author: Simon Marchi Date: Tue Apr 9 12:32:26 2019 -0400 Use -qualified flag when setting temporary breakpoint in start command When using the "start" command, GDB puts a temporary breakpoint on the "main" symbol (we literally invoke the tbreak command). However, since it does wild matching by default, it also puts a breakpoint on any C++ method or "main" function in a namespace. For example, when debugging GDB, it creates a total of 24 locations: (gdb) start Temporary breakpoint 1 at 0x198c1e9: main. (24 locations) as there are a bunch of methods called main in the selftests, such as selftests::string_view::capacity_1::main() If such method was called in the constructor of a global object, or a function marked with the attribute "constructor", then we would stop at the wrong place. Also, this causes a few extra symtabs (those that contain the "wrong" mains) to be expanded for nothing. The dummiest, most straightforward solution is to add -qualified when invoking tbreak. With this patch, "start" creates a single-location breakpoint, as expected. I copied the start.exp test to start-cpp.exp and made it use a C++ test file, which contains two main functions. The new test verifies that the output of "start" is the output we get when we set a single-location breakpoint. gdb/ChangeLog: * infcmd.c (run_command_1): Pass -qualified to tbreak when usind the "start" command. gdb/testsuite/ChangeLog: * gdb.base/start-cpp.exp: New file. * gdb.base/start-cpp.cc: New file. commit 7e96e219a4fc703282ea5b0cc8845a96c01ca030 Author: Robert Suchanek Date: Tue Apr 9 17:30:26 2019 +0800 [MIPS] Add RDHWR with the SEL field for MIPS R6. In Release 6 of the MIPS architecture [1], instruction RDHWR supports a 3rd operand to serve as the 3-bit select field for the hardware register. [1] "MIPS Architecture for Programmers Volume II-A: The MIPS32 Instruction Set Manual", Imagination Technologies Ltd., Document Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2 "Alphabetical List of Instructions", pp. 332-334 opcodes/ * mips-opc.c (mips_builtin_opcodes): Add RDHWR rt rd sel. gas/ * testsuite/gas/mips/mips.exp: Run hwr-names test. * testsuite/gas/mips/hwr-names.s: Add test cases for RDHWR with the SEL field. * testsuite/gas/mips/mipsr6@hwr-names.d: New file. commit 2b0c8b019996b23fb4717687f5e7ac8c5620c089 Author: Kevin Buettner Date: Wed Mar 20 20:38:33 2019 -0700 Rename python function thread_from_thread_handle to thread_from_handle This renaming was done to stay consistent with the naming of the new gdb.InferiorThread.handle method. I had initially named it "thread_handle" but Tom Tromey suggested just "handle". The old name (thread_from_thread_handle) still works, but is marked as deprecated in comments in the code as well as in the documentation. I have some code which uses these functions. I very much like the brevity of the new names. gdb/doc/ChangeLog: * python.texi (Inferiors In Python): Rename Inferior.thread_from_thread_handle to Inferior.thread_from_handle. Add note about the former being deprecated. gdb/ChangeLog: * python/py-inferior.c (infpy_thread_from_thread_handle): Adjust comments to reflect renaming of thread_from_thread_handle to thread_from_handle. Adjust keywords. Fix type error message. (inferior_object_methods): Add thread_from_handle. Retain thread_from_thread_handle, but mark it as deprecated. testsuite/ChangeLog: * gdb.python/py-thrhandle.exp: Adjust tests to call thread_from_handle instead of thread_from_thread_handle. commit c369f8f0face23a06e0cf114bf70a024ba9b4959 Author: Kevin Buettner Date: Sat Sep 15 21:53:38 2018 -0700 Documentation for python method InferiorThread.handle gdb/doc/ChangeLog: * python.texi (Threads In Python): Add description for method InferiorThread.handle. commit 947210e5690c61b395ccd887bc58bcb45ccd357b Author: Kevin Buettner Date: Sat Sep 15 21:15:49 2018 -0700 Tests for gdb.InferiorThread.handle gdb/testsuite/ChangeLog: * gdb.python/py-thrhandle.exp: Add tests for gdb.InferiorThread.handle. commit 50a82723c446c556287dcabe22183bc5cedab566 Author: Kevin Buettner Date: Wed Feb 27 15:06:28 2019 -0700 Support buffer objects as handles in Inferior.thread_from_thread_handle() InferiorThread.handle() returns a python bytes object. We'd like to be able to pass the output of this function, a thread handle, to Inferior.thread_from_thread_handle(). Up to now, thread_from_thread_handle() expects to receive a gdb.Value input. This commit adds support to also allow a python buffer object to be passed as the handle. infpy_thread_from_thread_handle() calls find_thread_by_handle() which has the obvious functionality. It used to pass the thread handle via a struct value pointer. I've revised this interface to instead pass a gdb::array_view object. (Thanks to Tom Tromey for suggesting this data structure over an earlier version which passed a gdb_byte pointer and length.) gdb/ChangeLog: * gdbthread.h (find_thread_by_handle): Revise declaration. * thread.c (find_thread_by_handle): Likewise. Adjust implementation too. * python/py-inferior.c (infpy_thread_from_thread_handle): Add support for buffer objects as handles. commit cf63b0162b6cbf74bdb056609d1ad777c6d48954 Author: Kevin Buettner Date: Wed Feb 27 14:59:02 2019 -0700 Add python method InferiorThread.handle gdb/ChangeLog: * python/py-infthread.c (thpy_thread_handle): New function. (thread_object_methods): Register thpy_thread_handle. commit 3d6c62048d8408fbfb6c66830e0c650e36259637 Author: Kevin Buettner Date: Thu Feb 7 19:16:04 2019 -0700 Introduce target_ops method thread_info_to_thread_handle This patch adds a thread_info_to_thread_handle method to the target_ops struct. It also implements this functionality for remote targets and linux native threads. gdb/ChangeLog: * gdbthread.h (thread_to_thread_handle): Declare. * thread.c (gdbtypes.h): Include. (thread_to_thread_handle): New function. * target.h (struct target_ops): Add thread_info_to_thread_handle. (target_thread_info_to_thread_handle): Declare. * target.c (target_thread_info_to_thread_handle): New function. * target-debug.h (target_debug_print_gdb_byte_vector): Define. * target-delegates.c: Regenerate. * linux-thread-db.c (class thread_db_target): Add method thread_info_to_thread_handle. (thread_db_target::thread_info_to_thread_handle): Define. * remote.c (class remote_target): Add new method thread_info_to_thread_handle. (remote_target::thread_info_to_thread_handle): Define. commit 462cac5884ed4c38e6180b2e2769aaa5225e695b Author: H.J. Lu Date: Mon Apr 8 17:04:01 2019 -0700 x86: Define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 Update assembler and readelf to support #define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 (1U << 24) for AVX512_BF16. binutils/ * readelf.c (decode_x86_isa): Handle GNU_PROPERTY_X86_ISA_1_AVX512_BF16. * testsuite/binutils-all/i386/pr21231b.d: Updated. * testsuite/binutils-all/x86-64/pr21231b.d: Likewise. gas/ * config/tc-i386.c (output_insn): Support GNU_PROPERTY_X86_ISA_1_AVX512_BF16. * testsuite/gas/i386/property-2.s: Add AVX512_BF16 test. * testsuite/gas/i386/property-2.d: Updated. * testsuite/gas/i386/x86-64-property-2.d: Likewise. include/ * elf/common.h (GNU_PROPERTY_X86_ISA_1_AVX512_BF16): New. commit 8c402d4151a18c735d1d23ddbe56957d65322064 Author: GDB Administrator Date: Tue Apr 9 00:00:26 2019 +0000 Automatic date update in version.in commit c93c0e7f3f21f809d9390e2e7096f7e2cb8334e2 Author: H.J. Lu Date: Mon Apr 8 13:54:20 2019 -0700 XFAIL PR ld/20995 tests for lynxos and nto targets lynxos and nto targets don't support RELRO. * testsuite/ld-elf/shared.exp: XFAIL PR ld/20995 tests for lynxos and nto targets. commit 56be6ea89cdf94078d5dff3734b8c1970dbf52fa Author: Pedro Alves Date: Mon Apr 8 13:03:54 2019 +0100 Some gdb_exception{,error,quit} tweaks - Explicitly include for std::string. - Use std::make_shared to construct gdb_exception::message instead of operator new, avoiding one heap allocation (2 instead of 3). Add 'const char *fmt, va_list ap' parameters to gdb_exception{,error,quit}'s ctors, and do the std::make_shared in the gdb_exception ctor. - gdb_exception_error's constructor does not need to have an 'enum return_reason' parameter, since it is always RETURN_ERROR, by definition. - Similarly, gdb_exception_quit's contructor does not need to have 'enum return_reason'/'enum errors' parameters. - In the gdb_exception_{quit,_error} ctors that take a gdb_exception as argument, assert that they're being passed a gdb_exception object of the right 'reason'. gdb/ChangeLog: 2019-04-08 Pedro Alves * common/common-exceptions.c (throw_exception): Don't create named object to throw; throw directly. (throw_it): Likewise. Don't initialize gdb_exception::message here, with new; pass FMT and AP to the ctor instead. * common/common-exceptions.h: Include . (gdb_exception::gdb_exception(enum return_reason, enum errors, const char *, va_list)): New ctor. Use std::make_shared. (gdb_exception_error::gdb_exception_error(enum return_reason, enum errors)): Delete. (gdb_exception_error::gdb_exception_error(enum errors, const char *, va_list)): New. (gdb_exception_error::gdb_exception_error(const gdb_exception &)): Add assertion. (gdb_exception_quit::gdb_exception_quit(enum return_reason, enum errors)): Delete. (gdb_exception_quit::gdb_exception_quit(const char *, va_list)): New. (gdb_exception_quit::gdb_exception_quit(const gdb_exception &)): Add assertion. commit 3ae61bb67d62eb53d110835b8b7c3a289e6bce45 Author: H.J. Lu Date: Mon Apr 8 11:58:51 2019 -0700 x86: Remove i386-*-kaos* and i386-*-chaos targets Remove i386-*-kaos* and i386-*-chaos targets since they are no longer supported by config.sub: $ .../config.sub i386-kaos Invalid configuration `i386-kaos': system `kaos' not recognized $ .../config.sub i386-chaos Invalid configuration `i386-chaos': system `chaos' not recognized $ bfd/ * config.bfd: Remove i[3-7]86-*-kaos* and i[3-7]86-*-chaos targets. gas/ * configure.tgt: Remove i386-*-kaos* and i386-*-chaos targets. * testsuite/gas/i386/i386.exp: Remove *-*-caos* and "*-*-kaos* check. ld/ * Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_chaos.c. (eelf_i386_chaos.c): Removed. * Makefile.in: Regenerated. * configure.tgt: Remove i[3-7]86-*-kaos*. * emulparams/elf_i386_chaos.sh: Removed. commit 82b535931242b017a0929460e38c430178b0d72e Author: H.J. Lu Date: Mon Apr 8 11:34:32 2019 -0700 Count i386-moss as ELF * testsuite/binutils-all/nm.exp: Count i386-moss as ELF. commit da9b5f7be7cb44e832972252dbaf53d242b0e099 Author: H.J. Lu Date: Mon Apr 8 11:27:57 2019 -0700 Use elf-x86.em for i386-moss and i386-beos * emulparams/elf_i386_be.sh (EXTRA_EM_FILE): New. * emulparams/i386moss.sh (EXTRA_EM_FILE): Likewise. commit 6f2791d5de45a9490ba6844617feac038c8da8bd Author: H.J. Lu Date: Mon Apr 8 11:06:04 2019 -0700 x86: Consolidate AVX512 BF16 entries in i386-opc.tbl 1. Use single entry for vcvtne2ps2bf16 and vdpbf16ps with Disp8ShiftVL. 2. Use 5 entries, instead of 8, for vcvtneps2bf16. * i386-opc.tbl: Consolidate AVX512 BF16 entries. * i386-init.h: Regenerated. commit eedc3f4f0a02c9774277bd1a34aab6ebdc32f797 Author: Tom Tromey Date: Mon Jan 28 10:45:45 2019 -0700 Replace throw_exception with throw in some cases This replaces throw_exception with "throw;" when possible. This was written by script. The rule that is followed is that uses of the form: catch (... &name) { ... throw_exception (name); } ... can be rewritten. This should always be safe, because exceptions are caught by const reference, and therefore can't be modified in the body of the catch. gdb/ChangeLog 2019-04-08 Tom Tromey * valops.c (value_rtti_indirect_type): Replace throw_exception with throw. * tracefile-tfile.c (tfile_target_open): Replace throw_exception with throw. * thread.c (thr_try_catch_cmd): Replace throw_exception with throw. * target.c (target_translate_tls_address): Replace throw_exception with throw. * stack.c (frame_apply_command_count): Replace throw_exception with throw. * solib-spu.c (append_ocl_sos): Replace throw_exception with throw. * s390-tdep.c (s390_frame_unwind_cache): Replace throw_exception with throw. * rs6000-tdep.c (rs6000_frame_cache) (rs6000_epilogue_frame_cache): Replace throw_exception with throw. * remote.c: Replace throw_exception with throw. * record-full.c (record_full_message, record_full_wait_1) (record_full_restore): Replace throw_exception with throw. * record-btrace.c: (get_thread_current_frame_id, record_btrace_start_replaying) (cmd_record_btrace_bts_start, cmd_record_btrace_pt_start) (cmd_record_btrace_start): Replace throw_exception with throw. * parse.c (parse_exp_in_context_1): Replace throw_exception with throw. * linux-nat.c (detach_one_lwp, linux_resume_one_lwp) (resume_stopped_resumed_lwps): Replace throw_exception with throw. * linespec.c: (find_linespec_symbols): Replace throw_exception with throw. * infrun.c (displaced_step_prepare, resume): Replace throw_exception with throw. * infcmd.c (post_create_inferior): Replace throw_exception with throw. * inf-loop.c (inferior_event_handler): Replace throw_exception with throw. * i386-tdep.c (i386_frame_cache, i386_epilogue_frame_cache) (i386_sigtramp_frame_cache): Replace throw_exception with throw. * frame.c (frame_unwind_pc, get_prev_frame_if_no_cycle) (get_prev_frame_always, get_frame_pc_if_available) (get_frame_address_in_block_if_available, get_frame_language): Replace throw_exception with throw. * frame-unwind.c (frame_unwind_try_unwinder): Replace throw_exception with throw. * eval.c (fetch_subexp_value, evaluate_var_value) (evaluate_funcall, evaluate_subexp_standard): Replace throw_exception with throw. * dwarf2loc.c (call_site_find_chain) (dwarf2_evaluate_loc_desc_full, dwarf2_locexpr_baton_eval): Replace throw_exception with throw. * dwarf2-frame.c (dwarf2_frame_cache): Replace throw_exception with throw. * darwin-nat.c (darwin_attach_pid): Replace throw_exception with throw. * cp-abi.c (baseclass_offset): Replace throw_exception with throw. * completer.c (complete_line_internal): Replace throw_exception with throw. * compile/compile-object-run.c (compile_object_run): Replace throw_exception with throw. * cli/cli-script.c (process_next_line): Replace throw_exception with throw. * btrace.c (btrace_compute_ftrace_pt, btrace_compute_ftrace) (btrace_enable, btrace_maint_update_pt_packets): Replace throw_exception with throw. * breakpoint.c (create_breakpoint, save_breakpoints): Replace throw_exception with throw. * break-catch-throw.c (re_set_exception_catchpoint): Replace throw_exception with throw. * amd64-tdep.c (amd64_frame_cache, amd64_sigtramp_frame_cache) (amd64_epilogue_frame_cache): Replace throw_exception with throw. * aarch64-tdep.c (aarch64_make_prologue_cache) (aarch64_make_stub_cache): Replace throw_exception with throw. gdb/gdbserver/ChangeLog 2019-04-08 Tom Tromey * linux-low.c (linux_detach_one_lwp): Replace throw_exception with throw. (linux_resume_one_lwp): Likewise. commit 26003a205e207db7985c32ec1964a04652b68413 Author: Tom Tromey Date: Mon Jan 28 10:56:58 2019 -0700 Make exception throwing a bit more efficient This makes exception throwing a bit more efficient, by removing some copies. gdb/ChangeLog 2019-04-08 Tom Tromey * common/common-exceptions.c (throw_exception): Rename from throw_exception_cxx. Remove old copy. Make argument const. (throw_it): Create and throw exception objects directly. * common/common-exceptions.h (throw_exception): Make argument const. (struct gdb_exception_error): Add constructor. (struct gdb_exception_quit): Add constructor. commit d272eb370a4c086a1d0f86a7a94e89328ec8d97e Author: Tom Tromey Date: Mon Jan 28 10:29:42 2019 -0700 Remove some now-dead exception code After the rewriting to use try/catch, some of the exception code is now unused. This patch removes that code. gdb/ChangeLog 2019-04-08 Tom Tromey * common/common-exceptions.h (exception_rethrow): Don't declare. (TRY_SJLJ): Update comment. (TRY, CATCH, END_CATCH): Remove. * common/common-exceptions.c (exception_rethrow): Remove. commit 230d2906b9d1d009b22fd526181bf43e1084ed59 Author: Tom Tromey Date: Wed Apr 3 15:59:07 2019 -0600 Rename gdb exception types This renames the gdb exception types. The old types were only needed due to the macros in common-exception.h that are now gone. The intermediate layer of gdb_exception_RETURN_MASK_ALL did not seem needed, so this patch removes it entirely. gdb/ChangeLog 2019-04-08 Tom Tromey * common/common-exceptions.h (gdb_exception_RETURN_MASK_ALL): Remove. (gdb_exception_error): Rename from gdb_exception_RETURN_MASK_ERROR. (gdb_exception_quit): Rename from gdb_exception_RETURN_MASK_QUIT. (gdb_quit_bad_alloc): Update. * aarch64-tdep.c: Update. * ada-lang.c: Update. * ada-typeprint.c: Update. * ada-valprint.c: Update. * amd64-tdep.c: Update. * arch-utils.c: Update. * break-catch-throw.c: Update. * breakpoint.c: Update. * btrace.c: Update. * c-varobj.c: Update. * cli/cli-cmds.c: Update. * cli/cli-interp.c: Update. * cli/cli-script.c: Update. * common/common-exceptions.c: Update. * common/new-op.c: Update. * common/selftest.c: Update. * compile/compile-c-symbols.c: Update. * compile/compile-cplus-symbols.c: Update. * compile/compile-object-load.c: Update. * compile/compile-object-run.c: Update. * completer.c: Update. * corelow.c: Update. * cp-abi.c: Update. * cp-support.c: Update. * cp-valprint.c: Update. * darwin-nat.c: Update. * disasm-selftests.c: Update. * dtrace-probe.c: Update. * dwarf-index-cache.c: Update. * dwarf-index-write.c: Update. * dwarf2-frame-tailcall.c: Update. * dwarf2-frame.c: Update. * dwarf2loc.c: Update. * dwarf2read.c: Update. * eval.c: Update. * event-loop.c: Update. * event-top.c: Update. * exec.c: Update. * f-valprint.c: Update. * fbsd-tdep.c: Update. * frame-unwind.c: Update. * frame.c: Update. * gdbtypes.c: Update. * gnu-v3-abi.c: Update. * guile/guile-internal.h: Update. * guile/scm-block.c: Update. * guile/scm-breakpoint.c: Update. * guile/scm-cmd.c: Update. * guile/scm-disasm.c: Update. * guile/scm-frame.c: Update. * guile/scm-lazy-string.c: Update. * guile/scm-math.c: Update. * guile/scm-param.c: Update. * guile/scm-ports.c: Update. * guile/scm-pretty-print.c: Update. * guile/scm-symbol.c: Update. * guile/scm-symtab.c: Update. * guile/scm-type.c: Update. * guile/scm-value.c: Update. * i386-linux-tdep.c: Update. * i386-tdep.c: Update. * inf-loop.c: Update. * infcall.c: Update. * infcmd.c: Update. * infrun.c: Update. * jit.c: Update. * language.c: Update. * linespec.c: Update. * linux-fork.c: Update. * linux-nat.c: Update. * linux-tdep.c: Update. * linux-thread-db.c: Update. * main.c: Update. * mi/mi-cmd-break.c: Update. * mi/mi-cmd-stack.c: Update. * mi/mi-interp.c: Update. * mi/mi-main.c: Update. * objc-lang.c: Update. * p-valprint.c: Update. * parse.c: Update. * ppc-linux-tdep.c: Update. * printcmd.c: Update. * python/py-arch.c: Update. * python/py-breakpoint.c: Update. * python/py-cmd.c: Update. * python/py-finishbreakpoint.c: Update. * python/py-frame.c: Update. * python/py-framefilter.c: Update. * python/py-gdb-readline.c: Update. * python/py-inferior.c: Update. * python/py-infthread.c: Update. * python/py-lazy-string.c: Update. * python/py-linetable.c: Update. * python/py-objfile.c: Update. * python/py-param.c: Update. * python/py-prettyprint.c: Update. * python/py-progspace.c: Update. * python/py-record-btrace.c: Update. * python/py-record.c: Update. * python/py-symbol.c: Update. * python/py-type.c: Update. * python/py-unwind.c: Update. * python/py-utils.c: Update. * python/py-value.c: Update. * python/python.c: Update. * record-btrace.c: Update. * record-full.c: Update. * remote-fileio.c: Update. * remote.c: Update. * riscv-tdep.c: Update. * rs6000-aix-tdep.c: Update. * rs6000-tdep.c: Update. * rust-exp.y: Update. * rust-lang.c: Update. * s390-tdep.c: Update. * selftest-arch.c: Update. * solib-dsbt.c: Update. * solib-frv.c: Update. * solib-spu.c: Update. * solib-svr4.c: Update. * solib.c: Update. * sparc64-linux-tdep.c: Update. * stack.c: Update. * symfile-mem.c: Update. * symmisc.c: Update. * target.c: Update. * thread.c: Update. * top.c: Update. * tracefile-tfile.c: Update. * tui/tui.c: Update. * typeprint.c: Update. * unittests/cli-utils-selftests.c: Update. * unittests/parse-connection-spec-selftests.c: Update. * valops.c: Update. * valprint.c: Update. * value.c: Update. * varobj.c: Update. * windows-nat.c: Update. * x86-linux-nat.c: Update. * xml-support.c: Update. gdb/gdbserver/ChangeLog 2019-04-08 Tom Tromey * gdbreplay.c: Update. * linux-low.c: Update. * server.c: Update. commit a70b814420059e1f2de2130d532ddd7b2b2500fc Author: Tom Tromey Date: Wed Apr 3 16:02:42 2019 -0600 Rewrite TRY/CATCH This rewrites gdb's TRY/CATCH to plain C++ try/catch. The patch was largely written by script, though one change (to a comment in common-exceptions.h) was reverted by hand. gdb/ChangeLog 2019-04-08 Tom Tromey * xml-support.c: Use C++ exception handling. * x86-linux-nat.c: Use C++ exception handling. * windows-nat.c: Use C++ exception handling. * varobj.c: Use C++ exception handling. * value.c: Use C++ exception handling. * valprint.c: Use C++ exception handling. * valops.c: Use C++ exception handling. * unittests/parse-connection-spec-selftests.c: Use C++ exception handling. * unittests/cli-utils-selftests.c: Use C++ exception handling. * typeprint.c: Use C++ exception handling. * tui/tui.c: Use C++ exception handling. * tracefile-tfile.c: Use C++ exception handling. * top.c: Use C++ exception handling. * thread.c: Use C++ exception handling. * target.c: Use C++ exception handling. * symmisc.c: Use C++ exception handling. * symfile-mem.c: Use C++ exception handling. * stack.c: Use C++ exception handling. * sparc64-linux-tdep.c: Use C++ exception handling. * solib.c: Use C++ exception handling. * solib-svr4.c: Use C++ exception handling. * solib-spu.c: Use C++ exception handling. * solib-frv.c: Use C++ exception handling. * solib-dsbt.c: Use C++ exception handling. * selftest-arch.c: Use C++ exception handling. * s390-tdep.c: Use C++ exception handling. * rust-lang.c: Use C++ exception handling. * rust-exp.y: Use C++ exception handling. * rs6000-tdep.c: Use C++ exception handling. * rs6000-aix-tdep.c: Use C++ exception handling. * riscv-tdep.c: Use C++ exception handling. * remote.c: Use C++ exception handling. * remote-fileio.c: Use C++ exception handling. * record-full.c: Use C++ exception handling. * record-btrace.c: Use C++ exception handling. * python/python.c: Use C++ exception handling. * python/py-value.c: Use C++ exception handling. * python/py-utils.c: Use C++ exception handling. * python/py-unwind.c: Use C++ exception handling. * python/py-type.c: Use C++ exception handling. * python/py-symbol.c: Use C++ exception handling. * python/py-record.c: Use C++ exception handling. * python/py-record-btrace.c: Use C++ exception handling. * python/py-progspace.c: Use C++ exception handling. * python/py-prettyprint.c: Use C++ exception handling. * python/py-param.c: Use C++ exception handling. * python/py-objfile.c: Use C++ exception handling. * python/py-linetable.c: Use C++ exception handling. * python/py-lazy-string.c: Use C++ exception handling. * python/py-infthread.c: Use C++ exception handling. * python/py-inferior.c: Use C++ exception handling. * python/py-gdb-readline.c: Use C++ exception handling. * python/py-framefilter.c: Use C++ exception handling. * python/py-frame.c: Use C++ exception handling. * python/py-finishbreakpoint.c: Use C++ exception handling. * python/py-cmd.c: Use C++ exception handling. * python/py-breakpoint.c: Use C++ exception handling. * python/py-arch.c: Use C++ exception handling. * printcmd.c: Use C++ exception handling. * ppc-linux-tdep.c: Use C++ exception handling. * parse.c: Use C++ exception handling. * p-valprint.c: Use C++ exception handling. * objc-lang.c: Use C++ exception handling. * mi/mi-main.c: Use C++ exception handling. * mi/mi-interp.c: Use C++ exception handling. * mi/mi-cmd-stack.c: Use C++ exception handling. * mi/mi-cmd-break.c: Use C++ exception handling. * main.c: Use C++ exception handling. * linux-thread-db.c: Use C++ exception handling. * linux-tdep.c: Use C++ exception handling. * linux-nat.c: Use C++ exception handling. * linux-fork.c: Use C++ exception handling. * linespec.c: Use C++ exception handling. * language.c: Use C++ exception handling. * jit.c: Use C++ exception handling. * infrun.c: Use C++ exception handling. * infcmd.c: Use C++ exception handling. * infcall.c: Use C++ exception handling. * inf-loop.c: Use C++ exception handling. * i386-tdep.c: Use C++ exception handling. * i386-linux-tdep.c: Use C++ exception handling. * guile/scm-value.c: Use C++ exception handling. * guile/scm-type.c: Use C++ exception handling. * guile/scm-symtab.c: Use C++ exception handling. * guile/scm-symbol.c: Use C++ exception handling. * guile/scm-pretty-print.c: Use C++ exception handling. * guile/scm-ports.c: Use C++ exception handling. * guile/scm-param.c: Use C++ exception handling. * guile/scm-math.c: Use C++ exception handling. * guile/scm-lazy-string.c: Use C++ exception handling. * guile/scm-frame.c: Use C++ exception handling. * guile/scm-disasm.c: Use C++ exception handling. * guile/scm-cmd.c: Use C++ exception handling. * guile/scm-breakpoint.c: Use C++ exception handling. * guile/scm-block.c: Use C++ exception handling. * guile/guile-internal.h: Use C++ exception handling. * gnu-v3-abi.c: Use C++ exception handling. * gdbtypes.c: Use C++ exception handling. * frame.c: Use C++ exception handling. * frame-unwind.c: Use C++ exception handling. * fbsd-tdep.c: Use C++ exception handling. * f-valprint.c: Use C++ exception handling. * exec.c: Use C++ exception handling. * event-top.c: Use C++ exception handling. * event-loop.c: Use C++ exception handling. * eval.c: Use C++ exception handling. * dwarf2read.c: Use C++ exception handling. * dwarf2loc.c: Use C++ exception handling. * dwarf2-frame.c: Use C++ exception handling. * dwarf2-frame-tailcall.c: Use C++ exception handling. * dwarf-index-write.c: Use C++ exception handling. * dwarf-index-cache.c: Use C++ exception handling. * dtrace-probe.c: Use C++ exception handling. * disasm-selftests.c: Use C++ exception handling. * darwin-nat.c: Use C++ exception handling. * cp-valprint.c: Use C++ exception handling. * cp-support.c: Use C++ exception handling. * cp-abi.c: Use C++ exception handling. * corelow.c: Use C++ exception handling. * completer.c: Use C++ exception handling. * compile/compile-object-run.c: Use C++ exception handling. * compile/compile-object-load.c: Use C++ exception handling. * compile/compile-cplus-symbols.c: Use C++ exception handling. * compile/compile-c-symbols.c: Use C++ exception handling. * common/selftest.c: Use C++ exception handling. * common/new-op.c: Use C++ exception handling. * cli/cli-script.c: Use C++ exception handling. * cli/cli-interp.c: Use C++ exception handling. * cli/cli-cmds.c: Use C++ exception handling. * c-varobj.c: Use C++ exception handling. * btrace.c: Use C++ exception handling. * breakpoint.c: Use C++ exception handling. * break-catch-throw.c: Use C++ exception handling. * arch-utils.c: Use C++ exception handling. * amd64-tdep.c: Use C++ exception handling. * ada-valprint.c: Use C++ exception handling. * ada-typeprint.c: Use C++ exception handling. * ada-lang.c: Use C++ exception handling. * aarch64-tdep.c: Use C++ exception handling. gdb/gdbserver/ChangeLog 2019-04-08 Tom Tromey * server.c: Use C++ exception handling. * linux-low.c: Use C++ exception handling. * gdbreplay.c: Use C++ exception handling. commit 3d6e9d2336c9ffcedb10f89631981a23dd518e8e Author: Tom Tromey Date: Mon Jan 28 10:11:10 2019 -0700 Make exceptions use std::string and be self-managing This changes the exception's "message" member to be a shared_ptr wrapping a std::string. This allows removing the stack of exception messages, because now exceptions will self-destruct when needed. This also adds a noexcept copy constructor and operator= to gdb_exception, plus a "what" method. gdb/ChangeLog 2019-04-08 Tom Tromey * xml-support.c (gdb_xml_parser::parse): Update. * x86-linux-nat.c (x86_linux_nat_target::enable_btrace): Update. * value.c (show_convenience): Update. * unittests/cli-utils-selftests.c (test_number_or_range_parser) (test_parse_flags_qcs): Update. * thread.c (thr_try_catch_cmd): Update. * target.c (target_translate_tls_address): Update. * stack.c (print_frame_arg, read_frame_local, read_frame_arg) (info_frame_command_core, frame_apply_command_count): Update. * rust-exp.y (rust_lex_exception_test): Update. * riscv-tdep.c (riscv_print_one_register_info): Update. * remote.c (remote_target::enable_btrace): Update. * record-btrace.c (record_btrace_enable_warn): Update. * python/py-utils.c (gdbpy_convert_exception): Update. * printcmd.c (do_one_display, print_variable_and_value): Update. * mi/mi-main.c (mi_print_exception): Update. * mi/mi-interp.c (mi_cmd_interpreter_exec): Use SCOPE_EXIT. * mi/mi-cmd-stack.c (list_arg_or_local): Update. * linux-nat.c (linux_nat_target::attach): Update. * linux-fork.c (class scoped_switch_fork_info): Update. * infrun.c (displaced_step_prepare): Update. * infcall.c (call_function_by_hand_dummy): Update. * guile/scm-exception.c (gdbscm_scm_from_gdb_exception): Update. * gnu-v3-abi.c (print_one_vtable): Update. * frame.c (get_prev_frame_always): Update. * f-valprint.c (info_common_command_for_block): Update. * exec.c (try_open_exec_file): Update. * exceptions.c (print_exception, exception_print) (exception_fprintf, exception_print_same): Update. * dwarf2-frame.c (dwarf2_build_frame_info): Update. * dwarf-index-cache.c (index_cache::store) (index_cache::lookup_gdb_index): Update. * darwin-nat.c (maybe_cache_shell): Update. * cp-valprint.c (cp_print_value_fields): Update. * compile/compile-cplus-symbols.c (gcc_cplus_convert_symbol) (gcc_cplus_symbol_address): Update. * compile/compile-c-symbols.c (gcc_convert_symbol) (gcc_symbol_address, generate_c_for_for_one_variable): Update. * common/selftest.c: Update. * common/common-exceptions.h (struct gdb_exception) : Now a std::string. (exception_try_scope_entry, exception_try_scope_exit): Don't declare. (struct exception_try_scope): Remove. (TRY): Don't use exception_try_scope. (struct gdb_exception): Add constructor, operator=. : New method. (struct gdb_exception_RETURN_MASK_ALL) (struct gdb_exception_RETURN_MASK_ERROR) (struct gdb_exception_RETURN_MASK_QUIT): Add constructor. (struct gdb_quit_bad_alloc): Update. * common/common-exceptions.c (exception_none): Change initializer. (struct catcher) : Initialize inline. : Remove member. (current_catcher): Remove. (catchers): New global. (exceptions_state_mc_init): Simplify. (catcher_pop): Remove. (exceptions_state_mc, exceptions_state_mc_catch): Update. (try_scope_depth, exception_try_scope_entry) (exception_try_scope_exit): Remove. (throw_exception_sjlj): Update. (exception_messages, exception_messages_size): Remove. (throw_it): Simplify. (gdb_exception_sliced_copy): Remove. (throw_exception_cxx): Update. * cli/cli-script.c (script_from_file): Update. * breakpoint.c (insert_bp_location, update_breakpoint_locations): Update. * ada-valprint.c (ada_val_print): Update. * ada-lang.c (ada_to_fixed_type_1, ada_exception_name_addr) (create_excep_cond_exprs): Update. gdb/gdbserver/ChangeLog 2019-04-08 Tom Tromey * server.c (handle_btrace_general_set, handle_qxfer_btrace) (handle_qxfer_btrace_conf, detach_or_kill_for_exit_cleanup) (captured_main, main): Update. * gdbreplay.c (main): Update. commit c5c10118216867e133c132b4f46e19fb6aa9258a Author: Tom Tromey Date: Thu Jan 24 17:31:21 2019 -0700 Simplify exception handling Now that cleanups have been removed, TRY/CATCH can't be SJLJ-based any more. This patch simplifies the exception handling code, by removing the non-working variants. Note that the "pure" C++ exception handling code is removed as well; I think the route forward must be to change exceptions to be self-destructing, so that try_scope_depth can simply be removed. Some longjmp-based code remains, as it is needed to throw an exception through readline. gdb/ChangeLog 2019-04-08 Tom Tromey * common/common-exceptions.h (GDB_XCPT_SJMP, GDB_XCPT_TRY) (GDB_XCPT_RAW_TRY, GDB_XCPT): Remove. (TRY, CATCH, END_CATCH): Remove some definitions. * common/common-exceptions.c: Don't use GDB_XCPT. (catcher_list_size): Remove. (throw_exception, throw_it): Simplify. commit d970ee2bae1925bb9265d37adef0b92e2678d666 Author: Alan Modra Date: Mon Apr 8 14:07:35 2019 +0930 Fix i386-lynxos and other runtime linker fails Segfaults due to htab->params being NULL. * emulparams/elf64rdos.sh (EXTRA_EM_FILE): Define. * emulparams/i386lynx.sh (EXTRA_EM_FILE): Define. * emulparams/i386nto.sh (EXTRA_EM_FILE): Define. commit 5f2a6b85105b51f2963aaeb1212c724cab678050 Author: Alan Modra Date: Mon Apr 8 14:01:17 2019 +0930 Fix x86_64-rdos build fail x86_64-rdos is one of the few x86_64 targets that is 64-bit only and the x86_64 configure entries don't depend on elf-vxworks.lo. This results in undefined references from elfxx-x86.o. * configure.ac (elfxx_x86): Define and use. * configure: Regenerate. commit 5a826ffff854ddcea96dbe9d9ef1592bb3a4ed12 Author: GDB Administrator Date: Mon Apr 8 00:00:38 2019 +0000 Automatic date update in version.in commit 48ab418ec75e8b1cbea3e1561de6ec634dad2bf3 Author: Tom Tromey Date: Sat Oct 20 12:30:00 2018 -0600 Make "all" depend on "info" I've broken "make info" a couple of times now, because I sometimes forget to run "make info" after modifying a Texinfo file. I don't know why gdb's "make all" doesn't build the info pages. I suspect this was some Cygnus-local oddity back in the day. This patch changes doc/Makefile.in so that the info pages are built by "make all". As a point of reference, Automake has essentially always worked this way. According to the Automake manual (I didn't double-check) this is required by the GNU coding standards. The first time I sent this patch, I mentioned that I wanted to look into some existing bugs in bugzilla about missing "makeinfo". However, today I tried and I discovered that BFD requires makeinfo, and builds its info file as part of "all". So, I think this change doesn't worsen the situation for users in any way, and can simply go in. gdb/doc/ChangeLog 2019-04-07 Tom Tromey * Makefile.in (all): Depend on "info". commit e392bad3ec99458369723e14ded8c23b5b13073c Author: Alan Modra Date: Sun Apr 7 20:47:06 2019 +0930 print_insn_powerpc tidy * ppc-dis.c (print_insn_powerpc): Use a tiny state machine op_separator to control printing of spaces, comma and parens rather than need_comma, need_paren and spaces vars. commit dffaa15c481cea4081732d616334e24abc557fd1 Author: Alan Modra Date: Sun Apr 7 20:42:16 2019 +0930 PR24421, Wrong brackets in opcodes/arm-dis.c PR 24421 * arm-dis.c (print_insn_coprocessor): Correct bracket placement. (print_insn_neon, print_insn_arm): Likewise. commit 07ffcfecac22d21774a110db0f65f0387c8f1102 Author: Alan Modra Date: Sun Apr 7 20:41:49 2019 +0930 Merge libiberty from gcc commit 5f60cccf9db8b5f4aa4303f8e4ccc246f723fbe5 Author: GDB Administrator Date: Sun Apr 7 00:01:01 2019 +0000 Automatic date update in version.in commit 4de283e4b5f21207fe12f99913d1f28d4f07843c Author: Tom Tromey Date: Sat Apr 6 13:38:10 2019 -0600 Revert the header-sorting patch Andreas Schwab and John Baldwin pointed out some bugs in the header sorting patch; and I noticed that the output was not correct when limited to a subset of files (a bug in my script). So, I'm reverting the patch. I may try again after fixing the issues pointed out. gdb/ChangeLog 2019-04-05 Tom Tromey Revert the header-sorting patch. * ft32-tdep.c: Revert. * frv-tdep.c: Revert. * frv-linux-tdep.c: Revert. * frame.c: Revert. * frame-unwind.c: Revert. * frame-base.c: Revert. * fork-child.c: Revert. * findvar.c: Revert. * findcmd.c: Revert. * filesystem.c: Revert. * filename-seen-cache.h: Revert. * filename-seen-cache.c: Revert. * fbsd-tdep.c: Revert. * fbsd-nat.h: Revert. * fbsd-nat.c: Revert. * f-valprint.c: Revert. * f-typeprint.c: Revert. * f-lang.c: Revert. * extension.h: Revert. * extension.c: Revert. * extension-priv.h: Revert. * expprint.c: Revert. * exec.h: Revert. * exec.c: Revert. * exceptions.c: Revert. * event-top.c: Revert. * event-loop.c: Revert. * eval.c: Revert. * elfread.c: Revert. * dwarf2read.h: Revert. * dwarf2read.c: Revert. * dwarf2loc.c: Revert. * dwarf2expr.h: Revert. * dwarf2expr.c: Revert. * dwarf2-frame.c: Revert. * dwarf2-frame-tailcall.c: Revert. * dwarf-index-write.h: Revert. * dwarf-index-write.c: Revert. * dwarf-index-common.c: Revert. * dwarf-index-cache.h: Revert. * dwarf-index-cache.c: Revert. * dummy-frame.c: Revert. * dtrace-probe.c: Revert. * disasm.h: Revert. * disasm.c: Revert. * disasm-selftests.c: Revert. * dictionary.c: Revert. * dicos-tdep.c: Revert. * demangle.c: Revert. * dcache.h: Revert. * dcache.c: Revert. * darwin-nat.h: Revert. * darwin-nat.c: Revert. * darwin-nat-info.c: Revert. * d-valprint.c: Revert. * d-namespace.c: Revert. * d-lang.c: Revert. * ctf.c: Revert. * csky-tdep.c: Revert. * csky-linux-tdep.c: Revert. * cris-tdep.c: Revert. * cris-linux-tdep.c: Revert. * cp-valprint.c: Revert. * cp-support.c: Revert. * cp-namespace.c: Revert. * cp-abi.c: Revert. * corelow.c: Revert. * corefile.c: Revert. * continuations.c: Revert. * completer.h: Revert. * completer.c: Revert. * complaints.c: Revert. * coffread.c: Revert. * coff-pe-read.c: Revert. * cli-out.h: Revert. * cli-out.c: Revert. * charset.c: Revert. * c-varobj.c: Revert. * c-valprint.c: Revert. * c-typeprint.c: Revert. * c-lang.c: Revert. * buildsym.c: Revert. * buildsym-legacy.c: Revert. * build-id.h: Revert. * build-id.c: Revert. * btrace.c: Revert. * bsd-uthread.c: Revert. * breakpoint.h: Revert. * breakpoint.c: Revert. * break-catch-throw.c: Revert. * break-catch-syscall.c: Revert. * break-catch-sig.c: Revert. * blockframe.c: Revert. * block.c: Revert. * bfin-tdep.c: Revert. * bfin-linux-tdep.c: Revert. * bfd-target.c: Revert. * bcache.c: Revert. * ax-general.c: Revert. * ax-gdb.h: Revert. * ax-gdb.c: Revert. * avr-tdep.c: Revert. * auxv.c: Revert. * auto-load.c: Revert. * arm-wince-tdep.c: Revert. * arm-tdep.c: Revert. * arm-symbian-tdep.c: Revert. * arm-pikeos-tdep.c: Revert. * arm-obsd-tdep.c: Revert. * arm-nbsd-tdep.c: Revert. * arm-nbsd-nat.c: Revert. * arm-linux-tdep.c: Revert. * arm-linux-nat.c: Revert. * arm-fbsd-tdep.c: Revert. * arm-fbsd-nat.c: Revert. * arm-bsd-tdep.c: Revert. * arch-utils.c: Revert. * arc-tdep.c: Revert. * arc-newlib-tdep.c: Revert. * annotate.h: Revert. * annotate.c: Revert. * amd64-windows-tdep.c: Revert. * amd64-windows-nat.c: Revert. * amd64-tdep.c: Revert. * amd64-sol2-tdep.c: Revert. * amd64-obsd-tdep.c: Revert. * amd64-obsd-nat.c: Revert. * amd64-nbsd-tdep.c: Revert. * amd64-nbsd-nat.c: Revert. * amd64-nat.c: Revert. * amd64-linux-tdep.c: Revert. * amd64-linux-nat.c: Revert. * amd64-fbsd-tdep.c: Revert. * amd64-fbsd-nat.c: Revert. * amd64-dicos-tdep.c: Revert. * amd64-darwin-tdep.c: Revert. * amd64-bsd-nat.c: Revert. * alpha-tdep.c: Revert. * alpha-obsd-tdep.c: Revert. * alpha-nbsd-tdep.c: Revert. * alpha-mdebug-tdep.c: Revert. * alpha-linux-tdep.c: Revert. * alpha-linux-nat.c: Revert. * alpha-bsd-tdep.c: Revert. * alpha-bsd-nat.c: Revert. * aix-thread.c: Revert. * agent.c: Revert. * addrmap.c: Revert. * ada-varobj.c: Revert. * ada-valprint.c: Revert. * ada-typeprint.c: Revert. * ada-tasks.c: Revert. * ada-lang.c: Revert. * aarch64-tdep.c: Revert. * aarch64-ravenscar-thread.c: Revert. * aarch64-newlib-tdep.c: Revert. * aarch64-linux-tdep.c: Revert. * aarch64-linux-nat.c: Revert. * aarch64-fbsd-tdep.c: Revert. * aarch64-fbsd-nat.c: Revert. * aarch32-linux-nat.c: Revert. commit 5b9c07b2782fb9368f06c2561b7329c384ec5da0 Author: H.J. Lu Date: Sat Apr 6 07:25:10 2019 -0700 x86: Move x86-specific linker options to elf_linker_x86_params Remove x86-specific linker options from bfd_link_info and put them in elf_linker_x86_params. Add _bfd_elf_linker_x86_set_options to pass x86-specific linker options from ld to bfd. bfd/ * elf-linker-x86.h: New file. * elf32-i386.c (elf_i386_convert_load_reloc): Use htab->params to get x86-specific linker options. * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise. (elf_x86_64_check_relocs): Likewise. (elf_x86_64_relocate_section): Likewise. (elf_x86_64_link_setup_gnu_properties): Likewise. * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Likewise. (_bfd_x86_elf_link_setup_gnu_properties): Likewise. (_bfd_elf_linker_x86_set_options): New function. * elfxx-x86.h: Include "elf-linker-x86.h". (elf_x86_link_hash_table): Add params. include/ * bfdlink.h (bfd_link_info): Remove x86-specific linker options. ld/ * Makefile.am (ELF_X86_DEPS): Add $(srcdir)/emultempl/elf-x86.em. (eelf_i386_sol2.c): Also depend on $(srcdir)/emultempl/solaris2-x86.em. (eelf_x86_64_sol2.c): Likewise. * Makefile.in: Regenerated. * emulparams/call_nop.sh: Set x86-specific linker options via params. * emulparams/cet.sh: Likewise. * emulparams/reloc_overflow.sh: Likewise. * emulparams/elf32_x86_64.sh (EXTRA_EM_FILE): New. Set to "elf-x86". * emulparams/elf_i386.sh: Likewise. * emulparams/elf_i386_be.sh: Likewise. * emulparams/elf_i386_chaos.sh: Likewise. * emulparams/elf_i386_ldso.sh: Likewise. * emulparams/elf_i386_vxworks.sh: Likewise. * emulparams/elf_iamcu.sh: Likewise. * emulparams/elf_k1om.sh: Likewise. * emulparams/elf_l1om.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * emulparams/elf_i386_sol2.sh (EXTRA_EM_FILE): Changed to "solaris2-x86". * emulparams/elf_x86_64_sol2.sh: Likewise. * emultempl/elf-x86.em: New file. * emultempl/solaris2-x86.em: Likewise. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Don't set link_info.call_nop_byte. commit d55e5aa6b29906346c51ad00e6a9b112590aa294 Author: Tom Tromey Date: Tue Apr 2 20:04:24 2019 -0600 Sort includes for files gdb/[a-f]*.[chyl]. This patch sorts the include files for the files [a-f]*.[chyl]. The patch was written by a script. Tested by the buildbot. I will follow up with patches to sort the remaining files, by sorting a subset, testing them, and then checking them in. gdb/ChangeLog 2019-04-05 Tom Tromey * ft32-tdep.c: Sort headers. * frv-tdep.c: Sort headers. * frv-linux-tdep.c: Sort headers. * frame.c: Sort headers. * frame-unwind.c: Sort headers. * frame-base.c: Sort headers. * fork-child.c: Sort headers. * findvar.c: Sort headers. * findcmd.c: Sort headers. * filesystem.c: Sort headers. * filename-seen-cache.h: Sort headers. * filename-seen-cache.c: Sort headers. * fbsd-tdep.c: Sort headers. * fbsd-nat.h: Sort headers. * fbsd-nat.c: Sort headers. * f-valprint.c: Sort headers. * f-typeprint.c: Sort headers. * f-lang.c: Sort headers. * extension.h: Sort headers. * extension.c: Sort headers. * extension-priv.h: Sort headers. * expprint.c: Sort headers. * exec.h: Sort headers. * exec.c: Sort headers. * exceptions.c: Sort headers. * event-top.c: Sort headers. * event-loop.c: Sort headers. * eval.c: Sort headers. * elfread.c: Sort headers. * dwarf2read.h: Sort headers. * dwarf2read.c: Sort headers. * dwarf2loc.c: Sort headers. * dwarf2expr.h: Sort headers. * dwarf2expr.c: Sort headers. * dwarf2-frame.c: Sort headers. * dwarf2-frame-tailcall.c: Sort headers. * dwarf-index-write.h: Sort headers. * dwarf-index-write.c: Sort headers. * dwarf-index-common.c: Sort headers. * dwarf-index-cache.h: Sort headers. * dwarf-index-cache.c: Sort headers. * dummy-frame.c: Sort headers. * dtrace-probe.c: Sort headers. * disasm.h: Sort headers. * disasm.c: Sort headers. * disasm-selftests.c: Sort headers. * dictionary.c: Sort headers. * dicos-tdep.c: Sort headers. * demangle.c: Sort headers. * dcache.h: Sort headers. * dcache.c: Sort headers. * darwin-nat.h: Sort headers. * darwin-nat.c: Sort headers. * darwin-nat-info.c: Sort headers. * d-valprint.c: Sort headers. * d-namespace.c: Sort headers. * d-lang.c: Sort headers. * ctf.c: Sort headers. * csky-tdep.c: Sort headers. * csky-linux-tdep.c: Sort headers. * cris-tdep.c: Sort headers. * cris-linux-tdep.c: Sort headers. * cp-valprint.c: Sort headers. * cp-support.c: Sort headers. * cp-namespace.c: Sort headers. * cp-abi.c: Sort headers. * corelow.c: Sort headers. * corefile.c: Sort headers. * continuations.c: Sort headers. * completer.h: Sort headers. * completer.c: Sort headers. * complaints.c: Sort headers. * coffread.c: Sort headers. * coff-pe-read.c: Sort headers. * cli-out.h: Sort headers. * cli-out.c: Sort headers. * charset.c: Sort headers. * c-varobj.c: Sort headers. * c-valprint.c: Sort headers. * c-typeprint.c: Sort headers. * c-lang.c: Sort headers. * buildsym.c: Sort headers. * buildsym-legacy.c: Sort headers. * build-id.h: Sort headers. * build-id.c: Sort headers. * btrace.c: Sort headers. * bsd-uthread.c: Sort headers. * breakpoint.h: Sort headers. * breakpoint.c: Sort headers. * break-catch-throw.c: Sort headers. * break-catch-syscall.c: Sort headers. * break-catch-sig.c: Sort headers. * blockframe.c: Sort headers. * block.c: Sort headers. * bfin-tdep.c: Sort headers. * bfin-linux-tdep.c: Sort headers. * bfd-target.c: Sort headers. * bcache.c: Sort headers. * ax-general.c: Sort headers. * ax-gdb.h: Sort headers. * ax-gdb.c: Sort headers. * avr-tdep.c: Sort headers. * auxv.c: Sort headers. * auto-load.c: Sort headers. * arm-wince-tdep.c: Sort headers. * arm-tdep.c: Sort headers. * arm-symbian-tdep.c: Sort headers. * arm-pikeos-tdep.c: Sort headers. * arm-obsd-tdep.c: Sort headers. * arm-nbsd-tdep.c: Sort headers. * arm-nbsd-nat.c: Sort headers. * arm-linux-tdep.c: Sort headers. * arm-linux-nat.c: Sort headers. * arm-fbsd-tdep.c: Sort headers. * arm-fbsd-nat.c: Sort headers. * arm-bsd-tdep.c: Sort headers. * arch-utils.c: Sort headers. * arc-tdep.c: Sort headers. * arc-newlib-tdep.c: Sort headers. * annotate.h: Sort headers. * annotate.c: Sort headers. * amd64-windows-tdep.c: Sort headers. * amd64-windows-nat.c: Sort headers. * amd64-tdep.c: Sort headers. * amd64-sol2-tdep.c: Sort headers. * amd64-obsd-tdep.c: Sort headers. * amd64-obsd-nat.c: Sort headers. * amd64-nbsd-tdep.c: Sort headers. * amd64-nbsd-nat.c: Sort headers. * amd64-nat.c: Sort headers. * amd64-linux-tdep.c: Sort headers. * amd64-linux-nat.c: Sort headers. * amd64-fbsd-tdep.c: Sort headers. * amd64-fbsd-nat.c: Sort headers. * amd64-dicos-tdep.c: Sort headers. * amd64-darwin-tdep.c: Sort headers. * amd64-bsd-nat.c: Sort headers. * alpha-tdep.c: Sort headers. * alpha-obsd-tdep.c: Sort headers. * alpha-nbsd-tdep.c: Sort headers. * alpha-mdebug-tdep.c: Sort headers. * alpha-linux-tdep.c: Sort headers. * alpha-linux-nat.c: Sort headers. * alpha-bsd-tdep.c: Sort headers. * alpha-bsd-nat.c: Sort headers. * aix-thread.c: Sort headers. * agent.c: Sort headers. * addrmap.c: Sort headers. * ada-varobj.c: Sort headers. * ada-valprint.c: Sort headers. * ada-typeprint.c: Sort headers. * ada-tasks.c: Sort headers. * ada-lang.c: Sort headers. * aarch64-tdep.c: Sort headers. * aarch64-ravenscar-thread.c: Sort headers. * aarch64-newlib-tdep.c: Sort headers. * aarch64-linux-tdep.c: Sort headers. * aarch64-linux-nat.c: Sort headers. * aarch64-fbsd-tdep.c: Sort headers. * aarch64-fbsd-nat.c: Sort headers. * aarch32-linux-nat.c: Sort headers. commit d128f9b8d41a1e0c38b52d0e752e65f6e5943927 Author: GDB Administrator Date: Sat Apr 6 00:00:13 2019 +0000 Automatic date update in version.in commit 4ef40579f9d4d89e59f6cc0923130e48e4309bbf Author: H.J. Lu Date: Fri Apr 5 12:41:58 2019 -0700 x86: Add assembler -mx86-used-note=yes test Check assembler -mx86-used-note=yes option and readelf -n output. * testsuite/gas/i386/i386.exp: Run -mx86-used-note=yes tests. * testsuite/gas/i386/property-2.d: New file. * testsuite/gas/i386/property-2.s: Likewise. * testsuite/gas/i386/x86-64-property-2.d: Likewise. commit d6aab7a11b8bd85de43f9fe6b1cea95b504e73ad Author: Xuepeng Guo Date: Fri Apr 5 11:03:01 2019 -0700 x86: Support Intel AVX512 BF16 Add assembler and disassembler support Intel AVX512 BF16: https://software.intel.com/en-us/download/intel-architecture-instruction-set-extensions-programming-reference gas/ 2019-04-05 Xuepeng Guo * config/tc-i386.c (cpu_arch): Add .avx512_bf16. (cpu_noarch): Add noavx512_bf16. * doc/c-i386.texi: Document avx512_bf16. * testsuite/gas/i386/avx512_bf16.d: New file. * testsuite/gas/i386/avx512_bf16.s: Likewise. * testsuite/gas/i386/avx512_bf16_vl-inval.l: Likewise. * testsuite/gas/i386/avx512_bf16_vl-inval.s: Likewise. * testsuite/gas/i386/avx512_bf16_vl.d: Likewise. * testsuite/gas/i386/avx512_bf16_vl.s: Likewise. * testsuite/gas/i386/x86-64-avx512_bf16.d: Likewise. * testsuite/gas/i386/x86-64-avx512_bf16.s: Likewise. * testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l: Likesie. * testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s: Likewise. * testsuite/gas/i386/x86-64-avx512_bf16_vl.d: Likewise. * testsuite/gas/i386/x86-64-avx512_bf16_vl.s: Likewise. * testsuite/gas/i386/i386.exp: Add BF16 related tests. opcodes/ 2019-04-05 Xuepeng Guo * i386-dis-evex.h (evex_table): Updated to support BF16 instructions. * i386-dis.c (enum): Add EVEX_W_0F3852_P_1, EVEX_W_0F3872_P_1 and EVEX_W_0F3872_P_3. * i386-gen.c (cpu_flag_init): Add CPU_AVX512_BF16_FLAGS. (cpu_flags): Add bitfield for CpuAVX512_BF16. * i386-opc.h (enum): Add CpuAVX512_BF16. (i386_cpu_flags): Add bitfield for cpuavx512_bf16. * i386-opc.tbl: Add AVX512 BF16 instructions. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. commit 0570503dd31bc20294e228339fcbdd39b19608cc Author: Pedro Franco de Carvalho Date: Fri Apr 5 14:19:08 2019 -0300 Use linux_get_auxv to get AT_PHDR in the PPC stub This patch fixes a build error due to a call to ppc_get_auxv that was left over after linux_get_hwcap and linux_get_hwcap2 were introduced in: 974c89e0882ddb03e294eca76a9e3d3bef90eacf gdbserver: Add linux_get_hwcap Because the missing call fetched AT_PHDR and not AT_HWCAP, linux_get_auxv is now visible. This use also required ppc_get_auxv to return a status variable indicating that the AT_PHDR entry was not found separately from the actual value of of the auxv entry. Therefore, the new linux_get_auxv function is changed to return a status variable and write the entry value to a pointer passed as an argument. Note that linux_get_hwcap and linux_get_hwcap2 still use the return value as both an indicator of that the entry wasn't found and as the actual value of the entry. gdb/gdbserver/ChangeLog: 2019-04-05 Pedro Franco de Carvalho * linux-low.c (linux_get_auxv): Remove static. Return auxv entry value in argument pointer, return 1 if the entry is found and 0 otherwise. Move comment. (linux_get_hwcap, linux_get_hwcap2): Use modified linux_get_auxv. * linux-low.h (linux_get_auxv): Declare. * linux-ppc-low.c (is_elfv2_inferior): Use linux_get_auxv. commit 227a9e65b91958cb414ade82c614717579d8849e Author: Tom Tromey Date: Thu Apr 4 16:48:28 2019 -0600 Use upper-case for metasyntactic in gdbserver help I noticed that "gdbserver --help" contains a few metasyntactic variables that aren't in upper-case. This patch fixes them to conform to the GNU standard. gdb/gdbserver/ChangeLog 2019-04-05 Tom Tromey * server.c (gdbserver_usage): Use upper-case for metasyntactic variables. commit 699bd4cfa8895d0767d491a3e44ac09d3f4d1801 Author: Tom Tromey Date: Sun Mar 31 17:20:24 2019 -0600 Move innermost_block_tracker global to parse_state This changes the parsing API so that callers that are interested in tracking the innermost block must instantiate an innermost_block_tracker and pass it in. Then, a pointer to this object is stored in the parser_state. 2019-04-04 Tom Tromey * varobj.c (varobj_create): Update. * rust-exp.y (struct rust_parser) : New methods. (rust_parser::update_innermost_block, rust_parser::lookup_symbol): Rename. (rust_parser::rust_lookup_type) (rust_parser::convert_ast_to_expression, rust_lex_tests): Update. * printcmd.c (display_command, do_one_display): Update. * parser-defs.h (struct parser_state) : Add "tracker" parameter. (block_tracker): New member. (class innermost_block_tracker) : Add "types" parameter. : Remove method. (innermost_block): Don't declare. (null_post_parser): Update. * parse.c (innermost_block): Remove global. (write_dollar_variable): Update. (parse_exp_1, parse_exp_in_context): Add "tracker" parameter. Remove "tracker_types" parameter. (parse_expression): Add "tracker" parameter. (parse_expression_for_completion): Update. (null_post_parser): Add "tracker" parameter. * p-exp.y: Update rules. * m2-exp.y: Update rules. * language.h (struct language_defn) : Add "tracker" parameter. * go-exp.y: Update rules. * f-exp.y: Update rules. * expression.h (parse_expression, parse_exp_1): Add "tracker" parameter. * d-exp.y: Update rules. * c-exp.y: Update rules. * breakpoint.c (set_breakpoint_condition): Create an innermost_block_tracker. (watch_command_1): Likewise. * ada-lang.c (resolve): Add "tracker" parameter. (resolve_subexp): Likewise. * ada-exp.y (write_var_from_sym): Update. commit dac43e327d002107f6bc9481749de039f410df73 Author: Tom Tromey Date: Sun Mar 31 13:43:54 2019 -0600 Move type stack handling to a new class This introduces a new "type_stack" class, and moves all the parser type stack handling to this class. Parsers that wish to use this facility must now instantiate this class somehow. I chose this approach because a minority of the existing parsers require this. gdb/ChangeLog 2019-04-04 Tom Tromey * type-stack.h: New file. * type-stack.c: New file. * parser-defs.h (enum type_pieces, union type_stack_elt): Move to type-stack.h. (insert_into_type_stack, insert_type, push_type, push_type_int) (insert_type_address_space, pop_type, pop_type_int) (pop_typelist, pop_type_stack, append_type_stack) (push_type_stack, get_type_stack, push_typelist) (follow_type_instance_flags, follow_types): Don't declare. * parse.c (type_stack): Remove global. (parse_exp_in_context): Update. (insert_into_type_stack, insert_type, push_type, push_type_int) (insert_type_address_space, pop_type, pop_type_int) (pop_typelist, pop_type_stack, append_type_stack) (push_type_stack, get_type_stack, push_typelist) (follow_type_instance_flags, follow_types): Remove (moved to type-stack.c). * f-exp.y (type_stack): New global. Update rules. (push_kind_type, f_parse): Update. * d-exp.y (type_stack): New global. Update rules. (d_parse): Update. * c-exp.y (struct c_parse_state) : New member. Update rules. * Makefile.in (COMMON_SFILES): Add type-stack.c. (HFILES_NO_SRCDIR): Add type-stack.h. commit 2a61252965c91540133bece7deb92eb22e3cf929 Author: Tom Tromey Date: Sun Mar 24 22:50:14 2019 -0600 Move completion parsing to parser_state This moves the globals and functions related to parsing for completion to parser_state. A new structure is introduced in order to return completion results from the parse back to parse_expression_for_completion. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y (rust_parser::lex_identifier, rustyylex) (rust_parser::convert_ast_to_expression, rust_parse) (rust_lex_test_completion, rust_lex_tests): Update. * parser-defs.h (struct expr_completion_state): New. (struct parser_state) : Add completion parameter. : New methods. : New members. (prefixify_expression, null_post_parser): Update. (mark_struct_expression, mark_completion_tag): Don't declare. * parse.c (parse_completion, expout_last_struct) (expout_tag_completion_type, expout_completion_name): Remove globals. (parser_state::mark_struct_expression) (parser_state::mark_completion_tag): Now methods. (prefixify_expression): Add last_struct parameter. (prefixify_subexp): Likewise. (parse_exp_1): Update. (parse_exp_in_context): Add cstate parameter. Update. (parse_expression_for_completion): Create an expr_completion_state. (null_post_parser): Add "completion" parameter. * p-exp.y: Update rules. (yylex): Update. * language.h (struct language_defn) : Add "completing" parameter. * go-exp.y: Update rules. (lex_one_token): Update. * expression.h (parse_completion): Don't declare. * d-exp.y: Update rules. (lex_one_token): Update rules. * c-exp.y: Update rules. (lex_one_token): Update. * ada-lang.c (resolve): Add "parse_completion" parameter. (resolve_subexp): Likewise. (ada_resolve_function): Likewise. commit 43476f0b1b628352ad8e3064e50128cb3461d3d0 Author: Tom Tromey Date: Sun Mar 24 21:38:40 2019 -0600 Move arglist_len et al to parser_state This moves arglist_len, start_arglist, and end_arglist to parser_state. gdb/ChangeLog 2019-04-04 Tom Tromey * parser-defs.h (struct parser_state) : New methods. : New members. (arglist_len, start_arglist, end_arglist): Don't declare. * parse.c (arglist_len, funcall_chain): Remove global. (start_arglist, end_arglist): Remove functions. (parse_exp_in_context): Update. * p-exp.y: Update rules. * m2-exp.y: Update rules. * go-exp.y: Update rules. * f-exp.y: Update rules. * d-exp.y: Update rules. * c-exp.y: Update rules. commit 5776fca307b8af3d852525b77e9b917a9aa97370 Author: Tom Tromey Date: Sun Mar 24 21:30:56 2019 -0600 Move lexptr and prev_lexptr to parser_state This removes the lexptr and prev_lexptr globals, in favor of members of parser_state. prev_lexptr could be isolated to each parser, but since every parser uses it, that did not seem necessary. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y (struct rust_parser) : New methods. Update all rules. (rust_parser::lex_hex, lex_escape): Rename and update. (rust_parser::lex_string, rust_parser::lex_identifier): Update. (rust_parser::lex_operator): Rename and update. (rust_parser::lex_number, rustyylex, rustyyerror) (rust_lex_test_init, rust_lex_test_sequence) (rust_lex_test_push_back, rust_lex_tests): Update. * parser-defs.h (struct parser_state) : Add "input" parameter. : New members. (lexptr, prev_lexptr): Don't declare. * parse.c (lexptr, prev_lexptr): Remove globals. (parse_exp_in_context): Update. * p-exp.y (yylex, yyerror): Update. * m2-exp.y (parse_number, yylex, yyerror): Update. * go-exp.y (lex_one_token, yyerror): Update. * f-exp.y (match_string_literal, yylex, yyerror): Update. * d-exp.y (lex_one_token, yyerror): Update. * c-exp.y (scan_macro_expansion, finished_macro_expansion) (lex_one_token, yyerror): Update. * ada-lex.l (YY_INPUT): Update. (rewind_to_char): Update. * ada-exp.y (yyerror): Update. commit 8621b685bfdcb8773b8177fb2b89e45499902868 Author: Tom Tromey Date: Sun Mar 24 18:07:00 2019 -0600 Move comma_terminates global to parser_state This moves the comma_terminates global to parser_state. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y (rustyylex, rust_lex_tests): Update. * parser-defs.h (struct parser_state) : Add new parameter. : New member. (comma_terminates): Don't declare global. * parse.c (comma_terminates): Remove global. (parse_exp_in_context): Update. * p-exp.y (yylex): Update. * m2-exp.y (yylex): Update. * go-exp.y (lex_one_token): Update. * f-exp.y (yylex): Update. * d-exp.y (lex_one_token): Update. * c-exp.y (lex_one_token): Update. * ada-lex.l: Update. commit 28aaf3fdf9562c018dcf6ab4d0a4c644fff8d696 Author: Tom Tromey Date: Sun Mar 24 11:33:10 2019 -0600 Remove paren_depth global This removes the "paren_depth" global. In most cases, it is made into a static global in a given parser. I consider this a slight improvement, because it makes it clear that the variable isn't used for communication between different modules of gdb. The one exception is the Rust parser, which already incorporates all local state into a transient object; in this case the parser depth is now a member. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y (struct rust_parser) : New member. (rustyylex, rust_lex_test_init, rust_lex_test_one) (rust_lex_test_sequence, rust_lex_test_push_back): Update. * parser-defs.h (paren_depth): Don't declare. * parse.c (paren_depth): Remove global. (parse_exp_in_context): Update. * p-exp.y (paren_depth): New global. (pascal_parse): Initialize it. * m2-exp.y (paren_depth): New global. (m2_parse): Initialize it. * go-exp.y (paren_depth): New global. (go_parse): Initialize it. * f-exp.y (paren_depth): New global. (f_parse): Initialize it. * d-exp.y (paren_depth): New global. (d_parse): Initialize it. * c-exp.y (paren_depth): New global. (c_parse): Initialize it. * ada-lex.l (paren_depth): New global. (lexer_init): Initialize it. commit 1e58a4a4db997cf09315c22f3da725d1da7f9ee7 Author: Tom Tromey Date: Sun Mar 24 11:20:05 2019 -0600 Move expression_context_* globals to parser_state This moves the expression_context_block and expression_context_pc globals to be members of parser_state and updates the parsers. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y (rust_parser::crate_name, rust_parser::super_name) (rust_parser::convert_ast_to_type) (rust_parser::convert_ast_to_expression, rust_lex_tests): Update. * parser-defs.h (struct parser_state) : Add parameters. Initialize new members. : New members. * parse.c (expression_context_block, expression_context_pc): Remove globals. (parse_exp_in_context): Update. * p-exp.y: Update all rules. (yylex): Update. * m2-exp.y: Update all rules. (yylex): Update. * go-exp.y (yylex): Update. * f-exp.y (yylex): Update. * d-exp.y: Update all rules. (yylex): Update. * c-exp.y: Update all rules. (lex_one_token, classify_name, yylex, c_parse): Update. * ada-exp.y (write_var_or_type, write_name_assoc): Update. commit 37eedb39824dc26c82a92b5515a352d7de0c9b5b Author: Tom Tromey Date: Sun Mar 24 10:28:42 2019 -0600 Make base class for parser_state This makes a new base class, expr_builder, for parser_state. This separates the state needed to construct an expression from the state needed by the parsers. gdb/ChangeLog 2019-04-04 Tom Tromey * gdbarch.h, gdbarch.c: Rebuild. * gdbarch.sh (dtrace_parse_probe_argument): Change type. * stap-probe.h: (struct stap_parse_info): Replace "parser_state" with "expr_builder". * parser-defs.h (struct expr_builder): Rename from "parser_state". (parser_state): New class. * parse.c (expr_builder): Rename. (expr_builder::release): Rename. (write_exp_elt, write_exp_elt_opcode, write_exp_elt_sym) (write_exp_elt_msym, write_exp_elt_block, write_exp_elt_objfile) (write_exp_elt_longcst, write_exp_elt_floatcst) (write_exp_elt_type, write_exp_elt_intern, write_exp_string) (write_exp_string_vector, write_exp_bitstring) (write_exp_msymbol, mark_struct_expression) (write_dollar_variable) (insert_type_address_space, increase_expout_size): Replace "parser_state" with "expr_builder". * dtrace-probe.c: Replace "parser_state" with "expr_builder". * amd64-linux-tdep.c (amd64_dtrace_parse_probe_argument): Replace "parser_state" with "expr_builder". commit 73923d7eedc7ab52144308ef7e9c12cbe4341bca Author: Tom Tromey Date: Sun Mar 24 09:01:18 2019 -0600 Turn parse_language into a method This changes parse_language into a method of parser_state. This patch was written by a script. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y: Replace "parse_language" with method call. * p-exp.y: (yylex): Replace "parse_language" with method call. * m2-exp.y: (yylex): Replace "parse_language" with method call. * go-exp.y (classify_name): Replace "parse_language" with method call. * f-exp.y (yylex): Replace "parse_language" with method call. * d-exp.y (lex_one_token): Replace "parse_language" with method call. * c-exp.y: (lex_one_token, classify_name, yylex): Replace "parse_language" with method call. * ada-exp.y (find_primitive_type, type_char) (type_system_address): Replace "parse_language" with method call. commit fa9f5be6830e9245ee1ad1eab9725cc039d45d07 Author: Tom Tromey Date: Sun Mar 24 08:56:33 2019 -0600 Turn parse_gdbarch into a method This changes parse_gdbarch into a method of parser_state. This patch was written by a script. gdb/ChangeLog 2019-04-04 Tom Tromey * rust-exp.y: Replace "parse_gdbarch" with method call. * parse.c (write_dollar_variable, insert_type_address_space): Replace "parse_gdbarch" with method call. * p-exp.y (parse_type, yylex): Replace "parse_gdbarch" with method call. * objc-lang.c (end_msglist): Replace "parse_gdbarch" with method call. * m2-exp.y (parse_type, parse_m2_type, yylex): Replace "parse_gdbarch" with method call. * go-exp.y (parse_type, classify_name): Replace "parse_gdbarch" with method call. * f-exp.y (parse_type, parse_f_type, yylex): Replace "parse_gdbarch" with method call. * d-exp.y (parse_type, parse_d_type, lex_one_token): Replace "parse_gdbarch" with method call. * c-exp.y (parse_type, parse_number, classify_name): Replace "parse_gdbarch" with method call. * ada-lex.l: Replace "parse_gdbarch" with method call. * ada-exp.y (parse_type, find_primitive_type, type_char) (type_system_address): Replace "parse_gdbarch" with method call. commit 1201a264c8fd227737342345ab54e938295188b6 Author: Tom Tromey Date: Sun Mar 24 08:40:32 2019 -0600 Remove parser_state "initial_size" parameter All the real (not test) uses of parser_state pass 10 as the "initial_size" parameter, and it seems to me that there's no real reason to require callers to set this. This patch removes this parameter. gdb/ChangeLog 2019-04-04 Tom Tromey * dtrace-probe.c (dtrace_probe::build_arg_exprs): Update. * stap-probe.c (stap_parse_argument): Update. * stap-probe.h (struct stap_parse_info) : Remove initial_size parameter. * rust-exp.y (rust_lex_tests): Update. * parse.c (parser_state): Update. (parse_exp_in_context): Update. * parser-defs.h (struct parser_state) : Remove "initial_size" parameter. commit e3980ce2a9bf19ade17fdd9817765f2d1e17a0d8 Author: Tom Tromey Date: Sun Mar 24 08:25:58 2019 -0600 Make increase_expout_size static increase_expout_size is only called from parse.c, and probably only should be. This makes it "static". Tested by rebuilding. gdb/ChangeLog 2019-04-04 Tom Tromey * parser-defs.h (increase_expout_size): Don't declare. * parse.c (increase_expout_size): Now static. commit bec858ea4d0cef2d8be47b96669b803f73902014 Author: Alan Modra Date: Thu Apr 4 12:02:31 2019 +1030 PowerPC conditional branch test Adds a new test checking conditional branch BO values. * testsuite/gas/ppc/bc.s, * testsuite/gas/ppc/bcat.d, * testsuite/gas/ppc/bcaterr.d, * testsuite/gas/ppc/bcaterr.l, * testsuite/gas/ppc/bcy.d, * testsuite/gas/ppc/bcyerr.d, * testsuite/gas/ppc/bcyerr.l: New tests. * testsuite/gas/ppc/ppc.exp: Run them. commit 66e85460855837af3a3b0224f7846c436cc7d1e0 Author: Alan Modra Date: Thu Apr 4 18:19:03 2019 +1030 PowerPC bc extended branch mnemonics and "y" hints This patch fixes a problem with disassembly of branch instructions for processors complying with PowerPC ISA versions prior to version 2.0, ie. those that use "y" bit branch taken hints. Many of the extended bcctr and bclr mnemonics that should have disassembled with a "-" suffix, ie. not taken, did not display the "-" due to the ordering in powerpc_opcodes. I believe it's been that way from the original 85dcf36d72b commit of ppc-opc.c. I've also added a BH field (optional) to a few opcodes. This gives better disassembly in raw mode, showing the branch taken hint in the mnemonic as is done for bc. It would be reasonable to add a BH field to all bcctr, bclr, and bctar extended mnemonics but that runs into a small difficulty: Currently we print all or none of the optional operands. That means for example that "bgectr cr2" would display as "bgectr cr2,0" if a BH field is added to bgectr. * ppc-opc.c (XLBH_MASK): Subtract off BH field from BB_MASK. (powerpc_opcodes): Reorder bcctr and bclr extended mnemonics to favour printing of "-" branch hint when using the "y" bit. Allow BH field on bc{ctr,lr,tar}{,l}{-,+}. commit c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f Author: Alan Modra Date: Fri Apr 5 09:20:16 2019 +1030 PowerPC disassembler: Don't emit trailing spaces When an instruction has operands, the PowerPC disassembler prints spaces after the opcode so as to line up operands. If the operands are all optional and all default value, then no operands are printed, leaving trailing spaces. This patch fixes that. opcodes/ * ppc-dis.c (print_insn_powerpc): Delay printing spaces after opcode until first operand is output. gas/ * testsuite/gas/ppc/476.d: Remove trailing spaces. * testsuite/gas/ppc/a2.d: Likewise. * testsuite/gas/ppc/booke.d: Likewise. * testsuite/gas/ppc/booke_xcoff.d: Likewise. * testsuite/gas/ppc/e500.d: Likewise. * testsuite/gas/ppc/e500mc.d: Likewise. * testsuite/gas/ppc/e6500.d: Likewise. * testsuite/gas/ppc/htm.d: Likewise. * testsuite/gas/ppc/power6.d: Likewise. * testsuite/gas/ppc/power8.d: Likewise. * testsuite/gas/ppc/power9.d: Likewise. * testsuite/gas/ppc/vle.d: Likewise. ld/ * testsuite/ld-powerpc/tlsexe32.d: Remove trailing spaces. * testsuite/ld-powerpc/tlsopt5.d: Likewise. * testsuite/ld-powerpc/tlsopt5_32.d: Likewise. commit 82477cd28aac011c884d75a429d47a0523cbac26 Author: GDB Administrator Date: Fri Apr 5 00:00:21 2019 +0000 Automatic date update in version.in commit aae9718e4d4e8d01dcee22684e82b000203d3e52 Author: Peter Bergner Date: Thu Apr 4 09:00:29 2019 -0500 Add extended mnemonics for bctar. Fix setting of 'at' branch hints. opcodes/ PR gas/24349 * ppc-opc.c (valid_bo_pre_v2): Add comments. (valid_bo_post_v2): Add support for 'at' branch hints. (insert_bo): Only error on branch on ctr. (get_bo_hint_mask): New function. (insert_boe): Add new 'branch_taken' formal argument. Add support for inserting 'at' branch hints. (extract_boe): Add new 'branch_taken' formal argument. Add support for extracting 'at' branch hints. (insert_bom, extract_bom, insert_bop, extract_bop): New functions. (BOE): Delete operand. (BOM, BOP): New operands. (RM): Update value. (XLYLK, XLYLK_MASK, XLYBB_MASK): Delete. (powerpc_opcodes) : Replace BOE with BOM. (powerpc_opcodes) : Replace BOE with BOP. : New extended mnemonics. gas/ PR gas/24349 * testsuite/gas/ppc/power8.s: (bdnztar, bdnztarl, bdztar, bdztarl, btar, btarl, bdnztar-, bdnztarl-, bdnztar+, bdnztarl+, bdztar-, bdztarl-, bdztar+, bdztarl+, bgetar, bnltar, bgetarl, bnltarl, bletar, bngtar, bletarl, bngtarl, bnetar, bnetarl, bnstar, bnutar, bnstarl, bnutarl, bgetar-, bnltar-, bgetarl-, bnltarl-, bletar-, bngtar-, bletarl-, bngtarl-, bnetar-, bnetarl-, bnstar-, bnutar-, bnstarl-, bnutarl-, bgetar+, bnltar+, bgetarl+, bnltarl+, bletar+, bngtar+, bletarl+, bngtarl+, bnetar+, bnetarl+, bnstar+, bnutar+, bnstarl+, bnutarl+, blttar, blttarl, bgttar, bgttarl, beqtar, beqtarl, bsotar, buntar, bsotarl, buntarl, blttar-, blttarl-, bgttar-, bgttarl-, beqtar-, beqtarl-, bsotar-, buntar-, bsotarl-, buntarl-, blttar+, blttarl+, bgttar+, bgttarl+, beqtar+, beqtarl+, bsotar+, buntar+, bsotarl+, buntarl+, bdnzftar, bdnzftarl, bdzftar, bdzftarl, bftar, bftarl, bftar-, bftarl-, bftar+, bftarl+, bdnzttar, bdnzttarl, bdzttar, bdzttarl, bttar, bttarl, bttar-, bttarl-, bttar+, bttarl+): Add tests of extended mnemonics. * testsuite/gas/ppc/power8.d: Likewise. Update previous bctar tests to expect new extended mnemonics. * testsuite/gas/ppc/a2.s: : Update test to not use illegal BO value. Use a more convenient BI value. * testsuite/gas/ppc/a2.d: Update tests for new expect output. commit e9f8e3f109d57c119eaaa1e56378926f7f20863f Author: Thomas Schwinge Date: Thu Apr 4 11:20:09 2019 +0200 [GDB, Hurd] Fix build; 'target_waitstatus_to_string' call Recent commit c29705b71a8ec966478c0dc4712194a95291c6de removed an incomplete local implementation in favor of 'target_waitstatus_to_string' (thanks!), but introduced a small typing error: In file included from [...]/gdb/gnu-nat.c:24:0: [...]/gdb/gnu-nat.c: In member function 'virtual ptid_t gnu_nat_target::wait(ptid_t, target_waitstatus*, int)': [...]/gdb/gnu-nat.c:1652:43: error: cannot convert 'target_waitstatus**' to 'const target_waitstatus*' for argument '1' to 'std::__cxx11::string target_waitstatus_to_string(const target_waitstatus*)' target_waitstatus_to_string (&status).c_str ()); ^ [...]/gdb/gnu-nat.h:119:32: note: in definition of macro 'debug' __FILE__ , __LINE__ , ##args); } while (0) ^~~~ [...]/gdb/gnu-nat.c:1650:3: note: in expansion of macro 'inf_debug' inf_debug (inf, "returning ptid = %s, %s", ^~~~~~~~~ gdb/ * gnu-nat.c (gnu_nat_target::wait): Fix target_waitstatus_to_string call. commit e691a46f7db8db7c126f06551e3cec47f875f512 Author: GDB Administrator Date: Thu Apr 4 00:00:15 2019 +0000 Automatic date update in version.in commit 403b0b61f6d4358aee8493cb1d11814e368942c9 Author: Max Filippov Date: Tue Apr 2 14:32:42 2019 -0700 gas: use literals/const16 for xtensa loop relaxation Loop opcode relaxation that uses addi/addmi doesn't work well with other relaxations that may cause code movement. Instead of encoding fixed loop end offset in the relaxed sequence use l32r or a pair of const16 to load loop end address. This way the address of the loop end gets a relocation record and it gets updated appropriately. gas/ 2019-04-03 Max Filippov * config/tc-xtensa.c (convert_frag_immed): Drop convert_frag_immed_finish_loop invocation. (convert_frag_immed_finish_loop): Drop declaration and definition. * config/xtensa-relax.c (widen_spec_list): Replace loop widening that uses addi/addmi with widening that uses l32r and const16. commit 1c6aafe894645ca1da5c0dd0661bca19caf37ad0 Author: Alan Modra Date: Wed Apr 3 11:21:36 2019 +1030 PR24411, Division is not accepted in MEMORY length expression Let's hope no one has section names starting with '/' in scripts. If they do, this change to fix parsing of '/' in expressiongs will break their project. PR 24411 ldlex.l (SYMBOLNAMECHAR1): Don't match '/'. ("/DISCARD/"): New. commit 092da96ac4fc1bfa4c794320f538edb4e8d4fcfd Author: Alan Modra Date: Wed Apr 3 11:28:17 2019 +1030 ldlex.l tidy Underscore was specified twice in all these patterns, and backslash twice in some. Flex warned about the $SYSROOT rule, which is covered by earlier rules: "ldlex.l:386: warning, rule cannot be matched". * ldlex.l: Formatting. (CMDFILENAMECHAR, CMDFILENAMECHAR1): Delete. (FILENAMECHAR1, SYMBOLNAMECHAR1, FILENAMECHAR, WILDCHAR), (NOCFILENAMECHAR): Remove duplicate chars. Reorder. (SYMBOLCHARN): Likewise. Rename to SYMBOLNAMECHAR. ("$SYSROOT"..): Delete rule. commit 4b24dd1acad5c133d12aab6a575c83269336e47f Author: Alan Modra Date: Tue Apr 2 16:38:20 2019 +1030 BFD whitespace fixes * coff-i386.c, * coff-x86_64.c, * coffgen.c, * dwarf2.c, * elf-m10200.c, * elf.c, * elf32-arm.c, * elf32-bfin.c, * elf32-csky.c, * elf32-m32r.c, * elf32-microblaze.c, * elf32-pru.c, * elf32-rx.c, * elf32-xgate.c, * elf64-sparc.c, * elfnn-ia64.c, * elfxx-riscv.c, * elfxx-sparc.c, * linker.c, * mach-o.c, * pe-x86_64.c, * pei-x86_64.c, * plugin.c: Whitespace fixes. commit 49149495dabc2ef54b7cd38a9346a8696b205da7 Author: GDB Administrator Date: Wed Apr 3 00:00:14 2019 +0000 Automatic date update in version.in commit 87f98bacb76001157d5a26555a41738ac3841a56 Author: Jim Wilson Date: Tue Apr 2 13:30:07 2019 -0700 RISC-V: Don't check ABI flags if no code section. This fixes a glib build failure reported in PR 24389. Using ld -b binary creates an object file with no elf header flags set which has the wrong ABI info for riscv64-linux. But the file also has no code sections, so I added code borrowed from the arm port that only checks the ELF header ABI flags if there is a code section. bfd/ PR 24389 * elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Move read of ELF header flags to after check for ELF object file. Loop through sections looking for code sections, if none, then skip ABI checks. commit 4c7c79dd9858438a25fcc37ba419baa00d31978d Author: GDB Administrator Date: Tue Apr 2 00:00:43 2019 +0000 Automatic date update in version.in commit d7df654955c2423190b05b2507caf624ce3d65bc Author: Andrew Burgess Date: Thu Feb 14 15:49:39 2019 +0000 gdb/fortran: Handle internal function calls If an convenience function is defined in python (or guile), then currently this will not work in Fortran, instead the user is given this message: (gdb) set language fortran (gdb) p $myfunc (3) Cannot perform substring on this type Compare this to C: (gdb) set language c (gdb) p $myfunc (3) $1 = 1 After this patch we see the same behaviour in both C and Fortran. I've extended the test to check that all languages can call the convenience functions - only Fortran was broken. When calling convenience functions in Fortran we don't need to perform the same value preparation (passing by pointer) that we would for calling a native function - passing the real value is fine. gdb/ChangeLog: * eval.c (evaluate_subexp_standard): Handle internal functions during Fortran function call handling. gdb/testsuite/ChangeLog: * gdb.python/py-function.exp: Check calling helper function from all languages. * lib/gdb.exp (gdb_supported_languages): New proc. commit 8bdc16587e26100282094c8eaa8e83180ba57afd Author: Andrew Burgess Date: Thu Mar 14 13:58:58 2019 +0000 gdb: Add $_cimag and $_creal internal functions Add two new internal functions $_cimag and $_creal that extract the imaginary and real parts of a complex value. These internal functions can take a complex value of any type 'float complex', 'double complex', or 'long double complex' and return a suitable floating point value 'float', 'double', or 'long double'. So we can now do this: (gdb) p z1 $1 = 1.5 + 4.5 * I (gdb) p $_cimag (z1) $4 = 4.5 (gdb) p $_creal (z1) $4 = 1.5 The components of a complex value are not strictly named types in DWARF, as the complex type is itself the base type. However, once we are able to extract the components it makes sense to be able to ask what the type of these components is and get a sensible answer back, rather than the error we would currently get. Currently GDB says: (gdb) ptype z1 type = complex double (gdb) p $_cimag (z1) $4 = 4.5 (gdb) ptype $ type = With the changes in dwarf2read.c, GDB now says: (gdb) ptype z1 type = complex double (gdb) p $_cimag (z1) $4 = 4.5 (gdb) ptype $ type = double Which seems to make more sense. gdb/ChangeLog: * NEWS: Mention new internal functions. * dwarf2read.c (dwarf2_init_complex_target_type): New function. (read_base_type): Use dwarf2_init_complex_target_type. * value.c (creal_internal_fn): New function. (cimag_internal_fn): New function. (_initialize_values): Register new internal functions. gdb/doc/ChangeLog: * gdb.texinfo (Convenience Funs): Document '$_creal' and '$_cimag'. gdb/testsuite/ChangeLog: * gdb.base/complex-parts.c: New file. * gdb.base/complex-parts.exp: New file. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 71 + MAINTAINERS | 4 +- Makefile.def | 14 + Makefile.in | 1481 +- bfd/ChangeLog | 600 + bfd/Makefile.am | 4 + bfd/Makefile.in | 6 + bfd/aout-tic30.c | 98 +- bfd/archures.c | 5 + bfd/bfd-in.h | 15 +- bfd/bfd-in2.h | 69 +- bfd/coff-i386.c | 2 +- bfd/coff-x86_64.c | 6 +- bfd/coffcode.h | 5 + bfd/coffgen.c | 2 +- bfd/cofflink.c | 2 +- bfd/config.bfd | 23 +- bfd/configure | 29 +- bfd/configure.ac | 29 +- bfd/cpu-arm.c | 1 + bfd/cpu-bpf.c | 41 + bfd/doc/chew.c | 4 +- bfd/dwarf2.c | 10 +- bfd/elf-linker-x86.h | 60 + bfd/elf-m10200.c | 2 +- bfd/elf-m10300.c | 4 +- bfd/elf.c | 297 +- bfd/elf32-arm.c | 273 +- bfd/elf32-avr.c | 20 +- bfd/elf32-bfin.c | 26 +- bfd/elf32-cris.c | 4 +- bfd/elf32-csky.c | 12 +- bfd/elf32-d10v.c | 4 +- bfd/elf32-dlx.c | 4 +- bfd/elf32-fr30.c | 4 +- bfd/elf32-frv.c | 4 +- bfd/elf32-hppa.c | 4 +- bfd/elf32-i386.c | 8 +- bfd/elf32-iq2000.c | 4 +- bfd/elf32-lm32.c | 3 +- bfd/elf32-m32r.c | 10 +- bfd/elf32-m68hc1x.c | 4 +- bfd/elf32-m68k.c | 45 +- bfd/elf32-mcore.c | 4 +- bfd/elf32-metag.c | 4 +- bfd/elf32-microblaze.c | 13 +- bfd/elf32-or1k.c | 4 +- bfd/elf32-pj.c | 1 + bfd/elf32-ppc.c | 26 +- bfd/elf32-pru.c | 2 +- bfd/elf32-rx.c | 5 +- bfd/elf32-s12z.c | 1 - bfd/elf32-s390.c | 4 +- bfd/elf32-sh.c | 4 +- bfd/elf32-v850.c | 4 +- bfd/elf32-vax.c | 4 +- bfd/elf32-xgate.c | 2 +- bfd/elf32-xstormy16.c | 4 +- bfd/elf32-xtensa.c | 4 +- bfd/elf64-alpha.c | 2 +- bfd/elf64-bpf.c | 463 + bfd/elf64-hppa.c | 22 +- bfd/elf64-mmix.c | 4 +- bfd/elf64-ppc.c | 1156 +- bfd/elf64-s390.c | 4 +- bfd/elf64-sparc.c | 12 +- bfd/elf64-x86-64.c | 41 +- bfd/elflink.c | 19 +- bfd/elfnn-aarch64.c | 248 +- bfd/elfnn-ia64.c | 2 +- bfd/elfnn-riscv.c | 36 +- bfd/elfxx-aarch64.c | 10 +- bfd/elfxx-mips.c | 164 +- bfd/elfxx-mips.h | 2 + bfd/elfxx-riscv.c | 6 +- bfd/elfxx-sparc.c | 10 +- bfd/elfxx-x86.c | 101 +- bfd/elfxx-x86.h | 5 + bfd/libbfd.h | 37 +- bfd/linker.c | 15 +- bfd/mach-o.c | 12 +- bfd/pe-x86_64.c | 6 +- bfd/pei-x86_64.c | 6 +- bfd/plugin.c | 26 +- bfd/po/SRC-POTFILES.in | 2 + bfd/po/fr.po | 6 +- bfd/reloc.c | 95 +- bfd/som.c | 30 +- bfd/syms.c | 17 +- bfd/targets.c | 7 + bfd/verilog.c | 80 +- bfd/version.h | 2 +- bfd/vms-alpha.c | 5 +- bfd/xcofflink.c | 12 +- binutils/ChangeLog | 294 + binutils/MAINTAINERS | 2 + binutils/Makefile.am | 10 +- binutils/Makefile.in | 9 +- binutils/NEWS | 11 +- binutils/README-how-to-make-a-release | 4 +- binutils/arsup.c | 11 +- binutils/doc/binutils.texi | 31 +- binutils/doc/ctf.options.texi | 14 + binutils/dwarf.c | 10 +- binutils/nm.c | 95 +- binutils/objcopy.c | 29 +- binutils/objdump.c | 195 +- binutils/po/ca.po | 8187 +- binutils/readelf.c | 360 +- binutils/strings.c | 4 +- .../binutils-all/aarch64/sve-dwarf-registers.d | 25 + .../binutils-all/aarch64/sve-dwarf-registers.s | 6 + binutils/testsuite/binutils-all/compress.exp | 2 +- binutils/testsuite/binutils-all/copy-2.d | 2 +- binutils/testsuite/binutils-all/copy-3.d | 2 +- binutils/testsuite/binutils-all/i386/pr21231b.d | 2 +- binutils/testsuite/binutils-all/nm.exp | 22 +- binutils/testsuite/binutils-all/objcopy.exp | 44 + binutils/testsuite/binutils-all/objdump.exp | 62 +- binutils/testsuite/binutils-all/readelf.ss-mips | 8 +- binutils/testsuite/binutils-all/readelf.ss-tmips | 8 +- binutils/testsuite/binutils-all/verilog-1.hex | 5 + binutils/testsuite/binutils-all/verilog-2.hex | 5 + binutils/testsuite/binutils-all/verilog-4.hex | 6 + binutils/testsuite/binutils-all/verilog-8.hex | 5 + binutils/testsuite/binutils-all/verilogtest.s | 12 + binutils/testsuite/binutils-all/x86-64/pr21231b.d | 2 +- binutils/testsuite/lib/binutils-common.exp | 12 +- binutils/wrstabs.c | 22 +- config.guess | 198 +- config.sub | 29 +- configure | 10 +- configure.ac | 12 +- cpu/ChangeLog | 61 + cpu/bpf.cpu | 647 + cpu/bpf.opc | 191 + cpu/or1k.cpu | 21 +- cpu/or1k.opc | 92 + cpu/or1kcommon.cpu | 113 +- cpu/or1korbis.cpu | 3 +- cpu/or1korfpx.cpu | 214 +- elfcpp/ChangeLog | 16 + elfcpp/arm.h | 8 +- gas/ChangeLog | 2190 +- gas/Makefile.am | 2 + gas/Makefile.in | 5 + gas/NEWS | 3 + gas/as.h | 4 + gas/config/atof-ieee.c | 2 - gas/config/tc-aarch64.c | 146 +- gas/config/tc-aarch64.h | 6 + gas/config/tc-arc.c | 5 +- gas/config/tc-arm.c | 6357 +- gas/config/tc-arm.h | 16 +- gas/config/tc-avr.c | 4 +- gas/config/tc-bpf.c | 354 + gas/config/tc-bpf.h | 51 + gas/config/tc-cris.c | 26 +- gas/config/tc-csky.c | 2 + gas/config/tc-dlx.c | 14 +- gas/config/tc-dlx.h | 6 + gas/config/tc-epiphany.c | 5 +- gas/config/tc-epiphany.h | 1 - gas/config/tc-i386-intel.c | 6 + gas/config/tc-i386.c | 42 +- gas/config/tc-i386.h | 2 + gas/config/tc-ia64.c | 2 - gas/config/tc-ip2k.c | 2 + gas/config/tc-ip2k.h | 1 - gas/config/tc-m32c.c | 21 +- gas/config/tc-m32c.h | 7 +- gas/config/tc-m32r.c | 3 - gas/config/tc-metag.c | 3 - gas/config/tc-microblaze.c | 5 +- gas/config/tc-mips.c | 146 +- gas/config/tc-msp430.c | 89 +- gas/config/tc-mt.c | 2 + gas/config/tc-mt.h | 1 - gas/config/tc-nds32.c | 3 - gas/config/tc-ns32k.c | 4 +- gas/config/tc-ns32k.h | 18 +- gas/config/tc-or1k.c | 3 - gas/config/tc-ppc.c | 560 +- gas/config/tc-ppc.h | 24 +- gas/config/tc-riscv.c | 9 +- gas/config/tc-rl78.c | 3 +- gas/config/tc-rx.c | 22 +- gas/config/tc-rx.h | 11 +- gas/config/tc-s12z.c | 516 +- gas/config/tc-s12z.h | 3 - gas/config/tc-score.c | 7 +- gas/config/tc-score7.c | 7 +- gas/config/tc-sh.c | 30 +- gas/config/tc-tic4x.c | 6 +- gas/config/tc-tic54x.c | 65 +- gas/config/tc-tic54x.h | 9 +- gas/config/tc-tilegx.c | 3 - gas/config/tc-tilepro.c | 3 - gas/config/tc-visium.c | 3 - gas/config/tc-xtensa.c | 269 +- gas/config/te-cloudabi.h | 22 + gas/config/xtensa-relax.c | 77 +- gas/configure | 10 + gas/configure.ac | 6 + gas/configure.tgt | 5 +- gas/doc/Makefile.am | 1 + gas/doc/Makefile.in | 1 + gas/doc/all.texi | 1 + gas/doc/as.texi | 36 +- gas/doc/c-aarch64.texi | 18 + gas/doc/c-arm.texi | 20 +- gas/doc/c-bfin.texi | 2 +- gas/doc/c-bpf.texi | 364 + gas/doc/c-i386.texi | 9 +- gas/doc/c-mips.texi | 1 + gas/doc/c-s12z.texi | 159 +- gas/dw2gencfi.c | 54 +- gas/dwarf2dbg.c | 73 +- gas/ehopt.c | 2 +- gas/expr.c | 32 +- gas/expr.h | 2 + gas/frags.c | 59 +- gas/frags.h | 4 +- gas/listing.c | 8 +- gas/macro.c | 2 +- gas/messages.c | 18 +- gas/po/POTFILES.in | 2 + gas/read.c | 3 +- gas/symbols.c | 80 +- gas/testsuite/gas/aarch64/armv8_5-a-memtag.d | 52 +- gas/testsuite/gas/aarch64/armv8_5-a-memtag.s | 12 +- gas/testsuite/gas/aarch64/illegal-memtag.l | 16 +- gas/testsuite/gas/aarch64/illegal-memtag.s | 18 +- gas/testsuite/gas/aarch64/illegal-sve2-aes.d | 20 + gas/testsuite/gas/aarch64/illegal-sve2-bitperm.d | 19 + gas/testsuite/gas/aarch64/illegal-sve2-sha3.d | 6 + gas/testsuite/gas/aarch64/illegal-sve2-sm4.d | 8 + gas/testsuite/gas/aarch64/illegal-sve2-sve1ext.d | 4 + gas/testsuite/gas/aarch64/illegal-sve2-sve1ext.l | 128 + gas/testsuite/gas/aarch64/illegal-sve2.d | 4 + gas/testsuite/gas/aarch64/illegal-sve2.l | 3322 + gas/testsuite/gas/aarch64/illegal-sve2.s | 2062 + gas/testsuite/gas/aarch64/sve1-extended-sve2.s | 137 + gas/testsuite/gas/aarch64/sve2.d | 1301 + gas/testsuite/gas/aarch64/sve2.s | 1595 + gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d | 10 + gas/testsuite/gas/aarch64/symbol-variant_pcs-1.s | 8 + gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d | 9 + gas/testsuite/gas/aarch64/symbol-variant_pcs-2.s | 4 + gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d | 12 + gas/testsuite/gas/aarch64/symbol-variant_pcs-3.s | 20 + gas/testsuite/gas/aarch64/tme-invalid.d | 4 + gas/testsuite/gas/aarch64/tme-invalid.l | 26 + gas/testsuite/gas/aarch64/tme-invalid.s | 28 + gas/testsuite/gas/aarch64/tme.d | 22 + gas/testsuite/gas/aarch64/tme.s | 14 + gas/testsuite/gas/all/align.d | 2 +- gas/testsuite/gas/all/gas.exp | 13 +- gas/testsuite/gas/all/incbin.d | 1 - gas/testsuite/gas/all/org-1.l | 2 +- gas/testsuite/gas/all/org-1.s | 2 + gas/testsuite/gas/all/weakref1.d | 1 + gas/testsuite/gas/all/weakref1u.d | 2 +- gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.d | 4 + gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.l | 16 + gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.s | 23 + gas/testsuite/gas/arm/archv8m_1m-cmse-main.d | 57 + gas/testsuite/gas/arm/archv8m_1m-cmse-main.s | 54 + gas/testsuite/gas/arm/armv8.1-m.main-fp-dp.d | 203 + gas/testsuite/gas/arm/armv8.1-m.main-fp.d | 270 + gas/testsuite/gas/arm/armv8.1-m.main-hp.d | 75 + gas/testsuite/gas/arm/armv8_1-m-bf-bad.d | 4 + gas/testsuite/gas/arm/armv8_1-m-bf-bad.l | 9 + gas/testsuite/gas/arm/armv8_1-m-bf-bad.s | 14 + gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.d | 4 + gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.l | 7 + gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.s | 12 + gas/testsuite/gas/arm/armv8_1-m-bf-exchange.d | 14 + gas/testsuite/gas/arm/armv8_1-m-bf-exchange.s | 12 + gas/testsuite/gas/arm/armv8_1-m-bf-rel.d | 10 + gas/testsuite/gas/arm/armv8_1-m-bf-rel.s | 5 + gas/testsuite/gas/arm/armv8_1-m-bf-rela.d | 12 + gas/testsuite/gas/arm/armv8_1-m-bf.d | 13 + gas/testsuite/gas/arm/armv8_1-m-bf.s | 12 + gas/testsuite/gas/arm/armv8_1-m-bfcsel.d | 12 + gas/testsuite/gas/arm/armv8_1-m-bfcsel.s | 12 + gas/testsuite/gas/arm/armv8_1-m-bfl-bad.d | 4 + gas/testsuite/gas/arm/armv8_1-m-bfl-bad.l | 9 + gas/testsuite/gas/arm/armv8_1-m-bfl-bad.s | 14 + gas/testsuite/gas/arm/armv8_1-m-bfl-rel.d | 10 + gas/testsuite/gas/arm/armv8_1-m-bfl-rel.s | 5 + gas/testsuite/gas/arm/armv8_1-m-bfl-rela.d | 12 + gas/testsuite/gas/arm/armv8_1-m-bfl.d | 13 + gas/testsuite/gas/arm/armv8_1-m-bfl.s | 12 + gas/testsuite/gas/arm/armv8_1-m-cond-bad.d | 4 + gas/testsuite/gas/arm/armv8_1-m-cond-bad.l | 8 + gas/testsuite/gas/arm/armv8_1-m-cond-bad.s | 15 + gas/testsuite/gas/arm/armv8_1-m-cond.d | 21 + gas/testsuite/gas/arm/armv8_1-m-cond.s | 17 + gas/testsuite/gas/arm/armv8_1-m-loloop-bad.d | 4 + gas/testsuite/gas/arm/armv8_1-m-loloop-bad.l | 7 + gas/testsuite/gas/arm/armv8_1-m-loloop-bad.s | 12 + gas/testsuite/gas/arm/armv8_1-m-loloop.d | 17 + gas/testsuite/gas/arm/armv8_1-m-loloop.s | 14 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad1.d | 4 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad1.l | 9 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad2.d | 4 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad2.l | 5 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad3.d | 4 + gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad3.l | 11 + gas/testsuite/gas/arm/armv8_1-m-spec-reg.d | 20 + gas/testsuite/gas/arm/armv8_1-m-spec-reg.s | 15 + gas/testsuite/gas/arm/armv8_3-a-fp-bad.l | 4 +- gas/testsuite/gas/arm/armv8_3-a-simd-bad.l | 16 +- gas/testsuite/gas/arm/attr-march-armv8_1-m.main.d | 13 + gas/testsuite/gas/arm/dotprod-illegal.l | 10 +- gas/testsuite/gas/arm/load-pseudo.s | 3 + gas/testsuite/gas/arm/m0-load-pseudo.d | 12 + gas/testsuite/gas/arm/m23-load-pseudo.d | 12 + gas/testsuite/gas/arm/m33-load-pseudo.d | 11 + gas/testsuite/gas/arm/mve-shift-bad.d | 4 + gas/testsuite/gas/arm/mve-shift-bad.l | 12 + gas/testsuite/gas/arm/mve-shift-bad.s | 15 + gas/testsuite/gas/arm/mve-shift.d | 27 + gas/testsuite/gas/arm/mve-shift.s | 21 + gas/testsuite/gas/arm/mve-tailpredloop-bad.d | 5 + gas/testsuite/gas/arm/mve-tailpredloop-bad.l | 26 + gas/testsuite/gas/arm/mve-tailpredloop-bad.s | 36 + gas/testsuite/gas/arm/mve-tailpredloop.d | 95 + gas/testsuite/gas/arm/mve-tailpredloop.s | 23 + gas/testsuite/gas/arm/mve-vabav-bad.d | 6 + gas/testsuite/gas/arm/mve-vabav-bad.l | 18 + gas/testsuite/gas/arm/mve-vabav-bad.s | 26 + gas/testsuite/gas/arm/mve-vabav.d | 1365 + gas/testsuite/gas/arm/mve-vabav.s | 29 + gas/testsuite/gas/arm/mve-vabd.d | 1018 + gas/testsuite/gas/arm/mve-vabd.s | 32 + gas/testsuite/gas/arm/mve-vabsneg-bad-1.d | 6 + gas/testsuite/gas/arm/mve-vabsneg-bad-1.l | 33 + gas/testsuite/gas/arm/mve-vabsneg-bad-1.s | 37 + gas/testsuite/gas/arm/mve-vabsneg-bad-2.d | 6 + gas/testsuite/gas/arm/mve-vabsneg-bad-2.l | 29 + gas/testsuite/gas/arm/mve-vabsneg-bad-2.s | 32 + gas/testsuite/gas/arm/mve-vabsneg.d | 271 + gas/testsuite/gas/arm/mve-vabsneg.s | 36 + gas/testsuite/gas/arm/mve-vadc-bad.d | 5 + gas/testsuite/gas/arm/mve-vadc-bad.l | 31 + gas/testsuite/gas/arm/mve-vadc-bad.s | 36 + gas/testsuite/gas/arm/mve-vadc.d | 262 + gas/testsuite/gas/arm/mve-vadc.s | 17 + gas/testsuite/gas/arm/mve-vaddlv-bad.d | 5 + gas/testsuite/gas/arm/mve-vaddlv-bad.l | 42 + gas/testsuite/gas/arm/mve-vaddlv-bad.s | 47 + gas/testsuite/gas/arm/mve-vaddlv.d | 852 + gas/testsuite/gas/arm/mve-vaddlv.s | 19 + gas/testsuite/gas/arm/mve-vaddsub.d | 3535 + gas/testsuite/gas/arm/mve-vaddsub.s | 77 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.l | 55 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.s | 39 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.d | 6 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.l | 46 + gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.s | 32 + gas/testsuite/gas/arm/mve-vaddv-bad.d | 5 + gas/testsuite/gas/arm/mve-vaddv-bad.l | 32 + gas/testsuite/gas/arm/mve-vaddv-bad.s | 37 + gas/testsuite/gas/arm/mve-vaddv.d | 432 + gas/testsuite/gas/arm/mve-vaddv.s | 15 + gas/testsuite/gas/arm/mve-vand-bad.d | 5 + gas/testsuite/gas/arm/mve-vand-bad.l | 27 + gas/testsuite/gas/arm/mve-vand-bad.s | 38 + gas/testsuite/gas/arm/mve-vand.d | 1432 + gas/testsuite/gas/arm/mve-vand.s | 28 + gas/testsuite/gas/arm/mve-vbic-bad.d | 5 + gas/testsuite/gas/arm/mve-vbic-bad.l | 28 + gas/testsuite/gas/arm/mve-vbic-bad.s | 38 + gas/testsuite/gas/arm/mve-vbic.d | 1020 + gas/testsuite/gas/arm/mve-vbic.s | 26 + gas/testsuite/gas/arm/mve-vbrsr-bad.d | 5 + gas/testsuite/gas/arm/mve-vbrsr-bad.l | 14 + gas/testsuite/gas/arm/mve-vbrsr-bad.s | 20 + gas/testsuite/gas/arm/mve-vbrsr.d | 612 + gas/testsuite/gas/arm/mve-vbrsr.s | 16 + gas/testsuite/gas/arm/mve-vcadd-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vcadd-bad-1.l | 17 + gas/testsuite/gas/arm/mve-vcadd-bad-1.s | 23 + gas/testsuite/gas/arm/mve-vcadd-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vcadd-bad-2.l | 17 + gas/testsuite/gas/arm/mve-vcadd-bad-2.s | 22 + gas/testsuite/gas/arm/mve-vcadd.d | 1407 + gas/testsuite/gas/arm/mve-vcadd.s | 80 + gas/testsuite/gas/arm/mve-vcls-bad.d | 5 + gas/testsuite/gas/arm/mve-vcls-bad.l | 17 + gas/testsuite/gas/arm/mve-vcls-bad.s | 24 + gas/testsuite/gas/arm/mve-vcls.d | 87 + gas/testsuite/gas/arm/mve-vcls.s | 15 + gas/testsuite/gas/arm/mve-vclz-bad.d | 5 + gas/testsuite/gas/arm/mve-vclz-bad.l | 14 + gas/testsuite/gas/arm/mve-vclz-bad.s | 20 + gas/testsuite/gas/arm/mve-vclz.d | 87 + gas/testsuite/gas/arm/mve-vclz.s | 14 + gas/testsuite/gas/arm/mve-vcmla-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vcmla-bad-1.l | 3 + gas/testsuite/gas/arm/mve-vcmla-bad-1.s | 4 + gas/testsuite/gas/arm/mve-vcmla-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vcmla-bad-2.l | 17 + gas/testsuite/gas/arm/mve-vcmla-bad-2.s | 23 + gas/testsuite/gas/arm/mve-vcmla.d | 652 + gas/testsuite/gas/arm/mve-vcmla.s | 57 + gas/testsuite/gas/arm/mve-vcmp-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vcmp-bad-1.l | 31 + gas/testsuite/gas/arm/mve-vcmp-bad-1.s | 47 + gas/testsuite/gas/arm/mve-vcmp-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vcmp-bad-2.l | 25 + gas/testsuite/gas/arm/mve-vcmp-bad-2.s | 41 + gas/testsuite/gas/arm/mve-vcmp.d | 1745 + gas/testsuite/gas/arm/mve-vcmp.s | 59 + gas/testsuite/gas/arm/mve-vcmul-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vcmul-bad-1.l | 4 + gas/testsuite/gas/arm/mve-vcmul-bad-1.s | 5 + gas/testsuite/gas/arm/mve-vcmul-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vcmul-bad-2.l | 17 + gas/testsuite/gas/arm/mve-vcmul-bad-2.s | 23 + gas/testsuite/gas/arm/mve-vcmul.d | 652 + gas/testsuite/gas/arm/mve-vcmul.s | 56 + gas/testsuite/gas/arm/mve-vcvt-1.d | 1317 + gas/testsuite/gas/arm/mve-vcvt-1.s | 33 + gas/testsuite/gas/arm/mve-vcvt-2.d | 217 + gas/testsuite/gas/arm/mve-vcvt-2.s | 22 + gas/testsuite/gas/arm/mve-vcvt-3.d | 112 + gas/testsuite/gas/arm/mve-vcvt-3.s | 17 + gas/testsuite/gas/arm/mve-vcvt-4.d | 432 + gas/testsuite/gas/arm/mve-vcvt-4.s | 42 + gas/testsuite/gas/arm/mve-vcvt-bad-1.d | 6 + gas/testsuite/gas/arm/mve-vcvt-bad-1.l | 75 + gas/testsuite/gas/arm/mve-vcvt-bad-1.s | 40 + gas/testsuite/gas/arm/mve-vcvt-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vcvt-bad-2.l | 58 + gas/testsuite/gas/arm/mve-vcvt-bad-2.s | 24 + gas/testsuite/gas/arm/mve-vcvt-bad-3.d | 5 + gas/testsuite/gas/arm/mve-vcvt-bad-3.l | 39 + gas/testsuite/gas/arm/mve-vcvt-bad-3.s | 34 + gas/testsuite/gas/arm/mve-vcvt-bad-4.d | 5 + gas/testsuite/gas/arm/mve-vcvt-bad-4.l | 133 + gas/testsuite/gas/arm/mve-vcvt-bad-4.s | 62 + gas/testsuite/gas/arm/mve-vcvt-bad.d | 6 + gas/testsuite/gas/arm/mve-vcvt-bad.l | 77 + gas/testsuite/gas/arm/mve-vcvt-bad.s | 94 + gas/testsuite/gas/arm/mve-vddup-bad.d | 6 + gas/testsuite/gas/arm/mve-vddup-bad.l | 33 + gas/testsuite/gas/arm/mve-vddup-bad.s | 43 + gas/testsuite/gas/arm/mve-vddup.d | 5903 + gas/testsuite/gas/arm/mve-vddup.s | 34 + gas/testsuite/gas/arm/mve-vdup-bad.d | 5 + gas/testsuite/gas/arm/mve-vdup-bad.l | 16 + gas/testsuite/gas/arm/mve-vdup-bad.s | 23 + gas/testsuite/gas/arm/mve-vdup.d | 162 + gas/testsuite/gas/arm/mve-vdup.s | 14 + gas/testsuite/gas/arm/mve-veor-bad.d | 5 + gas/testsuite/gas/arm/mve-veor-bad.l | 12 + gas/testsuite/gas/arm/mve-veor-bad.s | 18 + gas/testsuite/gas/arm/mve-veor.d | 1012 + gas/testsuite/gas/arm/mve-veor.s | 17 + gas/testsuite/gas/arm/mve-vfma-vfms-bad.d | 5 + gas/testsuite/gas/arm/mve-vfma-vfms-bad.l | 35 + gas/testsuite/gas/arm/mve-vfma-vfms-bad.s | 49 + gas/testsuite/gas/arm/mve-vfma-vfms.d | 915 + gas/testsuite/gas/arm/mve-vfma-vfms.s | 25 + gas/testsuite/gas/arm/mve-vfmas-bad.d | 5 + gas/testsuite/gas/arm/mve-vfmas-bad.l | 16 + gas/testsuite/gas/arm/mve-vfmas-bad.s | 22 + gas/testsuite/gas/arm/mve-vfmas.d | 412 + gas/testsuite/gas/arm/mve-vfmas.s | 16 + gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.d | 5 + gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.l | 71 + gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.s | 69 + gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.d | 4665 + gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.s | 26 + gas/testsuite/gas/arm/mve-vhcadd-bad.d | 5 + gas/testsuite/gas/arm/mve-vhcadd-bad.l | 17 + gas/testsuite/gas/arm/mve-vhcadd-bad.s | 23 + gas/testsuite/gas/arm/mve-vhcadd.d | 710 + gas/testsuite/gas/arm/mve-vhcadd.s | 57 + gas/testsuite/gas/arm/mve-vidup-bad.d | 5 + gas/testsuite/gas/arm/mve-vidup-bad.l | 34 + gas/testsuite/gas/arm/mve-vidup-bad.s | 43 + gas/testsuite/gas/arm/mve-vldr-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vldr-bad-1.l | 98 + gas/testsuite/gas/arm/mve-vldr-bad-1.s | 107 + gas/testsuite/gas/arm/mve-vldr-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vldr-bad-2.l | 41 + gas/testsuite/gas/arm/mve-vldr-bad-2.s | 44 + gas/testsuite/gas/arm/mve-vldr-bad-3.d | 5 + gas/testsuite/gas/arm/mve-vldr-bad-3.l | 135 + gas/testsuite/gas/arm/mve-vldr-bad-3.s | 138 + gas/testsuite/gas/arm/mve-vmax-vmin-bad.d | 5 + gas/testsuite/gas/arm/mve-vmax-vmin-bad.l | 27 + gas/testsuite/gas/arm/mve-vmax-vmin-bad.s | 31 + gas/testsuite/gas/arm/mve-vmax-vmin.d | 1512 + gas/testsuite/gas/arm/mve-vmax-vmin.s | 17 + gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.d | 5 + gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.l | 29 + gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.s | 33 + gas/testsuite/gas/arm/mve-vmaxa-vmina.d | 162 + gas/testsuite/gas/arm/mve-vmaxa-vmina.s | 16 + gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.d | 5 + gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.l | 27 + gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.s | 31 + gas/testsuite/gas/arm/mve-vmaxnm-vminnm.d | 617 + gas/testsuite/gas/arm/mve-vmaxnm-vminnm.s | 24 + gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.d | 5 + gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.l | 27 + gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.s | 31 + gas/testsuite/gas/arm/mve-vmaxnma-vminnma.s | 15 + gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.d | 5 + gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.l | 57 + gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.s | 57 + gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv.d | 377 + gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv.s | 22 + gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.d | 5 + gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.l | 57 + gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.s | 57 + gas/testsuite/gas/arm/mve-vmaxv-vminv.d | 737 + gas/testsuite/gas/arm/mve-vmaxv-vminv.s | 30 + gas/testsuite/gas/arm/mve-vmla-bad.d | 5 + gas/testsuite/gas/arm/mve-vmla-bad.l | 17 + gas/testsuite/gas/arm/mve-vmla-bad.s | 23 + gas/testsuite/gas/arm/mve-vmla.d | 1360 + gas/testsuite/gas/arm/mve-vmla.s | 14 + gas/testsuite/gas/arm/mve-vmladav-bad.d | 5 + gas/testsuite/gas/arm/mve-vmladav-bad.l | 55 + gas/testsuite/gas/arm/mve-vmladav-bad.s | 55 + gas/testsuite/gas/arm/mve-vmladav.d | 3167 + gas/testsuite/gas/arm/mve-vmladav.s | 34 + gas/testsuite/gas/arm/mve-vmlaldav-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlaldav-bad.l | 62 + gas/testsuite/gas/arm/mve-vmlaldav-bad.s | 58 + gas/testsuite/gas/arm/mve-vmlaldav.d |12617 ++ gas/testsuite/gas/arm/mve-vmlaldav.s | 32 + gas/testsuite/gas/arm/mve-vmlalv-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlalv-bad.l | 33 + gas/testsuite/gas/arm/mve-vmlalv-bad.s | 35 + gas/testsuite/gas/arm/mve-vmlalv.d |16812 +++ gas/testsuite/gas/arm/mve-vmlalv.s | 23 + gas/testsuite/gas/arm/mve-vmlas-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlas-bad.l | 16 + gas/testsuite/gas/arm/mve-vmlas-bad.s | 22 + gas/testsuite/gas/arm/mve-vmlas.d | 1360 + gas/testsuite/gas/arm/mve-vmlas.s | 14 + gas/testsuite/gas/arm/mve-vmlav-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlav-bad.l | 29 + gas/testsuite/gas/arm/mve-vmlav-bad.s | 33 + gas/testsuite/gas/arm/mve-vmlav.d | 2112 + gas/testsuite/gas/arm/mve-vmlav.s | 22 + gas/testsuite/gas/arm/mve-vmlsdav-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlsdav-bad.l | 47 + gas/testsuite/gas/arm/mve-vmlsdav-bad.s | 47 + gas/testsuite/gas/arm/mve-vmlsdav.d | 2117 + gas/testsuite/gas/arm/mve-vmlsdav.s | 25 + gas/testsuite/gas/arm/mve-vmlsldav-bad.d | 5 + gas/testsuite/gas/arm/mve-vmlsldav-bad.l | 63 + gas/testsuite/gas/arm/mve-vmlsldav-bad.s | 60 + gas/testsuite/gas/arm/mve-vmlsldav.d | 8412 ++ gas/testsuite/gas/arm/mve-vmlsldav.s | 23 + gas/testsuite/gas/arm/mve-vmov-1.d | 4156 + gas/testsuite/gas/arm/mve-vmov-1.s | 132 + gas/testsuite/gas/arm/mve-vmov-2.d | 4307 + gas/testsuite/gas/arm/mve-vmov-2.s | 147 + gas/testsuite/gas/arm/mve-vmov-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vmov-bad-1.l | 24 + gas/testsuite/gas/arm/mve-vmov-bad-1.s | 29 + gas/testsuite/gas/arm/mve-vmov-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vmov-bad-2.l | 10 + gas/testsuite/gas/arm/mve-vmov-bad-2.s | 11 + gas/testsuite/gas/arm/mve-vmul-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vmul-bad-1.l | 31 + gas/testsuite/gas/arm/mve-vmul-bad-1.s | 35 + gas/testsuite/gas/arm/mve-vmul-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vmul-bad-2.l | 47 + gas/testsuite/gas/arm/mve-vmul-bad-2.s | 41 + gas/testsuite/gas/arm/mve-vmul.d | 1760 + gas/testsuite/gas/arm/mve-vmul.s | 18 + gas/testsuite/gas/arm/mve-vmulh-bad.d | 5 + gas/testsuite/gas/arm/mve-vmulh-bad.l | 29 + gas/testsuite/gas/arm/mve-vmulh-bad.s | 33 + gas/testsuite/gas/arm/mve-vmulh.d | 1512 + gas/testsuite/gas/arm/mve-vmulh.s | 17 + gas/testsuite/gas/arm/mve-vmullbt-bad.d | 5 + gas/testsuite/gas/arm/mve-vmullbt-bad.l | 33 + gas/testsuite/gas/arm/mve-vmullbt-bad.s | 40 + gas/testsuite/gas/arm/mve-vmullbt.d | 1847 + gas/testsuite/gas/arm/mve-vmullbt.s | 89 + gas/testsuite/gas/arm/mve-vmvn-bad.d | 5 + gas/testsuite/gas/arm/mve-vmvn-bad.l | 20 + gas/testsuite/gas/arm/mve-vmvn-bad.s | 21 + gas/testsuite/gas/arm/mve-vmvn.d | 92 + gas/testsuite/gas/arm/mve-vmvn.s | 23 + gas/testsuite/gas/arm/mve-vorn-bad.d | 5 + gas/testsuite/gas/arm/mve-vorn-bad.l | 27 + gas/testsuite/gas/arm/mve-vorn-bad.s | 38 + gas/testsuite/gas/arm/mve-vorn.d | 1021 + gas/testsuite/gas/arm/mve-vorn.s | 26 + gas/testsuite/gas/arm/mve-vorr-bad.d | 5 + gas/testsuite/gas/arm/mve-vorr-bad.l | 27 + gas/testsuite/gas/arm/mve-vorr-bad.s | 38 + gas/testsuite/gas/arm/mve-vorr.d | 1020 + gas/testsuite/gas/arm/mve-vorr.s | 25 + gas/testsuite/gas/arm/mve-vpnot-bad.d | 5 + gas/testsuite/gas/arm/mve-vpnot-bad.l | 12 + gas/testsuite/gas/arm/mve-vpnot-bad.s | 18 + gas/testsuite/gas/arm/mve-vpnot.d | 11 + gas/testsuite/gas/arm/mve-vpnot.s | 6 + gas/testsuite/gas/arm/mve-vpsel-bad.d | 5 + gas/testsuite/gas/arm/mve-vpsel-bad.l | 12 + gas/testsuite/gas/arm/mve-vpsel-bad.s | 19 + gas/testsuite/gas/arm/mve-vpsel.d | 885 + gas/testsuite/gas/arm/mve-vpsel.s | 15 + gas/testsuite/gas/arm/mve-vpst-bad.d | 6 + gas/testsuite/gas/arm/mve-vpst-bad.l | 19 + gas/testsuite/gas/arm/mve-vpst-bad.s | 68 + gas/testsuite/gas/arm/mve-vpt-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vpt-bad-1.l | 23 + gas/testsuite/gas/arm/mve-vpt-bad-1.s | 30 + gas/testsuite/gas/arm/mve-vpt-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vpt-bad-2.l | 21 + gas/testsuite/gas/arm/mve-vpt-bad-2.s | 27 + gas/testsuite/gas/arm/mve-vpt.d |138311 ++++++++++++++++++++ gas/testsuite/gas/arm/mve-vpt.s | 117 + gas/testsuite/gas/arm/mve-vqabsneg-bad.d | 5 + gas/testsuite/gas/arm/mve-vqabsneg-bad.l | 27 + gas/testsuite/gas/arm/mve-vqabsneg-bad.s | 29 + gas/testsuite/gas/arm/mve-vqabsneg.s | 19 + gas/testsuite/gas/arm/mve-vqaddsub-bad.d | 5 + gas/testsuite/gas/arm/mve-vqaddsub-bad.l | 57 + gas/testsuite/gas/arm/mve-vqaddsub-bad.s | 57 + gas/testsuite/gas/arm/mve-vqaddsub.d | 4217 + gas/testsuite/gas/arm/mve-vqaddsub.s | 26 + gas/testsuite/gas/arm/mve-vqdmladh-bad.d | 5 + gas/testsuite/gas/arm/mve-vqdmladh-bad.l | 61 + gas/testsuite/gas/arm/mve-vqdmladh-bad.s | 61 + gas/testsuite/gas/arm/mve-vqdmladh.d | 1401 + gas/testsuite/gas/arm/mve-vqdmladh.s | 75 + gas/testsuite/gas/arm/mve-vqdmlah.d | 2712 + gas/testsuite/gas/arm/mve-vqdmlah.s | 18 + gas/testsuite/gas/arm/mve-vqdmlash.d | 2712 + gas/testsuite/gas/arm/mve-vqdmlash.s | 18 + gas/testsuite/gas/arm/mve-vqdmlsdh-bad.d | 5 + gas/testsuite/gas/arm/mve-vqdmlsdh-bad.l | 61 + gas/testsuite/gas/arm/mve-vqdmlsdh-bad.s | 61 + gas/testsuite/gas/arm/mve-vqdmlsdh.d | 1401 + gas/testsuite/gas/arm/mve-vqdmlsdh.s | 73 + gas/testsuite/gas/arm/mve-vqdmulh-bad.d | 5 + gas/testsuite/gas/arm/mve-vqdmulh-bad.l | 57 + gas/testsuite/gas/arm/mve-vqdmulh-bad.s | 57 + gas/testsuite/gas/arm/mve-vqdmulh.d | 2117 + gas/testsuite/gas/arm/mve-vqdmulh.s | 26 + gas/testsuite/gas/arm/mve-vqdmull-bad.d | 5 + gas/testsuite/gas/arm/mve-vqdmull-bad.l | 61 + gas/testsuite/gas/arm/mve-vqdmull-bad.s | 55 + gas/testsuite/gas/arm/mve-vqdmull.d | 787 + gas/testsuite/gas/arm/mve-vqdmull.s | 56 + gas/testsuite/gas/arm/mve-vqmovn-bad.d | 5 + gas/testsuite/gas/arm/mve-vqmovn-bad.l | 61 + gas/testsuite/gas/arm/mve-vqmovn-bad.s | 61 + gas/testsuite/gas/arm/mve-vqmovn.d | 325 + gas/testsuite/gas/arm/mve-vqmovn.s | 37 + gas/testsuite/gas/arm/mve-vqrshl-bad.d | 5 + gas/testsuite/gas/arm/mve-vqrshl-bad.l | 32 + gas/testsuite/gas/arm/mve-vqrshl-bad.s | 36 + gas/testsuite/gas/arm/mve-vqrshl.d | 1032 + gas/testsuite/gas/arm/mve-vqrshl.s | 19 + gas/testsuite/gas/arm/mve-vqrshrn-bad.d | 5 + gas/testsuite/gas/arm/mve-vqrshrn-bad.l | 71 + gas/testsuite/gas/arm/mve-vqrshrn-bad.s | 71 + gas/testsuite/gas/arm/mve-vqrshrn.d | 2117 + gas/testsuite/gas/arm/mve-vqrshrn.s | 38 + gas/testsuite/gas/arm/mve-vqshl-bad.d | 5 + gas/testsuite/gas/arm/mve-vqshl-bad.l | 45 + gas/testsuite/gas/arm/mve-vqshl-bad.s | 48 + gas/testsuite/gas/arm/mve-vqshl.d | 3212 + gas/testsuite/gas/arm/mve-vqshl.s | 45 + gas/testsuite/gas/arm/mve-vrev-bad.d | 5 + gas/testsuite/gas/arm/mve-vrev-bad.l | 38 + gas/testsuite/gas/arm/mve-vrev-bad.s | 40 + gas/testsuite/gas/arm/mve-vrev.d | 150 + gas/testsuite/gas/arm/mve-vrev.s | 46 + gas/testsuite/gas/arm/mve-vrint-bad.d | 5 + gas/testsuite/gas/arm/mve-vrint-bad.l | 80 + gas/testsuite/gas/arm/mve-vrint-bad.s | 25 + gas/testsuite/gas/arm/mve-vrint.d | 322 + gas/testsuite/gas/arm/mve-vrint.s | 26 + gas/testsuite/gas/arm/mve-vrmlaldavh-bad.d | 5 + gas/testsuite/gas/arm/mve-vrmlaldavh-bad.l | 171 + gas/testsuite/gas/arm/mve-vrmlaldavh-bad.s | 159 + gas/testsuite/gas/arm/mve-vrmlaldavh.d |14732 +++ gas/testsuite/gas/arm/mve-vrmlaldavh.s | 57 + gas/testsuite/gas/arm/mve-vrshl-bad.d | 5 + gas/testsuite/gas/arm/mve-vrshl-bad.l | 29 + gas/testsuite/gas/arm/mve-vrshl-bad.s | 33 + gas/testsuite/gas/arm/mve-vrshl.d | 1032 + gas/testsuite/gas/arm/mve-vrshl.s | 19 + gas/testsuite/gas/arm/mve-vsbc-bad.d | 5 + gas/testsuite/gas/arm/mve-vsbc-bad.l | 25 + gas/testsuite/gas/arm/mve-vsbc-bad.s | 29 + gas/testsuite/gas/arm/mve-vsbc.d | 262 + gas/testsuite/gas/arm/mve-vsbc.s | 16 + gas/testsuite/gas/arm/mve-vshl-bad.d | 5 + gas/testsuite/gas/arm/mve-vshl-bad.l | 44 + gas/testsuite/gas/arm/mve-vshl-bad.s | 46 + gas/testsuite/gas/arm/mve-vshl.d | 1735 + gas/testsuite/gas/arm/mve-vshl.s | 37 + gas/testsuite/gas/arm/mve-vshlc-bad.d | 5 + gas/testsuite/gas/arm/mve-vshlc-bad.l | 16 + gas/testsuite/gas/arm/mve-vshlc-bad.s | 22 + gas/testsuite/gas/arm/mve-vshlc.d | 415 + gas/testsuite/gas/arm/mve-vshlc.s | 12 + gas/testsuite/gas/arm/mve-vshll-bad.d | 5 + gas/testsuite/gas/arm/mve-vshll-bad.l | 35 + gas/testsuite/gas/arm/mve-vshll-bad.s | 39 + gas/testsuite/gas/arm/mve-vshll.d | 1512 + gas/testsuite/gas/arm/mve-vshll.s | 24 + gas/testsuite/gas/arm/mve-vshr-bad.d | 5 + gas/testsuite/gas/arm/mve-vshr-bad.l | 33 + gas/testsuite/gas/arm/mve-vshr-bad.s | 37 + gas/testsuite/gas/arm/mve-vshr.d | 2812 + gas/testsuite/gas/arm/mve-vshr.s | 31 + gas/testsuite/gas/arm/mve-vshrn-bad.d | 5 + gas/testsuite/gas/arm/mve-vshrn-bad.l | 57 + gas/testsuite/gas/arm/mve-vshrn-bad.s | 57 + gas/testsuite/gas/arm/mve-vshrn.d | 1417 + gas/testsuite/gas/arm/mve-vshrn.s | 29 + gas/testsuite/gas/arm/mve-vsli-bad.d | 5 + gas/testsuite/gas/arm/mve-vsli-bad.l | 16 + gas/testsuite/gas/arm/mve-vsli-bad.s | 22 + gas/testsuite/gas/arm/mve-vsli.d | 760 + gas/testsuite/gas/arm/mve-vsli.s | 19 + gas/testsuite/gas/arm/mve-vsri-bad.d | 5 + gas/testsuite/gas/arm/mve-vsri-bad.l | 19 + gas/testsuite/gas/arm/mve-vsri-bad.s | 26 + gas/testsuite/gas/arm/mve-vsri.d | 710 + gas/testsuite/gas/arm/mve-vsri.s | 18 + gas/testsuite/gas/arm/mve-vstld-bad.d | 5 + gas/testsuite/gas/arm/mve-vstld-bad.l | 249 + gas/testsuite/gas/arm/mve-vstld-bad.s | 234 + gas/testsuite/gas/arm/mve-vstld.d | 3883 + gas/testsuite/gas/arm/mve-vstld.s | 52 + gas/testsuite/gas/arm/mve-vstr-bad-1.d | 5 + gas/testsuite/gas/arm/mve-vstr-bad-1.l | 105 + gas/testsuite/gas/arm/mve-vstr-bad-1.s | 124 + gas/testsuite/gas/arm/mve-vstr-bad-2.d | 5 + gas/testsuite/gas/arm/mve-vstr-bad-2.l | 38 + gas/testsuite/gas/arm/mve-vstr-bad-2.s | 43 + gas/testsuite/gas/arm/mve-vstr-bad-3.d | 5 + gas/testsuite/gas/arm/mve-vstr-bad-3.l | 138 + gas/testsuite/gas/arm/mve-vstr-bad-3.s | 140 + gas/testsuite/gas/arm/mve-vstrldr-1.d | 7563 ++ gas/testsuite/gas/arm/mve-vstrldr-1.s | 118 + gas/testsuite/gas/arm/mve-vstrldr-2.d |16405 +++ gas/testsuite/gas/arm/mve-vstrldr-2.s | 103 + gas/testsuite/gas/arm/mve-vstrldr-3.d |82635 ++++++++++++ gas/testsuite/gas/arm/mve-vstrldr-3.s | 119 + gas/testsuite/gas/arm/neon-ldst-es-bad.l | 16 +- gas/testsuite/gas/arm/vfp1xD.d | 8 +- gas/testsuite/gas/arm/vfp1xD_t2.d | 4 +- gas/testsuite/gas/bpf/alu-be.d | 59 + gas/testsuite/gas/bpf/alu.d | 58 + gas/testsuite/gas/bpf/alu.s | 51 + gas/testsuite/gas/bpf/alu32-be.d | 65 + gas/testsuite/gas/bpf/alu32.d | 64 + gas/testsuite/gas/bpf/alu32.s | 57 + gas/testsuite/gas/bpf/atomic-be.d | 12 + gas/testsuite/gas/bpf/atomic.d | 11 + gas/testsuite/gas/bpf/atomic.s | 5 + gas/testsuite/gas/bpf/bpf.exp | 38 + gas/testsuite/gas/bpf/call-be.d | 19 + gas/testsuite/gas/bpf/call.d | 18 + gas/testsuite/gas/bpf/call.s | 11 + gas/testsuite/gas/bpf/exit-be.d | 11 + gas/testsuite/gas/bpf/exit.d | 10 + gas/testsuite/gas/bpf/exit.s | 2 + gas/testsuite/gas/bpf/jump-be.d | 32 + gas/testsuite/gas/bpf/jump.d | 31 + gas/testsuite/gas/bpf/jump.s | 25 + gas/testsuite/gas/bpf/lddw-be.d | 18 + gas/testsuite/gas/bpf/lddw.d | 17 + gas/testsuite/gas/bpf/lddw.s | 6 + gas/testsuite/gas/bpf/mem-be.d | 30 + gas/testsuite/gas/bpf/mem.d | 29 + gas/testsuite/gas/bpf/mem.s | 24 + gas/testsuite/gas/elf/dwarf2-1.d | 8 +- gas/testsuite/gas/elf/dwarf2-1.s | 4 +- gas/testsuite/gas/elf/dwarf2-10.d | 3 +- gas/testsuite/gas/elf/dwarf2-10.s | 10 +- gas/testsuite/gas/elf/dwarf2-11.d | 13 +- gas/testsuite/gas/elf/dwarf2-11.s | 6 +- gas/testsuite/gas/elf/dwarf2-12.d | 16 +- gas/testsuite/gas/elf/dwarf2-12.s | 4 +- gas/testsuite/gas/elf/dwarf2-13.d | 15 +- gas/testsuite/gas/elf/dwarf2-13.s | 8 +- gas/testsuite/gas/elf/dwarf2-14.d | 15 +- gas/testsuite/gas/elf/dwarf2-14.s | 6 +- gas/testsuite/gas/elf/dwarf2-15.d | 15 +- gas/testsuite/gas/elf/dwarf2-15.s | 6 +- gas/testsuite/gas/elf/dwarf2-16.d | 15 +- gas/testsuite/gas/elf/dwarf2-16.s | 8 +- gas/testsuite/gas/elf/dwarf2-17.d | 15 +- gas/testsuite/gas/elf/dwarf2-17.s | 8 +- gas/testsuite/gas/elf/dwarf2-18.d | 16 +- gas/testsuite/gas/elf/dwarf2-18.s | 6 +- gas/testsuite/gas/elf/dwarf2-19.d | 21 + gas/testsuite/gas/elf/dwarf2-19.s | 41 + gas/testsuite/gas/elf/dwarf2-2.d | 8 +- gas/testsuite/gas/elf/dwarf2-2.s | 4 +- gas/testsuite/gas/elf/dwarf2-5.d | 55 +- gas/testsuite/gas/elf/dwarf2-5.s | 14 +- gas/testsuite/gas/elf/dwarf2-7.d | 15 +- gas/testsuite/gas/elf/dwarf2-7.s | 4 +- gas/testsuite/gas/elf/dwarf2-8.d | 2 - gas/testsuite/gas/elf/dwarf2-8.s | 2 +- gas/testsuite/gas/elf/dwarf2-9.d | 2 - gas/testsuite/gas/elf/dwarf2-9.s | 2 +- gas/testsuite/gas/elf/elf.exp | 84 +- gas/testsuite/gas/elf/section2.e-miwmmxt | 10 - gas/testsuite/gas/i386/avx512_bf16.d | 42 + gas/testsuite/gas/i386/avx512_bf16.s | 37 + gas/testsuite/gas/i386/avx512_bf16_vl-inval.l | 7 + gas/testsuite/gas/i386/avx512_bf16_vl-inval.s | 13 + gas/testsuite/gas/i386/avx512_bf16_vl.d | 70 + gas/testsuite/gas/i386/avx512_bf16_vl.s | 65 + gas/testsuite/gas/i386/disassem.d | 10 + gas/testsuite/gas/i386/disassem.s | 6 + gas/testsuite/gas/i386/enqcmd-intel.d | 20 + gas/testsuite/gas/i386/enqcmd-inval.l | 10 + gas/testsuite/gas/i386/enqcmd-inval.s | 15 + gas/testsuite/gas/i386/enqcmd.d | 20 + gas/testsuite/gas/i386/enqcmd.s | 15 + gas/testsuite/gas/i386/i386.exp | 24 +- gas/testsuite/gas/i386/inval-avx512f.l | 5 + gas/testsuite/gas/i386/inval-avx512f.s | 3 + gas/testsuite/gas/i386/inval-avx512vl.l | 12 + gas/testsuite/gas/i386/inval-avx512vl.s | 6 + gas/testsuite/gas/i386/jump16.d | 7 + gas/testsuite/gas/i386/jump16.e | 3 + gas/testsuite/gas/i386/jump16.s | 22 + gas/testsuite/gas/i386/property-2.d | 9 + gas/testsuite/gas/i386/property-2.s | 32 + gas/testsuite/gas/i386/reloc64.d | 1 + gas/testsuite/gas/i386/solaris/reloc64.d | 99 + gas/testsuite/gas/i386/solaris/solaris.exp | 48 + gas/testsuite/gas/i386/solaris/x86-64-jump.d | 44 + .../gas/i386/solaris/x86-64-mpx-branch-1.d | 29 + .../gas/i386/solaris/x86-64-mpx-branch-2.d | 29 + gas/testsuite/gas/i386/solaris/x86-64-nop-3.d | 21 + gas/testsuite/gas/i386/solaris/x86-64-nop-4.d | 24 + gas/testsuite/gas/i386/solaris/x86-64-nop-5.d | 27 + gas/testsuite/gas/i386/solaris/x86-64-relax-2.d | 34 + gas/testsuite/gas/i386/solaris/x86-64-relax-3.d | 33 + gas/testsuite/gas/i386/vp2intersect-intel.d | 48 + gas/testsuite/gas/i386/vp2intersect-inval-bcast.l | 13 + gas/testsuite/gas/i386/vp2intersect-inval-bcast.s | 19 + gas/testsuite/gas/i386/vp2intersect.d | 48 + gas/testsuite/gas/i386/vp2intersect.s | 51 + gas/testsuite/gas/i386/x86-64-avx512_bf16.d | 42 + gas/testsuite/gas/i386/x86-64-avx512_bf16.s | 37 + .../gas/i386/x86-64-avx512_bf16_vl-inval.l | 7 + .../gas/i386/x86-64-avx512_bf16_vl-inval.s | 13 + gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.d | 70 + gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.s | 65 + gas/testsuite/gas/i386/x86-64-disassem.d | 9 + gas/testsuite/gas/i386/x86-64-disassem.s | 6 + gas/testsuite/gas/i386/x86-64-enqcmd-intel.d | 20 + gas/testsuite/gas/i386/x86-64-enqcmd-inval.l | 9 + gas/testsuite/gas/i386/x86-64-enqcmd-inval.s | 15 + gas/testsuite/gas/i386/x86-64-enqcmd.d | 20 + gas/testsuite/gas/i386/x86-64-enqcmd.s | 15 + gas/testsuite/gas/i386/x86-64-inval-avx512f.l | 6 + gas/testsuite/gas/i386/x86-64-inval-avx512f.s | 4 + gas/testsuite/gas/i386/x86-64-inval-avx512vl.l | 12 + gas/testsuite/gas/i386/x86-64-inval-avx512vl.s | 6 + gas/testsuite/gas/i386/x86-64-jump.d | 1 + gas/testsuite/gas/i386/x86-64-mpx-branch-1.d | 1 + gas/testsuite/gas/i386/x86-64-mpx-branch-2.d | 1 + gas/testsuite/gas/i386/x86-64-nop-3.d | 1 + gas/testsuite/gas/i386/x86-64-nop-4.d | 1 + gas/testsuite/gas/i386/x86-64-nop-5.d | 1 + gas/testsuite/gas/i386/x86-64-property-2.d | 10 + gas/testsuite/gas/i386/x86-64-relax-2.d | 1 + gas/testsuite/gas/i386/x86-64-relax-3.d | 1 + gas/testsuite/gas/i386/x86-64-vp2intersect-intel.d | 48 + .../gas/i386/x86-64-vp2intersect-inval-bcast.l | 13 + .../gas/i386/x86-64-vp2intersect-inval-bcast.s | 19 + gas/testsuite/gas/i386/x86-64-vp2intersect.d | 48 + gas/testsuite/gas/i386/x86-64-vp2intersect.s | 51 + gas/testsuite/gas/macros/semi.d | 1 - gas/testsuite/gas/mips/add.s | 2 - gas/testsuite/gas/mips/ase-errors-1.l | 4 + gas/testsuite/gas/mips/ase-errors-1.s | 12 + gas/testsuite/gas/mips/daddi.s | 3 +- gas/testsuite/gas/mips/elf_mach_i6400.d | 23 + gas/testsuite/gas/mips/elf_mach_i6500.d | 25 + gas/testsuite/gas/mips/elf_mach_p6600.d | 23 + gas/testsuite/gas/mips/eva.s | 13 + gas/testsuite/gas/mips/hwr-names.s | 11 + gas/testsuite/gas/mips/llpscp-32.d | 44 + gas/testsuite/gas/mips/llpscp-32.s | 23 + gas/testsuite/gas/mips/llpscp-64.d | 43 + gas/testsuite/gas/mips/llpscp-64.s | 23 + gas/testsuite/gas/mips/mips.exp | 17 +- gas/testsuite/gas/mips/mipsr6@add.d | 15 +- gas/testsuite/gas/mips/mipsr6@dadd.d | 21 + gas/testsuite/gas/mips/mipsr6@eva.d | 32 + gas/testsuite/gas/mips/mipsr6@hwr-names.d | 51 + gas/testsuite/gas/mips/pr14798-irix.d | 6 + gas/testsuite/gas/mips/pr14798.d | 5 + gas/testsuite/gas/mips/pr14798.s | 4 + gas/testsuite/gas/mips/r6-64-n32.d | 2 + gas/testsuite/gas/mips/r6-64-n64.d | 2 + gas/testsuite/gas/mips/r6-64.s | 4 +- gas/testsuite/gas/mips/r6-branch-constraints.l | 25 - gas/testsuite/gas/mips/r6-branch-constraints.s | 25 - gas/testsuite/gas/mips/r6-n32.d | 3 + gas/testsuite/gas/mips/r6-n64.d | 2 + gas/testsuite/gas/mips/r6-reg-constraints.l | 26 + gas/testsuite/gas/mips/r6-reg-constraints.s | 26 + gas/testsuite/gas/mips/r6.d | 2 + gas/testsuite/gas/mips/r6.s | 3 + gas/testsuite/gas/mmix/basep-7.d | 8 +- gas/testsuite/gas/msp430/either-data-bss-sym.d | 9 + gas/testsuite/gas/msp430/either-data-bss-sym.s | 24 + gas/testsuite/gas/msp430/fini-array.d | 7 + gas/testsuite/gas/msp430/fini-array.s | 22 + gas/testsuite/gas/msp430/init-array.d | 7 + gas/testsuite/gas/msp430/init-array.s | 22 + gas/testsuite/gas/msp430/low-data-bss-sym.d | 7 + gas/testsuite/gas/msp430/low-data-bss-sym.s | 24 + gas/testsuite/gas/msp430/msp430.exp | 12 +- gas/testsuite/gas/msp430/nop-unknown-intr-430.d | 14 + gas/testsuite/gas/msp430/nop-unknown-intr-430.l | 3 + .../gas/msp430/nop-unknown-intr-430x-ignore.d | 13 + gas/testsuite/gas/msp430/nop-unknown-intr-430x.d | 14 + gas/testsuite/gas/msp430/nop-unknown-intr-430x.l | 5 + gas/testsuite/gas/msp430/nop-unknown-intr.s | 16 + gas/testsuite/gas/msp430/preinit-array.d | 7 + gas/testsuite/gas/msp430/preinit-array.s | 22 + gas/testsuite/gas/ppc/476.d | 34 +- gas/testsuite/gas/ppc/a2.d | 61 +- gas/testsuite/gas/ppc/a2.s | 12 +- gas/testsuite/gas/ppc/bc.s | 154 + gas/testsuite/gas/ppc/bcat.d | 68 + gas/testsuite/gas/ppc/bcaterr.d | 3 + gas/testsuite/gas/ppc/bcaterr.l | 71 + gas/testsuite/gas/ppc/bcy.d | 49 + gas/testsuite/gas/ppc/bcyerr.d | 3 + gas/testsuite/gas/ppc/bcyerr.l | 58 + gas/testsuite/gas/ppc/booke.d | 8 +- gas/testsuite/gas/ppc/booke_xcoff.d | 2 +- gas/testsuite/gas/ppc/e500.d | 2 +- gas/testsuite/gas/ppc/e500mc.d | 4 +- gas/testsuite/gas/ppc/e6500.d | 4 +- gas/testsuite/gas/ppc/htm.d | 6 +- gas/testsuite/gas/ppc/power4.d | 2 +- gas/testsuite/gas/ppc/power6.d | 8 +- gas/testsuite/gas/ppc/power8.d | 136 +- gas/testsuite/gas/ppc/power8.s | 118 + gas/testsuite/gas/ppc/power9.d | 6 +- gas/testsuite/gas/ppc/power9.s | 2 - gas/testsuite/gas/ppc/ppc.exp | 18 + gas/testsuite/gas/ppc/prefix-align.d | 30 + gas/testsuite/gas/ppc/prefix-align.s | 21 + gas/testsuite/gas/ppc/prefix-pcrel.d | 235 + gas/testsuite/gas/ppc/prefix-pcrel.s | 121 + gas/testsuite/gas/ppc/prefix-reloc.d | 35 + gas/testsuite/gas/ppc/prefix-reloc.s | 13 + gas/testsuite/gas/ppc/vle.d | 4 +- gas/testsuite/gas/riscv/auipc-parsing.l | 2 + gas/testsuite/gas/riscv/auipc-parsing.s | 3 + gas/testsuite/gas/s12z/bit-manip-invalid.d | 6 +- gas/testsuite/gas/s12z/bit-manip-invalid.s | 4 + gas/testsuite/gas/s12z/dollar-hex.d | 16 + gas/testsuite/gas/s12z/dollar-hex.s | 4 + gas/testsuite/gas/s12z/reg-prefix.d | 17 + gas/testsuite/gas/s12z/reg-prefix.s | 6 + gas/testsuite/gas/s12z/s12z.exp | 6 + gas/testsuite/gas/s12z/truncated.d | 17 + gas/testsuite/gas/s12z/truncated.s | 3 + gas/testsuite/gas/xtensa/all.exp | 99 +- gas/testsuite/gas/xtensa/auto-litpools-first1.d | 6 +- gas/testsuite/gas/xtensa/auto-litpools-first2.d | 10 +- gas/testsuite/gas/xtensa/auto-litpools.d | 6 +- gas/testsuite/gas/xtensa/entry_align.d | 3 + gas/testsuite/gas/xtensa/entry_align.l | 2 + gas/testsuite/gas/xtensa/entry_misalign.d | 7 + gas/testsuite/gas/xtensa/entry_misalign2.d | 7 + gas/testsuite/gas/xtensa/j_too_far.d | 3 + gas/testsuite/gas/xtensa/j_too_far.l | 2 + gas/testsuite/gas/xtensa/loop-relax-2.d | 7 + gas/testsuite/gas/xtensa/loop-relax.d | 14 + gas/testsuite/gas/xtensa/loop-relax.s | 58 + gas/testsuite/gas/xtensa/loop_align.d | 7 + gas/testsuite/gas/xtensa/loop_misalign.d | 7 + .../gas/xtensa/text-section-literals-1a.d | 18 + gas/testsuite/gas/xtensa/text-section-literals-2.d | 9 + gas/testsuite/gas/xtensa/text-section-literals-2.s | 3 + .../gas/xtensa/text-section-literals-2a.d | 10 + gas/testsuite/gas/xtensa/text-section-literals-3.d | 11 + gas/testsuite/gas/xtensa/text-section-literals-3.s | 3 + gas/testsuite/gas/xtensa/text-section-literals-4.d | 9 + gas/testsuite/gas/xtensa/text-section-literals-4.s | 3 + .../gas/xtensa/text-section-literals-4a.d | 10 + gas/testsuite/gas/xtensa/trampoline-2.d | 4 + gas/testsuite/gas/xtensa/trampoline-2.l | 1 - gas/testsuite/gas/xtensa/xtensa-err.exp | 8 +- gas/write.c | 40 +- gas/write.h | 53 +- gdb/ChangeLog | 3860 +- gdb/MAINTAINERS | 2 + gdb/Makefile.in | 41 +- gdb/NEWS | 199 + gdb/aarch64-linux-nat.c | 36 + gdb/aarch64-tdep.c | 221 +- gdb/ada-exp.y | 49 +- gdb/ada-lang.c | 568 +- gdb/ada-lang.h | 9 +- gdb/ada-lex.l | 36 +- gdb/ada-tasks.c | 61 +- gdb/ada-typeprint.c | 5 +- gdb/ada-valprint.c | 63 +- gdb/alloc.c | 111 + gdb/amd64-linux-nat.c | 69 +- gdb/amd64-linux-tdep.c | 32 +- gdb/amd64-tdep.c | 67 +- gdb/annotate.c | 61 +- gdb/annotate.h | 10 +- gdb/arc-tdep.c | 26 +- gdb/arch-utils.c | 5 +- gdb/arm-linux-nat.c | 2 +- gdb/arm-tdep.c | 68 +- gdb/auto-load.c | 60 +- gdb/auxv.c | 35 +- gdb/ax-gdb.c | 4 +- gdb/break-catch-syscall.c | 25 +- gdb/break-catch-throw.c | 59 +- gdb/breakpoint.c | 181 +- gdb/breakpoint.h | 25 + gdb/btrace.c | 51 +- gdb/c-exp.y | 524 +- gdb/c-lang.c | 79 +- gdb/c-lang.h | 5 + gdb/c-varobj.c | 20 +- gdb/cli/cli-cmds.c | 167 +- gdb/cli/cli-decode.c | 95 +- gdb/cli/cli-decode.h | 6 +- gdb/cli/cli-dump.c | 2 +- gdb/cli/cli-interp.c | 64 +- gdb/cli/cli-interp.h | 16 +- gdb/cli/cli-logging.c | 47 +- gdb/cli/cli-option.c | 724 + gdb/cli/cli-option.h | 335 + gdb/cli/cli-script.c | 15 +- gdb/cli/cli-setshow.c | 306 +- gdb/cli/cli-setshow.h | 27 + gdb/cli/cli-style.c | 117 +- gdb/cli/cli-style.h | 21 +- gdb/cli/cli-utils.c | 124 +- gdb/cli/cli-utils.h | 62 +- gdb/coffread.c | 53 +- gdb/command.h | 57 +- gdb/common/common-defs.h | 16 +- gdb/common/common-exceptions.c | 209 +- gdb/common/common-exceptions.h | 213 +- gdb/common/common-utils.c | 72 - gdb/common/filestuff.c | 2 +- gdb/common/gdb_tilde_expand.c | 2 +- gdb/common/gdb_unique_ptr.h | 15 + gdb/common/netstuff.c | 4 - gdb/common/new-op.c | 7 +- gdb/common/pathstuff.c | 10 +- gdb/common/queue.h | 298 - gdb/common/scoped_mmap.c | 2 +- gdb/common/scoped_mmap.h | 2 - gdb/common/selftest.c | 7 +- gdb/common/tdesc.c | 1 + gdb/common/tdesc.h | 1 + gdb/compile/compile-c-symbols.c | 21 +- gdb/compile/compile-cplus-symbols.c | 14 +- gdb/compile/compile-cplus-types.c | 4 +- gdb/compile/compile-object-load.c | 5 +- gdb/compile/compile-object-run.c | 7 +- gdb/compile/compile.c | 215 +- gdb/completer.c | 167 +- gdb/completer.h | 28 +- gdb/configure | 166 +- gdb/configure.ac | 55 +- gdb/contrib/cc-with-tweaks.sh | 43 +- gdb/contrib/gdb-add-index.sh | 138 +- gdb/corelow.c | 16 +- gdb/cp-abi.c | 15 +- gdb/cp-support.c | 33 +- gdb/cp-valprint.c | 159 +- gdb/d-exp.y | 140 +- gdb/d-lang.c | 3 +- gdb/darwin-nat.c | 26 +- gdb/dbxread.c | 10 + gdb/dcache.h | 9 + gdb/defs.h | 12 - gdb/dictionary.c | 2 +- gdb/disasm-selftests.c | 5 +- gdb/disasm.c | 6 +- gdb/doc/ChangeLog | 159 + gdb/doc/Makefile.in | 2 +- gdb/doc/annotate.texinfo | 7 + gdb/doc/gdb.texinfo | 890 +- gdb/doc/guile.texi | 3 + gdb/doc/python.texi | 36 +- gdb/dtrace-probe.c | 45 +- gdb/dwarf-index-cache.c | 47 +- gdb/dwarf-index-write.c | 285 +- gdb/dwarf-index-write.h | 13 +- gdb/dwarf2-frame-tailcall.c | 5 +- gdb/dwarf2-frame.c | 50 +- gdb/dwarf2expr.c | 1 + gdb/dwarf2expr.h | 5 +- gdb/dwarf2loc.c | 35 +- gdb/dwarf2read.c | 415 +- gdb/dwarf2read.h | 44 +- gdb/elfread.c | 62 +- gdb/eval.c | 45 +- gdb/event-loop.c | 6 +- gdb/event-top.c | 47 +- gdb/exceptions.c | 20 +- gdb/exceptions.h | 10 +- gdb/exec.c | 26 +- gdb/expprint.c | 1 - gdb/expression.h | 13 +- gdb/f-exp.y | 135 +- gdb/f-lang.c | 333 +- gdb/f-typeprint.c | 143 +- gdb/f-valprint.c | 10 +- gdb/fbsd-tdep.c | 48 +- gdb/features/aarch64-fpu.c | 5 + gdb/features/aarch64-fpu.xml | 2 + gdb/features/aarch64-sve.c | 5 + gdb/fortran-operator.def | 27 + gdb/frame-unwind.c | 7 +- gdb/frame.c | 130 +- gdb/frame.h | 55 +- gdb/gdb_bfd.c | 2 +- gdb/gdbarch.c | 4 +- gdb/gdbarch.h | 6 +- gdb/gdbarch.sh | 4 +- gdb/gdbcmd.h | 9 +- gdb/gdbserver/ChangeLog | 156 +- gdb/gdbserver/Makefile.in | 16 +- gdb/gdbserver/ax.c | 4 + gdb/gdbserver/configure | 7 +- gdb/gdbserver/configure.ac | 2 +- gdb/gdbserver/debug.c | 54 +- gdb/gdbserver/debug.h | 19 +- gdb/gdbserver/gdbreplay.c | 32 +- gdb/gdbserver/hostio.c | 2 - gdb/gdbserver/linux-low.c | 85 +- gdb/gdbserver/linux-low.h | 8 + gdb/gdbserver/linux-ppc-low.c | 7 +- gdb/gdbserver/linux-s390-low.c | 2 +- gdb/gdbserver/linux-x86-low.c | 17 +- gdb/gdbserver/notif.c | 37 +- gdb/gdbserver/notif.h | 17 +- gdb/gdbserver/remote-utils.c | 13 +- gdb/gdbserver/server.c | 178 +- gdb/gdbserver/thread-db.c | 4 +- gdb/gdbserver/tracepoint.c | 4 +- gdb/gdbthread.h | 7 +- gdb/gdbtypes.c | 35 +- gdb/gdbtypes.h | 25 +- gdb/gnu-nat.c | 10 +- gdb/gnu-v3-abi.c | 7 +- gdb/gnulib/Makefile.in | 245 - gdb/gnulib/aclocal.m4 | 1411 - gdb/gnulib/configure |28595 ---- gdb/gnulib/configure.ac | 64 - gdb/gnulib/update-gnulib.sh | 195 - gdb/go-exp.y | 137 +- gdb/go-lang.c | 13 +- gdb/guile/guile-internal.h | 43 +- gdb/guile/guile.c | 4 +- gdb/guile/scm-block.c | 9 +- gdb/guile/scm-breakpoint.c | 73 +- gdb/guile/scm-cmd.c | 9 +- gdb/guile/scm-disasm.c | 9 +- gdb/guile/scm-exception.c | 8 +- gdb/guile/scm-frame.c | 168 +- gdb/guile/scm-lazy-string.c | 7 +- gdb/guile/scm-math.c | 7 +- gdb/guile/scm-param.c | 18 +- gdb/guile/scm-ports.c | 9 +- gdb/guile/scm-pretty-print.c | 24 +- gdb/guile/scm-safe-call.c | 2 +- gdb/guile/scm-symbol.c | 45 +- gdb/guile/scm-symtab.c | 9 +- gdb/guile/scm-type.c | 102 +- gdb/guile/scm-value.c | 128 +- gdb/hppa-tdep.c | 17 +- gdb/i386-linux-tdep.c | 5 +- gdb/i386-tdep.c | 87 +- gdb/ia64-tdep.c | 3 +- gdb/inf-loop.c | 7 +- gdb/infcall.c | 41 +- gdb/infcmd.c | 58 +- gdb/inferior.c | 6 +- gdb/inferior.h | 13 +- gdb/inflow.c | 86 +- gdb/inflow.h | 31 + gdb/infrun.c | 154 +- gdb/interps.c | 13 +- gdb/interps.h | 10 +- gdb/iq2000-tdep.c | 22 - gdb/jit.c | 5 +- gdb/language.c | 33 +- gdb/language.h | 23 +- gdb/linespec.c | 50 +- gdb/linux-fork.c | 8 +- gdb/linux-nat.c | 37 +- gdb/linux-tdep.c | 117 +- gdb/linux-thread-db.c | 116 +- gdb/lm32-tdep.c | 23 - gdb/location.h | 2 +- gdb/m2-exp.y | 122 +- gdb/m2-lang.c | 24 +- gdb/m32c-tdep.c | 36 +- gdb/m32r-tdep.c | 37 - gdb/m68hc11-tdep.c | 24 - gdb/main.c | 19 +- gdb/main.h | 3 + gdb/maint-test-options.c | 461 + gdb/maint-test-settings.c | 257 + gdb/maint.c | 49 +- gdb/maint.h | 7 +- gdb/mdebugread.c | 52 +- gdb/mep-tdep.c | 29 - gdb/mi/mi-cmd-break.c | 5 +- gdb/mi/mi-cmd-catch.c | 71 + gdb/mi/mi-cmd-stack.c | 37 +- gdb/mi/mi-cmds.c | 7 + gdb/mi/mi-cmds.h | 4 + gdb/mi/mi-common.h | 14 +- gdb/mi/mi-interp.c | 56 +- gdb/mi/mi-main.c | 69 +- gdb/mi/mi-main.h | 8 - gdb/mi/mi-out.c | 4 +- gdb/minsyms.c | 31 +- gdb/mips-tdep.c | 4 - gdb/mipsread.c | 2 +- gdb/mn10300-tdep.c | 32 +- gdb/moxie-tdep.c | 33 - gdb/msp430-tdep.c | 32 - gdb/nat/aarch64-sve-linux-ptrace.c | 92 +- gdb/nat/aarch64-sve-linux-ptrace.h | 12 +- gdb/nat/fork-inferior.c | 2 +- gdb/nat/linux-waitpid.c | 34 +- gdb/nds32-tdep.c | 77 +- gdb/nios2-tdep.c | 20 - gdb/nto-tdep.c | 37 +- gdb/nto-tdep.h | 4 +- gdb/objc-lang.c | 26 +- gdb/objfiles.c | 152 +- gdb/objfiles.h | 70 +- gdb/opencl-lang.c | 3 +- gdb/or1k-tdep.c | 9 - gdb/p-exp.y | 183 +- gdb/p-lang.c | 13 +- gdb/p-valprint.c | 5 +- gdb/parse.c | 596 +- gdb/parser-defs.h | 308 +- gdb/ppc-linux-nat.c | 58 +- gdb/ppc-linux-tdep.c | 5 +- gdb/printcmd.c | 135 +- gdb/probe.c | 28 +- gdb/probe.h | 2 +- gdb/process-stratum-target.h | 2 +- gdb/psympriv.h | 18 +- gdb/psymtab.c | 78 +- gdb/python/lib/gdb/command/prompt.py | 4 +- gdb/python/py-arch.c | 5 +- gdb/python/py-breakpoint.c | 66 +- gdb/python/py-cmd.c | 5 +- gdb/python/py-finishbreakpoint.c | 30 +- gdb/python/py-frame.c | 90 +- gdb/python/py-framefilter.c | 13 +- gdb/python/py-gdb-readline.c | 5 +- gdb/python/py-inferior.c | 70 +- gdb/python/py-infthread.c | 38 +- gdb/python/py-lazy-string.c | 5 +- gdb/python/py-linetable.c | 5 +- gdb/python/py-objfile.c | 10 +- gdb/python/py-param.c | 5 +- gdb/python/py-prettyprint.c | 25 +- gdb/python/py-progspace.c | 10 +- gdb/python/py-record-btrace.c | 20 +- gdb/python/py-record.c | 10 +- gdb/python/py-symbol.c | 25 +- gdb/python/py-type.c | 104 +- gdb/python/py-unwind.c | 20 +- gdb/python/py-utils.c | 9 +- gdb/python/py-value.c | 170 +- gdb/python/python-internal.h | 2 +- gdb/python/python.c | 40 +- gdb/record-btrace.c | 61 +- gdb/record-full.c | 26 +- gdb/record.c | 12 +- gdb/regcache.c | 7 - gdb/registry.h | 68 +- gdb/remote-fileio.c | 5 +- gdb/remote-notif.c | 27 +- gdb/remote-notif.h | 30 +- gdb/remote.c | 121 +- gdb/reverse.c | 4 +- gdb/riscv-tdep.c | 261 +- gdb/rl78-tdep.c | 9 - gdb/rs6000-aix-tdep.c | 5 +- gdb/rs6000-tdep.c | 32 +- gdb/rust-exp.y | 343 +- gdb/rust-lang.c | 36 +- gdb/rx-tdep.c | 38 +- gdb/s12z-tdep.c | 258 +- gdb/s390-tdep.c | 7 +- gdb/score-tdep.c | 23 - gdb/selftest-arch.c | 5 +- gdb/ser-tcp.c | 6 +- gdb/ser-unix.c | 4 + gdb/sh-tdep.c | 25 - gdb/solib-dsbt.c | 5 +- gdb/solib-frv.c | 5 +- gdb/solib-spu.c | 7 +- gdb/solib-svr4.c | 222 +- gdb/solib.c | 22 +- gdb/source-cache.c | 27 +- gdb/source.c | 95 +- gdb/source.h | 22 +- gdb/sparc-tdep.c | 9 - gdb/sparc64-linux-tdep.c | 5 +- gdb/spu-tdep.c | 10 +- gdb/stabsread.c | 17 +- gdb/stack.c | 777 +- gdb/stack.h | 5 + gdb/stap-probe.c | 196 +- gdb/stap-probe.h | 7 +- gdb/std-operator.def | 3 +- gdb/symfile-debug.c | 106 +- gdb/symfile-mem.c | 5 +- gdb/symfile.c | 44 +- gdb/symfile.h | 3 +- gdb/symmisc.c | 5 +- gdb/symtab.c | 142 +- gdb/target-dcache.c | 34 +- gdb/target-debug.h | 2 + gdb/target-delegates.c | 40 +- gdb/target-descriptions.c | 5 + gdb/target.c | 23 +- gdb/target.h | 13 +- gdb/target/waitstatus.c | 3 +- gdb/testsuite/ChangeLog | 761 +- gdb/testsuite/Makefile.in | 9 +- gdb/testsuite/README | 78 +- gdb/testsuite/boards/cc-with-debug-names.exp | 26 + gdb/testsuite/boards/cc-with-dwz-m.exp | 28 + gdb/testsuite/boards/cc-with-dwz.exp | 28 + gdb/testsuite/boards/cc-with-gdb-index.exp | 26 + gdb/testsuite/boards/cc-with-tweaks.exp | 9 + gdb/testsuite/boards/dwarf4-gdb-index.exp | 22 +- gdb/testsuite/boards/fission.exp | 8 +- gdb/testsuite/boards/local-board.exp | 2 +- gdb/testsuite/boards/readnow.exp | 27 + gdb/testsuite/gdb.ada/catch_ex_std.exp | 103 + gdb/testsuite/gdb.ada/catch_ex_std/foo.adb | 25 + .../gdb.ada/catch_ex_std/some_package.adb | 21 + .../gdb.ada/catch_ex_std/some_package.ads | 19 + gdb/testsuite/gdb.ada/char_enum.exp | 3 +- gdb/testsuite/gdb.ada/char_enum/foo.adb | 1 + gdb/testsuite/gdb.ada/char_enum/pck.ads | 1 + gdb/testsuite/gdb.ada/complete.exp | 5 +- gdb/testsuite/gdb.ada/formatted_ref.exp | 18 +- gdb/testsuite/gdb.ada/frame_arg_lang.exp | 73 + gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb | 22 + gdb/testsuite/gdb.ada/frame_arg_lang/foo.c | 22 + gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb | 24 + gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads | 18 + gdb/testsuite/gdb.ada/info_exc.exp | 4 + gdb/testsuite/gdb.ada/length_cond.exp | 44 + gdb/testsuite/gdb.ada/length_cond/length_cond.adb | 37 + gdb/testsuite/gdb.ada/length_cond/pck.adb | 21 + gdb/testsuite/gdb.ada/length_cond/pck.ads | 18 + gdb/testsuite/gdb.ada/packed_array_assign.exp | 8 + .../gdb.ada/packed_array_assign/aggregates.ads | 7 + gdb/testsuite/gdb.ada/ptype_union.c | 41 + gdb/testsuite/gdb.ada/ptype_union.exp | 34 + gdb/testsuite/gdb.ada/set_wstr.exp | 5 + gdb/testsuite/gdb.ada/vla.exp | 38 + gdb/testsuite/gdb.ada/vla/vla.adb | 62 + gdb/testsuite/gdb.arch/aarch64-pauth.c | 36 + gdb/testsuite/gdb.arch/aarch64-pauth.exp | 43 + .../gdb.arch/amd64-entry-value-paramref.S | 26 +- gdb/testsuite/gdb.arch/amd64-eval.cc | 138 + gdb/testsuite/gdb.arch/amd64-eval.exp | 45 + gdb/testsuite/gdb.arch/amd64-tailcall-self.S | 24 +- gdb/testsuite/gdb.arch/riscv-unwind-long-insn-6.s | 45 + gdb/testsuite/gdb.arch/riscv-unwind-long-insn-8.s | 45 + gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c | 25 + gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp | 61 + gdb/testsuite/gdb.base/align.exp | 30 +- gdb/testsuite/gdb.base/annota1.exp | 16 +- gdb/testsuite/gdb.base/annotate-symlink.exp | 51 + gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp | 7 + gdb/testsuite/gdb.base/callexit.exp | 7 + gdb/testsuite/gdb.base/completion.exp | 2 +- gdb/testsuite/gdb.base/complex-parts.c | 50 + gdb/testsuite/gdb.base/complex-parts.exp | 62 + .../gdb.base/coredump-filter-build-id.exp | 69 + gdb/testsuite/gdb.base/debug-expr.exp | 7 + gdb/testsuite/gdb.base/default.exp | 4 + gdb/testsuite/gdb.base/finish.exp | 16 + gdb/testsuite/gdb.base/foll-fork.exp | 7 + gdb/testsuite/gdb.base/foll-vfork.exp | 7 + .../gdb.base/fork-print-inferior-events.exp | 7 + gdb/testsuite/gdb.base/gdb-sigterm.exp | 7 + gdb/testsuite/gdb.base/gdbinit-history.exp | 6 + gdb/testsuite/gdb.base/help.exp | 7 +- gdb/testsuite/gdb.base/index-cache.exp | 50 +- gdb/testsuite/gdb.base/info-shared.exp | 26 + gdb/testsuite/gdb.base/list0.h | 4 +- gdb/testsuite/gdb.base/maint.exp | 7 +- gdb/testsuite/gdb.base/max-depth.c | 232 + gdb/testsuite/gdb.base/max-depth.exp | 168 + gdb/testsuite/gdb.base/options.c | 33 + gdb/testsuite/gdb.base/options.exp | 923 + gdb/testsuite/gdb.base/osabi.exp | 7 + gdb/testsuite/gdb.base/ptype-offsets.cc | 2 +- gdb/testsuite/gdb.base/ptype-offsets.exp | 501 +- gdb/testsuite/gdb.base/settings.c | 23 + gdb/testsuite/gdb.base/settings.exp | 556 + gdb/testsuite/gdb.base/shell.exp | 90 +- .../gdb.base/solib-probes-nosharedlibrary.c | 22 + .../gdb.base/solib-probes-nosharedlibrary.exp | 51 + gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp | 7 + gdb/testsuite/gdb.base/start-cpp.cc | 33 + gdb/testsuite/gdb.base/start-cpp.exp | 37 + gdb/testsuite/gdb.base/style-logging.exp | 71 + gdb/testsuite/gdb.base/style.exp | 46 +- gdb/testsuite/gdb.base/symfile-warn.c | 18 + gdb/testsuite/gdb.base/symfile-warn.exp | 30 + gdb/testsuite/gdb.base/ui-redirect.exp | 68 +- gdb/testsuite/gdb.base/watch_thread_num.c | 25 +- gdb/testsuite/gdb.btrace/reconnect.exp | 2 +- .../gdb.compile/compile-cplus-array-decay.exp | 2 +- gdb/testsuite/gdb.compile/compile.exp | 15 +- gdb/testsuite/gdb.cp/annota2.exp | 3 + gdb/testsuite/gdb.cp/annota3.exp | 2 +- gdb/testsuite/gdb.cp/constexpr-field.cc | 37 + gdb/testsuite/gdb.cp/constexpr-field.exp | 36 + gdb/testsuite/gdb.cp/many-args.cc | 76 + gdb/testsuite/gdb.cp/many-args.exp | 40 + gdb/testsuite/gdb.cp/meth-typedefs.cc | 13 + gdb/testsuite/gdb.cp/meth-typedefs.exp | 8 +- gdb/testsuite/gdb.cp/subtypes.exp | 3 +- gdb/testsuite/gdb.cp/temargs.cc | 23 + gdb/testsuite/gdb.cp/temargs.exp | 3 +- gdb/testsuite/gdb.dlang/watch-loc.c | 5 +- .../gdb.dwarf2/dw2-case-insensitive-debug.S | 2 +- gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp | 2 +- gdb/testsuite/gdb.dwarf2/dw2-ranges-main.c | 19 + gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c | 46 + gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp | 138 + gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S | 2 +- gdb/testsuite/gdb.dwarf2/gdb-add-index.exp | 74 + gdb/testsuite/gdb.dwarf2/gdb-index.exp | 15 + gdb/testsuite/gdb.dwarf2/nonvar-access.exp | 8 +- gdb/testsuite/gdb.fortran/block-data.exp | 63 + gdb/testsuite/gdb.fortran/block-data.f | 56 + gdb/testsuite/gdb.fortran/complex.exp | 39 +- gdb/testsuite/gdb.fortran/complex.f | 24 - gdb/testsuite/gdb.fortran/complex.f90 | 44 + gdb/testsuite/gdb.fortran/exprs.exp | 2 +- gdb/testsuite/gdb.fortran/intrinsics.exp | 35 + gdb/testsuite/gdb.fortran/max-depth.exp | 41 + gdb/testsuite/gdb.fortran/max-depth.f90 | 42 + gdb/testsuite/gdb.fortran/pointers.f90 | 80 + gdb/testsuite/gdb.fortran/print_type.exp | 114 + gdb/testsuite/gdb.fortran/printing-types.exp | 1 + gdb/testsuite/gdb.fortran/printing-types.f90 | 2 + gdb/testsuite/gdb.fortran/ptr-indentation.exp | 2 +- gdb/testsuite/gdb.fortran/ptype-on-functions.exp | 45 + gdb/testsuite/gdb.fortran/ptype-on-functions.f90 | 89 + gdb/testsuite/gdb.fortran/type-kinds.exp | 6 - gdb/testsuite/gdb.fortran/vla-datatypes.exp | 10 +- gdb/testsuite/gdb.fortran/vla-ptr-info.exp | 2 +- gdb/testsuite/gdb.fortran/vla-ptype.exp | 20 +- gdb/testsuite/gdb.fortran/vla-sizeof.exp | 23 +- gdb/testsuite/gdb.fortran/vla-type.exp | 27 +- gdb/testsuite/gdb.fortran/vla-value.exp | 14 +- gdb/testsuite/gdb.gdb/unittest.exp | 7 + gdb/testsuite/gdb.go/max-depth.exp | 40 + gdb/testsuite/gdb.go/max-depth.go | 41 + gdb/testsuite/gdb.guile/scm-cmd.exp | 4 +- gdb/testsuite/gdb.guile/scm-frame-args.exp | 4 +- gdb/testsuite/gdb.mi/mi-break.exp | 9 +- gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc | 73 + gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp | 200 + gdb/testsuite/gdb.mi/mi-complete.cc | 40 + gdb/testsuite/gdb.mi/mi-complete.exp | 72 + gdb/testsuite/gdb.mi/mi-vla-fortran.exp | 12 +- gdb/testsuite/gdb.mi/mi-watch.exp | 9 +- gdb/testsuite/gdb.mi/new-ui-mi-sync.exp | 6 + .../gdb.mi/user-selected-context-sync.exp | 6 + gdb/testsuite/gdb.modula2/max-depth.c | 45 + gdb/testsuite/gdb.modula2/max-depth.exp | 37 + gdb/testsuite/gdb.multi/remove-inferiors.exp | 5 +- gdb/testsuite/gdb.multi/tids.exp | 16 +- gdb/testsuite/gdb.python/py-cmd.exp | 2 +- gdb/testsuite/gdb.python/py-format-string.exp | 21 + gdb/testsuite/gdb.python/py-frame-args.exp | 4 +- gdb/testsuite/gdb.python/py-function.exp | 8 +- .../gdb.python/py-mi-var-info-path-expression.exp | 3 + gdb/testsuite/gdb.python/py-nested-maps.c | 130 + gdb/testsuite/gdb.python/py-nested-maps.exp | 238 + gdb/testsuite/gdb.python/py-nested-maps.py | 135 + gdb/testsuite/gdb.python/py-thrhandle.exp | 68 +- gdb/testsuite/gdb.python/py-type.exp | 4 + gdb/testsuite/gdb.python/py-value.exp | 13 + gdb/testsuite/gdb.python/python.exp | 5 +- gdb/testsuite/gdb.rust/simple.exp | 3 + gdb/testsuite/gdb.rust/simple.rs | 8 + gdb/testsuite/gdb.server/sysroot.c | 25 + gdb/testsuite/gdb.server/sysroot.exp | 77 + gdb/testsuite/gdb.threads/check-libthread-db.exp | 7 + .../signal-while-stepping-over-bp-other-thread.exp | 6 + gdb/testsuite/gdb.threads/stepi-random-signal.exp | 7 + .../gdb.threads/vfork-follow-child-exec.c | 66 + .../gdb.threads/vfork-follow-child-exec.exp | 64 + .../gdb.threads/vfork-follow-child-exit.c | 52 + .../gdb.threads/vfork-follow-child-exit.exp | 60 + gdb/testsuite/gdb.trace/backtrace.exp | 2 +- gdb/testsuite/gdb.trace/circ.exp | 2 +- gdb/testsuite/gdb.trace/collection.exp | 2 +- gdb/testsuite/gdb.trace/ftrace.exp | 2 +- gdb/testsuite/gdb.trace/mi-trace-unavailable.exp | 2 +- gdb/testsuite/gdb.trace/mi-traceframe-changed.exp | 2 +- gdb/testsuite/gdb.trace/qtro.exp | 2 +- gdb/testsuite/gdb.trace/read-memory.exp | 2 +- gdb/testsuite/gdb.trace/report.exp | 2 +- gdb/testsuite/gdb.trace/tfile.exp | 2 +- gdb/testsuite/gdb.trace/tfind.exp | 2 +- gdb/testsuite/gdb.trace/tracecmd.exp | 2 +- gdb/testsuite/gdb.trace/tspeed.exp | 5 + gdb/testsuite/gdb.trace/unavailable.exp | 2 +- gdb/testsuite/lib/ada.exp | 27 + gdb/testsuite/lib/completion-support.exp | 66 +- gdb/testsuite/lib/dwarf.exp | 12 +- gdb/testsuite/lib/future.exp | 10 + gdb/testsuite/lib/gdb-utils.exp | 20 + gdb/testsuite/lib/gdb.exp | 358 +- gdb/testsuite/lib/gdbserver-support.exp | 106 +- gdb/testsuite/lib/mi-support.exp | 11 +- gdb/testsuite/lib/opencl.exp | 2 +- gdb/thread.c | 310 +- gdb/tic6x-tdep.c | 22 - gdb/tid-parse.c | 16 +- gdb/tid-parse.h | 3 + gdb/tilegx-tdep.c | 26 - gdb/top.c | 156 +- gdb/top.h | 1 - gdb/tracefile-tfile.c | 7 +- gdb/tracepoint.c | 6 +- gdb/trad-frame.c | 21 +- gdb/trad-frame.h | 3 + gdb/tui/tui-data.c | 61 +- gdb/tui/tui-interp.c | 1 + gdb/tui/tui-io.c | 2 +- gdb/tui/tui-layout.c | 4 +- gdb/tui/tui-regs.c | 15 +- gdb/tui/tui-source.c | 4 +- gdb/tui/tui-stack.c | 7 +- gdb/tui/tui-win.c | 76 +- gdb/tui/tui-windata.c | 5 +- gdb/tui/tui-wingeneral.c | 20 +- gdb/tui/tui-winsource.c | 7 +- gdb/tui/tui.c | 5 +- gdb/type-stack.c | 209 + gdb/type-stack.h | 203 + gdb/typeprint.c | 41 +- gdb/ui-file.c | 114 +- gdb/ui-file.h | 59 +- gdb/ui-out.h | 7 +- gdb/ui-style.h | 4 +- gdb/unittests/cli-utils-selftests.c | 141 +- gdb/unittests/parse-connection-spec-selftests.c | 9 +- gdb/user-regs.c | 2 +- gdb/utils.c | 106 +- gdb/utils.h | 10 +- gdb/v850-tdep.c | 25 - gdb/valarith.c | 5 - gdb/valops.c | 25 +- gdb/valprint.c | 323 +- gdb/valprint.h | 35 +- gdb/value.c | 80 +- gdb/value.h | 4 + gdb/varobj.c | 39 +- gdb/vax-tdep.c | 7 - gdb/warning.m4 | 5 +- gdb/windows-nat.c | 20 +- gdb/x86-linux-nat.c | 7 +- gdb/xcoffread.c | 68 +- gdb/xml-support.c | 23 +- gdb/xstormy16-tdep.c | 23 - gnulib/ChangeLog | 6 + gnulib/Makefile.in | 245 + gnulib/README | 6 + {gdb/gnulib => gnulib}/aclocal-m4-deps.mk | 0 gnulib/aclocal.m4 | 1851 + {gdb/gnulib => gnulib}/config.in | 0 gnulib/configure |28939 ++++ gnulib/configure.ac | 66 + {gdb/gnulib => gnulib}/import/Makefile.am | 0 {gdb/gnulib => gnulib}/import/Makefile.in | 0 {gdb/gnulib => gnulib}/import/alloca.c | 0 {gdb/gnulib => gnulib}/import/alloca.in.h | 0 {gdb/gnulib => gnulib}/import/arpa_inet.in.h | 0 {gdb/gnulib => gnulib}/import/assure.h | 0 {gdb/gnulib => gnulib}/import/at-func.c | 0 {gdb/gnulib => gnulib}/import/basename-lgpl.c | 0 {gdb/gnulib => gnulib}/import/canonicalize-lgpl.c | 0 {gdb/gnulib => gnulib}/import/chdir-long.c | 0 {gdb/gnulib => gnulib}/import/chdir-long.h | 0 {gdb/gnulib => gnulib}/import/cloexec.c | 0 {gdb/gnulib => gnulib}/import/cloexec.h | 0 {gdb/gnulib => gnulib}/import/close.c | 0 {gdb/gnulib => gnulib}/import/closedir.c | 0 {gdb/gnulib => gnulib}/import/config.charset | 0 {gdb/gnulib => gnulib}/import/dirent-private.h | 0 {gdb/gnulib => gnulib}/import/dirent.in.h | 0 {gdb/gnulib => gnulib}/import/dirfd.c | 0 {gdb/gnulib => gnulib}/import/dirname-lgpl.c | 0 {gdb/gnulib => gnulib}/import/dirname.h | 0 {gdb/gnulib => gnulib}/import/dosname.h | 0 {gdb/gnulib => gnulib}/import/dup-safer.c | 0 {gdb/gnulib => gnulib}/import/dup.c | 0 {gdb/gnulib => gnulib}/import/dup2.c | 0 {gdb/gnulib => gnulib}/import/errno.in.h | 0 {gdb/gnulib => gnulib}/import/error.c | 0 {gdb/gnulib => gnulib}/import/error.h | 0 {gdb/gnulib => gnulib}/import/exitfail.c | 0 {gdb/gnulib => gnulib}/import/exitfail.h | 0 .../import/extra/snippet/_Noreturn.h | 0 .../import/extra/snippet/arg-nonnull.h | 0 .../import/extra/snippet/c++defs.h | 0 .../import/extra/snippet/warn-on-use.h | 0 .../import/extra/update-copyright | 0 {gdb/gnulib => gnulib}/import/fchdir.c | 0 {gdb/gnulib => gnulib}/import/fcntl.c | 0 {gdb/gnulib => gnulib}/import/fcntl.in.h | 0 {gdb/gnulib => gnulib}/import/fd-hook.c | 0 {gdb/gnulib => gnulib}/import/fd-hook.h | 0 {gdb/gnulib => gnulib}/import/fd-safer.c | 0 {gdb/gnulib => gnulib}/import/fdopendir.c | 0 {gdb/gnulib => gnulib}/import/filename.h | 0 {gdb/gnulib => gnulib}/import/filenamecat-lgpl.c | 0 {gdb/gnulib => gnulib}/import/filenamecat.h | 0 {gdb/gnulib => gnulib}/import/flexmember.h | 0 {gdb/gnulib => gnulib}/import/float+.h | 0 {gdb/gnulib => gnulib}/import/float.c | 0 {gdb/gnulib => gnulib}/import/float.in.h | 0 {gdb/gnulib => gnulib}/import/fnmatch.c | 0 {gdb/gnulib => gnulib}/import/fnmatch.in.h | 0 {gdb/gnulib => gnulib}/import/fnmatch_loop.c | 0 {gdb/gnulib => gnulib}/import/fpucw.h | 0 {gdb/gnulib => gnulib}/import/frexp.c | 0 {gdb/gnulib => gnulib}/import/frexpl.c | 0 {gdb/gnulib => gnulib}/import/fstat.c | 0 {gdb/gnulib => gnulib}/import/fstatat.c | 0 {gdb/gnulib => gnulib}/import/getcwd-lgpl.c | 0 {gdb/gnulib => gnulib}/import/getcwd.c | 0 {gdb/gnulib => gnulib}/import/getdtablesize.c | 0 {gdb/gnulib => gnulib}/import/getlogin_r.c | 0 {gdb/gnulib => gnulib}/import/getprogname.c | 0 {gdb/gnulib => gnulib}/import/getprogname.h | 0 {gdb/gnulib => gnulib}/import/gettext.h | 0 {gdb/gnulib => gnulib}/import/gettimeofday.c | 0 {gdb/gnulib => gnulib}/import/glob-libc.h | 0 {gdb/gnulib => gnulib}/import/glob.c | 0 {gdb/gnulib => gnulib}/import/glob.in.h | 0 {gdb/gnulib => gnulib}/import/hard-locale.c | 0 {gdb/gnulib => gnulib}/import/hard-locale.h | 0 {gdb/gnulib => gnulib}/import/inet_ntop.c | 0 {gdb/gnulib => gnulib}/import/intprops.h | 0 {gdb/gnulib => gnulib}/import/inttypes.in.h | 0 {gdb/gnulib => gnulib}/import/isnan.c | 0 {gdb/gnulib => gnulib}/import/isnand-nolibm.h | 0 {gdb/gnulib => gnulib}/import/isnand.c | 0 {gdb/gnulib => gnulib}/import/isnanl-nolibm.h | 0 {gdb/gnulib => gnulib}/import/isnanl.c | 0 {gdb/gnulib => gnulib}/import/itold.c | 0 {gdb/gnulib => gnulib}/import/limits.in.h | 0 {gdb/gnulib => gnulib}/import/localcharset.c | 0 {gdb/gnulib => gnulib}/import/localcharset.h | 0 {gdb/gnulib => gnulib}/import/lstat.c | 0 {gdb/gnulib => gnulib}/import/m4/00gnulib.m4 | 0 .../gnulib => gnulib}/import/m4/absolute-header.m4 | 0 {gdb/gnulib => gnulib}/import/m4/alloca.m4 | 0 {gdb/gnulib => gnulib}/import/m4/arpa_inet_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/canonicalize.m4 | 0 {gdb/gnulib => gnulib}/import/m4/chdir-long.m4 | 0 {gdb/gnulib => gnulib}/import/m4/close.m4 | 0 {gdb/gnulib => gnulib}/import/m4/closedir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/codeset.m4 | 0 {gdb/gnulib => gnulib}/import/m4/configmake.m4 | 0 {gdb/gnulib => gnulib}/import/m4/d-ino.m4 | 0 {gdb/gnulib => gnulib}/import/m4/d-type.m4 | 0 {gdb/gnulib => gnulib}/import/m4/dirent_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/dirfd.m4 | 0 {gdb/gnulib => gnulib}/import/m4/dirname.m4 | 0 .../import/m4/double-slash-root.m4 | 0 {gdb/gnulib => gnulib}/import/m4/dup.m4 | 0 {gdb/gnulib => gnulib}/import/m4/dup2.m4 | 0 {gdb/gnulib => gnulib}/import/m4/eealloc.m4 | 0 {gdb/gnulib => gnulib}/import/m4/environ.m4 | 0 {gdb/gnulib => gnulib}/import/m4/errno_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/error.m4 | 0 {gdb/gnulib => gnulib}/import/m4/exponentd.m4 | 0 {gdb/gnulib => gnulib}/import/m4/exponentl.m4 | 0 {gdb/gnulib => gnulib}/import/m4/extensions.m4 | 0 {gdb/gnulib => gnulib}/import/m4/extern-inline.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fchdir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fcntl-o.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fcntl.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fcntl_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fdopendir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/filenamecat.m4 | 0 {gdb/gnulib => gnulib}/import/m4/flexmember.m4 | 0 {gdb/gnulib => gnulib}/import/m4/float_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fnmatch.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fpieee.m4 | 0 {gdb/gnulib => gnulib}/import/m4/frexp.m4 | 0 {gdb/gnulib => gnulib}/import/m4/frexpl.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fstat.m4 | 0 {gdb/gnulib => gnulib}/import/m4/fstatat.m4 | 0 .../import/m4/getcwd-abort-bug.m4 | 0 .../gnulib => gnulib}/import/m4/getcwd-path-max.m4 | 0 {gdb/gnulib => gnulib}/import/m4/getcwd.m4 | 0 {gdb/gnulib => gnulib}/import/m4/getdtablesize.m4 | 0 {gdb/gnulib => gnulib}/import/m4/getlogin_r.m4 | 0 {gdb/gnulib => gnulib}/import/m4/getprogname.m4 | 0 {gdb/gnulib => gnulib}/import/m4/gettimeofday.m4 | 0 {gdb/gnulib => gnulib}/import/m4/glibc21.m4 | 0 {gdb/gnulib => gnulib}/import/m4/glob.m4 | 0 {gdb/gnulib => gnulib}/import/m4/gnulib-cache.m4 | 0 {gdb/gnulib => gnulib}/import/m4/gnulib-common.m4 | 0 {gdb/gnulib => gnulib}/import/m4/gnulib-comp.m4 | 0 {gdb/gnulib => gnulib}/import/m4/gnulib-tool.m4 | 0 {gdb/gnulib => gnulib}/import/m4/hard-locale.m4 | 0 {gdb/gnulib => gnulib}/import/m4/include_next.m4 | 0 {gdb/gnulib => gnulib}/import/m4/inet_ntop.m4 | 0 {gdb/gnulib => gnulib}/import/m4/inttypes-pri.m4 | 0 {gdb/gnulib => gnulib}/import/m4/inttypes.m4 | 0 {gdb/gnulib => gnulib}/import/m4/isnand.m4 | 0 {gdb/gnulib => gnulib}/import/m4/isnanl.m4 | 0 {gdb/gnulib => gnulib}/import/m4/largefile.m4 | 0 {gdb/gnulib => gnulib}/import/m4/limits-h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/localcharset.m4 | 0 {gdb/gnulib => gnulib}/import/m4/locale-fr.m4 | 0 {gdb/gnulib => gnulib}/import/m4/locale-ja.m4 | 0 {gdb/gnulib => gnulib}/import/m4/locale-zh.m4 | 0 {gdb/gnulib => gnulib}/import/m4/longlong.m4 | 0 {gdb/gnulib => gnulib}/import/m4/lstat.m4 | 0 {gdb/gnulib => gnulib}/import/m4/malloc.m4 | 0 {gdb/gnulib => gnulib}/import/m4/malloca.m4 | 0 {gdb/gnulib => gnulib}/import/m4/math_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mbrtowc.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mbsinit.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mbsrtowcs.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mbstate_t.m4 | 0 {gdb/gnulib => gnulib}/import/m4/memchr.m4 | 0 {gdb/gnulib => gnulib}/import/m4/memmem.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mempcpy.m4 | 0 {gdb/gnulib => gnulib}/import/m4/memrchr.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mkdir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mkdtemp.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mkostemp.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mmap-anon.m4 | 0 {gdb/gnulib => gnulib}/import/m4/mode_t.m4 | 0 {gdb/gnulib => gnulib}/import/m4/msvc-inval.m4 | 0 {gdb/gnulib => gnulib}/import/m4/msvc-nothrow.m4 | 0 {gdb/gnulib => gnulib}/import/m4/multiarch.m4 | 0 {gdb/gnulib => gnulib}/import/m4/netinet_in_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/nocrash.m4 | 0 {gdb/gnulib => gnulib}/import/m4/off_t.m4 | 0 {gdb/gnulib => gnulib}/import/m4/onceonly.m4 | 0 {gdb/gnulib => gnulib}/import/m4/open.m4 | 0 {gdb/gnulib => gnulib}/import/m4/openat.m4 | 0 {gdb/gnulib => gnulib}/import/m4/opendir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/pathmax.m4 | 0 {gdb/gnulib => gnulib}/import/m4/rawmemchr.m4 | 0 {gdb/gnulib => gnulib}/import/m4/readdir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/readlink.m4 | 0 {gdb/gnulib => gnulib}/import/m4/realloc.m4 | 0 {gdb/gnulib => gnulib}/import/m4/rename.m4 | 0 {gdb/gnulib => gnulib}/import/m4/rewinddir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/rmdir.m4 | 0 {gdb/gnulib => gnulib}/import/m4/save-cwd.m4 | 0 {gdb/gnulib => gnulib}/import/m4/secure_getenv.m4 | 0 {gdb/gnulib => gnulib}/import/m4/setenv.m4 | 0 {gdb/gnulib => gnulib}/import/m4/signal_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/socklen.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sockpfaf.m4 | 0 {gdb/gnulib => gnulib}/import/m4/ssize_t.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stat.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stdalign.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stdbool.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stddef_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stdint.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stdio_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/stdlib_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/strchrnul.m4 | 0 {gdb/gnulib => gnulib}/import/m4/strdup.m4 | 0 {gdb/gnulib => gnulib}/import/m4/strerror.m4 | 0 {gdb/gnulib => gnulib}/import/m4/string_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/strstr.m4 | 0 {gdb/gnulib => gnulib}/import/m4/strtok_r.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sys_socket_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sys_stat_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sys_time_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sys_types_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/sys_uio_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/tempname.m4 | 0 {gdb/gnulib => gnulib}/import/m4/time_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/unistd-safer.m4 | 0 {gdb/gnulib => gnulib}/import/m4/unistd_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/warn-on-use.m4 | 0 {gdb/gnulib => gnulib}/import/m4/wchar_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/wchar_t.m4 | 0 {gdb/gnulib => gnulib}/import/m4/wctype_h.m4 | 0 {gdb/gnulib => gnulib}/import/m4/wint_t.m4 | 0 {gdb/gnulib => gnulib}/import/malloc.c | 0 {gdb/gnulib => gnulib}/import/malloca.c | 0 {gdb/gnulib => gnulib}/import/malloca.h | 0 {gdb/gnulib => gnulib}/import/malloca.valgrind | 0 {gdb/gnulib => gnulib}/import/math.c | 0 {gdb/gnulib => gnulib}/import/math.in.h | 0 {gdb/gnulib => gnulib}/import/mbrtowc.c | 0 {gdb/gnulib => gnulib}/import/mbsinit.c | 0 {gdb/gnulib => gnulib}/import/mbsrtowcs-impl.h | 0 {gdb/gnulib => gnulib}/import/mbsrtowcs-state.c | 0 {gdb/gnulib => gnulib}/import/mbsrtowcs.c | 0 {gdb/gnulib => gnulib}/import/memchr.c | 0 {gdb/gnulib => gnulib}/import/memchr.valgrind | 0 {gdb/gnulib => gnulib}/import/memmem.c | 0 {gdb/gnulib => gnulib}/import/mempcpy.c | 0 {gdb/gnulib => gnulib}/import/memrchr.c | 0 {gdb/gnulib => gnulib}/import/mkdir.c | 0 {gdb/gnulib => gnulib}/import/mkdtemp.c | 0 {gdb/gnulib => gnulib}/import/mkostemp.c | 0 {gdb/gnulib => gnulib}/import/msvc-inval.c | 0 {gdb/gnulib => gnulib}/import/msvc-inval.h | 0 {gdb/gnulib => gnulib}/import/msvc-nothrow.c | 0 {gdb/gnulib => gnulib}/import/msvc-nothrow.h | 0 {gdb/gnulib => gnulib}/import/netinet_in.in.h | 0 {gdb/gnulib => gnulib}/import/open.c | 0 {gdb/gnulib => gnulib}/import/openat-die.c | 0 {gdb/gnulib => gnulib}/import/openat-priv.h | 0 {gdb/gnulib => gnulib}/import/openat-proc.c | 0 {gdb/gnulib => gnulib}/import/openat.c | 0 {gdb/gnulib => gnulib}/import/openat.h | 0 {gdb/gnulib => gnulib}/import/opendir.c | 0 {gdb/gnulib => gnulib}/import/pathmax.h | 0 {gdb/gnulib => gnulib}/import/pipe-safer.c | 0 {gdb/gnulib => gnulib}/import/rawmemchr.c | 0 {gdb/gnulib => gnulib}/import/rawmemchr.valgrind | 0 {gdb/gnulib => gnulib}/import/readdir.c | 0 {gdb/gnulib => gnulib}/import/readlink.c | 0 {gdb/gnulib => gnulib}/import/realloc.c | 0 {gdb/gnulib => gnulib}/import/ref-add.sin | 0 {gdb/gnulib => gnulib}/import/ref-del.sin | 0 {gdb/gnulib => gnulib}/import/rename.c | 0 {gdb/gnulib => gnulib}/import/rewinddir.c | 0 {gdb/gnulib => gnulib}/import/rmdir.c | 0 {gdb/gnulib => gnulib}/import/same-inode.h | 0 {gdb/gnulib => gnulib}/import/save-cwd.c | 0 {gdb/gnulib => gnulib}/import/save-cwd.h | 0 {gdb/gnulib => gnulib}/import/secure_getenv.c | 0 {gdb/gnulib => gnulib}/import/setenv.c | 0 {gdb/gnulib => gnulib}/import/signal.in.h | 0 {gdb/gnulib => gnulib}/import/stat.c | 0 {gdb/gnulib => gnulib}/import/stdalign.in.h | 0 {gdb/gnulib => gnulib}/import/stdbool.in.h | 0 {gdb/gnulib => gnulib}/import/stddef.in.h | 0 {gdb/gnulib => gnulib}/import/stdint.in.h | 0 {gdb/gnulib => gnulib}/import/stdio.in.h | 0 {gdb/gnulib => gnulib}/import/stdlib.in.h | 0 {gdb/gnulib => gnulib}/import/str-two-way.h | 0 {gdb/gnulib => gnulib}/import/strchrnul.c | 0 {gdb/gnulib => gnulib}/import/strchrnul.valgrind | 0 {gdb/gnulib => gnulib}/import/strdup.c | 0 {gdb/gnulib => gnulib}/import/streq.h | 0 {gdb/gnulib => gnulib}/import/strerror-override.c | 0 {gdb/gnulib => gnulib}/import/strerror-override.h | 0 {gdb/gnulib => gnulib}/import/strerror.c | 0 {gdb/gnulib => gnulib}/import/string.in.h | 0 {gdb/gnulib => gnulib}/import/stripslash.c | 0 {gdb/gnulib => gnulib}/import/strnlen1.c | 0 {gdb/gnulib => gnulib}/import/strnlen1.h | 0 {gdb/gnulib => gnulib}/import/strstr.c | 0 {gdb/gnulib => gnulib}/import/strtok_r.c | 0 {gdb/gnulib => gnulib}/import/sys_socket.c | 0 {gdb/gnulib => gnulib}/import/sys_socket.in.h | 0 {gdb/gnulib => gnulib}/import/sys_stat.in.h | 0 {gdb/gnulib => gnulib}/import/sys_time.in.h | 0 {gdb/gnulib => gnulib}/import/sys_types.in.h | 0 {gdb/gnulib => gnulib}/import/sys_uio.in.h | 0 {gdb/gnulib => gnulib}/import/tempname.c | 0 {gdb/gnulib => gnulib}/import/tempname.h | 0 {gdb/gnulib => gnulib}/import/time.in.h | 0 {gdb/gnulib => gnulib}/import/unistd--.h | 0 {gdb/gnulib => gnulib}/import/unistd-safer.h | 0 {gdb/gnulib => gnulib}/import/unistd.c | 0 {gdb/gnulib => gnulib}/import/unistd.in.h | 0 {gdb/gnulib => gnulib}/import/unsetenv.c | 0 {gdb/gnulib => gnulib}/import/verify.h | 0 {gdb/gnulib => gnulib}/import/wchar.in.h | 0 {gdb/gnulib => gnulib}/import/wctype-h.c | 0 {gdb/gnulib => gnulib}/import/wctype.in.h | 0 ...23558-Use-system-s-getcwd-when-cross-comp.patch | 0 ...ostemps-Fix-compilation-error-in-C-mode-o.patch | 0 gnulib/update-gnulib.sh | 195 + gold/ChangeLog | 27 + gold/errors.h | 1 + gold/gc.h | 3 +- gold/icf.cc | 270 +- gold/icf.h | 30 + gold/options.h | 2 +- gold/testsuite/Makefile.am | 10 + gold/testsuite/Makefile.in | 19 +- gold/testsuite/icf_test_pr21066.cc | 67 + gold/testsuite/icf_test_pr21066.sh | 48 + gprof/ChangeLog | 17 + gprof/corefile.c | 2 + gprof/gprof.c | 6 +- gprof/gprof.texi | 2 +- gprof/po/de.po | 170 +- include/ChangeLog | 331 + include/bfdlink.h | 21 - include/ctf-api.h | 385 + include/ctf.h | 564 + include/dis-asm.h | 2 + include/elf/aarch64.h | 9 + include/elf/arm.h | 7 +- include/elf/bpf.h | 45 + include/elf/common.h | 1 + include/elf/ppc64.h | 24 + include/longlong.h | 6 +- include/opcode/aarch64.h | 23 + include/opcode/arm.h | 8 + include/opcode/mips.h | 13 +- include/opcode/ppc.h | 18 + ld/ChangeLog | 849 + ld/Makefile.am | 1569 +- ld/Makefile.in | 1569 +- ld/NEWS | 12 +- ld/configure | 70 +- ld/configure.ac | 20 +- ld/configure.tgt | 2 +- ld/emulparams/aarch64cloudabib.sh | 2 +- ld/emulparams/aarch64elf32b.sh | 2 +- ld/emulparams/aarch64elfb.sh | 2 +- ld/emulparams/aarch64fbsdb.sh | 2 +- ld/emulparams/aarch64linux32b.sh | 2 +- ld/emulparams/aarch64linuxb.sh | 2 +- ld/emulparams/arcelf.sh | 2 +- ld/emulparams/arcelf_prof.sh | 2 +- ld/emulparams/arclinux.sh | 2 +- ld/emulparams/arclinux_nps.sh | 4 +- ld/emulparams/arclinux_prof.sh | 2 +- ld/emulparams/arcv2elf.sh | 2 +- ld/emulparams/arcv2elfx.sh | 2 +- ld/emulparams/armelf_fbsd.sh | 4 +- ld/emulparams/armelf_linux_eabi.sh | 2 +- ld/emulparams/armelf_linux_fdpiceabi.sh | 2 +- ld/emulparams/armelf_nacl.sh | 4 +- ld/emulparams/armelf_nbsd.sh | 2 +- ld/emulparams/armelf_vxworks.sh | 4 +- ld/emulparams/armelfb.sh | 2 +- ld/emulparams/armelfb_fbsd.sh | 2 +- ld/emulparams/armelfb_fuchsia.sh | 2 +- ld/emulparams/armelfb_linux.sh | 2 +- ld/emulparams/armelfb_linux_eabi.sh | 2 +- ld/emulparams/armelfb_linux_fdpiceabi.sh | 2 +- ld/emulparams/armelfb_nacl.sh | 2 +- ld/emulparams/armelfb_nbsd.sh | 2 +- ld/emulparams/armsymbian.sh | 2 +- ld/emulparams/call_nop.sh | 16 +- ld/emulparams/cet.sh | 25 +- ld/emulparams/cskyelf.sh | 3 +- ld/emulparams/cskyelf_linux.sh | 35 +- ld/emulparams/elf32_sparc_sol2.sh | 4 +- ld/emulparams/elf32_sparc_vxworks.sh | 4 +- ld/emulparams/elf32_tic6x_be.sh | 2 +- ld/emulparams/elf32_tic6x_elf_be.sh | 2 +- ld/emulparams/elf32_tic6x_elf_le.sh | 2 +- ld/emulparams/elf32_tic6x_linux_be.sh | 2 +- ld/emulparams/elf32_tic6x_linux_le.sh | 2 +- ld/emulparams/elf32_x86_64.sh | 13 +- ld/emulparams/elf32_x86_64_nacl.sh | 4 +- ld/emulparams/elf32b4300.sh | 2 +- ld/emulparams/elf32bfinfd.sh | 2 +- ld/emulparams/elf32bmipn32.sh | 2 +- ld/emulparams/elf32bsmip.sh | 2 +- ld/emulparams/elf32btsmip.sh | 2 +- ld/emulparams/elf32btsmip_fbsd.sh | 4 +- ld/emulparams/elf32btsmipn32.sh | 2 +- ld/emulparams/elf32btsmipn32_fbsd.sh | 4 +- ld/emulparams/elf32ebmip.sh | 2 +- ld/emulparams/elf32ebmipvxworks.sh | 4 +- ld/emulparams/elf32elmip.sh | 2 +- ld/emulparams/elf32elmipvxworks.sh | 4 +- ld/emulparams/elf32frvfd.sh | 2 +- ld/emulparams/elf32l4300.sh | 2 +- ld/emulparams/elf32lm32fd.sh | 2 +- ld/emulparams/elf32lmip.sh | 2 +- ld/emulparams/elf32lppc.sh | 2 +- ld/emulparams/elf32lppclinux.sh | 2 +- ld/emulparams/elf32lppcnto.sh | 2 +- ld/emulparams/elf32lppcsim.sh | 2 +- ld/emulparams/elf32lr5900.sh | 2 +- ld/emulparams/elf32lr5900n32.sh | 2 +- ld/emulparams/elf32lriscv.sh | 2 +- ld/emulparams/elf32lriscv_ilp32.sh | 2 +- ld/emulparams/elf32lriscv_ilp32f.sh | 2 +- ld/emulparams/elf32lsmip.sh | 2 +- ld/emulparams/elf32ltsmip.sh | 2 +- ld/emulparams/elf32ltsmip_fbsd.sh | 4 +- ld/emulparams/elf32ltsmipn32.sh | 2 +- ld/emulparams/elf32ltsmipn32_fbsd.sh | 4 +- ld/emulparams/elf32mcore.sh | 1 - ld/emulparams/elf32microblaze.sh | 5 +- ld/emulparams/elf32microblazeel.sh | 25 +- ld/emulparams/elf32or1k_linux.sh | 2 +- ld/emulparams/elf32ppc.sh | 4 +- ld/emulparams/elf32ppc_fbsd.sh | 4 +- ld/emulparams/elf32ppccommon.sh | 2 +- ld/emulparams/elf32ppclinux.sh | 2 +- ld/emulparams/elf32ppcnto.sh | 2 +- ld/emulparams/elf32ppcsim.sh | 2 +- ld/emulparams/elf32ppcvxworks.sh | 6 +- ld/emulparams/elf32ppcwindiss.sh | 2 +- ld/emulparams/elf32tilegx_be.sh | 2 +- ld/emulparams/elf64_ia64_fbsd.sh | 4 +- ld/emulparams/elf64_sparc_fbsd.sh | 4 +- ld/emulparams/elf64_sparc_sol2.sh | 4 +- ld/emulparams/elf64alpha_fbsd.sh | 4 +- ld/emulparams/elf64alpha_nbsd.sh | 2 +- ld/emulparams/elf64bmip-defs.sh | 2 +- ld/emulparams/elf64bmip.sh | 2 +- ld/emulparams/elf64bpf.sh | 10 + ld/emulparams/elf64btsmip.sh | 2 +- ld/emulparams/elf64btsmip_fbsd.sh | 4 +- ld/emulparams/elf64lppc.sh | 2 +- ld/emulparams/elf64lriscv-defs.sh | 2 +- ld/emulparams/elf64lriscv.sh | 2 +- ld/emulparams/elf64lriscv_lp64.sh | 2 +- ld/emulparams/elf64lriscv_lp64f.sh | 2 +- ld/emulparams/elf64ltsmip.sh | 2 +- ld/emulparams/elf64ltsmip_fbsd.sh | 4 +- ld/emulparams/elf64ppc.sh | 4 +- ld/emulparams/elf64ppc_fbsd.sh | 4 +- ld/emulparams/elf64rdos.sh | 3 +- ld/emulparams/elf64tilegx_be.sh | 2 +- ld/emulparams/elf_i386.sh | 11 +- ld/emulparams/elf_i386_be.sh | 8 +- ld/emulparams/elf_i386_chaos.sh | 14 - ld/emulparams/elf_i386_fbsd.sh | 4 +- ld/emulparams/elf_i386_ldso.sh | 9 +- ld/emulparams/elf_i386_nacl.sh | 4 +- ld/emulparams/elf_i386_sol2.sh | 6 +- ld/emulparams/elf_i386_vxworks.sh | 9 +- ld/emulparams/elf_iamcu.sh | 9 +- ld/emulparams/elf_k1om.sh | 9 +- ld/emulparams/elf_k1om_fbsd.sh | 4 +- ld/emulparams/elf_l1om.sh | 9 +- ld/emulparams/elf_l1om_fbsd.sh | 4 +- ld/emulparams/elf_x86_64.sh | 15 +- ld/emulparams/elf_x86_64_cloudabi.sh | 2 +- ld/emulparams/elf_x86_64_fbsd.sh | 4 +- ld/emulparams/elf_x86_64_nacl.sh | 4 +- ld/emulparams/elf_x86_64_sol2.sh | 6 +- ld/emulparams/h8300helf.sh | 2 +- ld/emulparams/h8300helf_linux.sh | 2 +- ld/emulparams/h8300hnelf.sh | 2 +- ld/emulparams/h8300self.sh | 2 +- ld/emulparams/h8300self_linux.sh | 2 +- ld/emulparams/h8300snelf.sh | 2 +- ld/emulparams/h8300sxelf.sh | 2 +- ld/emulparams/h8300sxelf_linux.sh | 2 +- ld/emulparams/h8300sxnelf.sh | 2 +- ld/emulparams/hppanbsd.sh | 2 +- ld/emulparams/hppaobsd.sh | 2 +- ld/emulparams/i386lynx.sh | 1 + ld/emulparams/i386moss.sh | 1 + ld/emulparams/i386nto.sh | 1 + ld/emulparams/m32rlelf.sh | 2 +- ld/emulparams/m32rlelf_linux.sh | 2 +- ld/emulparams/m68kelfnbsd.sh | 2 +- ld/emulparams/m9s12zelf.sh | 3 +- ld/emulparams/mn10300.sh | 2 +- ld/emulparams/msp430X.sh | 2 +- ld/emulparams/nds32belf.sh | 2 +- ld/emulparams/nds32belf16m.sh | 2 +- ld/emulparams/nds32belf_linux.sh | 2 +- ld/emulparams/pjlelf.sh | 2 +- ld/emulparams/ppclynx.sh | 2 +- ld/emulparams/reloc_overflow.sh | 2 +- ld/emulparams/score7_elf.sh | 2 +- ld/emulparams/shelf_fd.sh | 2 +- ld/emulparams/shelf_linux.sh | 2 +- ld/emulparams/shelf_nbsd.sh | 2 +- ld/emulparams/shelf_uclinux.sh | 2 +- ld/emulparams/shelf_vxworks.sh | 2 +- ld/emulparams/shl.sh | 2 +- ld/emulparams/shlelf.sh | 2 +- ld/emulparams/shlelf_fd.sh | 2 +- ld/emulparams/shlelf_nbsd.sh | 2 +- ld/emulparams/shlelf_vxworks.sh | 2 +- ld/emultempl/aarch64elf.em | 58 +- ld/emultempl/cskyelf.em | 31 +- ld/emultempl/elf-x86.em | 57 + ld/emultempl/elf32.em | 1 - ld/emultempl/genelf.em | 4 +- ld/emultempl/mipself.em | 26 +- ld/emultempl/msp430.em | 110 +- ld/emultempl/pe.em | 3 +- ld/emultempl/pep.em | 3 +- ld/emultempl/solaris2-x86.em | 23 + ld/genscrba.sh | 2 +- ld/genscripts.sh | 212 +- ld/ld.h | 3 + ld/ld.texi | 79 +- ld/ldbuildid.c | 2 +- ld/ldfile.c | 54 +- ld/ldfile.h | 2 + ld/ldlang.c | 25 +- ld/ldlex.h | 2 + ld/ldlex.l | 37 +- ld/ldmain.c | 3 +- ld/lexsup.c | 16 +- ld/plugin.c | 77 +- ld/po/BLD-POTFILES.in | 2 +- ld/po/ru.po | 8064 +- ld/scripttempl/elf.sc | 17 +- ld/scripttempl/pru.sc | 4 +- ld/testsuite/config/default.exp | 47 +- ld/testsuite/ld-aarch64/aarch64-elf.exp | 15 + ld/testsuite/ld-aarch64/bti-pac-plt-1.d | 6 +- ld/testsuite/ld-aarch64/bti-pac-plt-2.d | 4 +- ld/testsuite/ld-aarch64/bti-plt-1.d | 5 +- ld/testsuite/ld-aarch64/bti-plt-2.d | 4 +- ld/testsuite/ld-aarch64/bti-plt-3.d | 7 +- ld/testsuite/ld-aarch64/bti-plt-4.d | 4 +- ld/testsuite/ld-aarch64/bti-plt-5.d | 6 +- ld/testsuite/ld-aarch64/bti-plt-6.d | 4 +- ld/testsuite/ld-aarch64/bti-plt-7.d | 6 +- ld/testsuite/ld-aarch64/bti-warn.d | 6 +- ld/testsuite/ld-aarch64/emit-relocs-22.d | 15 + ld/testsuite/ld-aarch64/emit-relocs-22.s | 3 + ld/testsuite/ld-aarch64/emit-relocs-23.d | 15 + ld/testsuite/ld-aarch64/emit-relocs-23.s | 3 + ld/testsuite/ld-aarch64/erratum843419-adr.d | 15 + ld/testsuite/ld-aarch64/erratum843419-adrp.d | 22 + ld/testsuite/ld-aarch64/erratum843419-far-adr.d | 5 + ld/testsuite/ld-aarch64/erratum843419-far-full.d | 22 + ld/testsuite/ld-aarch64/erratum843419-far.s | 9 + ld/testsuite/ld-aarch64/erratum843419-full.d | 20 + ld/testsuite/ld-aarch64/erratum843419-near.s | 9 + ld/testsuite/ld-aarch64/erratum843419-no-args.d | 20 + ld/testsuite/ld-aarch64/pac-plt-1.d | 5 +- ld/testsuite/ld-aarch64/pac-plt-2.d | 8 +- ld/testsuite/ld-aarch64/property-bti-pac4-a.d | 11 + ld/testsuite/ld-aarch64/property-bti-pac4-b.d | 11 + ld/testsuite/ld-aarch64/property-bti-pac4.s | 21 + ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d | 19 + ld/testsuite/ld-aarch64/variant_pcs-1.s | 59 + ld/testsuite/ld-aarch64/variant_pcs-2.s | 47 + ld/testsuite/ld-aarch64/variant_pcs-now.d | 67 + ld/testsuite/ld-aarch64/variant_pcs-r.d | 60 + ld/testsuite/ld-aarch64/variant_pcs-shared.d | 67 + ld/testsuite/ld-aarch64/variant_pcs.ld | 23 + ld/testsuite/ld-alpha/tlsbin.rd | 2 +- ld/testsuite/ld-alpha/tlsbinr.rd | 2 +- ld/testsuite/ld-alpha/tlspic.rd | 4 +- ld/testsuite/ld-arm/arm-elf.exp | 19 + ld/testsuite/ld-arm/attr-merge-13.attr | 6 + ld/testsuite/ld-arm/attr-merge-13a.s | 5 + ld/testsuite/ld-arm/attr-merge-13b.s | 5 + ld/testsuite/ld-arm/bf.d | 14 + ld/testsuite/ld-arm/bf.s | 19 + ld/testsuite/ld-arm/bfcsel.d | 18 + ld/testsuite/ld-arm/bfcsel.s | 25 + ld/testsuite/ld-arm/bfl.d | 14 + ld/testsuite/ld-arm/bfl.s | 19 + ld/testsuite/ld-arm/bfs-0.s | 12 + ld/testsuite/ld-arm/bfs-1.s | 9 + ld/testsuite/ld-arm/branch-futures.d | 17 + ld/testsuite/ld-auto-import/auto-import.exp | 2 +- ld/testsuite/ld-avr/relax-insn-at-range-boundary.d | 17 + ld/testsuite/ld-avr/relax-insn-at-range-boundary.s | 11 + ld/testsuite/ld-avr/wraparound-range-boundary.d | 17 + ld/testsuite/ld-avr/wraparound-range-boundary.s | 6 + ld/testsuite/ld-bpf/bar.s | 5 + ld/testsuite/ld-bpf/baz.s | 5 + ld/testsuite/ld-bpf/bpf.exp | 29 + ld/testsuite/ld-bpf/call-1.d | 23 + ld/testsuite/ld-bpf/foo.s | 5 + ld/testsuite/ld-bpf/jump-1.d | 23 + ld/testsuite/ld-cygwin/exe-export.exp | 2 +- ld/testsuite/ld-discard/extern.d | 2 +- ld/testsuite/ld-discard/start.d | 2 +- ld/testsuite/ld-discard/static.d | 2 +- ld/testsuite/ld-elf/attributes.d | 2 +- ld/testsuite/ld-elf/audit.exp | 2 +- ld/testsuite/ld-elf/compress.exp | 2 +- ld/testsuite/ld-elf/compressed1d.d | 5 +- ld/testsuite/ld-elf/dwarf.exp | 2 +- ld/testsuite/ld-elf/elf.exp | 64 +- ld/testsuite/ld-elf/group1.d | 2 +- ld/testsuite/ld-elf/group3b.d | 2 +- ld/testsuite/ld-elf/group8a.d | 3 +- ld/testsuite/ld-elf/group8b.d | 3 +- ld/testsuite/ld-elf/group9a.d | 3 +- ld/testsuite/ld-elf/group9b.d | 3 +- ld/testsuite/ld-elf/indirect.exp | 2 +- ld/testsuite/ld-elf/init-fini-arrays.s | 17 +- ld/testsuite/ld-elf/linkonce2.d | 2 +- ld/testsuite/ld-elf/linux-x86.exp | 2 +- ld/testsuite/ld-elf/merge.d | 2 +- ld/testsuite/ld-elf/merge2.d | 2 +- ld/testsuite/ld-elf/merge3.d | 2 +- ld/testsuite/ld-elf/orphan-10.d | 3 +- ld/testsuite/ld-elf/orphan-9.d | 3 +- ld/testsuite/ld-elf/orphan-region.d | 4 +- ld/testsuite/ld-elf/orphan.d | 3 +- ld/testsuite/ld-elf/orphan3.d | 4 +- ld/testsuite/ld-elf/pr12851.d | 3 +- ld/testsuite/ld-elf/pr12975.d | 2 +- ld/testsuite/ld-elf/pr13177.d | 2 +- ld/testsuite/ld-elf/pr13195.d | 2 +- ld/testsuite/ld-elf/pr14156a.d | 10 +- ld/testsuite/ld-elf/pr14156b.d | 10 +- ld/testsuite/ld-elf/pr17550c.d | 2 +- ld/testsuite/ld-elf/pr17550d.d | 2 +- ld/testsuite/ld-elf/pr17615.d | 2 +- ld/testsuite/ld-elf/pr20528a.d | 3 +- ld/testsuite/ld-elf/pr20528b.d | 3 +- ld/testsuite/ld-elf/pr21562a.d | 2 +- ld/testsuite/ld-elf/pr21562b.d | 2 +- ld/testsuite/ld-elf/pr21562c.d | 2 +- ld/testsuite/ld-elf/pr21562d.d | 2 +- ld/testsuite/ld-elf/pr21562i.d | 2 +- ld/testsuite/ld-elf/pr21562j.d | 2 +- ld/testsuite/ld-elf/pr21562k.d | 2 +- ld/testsuite/ld-elf/pr21562l.d | 2 +- ld/testsuite/ld-elf/pr21562m.d | 2 +- ld/testsuite/ld-elf/pr21562n.d | 2 +- ld/testsuite/ld-elf/pr22677.d | 3 +- ld/testsuite/ld-elf/pr22836-1a.d | 2 +- ld/testsuite/ld-elf/pr22836-1b.d | 2 +- ld/testsuite/ld-elf/pr23658-1a.d | 4 +- ld/testsuite/ld-elf/pr23658-1b.d | 3 +- ld/testsuite/ld-elf/pr24511.d | 18 + ld/testsuite/ld-elf/pr349.d | 3 +- ld/testsuite/ld-elf/sec64k.exp | 10 +- ld/testsuite/ld-elf/shared.exp | 12 +- ld/testsuite/ld-elf/tls.exp | 2 +- ld/testsuite/ld-elf/ver_def.vd | 2 +- ld/testsuite/ld-elf/warn1.d | 4 +- ld/testsuite/ld-elf/warn2.d | 5 +- ld/testsuite/ld-elf/warn3.d | 2 +- ld/testsuite/ld-elf/wrap.exp | 2 +- ld/testsuite/ld-elfcomm/elfcomm.exp | 2 +- ld/testsuite/ld-elfvers/vers.exp | 2 +- ld/testsuite/ld-elfvsb/elfvsb.exp | 2 +- ld/testsuite/ld-elfweak/elfweak.exp | 2 +- ld/testsuite/ld-gc/gc.exp | 16 +- ld/testsuite/ld-gc/skip-map-discarded.d | 3 + ld/testsuite/ld-gc/skip-map-discarded.map | 5 + ld/testsuite/ld-gc/skip-map-discarded.s | 6 + ld/testsuite/ld-i386/i386.exp | 19 +- ld/testsuite/ld-i386/no-plt.exp | 2 +- ld/testsuite/ld-i386/pr18801.d | 3 - ld/testsuite/ld-i386/pr18801a.d | 4 + ld/testsuite/ld-i386/pr18801b.d | 4 + ld/testsuite/ld-i386/property-x86-cet1.d | 11 + ld/testsuite/ld-i386/property-x86-cet2a.d | 15 + ld/testsuite/ld-i386/property-x86-cet2b.d | 7 + ld/testsuite/ld-i386/property-x86-cet3a.d | 4 + ld/testsuite/ld-i386/property-x86-cet3b.d | 4 + ld/testsuite/ld-i386/property-x86-cet4a.d | 4 + ld/testsuite/ld-i386/property-x86-cet4b.d | 4 + ld/testsuite/ld-i386/property-x86-cet5a.d | 10 + ld/testsuite/ld-i386/property-x86-cet5b.d | 11 + ld/testsuite/ld-i386/property-x86-cet6.d | 5 + ld/testsuite/ld-i386/tls.exp | 2 +- ld/testsuite/ld-ifunc/ifunc.exp | 18 +- ld/testsuite/ld-mips-elf/mips-elf-flags.exp | 3 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 22 + ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.dd | 50 + ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.nd | 9 + ld/testsuite/ld-mips-elf/pic-and-nonpic-1a-r6.s | 28 + ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.dd | 36 + ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.gd | 21 + ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.s | 26 + ld/testsuite/ld-mips-elf/pic-reloc-5.d | 10 + ld/testsuite/ld-mips-elf/pic-reloc-5.s | 22 + ld/testsuite/ld-mips-elf/pic-reloc-6.d | 11 + ld/testsuite/ld-mips-elf/pic-reloc-6.s | 22 + ld/testsuite/ld-mips-elf/pic-reloc-7.d | 8 + ld/testsuite/ld-mips-elf/pic-reloc-7.s | 10 + ld/testsuite/ld-mips-elf/pic-reloc-tls.ld | 7 + ld/testsuite/ld-mips-elf/reloc-6a.s | 4 +- ld/testsuite/ld-mips-elf/reloc-6b.s | 4 +- ld/testsuite/ld-mips-elf/reloc-pcrel-r6.d | 18 + ld/testsuite/ld-mips-elf/reloc-pcrel-r6.ld | 9 + ld/testsuite/ld-mips-elf/reloc-pcrel-r6.s | 27 + ld/testsuite/ld-mips-elf/undefweak-overflow.d | 16 +- ld/testsuite/ld-mips-elf/undefweak-overflow.s | 2 - ld/testsuite/ld-mn10300/mn10300.exp | 2 +- ld/testsuite/ld-msp430-elf/msp430-elf.exp | 52 +- ld/testsuite/ld-msp430-elf/valid-map-foo.s | 26 + ld/testsuite/ld-msp430-elf/valid-map.d | 6 + ld/testsuite/ld-msp430-elf/valid-map.map | 6 + ld/testsuite/ld-msp430-elf/valid-map.s | 60 + ld/testsuite/ld-msp430-elf/warn-no-lower-code.r | 1 + ld/testsuite/ld-msp430-elf/warn-no-lower-data.r | 3 + ld/testsuite/ld-msp430-elf/warn-no-lower.r | 4 + ld/testsuite/ld-msp430-elf/warn-no-lower.s | 44 + ld/testsuite/ld-pe/pe-compile.exp | 2 +- ld/testsuite/ld-pe/pe-run.exp | 2 +- ld/testsuite/ld-pe/pe-run2.exp | 2 +- ld/testsuite/ld-pie/pie.exp | 2 +- ld/testsuite/ld-plugin/lto.exp | 26 +- ld/testsuite/ld-plugin/plugin.exp | 2 +- ld/testsuite/ld-plugin/pr24406-1.c | 17 + ld/testsuite/ld-plugin/pr24406-2a.c | 17 + ld/testsuite/ld-plugin/pr24406-2b.c | 4 + ld/testsuite/ld-plugin/pr24486a.c | 8 + ld/testsuite/ld-plugin/pr24486b.c | 8 + ld/testsuite/ld-plugin/pr24486c.c | 1 + ld/testsuite/ld-powerpc/elfv2exe.d | 2 +- ld/testsuite/ld-powerpc/elfv2so.d | 12 +- ld/testsuite/ld-powerpc/notoc2.d | 29 + ld/testsuite/ld-powerpc/notoc2.s | 13 + ld/testsuite/ld-powerpc/pcrelopt.d | 89 + ld/testsuite/ld-powerpc/pcrelopt.s | 119 + ld/testsuite/ld-powerpc/pcrelopt.sec | 6 + ld/testsuite/ld-powerpc/powerpc.exp | 6 + ld/testsuite/ld-powerpc/tlsexe32.d | 2 +- ld/testsuite/ld-powerpc/tlsopt5.d | 2 +- ld/testsuite/ld-powerpc/tlsopt5_32.d | 2 +- ld/testsuite/ld-powerpc/tocopt.d | 14 +- ld/testsuite/ld-powerpc/tocopt.s | 3 +- ld/testsuite/ld-powerpc/tocopt5.d | 11 +- ld/testsuite/ld-powerpc/tocopt5.s | 1 - ld/testsuite/ld-powerpc/tocopt7.d | 2 +- ld/testsuite/ld-powerpc/tocopt7.s | 1 - ld/testsuite/ld-powerpc/tocopt8.d | 24 +- ld/testsuite/ld-powerpc/tocopt8.s | 1 - ld/testsuite/ld-scripts/align.exp | 2 +- ld/testsuite/ld-scripts/crossref.exp | 2 +- ld/testsuite/ld-scripts/fill.d | 3 +- ld/testsuite/ld-scripts/fill16.d | 3 +- ld/testsuite/ld-scripts/pr18963.t | 3 + ld/testsuite/ld-scripts/pr20302.d | 6 +- ld/testsuite/ld-scripts/sane1.t | 1 + ld/testsuite/ld-scripts/section-match-1.d | 2 +- ld/testsuite/ld-sh/sh.exp | 2 +- ld/testsuite/ld-shared/shared.exp | 2 +- ld/testsuite/ld-size/size.exp | 2 +- ld/testsuite/ld-srec/srec.exp | 2 +- ld/testsuite/ld-undefined/require-defined.exp | 2 +- ld/testsuite/ld-undefined/undefined.exp | 2 +- ld/testsuite/ld-undefined/weak-undef.exp | 1 - ld/testsuite/ld-unique/unique.exp | 2 +- ld/testsuite/ld-x86-64/mpx.exp | 2 +- ld/testsuite/ld-x86-64/no-plt.exp | 2 +- ld/testsuite/ld-x86-64/pie2.d | 2 +- ld/testsuite/ld-x86-64/pr18801.d | 3 - ld/testsuite/ld-x86-64/pr18801a.d | 4 + ld/testsuite/ld-x86-64/pr18801b.d | 4 + ld/testsuite/ld-x86-64/pr19719.d | 2 +- ld/testsuite/ld-x86-64/pr19807-2a.d | 2 +- ld/testsuite/ld-x86-64/pr19969.d | 2 +- ld/testsuite/ld-x86-64/pr21997-1a.err | 2 +- ld/testsuite/ld-x86-64/pr21997-1b.err | 2 +- ld/testsuite/ld-x86-64/pr22001-1a.err | 2 +- ld/testsuite/ld-x86-64/pr22001-1b.err | 2 +- ld/testsuite/ld-x86-64/pr22791-1.err | 2 +- ld/testsuite/ld-x86-64/pr24458.s | 5 + ld/testsuite/ld-x86-64/pr24458a-x32.d | 10 + ld/testsuite/ld-x86-64/pr24458a.d | 10 + ld/testsuite/ld-x86-64/pr24458b-x32.d | 10 + ld/testsuite/ld-x86-64/pr24458b.d | 10 + ld/testsuite/ld-x86-64/pr24458c-x32.d | 10 + ld/testsuite/ld-x86-64/pr24458c.d | 10 + ld/testsuite/ld-x86-64/property-x86-cet.s | 27 + ld/testsuite/ld-x86-64/property-x86-cet1-x32.d | 11 + ld/testsuite/ld-x86-64/property-x86-cet1.d | 11 + ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d | 15 + ld/testsuite/ld-x86-64/property-x86-cet2a.d | 15 + ld/testsuite/ld-x86-64/property-x86-cet2b-x32.d | 7 + ld/testsuite/ld-x86-64/property-x86-cet2b.d | 7 + ld/testsuite/ld-x86-64/property-x86-cet3a-x32.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet3a.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet3b-x32.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet3b.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet4a-x32.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet4a.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet4b-x32.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet4b.d | 4 + ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d | 10 + ld/testsuite/ld-x86-64/property-x86-cet5a.d | 10 + ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d | 11 + ld/testsuite/ld-x86-64/property-x86-cet5b.d | 11 + ld/testsuite/ld-x86-64/property-x86-cet6-x32.d | 5 + ld/testsuite/ld-x86-64/property-x86-cet6.d | 5 + ld/testsuite/ld-x86-64/tls.exp | 2 +- ld/testsuite/ld-x86-64/x86-64.exp | 31 +- ld/testsuite/lib/ld-lib.exp | 99 +- libctf/ChangeLog | 246 + libctf/Makefile.am | 40 + libctf/Makefile.in | 784 + libctf/aclocal.m4 | 1234 + libctf/config.h.in | 146 + libctf/configure | 7968 ++ libctf/configure.ac | 154 + libctf/ctf-archive.c | 754 + libctf/ctf-create.c | 2041 + libctf/ctf-decl.c | 195 + libctf/ctf-decls.h | 75 + libctf/ctf-dump.c | 597 + libctf/ctf-endian.h | 37 + libctf/ctf-error.c | 93 + libctf/ctf-hash.c | 277 + libctf/ctf-impl.h | 386 + libctf/ctf-labels.c | 138 + libctf/ctf-lookup.c | 427 + libctf/ctf-open-bfd.c | 349 + libctf/ctf-open.c | 1692 + libctf/ctf-qsort_r.c | 259 + libctf/ctf-subr.c | 259 + libctf/ctf-types.c | 1023 + libctf/ctf-util.c | 176 + libctf/elf.h | 61 + libctf/swap.h | 66 + libiberty/ChangeLog | 32 + libiberty/cp-demangle.c | 70 +- libiberty/cp-demangle.h | 2 +- libiberty/floatformat.c | 2 +- libiberty/functions.texi | 57 +- libiberty/hashtab.c | 2 +- libiberty/simple-object.c | 6 +- libiberty/strerror.c | 2 +- opcodes/ChangeLog | 878 + opcodes/Makefile.am | 17 + opcodes/Makefile.in | 23 + opcodes/aarch64-asm-2.c | 808 +- opcodes/aarch64-asm.c | 31 +- opcodes/aarch64-dis-2.c | 7365 +- opcodes/aarch64-dis.c | 55 + opcodes/aarch64-opc-2.c | 42 +- opcodes/aarch64-opc.c | 58 +- opcodes/aarch64-opc.h | 6 + opcodes/aarch64-tbl.h | 517 +- opcodes/arm-dis.c | 6330 +- opcodes/bpf-asm.c | 590 + opcodes/bpf-desc.c | 1638 + opcodes/bpf-desc.h | 266 + opcodes/bpf-dis.c | 624 + opcodes/bpf-ibld.c | 956 + opcodes/bpf-opc.c | 1495 + opcodes/bpf-opc.h | 151 + opcodes/configure | 19 +- opcodes/configure.ac | 1 + opcodes/disassemble.c | 35 + opcodes/disassemble.h | 1 + opcodes/i386-dis-evex.h | 214 +- opcodes/i386-dis.c | 64 +- opcodes/i386-gen.c | 17 +- opcodes/i386-init.h | 410 +- opcodes/i386-opc.h | 9 + opcodes/i386-opc.tbl | 31 + opcodes/i386-tbl.h | 8118 +- opcodes/ia64-opc.c | 5 +- opcodes/mips-dis.c | 10 +- opcodes/mips-opc.c | 24 +- opcodes/or1k-asm.c | 72 +- opcodes/or1k-desc.c | 309 +- opcodes/or1k-desc.h | 341 +- opcodes/or1k-dis.c | 43 +- opcodes/or1k-ibld.c | 234 +- opcodes/or1k-opc.c | 319 +- opcodes/or1k-opc.h | 39 +- opcodes/or1k-opinst.c | 100 +- opcodes/po/POTFILES.in | 7 + opcodes/po/fr.po | 1571 +- opcodes/ppc-dis.c | 174 +- opcodes/ppc-opc.c | 785 +- opcodes/s12z-dis.c | 2 +- opcodes/s12z-opc.c | 58 +- opcodes/s12z-opc.h | 13 +- readline/support/config.guess | 1281 +- readline/support/config.sub | 2445 +- sim/ChangeLog | 10 + sim/common/ChangeLog | 20 + sim/common/cgen-accfp.c | 49 + sim/common/cgen-fpu.h | 2 + sim/common/cgen-ops.h | 10 +- sim/or1k/arch.c | 2 +- sim/or1k/arch.h | 2 +- sim/or1k/cpu.c | 78 +- sim/or1k/cpu.h | 174 +- sim/or1k/cpuall.h | 2 +- sim/or1k/decode.c | 568 +- sim/or1k/decode.h | 21 +- sim/or1k/model.c | 1036 +- sim/or1k/sem-switch.c | 602 +- sim/or1k/sem.c | 672 +- sim/testsuite/sim/or1k/ChangeLog | 13 + sim/testsuite/sim/or1k/adrp.S | 73 + sim/testsuite/sim/or1k/fpu-unordered.S | 97 + sim/testsuite/sim/or1k/fpu64a32-unordered.S | 100 + sim/testsuite/sim/or1k/fpu64a32.S | 172 + src-release.sh | 4 +- 2535 files changed, 569015 insertions(+), 61742 deletions(-) create mode 100644 bfd/cpu-bpf.c create mode 100644 bfd/elf-linker-x86.h create mode 100644 bfd/elf64-bpf.c create mode 100644 binutils/doc/ctf.options.texi create mode 100644 binutils/testsuite/binutils-all/aarch64/sve-dwarf-registers.d create mode 100644 binutils/testsuite/binutils-all/aarch64/sve-dwarf-registers.s create mode 100644 binutils/testsuite/binutils-all/verilog-1.hex create mode 100644 binutils/testsuite/binutils-all/verilog-2.hex create mode 100644 binutils/testsuite/binutils-all/verilog-4.hex create mode 100644 binutils/testsuite/binutils-all/verilog-8.hex create mode 100644 binutils/testsuite/binutils-all/verilogtest.s create mode 100644 cpu/bpf.cpu create mode 100644 cpu/bpf.opc create mode 100644 gas/config/tc-bpf.c create mode 100644 gas/config/tc-bpf.h create mode 100644 gas/config/te-cloudabi.h create mode 100644 gas/doc/c-bpf.texi create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-aes.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-bitperm.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-sha3.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-sm4.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-sve1ext.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2-sve1ext.l create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2.d create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2.l create mode 100644 gas/testsuite/gas/aarch64/illegal-sve2.s create mode 100644 gas/testsuite/gas/aarch64/sve1-extended-sve2.s create mode 100644 gas/testsuite/gas/aarch64/sve2.d create mode 100644 gas/testsuite/gas/aarch64/sve2.s create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-1.d create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-1.s create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-2.d create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-2.s create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-3.d create mode 100644 gas/testsuite/gas/aarch64/symbol-variant_pcs-3.s create mode 100644 gas/testsuite/gas/aarch64/tme-invalid.d create mode 100644 gas/testsuite/gas/aarch64/tme-invalid.l create mode 100644 gas/testsuite/gas/aarch64/tme-invalid.s create mode 100644 gas/testsuite/gas/aarch64/tme.d create mode 100644 gas/testsuite/gas/aarch64/tme.s create mode 100644 gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.d create mode 100644 gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.l create mode 100644 gas/testsuite/gas/arm/archv8m_1m-cmse-main-bad.s create mode 100644 gas/testsuite/gas/arm/archv8m_1m-cmse-main.d create mode 100644 gas/testsuite/gas/arm/archv8m_1m-cmse-main.s create mode 100644 gas/testsuite/gas/arm/armv8.1-m.main-fp-dp.d create mode 100644 gas/testsuite/gas/arm/armv8.1-m.main-fp.d create mode 100644 gas/testsuite/gas/arm/armv8.1-m.main-hp.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-exchange-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-exchange.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-exchange.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-rel.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-rel.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf-rela.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bf.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfcsel.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfcsel.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-rel.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-rel.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl-rela.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-bfl.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-cond-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-cond-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-cond-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-cond.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-cond.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-loloop-bad.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-loloop-bad.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-loloop-bad.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-loloop.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-loloop.s create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad1.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad1.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad2.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad2.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad3.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg-bad3.l create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg.d create mode 100644 gas/testsuite/gas/arm/armv8_1-m-spec-reg.s create mode 100644 gas/testsuite/gas/arm/attr-march-armv8_1-m.main.d create mode 100644 gas/testsuite/gas/arm/load-pseudo.s create mode 100644 gas/testsuite/gas/arm/m0-load-pseudo.d create mode 100644 gas/testsuite/gas/arm/m23-load-pseudo.d create mode 100644 gas/testsuite/gas/arm/m33-load-pseudo.d create mode 100644 gas/testsuite/gas/arm/mve-shift-bad.d create mode 100644 gas/testsuite/gas/arm/mve-shift-bad.l create mode 100644 gas/testsuite/gas/arm/mve-shift-bad.s create mode 100644 gas/testsuite/gas/arm/mve-shift.d create mode 100644 gas/testsuite/gas/arm/mve-shift.s create mode 100644 gas/testsuite/gas/arm/mve-tailpredloop-bad.d create mode 100644 gas/testsuite/gas/arm/mve-tailpredloop-bad.l create mode 100644 gas/testsuite/gas/arm/mve-tailpredloop-bad.s create mode 100644 gas/testsuite/gas/arm/mve-tailpredloop.d create mode 100644 gas/testsuite/gas/arm/mve-tailpredloop.s create mode 100644 gas/testsuite/gas/arm/mve-vabav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vabav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vabav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vabav.d create mode 100644 gas/testsuite/gas/arm/mve-vabav.s create mode 100644 gas/testsuite/gas/arm/mve-vabd.d create mode 100644 gas/testsuite/gas/arm/mve-vabd.s create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vabsneg-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vabsneg.d create mode 100644 gas/testsuite/gas/arm/mve-vabsneg.s create mode 100644 gas/testsuite/gas/arm/mve-vadc-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vadc-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vadc-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vadc.d create mode 100644 gas/testsuite/gas/arm/mve-vadc.s create mode 100644 gas/testsuite/gas/arm/mve-vaddlv-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vaddlv-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vaddlv-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vaddlv.d create mode 100644 gas/testsuite/gas/arm/mve-vaddlv.s create mode 100644 gas/testsuite/gas/arm/mve-vaddsub.d create mode 100644 gas/testsuite/gas/arm/mve-vaddsub.s create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vaddsubabd-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vaddv-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vaddv-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vaddv-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vaddv.d create mode 100644 gas/testsuite/gas/arm/mve-vaddv.s create mode 100644 gas/testsuite/gas/arm/mve-vand-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vand-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vand-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vand.d create mode 100644 gas/testsuite/gas/arm/mve-vand.s create mode 100644 gas/testsuite/gas/arm/mve-vbic-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vbic-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vbic-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vbic.d create mode 100644 gas/testsuite/gas/arm/mve-vbic.s create mode 100644 gas/testsuite/gas/arm/mve-vbrsr-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vbrsr-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vbrsr-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vbrsr.d create mode 100644 gas/testsuite/gas/arm/mve-vbrsr.s create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vcadd-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcadd.d create mode 100644 gas/testsuite/gas/arm/mve-vcadd.s create mode 100644 gas/testsuite/gas/arm/mve-vcls-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vcls-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vcls-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vcls.d create mode 100644 gas/testsuite/gas/arm/mve-vcls.s create mode 100644 gas/testsuite/gas/arm/mve-vclz-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vclz-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vclz-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vclz.d create mode 100644 gas/testsuite/gas/arm/mve-vclz.s create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vcmla-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcmla.d create mode 100644 gas/testsuite/gas/arm/mve-vcmla.s create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vcmp-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcmp.d create mode 100644 gas/testsuite/gas/arm/mve-vcmp.s create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vcmul-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcmul.d create mode 100644 gas/testsuite/gas/arm/mve-vcmul.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-3.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-3.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-4.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-4.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-3.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-3.l create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-3.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-4.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-4.l create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad-4.s create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vcvt-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vddup-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vddup-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vddup-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vddup.d create mode 100644 gas/testsuite/gas/arm/mve-vddup.s create mode 100644 gas/testsuite/gas/arm/mve-vdup-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vdup-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vdup-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vdup.d create mode 100644 gas/testsuite/gas/arm/mve-vdup.s create mode 100644 gas/testsuite/gas/arm/mve-veor-bad.d create mode 100644 gas/testsuite/gas/arm/mve-veor-bad.l create mode 100644 gas/testsuite/gas/arm/mve-veor-bad.s create mode 100644 gas/testsuite/gas/arm/mve-veor.d create mode 100644 gas/testsuite/gas/arm/mve-veor.s create mode 100644 gas/testsuite/gas/arm/mve-vfma-vfms-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vfma-vfms-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vfma-vfms-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vfma-vfms.d create mode 100644 gas/testsuite/gas/arm/mve-vfma-vfms.s create mode 100644 gas/testsuite/gas/arm/mve-vfmas-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vfmas-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vfmas-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vfmas.d create mode 100644 gas/testsuite/gas/arm/mve-vfmas.s create mode 100644 gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.d create mode 100644 gas/testsuite/gas/arm/mve-vhadd-vhsub-vrhadd.s create mode 100644 gas/testsuite/gas/arm/mve-vhcadd-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vhcadd-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vhcadd-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vhcadd.d create mode 100644 gas/testsuite/gas/arm/mve-vhcadd.s create mode 100644 gas/testsuite/gas/arm/mve-vidup-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vidup-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vidup-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-3.d create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-3.l create mode 100644 gas/testsuite/gas/arm/mve-vldr-bad-3.s create mode 100644 gas/testsuite/gas/arm/mve-vmax-vmin-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmax-vmin-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmax-vmin-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmax-vmin.d create mode 100644 gas/testsuite/gas/arm/mve-vmax-vmin.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmaxa-vmina-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxa-vmina.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxa-vmina.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmaxnm-vminnm-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnm-vminnm.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxnm-vminnm.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmaxnma-vminnma-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnma-vminnma.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxnmv-vminnmv.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmaxv-vminv-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmaxv-vminv.d create mode 100644 gas/testsuite/gas/arm/mve-vmaxv-vminv.s create mode 100644 gas/testsuite/gas/arm/mve-vmla-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmla-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmla-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmla.d create mode 100644 gas/testsuite/gas/arm/mve-vmla.s create mode 100644 gas/testsuite/gas/arm/mve-vmladav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmladav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmladav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmladav.d create mode 100644 gas/testsuite/gas/arm/mve-vmladav.s create mode 100644 gas/testsuite/gas/arm/mve-vmlaldav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlaldav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlaldav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlaldav.d create mode 100644 gas/testsuite/gas/arm/mve-vmlaldav.s create mode 100644 gas/testsuite/gas/arm/mve-vmlalv-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlalv-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlalv-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlalv.d create mode 100644 gas/testsuite/gas/arm/mve-vmlalv.s create mode 100644 gas/testsuite/gas/arm/mve-vmlas-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlas-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlas-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlas.d create mode 100644 gas/testsuite/gas/arm/mve-vmlas.s create mode 100644 gas/testsuite/gas/arm/mve-vmlav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlav.d create mode 100644 gas/testsuite/gas/arm/mve-vmlav.s create mode 100644 gas/testsuite/gas/arm/mve-vmlsdav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlsdav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlsdav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlsdav.d create mode 100644 gas/testsuite/gas/arm/mve-vmlsdav.s create mode 100644 gas/testsuite/gas/arm/mve-vmlsldav-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmlsldav-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmlsldav-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmlsldav.d create mode 100644 gas/testsuite/gas/arm/mve-vmlsldav.s create mode 100644 gas/testsuite/gas/arm/mve-vmov-1.d create mode 100644 gas/testsuite/gas/arm/mve-vmov-1.s create mode 100644 gas/testsuite/gas/arm/mve-vmov-2.d create mode 100644 gas/testsuite/gas/arm/mve-vmov-2.s create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vmov-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vmul-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vmul.d create mode 100644 gas/testsuite/gas/arm/mve-vmul.s create mode 100644 gas/testsuite/gas/arm/mve-vmulh-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmulh-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmulh-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmulh.d create mode 100644 gas/testsuite/gas/arm/mve-vmulh.s create mode 100644 gas/testsuite/gas/arm/mve-vmullbt-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmullbt-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmullbt-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmullbt.d create mode 100644 gas/testsuite/gas/arm/mve-vmullbt.s create mode 100644 gas/testsuite/gas/arm/mve-vmvn-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vmvn-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vmvn-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vmvn.d create mode 100644 gas/testsuite/gas/arm/mve-vmvn.s create mode 100644 gas/testsuite/gas/arm/mve-vorn-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vorn-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vorn-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vorn.d create mode 100644 gas/testsuite/gas/arm/mve-vorn.s create mode 100644 gas/testsuite/gas/arm/mve-vorr-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vorr-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vorr-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vorr.d create mode 100644 gas/testsuite/gas/arm/mve-vorr.s create mode 100644 gas/testsuite/gas/arm/mve-vpnot-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vpnot-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vpnot-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vpnot.d create mode 100644 gas/testsuite/gas/arm/mve-vpnot.s create mode 100644 gas/testsuite/gas/arm/mve-vpsel-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vpsel-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vpsel-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vpsel.d create mode 100644 gas/testsuite/gas/arm/mve-vpsel.s create mode 100644 gas/testsuite/gas/arm/mve-vpst-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vpst-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vpst-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vpt-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vpt.d create mode 100644 gas/testsuite/gas/arm/mve-vpt.s create mode 100644 gas/testsuite/gas/arm/mve-vqabsneg-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqabsneg-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqabsneg-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqabsneg.s create mode 100644 gas/testsuite/gas/arm/mve-vqaddsub-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqaddsub-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqaddsub-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqaddsub.d create mode 100644 gas/testsuite/gas/arm/mve-vqaddsub.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmladh-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmladh-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqdmladh-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmladh.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmladh.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmlah.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmlah.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmlash.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmlash.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmlsdh-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmlsdh-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqdmlsdh-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmlsdh.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmlsdh.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmulh-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmulh-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqdmulh-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmulh.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmulh.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmull-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmull-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqdmull-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqdmull.d create mode 100644 gas/testsuite/gas/arm/mve-vqdmull.s create mode 100644 gas/testsuite/gas/arm/mve-vqmovn-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqmovn-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqmovn-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqmovn.d create mode 100644 gas/testsuite/gas/arm/mve-vqmovn.s create mode 100644 gas/testsuite/gas/arm/mve-vqrshl-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqrshl-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqrshl-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqrshl.d create mode 100644 gas/testsuite/gas/arm/mve-vqrshl.s create mode 100644 gas/testsuite/gas/arm/mve-vqrshrn-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqrshrn-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqrshrn-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqrshrn.d create mode 100644 gas/testsuite/gas/arm/mve-vqrshrn.s create mode 100644 gas/testsuite/gas/arm/mve-vqshl-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vqshl-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vqshl-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vqshl.d create mode 100644 gas/testsuite/gas/arm/mve-vqshl.s create mode 100644 gas/testsuite/gas/arm/mve-vrev-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vrev-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vrev-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vrev.d create mode 100644 gas/testsuite/gas/arm/mve-vrev.s create mode 100644 gas/testsuite/gas/arm/mve-vrint-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vrint-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vrint-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vrint.d create mode 100644 gas/testsuite/gas/arm/mve-vrint.s create mode 100644 gas/testsuite/gas/arm/mve-vrmlaldavh-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vrmlaldavh-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vrmlaldavh-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vrmlaldavh.d create mode 100644 gas/testsuite/gas/arm/mve-vrmlaldavh.s create mode 100644 gas/testsuite/gas/arm/mve-vrshl-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vrshl-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vrshl-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vrshl.d create mode 100644 gas/testsuite/gas/arm/mve-vrshl.s create mode 100644 gas/testsuite/gas/arm/mve-vsbc-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vsbc-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vsbc-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vsbc.d create mode 100644 gas/testsuite/gas/arm/mve-vsbc.s create mode 100644 gas/testsuite/gas/arm/mve-vshl-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vshl-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vshl-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vshl.d create mode 100644 gas/testsuite/gas/arm/mve-vshl.s create mode 100644 gas/testsuite/gas/arm/mve-vshlc-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vshlc-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vshlc-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vshlc.d create mode 100644 gas/testsuite/gas/arm/mve-vshlc.s create mode 100644 gas/testsuite/gas/arm/mve-vshll-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vshll-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vshll-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vshll.d create mode 100644 gas/testsuite/gas/arm/mve-vshll.s create mode 100644 gas/testsuite/gas/arm/mve-vshr-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vshr-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vshr-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vshr.d create mode 100644 gas/testsuite/gas/arm/mve-vshr.s create mode 100644 gas/testsuite/gas/arm/mve-vshrn-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vshrn-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vshrn-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vshrn.d create mode 100644 gas/testsuite/gas/arm/mve-vshrn.s create mode 100644 gas/testsuite/gas/arm/mve-vsli-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vsli-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vsli-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vsli.d create mode 100644 gas/testsuite/gas/arm/mve-vsli.s create mode 100644 gas/testsuite/gas/arm/mve-vsri-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vsri-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vsri-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vsri.d create mode 100644 gas/testsuite/gas/arm/mve-vsri.s create mode 100644 gas/testsuite/gas/arm/mve-vstld-bad.d create mode 100644 gas/testsuite/gas/arm/mve-vstld-bad.l create mode 100644 gas/testsuite/gas/arm/mve-vstld-bad.s create mode 100644 gas/testsuite/gas/arm/mve-vstld.d create mode 100644 gas/testsuite/gas/arm/mve-vstld.s create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-1.d create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-1.l create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-1.s create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-2.d create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-2.l create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-2.s create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-3.d create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-3.l create mode 100644 gas/testsuite/gas/arm/mve-vstr-bad-3.s create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-1.d create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-1.s create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-2.d create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-2.s create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-3.d create mode 100644 gas/testsuite/gas/arm/mve-vstrldr-3.s create mode 100644 gas/testsuite/gas/bpf/alu-be.d create mode 100644 gas/testsuite/gas/bpf/alu.d create mode 100644 gas/testsuite/gas/bpf/alu.s create mode 100644 gas/testsuite/gas/bpf/alu32-be.d create mode 100644 gas/testsuite/gas/bpf/alu32.d create mode 100644 gas/testsuite/gas/bpf/alu32.s create mode 100644 gas/testsuite/gas/bpf/atomic-be.d create mode 100644 gas/testsuite/gas/bpf/atomic.d create mode 100644 gas/testsuite/gas/bpf/atomic.s create mode 100644 gas/testsuite/gas/bpf/bpf.exp create mode 100644 gas/testsuite/gas/bpf/call-be.d create mode 100644 gas/testsuite/gas/bpf/call.d create mode 100644 gas/testsuite/gas/bpf/call.s create mode 100644 gas/testsuite/gas/bpf/exit-be.d create mode 100644 gas/testsuite/gas/bpf/exit.d create mode 100644 gas/testsuite/gas/bpf/exit.s create mode 100644 gas/testsuite/gas/bpf/jump-be.d create mode 100644 gas/testsuite/gas/bpf/jump.d create mode 100644 gas/testsuite/gas/bpf/jump.s create mode 100644 gas/testsuite/gas/bpf/lddw-be.d create mode 100644 gas/testsuite/gas/bpf/lddw.d create mode 100644 gas/testsuite/gas/bpf/lddw.s create mode 100644 gas/testsuite/gas/bpf/mem-be.d create mode 100644 gas/testsuite/gas/bpf/mem.d create mode 100644 gas/testsuite/gas/bpf/mem.s create mode 100644 gas/testsuite/gas/elf/dwarf2-19.d create mode 100644 gas/testsuite/gas/elf/dwarf2-19.s delete mode 100644 gas/testsuite/gas/elf/section2.e-miwmmxt create mode 100644 gas/testsuite/gas/i386/avx512_bf16.d create mode 100644 gas/testsuite/gas/i386/avx512_bf16.s create mode 100644 gas/testsuite/gas/i386/avx512_bf16_vl-inval.l create mode 100644 gas/testsuite/gas/i386/avx512_bf16_vl-inval.s create mode 100644 gas/testsuite/gas/i386/avx512_bf16_vl.d create mode 100644 gas/testsuite/gas/i386/avx512_bf16_vl.s create mode 100644 gas/testsuite/gas/i386/enqcmd-intel.d create mode 100644 gas/testsuite/gas/i386/enqcmd-inval.l create mode 100644 gas/testsuite/gas/i386/enqcmd-inval.s create mode 100644 gas/testsuite/gas/i386/enqcmd.d create mode 100644 gas/testsuite/gas/i386/enqcmd.s create mode 100644 gas/testsuite/gas/i386/inval-avx512vl.l create mode 100644 gas/testsuite/gas/i386/inval-avx512vl.s create mode 100644 gas/testsuite/gas/i386/jump16.e create mode 100644 gas/testsuite/gas/i386/property-2.d create mode 100644 gas/testsuite/gas/i386/property-2.s create mode 100644 gas/testsuite/gas/i386/solaris/reloc64.d create mode 100644 gas/testsuite/gas/i386/solaris/solaris.exp create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-jump.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-1.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-mpx-branch-2.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-nop-3.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-nop-4.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-nop-5.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-relax-2.d create mode 100644 gas/testsuite/gas/i386/solaris/x86-64-relax-3.d create mode 100644 gas/testsuite/gas/i386/vp2intersect-intel.d create mode 100644 gas/testsuite/gas/i386/vp2intersect-inval-bcast.l create mode 100644 gas/testsuite/gas/i386/vp2intersect-inval-bcast.s create mode 100644 gas/testsuite/gas/i386/vp2intersect.d create mode 100644 gas/testsuite/gas/i386/vp2intersect.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16_vl-inval.s create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.d create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_bf16_vl.s create mode 100644 gas/testsuite/gas/i386/x86-64-enqcmd-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-enqcmd-inval.l create mode 100644 gas/testsuite/gas/i386/x86-64-enqcmd-inval.s create mode 100644 gas/testsuite/gas/i386/x86-64-enqcmd.d create mode 100644 gas/testsuite/gas/i386/x86-64-enqcmd.s create mode 100644 gas/testsuite/gas/i386/x86-64-inval-avx512vl.l create mode 100644 gas/testsuite/gas/i386/x86-64-inval-avx512vl.s create mode 100644 gas/testsuite/gas/i386/x86-64-property-2.d create mode 100644 gas/testsuite/gas/i386/x86-64-vp2intersect-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.l create mode 100644 gas/testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.s create mode 100644 gas/testsuite/gas/i386/x86-64-vp2intersect.d create mode 100644 gas/testsuite/gas/i386/x86-64-vp2intersect.s create mode 100644 gas/testsuite/gas/mips/elf_mach_i6400.d create mode 100644 gas/testsuite/gas/mips/elf_mach_i6500.d create mode 100644 gas/testsuite/gas/mips/elf_mach_p6600.d create mode 100644 gas/testsuite/gas/mips/llpscp-32.d create mode 100644 gas/testsuite/gas/mips/llpscp-32.s create mode 100644 gas/testsuite/gas/mips/llpscp-64.d create mode 100644 gas/testsuite/gas/mips/llpscp-64.s create mode 100644 gas/testsuite/gas/mips/mipsr6@dadd.d create mode 100644 gas/testsuite/gas/mips/mipsr6@hwr-names.d create mode 100644 gas/testsuite/gas/mips/pr14798-irix.d create mode 100644 gas/testsuite/gas/mips/pr14798.d create mode 100644 gas/testsuite/gas/mips/pr14798.s delete mode 100644 gas/testsuite/gas/mips/r6-branch-constraints.l delete mode 100644 gas/testsuite/gas/mips/r6-branch-constraints.s create mode 100644 gas/testsuite/gas/mips/r6-reg-constraints.l create mode 100644 gas/testsuite/gas/mips/r6-reg-constraints.s create mode 100644 gas/testsuite/gas/msp430/either-data-bss-sym.d create mode 100644 gas/testsuite/gas/msp430/either-data-bss-sym.s create mode 100644 gas/testsuite/gas/msp430/fini-array.d create mode 100644 gas/testsuite/gas/msp430/fini-array.s create mode 100644 gas/testsuite/gas/msp430/init-array.d create mode 100644 gas/testsuite/gas/msp430/init-array.s create mode 100644 gas/testsuite/gas/msp430/low-data-bss-sym.d create mode 100644 gas/testsuite/gas/msp430/low-data-bss-sym.s create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr-430.d create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr-430.l create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr-430x-ignore.d create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr-430x.d create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr-430x.l create mode 100644 gas/testsuite/gas/msp430/nop-unknown-intr.s create mode 100644 gas/testsuite/gas/msp430/preinit-array.d create mode 100644 gas/testsuite/gas/msp430/preinit-array.s create mode 100644 gas/testsuite/gas/ppc/bc.s create mode 100644 gas/testsuite/gas/ppc/bcat.d create mode 100644 gas/testsuite/gas/ppc/bcaterr.d create mode 100644 gas/testsuite/gas/ppc/bcaterr.l create mode 100644 gas/testsuite/gas/ppc/bcy.d create mode 100644 gas/testsuite/gas/ppc/bcyerr.d create mode 100644 gas/testsuite/gas/ppc/bcyerr.l create mode 100644 gas/testsuite/gas/ppc/prefix-align.d create mode 100644 gas/testsuite/gas/ppc/prefix-align.s create mode 100644 gas/testsuite/gas/ppc/prefix-pcrel.d create mode 100644 gas/testsuite/gas/ppc/prefix-pcrel.s create mode 100644 gas/testsuite/gas/ppc/prefix-reloc.d create mode 100644 gas/testsuite/gas/ppc/prefix-reloc.s create mode 100644 gas/testsuite/gas/s12z/dollar-hex.d create mode 100644 gas/testsuite/gas/s12z/dollar-hex.s create mode 100644 gas/testsuite/gas/s12z/reg-prefix.d create mode 100644 gas/testsuite/gas/s12z/reg-prefix.s create mode 100644 gas/testsuite/gas/s12z/truncated.d create mode 100644 gas/testsuite/gas/s12z/truncated.s create mode 100644 gas/testsuite/gas/xtensa/entry_align.d create mode 100644 gas/testsuite/gas/xtensa/entry_align.l create mode 100644 gas/testsuite/gas/xtensa/entry_misalign.d create mode 100644 gas/testsuite/gas/xtensa/entry_misalign2.d create mode 100644 gas/testsuite/gas/xtensa/j_too_far.d create mode 100644 gas/testsuite/gas/xtensa/j_too_far.l create mode 100644 gas/testsuite/gas/xtensa/loop-relax-2.d create mode 100644 gas/testsuite/gas/xtensa/loop-relax.d create mode 100644 gas/testsuite/gas/xtensa/loop-relax.s create mode 100644 gas/testsuite/gas/xtensa/loop_align.d create mode 100644 gas/testsuite/gas/xtensa/loop_misalign.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-1a.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-2.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-2.s create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-2a.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-3.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-3.s create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-4.d create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-4.s create mode 100644 gas/testsuite/gas/xtensa/text-section-literals-4a.d create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.d delete mode 100644 gas/testsuite/gas/xtensa/trampoline-2.l create mode 100644 gdb/alloc.c create mode 100644 gdb/cli/cli-option.c create mode 100644 gdb/cli/cli-option.h delete mode 100644 gdb/common/queue.h create mode 100644 gdb/fortran-operator.def delete mode 100644 gdb/gnulib/Makefile.in delete mode 100644 gdb/gnulib/aclocal.m4 delete mode 100644 gdb/gnulib/configure delete mode 100644 gdb/gnulib/configure.ac delete mode 100755 gdb/gnulib/update-gnulib.sh create mode 100644 gdb/maint-test-options.c create mode 100644 gdb/maint-test-settings.c create mode 100644 gdb/testsuite/boards/cc-with-debug-names.exp create mode 100644 gdb/testsuite/boards/cc-with-dwz-m.exp create mode 100644 gdb/testsuite/boards/cc-with-dwz.exp create mode 100644 gdb/testsuite/boards/cc-with-gdb-index.exp create mode 100644 gdb/testsuite/boards/readnow.exp create mode 100644 gdb/testsuite/gdb.ada/catch_ex_std.exp create mode 100644 gdb/testsuite/gdb.ada/catch_ex_std/foo.adb create mode 100644 gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb create mode 100644 gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads create mode 100644 gdb/testsuite/gdb.ada/frame_arg_lang.exp create mode 100644 gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb create mode 100644 gdb/testsuite/gdb.ada/frame_arg_lang/foo.c create mode 100644 gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb create mode 100644 gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads create mode 100644 gdb/testsuite/gdb.ada/length_cond.exp create mode 100644 gdb/testsuite/gdb.ada/length_cond/length_cond.adb create mode 100644 gdb/testsuite/gdb.ada/length_cond/pck.adb create mode 100644 gdb/testsuite/gdb.ada/length_cond/pck.ads create mode 100644 gdb/testsuite/gdb.ada/ptype_union.c create mode 100644 gdb/testsuite/gdb.ada/ptype_union.exp create mode 100644 gdb/testsuite/gdb.ada/vla.exp create mode 100644 gdb/testsuite/gdb.ada/vla/vla.adb create mode 100644 gdb/testsuite/gdb.arch/aarch64-pauth.c create mode 100644 gdb/testsuite/gdb.arch/aarch64-pauth.exp create mode 100644 gdb/testsuite/gdb.arch/amd64-eval.cc create mode 100644 gdb/testsuite/gdb.arch/amd64-eval.exp create mode 100644 gdb/testsuite/gdb.arch/riscv-unwind-long-insn-6.s create mode 100644 gdb/testsuite/gdb.arch/riscv-unwind-long-insn-8.s create mode 100644 gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c create mode 100644 gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp create mode 100644 gdb/testsuite/gdb.base/annotate-symlink.exp create mode 100644 gdb/testsuite/gdb.base/complex-parts.c create mode 100644 gdb/testsuite/gdb.base/complex-parts.exp create mode 100644 gdb/testsuite/gdb.base/coredump-filter-build-id.exp create mode 100644 gdb/testsuite/gdb.base/max-depth.c create mode 100644 gdb/testsuite/gdb.base/max-depth.exp create mode 100644 gdb/testsuite/gdb.base/options.c create mode 100644 gdb/testsuite/gdb.base/options.exp create mode 100644 gdb/testsuite/gdb.base/settings.c create mode 100644 gdb/testsuite/gdb.base/settings.exp create mode 100644 gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c create mode 100644 gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp create mode 100644 gdb/testsuite/gdb.base/start-cpp.cc create mode 100644 gdb/testsuite/gdb.base/start-cpp.exp create mode 100644 gdb/testsuite/gdb.base/style-logging.exp create mode 100644 gdb/testsuite/gdb.base/symfile-warn.c create mode 100644 gdb/testsuite/gdb.base/symfile-warn.exp create mode 100644 gdb/testsuite/gdb.cp/constexpr-field.cc create mode 100644 gdb/testsuite/gdb.cp/constexpr-field.exp create mode 100644 gdb/testsuite/gdb.cp/many-args.cc create mode 100644 gdb/testsuite/gdb.cp/many-args.exp create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-ranges-main.c create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp create mode 100644 gdb/testsuite/gdb.dwarf2/gdb-add-index.exp create mode 100644 gdb/testsuite/gdb.fortran/block-data.exp create mode 100644 gdb/testsuite/gdb.fortran/block-data.f delete mode 100644 gdb/testsuite/gdb.fortran/complex.f create mode 100644 gdb/testsuite/gdb.fortran/complex.f90 create mode 100644 gdb/testsuite/gdb.fortran/max-depth.exp create mode 100644 gdb/testsuite/gdb.fortran/max-depth.f90 create mode 100644 gdb/testsuite/gdb.fortran/pointers.f90 create mode 100755 gdb/testsuite/gdb.fortran/print_type.exp create mode 100644 gdb/testsuite/gdb.fortran/ptype-on-functions.exp create mode 100644 gdb/testsuite/gdb.fortran/ptype-on-functions.f90 create mode 100644 gdb/testsuite/gdb.go/max-depth.exp create mode 100644 gdb/testsuite/gdb.go/max-depth.go create mode 100644 gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc create mode 100644 gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp create mode 100644 gdb/testsuite/gdb.mi/mi-complete.cc create mode 100644 gdb/testsuite/gdb.mi/mi-complete.exp create mode 100644 gdb/testsuite/gdb.modula2/max-depth.c create mode 100644 gdb/testsuite/gdb.modula2/max-depth.exp create mode 100644 gdb/testsuite/gdb.python/py-nested-maps.c create mode 100644 gdb/testsuite/gdb.python/py-nested-maps.exp create mode 100644 gdb/testsuite/gdb.python/py-nested-maps.py create mode 100644 gdb/testsuite/gdb.server/sysroot.c create mode 100644 gdb/testsuite/gdb.server/sysroot.exp create mode 100644 gdb/testsuite/gdb.threads/vfork-follow-child-exec.c create mode 100644 gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp create mode 100644 gdb/testsuite/gdb.threads/vfork-follow-child-exit.c create mode 100644 gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp create mode 100644 gdb/type-stack.c create mode 100644 gdb/type-stack.h create mode 100644 gnulib/ChangeLog create mode 100644 gnulib/Makefile.in create mode 100644 gnulib/README rename {gdb/gnulib => gnulib}/aclocal-m4-deps.mk (100%) create mode 100644 gnulib/aclocal.m4 rename {gdb/gnulib => gnulib}/config.in (100%) create mode 100644 gnulib/configure create mode 100644 gnulib/configure.ac rename {gdb/gnulib => gnulib}/import/Makefile.am (100%) rename {gdb/gnulib => gnulib}/import/Makefile.in (100%) rename {gdb/gnulib => gnulib}/import/alloca.c (100%) rename {gdb/gnulib => gnulib}/import/alloca.in.h (100%) rename {gdb/gnulib => gnulib}/import/arpa_inet.in.h (100%) rename {gdb/gnulib => gnulib}/import/assure.h (100%) rename {gdb/gnulib => gnulib}/import/at-func.c (100%) rename {gdb/gnulib => gnulib}/import/basename-lgpl.c (100%) rename {gdb/gnulib => gnulib}/import/canonicalize-lgpl.c (100%) rename {gdb/gnulib => gnulib}/import/chdir-long.c (100%) rename {gdb/gnulib => gnulib}/import/chdir-long.h (100%) rename {gdb/gnulib => gnulib}/import/cloexec.c (100%) rename {gdb/gnulib => gnulib}/import/cloexec.h (100%) rename {gdb/gnulib => gnulib}/import/close.c (100%) rename {gdb/gnulib => gnulib}/import/closedir.c (100%) rename {gdb/gnulib => gnulib}/import/config.charset (100%) rename {gdb/gnulib => gnulib}/import/dirent-private.h (100%) rename {gdb/gnulib => gnulib}/import/dirent.in.h (100%) rename {gdb/gnulib => gnulib}/import/dirfd.c (100%) rename {gdb/gnulib => gnulib}/import/dirname-lgpl.c (100%) rename {gdb/gnulib => gnulib}/import/dirname.h (100%) rename {gdb/gnulib => gnulib}/import/dosname.h (100%) rename {gdb/gnulib => gnulib}/import/dup-safer.c (100%) rename {gdb/gnulib => gnulib}/import/dup.c (100%) rename {gdb/gnulib => gnulib}/import/dup2.c (100%) rename {gdb/gnulib => gnulib}/import/errno.in.h (100%) rename {gdb/gnulib => gnulib}/import/error.c (100%) rename {gdb/gnulib => gnulib}/import/error.h (100%) rename {gdb/gnulib => gnulib}/import/exitfail.c (100%) rename {gdb/gnulib => gnulib}/import/exitfail.h (100%) rename {gdb/gnulib => gnulib}/import/extra/snippet/_Noreturn.h (100%) rename {gdb/gnulib => gnulib}/import/extra/snippet/arg-nonnull.h (100%) rename {gdb/gnulib => gnulib}/import/extra/snippet/c++defs.h (100%) rename {gdb/gnulib => gnulib}/import/extra/snippet/warn-on-use.h (100%) rename {gdb/gnulib => gnulib}/import/extra/update-copyright (100%) rename {gdb/gnulib => gnulib}/import/fchdir.c (100%) rename {gdb/gnulib => gnulib}/import/fcntl.c (100%) rename {gdb/gnulib => gnulib}/import/fcntl.in.h (100%) rename {gdb/gnulib => gnulib}/import/fd-hook.c (100%) rename {gdb/gnulib => gnulib}/import/fd-hook.h (100%) rename {gdb/gnulib => gnulib}/import/fd-safer.c (100%) rename {gdb/gnulib => gnulib}/import/fdopendir.c (100%) rename {gdb/gnulib => gnulib}/import/filename.h (100%) rename {gdb/gnulib => gnulib}/import/filenamecat-lgpl.c (100%) rename {gdb/gnulib => gnulib}/import/filenamecat.h (100%) rename {gdb/gnulib => gnulib}/import/flexmember.h (100%) rename {gdb/gnulib => gnulib}/import/float+.h (100%) rename {gdb/gnulib => gnulib}/import/float.c (100%) rename {gdb/gnulib => gnulib}/import/float.in.h (100%) rename {gdb/gnulib => gnulib}/import/fnmatch.c (100%) rename {gdb/gnulib => gnulib}/import/fnmatch.in.h (100%) rename {gdb/gnulib => gnulib}/import/fnmatch_loop.c (100%) rename {gdb/gnulib => gnulib}/import/fpucw.h (100%) rename {gdb/gnulib => gnulib}/import/frexp.c (100%) rename {gdb/gnulib => gnulib}/import/frexpl.c (100%) rename {gdb/gnulib => gnulib}/import/fstat.c (100%) rename {gdb/gnulib => gnulib}/import/fstatat.c (100%) rename {gdb/gnulib => gnulib}/import/getcwd-lgpl.c (100%) rename {gdb/gnulib => gnulib}/import/getcwd.c (100%) rename {gdb/gnulib => gnulib}/import/getdtablesize.c (100%) rename {gdb/gnulib => gnulib}/import/getlogin_r.c (100%) rename {gdb/gnulib => gnulib}/import/getprogname.c (100%) rename {gdb/gnulib => gnulib}/import/getprogname.h (100%) rename {gdb/gnulib => gnulib}/import/gettext.h (100%) rename {gdb/gnulib => gnulib}/import/gettimeofday.c (100%) rename {gdb/gnulib => gnulib}/import/glob-libc.h (100%) rename {gdb/gnulib => gnulib}/import/glob.c (100%) rename {gdb/gnulib => gnulib}/import/glob.in.h (100%) rename {gdb/gnulib => gnulib}/import/hard-locale.c (100%) rename {gdb/gnulib => gnulib}/import/hard-locale.h (100%) rename {gdb/gnulib => gnulib}/import/inet_ntop.c (100%) rename {gdb/gnulib => gnulib}/import/intprops.h (100%) rename {gdb/gnulib => gnulib}/import/inttypes.in.h (100%) rename {gdb/gnulib => gnulib}/import/isnan.c (100%) rename {gdb/gnulib => gnulib}/import/isnand-nolibm.h (100%) rename {gdb/gnulib => gnulib}/import/isnand.c (100%) rename {gdb/gnulib => gnulib}/import/isnanl-nolibm.h (100%) rename {gdb/gnulib => gnulib}/import/isnanl.c (100%) rename {gdb/gnulib => gnulib}/import/itold.c (100%) rename {gdb/gnulib => gnulib}/import/limits.in.h (100%) rename {gdb/gnulib => gnulib}/import/localcharset.c (100%) rename {gdb/gnulib => gnulib}/import/localcharset.h (100%) rename {gdb/gnulib => gnulib}/import/lstat.c (100%) rename {gdb/gnulib => gnulib}/import/m4/00gnulib.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/absolute-header.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/alloca.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/arpa_inet_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/canonicalize.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/chdir-long.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/close.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/closedir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/codeset.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/configmake.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/d-ino.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/d-type.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/dirent_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/dirfd.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/dirname.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/double-slash-root.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/dup.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/dup2.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/eealloc.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/environ.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/errno_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/error.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/exponentd.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/exponentl.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/extensions.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/extern-inline.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fchdir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fcntl-o.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fcntl.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fcntl_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fdopendir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/filenamecat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/flexmember.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/float_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fnmatch.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fpieee.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/frexp.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/frexpl.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fstat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/fstatat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getcwd-abort-bug.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getcwd-path-max.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getcwd.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getdtablesize.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getlogin_r.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/getprogname.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/gettimeofday.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/glibc21.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/glob.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/gnulib-cache.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/gnulib-common.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/gnulib-comp.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/gnulib-tool.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/hard-locale.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/include_next.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/inet_ntop.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/inttypes-pri.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/inttypes.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/isnand.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/isnanl.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/largefile.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/limits-h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/localcharset.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/locale-fr.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/locale-ja.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/locale-zh.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/longlong.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/lstat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/malloc.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/malloca.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/math_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mbrtowc.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mbsinit.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mbsrtowcs.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mbstate_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/memchr.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/memmem.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mempcpy.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/memrchr.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mkdir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mkdtemp.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mkostemp.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mmap-anon.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/mode_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/msvc-inval.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/msvc-nothrow.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/multiarch.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/netinet_in_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/nocrash.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/off_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/onceonly.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/open.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/openat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/opendir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/pathmax.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/rawmemchr.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/readdir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/readlink.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/realloc.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/rename.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/rewinddir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/rmdir.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/save-cwd.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/secure_getenv.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/setenv.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/signal_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/socklen.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sockpfaf.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/ssize_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stat.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stdalign.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stdbool.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stddef_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stdint.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stdio_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/stdlib_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/strchrnul.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/strdup.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/strerror.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/string_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/strstr.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/strtok_r.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sys_socket_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sys_stat_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sys_time_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sys_types_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/sys_uio_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/tempname.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/time_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/unistd-safer.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/unistd_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/warn-on-use.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/wchar_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/wchar_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/wctype_h.m4 (100%) rename {gdb/gnulib => gnulib}/import/m4/wint_t.m4 (100%) rename {gdb/gnulib => gnulib}/import/malloc.c (100%) rename {gdb/gnulib => gnulib}/import/malloca.c (100%) rename {gdb/gnulib => gnulib}/import/malloca.h (100%) rename {gdb/gnulib => gnulib}/import/malloca.valgrind (100%) rename {gdb/gnulib => gnulib}/import/math.c (100%) rename {gdb/gnulib => gnulib}/import/math.in.h (100%) rename {gdb/gnulib => gnulib}/import/mbrtowc.c (100%) rename {gdb/gnulib => gnulib}/import/mbsinit.c (100%) rename {gdb/gnulib => gnulib}/import/mbsrtowcs-impl.h (100%) rename {gdb/gnulib => gnulib}/import/mbsrtowcs-state.c (100%) rename {gdb/gnulib => gnulib}/import/mbsrtowcs.c (100%) rename {gdb/gnulib => gnulib}/import/memchr.c (100%) rename {gdb/gnulib => gnulib}/import/memchr.valgrind (100%) rename {gdb/gnulib => gnulib}/import/memmem.c (100%) rename {gdb/gnulib => gnulib}/import/mempcpy.c (100%) rename {gdb/gnulib => gnulib}/import/memrchr.c (100%) rename {gdb/gnulib => gnulib}/import/mkdir.c (100%) rename {gdb/gnulib => gnulib}/import/mkdtemp.c (100%) rename {gdb/gnulib => gnulib}/import/mkostemp.c (100%) rename {gdb/gnulib => gnulib}/import/msvc-inval.c (100%) rename {gdb/gnulib => gnulib}/import/msvc-inval.h (100%) rename {gdb/gnulib => gnulib}/import/msvc-nothrow.c (100%) rename {gdb/gnulib => gnulib}/import/msvc-nothrow.h (100%) rename {gdb/gnulib => gnulib}/import/netinet_in.in.h (100%) rename {gdb/gnulib => gnulib}/import/open.c (100%) rename {gdb/gnulib => gnulib}/import/openat-die.c (100%) rename {gdb/gnulib => gnulib}/import/openat-priv.h (100%) rename {gdb/gnulib => gnulib}/import/openat-proc.c (100%) rename {gdb/gnulib => gnulib}/import/openat.c (100%) rename {gdb/gnulib => gnulib}/import/openat.h (100%) rename {gdb/gnulib => gnulib}/import/opendir.c (100%) rename {gdb/gnulib => gnulib}/import/pathmax.h (100%) rename {gdb/gnulib => gnulib}/import/pipe-safer.c (100%) rename {gdb/gnulib => gnulib}/import/rawmemchr.c (100%) rename {gdb/gnulib => gnulib}/import/rawmemchr.valgrind (100%) rename {gdb/gnulib => gnulib}/import/readdir.c (100%) rename {gdb/gnulib => gnulib}/import/readlink.c (100%) rename {gdb/gnulib => gnulib}/import/realloc.c (100%) rename {gdb/gnulib => gnulib}/import/ref-add.sin (100%) rename {gdb/gnulib => gnulib}/import/ref-del.sin (100%) rename {gdb/gnulib => gnulib}/import/rename.c (100%) rename {gdb/gnulib => gnulib}/import/rewinddir.c (100%) rename {gdb/gnulib => gnulib}/import/rmdir.c (100%) rename {gdb/gnulib => gnulib}/import/same-inode.h (100%) rename {gdb/gnulib => gnulib}/import/save-cwd.c (100%) rename {gdb/gnulib => gnulib}/import/save-cwd.h (100%) rename {gdb/gnulib => gnulib}/import/secure_getenv.c (100%) rename {gdb/gnulib => gnulib}/import/setenv.c (100%) rename {gdb/gnulib => gnulib}/import/signal.in.h (100%) rename {gdb/gnulib => gnulib}/import/stat.c (100%) rename {gdb/gnulib => gnulib}/import/stdalign.in.h (100%) rename {gdb/gnulib => gnulib}/import/stdbool.in.h (100%) rename {gdb/gnulib => gnulib}/import/stddef.in.h (100%) rename {gdb/gnulib => gnulib}/import/stdint.in.h (100%) rename {gdb/gnulib => gnulib}/import/stdio.in.h (100%) rename {gdb/gnulib => gnulib}/import/stdlib.in.h (100%) rename {gdb/gnulib => gnulib}/import/str-two-way.h (100%) rename {gdb/gnulib => gnulib}/import/strchrnul.c (100%) rename {gdb/gnulib => gnulib}/import/strchrnul.valgrind (100%) rename {gdb/gnulib => gnulib}/import/strdup.c (100%) rename {gdb/gnulib => gnulib}/import/streq.h (100%) rename {gdb/gnulib => gnulib}/import/strerror-override.c (100%) rename {gdb/gnulib => gnulib}/import/strerror-override.h (100%) rename {gdb/gnulib => gnulib}/import/strerror.c (100%) rename {gdb/gnulib => gnulib}/import/string.in.h (100%) rename {gdb/gnulib => gnulib}/import/stripslash.c (100%) rename {gdb/gnulib => gnulib}/import/strnlen1.c (100%) rename {gdb/gnulib => gnulib}/import/strnlen1.h (100%) rename {gdb/gnulib => gnulib}/import/strstr.c (100%) rename {gdb/gnulib => gnulib}/import/strtok_r.c (100%) rename {gdb/gnulib => gnulib}/import/sys_socket.c (100%) rename {gdb/gnulib => gnulib}/import/sys_socket.in.h (100%) rename {gdb/gnulib => gnulib}/import/sys_stat.in.h (100%) rename {gdb/gnulib => gnulib}/import/sys_time.in.h (100%) rename {gdb/gnulib => gnulib}/import/sys_types.in.h (100%) rename {gdb/gnulib => gnulib}/import/sys_uio.in.h (100%) rename {gdb/gnulib => gnulib}/import/tempname.c (100%) rename {gdb/gnulib => gnulib}/import/tempname.h (100%) rename {gdb/gnulib => gnulib}/import/time.in.h (100%) rename {gdb/gnulib => gnulib}/import/unistd--.h (100%) rename {gdb/gnulib => gnulib}/import/unistd-safer.h (100%) rename {gdb/gnulib => gnulib}/import/unistd.c (100%) rename {gdb/gnulib => gnulib}/import/unistd.in.h (100%) rename {gdb/gnulib => gnulib}/import/unsetenv.c (100%) rename {gdb/gnulib => gnulib}/import/verify.h (100%) rename {gdb/gnulib => gnulib}/import/wchar.in.h (100%) rename {gdb/gnulib => gnulib}/import/wctype-h.c (100%) rename {gdb/gnulib => gnulib}/import/wctype.in.h (100%) rename {gdb/gnulib => gnulib}/patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cross-comp.patch (100%) rename {gdb/gnulib => gnulib}/patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch (100%) create mode 100755 gnulib/update-gnulib.sh create mode 100644 gold/testsuite/icf_test_pr21066.cc create mode 100755 gold/testsuite/icf_test_pr21066.sh create mode 100644 include/ctf-api.h create mode 100644 include/ctf.h create mode 100644 include/elf/bpf.h create mode 100644 ld/emulparams/elf64bpf.sh delete mode 100644 ld/emulparams/elf_i386_chaos.sh create mode 100644 ld/emultempl/elf-x86.em create mode 100644 ld/emultempl/solaris2-x86.em create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-22.d create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-22.s create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-23.d create mode 100644 ld/testsuite/ld-aarch64/emit-relocs-23.s create mode 100644 ld/testsuite/ld-aarch64/erratum843419-adr.d create mode 100644 ld/testsuite/ld-aarch64/erratum843419-adrp.d create mode 100644 ld/testsuite/ld-aarch64/erratum843419-far-adr.d create mode 100644 ld/testsuite/ld-aarch64/erratum843419-far-full.d create mode 100644 ld/testsuite/ld-aarch64/erratum843419-far.s create mode 100644 ld/testsuite/ld-aarch64/erratum843419-full.d create mode 100644 ld/testsuite/ld-aarch64/erratum843419-near.s create mode 100644 ld/testsuite/ld-aarch64/erratum843419-no-args.d create mode 100644 ld/testsuite/ld-aarch64/property-bti-pac4-a.d create mode 100644 ld/testsuite/ld-aarch64/property-bti-pac4-b.d create mode 100644 ld/testsuite/ld-aarch64/property-bti-pac4.s create mode 100644 ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d create mode 100644 ld/testsuite/ld-aarch64/variant_pcs-1.s create mode 100644 ld/testsuite/ld-aarch64/variant_pcs-2.s create mode 100644 ld/testsuite/ld-aarch64/variant_pcs-now.d create mode 100644 ld/testsuite/ld-aarch64/variant_pcs-r.d create mode 100644 ld/testsuite/ld-aarch64/variant_pcs-shared.d create mode 100644 ld/testsuite/ld-aarch64/variant_pcs.ld create mode 100644 ld/testsuite/ld-arm/attr-merge-13.attr create mode 100644 ld/testsuite/ld-arm/attr-merge-13a.s create mode 100644 ld/testsuite/ld-arm/attr-merge-13b.s create mode 100644 ld/testsuite/ld-arm/bf.d create mode 100644 ld/testsuite/ld-arm/bf.s create mode 100644 ld/testsuite/ld-arm/bfcsel.d create mode 100644 ld/testsuite/ld-arm/bfcsel.s create mode 100644 ld/testsuite/ld-arm/bfl.d create mode 100644 ld/testsuite/ld-arm/bfl.s create mode 100644 ld/testsuite/ld-arm/bfs-0.s create mode 100644 ld/testsuite/ld-arm/bfs-1.s create mode 100644 ld/testsuite/ld-arm/branch-futures.d create mode 100644 ld/testsuite/ld-avr/relax-insn-at-range-boundary.d create mode 100644 ld/testsuite/ld-avr/relax-insn-at-range-boundary.s create mode 100644 ld/testsuite/ld-avr/wraparound-range-boundary.d create mode 100644 ld/testsuite/ld-avr/wraparound-range-boundary.s create mode 100644 ld/testsuite/ld-bpf/bar.s create mode 100644 ld/testsuite/ld-bpf/baz.s create mode 100644 ld/testsuite/ld-bpf/bpf.exp create mode 100644 ld/testsuite/ld-bpf/call-1.d create mode 100644 ld/testsuite/ld-bpf/foo.s create mode 100644 ld/testsuite/ld-bpf/jump-1.d create mode 100644 ld/testsuite/ld-elf/pr24511.d create mode 100644 ld/testsuite/ld-gc/skip-map-discarded.d create mode 100644 ld/testsuite/ld-gc/skip-map-discarded.map create mode 100644 ld/testsuite/ld-gc/skip-map-discarded.s delete mode 100644 ld/testsuite/ld-i386/pr18801.d create mode 100644 ld/testsuite/ld-i386/pr18801a.d create mode 100644 ld/testsuite/ld-i386/pr18801b.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet1.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet2a.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet2b.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet3a.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet3b.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet4a.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet4b.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet5a.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet5b.d create mode 100644 ld/testsuite/ld-i386/property-x86-cet6.d create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.dd create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.nd create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-1-r6.s create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-1a-r6.s create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.dd create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.gd create mode 100644 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a-r6.s create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-5.d create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-5.s create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-6.d create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-6.s create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-7.d create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-7.s create mode 100644 ld/testsuite/ld-mips-elf/pic-reloc-tls.ld create mode 100644 ld/testsuite/ld-mips-elf/reloc-pcrel-r6.d create mode 100644 ld/testsuite/ld-mips-elf/reloc-pcrel-r6.ld create mode 100644 ld/testsuite/ld-mips-elf/reloc-pcrel-r6.s create mode 100644 ld/testsuite/ld-msp430-elf/valid-map-foo.s create mode 100644 ld/testsuite/ld-msp430-elf/valid-map.d create mode 100644 ld/testsuite/ld-msp430-elf/valid-map.map create mode 100644 ld/testsuite/ld-msp430-elf/valid-map.s create mode 100644 ld/testsuite/ld-msp430-elf/warn-no-lower-code.r create mode 100644 ld/testsuite/ld-msp430-elf/warn-no-lower-data.r create mode 100644 ld/testsuite/ld-msp430-elf/warn-no-lower.r create mode 100644 ld/testsuite/ld-msp430-elf/warn-no-lower.s create mode 100644 ld/testsuite/ld-plugin/pr24406-1.c create mode 100644 ld/testsuite/ld-plugin/pr24406-2a.c create mode 100644 ld/testsuite/ld-plugin/pr24406-2b.c create mode 100644 ld/testsuite/ld-plugin/pr24486a.c create mode 100644 ld/testsuite/ld-plugin/pr24486b.c create mode 100644 ld/testsuite/ld-plugin/pr24486c.c create mode 100644 ld/testsuite/ld-powerpc/notoc2.d create mode 100644 ld/testsuite/ld-powerpc/notoc2.s create mode 100644 ld/testsuite/ld-powerpc/pcrelopt.d create mode 100644 ld/testsuite/ld-powerpc/pcrelopt.s create mode 100644 ld/testsuite/ld-powerpc/pcrelopt.sec delete mode 100644 ld/testsuite/ld-x86-64/pr18801.d create mode 100644 ld/testsuite/ld-x86-64/pr18801a.d create mode 100644 ld/testsuite/ld-x86-64/pr18801b.d create mode 100644 ld/testsuite/ld-x86-64/pr24458.s create mode 100644 ld/testsuite/ld-x86-64/pr24458a-x32.d create mode 100644 ld/testsuite/ld-x86-64/pr24458a.d create mode 100644 ld/testsuite/ld-x86-64/pr24458b-x32.d create mode 100644 ld/testsuite/ld-x86-64/pr24458b.d create mode 100644 ld/testsuite/ld-x86-64/pr24458c-x32.d create mode 100644 ld/testsuite/ld-x86-64/pr24458c.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet.s create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet1-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet1.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet2a.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet2b-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet2b.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet3a-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet3a.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet3b-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet3b.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet4a-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet4a.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet4b-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet4b.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet5a.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet5b.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet6-x32.d create mode 100644 ld/testsuite/ld-x86-64/property-x86-cet6.d create mode 100644 libctf/ChangeLog create mode 100644 libctf/Makefile.am create mode 100644 libctf/Makefile.in create mode 100644 libctf/aclocal.m4 create mode 100644 libctf/config.h.in create mode 100755 libctf/configure create mode 100644 libctf/configure.ac create mode 100644 libctf/ctf-archive.c create mode 100644 libctf/ctf-create.c create mode 100644 libctf/ctf-decl.c create mode 100644 libctf/ctf-decls.h create mode 100644 libctf/ctf-dump.c create mode 100644 libctf/ctf-endian.h create mode 100644 libctf/ctf-error.c create mode 100644 libctf/ctf-hash.c create mode 100644 libctf/ctf-impl.h create mode 100644 libctf/ctf-labels.c create mode 100644 libctf/ctf-lookup.c create mode 100644 libctf/ctf-open-bfd.c create mode 100644 libctf/ctf-open.c create mode 100644 libctf/ctf-qsort_r.c create mode 100644 libctf/ctf-subr.c create mode 100644 libctf/ctf-types.c create mode 100644 libctf/ctf-util.c create mode 100644 libctf/elf.h create mode 100644 libctf/swap.h create mode 100644 opcodes/bpf-asm.c create mode 100644 opcodes/bpf-desc.c create mode 100644 opcodes/bpf-desc.h create mode 100644 opcodes/bpf-dis.c create mode 100644 opcodes/bpf-ibld.c create mode 100644 opcodes/bpf-opc.c create mode 100644 opcodes/bpf-opc.h create mode 100644 sim/testsuite/sim/or1k/adrp.S create mode 100644 sim/testsuite/sim/or1k/fpu-unordered.S create mode 100644 sim/testsuite/sim/or1k/fpu64a32-unordered.S create mode 100644 sim/testsuite/sim/or1k/fpu64a32.S First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index cd631a1..c2d0274 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,74 @@ +2019-06-14 Tom Tromey + + * MAINTAINERS: Add gnulib. + * gnulib: New directory, move from gdb/gnulib. + * configure.ac (host_libs): Add gnulib. + * configure: Rebuild. + * Makefile.def (host_modules, dependencies): Add gnulib. + * Makefile.in: Rebuild. + +2019-06-03 Nick Clifton + + Revert: + 2019-05-29 Nick Clifton + + * configure.ac (noconfigdirs): Add libctf if the target does not use + the ELF file format. + * configure: Regenerate. + +2019-05-29 Nick Clifton + + * src-release.sh (do_proto_toplev): Add libctf to list of + directories that can be disabled. + +2019-05-29 Nick Clifton + + * configure.ac (noconfigdirs): Add libctf if the target does not use + the ELF file format. + * configure: Regenerate. + +2019-05-28 Nick Alcock + + * Makefile.def (dependencies): configure-libctf depends on all-bfd + and all its deps. + * Makefile.in: Regenerated. + +2019-05-28 Nick Alcock + + * MAINTAINERS: Add libctf. + +2019-05-28 Nick Alcock + + * Makefile.def (host_modules): Add libctf. + * Makefile.def (dependencies): Likewise. + libctf depends on zlib, libiberty, and bfd. + * Makefile.in: Regenerated. + * configure.ac (host_libs): Add libctf. + * configure: Regenerated. + +2019-05-23 Jose E. Marchesi + + * config.guess: Synchronize with config project master sources. + * config.sub: Likewise. + * readline/support/config.guess: Likewise. + * readline/support/config.sub: Likewise. + +2019-04-10 Nick Clifton + + * libiberty: Sync with gcc. Bring in: + 2019-04-10 Nick Clifton + + PR 89394 + * cp-demangle.c (cplus_demangle_fill_name): Reject negative + lengths. + (d_count_templates_scopes): Replace num_templates and num_scopes + parameters with a struct d_print_info pointer parameter. Adjust + body of the function accordingly. Add recursion counter and check + that the recursion limit is not reached. + (d_print_init): Pass dpi parameter to d_count_templates_scopes. + Reset recursion counter afterwards, unless the recursion limit was + reached. + 2018-06-24 Nick Clifton 2.32 branch created. diff --git a/MAINTAINERS b/MAINTAINERS index b09fbc0..4e04918 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14,7 +14,7 @@ Makefile.*; configure; configure.ac; src-release gdb-patches@sourceware.org bfd/; binutils/; elfcpp/; gas/; gold/; gprof/; ld/; opcodes/; cpu/; -BFD's part of include/ +libctf/; BFD's and libctf's parts of include/ binutils: http://sourceware.org/binutils/ Patches to binutils@sourceware.org. @@ -41,7 +41,7 @@ config.guess; config.sub; readline/support/config.{sub,guess} depcomp; mkinstalldirs Send bug reports and patches to bug-automake@gnu.org. -gdb/; readline/; sim/; GDB's part of include/ +gdb/; gnulib/; readline/; sim/; GDB's part of include/ GDB: http://www.gnu.org/software/gdb/ Patches to gdb-patches@sourceware.org. See also gdb/MAINTAINERS and sim/MAINTAINERS. diff --git a/Makefile.def b/Makefile.def index 75063b6..28bf61d 100644 --- a/Makefile.def +++ b/Makefile.def @@ -112,6 +112,7 @@ host_modules= { module= texinfo; no_install= true; }; host_modules= { module= zlib; no_install=true; no_check=true; bootstrap=true; extra_configure_flags='@extra_host_zlib_configure_flags@';}; +host_modules= { module= gnulib; }; host_modules= { module= gdb; }; host_modules= { module= expect; }; host_modules= { module= guile; }; @@ -128,6 +129,8 @@ host_modules= { module= lto-plugin; bootstrap=true; extra_make_flags='@extra_linker_plugin_flags@'; }; host_modules= { module= libcc1; extra_configure_flags=--enable-shared; }; host_modules= { module= gotools; }; +host_modules= { module= libctf; no_install=true; no_check=true; + bootstrap=true; }; target_modules = { module= libstdc++-v3; bootstrap=true; @@ -388,11 +391,13 @@ dependencies = { module=all-intl; on=all-libiconv; }; dependencies = { module=configure-gdb; on=all-intl; }; dependencies = { module=configure-gdb; on=configure-sim; }; dependencies = { module=configure-gdb; on=all-bfd; }; +dependencies = { module=configure-gdb; on=all-gnulib; }; // Depend on all-libiconv so that configure checks for iconv // functions will work. dependencies = { module=configure-gdb; on=all-libiconv; }; dependencies = { module=all-gdb; on=all-libiberty; }; dependencies = { module=all-gdb; on=all-libiconv; }; +dependencies = { module=all-gdb; on=all-gnulib; }; dependencies = { module=all-gdb; on=all-opcodes; }; dependencies = { module=all-gdb; on=all-readline; }; dependencies = { module=all-gdb; on=all-build-bison; }; @@ -426,6 +431,7 @@ dependencies = { module=all-binutils; on=all-build-flex; }; dependencies = { module=all-binutils; on=all-build-bison; }; dependencies = { module=all-binutils; on=all-intl; }; dependencies = { module=all-binutils; on=all-gas; }; +dependencies = { module=all-binutils; on=all-libctf; }; // We put install-opcodes before install-binutils because the installed // binutils might be on PATH, and they might need the shared opcodes @@ -516,6 +522,14 @@ dependencies = { module=all-sim; on=configure-gdb; }; dependencies = { module=all-fastjar; on=all-zlib; }; dependencies = { module=all-fastjar; on=all-build-texinfo; }; dependencies = { module=all-fastjar; on=all-libiberty; }; +dependencies = { module=all-libctf; on=all-libiberty; hard=true; }; +dependencies = { module=all-libctf; on=all-bfd; }; +dependencies = { module=all-libctf; on=all-zlib; }; +// So that checking for ELF support in BFD from libctf configure is possible. +dependencies = { module=configure-libctf; on=all-bfd; }; +dependencies = { module=configure-libctf; on=all-intl; }; +dependencies = { module=configure-libctf; on=all-zlib; }; +dependencies = { module=configure-libctf; on=all-libiconv; }; // Warning, these are not well tested. dependencies = { module=all-bison; on=all-intl; }; diff --git a/Makefile.in b/Makefile.in index 7814fe7..7a6700a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -942,6 +942,7 @@ configure-host: \ maybe-configure-sim \ maybe-configure-texinfo \ maybe-configure-zlib \ + maybe-configure-gnulib \ maybe-configure-gdb \ maybe-configure-expect \ maybe-configure-guile \ @@ -951,7 +952,8 @@ configure-host: \ maybe-configure-gnattools \ maybe-configure-lto-plugin \ maybe-configure-libcc1 \ - maybe-configure-gotools + maybe-configure-gotools \ + maybe-configure-libctf .PHONY: configure-target configure-target: \ maybe-configure-target-libstdc++-v3 \ @@ -1094,6 +1096,7 @@ all-host: maybe-all-texinfo @if zlib-no-bootstrap all-host: maybe-all-zlib @endif zlib-no-bootstrap +all-host: maybe-all-gnulib all-host: maybe-all-gdb all-host: maybe-all-expect all-host: maybe-all-guile @@ -1106,6 +1109,9 @@ all-host: maybe-all-lto-plugin @endif lto-plugin-no-bootstrap all-host: maybe-all-libcc1 all-host: maybe-all-gotools +@if libctf-no-bootstrap +all-host: maybe-all-libctf +@endif libctf-no-bootstrap .PHONY: all-target @@ -1198,6 +1204,7 @@ info-host: maybe-info-sid info-host: maybe-info-sim info-host: maybe-info-texinfo info-host: maybe-info-zlib +info-host: maybe-info-gnulib info-host: maybe-info-gdb info-host: maybe-info-expect info-host: maybe-info-guile @@ -1208,6 +1215,7 @@ info-host: maybe-info-gnattools info-host: maybe-info-lto-plugin info-host: maybe-info-libcc1 info-host: maybe-info-gotools +info-host: maybe-info-libctf .PHONY: info-target @@ -1283,6 +1291,7 @@ dvi-host: maybe-dvi-sid dvi-host: maybe-dvi-sim dvi-host: maybe-dvi-texinfo dvi-host: maybe-dvi-zlib +dvi-host: maybe-dvi-gnulib dvi-host: maybe-dvi-gdb dvi-host: maybe-dvi-expect dvi-host: maybe-dvi-guile @@ -1293,6 +1302,7 @@ dvi-host: maybe-dvi-gnattools dvi-host: maybe-dvi-lto-plugin dvi-host: maybe-dvi-libcc1 dvi-host: maybe-dvi-gotools +dvi-host: maybe-dvi-libctf .PHONY: dvi-target @@ -1368,6 +1378,7 @@ pdf-host: maybe-pdf-sid pdf-host: maybe-pdf-sim pdf-host: maybe-pdf-texinfo pdf-host: maybe-pdf-zlib +pdf-host: maybe-pdf-gnulib pdf-host: maybe-pdf-gdb pdf-host: maybe-pdf-expect pdf-host: maybe-pdf-guile @@ -1378,6 +1389,7 @@ pdf-host: maybe-pdf-gnattools pdf-host: maybe-pdf-lto-plugin pdf-host: maybe-pdf-libcc1 pdf-host: maybe-pdf-gotools +pdf-host: maybe-pdf-libctf .PHONY: pdf-target @@ -1453,6 +1465,7 @@ html-host: maybe-html-sid html-host: maybe-html-sim html-host: maybe-html-texinfo html-host: maybe-html-zlib +html-host: maybe-html-gnulib html-host: maybe-html-gdb html-host: maybe-html-expect html-host: maybe-html-guile @@ -1463,6 +1476,7 @@ html-host: maybe-html-gnattools html-host: maybe-html-lto-plugin html-host: maybe-html-libcc1 html-host: maybe-html-gotools +html-host: maybe-html-libctf .PHONY: html-target @@ -1538,6 +1552,7 @@ TAGS-host: maybe-TAGS-sid TAGS-host: maybe-TAGS-sim TAGS-host: maybe-TAGS-texinfo TAGS-host: maybe-TAGS-zlib +TAGS-host: maybe-TAGS-gnulib TAGS-host: maybe-TAGS-gdb TAGS-host: maybe-TAGS-expect TAGS-host: maybe-TAGS-guile @@ -1548,6 +1563,7 @@ TAGS-host: maybe-TAGS-gnattools TAGS-host: maybe-TAGS-lto-plugin TAGS-host: maybe-TAGS-libcc1 TAGS-host: maybe-TAGS-gotools +TAGS-host: maybe-TAGS-libctf .PHONY: TAGS-target @@ -1623,6 +1639,7 @@ install-info-host: maybe-install-info-sid install-info-host: maybe-install-info-sim install-info-host: maybe-install-info-texinfo install-info-host: maybe-install-info-zlib +install-info-host: maybe-install-info-gnulib install-info-host: maybe-install-info-gdb install-info-host: maybe-install-info-expect install-info-host: maybe-install-info-guile @@ -1633,6 +1650,7 @@ install-info-host: maybe-install-info-gnattools install-info-host: maybe-install-info-lto-plugin install-info-host: maybe-install-info-libcc1 install-info-host: maybe-install-info-gotools +install-info-host: maybe-install-info-libctf .PHONY: install-info-target @@ -1708,6 +1726,7 @@ install-pdf-host: maybe-install-pdf-sid install-pdf-host: maybe-install-pdf-sim install-pdf-host: maybe-install-pdf-texinfo install-pdf-host: maybe-install-pdf-zlib +install-pdf-host: maybe-install-pdf-gnulib install-pdf-host: maybe-install-pdf-gdb install-pdf-host: maybe-install-pdf-expect install-pdf-host: maybe-install-pdf-guile @@ -1718,6 +1737,7 @@ install-pdf-host: maybe-install-pdf-gnattools install-pdf-host: maybe-install-pdf-lto-plugin install-pdf-host: maybe-install-pdf-libcc1 install-pdf-host: maybe-install-pdf-gotools +install-pdf-host: maybe-install-pdf-libctf .PHONY: install-pdf-target @@ -1793,6 +1813,7 @@ install-html-host: maybe-install-html-sid install-html-host: maybe-install-html-sim install-html-host: maybe-install-html-texinfo install-html-host: maybe-install-html-zlib +install-html-host: maybe-install-html-gnulib install-html-host: maybe-install-html-gdb install-html-host: maybe-install-html-expect install-html-host: maybe-install-html-guile @@ -1803,6 +1824,7 @@ install-html-host: maybe-install-html-gnattools install-html-host: maybe-install-html-lto-plugin install-html-host: maybe-install-html-libcc1 install-html-host: maybe-install-html-gotools +install-html-host: maybe-install-html-libctf .PHONY: install-html-target @@ -1878,6 +1900,7 @@ installcheck-host: maybe-installcheck-sid installcheck-host: maybe-installcheck-sim installcheck-host: maybe-installcheck-texinfo installcheck-host: maybe-installcheck-zlib +installcheck-host: maybe-installcheck-gnulib installcheck-host: maybe-installcheck-gdb installcheck-host: maybe-installcheck-expect installcheck-host: maybe-installcheck-guile @@ -1888,6 +1911,7 @@ installcheck-host: maybe-installcheck-gnattools installcheck-host: maybe-installcheck-lto-plugin installcheck-host: maybe-installcheck-libcc1 installcheck-host: maybe-installcheck-gotools +installcheck-host: maybe-installcheck-libctf .PHONY: installcheck-target @@ -1963,6 +1987,7 @@ mostlyclean-host: maybe-mostlyclean-sid mostlyclean-host: maybe-mostlyclean-sim mostlyclean-host: maybe-mostlyclean-texinfo mostlyclean-host: maybe-mostlyclean-zlib +mostlyclean-host: maybe-mostlyclean-gnulib mostlyclean-host: maybe-mostlyclean-gdb mostlyclean-host: maybe-mostlyclean-expect mostlyclean-host: maybe-mostlyclean-guile @@ -1973,6 +1998,7 @@ mostlyclean-host: maybe-mostlyclean-gnattools mostlyclean-host: maybe-mostlyclean-lto-plugin mostlyclean-host: maybe-mostlyclean-libcc1 mostlyclean-host: maybe-mostlyclean-gotools +mostlyclean-host: maybe-mostlyclean-libctf .PHONY: mostlyclean-target @@ -2048,6 +2074,7 @@ clean-host: maybe-clean-sid clean-host: maybe-clean-sim clean-host: maybe-clean-texinfo clean-host: maybe-clean-zlib +clean-host: maybe-clean-gnulib clean-host: maybe-clean-gdb clean-host: maybe-clean-expect clean-host: maybe-clean-guile @@ -2058,6 +2085,7 @@ clean-host: maybe-clean-gnattools clean-host: maybe-clean-lto-plugin clean-host: maybe-clean-libcc1 clean-host: maybe-clean-gotools +clean-host: maybe-clean-libctf .PHONY: clean-target @@ -2133,6 +2161,7 @@ distclean-host: maybe-distclean-sid distclean-host: maybe-distclean-sim distclean-host: maybe-distclean-texinfo distclean-host: maybe-distclean-zlib +distclean-host: maybe-distclean-gnulib distclean-host: maybe-distclean-gdb distclean-host: maybe-distclean-expect distclean-host: maybe-distclean-guile @@ -2143,6 +2172,7 @@ distclean-host: maybe-distclean-gnattools distclean-host: maybe-distclean-lto-plugin distclean-host: maybe-distclean-libcc1 distclean-host: maybe-distclean-gotools +distclean-host: maybe-distclean-libctf .PHONY: distclean-target @@ -2218,6 +2248,7 @@ maintainer-clean-host: maybe-maintainer-clean-sid maintainer-clean-host: maybe-maintainer-clean-sim maintainer-clean-host: maybe-maintainer-clean-texinfo maintainer-clean-host: maybe-maintainer-clean-zlib +maintainer-clean-host: maybe-maintainer-clean-gnulib maintainer-clean-host: maybe-maintainer-clean-gdb maintainer-clean-host: maybe-maintainer-clean-expect maintainer-clean-host: maybe-maintainer-clean-guile @@ -2228,6 +2259,7 @@ maintainer-clean-host: maybe-maintainer-clean-gnattools maintainer-clean-host: maybe-maintainer-clean-lto-plugin maintainer-clean-host: maybe-maintainer-clean-libcc1 maintainer-clean-host: maybe-maintainer-clean-gotools +maintainer-clean-host: maybe-maintainer-clean-libctf .PHONY: maintainer-clean-target @@ -2359,6 +2391,7 @@ check-host: \ maybe-check-sim \ maybe-check-texinfo \ maybe-check-zlib \ + maybe-check-gnulib \ maybe-check-gdb \ maybe-check-expect \ maybe-check-guile \ @@ -2368,7 +2401,8 @@ check-host: \ maybe-check-gnattools \ maybe-check-lto-plugin \ maybe-check-libcc1 \ - maybe-check-gotools + maybe-check-gotools \ + maybe-check-libctf .PHONY: check-target check-target: \ @@ -2491,6 +2525,7 @@ install-host-nogcc: \ maybe-install-sim \ maybe-install-texinfo \ maybe-install-zlib \ + maybe-install-gnulib \ maybe-install-gdb \ maybe-install-expect \ maybe-install-guile \ @@ -2500,7 +2535,8 @@ install-host-nogcc: \ maybe-install-gnattools \ maybe-install-lto-plugin \ maybe-install-libcc1 \ - maybe-install-gotools + maybe-install-gotools \ + maybe-install-libctf .PHONY: install-host install-host: \ @@ -2540,6 +2576,7 @@ install-host: \ maybe-install-sim \ maybe-install-texinfo \ maybe-install-zlib \ + maybe-install-gnulib \ maybe-install-gdb \ maybe-install-expect \ maybe-install-guile \ @@ -2549,7 +2586,8 @@ install-host: \ maybe-install-gnattools \ maybe-install-lto-plugin \ maybe-install-libcc1 \ - maybe-install-gotools + maybe-install-gotools \ + maybe-install-libctf .PHONY: install-target install-target: \ @@ -2645,6 +2683,7 @@ install-strip-host: \ maybe-install-strip-sim \ maybe-install-strip-texinfo \ maybe-install-strip-zlib \ + maybe-install-strip-gnulib \ maybe-install-strip-gdb \ maybe-install-strip-expect \ maybe-install-strip-guile \ @@ -2654,7 +2693,8 @@ install-strip-host: \ maybe-install-strip-gnattools \ maybe-install-strip-lto-plugin \ maybe-install-strip-libcc1 \ - maybe-install-strip-gotools + maybe-install-strip-gotools \ + maybe-install-strip-libctf .PHONY: install-strip-target install-strip-target: \ @@ -28064,6 +28104,447 @@ maintainer-clean-zlib: +.PHONY: configure-gnulib maybe-configure-gnulib +maybe-configure-gnulib: +@if gcc-bootstrap +configure-gnulib: stage_current +@endif gcc-bootstrap +@if gnulib +maybe-configure-gnulib: configure-gnulib +configure-gnulib: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + test ! -f $(HOST_SUBDIR)/gnulib/Makefile || exit 0; \ + $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gnulib; \ + $(HOST_EXPORTS) \ + echo Configuring in $(HOST_SUBDIR)/gnulib; \ + cd "$(HOST_SUBDIR)/gnulib" || exit 1; \ + case $(srcdir) in \ hooks/post-receive -- Repository for Project Archer.