public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] tromey/python: Merge remote-tracking branch 'gdb/master' into tromey/python
@ 2015-05-20 18:14 jkratoch
0 siblings, 0 replies; 6+ messages in thread
From: jkratoch @ 2015-05-20 18:14 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2055010 bytes --]
The branch, tromey/python has been updated
via c8a8413e160d935c12cbc6e484dd8b7ab80f5f62 (commit)
via fca6ae69c41882f5adfba05da7d932b7c8bc2153 (commit)
via ce336788820b5d04700cdb9ead2ade880f5e2caa (commit)
via f09c556a25af178e4fdedf76b653921b1aea5767 (commit)
via 0b6e5e108599217c106f5fb63cd8ad7ec7028c5c (commit)
via 1da0522ea716f4c679cc1fe85c39459417ec2749 (commit)
via fa0b40e5c44154f5a402bed8c31e7d8887256590 (commit)
via 5fe75eec33c0f55536f09b2f3d692fb688a2c423 (commit)
via a40635885c50f14782d80251a8966bf4dd271f76 (commit)
via 84204ed7c0ccaa790dff8e124e710277d9a8abc9 (commit)
via 8f8a1b36a0962f87ab471d18e39be2c3b213034a (commit)
via b4477bc81824800248d44f141aeaf63e00314a01 (commit)
via 35d7c4317b85948f0a3e021d719811481d13fe45 (commit)
via 071f0063b422ed1f51a673c817a7656bab3e152f (commit)
via 80de0c6d618be3656fa5a82bf445e0cd1b4b16d3 (commit)
via df4227e4c6ec085abe2ca4d2a71889d7df023cb4 (commit)
via 4412c033caac38b5bad1bddffc40173a9de694cf (commit)
via 296730a52b06fe7dd658924acae1269a54015d52 (commit)
via 68880f311c1d5629c47c3ab9749061fe3138be63 (commit)
via 20ef91414ed2272cc379dcf8364f5f48eeff6362 (commit)
via 37442ce10aaa2f84d245631d38e25ee47e5057aa (commit)
via d976bace1c68aed43311651c1033c23b3c983094 (commit)
via 25070364b0ce33eed46aa5d78ebebbec6accec7e (commit)
via 4d18dfad9edf822df205edc2c1fe3fe9f1e467b8 (commit)
via bbec1a5db7d3de1322cdc5a859d0c2a44ae1231f (commit)
via 36de76f9cc2eea0bd5f1b7ce74ef60e1aa0b27c2 (commit)
via 83d3415ef530c41af7e1ae98a7add97adb0cf5e0 (commit)
via 3a9558c494e9b461f752ce26382701d4446f0958 (commit)
via 5c65b58a58a4c77b1ec38b4e31549aaa090b4845 (commit)
via 1c88ceb1bedc81dbfd1d076e4a49bbf533b4e238 (commit)
via 0b738f2744178ad33eeb60bcd9bdfb77adb5605b (commit)
via b6de3f9642c58439c31690255c3a4326728da88d (commit)
via 24da9638e206f9d83c0aa0bd419e16c9d97dd76f (commit)
via aa7151351ed16c5a4eb1334c9a1af1b06dbb7a99 (commit)
via 931e5bc3e19d1e279fc28c5cf5571f812c79b8d3 (commit)
via fd8008d83ce379a8d3f3bb9c3b1a723e16c401d4 (commit)
via 5db04b0965e3e7a9344a93de22caae3c111de2cc (commit)
via 0e602686df5677fee06cbd1718b4a7aa5379cd2a (commit)
via 4e63d0ac896b6036edd8e2c09a4dac7aa16a46d1 (commit)
via 452003ef2ca3e1cf81b17d960b59b8a8c167054b (commit)
via 52e48b3661a55d5f7cc29591780b844e47157c3f (commit)
via 2465e12e99c4ffd3e56e4725729cd3016d4e2c3d (commit)
via 13fa0398d7dd8d2b468acf0aba5610ce014709a6 (commit)
via 9cd4d857bb046ad9be3c6d978b5b2aebb528eaf4 (commit)
via 8dcea93252a9ea7dff57e85220a719e2a5e8ab41 (commit)
via d1c4b12b9d48d9266b78e2c22d70aa25830b9f8f (commit)
via 4bc0608a8b693f033555aa5705fdd5fc44cb9a9a (commit)
via 49a84e1373168f743fd6191035043389f0198a14 (commit)
via dab394de9e41de54df5e2310e081e1c550326f5b (commit)
via 61a7418ccb7c2de12d4c4df79e193f32db938a11 (commit)
via 1041a03c1b4d03c39033c8bb942148dc3e4b4acc (commit)
via e3555239e04fa6dba2a165b3b52598a880474a22 (commit)
via fdc3b1b1ef461fb81a53c9ce95117e5f134fc828 (commit)
via fd1c42387bead88edbd6043440462ada755f8d6e (commit)
via e6c9a083ec5ae7a45bd71682b26aae1939849388 (commit)
via d121800b7f1df96db2dc6ab1d1a86c51befde063 (commit)
via 08a76f8ab86efbd5c85c9bd3979c4c06b9e84258 (commit)
via 93b2e21d4a86e9bc0adf31071b33dc1e34603462 (commit)
via da0580a62bff4cdfa53ef6b491f5158cc7a5744a (commit)
via bd49952bd7fbe616e2cb488e8080502f2338aaa2 (commit)
via 46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc (commit)
via 8a6c40311297f60ad13827650fdde13da301b505 (commit)
via 109896905babca2d99e13f74bc887acf14cd1ab7 (commit)
via 5e9705017f5b257421136b8d7752b9c793335ace (commit)
via 1c4eb778a28447d764235b8810d382b40b2a054c (commit)
via f5f85ab95ff104eae872622ab3e2ad30a2b3d47a (commit)
via 5569a85f45e4df3563254cea4caa02c7cb092480 (commit)
via dc58915f3af581f32d575acd37e0cfe047c7990b (commit)
via 242cd84c933640b7cc82b9783d5ebb1d963e1c0d (commit)
via 1e04046d0b7e0f87bc6e2fefd966c9dd89d2ce13 (commit)
via 558e5469679897ee57ad6706074f55ff4952cf43 (commit)
via ebfd00d210ca6190239140b250499e194fd5af20 (commit)
via e69c76f4bfaf4c1b72f020f811afe03a5f7cd831 (commit)
via 31955f993de7b502b7a89bba4f9c9b0a34f90b2c (commit)
via aa9f7286724c2e47077f2f5456d464a961f8e8a4 (commit)
via 6604eb5f404cb2590ee417f45cf006442f976676 (commit)
via 5c0bbc5231dfd0331b6980252d1dae0b6d3c8812 (commit)
via a3747075ae478f27bf3e0643021a85fb6cdad0e3 (commit)
via 98624574ea8834b2084eb1f0ca7341feecc7329f (commit)
via 83769d0b125e2043aba13ff05a4e8d08014e08a5 (commit)
via 0d71eef55dc5ce12d9bfa3cefb40d81a9b5fa2e6 (commit)
via cbb8991cabdd85b7828f59c92f754c5a2101b0b6 (commit)
via c269dbdb603216de2be52f07f26e65ead7e11c7b (commit)
via 3a8a0396bed4e9dd87c2df0f68386a0f04dfc824 (commit)
via de0d863ec3fda88e488cee568f943c7998b68862 (commit)
via ddcbc3975fffffdb5bb3bfb05b1f0ef3d67be3ee (commit)
via 89245bc05692aaa107fa2884c032da21682edc72 (commit)
via 15eddee17fd772021fc3a331904e8f6b55b354c7 (commit)
via 835205d078aa3b78180da1512f8019ab064032e7 (commit)
via 5b155b955ab0f4b6db3a5edb049f8e4d5a712f4a (commit)
via fb4048adf7e4c6cbf8f45b4436ab7982a6d685e6 (commit)
via 70cead076728d1bc0d905b32fcb0c44c25f00ccc (commit)
via e83c417475ba1a0a4b0ef81c99382ac78dfde7f1 (commit)
via 5197d474361b4748e0339ae60e6dc9975f2313df (commit)
via 7e0a81123db953de03f6482f7c10f306407d348e (commit)
via 814860358c2e4194d372018dd1ae78b5c95a44d0 (commit)
via 7b6d09fbc60b12c196b25a9ebbb77ddc24e06334 (commit)
via 3d875af5759b6ac3d0a722ce8b598426c26bf46c (commit)
via bf64a9511f73684c4880fd1818928fdfa1725c4f (commit)
via 6c14750f48f179e0fed8abc34010de3e05ec2a54 (commit)
via 22abe5566abcf48d81c4b485de722f2634d394f2 (commit)
via 415158ef391683a5248eabe498693c34836c3a38 (commit)
via 4b71eec62785db0fe5f02b0da95f18b7b4a33df1 (commit)
via 4c082a81dfebcca45e4ee8cb90490ab733b8e017 (commit)
via 10a52f094ebbbed3f9d1b28a2ded94e43d500133 (commit)
via a72d2af2c76f82cc8a198919f73585e11d0a4c60 (commit)
via 504374b503c194bef5c6bcf432e6ef8481322880 (commit)
via afa6c9abf2c12c8e6155d088ea45e5091ca79c57 (commit)
via 35d54293c3a0fb5e8cd3a82a1e2a6e0481b615af (commit)
via 21e94bd9f0888034c094e02c75d382d75340326c (commit)
via b73c49b7f6691cf1debb14dbce5b3222a7190314 (commit)
via f7797074a5dc314f8922d2e90c1a4ea04b189c36 (commit)
via 519b5f619baa43f000ad18c079017bea8e7fc06a (commit)
via a4674e4efc0c93abd2865d5cf97da710fa3affae (commit)
via ae8714c2712ef9a179cfa9158a289bd400c0ad97 (commit)
via dd9f02a0ca7a9873717933345e393edb3d5da6bc (commit)
via 6ad395a7a64c9b49dab32a9178a8a07a96c17885 (commit)
via 8344af1e7bffd13add24bd02bc462d9389294fd2 (commit)
via 80b0912bff495fd51e34050637357aeb243eefbb (commit)
via 17d88f73c0e38b80a4c9180ab7ae5383f9d0fb05 (commit)
via df2eb078c0a88a44c49de7045a1c163f380a7efc (commit)
via 573cc2e57db66165b390044338d3a4ad51f36bf8 (commit)
via 422349a385c2ccfc1e66f5c65560e5bd5fc97953 (commit)
via 45614f153407762d83e8ecaf271b9b6e524c62db (commit)
via 2492f0d005f0390eabb3deb58aa7db7fcd716763 (commit)
via 63fc80ce17311913e41ccb671641310e4ce29eaf (commit)
via 7a261c91c8970fbcad7b00dc3e9c646319e74c50 (commit)
via b084df0b8d1262fb1e969c74bcc5c61e262a6199 (commit)
via 1c56a84d9bac1f6a451a89d2c6af3d7078c4290e (commit)
via 74850322e4882a195c92d5968defd93fe3deb75e (commit)
via 187032dbb8cc15a4a13243a89b32ba8c51e95a4e (commit)
via e26efa4066a5076f59427c927cc51c52b6b92f35 (commit)
via 851c90917fff745b94e29c1fec4f3d00ca36f598 (commit)
via 80ad801e90b5bd389ec156d37e28228fcbca128c (commit)
via f218b647aa21168473b973e3459258ba21ba8fbc (commit)
via b30a0bc387d63a28362bb08c351da32b50228530 (commit)
via 0d495746bb7ac93f3270443cae4117d6ae69ea05 (commit)
via 9e85c798e3f1314711e0a1c7f85780d52c6f9c75 (commit)
via f9911bebcab64889ec7ab3571305081741aa03e4 (commit)
via 9ac47a43ffc8e3c73867b9953145a8e7a227132d (commit)
via ed1fcdd119b422267d0ae54f216bd3f63cdc6425 (commit)
via 448eb63d72d960524ffe169f08419daf590b86d7 (commit)
via 03bbcd1c7a7b76888969861686788c34858f4f67 (commit)
via 7c5127443be1d3d0477b3b1d25875023992409bc (commit)
via 0fa7fe506c242b459c4c05d331e7c7d66fb52390 (commit)
via 3ea89b92fb0765075a27a3a0239552ae880722ff (commit)
via 2478d075da8f728137bbdaa68b049051c74f4254 (commit)
via 87b8eff03fa5cd49c4829656c3d36bb3386dd6be (commit)
via fc958966e47f622d738088509bacd0573a9db2c7 (commit)
via ca34b84ff68f5823e215a4d0b44b92f35cbb74a5 (commit)
via 62c67f3c1a10e4082641bafb7e7fd80c93b526b4 (commit)
via c3345124196f9d0439db35c16b5d24d1a305ccdd (commit)
via 75ea58593b839653b6d2bc69571a8a73e8adebe4 (commit)
via c7ad08e6e5ff0768f5f0aeed12864a7bab588386 (commit)
via 837a17b36c9e297f4bf33727e25dfa9f38360c17 (commit)
via b76f99d702c3501ac320396ea06bc7f9237173c3 (commit)
via e1765cdae248853eeaa56459057cf0c712c70922 (commit)
via 44b3de870e9ae54a6e4b55277040f9b267d026e8 (commit)
via 01a97082d0e93bd3ae7811908ce5466fc37101ec (commit)
via efc6fa128f00d61014f56530724767ea048bf594 (commit)
via 0138c3463da05ebddc8d864f6f251df48c454adc (commit)
via d62de9aa697946c9205bb973075ecefaf14195d7 (commit)
via f7d13551023d7a1aaa89a36f6a4bb197de165109 (commit)
via e81d5d059b485b37a6f8cfb44e563ad8b702df07 (commit)
via 00923338dec84505addaf9cdeca2e9c844757824 (commit)
via b633b7258d319687ac625da1f1b9be20e3bdaedb (commit)
via d6ad7351474f5959bbccb4031cbe7590567fd67a (commit)
via 0952813b0b27abe7f53a8048c0218883412e54cd (commit)
via b49f93f6995a5d23c752db103902314d4e23f761 (commit)
via 153a27763ccc9979fdb5f342e21eb1666c8f117b (commit)
via 914082d11b5de9509491615cce448ce937e91515 (commit)
via 8b2d793ce5ee03336d6c1d1f30b8d296cbe443de (commit)
via 7ce98c164ed42df085c1b3e08c5261e02320149b (commit)
via 5fccc63539a111f4087522316819cc8a4b28c6b0 (commit)
via 42d38f42dc1cdee90052db9aab54da8149ea2ee3 (commit)
via 97bf273d5d185d9e888bf56d776769d5e98e906f (commit)
via 2ce1cdbf84ce883b992bc8ffec3d29b4da229b72 (commit)
via 99b2a2dd3cd91ee45aba56a90b52be943001e8f4 (commit)
via 43c1d34c319626747c6765253294eb458a7bd93d (commit)
via 716f14132a51daae1224d93f9b1be4f018112b74 (commit)
via f9d3ecaa788c7969002f08459471a54a61b3c07f (commit)
via f24a38c5143e6515c91888223af045d2acaeebf0 (commit)
via ecbf2b3c4f5ee6c00cf058b87fa49708d4030d7f (commit)
via 0a13382c8e708fd9eb15dbc81cedc35e6670090c (commit)
via 998d2a3ef31378d3d980972dc68f4926b720a7e9 (commit)
via a93d5cb1976818c8d34133fd8798b3df76269f80 (commit)
via 5d239759c00a60a00986427b46c4f32e7fe3d616 (commit)
via 9081b64dc1b85a63466962adbc92d1c3e560a659 (commit)
via 34f5f757b389e8fb3eab64f816e484c2cc434292 (commit)
via 69b4374a87e5029ac4831c7a4471815514df662f (commit)
via 5e7cf0784c9b543b1870b974a78244c40105c523 (commit)
via 59fb7612ddee9219817a0c33b7d533b3d1c2aa41 (commit)
via 521f2feb982e5e0b7065f5096590c3a92c7c9ec0 (commit)
via a13eab064f93565e9af407a8a9e84f8558acd27e (commit)
via cea6e4f13a8df0eddbcdf643a4fc4727cbf770a7 (commit)
via f9c1b181a7e4985fbd7eb80365abe5a9ed7197a2 (commit)
via 24b73f8e74857245c0a7ea07c2a360237abcdfc0 (commit)
via a88d0bb33c28bc51c0f53cdd5c42d00217a1d771 (commit)
via d6e5e7f7fd90baad9cbfaa5a187b5f0b1a0b8cf6 (commit)
via ff862be47e7acf51e4abaf0f121d5961adb1845a (commit)
via da7119c99c41f60cb178b0b9729d9f7880f33c86 (commit)
via 2631b16a570626a276f1ce6528ff1cd2cc90ce76 (commit)
via faa2211d4d3dad3f381164cdb29d27b9108760ea (commit)
via 6ec65f28db6b718b505e2ee5c34a274ba07397ae (commit)
via 2eb639cbe4baa33545ca008d6054ea5db1d8f6a8 (commit)
via 9720679936fc4f710d718f13d903c7826e048a36 (commit)
via 63ed81829ea8819bc96b288f95230876b0060b14 (commit)
via d84f2dd3257a3062637059e4f8a85ee22d94865b (commit)
via d2b41ca0f9c5641a6b8f42c8013ba042cf5ba120 (commit)
via e58e05d677d33da3646721bdd225ec6e90424000 (commit)
via 8f60fe014dd0afdc1013fc22a3ef5ba01e94e331 (commit)
via 7a2a1c793578a8468604e661dda025ecb8d0bd20 (commit)
via cfbf0e3c5b637d66b2b1aeadecae9c187b825b2f (commit)
via 4fff86c517abb5ba454befe0ec0f284f720dde00 (commit)
via 5fbae7d108f4b885228cc657449905543c42c85a (commit)
via 180d40b903774d6c7bd8110ce4f77a2f5fb06e7a (commit)
via eb9d6cc91a423f7825a46317e1882e2e9297c76f (commit)
via 417c80f9e456477935cdc74461d35630dfdbfdff (commit)
via 4e65a17e62c7c2f3c0409d9769cca2e916a88379 (commit)
via 80f75320167acb66486124c6b03e715596e9c789 (commit)
via 6dbc9c045741c27435b9b23246c2113221b26c2f (commit)
via 9e19566105546654ab24b2b58c890fd7e2b9e00c (commit)
via 460efde16c5ce834f03d1a7525e453b508cb43da (commit)
via 643f7afb0d7f63dcff873d3cbfd7ed3eaf94197f (commit)
via 3b78cfe1033fafa6ca36c69cf8587c1bd96996ca (commit)
via 963a4320b49a3c55af02b36a492a10ba04a08e8a (commit)
via 4b9bfa2be0636852ba3bd1a19a484c15ef6e181a (commit)
via 2d369d8e973f1507689a7f200c16e154ec5d6c79 (commit)
via 36cca014bbfab0dec9c1ec2450762381df95261b (commit)
via e0f80dc1935f1ce48c7cb0e7974bb499aabb6da6 (commit)
via 44bd1acd55dcc15322a5c2d33442cd219ca320c7 (commit)
via b53b1bedbd90044714fc456843cadccce0f208f3 (commit)
via 69b52ab8c566575e4749acf0a04090491009af95 (commit)
via 6faec16b1c633a8043791e0d15d7e7f1c8d448c1 (commit)
via cf75d6c37e15e321e82e7f4ceebcf847b4f057fc (commit)
via dcbd20eb1499db937785881aca2f9584a330723c (commit)
via d9e88e902134b6febeef7156ecb6341a593b8c54 (commit)
via 08e2f2bbb4a4db51ad8476af6963998c9f6350e7 (commit)
via faade85139b04a1de96fb78aab6ad5c25b826d01 (commit)
via 897c3d327e2d60d996252c0a5cb13da3f40e9b9f (commit)
via de13ef81f041f7f51687ef1873c74e853b97e73a (commit)
via 7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db (commit)
via de7669bfa507d78f7abfe3d219b5aee9f346235e (commit)
via 63c72d1ae497cdf43db5347464a97164e720b83f (commit)
via b1fa9dd630eeb0a8282207cbbe399a25b2491412 (commit)
via 8cd00c5973529c6f7ed42bc361ca05eb3672ab99 (commit)
via 9361e6307bd1cf4f8f7c9de5375719ede8caa0cb (commit)
via 8dbe7ca5a5755274fca1d3021ad648a1575e66cb (commit)
via 30d72bc3359e12d10b53310963d62dae0978cbe5 (commit)
via 04651c084ee01f1889553d81f62bfe3d26e1df0c (commit)
via 005db9f99bda55139778b28813606715f879f7de (commit)
via ef1f8ff8cdb43a042f8af1e92753371dc958a452 (commit)
via 3e19fb8f990e4ce8a08f9cf2817cd9e9398648d5 (commit)
via ece794d9c43addc2a347c01f5cd753b9171d028a (commit)
via a100d66fb42044153dc0e93c96d7944dab0cc674 (commit)
via 65eb8c79be0c71f9b52d14563c0817fc5ca33c0d (commit)
via 2ca4ff6d5b2217faba14b80f88189a42520dcf8f (commit)
via f6fe1ccd62e4492aabda6a9a9d12da438d0ebf2b (commit)
via 4ef9fb2f075daec3885c63aa2056075bdd94384b (commit)
via 0a8031692eac62e2b3d74789d56cdfb38a5f91b0 (commit)
via 749ef8f891fb921cf7ad57062deae6fa8c13b501 (commit)
via 04d824a468650c632d228b977006139f17d646a4 (commit)
via af508cb92f8fa7eed6c7f2bd3a49d42701db5900 (commit)
via 8900d71e388043726fece2695b9b0ffc9a0d7afb (commit)
via 2ab52ca58f97a5a852f63df16ac64cfe8534210f (commit)
via a27e685fa0a6480bdb07e3be359558524cec89b7 (commit)
via 19947f5fbb8f9153d9681ebc9981cc7bb056e741 (commit)
via dfc0f57b741c12a94520c9ec7f726755eac1d2de (commit)
via f16eab5ffbd9128410241abc48edcd5871c91137 (commit)
via 68ffc90245e2e51ba5f096f166ae49262d461b5e (commit)
via 23942819fca67effa062a9639be5df3fb074b322 (commit)
via e6ad66bd097f17ec32c03462dd65b7f833fd49ab (commit)
via 776704b9178cce5741e96555ceca514d84824815 (commit)
via 0e5fabeb2c4b90857403995e14550210fe1cae71 (commit)
via d5597ebccca6761fb641b7fc99b6e8b56fbac6e2 (commit)
via 712e55b92481d89d01877a0668d8140029feca88 (commit)
via 8aae434443df61440ff5228f5c8fe3e5d4a38798 (commit)
via 819843c7029916120aa2929f80e0d7276177a7fb (commit)
via 43236bb2551a9783ff0de5e95bf75f905300eb06 (commit)
via f63036b811550ef12ab849ab55b35cd92403fda1 (commit)
via e53e5aab53a455c791fff754d72fd17cbbc6b4a8 (commit)
via 767e68f1b93be396e0cf1296a11584dd725b9569 (commit)
via 248d23e82bc9430cdb6424a5b6b48999cf4001db (commit)
via 0bca7f99d8fa254b5e35a211ee306a46b95adc65 (commit)
via 4b889c3013d7d45e2775781c3904b657419db2fa (commit)
via efdacec57ccde20bb53045e2930ef02e7e49416b (commit)
via e97029632cfacf9d8b65e2cf3051a932f19f9ebf (commit)
via be59ad3d96fa78d97193698eb7c6309489493712 (commit)
via e06efbf1c8198e25ef36a9787862f9720a94ba7b (commit)
via d3b47e2bd4f2924e965c586d3bf4d0b0cc6b40cc (commit)
via e771e4be1393b629bc243e2b5ee1e91850334d5a (commit)
via ee715b5a6c88dcd7d81a44e57cb4dfe4790a4259 (commit)
via 1586c8fbaf0116931ffacd1746a6540c81c2d438 (commit)
via 3cdf408c30480ce06ce5c7b156aab4c4601840e7 (commit)
via e31d7699a0b116025b48f1ab5214eddd2e56ef9f (commit)
via 110f91128cf3e047eb1e04d346c27d71cc33fb9c (commit)
via d214e5e79e38b18bc3786b3e8ba0e55fdbba294b (commit)
via d3e9b40afb8e7bd09522044951cdce4710676c3e (commit)
via 09b29ece9abb652983d4718aac0ff666d62d6790 (commit)
via 3ebe2863f79e04d841e6b97594ec032d2bfad1b8 (commit)
via e8d3a34fee495d7d44e6bf8e13d472b33f847635 (commit)
via 20bca71d82598a015de0991196e45f0b5f7ead81 (commit)
via 7e83aa92f2d986ba60f124287a9fd1e534fbbcf8 (commit)
via b9a7202de81202af1337d2cef22db5e3b5bca665 (commit)
via 8f61baf802b597c11fec288f840d9f7feb18eb0e (commit)
via 4277535cdc6ce6998cdc273bbe454f9ca2c23037 (commit)
via a4ea36c6cb13d100aacab3a90762597cef471b35 (commit)
via a2d5a9d76f2366ed93095fc5a63eafa06b22f808 (commit)
via deb44829ecc1dd38275af0fcf91acd319e227a89 (commit)
via dbbf180a8176d59eb04d20a681c0e77e2b0551a5 (commit)
via 059790a0c8f4672da9ed5a6289d1fd9edc0f169f (commit)
via ef7a936968ec4cdeadd19b0ccb213403adc26390 (commit)
via 1b6e6f5c7ffba559a681d11852acf38ef48dceff (commit)
via e57f1de3b37e17e1c80515f6e80ecb4ccd1bf0fb (commit)
via c78fa86a213db1bdef328437ac262a4f54577827 (commit)
via e0d86d2cbd168e083f3d077b8cfe67c3d03c1e5f (commit)
via a9a5a3d1d27fc443934ed4919f69b34144288cf0 (commit)
via af1900b01b378126d8826591be7b7ec0d18271d7 (commit)
via a10de6046fbd50e99742af428a815dcd94e2fba8 (commit)
via 92209ddfdc725c51d0368716ee316193deb24e8a (commit)
via c85fc61074e9fab1bafbae97ea4628c7bffaaf76 (commit)
via 034685f9ce92cf6dfb6656745365b6a5904a8e84 (commit)
via 27b97b40bca216097d16d53fa9408a70cd281479 (commit)
via 0fdc66e16e44210dd7468eb78a9c658d6f0b2b65 (commit)
via 5019d64a1ff6847a87f5af04bd7b8bc28f1dd9df (commit)
via e797481d53d846c8adb51576385fdf7f8cb272ac (commit)
via 1ca99c4299f4deed8765fbb1eb4f9aea40d919b6 (commit)
via 8550d3b32f4ac17bdb9e4768bb905da181b77ded (commit)
via af9fd6f863c9f184e2c84d8a4707b3ec7b8ca67b (commit)
via 04ff1e612ece7915c5c0f94c84f90f55e4c50059 (commit)
via 4c0cab1e212bd0f25879b00393bbb60e114ac724 (commit)
via 04be4e9eda6742d82fced4a3fc88b01f6cadc183 (commit)
via 09708981e919a887e8b2966e57b6df9ce8c7941f (commit)
via 30b3dd9d4701834573e6a6c071941c25d825cab8 (commit)
via 61d96d7e2e0a44336fc53eb79ccb59b41705cdb3 (commit)
via 3888916da84288994be10d6ae1a2db5b45b3f8f8 (commit)
via f24bcbaa5a6e30556e2da20bfd78e7823741475a (commit)
via 507bd32558eb1c0054b7989d52ac1ab25cc5b0ac (commit)
via f0fba320ab5effaff5255b5526a37f0987637e3e (commit)
via 6282837972a5c7b89968319caf821fcbd2a166bb (commit)
via 40d2f8d62e5474d984fb41e0229763ab93213fdb (commit)
via 6bbbba9ba5bcde0b2f4613e1bec3226cf567dcf9 (commit)
via 2bb2dcab455295cc23dec46f0150b15892ab4933 (commit)
via 41f071ef337ac55b7bd5366ef003fe47b809cdee (commit)
via 8cbc97c629061306efb30aa83440bec7380c584e (commit)
via ea556d2590ae9ffea09fdbaceb6abdbe4e921464 (commit)
via 45fd756cafe258b9792b86e1f5df823ec0b848b4 (commit)
via 78e9aa70febc3985a2c88dbc0c7a87d214231c3d (commit)
via f95f4ed2c4680fea68399691481b277ece11570e (commit)
via 0ce398f106dac65c3a1d2f7d254213fa652af089 (commit)
via ecd272101d27ed8d654cbab9972aa05c124f981c (commit)
via a644aa893248fc27c50140f9022c3a7472e0cb53 (commit)
via ec5b9462e068fba2a571ab3f3943c48250048d3c (commit)
via 95b57adeb751b56a1192867f9f1e1be2fad608dd (commit)
via 69cb14a0d7eebe90e60e911c9ab311553079c6d1 (commit)
via 6ff71e768112317de1236a429e7c88c9d3e32116 (commit)
via 9e811bc379ef78f0e2beadda9ed3ce6679ded7ea (commit)
via 326a5c7e368d49251ad48b2091388d8f424bfc54 (commit)
via 889c2a67967f7047c245779a0a0fd8ba8796846e (commit)
via 887bddbcad907021f4cb98168cd51f2631e6cfc8 (commit)
via af6407fc3c57a6fc9af11bab876d0865265197cf (commit)
via dd177e81b4d58a520b1a16e1c992a4ea94ab7de5 (commit)
via 97de3545ca6b690031cc00983346ed72f11e78a2 (commit)
via 0d2a7a932244fab27d6c4ce211ea8f7708a1a9cc (commit)
via 0ff6fcb2f0f2e3c0de3708ec41fb849d1461c9d7 (commit)
via 7578d5f72c4abb6b49b0394bc810192b06088705 (commit)
via 2efe15c42872987ed5123f3a3952c8b379554840 (commit)
via f0bf6bfd70fd550a0b01f8bef938a205702b0465 (commit)
via 8cd8f2f8ac49276437b7da37f275706ea1c1c925 (commit)
via bf12d44ee075e694a2b0dca87b9e9ca0e685d319 (commit)
via a542beff945c1a416f85309d57b21d4a18422883 (commit)
via 8c32ba22334b8be1c2cf412a789deeded786e1f5 (commit)
via 64f14c970716647f0761e921141873c75071100f (commit)
via 14c9ad2edb6e0bb0b560fa45699b83d85aa28b94 (commit)
via 7bebb329bbad32b948939c5f437b2b4eebe7e9fd (commit)
via bea3f671c5734eb96a02055fbaa0c938ad535b66 (commit)
via 8ac57fbde478b8e8fb0ba169f620d713be319260 (commit)
via 65f9096890a7bd7a7ea2655dcfb0e0a2589a753b (commit)
via d34f5e83d404d28d6a264fb09ac3cec79bf7bead (commit)
via a9d9677441e54816aa76ffd1736419ec096b4ef1 (commit)
via e787f858a43c9a6b54a74cec24f954b52619433e (commit)
via 29f1a5934a1b4b3b22aaeee2c4c471fbd95f0ba2 (commit)
via 48d96f80be260f0c8dbece14f886a0f1c1166d82 (commit)
via e46c4f6cc80e078ef5f7dd0a7dcc01740bea3e65 (commit)
via 263b1a3c1f9be7a3bafdb26d69f808974f886680 (commit)
via 2c008f9a5b65fe8d9379e761b056fabeb34a5da6 (commit)
via fd5a150943c9a99a568ea6459a5d70a24dee3755 (commit)
via 4f45d44599b232266c49ff470868efe6771832a0 (commit)
via e3c0e327923e27c7d96e6e44e22e10998ff158d7 (commit)
via fbed9c2759d43ea6991264c2e963660b5e9202d1 (commit)
via 3d9499950a94df8577fa01ba98ec0d58f07fd9c0 (commit)
via 9ee417720b2f25c56a9738569b63f686cbc8584f (commit)
via 07473109e11e41d979c33b839551ac1c6f8495b9 (commit)
via f74839702efcea048ac61374b1539ae81e7c86cc (commit)
via de3db44c87a30c67deb38fa9d43d2db3bc98c161 (commit)
via cb71640d030500888726d54a310c434a4d23b7b3 (commit)
via c79d856c88fbc58584d811c04b4812618aa6ac7b (commit)
via ebc90b50ce6377bf822c918eaf7c55bcd451ba45 (commit)
via 11e6e4c72cce2961f80e282cc4d859e7c266e17d (commit)
via 030aeb759908d7bcf1b87f3599bfa482a90ab6c1 (commit)
via 8f572e5c0f71fd6641768985855b2e0955a78f51 (commit)
via d07a1b059d790af3da88b9c750925d5a8db51250 (commit)
via 8d2ea2a80abad66250f2f4a1d38e3b8c796147f8 (commit)
via 8d707a12ef51ba5f4c3c6a52532e903da7a56b8b (commit)
via ef713951c571c8490ca57c17c88785c6df1ed840 (commit)
via 906d60cf467b2d5a20ff04dbc4805a84ef313229 (commit)
via 8c3fff59dc5cbf86c354770ad66cb146f4fa0143 (commit)
via e7a8570f75694284ea5bc909f095004f4ef938c6 (commit)
via 080bb7bbe9d06424be5a989ae87160d655d22e2e (commit)
via 6166ed9330a9afd41859d5a716cb9019c338a8ca (commit)
via 4f0d8f2d9f95ae5620e70c8b490fe6f534ffd5ce (commit)
via a6a177507c8b677e79b3440e36091cb0270c55b8 (commit)
via 18ece1defb99cf50dc7769444e3394c26329d497 (commit)
via 4b5708f5d9c229e07cdab66e863276ff22d47e39 (commit)
via 437ddf0c4cb63fdb68c4bd1cc155144db344d0c5 (commit)
via cd6faa73f8e3b888ee8b73a733382a5587aca202 (commit)
via 19424843891a0b9b0f9c2532cb7251813c4a8cf9 (commit)
via 4c2af04fe8b4452bf51d2debf1bb467fafcd0f08 (commit)
via 3439c466273378021821473d3fc84990e089ae34 (commit)
via 071aa5c98a31c966f5fbfc573fcee61350fd1936 (commit)
via b2b326d246f839ee218192ac88da2384d929a072 (commit)
via eba27bd7815b5d5e7bafc2bf37f9c4c7dda30ec6 (commit)
via 7823a9415b2919241f7a7425d9dcc3c62ada0779 (commit)
via 233723a43c5677ae6a5a8bd9c2ac54bae333fe26 (commit)
via f2983cc34ec64b01fabd0b5ca5af50ee690e1661 (commit)
via b88bb45061e0095a0bafce938363f3051a602dd2 (commit)
via 2f2680f33a356115fb31c932d3b983fcae89902f (commit)
via 3525236c57a64fdbb534671fd2b16f9f846d36f3 (commit)
via 5a2d4533e2b9cc9c069d47071013cb30f1e0fc7e (commit)
via 421693b020bf6e306c6c795541d0bd9dad0db1f1 (commit)
via f543dc83b84d8ebcd0899dfd16215b884b7762fa (commit)
via c8f4bfdd120601d3841b2617b623412a47b8f35f (commit)
via 82d8e420ab39cf227aa8e0869a54fb0a29b0a00d (commit)
via 11161a6e382f7585ed2971b3c8d5af1d5fa34b8c (commit)
via 6d62641c832525382336c1b04731d85cb6c398e7 (commit)
via f3770638ca377ff2bdd7cec2cb239d2909034690 (commit)
via febdfe65a81629bc2a764820c94f9d2912a90e38 (commit)
via 91fb4b1a83cb06e3e6d7b90075f4d8fda0a709d4 (commit)
via 31b94bbb7b178be4e688bd250a111b0848af5b76 (commit)
via 5150992626e67d2f6d1573737e06126bfb712c30 (commit)
via 85558555ec343f6e8ec32da409c838954e68132f (commit)
via 151411f8af16723a12e0e0eedc1ecdbea648c1b0 (commit)
via bfcf0ccd0131621213c5d6f2908cd703a90176f7 (commit)
via c58212eaf957ef39484ed71316074fd8366e9c4a (commit)
via 4496bed7f346afbb2f2b4f939373920a4d69da11 (commit)
via 2449132744a7081d1c8619da45cc9870d9c98fb3 (commit)
via 31ba1f58f81d79fb0e3d5bf3bce5a53adc8e14a9 (commit)
via d249a14abe5c2ee3ba4dc6c47e68e41ddc2025a4 (commit)
via b97fde9213b9217499959f7aebbf076b00c7008b (commit)
via f71c18e755dac28c61a5e5c94fbc8a84eb573679 (commit)
via 6423214fcb912a5d402ffcb84d6f61f2b900a900 (commit)
via 71c0ee8cb9d7d77e8b480aaad715cc5343737993 (commit)
via 203bc29be2b44cffa7a3d64c8a20a0fb6828518d (commit)
via 508a3ddf630dfc6e1fe67e2b117152bd64232226 (commit)
via a97902de74aba337b2ba28ff8f322f5b4a3602bf (commit)
via 9f6dbe2bbbdcc3694f264878e10c6b80285b4608 (commit)
via 3ea6077552ad86ebb441bef6e1bd40e18d06ab44 (commit)
via 8a06aea71e0aa9099d0ca593dbb58f6e056af4ff (commit)
via 87070c082fd5c23e9a0e7994ff9ea13f6faecb3e (commit)
via 0fad6e4b94e754e26e904bab074bf6c94d825711 (commit)
via d3e454b956b16d31998fec65a2508256e6357194 (commit)
via d9b67d9f4127191679c743d1f47d2421d6dcede7 (commit)
via 337532fab150dc531c92a31e179df96b98a619c0 (commit)
via ffa547701bec5b3fb92acf049e5442cbbfc95b2c (commit)
via 122bbfb52a7990dbed5f5da79cf8d9eb305ca7e3 (commit)
via dc081549e71d715a229becaf37d0909836c52a9d (commit)
via 7fa5525f8e8bc5d5e08998718149bda1928e314a (commit)
via 5368dcf2bae8f15e16cd14348bb7bd716bbc81cb (commit)
via 9dbb4b021df7015ab7a7dee40e30f72470afde6b (commit)
via dae148f3b925ba75459caec099932e31a1ad961b (commit)
via bf890a93a7c46f63fc0595189cf2b388e9a29316 (commit)
via 4aa90cc007ff1e7c6525b3f5e573e3a4242091fa (commit)
via fd5136e57ca26072fa015a7563ba019b1b2b7d73 (commit)
via 85317fbbca85af8786ba3ce0523a1b85b4457f09 (commit)
via 01b622d4c7536f20622bc0e23ff78b7fe37bc1e3 (commit)
via 2c26b84f4520591762dfb7f740fb85c15c21a2ea (commit)
via 7a85168daf6036fee808dac9944161415189f8a4 (commit)
via 1fa29f10602cd0ab395e0f83c9d87ab160b0df8a (commit)
via cbaa2d709747b9da2955761ec86cbee4340263e3 (commit)
via 77115a4a156052eb1542d16041115cc347da4a07 (commit)
via 317974f6831d8c7af613257e190e0dc3125bc4cf (commit)
via 20cc97536046f8aa883c3fba16aa1c9a2762f183 (commit)
via 024305f7f28b3b322ae26c5c1c2d23ca6f5c11bb (commit)
via aad84fa6aec2c3fcfebaa322cfdea7b47365e8fb (commit)
via eed64ce67576be638408a051e6df1057612a7f8e (commit)
via e56dbbb92fdfa714e7b9ba9d70da8ab0ae3558be (commit)
via 1d2d99379e358c2b3bc7a4e2d4ffd9b7925a83b4 (commit)
via 68f5ff89edd041719c0d45e1f716a5251d7be768 (commit)
via 906bacc0eaac3681a7d6da1bde73dcef7fd3ade7 (commit)
via 8bed4e0f7b0f82bff55798465bfef2a6986758d3 (commit)
via e268c0a63c2c4c60d54c07d1c3055cb0e62f6b40 (commit)
via af72fdacfd25568af684e859a60f2c711dbe7f89 (commit)
via 6aa76120296414774436cc14c60fe10fef86aa0f (commit)
via 25755e2b85e2bd5b313ea87f32000bf9a47dbbf8 (commit)
via 961f41602529c9cd4f88af6c02fb61fb55100e27 (commit)
via cbf0179287a799be27e278a41f7705d4c20d9f11 (commit)
via b366059a5b384ed822e44a6407b35ab1386b925f (commit)
via ef6f73553efece92e797b138cf02aaacce19574a (commit)
via f66adc4eada1884cef90aa978561b9b2008cdaf2 (commit)
via 03e080386e266243b2af667af026b992822085cd (commit)
via 4295609462ce6c0983064c10d95ff6bacce0cdfd (commit)
via 15c7659fd125da7d08cfe0f82f1795ab88f897d2 (commit)
via c1baaddf8861aea666b84baeb4746caff51a579d (commit)
via 726e626a7bdeaf5f828faf12e2c1e81504b8fb73 (commit)
via cafda5977a98aef514ff86daca2fa94205bdd34e (commit)
via 39f3de7c43926181f8f2f57bfa17d4fe9e5748a0 (commit)
via 7fed4b0be6aa0d0794b8536e9f80d128f0d9bbdb (commit)
via df7f7547a5cb6455ad07855482797860b71fb532 (commit)
via 599bd15cdae16c5c420c85cf4853fcfd769bce75 (commit)
via fed040c6a50399617d8265cbddc7fd21b3f134ef (commit)
via 64c0b5de8dfd68c54060b07d54b1edf8d22fc52b (commit)
via b57fbfba4b53434252fce55e323f08aeab556409 (commit)
via 97a41605e2473c67e82ef5147b4866768bd5a566 (commit)
via 2938e6cf0809cd81d1593f414ea5836812e68ed2 (commit)
via f08e97fed19e0722b6b36e7e638ee86a8aca7db5 (commit)
via 4bd7dc42558fcf53bb0c783f852f03dcac38866f (commit)
via 9b15c1f0419ae693fdcf6cca399e9a916e14c48e (commit)
via 3d5ff6205b2e62388280661769cc0555a58a1358 (commit)
via 1a8faa2aa652d8d6c6c3daa83b1dac35ee27e64e (commit)
via 6f20d58b6f9f7e4a239567f6245a580932f37adb (commit)
via 2412d878342e6fc36caf314826d6bfa8292d84c6 (commit)
via 246496bb652fa8571bfccd46886dd03598bae2b0 (commit)
via d11916aa89c43071c08c1f9b4550a01f8eec78e3 (commit)
via 79730a3b2683dba745663fa3b907f564bee8a0ef (commit)
via 0ceaf1ec964f8674c57c6a522cb38b6f758a0929 (commit)
via a0bde39842936bb13f88f13a688b181432aa2593 (commit)
via 6b403daae993621542c249c00ca1e6d3cfef1aa4 (commit)
via a14711808ece04167523a42f063ddb741e8ca866 (commit)
via 0bbeccb1eea844c2124eeb1e8d8d4a6cf7092d7a (commit)
via 1176ecec7082b4d6b4a3d965ef77726899c9eda2 (commit)
via de1fe8c8ab7f67856d9f2e2c5aa491cec01d3e85 (commit)
via e6f5c25b57546cbd88daccea4f1739c3f90f7560 (commit)
via c4fc4724a6afd605692b24c0af24c7e234dc5ace (commit)
via 918357b9556c9eaf81129ea6691bb6e461e80f86 (commit)
via 1ac806b8a7d0c09a0052751262f37336fb06bf6f (commit)
via 2ee52aa4283145a0f9417986b2f3d7f91e61b1b0 (commit)
via 3c724c8ca91ee8304ba355f681ccd906f0e9725b (commit)
via 5445da1b7656f82e7892d862895dfd9e7c16889c (commit)
via 4eec2deb06db4a59966fc0669bf861fd92a4b152 (commit)
via 4106101c449e53dd6b61ec824b196f84b3f3daa5 (commit)
via cf39cfc52ebd683d55fc396a77355f34b5094c04 (commit)
via afa59b79006af1572ceeebcd2ada5a13e483f6b1 (commit)
via 031f1448b68a9eae3392353857c7873f857c2221 (commit)
via 875b5b9d147d37c99a189aa95354f9bebdd64ef5 (commit)
via 16c1c9d6a6f485af1b5b1a54a74dc1ebb25b16c0 (commit)
via 41f98f0276aede918c3aca37aa6371c8a3c9fbe7 (commit)
via 6c1aca3e2d408ef4874bd882a7f0e2cd944bbf09 (commit)
via 269e9c185f67d477a99574f53ead904d50fddfda (commit)
via 0fe84f3fbe9a740c38a8dbaa0150b8e4c25c69dd (commit)
via aadc9410ba24ecf777fcc515afda69ef94d74248 (commit)
via 4a0bc59ef6e01733bb70950ad546c66e4c3317ea (commit)
via 42271ec540461c63c847d2bea6b6e9cc50524966 (commit)
via 4e791d0fb1173330424b69cfbdece9e1764186a6 (commit)
via 2ae0baa450dc21cf248cc932d05d9e1fd154e141 (commit)
via df8411da087dc05481926f4c4a82deabc5bc3859 (commit)
via 416f679e68468ea6dd7384213994ce74201f82e7 (commit)
via 6ac1079e5960e700b3a9034aab532970167095f4 (commit)
via 080bb2308591e6b41c7ffa13dedc531bd16b8be5 (commit)
via e38108740ee16fb38720cb5a1b824f889bb46cbe (commit)
via f85997a697553fb7053de89bafe36e3d71c6f784 (commit)
via 890ba06fb1eae846984a5e56ff8a79ea59108f88 (commit)
via 711a72d3d6f8cd3c3f408e718ff19aa4bfd2144e (commit)
via 518a69099cf8eca95a86c4d1ff4b8d8c30cf3c6b (commit)
via 6036f4862103dea22dcc1ee02cf31802872997b3 (commit)
via 6ef37366be4c2445b3efdba8520e0a4e7450581f (commit)
via 543b793377eb8c64f8c4e0e68cd3e6b39e857051 (commit)
via ed2b5077eb36d82ad7763d76fdd8e82d15f72b7a (commit)
via 9ae46699504c63af285d40ad8856a29300d318e4 (commit)
via fa1f5da0b6ff3622f9bf60e348e149b76920abba (commit)
via d33279b3bb1c89550b26e7b07e3610ab7f87e211 (commit)
via 71b30f27af091a16e6277e18ef574e0d2c0c55ef (commit)
via f24173ebf754866d4a1881a28dc2c07062c119d7 (commit)
via 0138187e9fc351c6d4615bbe2ab020a3ac646b50 (commit)
via 0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd (commit)
via b38f7f340bf021f9ad017cc88beddb9b0eaae06b (commit)
via 5a394431deb3745c04a74d2a109aca075f79afd6 (commit)
via 2b6ca06237301286016acc4b7bbf5338a27fd5fc (commit)
via f6862f27a73f08effd88d98c5efdb08abfcf4bb1 (commit)
via 13ce92227425999aa2666f4d55286193df7d09ca (commit)
via 6b0ad2ebf6024419c84f35552f4eb55aa0b23195 (commit)
via 5675acd9d4a62c4d402da7a436d810b29832d0e0 (commit)
via d2d67aea8e776d63a987f8dcdb96bc524df96e81 (commit)
via 49d62f892578dab739391b7309bc60ea2baeafc4 (commit)
via dbf8e8afcdf6bbec4ecaf911481b7fc9a4a01e87 (commit)
via 58b991b14e7c2e26805cb8cf98e384dbd8afcd38 (commit)
via c4c9c44f57763ef4acacb440cdf601f5ce087edb (commit)
via 20f796c9700ce22f0bf596ddf435bc6b48efbc15 (commit)
via bd53a53af486c6e5ab88b7f64342244392be1f1f (commit)
via 457983e3a30212740a599ffa7cbf5142ffe67367 (commit)
via 99956be1d73c5705b4032f9add2d3cfbf6b634a3 (commit)
via 541ebcee679ccda568b49af01b1da74387623386 (commit)
via a87686e5aa57d86a86b6deac8b4d47a86c69c950 (commit)
via 11558abc20f902a1fa3ea128809862787f642598 (commit)
via ef9535c6bc7c5d50d03e9f98498e018ac56e366c (commit)
via 2f783c1f4b23b194efa31e2015fb585b688c6526 (commit)
via e8713c0f026199c327ba88ea6da4bcffebff6991 (commit)
via 247ac9ee6e1ecea67d29a5712e77e8c64834b06e (commit)
via 4b0cc5edf489335509e155b5af0a0e754f4e3df9 (commit)
via 1e504675bdabc1861f2b2f515b6be3d99189e165 (commit)
via 5aedb83b9cbf22ce09719584479a21d905f438ff (commit)
via ca968da465a0d1fd153b158b7aa69730709f43db (commit)
via 4daf7a7c3a8404d8be973702ffe00541f71606a4 (commit)
via 970bed001b8238bbf25144810a26c9f7b242391b (commit)
via 2b4bc832a7668438827f5cdca9bf22adab85a915 (commit)
via 97eca187b3b286c903d78070736bbe1d95721ec4 (commit)
via 191ec03314b005b8189ecea7296f2f6cad534d09 (commit)
via 744b9a190b9b5b83d83f43d35b6ab6d20f49af8f (commit)
via 92fc6153a6fdf2a027d9780f5945712aafad4a9e (commit)
via 6dae8a88bf814b8729ad883c92c7b75fdccc7be1 (commit)
via 3c0ae3096245fcb94021f0ed61278aa89191ee59 (commit)
via b9d94d62d1197f7b26d93dba1532d7d005342bb8 (commit)
via 421fc49cd65550aca484cfd09b36e0ad0ab020a8 (commit)
via b51724e857c1066b0141f3989b521fb56e834aeb (commit)
via 243340ad57e30de3c15cffe6e4af0381995f15d9 (commit)
via ea6b7543b422836409fe7848abbfcb452ad26398 (commit)
via 525887679c4de93b8006b5013904dec8d19f12f0 (commit)
via 36cb69e0ed76e5381c723ed4e7137bb981deafd1 (commit)
via aac18a6996e57cd1d1c32d3fd418c4950c5001bf (commit)
via 4f5cce88bf504a2f0010f7ad384003984da6ce00 (commit)
via 2a2ec787bf7dc91869d4adb8d98159dc5a2773c0 (commit)
via 62454d3da2aaabb266e49a4ba22948484e91edc1 (commit)
via 5fa71a1b13a624feec5ff4b92ff1f92a26ff031e (commit)
via 02131c7ff660a5ca08147899429e6e7780d737aa (commit)
via ed4d32c28adc5f00ee9bc0e4ac785eeff5e1dc74 (commit)
via 6d89786cb31dcf9b1a4e5b6c7b88c15102e9381a (commit)
via 92c695a14f6a5a24b177e89624c13d7dbcbf9e1f (commit)
via 9943d3185abb9aa3e7269ece80d00e9020187ec6 (commit)
via eca5fe422e2650fcb6a551af11bcf8de181f97e9 (commit)
via 510d27512cb053e8a9f8c622a5f86840be8c21ac (commit)
via 102b920e11b6cd95addd59ea0eb08fac964fa8ad (commit)
via 5831e29bc1a17115b96141bf72fbc44200c6e014 (commit)
via 49d45b20c01da11b7493a5c28bdced7558999d6d (commit)
via f46e4eb78ba55e8bf8dedd98d7fe354729181710 (commit)
via 113d38f929631fa14da98731eebfe97a44d035ce (commit)
via 5e228181d4aa9177cb6a95ebe214aeaeb3a4ec3f (commit)
via 1c4ff0802b0c4c8c820dcec503ffea024ea68f45 (commit)
via e04de5e3b55b9f481ff2b9939995301ba6b1c748 (commit)
via 79498702ef5f743481ee39c18418776715addcd6 (commit)
via 0916f9e741d6fd9dab4b0602bef034d01fa71650 (commit)
via ce9c0ca18fe50e1e5a87b135032e4aeba415e2ab (commit)
via 72a9c03c27b4fa714c758fdf86d668f6402f5086 (commit)
via b84171287ffe60dd1e7c02262a0493862fa21a97 (commit)
via f3308340aba43e99aa448641a5d3db1c7fae60cf (commit)
via 7ec911b0fb0b27d66604c3f7951c146d94f4acc7 (commit)
via 429e1e811b400f07b5a514ea6b8a70b28e2d7ee9 (commit)
via 4593441bc5bcb7ec2e04b28591707cdebedd2e85 (commit)
via 852f8402ca36d36c794f5dfb17be8fa5d4a916ae (commit)
via ff908ebf8612a737d9e168eca0604ff6c97556bc (commit)
via f30d5c78faa5979fb933038923e5270b7728f96f (commit)
via 8d89f51a70a9a3cf74562324fc0391e4872a93b1 (commit)
via 0b736949a8752e899972d064da48ce7ca683c18e (commit)
via 93ca856967f274a08807135c098bf1bb3f2b59d8 (commit)
via 332f5759ac985415b721a72dab7475824253c0c6 (commit)
via 5ca28f792883afb409ae145666fc3662c3a3aed5 (commit)
via b19a8f8545100a08ee2a64c05631aff6f651faa1 (commit)
via 20d35291fb30a2fa5de46af56887f9bc4da7e53e (commit)
via 6d5f0679fe4ff7c3d8ec1d97646ee23b02564715 (commit)
via 2898689ba3a36451779ec526e14783c2aba9316b (commit)
via 8518049884947da598e2f585bf9a4589df7096e9 (commit)
via 8aa08a8dd596758904f1e994057c94bd655dda2e (commit)
via a1ddc52b53de43ed2fa201611fed550f9c4da014 (commit)
via 27c49e9a8fc004de116243ba8887e054f1190b42 (commit)
via c4e676f196560500d41ff8652d6be0c735758001 (commit)
via 618655192fca05a9aaebbd395b0960626cbfdebe (commit)
via d9ced15d6ea875aadd3e7395990eb37319454d71 (commit)
via 357d1523b2e5b0427fe4133cc90658026a7fac2c (commit)
via 66849923d2f6505b691f24dcb15797f2e0d969ec (commit)
via 11cc1b74538286b8bc775057fe1300707b3e3520 (commit)
via bb383c6cf1ea43193ef9f407a3b7c3bdee9f5fa1 (commit)
via 6a3753b34b7b4ff6b12d89ec1f6835799b54ef63 (commit)
via 1c4b552ba553c4dbbb066c9ef8667209553444ca (commit)
via d422d1c433073ba412287334a7ec3aa95e03c5e9 (commit)
via b422eb499be2858969fb7723b4e4e08cab20fcdc (commit)
via f6d5c6943ba1f32a640137fcba92aa046bbf86ed (commit)
via a25d8bf9c5b2c9d3671f4508c9132485c65c3773 (commit)
via 8d00121477371cfd1596118af062fe6ff4e263b7 (commit)
via 44a1ee517365cd120f0338c1f4dc5a85273d4e4b (commit)
via f3263aa47ec109871a124a1a2d5370e42a907690 (commit)
via 2bf6fb9d85394f90abb3e21ee037a732b6e4c983 (commit)
via 283a99589a0780a3b1fc011885b630bd9223ebba (commit)
via 93a8e2276fadd7dbb323d7cf4b082c33b32073d5 (commit)
via 64ce06e4cd025f3486465a0070baad47248ec69e (commit)
via 856e7dd6986d26b251d91b7fcd10c08fb57dc73b (commit)
via 885eeb5b8ea021cc79ffebe8ec40122229c572f0 (commit)
via 3333f03ae1b02b321717b4bc4887201ed4fc6a26 (commit)
via ad235a410aebf08ca67589891388774aa1d03562 (commit)
via fc42baf3cdc41bc8cf12e35ae78e4529c1470118 (commit)
via fc6d53be1893813f5017681a211dd20d560d8c58 (commit)
via 30068a6d2da1ba4b0248a270c7c958ef24a80416 (commit)
via 369f6daa21bf33a09ef67b002e4cec3595eddfe7 (commit)
via 8e5d40700492597d103ebdb68eab733456b66fad (commit)
via 2b95d4403883ba22687ecb81520855204348a7fb (commit)
via 14b0bc68e8a9f8e8fc3d27c64c7cf5f7c676cea1 (commit)
via 5dfe6ca8a8686a37fea66dff3b652e7f4f7fc90c (commit)
via d33472adfc6b6cdfd12f48e53ee0d6c96677717d (commit)
via 4b134ca10812e550d8d012cd6096f5229d59f7c6 (commit)
via 34c703da6cb01d8b41e1bfb790c3c2c625088b69 (commit)
via cff068da9d13bc9fa8c04f42151b4e92bfff86a1 (commit)
via b2f7c7e8b7046bf3dd99e3fb7329feb962a6bc7d (commit)
via 6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5 (commit)
via 70a0bb6b590bcfe304fe082d421feb52e0a0d4dc (commit)
via 7b6690874fa3a8afacd731b70a461d55a5b1311c (commit)
via 15630549010233e9d0f0b1971d27e121cd74bdd0 (commit)
via 5421cc6e55c7b3fba445c6085a05efb2a6f58505 (commit)
via e572930b96d8080ec80e65cfe85aaa8c4f7b2603 (commit)
via 8131c12209700f6e8cf16b09b5196da78a8066a3 (commit)
via 05f53ed611f0f7442f2b3a12b2829a18db6c2b59 (commit)
via 282c9750306eb544f65cfed5665eee2b84c7c770 (commit)
via 823d25713dd1d6aedc605e3da2007b54da9dff2d (commit)
via 596f88276cffbca82e3858da40db7e7cc7aa476e (commit)
via 1bf57e9a2ee7f468c2b2c125bda35a5bcd5923ce (commit)
via cc8ab1ded5dbc6c2ddb1b8c62f0e0f8f486a5f17 (commit)
via 523ba8f92e3ff4c49f65b582c89b4563b1b665ad (commit)
via c4a6006b2e1b42124c90ea86597be3df0a177a4e (commit)
via c0931f26e3923c75a3edc114175bb88dc11c5497 (commit)
via fe83b8a8d369e28dcfab42ee9f4b6d9cef3370c0 (commit)
via 97f478c5a490b391f02df4e81b6bc7f99676c74c (commit)
via 30452bbe7e68581cdb0cd5004e6c4d4d5c9536e8 (commit)
via 64dd13dfc267b1d13f42519f220e89a4386591fd (commit)
via 7722e5b8022b5177a1788a48c6c1c6d7b11315ef (commit)
via 4af3e7e0d3f7f419b718a5417080c20e4bcaa8c7 (commit)
via 66b0e85dcec9f7d268533208b5e4ab4630da1c44 (commit)
via c906b4b52b1617e5c65c9a6ff4de98d688d2a597 (commit)
via 9993d012337e2a404e9192869dd68051fe37e234 (commit)
via 8a4506c0329233bd99ddc7436b6588b9c7caf13d (commit)
via 236af5e336970a6b58cd17e0a2981bd96f3d09a0 (commit)
via 32b40af94e919e235c21486110311647cbeecf2e (commit)
via 693dca065a58bf2dd39df9cff019b0c65e15e132 (commit)
via 0578b14e990e76f3c2dd9010c4cb9201bc9fa4b4 (commit)
via 7e993ebf2343a5b39d6d1df29fdebc2818064ae5 (commit)
via c53ed7cf577806c9d7d658dec5b70b2de00ec825 (commit)
via 94a75bde2f02d90ef3a8ab4f1659117bfb3231c5 (commit)
via 35fee8b77bc6f90d86b19fcacb677a2670d036e8 (commit)
via 13f622ec5967f0a56d5876e7c7305c260cb4928f (commit)
via 665856756517ff4eb0c31c07f5c7e1666ccd4445 (commit)
via ef8575212574f5cca4426194d7428f900a573852 (commit)
via 2144188dcf696a50c6dbbacc1bf66645659e1fda (commit)
via 4c77202d000bab10f821a88c6da9664337f01f10 (commit)
via 9b9971aac7b89596695f15ed4763d9fd2b876ca8 (commit)
via 23956543da73914601924cb5e4db829082dfee83 (commit)
via e2cdef47b753f599cd1eaefdb4aea1d5d3b6a0e4 (commit)
via 3d14faea41888606f41466655aa1f0c6f0acf7e0 (commit)
via f872121a87fe4c16ec43623b75804b39612e62ef (commit)
via 499c37b59a9a6aed42c103ea6df8d6936b74504f (commit)
via 67f95b96b4d5e8e19520d94bebae92db2f67af74 (commit)
via 99067e2973a6bb1d3a52caafb479ebdc1a420580 (commit)
via 49cd1634b2a59879329c5a285192ac581e64904c (commit)
via 3649cb065699316bc8cd64b06f273c72f1806323 (commit)
via 80fc77e6c14835462fca0b7adc15655ce2e4bb99 (commit)
via 8a863336bb768e5e26781e904a029eb1f65ed4ec (commit)
via 1a504d0763fdfd69389d9270a793c4c9da4924b0 (commit)
via 152f702439a34bf20b74f472695490edb42ad56f (commit)
via bccffdfdf268a84533131d6e4d6208f9873892ee (commit)
via 1c582fe71858efabae951c5f3ed7dccfb23fb86e (commit)
via 410da591ba7814912e11be826b20dfba9abed9f7 (commit)
via 0d5bbdb0e1d193fa6f6804f2620fbdfc950c57a4 (commit)
via bd9e0d4628f1265c42516f90c4f162cefa787294 (commit)
via 71883406817425ea853f6a0dd7847f3e0a17dfc9 (commit)
via b1a0f704950296b2363192ba91999eef3635700f (commit)
via 5da7e675cd2acbbe2d2a614b17eeb2d02b5d331f (commit)
via d9823cbb391e015f79687f4d17d7f9a32d27b5eb (commit)
via 2e7bf1d7210ee79b93ba9ce4462e22e71097a102 (commit)
via 7a26bd4d83e5549137943de5f2c7b1ae90821093 (commit)
via cd46431bbd2f1dd90fbedee9a3bdbff705238c1b (commit)
via e28566f7d022e672bc7032d4951112359ad66d77 (commit)
via f6fc92f6711049c0d51cfe7027aa58255ae739b4 (commit)
via c32ed3ef8084f209c8ce2e9e0fecc91560245373 (commit)
via eef49a3d1a7e2ff70e142c7c7fd748f4625c05c9 (commit)
via b2333d22e0ead2d6f354c69760b6c6e0db161f02 (commit)
via 53e780858180511b194438c87d2f3a1c68804f06 (commit)
via bc23328cc108d8805f1d234b86e5a6b76d4a80d5 (commit)
via 80b8656cbaaf09b685c2f3c9dd96f61274ed7fb7 (commit)
via 4819f490bd2bc88bccf636755abf3d50b7f3850f (commit)
via e8ffc436d9d849eed52af64568d9f37aeaddbd9e (commit)
via d4828b9e888339533bc77a8ab7b258c4a5f6f200 (commit)
via 23f238d3456531db33456918f004dcc5ce151363 (commit)
via 7d1551f618db01514123433d358ae732d47ad629 (commit)
via 91baf43fa70827325272667c8e7a86c553c767dc (commit)
via 1740ba0cec44bdfe9cba586892a5953a4c602228 (commit)
via 8bf3b159e55b42bb084f9da1af400a285025618f (commit)
via eb54c8bf087f434b0cb91b35e7cde68a69ac9193 (commit)
via b90fc18880972f0c2ed280df20604d89f1d4ec38 (commit)
via e2575e05e73c3b2f08a8b5f579a504ac6a45ad60 (commit)
via 590d1e9a30f9180af725673fa06ea74fe822d21b (commit)
via 32d2e5d6404d8ebbff89408767084d7064178a4c (commit)
via 0b0732e13a9a40c9e894cc6aed1e899cff81251e (commit)
via d94077e27d279c4ff0ee26bad786f89c350e2aea (commit)
via 27aaeda0cdf9f69625b96e3abdb25c8fdbbb3435 (commit)
via 273a49858fa9c8d73de87167618ef99d70f9731a (commit)
via 670f82d437c21ec9c8f59a365336163e0381149d (commit)
via 464b0089f0068838a014a8fa27ea2eef536ebada (commit)
via f68f11b76de09dcb0d399814127fbf5227fe8245 (commit)
via b3862264bc6009a993685ee5e9dd2879a503e36a (commit)
via 091021faaa699c11dd50d9ff56d8713953666f65 (commit)
via 1757d5e7cf1ce94a2351f2a32d84a5883f50c8b9 (commit)
via 641754af2b76770f96d13ea2bce6b2804bb4f777 (commit)
via b9f9ea2f5dd6112e56b69f1cd9271c10b3b14ed8 (commit)
via 638fcdad6a0de44f6c91b503280207fc1f34ff9e (commit)
via 029f3522619e8b77a7b848be23f4c13e50087d8b (commit)
via 393bd0c06b64ff6076f28053cbd2fce352023c70 (commit)
via 5df8a8fcf1cdd7896b38f27e65938a8fc89ec2bc (commit)
via 7f3647e2ba4517be59ce531ec2297918b998fe3e (commit)
via c4b0b099b884e73d883f2b8c3ea8ffc9dc678902 (commit)
via 4d22acce0790d8a6f2457aaef99674790ca853e7 (commit)
via ca5fd19bfb2a41fae7696d67d1f4dce5d5a9053a (commit)
via 1b6c08316381961223fc3e1f9e3ba0547a53cce1 (commit)
via d9a4c83b863d32a86f82ff0c4d3c99d639cc52c5 (commit)
via 51f374927b3e417179af92a9be91a0f6c99b8173 (commit)
via bd51a4d5570d3e1dd9aae1e45db6ae087f2b645d (commit)
via b2121c33506a592a25c174b171e24e09af885bee (commit)
via 8869a24691490e5cb47045c1d732a27ea8408a2e (commit)
via 100d311943b10e9dba1685fbc95f08b9d7226ee9 (commit)
via 35fece71d50e1883e67fcd28c69245de4335b8b5 (commit)
via 3ce5b6e25ca2389c545282204b96064c00a13fab (commit)
via d053f6be557fa3bedd4ccbd969103dbb51a37439 (commit)
via b1a921c8c6f9e3d033629f32473c6470c360b43f (commit)
via 876d1cd7b5899e7927e298a7f7344a0da48425a9 (commit)
via b57dc16f06bbe31a5dad044556d12ecda138e1c3 (commit)
via 9c761a554184c2ded303c4929a7023b972b2fb9f (commit)
via ba14f9419d59571057d9675673bbf8b6032aa5fe (commit)
via feb703b3f4d3cb21ab50905359df7123e131a7dc (commit)
via 6cd5ace4db98987881c71e33dcae418fd258c38d (commit)
via ae7d0cac8ce971f7108d270c1d3f8481919b1e86 (commit)
via 9c5f41df36176d86afa65fc9b69b8fd6f6044547 (commit)
via a4f851ffab57821a4904a9a28d8503500b77200e (commit)
via 8406bb5944940a8830b37b97584dda3208a3d07d (commit)
via b19839da382a4755e91d0a943b6d89d13fd74972 (commit)
via 1303206d7f8de81c685f486c857d533d5bcf827d (commit)
via c2cdb853dc4aa9adf98a11c506b8783ce0655f18 (commit)
via 41cc895fc88dc6d69253fb29ad4ad85c3c851254 (commit)
via c1e768db524407c25d14fe693a931af9cb6d9ad4 (commit)
via 465fb143c87076b6416a8d0d5dd79bb016060fe3 (commit)
via b9005ba76ee501a809f2657b04bb2f2590829fa3 (commit)
via 5cddc23a3a0b855858e8eca93d6dd90aec00d914 (commit)
via 0800b440df695c9ee66c9337cef384c48fe45b16 (commit)
via 9312936603f4ed0de67aee3d1c4d714df16f995e (commit)
via e94dfb0747eb8094295fb7e0a7c20162355e6bcd (commit)
via 6914869aa73d6cd12121ed6b3e58e1564ef5575d (commit)
via 21e20815a20606a858f626e09944f29ee5ebee82 (commit)
via 61a12cfa7b25746914493cc0d94e5053a8492aa5 (commit)
via 25268153a182eef28d31ed2bc03ab7c6c0ab40e3 (commit)
via 773eacf5b0362c755ac47cb66d15d07558d9ce20 (commit)
via 4bf8c6e8986890caa482c845d2c4a0ff238c1e28 (commit)
via bc9706f8235a917f0b534f3790e2ac9981d53e94 (commit)
via a1894d43936b689945b0cf2ce696904606f40c5c (commit)
via 01b6bdb03c9286592871b3322ddbddc7b7350d03 (commit)
via 7ef0d2976a57c6cfde60281d67111969d7285d65 (commit)
via 93ef582debb0a179916965a882f4344223569219 (commit)
via 811a659a779fdf93293fe1105d99e9db171a8b68 (commit)
via 943c8b4393ca97b6c4805c724069028be6955b89 (commit)
via 97737159383af8af7a766ad3dade8ed0d11fa6a1 (commit)
via 10304ef3e85c6163f882757f58eb18f5178249ce (commit)
via badd37cec86e705a190e501ab26975d352718619 (commit)
via aa9e327f1e8552cd47cc8f4b9daa782930469e60 (commit)
via 0a93529c56714b1da3d7106d3e0300764f8bb81c (commit)
via 791c00567a7ccbae3d71e3b63ac43c0b555079dc (commit)
via 1390d0efa6a03a3780541aa8100c7b52402e793d (commit)
via 84a4591a7ba0c83c165cde85898086e9a4019b0d (commit)
via 85642ba08c459bb2f9d1e7beffa1871c9a93ca66 (commit)
via 92fab5a61707cd3b487219ea9efa0e410cde3bc4 (commit)
via e03f96456f2313854efff2377134af6cbda96af8 (commit)
via 5d0962b2e982eb8210df40cc23f5a47d0339e789 (commit)
via f054145ed2bad0aa0f57b2a4c3ca6988b213d1a3 (commit)
via 183961935e38267cf16cdcdcdfebcab07ab415d5 (commit)
via f728387b9adccc88edcde44f357f869e33943c6d (commit)
via 1079403cc002be65ea1c318160efc18c19965389 (commit)
via 50a0d119891f6128b10e8e95074349cc3cfe2070 (commit)
via 796ecec4cf37e5c97191a0cc8a0c5d308467401d (commit)
via 5656ba2c217cff434621d6caf135cbda5ae92ac4 (commit)
via b6370efb1efe39e62abd01e95c7957834c8bdf47 (commit)
via cfad873011d6399aa88bc6ddcb4c93dda5dad9b0 (commit)
via 6b1d7593a5eb7e64a38acd8bfce7bc4edca09793 (commit)
via c683726541cb8d3ff769f803fd7fae65db5c6f5c (commit)
via 5e0d7f77b20d74d2866e41b72697581c39f3197b (commit)
via 4e9aaefbd0042f5372509cd51ef2791a68aa30b0 (commit)
via c8f89a3423101b25e57bc8fd55b060ce2ac45a55 (commit)
via a578ef7ed49b677ecb16a709f70c7349bdefb319 (commit)
via a5721eddd18f4ba11adbc9bef0c6cb49a0cb69b4 (commit)
via 73f43896e3bfcb090552f359422857a0bedd77f6 (commit)
via 6defcd57e9df4f61cd0c59e3d9b66b6b071af808 (commit)
via a24582147f2c74603852e12bf312eede39f56c0d (commit)
via b2df3cefb124e3cab3a4bf0ba2f25fe8e1d25283 (commit)
via ef878e5310ed154450b84cdedd4dd248c7697a2c (commit)
via 411b642274178fe112712b11db805e6ac9e05d71 (commit)
via e16631979e847a6b39db3435bea7708b9f34b36d (commit)
via 9a9df97001814c87929826e6538762f3be07c4a4 (commit)
via 9eb1356e381f3412f53ffe5bc68ce854330600fb (commit)
via 43fa85d9a8d7aac7a70c72220abd09d39703208a (commit)
via ccf946cb5cea83165cf12a18dc946f39d8a8cfff (commit)
via 3e95021c775db2c483e87033ebef3d42ff99c7e0 (commit)
via d1771b76856741b8743fb47dbda993f73084bdb9 (commit)
via aac331e484bba9736f12602da3715c8f7e0f1a45 (commit)
via 366c75fc9183e46fe151aefb40f2d55a17815cb7 (commit)
via 72df25b28d68fd0b903380ceb06c6b5866eab453 (commit)
via 284e6217cf8f96c7648b13274431dcf73aa084a9 (commit)
via 6c63c96a22d216fb5d51c5d93646066d29e08ea1 (commit)
via 492d29ea1c9a8b2c7d5193908119a4e27c045687 (commit)
via ece957c859c00fbea7152a2275674d7061dc468a (commit)
via 7556d4a4f6c3181204e9575c08c661a632cafb5d (commit)
via f873665f447ee4e36883e3122a4e35c2cd049045 (commit)
via f6162ff58ec27d86814c015f80828ff410f698e7 (commit)
via 60a191edda5bb9c189df43542ab249ea530a3c73 (commit)
via 65164438aaf163aee0de40bcfab87dfd58f47b6b (commit)
via 61012eef8463764ccd9117dc1c9bc43cc452b7cc (commit)
via e80417caef36c7d5e3d1da6a3b396a872d9d7201 (commit)
via 9494d2199f5ce0cf2a4cf5628f23ae91d933955d (commit)
via 68901c4d439ebceecab927932c17ea1504747c02 (commit)
via 41cd1ad1b9760ba962fde607ac218b5af760dfbf (commit)
via 4fd77a3d12291cd9351e1f776a5ade11f99a28ac (commit)
via 2dcb2b1a4555c61d33dc9db264d824132b532f25 (commit)
via beb8418f4799b50ce414b7a63ac7a2a363dc8a05 (commit)
via 81fb971a3d8626d7e051ff5df807442c8d233329 (commit)
via ca3fe95e469b9daec153caa2c90665f5daaec2b5 (commit)
via a26de52c63a8b4da94e8e1c8b308b938b2434808 (commit)
via 425bd9e1bb32b25881dd20d76678d041f7bf04f8 (commit)
via f5771b1d96f844e0767a15b258b2de2d4cc52123 (commit)
via 7e848b1a6030a0eab1bb830ab02f9f4eef090961 (commit)
via 48c734280a17a1910ac484bd91a36792fb0041e1 (commit)
via dbe40a889191708b6e32441b1c64937844645574 (commit)
via a8d9763abd6c461d646034537633fb03f5eabfd1 (commit)
via 527a273ac1b6221cb37f601d211093233afc7aaf (commit)
via 3e572f71047489eb4f311b0fa15293a7ce83f871 (commit)
via 1ec68e26c982a256df03d22dce072b88ab117a73 (commit)
via faf09f0119da40d9b408021ad5665a906e00ee59 (commit)
via f7e6eed5283bb5c8a3598dd986dc922b9a794f58 (commit)
via 9e8915c6cee5c37637521b424d723e990e06d597 (commit)
via 15c66dd626380fbd7db6538b0c21d1fe86dda6c9 (commit)
via 1cf4d9513af10d419c71099ae644f07b6724642b (commit)
via be9957b82fa4e09c53521335c2a7dddf6d208309 (commit)
via 79639e11323e209d3dfd1355abac3b83a87c6878 (commit)
via d57be0f4420d42c62bb702f69c6d2a0dd5adef6a (commit)
via 98fc70d642895b7b43f196e19a004e07bd5f16e7 (commit)
via 4727d6136a997875c0f4a38bc7fde365474d4822 (commit)
via e85e8e5effcfa1a1834fdbf899e167da6dccd2cd (commit)
via 8ef229f32be156f374b8b5e3c63dba735a81fe55 (commit)
via 8e2fe09f70e721bfd8aaa0690537640a44538f25 (commit)
via 87de11c05253566abb04479a4842cc934d0c822e (commit)
via c214c7cfd38006369e1da13644000ce2e180a5fa (commit)
via 6d74a497ba4fc2ba67142310a9fad42e035ac9a7 (commit)
via d851a69aa2b4b6868c07386fd795521a0e93a09a (commit)
via df88b70224175011abf2cd599d5eec6fb81a90b7 (commit)
via 511aee7c3906063902415391f288460a2c116f26 (commit)
via e09ab7ac788fd5509adc40b86a3631a3028c1d33 (commit)
via bb3d65e427e2cf3a2fbe322443d36336e03545da (commit)
via 71eef2bd8dc3a37709908bf14a95c48b80c04c42 (commit)
via b072f6c163b25ec90d592ca42aeb56bc88e8da0c (commit)
via c1593e4fa9901c65a32e85c3c5d3ec41598be887 (commit)
via a64c9f7b850554956083678dd1ef330dd9a7cf22 (commit)
via d8282f0eb10a1a5759bcca4582098a8369f508f8 (commit)
via 90ad5e1d4f34d02f437ec12d1b65d7252f5b7f1c (commit)
via dd2ac17449b62de57f128f670b1783bb6728eac6 (commit)
via d68e53f47932eb7c374df9b90faed7aca2eed9d7 (commit)
via 986b66010c684a871f5606cb4f074d4e3d829e2f (commit)
via ce0dfbeaadee82ffae390e4515433d3b6b1e0084 (commit)
via 95e50b2723eba05ca34e9ea69c1de63e65ce9578 (commit)
via cfe6bf439228831f7bddb8160fb099d0e16215a6 (commit)
via 28054d694f6794d2866d22073117897e372803f2 (commit)
via 2c7b626ceef8ee50d6ef6fb575cfe55b93ef7a0f (commit)
via 5b07cd848db1dbe9e3498e94bea5e69c8e438153 (commit)
via 9a284c9794a7589edc01b5701efe5406a27b5b4a (commit)
via 00e474c2e96f9a56f128ee29fbdc36ac32d5e14a (commit)
via cc7039d31aefe14a31b5b6d8d3694e32bc22b486 (commit)
via 4fa5d7b436815f58688ec9245f24fc83263364b9 (commit)
via bf2d68ab8c9da89a7caec2abdd2cc27c607f4a04 (commit)
via 550bdf96cae94bc3e6c0f7e7e9a6793399dd8fe6 (commit)
via 446899e472025a04017064f5172105cec70eb357 (commit)
via daf220f0a7322ab97390d4ff33d0b4202267117d (commit)
via a07229507b48662c2d08957dca9e2d8ad16c407b (commit)
via c966a859b96f78920c16e1161578405d88b425cf (commit)
via 3ea9863f6b965a91d3307e8661edfc81ad3be410 (commit)
via acf1419f9c52d06ee70169b85c5f8980c7359f8f (commit)
via b7236fbee40060bcf5e90740a5c5706317749f91 (commit)
via 9028d9432c57fc0871479960f843ef4af194d5ac (commit)
via f01f1741df37f0330fbf2809df0ffddc992ff60c (commit)
via eb704cb6566cc4594099f49f8a215bab4fa7bbb6 (commit)
via 02e62830e26a0d3c0d47d4e09209cc04354765a6 (commit)
via c1d11331c9d84541b5002314f8cee2f302dd5763 (commit)
via bf36a1e7df75608045be60a5d16a1df207df3464 (commit)
via ad6aff7dead678cc0fa4f786fa59c6040c6fa758 (commit)
via 97c185659a35d249aa20c89674e3da2baf4b4352 (commit)
via a37bfa30016370992c59105fb4fd97cd3a264149 (commit)
via e992c591afd3e4f047ecad5afa49bdbde6c33eac (commit)
via 64166036b3de842d3e62e9471a2813b55643e3f3 (commit)
via 8a526fa69afd8ea7d2e303f80c03f9eb46211390 (commit)
via 0fa9c223ddc05a4b823bc7982dce8ba3b45d903f (commit)
via 7cf99fb1c72769c17eed0a62951698bf56432108 (commit)
via 1424c16eab1a96de054991c346c2bbf3eac82dec (commit)
via 10367c7c946a123597cbc5efaa44c18912e5e43a (commit)
via 4180215b9db1549b88da2da2fcc320fe28233481 (commit)
via 2f56f7c302c8d4012cc47d8bd261b151b2ddfa22 (commit)
via 570dc176ff0e33525c4c1db981de87aa0dce742e (commit)
via 68c14faadaf5bfd9816ac913dc8858116aa15a84 (commit)
via 749bab0110ddc56835bfe70765675577e3dea05a (commit)
via 3c14e5a39bb4fddd911ba49483c44a12294ae6ef (commit)
via 56000a9801956afa7622249f114da778afc8887f (commit)
via bcabf4207e7ba20f09e15141c6c3241862ac4aee (commit)
via 928dbe07562fa842a990d1c3aa65e12343426e68 (commit)
via 52059ffd6935427d02ee418be3eceeff6fd5c066 (commit)
via fe978cb071b460b2d4aed2f9a71d895f84efce0e (commit)
via 3bc3d82a005466a66fa22f704c90f4486ca71344 (commit)
via f0673d2040a49ecebfc0d3a03993d09fb4dd3e17 (commit)
via 07697489f4587e41f4f63aa526c1bd7d2fcd5494 (commit)
via cdb602b17548eeebb5e700c507d734ea5f887a49 (commit)
via 6f98576f29a70ed947f102015df0388bccc6aa1a (commit)
via eba5ab56cf54396325f855a39654964bb9e28a9c (commit)
via 96c20bc18d71ca5ae3335d48ff2b459d495032d3 (commit)
via a3976a7c56ec803f6ba141576cc56afe02663a8a (commit)
via 60abeae4f219a7a445d11ebaf72d2939413ffe80 (commit)
via f44466fb654c587908d417b016c16c0fd27bf415 (commit)
via f0666312fd86272e0234d5f7c92d8f65d5c6505e (commit)
via 73920eed1d5331150d6a0e3207aa653e10f0a1ac (commit)
via 0def5aaad6a89e78f09cef2b95635dc3254ce304 (commit)
via 330b17b30f85b091a214c2987de5dfef1e9733ac (commit)
via 2ae824de90cee5f16c444a79cc1b442eb9c2cedd (commit)
via 60d1b0d6a43b984b88da499f6bbc13cf729f0447 (commit)
via 1ada945d059789e05542ebf573bd9b7eab2a2654 (commit)
via 389b8029b69e2a4cdbc3a23d0ee9d5b3c974bd34 (commit)
via b480a4819bb85f0d8004cc0904e7a2eeb03cb2b7 (commit)
via 3c12b0543695609d96f818b2a60c74b624fc0ffb (commit)
via b108998791b5ac14ba97a0ca3f2e2ed8742f27bb (commit)
via 043bf05a3d8e4bf7706f7c038540b893ec075051 (commit)
via 74ad790c76cf890fc7f42d6dd5a4cebfde5cc0db (commit)
via 27228ca23e80c31ecbf3da261224b1d2ece4be83 (commit)
via 6f4a313ba49c84d9f8b266d8d90c9cedbd11b1bc (commit)
via 3e29ed9f07740a848432a1825c3fb466cdb98a4a (commit)
via 7366006f66f6b781832e397dd177ed8698d4fdc7 (commit)
via 07875fbce7911d7e6174d6398cec2872eb489613 (commit)
via 49d8f92c6e07977ede747163090b6a702f345629 (commit)
via 1db365dcdff81c772d4c22e73a86971016ebb6e2 (commit)
via d93c7787a0dd4261b8ac65a92a33196b62ef57b4 (commit)
via c86934ceee0971a04bbfc145c7b9a53357c25c91 (commit)
via 9beb7c4e1d403e1374096df3a16607132a8cfe84 (commit)
via 77b64a49e24dd4b5f4c7edb5d4030fe8aa1eec44 (commit)
via 06b73f4199944fb8a7d2c8874f91ed1deb7f4c44 (commit)
via 532f44ed674a74edc1ef1aa6fd7fed911413e1ba (commit)
via 081a1c2cede38dfb837e3d89539416fd836be4fe (commit)
via 2f41223f62de5d893bd6a4bd832293c2c3e80d91 (commit)
via c8071705c69a13d237aeca4709bf91deaff7e5cb (commit)
via 03eddd80d7c9b406109c43c07741c9991520954b (commit)
via 80c570537e380c1b8e48754c0ddbce2abcde2d00 (commit)
via e3ee40059d4a4e04d10e2b5c46bacd2a810355ca (commit)
via bd4d2eaad0f624bc47b2e27222480a44d1a48108 (commit)
via cf424aef0af89903abdd6c4e055684929e4990af (commit)
via c5cb74eeb3ea13a9fbeb0ec26b5bad10c4b92e4a (commit)
via 17487d857c372c01fb84b028062eaf1cdb41048a (commit)
via bb2b33b9395662e7562be34b47b9533620b583c6 (commit)
via 9357a9e66e08fea2a13446a4dfba2ceaf11da827 (commit)
via 99654aaf360c38a7bff69be8c175a78b83a7d263 (commit)
via a127494f2dcad834743e613be4cfea39511ad5ec (commit)
via e26e3344573513d33e99bca5c659bbbe3a9b647c (commit)
via 7173b38a442c007a554ea200817a0eadce89c87b (commit)
via bac13f5a4c05ed88d7c4639c37ad01bb7e305419 (commit)
via 137c83d69fad77677cc818593f9399caa777a0c5 (commit)
via fdd410ac7a07dfb47dcb992201000582a280d8b2 (commit)
via ac99436572d903781c124fa3cc72d83360202b76 (commit)
via 4469186b996eb84ee9341f4cdcd0f92c412b3f27 (commit)
via 21613c12d1822dcb71116ce8f386ff87719e104f (commit)
via ca7ae53a8669bd0a4c64d90072f42741f4c0ddd7 (commit)
via 9ad55e9b25ea4423413b46be0714fc5590f85eb6 (commit)
via 685080f2100373d1a45932521f9a24922a68d68f (commit)
via 31593e1b96c792abba3c5268d6423975aefa56b2 (commit)
via 94d15024fe3dff908ab570aaa741b1c834c856d6 (commit)
via 884151a7b8f1770a823e5017c8f5025802c44f24 (commit)
via 948f632f5671aa16c239507652d92f23f7713703 (commit)
via cb0728165e282be2ad9b121c8c1e9da98c9784e4 (commit)
via 0821d5b14efc2fb0c929ba077855cbc5e7a0932a (commit)
via 10d602c7f9c043a149741acaffb5bbd32f9bff6f (commit)
via 3ad797fd086ee8eb71041992877e6d169266b4b5 (commit)
via ec86f43468e2591127c493d67882de59dbfd79de (commit)
via ecfe5151674f7837eb05f0f05dea868586ce2848 (commit)
via b615dd209febdbf5f13e1c4e7667c172d65bd777 (commit)
via 7ee67ee4424a318e4c975ea61465d6e529da794b (commit)
via 8090aef2bf5021f35c94193a035eb1ecd5e25e41 (commit)
via d8b901edd1a9b717bd397400ce498c7a2d9504d0 (commit)
via fd63f640f645878605e4b4bc33ca31fb51583ecd (commit)
via 5518c738a47f0282d6fcc6768e1cde598e9538e0 (commit)
via 1f10ba14bc8c53120432ccc7b2ba5605b4cee80e (commit)
via f971c12fc5aca91875b2fff0a115611577d01909 (commit)
via 0f8f0c57ea4742ad2d9b0598a18243331c1c06e3 (commit)
via 8f3102ea1a9954ed00f84a9e3452a79e94953840 (commit)
via e5b85ead638e4916ee188698e434dd1940e484e4 (commit)
via cb967f0d6ce36d566d97cf37b298265434fb6db5 (commit)
via bc9540e842eb5639ca59cb133adef211d252843c (commit)
via a17b84dd9f9171bdfaee82f61ce6df9f65e94d0b (commit)
via 5634e839cc1af4629b3baae1138b0ddeebbacd71 (commit)
via be66981e1605eff305ac9c561825f4bd6801fca2 (commit)
via 85c3a371b327377ba1014e8962ba41554599d3e6 (commit)
via 96553a0cffb30d2ac6068eb71bed38ea7432073b (commit)
via e26473a140d91672765866857e2284e4a7f105b4 (commit)
via 96d67095792f5c8c0c91522820de861e54c37728 (commit)
via bb6ead917c6aa8159281cac13b603e43035dcea3 (commit)
via 0172ee3adcd28ffdc89f8288eb11924f4b1274d7 (commit)
via 20a0ffe33a7d43ba13eff917ec3f50b4f7644f81 (commit)
via df9bc4163b1331c8a4dad6830afeff4ff305a20a (commit)
via 53b5af48f6591c3120fb076f078188a4f117c2b7 (commit)
via 74f4df0028f256214ede2091cb102ffd496463c9 (commit)
via 9035ed511099fd79bc5a76d1ac457c0a8226a324 (commit)
via 97a0c6972eb9eb730df3817a95f351545a8f7cac (commit)
via a47cd6e95a6eeaae01c96b89880330c4c1db0c4b (commit)
via fa1824c2509a59ec6290d925865b80c30d954fb2 (commit)
via c5facdc449f43f79a7db6d7ec418caac18aa5c94 (commit)
via 2db9a4275ceada4aad3443dc157b96dd2e23afc0 (commit)
via 3b27ef472df3b4cdcdd54629281610d594c99c97 (commit)
via 1cc28231d23d8dd604d3482dd4bd46031d5a4052 (commit)
via afa8d396f6a952d17b348a981dd2c56f83305611 (commit)
via 60fb7e9efa12266437d28d19191e49e7f1e0013d (commit)
via 5c5019c27c5a4a73ec53281b4b69044f82b179f0 (commit)
via f3978e91005fc54b695779d3fc9c67f8e203d28a (commit)
via 4ef9f41a9538c9c7e4e540277e437b137cb64c4c (commit)
via dc049bf460bb1243aaaa48745bb8df64bbb3e1cd (commit)
via 4c4ca605d5332d4d5b0112932cbf379d82bb7d15 (commit)
via bb264c6411b43d08ef518df453dce7647cb9f91e (commit)
via 16218fd311d470f8f3540f4badee69f2ed14d854 (commit)
via f63c17760fab6fbf56ba500f7a8c746aa15b34a4 (commit)
via 07df97c8578023d1c9313bcec8aceef14de3e90b (commit)
via ffdf88ecd798f111b18060e6394b040a1accf7fb (commit)
via c9587f88230e9df836f17c195181aaf50c3a1117 (commit)
via 53cf2ee0d933ac4d95530555854a6f8d3cefc2e8 (commit)
via db95bb7c5946a109e1584ab2c43c052ff39e63bd (commit)
via 837914eeb43cd0231cc3c25e8644f0d6190034e6 (commit)
via dfaf2c472c619338d2dbf4e3a72a251dd45c34c0 (commit)
via cf18fda46276a088b0b2ee60a84f8670de2ef4c0 (commit)
via 5c9352f317d63cab0ebe512a8461e5256b6a913b (commit)
via d983c8c5503d680c6d4955ceb610a9beebc64460 (commit)
via 8545136955641adbf35e121fbbfc8cd5fd06e4a7 (commit)
via acfe0940a8c5a23111aaf44d70e7ad582c775f63 (commit)
via c4ef48c6b22472f197eeefbda1d9fb295ff61a77 (commit)
via f6a88844c36e2c03806563c9703b92af6ba0b345 (commit)
via e3ee8ed41b6a4365897d776cc181a1bd813010c6 (commit)
via 4398b0e490f5f0f0feadfbf0e38867a49fcce436 (commit)
via 3a935c6cf98c47eaac4395622bfaf2ff517abd34 (commit)
via e0a1e121b39ac99e76b77b73cba1db40ef75c7c8 (commit)
via 45a4fb1a700abeb4b3d8315b312ab31eee8efe72 (commit)
via b05e3b0dd2a257f7f0c1e23ff4c36f369438ea81 (commit)
via 3133f8c11fd2e18b9f5ffd35bb26410dc61a69c5 (commit)
via 497c491beac9bc95f62ccecbd9fbab98638fc1f2 (commit)
via c3e3045e5ce820055e2823e8c5b03b0e99a4b514 (commit)
via d4777acbc94f3fb210fad9f97133ab3e9f1ccc57 (commit)
via 8b367e1771078f3cfc8c0fa2d5c5d5e9656c8fb9 (commit)
via 9aca2ff83e4299875343cb07add9c0ef7e5f3188 (commit)
via 03e98035a2a5d928ceb36ddd7b43369fbf72a008 (commit)
via 6f9b84910f8cabf565598f499258bbea51cc06d4 (commit)
via 2ec55de302e4a6c49a06c673c8262a119fa6226f (commit)
via 69efdff130b843838e791065335b44d5f91f7075 (commit)
via f8e5e23e3dc46042fcf5fad6013e6fa8db13ec43 (commit)
via 9f2e07213aa91f1882112df3e0d227638b7a085b (commit)
via 2d9afefe223de983d6e86b5de9da0e5650057ac9 (commit)
via e9c1bdad269c0c3352eebcc9481ed65144001b0b (commit)
via 0ed4b0bf3d2ca248778a2ffbcb2c5cafbfdd64dc (commit)
via ab32a8e052b016c4065f8b991dddb4f7a4e38c38 (commit)
via 67ca0b7662419d76375773e0e8aba545d0c43e34 (commit)
via 49bd1d6e875d4b9ab0cdb909ae6db2bfc95f364b (commit)
via 6dfb72b9068626cbbf0017df092162d11304a3b0 (commit)
via 35f82954b5e46ef5f56653d4f3aa0d1236f558da (commit)
via 171e6b1cf621bff93e1aea3fe76bdaa6132df9f6 (commit)
via 5348a025be9a49e05b7ae4ac4081bae6e2399b65 (commit)
via 576fa8831a7334ef5be41d9f3dc72a92bc227979 (commit)
via 49987e5cbb94d95e844374952923b7bb8f13ca87 (commit)
via 62f8d21784db0dd5f8e3717290bff32bd824cf2f (commit)
via deef1eedc13aa322abdb1d76cdc3fcf6ab3b70cd (commit)
via f58926a652e71cc4809758c693ff005d9fdc46e1 (commit)
via ce875075f9c8acc57bb0ec516ae3ba50064e52b7 (commit)
via 0a60f874dc25306c48fab8f7655813eb1bfeca8f (commit)
via d5ff04826ed6ffd265d47690e0e636e2dff5e6ae (commit)
via dc1d9d1fcbc719cd4377aa178703ad00b1d8a3ac (commit)
via b0619670ab9822e5c116c273ba484909e608a943 (commit)
via ffc0f143c74a7d49f6d1ae3f835e404ef4e56772 (commit)
via 951eaaec17411eba4debe19781f6b8b54306256e (commit)
via f641dd969f91a83adf319b269c2411141b0a26a9 (commit)
via 9f04ac5f92a1efc97b38cb6560fc10146fad64b6 (commit)
via b4eb7656c21fd8cad2eaa0d27883226127cb1620 (commit)
via 66bc8739876b17b4e8b57cd1f1337814b4b734db (commit)
via 451dfd384383160be5bc60f50a7920975e66f593 (commit)
via fc4c425de70c3a4f7826010c0d65bfe6fbf00fb8 (commit)
via 1a920511af007e7476df68f87ff42ec8be80531d (commit)
via 013d031916a1f154054c3b2ccc2d35fa9ff5e397 (commit)
via fa3f8d5ac61f98d5efde8dc92ba4c9f3dc12938b (commit)
via 9a7e538ee10ff885d8bb49ad71da262729a1604d (commit)
via dbb3fbbb1a3b387a0d33dfd5764cf92bc3da7f41 (commit)
via 0e7f931f3acb65a739dffb2a4edec9e7afb1ccbe (commit)
via 761e2bd47975100f96422d2cafe0d545b781205d (commit)
via f0af5632f2630d173b26df4a929ba6ba5d0508e9 (commit)
via 88b9e2eb547b002431ae7e4b7799f1a06241da3c (commit)
via 45e813544eb076dd52fefe7b36e28b088963207d (commit)
via e3001fd92063282c55ad251d58f112b10a0cf7d6 (commit)
via 90092e730582d024f621c78c6b5b1e6f2348e77d (commit)
via aa31c464df60c72920e849ed5cf64eef545e3014 (commit)
via 63cc30e93a0a77a734ddf2f8ccf6e3b032248aea (commit)
via e1fcd5757be08c23c5e72595d3cc4f5736fa7cda (commit)
via 4185814eb444c3a793dcb7ef567acf3d74019d07 (commit)
via b99bf4e352f8590ccee3fbe3b4b031efdfcccdab (commit)
via 800eb1cebe736f6867d13e5df40a2c463a4b23ad (commit)
via 34019068f0082676b31926c7ec84dba0cfb2aba5 (commit)
via 8d4a54e2fb7f44c20ff3ddf42ff67db6bd08bdab (commit)
via 7275e869fe708d1f5dc3774df3ae0dc68ebf9128 (commit)
via b9dc5a878402036ec7f631abae7505583a52b385 (commit)
via 362beea4b400bcd5aca3bb1215a77e9e749b07fe (commit)
via 439b7f41b5fee5ec5902aecc8f3fd105be6270b3 (commit)
via 5ae0078cd2b6b69e6119864e20987c8724916b29 (commit)
via 18ad82c16379e7ed7daa3043abdacee1d934867d (commit)
via e36122e9d76b35474c49aa1873e50e12c7b722b6 (commit)
via b19f47add047bd9bf102088530e28c2af38393cc (commit)
via 55172d69d08941ecb3bb1abd640f22abca10de47 (commit)
via 0703599a49d082a957ee233fe018fb6ea7864920 (commit)
via 07f107f306e422497915e62f6c3d3d6d7b20e8e1 (commit)
via 7e60a48ee004387aefcef48391ec93af203c6369 (commit)
via eaaf76abdc6444e07860067e01c8135303a429ca (commit)
via d319a098bca9372e7d1840cd31c47d05b0c7540e (commit)
via 386047969d9d36980fd6c4129b372e4a400114e0 (commit)
via e7d52ed30408677f63c121e88a1493e6300b80ba (commit)
via fc6b1256ee5062cda1dfdaf2173bee6563eacdb9 (commit)
via d9080678121a84fc433a5f2ee141ee98512d2167 (commit)
via 084910afdd2d98e3e60ff35f124549fc3c180edc (commit)
via 9f615e3af0356052a475812cb5a4380a5fe51182 (commit)
via b1ffba5a7fe1eb1fb97f3e81dd5cc78b59eb1fea (commit)
via 01b088bc51fe37e07905d36547f4ea43904837c0 (commit)
via b052c4fbf5e64a2e96452642adf433f60b185245 (commit)
via b05ec7a53f8a3b0cbcb2b42772ca0e70a319d2ab (commit)
via 3ac240d438dceeaa5bd8ec65dafc4619b9295b09 (commit)
via 07774fccc3280323f43db9ed204f628503b34663 (commit)
via c1cc6152620563bbe861cfc2fa0a796e71ca87b5 (commit)
via 834f871cdc6e5d9f5bda9ce607fd3c47f41a2ade (commit)
via 03a91817f163986f10cb843f58e2f2cd9186e4f0 (commit)
via 77ef86547510cee3a2bff27bea9f19f0b2715bae (commit)
via b677c4562dea82ffaf413e7e9311ca4b9c1c6ec6 (commit)
via fe9057895e9224b764c905de470e0e38d6c5efac (commit)
via c1ee941477569693777617d2f5defbba21085216 (commit)
via f7de9aab902f68a79e83954d2645daf90f9eae33 (commit)
via 5a19504458d7a4113ef91875a447f4e841df7598 (commit)
via 0b24eb2de5a6dbefe48fd57fcf5d0e7fb24895d4 (commit)
via 134cdf8ed364a702e89f9d4525a361068d502893 (commit)
via 35181b3eaa305458f1a6ff04b97cf13e2ef10946 (commit)
via a2c2acaf15e9cc40bae8a6eebba78aadd3a31b8e (commit)
via e051a5b512a282642030720c69b5b4f9a85314ea (commit)
via 5c3696f89f878a438c42b342a2f4bc004eed95e0 (commit)
via 31fd9caad9fa8e13bbc132dce264f0c3bc53412f (commit)
via afb778a2a85ab4ac883638e309442f454f158692 (commit)
via 7d5c24b3ae60b6cfa41ebf9329b2f7832053b0f6 (commit)
via 76235df10b96f85815d799b586a6bb32bc89c90f (commit)
via d33501a51f46193387ff2d101752a9a878202f82 (commit)
via f4abbc168227003a4836dd1a5dd558f40be96372 (commit)
via aadf7753fd4cc3d9eb1cd0c089fd7a483b58f59e (commit)
via 043c35779713a14e0916a1b3e31e006cd1270ee4 (commit)
via 734b0e4bda4c56d0003182cdc3f5137d4bea00d4 (commit)
via 989f98793c06132bb5cdc2f7807b7eee5108342f (commit)
via ca4be51cd81b0bfff2ada60c98e7c67c936045b7 (commit)
via dddcc5b9a8bf064875053e94d692241be5be49c8 (commit)
via 1474044c6282acdc70e559e8ed10c7f17e4d6b2a (commit)
via 1d5b29cfe459ceb6d0965ca3ab8936e0d72e1fd5 (commit)
via e13419c472637ebc6ad1554bdc6d50f2bd793574 (commit)
via 63a5fbcfa8e56cb07bcffa73dbef7518f3c0990a (commit)
via 9384389406b55ffac5ea34ead9a34f23b8cdf72e (commit)
via 35a1e5f3055fc28f129e4d5d0a993218d8af1baf (commit)
via 1952c5cd7d3d24b9647b396731bc4808a2d63d9c (commit)
via 11228d29d5146828325a7f14596b9d87f7a2edf7 (commit)
via bd2e0e9e9ab61b1838167c1110c35da8b21c8f02 (commit)
via f176c4b57f57c8965807256bad1cd487b92b5457 (commit)
via 8dfef1bd769223b3abfffabf8bd13a9b74258231 (commit)
via 2aec968d4df313f893f239a1a69aef2392a16b85 (commit)
via d6c146e9ea09e050e6f05fa00312de3fe763e811 (commit)
via b9d6130764916fac3d9bcfde2d672053a0ef3316 (commit)
via 55325047241cf38dae3c6a577561c740a9024bf3 (commit)
via 9e2dec471006de3e0489a34fbeb922fee1e302af (commit)
via e584fdbc6a9b0da786c5a55855f9fd9f7e676198 (commit)
via 8490fb409a37072389da7cafc3a92255e9a34c98 (commit)
via 5929c344f957f93253efa4c3495a996789d48ae7 (commit)
via 77f41761432a70930ea0a917a2f135b392af34f5 (commit)
via 73e7610887dfd4313b66f33436bc18570d58b2ac (commit)
via e9fbd0432f8ab3983b166ae0b4d3e2ab6fbc8cf3 (commit)
via 119d62ffb87b8e6fc24d1cfa040586ec94f5655a (commit)
via 8e2470d34f4306cc3a21fdcd8099443896a61313 (commit)
via f4b78d1898203363e7f551497b6231d0f891d6f9 (commit)
via 7cc78d0780858b2f4a76c2867351cbfbb339c327 (commit)
via 54ebc97a0dcfd178839462f9260c91978aaab90a (commit)
via 64a81db054a44e5539c4de5103125f3587de6403 (commit)
via b39b8b9d90e142179709e846c15afdebd49b0fb1 (commit)
via b9394193d08bef2193f805ded0af898e4c10a509 (commit)
via 881d5d5db08ee6b343e1f1fc560d785fed29428e (commit)
via 2abdd192f1ed671c5dcf0d6e52ebee96c8610b40 (commit)
via b66d1c52ac4537484353797ce8d791c0552b3839 (commit)
via 20ba1ce66d31b9dd16ed8c648f46ce32aa3a03e0 (commit)
via 3c537f7fdb11f02f7082749f3f21dfdd2c2025e8 (commit)
via 42d9e5288b6576b56f3f803901433b88ee863bc6 (commit)
via f962539ad23759af4ba8f7eece1946fdc2f50876 (commit)
via dde9acd693251ccbe28d2d9c6c8b3cdc8ca884ed (commit)
via 1528345d6c4a407e0b36b3474eb458cbd04146f7 (commit)
via 8962a307ae3dd59166a4a6dc4e60a4da880686cd (commit)
via 3101e6373ee4bd78f7efbe21a730a4327b0ca8f6 (commit)
via 518be979d905d8e8708c70149fdb3207aba53aa1 (commit)
via f3853b34448594744f284fa96f26e41fd533a50d (commit)
via 80bd5fab6252d1cdff1ca95096ebe9b3053c8ec3 (commit)
via 23081de0180381317070db296fbe3f587b501ccf (commit)
via 2cfbf2fece582c29df348104b28677c38a8301f4 (commit)
via 8265ef950202a4bf0d3444802ad5d7087b4b185d (commit)
via b10c5c5012c3accfefa3f3847d3eb83a788bdbbf (commit)
via 570286220e28e606e199b37a06cd199cadb592ba (commit)
via a7606d8083c9e217294f6e47a8d2903716c6337c (commit)
via 60f79275127603876d94da4bf4e3f6212903b407 (commit)
via 9910b1c8f3b0821944303fbcb4ef4c8872cf4e08 (commit)
via 2d3ea0d5ba74fee0320766c4ceaa6d8f43a37a74 (commit)
via 70b662892cfcf35d5addd40adf22a7354626598c (commit)
via b7d2e91626b0e587f3fd5023e79b5079da6baed5 (commit)
via d9d41e786a077db1b536b1124af6e135b9ad46a0 (commit)
via 64d2901806c171c0d949f8fb1b29b4e5ba8cf04d (commit)
via 46b87d490296235ab7c76c68816de7c402a79326 (commit)
via 3a63561744873b54e13c45923fba4aaca7a2fec7 (commit)
via 8e02d7f52092fe95f29d006e1df45b110490adc1 (commit)
via 6d012254d46550b0930705b132ad9a49479573b6 (commit)
via 43fbf91ff858af23fa03371b7bf84d4bd2cd82d2 (commit)
via 907c4910c3175ce3e9fc9bfb897527ca241ffd24 (commit)
via cd71915c7738f0992daefe0320b10e3b1960535c (commit)
via c9ba137e2157b989b878198f94c7d5f01a937500 (commit)
via 24dd580891ed5fc331758d608b16d636eabd1ad3 (commit)
via aa3de2670f9f9327b25c47546c0005d4a80da546 (commit)
via 6c2573b7abfc3a504b902e46169cc521b6aa5eb7 (commit)
via 0c4bd9d97731e2cdff46efa7e7325e4716641a59 (commit)
via 2c811c0f343426fe6b61dc89d3944a51b20a100a (commit)
via b1eedac962b9d935ecb40725a614f6fa6cb0783a (commit)
via 66c168ae56fa2d67f821ccae774fd25c695fd9ce (commit)
via ed2b91f0d8ecc0a6ce61abe40962e132a5f90d91 (commit)
via 4bdc02b207c6a3baa1f5c761874a96c1ad04da61 (commit)
via ae6ae97502b183d0cdb9c298a60fa05240f230bf (commit)
via 09e2d7c72040dd2d1833c140b5f04a85bc3f6a0f (commit)
via 4bfb94b8648cebad2683d24ebe033ef539df1dbb (commit)
via 5f4ce105edc3ebbd4b0425d41ccac0064e3cec41 (commit)
via f6b3afbf2fce69c31bd738e0543c55fbd848e74a (commit)
via 6779e036f5249881d6fc511b99e047c7033a9313 (commit)
via cfb069a8bebfacaf00dee6446e86a856978670be (commit)
via ef0b411a110cd2602cb89c3fb237baf8beb28545 (commit)
via e11c72c7e4879894b9711b5c0b8247c20c6050f6 (commit)
via 276d885b572b12221f639641846ab94ef9582995 (commit)
via 5dd31d7995882a43fab9b35b11775499126d7bd8 (commit)
via 05cdcf3d36ce579b3bf8c45badee7974b6adb88d (commit)
via 82083d6dbbc0b2f6a76095582c6e7ffb3e06432a (commit)
via f57d2163da62044205c3f53e0ecf186923296b63 (commit)
via e700d1b279b26d4b7d86cfae70d2e022ee748068 (commit)
via 9f0500621b6a4908986394eb0fac151ef097f520 (commit)
via 312809f8838911dabff84d7ad3ccf341307d2b19 (commit)
via b6577aab8a7e97470c5ff96000f3d0dbdb2c1ee1 (commit)
via 230c609dce78f1db4fd3c860f0346ea4b6b46c58 (commit)
via 6da58d3e02f50801176cfdb9006d843b5f6ab2d4 (commit)
via 837ce2523fb0b81a8548624d204c857438c647ec (commit)
via b09e2c591f9221d865bfe8425990a6bf9fab24e3 (commit)
via 2568868e69f710e470c8698a34010daf36500a30 (commit)
via ca83fa81892ab61870295cb5397c59daff1a55e0 (commit)
via afa269ae41673cd5cc5f50d683a0f2d275a643e8 (commit)
via 9fc1d6863b1f46fd639afc3dfbe0b4c6d809ac05 (commit)
via 1a215085d4bc09f76028c323ca3729abbd822bae (commit)
via cd366ee8c6ca1dfe8aa11540402904b64775b208 (commit)
via fa89cc82f5ca51f3135a9f2043b85b6a16c205eb (commit)
via 716db898b72787d0d342c639c421cdd97f3afe9c (commit)
via 38360086aea4f956dcd4ba406318595ea11f7dea (commit)
via 0f81d3f0a799c6e8c2a89d7f519916e3c9c0f65e (commit)
via ea16498d5a740e2888feb2f8bce92d9565baf244 (commit)
via 3d7ad9b42685b426329370cdb8bebc9cda6d8911 (commit)
via df25ebbd091aebc132f97ffd6ce9cf7964a57981 (commit)
via 4a0ca9ec1ee3bc18da72ce42cdd7c2959e58aa76 (commit)
via ddb87a81ac5b031da67fb251b2c11a94e9834ae3 (commit)
via 7a270e0c9ba0eb738a4c30258ab29c09963fcd4d (commit)
via b86ac8e3a5a3117696b1760003b8e09ed13f1de9 (commit)
via 912ae7dd0fa4658133d4fb77954a57c8548c37d6 (commit)
via 65d9213705654383804ab8af707975f0721c4a6d (commit)
via 37a3056ad4d02a5295e0288d630dea377907a60c (commit)
via 15f7a26b0f42be812b0471ec09d91bad696fe26e (commit)
via 61b86cb1948c47e5e6c49b25f33d11ac002c27cf (commit)
via dbd1e97e32057af2841e5150daa2e2d4cb046a3b (commit)
via 3f8107ab38095bb3db840f9f14a0fd339f55e06e (commit)
via cc9ad334a71b0c032f711e86885fb73821f3be16 (commit)
via e5fe4957b4513015b40472086f22cf8723b95773 (commit)
via d1fc593cb8cfa2b4b4d9c0b8090b6b1f597008cb (commit)
via 3a8b707add581af37804947536025dd3e7fc1a33 (commit)
via 1b5493961ab1f65a3336b2178ba3d035a130f9f6 (commit)
via 0897ec15810bca3420ea7b8a91e491ed45780202 (commit)
via 877a8638ba563c667eb5358240334c473d0573a1 (commit)
via 37e3922eed415bbedd2dd6e46308fe9e03417770 (commit)
via 20d79870f35f646e87c43d8c4fee936b4e0ed5a6 (commit)
via 3bd3aeb46126494401e2f265b55fc255d5c5b517 (commit)
via 6f21bfab08368c1a6c9d950a14e3fcda121406b9 (commit)
via d35b90fb6ec3374f4d5d8d19bb8e41c8b1970315 (commit)
via f8313f6ec4a86ec18c065ca96261c36da34818ab (commit)
via 18393a2e423a67f9cbd1c2400aeec8f119680bf8 (commit)
via 5485698ae4679bd18a37f8520a17be8b760e5a18 (commit)
via 76dbb86382d49feff10b3c4f5ba0e0d567ca090b (commit)
via 37bc665e4e8b2386fe15680a41173bfbfb085ac4 (commit)
via 43063f1e4f11bb9d3538fe9f5d1f661dbfa1cab3 (commit)
via 734ae1256daf5867721f1d730c2cf9586d6efcab (commit)
via 527f3840e1af8bc2e3173922ddae15d0021ed9b1 (commit)
via 0c61284400e2a78e25aab1becf2b99465f76970c (commit)
via f7e5394d614db4456fc0d9598bbfa936cc7941af (commit)
via bb97bdd70c9a4614416767e5fc7ea8d75b24b0b8 (commit)
via 743649fd80776de922475362bf3ac8b44511bb24 (commit)
via 198297aafb4f7a9717be8370581b048ae9107c14 (commit)
via bbbbffbbfc3fca35649896d6626ab02581df8037 (commit)
via 5932be96694afe02ffbce899a644a44940f84dee (commit)
via 055173ca8d1dd3d886e88392a7b2c63c5ff20bda (commit)
via 717cf30c8230bcf1c7cc55353645bfc268a711d0 (commit)
via 253828f102691732d014e8f1d62f9b5dc779b39c (commit)
via f0e8c4c5d1bce422ac86090b76c28931b0d240bf (commit)
via 53bef1c10759f1fd7faf675459871b2f4cc12e53 (commit)
via 03b7960334677d33ee7410f2c819f78820c32024 (commit)
via 6b8a872ff1038e2b8618ea33bb1113b78f39976d (commit)
via 4b62a76e0cd716407859077467fddbb66b715a43 (commit)
via 82a864f96aff83edb0c8bb21ead5c28cd10363fe (commit)
via b35018fd7a627d94a24f4650b1d2e7cfca31f3e1 (commit)
via 4e5cb37e7f3403d5398a323566ff9c995f0c9a81 (commit)
via b01a4b043a5b08e1208b1fedd61a6f3d65a328e0 (commit)
via b99e251379fd81716660e88b933f0bc015d6c6d8 (commit)
via 86eafac0aad7edbc1ccea6daf53480a36339250a (commit)
via ffbc46469f5fa1368251acd65da418775ab1a2ce (commit)
via ddeca1dffbe346eea03b893bf3c5bc46e4439e93 (commit)
via 6c1965f995bc8119c0775f2f9b648a1902e6e210 (commit)
via 5b7d62376fc942a803d174789fe4464b26f09a02 (commit)
via 901e4fdf1622fce9bfda3d3b8f4c9a20665f5cee (commit)
via 049bb5dee8598d2910ff47c1eda3df3cb2ec6493 (commit)
via 42b87c63bc5fc1daac598c07ca65b71591a65f27 (commit)
via 481765cde069d29679122b4fa6ef6c5ea39413d2 (commit)
via 810c102655475827a3174fb64b5e14beaa57ec3f (commit)
via 569340fcf2b3344efed83f1239c9e32474c77cf8 (commit)
via 5ad18f16abf3555582782a86cc1daa751ea8b9b8 (commit)
via c05b575a8dfabab6af5d8586d1a5c0c67f819ac2 (commit)
via 43d66c95c826441c64bacfa07095535ddea57a51 (commit)
via 23283c1be02de06666e4d934b1fc499c0d72f9c2 (commit)
via 3e2b0f3116a46c8a9a6ffbcb5ae4847b6601467a (commit)
via 03d5b77300e7f62ba87fb4cd82d4aed83f9a3cd2 (commit)
via 10ab94ebf8fdabf14954f53f1d060fd470658512 (commit)
via 1c9177d9a5c3e06d3344347c8068acfb7d8ecc8b (commit)
via 3cd0754799953aae30394173c0545c52c5f17481 (commit)
via 3e2aa5bbd36be9cf63530e5db2f6cf3898762a22 (commit)
via 63413d85873c450fa4ed2494f21fb1a65bdaf554 (commit)
via 1f99f6d0689d20db44c0c7d88e8af1ebe900d187 (commit)
via c4621b339e6f3153649898b254685f72df8c013d (commit)
via 740bdc67c057ee8012327420848eb134e1db4211 (commit)
via 0ba38529f27a815a576bc07c85ceb65f6498ef5a (commit)
via 6346d5ca43719ba6fc3176c29fd58a83d439f011 (commit)
via 16d8013cf7bfe6df320bdd167cd357879e4888e4 (commit)
via c039f17c354e55a2b6d6a88330a9be25260ab034 (commit)
via 04edc7a3d936645ab171358425a106d3b261c7b4 (commit)
via cf90fd9a07e8998540bf74f293d348a6653ac120 (commit)
via b4cdae6fe51e532e0b1069c6960b14a610182d14 (commit)
via 2608dbf8a3ee666ac0a7d5d7c45611d489edcda5 (commit)
via 07d57b544c88f230cf689cc80f5a15e1b1a0cb9a (commit)
via 2ef60e94e7d10fb9dd5afaf246b960cb4fdf404e (commit)
via 4c347be60a1c25f78826fbf86d416a278740145b (commit)
via c54da50d66b46166e3542f64429741bd29e74eba (commit)
via 6cdb25f4df143e8d98bd71bf943bbe61c702e239 (commit)
via cb86fcc13bea494007a103424c8a61f1cb372717 (commit)
via bf555842fccfc0e2cdc4a2f329df6358f991732c (commit)
via 1e2e8c529c1cf4fcc8cbae382aa0a653d0b65da6 (commit)
via 9f2850baa3ce341f0ba42bd9519cb3c1bf1287c7 (commit)
via 95761b2d9c3c77933cac233b93eff371b3e52859 (commit)
via f5818f7d80adb707a35f04049c841b230b36b824 (commit)
via 8cc73a3902a68269626274e15d7c25bef0a61759 (commit)
via fb23d554428f1d379fd8c3e959a294108fa59f88 (commit)
via 6333bc0dd6e92dd5a76ba0a6890e08db2a6f7a29 (commit)
via d221e7efd61fc80f6fbf862b7e32927835575329 (commit)
via cd21f5daad4335b50366b838664ade64bec29957 (commit)
via 2d071cfc6614b4ec30fa4ef8b8af5bdf2c177858 (commit)
via ca55926c2fad07fef0e6dce8beb948167990a2e7 (commit)
via 3af8af43f74936bd3c81fe57903327b7cc05a37c (commit)
via 8539e4e89eb4c54bb6668582cd709765a3803588 (commit)
via bafffb51c4da50881dc5d72ec9bf9b78377ac692 (commit)
via a300380e12ca04a6cb900e9bfd26161b3fe56ed8 (commit)
via 10b8fe5e0eac145ff075f16872d6cbef7883ec37 (commit)
via c36094316505cf2628812e520b08eb42c0299613 (commit)
via edabaaee81ee7ab2e38471b016e13bedbec17dde (commit)
via 52db4ec2d13f511ef3dfe5b9a159869da6e4c3eb (commit)
via 3d0064a95d413e7d19ff9c7f6db53fefe44a697b (commit)
via cdf436294f7e0e3bd7668a81dfd5922fdd1aec14 (commit)
via 514c533895543e246eea1771ea67f3c3486006a4 (commit)
via 5589af0e6661abe07e9a997f6324988b4b87c72f (commit)
via 6c400b59d574782afdb26eb6c021f28c31bb9f1c (commit)
via e02c96a79949824bbe1da22ddfc6b50d362fb552 (commit)
via 8068939ab8058b48d0c7c318d463b0c6b85741fa (commit)
via 0900a05b4ce11a11fafbb691d94745bb65ac4980 (commit)
via 576fd14c6861ef937a50b5a7500c8a58f8c4ea92 (commit)
via 3b2f13ff2f2af1688c179c971ade19b8e9989076 (commit)
via b4cfe7f88ece4b809311ff1cd688ff4fd5e77e96 (commit)
via 0941db698eba22727c9a944b5da5c76ae93cc664 (commit)
via 0172429c3b2656e96ac390a9cdfc441f63df41c9 (commit)
via bab91cce20e052822e128c672e0570c8f3f58131 (commit)
via 92fc2e6978d9a7c8324c7e851dbee59e22ec7a37 (commit)
via f71f0b0d6b1214d4ee8466baa9d98f345de98cbd (commit)
via 04dccad086aa9974fb66f8b5d1c1fb32d5a6ae0e (commit)
via 15eec7902fb3fcee295de60109c8431e70229d27 (commit)
via 08b13bdd82996fbd321111191d33233073584b98 (commit)
via a0a3b04c61d7aa79e265224540930cf4057acfb3 (commit)
via 1306a7421c764d1f5e2a08afdb9b5818662c9e9c (commit)
via 4ac15b59f2f506ff0ad59f148275cd7406b8d765 (commit)
via 3d230f71746e0b33376f8b9bca914cc5d980997a (commit)
via 72c61a0d1ef445f99305859b66450da60ec6e0cb (commit)
via 696025802ec3273fde5cbf82c215a3d795435c1a (commit)
via 3c758495736df25d141a4ea13c7aba24f5bb9753 (commit)
via bba33ab1e0f7d2ebd8f8435f92ed12e2a3c558a4 (commit)
via 7e67715dd369f0a0caadaa5e528918dd65176e3b (commit)
via cb3b1e65a9af9fd95dce40c4444050c30cd07a2b (commit)
via b38ead219b31fed4014cd5b1078da968744b879d (commit)
via 005e54bb792bc74f1168def16f35078be588871a (commit)
via 4025a8c91f1f09ac37b145bf5c0bdd21cedcdc66 (commit)
via f2e0d4b4ebd224797385ca22a031d74346b2475a (commit)
via 6a3ca067521821b6c2ad9a836104d11e6dd760cb (commit)
via 439250fbacfc212a5959b4b5a53ecfee91dfb866 (commit)
via ebf3aa72243fec4bc02617673b243a63050e6127 (commit)
via 77087adf50cedf78cc216ac6eb3b2863839d713c (commit)
via d98b9ccbccf36563dad92f6093a93655b38bc51b (commit)
via 400678a494713abf8f7ea2367f213109a2c4b886 (commit)
via 9d1d54d5a7e3b634895e6e434646c706eb55c082 (commit)
via b2fb95e006c29e2cbe4b30523879fe3640f906ad (commit)
via 328cb676af66e9a70c5af0426282cc233f1a909b (commit)
via 3368c1e5ce12ea262ab3ff7a9154472503aadedb (commit)
via 491793b5cbcc9f42662a2da8427c0022d7b03f9c (commit)
via e321dd9a810dd92c5f739e0e4e35ceec2a3e951a (commit)
via a5cd8f05ca759fdb9b27fc98a08edb5f85369ad9 (commit)
via 6bf045cd32d07ae55d7eec8ff94bd937c6bb2bce (commit)
via c6e8e93a865d429546037cf5746502aa253a1f2d (commit)
via ea0d6bb94c47283ce54ad62485997e2aef296d43 (commit)
via 588dcc3edbde19f90e76de969dbfa7ab3e17951a (commit)
via ede9f622af1f2634c1227a3ed5f5ea44929573d2 (commit)
via 582511be69deb0e9d52efd6d51f860b6bee02a64 (commit)
via 9c02b52532ac7864e7e19c7df1fb2e63625f3131 (commit)
via 8af756ef818acb875865a21131a30e52cbcf15ce (commit)
via 8a99810d42b1b4539112c7a50183f3dd807773c2 (commit)
via f7ce857f51e33c66100bcf91b346ee1baf734e53 (commit)
via a7b796db4fab28c2fa52bee86b97cf2b29d9c675 (commit)
via 9665ffdd591e9b374b4e5f6aeffe15541346140d (commit)
via 400cf8cbe9bc48068f1601ea9cd33fbd2f5de36a (commit)
via c945a99f01941ccb3e73586d5e6f8d45ffa91f77 (commit)
via c1a747c10948e2298083179f4e8aeed8b962e2af (commit)
via a33e39599ce39ec6225d71f7da1719b544740745 (commit)
via 8784d56326e72e2e6863e8443b1f97e45a46ba36 (commit)
via 883ed13e4af121e28de1c0df70a8d66d94a8bc7b (commit)
via 60b3033e6e2936af6fcc37cf67cade99a89940ad (commit)
via 1710aab8af63e37c846efb7ed66e76dce95330ba (commit)
via 3ce348af7f45f00d5acbdc4e1ef22c5f14724408 (commit)
via 1c237a09afdecc5a68fd5b566abba28503333148 (commit)
via 23d4663e222cbb2b9776150677683516bb7135b7 (commit)
via 063bb0250defafcc55544474a2961ecbc153882e (commit)
via 848cde35d61874521ad6c88a50f983d5ee7d2307 (commit)
via 2279a12a44ede7a0a6d7375d90d33676fa8771ad (commit)
via b597c318b86b5ad2bca1f72ee8c0fbe33cbb7dad (commit)
via 3565cf8fedf2bae2b383fae66dde62c3bdae51c9 (commit)
via 025ac41482555f6273dee37988734a9f88633dbc (commit)
via acc018ac031c9e03e012d7d2f3871bfe6b16168d (commit)
via 1e508ea5e14eab82759a3f3272cc0456b4928a53 (commit)
via fa5af12a25f2143b1acd9717fea1bf680e99697f (commit)
via 7c89917ffa6813f40fbb9f345411d59716e90714 (commit)
via d7b24d2941fd7c99ba5843331989e6023075f0d0 (commit)
via c88f5b8e495889f5d281a17bd56340d9a0e4cff6 (commit)
via ea42d6f8d1e24403e533e5dfea18e94c47ac534b (commit)
via 50a18af83d28d66a769af40eef7d0548e2dc0883 (commit)
via 6a06d66006d33293215eaf706ee416f6a99da273 (commit)
via 8d983e3645b62e72373b3ba4a9af548b82fb43bc (commit)
via fdbf396f7e1cc87f408df7896c5464249f65c8e8 (commit)
via 5a70a2235a5fb9a8d90110089d97a27961093a39 (commit)
via e810d75b1c9bef779b29df9d2c609fd5891d5917 (commit)
via 6f25f22356dcf9ddf6b375c8e967486f10855dfd (commit)
via 7b496d07dfbb696ea597d3f3ec3a3dfc0646cb86 (commit)
via 4fc1b9d43cbce7571264a0011c87258b78252750 (commit)
via e7287c7f647870093b8ab5ffea0732ffdb8c4d66 (commit)
via e749cab89d976c723ee01a3dfcfd7ec1a883f890 (commit)
via ec93045b400ec68b0c5716d75f27a87533b57058 (commit)
via 60ebc25751744f54ae5c00d1c9198ab64fcc5b33 (commit)
via 85880250e591a51624d24db653aaace0c5ce5943 (commit)
via fce10a8494efa8faec67b718f25e06d3d71694b3 (commit)
via 8503d6e1e564cb5ac61bc6e3f16c0b384c76661e (commit)
via 533d0af0b8a8127b6f189222fc57aa11ce7aab2c (commit)
via 9c90714c2f94b4486f56fcd9dcb70e27d983f7df (commit)
via 896ca0981329171639b1fe0b934393a79ef4fdfb (commit)
via 82b1b41bcdc6d01fdbd94b246e24a8a8f8c2bddd (commit)
via c1724c7fd39d85ccc1f94a0cd7bc25b19aa43ffd (commit)
via f8ed3ac5f2600f037bff4ba01e6c92257d4a4fae (commit)
via 235acbaaefaa907c863cbc99e998ee59cb289357 (commit)
via 6b91c5417cb082f701fa9fca6d67e3ffb55ff73a (commit)
via e1e061e77d517f1fcc6678667903b3d84c399323 (commit)
via 4d29c0a8b72465d56fad76ddffb5aa64659d72b9 (commit)
via cc73dbcc08beb2e965deecbfda27a6d8302bffd3 (commit)
via 2aeedae260302e8a5fed878015edfb4fc5c12bb5 (commit)
via eaa6a9a48207fecf3ebdba88314b0eedbdfce363 (commit)
via 0300bbc7c585cdcdd7ee9046aa2edb4f9ec36bc1 (commit)
via 02fe99727120efcb90ff8840af1d2c4d6312b492 (commit)
via e2ada9cb46471b033671ae3629bb03376c253eea (commit)
via 2f5346cd7c3cf9d7a6c550672f5deaebc30567f6 (commit)
via 6ba37ab47e63dc70ddaec3d296fbf8da49eb4e79 (commit)
via 4a68e3fc9ff7a2885e0d6429bab4934dff624586 (commit)
via af759df025dce3dab4c9527a32c8dcf330c2804f (commit)
via efd321f91c31f5f537753f99e282dbc267854fa6 (commit)
via b90efa5b79ac1524ec260f8eb89d1be37e0219a7 (commit)
via 32d0add0a654c1204ab71dc8a55d9374538c4b33 (commit)
via 76f2b779a17de2a13e9b6c0d1a4bb0ad5699a39c (commit)
via 077309e2640bb9ae0a71054fd5d8952dd9782ba1 (commit)
via 14914ea545f2d5102bc56a134a28503df4e98151 (commit)
via 6bf6fd090ac8b4551a4f7906310fb77d0405545a (commit)
via ee3b52e917c3a19850232a6a20f5698090619fc6 (commit)
via 24fbeb8dc2c20f86c9940cc62e6af192a9d11b1a (commit)
via 05942d8a1b618e1c850b67ad76374f8c59743df5 (commit)
via 1a667e98b749cc82920f2cfd25d07139e5e03136 (commit)
via f6ef238e330bed3d4838f6d1646eac6529f9c779 (commit)
via fafcc06ab29fe98d2767234dc77062d08ea0d3c7 (commit)
via b35b02984b80ff231dd11dc4f3c7bdba6bef95a7 (commit)
via 9d85a0ec6bc88b6d2149071af003881b6edf21b4 (commit)
via 91529dc5ce73dffdf76f842c4ca2003cbddc665f (commit)
via 5e05f2482b35d8ae0c64f8e69c00f3aa9b93eed3 (commit)
from d1a09bf2f8e7e3f752a1bbeba135bc080bf0c865 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit c8a8413e160d935c12cbc6e484dd8b7ab80f5f62
Merge: d1a09bf fca6ae6
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 20 20:08:36 2015 +0200
Merge remote-tracking branch 'gdb/master' into tromey/python
Conflicts:
gdb/main.c
commit fca6ae69c41882f5adfba05da7d932b7c8bc2153
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 20 07:55:45 2015 -0700
Skip extra relocations in .rel.plt/.rela.plt
Extra relocations may be added to the .rel.plt/.rela.plt section, which
are unrelated to PLT. We should skip them when retrieving PLT entry
symbol values.
PR binutils/18437
* elf32-i386.c (elf_i386_get_plt_sym_val): Skip extra relocations
in .rel.plt/.rela.plt.
* elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
commit ce336788820b5d04700cdb9ead2ade880f5e2caa
Author: Jiong Wang <jiong.wang@arm.com>
Date: Wed May 20 10:58:43 2015 +0100
[AArch64/BFD] Sort relocation case labels alphabetically
2015-05-19 Jiong Wang <jiong.wang@arm.com>
bfd/
* elfnn-aarch64.c (aarch64_tls_transition_without_check): Sort
relocation case labels alphabetically.
(elfNN_aarch64_final_link_relocate): Ditto.
(elfNN_aarch64_tls_relax): Ditto.
(elfNN_aarch64_relocate_section): Ditto.
(elfNN_aarch64_gc_sweep_hook): Ditto.
(elfNN_aarch64_check_relocs): Ditto.
* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
(_bfd_aarch64_elf_resolve_relocation): Ditto.
commit f09c556a25af178e4fdedf76b653921b1aea5767
Author: Jiong Wang <jiong.wang@arm.com>
Date: Wed May 20 10:44:24 2015 +0100
[AArch64] Sort relocation case labels alphabetically
2015-05-19 Jiong. Wang <jiong.wang@arm.com>
gas/
* config/tc-aarch64.c (process_movw_reloc_info): Sort relocation case labels
alphabetically.
(md_apply_fix): Ditto.
(aarch64_force_relocation): Ditto.
commit 0b6e5e108599217c106f5fb63cd8ad7ec7028c5c
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Feb 13 11:57:29 2015 +0100
Memory leak reading frame register during inferior event handling
When using a conditional breakpoint where the condition evaluated
to false a large number of times before the program stopped,
a user reported that GDB's memory consumption was growing very
quickly until it ran out of memory.
The problem was tracked down to temporary struct values being created
each time the program stops and handles an inferior event. Because
the breakpoint condition usually evaluates to false, there can be
a fairly large number of such events to be handled before we eventually
return the prompt to the user (which is when we would normally purge
such values).
This patch fixes the issue by making sure that handle_inferior_event
releases all new values created during its execution.
gdb/ChangeLog:
* infrun.c (handle_inferior_event_1): Renames handle_inferior_event.
(handle_inferior_event): New function.
commit 1da0522ea716f4c679cc1fe85c39459417ec2749
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed May 20 09:14:30 2015 +0200
gdb/ada-lang.c: Rename local variable typename into type_name...
... to avoid a build failure when building with C++ compiler
(when configured with --enable-build-with-cxx). We cannot use
"typename" as it is a C++ reserved keyword.
gdb/ChangeLog:
* ada-lang.c (to_fixed_array_type): Rename local variable
typename into type_name.
commit fa0b40e5c44154f5a402bed8c31e7d8887256590
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 20 00:00:08 2015 +0000
Automatic date update in version.in
commit 5fe75eec33c0f55536f09b2f3d692fb688a2c423
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue May 19 16:12:30 2015 +0200
compile: Fix ASAN crash for gdb.compile/compile.exp
(gdb) PASS: gdb.compile/compile.exp: set unwindonsignal on
compile code *(volatile int *) 0 = 0;
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7fba426 in _gdb_expr (__regs=0x7ffff7fb8000) at gdb command line:1
1 gdb command line: No such file or directory.
=================================================================
==10462==ERROR: AddressSanitizer: heap-use-after-free on address 0x621000cf7a3d at pc 0x0000004e46b9 bp 0x7ffdeb0f7a40 sp 0x7ffdeb0f71b8
READ of size 10 at 0x621000cf7a3d thread T0
#0 0x4e46b8 in printf_common(void*, char const*, __va_list_tag*) [clone .isra.6] (/home/jkratoch/redhat/gdb-clean-asan/gdb/gdb+0x4e46
b8)
#1 0x4f645e in vasprintf (/home/jkratoch/redhat/gdb-clean-asan/gdb/gdb+0x4f645e)
#2 0xe5cf00 in xstrvprintf common/common-utils.c:120
#3 0xe74192 in throw_it common/common-exceptions.c:332
#4 0xe742f6 in throw_verror common/common-exceptions.c:361
#5 0xddc89e in verror /home/jkratoch/redhat/gdb-clean-asan/gdb/utils.c:541
#6 0xe734bd in error common/errors.c:43
#7 0xafa1d6 in call_function_by_hand_dummy /home/jkratoch/redhat/gdb-clean-asan/gdb/infcall.c:1031
#8 0xe81858 in compile_object_run compile/compile-object-run.c:119
#9 0xe7733c in eval_compile_command compile/compile.c:577
#10 0xe7541e in compile_code_command compile/compile.c:153
It is obvious why that happens, dummy_frame_pop() will call compile objfile
cleanup which will free that objfile and NAME then becomes a stale pointer.
> Is there any reason we release OBJFILE in the dummy frame dtor? Why
> don't we register a cleanup to release in OBJFILE in compile_object_run?
> together with releasing compile_module? 'struct compile_module' has a
> field objfile, which should be released together with
> 'struct compile_module' instead of dummy_frame.
(gdb) break puts
Breakpoint 2 at 0x3830c6fd30: file ioputs.c, line 34.
(gdb) compile code puts("hello")
Breakpoint 2, _IO_puts (str=0x7ffff7ff8000 "hello") at ioputs.c:34
34 {
The program being debugged stopped while in a function called from GDB.
Evaluation of the expression containing the function
(_gdb_expr) will be abandoned.
When the function is done executing, GDB will silently stop.
(gdb) bt
(gdb) _
Now compile_object_run() called from line
(gdb) compile code puts("hello")
has finished for a long time. But we still need to have that injected code
OBJFILE valid when GDB is executing it. Therefore OBJFILE is freed only from
destructor of the frame #1.
At the patched line of call_function_by_hand_dummy() the dummy frame
destructor has not yet been run but it will be run before the fetched NAME
will get used.
gdb/ChangeLog
2015-05-19 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix ASAN crash for gdb.compile/compile.exp.
* infcall.c (call_function_by_hand_dummy): Use xstrdup for NAME.
commit a40635885c50f14782d80251a8966bf4dd271f76
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue May 19 14:27:06 2015 +0200
compile: gdb_stdout -> gdb_stdlog
Please send debug output to gdb_stdlog.
OK but gdb/compile/ is using now only gdb_stdout; the error above is due to
a copy-paste. So I will send a follow-up patch to change all the other
gdb/compile/ gdb_stdout strings to gdb_stdlog.
gdb/ChangeLog
2015-05-19 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-c-symbols.c (convert_symbol_sym, gcc_convert_symbol)
(gcc_symbol_address): Change gdb_stdout to gdb_stdlog.
* compile/compile-object-load.c (setup_sections, compile_object_load):
Likewise.
* compile/compile.c (compile_to_object): Likewise.
commit 84204ed7c0ccaa790dff8e124e710277d9a8abc9
Author: Pedro Alves <palves@redhat.com>
Date: Tue May 19 10:47:27 2015 +0100
Fix gdb.base/gdbinit-history.exp when HISTSIZE is set in the environment
Some buildslaves are showing that this test is failing. E.g.,:
https://sourceware.org/ml/gdb-testers/2015-q2/msg04164.html
The issue is that HISTSIZE is set to 1000 in the environment that runs
the tests (that's the default in Fedora, set in /etc/profile).
We can trivially reproduce it with:
$ HISTSIZE=1000 make check RUNTESTFLAGS="gdbinit-history.exp"
(...)
Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/gdbinit-history.exp ...
FAIL: gdb.base/gdbinit-history.exp: show history size
FAIL: gdb.base/gdbinit-history.exp: show history size
FAIL: gdb.base/gdbinit-history.exp: show commands
gdb.log shows:
...
(gdb) set height 0
(gdb) set width 0
(gdb) show history size
The size of the command history is 1000.
(gdb) FAIL: gdb.base/gdbinit-history.exp: show history size
gdb/testsuite/ChangeLog:
2015-05-19 Pedro Alves <palves@redhat.com>
* gdb.base/gdbinit-history.exp (test_gdbinit_history_setting):
Save the whole env array instead of just HOME. Unset HISTSIZE in
the environment while testing. Restore whole environment
afterwards.
commit 8f8a1b36a0962f87ab471d18e39be2c3b213034a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 19 00:00:08 2015 +0000
Automatic date update in version.in
commit b4477bc81824800248d44f141aeaf63e00314a01
Author: Nick Clifton <nickc@redhat.com>
Date: Mon May 18 15:58:46 2015 +0100
Fix seg-fault in readelf when decoding corrupt IA64 unwind information.
PR binutils/18420
* ia64-unwind.c (unw_decode): Add end parameter. Pass parameter
on to decode functions.
(unw_devode_p2_p5): Pass end paraemter to UNW_DEC_SPILL_MASK.
(UNW_DEC_SPILL_MASK): Add end parameter. Check that unw_rlen does
not take us beyond the end of the buffer.
* ia64-unwind.h (unw_decode): Update prototype.
* readelf.c (dump_ia64_unwind): Pass end pointer to unw_decode.
commit 35d7c4317b85948f0a3e021d719811481d13fe45
Author: Nick Clifton <nickc@redhat.com>
Date: Mon May 18 14:36:15 2015 +0100
Fix dw-2 test for 16-bit targets.
* binutils-all/dw2-3.S: Replace .int with .4byte.
commit 071f0063b422ed1f51a673c817a7656bab3e152f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 18 04:17:12 2015 -0700
Remove Disp32 from AMD64 direct call/jmp
* i386-opc.tbl: Remove Disp32 from AMD64 direct call/jmp.
* i386-init.h: Regenerated.
commit 80de0c6d618be3656fa5a82bf445e0cd1b4b16d3
Author: Jiong Wang <jiong.wang@arm.com>
Date: Mon May 18 10:43:43 2015 +0100
[AArch64] Remove X86-64 comments
bfd/
* elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Rewrite comments.
commit df4227e4c6ec085abe2ca4d2a71889d7df023cb4
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon May 18 00:00:07 2015 +0000
Automatic date update in version.in
commit 4412c033caac38b5bad1bddffc40173a9de694cf
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Mon May 18 02:05:57 2015 +0300
Add myself to write-after-approval list
gdb/
* MAINTAINERS (Write After Approval): Add Max Filippov.
commit 296730a52b06fe7dd658924acae1269a54015d52
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun May 17 17:11:17 2015 +0800
sim: erc32: restore attribution
commit 68880f311c1d5629c47c3ab9749061fe3138be63
Author: Chung-Lin Tang <cltang@codesourcery.com>
Date: Thu May 14 18:40:57 2015 +0800
ELF options may be missing from `ld --help' output
nios2-linux has an emulation named "nios2linux", and happens to not include
another extra emulation with a name matching *elf*. This makes nios2-linux
left out of the ELF options printing targets, which is unintended.
* configure.ac (AC_PROG_GREP): Check for grep program.
(elf_list_options,elf_shlib_list_options,elf_plt_unwind_list_options):
Enable ELF option printing for emulations containing
'TEMPLATE_NAME=elf32'.
* configure: Regenerate.
commit 20ef91414ed2272cc379dcf8364f5f48eeff6362
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun May 17 00:00:08 2015 +0000
Automatic date update in version.in
commit 37442ce10aaa2f84d245631d38e25ee47e5057aa
Author: Doug Evans <xdje42@gmail.com>
Date: Sat May 16 12:14:26 2015 -0700
Add support for unbuffered and zero sized Guile ports.
gdb/ChangeLog
* NEWS: Mention support for unbuffered Guile memory ports.
* scm-ports.c (ioscm_memory_port): Update comments on end, size.
(ioscm_lseek_address): Improve overflow calculation.
(gdbscm_memory_port_fill_input): Add assert.
(gdbscm_memory_port_write): Handle unbuffered ports.
Handle large writes identical to Guile's fport_write.
(gdbscm_memory_port_seek): Fix seeking past end check.
(gdbscm_memory_port_close): Handle closing unbuffered port.
(ioscm_parse_mode_bits): Recognize "0" for unbuffered ports.
(ioscm_init_memory_port): Handle unbuffered ports.
(ioscm_reinit_memory_port): Ditto.
(ioscm_init_memory_port): Update size calculation.
(gdbscm_open_memory): Support zero sized ports.
gdb/testsuite/ChangeLog
* gdb.guile/scm-ports.c: New file.
* gdb.guile/scm-ports.exp: Add memory port tests.
gdb/doc/ChangeLog
* guile.texi (Memory Ports in Guile): Document support for unbuffered
memory ports.
commit d976bace1c68aed43311651c1033c23b3c983094
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 16:36:44 2015 +0200
compile: Fix uninitialized variable compiler warnings
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-load.c (get_out_value_type): Fix uninitialized
variable compiler warnings.
commit 25070364b0ce33eed46aa5d78ebebbec6accec7e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat May 16 07:00:21 2015 -0700
Don't generate PLT relocations for now binding
There is no need for PLT relocations with -z now. We can use GOT
relocations, which take less space, instead and replace 16-byte .plt
entres with 8-byte .plt.got entries.
bfd/
* elf32-i386.c (elf_i386_check_relocs): Create .plt.got section
for now binding.
(elf_i386_allocate_dynrelocs): Use .plt.got section for now
binding.
* elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got
section for now binding.
(elf_x86_64_allocate_dynrelocs): Use .plt.got section for now
binding.
ld/testsuite/
* ld-i386/i386.exp: Run PR ld/17689 tests with -z now.
* ld-x86-64/x86-64.exp: Likewise
* ld-i386/pr17689now.rd: New file.
* ld-x86-64/pr17689now.rd: Likewise
commit 4d18dfad9edf822df205edc2c1fe3fe9f1e467b8
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 15:36:33 2015 +0200
compile: Fix detected inferior type
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-load.c (get_out_value_type): Fix returned type.
commit bbec1a5db7d3de1322cdc5a859d0c2a44ae1231f
Author: Alan Modra <amodra@gmail.com>
Date: Wed May 13 14:12:38 2015 +0930
[GOLD] Add PowerPC64 -fsplit-stack support
PowerPC64 ELFv1 requires a tweak to find_functions in order to return
code addresses, rather than OPD entry addresses.
* reloc.cc (Sized_relobj_file::find_functions): Use function_location.
* powerpc.cc (Target_powerpc::do_calls_non_split): New function.
(addi_12_1, addis_2_12, addis_12_1, cmpld_7_12_0): New constants.
(lis_0): Rename from lis_0_0.
commit 36de76f9cc2eea0bd5f1b7ce74ef60e1aa0b27c2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:20:46 2015 +0200
compile: New 'compile print'
It is planned the existing GDB command 'print' will be able to evaluate its
expressions using the compiler. There will be some option to choose between
the existing GDB evaluation and the compiler evaluation. But as an
intermediate step this patch provides the expression printing feature as a new
command.
I can imagine it could be also called 'maintenance compile print' as in the
future one should be able to use its functionality by the normal 'print'
command.
There was a discussion with Eli about the command name:
https://sourceware.org/ml/gdb-patches/2015-03/msg00880.html
As there were no other comments yet I haven't renamed it yet, before there is
some confirmation about settlement on the final name.
Support for the GDB '@' operator to create arrays has been submitted for GCC:
[gcc patch] libcc1: '@' GDB array operator
https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01451.html
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
Phil Muldoon <pmuldoon@redhat.com>
* NEWS (Changes since GDB 7.9): Add compile print.
* compile/compile-c-support.c (add_code_header, add_code_footer)
(c_compute_program): Add COMPILE_I_PRINT_ADDRESS_SCOPE and
COMPILE_I_PRINT_VALUE_SCOPE.
* compile/compile-internal.h (COMPILE_I_PRINT_OUT_ARG_TYPE)
(COMPILE_I_PRINT_OUT_ARG, COMPILE_I_EXPR_VAL, COMPILE_I_EXPR_PTR_TYPE):
New.
* compile/compile-object-load.c: Include block.h.
(get_out_value_type): New function.
(compile_object_load): Handle COMPILE_I_PRINT_ADDRESS_SCOPE and
COMPILE_I_PRINT_VALUE_SCOPE. Set compile_module's OUT_VALUE_ADDR and
OUT_VALUE_TYPE.
* compile/compile-object-load.h (struct compile_module): Add fields
out_value_addr and out_value_type.
* compile/compile-object-run.c: Include valprint.h and compile.h.
(struct do_module_cleanup): Add fields out_value_addr and
out_value_type.
(do_module_cleanup): Handle COMPILE_I_PRINT_ADDRESS_SCOPE and
COMPILE_I_PRINT_VALUE_SCOPE.
(compile_object_run): Propagate out_value_addr and out_value_type.
Pass OUT_VALUE_ADDR.
* compile/compile.c: Include valprint.h.
(compile_print_value, compile_print_command): New functions.
(eval_compile_command): Handle failed COMPILE_I_PRINT_ADDRESS_SCOPE.
(_initialize_compile): Update compile code help text. Install
compile_print_command.
* compile/compile.h (compile_print_value): New prototype.
* defs.h (enum compile_i_scope_types): Add
COMPILE_I_PRINT_ADDRESS_SCOPE and COMPILE_I_PRINT_VALUE_SCOPE.
gdb/doc/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo (Compiling and Injecting Code): Add compile print.
gdb/testsuite/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.compile/compile-print.c: New file.
* gdb.compile/compile-print.exp: New file.
commit 83d3415ef530c41af7e1ae98a7add97adb0cf5e0
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:20:45 2015 +0200
Code cleanup: compile: func_addr -> func_sym
Currently the code fetches _gdb_expr address/types at multiple places, guessing
its parameters at multiple places etc.
Fetch it once, verify it has expected type and then rely on it.
While the patch tries to clean up the code it is still horrible due to the
missing C++ sub-classing.
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-load.c (get_regs_type): Add parameter func_sym.
Rely on its parameter count.
(compile_object_load): Replace lookup_minimal_symbol_text by
lookup_global_symbol_from_objfile. Verify FUNC_SYM. Set it in the
return value.
* compile/compile-object-load.h (struct compile_module): Replace
func_addr by func_sym.
* compile/compile-object-run.c: Include block.h.
(compile_object_run): Reset module variable after it is freed. Use
FUNC_SYM instead of FUNC_ADDR. Rely on it.
commit 3a9558c494e9b461f752ce26382701d4446f0958
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:20:45 2015 +0200
compile: Use -Wall, not -w
For a reason unknown to me GDB was using -w instead of -Wall for 'compile code'.
The problem is later patch for 'compile printf' really needs some warnings to
be able to catch for example missing format string parameters:
(gdb) compile printf "%d\n"
GCC does not seem to be able to cancel -w (there is nothing like -no-w).
Besides that I think even 'compile code' can benefit from -Wall.
That #ifndef change in print_one_macro() is needed otherwise we get
macro-redefinition warnings for the GCC built-in macros (as -w is no
longer in effect). For example, without the #ifndef/#endif one gets:
compile -r -- void _gdb_expr(){int i = 5;}^M
/tmp/gdbobj-xpU1yB/out4.c:4:0: warning: "__FILE__" redefined [-Wbuiltin-macro-redefined]^M
/tmp/gdbobj-xpU1yB/out4.c:5:0: warning: "__LINE__" redefined^M
...
It makes more sense to pick the inferior's version of the macros, hence
#ifndef instead of #undef.
That new testsuite XFAIL is there as if one changes the struct definition to be
compliant with cv-qualifiers (to prevent the warnings):
struct struct_type {
- struct struct_type *selffield;
+ volatile struct struct_type *selffield;
only then GCC/GDB will hit the crash, described in that GDB PR 18202.
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-c-support.c (print_one_macro): Use #ifndef.
(generate_register_struct): Use __gdb_uintptr for TYPE_CODE_PTR.
(c_compute_program): Call generate_register_struct after typedefs.
* compile/compile-loc2c.c (push, pushf_register_address)
(pushf_register): Cast to GCC_UINTPTR.
(do_compile_dwarf_expr_to_c): Use unused attribute. Add space after
type. Use GCC_UINTPTR instead of void *. Remove excessive cast.
(compile_dwarf_expr_to_c): Use GCC_UINTPTR instead of void *.
* compile/compile.c (_initialize_compile): Enable warnings for
COMPILE_ARGS.
gdb/testsuite/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.compile/compile-ops.exp: Cast param to void.
* gdb.compile/compile.exp: Complete type for _gdb_expr.
(compile code struct_object.selffield = &struct_object): Add xfail.
commit 5c65b58a58a4c77b1ec38b4e31549aaa090b4845
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:27:47 2015 +0200
compile: Distribute scope, add scope_data
Provide a way to access current 'scope' during the do_module_cleanup stage and
associate more data with it.
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* cli/cli-script.c (execute_control_command): Update
eval_compile_command caller.
* compile/compile-object-load.c (compile_object_load): Add parameters
scope and scope_data. Set them.
* compile/compile-object-load.h (struct compile_module): Add fields
scope and scope_data.
(compile_object_load): Add parameters scope and scope_data.
* compile/compile-object-run.c (struct do_module_cleanup): Add fields
scope and scope_data.
(compile_object_run): Propagate the fields scope and scope_data.
* compile/compile.c (compile_file_command, compile_code_command):
Update eval_compile_command callers.
(eval_compile_command): Add parameter scope_data. Pass it plus scope.
* compile/compile.h (eval_compile_command): Add parameter scope_data.
* defs.h (struct command_line): Add field scope_data.
commit 1c88ceb1bedc81dbfd1d076e4a49bbf533b4e238
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:26:06 2015 +0200
Code cleanup: Make parts of print_command_1 public
The later 'compile print' command should share its behavior with the existing
'print' command. Make the needed existing parts of print_command_1 public.
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* printcmd.c (struct format_data): Move it to valprint.h.
(print_command_parse_format, print_value): New functions from ...
(print_command_1): ... here. Call them.
* valprint.h (struct format_data): Move it here from printcmd.c.
(print_command_parse_format, print_value): New declarations.
commit 0b738f2744178ad33eeb60bcd9bdfb77adb5605b
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:25:28 2015 +0200
Add forgotten ChangeLog entry for the previous commit.
commit b6de3f9642c58439c31690255c3a4326728da88d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat May 16 14:14:10 2015 +0200
compile: Add one debug message
gdb/ChangeLog
2015-05-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-load.c (compile_object_load): Add
COMPILE_DEBUG message.
commit 24da9638e206f9d83c0aa0bd419e16c9d97dd76f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat May 16 00:00:08 2015 +0000
Automatic date update in version.in
commit aa7151351ed16c5a4eb1334c9a1af1b06dbb7a99
Author: Jerome Guitton <guitton@adacore.com>
Date: Fri Mar 27 14:45:08 2015 +0100
Array indexed by non-contiguous enumeration types
In Ada, index types of arrays can be enumeration types, and enumeration
types can be non-contiguous. In which case the address of elements is
not given by the value of the index, but by its position in the enumeration
type.
In other words, in this example:
type Color is (Blue, Red);
for Color use (Blue => 8, Red => 12, Green => 16);
type A is array (Color) of Integer;
type B is array (1 .. 3) of Integer;
Arrays of type A and B will have the same layout in memory, even if
the enumeration Color has a hole in its set of integer value.
Since recently support for such a feature was in ada-lang.c, where the
array was casted to a regular continuous index range. We were losing
the information of index type. And this was not quite working for
subranges in variable-length fields; their bounds are expressed using
the integer value of the bounds, not its position in the enumeration,
and there was some confusion all over ada-lang.c as to whether we had
the position or the integer value was used for indexes.
The idea behind this patch is to clean this up by keeping the real
representation of these array index types and bounds when representing
the value, and only use the position when accessing the elements or
computing the length. This first patch fixes the printing of such
an array.
To the best of my knowledge, this feature only exists in Ada so it
should only affect this language.
gdb/ChangeLog:
Jerome Guitton <guitton@adacore.com>:
* ada-lang.c (ada_value_ptr_subscript): Use enum position of
index to get element instead of enum value.
(ada_value_slice_from_ptr, ada_value_slice): Use enum position
of index to compute length, but enum values to compute bounds.
(ada_array_length): Use enum position of index instead of enum value.
(pos_atr): Move position computation to...
(ada_evaluate_subexp): Use enum values to compute bounds.
* gdbtypes.c (discrete_position): ...this new function.
* gdbtypes.h (discrete_position): New function declaration.
* valprint.c (val_print_array_elements): Call discrete_position
to handle array indexed by non-contiguous enumeration types.
gdb/testsuite/ChangeLog:
* gdb.ada/arr_enum_with_gap: New testcase.
commit 931e5bc3e19d1e279fc28c5cf5571f812c79b8d3
Author: Jerome Guitton <guitton@adacore.com>
Date: Thu Mar 26 16:19:27 2015 +0100
Non bit-packed packed arrays as variable-length fields
In the case of non bit-packed arrays, GNAT does not generate its
traditional XP encoding; it is not needed. However, it still generates
the so-called "implementation type" with a P suffix. This
implementation type shall be skipped when looking for other
descriptive types such as XA encodings for variable-length
fields.
Note also that there may be an intermediate typedef between the
implementation type and its XA description. It shall be skipped
as well.
gdb/ChangeLog:
Jerome Guitton <guitton@adacore.com>
* ada-lang.c (find_parallel_type_by_descriptive_type):
Go through typedefs during lookup.
(to_fixed_array_type): Add support for non-bit packed arrays
as variable-length fields.
gdb/testsuite/ChangeLog:
* gdb.ada/byte_packed_arr: New testcase.
commit fd8008d83ce379a8d3f3bb9c3b1a723e16c401d4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 15 10:29:03 2015 -0700
Change pointers from char * to unsigned char *
GCC 4.2 complaints:
cc1: warnings being treated as errors
binutils/readelf.c:12057: warning: dereferencing type-punned pointer will break strict-aliasing rules
This patch silences this GCC warning.
* readelf.c (dump_section_as_strings): Change pointers from
char * to unsigned char *.
commit 5db04b0965e3e7a9344a93de22caae3c111de2cc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 15 09:47:39 2015 -0700
Support AMD64/Intel ISAs in assembler/disassembler
AMD64 spec and Intel64 spec differ in direct unconditional branches in
64-bit mode. AMD64 supports direct unconditional branches with 16-bit
offset via the data size prefix, which truncates RIP to 16 bits, while
the data size prefix is ignored by Intel64.
This patch adds -mamd64/-mintel64 option to x86-64 assembler and
-Mamd64/-Mintel64 option to x86-64 disassembler. The most permissive
ISA, which is AMD64, is the default.
GDB can add an option, similar to
(gdb) help set disassembly-flavor
Set the disassembly flavor.
The valid values are "att" and "intel", and the default value is "att".
to select which ISA to disassemble.
binutils/
PR binutis/18386
* doc/binutils.texi: Document -Mamd64 and -Mintel64.
gas/
PR binutis/18386
* config/tc-i386.c (OPTION_MAMD64): New.
(OPTION_MINTEL64): Likewise.
(md_longopts): Add -mamd64 and -mintel64.
(md_parse_option): Handle OPTION_MAMD64 and OPTION_MINTEL64.
(md_show_usage): Add -mamd64 and -mintel64.
* doc/c-i386.texi: Document -mamd64 and -mintel64.
gas/testsuite/
PR binutis/18386
* gas/i386/i386.exp: Run x86-64-branch-2 and x86-64-branch-3.
* gas/i386/x86-64-branch.d: Also pass -Mintel64 to objdump.
* gas/i386/ilp32/x86-64-branch.d: Likewise.
* gas/i386/x86-64-branch-2.d: New file.
* gas/i386/x86-64-branch-2.s: Likewise.
* gas/i386/x86-64-branch-3.l: Likewise.
* gas/i386/x86-64-branch-3.s: Likewise.
ld/testsuite/
PR binutis/18386
* ld-x86-64/tlsgdesc.dd: Also pass -Mintel64 to objdump.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/x86-64.exp (x86_64tests): Also pass -Mintel64 to
objdump for tlspic.dd and tlsgdesc.dd.
opcodes/
PR binutis/18386
* i386-dis.c: Add comments for '@'.
(x86_64_table): Use '@' on call/jmp for X86_64_E8/X86_64_E9.
(enum x86_64_isa): New.
(isa64): Likewise.
(print_i386_disassembler_options): Add amd64 and intel64.
(print_insn): Handle amd64 and intel64.
(putop): Handle '@'.
(OP_J): Don't ignore the operand size prefix for AMD64 in 64-bit.
* i386-gen.c (cpu_flags): Add CpuAMD64 and CpuIntel64.
* i386-opc.h (AMD64): New.
(CpuIntel64): Likewise.
(i386_cpu_flags): Add cpuamd64 and cpuintel64.
* i386-opc.tbl: Add direct call/jmp with Disp16|Disp32 for AMD64.
Mark direct call/jmp without Disp16|Disp32 as Intel64.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
commit 0e602686df5677fee06cbd1718b4a7aa5379cd2a
Author: Nick Clifton <nickc@redhat.com>
Date: Fri May 15 17:16:31 2015 +0100
Add --decompress option to readelf to decompress sections before they are dumped.
bin * readelf.c (options): Add "decompress".
(usage): Mention -z/--decompress.
(parse_args): Handle -z.
(uncompress_section_contents): Move to earlier in the file.
(dump_section_as_strings): If requested, decompress the section
before dumping.
(dump_section_as_bytes): Likewise.
* doc/binutils.texi: Document the new option.
tests * binutils-all/z.s: New test. Checks the --decompress option to
readelf.
* binutils-all/readelf.exp: Run the test.
* binutils-all/readelf.z: Expected output from readelf.
commit 4e63d0ac896b6036edd8e2c09a4dac7aa16a46d1
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 15 16:26:53 2015 +0100
Fix gdb.mi/mi-nsmoribund.exp timeouts
The PPC64 buildbot has been showing timeouts in mi-nsmoribund.exp,
like this:
(...)
-thread-info
FAIL: gdb.mi/mi-nsmoribund.exp: thread state: all running except the breakpoint thread (timeout)
... and I can reproduce this on gcc110 (PPC64) on the gcc compile
farm.
That is, the test sends "-thread-info" to GDB, but GDB never replies
back.
The problem is that these machines are too fast for gdb. :-)
That test has a few threads running the same tight loop, and
constantly hitting a thread-specific breakpoint that needs to be
stepped over. If threads trip on breakpoints fast enough that
linux-nat.c's event pipe associated with SIGCHLD is constantly being
written to, even if the stdin file descriptor also has an event to
handle, gdb never gets to it. because linux-nat.c's pipe comes first
in the set of descriptors served by the poll/select code in the event
loop.
Fix this by having the event loop serve file event sources in
round-robin-like fashion, similarly to how its done in
gdb_do_one_event.
Unfortunately, the poll and the select variants each need their own
fixing.
Tested on x86_64 Fedora 20 (poll and select variants), and PPC64
Fedora 18. Fixes the timeout in the PPC64 machine in the compile farm
that times out without this, and I won't be surprised if it fixes
other random timeouts in other tests.
(gdbserver's copy of the event-loop doesn't need this (yet), as it
still pushes all ready events to an event queue. That is, it hasn't
had 70b66289 merged yet. We should really merge both event-loop.c
copies into a single shared file, but that's for another day.)
gdb/ChangeLog:
2015-05-15 Pedro Alves <palves@redhat.com>
Simon Marchi <simon.marchi@ericsson.com>
* event-loop.c (gdb_notifier) <next_file_handler,
next_poll_fds_index>: New fields.
(get_next_file_handler_to_handle_and_advance): New function.
(delete_file_handler): If deleting the next file handler to
handle, advance to the next file handler.
(gdb_wait_for_event): Bail early if no event fired. Poll file
handlers in round-robin fashion.
commit 452003ef2ca3e1cf81b17d960b59b8a8c167054b
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 15 16:00:42 2015 +0100
More C++ build fixing
Fixes:
In file included from ../../../binutils-gdb/gdb/gdbserver/server.h:61:0,
from ../../../binutils-gdb/gdb/gdbserver/server.c:19:
../../../binutils-gdb/gdb/gdbserver/target.h:442:50: error: second operand to the conditional operator is of type 'void', but the third operand is neither a throw-expression nor of type 'void'
(*the_target->handle_new_gdb_connection) () : 0)
^
Reported by Yuanhui Zhang.
gdb/gdbserver/ChangeLog:
2015-05-15 Pedro Alves <palves@redhat.com>
* target.h (target_handle_new_gdb_connection): Rewrite using if
wrapped in do/while.
commit 52e48b3661a55d5f7cc29591780b844e47157c3f
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 15 16:00:41 2015 +0100
Avoid using 'private' C++ keyword as symbol
gdb/ChangeLog:
2015-05-15 Pedro Alves <palves@redhat.com>
* linux-tdep.c (linux_find_memory_regions_full): Rename local
'private' to 'priv'.
commit 2465e12e99c4ffd3e56e4725729cd3016d4e2c3d
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 15 16:00:40 2015 +0100
Include header for enum target_stop_reason
Building in C++ mode errors with:
~~~
g++ -fpermissive (...) /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.c
In file included from /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.h:23:0,
from /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.c:21:
/home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/linux-nat.h:74:13: error: use of enum âtarget_stop_reasonâ without previous declaration
extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
^
/home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/linux-nat.h:74:70: error: invalid type in declaration before â;â token
extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
^
~~~
gdb/ChangeLog:
2015-05-15 Pedro Alves <palves@redhat.com>
* nat/linux-nat.h: Include "target/waitstatus.h".
commit 13fa0398d7dd8d2b468acf0aba5610ce014709a6
Author: Yuanhui Zhang <asmwarrior@gmail.com>
Date: Fri May 15 16:00:40 2015 +0100
Fix a couple C++ build issues
Building mingw GDB with --enable-build-with-cxx shows:
../../binutils-gdb/gdb/python/py-unwind.c:500:45: error: cannot convert 'cached_frame_info::reg_info*' to 'pyuw_prev_register(frame_info*, void**, int)::reg_info*' in initialization
struct reg_info *reg_info = cached_frame->reg;
^
../../binutils-gdb/gdb/python/py-unwind.c:501:60: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
struct reg_info *reg_info_end = reg_info + cached_frame->reg_count;
^
../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
struct reg_info *reg_info = cached_frame->reg;
^
../../binutils-gdb/gdb/python/py-unwind.c:505:37: error: cannot increment a pointer to incomplete type 'pyuw_prev_register(frame_info*, void**, int)::reg_info'
for (; reg_info < reg_info_end; ++reg_info)
^
../../binutils-gdb/gdb/python/py-unwind.c:507:29: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
if (regnum == reg_info->number)
^
../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
struct reg_info *reg_info = cached_frame->reg;
^
../../binutils-gdb/gdb/python/py-unwind.c:508:68: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
return frame_unwind_got_bytes (this_frame, regnum, reg_info->data);
^
../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
struct reg_info *reg_info = cached_frame->reg;
^
../../binutils-gdb/gdb/python/py-unwind.c: In function 'int pyuw_sniffer(const frame_unwind*, frame_info*, void**)':
../../binutils-gdb/gdb/python/py-unwind.c:574:70: warning: invalid conversion from 'void*' to 'cached_frame_info*' [-fpermissive]
reg_count * sizeof (cached_frame->reg[0]));
^
../../binutils-gdb/gdb/python/py-unwind.c: In function 'void pyuw_on_new_gdbarch(gdbarch*)':
../../binutils-gdb/gdb/python/py-unwind.c:636:47: warning: invalid conversion from 'void*' to 'pyuw_gdbarch_data_type*' [-fpermissive]
gdbarch_data (newarch, pyuw_gdbarch_data);
^
../../binutils-gdb/gdb/python/py-unwind.c:647:29: warning: invalid conversion from 'void*' to 'const frame_data*' [-fpermissive]
unwinder->unwind_data = (void *) newarch;
^
../../binutils-gdb/gdb/python/py-unwind.c: At global scope:
../../binutils-gdb/gdb/python/py-unwind.c:699:21: error: redefinition of 'PyTypeObject pending_frame_object_type'
static PyTypeObject pending_frame_object_type =
^
../../binutils-gdb/gdb/python/py-unwind.c:96:21: error: 'PyTypeObject pending_frame_object_type' previously declared here
static PyTypeObject pending_frame_object_type
^
../../binutils-gdb/gdb/python/py-unwind.c:749:21: error: redefinition of 'PyTypeObject unwind_info_object_type'
static PyTypeObject unwind_info_object_type =
^
../../binutils-gdb/gdb/python/py-unwind.c:99:21: error: 'PyTypeObject unwind_info_object_type' previously declared here
static PyTypeObject unwind_info_object_type
^
The first kind of error is caused by the embedded struct definition,
so move it out of the parent struct.
The second kind of error is caused by forward declaring a static
global variable, which works in C, but not in C++ (or C with
-fno-common). Make it using extern instead, like done in other
similar cases.
gdb/ChangeLog:
2015-05-15 Yuanhui Zhang <asmwarrior@gmail.com>
* python/py-unwind.c (struct reg_info): Move out of ...
(struct cached_frame_info): ... this scope.
(pending_frame_object_type, unwind_info_object_type): Make extern.
commit 9cd4d857bb046ad9be3c6d978b5b2aebb528eaf4
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri May 8 17:11:35 2015 -0700
[Ada] problem printing negative integer values in packed arrays.
Consider the following declarations:
type Signed_Small is new Integer range - (2 ** 5) .. (2 ** 5 - 1);
type Signed_Simple_Array is array (1 .. 4) of Signed_Small;
pragma Pack (Signed_Simple_Array);
SSA : Signed_Simple_Array := (-1, 2, -3, 4);
GDB currently print its value incorrectly for the elements that
are negative:
(gdb) print ssa
$1 = (65535, 2, 1048573, 4)
(gdb) print ssa(1)
$2 = 65535
(gdb) print ssa(2)
$3 = 2
(gdb) print ssa(3)
$4 = 1048573
(gdb) print ssa(4)
$5 = 4
What happens is that the sign-extension is not working because
we're trying to do left shift with a negative count. In
ada_value_primitive_packed_val, we have a loop which populates
the extra bits of the target (unpacked) value, after extraction
of the data from the original (packed) value:
while (ntarg > 0)
{
accum |= sign << accumSize;
unpacked[targ] = accum & ~(~0L << HOST_CHAR_BIT);
!!! -> accumSize -= HOST_CHAR_BIT;
accum >>= HOST_CHAR_BIT;
ntarg -= 1;
targ += delta;
}
At each iteration, accumSize gets decremented by HOST_CHAR_BIT,
which can easily cause it to become negative, particularly on
little endian targets, where accumSize is at most HOST_CHAR_BIT - 1.
This causes us to perform a left-shift operation with a negative
accumSize at the next loop iteration, which is undefined, and
acutally does not produce the effect we wanted (value left untouched)
when the code is compiled with GCC.
This patch fixes the issue by simply setting accumSize to zero
if negative.
gdb/ChangeLog:
* ada-lang.c (ada_value_primitive_packed_val): Make sure
accumSize is never negative.
gdb/testsuite/ChangeLog:
* gdb.ada/pckd_neg: New testcase.
commit 8dcea93252a9ea7dff57e85220a719e2a5e8ab41
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 15 03:17:31 2015 -0700
Add -mshared option to x86 ELF assembler
This patch adds -mshared option to x86 ELF assembler. By default,
assembler will optimize out non-PLT relocations against defined non-weak
global branch targets with default visibility. The -mshared option tells
the assembler to generate code which may go into a shared library
where all non-weak global branch targets with default visibility can
be preempted. The resulting code is slightly bigger. This option
only affects the handling of branch instructions.
This Linux kernel patch is needed to create a working x86 Linux kernel if
it hasn't been applied:
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index ae6588b..b91a00c 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -339,8 +339,8 @@ early_idt_handlers:
i = i + 1
.endr
-/* This is global to keep gas from relaxing the jumps */
-ENTRY(early_idt_handler)
+/* This is weak to keep gas from relaxing the jumps */
+WEAK(early_idt_handler)
cld
cmpl $2,(%rsp) # X86_TRAP_NMI
--
gas/
* config/tc-i386.c (shared): New.
(OPTION_MSHARED): Likewise.
(elf_symbol_resolved_in_segment_p): Add relocation argument.
Check PLT relocations and shared.
(md_estimate_size_before_relax): Pass fragP->fr_var to
elf_symbol_resolved_in_segment_p.
(md_longopts): Add -mshared.
(md_show_usage): Likewise.
(md_parse_option): Handle OPTION_MSHARED.
* doc/c-i386.texi: Document -mshared.
gas/testsuite/
* gas/i386/i386.exp: Don't run pcrel for ELF targets. Run
pcrel-elf, relax-4 and x86-64-relax-3 for ELF targets.
* gas/i386/pcrel-elf.d: New file.
* gas/i386/relax-4.d: Likewise.
* gas/i386/x86-64-relax-3.d: Likewise.
* gas/i386/relax-3.d: Pass -mshared to assembler. Updated.
* gas/i386/x86-64-relax-2.d: Likewise.
* gas/i386/relax-3.s: Add test for PLT relocation.
commit d1c4b12b9d48d9266b78e2c22d70aa25830b9f8f
Author: Nick Clifton <nickc@redhat.com>
Date: Fri May 15 11:21:38 2015 +0100
Fix PR18374 by making readelf and objdump ignore end-of-list markers in the .debug_loc section if there are relocations against them.
PR binutils/18374
bin * dwarf.h (struct dwarf_section): Add reloc_info and num_relocs
fields.
(struct dwarf_section_display): Change bitfield to boolean.
(reloc_at): Add prototype.
* dwarf.c (display_loc_list): Ignore list terminators if there are
relocs against them.
(display_debug_loc): Issue a warning if there are relocs against
the .debug_loc section.
(display_displays): Initialise reloc_info and num_relocs fields.
* objdump.c (load_specific_debug_section): Initialise reloc_info
and num_relocs fields.
(reloc_at): New function.
* readelf.c (is_32bit_abs_reloc): Add IA64's R_IA64_DIS32LSB
reloc.
(reloc_at): New function.
(apply_relocations): Add relocs_return and num_relocs_return
parameters. Fill them in with the loaded relocs if non-NULL.
(dump_section_as_bytes): Update call to apply_relocations.
(load_specific_debug_section): Initialise reloc_info and
num_relocs fields.
tests * binutils-all/pr18374.s: New test file.
* binutils-all/readelf.exp: Assemble and run the new test.
* binutils-all/readelf.pr18374: Expected output from readelf.
commit 4bc0608a8b693f033555aa5705fdd5fc44cb9a9a
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Thu May 14 20:57:50 2015 -0500
Fix some PPC assembler errors.
Remove the wait instructions for server processors, since they were never
implemented. Also add the extra operands added to the tlbie and slbia
instructions with ISA 2.06 and ISA 2.05 respectively.
binutils/
* MAINTAINERS: Add myself as PPC maintainer.
opcodes/
* ppc-opc.c (IH) New define.
(powerpc_opcodes) <wait>: Do not enable for POWER7.
<tlbie>: Add RS operand for POWER7.
<slbia>: Add IH operand for POWER6.
gas/testsuite/
* gas/ppc/power4.d: Add a slbia test.
* gas/ppc/power4.s: Likewise.
* gas/ppc/power6.d: Add slbia and tlbie tests.
* gas/ppc/power6.s: Likewise.
* gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
* gas/ppc/power7.s: Likewise.
commit 49a84e1373168f743fd6191035043389f0198a14
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri May 15 00:00:08 2015 +0000
Automatic date update in version.in
commit dab394de9e41de54df5e2310e081e1c550326f5b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu May 14 15:58:51 2015 -0700
Don't add the zlib header to SHF_COMPRESSED section
In a SHF_COMPRESSED compressed section, the raw compressed data should
begin immediately after the compression header. This patch removes the
extra zlib header from the SHF_COMPRESSED section.
bfd/
* bfd.c (bfd_update_compression_header): Also write the zlib
header if the SHF_COMPRESSED bit cleared..
(bfd_check_compression_header): Return the uncompressed size.
* compress.c (decompress_contents): Don't skip the zlib header.
(bfd_compress_section_contents): Properly handle ELFCOMPRESS_ZLIB,
which doesn't have the zlib header.
(bfd_init_section_decompress_status): Likewise.
(bfd_get_full_section_contents): Updated.
(bfd_is_section_compressed): Likewise.
(bfd_is_section_compressed_with_header): Return the uncompressed
size.
* elf.c (_bfd_elf_make_section_from_shdr): Updated.
* bfd-in2.h: Regenerated.
binutils/
* readelf.c (uncompress_section_contents): Add a parameter for
uncompressed size. Don't check the zlib header.
(load_specific_debug_section): Updated.
binutils/testsuite/
* binutils-all/compress.exp: Replace "$OBJDUMP -s -j .debug_info"
with "$OBJDUMP -W".
* binutils-all/libdw2-compressedgabi.out: Updated.
gas/
2015-05-14 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Don't write the zlib header, which
is handled by bfd_update_compression_header.
commit 61a7418ccb7c2de12d4c4df79e193f32db938a11
Author: Don Breazeal <donb@codesourcery.com>
Date: Thu May 14 13:11:41 2015 -0700
Fix build gdbserver build errors on arm, mips, aarch64.
Fix build errors introduced by
https://sourceware.org/ml/gdb-patches/2015-05/msg00281.html, which
didn't account for the change of the name of the struct process_info
field 'private' to 'priv' made in
https://sourceware.org/ml/gdb-patches/2015-02/msg00829.html.
gdb/gdbserver/ChangeLog:
* linux-aarch64-low.c (aarch64_linux_new_fork): Change reference
to process_info.private to process_info.priv.
* linux-arm-low.c (arm_new_fork): Likewise.
* linux-mips-low.c (mips_linux_new_fork): Likewise.
commit 1041a03c1b4d03c39033c8bb942148dc3e4b4acc
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Mar 24 13:19:10 2015 -0400
Fix gdbserver build failure on arm-android.
The following patch...
| proc-service, extern "C"
|
| libthread_db.so calls symbols in the client (GDB), through the
| proc-service interface. These routines must have extern "C" linkage
| so their symbol names are not mangled when GDB is built as a C++
| program. On the GDBserver side, we were missing fallback declarations for
| all these symbols.
|
| gdb/ChangeLog:
|
| * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
|
| gdb/gdbserver/ChangeLog:
| 2015-02-27 Pedro Alves <palves@redhat.com>
|
| * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
| [!HAVE_PROC_SERVICE_H] (struct ps_prochandle): Forward declare.
| [!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
| ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
| (ps_lsetfpregs, ps_getpid)
| (ps_get_thread_area, ps_pglobal_lookup, ps_pstop, ps_pcontinue)
| (ps_lstop, ps_lcontinue, ps_lgetxregsize, ps_lgetxregs)
| (ps_lsetxregs, ps_plog): Declare.
... added a number of declarations which do not compile when cross-
compiling GDBserver on arm-android. The problem comes from type
prfpregset_t not being declared:
/[...]/gdbserver/gdb_proc_service.h:98:47:
error: unknown type name 'prfpregset_t'
After searching through the includes of the install we have,
I could not find that type being declared anywhere. So I did
the same as for prgregset_t, and created the typedef if the
type isn't declared.
gdb/gdbserver/ChangeLog:
* configure.ac: Add prfpregset_t BFD_HAVE_SYS_PROCFS_TYPE check.
* configure, config.in: Regenerate.
* gdb_proc_service.h [HAVE_PRFPREGSET_T] (prfpregset_t):
Declare typedef.
commit e3555239e04fa6dba2a165b3b52598a880474a22
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Wed May 13 16:26:48 2015 -0400
Remove buggy xterm workaround in tui_dispatch_ctrl_char()
The function tui_dispatch_ctrl_char() has an old workaround (from 1999)
for buggy terminals and/or ncurses library that don't return page
up/down keys as single characters. Because the workaround is so old, I
think the bug it is targetting is no longer relevant anymore.
But more importantly, the workaround is itself buggy: it 1) performs a
blocking call to wgetch() and 2) if the key returned by wgetch() does
not make up a relevant key sequence it throws away the input instead of
pushing it back via ungetch(). And indeed the workaround breaks Alt-key
sequences under TERM=xterm because of bug #2.
So this patch removes the buggy workaround and tidies up the function
accordingly.
I personally tested this change on a recent xterm (with TERM=xterm) in
Fedora 20 and had no problems with having ncurses properly interpret
page up/down keys. And Alt-key sequences now work when TERM=xterm too.
gdb/ChangeLog:
* tui/tui-command.c: Remove include of <ctype.h>.
(tui_dispatch_ctrl_char): Remove workaround for xterm terminals.
commit fdc3b1b1ef461fb81a53c9ce95117e5f134fc828
Author: Jiong Wang <jiong.wang@arm.com>
Date: Thu May 14 12:46:31 2015 +0100
[AArch64] Remove BFD overflow check restrictions
bfd/
* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Remove overflow
check restriction.
commit fd1c42387bead88edbd6043440462ada755f8d6e
Author: Nick Clifton <nickc@redhat.com>
Date: Thu May 14 12:32:12 2015 +0100
Update description of the ASSERT linker script command to note its interation with PROVIDEd symbols.
* ld.texinfo (ASSERT): Describe the interaction with PROVIDEd
symbols.
commit e6c9a083ec5ae7a45bd71682b26aae1939849388
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Thu May 14 05:22:55 2015 +0300
xtensa: fix localized symbol refcounting with --gc-sections
elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
made local, that results in link failure with the following message:
BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
3372 in elf_xtensa_finish_dynamic_sections
elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
relocation type. Relocation types are not changed when symbol becomes
local, but its PLT references are added to GOT references and
plt.refcount is set to 0. Such symbol cannot be unreferences in the
elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
relocations section size not match number of GOT relocations.
Fix it by treating PLT reference as GOT reference when plt.refcount is
not positive.
2015-05-14 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
as GOT reference when plt.refcount is not positive.
commit d121800b7f1df96db2dc6ab1d1a86c51befde063
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu May 14 00:00:07 2015 +0000
Automatic date update in version.in
commit 08a76f8ab86efbd5c85c9bd3979c4c06b9e84258
Author: Martin Galvan <martin.galvan@tallertechnologies.com>
Date: Wed May 13 14:09:19 2015 -0700
dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.
gdb/ChangeLog:
* dwarf2read.c (die_needs_namespace): Return 1 for
DW_TAG_inlined_subroutine.
commit 93b2e21d4a86e9bc0adf31071b33dc1e34603462
Author: Doug Evans <dje@google.com>
Date: Wed May 13 14:07:03 2015 -0700
revert previous patch, author not set
commit da0580a62bff4cdfa53ef6b491f5158cc7a5744a
Author: Doug Evans <dje@google.com>
Date: Wed May 13 13:55:09 2015 -0700
dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine.
gdb/ChangeLog:
* dwarf2read.c (die_needs_namespace): Return 1 for
DW_TAG_inlined_subroutine.
commit bd49952bd7fbe616e2cb488e8080502f2338aaa2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 20:47:33 2015 +0200
Make regcache_cpy_no_passthrough static
regcache_cpy_no_passthrough is no longer used for a standalone call.
gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>
* regcache.c (regcache_cpy_no_passthrough): New declaration.
(regcache_cpy_no_passthrough): Make it static, add function comment.
* regcache.h (regcache_dup, regcache_cpy): Reduce/update their comment.
(regcache_cpy_no_passthrough): Remove declaration.
commit 46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 20:47:33 2015 +0200
Remove stop_registers
Now stop_registers are no longer used and it can be removed.
I am not much sure what 'proceed_to_finish' really means now so I make a wild
guess while updating comments about it.
gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdbthread.h (struct thread_control_state): Update comment for
proceed_to_finish.
* infcall.c (run_inferior_call): Update comment about
proceed_to_finish.
* infcmd.c (get_return_value): Update comment about stop_registers.
(finish_forward): Update comment about proceed_to_finish.
* infrun.c (stop_registers): Remove.
(clear_proceed_status, normal_stop): Remove stop_registers handling.
* infrun.h (stop_registers): Remove.
commit 8a6c40311297f60ad13827650fdde13da301b505
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 20:47:32 2015 +0200
infcall: stop_registers -> register_dummy_frame_dtor
With dummy_frame destructors GDB no longer has to use global stop_registers.
dummy_frame's registers can be now stored associated with their specific
dummy_frame.
gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>
* infcall.c (struct dummy_frame_context_saver)
(dummy_frame_context_saver_data_free, dummy_frame_context_saver_dtor)
(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
New.
(call_function_by_hand_dummy): Move discard_cleanups of
inf_status_cleanup before dummy_frame_push. Call
dummy_frame_context_saver_setup and prepare context_saver_cleanup.
Use dummy_frame_context_saver_get_regs instead of stop_registers.
* infcall.h (struct dummy_frame_context_saver)
(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
New declarations.
* infcmd.c: Include infcall.h.
(get_return_value): Add parameter ctx_saver, use it instead of
stop_registers.
(print_return_value): Add parameter ctx_saver, pass it.
(struct finish_command_continuation_args): Add field ctx_saver.
(finish_command_continuation): Update print_return_value caller.
(finish_command_continuation_free_arg): Free also ctx_saver.
(finish_forward): Call dummy_frame_context_saver_setup.
* inferior.h (struct dummy_frame_context_saver): New declaration.
(get_return_value): Add parameter ctx_saver.
* python/py-finishbreakpoint.c (bpfinishpy_pre_stop_hook): Update
get_return_value caller.
commit 109896905babca2d99e13f74bc887acf14cd1ab7
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 20:47:32 2015 +0200
register_dummy_frame_dtor: Permit multiple dtors
Later patch needs two independent destructors for the same dummy_frame.
Therefore the registrar has been extended to an arbitrary number of
destructors.
gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>
* dummy-frame.c (struct dummy_frame_dtor_list): New.
(struct dummy_frame): Replace dtor and dtor_data by dtor_list.
(remove_dummy_frame): Process dtor_list.
(pop_dummy_frame): Process dtor_list.
(register_dummy_frame_dtor): Maintain dtor_list.
(find_dummy_frame_dtor): Handle dtor_list.
* dummy-frame.h (register_dummy_frame_dtor, find_dummy_frame_dtor):
Update comments.
commit 5e9705017f5b257421136b8d7752b9c793335ace
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 20:47:32 2015 +0200
Call dummy_frame_dtor_ftype also from remove_dummy_frame
There was now a leak-like bug that if dummy_frame "disappeared" by
remove_dummy_frame then its destructor was not called. For example in the case
of 'compile code' dummy frames the injected objfile would never get freed after
some inferior longjmp out of the injected code.
gdb/ChangeLog
2015-05-13 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-run.c (do_module_cleanup): Add parameter
registers_valid.
(compile_object_run): Update do_module_cleanup caller.
* dummy-frame.c: Include infcall.h.
(struct dummy_frame): Update dtor comment.
(remove_dummy_frame): Call dtor.
(pop_dummy_frame): Update dtor caller.
* dummy-frame.h (dummy_frame_dtor_ftype): Add parameter
registers_valid.
commit 1c4eb778a28447d764235b8810d382b40b2a054c
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed May 13 10:48:31 2015 -0700
Document the GDB 7.9.1 release in gdb/ChangeLog
gdb/ChangeLog:
GDB 7.9.1 released.
commit f5f85ab95ff104eae872622ab3e2ad30a2b3d47a
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed May 13 10:31:00 2015 -0700
gdb/NEWS: Move "Xmethods can now specify a result type" to GDB 7.9.1 section.
As this change was ported to GDB 7.9.1, the NEWS entry is moved to
a newly-created "Changes in GDB 7.9.1" section, matching the NEWS
file which is going to be distributed with the GDB 7.9.1 release.
gdb/ChangeLog:
* NEWS: Create "Changes in GDB 7.9.1" section. Move news about
Xmethods now being able to specify a result type to that new
section.
commit 5569a85f45e4df3563254cea4caa02c7cb092480
Author: John David Anglin <dave.anglin@bell.net>
Date: Wed May 13 17:32:01 2015 +0100
Disable the configuration of GDB for HPUX targets.
* configure.ac: Disable configuration of GDB for HPUX targets.
* configure: Regenerate.
commit dc58915f3af581f32d575acd37e0cfe047c7990b
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Sun May 10 01:02:31 2015 +0300
xtensa: fix gas trampolines regression
Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline
selection results in regressions: when relaxable jump is little longer
than J_RANGE so that single trampoline makes two new jumps, one longer
than J_RANGE / 2 and one shorter, correct trampoline cannot be found.
Drop that condition.
2015-05-13 Max Filippov <jcmvbkbc@gmail.com>
gas/
* config/tc-xtensa.c (xtensa_relax_frag): Allow trampoline to be
closer than J_RANGE / 2 to jump frag.
gas/testsuite/
* gas/xtensa/trampoline.s: Add regression testcase.
commit 242cd84c933640b7cc82b9783d5ebb1d963e1c0d
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Wed May 13 11:57:06 2015 -0400
Add missing ChangeLog entry for previous commit
commit 1e04046d0b7e0f87bc6e2fefd966c9dd89d2ce13
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Mon Apr 27 21:37:48 2015 -0400
Avoid race condition when handling a SIGWINCH signal
The control variable win_resized must be cleared before responding to
it.
Otherwise there is a small window where another SIGWINCH might occur in
between the handling of an earlier SIGWINCH and the clearing of
win_resized, at which point win_resized would be set (again) by the
signal handler. Shortly thereafter we would clear win_resized even
though we only handled the earlier SIGWINCH but not the latest one.
This chain of events is all avoided if we clear win_resized first.
gdb/ChangeLog:
* tui/tui-win.c (tui_async_resize_screen): Clear win_resized
first before resizing the window.
* tui.c (tui_enable): Likewise.
commit 558e5469679897ee57ad6706074f55ff4952cf43
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 13 15:55:09 2015 +0200
dummy_frame_dtor_ftype vs. call_function_by_hand_dummy_dtor_ftype cleanup
Both dummy_frame_dtor_ftype and call_function_by_hand_dummy_dtor_ftype
represent the same type, there was some mistake/duplication during check-in.
gdb/ChangeLog
2015-05-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* dummy-frame.c (struct dummy_frame): Use proper typedef for dtor.
* dummy-frame.h (dummy_frame_dtor_ftype): Add its comment.
* infcall.c (call_function_by_hand_dummy): Use proper typedef for
dummy_dtor parameter.
* infcall.h: Include dummy-frame.h.
(call_function_by_hand_dummy_dtor_ftype): Remove.
(call_function_by_hand_dummy): Use proper typedef for dummy_dtor
parameter.
commit ebfd00d210ca6190239140b250499e194fd5af20
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Sun Apr 26 14:13:59 2015 -0400
Fix PR gdb/17820
This patch is a comprehensive fix for PR 17820 which reports that
using "set history size unlimited" inside one's gdbinit file doesn't
really work.
There are three small changes in this patch. The most important change
this patch makes is to decode the argument of the "size" subcommand
using add_setshow_zuinteger_unlimited_cmd() instead of using
add_setshow_uinteger_cmd(). The new decoder takes an int * and maps
unlimited to -1 whereas the old decoder takes an unsigned int * and maps
unlimited to UINT_MAX. Using the new decoder simplifies our handling of
unlimited and makes it easier to interface with readline which itself
expects a signed-int history size.
The second change is the factoring of the [stifle|unstifle]_history logic
into a common function which is now used by both init_history() and
set_history_size_command(). This is technically the change that fixes
the PR itself.
Thirdly, this patch initializes history_size_setshow_var to -2 to mean
that the variable has not been set yet. Now init_history() tests for -2
instead of 0 to determine whether to give the variable a default value.
This means that having "set history size 0" in one's gdbinit file will
actually keep the history size at 0 and not reset it to 256.
gdb/ChangeLog:
PR gdb/17820
* top.c (history_size_setshow_var): Change type to signed.
Initialize to -2. Update documentation.
(set_readline_history_size): Define.
(set_history_size_command): Use it. Remove logic for handling
out-of-range sizes.
(init_history): Use set_readline_history_size(). Test for a
value of -2 instead of 0 when determining whether to set a
default history size.
(init_main): Decode the argument of the "size" command as a
zuinteger_unlimited.
gdb/testsuite/ChangeLog:
PR gdb/17820
* gdb.base/gdbinit-history.exp: New test.
* gdb.base/gdbinit-history/unlimited/.gdbinit: New file.
* gdb.base/gdbinit-history/zero/.gdbinit: New file.
commit e69c76f4bfaf4c1b72f020f811afe03a5f7cd831
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 13 04:47:59 2015 -0700
Revert "Add -mno-shared to x86 assembler"
This reverts commit 573cc2e57db66165b390044338d3a4ad51f36bf8.
commit 31955f993de7b502b7a89bba4f9c9b0a34f90b2c
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 13 04:33:45 2015 -0700
Add missing ChangeLog entries for PR binutis/18386
commit aa9f7286724c2e47077f2f5456d464a961f8e8a4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 13 03:57:46 2015 -0700
Return ELF_CLASS_BOTH by default
* elfedit.c (elf_class): Return ELF_CLASS_BOTH by default.
commit 6604eb5f404cb2590ee417f45cf006442f976676
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Wed May 13 08:19:45 2015 +0200
MAINTAINERS: Add myself as s390 and s390x maintainer.
binutils/
* MAINTAINERS: Add myself as s390 and s390x maintainer.
commit 5c0bbc5231dfd0331b6980252d1dae0b6d3c8812
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 13 00:00:07 2015 +0000
Automatic date update in version.in
commit a3747075ae478f27bf3e0643021a85fb6cdad0e3
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 12 13:11:48 2015 -0700
Allocate the first .plt entry space only if needed
Commit dd7e64d45b317128f5fe813a8da0b13b4ad046ae may optimize out
i386/x86-64 JUMP_SLOT relocation. If there is no JUMP_SLOT relocation
left, we don't need to the first .plt entry. This patch allocates
space for the first .plt entry only if we also reserve space for a PLT
slot for JUMP_SLOT relocation.
bfd/
* elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate space
for the first .plt entry only if needed.
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
ld/testsuite/
* ld-i386/i386.exp: Run pltgot-1 for Linux targets.
* ld-x86-64/x86-64.exp: Likewise.
* ld-i386/pltgot-1.d: New file.
* ld-i386/pltgot-1.s: Likewise.
* ld-x86-64/pltgot-1.d: Likewise.
* ld-x86-64/pltgot-1.s: Likewise.
commit 98624574ea8834b2084eb1f0ca7341feecc7329f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 12 12:47:27 2015 -0700
Also skip x86_64-*-nacl*
* binutils-all/elfedit-1.d: Also skip x86_64-*-nacl*.
commit 83769d0b125e2043aba13ff05a4e8d08014e08a5
Author: Doug Evans <dje@google.com>
Date: Tue May 12 10:42:49 2015 -0700
tweak some comments
gdb/ChangeLog:
* dwarf2read.c (struct file_entry): Tweak comments.
(get_debug_line_section): Tweak comments.
commit 0d71eef55dc5ce12d9bfa3cefb40d81a9b5fa2e6
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:47 2015 -0700
Extended-remote fork event docs
This patch contains the accumulated documentation changes for the
rest of the extended-remote follow fork patchset.
gdb/ChangeLog:
* NEWS: Announce fork support in the RSP and support
for fork debugging in extended mode.
gdb/doc/ChangeLog:
* gdb.texinfo (Forks): Note that fork debugging is
supported in extended mode.
(Remote Configuration): Add fork event features to table
of packet settings.
(Stop Reply Packets): Add fork events to list of stop reasons.
(General Query Packets): Add fork events to tables of
'gdbfeatures' and 'stub features' supported in the qSupported
packet, as well as to the list containing stub feature
details.
commit cbb8991cabdd85b7828f59c92f754c5a2101b0b6
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:46 2015 -0700
Extended-remote fork catch
This patch implements catchpoints for fork events on extended-remote
Linux targets.
Implementation appeared to be straightforward, requiring four new functions
in remote.c to implement insert/remove of fork/vfork catchpoints. These
functions are essentially stubs that just return 0 ('success') if the
required features are enabled. If the fork events are being reported, then
catchpoints are set and hit.
However, there are some extra issues that arise with catchpoints.
1) Thread creation reporting -- fork catchpoints are hit before the
follow_fork has been completed. When stopped at a fork catchpoint
in the native implementation, the new process is not 'reported'
until after the follow is done. It doesn't show up in the inferiors
list or the threads list. However, in the gdbserver case, an
'info threads' while stopped at a fork catchpoint will retrieve the
new thread info from the target and add it to GDB's data structures,
prior to the follow operations. Because of this premature report,
things on the GDB side eventually get very confused.
So in remote.c:remote_update_thread_list, we check to see if there
are any pending fork parent threads. If there are we remove the
related fork child thread from the thread list sent by the target.
2) Kill process before fork is followed -- on the native side in
linux-nat.c:linux_nat_kill, there is some code to handle the case where
a fork has occurred but follow_fork hasn't been called yet. It does
this by using the last status to determine if a follow is pending, and
if it is, to kill the child task. The use of last_status is fragile
in situations like non-stop mode where other events may have occurred
after the fork event. This patch identifies a fork parent
in remote.c:extended_remote_kill in a way similar to that used in
thread creation reporting above. If one is found, it kills the new
child as well.
Tested on x64 Ubuntu Lucid, native, remote, extended-remote. Tested the
case of killing the forking process before the fork has been followed
manually.
gdb/ChangeLog:
* remote.c (remote_insert_fork_catchpoint): New function.
(remote_remove_fork_catchpoint): New function.
(remote_insert_vfork_catchpoint): New function.
(remote_remove_vfork_catchpoint): New function.
(pending_fork_parent_callback): New function.
(remove_new_fork_child): New function.
(remote_update_thread_list): Call remote_notif_get_pending_events
and remove_new_fork_child.
(extended_remote_kill): Kill fork child when killing the
parent before follow_fork completes.
(init_extended_remote_ops): Initialize target vector with
new fork catchpoint functions.
commit c269dbdb603216de2be52f07f26e65ead7e11c7b
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:45 2015 -0700
Extended-remote follow vfork
This patch implements follow-fork for vfork on extended-remote Linux targets.
The implementation follows the native implementation as much as possible.
Most of the work is done on the GDB side in the existing code now in
infrun.c. GDBserver just has to report the events and do a little
bookkeeping.
Implementation includes:
* enabling VFORK events by adding ptrace options for VFORK and VFORK_DONE
to linux-low.c:linux_low_ptrace_options.
* handling VFORK and VFORK_DONE events in linux-low.c:handle_extended_wait
and reporting them to GDB.
* including VFORK and VFORK_DONE events in the predicate
linux-low.c:extended_event_reported.
* adding support for VFORK and VFORK_DONE events in RSP by adding stop
reasons "vfork" and "vforkdone" to the 'T' Stop Reply Packet in both
gdbserver/remote-utils.c and gdb/remote.c.
Tested on x64 Ubuntu Lucid, native, remote, extended-remote.
gdb/gdbserver/ChangeLog:
* linux-low.c (handle_extended_wait): Handle PTRACE_EVENT_FORK and
PTRACE_EVENT_VFORK_DONE.
(linux_low_ptrace_options, extended_event_reported): Add vfork
events.
* remote-utils.c (prepare_resume_reply): New stop reasons "vfork"
and "vforkdone" for RSP 'T' Stop Reply Packet.
* server.h (report_vfork_events): Declare
global variable.
gdb/ChangeLog:
* remote.c (remove_vfork_event_p): New function.
(remote_follow_fork): Add vfork event type to event checking.
(remote_parse_stop_reply): New stop reasons "vfork" and
"vforkdone" for RSP 'T' Stop Reply Packet.
commit 3a8a0396bed4e9dd87c2df0f68386a0f04dfc824
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:44 2015 -0700
Arch-specific remote follow fork
This patch implements the architecture-specific pieces of follow-fork
for remote and extended-remote Linux targets, which in the current
implementation copyies the parent's debug register state into the new
child's data structures. This is required for x86, arm, aarch64, and
mips.
This follows the native implementation as closely as possible by
implementing a new linux_target_ops function 'new_fork', which is
analogous to 'linux_nat_new_fork' in linux-nat.c. In gdbserver, the debug
registers are stored in the process list, instead of an
architecture-specific list, so the function arguments are process_info
pointers instead of an lwp_info and a pid as in the native implementation.
In the MIPS implementation the debug register mirror is stored differently
from x86, ARM, and aarch64, so instead of doing a simple structure assignment
I had to clone the list of watchpoint structures.
Tested using gdb.threads/watchpoint-fork.exp on x86, and ran manual tests
on a MIPS board and an ARM board. Aarch64 hasn't been tested.
gdb/gdbserver/ChangeLog:
* linux-aarch64-low.c (aarch64_linux_new_fork): New function.
(the_low_target) <new_fork>: Initialize new member.
* linux-arm-low.c (arm_new_fork): New function.
(the_low_target) <new_fork>: Initialize new member.
* linux-low.c (handle_extended_wait): Call new target function
new_fork.
* linux-low.h (struct linux_target_ops) <new_fork>: New member.
* linux-mips-low.c (mips_add_watchpoint): New function
extracted from mips_insert_point.
(the_low_target) <new_fork>: Initialize new member.
(mips_linux_new_fork): New function.
(mips_insert_point): Call mips_add_watchpoint.
* linux-x86-low.c (x86_linux_new_fork): New function.
(the_low_target) <new_fork>: Initialize new member.
commit de0d863ec3fda88e488cee568f943c7998b68862
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:43 2015 -0700
Extended-remote Linux follow fork
This patch implements basic support for follow-fork and detach-on-fork on
extended-remote Linux targets. Only 'fork' is supported in this patch;
'vfork' support is added n a subsequent patch. This patch depends on
the previous patches in the patch series.
Sufficient extended-remote functionality has been implemented here to pass
gdb.base/multi-forks.exp, as well as gdb.base/foll-fork.exp with the
catchpoint tests commented out. Some other fork tests fail with this
patch because it doesn't provide the architecture support needed for
watchpoint inheritance or fork catchpoints.
The implementation follows the same general structure as for the native
implementation as much as possible.
This implementation includes:
* enabling fork events in linux-low.c in initialize_low and
linux_enable_extended_features
* handling fork events in gdbserver/linux-low.c:handle_extended_wait
- when a fork event occurs in gdbserver, we must do the full creation
of the new process, thread, lwp, and breakpoint lists. This is
required whether or not the new child is destined to be
detached-on-fork, because GDB will make target calls that require all
the structures. In particular we need the breakpoint lists in order
to remove the breakpoints from a detaching child. If we are not
detaching the child we will need all these structures anyway.
- as part of this event handling we store the target_waitstatus in a new
member of the parent lwp_info structure, 'waitstatus'. This
is used to store extended event information for reporting to GDB.
- handle_extended_wait is given a return value, denoting whether the
handled event should be reported to GDB. Previously it had only
handled clone events, which were never reported.
* using a new predicate in gdbserver to control handling of the fork event
(and eventually all extended events) in linux_wait_1. The predicate,
extended_event_reported, checks a target_waitstatus.kind for an
extended ptrace event.
* implementing a new RSP 'T' Stop Reply Packet stop reason: "fork", in
gdbserver/remote-utils.c and remote.c.
* implementing new target and RSP support for target_follow_fork with
target extended-remote. (The RSP components were actually defined in
patch 1, but they see their first use here).
- remote target routine remote_follow_fork, which just sends the 'D;pid'
detach packet to detach the new fork child cleanly. We can't just
call target_detach because the data structures for the forked child
have not been allocated on the host side.
Tested on x64 Ubuntu Lucid, native, remote, extended-remote.
gdb/gdbserver/ChangeLog:
* linux-low.c (handle_extended_wait): Implement return value,
rename argument 'event_child' to 'event_lwp', handle
PTRACE_EVENT_FORK, call internal_error for unrecognized event.
(linux_low_ptrace_options): New function.
(linux_low_filter_event): Call linux_low_ptrace_options,
use different argument fo linux_enable_event_reporting,
use return value from handle_extended_wait.
(extended_event_reported): New function.
(linux_wait_1): Call extended_event_reported and set
status to report fork events.
(linux_write_memory): Add pid to debug message.
(reset_lwp_ptrace_options_callback): New function.
(linux_handle_new_gdb_connection): New function.
(linux_target_ops): Initialize new structure member.
* linux-low.h (struct lwp_info) <waitstatus>: New member.
* lynx-low.c: Initialize new structure member.
* remote-utils.c (prepare_resume_reply): Implement stop reason
"fork" for "T" stop message.
* server.c (handle_query): Call handle_new_gdb_connection.
* server.h (report_fork_events): Declare global flag.
* target.h (struct target_ops) <handle_new_gdb_connection>:
New member.
(target_handle_new_gdb_connection): New macro.
* win32-low.c: Initialize new structure member.
gdb/ChangeLog:
* linux-nat.c (linux_nat_ptrace_options): New function.
(linux_init_ptrace, wait_lwp, linux_nat_filter_event):
Call linux_nat_ptrace_options and use different argument to
linux_enable_event_reporting.
(_initialize_linux_nat): Delete call to
linux_ptrace_set_additional_flags.
* nat/linux-ptrace.c (current_ptrace_options): Rename to
supported_ptrace_options.
(additional_flags): Delete variable.
(linux_check_ptrace_features): Use supported_ptrace_options.
(linux_test_for_tracesysgood, linux_test_for_tracefork):
Likewise, and remove additional_flags check.
(linux_enable_event_reporting): Change 'attached' argument to
'options'. Use supported_ptrace_options.
(ptrace_supports_feature): Change comment. Use
supported_ptrace_options.
(linux_ptrace_set_additional_flags): Delete function.
* nat/linux-ptrace.h (linux_ptrace_set_additional_flags):
Delete function prototype.
* remote.c (remote_fork_event_p): New function.
(remote_detach_pid): New function.
(remote_detach_1): Call remote_detach_pid, don't mourn inferior
if doing detach-on-fork.
(remote_follow_fork): New function.
(remote_parse_stop_reply): Handle new "T" stop reason "fork".
(remote_pid_to_str): Print "process" strings for pid/0/0 ptids.
(init_extended_remote_ops): Initialize to_follow_fork.
commit ddcbc3975fffffdb5bb3bfb05b1f0ef3d67be3ee
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:42 2015 -0700
Clone remote breakpoints
This patch implements gdbserver routines to clone the breakpoint lists of a
process, duplicating them for another process. In gdbserver, each process
maintains its own independent breakpoint list. When a fork call creates a
child, all of the breakpoints currently inserted in the parent process are
also inserted in the child process, but there is nothing to describe them
in the data structures related to the child. The child must have a
breakpoint list describing them so that they can be removed (if detaching)
or recognized (if following). Implementation is a mechanical process of
just cloning the lists in several new functions in gdbserver/mem-break.c.
Tested by building, since none of the new functions are called yet. This
was tested with another patch in the series that implements follow-fork.
gdb/gdbserver/ChangeLog:
* mem-break.c (APPEND_TO_LIST): Define macro.
(clone_agent_expr): New function.
(clone_one_breakpoint): New function.
(clone_all_breakpoints): New function.
* mem-break.h: Declare new functions.
commit 89245bc05692aaa107fa2884c032da21682edc72
Author: Don Breazeal <donb@codesourcery.com>
Date: Tue May 12 09:52:41 2015 -0700
Identify remote fork event support
This patch implements a mechanism for GDB to determine whether fork
events are supported in gdbserver. This is a preparatory patch for
remote fork and exec event support.
Two new RSP packets are defined to represent fork and vfork event
support. These packets are used just like PACKET_multiprocess_feature
to denote whether the corresponding event is supported. GDB sends
fork-events+ and vfork-events+ to gdbserver to inquire about fork
event support. If the response enables these packets, then GDB
knows that gdbserver supports the corresponding events and will
enable them.
Target functions used to query for support are included along with
each new packet.
In order for gdbserver to know whether the events are supported at the
point where the qSupported packet arrives, the code in nat/linux-ptrace.c
had to be reorganized. Previously it would test for fork/exec event
support, then enable the events using the pid of the inferior. When the
qSupported packet arrives there may not be an inferior. So the mechanism
was split into two parts: a function that checks whether the events are
supported, called when gdbserver starts up, and another that enables the
events when the inferior stops for the first time.
Another gdbserver change was to add some global variables similar to
multi_process, one per new packet. These are used to control whether
the corresponding fork events are enabled. If GDB does not inquire
about the event support in the qSupported packet, then gdbserver will
not set these "report the event" flags. If the flags are not set, the
events are ignored like they were in the past. Thus, gdbserver will
never send fork event notification to an older GDB that doesn't
recognize fork events.
Tested on Ubuntu x64, native/remote/extended-remote, and as part of
subsequent patches in the series.
gdb/gdbserver/ChangeLog:
* linux-low.c (linux_supports_fork_events): New function.
(linux_supports_vfork_events): New function.
(linux_target_ops): Initialize new structure members.
(initialize_low): Call linux_check_ptrace_features.
* lynx-low.c (lynx_target_ops): Initialize new structure
members.
* server.c (report_fork_events, report_vfork_events):
New global flags.
(handle_query): Add new features to qSupported packet and
response.
(captured_main): Initialize new global variables.
* target.h (struct target_ops) <supports_fork_events>:
New member.
<supports_vfork_events>: New member.
(target_supports_fork_events): New macro.
(target_supports_vfork_events): New macro.
* win32-low.c (win32_target_ops): Initialize new structure
members.
gdb/ChangeLog:
* nat/linux-ptrace.c (linux_check_ptrace_features): Change
from static to extern.
* nat/linux-ptrace.h (linux_check_ptrace_features): Declare.
* remote.c (anonymous enum): <PACKET_fork_event_feature,
* PACKET_vfork_event_feature>: New enumeration constants.
(remote_protocol_features): Add table entries for new packets.
(remote_query_supported): Add new feature queries to qSupported
packet.
(_initialize_remote): Exempt new packets from the requirement
to have 'set remote' commands.
commit 15eddee17fd772021fc3a331904e8f6b55b354c7
Author: Jiong Wang <jiong.wang@arm.com>
Date: Tue May 12 13:47:15 2015 +0100
[AArch64] Add R_AARCH64_P32_LD32_GOTPAGE_LO14 to elf header
2015-05-12 Jiong. Wang <jiong.wang@arm.com>
include/
* elf/aarch64.h (R_AARCH64_P32_LD32_GOTPAGE_LO14): New enumeration.
commit 835205d078aa3b78180da1512f8019ab064032e7
Author: Gary Benson <gbenson@redhat.com>
Date: Tue May 12 11:57:52 2015 +0100
Locate executables on remote stubs without multiprocess extensions
This commit allows GDB to determine filenames of main executables
when debugging using remote stubs without multiprocess extensions.
The qXfer:exec-file:read packet is extended to allow an empty
annex, with the meaning that the remote stub should supply the
filename of whatever it thinks is the current process.
gdb/ChangeLog:
* remote.c (remote_add_inferior): Call exec_file_locate_attach
for fake PIDs as well as real ones.
(remote_pid_to_exec_file): Send empty annex if PID is fake.
gdb/doc/ChangeLog:
* gdb.texinfo (General Query Packets): Document
qXfer:exec-file:read with empty annex.
gdb/gdbserver/ChangeLog:
* server.c (handle_qxfer_exec_file): Use current process
if annex is empty.
commit 5b155b955ab0f4b6db3a5edb049f8e4d5a712f4a
Author: Stephen Kitt <steve@sk2.org>
Date: Tue May 12 11:16:03 2015 +0100
Enables the -t abbreviated form of the --temp-prefix command line option for dlltool.
* dlltool.c (main): Accept -t as an abbreviation for
--temp-prefix.
commit fb4048adf7e4c6cbf8f45b4436ab7982a6d685e6
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 12 00:00:07 2015 +0000
Automatic date update in version.in
commit 70cead076728d1bc0d905b32fcb0c44c25f00ccc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 14:20:37 2015 -0700
Remove Disp16|Disp32 from 64-bit direct branches
Disp16 and Disp32 aren't supported by direct branches in 64-bit mode.
This patch removes them from 64-bit direct branches.
* opcodes/i386-opc.tbl (call): Remove Disp16|Disp32 from 64-bit
direct branch.
(jmp): Likewise.
* i386-tbl.h: Regenerated.
commit e83c417475ba1a0a4b0ef81c99382ac78dfde7f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 12:29:27 2015 -0700
Allow mixing target and not-target directives
Mixing target and not-target directives can be used to run for x86_64-*-*
target while skipping x86_64-*-gnux32 target. This patch allows mixing
target and not-target directives. It is used to skip elfedit-1 for
x86_64-*-gnux32.
* binutils-all/elfedit-1.d: Skip x86_64-*-gnux32.
* lib/utils-lib.exp (run_dump_test): Allow mixing target and
not-target directives.
commit 5197d474361b4748e0339ae60e6dc9975f2313df
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 12:01:57 2015 -0700
Default e_machine to EM_IAMCU for i?86-*-elfiamcu
This patch sets the default ELF output format of assembler and linker to
EM_IAMCU when binutils is configured to i?86-*-elfiamcu target.
gas/
* configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target.
* config/tc-i386.c (i386_mach): Support iamcu.
(i386_target_format): Likewise.
ld/
* configure.tgt: Support i[3-7]86-*-elfiamcu target.
ld/testsuite/
* ld-i386/i386.exp (iamcu_tests): Run iamcu-4.
* ld-i386/iamcu-4.d: New file.
commit 7e0a81123db953de03f6482f7c10f306407d348e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 11:27:34 2015 -0700
Add Intel MCU support to ld
-m elf_iamcu must be passed to i386 linker to generate Intel MCU binary.
ld/
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf_iamcu.c.
(eelf_iamcu.c): New.
* configure.tgt (targ_extra_emuls): Add elf_iamcu if elf_i386 is
enabled in BFD.
* Makefile.in: Regenerated.
* emulparams/elf_iamcu.sh: New file.
ld/testsuite/
* ld-i386/abs-iamcu.d: New file.
* ld-i386/dummy.s: Likewise.
* ld-i386/foo.s: Likewise.
* ld-i386/iamcu-1.d: Likewise.
* ld-i386/iamcu-2.d: Likewise.
* ld-i386/iamcu-3.d: Likewise.
* ld-i386/start.s: Likewise.
* ld-i386/i386.exp (iamcu_tests): New.
Run iamcu_tests.
commit 814860358c2e4194d372018dd1ae78b5c95a44d0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 11:11:19 2015 -0700
Add Intel MCU support to gas
-march=iamcu must be passed to i386 assembler to generate Intel MCU object
file.
gas/
* config/tc-i386.c (cpu_arch): Add iamcu.
(i386_align_code): Handle PROCESSOR_IAMCU.
(i386_arch): Likewise.
(i386_mach): Likewise.
(i386_target_format): Likewise.
(valid_iamcu_cpu_flags): New function.
(check_cpu_arch_compatible): Only allow Intel MCU instructions
when targeting Intel MCU.
(set_cpu_arch): Call valid_iamcu_cpu_flags to check if CPU flags
are valid for Intel MCU.
(md_parse_option): Likewise.
* tc-i386.h (ELF_TARGET_IAMCU_FORMAT): New.
(processor_type): Add PROCESSOR_IAMCU.
* doc/c-i386.texi: Document iamcu.
gas/testsuite/
* gas/i386/i386.exp: Run iamcu-1, iamcu-2, iamcu-3, iamcu-inval-1,
iamcu-inval-2 and iamcu-inval-3.
* gas/i386/iamcu-1.d: New file.
* gas/i386/iamcu-1.s: Likewise.
* gas/i386/iamcu-2.d: Likewise.
* gas/i386/iamcu-2.s: Likewise.
* gas/i386/iamcu-3.d: Likewise.
* gas/i386/iamcu-3.s: Likewise.
* gas/i386/iamcu-inval-1.l: Likewise.
* gas/i386/iamcu-inval-1.s: Likewise.
* gas/i386/iamcu-inval-2.l: Likewise.
* gas/i386/iamcu-inval-2.s: Likewise.
* gas/i386/iamcu-inval-3.l: Likewise.
* gas/i386/iamcu-inval-3.s: Likewise.
commit 7b6d09fbc60b12c196b25a9ebbb77ddc24e06334
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 10:47:55 2015 -0700
Add Intel MCU support to opcodes
* configure.ac: Support bfd_iamcu_arch.
* disassemble.c (disassembler): Support bfd_iamcu_arch.
* i386-gen.c (cpu_flag_init): Add CPU_IAMCU_FLAGS and
CPU_IAMCU_COMPAT_FLAGS.
(cpu_flags): Add CpuIAMCU.
* i386-opc.h (CpuIAMCU): New.
(i386_cpu_flags): Add cpuiamcu.
* configure: Regenerated.
* i386-init.h: Likewise.
* i386-tbl.h: Likewise.
commit 3d875af5759b6ac3d0a722ce8b598426c26bf46c
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 10:41:00 2015 -0700
Add init_dwarf_regnames_iamcu
* dwarf.c (dwarf_regnames_iamcu): New.
(init_dwarf_regnames_iamcu): Likewise.
(init_dwarf_regnames): Call init_dwarf_regnames_iamcu for EM_IAMCU.
* dwarf.h (init_dwarf_regnames_iamcu): New.
* objdump.c (dump_dwarf): Call init_dwarf_regnames_iamcu for
bfd_arch_iamcu.
commit bf64a9511f73684c4880fd1818928fdfa1725c4f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 10:30:32 2015 -0700
Add Intel MCU support to bfd
bfd/
* Makefile.am (ALL_MACHINES): Add cpu-iamcu.lo.
(ALL_MACHINES_CFILES): Likewise.
* archures.c (bfd_mach_iamcu): New.
(bfd_mach_i386_iamcu): Likewise.
(bfd_mach_i386_iamcu_intel_syntax): Likewise.
(bfd_iamcu_arch): Likewise.
(bfd_archures_list): Add &bfd_iamcu_arch.
* config.bfd (targ_selvecs): Add iamcu_elf32_vec to
i386_elf32_vec.
(targ_archs): Add bfd_iamcu_arch if needed.
* configure.ac: Support iamcu_elf32_vec.
* cpu-iamcu.c: New file.
* elf32-i386.c (elf32_iamcu_elf_object_p): New function.
Add support for iamcu_elf32_vec and elf32_iamcu_bed.
* targets.c (iamcu_elf32_vec): New.
(_bfd_target_vector): Add iamcu_elf32_vec.
* Makefile.in: Regenerated.
* bfd-in2.h: Likewise.
* configure: Likewise.
binutils/testsuite/
* binutils-all/objdump.exp (cpus_expected): Append iamcu.
commit 6c14750f48f179e0fed8abc34010de3e05ec2a54
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 09:57:20 2015 -0700
Add EM_386/EM_IAMCU support to elfedit.c
binutils/
* elfedit.c (enum elfclass): New.
(input_elf_class): Change type to enum elfclass.
(output_elf_class): New.
(elf_class): Change return type to enum elfclass. Support EM_386
and EM_IAMCU.
(update_elf_header): Check if input and output ELF classes match.
(elf_machine): Support EM_386 and EM_IAMCU.
(main): Update input_elf_class. Set output_elf_class.
* doc/binutils.texi: Update elfedit.
binutils/testsuite/
* binutils-all/elfedit-5.d: New file.
* binutils-all/elfedit.exp: Run elfedit-5.
commit 22abe5566abcf48d81c4b485de722f2634d394f2
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 11 08:52:43 2015 -0700
Rename EM_486 to EM_IAMCU
bfd/
* elfcode.h (elf_object_p): Replace EM_486 with EM_IAMCU.
binutils/
* dwarf.c (init_dwarf_regnames): Replace EM_486 with EM_IAMCU.
* readelf.c (guess_is_rela): Likewise.
(dump_relocations): Likewise.
(get_machine_name): Likewise.
(get_elf_section_flags): Likewise.
(process_section_headers): Likewise.
(is_32bit_abs_reloc): Likewise.
(is_32bit_pcrel_reloc): Likewise.
include/elf/
* common.h (EM_486): Renamed to ...
(EM_IAMCU): This.
commit 415158ef391683a5248eabe498693c34836c3a38
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon May 11 00:00:08 2015 +0000
Automatic date update in version.in
commit 4b71eec62785db0fe5f02b0da95f18b7b4a33df1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun May 10 06:44:12 2015 -0700
Replace input_bfd and output_bfd with abfd
The first argument to bfd_get_8/bfd_put_8 isn't used. But we should
use something real. Replace input_bfd and output_bfd with abfd.
* elf32-i386.c (elf_i386_convert_mov_to_lea): Replace input_bfd
and output_bfd with abfd.
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
commit 4c082a81dfebcca45e4ee8cb90490ab733b8e017
Author: Siva Chandra <sivachandra@chromium.org>
Date: Sat Apr 25 07:04:40 2015 -0700
[Python] Add methods reference_value and const_value to gdb.Value.
gdb/ChangeLog:
* NEWS (Python Scripting): Mention the new gdb.Value methods.
* python/py-value.c (valpy_reference_value): New function.
(valpy_const_value): Likewise.
(value_object_methods): Add new methods.
* value.c (make_cv_value): New function.
* value.h (make_cv_value): Declare.
gdb/doc/ChangeLog:
* python.texi (Values From Inferior): Add descriptions of new
methods gdb.Value.reference_value and gdb.Value.const_value.
gdb/testsuite/ChangeLog:
* gdb.python/py-xmethods.cc: Enhance test case.
* gdb.python/py-xmethods.exp: New tests.
* gdb.python/py-xmethods.py (A_indexoper): New xmethod worker
function.
(B_indexoper): Likewise.
(global_dm_list) : Add new xmethod worker functions.
commit 10a52f094ebbbed3f9d1b28a2ded94e43d500133
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun May 10 00:00:08 2015 +0000
Automatic date update in version.in
commit a72d2af2c76f82cc8a198919f73585e11d0a4c60
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 8 17:13:30 2015 -0700
Ignore 0x66 prefix for call/jmp/jcc in 64-bit mode
The operand size prefix (0x66) is ignored for 32-bit PC-relative call,
jmp and jcc in 64-bit mode.
gas/testsuite/
PR binutis/18386
* gas/i386/i386.exp: Run x86-64-jump.
* gas/i386/x86-64-branch.d: Updated.
* gas/i386/ilp32/x86-64-branch.d: Likewise.
* gas/i386/x86-64-branch.s: Add tests for the operand size prefix
with call, jmp and jb.
* gas/i386/x86-64-jump.d: New file.
* gas/i386/x86-64-jump.s: Likewise.
ld/testsuite/
PR binutis/18386
* ld-x86-64/tlsgdesc.dd: Updated.
* ld-x86-64/tlspic.dd: Likewise.
opcodes/
PR binutis/18386
* i386-dis.c (X86_64_E8): New.
(X86_64_E9): Likewise.
Update comments on 'T', 'U', 'V'. Add comments for '^'.
(dis386): Replace callT/jmpT with X86_64_E8/X86_64_E9.
(x86_64_table): Add X86_64_E8 and X86_64_E9.
(mod_table): Replace {T|} with ^ on Jcall/Jmp.
(putop): Handle '^'.
(OP_J): Ignore the operand size prefix in 64-bit. Don't check
REX_W.
commit 504374b503c194bef5c6bcf432e6ef8481322880
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat May 9 00:00:08 2015 +0000
Automatic date update in version.in
commit afa6c9abf2c12c8e6155d088ea45e5091ca79c57
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Fri May 8 12:43:39 2015 -0700
Avoid segfault on missing directory table.
2015-05-08 Yao Qi <yao@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
gdb/
* dwarf2read.c (setup_type_unit_groups): Do NULL pointer check
to 'lh->include_dirs' before accessing to it.
(psymtab_include_file_name): Likewise.
(dwarf_decode_lines_1): Likewise.
(dwarf_decode_lines): Likewise.
(file_file_name): Likewise.
commit 35d54293c3a0fb5e8cd3a82a1e2a6e0481b615af
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Fri May 8 12:34:52 2015 -0700
Fix register save offset for nios2 signal handler trampolines.
2015-05-08 Sandra Loosemore <sandra@codesourcery.com>
gdb/
* nios2-linux-tdep.c (NIOS2_SIGRETURN_TRAMP_ADDR): Define.
(NIOS2_SIGRETURN_REGSAVE_OFFSET): Define.
(nios2_linux_rt_sigreturn_init): Adjust base address of
register save area.
commit 21e94bd9f0888034c094e02c75d382d75340326c
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Fri May 8 12:32:43 2015 -0700
Use PTRACE_GETREGSET/SETREGSET in nios2 gdbserver.
2015-05-08 Sandra Loosemore <sandra@codesourcery.com>
gdb/gdbserver/
* linux-nios2-low.c: Include elf/common.h. Adjust comments.
Remove HAVE_PTRACE_GETREGS conditionals.
(nios2_regsets): Use PTRACE_GETREGSET and PTRACE_SETREGSET
instead of PTRACE_GETREGS and PTRACE_SETREGS.
commit b73c49b7f6691cf1debb14dbce5b3222a7190314
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Fri May 8 12:24:41 2015 -0700
Revert to using "trap 31" for breakpoints on nios2.
2015-05-08 Sandra Loosemore <sandra@codesourcery.com>
gdb/
* nios2-tdep.c (nios2_breakpoint_from_pc): Revert to using
"trap 31" as the breakpoint instruction on all targets.
commit f7797074a5dc314f8922d2e90c1a4ea04b189c36
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Fri May 8 13:19:19 2015 -0400
Fix coredump-filter.exp by correctly unsetting array
In my last commit to make gdb.base/coredump-filter.exp be more robust
regarding using arrays in the global namespace, I cleared the
"coredump_var_addr" array like this:
set coredump_var_addr ""
# use coredump_var_addr as an array...
This causes DejaGNU to complain because the variable is first set as
non-array, and the used as an array. The correct way to do this is to
unset the variable using:
unset -nocomplain coredump_var_addr
# use coredump_var_addr as an array...
The "-nocomplain" part is necessary because if the variable doesn't
exist "unset" will not error.
Tested on Fedora 20 x86_64.
gdb/testsuite/ChangeLog:
2015-05-08 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/coredump-filter.exp: Correctly unset
"coredump_var_addr" array.
commit 519b5f619baa43f000ad18c079017bea8e7fc06a
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Sep 16 14:32:09 2014 -0400
libiberty/mkstemps.c: Include <time.h> if <sys/time.h> not available.
Attempting to build libiberty on LynxOS-178 fails trying to compile
mkstemps.c with the following error:
mkstemps.c:84:18: error: storage size of 'tv' isn't known
struct timeval tv;
^
This file would normally include <sys/time.h> to get the type's
definition, but unfortunately LynxOS-178 does not want us to use
<sys/time.h>, only <time.h>. The configure script correctly finds
this out and generates a config.h file where HAVE_SYS_TIME_H is
undefined:
/* Define to 1 if you have the <sys/time.h> header file. */
/* #undef HAVE_SYS_TIME_H */
This patch fixes the build issue by falling back on including <time.h>
if <sys/time.h> could not be included (and provided that HAVE_TIME_H
is defined, of course).
libiberty/ChangeLog:
* mkstemps.c: #include <time.h> if HAVE_TIME_H is defined
but not HAVE_SYS_TIME_H.
commit a4674e4efc0c93abd2865d5cf97da710fa3affae
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 8 18:06:46 2015 +0100
Fix sequential gdb test runs
Sequential test runs are stopping prematurely like this:
$ make check RUNTESTFLAGS="non-existing-program.exp server-exec-info.exp"
Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.server/non-existing-program.exp ...
Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.server/server-exec-info.exp ...
can not find channel named "exp6"
while executing
"match_max [match_max -d]"
(procedure "default_gdb_init" line 26)
invoked from within
"default_gdb_init $test_file_name"
(procedure "gdb_init" line 83)
invoked from within
"${tool}_init $test_file_name"
(procedure "runtest" line 18)
invoked from within
"runtest $test_name"
("foreach" body line 42)
invoked from within
...
make[2]: *** [check-single] Error 1
make[2]: Leaving directory `/home/pedro/gdb/mygit/build/gdb/testsuite'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/pedro/gdb/mygit/build/gdb/testsuite'
make: *** [check] Error 2
default_gdb_init has this:
# Unlike most tests, we have a small number of tests that generate
# a very large amount of output. We therefore increase the expect
# buffer size to be able to contain the entire test output. This
# is especially needed by gdb.base/info-macros.exp.
match_max -d 65536
# Also set this value for the currently running GDB.
match_max [match_max -d]
It's the second match_max that is erroring. As that call does not
specify an explicit channel name with -i, expect defaults to
$spawn_id, which is pointing at a channel that is already gone. (If
the spawn_id variable is not set, match_max defaults to
$user_spawn_id / stdin/out).
gdb/testsuite/ChangeLog:
2015-05-08 Pedro Alves <palves@redhat.com>
* gdb.server/non-existing-program.exp: Unset spawn_id.
commit ae8714c2712ef9a179cfa9158a289bd400c0ad97
Author: Nick Clifton <nickc@redhat.com>
Date: Fri May 8 17:28:26 2015 +0100
Change ARM symbol name verification code so that it only triggers when the form "name = val" is used.
PR gas/18347
* config/tc-arm.h (TC_EQUAL_IN_INSN): Define.
* config/tc-arm.c (arm_tc_equal_in_insn): New function. Move
the symbol name checking code to here from...
(md_undefined_symbo): ... here.
commit dd9f02a0ca7a9873717933345e393edb3d5da6bc
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri May 8 17:58:21 2015 +0200
Remove unused declaration of print_return_value.
gdb/ChangeLog
2015-05-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* infcmd.c (print_return_value): Remove unused declaration.
commit 6ad395a7a64c9b49dab32a9178a8a07a96c17885
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Mar 20 13:57:36 2015 -0400
Problem printing record with array whose upper bound is record component
Consider the following declarations...
type Obj_T (Selected_Flights_Length : Natural) is
record
Selected_Flights : Flights.List.T (1 .. Selected_Flights_Length);
end record;
Broken : Obj_T;
... which defines a variable named "broken" which is a discrimated
record where broken.Selected_Flights is an array whose upper bound
is stored in the record's Selected_Flights_Length component.
Trying to print the value of that object currently fails:
(gdb) print broken
cannot find reference address for offset property
Looking at the debugging info, we see that variable "Broken" is
a reference...
<1><8e3>: Abbrev Number: 21 (DW_TAG_const_type)
<8e4> DW_AT_type : <0x8e8>
<1><8e8>: Abbrev Number: 22 (DW_TAG_reference_type)
<8e9> DW_AT_byte_size : 8
<8ea> DW_AT_type : <0x7ec>
... to ...
<1><7ec>: Abbrev Number: 12 (DW_TAG_structure_type)
<7ed> DW_AT_name : (indirect string, offset: 0xc6d): reprod__obj_t
<7f1> DW_AT_decl_file : 2
<7f2> DW_AT_decl_line : 15
<7f3> DW_AT_GNAT_descriptive_type: <0x87e>
<7f7> DW_AT_sibling : <0x87e>
... which has 2 members, the first one being the discriminant...
<2><7fb>: Abbrev Number: 9 (DW_TAG_member)
<7fc> DW_AT_name : (indirect string, offset: 0xc98): selected_flights_length
<800> DW_AT_decl_file : 2
<801> DW_AT_decl_line : 15
<802> DW_AT_type : <0x807>
<806> DW_AT_data_member_location: 0
... and the second one being the one that causes trouble...
<2><83d>: Abbrev Number: 9 (DW_TAG_member)
<83e> DW_AT_name : (indirect string, offset: 0xd17): selected_flights
<842> DW_AT_decl_file : 2
<843> DW_AT_decl_line : 17
<844> DW_AT_type : <0x815>
<848> DW_AT_data_member_location: 4
The second field's type is an array....
<2><815>: Abbrev Number: 14 (DW_TAG_array_type)
<816> DW_AT_name : (indirect string, offset: 0xd2f): reprod__obj_t__T5sP
<81a> DW_AT_GNAT_descriptive_type: <0x7e1>
<81e> DW_AT_type : <0x748>
<822> DW_AT_sibling : <0x830>
... whose uppper bound is a reference to <0x7fb>...
<3><826>: Abbrev Number: 15 (DW_TAG_subrange_type)
<827> DW_AT_type : <0x830>
<82b> DW_AT_upper_bound : <0x7fb>
<3><82f>: Abbrev Number: 0
Because the upper bound is dynamic, we try to resolve it.
As it happens, the upper-bound resolution for this range type
works fine. What breaks is when we try to resolve this range
type's target type, which is:
<2><830>: Abbrev Number: 16 (DW_TAG_subrange_type)
<831> DW_AT_upper_bound : <0x7fb>
<835> DW_AT_name : (indirect string, offset: 0xc7b): reprod__obj_t__T4s___XDLU_1__selected_flights_length
<839> DW_AT_type : <0x766>
<83d> DW_AT_artificial : 1
It is actually pretty much the same as the first subrange type,
so you might ask why this is causing trouble, when the resolution
of the previous DIE worked like a charm???
Well, for that, we need to backtrack a bit, and notice that, ahead
of the DW_TAG_structure_type's DIE, there is the following DIE:
<1><7e1>: Abbrev Number: 6 (DW_TAG_typedef)
<7e2> DW_AT_name : (indirect string, offset: 0xbae): reprod__obj_t__T5s
<7e6> DW_AT_decl_file : 2
<7e7> DW_AT_decl_line : 17
<7e8> DW_AT_type : <0x849>
... and that DIE references an array type...
<2><849>: Abbrev Number: 14 (DW_TAG_array_type)
<84a> DW_AT_name : (indirect string, offset: 0xbae): reprod__obj_t__T5s
<84e> DW_AT_GNAT_descriptive_type: <0x864>
<852> DW_AT_type : <0x748>
<856> DW_AT_sibling : <0x864>
... whose subrange is...
<3><85a>: Abbrev Number: 15 (DW_TAG_subrange_type)
<85b> DW_AT_type : <0x830>
<85f> DW_AT_upper_bound : <0x7fb>
... where the subrange's base type is the DW_TAG_subrange_type DIE
that is causing problem.
In summary, we process the typedef first, which causes us to process
the second subrange BEFORE we process the struct DIE itself, and
therefore the struct's discriminent (DW_TAG_member #1). As a result,
while trying to handle the reference to that DW_TAG_member #1 as
the upper bound of the second range type, we do...
case DW_AT_data_member_location:
{
[...]
baton->referenced_type = get_die_type (target_die->parent,
target_cu);
... where target_die->parent (DW_TAG_member #1) hasn't been processed
yet, and thus get_die_type returns NULL.
This is what later causes us problems trying to find the right address
to use as the base address for our field, which then triggers the
error message we are seeing.
This patch fixes the issue by calling read_type_die instead of
get_die_type. If the DIE has already been processed, then this
is the same as get_die_type. If not, the it'll get the parent
die to be read, and then get its type.
gdb/ChangeLog:
* dwarf2read.c (attr_to_dynamic_prop)
<DW_AT_data_member_location>: Use read_type_die isntead of
get_die_type.
Tested on x86_64-linux, no regression.
No testcase, unfortunately, as the reproducer was given to us by
a customer, and it's been otherwise surprisingly difficult to
reproduce the same error outside of that reproducer.
commit 8344af1e7bffd13add24bd02bc462d9389294fd2
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Jan 30 08:51:19 2015 -0500
[Ada] error trying to call function when parameter is aligner type.
We observed on x86-windows that trying to call a function from
GDB leads to a mysterious "Invalid cast" error. This can be
observed in gdb.ada/float_param.exp:
(gdb) call set_long_double(1, global_small_struct, 4.0)
Invalid cast.
This happens because the 3rd parameter, a Long_Long_Float, is
actually passed wrapped inside a PAD structure. As documented
in GNAT's exp_dbug.ads, PAD types are simple wrappers that GNAT
uses to handle types with size or alignment constraints.
We already support those when printing an object encapsulated
in a PAD type, but not when trying to pass an argument that
is wrapped inside a PAD type. As a result, what happens is that
call_function_by_hand ends up with an argument with a type
that looks incompatible with the expected type of the argument.
The error comes when trying to push the arguments in inferior
memory, while trying to coerce each one of them to their expected
types (in value_arg_coerce).
Note that the problem is not specific to Windows, but so far, this is
the only platform where we've seen this happen.
gdb/ChangeLog:
* ada-lang.c (ada_convert_actual): Add handling of formals
passed inside an aligner type.
Tested on x86-windows (AdaCore testsuite) and x86_64-linux (official
testsuite as well as AdaCore's testsuite).
commit 80b0912bff495fd51e34050637357aeb243eefbb
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri May 8 07:19:42 2015 -0700
gdb/copyright.py: Remove sim/erc32 files from NOT_FSF_LIST.
Now that the erc32 files have been updated to contain an FSF copyright
header, these files should no longer be in the exclude list.
gdb/ChangeLog:
* copyright.py (NOT_FSF_LIST): Remove sim/erc32 entries.
commit 17d88f73c0e38b80a4c9180ab7ae5383f9d0fb05
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri May 8 07:11:38 2015 -0700
Switch erc32 simulator copyright headers to FSF.
Permission was granted by Jiri Gaisler, who has a copyright assignment
on file for GDB.
sim/erc32/ChangeLog:
* configure.ac: Add copyright header.
* erc32.c: Change copyright holder to FSF. Reformat.
* exec.c, float.c, func.c, interf.c, sis.c, sis.h: Likewise.
* help.c, startsim: Add copyright header.
commit df2eb078c0a88a44c49de7045a1c163f380a7efc
Author: Siva Chandra <sivachandra@chromium.org>
Date: Sat Apr 25 17:10:30 2015 -0700
[PR python/18291] Fix printing of "disabled" status of xmethod matchers.
gdb/ChangeLog:
PR python/18291
* python/lib/gdb/command/xmethods.py (print_xm_info): Fix typo.
Print xmethod matcher status.
gdb/testsuite/ChangeLog:
PR python/18291
* gdb.python/py-xmethods.exp: Add tests.
commit 573cc2e57db66165b390044338d3a4ad51f36bf8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 8 05:04:12 2015 -0700
Add -mno-shared to x86 assembler
On ELF target, the assembler normally generates code which can go into a
shared library where non-weak symbols can be preempted. The -mno-shared
option tells the assembler to generate code not for a shared library,
where non-weak symbols won't be preempted. The resulting code is slightly
smaller. This option mainly affects the handling of branch instructions.
gas/
* config/tc-i386.c (no_shared): New.
(OPTION_MNO_SHARED): Likewise.
(elf_symbol_resolved_in_segment_p): Check no_shared.
(md_longopts): Add mno-shared.
(md_parse_option): Handle OPTION_MNO_SHARED.
(md_show_usage): Add -mno-shared.
* doc/c-i386.texi: Document -mno-shared.
gas/testsuite/
* gas/i386/i386.exp: Run relax-4 and x86-64-relax-3.
* gas/i386/relax-4.d: New file.
* gas/i386/x86-64-relax-3.d: Likewise.
commit 422349a385c2ccfc1e66f5c65560e5bd5fc97953
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri May 8 12:37:48 2015 +0100
Fix PR 18208: update /proc/pid/coredump_filter by c code
Hi,
We see some fails in gdb.base/coredump-filter.exp when we do remote
gdbserver testing, like what I did for arm/aarch64 linux testing or
run it with board file remote-gdbserver-on-localhost
$ make check RUNTESTFLAGS='--target_board=remote-gdbserver-on-localhost coredump-filter.exp'
we find that this line in the test doesn't work as expected,
remote_exec target "sh -c \"echo $filter_flag > /proc/$ipid/coredump_filter\""
although such pattern has been used in gdb testsuite somewhere else,
but the special thing here is that we redirect the output to
/proc/$ipid/coredump_filter on the remote target. DejaGNU will
redirect the output from the remote target to local, and looks tcl
gets confused by these two redirection.
After trying pass different parameters to remote_exec and hacking
remote_exec/rsh_exec/local_exec, I got no success, I decide
to give up, and try to update /proc/$ipid/coredump_filter by the c
code directly.
This patch adds a c function set_coredump_filter to update
coredump_filter, and GDB calls it.
gdb/testsuite:
2015-05-08 Yao Qi <yao.qi@linaro.org>
PR gdb/18208
* gdb.base/coredump-filter.c (set_coredump_filter): New function.
* gdb.base/coredump-filter.exp (do_save_core): Call inferior
function set_coredump_filter, and remove remote_exec call.
Remove argument ipid. Callers update.
(top level): Don't get inferior's PID.
commit 45614f153407762d83e8ecaf271b9b6e524c62db
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri May 8 12:29:13 2015 +0100
[gdbserver] Disable conditional breakpoints on no-hardware-single-step targets
GDBserver steps over breakpoint if the condition is false, but if target
doesn't support hardware single step, the step over is very simple, if
not incorrect, in linux-arm-low.c:
/* We only place breakpoints in empty marker functions, and thread locking
is outside of the function. So rather than importing software single-step,
we can just run until exit. */
static CORE_ADDR
arm_reinsert_addr (void)
{
struct regcache *regcache = get_thread_regcache (current_thread, 1);
unsigned long pc;
collect_register_by_name (regcache, "lr", &pc);
return pc;
}
and linux-mips-low.c does the same. GDBserver sets a breakpoint at the
return address of the current function, resume and wait the program hits
the breakpoint in order to achieve "breakpoint step over". What if
program hits other user breakponits during this "step over"?
It is worse if the arm/thumb interworking is considered. Nowadays,
GDBserver arm backend unconditionally inserts arm breakpoint,
/* Define an ARM-mode breakpoint; we only set breakpoints in the C
library, which is most likely to be ARM. If the kernel supports
clone events, we will never insert a breakpoint, so even a Thumb
C library will work; so will mixing EABI/non-EABI gdbserver and
application. */
(const unsigned char *) &arm_breakpoint,
(const unsigned char *) &arm_eabi_breakpoint,
note that the comments are no longer valid as C library can be compiled
in thumb mode.
When GDBserver steps over a breakpoint in arm mode function, which
returns to thumb mode, GDBserver will insert arm mode breakpoint by
mistake and the program will crash. GDBserver alone is unable to
determine the arm/thumb mode given a PC address. See how GDB does
it in arm-tdep.c:arm_pc_is_thumb.
After thinking about how to teach GDBserver inserting right breakpoint
(arm or thumb) for a while, I reconsider it from a different direction
that it may be unreasonable to run target-side conditional breakpoint for
targets without hardware single step. Pedro also pointed this out here
https://sourceware.org/ml/gdb-patches/2015-04/msg00337.html
This patch is to add a new target_ops hook
supports_conditional_breakpoints, and only reply
";ConditionalBreakpoints+" if it is true. On linux targets,
supports_conditional_breakpoints returns true if target has hardware
single step, on other targets, (win32, lynx, nto, spu), set it to NULL,
because conditional breakpoint is a linux-specific feature.
gdb/gdbserver:
2015-05-08 Yao Qi <yao.qi@linaro.org>
* linux-low.c (linux_supports_conditional_breakpoints): New
function.
(linux_target_ops): Install new target method.
* lynx-low.c (lynx_target_ops): Install NULL hook for
supports_conditional_breakpoints.
* nto-low.c (nto_target_ops): Likewise.
* spu-low.c (spu_target_ops): Likewise.
* win32-low.c (win32_target_ops): Likewise.
* server.c (handle_query): Check
target_supports_conditional_breakpoints.
* target.h (struct target_ops) <supports_conditional_breakpoints>:
New field.
(target_supports_conditional_breakpoints): New macro.
commit 2492f0d005f0390eabb3deb58aa7db7fcd716763
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Fri May 8 12:50:47 2015 +0200
S390: Fix for inadvertently setting 24-bit mode in fill_gregset
On 64-bit S390 platforms, for programs compiled with -m31, it could
happen that GDB inadvertently cleared the inferior's 31-bit addressing
mode bit and left the inferior running in 24-bit addressing mode. In
particular this occurred with checkpoint.exp, when the "restore"
command needed to create a new regcache copy: At the time when the
PSWM register was copied over, the addressing mode bit was taken from
the PSWA register, which was still zero since it had not been copied
yet. And when the PSWA register was copied, the addressing mode was
not updated again.
The fix affects fill_gregset, where the bits "belonging" to each of
the PSWA and PSWM registers are now carefully separated. The
addressing mode bit is no longer touched when writing PSWM, and --
more importantly -- it *is* written when writing PSWA.
gdb/ChangeLog:
* s390-linux-nat.c (fill_gregset): Avoid relying on the PSWA
register in the regcache when treating the PSWM register, and vice
versa.
commit 63fc80ce17311913e41ccb671641310e4ce29eaf
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Fri May 8 12:50:47 2015 +0200
Skip watch_thread_num.exp on targets without access watchpoints
Since watch_thread_num.exp was changed to use access watchpoints, the
test case fails on s390 and s390x, since those targets do not support
access watchpoints. This patch skips the test case on such targets.
gdb/testsuite/ChangeLog:
* gdb.base/watch_thread_num.exp: Skip test on targets without
access watchpoints.
commit 7a261c91c8970fbcad7b00dc3e9c646319e74c50
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri May 8 00:00:08 2015 +0000
Automatic date update in version.in
commit b084df0b8d1262fb1e969c74bcc5c61e262a6199
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu May 7 09:13:39 2015 -0700
Optimize branches to non-weak symbols with visibility
Branches to global non-weak symbols defined in the same segment with
non-default visibility can be optimized the same way as branches to
local symbols.
gas/
* config/tc-i386.c (elf_symbol_resolved_in_segment_p): New.
(md_estimate_size_before_relax): Use it.
gas/testsuite/
* gas/i386/i386.exp: Run relax-3 and x86-64-relax-2.
* gas/i386/relax-3.d: New file.
* gas/i386/relax-3.s: Likewise.
* gas/i386/x86-64-relax-2.d: Likewise.
commit 1c56a84d9bac1f6a451a89d2c6af3d7078c4290e
Author: Gary Benson <gbenson@redhat.com>
Date: Thu May 7 15:41:43 2015 +0100
Remove unused td_ta_map_id2thr code
linux-thread-db.c initializes td_ta_map_id2thr but never uses it.
This commit removes this dead code.
gdb/ChangeLog:
* linux-thread-db.c (struct thread_db_info)
<td_ta_map_id2thr_p>: Remove field.
(try_thread_db_load_1): Remove initialization for the above.
commit 74850322e4882a195c92d5968defd93fe3deb75e
Author: Gary Benson <gbenson@redhat.com>
Date: Thu May 7 14:52:59 2015 +0100
Remove unused td_thr_validate code
linux-thread-db.c initializes td_thr_validate but never uses it.
This commit removes this dead code.
gdb/ChangeLog:
* linux-thread-db.c (struct thread_db_info)
<td_thr_validate_p>: Remove field.
(try_thread_db_load_1): Remove initialization for the above.
commit 187032dbb8cc15a4a13243a89b32ba8c51e95a4e
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu May 7 00:00:08 2015 +0000
Automatic date update in version.in
commit e26efa4066a5076f59427c927cc51c52b6b92f35
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 6 20:59:19 2015 +0200
compile: Support relocation to GNU-IFUNCs
Calling memcpy() could fail as memcpy() from libc is GNU-IFUNC.
gdb/ChangeLog
2015-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-object-load.c (compile_object_load): Support
mst_text_gnu_ifunc.
commit 851c90917fff745b94e29c1fec4f3d00ca36f598
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 6 20:57:41 2015 +0200
Code cleanup: compile: Constify some parameters
gdb/ChangeLog
2015-05-06 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile.c (compile_to_object): Make the cmd_string parameter
const. Use new variables for the const compatibility.
(eval_compile_command): Make the cmd_string parameter const.
* compile/compile.h (eval_compile_command): Make the cmd_string
parameter const.
commit 80ad801e90b5bd389ec156d37e28228fcbca128c
Author: Pedro Alves <palves@redhat.com>
Date: Wed May 6 18:50:03 2015 +0100
PR server/18081: gdbserver crashes when providing an unexisting binary
$ ./gdbserver :1234 blah
Process blah created; pid = 16471
Cannot exec blah: No such file or directory.
Child exited with status 127
Killing process(es): 16471
../../../../src/binutils-gdb/gdb/gdbserver/linux-low.c:920: A problem internal to GDBserver has been detected.
kill_wait_lwp: Assertion `res > 0' failed.
GDBserver shouldn't even be trying to kill that process. GDBserver
kills or detaches from all processes on exit, and due to a missing
mourn_inferior call, GDBserver tries to kill the process that it had
already seen exit.
Tested on x86_64 Fedora 20. New test included. I emulated what
Windows outputs by hacking an error call in linux_create_inferior.
gdb/gdbserver/ChangeLog:
2015-05-06 Pedro Alves <palves@redhat.com>
PR server/18081
* server.c (start_inferior): If the process exits, mourn it.
gdb/testsuite/ChangeLog:
2015-05-06 Pedro Alves <palves@redhat.com>
PR server/18081
* gdb.server/non-existing-program.exp: New file.
commit f218b647aa21168473b973e3459258ba21ba8fbc
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed May 6 10:40:52 2015 -0700
Get rid of deprecated_init_ui_hook
This hook is no longer used, and can therefore be eliminated.
gdb/ChangeLog:
* defs.h (deprecated_init_ui_hook): Delete. Remove associated
comment.
* top.c (deprecated_init_ui_hook): Delete.
(gdb_init): Remove handling of deprecated_init_ui_hook.
* interps.c (clear_interpreter_hooks): Remove handling of
deprecated_init_ui_hook.
* main.c (captured_main): Update comment.
commit b30a0bc387d63a28362bb08c351da32b50228530
Author: Joel Brobecker <brobecker@adacore.com>
Date: Sat May 2 04:46:47 2015 -0700
Make the "info dll" command available on all platform.
The "info dll", an alias of the "info sharedlibrary" command, is
currently only defined in windows native versions. This patch makes
it universally available by moving the alias declaration to solib.c,
and adjusts the documentation accordingly.
Making it universally available has two benefits:
- Windows users moving to a Unix platforms are still able to use
the same command for getting the list of shared libraries;
- Unix to Windows cross debuggers now provide that command also.
gdb/ChangeLog:
* solib.c (_initialize_solib): Add "info dll" alias creation.
* windows-nat.c (set_windows_aliases): Delete.
(_initialize_windows_nat): Remove deprecated_init_ui_hook
assignment.
* NEWS: Add news entry about "info dll" now being available
on all platforms.
gdb/doc/ChangeLog:
* gdb.texinfo (Files): Add "info dll" documentation.
(Cygwin Native): Remove "info dll" documentation.
commit 0d495746bb7ac93f3270443cae4117d6ae69ea05
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri May 1 10:16:59 2015 -0700
gas: typo in comment fixed.
gas/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c: Typo in comment fixed.
commit 9e85c798e3f1314711e0a1c7f85780d52c6f9c75
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri May 1 10:14:11 2015 -0700
gas: added tests for the sparc natural instructions.
gas/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* gas/sparc/natural-32.d: Test ldn, ldna, stn, stna, slln, srln,
sran, casn, casna and clrn.
* gas/sparc/natural-32.s: Likewise.
* gas/sparc/natural.s: Likewise.
* gas/sparc/natural.d: Likewise.
commit f9911bebcab64889ec7ab3571305081741aa03e4
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Thu Apr 30 17:17:20 2015 -0700
gas: support for the sparc %ncc condition codes register.
gas/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (sparc_ip): Support the %ncc "natural"
condition codes
* doc/c-sparc.texi (Sparc-Regs): Document %ncc.
gas/testsuite/ChangeLog:
2015-05-06 Jose E. Marchesi <jose.marchesi@oracle.com>
* gas/sparc/natural.s: New file.
* gas/sparc/natural-32.s: Likewise.
* gas/sparc/natural.d: Likewise.
* gas/sparc/natural-32.d: Likewise.
* gas/sparc/sparc.exp (sparc_elf_setup): Run the tests natural and
natural-32.
commit 9ac47a43ffc8e3c73867b9953145a8e7a227132d
Author: Toni Spets <toni.spets@iki.fi>
Date: Wed May 6 14:18:34 2015 +0100
Skip discarded resource sections when building a PE resource table.
PR ld/18372
* peXXigen.c (rsrc_process_section): Skip discarded resource
sections.
commit ed1fcdd119b422267d0ae54f216bd3f63cdc6425
Author: Nick Clifton <nickc@redhat.com>
Date: Wed May 6 13:13:10 2015 +0100
Update GAS documentation to note that dollar local labels are only supported on some targets.
* doc/as.texinfo (Dollar Local Labels): Note that these are only
supported on some targets.
commit 448eb63d72d960524ffe169f08419daf590b86d7
Author: Renlin Li <renlin.li@arm.com>
Date: Wed May 6 12:18:19 2015 +0100
[AArch64] Record instruction alignment for .inst directive
2015-05-06 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (mapping_state): Recording alignment before exit.
gas/testsuite/
* gas/aarch64/codealign_1.s: New.
* gas/aarch64/codealign_1.d: New.
commit 03bbcd1c7a7b76888969861686788c34858f4f67
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 6 00:00:09 2015 +0000
Automatic date update in version.in
commit 7c5127443be1d3d0477b3b1d25875023992409bc
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Jan 30 16:33:04 2015 +0400
Further document ada-lang.c::value_assign_to_component & fix whitespaces.
This patch improves the documentation of ada-lang.c's
value_assign_to_component to publish the fact that it also works
with not_lval values.
And touching this area of the code showed that there were a number
of whitespace issues, as well as a formatting issue of the main comment
(no leading '*' on each line). This patch fixes those while at it.
No functional change, however.
gdb/ChangeLog:
* ada-lang.c (value_assign_to_component): Reformat and improve
documentation. Remove all trailing spaces.
commit 0fa7fe506c242b459c4c05d331e7c7d66fb52390
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Apr 21 10:34:04 2015 -0700
out of line functions nested inside inline functions.
This patch improves the handling of out-of-line functions nested
inside functions that have been inlined.
Consider for instance a situation where function Foo_O224_021
has a function Child1 declared in it, which itself has a function
Child2 nested inside Child1. After compiling the program with
optimization on, Child1 gets inlined, but not Child2.
After inserting a breakpoint on Child2, and running the program
until reaching that breakpoint, we get the following backtrace:
% gdb foo_o224_021
(gdb) break foo_o224_021.child1.child2
(gdb) run
[...]
Breakpoint 1, foo_o224_021 () at foo_o224_021.adb:28
28 Child1;
(gdb) bt
#0 0x0000000000402400 in foo_o224_021 () at foo_o224_021.adb:28
#1 0x00000000004027a4 in foo_o224_021.child1 () at foo_o224_021.adb:23
#2 0x00000000004027a4 in foo_o224_021 () at foo_o224_021.adb:28
GDB reports the wrong function name for frame #0. We also get the same
kind of error in the "Breakpoint 1, foo_o224_021 () [...]" message.
In both cases, the function name should be foo_o224_021.child1.child2,
and the parameters should be "s=...".
What happens is that the inlined frame handling does not handle well
the case where an inlined function is calling an out-of-line function
which was declared inside the inlined function's scope.
In particular, looking first at the inlined-frame sniffer when applying
to frame #0:
/* Calculate DEPTH, the number of inlined functions at this
location. */
depth = 0;
cur_block = frame_block;
while (BLOCK_SUPERBLOCK (cur_block))
{
if (block_inlined_p (cur_block))
depth++;
cur_block = BLOCK_SUPERBLOCK (cur_block);
}
What happens is that cur_block starts as the block associated
to child2, which is not inlined. We shoud be stopping here, but
instead, we keep walking the superblock chain, which takes us
all the way to Foo_O224_021's block, via Child2's block. And
since Child1 was inlined, we end up with a depth count of 1,
wrongly making GDB think that frame #0 is an inlined frame.
Same kind of issue inside skip_inline_frames.
The fix is to stop checking for inlined frames as soon as we see
a block corresponding to a function which is not inlined. This is
the behavior we now obtain:
(gdb) run
[...]
Breakpoint 1, foo_o224_021.child1.child2 (s=...) at foo_o224_021.adb:9
9 function Child2 (S : String) return Boolean is
(gdb) bt
#0 0x0000000000402400 in foo_o224_021.child1.child2 (s=...)
at foo_o224_021.adb:9
#1 0x00000000004027a4 in foo_o224_021.child1 () at foo_o224_021.adb:23
#2 0x00000000004027a4 in foo_o224_021 () at foo_o224_021.adb:28
gdb/ChangeLog:
* inline-frame.c (inline_frame_sniffer, skip_inline_frames):
Stop counting inlined frames as soon as an out-of-line function
is found.
gdb/testsuite/ChangeLog:
* gdb.ada/out_of_line_in_inlined.exp: Add run and "bt" tests.
commit 3ea89b92fb0765075a27a3a0239552ae880722ff
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Mon Apr 20 17:53:00 2015 +0200
DWARF: cannot break on out-of-line function nested inside inlined function.
Consider the following code, which defines a function, Child2,
which is itself nested inside Child1:
procedure Foo_O224_021 is
O1 : constant Object_Type := Get_Str ("Foo");
procedure Child1 is
O2 : constant Object_Type := Get_Str ("Foo");
function Child2 (S : String) return Boolean is -- STOP
begin
for C of S loop
Do_Nothing (C);
if C = 'o' then
return True;
end if;
end loop;
return False;
end Child2;
R : Boolean;
begin
R := Child2 ("Foo");
R := Child2 ("Bar");
R := Child2 ("Foobar");
end Child1;
begin
Child1;
end Foo_O224_021;
On x86_64-linux, when compiled at -O2, GDB is unable to insert
a breakpoint on Child2:
% gnatmake -g -O2 foo_o224_021
% gdb foo_o224_021
(gdb) b child2
Function "child2" not defined.
(gdb) b foo_o224_021.child1.child2
Function "foo_o224_021.child1.child2" not defined.
The problem is caused by the fact that GDB did not create a symbol
for Child2, and this, in turn, is caused by the fact that the compiler
decided to inline Child1, but not Child2. The DWARF debugging info
first provides an abstract instance tree for Child1...
<3><1b7b>: Abbrev Number: 29 (DW_TAG_subprogram)
<1b7c> DW_AT_name : (indirect string, offset: 0x23f8): foo_o224_021__child1
<1b82> DW_AT_inline : 1 (inlined)
<1b83> DW_AT_sibling : <0x1c01>
... where that subprogram is given the DW_AT_inline attribute.
Inside that function there is a lexical block which has no PC
range (corresponding to the fact that this is the abstract tree):
<4><1b87>: Abbrev Number: 30 (DW_TAG_lexical_block)
... inside which our subprogram Child2 is described:
<5><1b92>: Abbrev Number: 32 (DW_TAG_subprogram)
<1b93> DW_AT_name : (indirect string, offset: 0x2452): foo_o224_021__child1__child2
<1b99> DW_AT_type : <0x1ab1>
<1b9d> DW_AT_low_pc : 0x402300
<1ba5> DW_AT_high_pc : 0x57
[...]
Then, later on, we get the concrete instance tree, starting at:
<3><1c5e>: Abbrev Number: 41 (DW_TAG_inlined_subroutine)
<1c5f> DW_AT_abstract_origin: <0x1b7b>
<1c63> DW_AT_entry_pc : 0x4025fd
<1c6b> DW_AT_ranges : 0x150
... which refers to Child1. One of that inlined subroutine children
is the concrete instance of the empty lexical block we saw above
(in the abstract instance tree), which gives the actual address
range for this inlined instance:
<5><1c7a>: Abbrev Number: 43 (DW_TAG_lexical_block)
<1c7b> DW_AT_abstract_origin: <0x1b87>
<1c7f> DW_AT_ranges : 0x180
This is the DIE which provides the context inside which we can
record Child2. But unfortunately, GDB does not take the abstract
origin into account when handling lexical blocks, causing it
to miss the fact that this block contains some symbols described
in the abstract instance tree. This is the first half of this patch:
modifying GDB to follow DW_AT_abstract_origin attributes for
lexical blocks.
But this not enough to fix the issue, as we're still unable to
break on Child2 with just that change. The second issue can be
traced to the way inherit_abstract_dies determines the list of
DIEs to inherit from. For that, it iterates over all the DIEs in
the concrete instance tree, and finds the list of DIEs from the
abstract instance tree that are not referenced from the concrete
instance tree. As it happens, there is one type of DIE in the
concrete instance tree which does reference Child2's DIE, but
in fact does otherwise define a concrete instance of the reference
DIE; that's (where <0x1b92> is Child2's DIE):
<6><1d3c>: Abbrev Number: 35 (DW_TAG_GNU_call_site)
<1d3d> DW_AT_low_pc : 0x4026a4
<1d45> DW_AT_abstract_origin: <0x1b92>
So, the second part of the patch is to modify inherit_abstract_dies
to ignore DW_TAG_GNU_call_site DIEs when iterating over the concrete
instance tree.
This patch also includes a testcase which can be used to reproduce
the issue. Unfortunately, for it to actually pass, a smal patch in
GCC is also necessary to make sure that GCC provides lexical blocks'
DW_AT_abstract_origin attributes from the concrete tree back to
the abstract tree. We hope to be able to submit and integrate that
patch in the GCC tree soon. Meanwhile, a setup_xfail has been added.
gdb/ChangeLog:
2014-05-05 Pierre-Marie de Rodat <derodat@adacore.com>
* dwarf2read.c (inherit_abstract_dies): Skip
DW_TAG_GNU_call_site dies while inheriting children of an
abstract DIE into a scope.
(read_lexical_block_scope): Inherit abstract DIE's for
lexical scopes.
gdb/testsuite/ChangeLog:
* gdb.ada/out_of_line_in_inlined: New testcase.
commit 2478d075da8f728137bbdaa68b049051c74f4254
Author: Joel Brobecker <brobecker@adacore.com>
Date: Thu Apr 30 23:04:25 2015 +0200
compare object sizes before comparing them with value_contents_eq
This is an issue which I noticed while working on trying to print
an array of variant records. For instance, trying to print "A1",
an array of elements whose size is variable, defined as follow
(see gdb.ada/var_rec_arr testcase):
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
function Ident (R : Record_Type) return Record_Type;
type Array_Type is array (Integer range <>) of Record_Type;
A1 : Array_Type := (1 => (I => 0, S => <>),
2 => (I => 1, S => "A"),
3 => (I => 2, S => "AB"));
The debugger sometimes prints the array as follow:
(gdb) print A1
$1 = ((i => 0, s => ""), (i => 0, s => ""), (i => 0, s => ""))
The problem happens inside the part of the loop printing the array's
elements, while trying to count the number of consecutive elements
that have the same value (in order to replace them by the "<repeats
nnn times>" message when the number exceeds a threshold). In particular,
in ada-valprint.c::val_print_packed_array_elements:
elttype = TYPE_TARGET_TYPE (type);
eltlen = TYPE_LENGTH (check_typedef (elttype));
while (...)
{
if (!value_contents_eq (v0, value_embedded_offset (v0),
v1, value_embedded_offset (v1),
eltlen))
break;
The value comparison is performed using value_contents_eq but makes
the assumption that elttype is not dynamic, which is not always true.
In particular, in the case above, elttype is dynamic and therefore
its TYPE_LENGTH changes from element to element.
As it happens in this case, the eltlen is zero, which causes the call
to value_contents_eq to return true, and therefore GDB thinks all
3 elements of the array are equal.
This patch fixes the issue by making sure that both v0 and v1, which
are values whose type we expect to be resolved, have identical lengths.
If not, then the two elements of the array cannot possibly have the
same value and we do not even need to do the binary comparison.
Unfortunately, this is still not enough to get GDB to print the correct
value for our array, because the assumption that v0 and v1 have a type
which has been resolved is actually not met. So, the second part of
the patch modifies the function that constructed the values to make
sure dynamic types do get resolved.
gdb/ChangeLog:
* ada-valprint.c (val_print_packed_array_elements): Delete
variable "len". Add a type-length check when comparing two
consecutive elements of the array. Use the element's actual
length in call to value_contents_eq.
* ada-lang.c (ada_value_primitive_packed_val): Always return
a value whose type has been resolved.
commit 87b8eff03fa5cd49c4829656c3d36bb3386dd6be
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Apr 21 08:32:52 2015 -0700
testsuite/gdb.ada/var_rec_arr: New testcase.
gdb/testsuite/ChangeLog:
* gdb.ada/var_rec_arr: New testcase.
commit fc958966e47f622d738088509bacd0573a9db2c7
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Apr 14 11:55:57 2015 -0700
GDB crash trying to subscript array of variant record.
Consider the following declarations:
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
A2 : Array_Type := (1 => (I => 2, S => "AB"),
2 => (I => 1, S => "A"),
3 => (I => 0, S => <>));
Compiled with -fgnat-encodings=minimal, and trying to print
one element of our array, valgrind reports an invalid memory
access. On certain GNU/Linux boxes, malloc even reports it as
well, and causes GDB to crash.
(gdb) print a2(1)
*** glibc detected *** /[...]/gdb:
malloc(): memory corruption: 0x0a30ba48 ***
[crash]
The invalid memory access occurs because of a simple buffer
overflow in ada_value_primitive_packed_val. When this function
is called, it is given a bit_size of 128 (or 16 bytes), which
corresponds to the stride of our array. But the actual size of
each element depends on its value. In particular, A2(1) is a record
whose size is only 6 bytes.
What happens in our example is that we start building a new value
(v) where the element is to be unpacked, with any of its dynamic
properties getting resolved as well. We then unpack the data into
this value's buffer:
unpacked = (unsigned char *) value_contents (v);
[...]
nsrc = len;
[...]
while (nsrc > 0)
{
[...]
unpacked[targ] = accum & ~(~0L << HOST_CHAR_BIT);
[...]
targ += delta;
[...]
nsrc -= 1;
[...]
}
In the loop above, targ starts at zero (for LE architectures),
and len is 16. With delta being +1, we end up iterating 16 times,
writing 16 bytes into a 6-bytes buffer.
This patch fixes the issue by adjusting BIT_SIZE and recomputing
LEN after having resolved our type if the resolved type turns out
to be smaller than bit_size.
gdb/ChangeLog:
* ada-lang.c (ada_value_primitive_packed_val): Recompute
BIT_SIZE and LEN if the size of the resolved type is smaller
than BIT_SIZE * HOST_CHAR_BIT.
commit ca34b84ff68f5823e215a4d0b44b92f35cbb74a5
Author: Joel Brobecker <brobecker@adacore.com>
Date: Thu Apr 2 11:09:15 2015 -0700
[Ada] array of variant record subscripting
Consider the following (Ada) array...
A1 : Array_Type := (1 => (I => 0, S => <>),
2 => (I => 1, S => "A"),
3 => (I => 2, S => "AB"));
... where Array_Type is declared as follow:
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
type Array_Type is array (Integer range <>) of Record_Type;
Trying to print the value of each element individually does not
always work. Printing the value of the first one does:
(gdb) p a1(1)
$1 = (i => 0, s => "")
But printing the value of the subsequent ones often does not.
For instance:
(gdb) p a1(2)
$2 = (i => 1, s => "") <<<--- s should be "A"
(gdb) p a1(3)
$3 = (i => 2, s => "") <<<--- s should be "AB"
I traced the problem to ada_value_primitive_packed_val,
which is trying to perform the array subscripting by
extracting the value of the corresponding array element
into a buffer where the contents is now byte-aligned.
The element type that ada_value_primitive_packed_val gets passed
is a dynamic type. As it happens, that dynamic type can get resolved
thanks to:
v = value_at (type, value_address (obj));
type = value_type (v);
However, obj represents the array, so the address given in the call
to value_at represents the value of the first element. As a result,
the solution of component S's upper bound always gets resolved based
on the value of component I in the first element of the array, whose
value is 0, thus leading to GDB mistakely resolving the element type
where S's upper bound is always 0.
The proper fix would be to systematically resolve the element type
first. But, this requires us to extract-and-realign the element's
value so as to be able to pass it as "valaddr" to resolve_dynamic_type.
In the meantime, it's easy to make the situation a little better by
passing "value_address (obj) + offset" as the object address. This
only works when BIT_OFFSET is nul, but that should be the case when
the element type is anything but a scalar, which seems to be the only
situation where it seems important to resolve the type now. And we're
not that worse off otherwise.
But we'll try to find a better solution in a separate patch.
gdb/ChangeLog:
* ada-lang.c (ada_value_primitive_packed_val): Use a more
correct address in call to value_at. Adjust call to
value_address accordingly.
commit 62c67f3c1a10e4082641bafb7e7fd80c93b526b4
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Apr 1 15:46:54 2015 -0700
[Ada] Resolve dynamic type before trying to print it.
This is another required step towards trying to print the value of
an array of variant records. For instance:
A1 : Array_Type := (1 => (I => 0, S => <>),
2 => (I => 1, S => "A"),
3 => (I => 2, S => "AB"));
... where Array_Type is an array of records whose size is variable:
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
type Array_Type is array (Integer range <>) of Record_Type;
What happens is that the ada-valprint modules gets passed an array
whose element type is not resolved yet (since each element of the
array needs to be resolved separately). the module then recurses,
and eventually gets called with the first element of the array.
But because the element hasn't been resolved yet, we end up having
trouble printing its value soon after.
This patch fixes the issue by calling resolve_dynamic_type before
trying to print it.
With this patch, GDB is finally able to print the complete value
for variable "A1":
(gdb) p a1
$1 = ((i => 0, s => ""), (i => 1, s => "A"), (i => 2, s => "AB"))
gdb/ChangeLog:
* ada-valprint.c (ada_val_print_1): Resolve TYPE before trying
to print it.
commit c3345124196f9d0439db35c16b5d24d1a305ccdd
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Apr 1 10:00:13 2015 -0700
Add valaddr support in dynamic property resolution.
This is the second part of enhancing the debugger to print the value
of arrays of records whose size is variable when only standard DWARF
info is available (no GNAT encoding). For instance:
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
type Array_Type is array (Integer range <>) of Record_Type;
A1 : Array_Type := (1 => (I => 0, S => <>),
2 => (I => 1, S => "A"),
3 => (I => 2, S => "AB"));
Currently, GDB prints the following output:
(gdb) p a1
$1 = (
The error happens while the ada-valprint module is trying to print
the value of an element of our array. Because of the fact that
the array's element (type Record_Type) has a variant size, the DWARF
info for our array provide the array's stride:
<1><749>: Abbrev Number: 10 (DW_TAG_array_type)
<74a> DW_AT_name : (indirect string, offset: 0xb6d): pck__T18s
<74e> DW_AT_byte_stride : 16
<74f> DW_AT_type : <0x6ea>
And because our array has a stride, ada-valprint treats it the same
way as packed arrays (see ada-valprint.c::ada_val_print_array):
if (TYPE_FIELD_BITSIZE (type, 0) > 0)
val_print_packed_array_elements (type, valaddr, offset_aligned,
0, stream, recurse,
original_value, options);
The first thing that we should notice in the call above is that
the "valaddr" buffer and the associated offset (OFFSET_ALIGNED)
is passed, but that the corresponding array's address is not.
This can be explained by looking inside val_print_packed_array_elements,
where we see that the function unpacks each element of our array from
the buffer alone (ada_value_primitive_packed_val), and then prints
the resulting artificial value instead:
v0 = ada_value_primitive_packed_val (NULL, valaddr + offset,
(i0 * bitsize) / HOST_CHAR_BIT,
(i0 * bitsize) % HOST_CHAR_BIT,
bitsize, elttype);
[...]
val_print (elttype, value_contents_for_printing (v0),
value_embedded_offset (v0), 0, stream,
recurse + 1, v0, &opts, current_language);
Of particular interest, here, is the fact that we call val_print
with a null address, which is OK, since we're providing a buffer
instead (value_contents_for_printing). Also, providing an address
might not always possible, since packing could place elements at
boundaries that are not byte-aligned.
Things go south when val_print tries to see if there is a pretty-printer
that could be applied. In particular, one of the first things that
the Python pretty-printer does is to create a value using our buffer,
and the given address, which in this case is null (see call to
value_from_contents_and_address in gdbpy_apply_val_pretty_printer).
value_from_contents_and_address, in turn immediately tries to resolve
the type, using the given address, which is null. But, because our
array element is a record containing an array whose bound is the value
of one of its elements (the "s" component), the debugging info for
the array's upper bound is a reference...
<3><71a>: Abbrev Number: 7 (DW_TAG_subrange_type)
<71b> DW_AT_type : <0x724>
<71f> DW_AT_upper_bound : <0x703>
... to component "i" of our record...
<2><703>: Abbrev Number: 5 (DW_TAG_member)
<704> DW_AT_name : i
<706> DW_AT_decl_file : 2
<707> DW_AT_decl_line : 6
<708> DW_AT_type : <0x6d1>
<70c> DW_AT_data_member_location: 0
... where that component is located at offset 0 of the start
of the record. dwarf2_evaluate_property correctly determines
the offset where to load the value of the bound from, but then
tries to read that value from inferior memory using the address
that was given, which is null. See case PROP_ADDR_OFFSET in
dwarf2_evaluate_property:
val = value_at (baton->offset_info.type,
pinfo->addr + baton->offset_info.offset);
This triggers a memory error, which then causes the printing to terminate.
Since there are going to be situations where providing an address
alone is not going to be sufficient (packed arrays where array elements
are not stored at byte boundaries), this patch fixes the issue by
enhancing the type resolution to take both address and data. This
follows the same principle as the val_print module, where both
address and buffer ("valaddr") can be passed as arguments. If the data
has already been fetched from inferior memory (or provided by the
debugging info in some form -- Eg a constant), then use that data
instead of reading it from inferior memory.
Note that this should also be a good step towards being able to handle
dynamic types whose value is stored outside of inferior memory
(Eg: in a register).
With this patch, GDB isn't able to print all of A1, but does perform
a little better:
(gdb) p a1
$1 = ((i => 0, s => , (i => 1, s => , (i => 2, s => )
There is another issue which is independent of this one, and will
therefore be patched separately.
gdb/ChangeLog:
* dwarf2loc.h (struct property_addr_info): Add "valaddr" field.
* dwarf2loc.c (dwarf2_evaluate_property): Add handling of
pinfo->valaddr.
* gdbtypes.h (resolve_dynamic_type): Add "valaddr" parameter.
* gdbtypes.c (resolve_dynamic_struct): Set pinfo.valaddr.
(resolve_dynamic_type_internal): Set pinfo.valaddr.
Add handling of addr_stack->valaddr.
(resolve_dynamic_type): Add "valaddr" parameter.
Set pinfo.valaddr field.
* ada-lang.c (ada_discrete_type_high_bound): Update call to
resolve_dynamic_type.
(ada_discrete_type_low_bound): Likewise.
* findvar.c (default_read_var_value): Likewise.
* value.c (value_from_contents_and_address): Likewise.
commit 75ea58593b839653b6d2bc69571a8a73e8adebe4
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Mar 31 07:59:35 2015 -0700
preserve the bit stride when resolving an array type.
Consider the following (Ada) variable...
A1 : Array_Type := (1 => (I => 0, S => <>),
2 => (I => 1, S => "A"),
3 => (I => 2, S => "AB"));
... where Array_Type is an array of records whose size is variable:
subtype Small_Type is Integer range 0 .. 10;
type Record_Type (I : Small_Type := 0) is record
S : String (1 .. I);
end record;
type Array_Type is array (Integer range <>) of Record_Type;
Trying to print the value of this array currently results in the following
error:
(gdb) p a1
Cannot access memory at address 0x61c000
What happens in this case, is that the compiler describes our array
as an array with a specific stride (and bounds being static 1..3):
<1><749>: Abbrev Number: 10 (DW_TAG_array_type)
<74a> DW_AT_name : (indirect string, offset: 0xb6d): pck__T18s
<74e> DW_AT_byte_stride : 16
<74f> DW_AT_type : <0x6ea>
<2><757>: Abbrev Number: 11 (DW_TAG_subrange_type)
<758> DW_AT_type : <0x75e>
<75c> DW_AT_upper_bound : 3
This is because we cannot use, in this case, the size of the record
to determine that stride, since the size of the record depends on
its contents. So the compiler helps us by providing that stride.
The problems start when trying to resolve that type. Because the elements
contained in that array type are dynamic, the array itself is considered
dynamic, and thus we end up creating a resolved version of that array.
And during that resolution, we were not handling the case where the array
had a stride. See gdbtypes.c::resolve_dynamic_array...
return create_array_type (copy_type (type),
elt_type,
range_type);
As a result, we created an array whose stride was based on the size
of elt_type, which a record whose size isn't static and irrelevant
regardless.
This patch fixes is by calling create_array_type_with_stride instead.
As it happens, there is another issue for us to be able to print
the value of our array, but those are independent of this patch
and will be handled separately. For now, the patch allows us to
get rid of the first error, and the output is now:
(gdb) p a1
$1 = (
gdb/ChangeLog:
* gdbtypes.c (resolve_dynamic_array): Use
create_array_type_with_stride instead of create_array_type.
commit c7ad08e6e5ff0768f5f0aeed12864a7bab588386
Author: Renlin Li <renlin.li@arm.com>
Date: Tue May 5 17:48:18 2015 +0100
[AARCH64] Positively emit symbols for alignment
2015-05-05 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (aarch64_init_frag): Always generate mapping symbols.
gas/testsuite/
* gas/aarch64/mapping_5.d: New.
* gas/aarch64/mapping_5.s: New.
* gas/aarch64/mapping_6.d: New.
* gas/aarch64/mapping_6.s: New.
commit 837a17b36c9e297f4bf33727e25dfa9f38360c17
Author: Nick Clifton <nickc@redhat.com>
Date: Tue May 5 13:38:00 2015 +0100
Add support to the MSP430 linker for the automatic placement of code and data into either low or high memory regions.
gas * config/tc-msp430.c (MAX_OP_LEN): Increase to 4096.
(msp430_make_init_symbols): New function.
(msp430_section): Call it.
(msp430_frob_section): Likewise.
ld * emulparams/msp430elf.sh (TEMPLATE_NAME): Change to msp430.
* scripttempl/msp430.sc (.text): Add .lower.text and .either.text.
(.data): Add .lower.data and .either.data.
(.bss): Add .lower.bss and .either.bss.
(.rodata): Add .lower.rodata and .either.rodata.
* emultempl/msp430.em: New file. Implements a new orphan
placement algorithm that divides sections between lower and upper
memory regions.
* Makefile.am (emsp430elf.c): Depend upon msp430.em.
*emsp430X.c): Likewise.
* Makefine.in: Regenerate.
commit b76f99d702c3501ac320396ea06bc7f9237173c3
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Fri May 1 11:39:12 2015 +0300
xtensa: optimize trampolines relaxation
Currently every fixup in the current segment is checked when relaxing
trampoline frag. This is very expensive. Make a searchable array of
fixups pointing at potentially oversized jumps at the beginning of every
relaxation pass and only check subset of this cache in the reach of
single jump from the trampoline frag currently being relaxed.
Original profile:
% time self children called name
-----------------------------------------
370.16 593.38 12283048/12283048 relax_segment
98.4 370.16 593.38 12283048 xtensa_relax_frag
58.91 269.26 2691463834/2699602236 xtensa_insnbuf_from_chars
68.35 68.17 811266668/813338977 S_GET_VALUE
36.85 29.51 2684369246/2685538060 xtensa_opcode_decode
28.34 8.84 2684369246/2685538060 xtensa_format_get_slot
12.39 5.94 2691463834/2699775044 xtensa_format_decode
0.03 4.60 4101109/4101109 relax_frag_for_align
0.18 1.76 994617/994617 relax_frag_immed
0.07 0.09 24556277/24851220 new_logical_line
0.06 0.00 12283048/14067410 as_where
0.04 0.00 7094588/15460506 xtensa_format_num_slots
0.00 0.00 1/712477 xtensa_insnbuf_alloc
-----------------------------------------
Same data, after optimization:
% time self children called name
-----------------------------------------
0.51 7.47 12283048/12283048 relax_segment
58.0 0.51 7.47 12283048 xtensa_relax_frag
0.02 4.08 4101109/4101109 relax_frag_for_align
0.18 1.39 994617/994617 relax_frag_immed
0.01 0.98 555/555 xtensa_cache_relaxable_fixups
0.21 0.25 7094588/16693271 xtensa_insnbuf_from_chars
0.06 0.12 24556277/24851220 new_logical_line
0.06 0.00 7094588/15460506 xtensa_format_num_slots
0.02 0.04 7094588/16866079 xtensa_format_decode
0.05 0.00 12283048/14067410 as_where
0.00 0.00 1/712477 xtensa_insnbuf_alloc
0.00 0.00 93808/93808 xtensa_find_first_cached_fixup
-----------------------------------------
2015-05-02 Max Filippov <jcmvbkbc@gmail.com>
gas/
* config/tc-xtensa.c (cached_fixupS, fixup_cacheS): New typedefs.
(struct cached_fixup, struct fixup_cache): New structures.
(fixup_order, xtensa_make_cached_fixup),
(xtensa_realloc_fixup_cache, xtensa_cache_relaxable_fixups),
(xtensa_find_first_cached_fixup, xtensa_delete_cached_fixup),
(xtensa_add_cached_fixup): New functions.
(xtensa_relax_frag): Cache fixups pointing at potentially
oversized jumps at the beginning of every relaxation pass. Only
check subset of this cache in the reach of single jump from the
trampoline frag currently being relaxed.
commit e1765cdae248853eeaa56459057cf0c712c70922
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 5 00:00:07 2015 +0000
Automatic date update in version.in
commit 44b3de870e9ae54a6e4b55277040f9b267d026e8
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon May 4 00:00:08 2015 +0000
Automatic date update in version.in
commit 01a97082d0e93bd3ae7811908ce5466fc37101ec
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun May 3 00:00:07 2015 +0000
Automatic date update in version.in
commit efc6fa128f00d61014f56530724767ea048bf594
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat May 2 08:40:09 2015 -0700
Change Section_id type to use Relobj* instead of Object*.
2015-04-29 Cary Coutant <cary@google.com>
Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
gold/
* gc.h (Garbage_collection::is_section_garbage): Change Object*
to Relobj*.
(Garbage_collection::add_reference): Likewise.
(Garbage_collection::gc_process_relocs): Likewise. Don't push
object/shndx pair onto *secvec for dynamic objects. Don't follow
relocations pointing to dynamic objects for GC.
* icf.cc (Icf::find_identical_sections): Change Object* to Relobj*.
(Icf::unfold_section): Likewise.
(Icf::is_section_folded): Likewise.
(Icf::get_folded_section): Likewise.
* icf.h: (Icf::get_folded_section): Likewise.
(Icf::unfold_section): Likewise.
(Icf::is_section_folded): Likewise.
(Icf::section_has_function_pointers): Likewise.
(Icf::set_section_has_function_pointers): Likewise.
* object.h (Section_id): Likewise.
(Const_section_id): Likewise.
* output.cc (Output_section::update_section_layout): Likewise.
* output.h: (Output_section_lookup_maps::find_relaxed_input_section):
Likewise.
* plugin.cc (update_section_order): Likewise.
(unique_segment_for_sections): Likewise.
* powerpc.cc (Powerpc_relobj::add_reference): Likewise.
(Target_powerpc::do_gc_add_reference): Likewise.
(Target_powerpc::gc_process_relocs): Likewise.
(Target_powerpc::do_gc_add_reference): Likewise.
* symtab.cc (Symbol_table::is_section_folded): Likewise.
(Symbol_table::gc_mark_symbol): Likewise.
* symtab.h: (Symbol_table::is_section_folded): Likewise.
* target.h: (Sized_target::gc_add_reference): Likewise.
(Sized_target::do_gc_add_reference): Likewise.
commit 0138c3463da05ebddc8d864f6f251df48c454adc
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat May 2 00:00:08 2015 +0000
Automatic date update in version.in
commit d62de9aa697946c9205bb973075ecefaf14195d7
Author: DJ Delorie <dj@redhat.com>
Date: Fri May 1 15:08:07 2015 -0400
Fix typos in previous patch.
* config/rl78-parse.y (MULU): Remove ISA_G14.
(MULH, DIVHU, DIVWU, MACHI, MACH): Update error strings.
commit f7d13551023d7a1aaa89a36f6a4bb197de165109
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 1 09:10:03 2015 -0700
Sync filenames.h with gcc
Merge with gcc:
2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
PR driver/36312
* filenames.h: Add prototype for canonical_filename_eq.
commit e81d5d059b485b37a6f8cfb44e563ad8b702df07
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 1 08:33:55 2015 -0700
Configure zlib with --enable-host-shared for shared bfd
When bfd is configured as a shared library, we need to configure zlib
with --enable-host-shared since zlib is used by bfd.
PR ld/18355
* Makefile.def: Add extra_configure_flags to host zlib.
* configure.ac (extra_host_zlib_configure_flags): New. Set
to --enable-host-shared When bfd is to be built as shared
library. AC_SUBST.
* Makefile.in: Regenerated.
* configure: Likewise.
commit 00923338dec84505addaf9cdeca2e9c844757824
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 1 08:29:16 2015 -0700
Remove i386_elf_emit_arch_note
This x86 assembler patch:
https://sourceware.org/ml/binutils/2001-11/msg00344.html
generates a .note section for .arch directive so that GDB can tell which
architecture an i386 binary belongs:
https://sourceware.org/ml/binutils/2001-11/msg00271.html
However, x86 assembly code can have any instructions. A .note section
doesn't help. This patch removes it.
gas/
* config/tc-i386.c (i386_elf_emit_arch_note): Removed.
* config/tc-i386.h (md_end): Likewise.
(i386_elf_emit_arch_note): Likewise.
gas/testsuite/
* gas/i386/i386.exp: Run note.
* gas/i386/note.d: New file.
* gas/i386/note.s: Likewise.
commit b633b7258d319687ac625da1f1b9be20e3bdaedb
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 1 05:02:30 2015 -0700
Support ix86-*-elf*
bfd/
* config.bfd: Support i[3-7]86-*-elf*.
gas/
* configure.tgt: Support i386-*-elf*.
commit d6ad7351474f5959bbccb4031cbe7590567fd67a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri May 1 00:00:08 2015 +0000
Automatic date update in version.in
commit 0952813b0b27abe7f53a8048c0218883412e54cd
Author: DJ Delorie <dj@redhat.com>
Date: Thu Apr 30 15:25:49 2015 -0400
Make RL78 disassembler and simulator respect ISA for mul/div
[gas]
* config/rl78-defs.h (rl78_isa_g10): New.
(rl78_isa_g13): New.
(rl78_isa_g14): New.
* config/rl78-parse.y (ISA_G10): New.
(ISA_G13): New.
(ISA_G14): New.
(MULHU, MULH, MULU, DIVHU, DIVWU, MACHU, MACH): Use them.
* config/tc-rl78.c (rl78_isa_g10): New.
(rl78_isa_g13): New.
(rl78_isa_g14): New.
[gdb]
* rl78-tdep.c (rl78_analyze_prologue): Pass RL78_ISA_DEFAULT to
rl78_decode_opcode
[include]
* dis-asm.h (print_insn_rl78_g10): New.
(print_insn_rl78_g13): New.
(print_insn_rl78_g14): New.
(rl78_get_disassembler): New.
* opcode/rl78.h (RL78_Dis_Isa): New.
(rl78_decode_opcode): Add ISA parameter.
[opcodes]
* disassemble.c (disassembler): Choose suitable disassembler based
on E_ABI.
* rl78-decode.opc (rl78_decode_opcode): Take ISA parameter. Use
it to decode mul/div insns.
* rl78-decode.c: Regenerate.
* rl78-dis.c (print_insn_rl78): Rename to...
(print_insn_rl78_common): ...this, take ISA parameter.
(print_insn_rl78): New.
(print_insn_rl78_g10): New.
(print_insn_rl78_g13): New.
(print_insn_rl78_g14): New.
(rl78_get_disassembler): New.
[sim]
* rl78/cpu.c (g14_multiply): New.
* rl78/cpu.h (g14_multiply): New.
* rl78/load.c (rl78_load): Decode ISA completely.
* rl78/main.c (main): Expand -M to include other ISAs.
* rl78/rl78.c (decode_opcode): Decode based on ISA.
* rl78/trace.c (rl78_disasm_fn): New.
(sim_disasm_init): Reset it.
(sim_disasm_one): Get correct disassembler for ISA.
commit b49f93f6995a5d23c752db103902314d4e23f761
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 30 08:36:17 2015 -0700
Use "else if" on cpu_arch_isa
* config/tc-i386.c (i386_target_format): Use "else if" on
cpu_arch_isa.
commit 153a27763ccc9979fdb5f342e21eb1666c8f117b
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 30 15:57:41 2015 +0100
Fix handling of relocs for the MeP target.
bfd PR 18317
* elf32-mep.c (MEPREL): Use bfd_elf_generic_reloc instead of
mep_reloc.
(mep_reloc): Delete unused function.
bin * readelf.c (get_machine_flags): Add description of MeP flags.
tests * binutils-all/objdump.exp (cpus_expected): Add MeP CPU names.
commit 914082d11b5de9509491615cce448ce937e91515
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 30 06:52:34 2015 -0700
Undef elf_backend_post_process_headers for Solaris
* elf32-i386.c (elf_backend_post_process_headers): Undef for
Solaris 2.
commit 8b2d793ce5ee03336d6c1d1f30b8d296cbe443de
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 30 11:17:55 2015 +0100
GAS ARM: Warn if the user creates a symbol with the same name as an instruction.
PR gas/18347
gas * config/tc-arm.c (md_undefined_symbol): Issue a warning message
(if enabled) when the user creates a symbol with the same name as
an ARM instruction.
(flag_warn_syms): New static variable.
(arm_opts): Add mwarn-syms and mno-warn-syms.
* doc/c-arm.texi (ARM Options): Document the -m[no-]warn-syms
options.
tests * gas/arm/pr18347.s: New file: Test case.
* gas/arm/pr18347.l: New file: Expected assembler output.
* gas/arm/pr18347.d: New file: Test driver.
commit 7ce98c164ed42df085c1b3e08c5261e02320149b
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 30 10:13:53 2015 +0100
Adds documentation of GAS's .zero directive.
PR gas/18353
* doc/as.texinfo (Zero): Add documentation of the .zero pseudo-op.
commit 5fccc63539a111f4087522316819cc8a4b28c6b0
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Apr 30 10:08:10 2015 +0100
Skip setting HW watchpoint if skip_hw_watchpoint_multi_tests in gdb.base/break-idempotent.exp
Hi,
I see this fails below on arm linux native testing and remote testing
with "set remote hardware-watchpoint-limit 1",
rwatch global^M
There are not enough available hardware resources for this watchpoint.^M
(gdb) FAIL: gdb.base/break-idempotent.exp: always-inserted off: rwatch: twice: rwatch global
gdb.base/break-idempotent.exp sets two breakpoints/watchpoints on the
same address. GDB isn't smart enough calculate these two HW
watchpoints can fit in one HW debug register, so the error message
above isn't necessary (there is one HW watchpoint register on arm).
Because target_ops interface can_use_hardware_watchpoint doesn't
pass enough information to the target backend.
Note that if I don't "set remote hardware-watchpoint-limit 1" in
remote testing, this test passes without fails. However without
"set remote hardware-watchpoint-limit 1", many other watchpoint
tests fail.
This patch is to add a check to skip_hw_watchpoint_multi_tests
for rwatch and awatch. We can add such check for watch as well,
but GDB is able to switch to software watchpoint if HW resource
isn't available, it doesn't cause any fail, I decide not to skip.
gdb/testsuite:
2015-04-30 Yao Qi <yao.qi@linaro.org>
* gdb.base/break-idempotent.exp: If
skip_hw_watchpoint_multi_tests returns true, skip the tests
on "rwatch" and "awatch".
commit 42d38f42dc1cdee90052db9aab54da8149ea2ee3
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Apr 30 09:55:06 2015 +0100
Skip gdb.base/relativedebug.exp if libc doesn't have debug info
Hi,
I see the fail in gdb.base/relativedebug.exp on aarch64 box on which
glibc doesn't have debug info,
bt^M
#0 0x0000002000061a88 in raise () from /lib/aarch64-linux-gnu/libc.so.6^M
#1 0x0000002000064efc in abort () from /lib/aarch64-linux-gnu/libc.so.6^M
#2 0x0000000000400640 in handler (signo=14) at ../../../binutils-gdb/gdb/testsuite/gdb.base/relativedebug.c:25^M
#3 <signal handler called>^M
#4 0x00000020000cc478 in ?? () from /lib/aarch64-linux-gnu/libc.so.6^M
#5 0x0000000000400664 in main () at ../../../binutils-gdb/gdb/testsuite/gdb.base/relativedebug.c:32^M
(gdb) FAIL: gdb.base/relativedebug.exp: pause found in backtrace
if glibc has debug info, this test doesn't fail.
In sysdeps/unix/sysv/linux/generic/pause.c, __libc_pause calls
__syscall_pause,
static int
__syscall_pause (void)
{
sigset_t set;
int rc =
INLINE_SYSCALL (rt_sigprocmask, 4, SIG_BLOCK, NULL, &set, _NSIG / 8);
if (rc == 0)
rc = INLINE_SYSCALL (rt_sigsuspend, 2, &set, _NSIG / 8);
return rc;
}
int
__libc_pause (void)
{
if (SINGLE_THREAD_P)
return __syscall_pause (); <--- tail call
int oldtype = LIBC_CANCEL_ASYNC ();
int result = __syscall_pause ();
LIBC_CANCEL_RESET (oldtype);
return result;
}
and GDB unwinder is confused by the GCC optimized code,
(gdb) disassemble pause
Dump of assembler code for function pause:
0x0000007fb7f274c4 <+0>: stp x29, x30, [sp,#-32]!
0x0000007fb7f274c8 <+4>: mov x29, sp
0x0000007fb7f274cc <+8>: adrp x0, 0x7fb7fd2000
0x0000007fb7f274d0 <+12>: ldr w0, [x0,#364]
0x0000007fb7f274d4 <+16>: stp x19, x20, [sp,#16]
0x0000007fb7f274d8 <+20>: cbnz w0, 0x7fb7f274e8 <pause+36>
0x0000007fb7f274dc <+24>: ldp x19, x20, [sp,#16]
0x0000007fb7f274e0 <+28>: ldp x29, x30, [sp],#32
0x0000007fb7f274e4 <+32>: b 0x7fb7f27434 <---- __syscall_pause
0x0000007fb7f274e8 <+36>: bl 0x7fb7f5e080
Note that the program stops in __syscall_pause, but its symbol is
stripped in glibc, so GDB doesn't know where the program stops.
__syscall_pause is a tail call in __libc_pause, so it returns to main
instead of __libc_pause. As a result, the backtrace is like,
#0 0x0000007fb7ebca88 in raise () from /lib/aarch64-linux-gnu/libc.so.6
#1 0x0000007fb7ebfefc in abort () from /lib/aarch64-linux-gnu/libc.so.6
#2 0x0000000000400640 in handler (signo=14) at ../../../binutils-gdb/gdb/testsuite/gdb.base/relativedebug.c:25
#3 <signal handler called>
#4 0x0000007fb7f27478 in ?? () from /lib/aarch64-linux-gnu/libc.so.6 <-- [in __syscall_pause]
#5 0x0000000000400664 in main () at ../../../binutils-gdb/gdb/testsuite/gdb.base/relativedebug.c:32
looks GDB does nothing wrong here. I looked back at the test case
gdb.base/relativedebug.exp, which was added
https://sourceware.org/ml/gdb-patches/2006-10/msg00305.html
This test was indented to test the problem that "backtraces no longer
display some libc functions" after separate debug info is installed.
IOW, it makes few sense to test against libc which doesn't have debug
info at all, such as my case.
This patch is to tweak the test case to catch the output of
"info shared", if "(*)" is found for libc.so, which means libc doesn't
have debug info, then skip the test.
gdb/testsuite:
2015-04-30 Yao Qi <yao.qi@linaro.org>
* gdb.base/relativedebug.exp: Invoke gdb command
"info sharedlibrary", and if libc.so doesn't have debug info,
skip the test.
commit 97bf273d5d185d9e888bf56d776769d5e98e906f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 30 00:00:08 2015 +0000
Automatic date update in version.in
commit 2ce1cdbf84ce883b992bc8ffec3d29b4da229b72
Author: Doug Evans <dje@google.com>
Date: Wed Apr 29 13:24:21 2015 -0700
PR python/18285
gdb/ChangeLog:
PR python/18285
* NEWS: Document new gdb.XMethodWorker.get_result_type method.
* eval.c (evaluate_subexp_standard) <OP_FUNCALL>: Handle
EVAL_AVOID_SIDE_EFFECTS for xmethods.
* extension-priv.h (struct extension_language_ops)
<get_xmethod_result_type>: New member.
* extension.c (get_xmethod_result_type): New function.
* extension.h (get_xmethod_result_type): Declare.
* python/py-xmethods.c (get_result_type_method_name): New static
global.
(py_get_result_type_method_name): Ditto.
(gdbpy_get_xmethod_result_type): New function.
(gdbpy_initialize_xmethods): Initialize py_get_result_type_method_name.
* python/python-internal.h (gdbpy_get_xmethod_result_type): Declare.
* python/python.c (python_extension_ops): Add
gdbpy_get_xmethod_result_type.
* python/lib/gdb/xmethod.py (XMethodWorker): Add get_result_type.
* valarith.c (value_x_binop): Handle EVAL_AVOID_SIDE_EFFECTS for
xmethods.
(value_x_unop): Ditto.
* value.c (result_type_of_xmethod): New function.
* value.h (result_type_of_xmethod): Declare.
gdb/testsuite/ChangeLog:
* gdb.python/py-xmethods.exp: Add ptype tests.
* gdb.python/py-xmethods.py (E_method_char_worker): Add
get_result_type method.
gdb/doc/ChangeLog:
* python.texi (Xmethod API) <gdb.XMethodWorker.get_result_type>:
Document.
(Writing an Xmethod): Add get_result_type to example.
commit 99b2a2dd3cd91ee45aba56a90b52be943001e8f4
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 29 17:09:05 2015 +0100
Fix an internal error in GAS when assembling a bogus piece of source code.
gas PR 18256
* config/tc-arm.c (encode_arm_cp_address): Issue an error message
if the operand is neither a register nor a vector.
tests * gas/arm/pr18256.s: New file: Test case.
* gas/arm/pr18256.l: New file: Expected assembler output.
* gas/arm/pr18256.d: New file: Test driver.
commit 43c1d34c319626747c6765253294eb458a7bd93d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 29 08:43:22 2015 -0700
Link the last *normal against libfoozlib.so
Link the last zlibnormal gnunormal and gabinormal against libfoozlib.so
so that their only differences are DWARF debug sections.
PR ld/18354
* ld-elf/compress.exp (run_tests): Link the last zlibnormal,
gnunormal and gabinormal against libfoozlib.so.
commit 716f14132a51daae1224d93f9b1be4f018112b74
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 29 08:04:53 2015 -0700
Fix 18354
commit f9d3ecaa788c7969002f08459471a54a61b3c07f
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 29 16:24:52 2015 +0100
Updated translations for various binutils components.
gold * po/fi.po: Updated Finnish translation.
opcodes * po/fr.po: Updated French translation.
gprof * po/da.po: Update Danish translation.
commit f24a38c5143e6515c91888223af045d2acaeebf0
Author: Luis Machado <lgustavo@codesourcery.com>
Date: Wed Apr 29 12:22:24 2015 -0300
Use software watchpoints if hardware watchpoints are not available when testing gdb.base/watch-bitfields.exp
There are targets GDB thinks support hardware watchpoints, but in reality they
don't. Though it may seem that hardware watchpoint creation was successful,
the actual insertion of such watchpoint will fail when GDB moves the inferior.
(gdb) watch -location q.a^M
Hardware watchpoint 2: -location q.a^M
(gdb) PASS: gdb.base/watch-bitfields.exp: -location watch against bitfields: watch -location q.a
watch -location q.e^M
Hardware watchpoint 3: -location q.e^M
(gdb) PASS: gdb.base/watch-bitfields.exp: -location watch against bitfields: watch -location q.e
print q.a^M
$1 = 0^M
(gdb) PASS: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: print expression before
continue^M
Continuing.^M
Warning:^M
Could not insert hardware watchpoint 2.^M
Could not insert hardware watchpoint 3.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: continue
This leads to a number of FAILs:
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: continue
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 0->1: print expression after
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: continue
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 0->5: print expression after
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: print expression before
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.a: 1->0: continue
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression before
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: continue
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: q.e: 5->4: print expression after
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: continue until exit
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 0->4: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 0->4: print expression after
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: print expression before
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 4->10: print expression after
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: print expression before
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 10->3: print expression after
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: print expression before
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 3->2: print expression after
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: print expression before
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 2->1: print expression after
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 1->0: print expression before
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: q.d + q.f + q.g: 1->0: continue
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: continue until exit
We can avoid these errors/FAILs by checking the board data and switching to
software watchpoints if the board does not support hardware watchpoints.
gdb/testsuite/ChangeLog:
2015-04-29 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/watch-bitfields.exp: Switch to software watchpoints if
the target does not support hardware watchpoints.
commit ecbf2b3c4f5ee6c00cf058b87fa49708d4030d7f
Author: Luis Machado <lgustavo@codesourcery.com>
Date: Wed Apr 29 12:09:40 2015 -0300
Handle memory write errors on gdb.base/break-always.exp
This is another case of the testcase not handling memory write errors that
happen on some targets (QEMU) when GDB attempts to modify an address that
should contain a breakpoint, for example.
The following patch handles this and prevents spurious failures from
happening. It also adds a foreach loop to avoid duplication of code
and hardcoded patterns.
gdb/testsuite/ChangeLog:
2015-04-29 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/break-always.exp: Abort testing if writing to memory
causes an error.
commit 0a13382c8e708fd9eb15dbc81cedc35e6670090c
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 29 16:02:02 2015 +0100
Fix problems in the sim sources discovered by running the cppcheck static analysis tool.
erc32 PR 18273
* sis.c (main): Remove unreachable code.
m68hc11 * gencode.c (gen_fetch_operands): Remove unreachable code.
ppc * hw_htab.c (htab_map_binary): Fix overlap check.
common * sim-fpu.c (INLINE_SIM_FPU): Fix static analysis warning by
increasing parenthesis around casts to signed values.
commit 998d2a3ef31378d3d980972dc68f4926b720a7e9
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Apr 29 15:20:22 2015 +0100
Allow passing fd == NULL to exec_file_find and solib_find
This commit allows NULL to be passed as the int *fd argument
to exec_file_find and solib_find to simplify use cases where
the caller does not require the file to be opened.
gdb/ChangeLog:
* solib.c (solib_find_1): Allow fd argument to be NULL.
(exec_file_find): Update comment.
(solib_find): Likewise.
* exec.c (exec_file_locate_attach): Use NULL as fd
argument to exec_file_find to avoid having to close
the opened file.
* infrun.c (follow_exec): Likewise.
commit a93d5cb1976818c8d34133fd8798b3df76269f80
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 29 12:26:46 2015 +0100
Add support for absolute PE/x86 relocations.
PR 17099
* coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG
relocs.
commit 5d239759c00a60a00986427b46c4f32e7fe3d616
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 29 11:10:45 2015 +0100
Updates the description of GAS's .set directive, to note that for some targets a symbolic value can only be set once.
* doc/as.texinfo (Set): Note that a symbol cannot be set multiple
times if the expression is not constant and the target uses linker
relaxation.
commit 9081b64dc1b85a63466962adbc92d1c3e560a659
Author: Jiong Wang <jiong.wang@arm.com>
Date: Wed Apr 29 11:04:17 2015 +0100
[ARM] Update ld testcases
2015-04-29 Renlin Li <renlin.li@arm.com>
ld/testsuite/
* ld-arm/ifunc-10.dd: Adjust expected output.
* ld-arm/ifunc-2.dd: Likewise.
commit 34f5f757b389e8fb3eab64f816e484c2cc434292
Author: Doug Evans <dje@google.com>
Date: Tue Apr 28 22:14:23 2015 -0700
PR python/18299
gdb/ChangeLog:
PR python/18299
* python/lib/gdb/printing.py (register_pretty_printer): Handle
name or __name__ attributes. Handle gdb module as first argument.
gdb/testsuite/ChangeLog:
* gdb.python/py-pp-maint.py: Move "replace" testing to ...
* gdb.python/py-pp-registration.exp: ... here. New file.
* gdb.python/py-pp-registration.c: New file.
* gdb.python/py-pp-registration.py: New file.
commit 69b4374a87e5029ac4831c7a4471815514df662f
Author: Doug Evans <dje@google.com>
Date: Tue Apr 28 21:53:54 2015 -0700
PR python/18089
gdb/ChangeLog:
PR python/18089
* python/py-prettyprint.c (print_children): Verify result of children
iterator. Provide better error message.
* python/python-internal..h (gdbpy_print_python_errors_p): Declare.
* python/python.c (gdbpy_print_python_errors_p): New function.
gdb/testsuite/ChangeLog:
* gdb.python/py-bad-printers.c: New file.
* gdb.python/py-bad-printers.py: New file.
* gdb.python/py-bad-printers.exp: New file.
commit 5e7cf0784c9b543b1870b974a78244c40105c523
Author: Doug Evans <dje@google.com>
Date: Tue Apr 28 21:23:24 2015 -0700
* gdbtypes.h (struct cplus_struct_type) <n_baseclasses>: Fix comment.
gdb/ChangeLog:
* gdbtypes.h (struct cplus_struct_type) <n_baseclasses>: Fix comment.
commit 59fb7612ddee9219817a0c33b7d533b3d1c2aa41
Author: Sasha Smundak <asmundak@google.com>
Date: Tue Apr 28 17:41:09 2015 -0700
Add gdb.Type.optimized_out method.
gdb/ChangeLog:
* NEWS: Mention gdb.Type.optimized_out method.
* python/py-type.c (typy_optimized_out): New function.
gdb/doc/ChangeLog:
* python.texi: New method documented.
gdb/testsuite/ChangeLog:
* gdb.python/py-type.exp: New test.
commit 521f2feb982e5e0b7065f5096590c3a92c7c9ec0
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 29 00:00:08 2015 +0000
Automatic date update in version.in
commit a13eab064f93565e9af407a8a9e84f8558acd27e
Author: Andreas Schwab <schwab@linux-m68k.org>
Date: Tue Apr 28 20:32:06 2015 +0200
Eat newlines inside INPUT statements in linker scripts
ld/
PR ld/18344
* ldlex.l (INPUTLIST): Increment lineno on newline.
commit cea6e4f13a8df0eddbcdf643a4fc4727cbf770a7
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 28 11:30:23 2015 -0400
Use "gdb_wait.h" instead of <sys/wait.h>.
gdb/ChangeLog:
* fbsd-nat.c: Include "gdb_wait.h" instead of <sys/wait.h>.
commit f9c1b181a7e4985fbd7eb80365abe5a9ed7197a2
Author: Renlin Li <renlin.li@arm.com>
Date: Tue Apr 28 17:10:26 2015 +0100
[ARM]Positively emit symbols for alignment
2015-04-28 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-arm.c (arm_init_frag): Always emit mapping symbols.
gas/testsuite/
* gas/arm/thumb2_vpool_be.d: Adjust the desired output.
* gas/arm/vldconst_be.d: Ditto.
commit 24b73f8e74857245c0a7ea07c2a360237abcdfc0
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Thu Apr 23 19:28:32 2015 -0400
Disable readline's SIGWINCH handler
We no longer need it as we handle SIGWINCH ourselves. Also move the
call to init_page_info() from initialize_utils() to the latter
function's only caller, gdb_init().
gdb/ChangeLog:
* utils.c (init_page_info): Set rl_catch_sigwinch to zero.
(initialize_utils): Move call of init_page_info() to ...
* top.c (gdb_init): ... here.
commit a88d0bb33c28bc51c0f53cdd5c42d00217a1d771
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Thu Apr 23 18:36:58 2015 -0400
Update our idea of our terminal's dimensions even outside of TUI
When in the CLI, GDB's "width" and "height" variables are not kept in sync
when the underlying terminal gets resized.
This patch fixes this issue by making sure sure to update GDB's "width"
and "height" variables in the !tui_active case of our SIGWINCH handler.
gdb/ChangeLog:
* tui/tui-win.c (tui_sigwinch_handler): Remove now-stale comment.
(tui_sigwinch_handler): Still update our idea of
the terminal's width and height even when TUI is not active.
commit d6e5e7f7fd90baad9cbfaa5a187b5f0b1a0b8cf6
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Thu Apr 23 18:31:38 2015 -0400
Introduce function for directly updating GDB's screen dimensions
... to replace the roundabout pattern of
execute_command ("set width %d");
execute_command ("set height %d");
for doing the same thing.
gdb/ChangeLog:
* utils.h (set_screen_width_and_height): Declare.
* utils.c (set_screen_width_and_height): Define.
* tui/tui-win.c (tui_update_gdb_sizes): Use it.
commit ff862be47e7acf51e4abaf0f121d5961adb1845a
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Apr 28 12:21:32 2015 +0100
Use exec_file_find to prepend gdb_sysroot in follow_exec
This commit updates follow_exec to use exec_file_find to prefix
the new executable's filename with gdb_sysroot rather than doing
it longhand.
gdb/ChangeLog:
* infrun.c (solist.h): New include.
(follow_exec): Use exec_file_find to prefix execd_pathname
with gdb_sysroot.
commit da7119c99c41f60cb178b0b9729d9f7880f33c86
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Apr 28 11:22:57 2015 +0100
Fix compile time warnings about a local variable being used before it is set.
PR 18313
* cond.c (s_if): Stop compile time warning about stopc being used
before it is set.
(s_ifc): Likewise.
commit 2631b16a570626a276f1ce6528ff1cd2cc90ce76
Author: Andy Wingo <wingo@igalia.com>
Date: Tue Apr 28 11:15:47 2015 +0200
Fix py-parameter.exp and scm-parameter.exp path matching
gdb/testsuite/ChangeLog:
* gdb.python/py-parameter.exp:
* gdb.guile/scm-parameter.exp: Escape the path that we are
matching against, as it might contain characters that are special
to regular expressions.
commit faa2211d4d3dad3f381164cdb29d27b9108760ea
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 28 16:45:34 2015 +0930
Tidy PowerPC gold find_global_entry uses
Completely removing the assert probably wasn't the best idea, so
reinstate it for allocated sections. Also cope with debug info
potentially referring to a missing plt call stub.
And a tidy. find_global_entry now returns an Address, so make temps
holding the return value of type Address, and compare against
invalid_address.
* powerpc.cc (Target_powerpc::do_dynsym_value): Use Address rather
than unsigned int for find_global_entry result temp. Compare
against invalid_address.
(Target_powerpc::do_plt_address_for_global): Likewise.
(Target_powerpc::Relocate::relocate): Likewise. Don't assert
on plt call stub existence for debug info. Do assert for plt
and global entry stub existence if an alloc section.
commit 6ec65f28db6b718b505e2ee5c34a274ba07397ae
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 28 13:28:29 2015 +0930
PowerPC gold assertion on missing global entry stub
Global entry stubs are used on ELFv2 to provide addresses for
functions not defined in a non-PIC executable but whose address is
taken, in much the same way as PLT stub code is used on other
targets to provide function addresses. We don't want to insert a
global entry stub just because (bogus) debug info refers to the
address of a non-local function, but we also don't want gold to die.
* powerpc.cc (Target_powerpc::Relocate::relocate): Don't assert
on missing global entry stub due to bogus debug info.
commit 2eb639cbe4baa33545ca008d6054ea5db1d8f6a8
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Sat Apr 25 10:29:29 2015 -0400
TUI: avoid calling strcpy() on identical string objects
In tui_set_source_content(), when offset == 0 the source and destination
pointers of the call to strcpy() are actually the same. In this case
not only is strcpy() unnecessary but it is also UB when the two strings
overlap.
gdb/ChangeLog:
* tui/tui-source.c (tui_set_source_content): Avoid calling
strcpy() when offset is 0.
commit 9720679936fc4f710d718f13d903c7826e048a36
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Sat Apr 25 21:59:02 2015 -0400
Fix PR gdb/18155
For no good reason the function tui_free_window() is freeing the locator
window when we pass it an SRC_WIN or a DISASSEM_WIN. This behavior
doesn't make much sense because the locator window is always visible and
its contents do not change when the main window changes.
This behavior triggers the above PR because when we switch from one TUI
window to another (in the PR, from the src window to the asm window) we
call tui_free_window() on the previously active window (in the PR, the
src window). The function then frees the src window along with the
locator window and later we segfault when the now-active asm window
tries to query the locator window about the inferior's PC.
This patch fixes this apparently wrong behavior by changing
tui_free_window() to not free the locator window when we pass it an
SRC_WIN or a DISASSEM_WIN.
gdb/ChangeLog:
PR gdb/18155
* tui/tui-data.c (tui_free_window): Don't free the locator
window when passed an SRC_WIN or a DISASSEM_WIN.
commit 63ed81829ea8819bc96b288f95230876b0060b14
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Fri Apr 24 08:26:50 2015 -0400
Make type-safe the 'content' field of struct tui_gen_win_info
The 'content' field of struct tui_gen_win_info currently has type
void ** but the field always stores an object of type tui_win_content.
Instead of unnecessarily casting to and from void ** we should just give
the field the type tui_win_content in the first place.
This patch does this and also eliminates all now-redundant casts
involving the 'content' struct field that I could find.
gdb/ChangeLog:
* tui/tui-data.h (struct tui_win_element): Forward-declare.
(tui_win_content): Move declaration.
(struct tui_gen_win_info): Give 'content' field the
type tui_win_content.
* tui/tui-data.c (init_content_element): Remove redundant and
erroneous casts.
(tui_add_content_elements): Remove erroneous cast.
* tui/tui-disasm.c (tui_set_disassem_content): Remove redundant
casts.
(tui_get_begin_asm_address): Likewise.
* tui/tui-regs.c (tui_show_registers): Likewise.
(tui_show_register_group): Likewise.
(tui_display_registers_from): Likewise.
(tui_check_register_values): Likewise.
* tui/tui-source.c (tui_set_source_content): Likewise.
(tui_set_source_content_nil): Likewise.
(tui_source_is_displayed): Likewise.
* tui/tui-stack.c (tui_show_locator_content): Likewise.
(tui_set_locator_fullname): Likewise.
(tui_set_locator_info): Likewise.
(tui_show_frame_info): Likewise.
* tui/tui-winsource.c (tui_clear_source_content): Likewise.
(tui_show_source_line): Likewise.
(tui_horizontal_source_scroll): Likewise.
(tui_update_breakpoint_info): Likewise.
(tui_set_exec_info_content): Likewise.
(tui_show_exec_info_content): Likewise.
(tui_alloc_source_buffer): Likewise.
(tui_line_is_displayed): Likewise.
(tui_addr_is_displayed): Likewise.
commit d84f2dd3257a3062637059e4f8a85ee22d94865b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 28 00:00:08 2015 +0000
Automatic date update in version.in
commit d2b41ca0f9c5641a6b8f42c8013ba042cf5ba120
Author: John Baldwin <jhb@FreeBSD.org>
Date: Sat Apr 18 01:00:06 2015 -0400
Add support for catching exec events on FreeBSD.
FreeBSD kernels that support fork tracing always stop a process to
report events for exec. Such a process will have the PL_FLAG_EXEC
flag set in the pl_flags field of the ptrace_lwpinfo struct returned
by PT_LWPINFO. The structure does not include the pathname passed to
exec, so use fbsd_pid_to_exec_file to query the pathname of the
process' executable.
gdb/ChangeLog:
* fbsd-nat.c: (fbsd_wait) [PL_FLAG_EXEC]: Report TARGET_WAITKIND_EXECD
event if PL_FLAG_EXEC is set.
[PL_FLAG_EXEC] (fbsd_insert_exec_catchpoint): New function.
[PL_FLAG_EXEC] (fbsd_remove_exec_catchpoint): New function.
(fbsd_nat_add_target) [PL_FLAG_EXEC]: Set
"to_insert_exec_catchpoint" to "fbsd_insert_exec_catchpoint".
Set "to_remove_exec_catchpoint" to "fbsd_remove_exec_catchpoint".
commit e58e05d677d33da3646721bdd225ec6e90424000
Author: John Baldwin <jhb@FreeBSD.org>
Date: Fri Apr 17 16:20:47 2015 -0400
Enable fork tracing for native FreeBSD targets.
Enable PT_FOLLOW_FORK on all processes. When this is enabled, both
the parent and child process stop when a fork or vfork occurs.
A target operation for wait uses PT_LWPINFO to fetch more detailed
information about the state of a stopped process. A parent process
sets the PL_FLAG_FORKED flag in the pl_flags field of the structure
returned by PT_LWPINFO as well as the pid of the new child process.
The child process sets the PL_FLAG_CHILD flag in the pl_flags field.
When a fork is detected, the wait hook waits for both processes to
report their respective events. It then reports the fork to GDB as
a single TARGET_WAITKIND_FORKED or TARGET_WAITKIND_VFORKED event.
The kernel does not guarantee the order the events are reported in.
If the parent process' event is reported first, then the wait hook
explicitly waits for the child process. If the child process' event
is reported first, the event is recorded on an internal list of
pending child events and the wait hook waits for another event.
Later when the parent process' event is reported, the parent will
use the previously-recorded child process event instead of explicitly
waiting on the child process.
To distinguish vfork events from fork events, the external process
structure for the child process is extracted from the kernel. The
P_PPWAIT flag is set in the ki_flags field of this structure if the
process was created via vfork, but it is not set for a regular fork.
gdb/ChangeLog:
* fbsd-nat.c: [PT_LWPINFO] New variable super_wait.
[TDP_RFPPWAIT] New variable fbsd_pending_children.
[TDP_RFPPWAIT] (fbsd_remember_child): New function.
[TDP_RFPPWAIT] (fbsd_is_child_pending): New function.
[TDP_RFPPWAIT] (fbsd_fetch_kinfo_proc): New function.
[PT_LWPINFO] (fbsd_wait): New function.
[TDP_RFPPWAIT] (fbsd_follow_fork): New function.
[TDP_RFPPWAIT] (fbsd_insert_fork_catchpoint): New function.
[TDP_RFPPWAIT] (fbsd_remove_fork_catchpoint): New function.
[TDP_RFPPWAIT] (fbsd_insert_vfork_catchpoint): New function.
[TDP_RFPPWAIT] (fbsd_remove_vfork_catchpoint): New function.
[TDP_RFPPWAIT] (fbsd_enable_follow_fork): New function.
[TDP_RFPPWAIT] (fbsd_post_startup_inferior): New function.
[TDP_RFPPWAIT] (fbsd_post_attach): New function.
(fbsd_nat_add_target) [PT_LWPINFO] Set "to_wait" to
"fbsd_wait".
[TDP_RFPPWAIT] Set "to_follow_fork" to "fbsd_follow_fork".
Set "to_insert_fork_catchpoint" to "fbsd_insert_fork_catchpoint".
Set "to_remove_fork_catchpoint" to "fbsd_remove_fork_catchpoint".
Set "to_insert_vfork_catchpoint" to "fbsd_insert_vfork_catchpoint".
Set "to_remove_vfork_catchpoint" to "fbsd_remove_vfork_catchpoint".
Set "to_post_startup_inferior" to "fbsd_post_startup_inferior".
Set "to_post_attach" to "fbsd_post_attach".
commit 8f60fe014dd0afdc1013fc22a3ef5ba01e94e331
Author: John Baldwin <jhb@FreeBSD.org>
Date: Fri Apr 17 14:02:03 2015 -0400
Add fbsd_nat_add_target.
Add a wrapper for add_target in fbsd-nat.c to override target operations
common to all native FreeBSD targets.
gdb/ChangeLog:
* fbsd-nat.c (fbsd_pid_to_exec_file): Mark static.
(fbsd_find_memory_regions): Mark static.
(fbsd_nat_add_target): New function.
* fbsd-nat.h: Export fbsd_nat_add_target and remove prototypes for
fbsd_pid_to_exec_file and fbsd_find_memory_regions.
* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Use fbsd_nat_add_target.
* i386fbsd-nat.c (_initialize_i386fbsd_nat): Likewise.
* ppcfbsd-nat.c (_initialize_ppcfbsd_nat): Likewise.
* sparc64fbsd-nat.c (_initialize_sparc64fbsd_nat): Likewise.
commit 7a2a1c793578a8468604e661dda025ecb8d0bd20
Author: Han Shen <shenhan@google.com>
Date: Mon Apr 27 15:01:44 2015 -0700
[gold] Rename '--fix-cortex-a53' to '--fix-cortex-a53-843419'.
Keep gold consistent with bfd erratum-fixing option names, so as to
ease life in Makefile/scripts.
gold/
* options.h (--fix-cortex-a53-843419): Rename option.
* aarch64.cc (AArch64_relobj::do_count_local_symbols): Use renamed
option.
(AArch64_relobj::scan_sections_for_stubs): Use renamed option.
commit cfbf0e3c5b637d66b2b1aeadecae9c187b825b2f
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Mon Apr 27 14:33:02 2015 -0400
If a range is missing, assume the input address is mapped.
When Output_section::is_input_address_mapped is called we have entries for
all dropped ranges, but not for all ranges.
commit 4fff86c517abb5ba454befe0ec0f284f720dde00
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Mon Apr 27 11:06:54 2015 -0500
opcodes/
* ppc-opc.c (DCBT_EO): New define.
(powerpc_opcodes) <lbarx>: Enable for POWER8 and later.
<lharx>: Likewise.
<stbcx.>: Likewise.
<sthcx.>: Likewise.
<waitrsv>: Do not enable for POWER7 and later.
<waitimpl>: Likewise.
<dcbt>: Default to the two operand form of the instruction for all
"old" cpus. For "new" cpus, use the operand ordering that matches
whether the cpu is server or embedded.
<dcbtst>: Likewise.
gas/testsuite/
* gas/ppc/a2.s: Fixup test case due to dcbt/dcbtst embedded operand
ordering change.
* gas/ppc/a2.d: Likewise.
* gas/ppc/476.d: Likewise.
* gas/ppc/booke.s: Remove invalid 3 operand dcbt tests.
* gas/ppc/booke.d: Likewise.
* gas/ppc/power7.s: Remove lbarx, lharx, stbcx., sthcx., waitrsv
and waitimpl tests.
* gas/ppc/power7.d: Likewise.
commit 5fbae7d108f4b885228cc657449905543c42c85a
Author: Gary Benson <gbenson@redhat.com>
Date: Mon Apr 27 11:46:13 2015 +0100
Do not manipulate "target:" filenames as local paths
This commit alters two places that manipulate object file filenames
to detect "target:" filenames and to not attempt to manipulate them
as paths on the local filesystem:
- allocate_objfile is updated to not attempt to expand "target:"
filenames with gdb_abspath.
- load_auto_scripts_for_objfile is updated to not attempt to load
auto-load scripts for object files with "target:" filenames.
gdb/ChangeLog:
* objfiles.c (allocate_objfile): Do not attempt to expand name
if name is a "target:" filename.
* auto-load.c (load_auto_scripts_for_objfile): Do not attempt
to load auto-load scripts for objfiles with "target:" filenames.
commit 180d40b903774d6c7bd8110ce4f77a2f5fb06e7a
Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Mon Apr 27 14:26:04 2015 +0530
sim: avr: Fix 'multiple definition of sim_{read,write}'
This patch does whatever was done in
https://sourceware.org/ml/gdb-patches/2015-04/msg00437.html to fix
broken gdb build for the AVR target.
commit eb9d6cc91a423f7825a46317e1882e2e9297c76f
Author: Renlin Li <renlin.li@arm.com>
Date: Mon Apr 27 11:36:12 2015 +0100
[AArch64] Don't try to align insn in non-executale section
2015-04-27 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (s_aarch64_inst): Don't align code for non-text
section.
(md_assemble): Likewise, move the align code outside the loop.
commit 417c80f9e456477935cdc74461d35630dfdbfdff
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Apr 27 11:38:47 2015 +0200
S390: Vector ABI support
With the S390 vector ABI, vector registers are used for passing vector
arguments and for returning a vector. Support this ABI in inferior
function calls and when setting or retrieving a function's return
value.
gdb/ChangeLog:
* s390-linux-tdep.c: Include "elf/s390.h" and "elf-bfd.h".
(enum s390_vector_abi_kind): New enum.
(struct gdbarch_tdep)<vector_abi>: New field.
(s390_effective_inner_type): Add parameter min_size. Stop
unwrapping if the inner type is smaller than min_size.
(s390_function_arg_float): Adjust call to
s390_effective_inner_type.
(s390_function_arg_vector): New function.
(s390_function_arg_integer): Adjust comment.
(struct s390_arg_state)<vr>: New field.
(s390_handle_arg): Add parameter 'is_unnamed'. Pass vector
arguments according to vector ABI when appropriate.
(s390_push_dummy_call): Initialize the argument state's field
'vr'. Adjust calls to s390_handle_arg.
(s390_register_return_value): Handle vector return values.
(s390_return_value): Apply the "register" return value convention
to a vector when appropriate.
(s390_gdbarch_init): Initialize tdep->vector_abi.
* NEWS: Announce S390 vector ABI support.
commit 4e65a17e62c7c2f3c0409d9769cca2e916a88379
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Apr 27 11:38:47 2015 +0200
S390: Re-arrange implementation of s390_return_value
Move related logic in the implementation of s390_return_value closer
together. This makes it easier to read and extend.
gdb/ChangeLog:
* s390-linux-tdep.c (s390_return_value_convention): Remove
function. Inline its logic...
(s390_return_value): ...here. Instead, move the handling of the
"register" return value convention...
(s390_register_return_value): ...here. New function.
commit 80f75320167acb66486124c6b03e715596e9c789
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Apr 27 11:38:46 2015 +0200
S390: Restructure s390_push_dummy_call
Simplify the structure of s390_push_dummy_call and its various helper
functions. This reduces the code and makes it easier to extend. The
new code should be functionally equivalent to the old one, except that
copies created by the caller are now always aligned on an 8-byte
boundary.
gdb/ChangeLog:
* s390-linux-tdep.c
(is_float_singleton): Remove function. Move the "singleton" part
of the logic...
(s390_effective_inner_type): ...here. New function.
(is_float_like): Remove function. Inline its logic...
(s390_function_arg_float): ...here.
(is_pointer_like, is_integer_like, is_struct_like): Remove
functions. Inline their logic...
(s390_function_arg_integer): ...here.
(s390_function_arg_pass_by_reference): Remove function.
(extend_simple_arg): Remove function.
(alignment_of): Remove function.
(struct s390_arg_state): New structure.
(s390_handle_arg): New function.
(s390_push_dummy_call): Move parameter placement logic to the new
function s390_handle_arg. Call it for calculating the stack area
sizes first, and again for actually writing the parameters.
commit 6dbc9c045741c27435b9b23246c2113221b26c2f
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Apr 27 11:38:46 2015 +0200
S390: For zero, let is_power_of_two() return false
This fixes a minor issue with the helper function is_power_of_two(),
which returned non-zero ("true") if the argument was zero. This led
to a wrong decision when passing a zero-sized struct in an inferior
function call.
gdb/ChangeLog:
* s390-linux-tdep.c (is_power_of_two): Add comment. Return
false if the argument is zero.
commit 9e19566105546654ab24b2b58c890fd7e2b9e00c
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Mon Apr 27 11:06:07 2015 +0200
[Ada] Cache all static structures and reset cache during resolution
Currently, ada-lang.c:template_to_static_fixed_type (working on
structure types only) caches its result into the unused TYPE_TARGET_TYPE
field. This introduces inconsistencies when the input type is
specialized, for instance during type resolution: the cached static
fixed type is copied along with the original type, but it's no longer
adapted to the copy once the copy is modified:
template_to_static_fixed_type has to compute another static fixed type
for it.
This change first introduces a cache reset during type resolution for
structure types so that this inconsistency does not happen anymore. It
also makes template_to_static_fixed_type smarter with respect to types
that do not need static fixed copies so that less computations is done
in general.
This inconsistency was spotted thanks to code reading, not because of
any sort of failure and we did not manage to exhibit a failure yet, so
no testcase for this.
gdb/ChangeLog:
* ada-lang.c (template_to_static_fixed_type): Return input type
when it is already fixed. Cache the input type itself when not
creating a static fixed copy. Make it explicit that we never
molestate the input type.
* gdbtypes.c (resolve_dynamic_struct): Reset the
TYPE_TARGET_TYPE field for resolved copies.
commit 460efde16c5ce834f03d1a7525e453b508cb43da
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Apr 27 11:04:47 2015 +0200
[Ada] Preserve typedef layer when getting struct element
Consider the following declarations:
type Int_Access is access Integer;
type Record_Type is record
IA : Int_Access;
end record;
R : Record_Type;
Printing the type name of "R.IA" yields:
(gdb) whatis r.ia
type = access integer
It should be:
(gdb) whatis r.ia
type = bar.int_access
Looking at the debugging info, field "r.ia" is defined as
a typedef which has the name of the field type:
.uleb128 0x3 # (DIE (0x4e) DW_TAG_typedef)
.long .LASF4 # DW_AT_name: "bar__int_access"
.long 0x8b # DW_AT_type
... with the typedef's target type being an anonymous pointer
type:
.uleb128 0x7 # (DIE (0x8b) DW_TAG_pointer_type)
.byte 0x8 # DW_AT_byte_size
.long 0x91 # DW_AT_type
What happens here is that a couple of function in ada-lang.c
always start by stripping all typedef layers when handling
struct fields, with the effect of making us lose the type name
in this case.
We did not understand this at the time the code was written,
but typedefs should be stripped only when we know we do not
need them. So this patch, adjust the code to avoid the stripping
while handling the fields, and adds it back in the lone place
which handles the result of processing and didn't know how to
handle typedefs struct fields yet.
gdb/ChangeLog:
* ada-lang.c (ada_is_tagged_type): Add call to ada_check_typedef.
(ada_lookup_struct_elt_type): Remove calls to ada_check_typedef.
(template_to_static_fixed_type): Call ada_check_typedef only
when necessary.
gdb/testsuite/ChangeLog:
* gdb.ada/rec_comp: New testcase.
commit 643f7afb0d7f63dcff873d3cbfd7ed3eaf94197f
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Mon Apr 27 10:32:23 2015 +0200
S/390: z13 use GNU attribute to indicate vector ABI
bfd/
* elf-s390-common.c (elf_s390_merge_obj_attributes): New function.
* elf32-s390.c (elf32_s390_merge_private_bfd_data): Call
elf_s390_merge_obj_attributes.
* elf64-s390.c (elf64_s390_merge_private_bfd_data): New function.
binutils/
* readelf.c (display_s390_gnu_attribute): New function.
(process_s390_specific): New function.
(process_arch_specific): Call process_s390_specific.
gas/
* doc/as.texinfo: Document Tag_GNU_S390_ABI_Vector.
include/elf/
* s390.h: Define Tag_GNU_S390_ABI_Vector.
commit 3b78cfe1033fafa6ca36c69cf8587c1bd96996ca
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Mon Apr 27 10:29:16 2015 +0200
S/390: Fixes for z13 instructions.
opcodes/
* s390-opc.c: New instruction type VV0UU2.
* s390-opc.txt: Fix instruction types for VFCE, VLDE, VFSQ, WFK,
and WFC.
gas/testsuite/
* gas/s390/zarch-z13.d: Fix tests for VFCE, VLDE, VFSQ, WFK, and
WFC.
* gas/s390/zarch-z13.s: Likewise.
commit 963a4320b49a3c55af02b36a492a10ba04a08e8a
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Mon Apr 27 10:24:24 2015 +0200
S/390: Fix gotreloc_31-1 testcase.
Since we changed the default arch for objdump to zarch the following
testcase needs to check for the real instruction mnemonics instead of
just bytes.
This fixes the following testsuite fail on s390x:
FAIL: GOT: symbol address load from got to larl
commit 4b9bfa2be0636852ba3bd1a19a484c15ef6e181a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 27 00:00:07 2015 +0000
Automatic date update in version.in
commit 2d369d8e973f1507689a7f200c16e154ec5d6c79
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Sun Apr 26 15:34:29 2015 -0400
Clear variable "coredump_var_addr" before using it on gdb.base/coredump-filter.exp
This commit is a continuation of the fix committed on:
commit 8cd8f2f8ac49276437b7da37f275706ea1c1c925
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Mon Apr 13 02:40:08 2015 -0400
Rename variable "addr" to "coredump_var_addr" in gdb.base/coredump-filter.exp
Pedro pointed out that this fix was not complete, because the
testsuite could be run several times in a row (for example), which
means that it is not enough to just make the variable name unique: it
also needs to be cleared out if it is global.
This commit does that. It is actually just a commit made to make
things totally correct; this specific test does not fail if you run it
several times in a row.
gdb/testsuite/ChangeLog:
2015-04-26 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/coredump-filter.exp: Clear variable "coredump_var_addr"
before using it.
commit 36cca014bbfab0dec9c1ec2450762381df95261b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 26 00:00:07 2015 +0000
Automatic date update in version.in
commit e0f80dc1935f1ce48c7cb0e7974bb499aabb6da6
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 25 00:00:07 2015 +0000
Automatic date update in version.in
commit 44bd1acd55dcc15322a5c2d33442cd219ca320c7
Author: Alan Modra <amodra@gmail.com>
Date: Fri Apr 24 19:19:37 2015 +0930
Non-alloc sections don't belong in PT_LOAD segments
Taking them out showed a bug in the powerpc64 backend with .branch_lt
being removed from output_bfd but not from previously set up segment
section maps. Removing the bfd sections meant their sh_flags (and
practically everything else) remaining zero, ie. not SHF_ALLOC,
triggering complaints about "`.branch_lt' can't be allocated in
segment".
include/elf/
* internal.h (ELF_SECTION_IN_SEGMENT_1): Ensure PT_LOAD and
similar segments only contain alloc sections.
ld/
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation):
Call gld${EMULATION_NAME}_map_segments regardless of need_laying_out.
ld/testsuite/
* ld-powerpc/tocnovar.d: Revert last change.
commit b53b1bedbd90044714fc456843cadccce0f208f3
Author: Jiong Wang <jiong.wang@arm.com>
Date: Fri Apr 24 23:25:28 2015 +0100
[AArch64] PR18270, fix handling of GOT entry for local symbol
2015-04-24 Jiong. Wang <jiong.wang@arm.com>
bfd/
PR ld/18270
* elfnn-aarch64.c (elfNN_aarch64_size_dynamic): Count local symbol for
GOT_NORMAL for both sgot/srelgot section.
(elfNN_aarch64_final_link_relocate): Relocate against GOT entry address
and generate necessary runtime relocation for GOT entry.
commit 69b52ab8c566575e4749acf0a04090491009af95
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 24 15:02:56 2015 -0700
Copy is_linker_input to archive member
We must copy is_linker_input to archive member.
PR binutils/18209
* archive.c (_bfd_get_elt_at_filepos): Also copy is_linker_input.
commit 6faec16b1c633a8043791e0d15d7e7f1c8d448c1
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Thu Apr 23 22:18:55 2015 +0100
gdb: Add internationalization support to a few strings.
Spotted a few strings that were missing internationalization support.
gdb/ChangeLog:
* cli/cli-dump.c (srec_dump_command): Add internationalization
mark ups.
(ihex_dump_command): Likewise.
(tekhex_dump_command): Likewise.
(binary_dump_command): Likewise.
(binary_append_command): Likewise.
commit cf75d6c37e15e321e82e7f4ceebcf847b4f057fc
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Wed Apr 22 22:52:36 2015 +0100
gdb: Add support for dumping to verilog hex format.
Extend the gdb 'dump' command to allow creating output in verilog hex
format. Add some tests to cover new functionality. As bfd does not
currently support reading in verilog hex formats the tests only cover
the 'dump' command, not the 'restore' command.
gdb/ChangeLog:
* cli/cli-dump.c (verilog_cmdlist): New variable.
(dump_verilog_memory): New function.
(dump_verilog_value): New function.
(verilog_dump_command): New function.
(_initialize_cli_dump): Add new commands to support verilog dump
format.
* NEWS: Add entry for "dump verilog".
gdb/doc/ChangeLog:
* gdb.texinfo (Dump/Restore Files): Add detail about verilog dump
format.
gdb/testsuite/ChangeLog:
* gdb.base/dump.exp: Add *.verilog files to all_files list. Add
new tests for verilog output.
commit dcbd20eb1499db937785881aca2f9584a330723c
Author: Jiong Wang <jiong.wang@arm.com>
Date: Fri Apr 24 22:35:04 2015 +0100
[AArch64] Improve PC-relative relocation check for shared library
2015-04-24 Jiong. Wang <jiong.wang@arm.com>
bfd/
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Reject
PC-relative relocation for external symbol.
ld/testsuite/
* ld-aarch64/pcrel.s: New testcase.
* ld-aarch64/pcrel_pic_defiend_local.d: New expect file.
* ld-aarch64/pcrel_pic_undefined.d: Ditto.
* ld-aarch64/aarch64-elf.exp: Run them.
commit d9e88e902134b6febeef7156ecb6341a593b8c54
Author: DJ Delorie <dj@redhat.com>
Date: Fri Apr 24 17:17:02 2015 -0400
Fix typo
commit 08e2f2bbb4a4db51ad8476af6963998c9f6350e7
Author: DJ Delorie <dj@redhat.com>
Date: Fri Apr 24 17:05:13 2015 -0400
Change msp430 emulation to msp430elf
* Makefile.am (msp430): Rename primary emulation to msp430elf.
(emsp430.c): Rename to emsp430elf.c, update dependencies
(emsp430X.c): Update dependencies.
* Makefile.in: Likewise.
* configure.tgt (msp430-*-*): Rename primary emulation to msp430elf.
* emulparame/msp430.sh: Rename to msp430elf.sh.
* emulparams/msp430X.sh: Update.
commit faade85139b04a1de96fb78aab6ad5c25b826d01
Author: Jim Wilson <jim.wilson@linaro.org>
Date: Fri Apr 24 13:38:25 2015 -0700
gas thunderx support
gas/
* config/tc-aarch64.c (aarch64_cpus): Add CRC and CRYPTO features
for thunderx.
commit 897c3d327e2d60d996252c0a5cb13da3f40e9b9f
Author: Doug Evans <dje@google.com>
Date: Fri Apr 24 11:16:12 2015 -0700
* python.texi (Xmethods In Python): Fix name of method to call the xmethod.
gdb/doc/ChangeLog:
* python.texi (Xmethods In Python): Fix name of method to call the
xmethod.
commit de13ef81f041f7f51687ef1873c74e853b97e73a
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 17:13:22 2015 +0100
Fix compile time warning messages about variables being used before they are initialised.
PR 18313
bin * ieee.c (ieee_read_cxx_class): Initialise the varargs variable.
* readelf.c (uncompress_section_contents): Zero initialise the
zstream structure.
bfd * compress.c (decompress_contents): Zero initialse the z_stream
structure.
commit 7a5c933c7c2c3926b13a047c64f2af1d3ce8e1db
Author: Richard Earnshaw <Richard.Earnshaw@arm.com>
Date: Fri Apr 24 15:51:49 2015 +0100
[ARM]: Don't tail-pad over-aligned functions to the alignment boundary.
2015-04/24 Richard Earnshaw <rearnsha@arm.com>
gas/
* config/tc-arm.h (arm_min): New function.
(SUB_SEGMENT_ALIGN): Define.
gas/testsuite/
* gas/arm/align64.d: Delete trailing padding NOPs.
ld/testsuite/
* ld-arm/armthumb-lib.d: Regenerate expected output.
* ld-arm/armthumb-lib.d: Likewise.
* ld-arm/armthumb-lib.sym: Likewise.
* ld-arm/cortex-a8-fix-b-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-b-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-b.d: Likewise.
* ld-arm/cortex-a8-fix-bcc-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-bcc.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-plt.d: Likewise.
* ld-arm/cortex-a8-fix-bl-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-bl.d: Likewise.
* ld-arm/cortex-a8-fix-blx-bcond.d: Likewise.
* ld-arm/cortex-a8-fix-blx-rel-arm.d: Likewise.
* ld-arm/cortex-a8-fix-blx-rel-thumb.d: Likewise.
* ld-arm/cortex-a8-fix-blx.d: Likewise.
* ld-arm/cortex-a8-fix-hdr.d: Likewise.
* ld-arm/farcall-mixed-app-v5.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-lib-v4t.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/mixed-app-v5.d: Likewise.
* ld-arm/mixed-app.d: Likewise.
* ld-arm/mixed-lib.d: Likewise.
commit de7669bfa507d78f7abfe3d219b5aee9f346235e
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 15:43:21 2015 +0100
Fix typos in sim sources exposed by static analysis.
bfin PR 18273
* bfin-sim.c (decode_dsp32alu_0): Remove spurious check for
s == 1.
erc32 PR 18273
* exec.c (add32): Fix typo in check for overflow.
igen PR 18273
* misc.c (a2i): Fix typos checking for uppercase letters.
commit 63c72d1ae497cdf43db5347464a97164e720b83f
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 15:31:36 2015 +0100
Fix typo in check for valid register number in RX sim.
PR sim/18273
* reg.c (put_reg): Fix check for valid register number.
commit b1fa9dd630eeb0a8282207cbbe399a25b2491412
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 15:17:13 2015 +0100
Extend test for local labels to include fake symbols and local labels with a numeric suffix.
* elf.c (_bfd_elf_is_local_label_name): Extend test for assembler
local labels to include local labels with a numeric suffix and
fake symbols.
commit 8cd00c5973529c6f7ed42bc361ca05eb3672ab99
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Fri Apr 24 16:13:19 2015 +0200
Fix printing for GNAT stuff for types that do not have descr. types
gdb/ChangeLog:
2015-04-24 Pierre-Marie de Rodat <derodat@adacore.com>
* gdbtypes.c (print_gnat_stuff): Do not recurse on the
descriptive type when there is none.
commit 9361e6307bd1cf4f8f7c9de5375719ede8caa0cb
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 24 05:40:23 2015 -0700
Define SEC_MEP_VLIW in bfd/section.c
Bits in section flags should only be defined in bfd/section.c. This
patch moves SEC_MEP_VLIW to bfd/section.c.
bfd/
PR binutils/18316
* section.c (SEC_MEP_VLIW): New.
* bfd-in2.h: Regenerated.
include/elf/
PR binutils/18316
* mep.h (SEC_MEP_VLIW): Removed.
commit 8dbe7ca5a5755274fca1d3021ad648a1575e66cb
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 24 11:00:14 2015 +0100
A new board file remote-gdbserver-on-localhost.exp
This patch is to add a new board file that does real remote gdbserver
testing on localhost. This board file can be used to reproduce PR 18208.
gdb/testsuite
2015-04-24 Yao Qi <yao.qi@linaro.org>
* boards/remote-gdbserver-on-localhost.exp: New file.
commit 30d72bc3359e12d10b53310963d62dae0978cbe5
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 10:15:41 2015 +0100
Skip the compressed1d test for targets which do not use the elf32.em linker emulation file.
* ld-elf/compressed1d.d: Add notarget for ELF based targets that
do not use elf.em.
commit 04651c084ee01f1889553d81f62bfe3d26e1df0c
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Fri Apr 24 06:10:19 2015 +0200
Correct ld-elf/compressed1e.d to use notarget and for cris-elf, not cris-*.
Don't XPASS cris-linux which *does* support -shared.
And xfail is for bugs, notarget is for not-applicable.
commit 005db9f99bda55139778b28813606715f879f7de
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 23 18:58:46 2015 -0700
Xfail cris and frv for ld-elf/compressed1e.d
cris and frv don't support -shared.
* ld-elf/compressed1e.d: Only run for Linux/gnu. Xfail cris and
frv.
commit ef1f8ff8cdb43a042f8af1e92753371dc958a452
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 24 00:00:07 2015 +0000
Automatic date update in version.in
commit 3e19fb8f990e4ce8a08f9cf2817cd9e9398648d5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 23 16:37:44 2015 -0700
Delay setting up compressed debug section names
When we set up st_name for output section name in elf_fake_sections, we
don't know if the compressed DWARF debug section will be smaller. We may
end up with compressed DWARF debug sections which are bigger than the
uncompressed ones. This patch delays setting up st_name for output DWARF
debug section to _bfd_elf_assign_file_positions_for_non_load which will
compress the output debug section. We also postpone placement of shstrtab
section after DWARF debug sections have been compressed. The net effect
is .shstrtab section is now placed after .symtab and .strtab sections.
bfd/
PR ld/18277
* compress.c (bfd_compress_section_contents): Remove the
write_compress argument.
(bfd_init_section_compress_status): Updated.
(bfd_compress_section): Likewise.
* elf.c (_bfd_elf_set_reloc_sh_name): New.
(_bfd_elf_init_reloc_shdr): Add delay_st_name_p. Set sh_name
to (unsigned int) -1 if delay_st_name_p is TRUE. Use
_bfd_elf_set_reloc_sh_name.
(elf_fake_sections): Don't rename DWARF debug section for
linker output if it will be compressed. Instead, set
delay_st_name_p to TRUE and pass it to _bfd_elf_init_reloc_shdr.
(assign_section_numbers): Call _bfd_elf_strtab_addref only if
sh_name != (unsigned int) -1. Don't finalize nor assign
shstrtab section here. Delay setting output section names to
_bfd_elf_write_object_contents.
(_bfd_elf_compute_section_file_positions): Update comments on
sh_offset for shstrtab section.
(assign_file_positions_for_non_load_sections): Set sh_offset to
-1 for shstrtab section.
(assign_file_positions_except_relocs): Likewise.
(_bfd_elf_assign_file_positions_for_non_load): Set up sh_name
when compressing DWARF debug sections. Place shstrtab section
after DWARF debug sections have been compressed.
(_bfd_elf_write_object_contents): Setting sh_name for output
sections.
ld/testsuite/
PR ld/18277
* ld-elf/compressed1d.d: New.
* ld-elf/compressed1e.d: Likewise.
commit ece794d9c43addc2a347c01f5cd753b9171d028a
Author: Matthew Fortune <matthew.fortune@imgtec.com>
Date: Thu Apr 23 20:09:13 2015 +0100
Improve warning messages for la/dla
gas/
* config/tc-mips.c (macro): State the recommended way of creating
32-bit or 64-bit addresses.
gas/testsuite/
* gas/mips/dla-warn.l: New file.
* gas/mips/dla-warn.s: New file.
* gas/mips/la-warn.l: New file.
* gas/mips/la-warn.s: New file.
* gas/mips/mips.exp: Run new tests.
commit a100d66fb42044153dc0e93c96d7944dab0cc674
Author: Sriraman Tallam <tmsriram@google.com>
Date: Thu Apr 23 13:56:40 2015 -0700
Add option --weak-unresolved-symbols to treat unresolved symbols as weak ref.
This patch adds option --weak-unresolved-symbols to treat unresolved symbols as
weak references. This is helpful when we want the link to succeed with unresolved
symbols and the dynamic loader to not complain at run-time. Option
--warn-unresolved-symbols lets the link succeed but could fail at run-time with
unresolved symbol warnings especially when the unresolved symbols have GOT entries
and dynamic relocations against them, like when -fPIE is used.
commit 65eb8c79be0c71f9b52d14563c0817fc5ca33c0d
Author: Sriraman Tallam <tmsriram@google.com>
Date: Thu Apr 23 13:48:24 2015 -0700
Add option --weak-unresolved-symbols to treat unresolved as weak references.
This patch adds option --weak-unresolved-symbols to treat unresolved symbols as
weak references. This is helpful when we want the link to succeed with unresolved
symbols and the dynamic loader to not complain at run-time. Option
--warn-unresolved-symbols lets the link succeed but could fail at run-time with
unresolved symbol warnings especially when the unresolved symbols have GOT entries
and dynamic relocations against them, like when -fPIE is used.
2015-04-23 Sriraman Tallam <tmsriram@google.com>
* options.h (--weak-unresolved-symbols): New option.
* symtab.cc (Symbol_table::sized_write_globals): Change symbol
binding to weak with new option.
* symtab.h (is_weak_undefined): Check for new option.
(is_strong_undefined): Check for new option.
* testsuite/Makefile.am (weak_unresolved_symbols_test): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/weak_unresolved_symbols_test.cc: New file.
commit 2ca4ff6d5b2217faba14b80f88189a42520dcf8f
Author: Matthew Fortune <matthew.fortune@imgtec.com>
Date: Thu Apr 23 20:10:50 2015 +0100
Fix r6-branch-constraints test when run with n64 as default ABI
gas/testsuite/
* gas/mips/mips.exp: Require o32 for r6-branch-constraints.
commit f6fe1ccd62e4492aabda6a9a9d12da438d0ebf2b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 23 07:58:05 2015 -0700
Don't change compressed input debug section names
Change compressed input debug section name for objdump is very confusing.
But we need to change it for linker so that linker will consider the
input section as a debug section. This patch delays section rename to
elf_fake_sections for objcopy and avoids it for objdump.
bfd/
PR binutils/18209
* bfd.c (bfd): Add is_linker_input.
* elf.c (convert_debug_to_zdebug): New.
(convert_zdebug_to_debug): Likewise.
(_bfd_elf_make_section_from_shdr): Don't convert .debug_* to
.zdebug_* here. Use convert_zdebug_to_debug. Set SEC_ELF_RENAME.
(_bfd_elf_init_reloc_shdr): Pass a pointer to section name
instead of a pointer to section.
(elf_fake_sections): Rename the section name if SEC_ELF_RENAME
is set.
* section.c (SEC_ELF_RENAME): New.
* bfd-in2.h: Regenerated.
binutils/
PR binutils/18209
* objcopy.c (setup_section): Copy compress status.
binutils/testsuite/
PR binutils/18209
* binutils-all/compress.exp: Replace dw2-3.W with dw2-3gabi.W
on zlib-gabi output.
* binutils-all/dw2-1.W: Convert section names to .zdebug_*.
* binutils-all/dw2-3.W: Likewise.
* binutils-all/objdump.W: Likewise.
* binutils-all/dw2-3gabi.W: New file.
ld/
PR binutils/18209
* ldfile.c (ldfile_try_open_bfd): Set is_linker_input to 1.
commit 4ef9fb2f075daec3885c63aa2056075bdd94384b
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 23 15:48:27 2015 +0100
Fix gdb.base/interrupt.exp racy fail against gdbserver
Currently, against gdbserver, interrupt.exp occasionaly fails like
this:
ERROR: Process no longer exists
UNRESOLVED: gdb.base/interrupt.exp: send end of file
The problem is that we see gdbserver exiting before we match gdb's
output:
expect: does "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n" (spawn_id exp8) match regular expression "end of file"? Gate "end of file"? gate=no
expect: read eof
expect: set expect_out(spawn_id) "exp8"
expect: set expect_out(buffer) "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n"
Fix this by removing $inferior_spawn_id from the set of spawn ids
expect is watching as soon as we see the "end of file" string out of
the inferior spawn id, using an indirect spawn id list.
Tested on x86-64 Fedora 20, native and gdbserver (both target remote
and extended-remote).
gdb/testsuite/ChangeLog:
2015-04-23 Pedro Alves <palves@redhat.com>
* gdb.base/interrupt.exp: Use an indirect spawn id list holding
$inferior_spawn_id instead of $inferior_spawn_id directly. On
"end of file", remove $inferior_spawn_id from the indirect list.
commit 0a8031692eac62e2b3d74789d56cdfb38a5f91b0
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 23 15:48:27 2015 +0100
gdb.base/interrupt.exp: Rename saw_eof to saw_end_of_file
To avoid confusion between "end of file" string matching and eof
matching, as in process exit.
gdb/testsuite/ChangeLog:
2015-04-23 Pedro Alves <palves@redhat.com>
* gdb.base/interrupt.exp: Rename saw_eof to saw_end_of_file.
commit 749ef8f891fb921cf7ad57062deae6fa8c13b501
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 23 15:48:26 2015 +0100
gdb_test_multiple match eof of any spawn_id
Since silent handling of eof is usually the wrong thing to do, this
patch makes gdb_test_multiple handle it for all $any_spawn_id.
Currently, against gdbserver, interrupt.exp occasionaly fails like
this:
FAIL: gdb.base/interrupt.exp: send end of file
gdb.log with expect debug output enabled shows:
expect: does "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n" (spawn_id exp8) match regular expression "end of file"? Gate "end of file"? gate=no
expect: read eof
expect: set expect_out(spawn_id) "exp8"
expect: set expect_out(buffer) "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n"
FAIL: gdb.base/interrupt.exp: send end of file
Note "expect: read eof" for spawn_id=exp8. exp8 is
inferior_spawn_id/gdbserver_spawn_id. That means
expect/gdb_test_multiple saw gdbserver exit before we got the expected
gdb output. Since there's no explicit pattern for "eof", expect (and
thus gdb_test_multiple) just returns.
After this commit, we get instead:
ERROR: Process no longer exists
UNRESOLVED: gdb.base/interrupt.exp: send end of file
Note that before we still got an FAIL because $saw_inferior_exit is 0
when we get to:
gdb_assert { $saw_eof && $saw_inferior_exit } $msg
Fixing the fail (now unresolved) will be the subject of a separate
patch.
gdb/testsuite/ChangeLog:
2015-04-23 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_test_multiple): Match eof/full_buffer/timeout
on $any_spawn_id instead of only on $gdb_spawn_id.
commit 04d824a468650c632d228b977006139f17d646a4
Author: Jan Beulich <jbeulich@novell.com>
Date: Thu Apr 23 16:42:40 2015 +0200
x86: disambiguate disassembly of certain AVX512 insns
Certain conversion operations as well as vfpclassp{d,s} are ambiguous
when the input operand is in memory and no broadcast is being used.
While in Intel mode this gets resolved by printing suitable operand
size modifiers, AT&T mode need mnemonic suffixes to be added.
gas/testsuite/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* gas/i386/avx512dq.d: Add 'z' suffix to vfpclassp{d,s} non-
register, non-broadcast cases.
* gas/i386/x86-64-avx512dq.d: Likewise.
* gas/i386/avx512dq_vl.d: Add 'x' and 'y' suffixes to
vcvt{,u}qq2ps and vfpclassp{d,s} non-register, non-broadcast
cases.
* gas/i386/x86-64-avx512dq_vl.d: Likewise.
* gas/i386/avx512f_vl.d: Add 'x' and 'y' suffixes to
vcvt{,t}pd2{,u}dq and vcvtpd2ps non-register, non-broadcast
cases.
* gas/i386/x86-64-avx512f_vl.d: Likewise.
opcodes/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (putop): Extend "XY" handling to AVX512. Handle "XZ".
* i386-dis-evex.h.c (vcvtpd2ps, vcvtqq2ps, vcvttpd2udq,
vcvtpd2udq, vcvtuqq2ps, vcvttpd2dq, vcvtpd2dq): Add %XY.
(vfpclasspd, vfpclassps): Add %XZ.
commit af508cb92f8fa7eed6c7f2bd3a49d42701db5900
Author: Jan Beulich <jbeulich@novell.com>
Date: Thu Apr 23 16:41:21 2015 +0200
x86: don't require operand size specification for AVX512 broadcasts
Certain conversion operations as well as vfpclassp{d,s} are ambiguous
when the input operand is in memory. That ambiguity, however, doesn't
apply when using broadcasts (the destination operand size can be
induced from the broadcast specifier).
gas/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (match_mem_size): Also allow no size
specification when broadcasting.
gas/testsuite/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* gas/i386/avx512dq.s: Drop 'z' suffix from vfpclassp{d,s} in
some AT&T and all Intel cases.
* gas/i386/x86-64-avx512dq.s: Likewise.
* gas/i386/avx512dq_vl.s: Drop 'x' and 'y' suffixes from
vcvt{,u}qq2ps and vfpclassp{d,s} in some AT&T and all Intel
cases.
* gas/i386/x86-64-avx512dq_vl.s: Likewise.
* gas/i386/avx512f_vl.s: Drop 'x' and 'y' suffixes from
vcvt{,t}pd2{,u}dq and vcvtpd2ps in some AT&T and all Intel
cases.
* gas/i386/x86-64-avx512f_vl.s: Likewise.
commit 8900d71e388043726fece2695b9b0ffc9a0d7afb
Author: Patrick Palka <patrick@parcs.ath.cx>
Date: Wed Apr 22 19:25:55 2015 -0400
Explicitly call rl_resize_terminal() in TUI's SIGWINCH handler
In readline 6.3, the semantics of SIGWINCH handling has changed.
When a SIGWINCH signal is raised, readline's rl_sigwinch_handler() now
does not immediately call rl_resize_terminal(). Instead it sets a flag
that is checked by RL_CHECK_SIGNALS() at a point where readline has
control, and calls rl_resize_terminal() if said flag is set.
This change is item (c) in https://cnswww.cns.cwru.edu/php/chet/readline/CHANGES
c. Fixed a bug that caused readline to try and run code to modify its idea
of the screen size in a signal handler context upon receiving a SIGWINCH.
This change in behavior is important to us because TUI's
tui_sigwinch_handler() relies on the assumption that by the time it's
called, readline will have updated its knowledge of the terminal
dimensions via rl_resize_terminal(). Since this assumption no longer
holds true, TUI's SIGWINCH handling does not work correctly with
readline 6.3.
To fix this issue this patch makes TUI explicitly call
rl_resize_terminal() in tui_async_resize_screen() at the point where
current terminal dimensions are needed. (We could call it in
tui_sigwinch_handler too, but since readline avoids doing it, we are
probably safer off avoiding to call it in signal handler context as
well.) After this change, SIGWINCH handling continues to work properly
with both readline 6.2 and 6.3.
Since we no longer need it, we could now explicitly disable readline's
SIGWINCH handler by setting rl_catch_sigwinch to zero early on in the
program startup but I can't seem to find a good spot to place this
assignment (the first call to rl_initialize() occurs in
tui_initialize_readline() so the assignment should occur before then),
and the handler is harmless anyway.
gdb/ChangeLog:
* tui/tui-win.c (tui_async_resize_screen): Call
rl_resize_terminal().
commit 2ab52ca58f97a5a852f63df16ac64cfe8534210f
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 22 11:31:18 2015 +0930
Accept odd result in ld-powerpc/tocnovar testcase
I didn't commit this with the relro and powerpc .TOC. changes,
thinking that something should be done about the odd result of
.shstrtab appearing in PT_GNU_RELRO. On looking at it further,
I think that changing readelf would be wrong, so let's just
accept the results. Real binaries will always have other sections
past .got, so PT_GNU_RELRO won't finish past the end of loaded
sections.
* ld-powerpc/tocnovar.d: Adjust.
commit a27e685fa0a6480bdb07e3be359558524cec89b7
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 21 19:18:24 2015 +0930
Align .TOC. for PowerPC64
This change, with prerequisite 0e5fabeb, provides a toc base aligned
to 256 bytes rather than 8 bytes. This is necessary for a minor gcc
optimisation, allowing use of d-form instructions to correctly access
toc-relative items larger than 8 bytes.
bfd/
* elf64-ppc.c (TOC_BASE_ALIGN): Define.
(ppc64_elf_next_toc_section): Align multi-got toc base.
(ppc64_elf_set_toc): Likewise initial toc base and .TOC. symbol.
ld/
* emulparams/elf64ppc.sh (GOT): Align.
ld/testsuite/
* ld-powerpc/ambiguousv1b.d: Update for aligned .got.
* ld-powerpc/defsym.d: Likewise.
* ld-powerpc/elfv2-2exe.d: Likewise.
* ld-powerpc/elfv2exe.d: Likewise.
* ld-powerpc/elfv2so.d: Likewise.
* ld-powerpc/relbrlt.d: Likewise.
* ld-powerpc/tls.g: Likewise.
* ld-powerpc/tlsexe.d: Likewise.
* ld-powerpc/tlsexe.g: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexetoc.d: Likewise.
* ld-powerpc/tlsexetoc.g: Likewise.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsso.d: Likewise.
* ld-powerpc/tlsso.g: Likewise.
* ld-powerpc/tlsso.r: Likewise.
* ld-powerpc/tlstoc.g: Likewise.
* ld-powerpc/tlstocso.d: Likewise.
* ld-powerpc/tlstocso.g: Likewise.
* ld-powerpc/tlstocso.r: Likewise.
* ld-powerpc/tocopt.d: Likewise.
* ld-powerpc/tocopt2.d: Likewise.
* ld-powerpc/tocopt3.d: Likewise.
* ld-powerpc/tocopt4.d: Likewise.
* ld-powerpc/tocopt5.d: Likewise.
commit 19947f5fbb8f9153d9681ebc9981cc7bb056e741
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 23 00:00:07 2015 +0000
Automatic date update in version.in
commit dfc0f57b741c12a94520c9ec7f726755eac1d2de
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Apr 22 12:35:54 2015 -0700
libiberty/setenv.c: Do not declare environ if defined as a macro.
Otherwise, it causes a build warning on some platforms such as MinGW.
libiberty/ChangeLog (Eli Zaretskii <eliz@gnu.org>):
* setenv.c <environ>: Declare only if not a macro.
commit f16eab5ffbd9128410241abc48edcd5871c91137
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Apr 15 21:41:25 2015 +0100
windows-nat: Don't change current_event.dwThreadId in handle_output_debug_string()
Using the 'catch-signal' test from the testsuite, on x86_64 Cygwin:
$ ./gdb testsuite/outputs/gdb.base/catch-signal/catch-signal.exe
[...]
(gdb) catch signal
Catchpoint 1 (standard signals)
(gdb) r
[...]
Catchpoint 1 (signal SIGHUP), main () at
../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
(gdb) c
Continuing.
main () at ../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
Failed to resume program execution (ContinueDebugEvent failed, error 87)
(gdb)
This error occurs because when handle_output_debug_string processes a Cygwin
signal message, it re-writes current_event.dwThreadId to reflect the thread that
the signal will be delivered to, which can be different to the thread reporting
the signal.
Altering current_event.dwThreadId() will cause ContinueDebugEvent() to be
applied to the wrong thread and fail.
So, rather than re-writing the thread id in current_event, use the thread
id by returning it.
With this patch applied this test now yields the expected result:
$ ./gdb testsuite/outputs/gdb.base/catch-signal/catch-signal.exe
[...]
(gdb) catch signal
Catchpoint 1 (standard signals)
(gdb) r
[...]
Catchpoint 1 (signal SIGHUP), main () at
../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
(gdb) c
Continuing.
Catchpoint 1 (signal SIGHUP), main () at
../../../gdb/testsuite/gdb.base/catch-signal.c:42
42 raise (SIGHUP); /* third HUP */
(gdb)
gdb/ChangeLog:
2015-04-22 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (handle_output_debug_string): Don't change
current_event.dwThreadId.
(get_windows_debug_event): Use thread_id, rather than relying on
current_event.dwThreadId being changed.
commit 68ffc90245e2e51ba5f096f166ae49262d461b5e
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Apr 15 21:37:11 2015 +0100
windows-nat: Report an error if ContinueDebugEvent() fails
Using the 'catch-signal' test from the testsuite, on x86_64 Cygwin:
$ ./gdb testsuite/outputs/gdb.base/catch-signal/catch-signal.exe
[...]
(gdb) catch signal
Catchpoint 1 (standard signals)
(gdb) r
[...]
Catchpoint 1 (signal SIGHUP), main () at
../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
(gdb) c
Continuing.
[hangs]
This is due to a defect in the way Cygwin signals are handled: When
handle_output_debug_string processes a Cygwin signal message, it re-writes
current_event.dwThreadId to reflect the thread that the signal will be delivered
to.
Subsequently, the call to ContinueDebugEvent will fail, because we're trying to
resume the wrong thread. GDB is then stuck waiting forever for another event
that will never come.
This patch doesn't fix the problem, it just adds appropriate error handling.
Using error() seems appropriate here, if ContinueDebugEvent() fails, the
inferior is in an unknown state and we will probably not be debugging it
anymore.
With this patch applied, resuming the execution of the program now yields:
$ ./gdb testsuite/outputs/gdb.base/catch-signal/catch-signal.exe
[...]
(gdb) catch signal
Catchpoint 1 (standard signals)
(gdb) r
[...]
Catchpoint 1 (signal SIGHUP), main () at
../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
(gdb) c
Continuing.
main () at ../../../gdb/testsuite/gdb.base/catch-signal.c:40
40 raise (SIGHUP); /* second HUP */
Failed to resume program execution (ContinueDebugEvent failed, error 87)
(gdb)
gdb/ChangeLog:
2015-04-22 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (windows_continue): Report an error if
ContinueDebugEvent() fails.
commit 23942819fca67effa062a9639be5df3fb074b322
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Apr 14 21:05:21 2015 +0100
windows-nat: Fix misspelling in debug output
gdb/ChangeLog:
2015-04-16 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (windows_resume): Fix misspelling in debug output.
commit e6ad66bd097f17ec32c03462dd65b7f833fd49ab
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Apr 14 19:28:44 2015 +0100
windows-nat: Cleanups in get_windows_debug_event
gdb/ChangeLog:
2015-04-16 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (get_windows_debug_event): Replace retval with
thread_id throughout. Update stale comment.
commit 776704b9178cce5741e96555ceca514d84824815
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Apr 14 19:42:07 2015 +0100
windows-nat: Don't use ternary conditional operator in get_windows_debug_event
gdb/ChangeLog:
2015-04-16 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (get_windows_debug_event): Don't use ternary
conditional operator.
commit 0e5fabeb2c4b90857403995e14550210fe1cae71
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 22 22:46:19 2015 +0930
Rewrite relro adjusting code
The linker tries to put the end of the last section in the relro
segment exactly on a page boundary, because the relro segment itself
must end on a page boundary. If for any reason this can't be done,
padding is inserted. Since the end of the relro segment is typically
between .got and .got.plt, padding effectively increases the size of
the GOT. This isn't nice for targets and code models with limited GOT
addressing.
The problem with the current code is that it doesn't cope very well
with aligned sections in the relro segment. When making .got aligned
to a 256 byte boundary for PowerPC64, I found that often the initial
alignment attempt failed and the fallback attempt to be less than
adequate. This is a particular problem for PowerPC64 since the
distance between .got and .plt affects the size of plt call stubs,
leading to "stubs don't match calculated size" errors.
So this rewrite takes a direct approach to calculating a new relro
base. Starting from the last section in the segment, we calculate
where it must start to position its end on the boundary, or as near as
possible considering alignment requirements. The new start then
becomes the goal for the previous section to end, and so on for all
sections. This of course ignores the possibility that user scripts
will place . = ALIGN(xxx); in the relro segment, or provide section
address expressions. In those cases we might fail, but the old code
probably did too, and a fallback is provided.
ld/
* ldexp.h (struct ldexp_control): Delete dataseg.min_base. Add
data_seg.relro_offset.
* ldexp.c (fold_binary <DATA_SEGMENT_ALIGN>): Don't set min_base.
(fold_binary <DATA_SEGMENT_RELRO_END>): Do set relro_offset.
* ldlang.c (lang_size_sections): Rewrite code adjusting relro
segment base to line up last section on page boundary.
ld/testsuite/
* ld-x86-64/pr18176.d: Update.
commit d5597ebccca6761fb641b7fc99b6e8b56fbac6e2
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 22 05:24:54 2015 -0700
i386: Allow copy relocs for building PIE
This patch allows copy relocs for R_386_GOTOFF relocations in PIE. For
extern int glob_a;
int foo ()
{
return glob_a;
}
compiler now can optimize it from
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl glob_a@GOT(%eax), %eax
movl (%eax), %eax
ret
to
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl glob_a@GOTOFF(%eax), %eax
ret
bfd/
PR ld/18289
* elf32-i386.c (elf_i386_link_hash_entry): Add gotoff_ref.
(elf_i386_link_hash_newfunc): Initialize gotoff_ref to 0.
(elf_i386_create_dynamic_sections): Always allow copy relocs for
building executables.
(elf_i386_copy_indirect_symbol): Also copy gotoff_ref.
(elf_i386_check_relocs): Set gotoff_ref for R_386_GOTOFF.
(elf_i386_adjust_dynamic_symbol): Also allocate copy relocs for
PIE and R_386_GOTOFF.
(elf_i386_relocate_section): Allow R_386_GOTOFF in executable.
ld/testsuite/
PR ld/18289
* ld-i386/copyreloc-lib.c: New file.
* ld-i386/copyreloc-main.S: Likewise.
* ld-i386/copyreloc-main.out: Likewise.
* ld-i386/copyreloc-main1.rd: Likewise.
* ld-i386/copyreloc-main2.rd: Likewise.
* ld-i386/dummy.c: Likewise.
* ld-i386/pr17689.out: Likewise.
* ld-i386/pr17689.rd: Likewise.
* ld-i386/pr17689a.c: Likewise.
* ld-i386/pr17689b.S: Likewise.
* ld-i386/pr17827.rd: Likewise.
* ld-i386/pr17827ver.rd: Likewise.
* ld-i386/i386.exp: Run copyreloc tests.
commit 712e55b92481d89d01877a0668d8140029feca88
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 22 00:00:13 2015 +0000
Automatic date update in version.in
commit 8aae434443df61440ff5228f5c8fe3e5d4a38798
Author: Pierre Muller <muller@ics.u-strasbg.fr>
Date: Tue Apr 21 22:10:08 2015 +0200
Fix pascal behavior for class fields with testcase
Problem reported as PR pascal/17815
Part 1/3: Remember the case pattern that allowed finding a field of this.
File gdb/p-exp.y modified
This is the fix in the pascal parser (p-exp.y),
to avoid the error that GDB does find normal variables
case insensitively, but not fields of this,
inside a class or object method.
Part 2/3: Add "class" option for pascal compiler
File gdb/testsuite/lib/pascal.exp
This part of the patch series is unchanged.
It adds class option to pascal compiler
which adds the required command line option to
accept pascal class types.
Part 3/3:
New file: gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
New file: gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
Here is an updated version of this test, using Pedro's suggestions.
Test to check that PR 17815 is fixed.
commit 819843c7029916120aa2929f80e0d7276177a7fb
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Apr 21 12:07:54 2015 +0100
Introduce new shared function fileio_to_host_openflags
This commit introduces a new shared function to replace identical
functions in GDB and gdbserver.
commit 43236bb2551a9783ff0de5e95bf75f905300eb06
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Apr 21 03:05:57 2015 -0400
sim: mcore: clean up printf warnings
These printf statements are showing "word" objects which are typedefed
from long, so make sure to use l with %x when printing them to avoid
warnings from gcc.
commit f63036b811550ef12ab849ab55b35cd92403fda1
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Apr 21 02:55:29 2015 -0400
sim: mcore: convert to common memory/verbose functions
Re-use the existing memory core that handles reads/writes.
The verbose command is converted to the common --verbose flag
since only a few call sites use it now.
commit e53e5aab53a455c791fff754d72fd17cbbc6b4a8
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Apr 21 02:50:38 2015 -0400
sim: mcore: drop watchpoint/dumpmem/clearstats support
In preparation for converting to the common memory framework, the custom
commands get in our way. But when we realize that gdb support has been
dropped for mcore, it makes things a bit easier: the main runner does not
let you run arbitrary commands once simulation starts.
So lets disable watchpoint support until it can be converted to the common
watchpoint logic. There's already an ifdef to let us do that.
We straight up drop support for the dumpmem command (no other sim supports
this, and if it's a feature people want, we can add a common func) and the
clearstats command (not a big deal -- just restart your simulation).
We leave in place the verbose check points as a follow up commit will cut
that over to common logic.
commit 767e68f1b93be396e0cf1296a11584dd725b9569
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Apr 21 02:30:21 2015 -0400
sim: mcore: switch to common syscall handling
Now that libgloss has a header tracking the syscalls for this arch, we
can update the database to include it for the symbolic constants/maps.
Then we can switch the mcore syscall callbacks over to the common ones.
commit 248d23e82bc9430cdb6424a5b6b48999cf4001db
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Apr 21 02:24:34 2015 -0400
sim: gennltvals.sh: handle split out newlib source tree
Since newlib no longer shares the same repo as binutils/gdb, we have to go
searching further afield to locate the sources. We still look at the top
level for newlib, but if that is not found, we also try up one dir outside
of this source tree. It sucks, but better than the status quo (no workie).
commit 0bca7f99d8fa254b5e35a211ee306a46b95adc65
Author: Kevin Buettner <kevinb@redhat.com>
Date: Mon Apr 20 23:37:44 2015 -0700
Extend rl78 prologue analyzer to recognize more complicated prologues
This patch extends the rl78 prologue analyzer so that it can recognize
this kind of prologue:
0x119f <main>: movw ax, sp
0x11a1 <main+2>: subw ax, #0x1fa6
0x11a4 <main+5>: movw sp, ax
The test case for gdb.base/miscexprs.exp is now compiled to generate
that sequence instead of a much longer and more inefficient sequence.
gdb/ChangeLog:
* rl78-tdep.c (RL78_SP_ADDR): Define.
(opc_reg_to_gdb_regnum): New static function.
(rl78_analyze_prologue): Recognize instructions forming slightly
more interesting prologues.
commit 4b889c3013d7d45e2775781c3904b657419db2fa
Author: Ian Coolidge <icoolidge@google.com>
Date: Mon Apr 20 18:04:07 2015 -0700
Ensure that dynamically loaded libraries won't use separate copies of GNU_UNIQUE symbols.
gold/
* symtab.cc (Symbol::should_add_dynsym_entry): Return true for
GNU_UNIQUE.
commit efdacec57ccde20bb53045e2930ef02e7e49416b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 21 00:00:08 2015 +0000
Automatic date update in version.in
commit e97029632cfacf9d8b65e2cf3051a932f19f9ebf
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 20 12:37:14 2015 -0700
Always set up sh_name in assign_section_numbers
commit 9ad5cbcfb23cb74d34bd04f88f4e47c0f5de5155 added the initial support
for more than 64k ELF sections with holes for reserved section indices in
section header table and set entries of reserved section indices in
section header table to index 0:
for (secn = 1; secn < section_number; ++secn)
- i_shdrp[secn]->sh_name = _bfd_elf_strtab_offset (elf_shstrtab (abfd),
- i_shdrp[secn]->sh_name);
-
+ if (i_shdrp[secn] == NULL)
+ i_shdrp[secn] = i_shdrp[0];
+ else
+ i_shdrp[secn]->sh_name = _bfd_elf_strtab_offset (elf_shstrtab (abfd),
+ i_shdrp[secn]->sh_name);
commit 4fbb74a6055f7d48f09c44064073d3b1e99c6642 removed holes in section
header table. Check for i_shdrp[secn] == NULL is no longer needed now.
This patch removes it.
* elf.c (assign_section_numbers): Always set up sh_name.
commit be59ad3d96fa78d97193698eb7c6309489493712
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 20 09:55:34 2015 -0700
Don't hardcode offset of .shstrtab section
There is no requirement on placement of section name section, .shstrtab.
This patch removes hardcoded offsets of .shstrtab sections.
binutils/testsuite/
* binutils-all/i386/compressed-1b.d: Don't hardcode offset of
.shstrtab section.
* binutils-all/i386/compressed-1c.d: Likewise.
* binutils-all/readelf.s-64: Likewise.
* binutils-all/x86-64/compressed-1b.d: Likewise.
* binutils-all/x86-64/compressed-1c.d: Likewise.
gas/testsuite/
* gas/i386/ilp32/x86-64-unwind.d: Don't hardcode offset of
.shstrtab section.
* gas/i386/x86-64-unwind.d: Likewise.
* gas/ia64/alias-ilp32.d: Likewise.
* gas/ia64/alias.d: Likewise.
* gas/ia64/group-1.d: Likewise.
* gas/ia64/group-2.d: Likewise.
* gas/ia64/secname-ilp32.d: Likewise.
* gas/ia64/secname.d: Likewise.
* gas/ia64/unwind-ilp32.d: Likewise.
* gas/ia64/unwind.d: Likewise.
* gas/mmix/bspec-1.d: Likewise.
* gas/mmix/byte-1.d: Likewise.
* gas/mmix/loc-1.d: Likewise.
* gas/mmix/loc-2.d: Likewise.
* gas/mmix/loc-3.d: Likewise.
* gas/mmix/loc-4.d: Likewise.
* gas/mmix/loc-5.d: Likewise.
* gas/tic6x/scomm-directive-4.d: Likewise.
ld/testsuite/
* ld-mmix/bspec1.d: Don't hardcode offset of .shstrtab section.
* ld-mmix/bspec2.d: Likewise.
* ld-mmix/local1.d: Likewise.
* ld-mmix/local3.d: Likewise.
* ld-mmix/local5.d: Likewise.
* ld-mmix/local7.d: Likewise.
* ld-mmix/undef-3.d: Likewise.
* ld-sh/sh64/crangerel1.rd: Likewise.
* ld-sh/sh64/crangerel2.rd: Likewise.
* ld-tic6x/common.d: Likewise.
* ld-tic6x/shlib-1.rd: Likewise.
* ld-tic6x/shlib-1b.rd: Likewise.
* ld-tic6x/shlib-1r.rd: Likewise.
* ld-tic6x/shlib-1rb.rd: Likewise.
* ld-tic6x/shlib-app-1.rd: Likewise.
* ld-tic6x/shlib-app-1b.rd: Likewise.
* ld-tic6x/shlib-app-1r.rd: Likewise.
* ld-tic6x/shlib-app-1rb.rd: Likewise.
* ld-tic6x/shlib-noindex.rd: Likewise.
* ld-tic6x/static-app-1.rd: Likewise.
* ld-tic6x/static-app-1b.rd: Likewise.
* ld-tic6x/static-app-1r.rd: Likewise.
* ld-tic6x/static-app-1rb.rd: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/split-by-file-nacl.rd: Likewise.
* ld-x86-64/split-by-file.rd: Likewise.
commit e06efbf1c8198e25ef36a9787862f9720a94ba7b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 20 08:50:01 2015 -0700
Iterate ELF sections by pointer
Iterate ELF sections by pointer without section counter. It removes
"i++".
* elf.c (assign_file_positions_for_non_load_sections): Iterate
sections by pointer.
(_bfd_elf_assign_file_positions_for_non_load): Likewise.
commit d3b47e2bd4f2924e965c586d3bf4d0b0cc6b40cc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 20 08:05:13 2015 -0700
Silence texinfo 5.1 warnings
This patch silences texinfo 5.1 warnings by using @subsection and
sorting entries in Machine Dependencies menu.
* doc/as.texinfo (Bundle directives): Shorten menu entry and
use @subsection.
(CFI directives): Use @subsection.
(SH-Dependent, SH64-Dependent): Moved after SCORE-Dependent.
* doc/c-i386.texi (i386-Mnemonics): Use @subsection.
commit e771e4be1393b629bc243e2b5ee1e91850334d5a
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Mon Apr 20 16:06:50 2015 +0200
Revert "Do not consider reference types as dynamic"
This reverts commit 961f41602529c9cd4f88af6c02fb61fb55100e27.
Note that the revert is partial: it keeps the new testcases
gdb.ada/funcall_ref.exp.
commit ee715b5a6c88dcd7d81a44e57cb4dfe4790a4259
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Mon Apr 20 16:04:28 2015 +0200
Revert "gdbtypes.c: remove the usuned "top_level" parameter"
This reverts commit 25755e2b85e2bd5b313ea87f32000bf9a47dbbf8.
commit 1586c8fbaf0116931ffacd1746a6540c81c2d438
Author: Gary Benson <gbenson@redhat.com>
Date: Mon Apr 20 11:35:29 2015 +0100
Fix three test failures with extended remote targets
This commit fixes three gdb.base/attach.exp failures when using
extended remote targets. The failures occurred because GDB now
locates and loads files when attaching on remote targets if the
remote target supports qXfer:exec-file:read; the filenames were
shown but with "target:" prefixes which the test has been updated
to handle.
gdb/testsuite/ChangeLog:
* gdb.base/attach.exp: Fix three extended remote failures.
commit 3cdf408c30480ce06ce5c7b156aab4c4601840e7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 20 00:00:07 2015 +0000
Automatic date update in version.in
commit e31d7699a0b116025b48f1ab5214eddd2e56ef9f
Author: Gabriel Krisman Bertazi <gabriel@krisman.be>
Date: Sun Apr 19 19:34:08 2015 -0300
Remove duplicated xmalloc in update_dprintf_command_list
Code in update_dprintf_command_list performed a duplicated memory
allocation which caused an obvious memory leak. This removes the
duplication.
gdb/
2015-04-19 Gabriel Krisman Bertazi <gabriel@krisman.be>
* breakpoint.c (update_dprintf_command_list): Remove duplicated
xmalloc.
commit 110f91128cf3e047eb1e04d346c27d71cc33fb9c
Author: Thomas Schwinge <thomas@codesourcery.com>
Date: Mon Apr 20 00:31:54 2015 +0200
[GDB] Hurd: Robustify the reply_mig_hack.awk script.
..., so that it also works with the GNU MIG 1.5 just released.
gdb/
* reply_mig_hack.awk: Robustify parsing.
commit d214e5e79e38b18bc3786b3e8ba0e55fdbba294b
Author: Thomas Schwinge <thomas@codesourcery.com>
Date: Mon Apr 20 00:22:32 2015 +0200
[GDB] Hurd: Simplify the reply_mig_hack.awk script.
gdb/
* reply_mig_hack.awk: Don't bother to declare an intermediate
function pointer variable.
... allowing us to simplify the parsing a little bit. And, instead of
"warning: initialization from incompatible pointer type", we now get "warning:
function called through a non-compatible type". Oh well.
commit d3e9b40afb8e7bd09522044951cdce4710676c3e
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Fri Apr 3 22:35:48 2015 +0200
sim/erc32: Switched emulated memory to host endian order.
Change data ordering in emulated memory from target order (big endian)
to host order. Improves performance and simplifies most memory
operations. Requires some byte twisting during stores on little
endian hosts (intel). Also removed support for little-endian binaries.
commit 09b29ece9abb652983d4718aac0ff666d62d6790
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 19 00:00:08 2015 +0000
Automatic date update in version.in
commit 3ebe2863f79e04d841e6b97594ec032d2bfad1b8
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Apr 18 04:38:33 2015 -0400
sim: clean up duplicate sim-engine hooks
Now that we've unified sim-cpu, we can delete the duplicate sim-engine
hooks -- these targets defined these only because they didn't fully
implement the sim-cpu callbacks.
commit e8d3a34fee495d7d44e6bf8e13d472b33f847635
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Apr 18 04:22:25 2015 -0400
sim: trim old USING_SIM_BASE_H define
This doesn't appear to have been used since 1998, but wasn't cleaned
up since. So much for being "quick" ;).
commit 20bca71d82598a015de0991196e45f0b5f7ead81
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Apr 18 04:19:56 2015 -0400
sim: unify SIM_CPU definition
Since every target typedefs this the same way, move it to the common code.
We have to leave Blackfin behind here for now because of inter-dependencies
on types and headers: sim-base.h includes sim-model.h which needs types in
machs.h which needs types in bfim-sim.h which needs SIM_CPU.
commit 7e83aa92f2d986ba60f124287a9fd1e534fbbcf8
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Apr 18 04:08:56 2015 -0400
sim: unify sim_cia definition
Almost every target defines sim_cia the same way -- either using the
address_word type directly, or a type of equivalent size. The only
odd one out is sh64 (who has 32bit address_word and 64bit cia), and
even that case doesn't seem to make sense. We'll put off clean up
though of sh64 and at least set up a sensible default for everyone.
commit b9a7202de81202af1337d2cef22db5e3b5bca665
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 18 00:00:07 2015 +0000
Automatic date update in version.in
commit 8f61baf802b597c11fec288f840d9f7feb18eb0e
Author: Doug Evans <dje@google.com>
Date: Fri Apr 17 10:57:45 2015 -0700
solib-svr4.c (svr4_exec_displacement): Rename outer "displacement".
gdb/ChangeLog:
* solib-svr4.c (svr4_exec_displacement): Rename outer "displacement"
to "exec_displacement" to avoid confusion with inner use of the name.
commit 4277535cdc6ce6998cdc273bbe454f9ca2c23037
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Fri Apr 17 11:51:36 2015 -0400
Use LIFO instead of FIFO to implement gc's transitive closure.
FIFO is harder to implement and has less locality than LIFO. It is
also not necessary to implement a transitive closure, a LIFO works
just as well.
commit a4ea36c6cb13d100aacab3a90762597cef471b35
Author: Richard Earnshaw <Richard.Earnshaw@arm.com>
Date: Fri Apr 17 16:10:43 2015 +0100
Merge include/partition.h from GCC.
2015-03-19 Richard Biener <rguenther@suse.de>
* partition.h (struct partition_elem): Re-order elements to
avoid padding.
commit a2d5a9d76f2366ed93095fc5a63eafa06b22f808
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Fri Apr 17 02:52:50 2015 +0300
gdbserver/xtensa: fix typo in XCHAL_HAVE_LOOPS
This fixes lbeg/lend/lcount registers handling through gdbserver.
2015-04-17 Max Filippov <jcmvbkbc@gmail.com>
gdb/gdbserver/
* linux-xtensa-low.c (xtensa_fill_gregset)
(xtensa_store_gregset): Check XCHAL_HAVE_LOOPS instead of
XCHAL_HAVE_LOOP.
commit deb44829ecc1dd38275af0fcf91acd319e227a89
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Fri Apr 17 03:07:41 2015 +0300
gdbserver/xtensa: drop xtensa_usrregs_info
xtensa_usrregs_info refers to undefined variables xtensa_num_regs and
xtensa_regmap. Drop xtensa_usrregs_info and replace pointer to usrregs
in regs_info with NULL since all registers are read/set through regsets.
2015-04-17 Max Filippov <jcmvbkbc@gmail.com>
gdb/gdbserver/
* linux-xtensa-low.c (xtensa_usrregs_info): Remove.
(regs_info): Replace usrregs pointer with NULL.
commit dbbf180a8176d59eb04d20a681c0e77e2b0551a5
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 17 13:52:44 2015 +0100
return zero in arm_linux_can_use_hw_breakpoint if HW point isn't supported
This patch is to cherry-pick part of Pedro's patch here
https://sourceware.org/ml/gdb-patches/2015-04/msg00527.html in which
zero is returned if the HW point isn't supported.
In arm-linux native gdb testing on a board doesn't support HW breakpoint,
without this patch, the output in gdb.base/breakpoint-in-ro-region.exp is like:
(gdb) hbreak *0x83bc^M
Hardware breakpoints used exceeds limit.^M
(gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: probe hbreak support (support)
with this patch, the output becomes:
(gdb) hbreak *0x83bc^M
No hardware breakpoint support in the target.^M
(gdb) PASS: gdb.base/breakpoint-in-ro-region.exp: probe hbreak support (no support)
As a result, the following fails are fixed.
-FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw on: step in ro region (cannot insert hw break)
-FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted off: auto-hw on: thread advanced
-FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw on: step in ro region (cannot insert hw break)
-FAIL: gdb.base/breakpoint-in-ro-region.exp: always-inserted on: auto-hw on: thread advanced
gdb:
2015-04-17 Pedro Alves <palves@redhat.com>
* arm-linux-nat.c (arm_linux_can_use_hw_breakpoint): Return zero
if HW point of TYPE isn't supported.
commit 059790a0c8f4672da9ed5a6289d1fd9edc0f169f
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 17 13:45:53 2015 +0100
Update comments to target_can_use_hardware_watchpoint
The return value of target_can_use_hardware_watchpoint isn't well
documented, so this patch is to update the comments to reflect the
fact. This patch also removes a trailing ";" which is picked up
from Pedro's patch https://sourceware.org/ml/gdb-patches/2015-04/msg00527.html
gdb:
2015-04-17 Yao Qi <yao.qi@linaro.org>
Pedro Alves <palves@redhat.com>
* target.h (target_can_use_hardware_watchpoint): Update comments.
Remove trailing ";".
commit ef7a936968ec4cdeadd19b0ccb213403adc26390
Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Fri Apr 17 20:55:54 2015 +0930
Fix avr compiler warning
declaration of "link" shadows a global declaration
* config/tc-avr.c (create_record_for_frag): Rename link to
prop_rec_link.
commit 1b6e6f5c7ffba559a681d11852acf38ef48dceff
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Access executable from remote system when first inferior appears
This commit modifies remote_add_inferior to take an extra argument
try_open_exec. If this is nonzero, remote_add_inferior will attempt
to open this inferior's executable as the main executable if no main
executable is open already. Callers are updated appropriately.
With this commit, remote debugging can now be initiated using only a
"target remote" or "target extended-remote" command; no "set sysroot"
or "file" commands are required, e.g.
bash$ gdb -q
(gdb) target remote | gdbserver - /bin/sh
Remote debugging using | gdbserver - /bin/sh
Process /bin/sh created; pid = 32166
stdin/stdout redirected
Remote debugging using stdio
Reading symbols from target:/bin/bash...
One testcase required updating as a result of this commit. The test
checked that GDB's "info files" command does not crash if no main
executable is open, and relied on GDB's inability to access the main
executable over the remote protocol. The test was updated to inhibit
this new behavior.
gdb/ChangeLog:
* remote.c (remote_add_inferior): New argument try_open_exec.
If nonzero, attempt to open the inferior's executable file as
the main executable if no main executable is open already.
All callers updated.
* NEWS: Mention that GDB now supports automatic location and
retrieval of executable + files from remote targets.
gdb/doc/ChangeLog:
* gdb.texinfo (Connecting to a Remote Target): Mention that
GDB can access program files from remote targets that support
qXfer:exec-file:read and Host I/O packets.
gdb/testsuite/ChangeLog:
* gdb.server/server-exec-info.exp: Inhibit GDB from accessing
the main executable over the remote protocol.
commit e57f1de3b37e17e1c80515f6e80ecb4ccd1bf0fb
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Implement qXfer:exec-file:read in gdbserver
This commit implements the "qXfer:exec-file:read" packet in gdbserver.
gdb/gdbserver/ChangeLog:
* target.h (struct target_ops) <pid_to_exec_file>: New field.
* linux-low.c (linux_target_ops): Initialize pid_to_exec_file.
* server.c (handle_qxfer_exec_file): New function.
(qxfer_packets): Add exec-file entry.
(handle_query): Report qXfer:exec-file:read as supported packet.
commit c78fa86a213db1bdef328437ac262a4f54577827
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Implement remote_pid_to_exec_file using qXfer:exec-file:read
This commit adds a new packet "qXfer:exec-file:read" to the remote
protocol that can be used to obtain the pathname of the file that
was executed to create a process on the remote system. Support for
this packet is added to GDB and remote_ops.to_pid_to_exec_file is
implemented using it.
gdb/ChangeLog:
* target.h (TARGET_OBJECT_EXEC_FILE): New enum value.
* remote.c (PACKET_qXfer_exec_file): Likewise.
(remote_protocol_features): Register the
"qXfer:exec-file:read" feature.
(remote_xfer_partial): Handle TARGET_OBJECT_EXEC_FILE.
(remote_pid_to_exec_file): New function.
(init_remote_ops): Initialize to_pid_to_exec_file.
(_initialize_remote): Register new "set/show remote
pid-to-exec-file-packet" command.
* NEWS: Announce new qXfer:exec-file:read packet.
gdb/doc/ChangeLog:
* gdb.texinfo (Remote Configuration): Document the "set/show
remote pid-to-exec-file-packet" command.
(General Query Packets): Document the qXfer:exec-file:read
qSupported features. Document the qXfer:exec-file:read packet.
commit e0d86d2cbd168e083f3d077b8cfe67c3d03c1e5f
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Introduce linux_proc_pid_to_exec_file
This commit introduces a new function linux_proc_pid_to_exec_file
that shared Linux code can use to discover the filename of the
executable that was run to create a process on the system.
gdb/ChangeLog:
* nat/linux-procfs.h (linux_proc_pid_to_exec_file):
New declaration.
* nat/linux-procfs.c (linux_proc_pid_to_exec_file):
New function, factored out from...
* linux-nat.c (linux_child_pid_to_exec_file): ...here.
commit a9a5a3d1d27fc443934ed4919f69b34144288cf0
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Use gdb_sysroot for main executable on attach
This commit updates exec_file_locate_attach to use exec_file_find
to compute the full pathname of the main executable in some cases.
The net effect of this is that the main executable's path will be
prefixed with gdb_sysroot in the same way that shared library paths
currently are.
gdb/ChangeLog:
* exec.c (solist.h): New include.
(exec_file_locate_attach): Prefix absolute executable
paths with gdb_sysroot if set.
* NEWS: Mention that executable paths may be prepended
with sysroot.
gdb/doc/ChangeLog:
* gdb.texinfo (set sysroot): Document that "set sysroot" also
applies to executable paths if supplied to GDB as absolute.
commit af1900b01b378126d8826591be7b7ec0d18271d7
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Introduce exec_file_find
This commit adds a new function, exec_file_find, which computes the
full pathname of the main executable in much the same way solib_find
does for pathnames of shared libraries. The bulk of the existing
solib_find was moved into a new static function solib_find_1, with
exec_file_find and solib_find being small wrappers for solib_find_1.
gdb/ChangeLog:
* solist.h (exec_file_find): New declaration.
* solib.c (solib_find_1): New function, factored out from...
(solib_find): ...here.
(exec_file_find): New function.
commit a10de6046fbd50e99742af428a815dcd94e2fba8
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Apr 17 09:47:30 2015 +0100
Introduce exec_file_locate_attach
This commit adds a new function, exec_file_locate_attach, which works
like exec_file_attach except that, instead of a filename argument, it
takes an integer process ID and attempts to determine the executable
filename from that.
gdb/ChangeLog:
* gdbcore.h (exec_file_locate_attach): New declaration.
* exec.c (exec_file_locate_attach): New function, factored
out from...
* infcmd.c (attach_command_post_wait): ...here.
commit 92209ddfdc725c51d0368716ee316193deb24e8a
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Apr 2 00:51:25 2015 -0400
gdb: add myself to blackfin/write-after-approval
commit c85fc61074e9fab1bafbae97ea4628c7bffaaf76
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 12 05:49:31 2015 -0400
sim: microblaze: switch to common memory functions
Re-use the existing memory core that handles reads/writes.
This drops support for the dumpmem command, but gdb itself has
support for dumping memory regions.
The verbose command is converted to the common --verbose flag
since only two call sites use it now.
Support for the clearstats command is dropped entirely, but no
other sim really does this, and the same thing can be done by
reloading. If it's important (clearing cycle stats) to someone,
we can add a common function for it.
commit 034685f9ce92cf6dfb6656745365b6a5904a8e84
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Apr 16 02:11:12 2015 -0400
sim: replace CIA_{GET,SET} with CPU_PC_{GET,SET}
The CIA_{GET,SET} macros serve the same function as CPU_PC_{GET,SET}
except the latter adds a layer of indirection via the sim state. This
lets models set up different functions at runtime and doesn't reach so
directly into the arch-specific cpu state.
It also doesn't make sense to have two sets of macros that do exactly
the same thing, so lets standardize on the one that gets us more.
commit 27b97b40bca216097d16d53fa9408a70cd281479
Author: Mike Frysinger <vapier@gentoo.org>
Date: Fri Apr 17 02:16:10 2015 -0400
sim: arm/cr16/d10v/h8300/microblaze/sh: fill out sim-cpu pc fetch/store helpers
This makes the common sim-cpu logic work.
commit 0fdc66e16e44210dd7468eb78a9c658d6f0b2b65
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 17 00:00:07 2015 +0000
Automatic date update in version.in
commit 5019d64a1ff6847a87f5af04bd7b8bc28f1dd9df
Author: Han Shen <shenhan@google.com>
Date: Thu Apr 16 15:17:08 2015 -0700
[gold] The first patch to address cortex-a53 erratum-843419.
It implemented scanning the binary and reporting occurrences to users
when '--fix-cortex-a53' is turned on. With this, gold users will be
able to see if or not there are such erratum occurrences in the output
binary. Also included in the CL is reading/recording mapping symbols,
which is needed during scan.
gold/ChangeLog:
* aarch64.cc (AArch64_insn_utilities): New utility class.
(AArch64_relobj::Mapping_symbol_position): New struct.
(AArch64_relobj::Mapping_symbol_info): New typedef.
(AArch64_relobj::do_count_local_symbols): New function overriding
parent's implementation.
(AArch64_relobj::mapping_symbol_info_): New member
(AArch64_relobj::scan_erratum_843419): New method.
(Target_aarch64::scan_erratum_843419_span): New method.
(Target_aarch64::is_erratum_843419_sequence): New method.
* options.h (fix_cortex_a53): New option.
commit e797481d53d846c8adb51576385fdf7f8cb272ac
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 16 12:23:26 2015 +0100
Fix {mi-tracepoint-changed, mi-tsv-changed}.exp with native-extended-gdbserver
Fixes:
-FAIL: gdb.trace/mi-tracepoint-changed.exp: reconnect: break-info 1
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: tracepoint created
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: tracepoint on marker is installed
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: break-info 1
-FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv1 created
-FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv2 created
+PASS: gdb.trace/mi-tsv-changed.exp: upload: tsv1 created
+PASS: gdb.trace/mi-tsv-changed.exp: upload: tsv2 created
These tests do something like this:
#0 - start gdb/gdbserver normally
#1 - setup some things in the debug session
#2 - disconnect from gdbserver
#3 - restart gdb
#4 - reconnect to gdbserver
The problem is that the native-extended-gdbserver board always spawns
a new gdbserver instance in #3 (and has gdb connect to that). So when
the test gets to #4, it connects to that new instance instead of the
old one:
(gdb) spawn ../gdbserver/gdbserver --multi :2354
Listening on port 2354
target extended-remote localhost:2354
Remote debugging using localhost:2354
...
spawn ../gdbserver/gdbserver --multi :2355
Listening on port 2355
47-target-select extended-remote localhost:2355
=tsv-created,name="trace_timestamp",initial="0"\n
47^connected
(gdb)
...
47-target-select extended-remote localhost:2355
47^connected
(gdb)
FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv1 created
FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv2 created
testsuite/ChangeLog:
2015-04-16 Pedro Alves <palves@redhat.com>
* boards/native-extended-gdbserver.exp (mi_gdb_start): Don't start
a new gdbserver if gdbserver_reconnect_p is set.
commit 1ca99c4299f4deed8765fbb1eb4f9aea40d919b6
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 16 14:26:59 2015 +0100
Fix gdbserver_reconnect_p handling
Commit 6423214f (testsuite: Don't use expect_background to reap
gdbserver) broke a couple tests that set gdbserver_reconnect_p and
restart gdb before reconnecting, because a gdb_exit (e.g., through
clean_restart) exits gdbserver unconditionally.
Fixes, with --target_board=native-gdbserver:
-FAIL: gdb.trace/mi-tracepoint-changed.exp: reconnect: break-info 1
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: tracepoint created
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: tracepoint on marker is installed
+PASS: gdb.trace/mi-tracepoint-changed.exp: reconnect: break-info 1
-FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv1 created
-FAIL: gdb.trace/mi-tsv-changed.exp: upload: tsv2 created
+PASS: gdb.trace/mi-tsv-changed.exp: upload: tsv1 created
+PASS: gdb.trace/mi-tsv-changed.exp: upload: tsv2 created
gdb/testsuite/
2015-04-16 Pedro Alves <palves@redhat.com>
* lib/gdbserver-support.exp (gdb_exit): If gdbserver_reconnect_p
is set, don't exit gdbserver.
commit 8550d3b32f4ac17bdb9e4768bb905da181b77ded
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Apr 16 13:48:10 2015 +0100
Honour software single step in fallback of displaced stepping
Hi,
When I run gdb.threads/non-stop-fair-events.exp on arm-linux target,
I see the following message in the debugging log,
displaced: breakpoint is gone: Thread 22518, step(1)^M
Sending packet: $vCont;s:p57f3.57f6#9d...
^^^^^^^^^
GDB sends vCont;s by mistake, and GDBserver fails on assert. GDB
doesn't consider software single step in infrun.c:displaced_step_fixup,
/* Go back to what we were trying to do. */
step = currently_stepping (tp);
if (debug_displaced)
fprintf_unfiltered (gdb_stdlog,
"displaced: breakpoint is gone: %s, step(%d)\n",
target_pid_to_str (tp->ptid), step);
target_resume (ptid, step, GDB_SIGNAL_0);
The patch is to let GDB consider software single step here. It fixes
fails in gdb.threads/non-stop-fair-events.exp on arm.
gdb:
2015-04-16 Yao Qi <yao.qi@linaro.org>
* infrun.c (maybe_software_singlestep): Declare.
(displaced_step_fixup): Call maybe_software_singlestep.
commit af9fd6f863c9f184e2c84d8a4707b3ec7b8ca67b
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Thu Apr 16 13:03:48 2015 +0200
s390-vregs.exp: Avoid compile errors with older GCCs and on 31-bit targets
The test case s390-vregs.exp yields compile errors on 31-bit targets
as well as when using a GCC that defaults to an older "-march=". This
patch fixes these issues.
gdb/testsuite/ChangeLog:
* gdb.arch/s390-vregs.S (change_vrs): Replace exrl by an
appropriate .insn, such that an older assembler can be used.
* gdb.arch/s390-vregs.exp: Add the compile flag -mzarch, to enable
the z/Architecture instruction set on 31-bit targets as well.
commit 04ff1e612ece7915c5c0f94c84f90f55e4c50059
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Thu Apr 16 13:03:47 2015 +0200
GDB tests for Go language support: remove unnecessary first breakpoint
On s390x targets some of the Go test cases fail because the first
breakpoint happens to be at the same spot as the breakpoint at
main.main. When such a test case tries to continue to the first
breakpoint, the program runs until the end instead, and the test fails
like this:
FAIL: gdb.go/handcall.exp: Going to first breakpoint (the program exited)
This patch removes all the handling related to the first breakpoint in
those cases. After applying the patch, the tests run successfully on
s390x.
gdb/testsuite/ChangeLog:
* gdb.go/handcall.exp: Remove all logic related to the first
breakpoint and rely on go_runto_main instead.
* gdb.go/strings.exp: Likewise.
* gdb.go/unsafe.exp: Likewise.
* gdb.go/hello.exp: Likewise. Also rename the remaining
breakpoint marker to "breakpoint 1".
* gdb.go/handcall.go: Remove comment "set breakpoint 1 here".
* gdb.go/strings.go: Likewise.
* gdb.go/unsafe.go: Likewise.
* gdb.go/hello.go: Likewise. Also remove the second occurrence of
"set breakpoint 2 here" and rename the remaining breakpoint marker
to "breakpoint 1".
commit 4c0cab1e212bd0f25879b00393bbb60e114ac724
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Apr 16 02:07:33 2015 -0400
sim: avr/mcore/moxie: fill out sim-cpu pc fetch/store helpers
This makes the common sim-cpu logic work.
commit 04be4e9eda6742d82fced4a3fc88b01f6cadc183
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 16 00:00:08 2015 +0000
Automatic date update in version.in
commit 09708981e919a887e8b2966e57b6df9ce8c7941f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 15 15:58:45 2015 -0700
Remove the unused PREFIX_UD_XXX
Remove the unused PREFIX_UD_XXX. Invalid opcodes should be handled by
prefix_table.
* i386-dis.c (PREFIX_UD_SHIFT): Removed.
(PREFIX_UD_REPZ): Likewise.
(PREFIX_UD_REPNZ): Likewise.
(PREFIX_UD_DATA): Likewise.
(PREFIX_UD_ADDR): Likewise.
(PREFIX_UD_LOCK): Likewise.
commit 30b3dd9d4701834573e6a6c071941c25d825cab8
Author: Doug Evans <dje@google.com>
Date: Wed Apr 15 14:04:35 2015 -0700
Make info fun|var|types interruptable for psyms.
gdb/ChangeLog:
* psymtab.c (psym_expand_symtabs_matching): Add QUIT call.
commit 61d96d7e2e0a44336fc53eb79ccb59b41705cdb3
Author: Doug Evans <dje@google.com>
Date: Wed Apr 15 13:25:42 2015 -0700
Make info fun|var|types interruptable.
"info fun foo" can be a pain when it's not interruptable,
especially if you're not exactly sure of what you're looking for
and provide something that matches too much.
gdb/ChangeLog:
* dwarf2read.c (dw2_expand_symtabs_matching): Add some QUIT calls.
commit 3888916da84288994be10d6ae1a2db5b45b3f8f8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 15 11:28:16 2015 -0700
Check dp->prefix_requirement instead
This patch removes prefix_requirement and checks dp->prefix_requirement
instead.
* i386-dis.c (prefix_requirement): Removed.
(print_insn): Don't set prefix_requirement. Check
dp->prefix_requirement instead of prefix_requirement.
commit f24bcbaa5a6e30556e2da20bfd78e7823741475a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 15 09:53:13 2015 -0700
Handle invalid prefixes for rdrand and rdseed
This patch puts rdrand and rdseed in prefix_table so that invalid
prefixes for rdrand and rdseed are handled properly.
gas/testsuite/
PR binutils/17898
* gas/i386/prefix.s: Add rdrand/rdseed prefix tests.
* gas/i386/prefix.d: Updated.
opcodes/
PR binutils/17898
* i386-dis.c (PREFIX_0FC7_REG_6): Renamed to ...
(PREFIX_MOD_0_0FC7_REG_6): This.
(PREFIX_MOD_3_0FC7_REG_6): New.
(PREFIX_MOD_3_0FC7_REG_7): Likewise.
(prefix_table): Replace PREFIX_0FC7_REG_6 with
PREFIX_MOD_0_0FC7_REG_6. Add PREFIX_MOD_3_0FC7_REG_6 and
PREFIX_MOD_3_0FC7_REG_7.
(mod_table): Replace PREFIX_0FC7_REG_6 with
PREFIX_MOD_0_0FC7_REG_6. Use PREFIX_MOD_3_0FC7_REG_6 and
PREFIX_MOD_3_0FC7_REG_7.
commit 507bd32558eb1c0054b7989d52ac1ab25cc5b0ac
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 15 09:24:45 2015 -0700
Replace mandatory_prefix with prefix_requirement
* i386-dis.c (PREFIX_MANDATORY_REPZ): Removed.
(PREFIX_MANDATORY_REPNZ): Likewise.
(PREFIX_MANDATORY_DATA): Likewise.
(PREFIX_MANDATORY_ADDR): Likewise.
(PREFIX_MANDATORY_LOCK): Likewise.
(PREFIX_MANDATORY): Likewise.
(PREFIX_UD_SHIFT): Set to 8
(PREFIX_UD_REPZ): Updated.
(PREFIX_UD_REPNZ): Likewise.
(PREFIX_UD_DATA): Likewise.
(PREFIX_UD_ADDR): Likewise.
(PREFIX_UD_LOCK): Likewise.
(PREFIX_IGNORED_SHIFT): New.
(PREFIX_IGNORED_REPZ): Likewise.
(PREFIX_IGNORED_REPNZ): Likewise.
(PREFIX_IGNORED_DATA): Likewise.
(PREFIX_IGNORED_ADDR): Likewise.
(PREFIX_IGNORED_LOCK): Likewise.
(PREFIX_OPCODE): Likewise.
(PREFIX_IGNORED): Likewise.
(Bad_Opcode): Replace PREFIX_MANDATORY with 0.
(dis386_twobyte): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
(three_byte_table): Likewise.
(mod_table): Likewise.
(mandatory_prefix): Renamed to ...
(prefix_requirement): This.
(prefix_table): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
Update PREFIX_90 entry.
(get_valid_dis386): Check prefix_requirement to see if a prefix
should be ignored.
(print_insn): Replace mandatory_prefix with prefix_requirement.
commit f0fba320ab5effaff5255b5526a37f0987637e3e
Author: Renlin Li <renlin.li@arm.com>
Date: Wed Apr 15 17:44:03 2015 +0100
[ARM] Disassembles SSAT and SSAT16 instructions incorrectly for Thumb-2
2015-04-15 Renlin Li <renlin.li@arm.com>
opcodes/:
* arm-dis.c (thumb32_opcodes): Define 'D' format control code,
use it for ssat and ssat16.
(print_insn_thumb32): Add handle case for 'D' control code.
gas/testsuite/:
* gas/arm/arch7em.d: Adjust required ssat and ssat16 immediate field.
* gas/arm/thumb32.d: Likewise.
commit 6282837972a5c7b89968319caf821fcbd2a166bb
Author: Romain Naour <romain.naour@openwide.fr>
Date: Tue Apr 14 23:07:34 2015 +0200
gdbserver: fix uClibc build whithout MMU.
Since commit d86d4aafd4fa22fa4cccb83253fb187b03f97f48, the pid
must be retrieved from current_thread.
The change has not been made in the function linux_read_offsets().
Fixes:
http://autobuild.buildroot.net/results/9e4/9e4df085319e346803c26c65478accb27eb950ae/build-end.log
2015-04-14 Romain Naour <romain.naour@openwide.fr> (tiny change)
* linux-low.c (linux_read_offsets): Remove get_thread_lwp.
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
commit 40d2f8d62e5474d984fb41e0229763ab93213fdb
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Wed Apr 15 11:54:33 2015 -0400
Some Python 3 fixes
Some missing parentheses and one itertools.imap (Py2) vs map (Py3) issue.
gdb/ChangeLog:
* python/lib/gdb/command/unwinders.py: Add parentheses.
gdb/testsuite/ChangeLog:
* gdb.python/py-framefilter.py (ErrorFilter.filter): Use map function
if itertools.imap is not present.
* gdb.python/py-objfile.exp: Add parentheses.
* gdb.python/py-type.exp: Same.
* gdb.python/py-unwind-maint.py: Same.
commit 6bbbba9ba5bcde0b2f4613e1bec3226cf567dcf9
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 15 15:09:53 2015 +0100
[arm] Update displaced stepping debug message
When I "set debug displaced 1" to fix fail in
gdb.base/disp-step-syscall.exp, the debug message is wrong. This
patch is to fix it.
gdb:
2015-04-15 Yao Qi <yao.qi@linaro.org>
* arm-linux-tdep.c (arm_linux_copy_svc): Update debug message.
commit 2bb2dcab455295cc23dec46f0150b15892ab4933
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 15 14:55:04 2015 +0100
Fix code indentation
gdb:
2015-04-15 Yao Qi <yao.qi@linaro.org>
* arm-linux-tdep.c (arm_linux_copy_svc): Fix indentation.
commit 41f071ef337ac55b7bd5366ef003fe47b809cdee
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 15 14:34:03 2015 +0100
[arm] Fix fails in gdb.base/disp-step-syscall.exp
Hi,
I see this fail on arm-linux target,
FAIL: gdb.base/disp-step-syscall.exp: fork: single step over fork final pc
which is caused by the PC isn't expected after displaced stepping the
svc instruction. The code is:
=> 0xb6ead9a4 <__libc_do_syscall+4>: svc 0
0xb6ead9a6 <__libc_do_syscall+6>: pop {r7, pc}
0xb6ead9a8: nop.w^M
0xb6ead9ac: nop.w
after single step svc instruction, pc should be 0xb6ead9a6, but the
actual value of pc is 0xb6ead9a8. The problem is illustrated by
turning on debug message of displaced stepping,
stepi^M
displaced: stepping Thread 12031 now^M
displaced: saved 0x8574: 02 bc 6a 46 04 b4 01 b4 df f8 10 c0 4d f8 04 cd 03 48 04 4b ff f7 d2 ef ff f7 e8 ef 0d 87 00 00 ^M
displaced: process thumb insn df00 at b6ead9a4^M
displaced: copying svc insn df00^M
displaced: read r7 value 00000078^M
displaced: sigreturn/rt_sigreturn SVC call not in signal trampoline frame^M
displaced: writing insn df00 at 00008574^M
displaced: copy 0xb6ead9a4->0x8574: displaced: check mode of b6ead9a4 instead of 00008574^M
displaced: displaced pc to 0x8574^M
displaced: run 0x8574: 00 df 01 de ^M
displaced: restored Thread 12031 0x8574^M
displaced: PC is apparently 00008576 after SVC step (within scratch space)^M
displaced: writing pc b6ead9a8 <----- WRONG ADDRESS
GDB writes the wrong address back to pc because GDB thinks the
instruction size is 4, which isn't true for thumb instruction.
This patch is to replace 4 with dsc->insn_size.
gdb:
2015-04-15 Yao Qi <yao.qi@linaro.org>
* arm-linux-tdep.c (arm_linux_cleanup_svc): Use
dsc->insn_size instead of 4.
commit 8cbc97c629061306efb30aa83440bec7380c584e
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 15 14:04:40 2015 +0100
Fix fails in gdb.dwarf2/dynarr-ptr.exp
I see many fails in gdb.dwarf2/dynarr-ptr.exp on arm-linux target,
started from this
print foo.three_ptr.all^M
Cannot access memory at address 0x107c8^M
(gdb) FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr.all
print foo.three_ptr.all(1)^M
Cannot access memory at address 0x107c8
It turns out that ":$ptr_size" is used incorrectly.
array_ptr_label: DW_TAG_pointer_type {
{DW_AT_byte_size :$ptr_size }
^^^^^^^^^^
{DW_AT_type :$array_label}
}
Since the FORM isn't given, and it starts with the ":", it is regarded
as a label reference by dwarf assembler. The generated asm file on
x86_64 is
.uleb128 6 /* Abbrev (DW_TAG_pointer_type) */
.4byte 8 - .Lcu1_begin <----- WRONG
.4byte .Llabel2 - .Lcu1_begin
Looks .Lcu1_begin is 0 on x86_64 and that is why this test passes on
x86_64. On arm, .Lcu1_begin is an address somewhere, and the value
of DW_AT_byte_size is a very large number, so memory read request
of such large length failed.
This patch is to remove ":" and set the form explicitly. The generated
asm file on x86_64 becomes
.uleb128 6 /* Abbrev (DW_TAG_pointer_type) */
.byte 8
.4byte .Llabel2 - .Lcu1_begin
gdb/testsuite:
2015-04-15 Yao Qi <yao.qi@linaro.org>
* gdb.dwarf2/dynarr-ptr.exp (assemble): Use $ptr_size instead
of ":$ptr_size" and set its form explicitly.
commit ea556d2590ae9ffea09fdbaceb6abdbe4e921464
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 15 05:25:58 2015 -0700
Mention --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
binutils/
* NEWS: Mention
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi].
gas/
* NEWS: Mention
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi].
ld/
* NEWS: Mention
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi].
commit 45fd756cafe258b9792b86e1f5df823ec0b848b4
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 15 12:46:58 2015 +0100
Increase timeout in watch-bitfields.exp for software watchpoint
I see the following two timeout fails on pandaboard (arm-linux target),
FAIL: gdb.base/watch-bitfields.exp: -location watch against bitfields: continue until exit (timeout)
FAIL: gdb.base/watch-bitfields.exp: regular watch against bitfields: continue until exit (timeout)
In this test, more than one watchpoint is used, so the following
watchpoint requests fall back to software watchpoint, so that GDB
will single step all the way and it is very slow.
This patch is to copy the fix from
[PATCH] GDB/testsuite: Correct gdb.base/watchpoint-solib.exp timeout tweak
https://sourceware.org/ml/gdb-patches/2014-07/msg00716.html
I find the left-over of this patch review is to factor out code into
a procedure, so I do that in this patch.
Re-run tests watch-bitfields.exp, watchpoint-solib.exp, sigall-reverse.exp,
and until-precsave.exp on pandaboard, no regression.
gdb/testsuite:
2015-04-15 Pedro Alves <palves@redhat.com>
Yao Qi <yao.qi@linaro.org>
* gdb.base/watch-bitfields.exp (test_watch_location): Increase
timeout by factor of 4.
(test_regular_watch): Likewise.
* gdb.base/watchpoint-solib.exp: Use with_timeout_factor.
* gdb.reverse/sigall-reverse.exp: Likewise.
* gdb.reverse/until-precsave.exp: Likewise.
* lib/gdb.exp (with_timeout_factor): New proc.
(gdb_expect): Move some code to ...
(get_largest_timeout): ... here. New procedure.
commit 78e9aa70febc3985a2c88dbc0c7a87d214231c3d
Author: Mike Frysinger <vapier@gentoo.org>
Date: Wed Apr 15 02:13:23 2015 -0400
sim: unify sim-cpu usage
Now that all the targets are utilizing CPU_PC_{FETCH,STORE}, and the
cpu state is multicore, and the STATE_CPU defines match, we can move
it all to the common code.
commit f95f4ed2c4680fea68399691481b277ece11570e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Wed Apr 15 01:22:34 2015 -0400
sim: cris/frv/h8300/iq2000/lm32/m32r/sh64: standardize cpu state
This sets up the sim_state structure and the cpu member to match what we
do in most other sims, and what the common code suggests. This is a step
to unifying on the sim-cpu.o object.
commit 0ce398f106dac65c3a1d2f7d254213fa652af089
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Apr 14 22:01:25 2015 -0700
Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
This patch adds --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
to ld for ELF targets to support generating compressed DWARF debug
sections. We always generate .zdebug_* section since section names have
been finalized and they can't be changed easily when compression is
being performed.
bfd/
* bfd-in.h (compressed_debug_section_type): New.
* compress.c (bfd_compress_section_contents): Add an argument
for linker write compression and always generate .zdebug_*
section when linking.
(bfd_init_section_compress_status): Pass FALSE to
bfd_compress_section_contents.
(bfd_compress_section): New function.
* elf.c (elf_fake_sections): For linking, set SEC_ELF_COMPRESS
on DWARF debug sections if COMPRESS_DEBUG is set and rename
section if COMPRESS_DEBUG_GABI_ZLIB isn't set.
(assign_file_positions_for_non_load_sections): Set sh_offset
to -1 if SEC_ELF_COMPRESS is set.
(assign_file_positions_except_relocs): Likwise.
(_bfd_elf_assign_file_positions_for_relocs): Renamed to ...
(_bfd_elf_assign_file_positions_for_non_load): This. Change
return time to bfd_boolean. Compress the section if
SEC_ELF_COMPRESS is set.
(_bfd_elf_write_object_contents): Updated.
(_bfd_elf_set_section_contents): Write section contents to
the buffer if SEC_ELF_COMPRESS is set.
* merge.c: Include "elf-bfd.h".
(sec_merge_emit): Add arguments for contents and offset. Write
to contents with offset if contents isn't NULL.
(_bfd_write_merged_section): Write section contents to the
buffer if SEC_ELF_COMPRESS is set. Pass contents and
output_offset to sec_merge_emit.
* elflink.c (bfd_elf_final_link): Allocate the buffer for
output section contents if SEC_ELF_COMPRESS is set.
* section.c (SEC_ELF_COMPRESS): New.
* bfd-in2.h: Regenerated.
gas/
* as.h (compressed_debug_section_type): Removed.
include/
* bfdlink.h (bfd_link_info): Add compress_debug.
ld/
* ld.texinfo: Document --compress-debug-sections=.
* ldmain.c (main): Set BFD_COMPRESS on output_bfd if
COMPRESS_DEBUG is set. Set BFD_COMPRESS_GABI on output_bfd
for COMPRESS_DEBUG_GABI_ZLIB.
* lexsup.c (elf_static_list_options): Add
--compress-debug-sections=.
* emultempl/elf32.em (OPTION_COMPRESS_DEBUG): New.
(xtra_long): Add "compress-debug-sections".
(gld${EMULATION_NAME}_handle_option): Handle
OPTION_COMPRESS_DEBUG.
ld/testsuite/
* ld-elf/compress.exp (build_tests): Add tests for
--compress-debug-sections=.
(run_tests): Likewise.
Add additonal tests for --compress-debug-sections=.
* ld-elf/gabiend.rt: New file.
* ld-elf/gabinormal.rt: Likewise.
* ld-elf/gnubegin.rS: Likewise.
* ld-elf/gnunormal.rS: Likewise.
* ld-elf/zlibbegin.rS: Likewise.
* ld-elf/zlibnormal.rS: Likewise.
commit ecd272101d27ed8d654cbab9972aa05c124f981c
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 15 11:59:10 2015 +0930
xfail pr18223 test for tic6x
Fails due to
warning: generating a shared library containing non-PIC/PID code
* ld-gc/pr18223.d: xfail tic6x.
commit a644aa893248fc27c50140f9022c3a7472e0cb53
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Wed Apr 15 04:11:18 2015 +0200
Fix typo in last ChangeLog.
commit ec5b9462e068fba2a571ab3f3943c48250048d3c
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Wed Apr 15 04:08:21 2015 +0200
Adjust src-release.sh for sim using the gdb create-version.sh.
* sim-release.sh (tar_compress): If there's a fifth parameter,
use that in the getver call instead of $tool.
(sim_release): Pass gdb as fifth parameter to tar_compress.
(SIM_SUPPORT_DIRS): Add gdb/common/create-version.sh.
commit 95b57adeb751b56a1192867f9f1e1be2fad608dd
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 15 11:24:30 2015 +0930
Fix typo in commit 6ff71e76
* elf32-rl78.c (rl78_elf_relocate_section): Typo fix.
commit 69cb14a0d7eebe90e60e911c9ab311553079c6d1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 15 00:00:07 2015 +0000
Automatic date update in version.in
commit 6ff71e768112317de1236a429e7c88c9d3e32116
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Apr 14 16:23:33 2015 +0100
Adds support to the RL78 port for linker relaxation affecting .debug sections.
gas * config/tc-rl78.h (TC_LINKRELAX_FIXUP): Define.
(TC_FORCE_RELOCATION_SUB_SAME): Define.
(DWARF2_USE_FIXED_ADVANCE_PC): Define.
* gas/lns/lns.exp: Add RL78 to list of targets using
DW_LNS_fixed_advance_pc.
bfd * elf32-rl78.c (RL78_OP_REL): New macro.
(rl78_elf_howto_table): Use it for complex relocs.
(get_symbol_value): Handle the cases when the info or status
arguments are NULL.
(get_romstart): Cache the status returned by get_symbol_value.
(get_ramstart): Likewise.
(RL78_STACK_PUSH): Generate an error message if the stack
overflows.
(RL78_STACK_POP): Likewise for underflows.
(rl78_compute_complex_reloc): New function. Contains the basic
processing code for all RL78 complex relocs.
(rl78_special_reloc): New function. Provides special reloc
handling for complex relocs.
(rl78_elf_relocate_section): Use rl78_compute_complex_reloc.
(rl78_offset_for_reloc): Likewise.
binutils* readelf.c (target_specific_reloc_handling): Add code to handle
RL78 complex relocs.
commit 9e811bc379ef78f0e2beadda9ed3ce6679ded7ea
Author: Luis Machado <lgustavo@codesourcery.com>
Date: Tue Apr 14 09:22:53 2015 -0300
Harden gdb.base/bp-permanent.exp
Reinstate test message and replace hardcoded test command with a variable.
gdb/testsuite/ChangeLog:
2015-04-14 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/bp-permanent.exp (test): Reinstate correct test message.
commit 326a5c7e368d49251ad48b2091388d8f424bfc54
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Apr 14 12:35:30 2015 +0100
Zero supplied stat buffers in functions that pretend to stat
GDB has five places where it pretends to stat for bfd_openr_iovec.
Four of these only set the incoming buffer's st_size, leaving the
other fields unchanged, which is to say very likely populated with
random values from the stack. remote_bfd_iovec_stat was fixed in
0a93529c56714b1da3d7106d3e0300764f8bb81c; this commit fixes the
other four.
gdb/ChangeLog:
* jit.c (mem_bfd_iovec_stat): Zero supplied buffer.
* minidebug.c (lzma_stat): Likewise.
* solib-spu.c (spu_bfd_iovec_stat): Likewise.
* spu-linux-nat.c (spu_bfd_iovec_stat): Likewise.
commit 889c2a67967f7047c245779a0a0fd8ba8796846e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Apr 14 04:12:55 2015 -0700
Add -z noextern-protected-data to ld for ELF/x86
Address of protected data defined in the shared library may be external,
i.e., due to copy relocation. By default, linker backend checks if
relocations against protected data symbols are valid for building shared
library and issues an error if relocation isn't allowed. The new option
override linker backend default. When -z noextern-protected-data is used,
updates on protected data symbols by another module won't be visibile
to the resulting shared library. This option is specific to ELF/i386
and ELF/x86-64.
bfd/
PR ld/pr17709
* elflink.c (_bfd_elf_adjust_dynamic_copy): Check
info->extern_protected_data when warning copy relocs against
protected symbols.
(_bfd_elf_symbol_refs_local_p): Check info->extern_protected_data
when checking protected non-function symbols.
include/
PR ld/pr17709
* bfdlink.h (bfd_link_info): Add extern_protected_data.
ld/
PR ld/pr17709
* ld.texinfo: Document "-z noextern-protected-data".
* ldmain.c (main): Initialize link_info.extern_protected_data
to -1.
* lexsup.c (elf_shlib_list_options): Add
"-z [no]extern-protected-data".
* emulparams/elf32_x86_64.sh: Source extern_protected_data.sh.
* 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_k1om.sh: Likewise.
* emulparams/elf_l1om.sh: Likewise.
* emulparams/elf_x86_64.sh: Source extern_protected_data.sh.
(PARSE_AND_LIST_OPTIONS): Renamed to ...
(PARSE_AND_LIST_OPTIONS_BNDPLT): This.
(PARSE_AND_LIST_ARGS_CASE_Z): Renamed to ...
(PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT): This.
(PARSE_AND_LIST_OPTIONS): Append $PARSE_AND_LIST_OPTIONS_BNDPLT.
(PARSE_AND_LIST_ARGS_CASE_Z): Append
$PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT.
* emulparams/extern_protected_data.sh: New file.
ld/testsuite/
PR ld/pr17709
* ld-i386/i386.exp: Run protected6b.
* ld-i386/protected6b.d: New file.
* ld-x86-64/protected6b.d: Likewise.
* ld-x86-64/x86-64.exp: Run protected6b.
commit 887bddbcad907021f4cb98168cd51f2631e6cfc8
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 23:16:46 2015 -0400
sim: ppc: fix up version script
The common sim code has switched to using gdb directly; update the
ppc copy too.
commit af6407fc3c57a6fc9af11bab876d0865265197cf
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 14 00:00:08 2015 +0000
Automatic date update in version.in
commit dd177e81b4d58a520b1a16e1c992a4ea94ab7de5
Author: Stan Shebs <stanshebs@google.com>
Date: Fri Apr 10 11:06:52 2015 -0700
* MAINTAINERS: Update my email address.
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index a67a1a8..0fdd8e5 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -156,7 +156,7 @@ Doug Evans dje@google.com
Daniel Jacobowitz drow@false.org
Mark Kettenis kettenis@gnu.org
Yao Qi yao.qi@arm.com
-Stan Shebs stan@codesourcery.com
+Stan Shebs stanshebs@google.com
Ulrich Weigand Ulrich.Weigand@de.ibm.com
Elena Zannoni elena.zannoni@oracle.com
Eli Zaretskii eliz@gnu.org
@@ -631,7 +631,7 @@ Keith Seitz keiths@redhat.com
Carlos Eduardo Seo cseo@linux.vnet.ibm.com
Ozkan Sezer sezeroz@gmail.com
Marcus Shawcroft marcus.shawcroft@arm.com
-Stan Shebs stan@codesourcery.com
+Stan Shebs stanshebs@google.com
Joel Sherrill joel.sherrill@oarcorp.com
Mark Shinwell shinwell@codesourcery.com
Craig Silverstein csilvers@google.com
commit 97de3545ca6b690031cc00983346ed72f11e78a2
Author: John Baldwin <jhb@FreeBSD.org>
Date: Sat Feb 21 16:43:30 2015 -0500
Add support for the x86 XSAVE extended state on FreeBSD/x86.
Recognize NT_X86_XSTATE notes in FreeBSD process cores. Recent
FreeBSD versions include a note containing the XSAVE state for each
thread in the process when XSAVE is in use. The note stores a copy of
the current XSAVE mask in a reserved section of the machine-defined
XSAVE state at the same offset as Linux's NT_X86_XSTATE note.
For native processes, use the PT_GETXSTATE_INFO ptrace request to
determine if XSAVE is enabled, and if so the active XSAVE state mask
(that is, the value of %xcr0 for the target process) as well as the
size of XSAVE state area. Use the PT_GETXSTATE and PT_SETXSTATE requests
to fetch and store the XSAVE state, respectively, in the BSD x86
native targets.
In addition, the FreeBSD amd64 and i386 native targets now include
"read_description" target methods to determine the correct x86 target
description for the current XSAVE mask. On FreeBSD amd64 this also
properly returns an i386 target description for 32-bit binaries which
allows the 64-bit GDB to run 32-bit binaries.
Note that the ptrace changes are in the BSD native targets, not the
FreeBSD-specific native targets since that is where the other ptrace
register accesses occur. Of the other BSDs, NetBSD and DragonFly use
XSAVE in the kernel but do not currently export the extended state via
ptrace(2). OpenBSD does not currently support XSAVE.
bfd/ChangeLog:
* elf.c (elfcore_grok_note): Recognize NT_X86_XSTATE on
FreeBSD.
(elfcore_write_xstatereg): Use correct note name on FreeBSD.
gdb/ChangeLog:
* amd64-tdep.c (amd64_target_description): New function.
* amd64-tdep.h: Export amd64_target_description and tdesc_amd64.
* amd64bsd-nat.c [PT_GETXSTATE_INFO]: New variable amd64bsd_xsave_len.
(amd64bsd_fetch_inferior_registers) [PT_GETXSTATE_INFO]: Handle
x86 extended save area.
(amd64bsd_store_inferior_registers) [PT_GETXSTATE_INFO]: Likewise.
* amd64bsd-nat.h: Export amd64bsd_xsave_len.
* amd64fbsd-nat.c (amd64fbsd_read_description): New function.
(_initialize_amd64fbsd_nat): Set "to_read_description" to
"amd64fbsd_read_description".
* amd64fbsd-tdep.c (amd64fbsd_core_read_description): New function.
(amd64fbsd_supply_xstateregset): New function.
(amd64fbsd_collect_xstateregset): New function.
Add "amd64fbsd_xstateregset".
(amd64fbsd_iterate_over_regset_sections): New function.
(amd64fbsd_init_abi): Set "xsave_xcr0_offset" to
"I386_FBSD_XSAVE_XCR0_OFFSET".
Add "iterate_over_regset_sections" gdbarch method.
Add "core_read_description" gdbarch method.
* i386-tdep.c (i386_target_description): New function.
* i386-tdep.h: Export i386_target_description and tdesc_i386.
* i386bsd-nat.c [PT_GETXSTATE_INFO]: New variable i386bsd_xsave_len.
(i386bsd_fetch_inferior_registers) [PT_GETXSTATE_INFO]: Handle
x86 extended save area.
(i386bsd_store_inferior_registers) [PT_GETXSTATE_INFO]: Likewise.
* i386bsd-nat.h: Export i386bsd_xsave_len.
* i386fbsd-nat.c (i386fbsd_read_description): New function.
(_initialize_i386fbsd_nat): Set "to_read_description" to
"i386fbsd_read_description".
* i386fbsd-tdep.c (i386fbsd_core_read_xcr0): New function.
(i386fbsd_core_read_description): New function.
(i386fbsd_supply_xstateregset): New function.
(i386fbsd_collect_xstateregset): New function.
Add "i386fbsd_xstateregset".
(i386fbsd_iterate_over_regset_sections): New function.
(i386fbsd4_init_abi): Set "xsave_xcr0_offset" to
"I386_FBSD_XSAVE_XCR0_OFFSET".
Add "iterate_over_regset_sections" gdbarch method.
Add "core_read_description" gdbarch method.
* i386fbsd-tdep.h: New file.
commit 0d2a7a932244fab27d6c4ce211ea8f7708a1a9cc
Author: Doug Evans <dje@google.com>
Date: Mon Apr 13 12:50:17 2015 -0700
Fix reading of .debug_str_offsets{,.dwo} twice.
PR binutils/18218
* readelf.c (printable_section_name): Constify sec argument.
(apply_relocations): Ditto. New arg "size". All callers updated.
(load_specific_debug_section): Constify sec argument.
Remove side-effect of modifying sec->sh_size.
commit 0ff6fcb2f0f2e3c0de3708ec41fb849d1461c9d7
Author: Luis Machado <lgustavo@codesourcery.com>
Date: Mon Apr 13 14:45:56 2015 -0300
Harden gdb.base/bp-permanent.exp
This testcase does not work as expected in QEMU (aarch64 QEMU in my case). It
fails when trying to manually write the breakpoint instruction to a certain
PC address.
(gdb) p /x addr_bp[0] = buffer[0]^M
Cannot access memory at address 0x400834^M
(gdb) PASS: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: setup: p /x addr_bp[0] = buffer[0]
p /x addr_bp[1] = buffer[1]^M
Cannot access memory at address 0x400835^M
(gdb) PASS: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: setup: p /x addr_bp[1] = buffer[1]
p /x addr_bp[2] = buffer[2]^M
Cannot access memory at address 0x400836^M
(gdb) PASS: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: setup: p /x addr_bp[2] = buffer[2]
p /x addr_bp[3] = buffer[3]^M
Cannot access memory at address 0x400837^M
(gdb) PASS: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: setup: p /x addr_bp[3] = buffer[3]
The following patch prevents a number of failures by detecting this and bailing out in case the target has such a restriction. Writing to .text from within the program isn't any better. It just leads to a SIGSEGV.
Before the patch:
=== gdb Summary ===
After the patch:
=== gdb Summary ===
gdb/testsuite/ChangeLog:
2015-04-13 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/bp-permanent.exp (test): Handle the case of being unable
to write to the .text section.
commit 7578d5f72c4abb6b49b0394bc810192b06088705
Author: Luis Machado <lgustavo@codesourcery.com>
Date: Mon Apr 13 14:42:48 2015 -0300
Harden gdb.base/coredump-filter.exp
This testcase seems to assume the target is running Linux, so bare metal,
simulators and other debugging stubs running different OS' will have a
hard time executing some of the commands the testcase issues.
Even restricting the testcase to Linux systems (which the patch below does),
there are still problems with, say, QEMU not providing PID information when
"info inferior" is issued. As a consequence, the subsequent tests will either
fail or will not make much sense.
The attached patch checks if PID information is available. If not, it just
bails out and avoids running into a number of failures.
gdb/testsuite/ChangeLog:
2015-04-13 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/coredump-filter.exp: Restrict test to Linux systems only.
Handle the case of targets that do not provide PID information.
commit 2efe15c42872987ed5123f3a3952c8b379554840
Author: Yao Qi <yao.qi@linaro.org>
Date: Mon Apr 13 12:36:56 2015 +0100
Catch exception in lib/gdbserver-support.exp:gdb_exit
I see the error when I run gdb-sigterm.exp with native-gdbserver
on x86_64-linux.
infrun: prepare_to_wait^M
Cannot execute this command while the target is running.^M
Use the "interrupt" command to stop the target^M
and then try again.^M
gdb.base/gdb-sigterm.exp: expect eof #0: got eof
gdb.base/gdb-sigterm.exp: expect eof #0: stepped 12 times
ERROR OCCURED: : spawn id exp8 not open
while executing
"expect {
-i exp8 -timeout 10
-re "$gdb_prompt $" {
exp_continue
}
-i "$server_spawn_id" eof {
wait -i $expect_out(spawn_id)
unse..."
("uplevel" body line 1)
invoked from within
In gdb-sigterm.exp, SIGTERM is sent to GDB and it exits. However,
Dejagnu or tcl doesn't know this.
This patch is to catch the exception, but error messages are still
shown in the console and gdb.log. In order to avoid this, we also
replace gdb_expect with expect.
gdb/testsuite:
2015-04-13 Yao Qi <yao.qi@linaro.org>
* lib/gdbserver-support.exp (gdb_exit): Catch exception
and use expect instead of gdb_expect.
commit f0bf6bfd70fd550a0b01f8bef938a205702b0465
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 13 04:58:16 2015 -0700
Don't check object claimed by plugin
When ELF linker backend searchs the symbol table of an archive element,
it should skip the object which has been claimed by plugin.
PR ld/18250
* elflink.c (elf_link_is_defined_archive_symbol): Return FALSE
if the object has been claimed by plugin.
commit 8cd8f2f8ac49276437b7da37f275706ea1c1c925
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Mon Apr 13 02:40:08 2015 -0400
Rename variable "addr" to "coredump_var_addr" in gdb.base/coredump-filter.exp
This commit renames the global array variable "addr" to an unique name
"coredump_var_addr" in the test gdb.base/coredump-filter.exp. This is
needed because global arrays can have name conflicts between tests.
For example, this specific test was conflicting with dmsym.exp,
causing errors like:
ERROR: tcl error sourcing ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp.
ERROR: can't set "addr": variable is array
while executing
"set addr "0x\[0-9a-zA-Z\]+""
(file "../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp" line 45)
invoked from within
"source ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp"
("uplevel" body line 1)
invoked from within
"uplevel #0 source ../../../../../binutils-gdb/gdb/testsuite/gdb.base/dmsym.exp"
invoked from within
"catch "uplevel #0 source $test_file_name""
This problem was reported by Yao Qi at:
<https://sourceware.org/ml/gdb-patches/2015-04/msg00373.html>
Message-Id: <1428666671-12926-1-git-send-email-qiyaoltc@gmail.com>
gdb/testsuite/ChangeLog:
2015-04-13 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/coredump-filter.exp: Rename variable "addr" to
"coredump_var_addr" to avoid naming conflict with other testcases.
commit bf12d44ee075e694a2b0dca87b9e9ca0e685d319
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:38:57 2015 -0400
sim: fix the PKGVERSION define
This should be SIM, not GDB.
commit a542beff945c1a416f85309d57b21d4a18422883
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:33:26 2015 -0400
sim: options: add --version support
The old run frontend had a --version option, but the new common
sim-options file does not. Restore support for that so we can
get version info out of `run` when using the new frontend.
commit 8c32ba22334b8be1c2cf412a789deeded786e1f5
Author: Mike Frysinger <vapier@gentoo.org>
Date: Fri Apr 10 19:40:54 2015 -0400
sim: switch to gdb version script
Since the local create-version.sh already points directly into the gdb
source tree, we might as well use the gdb script directly too.
commit 64f14c970716647f0761e921141873c75071100f
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:13:48 2015 -0400
sim: mn10300: convert to sim-cpu
Make cpu allocation fully dynamic so we can leverage the common
sim-cpu and its APIs.
commit 14c9ad2edb6e0bb0b560fa45699b83d85aa28b94
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:11:24 2015 -0400
sim: v850: convert to sim-cpu
Make cpu allocation fully dynamic so we can leverage the common
sim-cpu and its APIs.
commit 7bebb329bbad32b948939c5f437b2b4eebe7e9fd
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:09:55 2015 -0400
sim: mips: convert to sim-cpu
Make cpu allocation fully dynamic so we can leverage the common
sim-cpu and its APIs.
commit bea3f671c5734eb96a02055fbaa0c938ad535b66
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 02:07:23 2015 -0400
sim: m68hc11: convert to sim-cpu
Make cpu allocation fully dynamic so we can leverage the common
sim-cpu and its APIs.
commit 8ac57fbde478b8e8fb0ba169f620d713be319260
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 01:56:13 2015 -0400
sim: mips: fix prototype warnings
Convert a bunch of old style prototypes and tweak various casts
to match the function signatures.
commit 65f9096890a7bd7a7ea2655dcfb0e0a2589a753b
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 13 01:54:33 2015 -0400
sim: ft32: fix ft32_pc_get logic
commit d34f5e83d404d28d6a264fb09ac3cec79bf7bead
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 13 00:00:08 2015 +0000
Automatic date update in version.in
commit a9d9677441e54816aa76ffd1736419ec096b4ef1
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Mon Apr 13 01:54:43 2015 +0200
Do unset_currtarget_info ldscript for all simulator testsuites.
sim/testsuite:
* sim-defs.exp (sim_init): Unset target ldscript here.
sim/testsuite/sim/mips:
* basic.exp: Don't unset target ldscript here.
commit e787f858a43c9a6b54a74cec24f954b52619433e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 12 05:47:39 2015 -0400
sim: arm/mips: fix sim_read/sim_write linkage errors
With sim-hrw.o being built & linked in the common list, some people are
getting linking errors now for these targets. Move the main objects that
provide these functions before the common list to avoid that.
commit 29f1a5934a1b4b3b22aaeee2c4c471fbd95f0ba2
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 12 05:13:23 2015 -0400
sim: ft32: delete sim_read/sim_write funcs
The common sim-hrw.o provides both of these, so simply use them.
commit 48d96f80be260f0c8dbece14f886a0f1c1166d82
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 11 17:05:04 2015 -0700
Revert the last 2 commits on pagesize_m1
commit e46c4f6cc80e078ef5f7dd0a7dcc01740bea3e65
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 12 00:00:08 2015 +0000
Automatic date update in version.in
commit 263b1a3c1f9be7a3bafdb26d69f808974f886680
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 11 16:49:09 2015 -0700
Don't call getpagesize more than once
commit 2c008f9a5b65fe8d9379e761b056fabeb34a5da6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 11 15:12:08 2015 -0700
Initialize pagesize_m1 in bfd_cache_init
There is no need to check and initialize pagesize_m1 in cache_bmmap.
* cache.c (cache_bmmap): Move pagesize_m1 ... to
(pagesize_m1): Here.
(bfd_cache_init): Initialize pagesize_m1.
commit fd5a150943c9a99a568ea6459a5d70a24dee3755
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 11 12:06:33 2015 -0700
Remove an extra ';'
* plugin.c (plugin_load_plugins): Removed an extra ';'.
commit 4f45d44599b232266c49ff470868efe6771832a0
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Apr 11 19:49:03 2015 +0200
Remove --xdb
Pedro Alves:
The commands that enables aren't even documented in the manual.
Judging from that, I assume that only wdb users would ever really
be using the --xdb switch.
I think it's time to drop "support" for the --xdb switch too. I
looked through the commands that that exposes, the only that looked
potentially interesting was "go", but then it's just an alias
for "tbreak+jump", which can easily be done with "define go...end".
I'd rather free up the "go" name for something potentially
more interesting (either run control, or maybe even unrelated,
e.g., for golang).
gdb/ChangeLog
2015-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* NEWS (Changes since GDB 7.9): Add removed -xdb.
* breakpoint.c (command_line_is_silent): Remove xdb_commands
conditional.
(_initialize_breakpoint): Remove xdb_commands for bc, ab, sb, db, ba
and lb.
* cli/cli-cmds.c (_initialize_cli_cmds): Remove xdb_commands for v and
va.
* cli/cli-decode.c (find_command_name_length): Remove xdb_commands
conditional.
* defs.h (xdb_commands): Remove declaration.
* f-valprint.c (_initialize_f_valprint): Remove xdb_commands for lc.
* guile/scm-cmd.c (command_classes): Remove xdb from comment.
* infcmd.c (run_no_args_command, go_command): Remove.
(_initialize_infcmd): Remove xdb_commands for S, go, g, R and lr.
* infrun.c (xdb_handle_command): Remove.
(_initialize_infrun): Remove xdb_commands for lz and z.
* main.c (xdb_commands): Remove variable.
(captured_main): Remove "xdb" from long_options.
(print_gdb_help): Remove --xdb from help.
* python/py-cmd.c (gdbpy_initialize_commands): Remove xdb from comment.
* source.c (_initialize_source): Remove xdb_commands for D, ld, / and ?.
* stack.c (backtrace_full_command, args_plus_locals_info)
(current_frame_command): Remove.
(_initialize_stack): Remove xdb_commands for t, T and l.
* symtab.c (_initialize_symtab): Remove xdb_commands for lf and lg.
* thread.c (_initialize_thread): Remove xdb_commands condition.
* tui/tui-layout.c (tui_toggle_layout_command)
(tui_toggle_split_layout_command, tui_handle_xdb_layout): Remove.
(_initialize_tui_layout): Remove xdb_commands for td and ts.
* tui/tui-regs.c (tui_scroll_regs_forward_command)
(tui_scroll_regs_backward_command): Remove.
(_initialize_tui_regs): Remove xdb_commands for fr, gr, sr, +r and -r.
* tui/tui-win.c (tui_xdb_set_win_height_command): Remove.
(_initialize_tui_win): Remove xdb_commands for U and w.
* utils.c (pagination_on_command, pagination_off_command): Remove.
(initialize_utils): Remove xdb_commands for am and sm.
gdb/doc/ChangeLog
2015-04-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo (Mode Options): Remove -xdb.
commit e3c0e327923e27c7d96e6e44e22e10998ff158d7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 11 07:34:49 2015 -0700
Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL
When checking R_386_GOTOFF/R_X86_64_GOTOFF64 for building shared library,
we should check SYMBOL_REFERENCES_LOCAL instead of SYMBOLIC_BIND to cover
more cases.
bfd/
* elf32-i386.c (elf_i386_relocate_section): Replace SYMBOLIC_BIND
with SYMBOL_REFERENCES_LOCAL when checking R_386_GOTOFF against
protected data symbol when building shared library.
* elf64-x86-64.c (elf_x86_64_relocate_section): Check
R_X86_64_GOTOFF64 against undefined symbol and replace
SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL when checking
R_X86_64_GOTOFF64 against protected data symbol when building
shared library.
ld/testsuite/
* ld-i386/i386.exp: Run protected6a.
* ld-i386/protected6.d: Renamed to ...
* ld-i386/protected6a.d: This.
* ld-x86-64/hidden4.d: New file.
* ld-x86-64/hidden4.s: Likewise.
* ld-x86-64/hidden5.d: Likewise.
* ld-x86-64/hidden5.s: Likewise.
* ld-x86-64/protected6.d: Renamed to ...
* ld-x86-64/protected6a.d: This.
* ld-x86-64/x86-64.exp: Run hidden4, hidden5, protected6a,
protected7a and protected7b.
commit fbed9c2759d43ea6991264c2e963660b5e9202d1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 11 00:00:08 2015 +0000
Automatic date update in version.in
commit 3d9499950a94df8577fa01ba98ec0d58f07fd9c0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 10 14:02:23 2015 -0700
Check GOTOFF reloc against protected data on x86
R_386_GOTOFF/R_X86_64_GOTOFF64 relocation shouldn't be used against
protected data symbol on x86 since with copy relocation, address of
protected data defined in the shared library may be external.
This patch will break building shared libraries with protected data
symbols using GCCs older than GCC 5 without the bug fix for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
GCC backport request should be made in the GCC bug report above.
bfd/
PR ld/pr17709
* elf32-i386.c (elf_i386_relocate_section): Also check R_386_GOTOFF
against protected data symbol when building shared library.
* elf64-x86-64.c (elf_x86_64_relocate_section): Also check
R_X86_64_GOTOFF64 against protected data symbol when building
shared library.
ld/testsuite/
PR ld/pr17709
* ld-i386/protected6.d: New file.
* ld-i386/protected6.s: Likewise.
* ld-x86-64/protected6.d: Likewise.
* ld-x86-64/protected6.s: Likewise.
* ld-x86-64/protected7.d: Likewise.
* ld-x86-64/protected7.s: Likewise.
* ld-x86-64/protected7a.d: Likewise.
* ld-x86-64/protected7b.d: Likewise.
commit 9ee417720b2f25c56a9738569b63f686cbc8584f
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 19:02:30 2015 +0000
Cleanup signal-while-stepping-over-bp-other-thread.exp
gdb/testsuite/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* gdb.threads/signal-while-stepping-over-bp-other-thread.exp: Use
gdb_test_sequence and gdb_assert.
commit 07473109e11e41d979c33b839551ac1c6f8495b9
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 19:23:24 2015 +0100
step-over-trips-on-watchpoint.exp: Don't put addresses in test messages
Diffing test results, I noticed:
-PASS: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: b *0x0000000000400811 thread 1
+PASS: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: b *0x00000000004007d1 thread 1
gdb/testsuite/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* gdb.threads/step-over-trips-on-watchpoint.exp (do_test): Use
test messages that don't include the breakpoint address.
commit f74839702efcea048ac61374b1539ae81e7c86cc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 5 06:34:39 2015 -0800
Add extern_protected_data and set it for x86
Re-apply: commit ca3fe95e469b9daec153caa2c90665f5daaec2b5
With copy relocation, address of protected data defined in the shared
library may be external. This patch adds extern_protected_data and
changes _bfd_elf_symbol_refs_local_p to return false for protected data
if extern_protected_data is true.
This patch will break building shared libraries with protected data
symbols using GCCs older than GCC 5 without the bug fix for
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
GCC backport request should be made in the GCC bug report above.
To get correct run-time behavior on Linux, glibc 2.22 or above are
required, which have the bug fix for
https://sourceware.org/bugzilla/show_bug.cgi?id=17711
Backports for glibc 2.21, 2.20, 2.19 and 2.18 are on hjl/pr17711/2.21,
hjl/pr17711/2.20, hjl/pr17711/2.19 and hjl/pr17711/2.18 branches,
respectively, at
https://sourceware.org/git/?p=glibc.git;a=summary
bfd/
PR ld/pr15228
PR ld/pr17709
* elf-bfd.h (elf_backend_data): Add extern_protected_data.
* elf32-i386.c (elf_backend_extern_protected_data): New.
Defined to 1.
* elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
* elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
copy relocs against protected symbols if extern_protected_data
is true.
(_bfd_elf_symbol_refs_local_p): Don't return true on protected
non-function symbols if extern_protected_data is true.
* elfxx-target.h (elf_backend_extern_protected_data): New.
Default to 0.
(elfNN_bed): Initialize extern_protected_data with
elf_backend_extern_protected_data.
ld/testsuite/
PR ld/pr15228
PR ld/pr17709
* ld-i386/i386.exp (i386tests): Add a test for PR ld/17709.
* ld-i386/pr17709-nacl.rd: New file.
* ld-i386/pr17709.rd: Likewise.
* ld-i386/pr17709a.s: Likewise.
* ld-i386/pr17709b.s: Likewise.
* ld-i386/protected3.d: Updated.
* ld-i386/protected3.s: Likewise.
* ld-x86-64/pr17709-nacl.rd: New file.
* ld-x86-64/pr17709.rd: Likewise.
* ld-x86-64/pr17709a.s: Likewise.
* ld-x86-64/pr17709b.s: Likewise.
* ld-x86-64/protected3.d: Updated.
* ld-x86-64/protected3.s: Likewise.
* ld-x86-64/x86-64.exp (x86_64tests): Add a test for PR ld/17709.
commit de3db44c87a30c67deb38fa9d43d2db3bc98c161
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 10 16:23:13 2015 +0100
[arm] watchpoint-reuse-slot.exp: skip setting HW points on some address
Hi,
ARM linux kernel has some requirements on the address/length setting
for HW breakpoints/watchpoints, but watchpoint-reuse-slot.exp doesn't
consider them and sets HW points on various addresses. Many fails
are causes as a result:
stepi^M
Warning:^M
Could not insert hardware watchpoint 20.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x watch: : width 2, iter 2: base + 1: stepi advanced
watch *(buf.byte + 2 + 1)@2^M
Hardware watchpoint 388: *(buf.byte + 2 + 1)@2^M
Warning:^M
Could not insert hardware watchpoint 388.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted on: watch x watch: : width 2, iter 2: base + 1: watch *(buf.byte + 2 + 1)@2
This patch is to reflect kernel requirements in watchpoint-reuse-slot.exp
in order to skip some tests.
gdb/testsuite:
2015-04-10 Yao Qi <yao.qi@linaro.org>
* gdb.base/watchpoint-reuse-slot.exp (valid_addr_p): Return
false for some offset and width combinations which aren't
supported by linux kernel.
commit cb71640d030500888726d54a310c434a4d23b7b3
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 13:08:32 2015 +0100
PPC64: Fix step-over-trips-on-watchpoint.exp with displaced stepping on
PPC64 currently fails this test like:
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: step: step
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: next: next
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: no thread-specific bp: continue: continue (the program exited)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: step: step
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: next: next
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=on: with thread-specific bp: continue: continue (the program exited)
The problem is that PPC is a non-continuable watchpoints architecture
and the displaced stepping code isn't coping with that correctly. On
such targets/architectures, a watchpoint traps _before_ the
instruction executes/completes. On a watchpoint trap, the PC points
at the instruction that triggers the watchpoint (side effects haven't
happened yet). In order to move past the watchpoint, GDB needs to
remove the watchpoint, single-step, and reinsert the watchpoint, just
like when stepping past a breakpoint.
The trouble is that if GDB is stepping over a breakpoint with
displaced stepping, and the instruction under the breakpoint triggers
a watchpoint, we get the watchpoint SIGTRAP, expecting a finished
(hard or software) step trap. Even though the thread's PC hasn't
advanced yet (must remove watchpoint for that), since we get a
SIGTRAP, displaced_step_fixup thinks the single-step finished
successfuly anyway, and calls gdbarch_displaced_step_fixup, which then
adjusts the thread's registers incorrectly.
The fix is to cancel the displaced step if we trip on a watchpoint.
handle_inferior_event then processes the watchpoint event, and starts
a new step-over, here:
...
/* At this point, we are stopped at an instruction which has
attempted to write to a piece of memory under control of
a watchpoint. The instruction hasn't actually executed
yet. If we were to evaluate the watchpoint expression
now, we would get the old value, and therefore no change
would seem to have occurred.
...
ecs->event_thread->stepping_over_watchpoint = 1;
keep_going (ecs);
return;
...
but this time, since we have a watchpoint to step over, watchpoints
are removed from the target, so the step-over succeeds.
The keep_going/resume changes are necessary because if we're stepping
over a watchpoint, we need to remove it from the target - displaced
stepping doesn't help, the copy of the instruction in the scratch pad
reads/writes to the same addresses, thus triggers the watchpoint
too... So without those changes we keep triggering the watchpoint
forever, never making progress. With non-stop that means we'll need
to pause all threads momentarily, which we can't today. We could
avoid that by removing the watchpoint _only_ from the thread that is
moving past the watchpoint, but GDB is not prepared for that today
either. For remote targets, that would need new packets, so good to
be able to step over it in-line as fallback anyway.
gdb/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* infrun.c (displaced_step_fixup): Switch to the event ptid
earlier. If the thread stopped for a watchpoint and the
target/arch has non-continuable watchpoints, cancel the displaced
step.
(resume): Don't start a displaced step if in-line step-over info
is valid.
commit c79d856c88fbc58584d811c04b4812618aa6ac7b
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 15:22:38 2015 +0100
Test step-over-{lands-on-breakpoint|trips-on-watchpoint}.exp with displaced stepping
These tests exercise the infrun.c:proceed code that needs to know to
start new step overs (along with switch_back_to_stepped_thread, etc.).
That code is tricky to get right in the multitude of possible
combinations (at least):
(native | remote)
X (all-stop | all-stop-but-target-always-in-non-stop)
X (displaced-stepping | in-line step-over).
The first two above are properties of the target, but the different
step-over-breakpoint methods should work with any target that supports
them. This patch makes sure we always test both methods on all
targets.
Tested on x86-64 Fedora 20.
gdb/testsuite/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* gdb.threads/step-over-lands-on-breakpoint.exp (do_test): New
procedure, factored out from ...
(top level): ... here. Add "set displaced-stepping" testing axis.
* gdb.threads/step-over-trips-on-watchpoint.exp (do_test): New
parameter "displaced". Use it.
(top level): Use foreach and add "set displaced-stepping" testing
axis.
commit ebc90b50ce6377bf822c918eaf7c55bcd451ba45
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 13:11:32 2015 +0100
Make gdb.threads/step-over-trips-on-watchpoint.exp effective on !x86
This test is currently failing like this on (at least) PPC64 and s390x:
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: no thread-specific bp: step: step
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: no thread-specific bp: next: next
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: with thread-specific bp: step: step
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: with thread-specific bp: next: next
gdb.log:
(gdb) PASS: gdb.threads/step-over-trips-on-watchpoint.exp: no thread-specific bp: step: set scheduler-locking off
step
wait_threads () at ../../../src/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c:49
49 return 1; /* in wait_threads */
(gdb) FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: no thread-specific bp: step: step
The problem is that the test assumes that both the "watch_me = 1;" and
the "other = 1;" lines compile to a single instruction each, which
happens to be true on x86, but no necessarily true everywhere else.
The result is that the test doesn't really test what it wants to test.
Fix it by looking for the instruction that triggers the watchpoint.
gdb/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* gdb.threads/step-over-trips-on-watchpoint.c (child_function):
Remove comment.
* gdb.threads/step-over-trips-on-watchpoint.exp (do_test): Find
both the address of the instruction that triggers the watchpoint
and the address of the instruction immediately after, and use
those addresses for the test. Fix comment.
commit 11e6e4c72cce2961f80e282cc4d859e7c266e17d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 10 04:15:53 2015 -0700
Add a testcase for PR ld/18223
PR ld/18223
* ld-gc/gc.exp: Run pr18223.
* ld-gc/pr18223.d: New file.
* ld-gc/pr18223.s: Likewise.
commit 030aeb759908d7bcf1b87f3599bfa482a90ab6c1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 10 03:54:41 2015 -0700
Use bfd_alloc for compressed section contents
Compressed section contents should be bfd_alloced to avoid memory leak.
This patch replaces bfd_malloc and free with bfd_alloc and bfd_release
on compressed buffer in bfd_compress_section_contents. There is still
a very small memory leak when compressed section isn't smaller.
* compress.c (bfd_compress_section_contents): Replace bfd_malloc
and free with bfd_alloc and bfd_release on compressed buffer.
Release buffer if compressed section isn't smaller.
commit 8f572e5c0f71fd6641768985855b2e0955a78f51
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 10:55:09 2015 +0100
Fix gdb.base/sigstep.exp with displaced stepping on software single-step targets
TL;DR:
When stepping over a breakpoint with displaced stepping, the core must
be notified of all signals, otherwise the displaced step fixup code
confuses a breakpoint trap in the signal handler for the expected trap
indicating the displaced instruction was single-stepped
normally/successfully.
Detailed version:
Running sigstep.exp with displaced stepping on, against my x86
software single-step branch, I got:
FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler: performing step
FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler: performing next
FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler: performing continue
Turning on debug logs, we see:
(gdb) step
infrun: clear_proceed_status_thread (process 32147)
infrun: proceed (addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT)
infrun: resume (step=1, signal=GDB_SIGNAL_0), trap_expected=1, current thread [process 32147] at 0x400842
displaced: stepping process 32147 now
displaced: saved 0x400622: 49 89 d1 5e 48 89 e2 48 83 e4 f0 50 54 49 c7 c0
displaced: %rip-relative addressing used.
displaced: using temp reg 2, old value 0x3615eafd37, new value 0x40084c
displaced: copy 0x400842->0x400622: c7 81 1c 08 20 00 00 00 00 00
displaced: displaced pc to 0x400622
displaced: run 0x400622: c7 81 1c 08
LLR: Preparing to resume process 32147, 0, inferior_ptid process 32147
LLR: PTRACE_CONT process 32147, 0 (resume event thread)
linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 32147, No child processes
LLW: waitpid 32147 received Alarm clock (stopped)
LLW: PTRACE_CONT process 32147, Alarm clock (preempt 'handle')
LNW: waitpid(-1, ...) returned 0, No child processes
LLW: exit (ignore)
sigchld
infrun: target_wait (-1.0.0, status) =
infrun: -1.0.0 [process -1],
infrun: status->kind = ignore
infrun: TARGET_WAITKIND_IGNORE
infrun: prepare_to_wait
linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 32147, No child processes
LLW: waitpid 32147 received Trace/breakpoint trap (stopped)
CSBB: process 32147 stopped by software breakpoint
LNW: waitpid(-1, ...) returned 0, No child processes
LLW: trap ptid is process 32147.
LLW: exit
infrun: target_wait (-1.0.0, status) =
infrun: 32147.32147.0 [process 32147],
infrun: status->kind = stopped, signal = GDB_SIGNAL_TRAP
infrun: TARGET_WAITKIND_STOPPED
displaced: restored process 32147 0x400622
displaced: fixup (0x400842, 0x400622), insn = 0xc7 0x81 ...
displaced: restoring reg 2 to 0x3615eafd37
displaced: relocated %rip from 0x400717 to 0x400937
infrun: stop_pc = 0x400937
infrun: delayed software breakpoint trap, ignoring
infrun: no line number info
infrun: stop_waiting
0x0000000000400937 in __dso_handle ()
1: x/i $pc
=> 0x400937: and %ah,0xa0d64(%rip) # 0x4a16a1
(gdb) FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: performing step
What should have happened is that the breakpoint hit in the signal
handler should have been presented to the user. But note that
"preempt 'handle'" -- what happened instead is that
displaced_step_fixup confused the breakpoint in the signal handler for
the expected SIGTRAP indicating the displaced instruction was
single-stepped normally/successfully.
This should be affecting all software single-step targets in the same
way.
The fix is to make sure the core sees all signals when displaced
stepping, just like we already must see all signals when doing an
stepping over a breakpoint in-line. We now get:
infrun: target_wait (-1.0.0, status) =
infrun: 570.570.0 [process 570],
infrun: status->kind = stopped, signal = GDB_SIGNAL_ALRM
infrun: TARGET_WAITKIND_STOPPED
displaced: restored process 570 0x400622
infrun: stop_pc = 0x400842
infrun: random signal (GDB_SIGNAL_ALRM)
infrun: signal arrived while stepping over breakpoint
infrun: inserting step-resume breakpoint at 0x400842
infrun: resume (step=0, signal=GDB_SIGNAL_ALRM), trap_expected=0, current thread [process 570] at 0x400842
LLR: Preparing to resume process 570, Alarm clock, inferior_ptid process 570
LLR: PTRACE_CONT process 570, Alarm clock (resume event thread)
infrun: prepare_to_wait
linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 0, No child processes
LLW: exit (ignore)
infrun: target_wait (-1.0.0, status) =
infrun: -1.0.0 [process -1],
infrun: status->kind = ignore
sigchld
infrun: TARGET_WAITKIND_IGNORE
infrun: prepare_to_wait
linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 570, No child processes
LLW: waitpid 570 received Trace/breakpoint trap (stopped)
CSBB: process 570 stopped by software breakpoint
LNW: waitpid(-1, ...) returned 0, No child processes
LLW: trap ptid is process 570.
LLW: exit
infrun: target_wait (-1.0.0, status) =
infrun: 570.570.0 [process 570],
infrun: status->kind = stopped, signal = GDB_SIGNAL_TRAP
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x400717
infrun: BPSTAT_WHAT_STOP_NOISY
infrun: stop_waiting
Breakpoint 3, handler (sig=14) at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/sigstep.c:35
35 done = 1;
Hardware single-step targets already behave this way, because the
Linux backends (both native and gdbserver) always report signals to
the core if the thread was single-stepping.
As mentioned in the new comment in do_target_resume, we can't fix this
by instead making the displaced_step_fixup phase skip fixing up the PC
if the single step stopped somewhere we didn't expect. Here's what
the backtrace would look like if we did that:
Breakpoint 3, handler (sig=14) at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/sigstep.c:35
35 done = 1;
1: x/i $pc
=> 0x400717 <handler+7>: movl $0x1,0x200943(%rip) # 0x601064 <done>
(gdb) bt
#0 handler (sig=14) at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/sigstep.c:35
#1 <signal handler called>
#2 0x0000000000400622 in _start ()
(gdb) FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: backtrace
gdb/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* infrun.c (displaced_step_in_progress): New function.
(do_target_resume): Advise target to report all signals if
displaced stepping.
gdb/testsuite/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
* gdb.base/sigstep.exp (breakpoint_to_handler)
(breakpoint_to_handler_entry): New parameter 'displaced'. Use it.
Test "backtrace" in handler.
(breakpoint_over_handler): New parameter 'displaced'. Use it.
(top level): Add new "displaced" test axis to
breakpoint_to_handler, breakpoint_to_handler_entry and
breakpoint_over_handler.
commit d07a1b059d790af3da88b9c750925d5a8db51250
Author: Alan Modra <amodra@gmail.com>
Date: Fri Apr 10 10:09:34 2015 +0930
Downgrade linker error on protected symbols in .dynbss to a warning
PR ld/18222
* elflink.c (_bfd_elf_adjust_dynamic_copy): Don't report an error
on adding a protected visibility variable to .dynbss.
commit 8d2ea2a80abad66250f2f4a1d38e3b8c796147f8
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 9 21:36:24 2015 +0930
Revert "Add extern_protected_data and set it for x86"
This reverts commit ca3fe95e469b9daec153caa2c90665f5daaec2b5.
commit 8d707a12ef51ba5f4c3c6a52532e903da7a56b8b
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 10:36:23 2015 +0100
gdb/18216: displaced step+deliver signal, a thread needs step-over, crash
The problem is that with hardware step targets and displaced stepping,
"signal FOO" when stopped at a breakpoint steps the breakpoint
instruction at the same time it delivers a signal. This results in
tp->stepped_breakpoint set, but no step-resume breakpoint set. When
the next stop event arrives, GDB crashes. Irrespective of whether we
should do something more/different to step past the breakpoint in this
scenario (e.g., PR 18225), it's just wrong to assume there'll be a
step-resume breakpoint set (and was not the original intention).
gdb/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
PR gdb/18216
* infrun.c (process_event_stop_test): Don't assume a step-resume
is set if tp->stepped_breakpoint is true.
gdb/testsuite/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
PR gdb/18216
* gdb.threads/multiple-step-overs.exp: Remove expected eof.
commit ef713951c571c8490ca57c17c88785c6df1ed840
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 10 10:33:01 2015 +0100
[arm] Fix displaced stepping for thumb alu reg instruction
Recent patch series "V2 All-stop on top of non-stop" causes a SIGSEGV
in the test case,
> -PASS: gdb.base/info-shared.exp: continue to breakpoint: library function #4
> +FAIL: gdb.base/info-shared.exp: continue to breakpoint: library function #4
>
> continue^M
> Continuing.^M
> ^M
> Program received signal SIGSEGV, Segmentation fault.^M
> 0x40021564 in ?? () gdb/testsuite/gdb.base/info-shared-solib1.so^M
> (gdb) FAIL: gdb.base/info-shared.exp: continue to breakpoint: library function #4
and an ARM displaced stepping bug is exposed. It can be reproduced by
the modified gdb.arch/arm-disp-step.exp as below,
continue^M
Continuing.^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
0xa713cfcc in ?? ()^M
(gdb) FAIL: gdb.arch/arm-disp-step.exp: continue to breakpoint: continue to test_add_rn_pc_end
This patch is to fix it.
gdb:
2015-04-10 Yao Qi <yao.qi@linaro.org>
* arm-tdep.c (install_alu_reg): Update comment.
(thumb_copy_alu_reg): Remove local variable rn. Update
debugging message. Use r2 instead of r1 in the modified
instruction.
gdb/testsuite:
2015-04-10 Yao Qi <yao.qi@linaro.org>
* gdb.arch/arm-disp-step.S (main): Call test_add_rn_pc.
(test_add_rn_pc): New function.
* gdb.arch/arm-disp-step.exp (test_add_rn_pc): New proc.
(top level): Invoke test_add_rn_pc.
commit 906d60cf467b2d5a20ff04dbc4805a84ef313229
Author: Pedro Alves <palves@redhat.com>
Date: Fri Apr 10 10:07:02 2015 +0100
PR13858 - Can't do displaced stepping with no symbols
Running break-interp.exp with the target always in non-stop mode trips
on PR13858, as enabling non-stop also enables displaced stepping.
The problem is that when GDB doesn't know where the entry point is, it
doesn't know where to put the displaced stepping scratch pad. The
test added by this commit exercises this. Without the fix, we get:
(gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: break *$pc
set displaced-stepping on
(gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: set displaced-stepping on
stepi
0x00000000004005be in ?? ()
Entry point address is not known.
(gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: stepi
p /x $pc
$2 = 0x4005be
(gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: get after PC
FAIL: gdb.base/step-over-no-symbols.exp: displaced=on: advanced
The fix switches all GNU/Linux ports to get the entry point from
AT_ENTRY in the target auxiliary vector instead of from symbols. This
is currently only done by PPC when Cell debugging is enabled, but I
think all archs should be able to do the same. Note that
ppc_linux_displaced_step_location cached the result, I'm guessing to
avoid constantly re-fetching the auxv out of remote targets, but
that's no longer necessary nowadays, as the auxv blob is itself cached
in the inferior object. The ppc_linux_entry_point_addr global is
obviously bad for multi-process too nowadays.
Tested on x86-64 (-m64/-m32), PPC64 (-m64/-m32) and S/390 GNU/Linux.
Yao tested the new test on ARM as well.
gdb/ChangeLog:
2015-04-10 Pedro Alves <palves@redhat.com>
PR gdb/13858
* amd64-linux-tdep.c (amd64_linux_init_abi_common): Install
linux_displaced_step_location as gdbarch_displaced_step_location
hook.
* arm-linux-tdep.c (arm_linux_init_abi): Likewise.
* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
* linux-tdep.c (linux_displaced_step_location): New function,
based on ppc_linux_displaced_step_location.
* linux-tdep.h (linux_displaced_step_location): New declaration.
* ppc-linux-tdep.c (ppc_linux_entry_point_addr): Delete.
(ppc_linux_inferior_created, ppc_linux_displaced_step_location):
Delete.
(ppc_linux_init_abi): Install linux_displaced_step_location as
gdbarch_displaced_step_location hook, even without Cell/B.E..
(_initialize_ppc_linux_tdep): Don't install
ppc_linux_inferior_created as inferior_created observer.
* s390-linux-tdep.c (s390_gdbarch_init): Install
linux_displaced_step_location as gdbarch_displaced_step_location
hook.
gdb/testsuite/
2015-04-10 Pedro Alves <palves@redhat.com>
PR gdb/13858
* gdb.base/step-over-no-symbols.exp: New file.
commit 8c3fff59dc5cbf86c354770ad66cb146f4fa0143
Author: Alan Modra <amodra@gmail.com>
Date: Fri Apr 10 18:21:32 2015 +0930
Correct setting of elf_list_options
* configure.ac: Set elf_list_options etc. in proper case.
* configure: Regenerate.
commit e7a8570f75694284ea5bc909f095004f4ef938c6
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Apr 10 10:34:51 2015 +0200
doc patch: compile: missing bits
gdb/doc/ChangeLog
2015-04-10 Jan Kratochvil <jan.kratochvil@redhat.com>
Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Compiling and Injecting Code): Describe set debug
compile, show debug compile. New subsection Compilation options for
the compile command. New subsection Compiler search for the compile
command.
commit 080bb7bbe9d06424be5a989ae87160d655d22e2e
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 10 08:26:07 2015 +0100
Add documentation about the interation of the ARM assembler's -EB option and the linker's --be8 option.
PR binutils/18198
* ld.texinfo (--be8): Add a note about the interaction of this
option with the assembler's -EB option.
* doc/c-arm.texi (ARM Options): Add a note about the interaction of
the -EB option with the linker's --be8 option.
commit 6166ed9330a9afd41859d5a716cb9019c338a8ca
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 9 18:38:03 2015 +0930
Mark _init and _fini for --gc-sections
gold marks _init and _fini via symbol, ld marks them via section
(default scripts set .init and .fini section KEEP). This makes it
possible for people to write their own _init and not bother to put the
function into the right section.
PR ld/18223
* ldlang.c (lang_process): Add _init and _fini to gc_sym_list.
commit 4f0d8f2d9f95ae5620e70c8b490fe6f534ffd5ce
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 10 00:00:08 2015 +0000
Automatic date update in version.in
commit a6a177507c8b677e79b3440e36091cb0270c55b8
Author: Cary Coutant <ccoutant@google.com>
Date: Thu Apr 9 15:47:13 2015 -0700
Allow gold to resolve defined TLS symbols in a PIE link.
This patch fixes Symbol::final_value_is_known so that a defined TLS symbol
in a PIE link is treated as having a known final value, thus allowing
GD->LE TLS optimization, eliminating an unnecessary GOT entry and dynamic
relocation.
gold/
* symtab.cc (Symbol::final_value_is_known): Check for TLS symbol
in a PIE link.
* testsuite/Makefile.am (tls_pie_test.sh): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/tls_pie_test.sh: New.
commit 18ece1defb99cf50dc7769444e3394c26329d497
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 9 12:48:49 2015 -0700
Update comments in compress.c
* compress.c (bfd_compress_section_contents): Update comments.
(bfd_init_section_decompress_status): Likewise.
(bfd_init_section_compress_status): Likewise.
commit 4b5708f5d9c229e07cdab66e863276ff22d47e39
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Thu Apr 9 21:09:02 2015 +0200
doc/c-rx.texi: Fix markup typos in last change.
commit 437ddf0c4cb63fdb68c4bd1cc155144db344d0c5
Author: Cary Coutant <ccoutant@google.com>
Date: Thu Apr 9 11:52:21 2015 -0700
Improve ODR checking in gold.
gold/
* debug.h (DEBUG_LOCATION): New.
(DEBUG_ALL): Include DEBUG_LOCATION.
(debug_string_to_enum): Add DEBUG_LOCATION.
* dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Fix debug
output to print correct context.
(Sized_dwarf_line_info::do_addr2line): Add debug output. Return
up to 4 more locations at the beginning of the function.
* symtab.cc (Symbol_table::detect_odr_violations): Get canonical
result before sorting list of line numbers.
* testsuite/debug_msg.sh: Allow range of line numbers for
canonical results on optimized code.
commit cd6faa73f8e3b888ee8b73a733382a5587aca202
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 9 10:56:28 2015 -0700
Properly check --compress-debug-sections=XXX
We can't check if input is ELF in copy_file since some targets may only
set xvec after bfd_check_format_matches is called. This patch moves
this check to copy_object.
bfd/
* elfxx-target.h (TARGET_BIG_SYM): Add BFD_COMPRESS_GABI to
object_flags.
(TARGET_LITTLE_SYM): Likewise.
binutils/
* objcopy.c (do_debug_sections): Use bit patterns.
(copy_object): Return FALSE for compress_zlib, compress_gnu_zlib
and compress_gabi_zlib on non-ELF input.
(copy_file): Don't check non-ELF input here.
commit 19424843891a0b9b0f9c2532cb7251813c4a8cf9
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Thu Apr 9 19:27:53 2015 +0300
xtensa: update bfd/Changelog
commit 4c2af04fe8b4452bf51d2debf1bb467fafcd0f08
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Sun Apr 5 17:04:22 2015 +0300
xtensa: replace action list with splay tree
text_action_add uses linear list search to order text actions list by
action VMA. The list is used at the first relaxation pass, when it's not
fixed yet.
Replace the list with splay tree from libiberty.
Original profile:
% time self children called name
-----------------------------------------
0.00 0.00 14/158225 compute_text_actions
3.62 0.00 25211/158225 remove_dead_literal
8.42 0.00 58645/158225 coalesce_shared_literal
10.68 0.00 74355/158225 text_action_add_proposed
38.8 22.73 0.00 158225 text_action_add
0.00 0.00 144527/293246 bfd_zmalloc
-----------------------------------------
Same data, after optimization:
% time self children called name
-----------------------------------------
0.00 0.00 14/158225 compute_text_actions
0.00 0.00 25211/158225 remove_dead_literal
0.00 0.01 58645/158225 coalesce_shared_literal
0.00 0.01 74355/158225 text_action_add_proposed
0.1 0.00 0.02 158225 text_action_add
0.01 0.00 144527/144527 splay_tree_insert
0.00 0.00 144527/195130 splay_tree_lookup
0.00 0.00 144527/293246 bfd_zmalloc
-----------------------------------------
2015-04-03 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (splay-tree.h): include header.
(text_action_struct): drop next pointer.
(text_action_list_struct): drop head pointer, add count and
tree fields.
(find_fill_action): instead of linear search in text_action_list
search in the tree.
(text_action_compare, action_first, action_next): new functions.
(text_action_add, text_action_add_literal): instead of linear
search and insertion insert new node into the tree.
(removed_by_actions): pass additional parameter: action_list,
use it to traverse the tree.
(offset_with_removed_text): pass additional action_list parameter
to removed_by_actions.
(map_action_fn_context): new typedef.
(map_action_fn_context_struct): new structure.
(map_action_fn): new function.
(map_removal_by_action): use splay_tree_foreach to build map.
(find_insn_action): replace linear search in text_action_list
with series of splay_tree_lookups.
(print_action, print_action_list_fn): new functions.
(print_action_list): use splay_tree_foreach.
(init_xtensa_relax_info): drop action_list.head initialization.
Initialize the tree.
(compute_text_actions): use non-zero action_list_count instead of
non-NULL action list.
(xlate_map_context): new typedef.
(xlate_map_context_struct): new structure.
(xlate_map_fn): new function.
(build_xlate_map): use splay_tree_foreach to build map.
(action_remove_bytes_fn): new function.
(relax_section): use zero action_list_count instead of NULL
action list. Use splay_tree_foreach to count final section size.
Drop unused variable 'removed'.
commit 3439c466273378021821473d3fc84990e089ae34
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Sat Apr 4 14:49:42 2015 +0300
xtensa: optimize find_removed_literal
find_removed_literal uses linear search to find removed literal by its
VMA. The list of literals is fixed at that point, build an ordered index
array and use binary search instead.
Original profile:
% time self children called name
-----------------------------------------
56.72 0.00 297578/669392 translate_reloc
70.86 0.00 371814/669392 relax_section
67.9 127.58 0.00 669392 find_removed_literal
-----------------------------------------
Same data, after optimization:
% time self children called name
-----------------------------------------
0.00 0.00 297578/669392 translate_reloc
0.00 0.00 371814/669392 relax_section
0.0 0.00 0.00 669392 find_removed_literal
0.00 0.00 23838/23838 map_removed_literal
-----------------------------------------
2015-04-03 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (removed_literal_map_entry): new typedef.
(removed_literal_map_entry_struct): new structure.
(removed_literal_list_struct): add new fields: n_map and map.
(map_removed_literal, removed_literal_compare): new functions.
(find_removed_literal): build index array for literals ordered
by VMA, use binary search to find removed literal.
commit 071aa5c98a31c966f5fbfc573fcee61350fd1936
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Sat Mar 28 08:46:28 2015 +0300
xtensa: optimize removed_by_actions
The function removed_by_actions iterates through text actions to
calculate an offset applied by text actions to a given VMA. Although it
has a parameter p_start_action that allows for incremental offset
calculation, in many places it's used with p_start_action explicitly set
to the first action. After the first relaxation pass when the list of
text actions is finalized, an array of offsets sorted by VMA may be used
to speed up this function.
Original profile:
% time self children called name
-----------------------------------------
0.35 0.00 33872/4808961 relax_section_symbols
3.32 0.00 326022/4808961 relax_property_section
12.83 0.00 1259379/4808961 offset_with_removed_text
32.50 0.00 3189688/4808961 translate_reloc
71.5 49.00 0.00 4808961 removed_by_actions
-----------------------------------------
Same data, after optimization:
% time self children called name
-----------------------------------------
0.00 0.00 33872/4808537 relax_section_symbols
0.01 0.00 326022/4808537 relax_property_section
0.05 0.00 1258955/4808537 offset_with_removed_text_map
0.13 0.00 3189688/4808537 translate_reloc
1.0 0.20 0.00 4808537 removed_by_actions_map
0.00 0.00 120/120 map_removal_by_action
-----------------------------------------
2015-04-01 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (removal_by_action_entry_struct,
removal_by_action_map_struct): new structures.
(removal_by_action_entry, removal_by_action_map): new typedefs.
(text_action_list_struct): add new field: map.
(map_removal_by_action, removed_by_actions_map,
offset_with_removed_text_map): new functions.
(relax_section): replace offset_with_removed_text with
offset_with_removed_text_map.
(translate_reloc, relax_property_section, relax_section_symbols):
replace removed_by_actions with removed_by_actions_map.
commit b2b326d246f839ee218192ac88da2384d929a072
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Fri Mar 27 07:13:55 2015 +0300
xtensa: optimize check_section_ebb_pcrels_fit
The original check_section_ebb_pcrels_fit algorithm checks that text
actions proposed for current EBB are OK for every relocation in a
section. There's no need to check every relocation, because text actions
for EBB can only change size of that EBB, thus only affecting
relocations that in any way cross that EBB. In addition EBBs are
iterated in ascending order of their VMA, making it easier to track
relevant relocations.
Introduce a structure that can track relocations that cross the range of
VMAs of EBB and use it to only check relocations relevant to current EBB
in check_section_ebb_pcrels_fit.
It takes O(N log N) operations to build it and O(N) operations to move
current EBB VMA window through its entire range, where N is the number
of relocations in a section. The resulting complexity of
compute_text_actions is thus reduced from O(N^2) to O(N log N + N * M),
where M is the average number of relocations crossing each EBB.
Original profile:
% time self children called name
-----------------------------------------
44.26 71.53 6429/6429 compute_text_actions
50.2 44.26 71.53 6429 check_section_ebb_pcrels_fit
1.16 20.12 347506666/347576152 pcrel_reloc_fits
2.95 16.52 347506666/348104944 get_relocation_opnd
2.01 9.74 347575100/361252208 r_reloc_init
0.55 7.53 347575100/363381467 r_reloc_get_section
5.76 0.02 695013332/695013332 xlate_offset_with_removed_text
0.68 3.89 347575100/363483827 bfd_octets_per_byte
0.32 0.00 347506666/349910253 is_alt_relocation
0.18 0.11 6391/6391 build_xlate_map
0.00 0.00 6429/19417168 get_xtensa_relax_info
0.00 0.00 6391/6391 free_xlate_map
-----------------------------------------
Same data, after optimization:
% time self children called name
-----------------------------------------
2.56 3.08 6429/6429 compute_text_actions
8.2 2.56 3.08 6429 check_section_ebb_pcrels_fit
0.08 0.91 17721075/17790561 pcrel_reloc_fits
0.17 0.47 17721075/31685977 r_reloc_init
0.43 0.00 35442150/35442150 xlate_offset_with_removed_text
0.02 0.37 17721075/33815236 r_reloc_get_section
0.22 0.11 6391/6391 build_xlate_map
0.05 0.22 17721075/33917596 bfd_octets_per_byte
0.03 0.00 17721075/20405299 is_alt_relocation
0.01 0.00 6429/6429 reloc_range_list_update_range
0.00 0.00 6429/19417168 get_xtensa_relax_info
0.00 0.00 6391/6391 free_xlate_map
-----------------------------------------
2015-04-01 Max Filippov <jcmvbkbc@gmail.com>
bfd/
* elf32-xtensa.c (reloc_range_list, reloc_range_list_entry,
reloc_range): new typedef.
(reloc_range_list_struct, reloc_range_list_entry_struct,
reloc_range_struct): new structures.
(reloc_range_compare, build_reloc_ranges,
reloc_range_list_append, reloc_range_list_remove,
reloc_range_list_update_range, free_reloc_range_list): new
functions.
(compute_text_actions): precompute relocation opcodes before the
loop. Add relevant_relocs variable, initialize it before the
loop, pass it to the check_section_ebb_pcrels_fit.
(check_section_ebb_pcrels_fit): add new parameter:
relevant_relocs. Update address range in the relevant_relocs if
it's non-NULL and iterate only over relevant relocations.
commit eba27bd7815b5d5e7bafc2bf37f9c4c7dda30ec6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 9 07:46:21 2015 -0700
Remove BNDPLT and add PARSE_AND_LIST_ARGS_CASE_Z
* emulparams/elf_x86_64.sh (BNDPLT): Removed.
(PARSE_AND_LIST_OPTIONS): New.
(PARSE_AND_LIST_ARGS_CASE_Z): Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Remove
BNDPLT check. Handle PARSE_AND_LIST_ARGS_CASE_Z.
(gld${EMULATION_NAME}_list_options): Remove BNDPLT check.
commit 7823a9415b2919241f7a7425d9dcc3c62ada0779
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 9 14:22:56 2015 +0100
Rename common-remote-fileio.[ch] as fileio.[ch]
This commit renames common-remote-fileio.[ch] as fileio.[ch]
and renames all functions in these files.
gdb/ChangeLog:
* common/common-remote-fileio.h: Rename to...
* common/fileio.h: ...this. Update all references.
(remote_fileio_to_fio_error): Rename to...
(host_to_fileio_error): ...this.
(remote_fileio_to_be): Rename to...
(host_to_bigendian): ...this. Update all callers.
(remote_fileio_to_fio_uint): Rename to...
(host_to_fileio_uint): ...this. Update all callers.
(remote_fileio_to_fio_time): Rename to...
(host_to_fileio_time): ...this. Update all callers.
(remote_fileio_to_fio_stat): Rename to...
(host_to_fileio_stat): ...this.
Update all references.
* common/common-remote-fileio.c: Rename to...
* common/fileio.c: ...this. Update all references.
(remote_fileio_to_fio_error): Rename to...
(host_to_fileio_error): ...this. Update all callers.
(remote_fileio_mode_to_target): Rename to...
(fileio_mode_pack): ...this. Update all callers.
(remote_fileio_to_fio_mode): Rename to...
(host_to_fileio_mode): ...this. Update all callers.
(remote_fileio_to_fio_ulong): Rename to...
(host_to_fileio_ulong): ...this. Update all callers.
(remote_fileio_to_fio_stat): Rename to...
(host_to_fileio_stat): ...this. Update all callers.
commit 233723a43c5677ae6a5a8bd9c2ac54bae333fe26
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 9 14:56:29 2015 +0100
Update French translation of ld strings.
* po/fr.po: Updated French translation.
commit f2983cc34ec64b01fabd0b5ca5af50ee690e1661
Author: Andy Wingo <wingo@igalia.com>
Date: Thu Apr 9 13:06:41 2015 +0100
Add Guile frame-read-register command
gdb/ChangeLog:
* guile/scm-frame.c (gdbscm_frame_read_register): New function.
(frame_functions): Bind gdbscm_frame_read_register to
frame-read-register.
* guile/lib/gdb.scm (frame-read-register): Export.
gdb/doc/ChangeLog:
* guile.texi (Frames In Guile): Describe frame-read-register.
gdb/testsuite/ChangeLog:
* gdb.guile/scm-frame.exp: Add frame-read-register tests, modelled
after the Python tests.
commit b88bb45061e0095a0bafce938363f3051a602dd2
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 9 10:28:05 2015 +0100
Introduce new shared function remote_fileio_to_fio_error
This commit introduces a new shared function to replace three
identical functions in various places in the codebase.
gdb/ChangeLog:
* common/common-remote-fileio.h (remote_fileio_to_fio_error):
New declaration.
* common/common-remote-fileio.c (remote_fileio_to_fio_error):
New function, factored out the named functions below.
* inf-child.c (gdb/fileio.h): Remove include.
(common-remote-fileio.h): New include.
(inf_child_errno_to_fileio_error): Remove function. Update
all callers to use remote_fileio_to_fio_error.
* remote-fileio.c (remote_fileio_errno_to_target): Likewise.
gdb/gdbserver/ChangeLog:
* hostio-errno.c (errno_to_fileio_error): Remove function.
Update caller to use remote_fileio_to_fio_error.
commit 2f2680f33a356115fb31c932d3b983fcae89902f
Author: Andy Wingo <wingo@igalia.com>
Date: Thu Apr 9 11:33:22 2015 +0200
Add myself to Write After Approval list.
gdb/ChangeLog:
* MAINTAINERS (Write After Approval): Add Andy Wingo.
commit 3525236c57a64fdbb534671fd2b16f9f846d36f3
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 9 12:48:37 2015 +0100
Add support to the RX toolchain to restrict the use of string instructions.
bfd * elf32-rx.c (describe_flags): Report the settings of the string
insn using bits.
(rx_elf_merge_private_bfd_data): Handle merging of the string insn
using bits.
bin * readelf.c (get_machine_flags): Report the setting of the string
insn using bits.
gas * config/tc-rx.c (enum options): Add OPTION_DISALLOW_STRING_INSNS.
(md_longopts): Add -mno-allow-string-insns.
(md_parse_option): Handle -mno-allow-string-insns.
(md_show_usage): Mention -mno-allow-string-insns.
(rx_note_string_insn_use): New function. Produces an error
message if a string insn is used when it is not allowed.
* config/rx-parse.y (SCMPU): Call rx_note_string_insn_use.
(SMOVU, SMOVB, SMOVF, SUNTIL, SWHILE, RMPA): Likewise.
* config/rx-defs.h (rx_note_string_insn_use): Prototype.
* doc/c-rx.texi: Document -mno-allow-string-insns.
elf * rx.h (E_FLAG_RX_SINSNS_SET): New bit in e_flags field.
(E_FLAG_RX_SINSNS_YES): Likewise.
(E_FLAG_RX_SINSNS_MASK): New define.
commit 5a2d4533e2b9cc9c069d47071013cb30f1e0fc7e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 9 04:43:57 2015 -0700
Replace $zlibdir with $ZLIBDIR in LDFLAGS
* acinclude.m4: (GDB_AC_CHECK_BFD): Set ZLIBDIR with $zlibdir.
Replace $zlibdir with $ZLIBDIR in LDFLAGS.
* configure: Regenerated.
commit 421693b020bf6e306c6c795541d0bd9dad0db1f1
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 8 18:10:21 2015 +0100
Import strtok_r gnulib module
gdb/linux-tdep.c recently gained a strtok_r use. That broke
--enable-targets=all with some versions of mingw64, which don't have
strtok_r:
https://sourceware.org/ml/gdb-patches/2015-04/msg00266.html
Fix that by importing the strtok_r gnulib module.
gdb/ChangeLog:
2015-04-09 Pedro Alves <palves@redhat.com>
* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add strtok_r.
* gnulib/Makefile.in (aclocal_m4_deps): Add import/m4/strtok_r.m4.
* gnulib/configure, gnulib/config.in, gnulib/aclocal.m4: Regenerate.
* gnulib/import/Makefile.am: Update.
* gnulib/import/Makefile.in: Update.
* gnulib/import/m4/gnulib-cache.m4: Update.
* gnulib/import/m4/gnulib-comp.m4: Update.
* gnulib/import/m4/strtok_r.m4: New file.
* gnulib/import/strtok_r.c: New file.
commit f543dc83b84d8ebcd0899dfd16215b884b7762fa
Author: Pedro Alves <palves@redhat.com>
Date: Thu Apr 9 10:35:29 2015 +0100
update-gnulib.sh: work around aclocal warning with Perl >= 5.16
gdb/ChangeLog:
2015-04-09 Pedro Alves <palves@redhat.com>
* gnulib/update-gnulib.sh (aclocal version check): Filter out
"called too early to check prototype".
commit c8f4bfdd120601d3841b2617b623412a47b8f35f
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Apr 9 10:20:48 2015 +0100
gdbserver gnu/linux: stepping over breakpoint
Hi,
I see the following error on arm linux gdbserver,
continue^M
Continuing.^M
../../../binutils-gdb/gdb/gdbserver/linux-arm-low.c:458: A problem internal to GDBserver has been detected.^M
raw_bkpt_type_to_arm_hwbp_type: unhandled raw type^M
Remote connection closed^M
(gdb) FAIL: gdb.base/cond-eval-mode.exp: hbreak: continue
After we make GDBserver handling Zx/zx packet idempotent,
[PATCH 3/3] [GDBserver] Make Zx/zx packet handling idempotent.
https://sourceware.org/ml/gdb-patches/2014-04/msg00480.html
> Now removal/insertion of all kinds of breakpoints/watchpoints, either
> internal, or from GDB, always go through the target methods.
GDBserver handles all kinds of breakpoints/watchpoints through target
methods. However, some target backends, such as arm, don't support Z0
packet but need software breakpoint to do breakpoint stepping over in
linux-low.c:start_step_over,
if (can_hardware_single_step ())
{
step = 1;
}
else
{
CORE_ADDR raddr = (*the_low_target.breakpoint_reinsert_addr) ();
set_reinsert_breakpoint (raddr);
step = 0;
}
a software breakpoint is requested to the backend, and the error is
triggered. This problem should affect targets having
breakpoint_reinsert_addr hooked.
Instead of handling memory breakpoint in these affected linux backend,
this patch handles memory breakpoint in linux_{insert,remove}_point,
that, if memory breakpoint is requested, call
{insert,remove}_memory_breakpoint respectively. Then, it becomes
unnecessary to handle memory breakpoint for linux x86 backend, so
this patch removes the code there.
This patch is tested with GDBserver on x86_64-linux and arm-linux
(-marm, -mthumb). Note that there are still some fails in
gdb.base/cond-eval-mode.exp with -mthumb, because GDBserver doesn't
know how to select the correct breakpoint instruction according to
the arm-or-thumb-mode of requested address. This is a separate
issue, anyway.
gdb/gdbserver:
2015-04-09 Yao Qi <yao.qi@linaro.org>
* linux-low.c (linux_insert_point): Call
insert_memory_breakpoint if TYPE is raw_bkpt_type_sw.
(linux_remove_point): Call remove_memory_breakpoint if type is
raw_bkpt_type_sw.
* linux-x86-low.c (x86_insert_point): Don't call
insert_memory_breakpoint.
(x86_remove_point): Don't call remove_memory_breakpoint.
commit 82d8e420ab39cf227aa8e0869a54fb0a29b0a00d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 17:05:54 2015 -0700
Enable ELF ld_list_options for --enable-targets=all
When --enable-targets=all is used with non-ELF target, we should enable
ELF ld_list_options.
* configure.ac (elf_list_options): Set to TRUE for
--enable-targets=all.
(elf_shlib_list_options): Likewise.
(elf_plt_unwind_list_options): Likewise.
* configure: Regenerated.
commit 11161a6e382f7585ed2971b3c8d5af1d5fa34b8c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 9 00:00:08 2015 +0000
Automatic date update in version.in
commit 6d62641c832525382336c1b04731d85cb6c398e7
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed Apr 8 18:27:10 2015 -0400
Fix Python completion when using the "complete" command
This patch is related to PR python/16699, and is an improvement over the
patch posted here:
<https://sourceware.org/ml/gdb-patches/2014-03/msg00301.html>
Keith noticed that, when using the "complete" command on GDB to complete
a Python command, some strange things could happen. In order to
understand what can go wrong, I need to explain how the Python
completion mechanism works.
When the user requests a completion of a Python command by using TAB,
GDB will first try to determine the right set of "brkchars" that will be
used when doing the completion. This is done by actually calling the
"complete" method of the Python class. Then, when we already know the
"brkchars" that will be used, we call the "complete" method again, for
the same values.
If you read the thread mentioned above, you will see that one of the
design decisions was to make the "cmdpy_completer_helper" (which is the
function the does the actual calling of the "complete" method) cache the
first result of the completion, since this result will be used in the
second call, to do the actual completion.
The problem is that the "complete" command does not process the
brkchars, and the current Python completion mechanism (improved by the
patch mentioned above) relies on GDB trying to determine the brkchars,
and then doing the completion itself. Therefore, when we use the
"complete" command instead of doing a TAB-completion on GDB, there is a
scenario where we can use the invalid cache of a previous Python command
that was completed before. For example:
(gdb) A <TAB>
(gdb) complete B
B value1
B value10
B value2
B value3
B value4
B value5
B value6
B value7
B value8
B value9
(gdb) B <TAB>
comp1 comp2 comp4 comp6 comp8
comp10 comp3 comp5 comp7 comp9
Here, we see that "complete B " gave a different result than "B <TAB>".
The reason for that is because "A <TAB>" was called before, and its
completion results were "value*", so when GDB tried to "complete B " it
wrongly answered with the results for A. The problem here is using a
wrong cache (A's cache) for completing B.
We tried to come up with a solution that would preserve the caching
mechanism, but it wasn't really possible. So I decided to completely
remove the cache, and doing the method calling twice for every
completion. This is not optimal, but I do not think it will impact
users noticeably.
It is worth mentioning another small issue that I found. The code was
doing:
wordobj = PyUnicode_Decode (word, sizeof (word), host_charset (), NULL);
which is totally wrong, because using "sizeof" here will lead to always
the same result. So I changed this to use "strlen". The testcase also
catches this problem.
Keith kindly expanded the existing testcase to cover the problem
described above, and everything is passing.
gdb/ChangeLog:
2015-04-08 Sergio Durigan Junior <sergiodj@redhat.com>
PR python/16699
* python/py-cmd.c (cmdpy_completer_helper): Adjust function to not
use a caching mechanism. Adjust comments and code to reflect
that. Replace 'sizeof' by 'strlen' when fetching 'wordobj'.
(cmdpy_completer_handle_brkchars): Adjust call to
cmdpy_completer_helper. Call Py_XDECREF for 'resultobj'.
(cmdpy_completer): Likewise.
gdb/testsuite/ChangeLog:
2015-04-08 Keith Seitz <keiths@redhat.com>
PR python/16699
* gdb.python/py-completion.exp: New tests for completion.
* gdb.python/py-completion.py (CompleteLimit1): New class.
(CompleteLimit2): Likewise.
(CompleteLimit3): Likewise.
(CompleteLimit4): Likewise.
(CompleteLimit5): Likewise.
(CompleteLimit6): Likewise.
(CompleteLimit7): Likewise.
commit f3770638ca377ff2bdd7cec2cb239d2909034690
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 8 19:59:03 2015 +0100
Add test for PR18214 and PR18216 - multiple step-overs with queued signals
Both PRs are triggered by the same use case.
PR18214 is about software single-step targets. On those, the 'resume'
code that detects that we're stepping over a breakpoint and delivering
a signal at the same time:
/* Currently, our software single-step implementation leads to different
results than hardware single-stepping in one situation: when stepping
into delivering a signal which has an associated signal handler,
hardware single-step will stop at the first instruction of the handler,
while software single-step will simply skip execution of the handler.
...
Fortunately, we can at least fix this particular issue. We detect
here the case where we are about to deliver a signal while software
single-stepping with breakpoints removed. In this situation, we
revert the decisions to remove all breakpoints and insert single-
step breakpoints, and instead we install a step-resume breakpoint
at the current address, deliver the signal without stepping, and
once we arrive back at the step-resume breakpoint, actually step
over the breakpoint we originally wanted to step over. */
doesn't handle the case of _another_ thread also needing to step over
a breakpoint. Because the other thread is just resumed at the PC
where it had stopped and a breakpoint is still inserted there, the
thread immediately re-traps the same breakpoint. This test exercises
that. On software single-step targets, it fails like this:
KFAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: continue to sigusr1_handler
KFAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: continue to sigusr1_handler
gdb.log (simplified):
(gdb) continue
Continuing.
Breakpoint 4, child_function_2 (arg=0x0) at src/gdb/testsuite/gdb.threads/multiple-step-overs.c:66
66 callme (); /* set breakpoint thread 2 here */
(gdb) thread 3
(gdb) queue-signal SIGUSR1
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fc1740 (LWP 24824))]
#0 main () at src/gdb/testsuite/gdb.threads/multiple-step-overs.c:106
106 wait_threads (); /* set wait-threads breakpoint here */
(gdb) break sigusr1_handler
Breakpoint 5 at 0x400837: file src/gdb/testsuite/gdb.threads/multiple-step-overs.c, line 31.
(gdb) continue
Continuing.
[Switching to Thread 0x7ffff7fc0700 (LWP 24828)]
Breakpoint 4, child_function_2 (arg=0x0) at src/gdb/testsuite/gdb.threads/multiple-step-overs.c:66
66 callme (); /* set breakpoint thread 2 here */
(gdb) KFAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: continue to sigusr1_handler
For good measure, I made the test try displaced stepping too. And
then I found it crashes GDB on x86-64 (a hardware step target), but
only when displaced stepping... :
KFAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: continue to sigusr1_handler (PRMS: gdb/18216)
KFAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: continue to sigusr1_handler (PRMS: gdb/18216)
KFAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: continue to sigusr1_handler (PRMS: gdb/18216)
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000000000062a83a in process_event_stop_test (ecs=0x7fff847eeee0) at src/gdb/infrun.c:4964
4964 if (sr_bp->loc->permanent
Setting up the environment for debugging gdb.
Breakpoint 1 at 0x79fcfc: file src/gdb/common/errors.c, line 54.
Breakpoint 2 at 0x50a26c: file src/gdb/cli/cli-cmds.c, line 217.
(top-gdb) p sr_bp
$1 = (struct breakpoint *) 0x0
(top-gdb) bt
#0 0x000000000062a83a in process_event_stop_test (ecs=0x7fff847eeee0) at src/gdb/infrun.c:4964
#1 0x000000000062a1af in handle_signal_stop (ecs=0x7fff847eeee0) at src/gdb/infrun.c:4715
#2 0x0000000000629097 in handle_inferior_event (ecs=0x7fff847eeee0) at src/gdb/infrun.c:4165
#3 0x0000000000627482 in fetch_inferior_event (client_data=0x0) at src/gdb/infrun.c:3298
#4 0x000000000064ad7b in inferior_event_handler (event_type=INF_REG_EVENT, client_data=0x0) at src/gdb/inf-loop.c:56
#5 0x00000000004c375f in handle_target_event (error=0, client_data=0x0) at src/gdb/linux-nat.c:4658
#6 0x0000000000648c47 in handle_file_event (file_ptr=0x2e0eaa0, ready_mask=1) at src/gdb/event-loop.c:658
The all-stop-non-stop series fixes this, but meanwhile, this augments
the multiple-step-overs.exp test to cover this, KFAILed.
gdb/testsuite/ChangeLog:
2015-04-08 Pedro Alves <palves@redhat.com>
PR gdb/18214
PR gdb/18216
* gdb.threads/multiple-step-overs.c (sigusr1_handler): New
function.
(main): Install it as SIGUSR1 handler.
* gdb.threads/multiple-step-overs.exp (setup): Remove 'prefix'
parameter. Always use "setup" as prefix. Toggle "set
displaced-stepping" off/on depending on global. Don't switch to
thread 1 here.
(top level): Add displaced stepping "off/on" test axis. Update
"setup" calls. Wrap each subtest with with_test_prefix. Test
continuing with a queued signal in each thread.
commit febdfe65a81629bc2a764820c94f9d2912a90e38
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 10:29:23 2015 -0700
Add chdr_size, Chdr, Chdr_write and Chdr_data
* elfcpp.h (Elf_sizes): Add chdr_size.
(Chdr): New.
(Chdr_write): Likewise.
* elfcpp_internal.h (Chdr_data): Likewise.
commit 91fb4b1a83cb06e3e6d7b90075f4d8fda0a709d4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 10:27:55 2015 -0700
Add SHF_COMPRESSED and ELFCOMPRESS_XXX to elfcpp.h
* elfcpp.h (SHF): Add SHF_COMPRESSED.
(ELFCOMPRESS_ZLIB): New.
(ELFCOMPRESS_LOOS): Likewise.
(ELFCOMPRESS_HIOS): Likewise.
(ELFCOMPRESS_LOPROC): Likewise.
(ELFCOMPRESS_HIPROC): Likewise.
commit 31b94bbb7b178be4e688bd250a111b0848af5b76
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 09:46:50 2015 -0700
Skip empty EMULATION_NAME
* emulparams/elf32bmipn32-defs.sh: Skip empty EMULATION_NAME.
commit 5150992626e67d2f6d1573737e06126bfb712c30
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 09:25:08 2015 -0700
Work around a GCC uninitialized warning bug
* compress.c (bfd_compress_section_contents): Work around a GCC
uninitialized warning bug fixed in GCC 4.7.
commit 85558555ec343f6e8ec32da409c838954e68132f
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 8 16:04:07 2015 +0100
[spu] Don't call set_gdbarch_cannot_step_breakpoint in spu_gdbarch_init
Nowadays, in infrun.c:resume, the setting to 'step' variable is like:
if (use_displaced_stepping (gdbarch)
&& tp->control.trap_expected
&& sig == GDB_SIGNAL_0
&& !current_inferior ()->waiting_for_vfork_done)
{
}
/* Do we need to do it the hard way, w/temp breakpoints? */
else if (step)
step = maybe_software_singlestep (gdbarch, pc); <-- [1]
...
if (execution_direction != EXEC_REVERSE
&& step && breakpoint_inserted_here_p (aspace, pc))
{
...
if (gdbarch_cannot_step_breakpoint (gdbarch)) <-- [2]
step = 0;
}
spu doesn't have displaced stepping and uses software single step,
so 'step' is set to zero in [1], and [2] becomes unreachable as a
result. So don't have to call set_gdbarch_cannot_step_breakpoint
in spu_gdbarch_init.
gdb:
2015-04-08 Yao Qi <yao.qi@linaro.org>
* spu-tdep.c (spu_gdbarch_init): Don't call
set_gdbarch_cannot_step_breakpoint.
commit 151411f8af16723a12e0e0eedc1ecdbea648c1b0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 07:53:54 2015 -0700
Add SHF_COMPRESSED support to gas and objcopy
This patch adds --compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}
options to gas and objcopy for ELF files. They control how DWARF debug
sections are compressed. --compress-debug-sections=none is equivalent to
--nocompress-debug-sections. --compress-debug-sections=zlib and
--compress-debug-sections=zlib-gnu are equivalent to
--compress-debug-sections. --compress-debug-sections=zlib-gabi compresses
DWARF debug sections with SHF_COMPRESSED from the ELF ABI. No linker
changes are required to support SHF_COMPRESSED.
bfd/
* archive.c (_bfd_get_elt_at_filepos): Also copy BFD_COMPRESS_GABI
bit.
* bfd.c (bfd::flags): Increase size to 18 bits.
(BFD_COMPRESS_GABI): New.
(BFD_FLAGS_SAVED): Add BFD_COMPRESS_GABI.
(BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
(bfd_update_compression_header): New fuction.
(bfd_check_compression_header): Likewise.
(bfd_get_compression_header_size): Likewise.
(bfd_is_section_compressed_with_header): Likewise.
* compress.c (MAX_COMPRESSION_HEADER_SIZE): New.
(bfd_compress_section_contents): Return the uncompressed size if
the full section contents is compressed successfully. Support
converting from/to .zdebug* sections.
(bfd_get_full_section_contents): Call
bfd_get_compression_header_size to get compression header size.
(bfd_is_section_compressed): Renamed to ...
(bfd_is_section_compressed_with_header): This. Add a pointer
argument to return compression header size.
(bfd_is_section_compressed): Use it.
(bfd_init_section_decompress_status): Call
bfd_get_compression_header_size to get compression header size.
Return FALSE if uncompressed section size is 0.
* elf.c (_bfd_elf_make_section_from_shdr): Support converting
from/to .zdebug* sections.
* bfd-in2.h: Regenerated.
binutils/
* objcopy.c (do_debug_sections): Add compress_zlib,
compress_gnu_zlib and compress_gabi_zlib.
(copy_options): Use optional_argument on compress-debug-sections.
(copy_usage): Update --compress-debug-sections.
(copy_file): Handle compress_zlib, compress_gnu_zlib and
compress_gabi_zlib.
(copy_main): Handle
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
* doc/binutils.texi: Document
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
binutils/testsuite/
* compress.exp: Add tests for
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
* binutils-all/dw2-3.rS: New file.
* binutils-all/dw2-3.rt: Likewise.
* binutils-all/libdw2-compressedgabi.out: Likewise.
gas/
* as.c (show_usage): Update --compress-debug-sections.
(std_longopts): Use optional_argument on compress-debug-sections.
(parse_args): Handle
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
* as.h (compressed_debug_section_type): New.
(flag_compress_debug): Change type to compressed_debug_section_type.
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
* write.c (compress_debug): Set BFD_COMPRESS_GABI for
--compress-debug-sections=zlib-gabi. Call
bfd_get_compression_header_size to get compression header size.
Don't rename section name for --compress-debug-sections=zlib-gabi.
* config/tc-i386.c (compressed_debug_section_type): Set to
COMPRESS_DEBUG_ZLIB.
* doc/as.texinfo: Document
--compress-debug-sections={none|zlib|zlib-gnu|zlib-gabi}.
gas/testsuite/
* gas/i386/dw2-compressed-1.d: New file.
* gas/i386/dw2-compressed-2.d: Likewise.
* gas/i386/dw2-compressed-3.d: Likewise.
* gas/i386/x86-64-dw2-compressed-2.d: Likewise.
* gas/i386/i386.exp: Run dw2-compressed-2, dw2-compressed-1,
dw2-compressed-3 and x86-64-dw2-compressed-2.
ld/testsuite/
* ld-elf/compress.exp: Add a test for
--compress-debug-sections=zlib-gabi.
(build_tests): Add 2 tests for --compress-debug-sections=zlib-gabi.
(run_tests): Likewise.
Verify linker output with zlib-gabi compressed debug input.
* ld-elf/compressed1a.d: New file.
* ld-elf/compressed1b.d: Likewise.
* ld-elf/compressed1c.d: Likewise.
commit bfcf0ccd0131621213c5d6f2908cd703a90176f7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 05:04:13 2015 -0700
Display --interleave[=<number>]
Optional argument of a command line option must start with "=".
* objcopy.c (copy_usage): Replace "--interleave [<number>]" with
--interleave[=<number>].
commit c58212eaf957ef39484ed71316074fd8366e9c4a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 8 04:55:07 2015 -0700
Add ld_list_options
This patch adds ld_list_options for ELF targets to avoid duplicated
outputs from ld --help.
* Makefile.am (ELF_CLFAGS): New.
(AM_CFLAGS): Add $(ELF_CLFAGS).
* configure.ac (elf_list_options): New. AC_SUBST.
(elf_shlib_list_options): Likewise.
(elf_plt_unwind_list_options): Likewise.
* lexsup.c (elf_shlib_list_options): New.
(elf_static_list_options): Likewise.
(elf_plt_unwind_list_options): Likewise.
(ld_list_options): Likewise.
(help): Call ld_list_options.
* Makefile.in: Regenerated.
* configure: Likewise.
* emulparams/plt_unwind.sh (PLT_UNWIND): New.
(PARSE_AND_LIST_OPTIONS): Removed.
* emultempl/elf32.em (gld_list_options): New.
(gld${EMULATION_NAME}_list_options): Define only if BNDPLT or
PARSE_AND_LIST_OPTIONS is defined.
(ld_${EMULATION_NAME}_emulation): Replace
gld${EMULATION_NAME}_list_options with ${gld_list_options.
commit 4496bed7f346afbb2f2b4f939373920a4d69da11
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 8 10:39:43 2015 +0100
Fix gdb.trace/{actions,infotrace,while-stepping}.exp with extended-remote
The recent actions.exp change to check gdb_run_cmd succeeded caught
further problems. The test now fails like this
with --target_board=native-extended-gdbserver:
FAIL: gdb.trace/actions.exp: Can't run to main
gdb.log shows:
(gdb) run
Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.trace/actions
Running the default executable on the remote target failed; try "set remote exec-file"?
(gdb) FAIL: gdb.trace/actions.exp: Can't run to main
The problem is that a gdb_load call is missing.
Grepping around for similar problems in other tests, I found that
infotrace.exp and while-stepping.exp should be likewise affected. And
indeed this is what we get today:
FAIL: gdb.trace/infotrace.exp: tstart
FAIL: gdb.trace/infotrace.exp: continue to end (the program is no longer running)
FAIL: gdb.trace/infotrace.exp: tstop
FAIL: gdb.trace/infotrace.exp: 2.6: info tracepoints (trace buffer usage)
FAIL: gdb.trace/while-stepping.exp: tstart
FAIL: gdb.trace/while-stepping.exp: tstop
FAIL: gdb.trace/while-stepping.exp: tfile: info tracepoints
FAIL: gdb.trace/while-stepping.exp: ctf: info tracepoints
while-stepping.exp even has the same race bug actions.exp had.
After this, {actions,infotrace,while-stepping}.exp all pass cleanly
with the native-extended-gdbserver board.
gdb/testsuite/ChangeLog:
2015-04-08 Pedro Alves <palves@redhat.com>
* gdb.trace/actions.exp: Use gdb_load before gdb_run_cmd.
* gdb.trace/infotrace.exp: Use gdb_load before gdb_run_cmd. Use
gdb_breakpoint instead of gdb_test that doesn't expect anything.
Return early if running to main fails.
* gdb.trace/while-stepping.exp: Likewise.
commit 2449132744a7081d1c8619da45cc9870d9c98fb3
Author: Han Shen <shenhan@google.com>
Date: Tue Apr 7 17:20:11 2015 -0700
Add AArch32 support for arm gold linker.
commit 31ba1f58f81d79fb0e3d5bf3bce5a53adc8e14a9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 8 00:00:08 2015 +0000
Automatic date update in version.in
commit d249a14abe5c2ee3ba4dc6c47e68e41ddc2025a4
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Tue Apr 7 15:19:07 2015 -0400
Initialize variable on gdb/linux-tdep.c:decode_vmflags
This obvious commit initializes the 'saveptr' variable on
gdb/linux-tdep.c:decode_vmflags. This was causing a build failure on
Fedora 21 x86_64, caught by the BuildBot here:
<https://sourceware.org/ml/gdb-testers/2015-q2/msg00450.html>
commit b97fde9213b9217499959f7aebbf076b00c7008b
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:31 2015 +0100
gdb.base/interrupt.exp: Use send_inferior/$inferior_spawn_id
The gdb.base/interrupt.exp test is important for testing system call
restarting, but because it depends on inferior I/O, it ends up skipped
against gdbserver. This patch adjusts the test to use send_inferior
and $inferior_spawn_id so it works against GDBserver.
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* gdb.base/interrupt.exp: Don't skip if $inferior_spawn_id !=
$gdb_spawn_id. Use send_inferior and $inferior_spawn_id to
interact with inferior program.
commit f71c18e755dac28c61a5e5c94fbc8a84eb573679
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:30 2015 +0100
testsuite: Introduce $inferior_spawn_id
Some important tests, like gdb.base/interrupt.exp end up skipped
against gdbserver, because they depend on inferior I/O, which
gdbserver doesn't do.
This patch adds a mechanism that makes it possible to make them work.
It adds a new "inferior_spawn_id" global that is the spawn ID used for
I/O interaction with the inferior. By default, for native targets, or
remote targets that can do I/O through GDB (semi-hosting) this will be
the same as the gdb/host spawn ID. Otherwise, the board may set this
to some other spawn ID. When debugging with GDBserver, this will be
set to GDBserver's spawn ID.
Then tests can use send_inferior instead of send_gdb to send input to
the inferior, and use expect's "-i" switch to select which spawn ID to
use for matching input/output. That is, something like this will now
work:
send_inferior "echo me\n"
gdb_test_multiple "continue" "test msg" {
-i "$inferior_spawn_id" -re "echo me\r\necho\r\n" {
...
}
}
Or even:
gdb_test_multiple "continue" "test msg" {
-i "$inferior_spawn_id" -re "hello world" {
...
}
-i "$gdb_spawn_id" -re "error.*$gdb_prompt $" {
...
}
}
Of course, by default, gdb_test_multiple still matches with
$gdb_spawn_id.
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (inferior_spawn_id): New global.
(gdb_test_multiple): Handle "-i". Reset the spawn id to GDB's
spawn id after processing the user code.
(default_gdb_start): Set inferior_spawn_id.
(send_inferior): New procedure.
* lib/gdbserver-support.exp (gdbserver_start): Set
inferior_spawn_id.
(close_gdbserver, gdb_exit): Unset inferior_spawn_id.
commit 6423214fcb912a5d402ffcb84d6f61f2b900a900
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:30 2015 +0100
testsuite: Don't use expect_background to reap gdbserver
I adjusted a test to do 'expect -i $server_spawn_id -re ...', and saw
really strange behavior. Whether that expect would work, depended on
whether GDB would also send output and the same expect matched it too
(on $gdb_spawn_id). I was perplexed until I noticed that
gdbserver_spawn spawns gdbserver and then uses expect_background to
reap gdbserver. That expect_background conflicts/races with any
"expect -i $server_spawn_id" done anywhere else in parallel...
In order to make it possible for tests to read inferior I/O out of
$server_spawn_id, we to get rid of that expect_background. This patch
makes us instead reap gdbserver's spawn id when GDB exits. If GDB is
still around, this gives a chance for gdbserver to exit cleanly. The
current code in gdb_finish uses "kill", but that doesn't work with
extended-remote (gdbserver doesn't exit). We now use "monitor exit"
instead which works in both remote and extended-remote modes.
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_finish): Delete persistent gdbserver handling.
* lib/gdbserver-support.exp (gdbserver_start): Make
$server_spawn_id global.
(gdbserver_start): Don't wait for gdbserver's spawn id with
expect_background.
(close_gdbserver): New procedure.
(gdb_exit): Rename the default version and reimplement.
commit 71c0ee8cb9d7d77e8b480aaad715cc5343737993
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:30 2015 +0100
gdb_test_multiple: Fix user code argument processing
While teaching gdb_test_multiple to forward "-i" to gdb_expect, I
found that with:
gdb_test_multiple (...) {
-i $some_variable -re "..." {}
}
$some_variable was not getting expanded in the gdb_test_multiple
caller's scope. This is a bug inside gdb_test_multiple. When
processing an argument in passed in user code, it was appending the
original argument literally, instead of appending the uplist'ed
argument.
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_test_multiple): When processing an argument,
append the substituted item, not the original item.
commit 203bc29be2b44cffa7a3d64c8a20a0fb6828518d
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:29 2015 +0100
gdb.base/interrupt.exp: Use gdb_test_multiple instead of gdb_expect
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* gdb.base/interrupt.exp: Use gdb_test_multiple instead of
gdb_expect.
commit 508a3ddf630dfc6e1fe67e2b117152bd64232226
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 18:19:29 2015 +0100
gdb.base/interrupt.exp: Fix race
Working on splitting gdb and inferior output handling in this test, I
noticed a race that happens to be masked out today.
The test sends "a\n" to the inferior, and then inferior echoes back
"a\n".
If expect manages to read only the first "a\r\n" into its buffer, then
this matches:
-re "^a\r\n(|a\r\n)$" {
and leaves the second "a\r\n" in output.
Then the next test that processes inferior I/O sends "data\n", and expects:
-re "^(\r\n|)data\r\n(|data\r\n)$"
which fails given the anchor and given "a\r\n" is still in the buffer.
This is masked today because the test relies on inferior I/O being
done on GDB's terminal, and there are tested GDB commands in between,
which consume the "a\r\n" that was left in the output.
We don't support SunOS4 anymore, so just remove the workaround.
gdb/testsuite/ChangeLog
2015-04-07 Pedro Alves <palves@redhat.com>
* gdb.base/interrupt.exp: Don't handle the case of the inferior
output appearing once only.
commit a97902de74aba337b2ba28ff8f322f5b4a3602bf
Author: Renlin Li <renlin.li@arm.com>
Date: Tue Apr 7 18:10:33 2015 +0100
[AArch64] use subseg_text_p to check .text
2015-04-07 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (mapping_state): Use subseg_text_p.
(s_aarch64_inst): Likewise.
(md_assemble): Likewise.
commit 9f6dbe2bbbdcc3694f264878e10c6b80285b4608
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 5 22:01:06 2015 +0000
Fix gdb.trace/actions.exp race
I saw this on PPC64 once:
not installed on target
(gdb) PASS: gdb.trace/actions.exp: 5.10a: verify teval actions set for two tracepoints
break main
Breakpoint 4 at 0x10000c6c: file ../../../src/gdb/testsuite/gdb.trace/actions.c, line 139.
(gdb) PASS: gdb.trace/actions.exp: break main
run
Starting program: /home/palves/gdb/build/gdb/testsuite/outputs/gdb.trace/actions/actions
tstatus
Breakpoint 4, main (argc=1, argv=0x3fffffffebb8, envp=0x3fffffffebc8) at ../../../src/gdb/testsuite/gdb.trace/actions.c:139
139 begin ();
(gdb) tstatus
Trace can not be run on this target.
(gdb) actions 1
Enter actions for tracepoint 1, one per line.
End with a line saying just "end".
>collect $regs
>end
(gdb) PASS: gdb.trace/actions.exp: set actions for first tracepoint
tstart
You can't do that when your target is `native'
(gdb) FAIL: gdb.trace/actions.exp: tstart
info tracepoints 1
Num Type Disp Enb Address What
1 tracepoint keep y 0x00000000100007c8 in gdb_c_test at ../../../src/gdb/testsuite/gdb.trace/actions.c:74
collect $regs
not installed on target
...
followed by a cascade of FAILs. The "tstatus" was supposed to detect
that this target (native) can't do tracepoints, but, alas, it didn't.
That detection failed because 'gdb_test "break main"' doesn't expect
anything, and then the output was slow enough that 'gdb_test ""
"Breakpoint .*"' matched the output of "break main"...
The fix is to use gdb_breakpoint instead. Also check the result of
gdb_test while at it.
Tested on x86-64 Fedora 20, native and gdbserver.
gdb/testsuite/ChangeLog:
2015-04-07 Pedro Alves <palves@redhat.com>
* gdb.trace/actions.exp: Use gdb_breakpoint instead of gdb_test
that doesn't expect anything. Return early if running to main
fails.
commit 3ea6077552ad86ebb441bef6e1bd40e18d06ab44
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Apr 7 16:29:41 2015 +0100
Add new linker option: --warn-orphan which generates warning messages when orphan sections are detected.
ld * ld.h (struct ld_config_type): Add new field: warn_orphan.
* ldlex.h (enum option_values): Add OPTION_WARN_ORPHAN and
OPTION_NO_WARN_ORPHAN.
* lexsup.c (ld_options): Add --warn-orphan and --no-warn-orphan.
(parse_args): Handle the new options.
* ldemul.c (ldemul_place_orphan): If requested, generate a warning
message when an orphan section is placed in the output file.
* ld.texinfo: Document the new option.
* NEWS: Mention the new feature.
tests * ld-elf/orphan-5.l: New test - checks the linker's output with
--warn-orphan enabled.
* ld-elf/elf.exp: Run the new test.
commit 8a06aea71e0aa9099d0ca593dbb58f6e056af4ff
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 15:47:22 2015 +0100
update thread list, delete exited threads
On GNU/Linux, if the running kernel supports clone events, then
linux-thread-db.c defers thread listing to the target beneath:
static void
thread_db_update_thread_list (struct target_ops *ops)
{
...
if (target_has_execution && !thread_db_use_events ())
ops->beneath->to_update_thread_list (ops->beneath);
else
thread_db_update_thread_list_td_ta_thr_iter (ops);
...
}
However, when live debugging, the target beneath, linux-nat.c, does
not implement the to_update_thread_list method. The result is that if
a thread is marked exited (because it can't be deleted right now,
e.g., it was the selected thread), then it won't ever be deleted,
until the process exits or is killed/detached.
A similar thing happens with the remote.c target. Because its
target_update_thread_list implementation skips exited threads when it
walks the current thread list looking for threads that no longer exits
on the target side, using ALL_NON_EXITED_THREADS_SAFE, stale exited
threads are never deleted.
This is not a big deal -- I can't think of any way this might be user
visible, other than gdb's memory growing a tiny bit whenever a thread
gets stuck in exited state. Still, might as well clean things up
properly.
All other targets use prune_threads, so are unaffected.
The fix adds a ALL_THREADS_SAFE macro, that like
ALL_NON_EXITED_THREADS_SAFE, walks the thread list and allows deleting
the iterated thread, and uses that in places that are walking the
thread list in order to delete threads. Actually, after converting
linux-nat.c and remote.c to use this, we find the only other user of
ALL_NON_EXITED_THREADS_SAFE is also walking the list to delete
threads. So we convert that too, and end up deleting
ALL_NON_EXITED_THREADS_SAFE.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/ChangeLog
2015-04-07 Pedro Alves <palves@redhat.com>
* gdbthread.h (ALL_NON_EXITED_THREADS_SAFE): Rename to ...
(ALL_THREADS_SAFE): ... this, and don't skip exited threads.
(delete_exited_threads): New declaration.
* infrun.c (follow_exec): Use ALL_THREADS_SAFE.
* linux-nat.c (linux_nat_update_thread_list): New function.
(linux_nat_add_target): Install it.
* remote.c (remote_update_thread_list): Use ALL_THREADS_SAFE.
* thread.c (prune_threads): Use ALL_THREADS_SAFE.
(delete_exited_threads): New function.
commit 87070c082fd5c23e9a0e7994ff9ea13f6faecb3e
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 7 22:23:21 2015 +0930
Modify get_reloc_section for targets that map .got.plt to .got
Fixes tic6x testsuite failures due to .rela.plt having a zero sh_info.
I considered passing link_info to get_reloc_section so we could
directly return the .got.plt output section, but we need the fallback
to name lookup anyway for objcopy.
bfd/
* elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being
mapped to output .got section.
ld/testsuite/
* ld-arm/tls-gdesc-nlazy.g: Adjust for readelf note.
* ld-tic6x/shlib-1.rd: Expect corrected .rela.plt sh_info.
* ld-tic6x/shlib-1b.rd: Likewise.
* ld-tic6x/shlib-1r.rd: Likewise.
* ld-tic6x/shlib-1rb.rd: Likewise.
* ld-tic6x/shlib-app-1.rd: Likewise.
* ld-tic6x/shlib-app-1b.rd: Likewise.
* ld-tic6x/shlib-app-1r.rd: Likewise.
* ld-tic6x/shlib-app-1rb.rd: Likewise.
* ld-tic6x/shlib-noindex.rd: Likewise.
commit 0fad6e4b94e754e26e904bab074bf6c94d825711
Author: Alan Modra <amodra@gmail.com>
Date: Tue Apr 7 10:39:59 2015 +0930
Cast shift expression
PR ld/18176
* ldlang.c (lang_size_sections): Cast shift expression.
commit d3e454b956b16d31998fec65a2508256e6357194
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 1 09:59:46 2015 +1030
PowerPC non-PIC to PIC editing for protected var access
This is a linker-only solution to the incompatibility between shared
library protected visibility variables and using .dynbss and copy
relocs for non-PIC access to shared library variables.
bfd/
* elf32-ppc.c (struct ppc_elf_link_hash_entry): Add has_addr16_ha
and has_addr16_lo. Make has_sda_refs a bitfield.
(ppc_elf_check_relocs): Set new flags.
(ppc_elf_link_hash_table_create): Update default_params.
(ppc_elf_adjust_dynamic_symbol): Clear protected_def in cases
where we won't be making .dynbss entries or editing code. Set
params->pic_fixup when we'll edit code for protected var access.
(allocate_dynrelocs): Allocate got entry for edited code and
discard dyn_relocs.
(struct ppc_elf_relax_info): Add picfixup_size.
(ppc_elf_relax_section): Rename struct one_fixup to struct
one_branch_fixup. Rename fixups to branch_fixups. Size space for
pic fixups.
(ppc_elf_relocate_section): Edit non-PIC accessing protected
visibility variables to PIC. Don't emit dyn_relocs for code
we've edited.
* elf32-ppc.h (struct ppc_elf_params): Add pic_fixup.
ld/
* emultempl/ppc32elf.em: Handle --no-pic-fixup.
(params): Init new field.
(ppc_before_allocation): Enable relaxation for pic_fixup.
commit d9b67d9f4127191679c743d1f47d2421d6dcede7
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 7 11:42:09 2015 +0100
Displaced stepping debug: fetch the right regcache
Although not currently possible in practice when we get here,
'resume_ptid' can also be a wildcard throughout this function. It's
clearer to fetch the regcache using the thread's ptid.
gdb/ChangeLog:
2015-04-07 Pedro Alves <pedro@codesourcery.com>
* infrun.c (resume) <displaced stepping debug output>: Get the
leader thread's regcache, not resume_ptid's.
commit 337532fab150dc531c92a31e179df96b98a619c0
Author: Yao Qi <yao.qi@linaro.org>
Date: Tue Apr 7 11:30:07 2015 +0100
Properly set alarm value in gdb.threads/non-stop-fair-events.exp
Nowadays, the alarm value is 60, and alarm is generated on some slow
boards. This patch is to pass DejaGNU timeout value to the program,
and move the alarm call before going to infinite loop. If any thread
has activities, the alarm is reset.
gdb/testsuite:
2015-04-07 Yao Qi <yao.qi@linaro.org>
* gdb.threads/non-stop-fair-events.c (SECONDS): New macro.
(child_function): Call alarm.
(main): Move call to alarm into the loop.
* gdb.threads/non-stop-fair-events.exp: Build program with
-DTIMEOUT=$timeout.
commit ffa547701bec5b3fb92acf049e5442cbbfc95b2c
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Apr 7 11:22:32 2015 +0100
Treat assembler generated local labels as local.
* elf.c (_bfd_elf_is_local_label_name): Treat assembler generated
local labels as local.
commit 122bbfb52a7990dbed5f5da79cf8d9eb305ca7e3
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Apr 6 23:40:00 2015 -0400
sim: move sim-engine.o/sim-hrw.o to the common list
This makes these two objects available to all sims by default.
commit dc081549e71d715a229becaf37d0909836c52a9d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 7 00:00:10 2015 +0000
Automatic date update in version.in
commit 7fa5525f8e8bc5d5e08998718149bda1928e314a
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Mon Apr 6 15:49:50 2015 -0400
Fix the signature of a virtual method to match the one in the parent class.
commit 5368dcf2bae8f15e16cd14348bb7bd716bbc81cb
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Mon Apr 6 15:45:37 2015 -0400
Avoid a call to find by using the return value of insert.
commit 9dbb4b021df7015ab7a7dee40e30f72470afde6b
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Mon Apr 6 15:39:42 2015 -0400
Avoid a copy constructor call.
commit dae148f3b925ba75459caec099932e31a1ad961b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 6 12:19:13 2015 -0700
Remove is_zlib_supported
Since zlib is always supported, there is no need for is_zlib_supported.
binutils/testsuite/
* binutils-all/compress.exp: Remove is_zlib_supported check.
* binutils-all/objdump.exp: Likewise.
* binutils-all/readelf.exp (readelf_compressed_wa_test): Likewise.
* lib/utils-lib.exp (run_dump_test): Likewise.
* lib/binutils-common.exp (is_zlib_supported): Removed.
gas/testsuite/
* lib/gas-defs.exp (run_dump_test): Remove is_zlib_supported check.
ld/testsuite/
* ld-elf/compress.exp: Remove is_zlib_supported check.
Fail if --compress-debug-sections doesn't work.
* lib/ld-lib.exp (run_dump_test): Remove is_zlib_supported check.
commit bf890a93a7c46f63fc0595189cf2b388e9a29316
Author: Ilya Tocar <ilya.tocar@intel.com>
Date: Mon Apr 6 19:33:01 2015 +0300
x86: Use individual prefix control for each opcode.
2015-04-06 Ilya Tocar <ilya.tocar@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
* i386-dis-evex.h (evex_table): Fill prefix_requirement field.
* i386-dis.c (PREFIX_MANDATORY_REPZ, PREFIX_MANDATORY_REPNZ,
PREFIX_MANDATORY_DATA, PREFIX_MANDATORY_ADDR, PREFIX_MANDATORY_LOCK,
PREFIX_UD_SHIFT, PREFIX_UD_REPZ, REFIX_UD_REPNZ, PREFIX_UD_DATA,
PREFIX_UD_ADDR, PREFIX_UD_LOCK, PREFIX_OPTIONAL, PREFIX_MANDATORY):
Define.
(Bad_Opcode, FLOAT, DIS386, DIS386_PREFIX, THREE_BYTE_TABLE_PREFIX):
Fill prefix_requirement field.
(struct dis386): Add prefix_requirement field.
(dis386): Fill prefix_requirement field.
(dis386_twobyte): Ditto.
(twobyte_has_mandatory_prefix_: Remove.
(reg_table): Fill prefix_requirement field.
(prefix_table): Ditto.
(x86_64_table): Ditto.
(three_byte_table): Ditto.
(xop_table): Ditto.
(vex_table): Ditto.
(vex_len_table): Ditto.
(vex_w_table): Ditto.
(mod_table): Ditto.
(bad_opcode): Ditto.
(print_insn): Use prefix_requirement.
(FGRPd9_2, FGRPd9_4, FGRPd9_5, FGRPd9_6, FGRPd9_7, FGRPda_5, FGRPdb_4,
FGRPde_3, FGRPdf_4): Fill prefix_requirement field.
(float_reg): Ditto.
commit 4aa90cc007ff1e7c6525b3f5e573e3a4242091fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 6 09:01:43 2015 -0700
Use bfd_putb64/bfd_getb64
bfd/
* compress.c (get_uncompressed_size): Removed.
(bfd_compress_section_contents): Use bfd_putb64 to write
uncompressed section size.
(bfd_init_section_decompress_status): Replace
get_uncompressed_size with bfd_getb64.
gas/
* write.c (compress_debug): Use bfd_putb64 to write uncompressed
section size.
commit fd5136e57ca26072fa015a7563ba019b1b2b7d73
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 6 08:59:15 2015 -0700
Remove "/dev/null" from remote_exec
We should catch all errors/warnings from cmp.
* binutils-all/compress.exp (compression_used): Remove "/dev/null"
from remote_exec.
commit 85317fbbca85af8786ba3ce0523a1b85b4457f09
Author: Doug Evans <xdje42@gmail.com>
Date: Mon Apr 6 08:59:58 2015 -0700
Add testcase for stub-method reading in stabs.
This patch is based on the testcase provided here:
https://sourceware.org/ml/gdb-patches/2015-02/msg00181.html
I've verified that it catches the internal error discovered here:
https://sourceware.org/ml/gdb-patches/2015-02/msg00139.html
gdb/testsuite/ChangeLog:
* lib/gdb.exp (clean_restart): Return result of gdb_load.
* gdb.pascal/stub-method.exp: New file.
* gdb.pascal/stub-method.pas: New file.
commit 01b622d4c7536f20622bc0e23ff78b7fe37bc1e3
Author: Doug Evans <xdje42@gmail.com>
Date: Mon Apr 6 08:45:06 2015 -0700
* lib/pascal.exp (gpc_compile): Rename dest arg to destfile.
The "dest" parameter to fpc_compile/gpc_compile is the name of
compilation destination file, not a board name.
This patch fixes this by using names consistent with
lib/future.exp:gdb_default_target_compile.
gdb/testsuite/ChangeLog:
* lib/pascal.exp (gpc_compile): Rename dest arg to destfile.
Fix dest parameter to board_info.
(fpc_compile): Ditto.
(gdb_compile_pascal): Rename dest arg to destfile.
commit 2c26b84f4520591762dfb7f740fb85c15c21a2ea
Author: Doug Evans <xdje42@gmail.com>
Date: Mon Apr 6 08:31:46 2015 -0700
symtab.c (hash_symbol_entry): Hash STRUCT_DOMAIN symbols as VAR_DOMAIN.
gdb/ChangeLog:
* symtab.c (hash_symbol_entry): Hash STRUCT_DOMAIN symbols as
VAR_DOMAIN.
(symbol_cache_lookup): Clarify use of bsc_ptr, slot_ptr parameters.
Include symbol domain in debugging output.
commit 7a85168daf6036fee808dac9944161415189f8a4
Author: Pedro Alves <palves@redhat.com>
Date: Mon Apr 6 12:35:18 2015 +0100
Fallback to stub-termcap.c on all hosts
Currently building gdb is impossible without an installed termcap or
curses library. But, GDB already has a very minimal termcap in the
tree to handle this situation for Windows -- gdb/stub-termcap.c. This
patch makes that the fallback for all hosts.
Testing this on GNU/Linux (by simply hacking away the termcap/curses
detection in gdb/configure.ac), we trip on:
../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io':
/home/pedro/gdb/mygit/src/readline/terminal.c:527: undefined reference to `PC'
/home/pedro/gdb/mygit/src/readline/terminal.c:528: undefined reference to `BC'
/home/pedro/gdb/mygit/src/readline/terminal.c:529: undefined reference to `UP'
/home/pedro/gdb/mygit/src/readline/terminal.c:538: undefined reference to `PC'
/home/pedro/gdb/mygit/src/readline/terminal.c:539: undefined reference to `BC'
/home/pedro/gdb/mygit/src/readline/terminal.c:540: undefined reference to `UP'
These are globals that are normally defined by termcap (or ncurses'
termcap emulation).
Now, we could just define replacements in stub-termcap.c, but
readline/terminal.c (at least the copy in our tree) has this:
#if !defined (__linux__) && !defined (NCURSES_VERSION)
# if defined (__EMX__) || defined (NEED_EXTERN_PC)
extern
# endif /* __EMX__ || NEED_EXTERN_PC */
char PC, *BC, *UP;
#endif /* !__linux__ && !NCURSES_VERSION */
which can result in readline defining the globals too. That will
usually work out in C, given that "-fcommon" is usually the default
for C compilers, but that won't work for C++, or C with -fno-common
(link fails with "multiple definition" errors)...
Mirroring those #ifdef conditions in the stub termcap screams
"brittle" to me -- I can see them changing in latter readline
versions.
Work around that by simply using __attribute__((weak)).
Windows/PE/COFF's do support weak, but not on gcc 3.4 based toolchains
(4.8.x does work). Given the file never needed the variables while it
was Windows-only, just continue not defining them there. All other
supported hosts should support this.
gdb/ChangeLog:
2015-04-06 Pedro Alves <palves@redhat.com>
Bernd Edlinger <bernd.edlinger@hotmail.de>
* configure.ac: Remove the mingw32-specific stub-termcap.o
fallback, and instead fallback to the stub termcap on all hosts.
* configure: Regenerate.
* stub-termcap.c [!__MINGW32__] (PC, BC, UP): Define as weak
symbols.
commit 1fa29f10602cd0ab395e0f83c9d87ab160b0df8a
Author: Ilya Tocar <ilya.tocar@intel.com>
Date: Mon Apr 6 12:37:34 2015 +0300
[Gold,x86_64] Convert mov foo@GOTPCREL(%rip), %reg to lea foo(%rip), %reg
2015-04-06 Ilya Tocar <ilya.tocar@intel.com>
PR gold/17641
* x86_64.cc (Target_x86_64::can_convert_mov_to_lea): New.
(Target_x86_64::Scan::local): Don't create GOT entry, when we
can convert mov to lea.
(Target_x86_64::Scan::global): Ditto.
(Target_x86_64::Relocate::relocate): Convert mov foo@GOTPCREL(%rip),
%reg to lea foo(%rip), %reg if possible.
* testsuite/Makefile.am (x86_64_mov_to_lea): New test.
* testsuite/x86_64_mov_to_lea1.s: New.
* testsuite/x86_64_mov_to_lea2.s: Ditto.
* testsuite/x86_64_mov_to_lea3.s: Ditto.
* testsuite/x86_64_mov_to_lea4.s: Ditto.
* testsuite/x86_64_mov_to_lea.sh: Ditto.
---
commit cbaa2d709747b9da2955761ec86cbee4340263e3
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 6 00:00:07 2015 +0000
Automatic date update in version.in
commit 77115a4a156052eb1542d16041115cc347da4a07
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Apr 5 09:20:02 2015 -0700
Add SHF_COMPRESSED support to readelf
This patch updates readelf to dump compression header with
readelf -S -W:
[ 4] .debug_info PROGBITS 00000000 000038 00007d 00 C 0 0 1
readelf -t -W:
[ 4] .debug_info
PROGBITS 00000000 000038 00007d 00 0 0 1
[00000800]: COMPRESSED
ZLIB, 0000009d, 1
It also checks the compression header when decompressing the compressed
section.
* readelf.c (get_elf_section_flags): Support SHF_COMPRESSED.
(get_compression_header): New.
(process_section_headers): Dump compression header if needed.
(uncompress_section_contents): Don't free compressed_buffer here.
(load_specific_debug_section): Free the compressed buffer, update
the section buffer and the section size if uncompress is
successful.
commit 317974f6831d8c7af613257e190e0dc3125bc4cf
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Apr 5 08:11:11 2015 -0700
Xfail the compressed debug sections
There is no need to generate compressed debug section if compressed
section size is the same as before compression. We should xfail the
compressed debug section test if there are no compressed sections
binutils/testsuite/
* binutils-all/compress.exp (compression_used): New.
Xfail test if compression didn't make the section smaller.
gas/
2015-04-05 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Don't write the zlib header if
compressed section size is the same as before compression.
commit 20cc97536046f8aa883c3fba16aa1c9a2762f183
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 5 04:37:44 2015 -0400
sim: moxie: fix running after nrun conversion
The nrun conversion was slightly incorrect in how it stopped when an
exception occurred. We still set cpu.asregs.exception, but nothing
was checking it anymore. Convert all of that to sim_engine_halt.
To keep things from regressing again, add a basic testsuite too.
commit 024305f7f28b3b322ae26c5c1c2d23ca6f5c11bb
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 5 03:52:08 2015 -0400
sim: mn10300: add a basic testsuite
commit aad84fa6aec2c3fcfebaa322cfdea7b47365e8fb
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 5 03:17:44 2015 -0400
sim: m68hc11: add a basic testsuite
commit eed64ce67576be638408a051e6df1057612a7f8e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 5 02:28:44 2015 -0400
sim: iq2000: add a basic testsuite
commit e56dbbb92fdfa714e7b9ba9d70da8ab0ae3558be
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Apr 5 01:58:00 2015 -0400
sim: lm32: add a basic testsuite
commit 1d2d99379e358c2b3bc7a4e2d4ffd9b7925a83b4
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 5 00:00:08 2015 +0000
Automatic date update in version.in
commit 68f5ff89edd041719c0d45e1f716a5251d7be768
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 4 08:01:54 2015 -0700
Also preserve the SHF_COMPRESSED bit
For objcopy and relocatable link, we should also preserve the
SHF_COMPRESSED bit if not decompress.
* elf.c (_bfd_elf_init_private_section_data): Also preserve the
SHF_COMPRESSED bit if not decompress.
commit 906bacc0eaac3681a7d6da1bde73dcef7fd3ade7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 4 07:52:55 2015 -0700
Replace uncompressed_size_buffer with compressed_size_buffer
commit 8bed4e0f7b0f82bff55798465bfef2a6986758d3
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 4 07:49:35 2015 -0700
Extract get_uncompressed_size
* compress.c (get_uncompressed_size): New. Extracted from ...
(bfd_init_section_decompress_status): This. Use it.
commit e268c0a63c2c4c60d54c07d1c3055cb0e62f6b40
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Apr 4 07:18:17 2015 -0700
Add a dw2-3.S test
This patch adds a dw2-3.S test for upcoming SHF_COMPRESSED test. The
existing dw2-1.S/dw2-2.S tests generate non-compressed debug sections
for SHF_COMPRESSED since SHF_COMPRESSED compressed debug sections are
bigger.
* binutils-all/compress.exp (testfile): Remove suffix.
(compressedfile): Likewise.
(compressedfile2): Likewise.
(libfile): Likewise.
(testfile3): New.
(compressedfile3): Likewise.
Updated.
Add a dw2-3.S test.
* binutils-all/dw2-3.S: New file.
* binutils-all/dw2-3.W: Likewise.
commit af72fdacfd25568af684e859a60f2c711dbe7f89
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 4 00:00:07 2015 +0000
Automatic date update in version.in
commit 6aa76120296414774436cc14c60fe10fef86aa0f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 3 12:49:45 2015 -0700
Add Elf_Internal_Chdr and ElfXX_External_Chdr
* external.h (Elf32_External_Chdr): New.
(Elf64_External_Chdr): Likewise.
* internal.h (Elf_Internal_Chdr): Likewise.
commit 25755e2b85e2bd5b313ea87f32000bf9a47dbbf8
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Fri Apr 3 14:53:12 2015 +0200
gdbtypes.c: remove the usuned "top_level" parameter
This paramater is no longer useful after the previous commit, so remove
it as a cleanup.
gdb/ChangeLog:
* gdbtypes.c (is_dynamic_type_internal): Remove the unused
"top_level" parameter.
(resolve_dynamic_type_internal): Remove the unused "top_level"
parameter. Update call to is_dynamic_type_internal.
(is_dynamic_type): Update call to is_dynamic_type_internal.
(resolve_dynamic_range): Update call to
resolve_dynamic_type_internal.
(resolve_dynamic_union): Likewise.
(resolve_dynamic_struct): Likewise.
(resolve_dynamic_type): Likewise.
commit 961f41602529c9cd4f88af6c02fb61fb55100e27
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Fri Apr 3 10:40:52 2015 +0200
Do not consider reference types as dynamic
Even when referenced types are dynamic, the corresponding referencing
type should not be considered as dynamic: it's only a pointer. This
prevents reference type for values not in memory to be resolved.
gdb/ChangeLog:
* gdbtypes.c (is_dynamic_type_internal): Remove special handling
of TYPE_CODE_REF types so that they are not considered as
dynamic depending on the referenced type.
(resolve_dynamic_type_internal): Likewise.
gdb/testsuite/ChangeLog:
* gdb.ada/funcall_ref.exp: New file.
* gdb.ada/funcall_ref/foo.adb: New file.
commit cbf0179287a799be27e278a41f7705d4c20d9f11
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 3 04:03:07 2015 -0700
Make is_zlib_supported always return 1
* lib/binutils-common.exp (is_zlib_supported): Always return 1.
commit b366059a5b384ed822e44a6407b35ab1386b925f
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Apr 2 20:15:43 2015 -0400
sim: d10v: fix signal updates
Way back in aba6488e0b73756f31f154d12a228baa82a68d8a, a bunch of signal
defines were changed to TARGET_SIGNAL_xxx. For d10v, the transition was
incomplete which lead to sim_stop_reason using the new set but sim_resume
still using the old set. Which meant in some cases, the sim would never
actually stop.
Convert all the remaining SIGxxx defines in here to TARGET_SIGNAL_xxx.
This has the nice side effect of fixing the testsuite.
commit ef6f73553efece92e797b138cf02aaacce19574a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 3 00:00:07 2015 +0000
Automatic date update in version.in
commit f66adc4eada1884cef90aa978561b9b2008cdaf2
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 2 17:13:12 2015 +0100
Second fix for microblaze gas port's ability to parse constants.
PR gas/18189
* config/tc-microblaze.c (parse_imm): Use offsetT as the type for
min and max parameters. Sign extend values before testing.
commit 03e080386e266243b2af667af026b992822085cd
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 2 16:10:06 2015 +0100
Fixes a bug in the microblaze assembler where it would not complain about constants larger than 32-bits.
PR gas/18189
* config/tc-microblaze.c (parse_imm): Use offsetT as the type for
min and max parameters.
commit 4295609462ce6c0983064c10d95ff6bacce0cdfd
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Apr 2 15:28:02 2015 +0100
Fix the binutils readelf.ss test for the AArch64 target.
* binutils-all/readelf.ss-64: Move possible location of the $d
mapping symbol.
commit 15c7659fd125da7d08cfe0f82f1795ab88f897d2
Author: Andrew Turner <andrew@freebsd.org>
Date: Thu Apr 2 15:07:27 2015 +0100
Add support for configuring an aarch64-freebsd target.
ld * Makefile.am: Add FreeBSD aarch64 files.
* Makefile.in: Regenerate.
* configure.tgt: Add aarch64-*-freebsd* target triple.
* emulparams/aarch64fbsd.sh: New file.
* emulparams/aarch64fbsdb.sh: New file.
bfd * config.bfd: Add aarch64-*-freebsd* target triple.
commit c1baaddf8861aea666b84baeb4746caff51a579d
Author: Renlin Li <renlin.li@arm.com>
Date: Thu Apr 2 14:59:45 2015 +0100
[AArch64] Emit DATA_MAP in order within text section
2015-03-27 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (mapping_state): Emit MAP_DATA within text section in order.
(mapping_state_2): Don't emit MAP_DATA here.
(s_aarch64_inst): Align frag during state transition.
(md_assemble): Likewise.
commit 726e626a7bdeaf5f828faf12e2c1e81504b8fb73
Author: Ed Maste <emaste@freebsd.org>
Date: Thu Apr 2 14:44:59 2015 +0100
Remove unused functions in tc-aarch64.c.
* config/tc-aarch64.c (set_error_kind): Delete.
(set_error_message): Delete.
commit cafda5977a98aef514ff86daca2fa94205bdd34e
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Apr 2 13:51:31 2015 +0100
kfail two tests in no-unwaited-for-left.exp for remote target
I see these two fails in no-unwaited-for-left.exp in remote testing
for aarch64-linux target.
...
continue
Continuing.
warning: Remote failure reply: E.No unwaited-for children left.
[Thread 1084] #2 stopped.
(gdb) FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when thread 2 exits
....
continue
Continuing.
warning: Remote failure reply: E.No unwaited-for children left.
[Thread 1081] #1 stopped.
(gdb) FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits
I checked the gdb.log on buildbot, and find that these two fails also
appear on Debian-i686-native-extended-gdbserver and Fedora-ppc64be-native-gdbserver-m64.
I recall that they are about local/remote parity, and related RSP is missing.
There has been already a PR 14618 about it. This patch is to kfail them
on remote target.
gdb/testsuite:
2015-04-02 Yao Qi <yao.qi@linaro.org>
* gdb.threads/no-unwaited-for-left.exp: Set up kfail if target
is remote.
commit 39f3de7c43926181f8f2f57bfa17d4fe9e5748a0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 2 05:41:50 2015 -0700
Regenerate configure in bfd/binutils/gas/gdb/gold
bfd/
* configure: Regenerated.
binutils/
* configure: Regenerated.
gas/
* configure: Regenerated.
gdb/
* Makefile.in (top_srcdir): New.
* configure: Regenerated.
gold/
* configure: Regenerated.
commit 7fed4b0be6aa0d0794b8536e9f80d128f0d9bbdb
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 2 05:38:34 2015 -0700
Regenerate configure in sim
* arm/configure: Regenerated.
* avr/configure: Likewise.
* bfin/configure: Likewise.
* common/configure: Likewise.
* cr16/configure: Likewise.
* cris/configure: Likewise.
* d10v/configure: Likewise.
* erc32/configure: Likewise.
* frv/configure: Likewise.
* ft32/configure: Likewise.
* h8300/configure: Likewise.
* igen/configure: Likewise.
* iq2000/configure: Likewise.
* lm32/configure: Likewise.
* m32c/configure: Likewise.
* m32r/configure: Likewise.
* m68hc11/configure: Likewise.
* mcore/configure: Likewise.
* microblaze/configure: Likewise.
* mips/configure: Likewise.
* mn10300/configure: Likewise.
* moxie/configure: Likewise.
* msp430/configure: Likewise.
* ppc/configure: Likewise.
* rl78/configure: Likewise.
* rx/configure: Likewise.
* sh/configure: Likewise.
* sh64/configure: Likewise.
* v850/configure: Likewise.
commit df7f7547a5cb6455ad07855482797860b71fb532
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 2 05:37:09 2015 -0700
Set zlibdir/zlibinc with top_builddir/top_srcdir
* zlib.m4 (AM_ZLIB): Set zlibdir to -L\$(top_builddir)/../zlib
and set zlibinc to -I\$(top_srcdir)/../zlib.
commit 599bd15cdae16c5c420c85cf4853fcfd769bce75
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Document "target:" sysroot changes
This commit documents the newly added "target:" sysroot feature.
gdb/ChangeLog:
* NEWS: Announce the new default sysroot of "target:".
gdb/doc/ChangeLog:
* gdb.texinfo (set sysroot): Document "target:".
commit fed040c6a50399617d8265cbddc7fd21b3f134ef
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Make the default sysroot be "target:"
This commit makes GDB default to a sysroot of "target:".
One testcase needed updating as a result of this change.
gdb/ChangeLog:
* main.c (captured_main): Set gdb_sysroot to "target:"
if not otherwise set.
gdb/testsuite/ChangeLog:
* gdb.base/break-probes.exp: Cope with "target:" sysroot.
commit 64c0b5de8dfd68c54060b07d54b1edf8d22fc52b
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Update exec_file_attach to cope with "target:" filenames
This commit adds support for filenames prefixed with "target:" to
exec_file_attach. This is required to correctly follow inferior
exec* calls when a gdb_sysroot prefixed with "target:" is set.
gdb/ChangeLog:
* exec.c (exec_file_attach): Support "target:" filenames.
commit b57fbfba4b53434252fce55e323f08aeab556409
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Strip "target:" prefix in solib_find if accessing local files
This commit updates solib_find to strip the "target:" prefix from
gdb_sysroot when accessing local files. This ensures that the same
search algorithm is used for local files regardless of whether a
"target:" prefix was used or not. It also avoids cluttering GDB's
output with unnecessary "target:" prefixes on paths.
gdb/ChangeLog:
* solib.c (solib_find): Strip "target:" prefix from sysroot
if accessing local files.
commit 97a41605e2473c67e82ef5147b4866768bd5a566
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Rearrange symfile_bfd_open
symfile_bfd_open handled what were remote files as a special case.
Converting from "remote:" files to "target:" made symfile_bfd_open
look like this:
if remote:
open bfd, check format, etc
return
local-specific stuff
open bfd, check format, etc
return
This commit rearranges symfile_bfd_open to remove the duplicated
code, like this:
if local:
local-specific stuff
open bfd, check format, etc
return
gdb/ChangeLog:
* symfile.c (symfile_bfd_open): Reorder to remove duplicated
checks and error messages.
commit 2938e6cf0809cd81d1593f414ea5836812e68ed2
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Convert "remote:" sysroots to "target:" and remove "remote:"
The functionality of "target:" sysroots is a superset of the
functionality of "remote:" sysroots. This commit causes the
"set sysroot" command to rewrite "remote:" sysroots as "target:"
sysroots and replaces "remote:" specific code with "target:"
specific code where still necessary.
gdb/ChangeLog:
* remote.h (REMOTE_SYSROOT_PREFIX): Remove definition.
(remote_filename_p): Remove declaration.
(remote_bfd_open): Likewise.
* remote.c (remote_bfd_iovec_open): Remove function.
(remote_bfd_iovec_close): Likewise.
(remote_bfd_iovec_pread): Likewise.
(remote_bfd_iovec_stat): Likewise.
(remote_filename_p): Likewise.
(remote_bfd_open): Likewise.
* symfile.h (gdb_bfd_open_maybe_remote): Remove declaration.
* symfile.c (separate_debug_file_exists): Use gdb_bfd_open.
(gdb_bfd_open_maybe_remote): Remove function.
(symfile_bfd_open): Replace remote filename check with
target filename check.
(reread_symbols): Use gdb_bfd_open.
* build-id.c (gdbcore.h): New include.
(build_id_to_debug_bfd): Use gdb_bfd_open.
* infcmd.c (attach_command_post_wait): Remove remote filename
check.
* solib.c (solib_find): Replace remote-specific handling with
target-specific handling. Update comments where necessary.
(solib_bfd_open): Replace remote-specific handling with
target-specific handling.
(gdb_sysroot_changed): New function.
(_initialize_solib): Call the above when gdb_sysroot changes.
* windows-tdep.c (gdbcore.h): New include.
(windows_xfer_shared_library): Use gdb_bfd_open.
commit f08e97fed19e0722b6b36e7e638ee86a8aca7db5
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:29 2015 +0100
Make gdb_bfd_open able to open BFDs using target fileio
This commit updates gdb_bfd_open to access files using target
fileio functions if the supplied path starts with "target:"
and if the local and target filesystems are not the same.
This allows users to specify "set sysroot target:" and have
GDB access files locally or from the remote as appropriate.
The new functions in gdb_bfd.c are copies of functions from
remote.c. This duplication is intentional and will be removed
by the next commit in this series.
gdb/ChangeLog:
* gdb/gdb_bfd.h (TARGET_SYSROOT_PREFIX): New definition.
(is_target_filename): New declaration.
(gdb_bfd_has_target_filename): Likewise.
(gdb_bfd_open): Update documentation comment.
* gdb_bfd.c (target.h): New include.
(gdb/fileio.h): Likewise.
(is_target_filename): New function.
(gdb_bfd_has_target_filename): Likewise.
(fileio_errno_to_host): Likewise.
(gdb_bfd_iovec_fileio_open): Likewise.
(gdb_bfd_iovec_fileio_pread): Likewise.
(gdb_bfd_iovec_fileio_close): Likewise.
(gdb_bfd_iovec_fileio_fstat): Likewise.
(gdb_bfd_open): Use target fileio to access paths prefixed
with "target:" where necessary.
commit 4bd7dc42558fcf53bb0c783f852f03dcac38866f
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:28 2015 +0100
Introduce target_filesystem_is_local
This commit introduces a new target method target_filesystem_is_local
which can be used to determine whether or not the filesystem accessed
by the target_fileio_* methods is the local filesystem.
gdb/ChangeLog:
* target.h (struct target_ops) <to_filesystem_is_local>:
New field.
(target_filesystem_is_local): New macro.
* target-delegates.c: Regenerate.
* remote.c (remote_filesystem_is_local): New function.
(init_remote_ops): Initialize to_filesystem_is_local.
commit 9b15c1f0419ae693fdcf6cca399e9a916e14c48e
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Apr 2 13:38:28 2015 +0100
Introduce target_fileio_fstat
This commit introduces a new target method target_fileio_fstat
which can be used to retrieve information about files opened with
target_fileio_open.
gdb/ChangeLog:
* target.h (struct target_ops) <to_fileio_fstat>: New field.
(target_fileio_fstat): New declaration.
* target.c (target_fileio_fstat): New function.
* inf-child.c (inf_child_fileio_fstat): Likewise.
(inf_child_target): Initialize to_fileio_fstat.
* remote.c (init_remote_ops): Likewise.
commit 3d5ff6205b2e62388280661769cc0555a58a1358
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Apr 2 00:48:04 2015 -0400
binutils: update my e-mail address
commit 1a8faa2aa652d8d6c6c3daa83b1dac35ee27e64e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Wed Apr 1 02:34:00 2015 -0400
sim: clean up SIM_EXTRA_OBJS references
This variable was deleted in previous commits and is not used anymore.
Prune any stray references to it.
commit 6f20d58b6f9f7e4a239567f6245a580932f37adb
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 2 00:00:07 2015 +0000
Automatic date update in version.in
commit 2412d878342e6fc36caf314826d6bfa8292d84c6
Author: Evandro Menezes <emenezes@osdn.samsung.com>
Date: Thu Mar 26 15:18:08 2015 -0500
[AArch64] Add support for the Samsung Exynos M1 processor
2015-03-26 Evandro Menezes <e.menezes@samsung.com>
gas/
* config/tc-aarch64.c: Add support for Samsung Exynos M1.
* doc/c-aarch64.texi (-mcpu=): Add "exynos-m1".
commit 246496bb652fa8571bfccd46886dd03598bae2b0
Author: Evandro Menezes <e.menezes@samsung.com>
Date: Thu Mar 26 15:51:14 2015 -0500
[ARM] Add support for the Samsung Exynos M1 processor
2015-03-26 Evandro Menezes <e.menezes@samsung.com>
gas/
* config/tc-arm.c: Add support for Samsung Exynos M1.
* doc/c-arm.texi (-mcpu=): Add "exynos-m1".
commit d11916aa89c43071c08c1f9b4550a01f8eec78e3
Author: Sasha Smundak <asmundak@google.com>
Date: Wed Apr 1 11:49:12 2015 -0700
Add support for writing unwinders in Python.
gdb/ChangeLog:
* Makefile.in (SUBDIR_PYTHON_OBJS): Add py-unwind.o.
(SUBDIR_PYTHON_SRCS): Add py-unwind.c.
(py-unwind.o): New recipe.
* NEWS: mention Python frame unwinding.
* data-directory/Makefile.in (PYTHON_FILE_LIST): Add
gdb/unwinder.py and gdb/command/unwinder.py
* python/lib/gdb/__init__.py (packages): Add frame_unwinders
list.
(execute_unwinders): New function.
* python/lib/gdb/command/unwinders.py: New file.
* python/lib/gdb/unwinder.py: New file.
* python/py-objfile.c (objfile_object): Add frame_unwinders field.
(objfpy_dealloc): Decrement frame_unwinders reference count.
(objfpy_initialize): Create frame_unwinders list.
(objfpy_get_frame_unwinders): New function.
(objfpy_set_frame_unwinders): Ditto.
(objfile_getset): Add frame_unwinders attribute to Objfile.
* python/py-progspace.c (pspace_object): Add frame_unwinders field.
(pspy_dealloc): Decrement frame_unwinders reference count.
(pspy_initialize): Create frame_unwinders list.
(pspy_get_frame_unwinders): New function.
(pspy_set_frame_unwinders): Ditto.
(pspy_getset): Add frame_unwinders attribute to gdb.Progspace.
* python/py-unwind.c: New file.
* python/python-internal.h (pspy_get_name_unwinders): New prototype.
(objpy_get_frame_unwinders): New prototype.
(gdbpy_initialize_unwind): New prototype.
* python/python.c (gdbpy_apply_type_printers): Call
gdbpy_initialize_unwind.
gdb/doc/ChangeLog:
* doc/python.texi (Writing a Frame Unwinder in Python): Add
section.
gdb/testsuite/ChangeLog:
* gdb.python/py-unwind-maint.c: New file.
* gdb.python/py-unwind-maint.exp: New test.
* gdb.python/py-unwind-maint.py: New file.
* gdb.python/py-unwind.c: New file.
* gdb.python/py-unwind.exp: New test.
* gdb.python/py-unwind.py: New test.
commit 79730a3b2683dba745663fa3b907f564bee8a0ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 10:27:34 2015 -0700
Fix sim build
* common/Make-common.in (CSEARCH): Remove $(ZLIBINC).
(BFD_LIB): Remove $(ZLIB).
(CONFIG_LIBS): Add $(ZLIB).
* ppc/Makefile.in (ZLIBINC): Removed.
(INCLUDES): Remove $(ZLIBINC).
(BFD_LIB): Remove $(ZLIB).
commit 0ceaf1ec964f8674c57c6a522cb38b6f758a0929
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 10:15:13 2015 -0700
Regenerate configure in sim
* arm/configure: Regenerated.
* avr/configure: Likewise.
* bfin/configure: Likewise.
* common/configure: Likewise.
* cr16/configure: Likewise.
* cris/configure: Likewise.
* d10v/configure: Likewise.
* erc32/configure: Likewise.
* frv/configure: Likewise.
* ft32/configure: Likewise.
* h8300/configure: Likewise.
* igen/configure: Likewise.
* iq2000/configure: Likewise.
* lm32/configure: Likewise.
* m32c/configure: Likewise.
* m32r/configure: Likewise.
* m68hc11/configure: Likewise.
* mcore/configure: Likewise.
* microblaze/configure: Likewise.
* mips/configure: Likewise.
* mn10300/configure: Likewise.
* moxie/configure: Likewise.
* msp430/configure: Likewise.
* ppc/configure: Likewise.
* rl78/configure: Likewise.
* rx/configure: Likewise.
* sh/configure: Likewise.
* sh64/configure: Likewise.
* v850/configure: Likewise.
commit a0bde39842936bb13f88f13a688b181432aa2593
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 08:14:32 2015 -0700
Work around a GCC uninitialized warning bug
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Work
around a GCC uninitialized warning bug fixed in GCC 4.6.
commit 6b403daae993621542c249c00ca1e6d3cfef1aa4
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 30 16:39:56 2015 +0100
infrun.c:resume: currently_stepping after clearing stepped_breakpoint
My all-stop-on-top-of-non-stop series manages to shows regressions due
to this latent bug. currently_stepping returns true if
stepped_breakpoint is set. Obviously we should clear
it before checking currently_stepping, not after.
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* infrun.c (resume): Check currently_stepping after clearing
stepped_breakpoint, not before.
commit a14711808ece04167523a42f063ddb741e8ca866
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 31 18:36:51 2015 +0100
gdb.threads/manythreads.exp: can't read "test": no such variable
If interrupt_and_wait manages to trigger the FAIL path, we get:
ERROR OCCURED: can't read "test": no such variable
gdb/testsuite/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* gdb.threads/manythreads.exp (interrupt_and_wait): Pass $message
to fail instead of non-existent $test.
commit 0bbeccb1eea844c2124eeb1e8d8d4a6cf7092d7a
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 30 18:00:28 2015 +0100
Fix gdb_spawn_with_cmdline_opts with non-empty GDBFLAGS
Running attach.exp with a DejaGnu board that sets GDBFLAGS, like
e.g.,:
set GDBFLAGS "-ex \"set displaced off\""
fails with (line breaks added for clarity):
(gdb) PASS: gdb.base/attach.exp: starting with --pid
Executing on build: kill -9 3537 (timeout = 300)
spawn -ignore SIGHUP kill -9 3537
spawn of build/gdb/gdb -nw -nx \
-data-directory build/gdb/testsuite/../data-directory \
-ex "set displaced off"-iex "set height 0" -iex "set width 0" \
^^^^^^^^
--pid=4468 -ex "start" failed
ERROR: Spawning build/gdb/gdb failed.
UNRESOLVED: gdb.base/attach.exp: cmdline attach run: run to prompt
gdb/testsuite/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_spawn_with_cmdline_opts): Append space to
GDBFLAGS if not empty.
commit 1176ecec7082b4d6b4a3d965ef77726899c9eda2
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 30 17:02:01 2015 +0100
Make print_target_wait_results print the whole ptid
Makes "set debug infrun 1" a bit clearer. Before:
infrun: target_wait (-1, status) =
infrun: 6299 [Thread 0x7ffff7fc1700 (LWP 6340)],
after:
infrun: target_wait (-1.0.0, status) =
infrun: 7233.7237.0 [Thread 0x7ffff7fc1700 (LWP 7237)],
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* infrun.c (print_target_wait_results): Print all the ptid
elements.
commit de1fe8c8ab7f67856d9f2e2c5aa491cec01d3e85
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 26 19:05:40 2015 +0000
keep_going: Add missing discard_cleanups call
By inspection, I noticed a path where we return without discarding the
cleanups.
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* infrun.c (keep_going): Also discard cleanups if inserting
breakpoints fails.
commit e6f5c25b57546cbd88daccea4f1739c3f90f7560
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 1 14:58:56 2015 +0100
wait_for_inferior and errors thrown from target_wait
Noticed that if an error is thrown out of target_wait, we miss running
finish_thread_state_cleanup.
Tested on x86_64 Fedora 20, with "maint set target-async off".
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* infrun.c (wait_for_inferior): Install the
finish_thread_state_cleanup cleanup across the whole function, not
just around handle_inferior_event.
commit c4fc4724a6afd605692b24c0af24c7e234dc5ace
Author: Ilya Tocar <ilya.tocar@intel.com>
Date: Wed Apr 1 16:48:38 2015 +0300
Convert mov foo@GOT(%reg), %reg to lea foo@GOTOFF(%reg), %reg
2015-04-01 Ilya Tocar <ilya.tocar@intel.com>
PR gold/17640
* i386.cc (Target_i386::can_convert_mov_to_lea): New.
(Target_i386::Scan::local): Don't create GOT entry, when we
can convert GOT to GOTOFF.
(Target_i386::Scan::global): Ditto.
(Target_i386::Relocate::relocate): Convert mov foo@GOT(%reg), %reg to
lea foo@GOTOFF(%reg), %reg if possible.
* testsuite/Makefile.am (i386_mov_to_lea): New test.
* testsuite/i386_mov_to_lea1.s: New.
* testsuite/i386_mov_to_lea2.s: Ditto.
* testsuite/i386_mov_to_lea3.s: Ditto.
* testsuite/i386_mov_to_lea4.s: Ditto.
* testsuite/i386_mov_to_lea5.s: Ditto.
* testsuite/i386_mov_to_lea.sh: Ditto.
commit 918357b9556c9eaf81129ea6691bb6e461e80f86
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 06:24:42 2015 -0700
Regenerate configure in gold
Regenerate configure for zlib.m4 change, which adds --with-system-zlib and
removes --with-zlib in gold. zlib is enabled unconditionally with builtin
zlib imported from GCC.
* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Add $(ZLIBINC).
(AM_CXXFLAGS): Likewise.
(ldadd_varldadd_var): Add $(ZLIB).
(incremental_dump_LDADD): Likewise.
(dwp_LDADD): Likewise.
* compressed_output.cc: Don't check HAVE_ZLIB_H to include
<zlib.h>.
(zlib_compress): Don't check HAVE_ZLIB_H.
(zlib_decompress): Likewise.
* options.h (compress_debug_sections): Likewise.
* configure.ac (AM_CONDITIONAL): Removed.
* testsuite/Makefile.am (ZLIB): New.
(LDADD): Add $(ZLIB).
Don't check HAVE_ZLIB.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.
commit 1ac806b8a7d0c09a0052751262f37336fb06bf6f
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 1 14:24:54 2015 +0000
Use do_target_resume when stepping past permanent breakpoint too
We can use the recently added do_target_resume do simplify the code a
bit here.
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* infrun.c (resume) <step past permanent breakpoint>: Use
do_target_resume.
commit 2ee52aa4283145a0f9417986b2f3d7f91e61b1b0
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 14:24:53 2015 +0000
linux_nat.c: Mark new thread running even if momentarily pausing
My all-stop-on-top-of-non-stop series manages to trip on a bug in the
linux-nat.c backend while running the testsuite. If a thread is
discovered while threads are being momentarily paused (without the
core's intervention), the thread ends up stuck in THREAD_STOPPED
state, even though from the user's perspective, the thread is running
even while it is paused.
From inspection, in the current sources, this can happen if we call
stop_and_resume_callback, though there's no way to test that with
current Linux kernels.
(While trying to come up with test to exercise this, I stumbled on:
https://sourceware.org/ml/gdb-patches/2015-03/msg00850.html
... which does include a non-trivial test, so I think I can still
claim I come out net positive. :-) )
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* linux-nat.c (linux_handle_extended_wait): Always call set_running.
commit 3c724c8ca91ee8304ba355f681ccd906f0e9725b
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Tue Mar 10 09:51:27 2015 +0100
Share the "multi_line" helper among all testcases
gdb/testsuite/ChangeLog:
* gdb.ada/complete.exp: Remove "multi_line".
* gdb.ada/info_exc.exp: Remove "multi_line".
* gdb.ada/packed_tagged.exp: Remove "multi_line".
* gdb.ada/ptype_field.exp: Remove "multi_line".
* gdb.ada/sym_print_name.exp: Remove "multi_line".
* gdb.ada/tagged.exp: Remove "multi_line".
* gdb.btrace/buffer-size.exp: Replace [join [list ...]] with
[multi_line ...]
* gdb.btrace/delta.exp: Likewise.
* gdb.btrace/exception.exp: Likewise.
* gdb.btrace/function_call_history.exp: Likewise.
* gdb.btrace/instruction_history.exp: Likewise.
* gdb.btrace/nohist.exp: Likewise.
* gdb.btrace/record_goto.exp: Likewise.
* gdb.btrace/segv.exp: Likewise.
* gdb.btrace/stepi.exp: Likewise.
* gdb.btrace/tailcall.exp: Likewise.
* gdb.btrace/unknown_functions.exp: Likewise.
* gdb.dwarf2/dw2-undefined-ret-addr.exp: Likewise.
* lib/gdb.exp: Add the "multi_line" helper.
commit 5445da1b7656f82e7892d862895dfd9e7c16889c
Author: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Wed Apr 1 14:53:42 2015 +0200
Add myself as a write-after-approval GDB maintainer
gdb/ChangeLog:
* MAINTAINERS (Write After Approval): Add "Pierre-Marie de
Rodat".
commit 4eec2deb06db4a59966fc0669bf861fd92a4b152
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 1 13:38:06 2015 +0100
Crash on thread id wrap around
On GNU/Linux, if the target reuses the TID of a thread that GDB still
has in its list marked as THREAD_EXITED, GDB crashes, like:
(gdb) continue
Continuing.
src/gdb/thread.c:789: internal-error: set_running: Assertion `tp->state != THREAD_EXITED' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: after_reuse_time (GDB internal error)
Here:
(top-gdb) bt
#0 internal_error (file=0x953dd8 "src/gdb/thread.c", line=789, fmt=0x953da0 "%s: Assertion `%s' failed.")
at src/gdb/common/errors.c:54
#1 0x0000000000638514 in set_running (ptid=..., running=1) at src/gdb/thread.c:789
#2 0x00000000004bda42 in linux_handle_extended_wait (lp=0x16f5760, status=0, stopping=0) at src/gdb/linux-nat.c:2114
#3 0x00000000004bfa24 in linux_nat_filter_event (lwpid=20570, status=198015) at src/gdb/linux-nat.c:3127
#4 0x00000000004c070e in linux_nat_wait_1 (ops=0xe193d0, ptid=..., ourstatus=0x7fffffffd2c0, target_options=1) at src/gdb/linux-nat.c:3478
#5 0x00000000004c1015 in linux_nat_wait (ops=0xe193d0, ptid=..., ourstatus=0x7fffffffd2c0, target_options=1) at src/gdb/linux-nat.c:3722
#6 0x00000000004c92d2 in thread_db_wait (ops=0xd80b60 <thread_db_ops>, ptid=..., ourstatus=0x7fffffffd2c0, options=1)
at src/gdb/linux-thread-db.c:1525
#7 0x000000000066db43 in delegate_wait (self=0xd80b60 <thread_db_ops>, arg1=..., arg2=0x7fffffffd2c0, arg3=1) at src/gdb/target-delegates.c:116
#8 0x000000000067e54b in target_wait (ptid=..., status=0x7fffffffd2c0, options=1) at src/gdb/target.c:2206
#9 0x0000000000625111 in fetch_inferior_event (client_data=0x0) at src/gdb/infrun.c:3275
#10 0x0000000000648a3b in inferior_event_handler (event_type=INF_REG_EVENT, client_data=0x0) at src/gdb/inf-loop.c:56
#11 0x00000000004c2ecb in handle_target_event (error=0, client_data=0x0) at src/gdb/linux-nat.c:4655
I managed to come up with a test that reliably reproduces this. It
spawns enough threads for the pid number space to wrap around, so
could potentially take a while. On my box that's 4 seconds; on
gcc110, a PPC box which has max_pid set to 65536, it's over 10
seconds. So I made the test compute how long that would take, and cap
the time waited if it would be unreasonably long.
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* linux-thread-db.c (record_thread): Readd the thread to gdb's
list if it was marked exited.
gdb/testsuite/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
* gdb.threads/tid-reuse.c: New file.
* gdb.threads/tid-reuse.exp: New file.
commit 4106101c449e53dd6b61ec824b196f84b3f3daa5
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Tue Feb 24 12:04:41 2015 +0000
[AArch64] Workaround for Cortex A53 erratum 843419
Some early revisions of the Cortex-A53 have an erratum (843419). The
details of the erratum are quite complex and involve dynamic
conditions. For the purposes of the workaround we have simplified the
static conditions to an ADRP in the last two instructions of a 4KByte
page, followed within four instructions by a load/store dependent on
the ADRP.
This patch adds support to conservatively scan for and workaround
Cortex A53 erratum 843419. There are two different workaround
strategies used. The first is to rewrite ADRP instructions which form
part of an erratum sequence with an ADR instruction. In situations
where the ADR provides insufficient offset the dependent load or store
instruction from the sequence is moved to a stub section and branches
are inserted from the original sequence to the relocated instruction
and back again.
Stub section sizes are rounded up to a multiple of 4096 in order to
ensure that the act of inserting work around stubs does not create
more errata sequences.
Workaround stubs are always inserted into the stub section associated
with the input section containing the erratum sequence. This ensures
that the fully relocated form of the veneered load store instruction
is available at the point in time when the stub section is written.
commit cf39cfc52ebd683d55fc396a77355f34b5094c04
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 04:57:28 2015 -0700
Add --with-system-zlib to top level configure
The top level configure supports --with-system-zlib. This patch makes
configure --help to display --with-system-zlib.
* configure.ac: Add --with-system-zlib.
* configure: Regenerated.
commit afa59b79006af1572ceeebcd2ada5a13e483f6b1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 04:55:48 2015 -0700
Regenerate configure in bfd/binutils/gas/gdb
bfd/
2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.
binutils/
2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.
gas/
2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.
gdb/
2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.
commit 031f1448b68a9eae3392353857c7873f857c2221
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 04:51:55 2015 -0700
Unset zlibdir/zlibinc only for --with-system-zlib
* zlib.m4 (AM_ZLIB): Unset zlibdir and zlibinc only for
--with-system-zlib.
commit 875b5b9d147d37c99a189aa95354f9bebdd64ef5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 1 04:24:05 2015 -0700
Add a testcase for PR ld/18176
PR ld/18176
* ld-x86-64/pr18176.d: New file.
* ld-x86-64/pr18176.s: Likewise.
* ld-x86-64/pr18176.t: Likewise.
* ld-x86-64/x86-64.exp: Run pr18176.
commit 16c1c9d6a6f485af1b5b1a54a74dc1ebb25b16c0
Author: Chen Gang <gang.chen.5i5j@gmail.com>
Date: Wed Apr 1 11:29:46 2015 +0100
Prevent multiple definitions for _HEAP_START, _HEAP_MAX, and _STACK_START when performing a relocatable link with a tic6x target.
* emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
relocating operation.
commit 41f98f0276aede918c3aca37aa6371c8a3c9fbe7
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 1 11:01:44 2015 +0100
GDBServer: give more complete usage information
--attach/--multi are currently only mentioned on the usage info first
lines, the meaning of PROG is completely absent and the COMM text does
not mention '-/stdio'.
A few options are missing:
. --disable-randomization / --no-disable-randomization is not mentioned.
Although the manual has a comment saying these are superceded by
QDisableRandomization, that only makes sense for "run" in
extended-remote mode. When we start gdbserver passing it a PROG,
--disable-randomization / --no-disable-randomization do take effect.
So I think we should document these.
. We show --debug / --remote-debug, so might as well show --disable-packet too.
GDB's --help has this "For more information, consult the GDB manual"
blurb that is missing in GDBserver's --help.
Then shuffle things around a bit into "Operating modes", "Other
options" and "Debug options" sections, similarly to GDB's --help
structure.
Before:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ ./gdbserver/gdbserver --help
Usage: gdbserver [OPTIONS] COMM PROG [ARGS ...]
gdbserver [OPTIONS] --attach COMM PID
gdbserver [OPTIONS] --multi COMM
COMM may either be a tty device (for serial debugging), or
HOST:PORT to listen for a TCP connection.
Options:
--debug Enable general debugging output.
--debug-format=opt1[,opt2,...]
Specify extra content in debugging output.
Options:
all
none
timestamp
--remote-debug Enable remote protocol debugging output.
--version Display version information and exit.
--wrapper WRAPPER -- Run WRAPPER to start new programs.
--once Exit after the first connection has closed.
Report bugs to "<http://www.gnu.org/software/gdb/bugs/>".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ ./gdbserver/gdbserver --help
Usage: gdbserver [OPTIONS] COMM PROG [ARGS ...]
gdbserver [OPTIONS] --attach COMM PID
gdbserver [OPTIONS] --multi COMM
COMM may either be a tty device (for serial debugging),
HOST:PORT to listen for a TCP connection, or '-' or 'stdio' to use
stdin/stdout of gdbserver.
PROG is the executable program. ARGS are arguments passed to inferior.
PID is the process ID to attach to, when --attach is specified.
Operating modes:
--attach Attach to running process PID.
--multi Start server without a specific program, and
only quit when explicitly commanded.
--once Exit after the first connection has closed.
--help Print this message and then exit.
--version Display version information and exit.
Other options:
--wrapper WRAPPER -- Run WRAPPER to start new programs.
--disable-randomization
Run PROG with address space randomization disabled.
--no-disable-randomization
Don't disable address space randomization when
starting PROG.
Debug options:
--debug Enable general debugging output.
--debug-format=opt1[,opt2,...]
Specify extra content in debugging output.
Options:
all
none
timestamp
--remote-debug Enable remote protocol debugging output.
--disable-packet=opt1[,opt2,...]
Disable support for RSP packets or features.
Options:
vCont, Tthread, qC, qfThreadInfo and
threads (disable all threading packets).
For more information, consult the GDB manual (available as on-line
info or a printed manual).
Report bugs to "<http://www.gnu.org/software/gdb/bugs/>".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gdb/gdbserver/ChangeLog:
2015-04-01 Pedro Alves <palves@redhat.com>
Cleber Rosa <crosa@redhat.com>
* server.c (gdbserver_usage): Reorganize and extend the usage
message.
commit 6c1aca3e2d408ef4874bd882a7f0e2cd944bbf09
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 1 19:19:27 2015 +1030
Start of relro segment adjustment
Adjusting the start of the relro segment in order to make it end
exactly on a page boundary runs into difficulties when sections in the
relro segment are aligned; Adjusting the start by (next_page - end)
sometimes results in more than that adjustment occurring at the end,
overrunning the page boundary. So when that occurs we try a new lower
start position by masking the adjusted start with the maximum section
alignment. However, we didn't consider that this masked start address
may in fact be before the initial relro base, which is silly since
that can only increase padding at the relro end.
I've also moved some calculations closer to where they are used, and
comments closer to the relevant statements.
* ldlang.c (lang_size_sections): When alignment of sections
results in relro base adjustment being too large, don't go lower
than the initial value.
* ldexp.c (fold_binary <DATA_SEGMENT_RELRO_END>): Comment.
* scripttempl/elf.sc (DATA_SEGMENT_ALIGN): Omit SEGMENT_SIZE
alignment when SEGMENT_SIZE is the same as MAXPAGESIZE.
commit 269e9c185f67d477a99574f53ead904d50fddfda
Author: Mike Frysinger <vapier@gentoo.org>
Date: Wed Apr 1 02:21:21 2015 -0400
sim: m32c: enable warnings & clean up a bunch
This doesn't clean up all the warnings, just most of them.
The ones that are left will require some care to unravel.
commit 0fe84f3fbe9a740c38a8dbaa0150b8e4c25c69dd
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 31 01:13:12 2015 -0400
sim: run: punt!
Now that all targets have been converted to nrun, we can finally punt
this old inconsistent interface.
A few stray references to the old run were sprinkled about; clean them
up in the process.
We leave behind the run(1) man page mostly so that we get it updated for
the new nrun interface.
commit aadc9410ba24ecf777fcc515afda69ef94d74248
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 31 23:32:49 2015 -0400
sim: update zlib handling
With zlib being mandatory, and the updated m4 configs, we need to regen
and use the new settings w/bfd to avoid linkage errors.
commit 4a0bc59ef6e01733bb70950ad546c66e4c3317ea
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 1 13:01:38 2015 +1030
Yet another warning fix
Older compilers that warn wrongly will just need -Wno-error. No way
am I going to init every single field, then have to edit this code
whenever bfd_link_hash_entry changes. Another option, making the
struct static, isn't very nice since it means larger binaries and
worse code.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't
init ehdr_start_save.
commit 42271ec540461c63c847d2bea6b6e9cc50524966
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 1 10:43:20 2015 +1030
Fix ld eelf32ppcvxworks.c dependencies
* Makefile.am (eelf32ppcvxworks.c): Depend on ppc32elf.em and
ldemul-list.h.
(eelf32lppc.c, eelf32lppclinux.c, eelf32lppcnto.c, eelf32lppcsim.c,
eelf32ppc.c, eelf32ppc_fbsd.c, eelf32ppclinux.c, eelf32ppcnto.c,
eelf32ppcsim.c): Rearrange deps for consistency.
* Makefile.in: Regenerate.
commit 4e791d0fb1173330424b69cfbdece9e1764186a6
Author: Ed Schouten <ed@nuxi.nl>
Date: Tue Mar 31 16:47:10 2015 +0200
Fixes for a small number of compiler warnings
The ehdr_start_save variable does not need to be initialized. However,
not initializing it will trigger a compiler warning when using older
versions of GCC. Self-assignment unfortunately doesn't work for Clang
as Clang has a warning similar to -Winit-self as part of -Wall.
* emultempl/elf32.em (gld*_before_allocation): Zero-initialize
the ehdr_start_save variable.
commit 2ae0baa450dc21cf248cc932d05d9e1fd154e141
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 1 00:00:08 2015 +0000
Automatic date update in version.in
commit df8411da087dc05481926f4c4a82deabc5bc3859
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Tue Mar 31 19:32:34 2015 -0400
Implement support for checking /proc/PID/coredump_filter
This patch, as the subject says, extends GDB so that it is able to use
the contents of the file /proc/PID/coredump_filter when generating a
corefile. This file contains a bit mask that is a representation of
the different types of memory mappings in the Linux kernel; the user
can choose to dump or not dump a certain type of memory mapping by
enabling/disabling the respective bit in the bit mask. Currently,
here is what is supported:
bit 0 Dump anonymous private mappings.
bit 1 Dump anonymous shared mappings.
bit 2 Dump file-backed private mappings.
bit 3 Dump file-backed shared mappings.
bit 4 (since Linux 2.6.24)
Dump ELF headers.
bit 5 (since Linux 2.6.28)
Dump private huge pages.
bit 6 (since Linux 2.6.28)
Dump shared huge pages.
(This table has been taken from core(5), but you can also read about it
on Documentation/filesystems/proc.txt inside the Linux kernel source
tree).
The default value for this file, used by the Linux kernel, is 0x33,
which means that bits 0, 1, 4 and 5 are enabled. This is also the
default for GDB implemented in this patch, FWIW.
Well, reading the file is obviously trivial. The hard part, mind you,
is how to determine the types of the memory mappings. For that, I
extended the code of gdb/linux-tdep.c:linux_find_memory_regions_full and
made it rely *much more* on the information gathered from
/proc/<PID>/smaps. This file contains a "verbose dump" of the
inferior's memory mappings, and we were not using as much information as
we could from it. If you want to read more about this file, take a look
at the proc(5) manpage (I will also write a blog post soon about
everything I had to learn to get this patch done, and when I it is ready
I will post it here).
With Oleg Nesterov's help, we could improve the current algorithm for
determining whether a memory mapping is anonymous/file-backed,
private/shared. GDB now also respects the MADV_DONTDUMP flag and does
not dump the memory mapping marked as so, and will always dump
"[vsyscall]" or "[vdso]" mappings (just like the Linux kernel).
In a nutshell, what the new code is doing is:
- If the mapping is associated to a file whose name ends with
" (deleted)", or if the file is "/dev/zero", or if it is "/SYSV%08x"
(shared memory), or if there is no file associated with it, or if
the AnonHugePages: or the Anonymous: fields in the /proc/PID/smaps
have contents, then GDB considers this mapping to be anonymous.
There is a special case in this, though: if the memory mapping is a
file-backed one, but *also* contains "Anonymous:" or
"AnonHugePages:" pages, then GDB considers this mapping to be *both*
anonymous and file-backed, just like the Linux kernel does. What
that means is simple: this mapping will be dumped if the user
requested anonymous mappings *or* if the user requested file-backed
mappings to be present in the corefile.
It is worth mentioning that, from all those checks described above,
the most fragile is the one to see if the file name ends with
" (deleted)". This does not necessarily mean that the mapping is
anonymous, because the deleted file associated with the mapping may
have been a hard link to another file, for example. The Linux
kernel checks to see if "i_nlink == 0", but GDB cannot easily do
this check (as it has been discussed, GDB would need to run as root,
and would need to check the contents of the /proc/PID/map_files/
directory in order to determine whether the deleted was a hardlink
or not). Therefore, we made a compromise here, and we assume that
if the file name ends with " (deleted)", then the mapping is indeed
anonymous. FWIW, this is something the Linux kernel could do
better: expose this information in a more direct way.
- If we see the flag "sh" in the VmFlags: field (in /proc/PID/smaps),
then certainly the memory mapping is shared (VM_SHARED). If we have
access to the VmFlags, and we don't see the "sh" there, then
certainly the mapping is private. However, older Linux kernels (see
the code for more details) do not have the VmFlags field; in that
case, we use another heuristic: if we see 'p' in the permission
flags, then we assume that the mapping is private, even though the
presence of the 's' flag there would mean VM_MAYSHARE, which means
the mapping could still be private. This should work OK enough,
however.
Finally, it is worth mentioning that I added a new command, 'set
use-coredump-filter on/off'. When it is 'on', it will read the
coredump_filter' file (if it exists) and use its value; otherwise, it
will use the default value mentioned above (0x33) to decide which memory
mappings to dump.
gdb/ChangeLog:
2015-03-31 Sergio Durigan Junior <sergiodj@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
Oleg Nesterov <oleg@redhat.com>
PR corefiles/16092
* linux-tdep.c: Include 'gdbcmd.h' and 'gdb_regex.h'.
New enum identifying the various options of the coredump_filter
file.
(struct smaps_vmflags): New struct.
(use_coredump_filter): New variable.
(decode_vmflags): New function.
(mapping_is_anonymous_p): Likewise.
(dump_mapping_p): Likewise.
(linux_find_memory_regions_full): New variables
'coredumpfilter_name', 'coredumpfilterdata', 'pid', 'filterflags'.
Removed variable 'modified'. Read /proc/<PID>/smaps file; improve
parsing of its information. Implement memory mapping filtering
based on its contents.
(show_use_coredump_filter): New function.
(_initialize_linux_tdep): New command 'set use-coredump-filter'.
* NEWS: Mention the possibility of using the
'/proc/PID/coredump_filter' file when generating a corefile.
Mention new command 'set use-coredump-filter'.
gdb/doc/ChangeLog:
2015-03-31 Sergio Durigan Junior <sergiodj@redhat.com>
PR corefiles/16092
* gdb.texinfo (gcore): Mention new command 'set
use-coredump-filter'.
(set use-coredump-filter): Document new command.
gdb/testsuite/ChangeLog:
2015-03-31 Sergio Durigan Junior <sergiodj@redhat.com>
PR corefiles/16092
* gdb.base/coredump-filter.c: New file.
* gdb.base/coredump-filter.exp: Likewise.
commit 416f679e68468ea6dd7384213994ce74201f82e7
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Tue Mar 31 19:17:23 2015 -0400
Catch exception on solib_svr4_r_ldsomap
When loading a corefile that has some inaccessible memory region(s),
GDB complains about it:
(gdb) core /my/corefile
[New LWP 28468]
Cannot access memory at address 0x355fc21148
Cannot access memory at address 0x355fc21140
(gdb)
However, despite not seeing the message "Core was generated by...", it
is still possible to inspect the corefile using regular GDB commands.
The reason for that is because read_memory_unsigned_integer throws an
exception when it cannot read the memory region, but
solib_svr4_r_ldsomap was not catching it. The fix is to catch the
exception and act accordingly.
Tested on Fedora 20 x86_64, no regressions found.
gdb/ChangeLog:
2015-03-31 Sergio Durigan Junior <sergiodj@redhat.com>
* solib-svr4.c (solib_svr4_r_ldsomap): Catch possible exception by
read_memory_unsigned_integer.
commit 6ac1079e5960e700b3a9034aab532970167095f4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 13:15:43 2015 -0700
Add missing ChangeLog entry
commit 080bb2308591e6b41c7ffa13dedc531bd16b8be5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 13:15:01 2015 -0700
Add missing ChangeLog entry
commit e38108740ee16fb38720cb5a1b824f889bb46cbe
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 11:36:17 2015 -0700
Remove --with-target-subdir=. --disable-multilib
zlib/configure is updated to properly handle in-tree build for host.
* src-release.sh: Don't configure with --with-target-subdir=.
--disable-multilib.
commit f85997a697553fb7053de89bafe36e3d71c6f784
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 11:35:30 2015 -0700
Use AM_ENABLE_MULTILIB only if with_target_subdir isn't empty
* configure.ac (AM_ENABLE_MULTILIB): Use only if
${with_target_subdir} isn't empty.
* configure: Regenerated.
commit 890ba06fb1eae846984a5e56ff8a79ea59108f88
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 11:44:00 2015 -0700
Replace src-release with src-release.sh
* src-release.sh (DEVO_SUPPORT): Replace src-release with
src-release.sh.
commit 711a72d3d6f8cd3c3f408e718ff19aa4bfd2144e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 08:24:02 2015 -0700
Add --with-system-zlib in gdb
This patch adds --with-system-zlib and removes --with-zlib in gdb.
* Makefile.in (ZLIB): New.
(ZLIBINC): Likewise.
(INTERNAL_CFLAGS_BASE): Add $(ZLIBINC).
(CLIBS): Add $(ZLIB).
* acinclude.m4: (GDB_AC_CHECK_BFD): Add $zlibdir to LDFLAGS.
Add -lz to LIBS.
* gdb_bfd.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
* top.c (print_gdb_configuration): Remove --with-zlib and
--without-zlib.
* config.in: Regenerated.
* configure: Likewise.
commit 518a69099cf8eca95a86c4d1ff4b8d8c30cf3c6b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 08:20:55 2015 -0700
Remove the last change on dw2-compress-1.d
The compressed .debug_info section is bigger than the original in 32-bit.
commit 6036f4862103dea22dcc1ee02cf31802872997b3
Author: Ed Schouten <ed@nuxi.nl>
Date: Tue Mar 31 11:33:45 2015 +0200
Add support for Nuxi CloudABI on x86-64
bfd/
* config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
for x86_64-*-cloudabi*.
* configure.ac: Handle x86_64_elf64_cloudabi_vec.
* configure: Regenerated.
* elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
(TARGET_LITTLE_NAME): Likewise.
(ELF_OSABI): Likewise.
(elf64_bed): Likewise.
* targets.c (x86_64_elf64_cloudabi_vec): New.
(_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.
gas/
* configure.tgt (fmt): Set to elf for *-*-cloudabi*.
ld/
* Makefile.am (ALL_64_EMULATION_SOURCES): Add
eelf_x86_64_cloudabi.c.
(eelf_x86_64_cloudabi.c): New.
* configure.tgt (targ_emul): Set to elf_x86_64_cloudabi for
x86_64-*-cloudabi*.
* Makefile.in: Regenerated.
* emulparams/elf_x86_64_cloudabi.sh: New file.
commit 6ef37366be4c2445b3efdba8520e0a4e7450581f
Author: Petr Machata <pmachata@redhat.com>
Date: Mon Feb 23 15:41:52 2015 +0100
dwarf.exp: Allow generating a stub .debug_line section
Example of use:
Dwarf::assemble "foo.s" {
build_id 0102030405060708
declare_labels L;
cu {is_64 0 version 4 addr_size 8} {
DW_TAG_compile_unit {
{DW_AT_stmt_list $L DW_FORM_sec_offset}
} {
DW_TAG_subprogram {
# We can now reference the source file.
{DW_AT_decl_file 1 DW_FORM_data1}
}
}
}
lines {is_64 0 version 2 addr_size 8} L {
include_dir "foo"
include_dir "bar"
file_name "foo.c" 1
file_name "bar.c" 1
file_name "baz.c" 2
}
}
Signed-off-by: Petr Machata <pmachata@redhat.com>
commit 543b793377eb8c64f8c4e0e68cd3e6b39e857051
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 05:55:18 2015 -0700
Revert the AM_ZLIB change in gas
* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
commit ed2b5077eb36d82ad7763d76fdd8e82d15f72b7a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 05:55:46 2015 -0700
Revert the AM_ZLIB change in binutils
* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
commit 9ae46699504c63af285d40ad8856a29300d318e4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 05:54:55 2015 -0700
Revert the AM_ZLIB change in bfd
* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
commit fa1f5da0b6ff3622f9bf60e348e149b76920abba
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 05:53:39 2015 -0700
Replace --with-zlib with --with-system-zlib
* zlib.m4 (AM_ZLIB): Replace --with-zlib with --with-system-zlib.
commit d33279b3bb1c89550b26e7b07e3610ab7f87e211
Author: Antoine Tremblay <antoine.tremblay@ericsson.com>
Date: Wed Mar 25 11:49:05 2015 -0400
Add cpu information to the info os command on linux.
This patch adds cpu information on linux based on /proc/cpuinfo as :
cpus Listing of all cpus/cores on the system
This patch also reorders the info os commands so that they are listed
in alphabetical order.
gdb/ChangeLog:
* NEWS: Mention info os cpus support.
* gdb/nat/linux-osdata.c (linux_xfer_osdata_cpus): New function.
(struct osdata_type): Add cpus entry, reorder the entries in
alphabetical order.
gdb/doc/ChangeLog:
* gdb.texinfo (Operating System Auxiliary Information): Add info os cpus
documentation, reorder the info os entries in alphabetical order.
commit 71b30f27af091a16e6277e18ef574e0d2c0c55ef
Author: Matthias Klose <doko@ubuntu.com>
Date: Tue Mar 31 14:15:42 2015 +0100
Fix the triplet regexp to recognize triplets, not only quadruplets
This allows triplets where the vendor is not set.
gdb/ChangeLog:
2015-03-31 Matthias Klose <doko@ubuntu.com>
* compile/compile.c (compile_to_object): Allow triplets with or
without vendor set.
commit f24173ebf754866d4a1881a28dc2c07062c119d7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 03:58:15 2015 -0700
Remove --with-zlib from ld
This patch removes --with-zlib from ld.
ld/
* configure.ac (AM_ZLIB): Removed.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
ld/testsuite/
* ld-bootstrap/bootstrap.exp (extralibs): Add -lz.
commit 0138187e9fc351c6d4615bbe2ab020a3ac646b50
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 03:55:56 2015 -0700
Add --with-system-zlib in gas
This patch adds --with-system-zlib and remove --with-zlib in gas.
gas/
* Makefile.am (ZLIBINC): New.
(AM_CFLAGS): Add $(ZLIBINC).
* as.c: (show_usage): Don't check HAVE_ZLIB_H.
(parse_args): Likewise.
* compress-debug.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(compress_init): Don't check HAVE_ZLIB_H.
(compress_data): Likewise.
(compress_finish): Likewise.
* configure.ac (AM_ZLIB): Removed.
(zlibinc): New. AC_SUBST.
Add --with-system-zlib.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
gas/testsuite/
* gas/i386/dw2-compress-1.d: Expect .zdebug_info.
commit 0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 31 03:53:41 2015 -0700
Add --with-system-zlib in binutils
This patch adds --with-system-zlib and remove --with-zlib in binutils.
* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Add $(ZLIBINC).
(readelf_LDADD): Add $(ZLIB).
* configure.ac (AM_ZLIB): Removed.
(zlibdir): New. AC_SUBST.
(zlibinc): Likewise.
Add --with-system-zlib.
* readelf.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(uncompress_section_contents): Don't check HAVE_ZLIB_H.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
commit b38f7f340bf021f9ad017cc88beddb9b0eaae06b
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 31 01:59:44 2015 -0400
sim: cr16/d10v: restore generated headers dep
While cleaning up stale make rules, one too many were deleted. The
build system autogenerates static rules, but not generated files.
commit 5a394431deb3745c04a74d2a109aca075f79afd6
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 31 01:58:01 2015 -0400
common: cgen-mem/cgen-ops: fix extern inline handling
With newer versions of gcc (5.x), the extern inline we're using with the
cgen-{mem,ops} modules no longer work. Since this code really wants the
gnu inline semantics, use that attribute explicitly.
commit 2b6ca06237301286016acc4b7bbf5338a27fd5fc
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 31 01:54:47 2015 -0400
sim: m68hc11: fix gcc-5 build error w/restrict keyword
commit f6862f27a73f08effd88d98c5efdb08abfcf4bb1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 31 00:00:08 2015 +0000
Automatic date update in version.in
commit 13ce92227425999aa2666f4d55286193df7d09ca
Author: Doug Evans <dje@google.com>
Date: Mon Mar 30 16:41:05 2015 -0700
PR c++/18141
gdb/ChangeLog:
PR c++/18141
* cp-namespace.c (cp_search_static_and_baseclasses): Always look for
klass in VAR_DOMAIN.
commit 6b0ad2ebf6024419c84f35552f4eb55aa0b23195
Author: Jing Yu <jingyu@google.com>
Date: Mon Mar 30 14:06:12 2015 -0700
Support AARCH64_TLSLD_ADD_DTPREL_* relocations.
Also Change _TLS_MODULE_BASE_. Always let it point to the start
of TLS segment.
2015-03-28 Jing Yu <jingyu@google.com>
* aarch64-reloc.def: New TLSLD_ADD_DTPREL_HI12,
TLSLD_ADD_DTPREL_LO12_NC.
* aarch64.cc (Target_aarch64::define_tls_base_symbol): Always
let _TLS_MODULE_BASE_ point to the start of tls segment.
(Target_aarch64::optimize_tls_reloc): Add cases for
R_AARCH64_TLSLD_ADD_DTPREL_HI12 and
R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
(Target_aarch64::Scan::local): Likewise.
(Target_aarch64::Scan::global): Likewise.
(Target_aarch64::Relocate::relocate): Likewise.
(Target_aarch64::Relocate::relocate_tls): Likewise. And remove
subtracting tls segment size from symbol value for
TLSLD_*_DTPREL relocations.
commit 5675acd9d4a62c4d402da7a436d810b29832d0e0
Author: Ed Schouten <ed@nuxi.nl>
Date: Sat Mar 28 08:33:21 2015 +0100
Update config.guess and config.sub to the latest upstream version
This version adds support for a platform I'd like to add support for,
namely CloudABI.
commit d2d67aea8e776d63a987f8dcdb96bc524df96e81
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 30 10:17:40 2015 -0700
Make all-bfd depend on all-zlib
* Makefile.def (dependencies): Add all-zlib to all-bfd.
* Makefile.in: Regenerated.
commit 49d62f892578dab739391b7309bc60ea2baeafc4
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 03:05:57 2015 -0400
sim: arm: convert to nrun
A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point. But at least this
is an improvement on the status quo.
commit dbf8e8afcdf6bbec4ecaf911481b7fc9a4a01e87
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 02:45:41 2015 -0400
sim: arm: delete NEED_UI_LOOP_HOOK handling
commit 58b991b14e7c2e26805cb8cf98e384dbd8afcd38
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 02:41:51 2015 -0400
sim: arm: clean up misc warnings
Also delete a few unused funcs.
commit c4c9c44f57763ef4acacb440cdf601f5ce087edb
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 02:27:22 2015 -0400
sim: arm: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This doesn't produce any new warnings, and the generated
code should be the same.
commit 20f796c9700ce22f0bf596ddf435bc6b48efbc15
Author: Gary Benson <gbenson@redhat.com>
Date: Mon Mar 30 14:58:33 2015 +0100
Remove three redundant wrapper functions in remote.c
gdb/ChangeLog:
* remote.c (remote_mourn_1): Remove function. Update all callers
to use remote_mourn.
(extended_remote_mourn_1): Remove function. Update all callers
to use extended_remote_mourn.
(extended_remote_attach_1): Remove function. Update all callers
to use extended_remote_attach.
commit bd53a53af486c6e5ab88b7f64342244392be1f1f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 30 04:40:33 2015 -0700
Properly set sh_info for .rela.plt/rel.plt section
Since .rela.plt/rel.plt section may contain relocations against .got.plt
section, we set sh_info for .rela.plt/rel.plt section to .got.plt section
index if target has .got.plt section.
bfd/
PR ld/18169
* elf-bfd.h (elf_backend_data): Add get_reloc_section.
(_bfd_elf_get_reloc_section): New.
* elf.c (_bfd_elf_get_reloc_section): Likewise.
(assign_section_numbers): Call get_reloc_section to look up the
section the relocs apply.
* elfxx-target.h (elf_backend_get_reloc_section): Likewise.
(elfNN_bed): Initialize get_reloc_section with
elf_backend_get_reloc_section.
ld/testsuite/
PR ld/18169
* ld-elf/linkinfo1a.d: Updated.
* ld-elf/linkinfo1b.d: Likewise.
commit 457983e3a30212740a599ffa7cbf5142ffe67367
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 02:26:24 2015 -0400
sim: arm: move COPRO settings to the makefile
These values are the same all the time, so just list them directly in
the Makefile.
commit 99956be1d73c5705b4032f9add2d3cfbf6b634a3
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 03:06:20 2015 -0400
sim: d10v: add missing sim-main.h
commit 541ebcee679ccda568b49af01b1da74387623386
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 02:05:33 2015 -0400
sim: d10v: convert to nrun
A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point. But at least this
is an improvement on the status quo.
commit a87686e5aa57d86a86b6deac8b4d47a86c69c950
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 01:44:57 2015 -0400
sim: d10v: delete NEED_UI_LOOP_HOOK handling
This hook is used only when linked into gdb, and d10v doesn't have a gdb
port anymore. Punt it.
commit 11558abc20f902a1fa3ea128809862787f642598
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 01:38:59 2015 -0400
sim: d10v: clean up misc warnings
commit ef9535c6bc7c5d50d03e9f98498e018ac56e366c
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 01:14:04 2015 -0400
sim: d10v: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This doesn't produce any new warnings, and the generated
code should be the same.
commit 2f783c1f4b23b194efa31e2015fb585b688c6526
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 01:40:09 2015 -0400
opcodes: d10v: fix old style prototype
commit e8713c0f026199c327ba88ea6da4bcffebff6991
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 01:06:57 2015 -0400
sim: d10v: link in missing testsuite
Looks like historical restructuring in this dir lost the d10v-elf subdir
and no one noticed in the meantime. Re-add it to the testsuite.
There are some failures, but better some tests get run than none at all.
commit 247ac9ee6e1ecea67d29a5712e77e8c64834b06e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 00:13:38 2015 -0400
sim: cr16: convert to nrun
A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point. But at least this
is an improvement on the status quo.
commit 4b0cc5edf489335509e155b5af0a0e754f4e3df9
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 00:10:27 2015 -0400
sim: cr16: delete NEED_UI_LOOP_HOOK handling
This hook is used only when linked into gdb, and cr16 doesn't have a gdb
port anymore. Punt it.
commit 1e504675bdabc1861f2b2f515b6be3d99189e165
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 30 00:08:46 2015 -0400
sim: cr16: delete dead code
This code is getting in the way of porting to nrun, so just drop it.
If anyone actually cares about this cpu, they can revive it.
commit 5aedb83b9cbf22ce09719584479a21d905f438ff
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 22:41:14 2015 -0400
sim: cr16: clean up misc warnings
commit ca968da465a0d1fd153b158b7aa69730709f43db
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 22:42:33 2015 -0400
sim: cr16: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This doesn't produce any new warnings, and the generated
code should be the same.
commit 4daf7a7c3a8404d8be973702ffe00541f71606a4
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 21:00:20 2015 -0400
sim: cr16: add _start symbol to tests [BZ #12385]
The current cr16 testsuite sets up _START, but the linker looks for the
_start symbol. Add the latter as an alias to the former.
commit 970bed001b8238bbf25144810a26c9f7b242391b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 30 00:00:07 2015 +0000
Automatic date update in version.in
commit 2b4bc832a7668438827f5cdca9bf22adab85a915
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 17:40:30 2015 -0400
sim: microblaze: convert to nrun
This port already was storing its cpu state in the sim_cpu structure, so
converting it over was pretty easy. It is allocating memory itself still,
but we'll fix that up in the future at some point.
commit 97eca187b3b286c903d78070736bbe1d95721ec4
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 17:20:37 2015 -0400
sim: mcore/microblaze: delete dead code
The mcore port had a few structs/defines that were never used.
Similarly, the microblaze port, because it was copied from mcore, has
that same dead code, and more. The watchpoint logic was never actually
used. Punt it all.
commit 191ec03314b005b8189ecea7296f2f6cad534d09
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 16:43:48 2015 -0400
sim: microblaze: start a testsuite
Since the sim doesn't have any debug support in it, we can only exit
cleanly. But this is still better than nothing.
Change the default microblaze sim to not dump the debug load output
when running. No other does this, and it breaks the testsuite.
commit 744b9a190b9b5b83d83f43d35b6ab6d20f49af8f
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 16:41:59 2015 -0400
sim; testsuite: allow tests to set no output
If a test doesn't write anything at all to stdout, the current test
framework can't support that. Even if you put a blank output line:
# output:
the setup happily clobbers that with a default pass/fail string.
Tweak the parsing logic so we only set the output to pass/fail when
the test has no output marker.
commit 92fc6153a6fdf2a027d9780f5945712aafad4a9e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 15:59:01 2015 -0400
sim: common: sim-arange: fix extern inline handling
With newer versions of gcc (5.x), the extern inline we're using with the
sim-arange module no longer works. Since this code really wants the gnu
inline semantics, use that attribute explicitly.
Reported-by: DJ Delorie <dj@redhat.com>
Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
commit 6dae8a88bf814b8729ad883c92c7b75fdccc7be1
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 11:48:46 2015 -0400
sim: testsuite: make subdir unconditional
Since the testsuite subdir has to handle dynamic arch values already,
there's no real value in requiring arches to opt in to it. Most have
a testsuite now anyways, and we're requiring it in the future.
commit 3c0ae3096245fcb94021f0ed61278aa89191ee59
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 04:18:03 2015 -0400
sim: microblaze: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This doesn't produce any new warnings, and the generated
code should be the same.
commit b9d94d62d1197f7b26d93dba1532d7d005342bb8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 29 07:46:30 2015 -0700
Add the missing opcodes/ChangeLog entry
commit 421fc49cd65550aca484cfd09b36e0ad0ab020a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 15 05:41:46 2015 -0700
Regenerate opcodes/Makefile.in
* Makefile.in: Regenerated.
commit b51724e857c1066b0141f3989b521fb56e834aeb
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 29 07:36:27 2015 -0700
Fix a typo in bfd/ChangeLog
commit 243340ad57e30de3c15cffe6e4af0381995f15d9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Mar 29 07:12:38 2015 -0700
Add --with-system-zlib in bfd
This patch adds --with-system-zlib and remove --with-zlib in bfd.
* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Add $(ZLIBINC).
(libbfd_la_LIBADD): Add $(ZLIB).
* compress.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(decompress_contents): Don't check HAVE_ZLIB_H.
(decompress_contents): Likewise.
(bfd_compress_section_contents): Likewise.
(bfd_get_full_section_contents): Likewise.
(bfd_init_section_decompress_status): Likewise.
(bfd_init_section_compress_status): Likewise.
* configure.ac (AM_ZLIB): Removed
(zlibdir): New. AC_SUBST.
(zlibinc): Likewise.
Add --with-system-zlib.
* Makefile.in: Regenerated.
* acinclude.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.
commit ea6b7543b422836409fe7848abbfcb452ad26398
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 03:53:01 2015 -0400
sim: mcore: convert to nrun
A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point. But at least this
is an improvement on the status quo.
commit 525887679c4de93b8006b5013904dec8d19f12f0
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 03:39:01 2015 -0400
sim: mcore: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This doesn't produce any new warnings, and the generated
code should be the same.
commit 36cb69e0ed76e5381c723ed4e7137bb981deafd1
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 03:35:29 2015 -0400
sim: mcore: add a basic testsuite
commit aac18a6996e57cd1d1c32d3fd418c4950c5001bf
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 03:29:29 2015 -0400
sim: mcore: drop sbrk support
The sbrk syscall assumes the sbrk region starts after the bss and the
current implementation requires a bss section to exist. Since there
is no requirement for programs to have a bss in general, we want to
drop this check. However, there is still the sbrk syscall that wants
to know about the region.
Since libgloss doesn't actually use the sbrk syscall (it implements
sbrk in its own way), and the sim really shouldn't enforce a specific
memory layout on programs, lets simply delete sbrk support. Now it
always returns an error.
commit 4f5cce88bf504a2f0010f7ad384003984da6ce00
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 29 03:36:13 2015 -0400
sim: avr: fix _start testsuite symbol
Make sure we use the symbol the linker expects by default, and we export
it so it can be found.
commit 2a2ec787bf7dc91869d4adb8d98159dc5a2773c0
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 29 00:00:08 2015 +0000
Automatic date update in version.in
commit 62454d3da2aaabb266e49a4ba22948484e91edc1
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 17:36:03 2015 -0400
sim: sh: convert to nrun
A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point. But at least this
is an improvement on the status quo.
commit 5fa71a1b13a624feec5ff4b92ff1f92a26ff031e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 15:11:31 2015 -0400
sim: sh: clean up some warnings
Mostly converting old style prototypes. Also include a few missing
headers, and add static/casts where appropriate.
commit 02131c7ff660a5ca08147899429e6e7780d737aa
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 14:55:11 2015 -0400
sim: sh: fix broken handling in DSR reg
A missing */ caused a case statement to be incorrect masked out which
also hide an error where the wrong value was being checked. Fix both.
commit ed4d32c28adc5f00ee9bc0e4ac785eeff5e1dc74
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 14:09:11 2015 -0400
sim: sh: clean up gencode
The build line was missing the normal BUILD_xxx flags. Once we added
that, we get warnings that weren't shown before. As we fix those, we
notice that the -d option segfaults because it tries to write readonly
memory. Fix that too as part of the const/prototype clean up.
commit 6d89786cb31dcf9b1a4e5b6c7b88c15102e9381a
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 13:39:31 2015 -0400
sim: sh: use common configure options
In preparation for converting to nrun, call the common functions that
are needed. This also produces a bunch of warnings, but one thing at
a time.
commit 92c695a14f6a5a24b177e89624c13d7dbcbf9e1f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat Mar 28 06:48:43 2015 -0700
A zlib to tarball
* src-release.sh (do_proto_toplev): Configure with --target
--with-target-subdir and --disable-multilib.
(BINUTILS_SUPPORT_DIRS): Add zlib.
(GAS_SUPPORT_DIRS): Likewise.
(GDB_SUPPORT_DIRS): Likewise.
(SIM_SUPPORT_DIRS): Likewise.
commit 9943d3185abb9aa3e7269ece80d00e9020187ec6
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 05:34:55 2015 -0400
sim: avr: convert to nrun.o
Looks like a lot more work than actually was -- the main decode loop
was de-indented by dropping the loop as a step-once function.
commit eca5fe422e2650fcb6a551af11bcf8de181f97e9
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 04:28:46 2015 -0400
sim: avr: start a basic testsuite
Just enough to know the sim isn't totally broken.
commit 510d27512cb053e8a9f8c622a5f86840be8c21ac
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Tue Mar 17 22:02:42 2015 +0100
sim/erc32: Fix a few compiler warnings
commit 102b920e11b6cd95addd59ea0eb08fac964fa8ad
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Tue Mar 17 22:02:41 2015 +0100
sim/erc32: Use memory_iread() function for instruction fetching.
Use separate memory_iread() function for instruction fetching.
Speeds up execution and allows addition of an MMU at a later stage.
commit 5831e29bc1a17115b96141bf72fbc44200c6e014
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 28 02:46:48 2015 -0400
sim: erc32: strip paren from return statements
commit 49d45b20c01da11b7493a5c28bdced7558999d6d
Author: James Bowman <james.bowman@ftdichip.com>
Date: Mon Mar 23 19:15:32 2015 +0000
gdb: ft32: new port
FT32 is a new high performance 32-bit RISC core developed by FTDI for
embedded applications.
commit f46e4eb78ba55e8bf8dedd98d7fe354729181710
Author: James Bowman <james.bowman@ftdichip.com>
Date: Mon Mar 23 19:20:59 2015 +0000
sim: ft32: new port
FT32 is a new high performance 32-bit RISC core developed by FTDI for
embedded applications.
commit 113d38f929631fa14da98731eebfe97a44d035ce
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 28 00:00:09 2015 +0000
Automatic date update in version.in
commit 5e228181d4aa9177cb6a95ebe214aeaeb3a4ec3f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 27 14:39:39 2015 -0700
Don't run ld-x86-64/pr18160.d for x86_64-*-nacl*
* ld-x86-64/pr18160.d: Don't run for x86_64-*-nacl* target.
commit 1c4ff0802b0c4c8c820dcec503ffea024ea68f45
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Mar 27 20:19:37 2015 +0100
Revert: Code cleanup: Move print_command_1 expr variable scope
Simon Marchi:
I think this patch is wrong. Starting with that commit (f30d5c7),
some tests (e.g. mi-break.exp) started to fail for me, because
of gdb segfaulting.
The address of expr is passed to the cleanup. When the cleanup is ran,
expr is no longer in scope, so what is at that address is probably not
safe to use anymore. That's my guess.
gdb/ChangeLog
2015-03-27 Jan Kratochvil <jan.kratochvil@redhat.com>
Revert:
2015-03-26 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
* printcmd.c (print_command_1): Move expr variable scope.
commit e04de5e3b55b9f481ff2b9939995301ba6b1c748
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 27 09:29:05 2015 -0700
Remove the unused cpu_flags_set
* config/tc-i386.c (cpu_flags_set): Removed.
commit 79498702ef5f743481ee39c18418776715addcd6
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Mar 27 06:37:34 2015 -0700
Initialize EXPR in dtrace-probe::dtrace_process_dof_probe
GCC 4.4.7 generates the following warning:
| cc1: warnings being treated as errors
| dtrace-probe.c: In function âdtrace_process_dof_probeâ:
| dtrace-probe.c:416: error: âexprâ may be used uninitialized in this function
| make[2]: *** [dtrace-probe.o] Error 1
Later versions (GCC 5) do a better job and don't generate the warning,
but it does not hurt to pre-initialize "expr" to NULL.
gdb/ChangeLog:
* dtrace-probe.c (dtrace_process_dof_probe): Initialize expr to NULL.
commit 0916f9e741d6fd9dab4b0602bef034d01fa71650
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Fri Mar 27 09:50:23 2015 -0400
Avoid looking up Input_merge_map multiple times.
Avoid looking up Input_merge_map multiple times when we know were are
processing items from the same input section.
commit ce9c0ca18fe50e1e5a87b135032e4aeba415e2ab
Author: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Date: Fri Mar 27 12:09:02 2015 +0000
Fix gdb_bfd_section_index for special sections
Indexes returned for special sections are off by one, i.e. with N+4
sections last one has index N+4 returned which is outside allocated
obstack (at the same time index N is not used at all).
In worst case, if sections obstack is allocated up to end of chunk,
writing last section data will cause buffer overrun and some data
corruption.
Here's output from Valgrind::
==14630== Invalid write of size 8
==14630== at 0x551B1A: add_to_objfile_sections_full (objfiles.c:225)
==14630== by 0x552768: allocate_objfile (objfiles.c:324)
==14630== by 0x4E8E2E: symbol_file_add_with_addrs (symfile.c:1171)
==14630== by 0x4E9453: symbol_file_add_from_bfd (symfile.c:1280)
==14630== by 0x4E9453: symbol_file_add (symfile.c:1295)
==14630== by 0x4E94B7: symbol_file_add_main_1 (symfile.c:1320)
==14630== by 0x514246: catch_command_errors_const (main.c:398)
==14630== by 0x5150AA: captured_main (main.c:1061)
==14630== by 0x51123C: catch_errors (exceptions.c:240)
==14630== by 0x51569A: gdb_main (main.c:1164)
==14630== by 0x408824: main (gdb.c:32)
==14630== Address 0x635f3b8 is 8 bytes after a block of size 4,064 alloc'd
==14630== at 0x4C2ABA0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14630== by 0x60F797: xmalloc (common-utils.c:41)
==14630== by 0x5E787FB: _obstack_begin (obstack.c:184)
==14630== by 0x552679: allocate_objfile (objfiles.c:294)
==14630== by 0x4E8E2E: symbol_file_add_with_addrs (symfile.c:1171)
==14630== by 0x4E9453: symbol_file_add_from_bfd (symfile.c:1280)
==14630== by 0x4E9453: symbol_file_add (symfile.c:1295)
==14630== by 0x4E94B7: symbol_file_add_main_1 (symfile.c:1320)
==14630== by 0x514246: catch_command_errors_const (main.c:398)
==14630== by 0x5150AA: captured_main (main.c:1061)
==14630== by 0x51123C: catch_errors (exceptions.c:240)
==14630== by 0x51569A: gdb_main (main.c:1164)
==14630== by 0x408824: main (gdb.c:32)
gdb/ChangeLog:
* gdb_bfd.c (gdb_bfd_section_index): Fix off-by-one for special
sections.
commit 72a9c03c27b4fa714c758fdf86d668f6402f5086
Author: Renlin Li <renlin.li@arm.com>
Date: Fri Mar 27 10:22:46 2015 +0000
[Patch ]Fix bintest.s failure after previous AArch64 map symbol commit
2015-03-26 Renlin Li <renlin.li@arm.com>
binutils/testsuite/
* binutils-all/readelf.s-64: Support aarch64 case.
* binutils-all/readelf.ss-64: Likewise.
commit b84171287ffe60dd1e7c02262a0493862fa21a97
Author: Alan Modra <amodra@gmail.com>
Date: Fri Mar 27 15:41:05 2015 +1030
Relax PR 15228 protected visibility restriction
Allows .dynbss copy of shared library protected visibility variables
if they are read-only.
To recap: Copying a variable from a shared library into an executable's
.dynbss is an old hack invented for non-PIC executables, to avoid the
text relocations you'd otherwise need to access a shared library
variable. This works with ELF shared libraries because global
symbols can be overridden. The trouble is that protected visibility
symbols can't be overridden. A shared library will continue to access
it's own protected visibility variable while the executable accesses a
copy. If either the shared library or the executable updates the
value then the copy diverges from the original. This is wrong since
there is only one definition of the variable in the application.
So I made the linker report an error on attempting to copy protected
visibility variables into .dynbss. However, you'll notice the above
paragraph contains an "If". An application that does not modify the
variable value remains correct even though two copies of the variable
exist. The linker can detect this situation if the variable was
defined in a read-only section.
PR ld/15228
PR ld/18167
* elflink.c (elf_merge_st_other): Add "sec" parameter. Don't set
protected_def when symbol section is read-only. Adjust all calls.
* elf-bfd.h (struct elf_link_hash_entry): Update protected_def comment.
commit f3308340aba43e99aa448641a5d3db1c7fae60cf
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 27 00:00:08 2015 +0000
Automatic date update in version.in
commit 7ec911b0fb0b27d66604c3f7951c146d94f4acc7
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Mar 26 20:51:44 2015 +0000
testsuite: Don't set SYMBOL_PREFIX for x86_64_*_cygwin
Exactly like x86_64-*-mingw, SYMBOL_PREFIX should not be set to "_" for
x86_64_*_cygwin
gdb/testuite/ChangeLog:
* lib/gdb.exp (gdb_target_symbol_prefix_flags): Don't set
SYMBOL_PREFIX for x86_64-*-cygwin.
commit 429e1e811b400f07b5a514ea6b8a70b28e2d7ee9
Author: Joel Brobecker <brobecker@adacore.com>
Date: Thu Mar 26 19:14:03 2015 +0100
dtrace-probe: Handle error while parsing probe argument.
The debugger on Solaris has been broken since the introduction of
DTrace probe support:
(gdb) start
Temporary breakpoint 1 at 0x80593bc: file simple_main.adb, line 4.
Starting program: /[...]/simple_main
[Thread debugging using libthread_db enabled]
No definition of "mutex_t" in current context.
The problem occurs while trying to parse a probe's argument,
and the exception propagates all the way to the top. This patch
fixes the issue by containing the exception and falling back on
using the "long" builtin type if the argument's type could not
be determined.
Also, the parsing should be done using the C language parser.
gdb/ChangeLog:
* dtrace-probe.c (dtrace_process_dof_probe): Contain any
exception raised while parsing the probe arguments.
Force parsing to be done using the C language parser.
* expression.h (parse_expression_with_language): Declare.
* parse.c (parse_expression_with_language): New function.
commit 4593441bc5bcb7ec2e04b28591707cdebedd2e85
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Mar 26 20:29:00 2015 +0000
Add myself as a write-after-approval GDB maintainer
gdb/ChangeLog:
* MAINTAINERS (Write After Approval): Add "Jon Turney".
commit 852f8402ca36d36c794f5dfb17be8fa5d4a916ae
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Thu Mar 26 15:10:10 2015 -0400
Fix copy-paste typo in -data-write-memory-bytes doc
* gdb.texinfo (GDB/MI Data Manipulation): Fix copy-paste typo in
-data-write-memory-bytes.
commit ff908ebf8612a737d9e168eca0604ff6c97556bc
Author: Andy Wingo <wingo@igalia.com>
Date: Thu Mar 26 19:41:15 2015 +0100
Properly intern constants into psymtab
Variables with a DW_AT_const_value but without a DW_AT_location were not
getting added to the partial symbol table. They are added to the full
symbol table, however, when the compilation unit's psymtabs are
expanded.
Before:
(gdb) p one
No symbol "one" in current context.
(gdb) mt flush-symbol-cache
(gdb) mt expand one.c
(gdb) p one
$1 = 1
After:
(gdb) p one
$1 = 1
To the user it's pretty strange, as depending on whether tab completion
has forced expansion of all CUs or not the lookup might succeed, or not
if the failure was already added to the symbol cache.
This commit simply makes sure to add constants to the partial symbol
tables.
gdb/testsuite/ChangeLog:
PR symtab/18148
* gdb.dwarf2/dw2-intercu.S (one, two): Add variables that have a
const_value but not a location.
* gdb.dwarf2/dw2-intercu.exp: Add tests that constants without
location defined in non-main CUs are visible.
gdb/ChangeLog:
PR symtab/18148
* dwarf2read.c (struct partial_die_info): Add has_const_value
member.
(add_partial_symbol): Don't punt on symbols that have const_value
attributes.
(read_partial_die): Detect DW_AT_const_value.
commit f30d5c78faa5979fb933038923e5270b7728f96f
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Mar 26 18:44:38 2015 +0100
Code cleanup: Move print_command_1 expr variable scope
gdb/ChangeLog
2015-03-26 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
* printcmd.c (print_command_1): Move expr variable scope.
commit 8d89f51a70a9a3cf74562324fc0391e4872a93b1
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Mar 26 18:41:24 2015 +0100
Code cleanup: Make validate_format parameter const
gdb/ChangeLog
2015-03-26 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
* printcmd.c (validate_format): Make the parameter cmdname const.
commit 0b736949a8752e899972d064da48ce7ca683c18e
Author: Don Breazeal <donb@codesourcery.com>
Date: Thu Mar 26 10:23:05 2015 -0700
Clarify comment on the purpose of the assertion loop in _initialize_remote.
gdb/ChangeLog:
2015-03-26 Don Breazeal <donb@codesourcery.com>
* remote.c (_initialize_remote): Update comment.
commit 93ca856967f274a08807135c098bf1bb3f2b59d8
Author: Tejas Belagod <tejas.belagod@arm.com>
Date: Thu Mar 26 16:20:38 2015 +0000
[AArch64] Fix branch stubs for BE
2015-03-26 Tejas Belagod <tejas.belagod@arm.com>
ld/testsuite
* ld-aarch64/farcall-back-be.d: New.
bfd/
* elfnn-aarch64.c (aarch64_build_one_stub): Replace the call to generic
_bfd_final_link_relocate with aarch64_relocate.
commit 332f5759ac985415b721a72dab7475824253c0c6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 13 08:14:29 2015 -0700
Add ELFOSABI_CLOUDABI and SHF_COMPRESSED
Update from gABI DRAFT - 10 June 2013.
* common.h (ELFOSABI_CLOUDABI): New.
(SHF_COMPRESSED): Likewise.
(ELFCOMPRESS_ZLIB): Likewise.
(ELFCOMPRESS_LOOS): Likewise.
(ELFCOMPRESS_HIOS): Likewise.
(ELFCOMPRESS_LOPROC): Likewise.
(ELFCOMPRESS_HIPROC): Likewise.
commit 5ca28f792883afb409ae145666fc3662c3a3aed5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 13 10:40:33 2015 -0700
Import zlib from GCC
commit b19a8f8545100a08ee2a64c05631aff6f651faa1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 26 08:22:08 2015 -0700
Skip gc-sections if relocation is incompatible
This patch skips gc-sections if input relocation is incompatible with
output.
bfd/
PR ld/18160
* elflink.c (elf_gc_sweep): Skip if relocation is incompatible.
(bfd_elf_gc_sections): Likewise.
ld/testsuite/
PR ld/18160
* ld-x86-64/pr18160.d: New file.
* ld-x86-64/pr18160.s: Likewise.
* ld-x86-64/pr18160.t: Likewise.
* ld-x86-64/x86-64.exp: Run pr18160.
commit 20d35291fb30a2fa5de46af56887f9bc4da7e53e
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 26 10:21:07 2015 +0000
Don't set breakpoints on import stubs on Windows amd64
On Windows amd64, setting a breakpoint on a symbol imported from a
shared library after that library is loaded creates a breakpoint with
two locations, one on the import stub, and another in the shared
library, while on i386, the breakpoint is only set in the shared
library.
This is due to the minimal symbol for the import stub not being
correctly given the type mst_solib_trampoline on Windows amd64, unlike
Windows i386.
As currently written, coff_symfile_read is always skipping over the
character after the "__imp_" (amd64) or "_imp_" (i386) prefix,
assuming that it is '_'. However, while i386 is an underscored
target, amd64 is not.
On x86_64-pc-cygwin, it fixes:
- FAIL: gdb.base/solib-symbol.exp: foo in libmd
+ PASS: gdb.base/solib-symbol.exp: foo in libmd
Unfortunately, several other tests which passed now fail but that's
because this issue was masking other problems.
No change on i686-pc-cygwin.
gdb/ChangeLog:
2015-03-26 Pedro Alves <palves@redhat.com>
Jon TURNEY <jon.turney@dronecode.org.uk>
* coffread.c (coff_symfile_read): When constructing the name of an
import stub symbol from import symbol for amd64, only skip the
char after _imp_ if the target is underscored (like i386) and the
char is indeed the target's leading char.
commit 6d5f0679fe4ff7c3d8ec1d97646ee23b02564715
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 26 08:29:48 2015 +0000
Handle the effect of skipping prologue
break-asm-file.exp has some manually written dwarf to create some line
number entries like this,
[0x0000013d] Extended opcode 2: set Address to 0x40053f
[0x00000144] Advance Line by 4 to 7
[0x00000146] Copy
[0x00000147] Extended opcode 2: set Address to 0x400541
[0x0000014e] Advance Line by 1 to 8
[0x00000150] Copy
[0x00000151] Extended opcode 2: set Address to 0x400547
[0x00000158] Extended opcode 1: End of Sequence
0x40053f is the start address of function func, and is mapped to line
7. 0x400541 is within function func, and is mapped to line 8.
(gdb) disassemble /r 0x40053f,+8
Dump of assembler code from 0x40053f to 0x400547:
0x000000000040053f <func+0>: 00 00 add %al,(%rax)
0x0000000000400541 <func+2>: 00 00 add %al,(%rax)
0x0000000000400543 <func+4>: 00 00 add %al,(%rax)
0x0000000000400545 <func+6>: 00 00 add %al,(%rax)
in the following test,
(gdb) break a/break-asm-file0.s:func
Breakpoint 1 at 0x40053f: file a/break-asm-file0.s, line 7.
As we can see, breakpoint is set at the start address of function func
on x86, which means no prologue is skipped. On other targets, such as
arm and aarch64, breakpoint is set at the address *after* the start
address, which is mapped to line 8. Then test fails.
In fact, it is lucky this test doesn't fail on x86 and x86_64, whose
gdbarch method skip_prologue doesn't reply on skip_prologue_using_sal
if producer isn't clang.
if (find_pc_partial_function (start_pc, NULL, &func_addr, NULL))
{
CORE_ADDR post_prologue_pc
= skip_prologue_using_sal (gdbarch, func_addr);
struct compunit_symtab *cust = find_pc_compunit_symtab (func_addr);
/* Clang always emits a line note before the prologue and another
one after. We trust clang to emit usable line notes. */
if (post_prologue_pc
&& (cust != NULL
&& COMPUNIT_PRODUCER (cust) != NULL
&& startswith (COMPUNIT_PRODUCER (cust), "clang ")))
return max (start_pc, post_prologue_pc);
}
so it doesn't return and go further to prologue analyser. Since ".int 0"
isn't an instruction of prologue, nothing is skipped, starting address
is used, and test passes.
however, on targets which don't have such producer checking, the first
line number entry is skipped, and skip_prologue_using_sal returns sal
represents the second line number entry.
The idea of this patch is to force GDB stop at somewhere which is stilled
mapped to line 7 after skipping prologue. I choose to add a new line
number entry for the following instruction but mapped to the same line (7),
because I see the comments in dwarf2read.c,
... fact that two consecutive
line number entries for the same line is a heuristic used by gcc
to denote the end of the prologue.
then the line table becomes:
[0x000000d4] Extended opcode 2: set Address to 0x400529
[0x000000db] Advance Line by 4 to 7
[0x000000dd] Copy
[0x000000de] Extended opcode 2: set Address to 0x40052a
[0x000000e5] Advance Line by 0 to 7
[0x000000e7] Copy
[0x000000e8] Extended opcode 2: set Address to 0x40052b
[0x000000ef] Advance Line by 1 to 8
[0x000000f1] Copy
[0x000000f2] Extended opcode 2: set Address to 0x40052c
[0x000000f9] Extended opcode 1: End of Sequence
gdb/testsuite:
2015-03-26 Yao Qi <yao.qi@linaro.org>
PR testsuite/18139
* gdb.linespec/break-asm-file0.s (func): New label .Lfunc_2.
Add a line number entry for the same line.
* gdb.linespec/break-asm-file1.s (func): New label .Lfunc_2.
Add a line number entry for the same line.
commit 2898689ba3a36451779ec526e14783c2aba9316b
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 26 08:29:48 2015 +0000
Remove some hard-coded stuff in tests
There are some hard-coded stuff in .s files, such as .int 0 and
address offset, which isn't portable. This patch is to replace
".int 0" with nop and address offset with labels.
gdb/testsuite:
2015-03-26 Yao Qi <yao.qi@linaro.org>
* gdb.linespec/break-asm-file0.s (func2): Use nop instead of
.int 0.
(func): Likewise. Add .Lfunc_1 label.
Use .Lfunc_1 label.
* gdb.linespec/break-asm-file1.s (func3): Use nop instead of
.int 0.
(func): Likewise.
Use .Lfunc_1 label.
commit 8518049884947da598e2f585bf9a4589df7096e9
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 26 08:29:48 2015 +0000
Compile break-asm-file{0,1}.s without debug info
If I add some nop into break-asm-file1.s like this,
--- INDEX:/gdb/testsuite/gdb.linespec/break-asm-file1.s
+++ WORKDIR:/gdb/testsuite/gdb.linespec/break-asm-file1.s
@@ -31,8 +31,8 @@ _func:
.type func, %function
func:
.Lbegin_func:
- .int 0
- .int 0
+ nop
+ nop
.Lend_func:
.size func, .-func
.Lend_text1:
I get the following error:
Running gdb/testsuite/gdb.linespec/break-asm-file.exp ...
gdb/testsuite/gdb.linespec/break-asm-file1.s: Assembler messages:^M
gdb/testsuite/gdb.linespec/break-asm-file1.s: Fatal error: duplicate .debug_line sections
break-asm-file0.s and break-asm-file1.s have already had debug information
(written manually), so don't need to generate debug infor for them.
gdb/testsuite:
2015-03-26 Yao Qi <yao.qi@linaro.org>
* gdb.linespec/break-asm-file.exp: Don't call prepare_for_testing.
Call gdb_compile instead to compile each .s files without debug
information.
commit 8aa08a8dd596758904f1e994057c94bd655dda2e
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 26 08:16:20 2015 +0000
Relax pattern to match the output of "info frame" in gdb.base/savedregs.exp
Hi,
I see the following two fails in gdb.base/savedregs.exp on aarch64-linux,
info frame 2^M
Stack frame at 0x7ffffffa60:^M
pc = 0x40085c in thrower (/home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.base/savedregs.c:49); saved pc = 0x400898^M
called by frame at 0x7ffffffa70, caller of frame at 0x7fffffe800^M
source language c.^M
Arglist at 0x7ffffffa60, args: ^M
Locals at 0x7ffffffa60, Previous frame's sp is 0x7ffffffa60^M
(gdb) FAIL: gdb.base/savedregs.exp: Get thrower info frame
info frame 2^M
Stack frame at 0x7fffffe800:^M
pc = 0x400840 in catcher (/home/yao/SourceCode/gnu/gdb/git/gdb/testsuite/gdb.base/savedregs.c:42); saved pc = 0x7fb7ffc350^M
called by frame at 0x7fffffe800, caller of frame at 0x7fffffe7e0^M
source language c.^M
Arglist at 0x7fffffe7f0, args: sig=11^M
Locals at 0x7fffffe7f0, Previous frame's sp is 0x7fffffe800
(gdb) FAIL: gdb.base/savedregs.exp: Get catcher info frame
looks the test expects to match "Saved registers:" from the output of
"info frame", but no registers are saved on these two frames, because
thrower and catcher are simple and leaf functions.
(gdb) disassemble thrower
Dump of assembler code for function thrower:
0x0000000000400858 <+0>: mov x0, #0x0 // #0
0x000000000040085c <+4>: strb wzr, [x0]
0x0000000000400860 <+8>: ret
End of assembler dump.
(gdb) disassemble catcher
Dump of assembler code for function catcher:
0x0000000000400838 <+0>: sub sp, sp, #0x10
0x000000000040083c <+4>: str w0, [sp,#12]
0x0000000000400840 <+8>: adrp x0, 0x410000
0x0000000000400844 <+12>: add x0, x0, #0xb9c
0x0000000000400848 <+16>: mov w1, #0x1 // #1
0x000000000040084c <+20>: str w1, [x0]
0x0000000000400850 <+24>: add sp, sp, #0x10
0x0000000000400854 <+28>: ret
There are two ways to fix these fails, one is to modify functions to
force some registers saved (for example, doing function call in them),
and the other one is to relax the pattern to optionally match
"Saved registers:". I did both, and feel that the latter is simple,
so here is it.
gdb/testsuite:
2015-03-26 Yao Qi <yao.qi@linaro.org>
* gdb.base/savedregs.exp (process_saved_regs): Make
"Saved registers:" optional in the pattern.
commit a1ddc52b53de43ed2fa201611fed550f9c4da014
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 26 00:00:08 2015 +0000
Automatic date update in version.in
commit 27c49e9a8fc004de116243ba8887e054f1190b42
Author: Anton Blanchard <anton@samba.org>
Date: Wed Mar 25 13:44:28 2015 +1100
powerpc: Only initialise opcode indices once
The gdb TUI is calling gdb_print_insn() (which calls
disassemble_init_powerpc()) enough to show up high in profiles. As
suggested by Alan, only initialise if the indices are empty.
opcodes/ChangeLog:
2015-03-25 Anton Blanchard <anton@samba.org>
* ppc-dis.c (disassemble_init_powerpc): Only initialise
powerpc_opcd_indices and vle_opcd_indices once.
commit c4e676f196560500d41ff8652d6be0c735758001
Author: Anton Blanchard <anton@samba.org>
Date: Wed Mar 25 13:43:18 2015 +1100
powerpc: Add slbfee. instruction
opcodes/ChangeLog:
2015-03-25 Anton Blanchard <anton@samba.org>
* ppc-opc.c (powerpc_opcodes): Add slbfee.
commit 618655192fca05a9aaebbd395b0960626cbfdebe
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Sun Mar 22 08:31:18 2015 +0000
[AArch64] Implement branch over stub section.
Ensure that injection of a stub section does not break a link where
there is an xpectation that flow of control can pass from one input
section to another simply by linking the input sections in series.
The solution here is to allow stub sections to be inserted after any
input section (existing behaviour), but inject an additional branch at
the start of each stub section such that control flow falling into the
stub section will branch over the stub section.
commit d9ced15d6ea875aadd3e7395990eb37319454d71
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Sun Mar 22 07:48:07 2015 +0000
[AArch64] Remove padding before stub sections.
Lower stub alignment from 8 to 4 bytes thus removing padding between
input section content and stub section content.
commit 357d1523b2e5b0427fe4133cc90658026a7fac2c
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Mar 25 14:39:14 2015 +0000
[AArch64] Adjust veneer count.
commit 66849923d2f6505b691f24dcb15797f2e0d969ec
Author: Markus Metzger <markus.t.metzger@intel.com>
Date: Tue Feb 3 16:42:41 2015 +0100
btrace: fix tests for 32-bit
The x86-record_goto.S assembly source file does not build on 32-bit.
This breaks many tests that use this file.
Split it into x86_64-record_goto.S and i686-record_goto.S. Luckily, we
can use either one with the same test .exp file.
It further turned out that most tests do not really need a fixed binary;
they should work pretty well with a newly-compiled C program. The
one thing that breaks this is the heavy use of "record goto" to navigate
inside the recorded execution.
Combine step.exp, next,exp, and finish.exp into a single test step.exp
and use normal stepping and reverse-stepping commands for navigation.
testsuite/
* gdb.btrace/next.exp: Merged into step.exp.
* gdb.btrace/finish.exp: Merged into step.exp.
* gdb.btrace/nexti.exp: Merged into stepi.exp.
* gdb.btrace/step.exp: Use record_goto.c as test file. Avoid using
"record goto" and checking the exact replay position.
* gdb.btrace/stepi.exp: Choose test file based on target. Do not
check for "Recording format" in "info record" output.
* gdb.btrace/record_goto.exp: Choose test file based on target.
* gdb.btrace/x86-record_goto.S: Renamed into ...
* gdb.btrace/x86_64-record_goto.S: ... this.
* gdb.btrace/i686-record_goto.S: New.
* gdb.btrace/x86-tailcall.S: Renamed into ...
* gdb.btrace/x86_64-tailcall.S: ... this.
* gdb.btrace/i686-tailcall.S: New.
* gdb.btrace/x86-tailcall.c: Renamed into ...
* gdb.btrace/tailcall.c: ... this. Split "return ++answer" into two
separate statements. Update test.
* gdb.btrace/delta.exp: Use record_goto.c as test file.
* gdb.btrace/gcore.exp: Use record_goto.c as test file.
* gdb.btrace/nohist.exp: Use record_goto.c as test file.
* gdb.btrace/tailcall.exp: Choose test file based on target.
* gdb.btrace/Makefile.in: Remove next, finish, and nexti.
commit 11cc1b74538286b8bc775057fe1300707b3e3520
Author: Markus Metzger <markus.t.metzger@intel.com>
Date: Fri Jan 23 15:13:20 2015 +0100
btrace: increase buffer size for exception test
The trace for throwing and catching an exception can be quite big.
Increase the buffer size to avoid spurious fails.
testsuite/
* gdb.btrace/exception.exp: Increase BTS buffer size.
commit bb383c6cf1ea43193ef9f407a3b7c3bdee9f5fa1
Author: Renlin Li <renlin.li@arm.com>
Date: Wed Mar 25 12:33:07 2015 +0000
[AARCH64]Fix "align directive causes MAP_DATA symbol to be lost"
gas/ChangeLog:
2015-03-25 Renlin Li <renlin.li@arm.com>
* config/tc-aarch64.c (mapping_state): Remove first MAP_DATA emitting code.
(mapping_state_2): Emit first MAP_DATA symbol here.
commit 6a3753b34b7b4ff6b12d89ec1f6835799b54ef63
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 25 11:28:31 2015 +0000
Simplify target_async hook interface
All callers of target_async pass it the same callback
(inferior_event_handler). Since both common code and target backends
need to be able to put the target in and out of target async mode at
any given time, there's really no way that a different callback could
be passed. This commit simplifies things, and removes the indirection
altogether. Bonus: with this, gdb's target_async method ends up with
the same signature as gdbserver's.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/ChangeLog:
2015-03-25 Pedro Alves <palves@redhat.com>
* target.h <to_async>: Replace 'callback' and 'context' parameters
with boolean 'enable' parameter.
(target_async): Replace CALLBACK and CONTEXT parameters with
boolean ENABLE parameter.
* inf-loop.c (inferior_event_handler): Adjust.
* linux-nat.c (linux_nat_attach, linux_nat_resume)
(linux_nat_resume): Adjust.
(async_client_callback, async_client_context): Delete.
(handle_target_event): Call inferior_event_handler directly.
(linux_nat_async): Replace 'callback' and 'context' parameters
with boolean 'enable' parameter. Adjust. Remove references to
async_client_callback and async_client_context.
(linux_nat_close): Adjust.
* record-btrace.c (record_btrace_async): Replace 'callback' and
'context' parameters with boolean 'enable' parameter. Adjust.
(record_btrace_resume): Adjust.
* record-full.c (record_full_async): Replace 'callback' and
'context' parameters with boolean 'enable' parameter. Adjust.
(record_full_resume, record_full_core_resume): Adjust.
* remote.c (struct remote_state) <async_client_callback,
async_client_context>: Delete fields.
(remote_start_remote, extended_remote_attach_1, remote_resume)
(extended_remote_create_inferior): Adjust.
(remote_async_serial_handler): Call inferior_event_handler
directly.
(remote_async): Replace 'callback' and 'context' parameters with
boolean 'enable' parameter. Adjust.
* top.c (gdb_readline_wrapper_cleanup, gdb_readline_wrapper):
Adjust.
* target-delegates.c: Regenerate.
commit 1c4b552ba553c4dbbb066c9ef8667209553444ca
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Mar 25 11:26:43 2015 +0000
Associate target_ops with target_fileio file descriptors
Various target_fileio_* functions use integer file descriptors to
refer to open files. File operation functions are looked up from
the target stack as they are used, which causes problems if the
target stack changes after the file is opened.
For example, if a file is opened on a remote target and the remote
target disconnects or closes the remote target will be popped off
the stack. If target_fileio_close is then called on that file and
"set auto-connect-native-target" is "on" (the default) then the
native target's close method will be called. If the file opened
on the remote happens to share the same number with a file open in
GDB then that file will be closed by mistake.
This commit changes target_fileio_open to store newly opened file
descriptors in a table together with the target_ops used to open
them. The index into the table is returned and used as the file
descriptor argument to all target_fileio_* functions that accept
file descriptor arguments.
gdb/ChangeLog:
* target.c (fileio_ft_t): New typedef, define object vector.
(fileio_fhandles): New static variable.
(is_closed_fileio_fh): New macro.
(lowest_closed_fd): New static variable.
(acquire_fileio_fd): New function.
(release_fileio_fd): Likewise.
(fileio_fd_to_fh): New macro.
(target_fileio_open): Wrap the file descriptor on success.
(target_fileio_pwrite): Updated to use wrapped file descriptor.
(target_fileio_pread): Likewise.
(target_fileio_close): Likewise.
commit d422d1c433073ba412287334a7ec3aa95e03c5e9
Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Tue Mar 24 19:18:04 2015 +0530
Garbage collecting debug sections
I noticed that _bfd_elf_gc_mark_extra_sections attempts to unmark
related debug sections when it finds an unmarked code section.
When it finds .text.foo is unmarked, for example, it removes
.debug_line.text.foo as well (using the section name as a suffix
match check.
However, it bails out after finding one such section.
bfd/
* elflink.c (_bfd_elf_gc_mark_extra_sections): Don't break on
first matching debug section.
ld/testsuite/
* ld-gc/all-debug-sections.d: New file.
* ld-gc/all-debug-sections.s: Likewise.
* ld-gc/gc.exp: Execute new testcase.
commit b422eb499be2858969fb7723b4e4e08cab20fcdc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 24 19:06:22 2015 -0700
Don't write the zlib header if not used
No need to write the zlib header if compression didn't make the section
smaller.
PR gas/18087
* write.c (compress_debug): Don't write the zlib header if
compression didn't make the section smaller.
commit f6d5c6943ba1f32a640137fcba92aa046bbf86ed
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 25 00:00:08 2015 +0000
Automatic date update in version.in
commit a25d8bf9c5b2c9d3671f4508c9132485c65c3773
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 21:01:29 2015 +0000
Fix "thread apply all" with exited threads
I noticed that "thread apply all" sometimes crashes.
The problem is that thread_apply_all_command doesn take exited threads
into account, and we qsort and then walk more elements than there
really ever were put in the array. Valgrind shows:
The current thread <Thread ID 3> has terminated. See `help thread'.
(gdb) thread apply all p 1
Thread 1 (Thread 0x7ffff7fc2740 (LWP 29579)):
$1 = 1
==29576== Use of uninitialised value of size 8
==29576== at 0x639CA8: set_thread_refcount (thread.c:1337)
==29576== by 0x5C2C7B: do_my_cleanups (cleanups.c:155)
==29576== by 0x5C2CE8: do_cleanups (cleanups.c:177)
==29576== by 0x63A191: thread_apply_all_command (thread.c:1477)
==29576== by 0x50374D: do_cfunc (cli-decode.c:105)
==29576== by 0x506865: cmd_func (cli-decode.c:1893)
==29576== by 0x7562CB: execute_command (top.c:476)
==29576== by 0x647DA4: command_handler (event-top.c:494)
==29576== by 0x648367: command_line_handler (event-top.c:692)
==29576== by 0x7BF7C9: rl_callback_read_char (callback.c:220)
==29576== by 0x64784C: rl_callback_read_char_wrapper (event-top.c:171)
==29576== by 0x647CB5: stdin_event_handler (event-top.c:432)
==29576==
...
This can happen easily today as linux-nat.c/linux-thread-db.c are
forgetting to purge non-current exited threads. But even with that
fixed, we can always do "thread apply all" with an exited thread
selected, which won't be deleted until the user switches to another
thread. That's what the test added by this commit exercises.
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* thread.c (thread_apply_all_command): Take exited threads into
account.
gdb/testsuite/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* gdb.threads/no-unwaited-for-left.exp: Test "thread apply all".
commit 8d00121477371cfd1596118af062fe6ff4e263b7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 24 13:27:52 2015 -0700
Don't write the zlib header if not used
No need to write the zlib header if compression didn't make the section
smaller.
PR binutils/18087
* compress.c (bfd_compress_section_contents): Don't write the
zlib header and set contents as well as compress_status if
compression didn't make the section smaller.
(bfd_init_section_compress_status): Don't check compression
size here.
commit 44a1ee517365cd120f0338c1f4dc5a85273d4e4b
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 14:24:54 2015 +0000
Fix switch_back_to_stepped_thread comment references
Whoops, switch_back_to_stepping doesn't exist...
gdb/
2015-03-24 Pedro Alves <palves@redhat.com>
* infrun.c (resume, proceed): Mention
switch_back_to_stepped_thread, not switch_back_to_stepping.
commit f3263aa47ec109871a124a1a2d5370e42a907690
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 14:24:53 2015 +0000
Shuffle user_visible_resume_ptid
... and move comment to declaration.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* infrun.c (user_visible_resume_ptid): Rewrite going from
most-locked to unlocked instead of the opposite. Move comment ...
* infrun.h (user_visible_resume_ptid): ... here.
commit 2bf6fb9d85394f90abb3e21ee037a732b6e4c983
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 18:31:51 2015 +0000
Debug output tweaks in the Linux target backends
This adds/tweaks a few debug logs I found useful recently.
gdb/gdbserver/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* linux-low.c (check_stopped_by_breakpoint): Tweak debug log
output. Also dump TRAP_TRACE.
(linux_low_filter_event): In debug output, distinguish a
resume_stop SIGSTOP from a delayed SIGSTOP.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* linux-nat.c (linux_nat_resume): Output debug logs before trying
to resume the event lwp. Use the lwp's ptid instead of the passed
in (maybe wildcard) ptid.
(stop_wait_callback): Tweak debug log output.
(check_stopped_by_breakpoint): Tweak debug log output. Also dump
TRAP_TRACE.
(linux_nat_filter_event): In debug output, distinguish a
resume_stop SIGSTOP from a delayed SIGSTOP. Output debug logs
before trying to resume the lwp.
commit 283a99589a0780a3b1fc011885b630bd9223ebba
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Mar 24 11:14:13 2015 -0700
Do not make "prop" field of struct dynamic_prop_list a pointer.
struct dynamic_prop_list is declared as follow:
struct dynamic_prop_list
{
[...]
/* The dynamic property itself. */
struct dynamic_prop *prop;
[...]
};
In this case, the pointer indirection is unnecessary and costing us,
for each dynamic property, the memory needed to store one pointer.
This patch removes this pointer indirection, savin us a tiny bit of
memory, as well as reduces a bit the complexity by removing the need
to allocate memory for the property, as the allocation is now part
of the struct itself.
gdb/ChangeLog:
* gdbtypes.h (struct dynamic_prop_list) <prop>: Remove
pointer indirection.
* gdbtypes.c (get_dyn_prop): Adjust, following change above.
(add_dyn_prop, copy_dynamic_prop_list): Likewise.
Tested on x86_64-linux.
commit 93a8e2276fadd7dbb323d7cf4b082c33b32073d5
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Mar 24 11:03:21 2015 -0700
GDB: rename DYN_ATTR_DATA_LOCATION into DYN_PROP_DATA_LOCATION.
The terminology we've been using is (dynamic) "property" rather than
"attribute", so this patch renames an enum to use the same terminology.
No behavior change.
gdb/ChangeLog:
* gdbtypes.h (enum dynamic_prop_node_kind) <DYN_PROP_DATA_LOCATION>:
Renames DYN_ATTR_DATA_LOCATION.
(TYPE_DATA_LOCATION): Use DYN_PROP_DATA_LOCATION instead of
DYN_ATTR_DATA_LOCATION.
* dwarf2read.c (set_die_type): Use DYN_PROP_DATA_LOCATION
instead of DYN_ATTR_DATA_LOCATION.
Tested on x86_64-linux.
commit 64ce06e4cd025f3486465a0070baad47248ec69e
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 17:50:31 2015 +0000
Remove 'step' parameters from 'proceed' and 'resume'
The "step" parameters of 'proceed' and 'resume' aren't really useful
as indication of whether run control wants to single-step the target,
as that information must already be retrievable from
currently_stepping. In fact, if currently_stepping disagrees with
whether we single-stepped the target, then things break. Thus instead
of having the same information in two places, this patch removes those
parameters.
Setting 'step_start_function' is the only user of proceed's 'step'
argument, other than passing the 'step' argument down to 'resume' and
debug log output. Move that instead to set_step_frame, where we
already set other related fields.
clear_proceed_status keeps its "step" parameter for now because it
needs to know which set of threads should have their state cleared,
and is called before the "stepping_command" flag is set.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* breakpoint.c (until_break_command): Adjust call to proceed.
* gdbthread.h (struct thread_control_state) <stepping_command>:
New field.
* infcall.c (run_inferior_call): Adjust call to proceed.
* infcmd.c (run_command_1, proceed_thread_callback, continue_1):
Adjust calls to proceed.
(set_step_frame): Set the current thread's step_start_function
here.
(step_once): Adjust calls to proceed.
(jump_command, signal_command, until_next_command)
(finish_backward, finish_forward, proceed_after_attach_callback)
(attach_command_post_wait): Adjust calls to proceed.
* infrun.c (proceed_after_vfork_done): Adjust call to proceed.
(do_target_resume): New function, factored out from ...
(resume): ... here. Remove 'step' parameter. Instead, check
currently_stepping to determine whether the thread should be
single-stepped.
(proceed): Remove 'step' parameter and don't set the thread's
step_start_function here. Adjust call to 'resume'.
(handle_inferior_event): Adjust calls to 'resume'.
(switch_back_to_stepped_thread): Use do_target_resume instead of
'resume'.
(keep_going): Adjust calls to 'resume'.
* infrun.h (proceed): Remove 'step' parameter.
(resume): Likewise.
* windows-nat.c (do_initial_windows_stuff): Adjust call to
'resume'.
* mi/mi-main.c (proceed_thread): Adjust call to 'proceed'.
commit 856e7dd6986d26b251d91b7fcd10c08fb57dc73b
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 17:50:31 2015 +0000
Make "set scheduler-locking step" depend on user intention, only
Currently, "set scheduler-locking step" is a bit odd. The manual
documents it as being optimized for stepping, so that focus of
debugging does not change unexpectedly, but then it says that
sometimes other threads may run, and thus focus may indeed change
unexpectedly... A user can then be excused to get confused and wonder
why does GDB behave like this.
I don't think a user should have to know about details of how "next"
or whatever other run control command is implemented internally to
understand when does the "scheduler-locking step" setting take effect.
This patch completes a transition that the code has been moving
towards for a while. It makes "set scheduler-locking step" hold
threads depending on whether the _command_ the user entered was a
stepping command [step/stepi/next/nexti], or not.
Before, GDB could end up locking threads even on "continue" if for
some reason run control decides a thread needs to be single stepped
(e.g., for a software watchpoint).
After, if a "continue" happens to need to single-step for some reason,
we won't lock threads (unless when stepping over a breakpoint,
naturally). And if a stepping command wants to continue a thread for
bit, like when skipping a function to a step-resume breakpoint, we'll
still lock threads, so focus of debugging doesn't change.
In order to make this work, we need to record in the thread structure
whether what set it running was a stepping command.
(A follow up patch will remove the "step" parameters of 'proceed' and 'resume')
FWIW, Fedora GDB, which defaults to "scheduler-locking step" (mainline
defaults to "off") carries a different patch that goes in this
direction as well.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* gdbthread.h (struct thread_control_state) <stepping_command>:
New field.
* infcmd.c (step_once): Pass step=1 to clear_proceed_status. Set
the thread's stepping_command field.
* infrun.c (resume): Check the thread's stepping_command flag to
determine which threads should be resumed. Rename 'entry_step'
local to user_step.
(clear_proceed_status_thread): Clear 'stepping_command'.
(schedlock_applies): Change parameter type to struct thread_info
pointer. Adjust.
(find_thread_needs_step_over): Remove 'step' parameter. Adjust.
(switch_back_to_stepped_thread): Adjust calls to
'schedlock_applies'.
(_initialize_infrun): Adjust "set scheduler-locking step" help.
gdb/testsuite/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* gdb.threads/schedlock.exp (test_step): No longer expect that
"set scheduler-locking step" with "next" over a function call runs
threads unlocked.
gdb/doc/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* gdb.texinfo (test_step) <set scheduler-locking step>: No longer
mention that threads may sometimes run unlocked.
commit 885eeb5b8ea021cc79ffebe8ec40122229c572f0
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 17:50:30 2015 +0000
Make step_start_function be per thread
I noticed that step_start_function is still a global, while it
obviously should be a per-thread field.
gdb/ChangeLog:
2015-03-24 Pedro Alves <palves@redhat.com>
* infrun.c (step_start_function): Delete and ...
* gdbthread.h (struct thread_control_state) <step_start_function>:
... now a field here.
* infrun.c (clear_proceed_status_thread): Clear the thread's
step_start_function.
(proceed, process_event_stop_test, print_stop_event): Adjust.
commit 3333f03ae1b02b321717b4bc4887201ed4fc6a26
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 24 17:50:29 2015 +0000
No longer handle negative 'step' in 'proceed'
Nothing ever passes a negative 'step' to proceed.
Gets rid of one of the few remaining stop_after_trap references.
gdb/ChangeLog
2015-03-24 Pedro Alves <palves@redhat.com>
* infrun.c (proceed): No longer handle negative step.
commit ad235a410aebf08ca67589891388774aa1d03562
Author: Antoine Tremblay <antoine.tremblay@ericsson.com>
Date: Tue Mar 24 13:28:42 2015 -0400
Fix mi-pending.exp test output to allow stable test diffing
gdb/testsuite/ChangeLog:
* gdb.mi/mi-pending.exp: Fix output of breakpoint test.
commit fc42baf3cdc41bc8cf12e35ae78e4529c1470118
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 24 17:20:00 2015 +0000
Fixes a bug introduced by the new ranges checks on COFF symbol tables.
PR binutils/17512
* coffgen.c (coff_get_normalized_symtab): Fix test for out of
range auxillary sections.
commit fc6d53be1893813f5017681a211dd20d560d8c58
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Mon Mar 2 12:11:40 2015 +0000
[AArch64] Factor out _bfd_aarch64_get_stub_for_link_section.
commit 30068a6d2da1ba4b0248a270c7c958ef24a80416
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Sat Feb 28 00:17:22 2015 +0000
[AArch64] Refactor section_group[] representation.
Change the behaviour of section_group[] such that .stub_sec points to
the stub section attached to the indexed section rather than the stub
section attached to the link_section pointed to be the index section.
This provides a mechanism to get to the stub section following any
input section. While still allowing the section grouping mechanism to
find the section group stub section associated with an input section
by first following the link_sec pointer.
commit 369f6daa21bf33a09ef67b002e4cec3595eddfe7
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:45 2015 +0000
Move duplicated Linux x86 code to nat/x86-linux.c
This commit moves two identical functions from gdb/x86-linux-nat.c and
gdb/gdbserver/linux-x86-low.c into the shared file gdb/nat/x86-linux.c.
gdb/ChangeLog:
* nat/x86-linux.h (x86_linux_new_thread): New declaration.
(x86_linux_prepare_to_resume): Likewise.
* x86-linux-nat.c (x86_linux_new_thread):
Moved to nat/x86-linux.c.
(x86_linux_prepare_to_resume): Likewise.
* nat/x86-linux.c (x86_linux_new_thread): New function.
(x86_linux_prepare_to_resume): Likewise.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_linux_new_thread): Moved to
nat/x86-linux.c.
(x86_linux_prepare_to_resume): Likewise.
commit 8e5d40700492597d103ebdb68eab733456b66fad
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:45 2015 +0000
Move low-level Linux x86 debug register code to a shared file
This commit moves the now-identical low-level Linux x86 debug register
code from gdb/x86-linux-nat.c and gdb/gdbserver/linux-x86-low.c into a
new shared file gdb/nat/x86-linux-dregs.c.
gdb/ChangeLog:
* nat/x86-linux-dregs.h: New file.
* nat/x86-linux-dregs.c: Likewise.
* Makefile.in (HFILES_NO_SRCDIR): Add nat/x86-linux-dregs.h.
(x86-linux-dregs.o): New rule.
* config/i386/linux.mh (NATDEPFILES): Add x86-linux-dregs.o.
* config/i386/linux64.mh (NATDEPFILES): Likewise.
* x86-linux-nat.c: Include nat/x86-linux-dregs.h.
(u_debugreg_offset): Moved to nat/x86-linux-dregs.c.
(x86_linux_dr_get): Likewise.
(x86_linux_dr_set): Likewise.
(x86_linux_dr_get_addr): Likewise.
(x86_linux_dr_get_control): Likewise.
(x86_linux_dr_get_status): Likewise.
(update_debug_registers_callback): Likewise.
(x86_linux_dr_set_control): Likewise.
(x86_linux_dr_set_addr): Likewise.
(x86_linux_update_debug_registers): Likewise.
gdb/gdbserver/ChangeLog:
* Makefile.in (x86-linux-dregs.o): New rule.
* configure.srv: Add x86-linux-dregs.o to relevant targets.
* linux-x86-low.c: Include nat/x86-linux-dregs.h.
(u_debugreg_offset): Moved to nat/x86-linux-dregs.c.
(x86_linux_dr_get): Likewise.
(x86_linux_dr_set): Likewise.
(update_debug_registers_callback): Likewise.
(x86_linux_dr_set_addr): Likewise.
(x86_linux_dr_get_addr): Likewise.
(x86_linux_dr_set_control): Likewise.
(x86_linux_dr_get_control): Likewise.
(x86_linux_dr_get_status): Likewise.
(x86_linux_update_debug_registers): Likewise.
commit 2b95d4403883ba22687ecb81520855204348a7fb
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Introduce x86_linux_update_debug_registers
This commit moves the entire body of both GDB's and gdbserver's
x86_linux_prepare_to_resume functions into new functions,
x86_linux_update_debug_registers. This reorganisation allows
all Linux x86 low-level debug register code to be placed in one
shared file, separate from general Linux x86 shared code.
gdb/ChangeLog:
* x86-linux-nat.c (x86_linux_update_debug_registers):
New function, factored out from...
(x86_linux_prepare_to_resume): ...this.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_linux_update_debug_registers):
New function, factored out from...
(x86_linux_prepare_to_resume): ...this.
commit 14b0bc68e8a9f8e8fc3d27c64c7cf5f7c676cea1
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Linux x86 low-level debug register comment synchronization
This commit updates comments in the low-level debug register code for
Linux x86, making GDB's and gdbserver's implementations identical.
gdb/ChangeLog:
* x86-linux-nat.c (x86_linux_dr_get): Update comments.
(x86_linux_dr_set): Likewise.
(x86_linux_dr_get_addr): Likewise.
(x86_linux_dr_get_control): Likewise.
(x86_linux_dr_get_status): Likewise.
(update_debug_registers_callback): Likewise.
(x86_linux_dr_set_control): Likewise.
(x86_linux_dr_set_addr): Likewise.
(x86_linux_prepare_to_resume): Likewise.
(x86_linux_new_thread): Likewise.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_linux_dr_get): Update comments.
(x86_linux_dr_set): Likewise.
(update_debug_registers_callback): Likewise.
(x86_linux_dr_set_addr): Likewise.
(x86_linux_dr_get_addr): Likewise.
(x86_linux_dr_set_control): Likewise.
(x86_linux_dr_get_control): Likewise.
(x86_linux_dr_get_status): Likewise.
(x86_linux_prepare_to_resume): Likewise.
commit 5dfe6ca8a8686a37fea66dff3b652e7f4f7fc90c
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Linux x86 low-level debug register code synchronization
This commit makes several small changes to the low-level debug
register code for Linux x86, making the code in the GDB and
gdbserver implementations identical.
gdb/ChangeLog:
* x86-linux-nat.c (x86_linux_dr_set_addr): Update assertion.
(x86_linux_new_thread): Rename argument.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_linux_dr_get): Add assertion.
Use perror_with_name. Pass string through gettext.
(x86_linux_dr_set): Likewise.
commit d33472adfc6b6cdfd12f48e53ee0d6c96677717d
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Rename gdbserver's low-level Linux x86 debug register accessors
This commit renames gdbserver's low-level Linux x86 debug register
accessors to the same names used by GDB.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_dr_low_set_addr): Rename to...
(x86_linux_dr_set_addr): ...this.
(x86_dr_low_get_addr): Rename to...
(x86_linux_dr_get_addr): ...this.
(x86_dr_low_set_control): Rename to...
(x86_linux_dr_set_control): ...this.
(x86_dr_low_get_control): Rename to...
(x86_linux_dr_get_control): ...this.
(x86_dr_low_get_status): Rename to...
(x86_linux_dr_get_status): ...this.
(x86_dr_low): Update with new function names.
commit 4b134ca10812e550d8d012cd6096f5229d59f7c6
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Make lwp_info.arch_private handling shared
This commit moves the code to handle lwp_info.arch_private for
Linux x86 into a new shared file, nat/x86-linux.c.
gdb/ChangeLog:
* nat/x86-linux.h: New file.
* nat/x86-linux.c: Likewise.
* Makefile.in (HFILES_NO_SRCDIR): Add nat/x86-linux.h.
(x86-linux.o): New rule.
* config/i386/linux.mh (NATDEPFILES): Add x86-linux.o.
* config/i386/linux64.mh (NATDEPFILES): Likewise.
* nat/linux-nat.h (struct arch_lwp_info): New forward declaration.
(lwp_set_arch_private_info): New declaration.
(lwp_arch_private_info): Likewise.
* linux-nat.c (lwp_set_arch_private_info): New function.
(lwp_arch_private_info): Likewise.
* x86-linux-nat.c: Include nat/x86-linux.h.
(arch_lwp_info): Removed structure.
(update_debug_registers_callback):
Use lwp_set_debug_registers_changed.
(x86_linux_prepare_to_resume): Use lwp_debug_registers_changed
and lwp_set_debug_registers_changed.
(x86_linux_new_thread): Use lwp_set_debug_registers_changed.
gdb/gdbserver/ChangeLog:
* Makefile.in (x86-linux.o): New rule.
* configure.srv: Add x86-linux.o to relevant targets.
* linux-low.c (lwp_set_arch_private_info): New function.
(lwp_arch_private_info): Likewise.
* linux-x86-low.c: Include nat/x86-linux.h.
(arch_lwp_info): Removed structure.
(update_debug_registers_callback):
Use lwp_set_debug_registers_changed.
(x86_linux_prepare_to_resume): Use lwp_debug_registers_changed
and lwp_set_debug_registers_changed.
(x86_linux_new_thread): Use lwp_set_debug_registers_changed.
commit 34c703da6cb01d8b41e1bfb790c3c2c625088b69
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Change signature of linux_target_ops.new_thread
This commit changes the signature of linux_target_ops.new_thread in
gdbserver to match that used in GDB's equivalent.
gdb/gdbserver/ChangeLog:
* linux-low.h (linux_target_ops) <new_thread>: Changed signature.
* linux-arm-low.c (arm_new_thread): Likewise.
* linux-aarch64-low.c (aarch64_linux_new_thread): Likewise.
* linux-mips-low.c (mips_linux_new_thread): Likewise.
* linux-x86-low.c (x86_linux_new_thread): Likewise.
* linux-low.c (add_lwp): Update the_low_target.new_thread call.
commit cff068da9d13bc9fa8c04f42151b4e92bfff86a1
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Introduce basic LWP accessors
This commit introduces three accessors that shared Linux code can
use to access fields of struct lwp_info. The GDB and gdbserver
Linux x86 code is modified to use them.
gdb/ChangeLog:
* nat/linux-nat.h (ptid_of_lwp): New declaration.
(lwp_is_stopped): Likewise.
(lwp_stop_reason): Likewise.
* linux-nat.c (ptid_of_lwp): New function.
(lwp_is_stopped): Likewise.
(lwp_is_stopped_by_watchpoint): Likewise.
* x86-linux-nat.c (update_debug_registers_callback):
Use lwp_is_stopped.
(x86_linux_prepare_to_resume): Use ptid_of_lwp and
lwp_stop_reason.
gdb/gdbserver/ChangeLog:
* linux-low.c (ptid_of_lwp): New function.
(lwp_is_stopped): Likewise.
(lwp_stop_reason): Likewise.
* linux-x86-low.c (update_debug_registers_callback):
Use lwp_is_stopped.
(x86_linux_prepare_to_resume): Use ptid_of_lwp and
lwp_stop_reason.
commit b2f7c7e8b7046bf3dd99e3fb7329feb962a6bc7d
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:44 2015 +0000
Make linux_stop_lwp be a shared function
Both GDB and gdbserver had linux_stop_lwp functions with identical
declarations. This commit moves these to nat/linux-nat.h to allow
shared code to use the function.
gdb/ChangeLog:
* linux-nat.h (linux_stop_lwp): Move declaration to...
* nat/linux-nat.h (linux_stop_lwp): New declaration.
gdb/gdbserver/ChangeLog:
* linux-low.h (linux_stop_lwp): Remove declaration.
commit 6d4ee8c6ad7d5b04e524b2b48ffe5639028594a5
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:43 2015 +0000
Add iterate_over_lwps to gdbserver
This commit introduces a new function, iterate_over_lwps, that
shared Linux code can use to call a function for each LWP that
matches certain criteria. This function already existed in GDB
and was in use by GDB's various low-level Linux x86 debug register
setters. An equivalent was written for gdbserver and gdbserver's
low-level Linux x86 debug register setters were modified to use
it.
gdb/ChangeLog:
* linux-nat.h: Include nat/linux-nat.h.
(iterate_over_lwps): Move declaration to nat/linux-nat.h.
* nat/linux-nat.h (struct lwp_info): New forward declaration.
(iterate_over_lwps_ftype): New typedef.
(iterate_over_lwps): New declaration.
* linux-nat.h (iterate_over_lwps): Update comment. Use
iterate_over_lwps_ftype. Update callback return value check.
gdb/gdbserver/ChangeLog:
* linux-low.h: Include nat/linux-nat.h.
* linux-low.c (iterate_over_lwps_args): New structure.
(iterate_over_lwps_filter): New function.
(iterate_over_lwps): Likewise.
* linux-x86-low.c (update_debug_registers_callback):
Update signature to what iterate_over_lwps expects.
Remove PID check that iterate_over_lwps now performs.
(x86_dr_low_set_addr): Use iterate_over_lwps.
(x86_dr_low_set_control): Likewise.
commit 70a0bb6b590bcfe304fe082d421feb52e0a0d4dc
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:43 2015 +0000
Add x86_debug_reg_state to gdbserver
This commit introduces a new function, x86_debug_reg_state, that
shared x86 code can use to access the local mirror of a process's
debug registers. This function already existed in GDB and was
in use by GDB's x86_linux_prepare_to_resume. An equivalent was
written for gdbserver and gdbserver's x86_linux_prepare_to_resume
was modified to use it.
gdb/ChangeLog:
* x86-nat.h (x86_debug_reg_state): Move declaration to...
* nat/x86-dregs.h (x86_debug_reg_state): New declaration.
gdb/gdbserver/ChangeLog:
* linux-x86-low.c (x86_debug_reg_state): New function.
(x86_linux_prepare_to_resume): Use the above.
commit 7b6690874fa3a8afacd731b70a461d55a5b1311c
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 24 14:05:43 2015 +0000
Introduce current_lwp_ptid
This commit introduces a new function, current_lwp_ptid, that
shared Linux code can use to obtain the ptid of the current
lightweight process.
gdb/ChangeLog:
* nat/linux-nat.h (current_lwp_ptid): New declaration.
* linux-nat.c (current_lwp_ptid): New function.
* x86-linux-nat.c: Include nat/linux-nat.h.
(x86_linux_dr_get_addr): Use current_lwp_ptid.
(x86_linux_dr_get_control): Likewise.
(x86_linux_dr_get_status): Likewise.
(x86_linux_dr_set_control): Likewise.
(x86_linux_dr_set_addr): Likewise.
gdb/gdbserver/ChangeLog:
* linux-low.c (current_lwp_ptid): New function.
* linux-x86-low.c: Include nat/linux-nat.h.
(x86_dr_low_get_addr): Use current_lwp_ptid.
(x86_dr_low_get_control): Likewise.
(x86_dr_low_get_status): Likewise.
commit 15630549010233e9d0f0b1971d27e121cd74bdd0
Author: Antoine Tremblay <antoine.tremblay@ericsson.com>
Date: Thu Feb 19 15:23:34 2015 -0500
Fix breakpoint thread condition missing with mi and a pending breakpoint.
When setting a pending breakpoint with a thread condition while using
the mi interface, the thread condition would be lost by gdb when the breakpoint
was resolved.
This patch fixes this behavior by setting the thread condition properly in the
mi case.
Also, this patch modifies the mi-pending test case to test for this issue and
removes some unneeded code in the testcase and dependency on stdio.
gdb/Changelog:
PR breakpoints/16466
* breakpoint.c (create_breakpoint): Set thread on breakpoint struct.
gdb/testsuite/ChangeLog:
PR breakpoints/16466
* gdb.mi/Makefile.in: Add mi-pendshr2.sl to cleanup.
* gdb.mi/mi-pending.c (thread_func): New function.
(int main): Add threading support required.
* gdb.mi/mi-pending.exp: Add tests for this issue.
* gdb.mi/mi-pendshr.c (pendfunc1): Remove stdio dependency.
(pendfunc2): Remove stdio dependency.
* gdb.mi/mi-pendshr2.c: New file.
commit 5421cc6e55c7b3fba445c6085a05efb2a6f58505
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Fri Mar 20 19:08:00 2015 +0000
[AArch64] Refactor generation of 835769 workaround stubs.
This patch recognizes that we only need to perform one scan for the
835769 errata and that this scan can take place before we insert
branch stubs. The erratum scan code is relocated and adjusted to
create stub entries directly rather than populating an intermediate
representation. Since stub entries are created immediately we can
drop the adhoc stub size adjustment code and allow the generic stub
sizing code to deal with 835769 stub entries.
This patch restructures the code but does not change the workaround
used to deal with erratum 83679, the exact placement of workaround
stubs in the final image may change slightly after this patch due to
stubs being created in a different order.
commit e572930b96d8080ec80e65cfe85aaa8c4f7b2603
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Tue Mar 24 11:24:50 2015 +0000
[AArch64] Use _bfd_aarch64_add_stub_entry_in_group.
Adjust the 835769 workaround code to use
_bfd_aarch64_add_stub_entry_in_group rather than inspect the
underlying section_group structure directly.
commit 8131c12209700f6e8cf16b09b5196da78a8066a3
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 24 17:37:57 2015 +1030
Make powerpc bfd ld reloc overflow vs undefined symbols match gold
* elf64-ppc.c (ppc64_elf_relocate_section): Report overflow to
stubs, even those for undefined weak symbols. Otherwise, don't
report relocation overflow on branches to undefined strong
symbols. Fix memory leak.
* elf32-ppc.c (ppc_elf_relocate_section): Don't report relocation
overflow on branches to undefined strong symbols.
commit 05f53ed611f0f7442f2b3a12b2829a18db6c2b59
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 24 02:41:51 2015 -0400
sim: m68hc11/mips/mn10300/v850: add basic sim_pc_get
The previous profile change broke these sims that use sim-profile but
not sim-cpu (due to missing model support). Add simple funcs until we
can convert these over properly.
commit 282c9750306eb544f65cfed5665eee2b84c7c770
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 24 15:46:50 2015 +1030
PR18147, relocation overflow when --unresolved-symbols=ignore-all
If ignoring unresolved symbols, ignore reloc overflows too. If not
ignoring unresolved symbols we will report an error about the symbol
being undefined, making any report about reloc overflow superfluous.
PR18147
* powerpc.cc (Target_powerpc::Relocate::relocate): Don't report
relocation errors for branches to strong undefined symbols.
commit 823d25713dd1d6aedc605e3da2007b54da9dff2d
Author: Terry Guo <terry.guo@arm.com>
Date: Tue Mar 24 14:08:08 2015 +0800
Extend arm_feature_set struct to provide more bits
gas/ChangeLog:
2015-03-24 Terry Guo <terry.guo@arm.com>
* config/tc-arm.c (no_cpu_selected): Use new macro to compare
features.
(parse_psr): Likewise.
(do_t_mrs): Likewise.
(do_t_msr): Likewise.
(static const arm_feature_set arm_ext_*): Defined with new
macros.
(static const arm_feature_set arm_cext_*): Likewise.
(static const arm_feature_set fpu_fpa_ext_*): Likewise.
(static const arm_feature_set fpu_vfp_ext_*): Likewise.
(deprecated_coproc_regs): Likewise.
(UL_BARRIER): Likewise.
(barrier_opt_names): Likewise.
(arm_cpus): Likewise.
(arm_extensions): Likewise.
include/opcode/ChangeLog:
2015-03-24 Terry Guo <terry.guo@arm.com>
* arm.h (arm_feature_set): Extended to provide more available
* bits.
(ARM_ANY): Updated to follow above new definition.
(ARM_CPU_HAS_FEATURE): Likewise.
(ARM_CPU_IS_ANY): Likewise.
(ARM_MERGE_FEATURE_SETS): Likewise.
(ARM_CLEAR_FEATURE): Likewise.
(ARM_FEATURE): Likewise.
(ARM_FEATURE_COPY): New macro.
(ARM_FEATURE_EQUAL): Likewise.
(ARM_FEATURE_ZERO): Likewise.
(ARM_FEATURE_CORE_EQUAL): Likewise.
(ARM_FEATURE_LOW): Likewise.
(ARM_FEATURE_CORE_LOW): Likewise.
(ARM_FEATURE_CORE_COPROC): Likewise.
opcodes/ChangeLog:
2015-03-24 Terry Guo <terry.guo@arm.com>
* arm-dis.c (opcode32): Updated to use new arm feature struct.
(opcode16): Likewise.
(coprocessor_opcodes): Replace bit with feature struct.
(neon_opcodes): Likewise.
(arm_opcodes): Likewise.
(thumb_opcodes): Likewise.
(thumb32_opcodes): Likewise.
(print_insn_coprocessor): Likewise.
(print_insn_arm): Likewise.
(select_arm_features): Follow new feature struct.
commit 596f88276cffbca82e3858da40db7e7cc7aa476e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 00:24:05 2015 -0400
sim: profile: disconnect from watchpoint core
The profile code was using STATE_WATCHPOINTS to get access to the PC, but
we already have a standard method for getting the pc, so switch to that.
This assumes that sizeof_pc is the same size as sim_cia, but we already
assume this in places by way of sim_pc_{get,set}, and this is how it's
documented in the sim-base.h API.
commit 1bf57e9a2ee7f468c2b2c125bda35a5bcd5923ce
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 24 01:11:20 2015 -0400
sim: moxie: clean up build time warnings
commit cc8ab1ded5dbc6c2ddb1b8c62f0e0f8f486a5f17
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 23:59:45 2015 -0400
sim: moxie: convert to nrun.o
This port already used a lot of common/ files, so cutting it over to
nrun.o and using a few more common objects is pretty straight forward.
commit 523ba8f92e3ff4c49f65b582c89b4563b1b665ad
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 23:16:01 2015 -0400
sim: erc32/h8300/m68hc11: trim unused functions
These funcs are only used with the old run.o, and these sims use nrun.o,
so drop these stub funcs.
commit c4a6006b2e1b42124c90ea86597be3df0a177a4e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:59:47 2015 -0400
sim: moxie: switch to common sim-command.o
commit c0931f26e3923c75a3edc114175bb88dc11c5497
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:55:42 2015 -0400
sim: clean up SIM_HAVE_BIENDIAN
This define only applies when using the old run.o main. Document it as
such, and delete it from mips/sh64 since both use nrun.o now.
commit fe83b8a8d369e28dcfab42ee9f4b6d9cef3370c0
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:45:47 2015 -0400
sim: m32r: drop duplicate dv_sockser_install call
Since sim_module_install takes care of this for us, there's no need
to initialize the module twice.
commit 97f478c5a490b391f02df4e81b6bc7f99676c74c
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 16:09:12 2015 -0400
sim: Revert "Fix frv/iq2000/m32r/sh64 sim, default hardware to off."
This partially reverts commits:
105dd264de9a2fa7eee45eff897aa1d6171c1c4b
3df3af7c3f9095f9dc951fe680ce76f6e497914b
c4892a6b37647a0b33a2113b59762f678aabe4b2
9e3042ec073e05a0a5aa56398fd2662c5dcd5002
Now that dv-sockser is handled entirely by the common build logic, the
failure these targets were hitting isn't really possible anymore. Lets
reset their hardware status back to defaulting to on. Some of these
were set to "always" previously, but we don't support that anymore.
commit 30452bbe7e68581cdb0cd5004e6c4d4d5c9536e8
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 22:19:41 2015 -0400
sim: fix sim-hardware configure option
The current default handling for the --enable-sim-hardware option ends up
forcing the value to whatever is set as the first argument when calling
the macro (by virtue of how autoconf works). Relocate the setup code to
the 4th parameter of the AC_ARG_ENABLE macro to fix it.
This was caused by the simplification work in 1517bd274290e06af498ef7e49.
Reported-by: Hans-Peter Nilsson <hans-peter.nilsson@axis.com>
commit 64dd13dfc267b1d13f42519f220e89a4386591fd
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 22:45:13 2015 -0400
sim: drop support for requiring hw support
Since no sim is using the "always" option to SIM_AC_OPTION_HARDWARE, and
we don't want to require hw support to always be enabled, drop the option.
This leads to a slight simplification in the macro too as we can collapse
the sim_hw_p variable.
commit 7722e5b8022b5177a1788a48c6c1c6d7b11315ef
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 23:09:39 2015 -0400
sim: cris: delete unused CONFIG_DEVICES
Looks like unused copy & paste from other sim ports. Drop it.
commit 4af3e7e0d3f7f419b718a5417080c20e4bcaa8c7
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:41:36 2015 -0400
sim: mn10300: fix duplicated hardware option
This code was calling SIM_AC_OPTION_HARDWARE twice -- we only want and
need to do it once.
commit 66b0e85dcec9f7d268533208b5e4ab4630da1c44
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 22:57:36 2015 -0400
sim: iq2000/mn10300: drop dv-sockser.o references
The common code handles this for us now automatically.
commit c906b4b52b1617e5c65c9a6ff4de98d688d2a597
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 21:51:35 2015 -0400
sim: frv: delete UART device support
This looks like copy & paste logic from the m32r port (and history
suggests this as well). Since building with hw & device support
enabled leads to failures:
sim/frv/devices.c: In function 'device_io_read_buffer':
sim/frv/devices.c:39:15: error: 'UART_INCHAR_ADDR' undeclared (first use in this function)
Delete it entirely. We leave device support in place as it is used
to flush the scache.
commit 9993d012337e2a404e9192869dd68051fe37e234
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 24 00:00:08 2015 +0000
Automatic date update in version.in
commit 8a4506c0329233bd99ddc7436b6588b9c7caf13d
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Mar 23 15:42:23 2015 -0700
Fix indentation in ser_windows_setparity and hardwire_setparity.
gdb/ChangeLog:
* ser-mingw.c (ser_windows_setparity): Fix indentation.
* ser-unix.c (hardwire_setparity): Likewise.
commit 236af5e336970a6b58cd17e0a2981bd96f3d09a0
Author: Yury Grechishchev <yury.grechishchev@yotadevices.com>
Date: Tue Mar 24 00:15:42 2015 +0300
GDB: Add set/show serial parity command.
The "set serial parity" command allows the user to control which
parity to use when communicating over a serial connection, rather
than having the parity hardcoded to none.
gdb/ChangeLog:
* NEWS: Mention set/show serial parity command.
* monitor.c (monitor_open): Call serial_setparity.
* remote.c (remote_open_1): Likewise.
* ser-base.c (ser_base_serparity): New function.
* ser-base.h (ser_base_setparity): Add declaration.
* ser-go32.c (dos_ops): Set "setparity" field.
* ser-mingw.c (ser_windows_raw): Do not set state.fParity and
state.Parity.
(ser_windows_setparity): New function.
(hardwire_ops): Add ser_windows_setparity.
(tty_ops): Add NULL for setparity field.
(pipe_ops): Add ser_base_setparity.
(tcp_ops): Likewise.
* ser-pipe.c (pipe_ops): Likewise.
* ser-tcp.c (tcp_ops): Likewise.
* ser-unix.c (hardwire_setparity): Add declaration.
(hardwire_raw): Don't reset PARENB flag.
(hardwire_setparity): New function.
(hardwire_ops): Add hardwire_setparity.
* serial.c (serial_setparity): New function.
(serial_parity): New global.
(parity_none, parity_odd, parity_even, parity_enums, parity):
New static globals.
(set_parity): New function.
(_initialize_serial): Add set/show serial parity commands.
* serial.h (GDBPARITY_NONE): Define.
(GDBPARITY_ODD): Define.
(GDBPARITY_EVEN): Define.
(serial_setparity) Add declaration.
(struct serial_ops): Add setparity field.
* target.h (serial_parity): Add declaration.
gdb/doc/ChangeLog:
* gdb.texinfo (Remote configuration): Document "set/show
serial parity" command.
commit 32b40af94e919e235c21486110311647cbeecf2e
Author: Keith Seitz <keiths@redhat.com>
Date: Mon Mar 23 13:32:01 2015 -0700
Update comment of linespec_lexer_lex_keyword.
gdb/ChangeLog
* linespec.c (linespec_lexer_lex_keyword): Update comment.
commit 693dca065a58bf2dd39df9cff019b0c65e15e132
Author: Keith Seitz <keiths@redhat.com>
Date: Mon Mar 23 13:29:19 2015 -0700
Add missing changelog entries of last commit
commit 0578b14e990e76f3c2dd9010c4cb9201bc9fa4b4
Author: Keith Seitz <keiths@redhat.com>
Date: Mon Mar 23 12:59:18 2015 -0700
Expand keyword lexing intelligence in the linespec parser.
This patch changes the heuristic the linespec lexer uses to
detect a keyword in the input stream.
Currently, the heuristic is: a word is a keyword if it
1) points to a string that is a keyword
2) is followed by a non-identifier character
This is strictly more correct than using whitespace. For example,
it allows constructs such as "break foo if(i == 1)". However,
find_condition_and_thread in breakpoint.c does not support this expanded
usage. It requires whitespace to follow the keyword.
The proposed new heuristic is: a word is a keyword if it
1) points to a string that is a keyword
2) is followed by whitespace
3) is not followed by another keyword string followed by whitespace
This additional complexity allows constructs such as
"break thread thread 3" and "break thread 3". In the former case,
the actual location is a symbol named "thread" to be set on thread #3.
In the later case, the location is NULL, i.e., the default location,
to be set on thread #3.
In order to pass all the new tests added here, I've also had to add a
new feature to parse_breakpoint_sals, which expands recognition of the
default location to keywords other than "if", which is the only keyword
currently permitted with the default (NULL) location, but there is no
reason to exclude other keywords.
Consequently, it will be possible to use "break thread 1" or
"break task 1".
In addition to all of this, it is now possible to remove the keyword_ok
state from the linespec parser.
gdb/ChangeLog
* breakpoint.c (parse_breakpoint_sals): Use
linespec_lexer_lex_keyword to ascertain if the user specified
a NULL location.
* linespec.c [IF_KEYWORD_INDEX]: Define.
(linespec_lexer_lex_keyword): Export.
(struct ls_parser) <keyword_ok>: Remove.
A keyword is only a keyword if not followed by another keyword.
(linespec_lexer_lex_one): Remove keyword_ok handling.
Add comment explaining why the parsing stream is not advanced
when a keyword is seen.
(parse_linespec): Remove parser->keyword_ok.
* linespec.h (linespec_lexer_lex_keyword): Add declaration.
gdb/testsuite/ChangeLog
* gdb.linespec/keywords.c: New file.
* gdb.linespec/keywords.exp: New file.
commit 7e993ebf2343a5b39d6d1df29fdebc2818064ae5
Author: Keith Seitz <keiths@redhat.com>
Date: Fri Feb 27 09:55:07 2015 -0800
PR gdb/18021 - defend against "static virtual" methods
This bug appears to be caused by bad debuginfo. The method
causing the sefault in the reporter's test case is marked both static
and virtual.
This patch simply safegaurds against this case in dwarf2_add_member_fn,
where the code assumes that there is a `this' pointer when a virtual method
is seen (more specifically, when DW_AT_vtable_elem is seen).
It previously dereferenced the first formal parameter
(`this' pointer), which in this case doesn't exist. GDB consequently
segfaulted dereferencing a NULL pointer.
gdb/ChangeLog
PR gdb/18021
* dwarf2read.c (dwarf2_add_member_fn): Issue a complaint
if we find a static method with DW_AT_vtable_elem_location.
gdb/testsuite/ChangeLog
PR gdb/18021
* gdb.dwarf2/staticvirtual.exp: New test.
commit c53ed7cf577806c9d7d658dec5b70b2de00ec825
Author: Keith Seitz <keiths@redhat.com>
Date: Mon Mar 23 11:41:11 2015 -0700
[OBV] Fix build -- missing ';'
bfd/ChangeLog
* elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add
missing ';'.
commit 94a75bde2f02d90ef3a8ab4f1659117bfb3231c5
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Fri Mar 20 18:54:59 2015 +0000
Adding Changelog for previous commit.
commit 35fee8b77bc6f90d86b19fcacb677a2670d036e8
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Fri Mar 20 18:54:59 2015 +0000
Factor out _bfd_aarch64_erratum_835769_stub_name
commit 13f622ec5967f0a56d5876e7c7305c260cb4928f
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Fri Mar 20 20:20:35 2015 +0000
[AArch64] Factor out _bfd_aarch64_resize_stubs()
commit 665856756517ff4eb0c31c07f5c7e1666ccd4445
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Tue Mar 10 13:16:28 2015 +0000
[AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.
commit ef8575212574f5cca4426194d7428f900a573852
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Sat Feb 28 00:10:21 2015 +0000
[AArch64] Factor out common behaviour between elf_aarch64_create_or_find_stub_sec and elfNN_aarch64_add_stub
commit 2144188dcf696a50c6dbbacc1bf66645659e1fda
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Fri Mar 20 18:49:29 2015 +0000
[AArch64] Flip sense of erratum_835769_scan.
commit 4c77202d000bab10f821a88c6da9664337f01f10
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Sat Feb 28 00:06:26 2015 +0000
[AArch64] Drop unused argument to elf_aarch64_create_or_find_stub_sec
commit 9b9971aac7b89596695f15ed4763d9fd2b876ca8
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Sun Mar 22 07:59:48 2015 +0000
[AArch64] Remove unused variable.
commit 23956543da73914601924cb5e4db829082dfee83
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Mon Mar 23 15:10:56 2015 +0000
Fixup previous changelog entry.
commit e2cdef47b753f599cd1eaefdb4aea1d5d3b6a0e4
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Sun Mar 22 07:57:18 2015 +0000
Remove dead code.
commit 3d14faea41888606f41466655aa1f0c6f0acf7e0
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Mar 12 12:11:07 2015 +0000
[AArch64] Tidy up in aarch64_mem_op_p().
commit f872121a87fe4c16ec43623b75804b39612e62ef
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Mar 13 14:50:26 2015 +0000
[AArch64] Adjust layout of elfNN_aarch64_write_section.
commit 499c37b59a9a6aed42c103ea6df8d6936b74504f
Author: Marcus Shawcroft <marcus.shawcroft@gmail.com>
Date: Sun Mar 22 07:47:38 2015 +0000
[AArch64] Adjust layout emultempl/aarch64elf.em.
commit 67f95b96b4d5e8e19520d94bebae92db2f67af74
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Mon Mar 23 09:16:49 2015 -0400
Remove is_merge_section_for.
Now that Input_merge_map has an Output_section_data, we can use it in
implementing find_merge_section and replace the only use of is_merge_section_for
with it.
commit 99067e2973a6bb1d3a52caafb479ebdc1a420580
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 23 11:40:14 2015 +0000
Fix thinko with previous delta to RL78 sim, by adding code to define the G10 and G13 mode options.
* cpu.c (rl78_g10_mode): Declare.
(g13_multiply): Declare.
* cpu.h (rl78_g10_mode): Export.
(g13_multiply): Export.
commit 49cd1634b2a59879329c5a285192ac581e64904c
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:36:12 2015 -0400
sim: dv-sockser: move build to common dir
If dv-sockser is available, lets add it to the common SIM_HW_OBJS
variable so it is always included automatically. Now ports do not
have to shoe horn it in directly themselves. It does mean it will
be compiled for targets that don't explicitly use it, but that's
really what we want anyways.
commit 3649cb065699316bc8cd64b06f273c72f1806323
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:23:04 2015 -0400
sim: dv-sockser: add stub funcs when not available
This lets ports assume that the dv-sockser API is always available if
they want to. This way we don't have to do an abort at configure time
and it makes the resulting code a bit simpler.
commit 80fc77e6c14835462fca0b7adc15655ce2e4bb99
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 23 00:08:25 2015 -0400
sim: bfin/msp430: drop run-sim.h include
This header is used only with run.o, and both of these use nrun.o.
commit 8a863336bb768e5e26781e904a029eb1f65ed4ec
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 22 22:25:04 2015 -0400
sim: sh64: delete dv-sockser references
This sim doesn't actually use dv-sockser code anywhere, so drop references
to it in its build files.
commit 1a504d0763fdfd69389d9270a793c4c9da4924b0
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 23 00:00:08 2015 +0000
Automatic date update in version.in
commit 152f702439a34bf20b74f472695490edb42ad56f
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sun Mar 22 11:59:21 2015 -0700
Fix support for i386 TLS GD-to-IE optimization.
There are two cases to support, one with an SIB-form (6-byte) LEA,
the other with a 5-byte LEA and a NOP after the call __tls_get_addr.
Gold did not yet support the second case. This patch adds that
support.
gold/
PR gold/18106
* i386.cc (Target_i386::Relocate::tls_gd_to_ie): Fix support for
non-SIB form of lea, with nop after the call.
commit bccffdfdf268a84533131d6e4d6208f9873892ee
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat Mar 21 22:30:44 2015 -0700
Fix internal error with -z relro when .tbss is last relro section.
When calculating the padding necessary to align the end of the relro
segment to a page boundary, gold erroneously ignores the .tdata section
when checking to see if there are any relro sections (so if .tdata
is the only relro section, we fail to align the segment properly),
and erroneously pads the cumulative size of the segment based on
the alignment of .tbss. If there are no relro sections following .tbss,
it then fails to note the padding needed at the end of .tdata.
This patch fixes both problems. is_first_section_relro() will return
true when it sees a .tdata section, and we do not align the cumulative
size until after checking for the .tbss section.
gold/
PR gold/14217
* output.cc (Output_segment::is_first_section_relro): Don't ignore
.tdata section.
(Output_segment::set_section_addresses): Don't align size of relro
segment for .tbss.
commit 1c582fe71858efabae951c5f3ed7dccfb23fb86e
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat Mar 21 21:09:46 2015 -0700
Fix bug when optimizing string pools of aligned strings.
Tail optimization of string pools (enabled when linker is run with -O2
or greater) should not be done when the section alignment is greater
than the size of the characters in the strings; otherwise, unaligned
strings may result.
gold/
PR gold/18010
* stringpool.cc (Stringpool_template): Don't optimize if section
alignment is greater than sizeof(char).
commit 410da591ba7814912e11be826b20dfba9abed9f7
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat Mar 21 19:03:00 2015 -0700
PR gold/18048: Fix INCLUDE directive support for gold
This patch fixes INCLUDE directives in script files, so that when
an INCLUDE appears inside a sections block, section commands block,
or memory def block, the contents are parsed in the appropriate
context.
gold/
PR gold/18048
* script-c.h (script_include_directive): Add first_token parameter.
* script.cc (script_include_directive): Add first_token parameter, and
pass it to read_script_file.
* yyscript.y (PARSING_SECTIONS_BLOCK, PARSING_SECTION_CMDS)
(PARSING_MEMORY_DEF): New tokens.
(top): Add new productions for INCLUDE files.
(file_cmd): Replace file_or_sections_cmd with copy of its productions.
Pass PARSING_LINKER_SCRIPT to script_include_directive.
(section_block_cmd): Likewise; pass PARSING_SECTIONS_BLOCK.
(section_cmd): Pass PARSING_SECTION_CMDS.
(file_or_sections_cmd): Remove.
(memory_def): Pass PARSING_MEMORY_DEF.
* testsuite/Makefile.am (memory_test_2): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/memory_test_inc.t: New script file.
* testsuite/memory_test_inc_1.t.src: New script file.
* testsuite/memory_test_inc_2.t.src: New script file.
* testsuite/memory_test_inc_3.t.src: New script file.
commit 0d5bbdb0e1d193fa6f6804f2620fbdfc950c57a4
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat Mar 21 18:50:11 2015 -0700
Support compressed debug sections in dynamic object files.
This patch adds support for reading compressed debug info in
shared objects. It actually simplifies things, by moving the
support for compressed sections all the way up to the top-level
Object class, eliminating the need for several virtual methods.
gold/
* dwp.cc (Sized_relobj_dwo::do_section_contents): Delete.
(Sized_relobj_dwo::setup): Build compressed section map.
(Sized_relobj_dwo::do_decompressed_section_contents): Delete.
* dynobj.cc (Sized_dynobj::base_read_symbols): Build compressed
section map.
* object.cc (Sized_relobj_file::Sized_relobj_file): Remove
compressed_sections_ field.
(build_compressed_section_map): Take Object instead of
Sized_relobj_file parameter; add decompress_if_needed parameter.
(Sized_relobj_file::do_find_special_sections): Store compressed
section map in parent Object.
(Sized_relobj_file::do_decompressed_section_contents): Move
implementation to Object::decompressed_section_contents.
(Sized_relobj_file::do_discard_decompressed_sections): Move
implementation to Object::discard_decompressed_sections.
* object.h (build_compressed_section_map): Declare.
(Object::Object): Add compressed_sections_ field.
(Object::section_is_compressed): Move implementation here.
(Object::decompressed_section_contents): De-virtualize.
(Object::discard_decompressed_sections): De-virtualize.
(Object::do_section_is_compressed): Delete.
(Object::do_decompressed_section_contents): Delete.
(Object::set_compressed_sections): New method.
(Object::compressed_sections): New method.
(Object::compressed_sections_): New data member.
(Compressed_section_info, Compressed_section_map): Move to top of file.
(Sized_relobj_file::do_section_is_compressed): Delete.
(Sized_relobj_file::do_decompressed_section_contents): Delete.
(Sized_relobj_file::do_discard_decompressed_sections): Delete.
(Sized_relobj_file::compressed_sections_): Move to Object class.
commit bd9e0d4628f1265c42516f90c4f162cefa787294
Author: Cary Coutant <ccoutant@gmail.com>
Date: Sat Mar 21 17:47:49 2015 -0700
Fix internal error in do_relocate_sections when using plugins.
In a previous patch for PR 14675, to fix a problem with
the .eh_frame section when static linking, I added a step to
finalize the .eh_frame section at the end of the first link
pass. This patch caused PR 18152, where a plugin-claimed
object caused a non-claimed object's layout to be deferred
until replacement files were read. The call to
finalize_eh_frame_section() is happening before the layout of
the deferred objects, leading to the internal error in
do_relocate_sections.
This patch moves the finalization of the .eh_frame section to
after deferred objects have been processed.
gold/
PR gold/14675
PR gold/18152
* gold.cc (queue_middle_tasks): Finalize .eh_frame after laying out
deferred objects.
commit 71883406817425ea853f6a0dd7847f3e0a17dfc9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 22 00:00:08 2015 +0000
Automatic date update in version.in
commit b1a0f704950296b2363192ba91999eef3635700f
Author: Eli Zaretskii <eliz@gnu.org>
Date: Sat Mar 21 10:48:34 2015 +0200
Fix undefined behavior in TUI's TAB expansion
gdb/ChangeLog:
* tui/tui-io.c (tui_expand_tabs): Reinitialize the column counter
before the second loop, to avoid undefined behavior. Reported by
Anton Blanchard <anton@samba.org>.
commit 5da7e675cd2acbbe2d2a614b17eeb2d02b5d331f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 21 00:00:07 2015 +0000
Automatic date update in version.in
commit d9823cbb391e015f79687f4d17d7f9a32d27b5eb
Author: Keven Boell <keven.boell@linux.intel.com>
Date: Fri Mar 20 17:45:20 2015 -0400
[gdb/DWARF] Introduce linked list for dynamic attributes
This patch introduces a linked list for dynamic attributes of a type.
This is a pre-work for the Fortran dynamic array support. The Fortran
dynamic array support will add more dynamic attributes to a type.
As only a few types will have such dynamic attributes set, a linked
list is more efficient in terms of memory consumption than adding
multiple attributes to main_type.
gdb/ChangeLog:
* gdbtypes.c (resolve_dynamic_type_internal): Adapt
data_location usage to linked list.
(resolve_dynamic_type_internal): Adapt data_location to
linked list.
(get_dyn_prop, add_dyn_prop, copy_dynamic_prop_list): New function.
(copy_type_recursive, copy_type): Add copy of linked list.
* gdbtypes.h (enum dynamic_prop_node_kind): New enum.
(struct dynamic_prop_list): New struct.
* dwarf2read.c (set_die_type): Set data_location data.
commit 2e7bf1d7210ee79b93ba9ce4462e22e71097a102
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:23 2015 +0000
constify i386-sol2-tdep.c and machoread.c
/home/pedro/gdb/mygit/src/gdb/i386-sol2-tdep.c: In function âconst char* i386_sol2_static_transform_name(const char*)â:
/home/pedro/gdb/mygit/src/gdb/i386-sol2-tdep.c:93:29: error: invalid conversion from âconst char*â to âchar*â [-fpermissive]
p = strrchr (name, '.');
^
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* i386-sol2-tdep.c (i386_sol2_static_transform_name): Move "p" to
inner block and make it const.
* machoread.c (get_archive_prefix_len): Make "lparen" const.
commit 7a26bd4d83e5549137943de5f2c7b1ae90821093
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:21 2015 +0000
constify set_breakpoint_condition
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* breakpoint.c (set_breakpoint_condition): Make argument "exp" const.
* breakpoint.h (set_breakpoint_condition): Update declaration.
commit cd46431bbd2f1dd90fbedee9a3bdbff705238c1b
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:20 2015 +0000
constify tui/tui-io.c
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* tui/tui-io.c (tui_expand_tabs): Make "s1" const.
commit e28566f7d022e672bc7032d4951112359ad66d77
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:20 2015 +0000
constify xcoffread.c
/home/pedro/gdb/mygit/src/gdb/xcoffread.c: In function âvoid scan_xcoff_symtab(objfile*)â:
/home/pedro/gdb/mygit/src/gdb/xcoffread.c:2644:33: error: invalid conversion from âconst char*â to âchar*â [-fpermissive]
p = strchr (namestring, ':');
^
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* xcoffread.c (scan_xcoff_symtab): Make "p" and "q" const.
commit f6fc92f6711049c0d51cfe7027aa58255ae739b4
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:19 2015 +0000
constify remote-m32r-sdi.c
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* remote-m32r-sdi.c (m32r_open): Make "port_str" const.
commit c32ed3ef8084f209c8ce2e9e0fecc91560245373
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:14 2015 +0000
constify nto-tdep.c
/home/pedro/gdb/mygit/src/gdb/nto-tdep.c: In function âint nto_find_and_open_solib(char*, unsigned int, char**)â:
/home/pedro/gdb/mygit/src/gdb/nto-tdep.c:111:14: error: invalid conversion from âconst char*â to âchar*â [-fpermissive]
endian = gdbarch_byte_order (target_gdbarch ())
^
/home/pedro/gdb/mygit/src/gdb/nto-tdep.c: In function âvoid nto_init_solib_absolute_prefix()â:
/home/pedro/gdb/mygit/src/gdb/nto-tdep.c:170:14: error: invalid conversion from âconst char*â to âchar*â [-fpermissive]
endian = gdbarch_byte_order (target_gdbarch ())
^
gdb
2015-03-20 Pedro Alves <palves@redhat.com>
* nto-tdep.c (nto_find_and_open_solib): Make "endian" const.
(nto_init_solib_absolute_prefix): Likewise.
commit eef49a3d1a7e2ff70e142c7c7fd748f4625c05c9
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:09 2015 +0000
constify gdbserver/tracepoint.c
gdb/gdbserver/tracepoint.c:3647:7: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
gdb/gdbserver/tracepoint.c:3652:7: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
gdb/gdbserver/tracepoint.c:3657:7: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
gdb/gdbserver
2015-03-20 Pedro Alves <palves@redhat.com>
* tracepoint.c (cmd_qtstatus): Make "str" const.
commit b2333d22e0ead2d6f354c69760b6c6e0db161f02
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:08 2015 +0000
constify gdbserver/server.c
gdb/gdbserver/
2015-03-20 Pedro Alves <palves@redhat.com>
* server.c (handle_general_set): Make "req_str" const.
commit 53e780858180511b194438c87d2f3a1c68804f06
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:58:17 2015 +0000
constify sparc-sol2-tdep.c and spu-tdep.c
/home/pedro/gdb/mygit/src/gdb/sparc-sol2-tdep.c: In function âconst char* sparc_sol2_static_transform_name(const char*)â:
/home/pedro/gdb/mygit/src/gdb/sparc-sol2-tdep.c:247:35: error: invalid conversion from âconst char*â to âchar*â [-fpermissive]
char *p = strrchr (name, '.');
^
gdb:
2015-03-20 Pedro Alves <palves@redhat.com>
* sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Make "p" const.
* spu-tdep.c (spu_gdbarch_init): Make "name" const.
commit bc23328cc108d8805f1d234b86e5a6b76d4a80d5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Mar 20 17:15:15 2015 +0100
Remove gdb.hp
gdb/ChangeLog
2015-03-20 Jan Kratochvil <jan.kratochvil@redhat.com>
* config/djgpp/README: Remove gdb.hp.
gdb/testsuite/ChangeLog
2015-03-20 Jan Kratochvil <jan.kratochvil@redhat.com>
* Makefile.in (ALL_SUBDIRS): Remove gdb.hp.
* README: Remove HP-UX and gdb.hp.
(configuration):
* configure: Regenerate.
* configure.ac (AC_OUTPUT): Remove gdb.hp/Makefile,
gdb.hp/gdb.objdbg/Makefile, gdb.hp/gdb.base-hp/Makefile,
gdb.hp/gdb.aCC/Makefile, gdb.hp/gdb.compat/Makefile,
gdb.hp/gdb.defects/Makefile.
* gdb.hp/Makefile.in: File deleted.
* gdb.hp/gdb.aCC/Makefile.in: File deleted.
* gdb.hp/gdb.aCC/optimize.c: File deleted.
* gdb.hp/gdb.aCC/optimize.exp: File deleted.
* gdb.hp/gdb.aCC/run.c: File deleted.
* gdb.hp/gdb.aCC/watch-cmd.exp: File deleted.
* gdb.hp/gdb.base-hp/Makefile.in: File deleted.
* gdb.hp/gdb.base-hp/callfwmall.c: File deleted.
* gdb.hp/gdb.base-hp/callfwmall.exp: File deleted.
* gdb.hp/gdb.base-hp/dollar.c: File deleted.
* gdb.hp/gdb.base-hp/dollar.exp: File deleted.
* gdb.hp/gdb.base-hp/genso-thresh.c: File deleted.
* gdb.hp/gdb.base-hp/hwwatchbus.c: File deleted.
* gdb.hp/gdb.base-hp/hwwatchbus.exp: File deleted.
* gdb.hp/gdb.base-hp/pxdb.c: File deleted.
* gdb.hp/gdb.base-hp/pxdb.exp: File deleted.
* gdb.hp/gdb.base-hp/reg-pa64.exp: File deleted.
* gdb.hp/gdb.base-hp/reg-pa64.s: File deleted.
* gdb.hp/gdb.base-hp/reg.exp: File deleted.
* gdb.hp/gdb.base-hp/reg.s: File deleted.
* gdb.hp/gdb.base-hp/sized-enum.c: File deleted.
* gdb.hp/gdb.base-hp/sized-enum.exp: File deleted.
* gdb.hp/gdb.base-hp/so-thresh.exp: File deleted.
* gdb.hp/gdb.base-hp/so-thresh.mk: File deleted.
* gdb.hp/gdb.base-hp/so-thresh.sh: File deleted.
* gdb.hp/gdb.compat/Makefile.in: File deleted.
* gdb.hp/gdb.compat/average.c: File deleted.
* gdb.hp/gdb.compat/sum.c: File deleted.
* gdb.hp/gdb.compat/xdb.c: File deleted.
* gdb.hp/gdb.compat/xdb0.c: File deleted.
* gdb.hp/gdb.compat/xdb0.h: File deleted.
* gdb.hp/gdb.compat/xdb1.c: File deleted.
* gdb.hp/gdb.compat/xdb1.exp: File deleted.
* gdb.hp/gdb.compat/xdb2.exp: File deleted.
* gdb.hp/gdb.compat/xdb3.exp: File deleted.
* gdb.hp/gdb.defects/Makefile.in: File deleted.
* gdb.hp/gdb.defects/bs14602.c: File deleted.
* gdb.hp/gdb.defects/bs14602.exp: File deleted.
* gdb.hp/gdb.defects/solib-d.c: File deleted.
* gdb.hp/gdb.defects/solib-d.exp: File deleted.
* gdb.hp/gdb.defects/solib-d1.c: File deleted.
* gdb.hp/gdb.defects/solib-d2.c: File deleted.
* gdb.hp/gdb.objdbg/Makefile.in: File deleted.
* gdb.hp/gdb.objdbg/objdbg01.exp: File deleted.
* gdb.hp/gdb.objdbg/objdbg01/x1.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg01/x2.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg01/x3.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg01/x3.h: File deleted.
* gdb.hp/gdb.objdbg/objdbg02.exp: File deleted.
* gdb.hp/gdb.objdbg/objdbg02/x1.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg02/x2.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg02/x3.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg03.exp: File deleted.
* gdb.hp/gdb.objdbg/objdbg03/x1.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg03/x2.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg03/x3.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg04.exp: File deleted.
* gdb.hp/gdb.objdbg/objdbg04/x.h: File deleted.
* gdb.hp/gdb.objdbg/objdbg04/x1.cc: File deleted.
* gdb.hp/gdb.objdbg/objdbg04/x2.cc: File deleted.
* gdb.hp/gdb.objdbg/tools/symaddr: File deleted.
* gdb.hp/gdb.objdbg/tools/symaddr.pa64: File deleted.
* gdb.hp/gdb.objdbg/tools/test-objdbg.cc: File deleted.
* gdb.hp/tools/odump: File deleted.
commit 80b8656cbaaf09b685c2f3c9dd96f61274ed7fb7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 20 04:39:04 2015 -0700
Limit multi-byte nop instructions to 10 bytes
There is no performance advantage to use multi-byte nop instructions
greater than 10 bytes. This patch limits multi-byte nop instructions
to 10 bytes. Since there is only one way to encode multi-byte nop
instructions now, it also removed redundant nop tests.
gas/
* config/tc-i386.c (i386_align_code): Limit multi-byte nop
instructions to 10 bytes.
gas/testsuite/
* gas/i386/i386.exp: Don't run nops-1-bdver1, nops-1-bdver2,
nops-1-bdver3, nops-1-bdver4, nops-1-znver1, nops-1-btver1
nops-1-btver2, x86-64-nops-1-nocona, x86-64-nops-1-bdver1,
x86-64-nops-1-bdver2, x86-64-nops-1-bdver3, x86-64-nops-1-bdver4,
x86-64-nops-1-znver1, x86-64-nops-1-btver1 nor
x86-64-nops-1-btver2.
* gas/i386/nops-1-core2.d: Updated.
* gas/i386/nops-1-k8.d: Likewise.
* gas/i386/nops-4a-i686.d: Likewise.
* gas/i386/nops-5-i686.d: Likewise.
* gas/i386/nops-5.d: Likewise.
* gas/i386/nops-6.d: Likewise.
* gas/i386/x86-64-nops-1-core2.d: Likewise.
* gas/i386/x86-64-nops-1-g64.d: Likewise.
* gas/i386/x86-64-nops-1-k8.d: Likewise.
* gas/i386/x86-64-nops-1.d: Likewise.
* gas/i386/x86-64-nops-2.d: Likewise.
* gas/i386/x86-64-nops-3.d: Likewise.
* gas/i386/x86-64-nops-4-core2.d: Likewise.
* gas/i386/x86-64-nops-4-k8.d: Likewise.
* gas/i386/x86-64-nops-4.d: Likewise.
* gas/i386/x86-64-nops-5-k8.d: Likewise.
* gas/i386/x86-64-nops-5.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1.d: Likewise.
* gas/i386/ilp32/x86-64-nops-2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-3.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops-4.d: Likewise.
* gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
* gas/i386/ilp32/x86-64-nops-5.d: Likewise.
* gas/i386/nops-1-bdver1.d: Removed.
* gas/i386/nops-1-bdver2.d: Likewise.
* gas/i386/nops-1-bdver3.d: Likewise.
* gas/i386/nops-1-bdver4.d: Likewise.
* gas/i386/nops-1-btver1.d: Likewise.
* gas/i386/nops-1-btver2.d: Likewise.
* gas/i386/nops-1-znver1.d: Likewise.
* gas/i386/x86-64-nops-1-bdver1.d: Likewise.
* gas/i386/x86-64-nops-1-bdver2.d: Likewise.
* gas/i386/x86-64-nops-1-bdver3.d: Likewise.
* gas/i386/x86-64-nops-1-bdver4.d: Likewise.
* gas/i386/x86-64-nops-1-btver1.d: Likewise.
* gas/i386/x86-64-nops-1-btver2.d: Likewise.
* gas/i386/x86-64-nops-1-nocona.d: Likewise.
* gas/i386/x86-64-nops-1-znver1.d: Likewise.
* gas/i386/ilp32/x86-64-nops-1-nocona.d: Likewise.
commit 4819f490bd2bc88bccf636755abf3d50b7f3850f
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 20 10:29:46 2015 +0000
Fixes implementation of hardware multiply/divide peripheral in RL78 G13 cores.
* load.c (rl78_load): If the G10, G13 or G14 flag bits are set in
the ELF header use them to select the proper emulation mode.
* mem.c (mem_put_byte): Use mem_put_hi to store a value into the
MDB register.
(mem_get_byte): Use mem_get_hi to extract a value from the MDB
register.
commit e8ffc436d9d849eed52af64568d9f37aeaddbd9e
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Mar 20 10:15:21 2015 +0000
Don't call set_gdbarch_cannot_step_breakpoint in aarch64_gdbarch_init
Hi,
I am looking at the following fails in aarch64-linux,
stepi^M
47 NOP; /* after permanent bp */^M
(gdb) FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: stepi signal with handler: single-step to handler
the test expects GDB single step into signal handler, but GDB doesn't.
The code in infrun.c:resume
/* Most targets can step a breakpoint instruction, thus
executing it normally. But if this one cannot, just
continue and we will hit it anyway. */
if (gdbarch_cannot_step_breakpoint (gdbarch))
step = 0;
change the intended action from "step" to "continue". The gdbarch method
cannot_step_breakpoint isn't documented well, and I don't get much clue
after explore the history. However, from the comments above,
aarch64-linux can step a breakpoint instruction, so don't need to call
set_gdbarch_cannot_step_breakpoint.
gdb:
2015-03-20 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c (aarch64_gdbarch_init): Don't call
set_gdbarch_cannot_step_breakpoint.
commit d4828b9e888339533bc77a8ab7b258c4a5f6f200
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 20 00:00:07 2015 +0000
Automatic date update in version.in
commit 23f238d3456531db33456918f004dcc5ce151363
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 19 15:12:33 2015 +0000
Fix race exposed by gdb.threads/killed.exp
On GNU/Linux, this test sometimes FAILs like this:
(gdb) run
Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.threads/killed
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ptrace: No such process.
(gdb)
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
FAIL: gdb.threads/killed.exp: run program to completion (timeout)
Note the suspicious "No such process" line (that's errno==ESRCH).
Adding debug output we see:
linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 18465, ERRNO-OK
LLW: waitpid 18465 received Stopped (signal) (stopped)
LNW: waitpid(-1, ...) returned 18461, ERRNO-OK
LLW: waitpid 18461 received Trace/breakpoint trap (stopped)
LLW: Handling extended status 0x03057f
LHEW: Got clone event from LWP 18461, new child is LWP 18465
LNW: waitpid(-1, ...) returned 0, ERRNO-OK
RSRL: resuming stopped-resumed LWP LWP 18465 at 0x3b36af4b51: step=0
RSRL: resuming stopped-resumed LWP LWP 18461 at 0x3b36af4b51: step=0
sigchld
ptrace: No such process.
(gdb) linux_nat_wait: [process -1], [TARGET_WNOHANG]
LLW: enter
LNW: waitpid(-1, ...) returned 18465, ERRNO-OK
LLW: waitpid 18465 received Killed (terminated)
LLW: LWP 18465 exited.
LNW: waitpid(-1, ...) returned 18461, No child processes
LLW: waitpid 18461 received Killed (terminated)
Process 18461 exited
LNW: waitpid(-1, ...) returned -1, No child processes
LLW: exit
sigchld
infrun: target_wait (-1, status) =
infrun: 18461 [process 18461],
infrun: status->kind = signalled, signal = GDB_SIGNAL_KILL
infrun: TARGET_WAITKIND_SIGNALLED
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
infrun: stop_waiting
FAIL: gdb.threads/killed.exp: run program to completion (timeout)
The issue is that here:
RSRL: resuming stopped-resumed LWP LWP 18465 at 0x3b36af4b51: step=0
RSRL: resuming stopped-resumed LWP LWP 18461 at 0x3b36af4b51: step=0
The first line shows we had just resumed LWP 18465, which does:
void *
child_func (void *dummy)
{
kill (pid, SIGKILL);
exit (1);
}
So if the kernel manages to schedule that thread fast enough, the
process may be killed before GDB has a chance to resume LWP 18461.
GDBserver has code at the tail end of linux_resume_one_lwp to cope
with this:
~~~
ptrace (step ? PTRACE_SINGLESTEP : PTRACE_CONT, lwpid_of (thread),
(PTRACE_TYPE_ARG3) 0,
/* Coerce to a uintptr_t first to avoid potential gcc warning
of coercing an 8 byte integer to a 4 byte pointer. */
(PTRACE_TYPE_ARG4) (uintptr_t) signal);
current_thread = saved_thread;
if (errno)
{
/* ESRCH from ptrace either means that the thread was already
running (an error) or that it is gone (a race condition). If
it's gone, we will get a notification the next time we wait,
so we can ignore the error. We could differentiate these
two, but it's tricky without waiting; the thread still exists
as a zombie, so sending it signal 0 would succeed. So just
ignore ESRCH. */
if (errno == ESRCH)
return;
perror_with_name ("ptrace");
}
~~~
However, that's not a complete fix, because between starting to handle
the resume request and getting that PTRACE_CONTINUE, we run other
ptrace calls that can also fail with ESRCH, and that end up throwing
an error (with perror_with_name).
In the case above, I indeed sometimes see resume_stopped_resumed_lwps
fail in the registers read:
resume_stopped_resumed_lwps (struct lwp_info *lp, void *data)
{
...
CORE_ADDR pc = regcache_read_pc (regcache);
Or e.g., in 32-bit mode, i386_linux_resume has several calls that can
throw too.
Whether to ignore ptrace errors or not depends on context that is only
available somewhere up the call chain. So the fix is to let ptrace
errors throw as they do today, and wrap the resume request in a
TRY/CATCH that swallows it iff the lwp that we were trying to resume
is no longer ptrace-stopped.
gdb/gdbserver/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-low.c (linux_resume_one_lwp): Rename to ...
(linux_resume_one_lwp_throw): ... this. Don't handle ESRCH here,
instead call perror_with_name.
(check_ptrace_stopped_lwp_gone): New function.
(linux_resume_one_lwp): Reimplement as wrapper around
linux_resume_one_lwp_throw that swallows errors if the LWP is
gone.
gdb/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-nat.c (linux_resume_one_lwp): Rename to ...
(linux_resume_one_lwp_throw): ... this. Don't handle ESRCH here,
instead call perror_with_name.
(check_ptrace_stopped_lwp_gone): New function.
(linux_resume_one_lwp): Reimplement as wrapper around
linux_resume_one_lwp_throw that swallows errors if the LWP is
gone.
(resume_stopped_resumed_lwps): Try register reads in TRY/CATCH and
swallows errors if the LWP is gone. Use
linux_resume_one_lwp_throw instead of linux_resume_one_lwp.
commit 7d1551f618db01514123433d358ae732d47ad629
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 19 17:00:55 2015 +0000
Remove spurious gdb/ChangeLog entry
My last change added the same entry to both gdbserver's and gdb's
ChangeLogs by mistake... Should have gone to gdbserver's only.
commit 91baf43fa70827325272667c8e7a86c553c767dc
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 19 16:51:09 2015 +0000
gdbserver/Linux: unbreak non-stop
The previous change added an assertion that is catching yet another
bug in count_events_callback/select_event_lwp_callback:
(gdb)
PASS: gdb.mi/mi-nonstop.exp: interrupted
mi_expect_interrupt: expecting: \*stopped,(reason="signal-received",signal-name="0",signal-meaning="Signal 0"|reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt")[^
]*
/home/pedro/gdb/mygit/src/gdb/gdbserver/linux-low.c:2329: A problem internal to GDBserver has been detected.
select_event_lwp: Assertion `num_events > 0' failed.
=thread-group-exited,id="i1"
Certainly select_event_lwp_callback should always at least find one
event, as it's only called because an event triggered (though we may
have more than one: the point of the function is randomly picking
one).
An LWP that GDB previously asked to continue/step (thus is resumed)
and gets a vCont;t request ends up with last_resume_kind ==
resume_stop. These functions in gdbserver used to filter out events
that weren't going to be reported to GDB; I think the last_resume_kind
kind check used to make sense at that point, but it no longer does.
gdb/gdbserver/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-low.c (count_events_callback, select_event_lwp_callback):
No longer check whether the thread has resume_stop as last resume
kind.
commit 1740ba0cec44bdfe9cba586892a5953a4c602228
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 19 15:37:43 2015 +0000
Add support for G13 and G14 flag bits in RL78 ELF binaries.
inc * rl78.h (E_FLAG_RL78_G10): Redefine.
(E_FLAG_RL78_CPU_MASK, E_FLAG_RL78_ANY_CPU, E_FLAG_RL78_G13
E_FLAG_RL78_G14): New flags.
bin * readelf.c (get_machine_flags): Decode RL78's G13 and G14 flags.
gas * config/tc-rl78.c (enum options): Add G13 and G14.
(md_longopts): Add -mg13 and -mg14.
(md_parse_option): Handle -mg13 and -mg14.
(md_show_usage): List -mg13 and -mg14.
* doc/c-rl78.texi: Add description of -mg13 and -mg14 options.
bfd * elf32-rl78.c (rl78_cpu_name): New function. Prints the name of
the RL78 core based upon the flags.
(rl78_elf_merge_private_bfd_data): Handle merging of G13 and G14
flags.
(rl78_elf_print_private_bfd_data): Use rl78_cpu_name.
(elf32_rl78_machine): Always return bfd_mach_rl78.
commit 8bf3b159e55b42bb084f9da1af400a285025618f
Author: Pedro Alves <palves@redhat.com>
Date: Sun Mar 15 19:35:26 2015 +0000
gdbserver/Linux: unbreak thread event randomization
Wanting to make sure the new continue-pending-status.exp test tests
both cases of threads 2 and 3 reporting an event, I added counters to
the test, to make it FAIL if events for both threads aren't seen.
Assuming a well behaved backend, and given a reasonable number of
iterations, it should PASS.
However, running that against GNU/Linux gdbserver, I found that
surprisingly, that FAILed. GDBserver always reported the breakpoint
hit for the same thread.
Turns out that I broke gdbserver's thread event randomization
recently, with git commit 582511be ([gdbserver] linux-low.c: better
starvation avoidance, handle non-stop mode too). In that commit I
missed that the thread structure also has a status_pending_p field...
The end result was that count_events_callback always returns 0, and
then if no thread is stepping, select_event_lwp always returns the
event thread. IOW, no randomization is happening at all. Quite
curious how all the other changes in that patch were sufficient to fix
non-stop-fair-events.exp anyway even with that broken.
Tested on x86_64 Fedora 20, native and gdbserver.
gdb/gdbserver/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-low.c (count_events_callback, select_event_lwp_callback):
Use the lwp's status_pending_p field, not the thread's.
gdb/testsuite/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* gdb.threads/continue-pending-status.exp (saw_thread_2)
(saw_thread_3): New globals.
(top level): Increment them when an event for the corresponding
thread is seen.
(no thread starvation): New test.
commit eb54c8bf087f434b0cb91b35e7cde68a69ac9193
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 19 12:20:25 2015 +0000
native/Linux: internal error if resume is short-circuited
If the linux_nat_resume's short-circuits the resume because the
current thread has a pending status, and, a thread with a higher
number was previously stopped for a breakpoint, GDB internal errors,
like:
/home/pedro/gdb/mygit/src/gdb/linux-nat.c:2590: internal-error: status_callback: Assertion `lp->status != 0' failed.
Fix this by make status_callback bail out earlier. GDBserver is
already doing the same.
New test added that exercises this.
gdb/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-nat.c (status_callback): Return early if the LWP has no
status pending.
gdb/testsuite/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* gdb.threads/continue-pending-status.c: New file.
* gdb.threads/continue-pending-status.exp: New file.
commit b90fc18880972f0c2ed280df20604d89f1d4ec38
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 19 12:24:06 2015 +0000
select_event_lwp_callback: update comments
This function (in both GDB and GDBserver) used to consider only
SIGTRAP/breakpoint events, but that's no longer the case nowadays.
gdb/gdbserver/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-low.c (select_event_lwp_callback): Update comments to
no longer mention SIGTRAP.
gdb/ChangeLog:
2015-03-19 Pedro Alves <palves@redhat.com>
* linux-nat.c (select_event_lwp_callback): Update comment to no
longer mention SIGTRAP.
commit e2575e05e73c3b2f08a8b5f579a504ac6a45ad60
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 19 12:14:56 2015 +0000
Fix building and testing dwarf debug section compression feature when zlib is not available.
PR gas/18087
gas/test * gas/i386/dw2-compress-1.d: Allow the test to pass regardless of
whether the .debug_info section was compressed on not.
bfd * compress.c (bfd_compress_section_contents): Do not define this
function if it is not used.
commit 590d1e9a30f9180af725673fa06ea74fe822d21b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 19 00:00:07 2015 +0000
Automatic date update in version.in
commit 32d2e5d6404d8ebbff89408767084d7064178a4c
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 18 19:28:08 2015 +0000
Tighten gdb.base/disp-step-syscall.exp
This fixes several problems with this test.
E.g,. with --target_board=native-extended-gdbserver on x86_64 Fedora
20, I get:
Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/disp-step-syscall.exp ...
FAIL: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc" (timeout)
FAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork final pc
FAIL: gdb.base/disp-step-syscall.exp: vfork: delete break vfork insn
FAIL: gdb.base/disp-step-syscall.exp: vfork: continue to marker (vfork) (the program is no longer running)
And with --target=native-gdbserver, I get:
Running /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/disp-step-syscall.exp ...
KPASS: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS server/13796)
FAIL: gdb.base/disp-step-syscall.exp: vfork: get hexadecimal valueof "$pc" (timeout)
FAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork final pc
FAIL: gdb.base/disp-step-syscall.exp: vfork: delete break vfork insn
FAIL: gdb.base/disp-step-syscall.exp: vfork: continue to marker (vfork) (the program is no longer running)
First, the lack of fork support on remote targets is supposed to be
kfailed, so the KPASS is obviously bogus. The extended-remote board
should have KFAILed too.
The problem is that the test is using "is_remote" instead of
gdb_is_target_remote.
And then, I get:
(gdb) PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
stepi
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) PASS: gdb.base/disp-step-syscall.exp: vfork: single step over vfork
Obviously, that should be a FAIL. The problem is that the test only
expects SIGILL, not SIGSEGV. It also doesn't bail correctly if an
internal error or some other pattern caught by gdb_test_multiple
matches. The test doesn't really need to match specific exits/crashes
patterns, if the PASS regex is improved, like in ...
... this and the other "stepi" tests are a bit too lax, passing on
".*". This tightens those up to expect "x/i" and the "=>" current PC
indicator, like in:
1: x/i $pc
=> 0x3b36abc9e2 <vfork+34>: syscall
On x86_64 Fedora 20, I now get a quick KFAIL instead of timeouts with
both the native-extended-gdbserver and native-gdbserver boards:
PASS: gdb.base/disp-step-syscall.exp: vfork: delete break vfork
PASS: gdb.base/disp-step-syscall.exp: vfork: continue to syscall insn vfork
PASS: gdb.base/disp-step-syscall.exp: vfork: set displaced-stepping on
KFAIL: gdb.base/disp-step-syscall.exp: vfork: single step over vfork (PRMS: server/13796)
and a full pass with native testing.
gdb/testsuite/
2015-03-18 Pedro Alves <palves@redhat.com>
* gdb.base/disp-step-syscall.exp (disp_step_cross_syscall):
Use gdb_is_target_remote instead of is_remote. Use
gdb_test_multiple instead of gdb_expect. Exit early if
gdb_test_multiple hits its internal matches. Tighten stepi tests
expected output. Fail on exit with any signal, instead of just
SIGILL.
commit 0b0732e13a9a40c9e894cc6aed1e899cff81251e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Mar 18 11:20:06 2015 -0700
Make bfd_compress_section_contents static
* compress.c (bfd_compress_section_contents): Make it static.
* bfd/bfd-in2.h: Regenerated.
commit d94077e27d279c4ff0ee26bad786f89c350e2aea
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Mar 18 09:20:38 2015 -0700
Add a testcase for PR gas/18087
PR gas/18087
* gas/i386/dw2-compress-1.d: Revert the last change.
* gas/i386/dw2-compress-3.d: New.
* gas/i386/dw2-compress-3.s: Likewise.
* gas/i386/i386.exp: Run dw2-compress-3 for ELF targets.
commit 27aaeda0cdf9f69625b96e3abdb25c8fdbbb3435
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Mar 18 16:19:59 2015 +0000
Fixes a problem generating relocs for import libraries created by Microsoft tools for the x85_64 architecture.
PR ld/16598
* peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs
suitable for the AMD64.
commit 273a49858fa9c8d73de87167618ef99d70f9731a
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Mar 18 15:47:13 2015 +0000
Fix debug section compression so that it is only performed if it would make the section smaller.
PR binutils/18087
gas * doc/as.texinfo: Note that when gas compresses debug sections the
compression is only performed if it makes the section smaller.
* write.c (compress_debug): Do not compress a debug section if
doing so would make it larger.
tests * gas/i386/dw2-compress-1.d: Do not expect the .debug_abbrev or
.debug_info sections to be compressed.
binu * doc/binutils.texi: Note that when objcopy compresses debug
sections the compression is only performed if it makes the section
smaller.
bfd * coffgen.c (make_a_section_from_file): Only prepend a z to a
debug section's name if the section was actually compressed.
* elf.c (_bfd_elf_make_section_from_shdr): Likewise.
* compress.c (bfd_init_section_compress_status): Do not compress
the section if doing so would make it bigger. In such cases leave
the section alone and return COMPRESS_SECTION_NONE.
commit 670f82d437c21ec9c8f59a365336163e0381149d
Author: Tristan Gingold <gingold@adacore.com>
Date: Thu Mar 5 14:36:32 2015 +0100
Fix amd64 windows unwinding issues within MS dlls.
Unwind info in system dlls uses almost all possible codes, contrary to unwind
info generated by gcc. A few issues have been discovered: incorrect handling
of SAVE_NONVOL opcodes and incorrect in prologue range checks. Furthermore I
added comments not to forget what has been investigated.
gdb/ChangeLog:
* amd64-windows-tdep.c (amd64_windows_find_unwind_info): Move
redirection code to ...
(amd64_windows_frame_decode_insns): ... Here. Fix in prologue
checks. Fix SAVE_NONVOL operations. Add debug code and comments.
commit 464b0089f0068838a014a8fa27ea2eef536ebada
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Mar 18 11:19:02 2015 +0000
Reimplement "vFile:fstat" without qSupported
This commit makes support for the "vFile:fstat" packet be detected
by probing rather than using qSupported, for consistency with the
other vFile: packets.
gdb/ChangeLog:
(remote_protocol_features): Remove the "vFile:fstat" feature.
(remote_hostio_fstat): Probe for "vFile:fstat" support.
gdb/doc/ChangeLog:
* gdb.texinfo (General Query Packets): Remove documentation
for now-removed vFile:fstat qSupported features.
gdb/gdbserver/ChangeLog:
* server.c (handle_query): Do not report vFile:fstat as supported.
commit f68f11b76de09dcb0d399814127fbf5227fe8245
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Mar 18 10:47:45 2015 +0000
Support catch syscall on aarch64 linux
Hi,
This patch is to support catch syscall on aarch64 linux. We
implement gdbarch method get_syscall_number for aarch64-linux,
and add aarch64-linux.xml file, which looks straightforward, however
the changes to test case doesn't.
First of all, we enable catch-syscall.exp on aarch64-linux target,
but skip the multi_arch testing on current stage. I plan to touch
multi arch debugging on aarch64-linux later.
Then, when I run catch-syscall.exp on aarch64-linux, gcc errors that
SYS_pipe isn't defined. We find that aarch64 kernel only has pipe2
syscall and libc already convert pipe to pipe2. As a result, I change
catch-syscall.c to use SYS_pipe if it is defined, otherwise use
SYS_pipe2 instead. The vector all_syscalls in catch-syscall.exp can't
be pre-determined, so I add a new proc setup_all_syscalls to fill it,
according to the availability of SYS_pipe.
Regression tested on {x86_64, aarch64}-linux x {native, gdbserver}.
gdb:
2015-03-18 Yao Qi <yao.qi@linaro.org>
PR tdep/18107
* aarch64-linux-tdep.c: Include xml-syscall.h
(aarch64_linux_get_syscall_number): New function.
(aarch64_linux_init_abi): Call
set_gdbarch_get_syscall_number.
* syscalls/aarch64-linux.xml: New file.
gdb/testsuite:
2015-03-18 Yao Qi <yao.qi@linaro.org>
PR tdep/18107
* gdb.base/catch-syscall.c [!SYS_pipe] (pipe2_syscall): New
variable.
* gdb.base/catch-syscall.exp: Don't skip it on
aarch64*-*-linux* target. Remove elements in all_syscalls.
(test_catch_syscall_multi_arch): Skip it on aarch64*-linux*
target.
(setup_all_syscalls): New proc.
commit b3862264bc6009a993685ee5e9dd2879a503e36a
Author: Chen Gang <gang.chen.5i5j@gmail.com>
Date: Wed Mar 18 11:42:19 2015 +1030
Use %F instead of %X for einfo
When src or dst is NULL, the next fread or fwrite will cause a
segmentation fault, so we need to treat it as fatal.
* ldmain.c (main): Use %F instead of %X for einfo.
commit 091021faaa699c11dd50d9ff56d8713953666f65
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 17 17:05:38 2015 -0700
Exclude target-zlib if target-libjava isn't built
* configure.ac (target_configdirs): Exclude target-zlib if
target-libjava isn't built.
* configure: Regenerated.
commit 1757d5e7cf1ce94a2351f2a32d84a5883f50c8b9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 17 17:01:54 2015 -0700
Revert "Disable all target libraries if not building gcc"
This reverts commit 35fece71d50e1883e67fcd28c69245de4335b8b5.
commit 641754af2b76770f96d13ea2bce6b2804bb4f777
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 18 00:00:08 2015 +0000
Automatic date update in version.in
commit b9f9ea2f5dd6112e56b69f1cd9271c10b3b14ed8
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Tue Mar 17 22:02:39 2015 +0100
sim/erc32: Removed type mismatch compiler warnings
commit 638fcdad6a0de44f6c91b503280207fc1f34ff9e
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Tue Mar 17 22:02:38 2015 +0100
sim/erc32: Added -v command line switch for verbose output
commit 029f3522619e8b77a7b848be23f4c13e50087d8b
Author: Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
Date: Tue Mar 17 21:49:15 2015 +0530
Add znver1 processor
commit 393bd0c06b64ff6076f28053cbd2fce352023c70
Author: Yurij Grechishhev <yurij.grechishhev@gmail.com>
Date: Tue Mar 17 10:11:20 2015 -0400
Fix name of ser_base_setstopbits's second argument.
Small copy/paste error, most likely...
gdb/ChangeLog:
* ser-base.h (ser_base_setstopbits): Change second argument name
from "rate" to "num".
commit 5df8a8fcf1cdd7896b38f27e65938a8fc89ec2bc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 17 05:15:34 2015 -0700
Sync config-ml.in with GCC trunk
Sync with GCC
2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
* config-ml.in: Robustify ac_configure_args parsing.
commit 7f3647e2ba4517be59ce531ec2297918b998fe3e
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 17 11:26:09 2015 +0000
Remove forward declaration of struct stat
Forward declarations of struct stat break the Windows build.
This commit removes a forward declaration of struct stat and
includes sys/stat.h directly instead.
gdb/ChangeLog:
PR gdb/18131
* common/common-remote-fileio.h (sys/stat.h): New include.
(stuct stat): Remove forward declaration.
commit c4b0b099b884e73d883f2b8c3ea8ffc9dc678902
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 17 10:16:51 2015 +1030
Fix elf64-ppc.c electric fence warning
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return count of 0
on nothing to do, before malloc of returned symbol array.
commit 4d22acce0790d8a6f2457aaef99674790ca853e7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 17 00:00:08 2015 +0000
Automatic date update in version.in
commit ca5fd19bfb2a41fae7696d67d1f4dce5d5a9053a
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Mar 13 10:56:01 2015 +0000
watchpoint-reuse-slot.exp: skip setting HW breakpoints on some address
We see some fails in watchpoint-reuse-slot.exp on aarch64-linux, because
it sets some HW breakpoint on some address doesn't meet the alignment
requirements by kernel, kernel will reject the
ptrace (PTRACE_SETHBPREGS) call, and some fails are caused, for example:
(gdb) PASS: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 0: delete $bpnum
hbreak *(buf.byte + 0 + 1)^M
Hardware assisted breakpoint 80 at 0x410a61^M
(gdb) PASS: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 1: hbreak *(buf.byte + 0 + 1)
stepi^M
Warning:^M
Cannot insert hardware breakpoint 80.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted off: watch x hbreak: : width 1, iter 0: base + 1: stepi advanced
hbreak *(buf.byte + 0 + 1)^M
Hardware assisted breakpoint 440 at 0x410a61^M
Warning:^M
Cannot insert hardware breakpoint 440.^M
Could not insert hardware breakpoints:^M
You may have requested too many hardware breakpoints/watchpoints.^M
^M
(gdb) FAIL: gdb.base/watchpoint-reuse-slot.exp: always-inserted on: watch x hbreak: : width 1, iter 0: base + 1: hbreak *(buf.byte + 0 + 1)
This patch is to skip some tests by checking proc valid_addr_p.
We can handle other targets in valid_addr_p too.
gdb/testsuite:
2015-03-16 Yao Qi <yao.qi@linaro.org>
* gdb.base/watchpoint-reuse-slot.exp (valid_addr_p): New proc.
(top level): Skip tests if valid_addr_p returns false for
$cmd1 or $cmd2.
commit 1b6c08316381961223fc3e1f9e3ba0547a53cce1
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 09:12:37 2015 -0700
Update top-level files from GCC trunk
* Makefile.def: Updated from GCC trunk.
* Makefile.tpl: Likewise.
* configure.ac: Likewise.
* Makefile.in: Regenerated.
* configure: Likewise.
commit d9a4c83b863d32a86f82ff0c4d3c99d639cc52c5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:51:37 2015 -0700
Sync isl.m4 with GCC tree
* isl.m4: Sync with GCC tree.
commit 51f374927b3e417179af92a9be91a0f6c99b8173
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:49:06 2015 -0700
Sync elf.m4 with GCC tree
Sync with GCC
2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
* elf.m4 (ACX_ELF_TARGET_IFELSE): nvptx-*-none isn't ELF.
commit bd51a4d5570d3e1dd9aae1e45db6ae087f2b645d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:44:41 2015 -0700
Append -g -Os rather than overwriting
Sync with GCC
2014-11-17 Bob Dunlop <bob.dunlop@xyzzy.org.uk>
* mt-ospace (CFLAGS_FOR_TARGET): Append -g -Os rather than
overwriting.
(CXXFLAGS_FOR_TARGET): Similarly.
commit b2121c33506a592a25c174b171e24e09af885bee
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:41:42 2015 -0700
Don't reset CXXFLAGS_FOR_TARGET
Sync with GCC
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
PR target/43538
* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.
commit 8869a24691490e5cb47045c1d732a27ea8408a2e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:34:23 2015 -0700
Sync bootstrap-asan.mk/bootstrap-lto.mk with GCC tree
* bootstrap-asan.mk: Sync with GCC tree.
* bootstrap-lto.mk: Likewise.
commit 100d311943b10e9dba1685fbc95f08b9d7226ee9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:31:47 2015 -0700
Remove cloog.m4
* cloog.m4: Removed.
commit 35fece71d50e1883e67fcd28c69245de4335b8b5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 16 08:12:46 2015 -0700
Disable all target libraries if not building gcc
Don't build target libraries if not building gcc.
* configure.ac (target_configdirs): Unset if not building gcc.
* configure: Regenerated.
commit 3ce5b6e25ca2389c545282204b96064c00a13fab
Author: John Baldwin <jhb@FreeBSD.org>
Date: Sat Mar 14 13:47:20 2015 -0400
Fetch all registers before writing the core register notes.
Without this, not all registers were present in the core generated by
gcore. For example, running 'gcore' on a program without examining
the vector registers (SSE or AVX) would store all the vector registers
as zeros because they were not pulled into the regcache. Running
'info vector' before 'gcore' would store the correct values in the
core since it populated the regcache. For Linux processes, a similar
operation is achieved by having the thread iterator callback invoke
target_fetch_registers on each thread before its corresponding
register notes are dumped.
gdb/ChangeLog:
* fbsd-tdep.c (fbsd_make_corefile_notes): Fetch all target registers
before writing core register notes.
commit d053f6be557fa3bedd4ccbd969103dbb51a37439
Author: Yuanhui Zhang <asmwarrior@gmail.com>
Date: Mon Mar 16 11:28:24 2015 +0000
stub termcap, add extern "C"
Fixes linking an --enable-build-with-cxx build on mingw:
../readline/terminal.c:278: undefined reference to `tgetnum'
../readline/terminal.c:297: undefined reference to `tgetnum'
../readline/libreadline.a(terminal.o): In function `get_term_capabilities':
../readline/terminal.c:427: undefined reference to `tgetstr'
../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io':
[etc.]
gdb/ChangeLog:
2015-03-16 Yuanhui Zhang <asmwarrior@gmail.com>
Pedro Alves <palves@redhat.com>
* gdb_curses.h (tgetnum): Mark with EXTERN_C.
* stub-termcap.c (tgetent, tgetnum, tgetflag, tgetstr, tputs)
(tgoto): Wrap with extern "C".
commit b1a921c8c6f9e3d033629f32473c6470c360b43f
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 16 11:28:23 2015 +0000
stub-termcap.c: prototype tputs's parameter's parameter, for C++ mode
src/gdb/stub-termcap.c: In function 'int tputs(char*, int, int (*)())':
src/gdb/stub-termcap.c:67:22: error: too many arguments to function
outfun (*string++);
^
gdb/ChangeLog:
2015-03-16 Pedro Alves <palves@redhat.com>
Yuanhui Zhang <asmwarrior@gmail.com>
* stub-termcap.c (tputs): Change prototype.
commit 876d1cd7b5899e7927e298a7f7344a0da48425a9
Author: Yuanhui Zhang <asmwarrior@gmail.com>
Date: Mon Mar 16 11:31:31 2015 +0000
windows-nat.c: conflicting declaration of struct thread_info in C++ mode
Building mingw GDB with --enable-build-with-cxx shows:
../../binutils-gdb/gdb/windows-nat.c: At global scope:
../../binutils-gdb/gdb/windows-nat.c:192:1: error: conflicting declaration 'typedef struct thread_info_struct thread_info'
thread_info;
^
In file included from ../../binutils-gdb/gdb/windows-nat.c:52:0:
../../binutils-gdb/gdb/gdbthread.h:160:8: error: 'struct thread_info' has a previous declaration as 'struct thread_info'
struct thread_info
^
Simply rename the structure to avoid the conflict.
gdb/ChangeLog:
2015-03-16 Yuanhui Zhang <asmwarrior@gmail.com>
Pedro Alves <palves@redhat.com>
* windows-nat.c (struct thread_info_struct): Rename to ...
(struct windows_thread_info_struct): ... this.
(thread_info): Rename to ...
(windows_thread_info): ... this.
All users updated.
commit b57dc16f06bbe31a5dad044556d12ecda138e1c3
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 16 11:17:52 2015 +0000
Removes a #if 1 ... #endif accidentally left in the source code.
* dwarf2dbg.c (out_header): Remove spurious #if 1.
commit 9c761a554184c2ded303c4929a7023b972b2fb9f
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 16 11:14:07 2015 +0000
Fixes a problem with the RX port trying to perform linker relaxation when -no-keep-memory has been enabled.
* elf32-rx.c (elf32_rx_relax_delete_bytes): If the relocs are not
stored in the elf_section_data structure then load them as
necessary.
commit ba14f9419d59571057d9675673bbf8b6032aa5fe
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 16 02:23:02 2015 -0400
sim: mcore/microblaze: strip trailing whitespace
No functional changes here.
commit feb703b3f4d3cb21ab50905359df7123e131a7dc
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 16 02:26:48 2015 -0400
sim: mcore/microblaze: clean up a bit
Fix some various warnings and enable the extra warnings options.
commit 6cd5ace4db98987881c71e33dcae418fd258c38d
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 16 02:13:31 2015 -0400
sim: convert some old prototypes
commit ae7d0cac8ce971f7108d270c1d3f8481919b1e86
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 23:41:25 2015 -0400
sim: rename tconfig.in to tconfig.h
Rather than manually include tconfig.h when we think we'll need it (which
is error prone as it can define symbols we expect from config.h), have it
be included directly by config.h. Since we know we have to include that
header everywhere already, this will make sure tconfig.h isn't missed.
It should also be fine as tconfig.h is supposed to be simple and only set
up a few core defines for the target.
This allows us to stop symlinking it in place all the time and just use
it straight out of the respective source directory.
commit 9c5f41df36176d86afa65fc9b69b8fd6f6044547
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Mon Mar 16 01:14:09 2015 -0400
sim/erc32: use SIM_AC_OPTION_HOSTENDIAN to probe for host endianess
commit a4f851ffab57821a4904a9a28d8503500b77200e
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 16 00:00:08 2015 +0000
Automatic date update in version.in
commit 8406bb5944940a8830b37b97584dda3208a3d07d
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 15 02:55:08 2015 -0400
sim: dv-sockser: push module init prototype down
Pull out the duplicated dv_sockser_install prototype from the tconfig.in
files and put it in the one place it gets used -- sim-module.c. This is
still arguably incorrect, but it's better than the status quo where the
tconfig.in has to include header files and duplicate the dv-sockser func.
The tconfig header is meant to be simple and contain a target defines.
commit b19839da382a4755e91d0a943b6d89d13fd74972
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 20:54:49 2015 -0400
sim: bfin: fix signed warning
Fix the type of the local var to match the function it is passed to.
commit 1303206d7f8de81c685f486c857d533d5bcf827d
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 20:52:24 2015 -0400
sim: delete unused sim-inline.c rule
This dates back to the start of the repo, but has never really been used.
The sim-inline.c file has been checked in to the source, and attempts to
build it in the build tree leads to a circular dep warning from make. It
also doesn't produce a file that is usable -- it can't be compiled. Punt!
commit c2cdb853dc4aa9adf98a11c506b8783ce0655f18
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 15 00:00:07 2015 +0000
Automatic date update in version.in
commit 41cc895fc88dc6d69253fb29ad4ad85c3c851254
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 07:46:54 2015 -0400
sim: mcore/moxie: clean up makefiles a bit
Clean out stub targets and rules that get autogenerated.
commit c1e768db524407c25d14fe693a931af9cb6d9ad4
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 8 00:56:53 2014 -0500
sim: msp430: use common warnings options
This triggers a bunch of new warnings, so fix some of them.
commit 465fb143c87076b6416a8d0d5dd79bb016060fe3
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Feb 19 03:46:01 2015 -0500
sim: make nrun the default run program
We want people to stop using the run.c frontend, but it's hard to notice
when it's still set as the default. Lets flip things so nrun.c is the
default, and users of run.c will get an error by default. We turn that
error into a warning for existing sims so we don't break them -- this is
mostly meant for people starting new ports.
commit b9005ba76ee501a809f2657b04bb2f2590829fa3
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Sat Mar 14 11:45:05 2015 +0100
S/390: Disable relocation sort against code sections.
When downgrading from GD to IE model we rewrite the call to
__tls_get_offset to a 64 bit load instruction. This relies on the fact
that the additional relocation for the call target has already been
executed when doing the rewrite.
f1018: e3 20 d0 00 00 04 lg %r2,0(%r13)
f101e: c0 e5 00 00 00 00 brasl %r14,f101e <__res_init+0x1e>
f101e: R_390_TLS_GDCALL __libc_resp
f1020: R_390_PLT32DBL __tls_get_offset+0x2
0000000f1020 39f6c00000014 R_390_PLT32DBL 0000000000000000 __tls_get_offset + 2
0000000f101e 3afb700000026 R_390_TLS_GDCALL 0000000000000008 __libc_resp + 0
Due to the reloc sorting the order changed an the PLT32DBL reloc is
executed after the rewrite and overwrites part of the load instruction
with garbage.
bfd/
2015-03-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* elf-s390-common.c (elf_s390_elf_sort_relocs_p): Don't sort
relocs against code sections.
* elf32-s390.c: Define elf_backend_sort_relocs_p.
* elf64-s390.c: Likewise.
commit 5cddc23a3a0b855858e8eca93d6dd90aec00d914
Author: Mike Frysinger <vapier@gentoo.org>
Date: Thu Feb 19 03:50:11 2015 -0500
sim: drop duplicate header checks
The SIM_AC_COMMON macro already checks for a bunch of headers, so specific
sim ports need not do it themselves.
commit 0800b440df695c9ee66c9337cef384c48fe45b16
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Mar 14 11:01:17 2015 +0100
NEWS: Remove HPUX
gdb/ChangeLog
2015-03-14 Jan Kratochvil <jan.kratochvil@redhat.com>
Pedro Alves <palves@redhat.com>
* NEWS: New Removed targets and native configurations.
commit 9312936603f4ed0de67aee3d1c4d714df16f995e
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Mar 14 03:42:08 2015 -0400
sim: move sim-io.h to sim-assert.h
Since sim-endian.c doesn't actually use sim_io funcs, it's weird to
include the sim-io.h header here. It's doing so only for the assert
header. So lets relocate the include to the right place.
commit e94dfb0747eb8094295fb7e0a7c20162355e6bcd
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 14 00:00:08 2015 +0000
Automatic date update in version.in
commit 6914869aa73d6cd12121ed6b3e58e1564ef5575d
Author: Andrew Bennett <andrew.bennett@imgtec.com>
Date: Fri Mar 13 22:42:55 2015 +0000
MIPS: Fix constraint issues with the R6 beqc and bnec instructions
opcodes/
* mips-opc.c (decode_mips_operand): Fix constraint issues
with u and y operands.
gas/testsuite/
* gas/mips/mips.exp: Added branch constraints testcase.
* gas/mips/r6-branch-constraints.s: New test.
* gas/mips/r6-branch-constraints.l: New test.
commit 21e20815a20606a858f626e09944f29ee5ebee82
Author: Andrew Bennett <andrew.bennett@imgtec.com>
Date: Fri Mar 13 22:02:16 2015 +0000
Add support for MIPS R6 evp and dvp instructions.
opcodes/
* mips-opc.c (mips_builtin_opcodes): Add evp and dvp instructions.
gas/testsuite/
* gas/mips/r6.s: Add evp and dvp instructions.
* gas/mips/r6.d: Likewise.
* gas/mips/r6-n32.d: Likewise.
* gas/mips/r6-n64.d: Likewise.
commit 61a12cfa7b25746914493cc0d94e5053a8492aa5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Mar 13 20:24:22 2015 +0100
Remove HPUX
IIUC it is a pre-requisite for IPv6 support, some UNICes do not support
getaddrinfo required for IPv6. But coincidentally such UNICes are no longer
really supported by GDB. Therefore it was concluded we can remove all such
UNICes and then we can implement IPv6 easily with getaddrinfo.
In mail
Re: getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
Message-ID: <20140211034157.GG5485@adacore.com>
https://sourceware.org/ml/gdb-patches/2014-02/msg00333.html
Joel said:
So I chose HP-UX first for this patch.
gdb/ChangeLog
2014-10-16 Jan Kratochvil <jan.kratochvil@redhat.com>
Remove HPUX.
* Makefile.in (ALL_64_TARGET_OBS): Remove ia64-hpux-tdep.o.
(ALL_TARGET_OBS): Remove hppa-hpux-tdep.o, solib-som.o and solib-pa64.o.
(HFILES_NO_SRCDIR): Remove solib-som.h, inf-ttrace.h, solib-pa64.h and
ia64-hpux-tdep.h, solib-ia64-hpux.h.
(ALLDEPFILES): Remove hppa-hpux-tdep.c, hppa-hpux-nat.c,
ia64-hpux-nat.c, ia64-hpux-tdep.c, somread.c and solib-som.c.
* config/djgpp/fnchange.lst: Remove hppa-hpux-nat.c and
hppa-hpux-tdep.c.
* config/ia64/hpux.mh: Remove file.
* config/pa/hpux.mh: Remove file.
* configure: Rebuilt.
* configure.ac (dlgetmodinfo, somread.o): Remove.
* configure.host (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete.
(ia64-*-hpux*): Remove its float format exception.
* configure.tgt (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete.
* hppa-hpux-nat.c: Remove file.
* hppa-hpux-tdep.c: Remove file.
* hppa-tdep.c (struct hppa_unwind_info, struct hppa_objfile_private):
Move them here from hppa-tdep.h
(hppa_objfile_priv_data, hppa_init_objfile_priv_data): Make it static.
(hppa_frame_prev_register_helper): Remove HPPA_FLAGS_REGNUM exception.
* hppa-tdep.h (struct hppa_unwind_info, struct hppa_objfile_private):
Move them to hppa-tdep.c.
(hppa_objfile_priv_data, hppa_init_objfile_priv_data): Remove
declarations.
* ia64-hpux-nat.c: Remove file.
* ia64-hpux-tdep.c: Remove file.
* ia64-hpux-tdep.h: Remove file.
* inf-ttrace.c: Remove file.
* inf-ttrace.h: Remove file.
* solib-ia64-hpux.c: Remove file.
* solib-ia64-hpux.h: Remove file.
* solib-pa64.c: Remove file.
* solib-pa64.h: Remove file.
* solib-som.c: Remove file.
* solib-som.h: Remove file.
* somread.c: Remove file.
commit 25268153a182eef28d31ed2bc03ab7c6c0ab40e3
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Feb 17 19:15:45 2015 -0500
Use kinfo_getvmmap on FreeBSD to enumerate memory regions.
Use kinfo_getvmmap from libutil on FreeBSD to enumerate memory
regions in a running process instead of /proc/<pid>/map. FreeBSD systems
do not mount procfs by default, but kinfo_getvmmap uses a sysctl that
is always available.
Skip memory regions for devices as well as regions an application has
requested to not be dumped via the MAP_NOCORE flag to mmap or
MADV_NOCORE advice to madvise.
gdb/ChangeLog:
* configure.ac: AC_CHECK_LIB(util, kinfo_getvmmap).
* configure: Regenerate.
* config.in: Regenerate.
* fbsd-nat.c [!HAVE_KINFO_GETVMMAP] (fbsd_read_mapping): Don't
define.
(fbsd_find_memory_regions): Use kinfo_getvmmap to
enumerate memory regions if present.
commit 773eacf5b0362c755ac47cb66d15d07558d9ce20
Author: John Baldwin <jhb@FreeBSD.org>
Date: Fri Feb 27 13:17:43 2015 -0500
Style fixes.
- Do not leave operators at end-of-line.
- Fix block indentation in if-else chain.
gdb/ChangeLog:
* amd64fbsd-tdep.c (amd64fbsd_sigtramp_p): Style fixes.
* i386fbsd-tdep.c: Fix style in various gdb_static_assert
expressions.
(i386fbsd_sigtramp_p): Likewise.
commit 4bf8c6e8986890caa482c845d2c4a0ff238c1e28
Author: Jiong Wang <jiong.wang@arm.com>
Date: Fri Mar 13 12:02:23 2015 +0000
[AArch64] Don't warn on XZR/SP overlapping when it's in load/store
2015-03-13 Jiong Wang <jiong.wang@arm.com>
gas/
* config/tc-aarch64.c (warn_unpredictable_ldst): Don't warn on reg number 31.
gas/testsuite/
* gas/aarch64/diagnostic.s: New testcases.
* gas/aarch64/diagnostic.l: New error match.
commit bc9706f8235a917f0b534f3790e2ac9981d53e94
Author: Jiong Wang <jiong.wang@arm.com>
Date: Fri Mar 13 12:00:37 2015 +0000
[AArch64] Don't tail-pads sections to the alignment
2015-03-13 Jiong Wang <jiong.wang@arm.com>
gas/
* config/tc-aarch64.h (SUB_SEGMENT_ALIGN): Define to be zero.
gas/testsuite/
* gas/aarch64/tail_padding.s: New testcase.
* gas/aarch64/tail_padding.d: New expectation file.
commit a1894d43936b689945b0cf2ce696904606f40c5c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 13 00:00:07 2015 +0000
Automatic date update in version.in
commit 01b6bdb03c9286592871b3322ddbddc7b7350d03
Author: John Baldwin <jhb@FreeBSD.org>
Date: Fri Mar 6 15:18:34 2015 -0500
Add myself as a write-after-approval GDB maintainer
gdb/ChangeLog:
* MAINTAINERS (Write After Approval): Add John Baldwin.
commit 7ef0d2976a57c6cfde60281d67111969d7285d65
Author: Andrew Bennett <andrew.bennett@imgtec.com>
Date: Thu Mar 12 16:27:46 2015 +0000
Add i6400 entry to the MIPS CPU table.
gas/
* config/tc-mips.c (mips_cpu_info_table): Add i6400 entry.
* doc/c-mips.texi: Document i6400 -march option.
commit 93ef582debb0a179916965a882f4344223569219
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 12 15:58:37 2015 +0000
Fixes a problem generating relocs for thumb function calls to local symbols defined in other sections.
PR gas/17444
* config/tc-arm.h (MD_APPLY_SYM_VALUE): Pass the current segment
to arm_apply_sym_value. Update prototype.
* config/tc-arm.c (arm_apply_sym_value): Add segment argument.
Do not apply the value if the symbol is in a different segment to
the current segment.
commit 811a659a779fdf93293fe1105d99e9db171a8b68
Author: Gary Benson <gbenson@redhat.com>
Date: Thu Mar 12 11:44:16 2015 +0000
Allow "set sysroot" with no argument to restore sysroot to empty
This commit creates the "set/show sysroot" commands using
add_setshow_optional_filename_cmd to allow the sysroot to
be restored to empty after being set.
gdb/ChangeLog:
* solib.c (_initialize_solib): Make "set/show sysroot" use
add_setshow_optional_filename_cmd so it can be restored to
empty after being set.
commit 943c8b4393ca97b6c4805c724069028be6955b89
Author: Cary Coutant <ccoutant@gmail.com>
Date: Wed Mar 11 22:07:51 2015 -0700
Fix gold incremental test failures.
Newer version of GCC pass -z relro to the linker, but incremental linking
does not support relro. This patch adds a check to complain about the
conflict, and changes the testsuite to pass -z norelro to the incremental
tests.
2015-03-11 Cary Coutant <ccoutant@google.com>
gold/
* options.cc (General_options::finalize): Don't allow -z relro
with incremental linking.
* testsuite/Makefile.am (incremental_test): Add -z norelro.
(incremental_test_2): Likewise.
(incremental_test_3): Likewise.
(incremental_test_4): Likewise.
(incremental_test_5): Likewise.
(incremental_test_6): Likewise.
(incremental_copy_test): Likewise.
(incremental_common_test_1): Likewise.
(incremental_comdat_test_1): Likewise.
* testsuite/Makefile.in: Regenerate.
commit 97737159383af8af7a766ad3dade8ed0d11fa6a1
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 12 00:00:07 2015 +0000
Automatic date update in version.in
commit 10304ef3e85c6163f882757f58eb18f5178249ce
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed Mar 11 14:12:07 2015 -0400
Create gdb/break-catch-syscall.c
This commits cleans up the gdb/breakpoint.c file and moves everything
that is related to the 'catch syscall' command to the new file
gdb/break-catch-syscall.c. This is just code movement, and the only
new part is the adjustment needed on 'catching_syscall_number' to use
the new 'breakpoint_find_if' function insted of relying on the
ALL_BREAKPOINTS macro.
Tested by running the 'gdb.base/catch-syscall.exp' testcase.
gdb/ChangeLog:
2015-03-11 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (SFILES): New source break-catch-syscall.c.
(COMMON_OBS): New object break-catch-syscall.o.
* break-catch-syscall.c: New file.
* breakpoint.c: Remove inclusion of "xml-syscall.h".
(syscall_catchpoint_p): Move declaration to break-catch-syscall.c
(struct syscall_catchpoint): Likewise.
(dtor_catch_syscall): Likewise.
(catch_syscall_inferior_data): Likewise.
(struct catch_syscall_inferior_data): Likewise.
(get_catch_syscall_inferior_data): Likewise.
(catch_syscall_inferior_data_cleanup): Likewise.
(insert_catch_syscall): Likewise.
(remove_catch_syscall): Likewise.
(breakpoint_hit_catch_syscall): Likewise.
(print_it_catch_syscall): Likewise.
(print_one_catch_syscall): Likewise.
(print_mention_catch_syscall): Likewise.
(print_recreate_catch_syscall): Likewise.
(catch_syscall_breakpoint_ops): Likewise.
(syscall_catchpoint_p): Likewise.
(create_syscall_event_catchpoint): Likewise.
(catch_syscall_split_args): Likewise.
(catch_syscall_command_1): Likewise.
(is_syscall_catchpoint_enabled): Likewise.
(catch_syscall_enabled): Likewise.
(catching_syscall_number): Likewise.
(catch_syscall_completer): Likewise.
(clear_syscall_counts): Likewise.
(initialize_breakpoint_ops): Move initialization of syscall
catchpoints to break-catch-syscall.c.
(_initialize_breakpoint): Move code related to syscall catchpoints
to break-catch-syscall.c.
commit badd37cec86e705a190e501ab26975d352718619
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed Mar 11 14:09:51 2015 -0400
Implement breakpoint_find_if
This commit implements the 'breakpoint_find_if' function, which allows
code external to gdb/breakpoint.c to iterate through the list of
'struct breakpoint *'. This is needed in order to create the
'gdb/break-catch-syscall.c' file, because one of its functions
(catching_syscall_number) needs to do this iteration.
My first thought was to share the ALL_BREAKPOINTS* macros on
gdb/breakpoint.h, but they use a global variable local to
gdb/breakpoint.c, and I did not want to share that variable. So, in
order to keep the minimal separation, I decided to implement this
way of iterating through the existing 'struct breakpoint *'.
This function was based on BFD's bfd_sections_find_if. If the
user-provided function returns 0, the iteration proceeds. Otherwise,
the iteration stops and the function returns the 'struct breakpoint *'
that is being processed. This means that the return value of this
function can be either NULL or a pointer to a 'struct breakpoint'.
gdb/ChangeLog:
2015-03-11 Sergio Durigan Junior <sergiodj@redhat.com>
* breakpoint.c (breakpoint_find_if): New function.
* breakpoint.h (breakpoint_find_if): New prototype.
commit aa9e327f1e8552cd47cc8f4b9daa782930469e60
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Mar 11 17:53:57 2015 +0000
Implement vFile:fstat: in gdbserver
This commit implements the "vFile:fstat:" packet in gdbserver.
gdb/gdbserver/ChangeLog:
* hostio.c (sys/types.h): New include.
(sys/stat.h): Likewise.
(common-remote-fileio.h): Likewise.
(handle_fstat): New function.
(handle_vFile): Handle vFile:fstat packets.
* server.c (handle_query): Report vFile:fstat as supported.
commit 0a93529c56714b1da3d7106d3e0300764f8bb81c
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Mar 11 17:53:57 2015 +0000
Implement remote_bfd_iovec_stat
This commit adds a new packet "vFile:fstat:" to the remote protocol
that can be used by to retrieve information about files that have
been previously opened using vFile:open. vFile:fstat: support is
added to GDB, and remote_bfd_iovec_stat is implemented using it. If
vFile:fstat: is not supported by the remote GDB creates a dummy result
by zeroing the supplied stat structure and setting its st_size field
to INT_MAX. This mimics GDB's previous behaviour, with the exception
that GDB did not previously zero the structure so all other fields
would have been returned unchanged, which is to say very likely
populated with random values from the stack.
gdb/ChangeLog:
* remote-fileio.h (remote_fileio_to_host_stat): New declaration.
* remote-fileio.c (remote_fileio_to_host_uint): New function.
(remote_fileio_to_host_ulong): Likewise.
(remote_fileio_to_host_mode): Likewise.
(remote_fileio_to_host_time): Likewise.
(remote_fileio_to_host_stat): Likewise.
* remote.c (PACKET_vFile_fstat): New enum value.
(remote_protocol_features): Register the "vFile:fstat" feature.
(remote_hostio_fstat): New function.
(remote_bfd_iovec_stat): Use the above.
(_initialize_remote): Register new "set/show remote
hostio-fstat-packet" command.
* symfile.c (separate_debug_file_exists): Update comment.
* NEWS: Announce new vFile:fstat packet.
gdb/doc/ChangeLog:
* gdb.texinfo (Remote Configuration): Document the
"set/show remote hostio-fstat-packet" command.
(General Query Packets): Document the vFile:fstat
qSupported features.
(Host I/O Packets): Document the vFile:fstat packet.
commit 791c00567a7ccbae3d71e3b63ac43c0b555079dc
Author: Gary Benson <gbenson@redhat.com>
Date: Wed Mar 11 17:53:57 2015 +0000
Move remote_fileio_to_fio_stat to gdb/common
This commit moves remote_fileio_to_fio_stat and its supporting
functions into new files common/common-remote-fileio.[ch].
gdb/ChangeLog:
* common/common-remote-fileio.h: New file.
* common/common-remote-fileio.c: Likewise.
* Makefile.in (SFILES): Add common/common-remote-fileio.c.
(HFILES_NO_SRCDIR): Add common/common-remote-fileio.h.
(COMMON_OBS): Add common-remote-fileio.o.
(common-remote-fileio.o): New rule.
* remote-fileio.h (common-remote-fileio.h): New include.
* remote-fileio.c (gdb/fileio.h): Do not include.
(remote_fileio_to_be): Moved to common-remote-fileio.h.
(remote_fileio_to_fio_uint): Likewise.
(remote_fileio_to_fio_time): Likewise.
(remote_fileio_mode_to_target): Moved to common-remote-fileio.c.
(remote_fileio_to_fio_mode): Likewise.
(remote_fileio_to_fio_ulong): Likewise.
(remote_fileio_to_fio_stat): Likewise.
gdb/gdbserver/ChangeLog:
* configure.ac (AC_CHECK_MEMBERS): Add checks for
struct stat.st_blocks and struct stat.st_blksize.
* configure: Regenerate.
* config.in: Likewise.
* Makefile.in (SFILES): Add common/common-remote-fileio.c.
(OBS): Add common-remote-fileio.o.
(common-remote-fileio.o): New rule.
commit 1390d0efa6a03a3780541aa8100c7b52402e793d
Author: Andy Wingo <wingo@igalia.com>
Date: Wed Mar 11 14:32:23 2015 +0100
Fix typo in value-dynamic-type
gdb/ChangeLog:
* guile/scm-value.c (gdbscm_value_dynamic_type): Fix typo in which
we were checking the cached type, not the cached dynamic type.
commit 84a4591a7ba0c83c165cde85898086e9a4019b0d
Author: Andy Wingo <wingo@igalia.com>
Date: Wed Mar 11 14:25:29 2015 +0100
Fix memory corruption in Guile command interface
Re-registering a command will delete previous commands of the same name,
running the destroyer for the command object. The Guile destroyer
incorrectly tried to xfree the name and other strings, which is invalid
as they are on the GC heap.
gdb/ChangeLog:
* guile/scm-cmd.c (cmdscm_destroyer): Don't xfree the name and
other strings, as these are on the GC'd heap, and will be
collected along with the smob.
commit 85642ba08c459bb2f9d1e7beffa1871c9a93ca66
Author: Andy Wingo <wingo@igalia.com>
Date: Wed Mar 11 14:20:06 2015 +0100
Add objfile-progspace to Guile interface
This commit adds an objfile-progspace accessor to the (gdb) Guile
module.
gdb/testsuite/ChangeLog:
* gdb.guile/scm-objfile.exp: Add objfile-progspace test.
gdb/doc/ChangeLog:
* guile.texi (Objfiles In Guile): Document objfile-progspace.
gdb/ChangeLog:
* guile/scm-objfile.c (gdbscm_objfile_progspace): New function.
(objfile_functions): Bind gdbscm_objfile_progspace to
objfile-progspace.
* guile/lib/gdb.scm: Add objfile-progspace to exports.
commit 92fab5a61707cd3b487219ea9efa0e410cde3bc4
Author: Andy Wingo <wingo@igalia.com>
Date: Wed Mar 11 13:07:53 2015 +0100
[guile] Run finalizers from GDB thread
gdb/ChangeLog:
* guile/guile.c (_initialize_guile): Disable automatic
finalization, if Guile offers us that possibility.
* guile/guile.c (call_initialize_gdb_module):
* guile/scm-safe-call.c (gdbscm_with_catch): Arrange to run
finalizers in appropriate places.
* config.in (HAVE_GUILE_MANUAL_FINALIZATION): New definition.
* configure.ac (AC_TRY_LIBGUILE): Add a check for
scm_set_automatic_finalization_enabled.
* configure: Regenerated.
commit e03f96456f2313854efff2377134af6cbda96af8
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Mar 11 11:50:12 2015 +0000
Typo fix
Fix typo "inferiorr".
gdb/testsuite:
2015-03-11 Yao Qi <yao.qi@linaro.org>
* gdb.base/catch-syscall.exp: Fix typo in comments.
commit 5d0962b2e982eb8210df40cc23f5a47d0339e789
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Mar 11 11:43:07 2015 +0000
Skip catch-syscall.exp on HP-UX target
"catch syscall" doesn't work on HP-UX.
gdb/testsuite:
2015-03-11 Yao Qi <yao.qi@linaro.org>
* gdb.base/catch-syscall.exp: Skip it on HP-UX target.
commit f054145ed2bad0aa0f57b2a4c3ca6988b213d1a3
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 11 11:11:45 2015 +0100
S390: Skip prologue using SAL information, if possible
Instead of analyzing the prologue and possibly coming to a wrong
conclusion, this change tries to skip the prologue with the use of
skip_prologue_using_sal. Only if that fails, the prologue analyzer is
invoked as before.
gdb/ChangeLog:
* s390-linux-tdep.c (s390_skip_prologue): Skip the prologue using
SAL, if possible.
commit 183961935e38267cf16cdcdcdfebcab07ab415d5
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 11 11:11:44 2015 +0100
S390: Defer PER info update until resume
For multi-threaded inferiors on S390 GNU/Linux targets, GDB tried to
update the PER info via ptrace() in a newly attached thread before
assuring that the thread is stopped. Depending on the timing, this
could lead to a GDB internal error. The patch defers the PER info
update until just before resuming the thread.
gdb/ChangeLog:
* s390-linux-nat.c (struct arch_lwp_info): New.
(s390_fix_watch_points): Rename to...
(s390_prepare_to_resume): ...this. Skip the PER info update
unless the watch points have changed.
(s390_refresh_per_info, s390_new_thread): New functions.
(s390_insert_watchpoint): Call s390_refresh_per_info instead of
s390_fix_watch_points.
(s390_remove_watchpoint): Likewise.
(_initialize_s390_nat): Reflect renaming of s390_fix_watch_points.
Register s390_prepare_to_resume.
commit f728387b9adccc88edcde44f357f869e33943c6d
Author: Alan Modra <amodra@gmail.com>
Date: Wed Mar 11 17:53:50 2015 +1030
Fix powerpc gas abort on invalid instruction fixups
* config/tc-ppc.c (md_assemble): Don't abort on 8 byte insn fixups.
(md_apply_fix): Report an error on data-only fixups used with insns.
commit 1079403cc002be65ea1c318160efc18c19965389
Author: Alan Modra <amodra@gmail.com>
Date: Wed Mar 11 17:45:37 2015 +1030
Fix ppc32 synthetic symbols when __tls_get_addr_opt stub is generated
Also update the 32-bit tls testcases to be secure plt.
bfd/
* elf32-ppc.c (ppc_elf_get_synthetic_symtab): Examine stubs in
reverse order. Account for larger size of __tls_get_addr_opt stub.
ld/testsuite/
* ld-powerpc/tls32.s: Add GOT pointer setup.
* ld-powerpc/tls32.d: Update.
* ld-powerpc/tls32.g: Update.
* ld-powerpc/tls32.t: Update.
* ld-powerpc/tlsexe.d: Update.
* ld-powerpc/tlsexe32.d: Update.
* ld-powerpc/tlsexe32.g: Update.
* ld-powerpc/tlsexe32.r: Update.
* ld-powerpc/tlsexetoc.d: Update.
* ld-powerpc/tlsso32.d: Update.
* ld-powerpc/tlsso32.g: Update.
* ld-powerpc/tlsso32.r: Update.
commit 50a0d119891f6128b10e8e95074349cc3cfe2070
Author: Alan Modra <amodra@gmail.com>
Date: Wed Mar 11 17:49:42 2015 +1030
Run objcopy --update-section test only on ELF targets
* binutils-all/update-section.exp: Only run on ELF targets.
commit 796ecec4cf37e5c97191a0cc8a0c5d308467401d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 11 00:00:07 2015 +0000
Automatic date update in version.in
commit 5656ba2c217cff434621d6caf135cbda5ae92ac4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 10 06:57:14 2015 -0700
Move nothing to do warning to main
PR binutils/18101
* readelf.c (parse_args): Move nothing to do warning to ...
(main): Here.
commit b6370efb1efe39e62abd01e95c7957834c8bdf47
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 10 13:44:51 2015 +0000
Fixes "readelf -s --wide" not returning an error status or help message.
PR binutils/18101
* readelf.c (parse_args): Enhance check for nothing to do by
accounting for the --wide option.
commit cfad873011d6399aa88bc6ddcb4c93dda5dad9b0
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 10 13:38:24 2015 +0000
Fixes a problem with objcopy leaving temporary files and directories around if it encounters a problem during a copy.
PR binutils/17636
* objcopy.c (copy_object): Avoid calling fatal as that does not
allow the parent to clean up temporary files.
commit 6b1d7593a5eb7e64a38acd8bfce7bc4edca09793
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Tue Mar 10 12:44:54 2015 +0100
S/390: Add more IBM z13 instructions
opcodes/
2015-03-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* s390-opc.c: Add new IBM z13 instructions.
* s390-opc.txt: Likewise.
gas/testsuite/
2015-03-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gas/s390/zarch-z13.d: Add more z13 instructions.
* gas/s390/zarch-z13.s: Likewise.
commit c683726541cb8d3ff769f803fd7fae65db5c6f5c
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Tue Mar 10 12:41:57 2015 +0100
S/390: Add check for length field operand
gas/
2015-03-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gas/config/tc-s390.c (md_gather_operands): Check for valid
length field operands.
commit 5e0d7f77b20d74d2866e41b72697581c39f3197b
Author: Michael Perkins <perkinsmg75@yahoo.co.uk>
Date: Tue Mar 10 11:47:46 2015 +0000
Fixes a bug in the ARM port of GAS when parsing inverted register lists.
* config/tc-arm.c (parse_operands): Fix bug setting writeback
values for '^' on OP_REGLSTs.
(do_push_pop): Add new writeback constraint.
commit 4e9aaefbd0042f5372509cd51ef2791a68aa30b0
Author: Sterling Augustine <augustine.sterling@gmail.com>
Date: Tue Mar 10 11:34:50 2015 +0000
[ARM]Fix "align directive causes MAP_DATA symbol to be lost"
gas/
2015-03-10 Renlin Li <renlin.li@arm.com>
* config/tc-arm.c (mapping_state): Remove first MAP_DATA emitting code.
(mapping_state_2): Emit first MAP_DATA symbol here.
gas/testsuite/
2015-03-05 Renlin Li <renlin.li@arm.com>
* gas/arm/dis-data.d: Adjust the desired output.
* gas/arm/dis-data2.d: Ditto.
commit c8f89a3423101b25e57bc8fd55b060ce2ac45a55
Author: Jiong Wang <jiong.wang@arm.com>
Date: Tue Mar 10 11:27:56 2015 +0000
[AARCH64] Remove Load/Store register (unscaled immediate) alias.
opcodes/ChangeLog:
2015-03-10 Renlin Li <renlin.li@arm.com>
* aarch64-tbl.h (aarch64_opcode_table): Remove strub, ldurb, ldursb,
stur, ldur, sturh, ldurh, ldursh, ldursw, prfum F_HAS_ALIAS flag and
related alias.
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Likewise.
* aarch64-opc-2.c: Likewise.
gas/testsuite/ChangeLog:
2015-03-10 Renlin Li <renlin.li@arm.com>
* gas/aarch64/ldst-reg-uns-imm.d: Adjust expected output.
* gas/aarch64/ldst-reg-unscaled-imm.d: Likewise.
* gas/aarch64/reloc-insn.d: Likewise.
commit a578ef7ed49b677ecb16a709f70c7349bdefb319
Author: Jiong Wang <jiong.wang@arm.com>
Date: Tue Mar 10 11:20:57 2015 +0000
[AArch64] Set the minimum alignment on code segments
gas/
2015-03-10 Matthew Wahab <matthew.wahab@arm.com>
* config/tc-aarch64.c (mapping_state): Set minimum alignment for
code sections.
gas/testsuite
2015-03-10 Matthew Wahab <matthew.wahab@arm.com>
* gas/aarch64/codealign.d: Add test for code section alignment.
* gas/aarch64/codealign.s: New file.
commit a5721eddd18f4ba11adbc9bef0c6cb49a0cb69b4
Author: Jiong Wang <jiong.wang@arm.com>
Date: Tue Mar 10 11:15:13 2015 +0000
[ARM] PR ld/16572: Remove EF_ARM_HASENTRY flag
bfd/
2015-03-10 Yuri Gribov <y.gribov@samsung.arm>
PR ld/16572
* elf32-arm.c (elf32_arm_final_link_relocate): Remove
support for ELF_ARM_HASENTRY.
(elf32_arm_print_private_bfd_data): Likewise.
binutils/
2015-03-10 Yuri Gribov <y.gribov@samsung.arm>
PR ld/16572
* readelf.c: Remove support for ELF_ARM_HASENTRY.
include/
2015-03-10 Matthew Wahab <matthew.wahab@arm.com>
PR ld/16572
* elf/arm.h (EF_ARM_HASENTRY): Remove.
commit 73f43896e3bfcb090552f359422857a0bedd77f6
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 10 10:01:45 2015 +0000
Fixes a bug building the ARM Linux kernel with a toolchain compiled with CPU_DEFAULT set.
PR gas/17852
* config/tc-arm.c (md_begin): Ensure that selected_cpu is
initialised when CPU_DEFAULT is defined.
commit 6defcd57e9df4f61cd0c59e3d9b66b6b071af808
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Mar 10 01:41:48 2015 -0400
sim: bfin: fix up linux-fixed-code.h generation more [PR sim/13160]
Add a trailing semi-colon to the sed print command as the BSD sed
implementation wants it. It's a nop otherwise and works fine on
GNU/etc... implementations too.
commit a24582147f2c74603852e12bf312eede39f56c0d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 10 00:00:08 2015 +0000
Automatic date update in version.in
commit b2df3cefb124e3cab3a4bf0ba2f25fe8e1d25283
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 17:47:18 2015 +0000
Delete gdb/testsuite/dg-extract-results.py
Unfortunately, the Python version of the dg-extract-results.sh script
doesn't produce stable-enough results for GDB. The test messages
appear to end up alpha sorted (losing the original sequence) and also
sorting changes between runs for some reason. That may be tolerable
for GCC, but for GDB, it often renders test results diffing between
different revisions unworkable.
Until that is fixed upstream, delete the script from the GDB tree.
testsuite/ChangeLog:
2015-03-09 Pedro Alves <palves@redhat.com>
* dg-extract-results.py: Delete.
commit ef878e5310ed154450b84cdedd4dd248c7697a2c
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 17:47:17 2015 +0000
Make dg-extract-results.sh explicitly treat .{sum,log} files as text
This merges Sergio's fix from GCC:
https://gcc.gnu.org/ml/gcc-patches/2014-12/msg01293.html
gdb/testsuite/ChangeLog:
2015-03-09 Pedro Alves <palves@redhat.com>
Merge dg-extract-results.sh from GCC upstream (r218843).
2014-12-17 Sergio Durigan Junior <sergiodj@redhat.com>
* dg-extract-results.sh: Use --text with grep to avoid issues with
binary files. Fall back to cat -v, if that doesn't work.
commit 411b642274178fe112712b11db805e6ac9e05d71
Author: Mike Frysinger <vapier@gentoo.org>
Date: Mon Mar 9 13:26:51 2015 -0400
sim: bfin: fix bug reference
commit e16631979e847a6b39db3435bea7708b9f34b36d
Author: Cary Coutant <ccoutant@google.com>
Date: Mon Mar 9 10:10:29 2015 -0700
Fix failure in exception_static_test.
Because the __EH_FRAME_BEGIN__ symbol is provided in an empty .eh_frame
section in crtbeginT.o, if crt1.o has a non-empty .eh_frame section,
we place all optimized .eh_frame sections into the output section ahead
of the __EH_FRAME_BEGIN__ symbol, which breaks EH for statically-linked
binaries.
This patch fixes the problem by delaying the attachment of the optimized
.eh_frame sections to the output section until we see the end marker
section (or to the end of pass 1 if we never see an end marker).
gold/
PR gold/14675
* ehframe.cc (Eh_frame::add_ehframe_input_section): Change return type;
return enum indicating whether .eh_frame section is empty, optimizable,
unrecognized, or an end marker. Adjust explicit instantiations.
* ehframe.h (Eh_frame::Eh_frame_section_disposition): New enum type.
(Eh_frame::add_ehframe_input_section): Change return type.
* gold.cc (queue_middle_tasks): Call Layout::finalize_eh_frame_section.
* layout.cc (Layout::layout_eh_frame): Don't add optimized sections
to the .eh_frame output section until we see the end marker.
(Layout::finalize_eh_frame_section): New.
* layout.h: (Layout::finalize_eh_frame_section): New.
commit 9a9df97001814c87929826e6538762f3be07c4a4
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:29:56 2015 +0000
gdbserver/tracepoint: Add 'struct sockaddr_un *' -> 'struct sockaddr *' cast
Fixes this in C++ mode:
gdb/gdbserver/tracepoint.c: In function âvoid* gdb_agent_helper_thread(void*)â:
gdb/gdbserver/tracepoint.c:7190:47: error: cannot convert âsockaddr_un*â to âsockaddr*â for argument â2â to âint accept(int, sockaddr*, socklen_t*)â
fd = accept (listen_fd, &sockaddr, &tmp);
gdb/gdbserver/ChangeLog:
2015-03-09 Pedro Alves <palves@redhat.com>
* tracepoint.c (gdb_agent_helper_thread): Cast '&sockaddr' to
'struct sockaddr' pointer in 'accept' call.
commit 9eb1356e381f3412f53ffe5bc68ce854330600fb
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 9 11:27:05 2015 +0000
Revert union gdb_sockaddr_u
This reverts 366c75fc.
We don't actually need to access the object through
"struct sockaddr *", so we don't need the union:
https://sourceware.org/ml/gdb-patches/2015-03/msg00213.html
gdb/ChangeLog:
2015-03-09 Pedro Alves <palves@redhat.com>
Revert:
2015-03-07 Pedro Alves <palves@redhat.com>
* common/gdb_socket.h: New file.
* ser-tcp.c: Include gdb_socket.h. Don't include netinet/in.h nor
sys/socket.h.
(net_open): Use union gdb_sockaddr_u.
gdb/gdbserver/ChangeLog:
2015-03-09 Pedro Alves <palves@redhat.com>
Revert:
2015-03-07 Pedro Alves <palves@redhat.com>
* gdbreplay.c: No longer include <netinet/in.h>, <sys/socket.h>,
or <winsock2.h> here. Instead include "gdb_socket.h".
(remote_open): Use union gdb_sockaddr_u.
* remote-utils.c: No longer include <netinet/in.h>, <sys/socket.h>
or <winsock2.h> here. Instead include "gdb_socket.h".
(handle_accept_event, remote_prepare): Use union gdb_sockaddr_u.
* tracepoint.c: Include "gdb_socket.h" instead of <sys/socket.h>
or <sys/un.h>.
(init_named_socket, gdb_agent_helper_thread): Use union
gdb_sockaddr_u.
commit 43fa85d9a8d7aac7a70c72220abd09d39703208a
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 8 23:53:48 2015 -0400
sim: bfin: fix up linux-fixed-code.h generation [PR sim/10143]
The use of $< ends up picking the wrong object out of the depend
list. Specify the input name directly to avoid fragility.
On BSD systems, we need to make sure all options come before the
non-options (i.e. the files).
Reported-by: Chris Johns <chrisj@rtems.org>
URL: https://sourceware.org/bugzilla/show_bug.cgi?id=13160
commit ccf946cb5cea83165cf12a18dc946f39d8a8cfff
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 9 00:00:08 2015 +0000
Automatic date update in version.in
commit 3e95021c775db2c483e87033ebef3d42ff99c7e0
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Mar 8 03:24:03 2015 -0400
sim: microblaze: fix printf string
Since sizeof returns a size_t, use %zu to display it.
commit d1771b76856741b8743fb47dbda993f73084bdb9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 8 00:00:08 2015 +0000
Automatic date update in version.in
commit aac331e484bba9736f12602da3715c8f7e0f1a45
Author: Pedro Alves <palves@redhat.com>
Date: Sat Feb 28 19:11:10 2015 +0000
Remove C-specific warnings from common warning set
Whoops, these are C specific, but I somehow missed the warnings before:
cc1plus: warning: command line option â-Wmissing-prototypesâ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option â-Wdeclaration-after-statementâ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option â-Wmissing-parameter-typeâ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option â-Wold-style-declarationâ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option â-Wold-style-definitionâ is valid for C/ObjC but not for C++ [enabled by default]
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* configure.ac (build_warnings): Move -Wmissing-prototypes
-Wdeclaration-after-statement -Wmissing-parameter-type
-Wold-style-declaration -Wold-style-definition to the C-specific
set.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* configure.ac (build_warnings): Move
-Wdeclaration-after-statement to the C-specific set.
* configure: Regenerate.
commit 366c75fc9183e46fe151aefb40f2d55a17815cb7
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 17:30:46 2015 +0000
Fix struct sockaddr/sockaddr_in/sockaddr_un strict aliasing violations
Building gdbserver in C++ mode shows:
gdb/gdbserver/tracepoint.c: In function âvoid* gdb_agent_helper_thread(void*)â:
gdb/gdbserver/tracepoint.c:7190:47: error: cannot convert âsockaddr_un*â to âsockaddr*â for argument â2â to âint accept(int, sockaddr*, socklen_t*)â
fd = accept (listen_fd, &sockaddr, &tmp);
A few places in the tree already have an explicit cast to struct
sockaddr *, but that's a strict aliasing violation. Instead of
propagating invalid code, fix this by using a union instead.
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* common/gdb_socket.h: New file.
* ser-tcp.c: Include gdb_socket.h. Don't include netinet/in.h nor
sys/socket.h.
(net_open): Use union gdb_sockaddr_u.
gdb/gdbserver/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* gdbreplay.c: No longer include <netinet/in.h>, <sys/socket.h>,
or <winsock2.h> here. Instead include "gdb_socket.h".
(remote_open): Use union gdb_sockaddr_u.
* remote-utils.c: No longer include <netinet/in.h>, <sys/socket.h>
or <winsock2.h> here. Instead include "gdb_socket.h".
(handle_accept_event, remote_prepare): Use union gdb_sockaddr_u.
* tracepoint.c: Include "gdb_socket.h" instead of <sys/socket.h>
or <sys/un.h>.
(init_named_socket, gdb_agent_helper_thread): Use union
gdb_sockaddr_u.
commit 72df25b28d68fd0b903380ceb06c6b5866eab453
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 14:50:03 2015 +0000
Make TRY/CATCH use real C++ try/catch in C++ mode
Although the current TRY/CATCH implementation works in C++ mode too,
it relies on setjmp/longjmp, and longjmp bypasses calling the
destructors of objects on the stack, which is obviously bad for C++.
This patch fixes this by makes TRY/CATCH use real try/catch in C++
mode behind the scenes. The way this is done allows RAII and cleanups
to coexist while we phase out cleanups, instead of requiring a flag
day.
This patch is not strictly necessary until we require a C++ compiler
and start actually using RAII, though I'm all for baby steps, and it
shows my proposed way forward. Putting it in now, allows for easier
experimentation and exposure of potential problems with real C++
exceptions.
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* common/common-exceptions.c [!__cplusplus] (enum catcher_state)
(exceptions_state_mc_action_iter)
(exceptions_state_mc_action_iter_1, exceptions_state_mc_catch):
Don't define.
[__cplusplus] (try_scope_depth): New global.
[__cplusplus] (exception_try_scope_entry)
(exception_try_scope_exit, gdb_exception_sliced_copy)
(exception_rethrow): New functions.
(throw_exception): In C++ mode, throw
gdb_exception_RETURN_MASK_QUIT for RETURN_QUIT and
gdb_exception_RETURN_MASK_ERROR for RETURN_ERROR.
(throw_it): In C++ mode, use try_scope_depth.
* common/common-exceptions.h [!__cplusplus]
(exceptions_state_mc_action_iter)
(exceptions_state_mc_action_iter_1, exceptions_state_mc_catch):
Don't declare.
[__cplusplus] (exception_try_scope_entry)
(exception_try_scope_exit, exception_rethrow): Declare.
[__cplusplus] (struct exception_try_scope): New struct.
[__cplusplus] (TRY, CATCH, END_CATCH): Reimplement on top of real
C++ exceptions.
(struct gdb_exception_RETURN_MASK_ALL)
(struct gdb_exception_RETURN_MASK_ERROR)
(struct gdb_exception_RETURN_MASK_QUIT): New types.
commit 284e6217cf8f96c7648b13274431dcf73aa084a9
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 14:50:03 2015 +0000
kill volatile struct gdb_exception
After the previous patch, this is the last remaining use of a volatile
struct gdb_exception. Kill it, as it's troublesome for C++: we can't
assign volatile <-> non-volatile without copy constructors /
assignment operators that do that, which I'd rather avoid.
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* main.c (handle_command_errors): Remove volatile qualifier from
parameter.
commit 6c63c96a22d216fb5d51c5d93646066d29e08ea1
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 14:50:05 2015 +0000
more making TRY/CATCH callers look more like real C++ try/catch blocks
All these were caught by actually making TRY/CATCH use try/catch
behind the scenes, which then resulted in the build failing (on x86_64
Fedora 20) because there was code between the try and catch blocks.
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* breakpoint.c (save_breakpoints): Adjust to avoid code between
TRY and CATCH.
* gdbtypes.c (safe_parse_type): Remove empty line.
(types_deeply_equal):
* guile/scm-frame.c (gdbscm_frame_name):
* linux-thread-db.c (find_new_threads_once):
* python/py-breakpoint.c (bppy_get_commands):
* record-btrace.c (record_btrace_insert_breakpoint)
(record_btrace_remove_breakpoint, record_btrace_start_replaying)
(record_btrace_start_replaying): Adjust to avoid code between TRY
and CATCH.
commit 492d29ea1c9a8b2c7d5193908119a4e27c045687
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 15:14:14 2015 +0000
Split TRY_CATCH into TRY + CATCH
This patch splits the TRY_CATCH macro into three, so that we go from
this:
~~~
volatile gdb_exception ex;
TRY_CATCH (ex, RETURN_MASK_ERROR)
{
}
if (ex.reason < 0)
{
}
~~~
to this:
~~~
TRY
{
}
CATCH (ex, RETURN_MASK_ERROR)
{
}
END_CATCH
~~~
Thus, we'll be getting rid of the local volatile exception object, and
declaring the caught exception in the catch block.
This allows reimplementing TRY/CATCH in terms of C++ exceptions when
building in C++ mode, while still allowing to build GDB in C mode
(using setjmp/longjmp), as a transition step.
TBC, after this patch, is it _not_ valid to have code between the TRY
and the CATCH blocks, like:
TRY
{
}
// some code here.
CATCH (ex, RETURN_MASK_ERROR)
{
}
END_CATCH
Just like it isn't valid to do that with C++'s native try/catch.
By switching to creating the exception object inside the CATCH block
scope, we can get rid of all the explicitly allocated volatile
exception objects all over the tree, and map the CATCH block more
directly to C++'s catch blocks.
The majority of the TRY_CATCH -> TRY+CATCH+END_CATCH conversion was
done with a script, rerun from scratch at every rebase, no manual
editing involved. After the mechanical conversion, a few places
needed manual intervention, to fix preexisting cases where we were
using the exception object outside of the TRY_CATCH block, and cases
where we were using "else" after a 'if (ex.reason) < 0)' [a CATCH
after this patch]. The result was folded into this patch so that GDB
still builds at each incremental step.
END_CATCH is necessary for two reasons:
First, because we name the exception object in the CATCH block, which
requires creating a scope, which in turn must be closed somewhere.
Declaring the exception variable in the initializer field of a for
block, like:
#define CATCH(EXCEPTION, mask) \
for (struct gdb_exception EXCEPTION; \
exceptions_state_mc_catch (&EXCEPTION, MASK); \
EXCEPTION = exception_none)
would avoid needing END_CATCH, but alas, in C mode, we build with C90,
which doesn't allow mixed declarations and code.
Second, because when TRY/CATCH are wired to real C++ try/catch, as
long as we need to handle cleanup chains, even if there's no CATCH
block that wants to catch the exception, we need for stop at every
frame in the unwind chain and run cleanups, then rethrow. That will
be done in END_CATCH.
After we require C++, we'll still need TRY/CATCH/END_CATCH until
cleanups are completely phased out -- TRY/CATCH in C++ mode will
save/restore the current cleanup chain, like in C mode, and END_CATCH
catches otherwise uncaugh exceptions, runs cleanups and rethrows, so
that C++ cleanups and exceptions can coexist.
IMO, this still makes the TRY/CATCH code look a bit more like a
newcomer would expect, so IMO worth it even if we weren't considering
C++.
gdb/ChangeLog.
2015-03-07 Pedro Alves <palves@redhat.com>
* common/common-exceptions.c (struct catcher) <exception>: No
longer a pointer to volatile exception. Now an exception value.
<mask>: Delete field.
(exceptions_state_mc_init): Remove all parameters. Adjust.
(exceptions_state_mc): No longer pop the catcher here.
(exceptions_state_mc_catch): New function.
(throw_exception): Adjust.
* common/common-exceptions.h (exceptions_state_mc_init): Remove
all parameters.
(exceptions_state_mc_catch): Declare.
(TRY_CATCH): Rename to ...
(TRY): ... this. Remove EXCEPTION and MASK parameters.
(CATCH, END_CATCH): New.
All callers adjusted.
gdb/gdbserver/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
Adjust all callers of TRY_CATCH to use TRY/CATCH/END_CATCH
instead.
commit ece957c859c00fbea7152a2275674d7061dc468a
Author: Tom Tromey <tromey@redhat.com>
Date: Sat Mar 7 14:50:04 2015 +0000
quit_force: Replace TRY_CATCH wrapper macros
More preparation for running the TRY_CATCH->TRY/CATCH conversion
script.
gdb/ChangeLog:
2015-03-07 Tom Tromey <tromey@redhat.com>
* top.c (quit_force): Inline and delete DO_TRY, DO_PRINT_EX.
commit 7556d4a4f6c3181204e9575c08c661a632cafb5d
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 14:50:04 2015 +0000
Normalize TRY_CATCH exception handling block
This normalizes some exception catch blocks that check for ex.reason
to look like this:
~~~
volatile gdb_exception ex;
TRY_CATCH (ex, RETURN_MASK_ALL)
{
...
}
if (ex.reason < 0)
{
...
}
~~~
This is a preparation step for running a script that converts all
TRY_CATCH uses to look like this instead:
~~~
TRY
{
...
}
CATCH (ex, RETURN_MASK_ALL)
{
...
}
END_CATCH
~~~
The motivation for that change is being able to reimplent TRY/CATCH in
terms of C++ try/catch.
This commit makes it so that:
- no condition other than ex.reason < 0 is checked in the if
predicate
- there's no "else" block to check whether no exception was caught
- there's no code between the TRY_CATCH (TRY) block and the
'if (ex.reason < 0)' block (CATCH).
- the exception object is no longer referred to outside the if/catch
block. Note the local volatile exception objects that are
currently defined inside functions that use TRY_CATCH will
disappear. In cases it's more convenient to still refer to the
exception outside the catch block, a new non-volatile local is
added and copy to that object is made within the catch block.
The following patches should make this all clearer.
gdb/ChangeLog:
2015-03-07 Pedro Alves <palves@redhat.com>
* amd64-tdep.c (amd64_frame_cache, amd64_sigtramp_frame_cache)
(amd64_epilogue_frame_cache): Normal exception handling code.
* break-catch-throw.c (check_status_exception_catchpoint)
(re_set_exception_catchpoint): Ditto.
* cli/cli-interp.c (safe_execute_command):
* cli/cli-script.c (script_from_file): Ditto.
* compile/compile-c-symbols.c (generate_c_for_for_one_variable):
Ditto.
* compile/compile-object-run.c (compile_object_run): Ditto.
* cp-abi.c (baseclass_offset): Ditto.
* cp-valprint.c (cp_print_value): Ditto.
* exceptions.c (catch_exceptions_with_msg):
* frame-unwind.c (frame_unwind_try_unwinder): Ditto.
* frame.c (get_frame_address_in_block_if_available): Ditto.
* i386-tdep.c (i386_frame_cache, i386_epilogue_frame_cache)
(i386_sigtramp_frame_cache): Ditto.
* infcmd.c (post_create_inferior): Ditto.
* linespec.c (parse_linespec, find_linespec_symbols):
* p-valprint.c (pascal_object_print_value): Ditto.
* parse.c (parse_expression_for_completion): Ditto.
* python/py-finishbreakpoint.c (bpfinishpy_init): Ditto.
* remote.c (remote_get_noisy_reply): Ditto.
* s390-linux-tdep.c (s390_frame_unwind_cache): Ditto.
* solib-svr4.c (solib_svr4_r_map): Ditto.
commit f873665f447ee4e36883e3122a4e35c2cd049045
Author: Pedro Alves <palves@redhat.com>
Date: Sat Mar 7 14:52:22 2015 +0000
Fix mail address format of a couple recent ChangeLog entries
commit f6162ff58ec27d86814c015f80828ff410f698e7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 7 00:00:08 2015 +0000
Automatic date update in version.in
commit 60a191edda5bb9c189df43542ab249ea530a3c73
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Mar 6 14:14:27 2015 +0000
Use show_debug_regs as a boolean
I happen to see that show_debug_regs is used as an arithmetic type,
but it should be a boolean,
if (show_debug_regs > 1)
On the other hand, GDB RSP only allows setting it to either 0 or 1,
so it makes no sense to check whether it is greater than 1. This
patch fixes it.
gdb/gdbserver:
2015-03-06 Yao Qi <yao.qi@linaro.org>
* linux-aarch64-low.c (aarch64_insert_point): Use
show_debug_regs as a boolean.
(aarch64_remove_point): Likewise.
commit 65164438aaf163aee0de40bcfab87dfd58f47b6b
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 6 09:46:15 2015 +0000
Fix an undefined 32-bit right shift by replacing it with two 16-bit right shifts.
PR binutils/17765
* elflink.c (put_value): Like previous delta, but for the 32-bit
case.
commit 61012eef8463764ccd9117dc1c9bc43cc452b7cc
Author: Gary Benson <gbenson@redhat.com>
Date: Fri Mar 6 09:42:06 2015 +0000
New common function "startswith"
This commit introduces a new inline common function "startswith"
which takes two string arguments and returns nonzero if the first
string starts with the second. It also updates the 295 places
where this logic was written out longhand to use the new function.
gdb/ChangeLog:
* common/common-utils.h (startswith): New inline function.
All places where this logic was used updated to use the above.
commit e80417caef36c7d5e3d1da6a3b396a872d9d7201
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 6 00:00:08 2015 +0000
Automatic date update in version.in
commit 9494d2199f5ce0cf2a4cf5628f23ae91d933955d
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 5 23:39:46 2015 +0000
gdb.base/bp-permanent.exp: Tighten regex
Trying to fix a permanent breakpoints bug, I broke "next" over a
regular breakpoint. "next" would immediately hit the breakpoint the
program was already stopped at. But, the "next over setup" test
failed to notice this and still issued a pass. That's because the
regex matches "testsuite" in:
Breakpoint 2 at 0x400687: file src/gdb/testsuite/gdb.base/bp-permanent.c, line 46.
gdb/testsuite/ChangeLog:
2015-03-05 Pedro Alves <palves@redhat.com>
* gdb.base/bp-permanent.exp: Tighten "next over setup" regex.
commit 68901c4d439ebceecab927932c17ea1504747c02
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 5 23:39:45 2015 +0000
PR gdb/18002: Fix reinsert of a permanent breakpoints
When we find out that a breakpoint is set on top of a program
breakpoint, we mark it as "permanent". E.g.,:
...
if (bp_loc_is_permanent (loc))
{
loc->inserted = 1;
loc->permanent = 1;
}
...
Note we didn't fill in the breakpoint's shadow (shadow_len remains 0).
In case the target claims support for evaluating breakpoint
conditions, GDB sometimes reinserts breakpoints that are already
inserted (to update the conditions on the target side). Since GDB
doesn't know whether the target supports evaluating conditions _of_
software breakpoints (vs hardware breakpoints, etc.) until it actually
tries it, if the target doesn't actually support z0 breakpoints, GDB
ends up reinserting a GDB-managed software/memory breakpoint
(mem-break.c).
And that is the case that is buggy: breakpoints that are marked
inserted contribute their shadows (if any) to the memory returned by
target_read_memory, to mask out breakpoints. Permanent breakpoints
are always marked as inserted. So if the permanent breakpoint doesn't
have a shadow yet in its shadow buffer, but we set shadow_len before
calling target_read_memory, then the still clear shadow_contents
buffer will be used by the breakpoint masking code... And then from
there on, the permanent breakpoint has a broken shadow buffer, and
thus any memory read out of that address will read bogus code, and
many random bad things fall out from that.
The fix is just to set shadow_len at the same time shadow_contents is
set, not one before and another after...
Fixes all gdb.base/bp-permanent.exp FAILs on PPC64 GNU/Linux gdbserver
and probably any other gdbserver port that doesn't do z0 breakpoints.
gdb/ChangeLog:
2015-03-05 Pedro Alves <palves@redhat.com>
PR gdb/18002
* mem-break.c (default_memory_insert_breakpoint): Set shadow_len
after reading the breakpoint's shadow memory.
commit 41cd1ad1b9760ba962fde607ac218b5af760dfbf
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 5 17:26:10 2015 +0000
Fix a potentially undefined right shift by replacing it with two smaller right shifts.
PR binutils/17765
* elflink.c (put_value): Avoid using an undefined shift
operation.
commit 4fd77a3d12291cd9351e1f776a5ade11f99a28ac
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 5 16:45:15 2015 +0000
Extend description of --add-gnu-debuglink option to explain why the file must exist.
PR binutils/18064
* doc/binutils.texi (objcopy): Extend description of
--add-gnu-debuglink option to explain that the separate debug info
file must exist. Add a description of what to do if the debug
info file is built in one place but then installed into a separate
location.
commit 2dcb2b1a4555c61d33dc9db264d824132b532f25
Author: Mark Kettenis <kettenis@gnu.org>
Date: Thu Mar 5 17:12:42 2015 +0100
Enable rthreads support on OpenBSD/hppa
gdb/
2015-03-05 Mark Kettenis <kettenis@gnu.org>
* hppabsd-nat.c: Remove file.
* hppaobsd-nat.c: New file.
* Makefile.in (ALLDEPFILES): Remove hppabsd-nat.c. Add
hppaobsd-nat.c.
* config/pa/obsd.mh (NATDEPFILES): Replace hppabsd-nat.o with
hppaobsd-nat.o.
commit beb8418f4799b50ce414b7a63ac7a2a363dc8a05
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 5 07:52:41 2015 -0800
Remove typename on elfcpp::Elf_types<size>::Elf_Addr
GCC 4.2 complains:
binutils/gold/object.cc:3261: error: using âtypenameâ outside of template
This patch removes typename. It works with both GCC 4.2 and 4.8.
* output.cc (Relobj::initialize_input_to_output_map<size>):
Remove typename on elfcpp::Elf_types<size>::Elf_Addr.
commit 81fb971a3d8626d7e051ff5df807442c8d233329
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 5 15:13:08 2015 +0000
Fixes PR 17994 - which reported that dlltool was not deleting temporary files if it encounters a fatal error.
PR binutils/17994
* dlltool.c (temp_file_to_remove): New local array.
(unlink_temp_files): New functions - unlinks any file in the
temp_file_to_remove array, unless dotdeltemps is set.
(gen_exp_file): Add temp files to array.
(make_head): Likewise.
(make_delay_head): Likewise.
(make_tail): Likewise.
(gen_lib_file): Call unlink_temp_files.
commit ca3fe95e469b9daec153caa2c90665f5daaec2b5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 5 06:34:39 2015 -0800
Add extern_protected_data and set it for x86
With copy relocation, address of protected data defined in the shared
library may be external. This patch adds extern_protected_data and
changes _bfd_elf_symbol_refs_local_p to return false for protected data
if extern_protected_data is true.
bfd/
PR ld/pr15228
PR ld/pr17709
* elf-bfd.h (elf_backend_data): Add extern_protected_data.
* elf32-i386.c (elf_backend_extern_protected_data): New.
Defined to 1.
* elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
* elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
copy relocs against protected symbols if extern_protected_data
is true.
(_bfd_elf_symbol_refs_local_p): Don't return true on protected
non-function symbols if extern_protected_data is true.
* elfxx-target.h (elf_backend_extern_protected_data): New.
Default to 0.
(elfNN_bed): Initialize extern_protected_data with
elf_backend_extern_protected_data.
ld/testsuite/
PR ld/pr15228
PR ld/pr17709
* ld-i386/i386.exp (i386tests): Add a test for PR ld/17709.
* ld-i386/pr17709-nacl.rd: New file.
* ld-i386/pr17709.rd: Likewise.
* ld-i386/pr17709a.s: Likewise.
* ld-i386/pr17709b.s: Likewise.
* ld-i386/protected3.d: Updated.
* ld-i386/protected3.s: Likewise.
* ld-x86-64/pr17709-nacl.rd: New file.
* ld-x86-64/pr17709.rd: Likewise.
* ld-x86-64/pr17709a.s: Likewise.
* ld-x86-64/pr17709b.s: Likewise.
* ld-x86-64/protected3.d: Updated.
* ld-x86-64/protected3.s: Likewise.
* ld-x86-64/x86-64.exp (x86_64tests): Add a test for PR ld/17709.
commit a26de52c63a8b4da94e8e1c8b308b938b2434808
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 5 13:04:33 2015 +0000
Fixes a thinko in the implementation of the V850 -m8byte-align and -m4byte-align command line options.
* config/tc-v850.c (md_parse_option): Fix code to set or clear
EF_RH850_DATA_ALIGN8 bit in ELF header, based upon the use of the
-m8byte-align and -m4byte-align command line options.
commit 425bd9e1bb32b25881dd20d76678d041f7bf04f8
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 5 12:14:26 2015 +0000
Allows the binutils to cope with PE binaries where the section addresses have been changed, but the DWARF debug info has not been altered.
PR binutils/18025
* coffgen.c (coff_find_nearest_line_with_names): If the dwarf2
lookup fails, check for an address bias in the dwarf info, and if
one exists, retry the lookup with the biased value.
* dwarf2.c (_bfd_dwarf2_find_symbol_bias): New function.
Determines if a bias exists bewteen the addresses of functions
based on DWARF information vs symbol table information.
* libbfd-in.h (_bfd_dwarf2_find_symbol_bias): Prototype.
* libbfd.h: Regenerate.
commit f5771b1d96f844e0767a15b258b2de2d4cc52123
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 5 10:24:58 2015 +0000
Fix Windows/SPU/NTO/Lynx gdbserver builds
I forgot to update these target_ops instances when I added these new
hooks.
I confirmed mingw32-w64 builds again at least.
gdb/gdbserver/ChangeLog:
2015-03-05 Pedro Alves <palves@redhat.com>
* lynx-low.c (lynx_target_ops): Install NULL hooks for
stopped_by_sw_breakpoint, supports_stopped_by_sw_breakpoint,
stopped_by_hw_breakpoint, supports_stopped_by_hw_breakpoint.
* nto-low.c (nto_target_ops): Likewise.
* spu-low.c (spu_target_ops): Likewise.
* win32-low.c (win32_target_ops): Likewise.
commit 7e848b1a6030a0eab1bb830ab02f9f4eef090961
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 5 00:00:08 2015 +0000
Automatic date update in version.in
commit 48c734280a17a1910ac484bd91a36792fb0041e1
Author: Cary Coutant <ccoutant@google.com>
Date: Wed Mar 4 15:17:09 2015 -0800
Fix a race condition when setting default target for ARM targets.
gold/
* parameters.cc (Parameters::set_target_once): Call
Target::select_as_default_target just once from here...
(set_parameters_target): ...instead of from here.
commit dbe40a889191708b6e32441b1c64937844645574
Author: Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
Date: Wed Mar 4 15:10:18 2015 -0800
Remove empty class Merge_map.
2015-03-02 Rafael Ãvila de EspÃndola <rafael.espindola@gmail.com>
* ehframe.cc (Cie::set_output_offset): Pass in and use a
Output_section_data instead of a Merge_map.
(Eh_frame::Eh_frame): Don't initialize merge_map_.
(Eh_frame::read_cie): Use add_merge_mapping instead of
Merge_map::add_mapping.
(Eh_frame::read_fde): Ditto.
(Eh_frame::set_final_data_size): Use this instead of this->merge_map_.
(Eh_frame::do_output_offset): Use merge_output_offset istead of
merge_map_->get_output_offset.
(Eh_frame::do_is_merge_section_for): Delete.
* ehframe.h (Fde::add_mapping): Pass in and use a Output_section_data
instead of a Merge_map.
(Cie::set_output_offset): Pass in a Output_section_data instead of a
Merge_map.
(Eh_frame::do_is_merge_section_for): Delete.
(Eh_frame::merge_map_): Delete.
* merge.cc (Object_merge_map::get_or_make_input_merge_map): Pass in
and use a Output_section_data instead of a Merge_map.
(Object_merge_map::add_mapping): Ditto.
(Object_merge_map::get_output_offset): Remove the merge_map argument.
(Object_merge_map::is_merge_section_for): Pass in and use a
Output_section_data instead of a Merge_map.
(Merge_map): Delete.
(Output_merge_base::do_output_offset): Use merge_output_offset instead
of merge_map_.get_output_offset.
(Output_merge_base::do_is_merge_section_for): Delete.
(Output_merge_data::do_add_input_section): Use
object->add_merge_mapping instead of add_mapping.
(Output_merge_string<Char_type>::finalize_merged_data): Ditto.
* merge.h (Merge_map): Delete forward declaration.
(Object_merge_map::add_mapping): Pass in and use a Output_section_data
instead of a Merge_map.
(Object_merge_map::get_output_offset): Remove the merge_map argument.
(Object_merge_map::is_merge_section_for): Pass in and use a
Output_section_data instead of a Merge_map.
(Input_merge_map::Object_merge_map::merge_map): Replace with
output_data.
(Object_merge_map::get_or_make_input_merge_map): Pass in and use a
Output_section_data instead of a Merge_map.
(Merge_map): Delete.
(Output_merge_base::Output_merge_base): Don't initialize merge_map_.
(Output_merge_base::do_is_merge_section_for): Delete.
(Output_merge_base::add_mapping): Delete.
(Output_merge_base::merge_map_): Delete.
* object.cc (Relobj::initialize_input_to_output_map): New.
(Relobj::initialize_input_to_output_map): New.
(Relobj::merge_output_offset): New.
(Relobj::is_merge_section_for): New.
(Relobj::initialize_input_to_output_map): Instantiate for 32 and 64
bits.
* object.h (Relobj::merge_map): Delete.
(initialize_input_to_output_map): New.
(set_merge_map): Delete.
(add_merge_mapping): New.
(merge_output_offset): New.
(is_merge_section_for): New.
* output.cc (Output_section::Input_section::is_merge_section_for):
Use object->is_merge_section_for.
* output.h (Output_section_data::is_merge_section_for): Delete.
(Output_section_data::do_is_merge_section_for): Delete.
* reloc.cc (Merged_symbol_value<size>::initialize_input_to_output_map):
Use object->initialize_input_to_output_map.
(Merged_symbol_value<size>::value_from_output_section): Use
object->merge_output_offset.
commit a8d9763abd6c461d646034537633fb03f5eabfd1
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Wed Mar 4 11:37:31 2015 -0500
Accept all-stop alternative in mi_expect_interrupt
When interrupting a thread in non-stop vs all-stop, the signal given in
the MI *stopped event is not the same. Currently, mi_expect_interrupt only
accepts the case for non-stop, so this adds the alternative for all-stop.
gdb/testsuite/ChangeLog:
* lib/mi-support.exp (mi_expect_interrupt): Accept
alternative event for when in all-stop mode.
commit 527a273ac1b6221cb37f601d211093233afc7aaf
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:17 2015 +0000
garbage collect target_decr_pc_after_break
record-btrace was the only target making use of this, and it no longer
uses it.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* target.h (struct target_ops) <to_decr_pc_after_break>: Delete.
(target_decr_pc_after_break): Delete declaration.
* target.c (default_target_decr_pc_after_break)
(target_decr_pc_after_break): Delete.
* linux-nat.c (check_stopped_by_breakpoint, linux_nat_wait_1): Use
gdbarch_decr_pc_after_break instead of target_decr_pc_after_break.
* linux-thread-db.c (check_event): Likewise.
* infrun.c (adjust_pc_after_break): Likewise.
* darwin-nat.c (cancel_breakpoint): Likewise.
* aix-thread.c (aix_thread_wait): Likewise.
* target-delegates.c: Regenerate.
commit 3e572f71047489eb4f311b0fa15293a7ce83f871
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:17 2015 +0000
gdbserver/Linux: Use TRAP_BRKPT/TRAP_HWBPT
This patch adjusts gdbserver's Linux backend to tell gdbserver core
(and ultimately GDB) whether a trap was caused by a breakpoint.
It teaches the backend to get that information out of the si_code of
the SIGTRAP siginfo.
gdb/gdbserver/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* linux-low.c (check_stopped_by_breakpoint) [USE_SIGTRAP_SIGINFO]:
Decide whether a breakpoint triggered based on the SIGTRAP's
siginfo.si_code.
(thread_still_has_status_pending_p) [USE_SIGTRAP_SIGINFO]: Don't check whether a
breakpoint is inserted if relying on SIGTRAP's siginfo.si_code.
(linux_low_filter_event): Check for breakpoints before checking
watchpoints.
(linux_wait_1): Don't re-increment the PC if relying on SIGTRAP's
siginfo.si_code.
(linux_stopped_by_sw_breakpoint)
(linux_supports_stopped_by_sw_breakpoint)
(linux_stopped_by_hw_breakpoint)
(linux_supports_stopped_by_hw_breakpoint): New functions.
(linux_target_ops): Install new target methods.
commit 1ec68e26c982a256df03d22dce072b88ab117a73
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:16 2015 +0000
gdbserver: Support the "swbreak"/"hwbreak" stop reasons
This patch teaches the core of gdbserver about the new "swbreak" and
"hwbreak" stop reasons, and adds the necessary hooks a backend needs
to implement to support the feature.
gdb/gdbserver/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* remote-utils.c (prepare_resume_reply): Report swbreak/hbreak.
* server.c (swbreak_feature, hwbreak_feature): New globals.
(handle_query) <qSupported>: Handle "swbreak+" and "hwbreak+".
(captured_main): Clear swbreak_feature and hwbreak_feature.
* server.h (swbreak_feature, hwbreak_feature): Declare.
* target.h (struct target_ops) <stopped_by_sw_breakpoint,
supports_stopped_by_sw_breakpoint, stopped_by_hw_breakpoint,
supports_stopped_by_hw_breakpoint>: New fields.
(target_supports_stopped_by_sw_breakpoint)
(target_stopped_by_sw_breakpoint)
(target_supports_stopped_by_hw_breakpoint)
(target_stopped_by_hw_breakpoint): Declare.
commit faf09f0119da40d9b408021ad5665a906e00ee59
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:16 2015 +0000
Linux native: Use TRAP_BRKPT/TRAP_HWBPT
This patch adjusts the native Linux target backend to tell the core
whether a trap was caused by a breakpoint.
It teaches the target to get that information out of the si_code of
the SIGTRAP siginfo.
Tested on x86-64 Fedora 20, s390 RHEL 7, and PPC64 Fedora 18. An
earlier version was tested on ARM Fedora 21.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* linux-nat.c (save_sigtrap): Check for breakpoints before
checking watchpoints.
(status_callback) [USE_SIGTRAP_SIGINFO]: Don't check whether a
breakpoint is inserted if relying on SIGTRAP's siginfo.si_code.
(check_stopped_by_breakpoint) [USE_SIGTRAP_SIGINFO]: Decide whether
a breakpoint triggered based on the SIGTRAP's siginfo.si_code.
(linux_nat_stopped_by_sw_breakpoint)
(linux_nat_supports_stopped_by_sw_breakpoint)
(linux_nat_stopped_by_hw_breakpoint)
(linux_nat_supports_stopped_by_hw_breakpoint): New functions.
(linux_nat_wait_1): Don't re-increment the PC if relying on
SIGTRAP's siginfo->si_code.
(linux_nat_add_target): Install new target methods.
* linux-thread-db.c (check_event): Don't account for breakpoint PC
offset if the target already adjusted the PC.
* nat/linux-ptrace.h (USE_SIGTRAP_SIGINFO): New.
(GDB_ARCH_TRAP_BRKPT): New.
(TRAP_HWBKPT): Define if not already defined.
commit f7e6eed5283bb5c8a3598dd986dc922b9a794f58
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:16 2015 +0000
remote+docs: software/hardware breakpoint traps
This adjusts target remote to tell the core whether a trap was caused
by a breakpoint.
To that end, the patch teaches GDB about new RSP stop reasons "T05
swbreak" and "T05 hwbreak", that remote targets report back to GDB,
similarly to how "T05 watch" indicates a stop caused by a watchpoint.
Because targets that can report these events are expected to
themselves adjust the PC after a software breakpoint, these new stop
reasons must only be reported if the stub is talking to a GDB that
understands them. Because of that, the use of the new stop reasons
needs to be handshaked on initial connection, using the qSupported
mechanism. GDB simply sends "swbreak+" in its qSupports query, and
the stub reports back "swbreak+" too.
Because these new stop reasons are required to fix a fundamental
non-stop mode problem, this commit extends the remote non-stop intro
section in the manual, documenting the events as required.
To be clear, GDB will still cope with remote targets that don't
support these new stop reasons; it will behave just like today.
Tested on x86-64 Fedora 20, native and gdbserver.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* NEWS: Mention the new "swbreak" and "hwbreak" stop reasons.
* remote.c (struct remote_state) <remote_stopped_by_watchpoint_p>:
Delete field.
<stop_reason>: New field.
(PACKET_swbreak_feature, PACKET_hwbreak_feature): New enum values.
(packet_set_cmd_state): New function.
(remote_protocol_features): Register the "swbreak" and "hwbreak"
features.
(remote_query_supported): If not disabled with the corresponding
"set remote foo-packet" command, report support for the swbreak
and hwbreak features.
(struct stop_reply) <remote_stopped_by_watchpoint_p>: Delete
field.
<stop_reason>: New field.
(remote_parse_stop_reply): Handle "swbreak" and "hwbreak".
(remote_wait_as): Adjust.
(remote_stopped_by_sw_breakpoint)
(remote_supports_stopped_by_sw_breakpoint)
(remote_stopped_by_hw_breakpoint)
(remote_supports_stopped_by_hw_breakpoint): New functions.
(remote_stopped_by_watchpoint): New function.
(init_remote_ops): Install them.
(_initialize_remote): Register new "set/show remote
swbreak-feature-packet" and "set/show remote
swbreak-feature-packet" commands.
gdb/doc/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* gdb.texinfo (Remote Configuration): Document the "set/show
remote swbreak-feature-packet" and "set/show remote
hwbreak-feature-packet" commands.
(Packets) <Z0>: Add cross link to the "swbreak" stop reason's
decription.
(Stop Reply Packets): Document the swbreak and hwbreak stop
reasons.
(General Query Packets): Document the swbreak and hwbreak
qSupported features.
(Remote Non-Stop): Explain that swbreak and hwbreak are required.
commit 9e8915c6cee5c37637521b424d723e990e06d597
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:15 2015 +0000
record-full/record-btrace: software/hardware breakpoint trap
This adjusts the record targets to tell the core whether a trap was
caused by a breakpoint. Targets that can do this should report
breakpoint traps with the PC already adjusted, so this removes the
re-incrementing record-full was doing.
These targets need to be adjusted before process_stratum targets
beneath are, otherwise target_supports_stopped_by_sw_breakpoint,
etc. would fall through to the target beneath while
recording/replaying, and the core would get confused.
Tested on x86-64 Fedora 20, native and gdbserver.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* btrace.h: Include target/waitstatus.h.
(struct btrace_thread_info) <stop_reason>: New field.
* record-btrace.c (record_btrace_step_thread): Use
record_check_stopped_by_breakpoint instead of breakpoint_here_p.
(record_btrace_decr_pc_after_break): Delete.
(record_btrace_stopped_by_sw_breakpoint)
(record_btrace_supports_stopped_by_sw_breakpoint)
(record_btrace_stopped_by_hw_breakpoint)
(record_btrace_supports_stopped_by_hw_breakpoint): New functions.
(init_record_btrace_ops): Install them.
* record-full.c (record_full_hw_watchpoint): Delete and replace
with ...
(record_full_stop_reason): ... this throughout.
(record_full_exec_insn): Adjust.
(record_full_wait_1): Adjust. No longer re-increment the PC.
(record_full_wait_1): Adjust. Use
record_check_stopped_by_breakpoint instead of breakpoint_here_p.
(record_full_stopped_by_watchpoint): Adjust.
(record_full_stopped_by_sw_breakpoint)
(record_full_supports_stopped_by_sw_breakpoint)
(record_full_supports_stopped_by_sw_breakpoint)
(record_full_stopped_by_hw_breakpoint)
(record_full_supports_stopped_by_hw_breakpoint): New functions.
(init_record_full_ops, init_record_full_core_ops): Install them.
* record.c (record_check_stopped_by_breakpoint): New function.
* record.h: Include target/waitstatus.h.
(record_check_stopped_by_breakpoint): New declaration.
commit 15c66dd626380fbd7db6538b0c21d1fe86dda6c9
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:15 2015 +0000
enum lwp_stop_reason -> enum target_stop_reason
We're going to need the same enum as enum lwp_stop_reason in more
targets, so this promotes it to common code.
gdb/gdbserver/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
enum lwp_stop_reason -> enum target_stop_reason
* linux-low.c (check_stopped_by_breakpoint): Adjust.
(thread_still_has_status_pending_p, check_stopped_by_watchpoint)
(linux_wait_1, stuck_in_jump_pad_callback)
(move_out_of_jump_pad_callback, linux_resume_one_lwp)
(linux_stopped_by_watchpoint):
* linux-low.h (enum lwp_stop_reason): Delete.
(struct lwp_info) <stop_reason>: Now an enum target_stop_reason.
* linux-x86-low.c (x86_linux_prepare_to_resume): Adjust.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
enum lwp_stop_reason -> enum target_stop_reason
* linux-nat.c (linux_resume_one_lwp, check_stopped_by_watchpoint)
(linux_nat_stopped_by_watchpoint, status_callback)
(linux_nat_wait_1): Adjust.
* linux-nat.h (enum lwp_stop_reason): Delete.
(struct lwp_info) <stop_reason>: Now an enum target_stop_reason.
* x86-linux-nat.c (x86_linux_prepare_to_resume): Adjust.
* target/waitstatus.h (enum target_stop_reason): New.
commit 1cf4d9513af10d419c71099ae644f07b6724642b
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 20:41:15 2015 +0000
Teach GDB about targets that can tell whether a trap is a breakpoint event
The moribund locations heuristics are problematic. This patch teaches
GDB about targets that can reliably tell whether a trap was caused by
a software or hardware breakpoint, and thus don't need moribund
locations, thus bypassing all the problems that mechanism has.
The non-stop-fair-events.exp test is frequently failing currently.
E.g., see https://sourceware.org/ml/gdb-testers/2015-q1/msg03148.html.
The root cause is a fundamental problem with moribund locations. For
example, the stepped_breakpoint logic added by af48d08f breaks in this
case (which is what happens with that test):
- Step thread A, no breakpoint is set at PC.
- The kernel doesn't schedule thread A yet.
- Insert breakpoint at A's PC, for some reason (e.g., a step-resume
breakpoint for thread B).
- Kernel finally schedules thread A.
- thread A's stepped_breakpoint flag is not set, even though it now
stepped a breakpoint instruction.
- adjust_pc_after_break gets the PC wrong, because PC == PREV_PC, but
stepped_breakpoint is not set.
We needed the stepped_breakpoint logic to workaround moribund
locations, because otherwise adjust_pc_after_break could apply an
adjustment when it shouldn't just because there _used_ to be a
breakpoint at PC (a moribund breakpoint location). For example, on
x86, that's wrong if the thread really hasn't executed an int3, but
instead executed some other 1-byte long instruction. Getting the PC
adjustment wrong of course leads to the inferior executing the wrong
instruction.
Other problems with moribund locations are:
- if a true SIGTRAP happens to be raised when the program is
executing the PC that used to have a breakpoint, GDB will assume
that is a trap for a breakpoint that has recently been removed, and
thus we miss reporting the random signal to the user.
- to minimize that, we get rid of moribund location after a while.
That while is defined as just a certain number of events being
processed. That number of events sometimes passes by before a
delayed breakpoint is processed, and GDB confuses the trap for a
random signal, thus reporting the random trap. Once the user
resumes the thread, the program crashes because the PC was not
adjusted...
The fix for all this is to bite the bullet and get rid of heuristics
and instead rely on the target knowing accurately what caused the
SIGTRAP. The target/kernel/stub is in the best position to know what
that, because it can e.g. consult priviledged CPU flags GDB has no
access to, or by knowing which exception vector entry was called when
the instruction trapped, etc. Most debug APIs I've seen to date
report breakpoint hits as a distinct event in some fashion. For
example, on the Linux kernel, whether a breakpoint was executed is
exposed to userspace in the si_code field of the SIGTRAP's siginfo.
On Windows, the debug API reports a EXCEPTION_BREAKPOINT exception
code.
We needed to keep around deleted breakpoints in an on-the-side list
(the moribund locations) for two main reasons:
- Know that a SIGTRAP actually is a delayed event for a hit of a
breakpoint that was removed before the event was processed, and
thus should not be reported as a random signal.
- So we still do the decr_pc_after_break adjustment in that case, so
that the thread is resumed at the correct address.
In the new model, if GDB processes an event the target tells is a
breakpoint trap, and GDB doesn't find the corresponding breakpoint in
its breakpoint tables, it means that event is a delayed event for a
breakpoint that has since been removed, and thus the event should be
ignored.
For the decr_pc_after_after issue, it ends up being much simpler that
on targets that can reliably tell whether a breakpoint trapped, for
the breakpoint trap to present the PC already adjusted. Proper
multi-threading support already implies that targets needs to be doing
decr_pc_after_break adjustment themselves, otherwise for example, in
all-stop if two threads hit a breakpoint simultaneously, and the user
does "info threads", he'll see the non-event thread that hit the
breakpoint stopped at the wrong PC.
This way (target adjusts) also ends up eliminating the need for some
awkward re-incrementing of the PC in the record-full and Linux targets
that we do today, and the need for the target_decr_pc_after_break
hook.
If the target always adjusts, then there's a case where GDB needs to
re-increment the PC. Say, on x86, an "int3" instruction that was
explicitly written in the program traps. In this case, GDB should
report a random SIGTRAP signal to the user, with the PC pointing at
the instruction past the int3, just like if GDB was not debugging the
program. The user may well decide to pass the SIGTRAP to the program
because the program being debugged has a SIGTRAP handler that handles
its own breakpoints, and expects the PC to be unadjusted.
Tested on x86-64 Fedora 20.
gdb/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* breakpoint.c (need_moribund_for_location_type): New function.
(bpstat_stop_status): Don't skipping checking moribund locations
of breakpoint types which the target tell caused a stop.
(program_breakpoint_here_p): New function, factored out from ...
(bp_loc_is_permanent): ... this.
(update_global_location_list): Don't create a moribund location if
the target supports reporting stops of the type of the removed
breakpoint.
* breakpoint.h (program_breakpoint_here_p): New declaration.
* infrun.c (adjust_pc_after_break): Return early if the target has
already adjusted the PC. Add comments.
(handle_signal_stop): If nothing explains a signal, and the target
tells us the stop was caused by a software breakpoint, check if
there's a breakpoint instruction in the memory. If so, adjust the
PC before presenting the stop to the user. Otherwise, ignore the
trap. If nothing explains a signal, and the target tells us the
stop was caused by a hardware breakpoint, ignore the trap.
* target.h (struct target_ops) <to_stopped_by_sw_breakpoint,
to_supports_stopped_by_sw_breakpoint, to_stopped_by_hw_breakpoint,
to_supports_stopped_by_hw_breakpoint>: New fields.
(target_stopped_by_sw_breakpoint)
(target_supports_stopped_by_sw_breakpoint)
(target_stopped_by_hw_breakpoint)
(target_supports_stopped_by_hw_breakpoint): Define.
* target-delegates.c: Regenerate.
commit be9957b82fa4e09c53521335c2a7dddf6d208309
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 17:23:55 2015 +0000
Fix gdb.threads/thread-specific-bp.exp race
Gary stumbled on this:
(gdb) PASS: gdb.threads/thread-specific-bp.exp: all-stop: continue to end
info threads
Id Target Id Frame
* 1 Thread 0x7ffff7fdb700 (LWP 13717) "thread-specific" end () at /home/gary/work/archer/startswith/src/gdb/testsuite/gdb.threads/thread-specific-bp.c:29
(gdb) FAIL: gdb.threads/thread-specific-bp.exp: all-stop: thread start is gone
info breakpoint
The problem is that "...archer/startswith/src..." has a "start" in it,
which matches the too-lax regex in the test.
Rather than tweaking the regex, we can just remove the whole "info
threads", like we removed similar ones in other files -- GDB nowadays
does this implicitly already, so things should work without it. Thus
removing this even improves testing here a bit.
gdb/testsuite/ChangeLog:
2015-03-04 Pedro Alves <palves@redhat.com>
* gdb.threads/thread-specific-bp.exp: Delete "info threads" test.
commit 79639e11323e209d3dfd1355abac3b83a87c6878
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 15:03:33 2015 +0000
follow-fork: don't lose the ptids as set by the target
This Linuxism has made its way into infrun.c, in the follow-fork code:
inferior_ptid = ptid_build (child_pid, child_pid, 0);
The OS-specific code should fill in the LWPID, TID parts with the
appropriate values, if any, and the core code should not be peeking at
the components of the ptids.
gdb/
2015-03-04 Pedro Alves <palves@redhat.com>
* infrun.c (follow_fork_inferior): Use the whole of the
inferior_ptid and pending_follow.related_pid ptids instead of
building ptids from the process components. Adjust verbose output
to use target_pid_to_str.
* linux-nat.c (linux_child_follow_fork): Use the whole of the
inferior_ptid and pending_follow.related_pid ptids instead of
building ptids from the process components.
commit d57be0f4420d42c62bb702f69c6d2a0dd5adef6a
Author: Mark Kettenis <kettenis@gnu.org>
Date: Wed Mar 4 15:36:03 2015 +0100
Stupid git!
Apparently fixing a typo while you're editing the commit message doesn't work.
commit 98fc70d642895b7b43f196e19a004e07bd5f16e7
Author: Yao Qi <yao.qi@linaro.org>
Date: Tue Mar 3 16:10:27 2015 +0000
Add linux-aarch64-low.c in SFILE
gdb/gdbserver:
2015-03-04 Yao Qi <yao.qi@linaro.org>
* Makefile.in (SFILES): Add linux-aarch64-low.c.
commit 4727d6136a997875c0f4a38bc7fde365474d4822
Author: Mark Kettenis <kettenis@gnu.org>
Date: Wed Mar 4 14:53:14 2015 +0100
Enable gdb.base/foll-fork.exp on OpenBSD
gdb/testsuite/
2015-03-04 Mark Kettenis <kettenis@gnu.org>
* gdb.base/foll-fork.exp: Enable on *-*-openbsd*.
commit e85e8e5effcfa1a1834fdbf899e167da6dccd2cd
Author: Mark Kettenis <kettenis@gnu.org>
Date: Wed Mar 4 14:22:42 2015 +0100
Make "catch fork" work on systems with PT_GET_PROCESS_STATE
These systems (OpenBSD and HP-UX 10.x) already support follow-fork
including the events needed to for "catch fork". This just makes
the upper layers realize this.
gdb/
2015-03-04 Mark Kettenis <kettenis@gnu.org>
* inf-ptrace.c [PT_GET_PROCESS_STATE]
(inf_ptrace_insert_fork_catchpoint): New function.
(inf_ptrace_remove_fork_catchpoint): New function.
(inf_ptrace_target) [PT_GET_PROCESS_STATE]: Install them.
commit 8ef229f32be156f374b8b5e3c63dba735a81fe55
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Mar 4 12:21:02 2015 +0000
[AArch64] Removing unused functions.
Removing a group of unused functions from the AArch64 BFD backend.
commit 8e2fe09f70e721bfd8aaa0690537640a44538f25
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Mon Mar 2 12:12:37 2015 +0000
[AArch64] Call abort() consistently in unhandled stub switch statements.
Ensure we hard stop via abort() for unhandled stub types rather than
continuing either silently (or noisly with a BFD_FAIL()).
Call abort() giving a hard stop rather than BFD_FAIL () for unhandled
stub types.
commit 87de11c05253566abb04479a4842cc934d0c822e
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 4 10:40:41 2015 +0100
S390: Name "invisible" registers with the empty string instead of NULL
When adding vector register support to GDB, s390_register_name() was
added to suppress the right halves of the first 16 vector registers.
However, that function returned NULL instead of an empty string in such
a case. This leads to an incomplete list of registers returned by
"complete info registers ", because completion stops at the first NULL
return value from user_reg_map_regnum_to_name().
gdb/ChangeLog:
* s390-linux-tdep.c (s390_register_name): Return empty string
instead of NULL for registers that shouldn't be visible.
commit c214c7cfd38006369e1da13644000ce2e180a5fa
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 4 10:40:40 2015 +0100
breakpoint-in-ro-region.exp: Support targets stopping in mid-line after "si"
On some targets each of the assignments "i = 0" in the C source for
"breakpoint-in-ro-region.exp" are compiled to a single instruction.
Then each "si" stops at the beginning of the next source line. But on
some other targets (like s390) such an assignment compiles to multiple
instructions. Then "si" may stop in mid-line, and GDB displays the PC
address in addition to the source line number. This was not considered
by the regexp for this case.
gdb/testsuite/ChangeLog:
* gdb.base/breakpoint-in-ro-region.exp (test_single_step): In the
regexps for GDB's current line display, accept a hex address
preceding the line number.
commit 6d74a497ba4fc2ba67142310a9fad42e035ac9a7
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 4 10:40:40 2015 +0100
catch-syscall.exp: Fix missing architecture name for s390:31-bit
For the "multiple targets" test in catch-syscall.exp, set the 'arch1'
variable to a valid string.
gdb/testsuite/ChangeLog:
* gdb.base/catch-syscall.exp (test_catch_syscall_multi_arch): Set
the 'arch1' variable for "s390*-linux*" targets.
commit d851a69aa2b4b6868c07386fd795521a0e93a09a
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 4 10:40:40 2015 +0100
S390: Fix syscall list for s390x
This patch fixes a typo that caused the wrong syscall XML file to be
used for s390x targets.
gdb/ChangeLog:
* s390-linux-tdep.c (s390_gdbarch_init): Use the correct syscall
XML file for 64-bit targets.
commit df88b70224175011abf2cd599d5eec6fb81a90b7
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Wed Mar 4 10:40:39 2015 +0100
S390: Place "s390:31-bit" after default arch in 64-bit arch list
On 64-bit platforms GDB did not include "s390:31-bit" in its list of
architecture names. This patch fixes that.
To determine the list of architecture names for S390,
gdbarch_printable_names() walks through the linked list of BFD arches
starting with the default S390 arch, which is "s390:64-bit" on 64-bit
platforms. But since "s390:64-bit" was at the end of that list, the
31-bit architecture was not reached. The patch swaps the elements of
that list on 64-bit platforms.
bfd/ChangeLog:
* cpu-s390.c (N): New macro.
(bfd_s390_31_arch): New. Define only if default target word size
is 64 bits. Otherwise define...
(bfd_390_64_arch): ...this. Make static.
(bfd_s390_arch): Define according to the default target word size.
Let the 'next' field point to the alternate arch.
commit 511aee7c3906063902415391f288460a2c116f26
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 4 09:13:49 2015 +0000
gdb.threads/clone-thread_db.c: Add missing includes and fix pthread_join call
This fixes:
> gdb compile failed, /gdb/testsuite/gdb.threads/clone-thread_db.c: In function 'main':
> /gdb/testsuite/gdb.threads/clone-thread_db.c:67:3: warning: implicit declaration of function 'alarm' [-Wimplicit-function-declaration]
> alarm (300);
> ^
> /gdb/testsuite/gdb.threads/clone-thread_db.c:69:3: warning: implicit declaration of function 'pthread_create' [-Wimplicit-function-declaration]
> pthread_create (&child, NULL, thread_fn, NULL);
> ^
> /gdb/testsuite/gdb.threads/clone-thread_db.c:70:3: warning: implicit declaration of function 'pthread_join' [-Wimplicit-function-declaration]
> pthread_join (child);
> ^
And then adding the missing headers revealed the pthread_join call was
incorrect. This probably fixes the crash we see on ppc64be, e.g., at
https://sourceware.org/ml/gdb-testers/2015-q1/msg04415.html
the logs there show:
...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x3fffb7ff54a0 (LWP 9275)]
0x00003fffb7f3ce74 in .pthread_join () from /lib64/libpthread.so.0
(gdb) FAIL: gdb.threads/clone-thread_db.exp: continue to end
...
Tested on x86_64 Fedora 20.
gdb/testsuite/
2015-03-04 Pedro Alves <palves@redhat.com>
* gdb.threads/clone-thread_db.c: Include unistd.h and pthread.h.
(main): Pass missing retval argument to pthread_join call.
commit e09ab7ac788fd5509adc40b86a3631a3028c1d33
Author: Richard Sandiford <richard.sandiford@arm.com>
Date: Wed Mar 4 09:08:49 2015 +0000
Allow MOVK for R_AARCH64_TLSLE_MOVW_TPREL_G{0,1}NC
bfd/
PR gas/17843
* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Expect
R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
to be used with MOVK rather than MOVZ.
gas/
PR gas/17843
* config/tc-aarch64.c (process_movw_reloc_info): Allow
R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
for MOVK.
gas/testsuite/
PR gas/17843
* gas/aarch64/tls.s, gas/aarch64/tls.d: Add test for
R_AARCH64_TLSLE_MOVW_TPREL_G0/R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
sequence.
ld/testsuite/
PR gas/17843
* ld-aarch64/tlsle.s, ld-aarch64/tlsle.d: New test.
* ld-aarch64/aarch64-elf.exp: Run it.
commit bb3d65e427e2cf3a2fbe322443d36336e03545da
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 4 00:00:08 2015 +0000
Automatic date update in version.in
commit 71eef2bd8dc3a37709908bf14a95c48b80c04c42
Author: DJ Delorie <dj@redhat.com>
Date: Tue Mar 3 17:49:44 2015 -0500
RL78 - fix ADDR16 relax
* elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if
there's a symbol.
commit b072f6c163b25ec90d592ca42aeb56bc88e8da0c
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue Mar 3 12:45:11 2015 -0500
Remove unused function declarations in target.h
find_default_create_inferior and find_default_attach were removed in b3ccfe11.
gdb/ChangeLog:
* target.h (find_default_create_inferior): Remove declaration.
(find_default_attach): Likewise.
commit c1593e4fa9901c65a32e85c3c5d3ec41598be887
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 3 16:28:15 2015 +0000
inf-ptrace.c: use ptid_get_pid when resuming all threads
In this case, we want to resume the entire process and not an
individual thread.
gdb/
2015-03-03 Pedro Alves <palves@redhat.com>
* inf-ptrace.c (inf_ptrace_resume): Remove spurious whitespace.
Use ptid_get_pid to get the overall process id when resuming all
threads.
commit a64c9f7b850554956083678dd1ef330dd9a7cf22
Author: Philippe Proulx <eeppeliteloop@gmail.com>
Date: Mon Mar 2 23:15:54 2015 -0500
Fix GDB/MI doc: duplicate syscall-entry under *stopped
gdb/doc/ChangeLog:
2015-03-03 Philippe Proulx eeppeliteloop@gmail.com
* gdb.texinfo (gdb/mi Async Records): Fix duplicate syscall-entry
under *stopped.
commit d8282f0eb10a1a5759bcca4582098a8369f508f8
Author: Jiong Wang <jiong.wang@arm.com>
Date: Tue Mar 3 15:00:59 2015 +0000
[ARM] Skip private symbol when doing objdump
2015-03-03 Jiong Wang <jiong.wang@arm.com>
opcode/
* arm-dis.c (arm_symbol_is_valid): Skip ARM private symbols.
binutils/testsuite/
* binutils-all/arm/rvct_symbol.s: New testcase.
* binutils-all/arm/objdump.exp: Run it.
commit 90ad5e1d4f34d02f437ec12d1b65d7252f5b7f1c
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 3 13:33:44 2015 +0000
Linux/ptrace: don't convert ptids when asking inf-ptrace layer to resume LWP
Ref: https://sourceware.org/ml/gdb-patches/2015-03/msg00060.html
The record-btrace target can hit an assertion here:
Breakpoint 1, record_btrace_fetch_registers (ops=0x974bfc0 <record_btrace_ops>,
regcache=0x9a0a798, regno=8) at gdb/record-btrace.c:1202
1202 gdb_assert (tp != NULL);
(gdb) p regcache->ptid
$3 = {pid = 23856, lwp = 0, tid = 0}
The problem is that the linux-nat layer converts the ptid to a
single-process ptid before passing the request down to the inf-ptrace
layer, which loses information, and then record-btrace can't find the
corresponding thread in GDB's thread list:
(gdb) bt
#0 record_btrace_fetch_registers (ops=0x974bfc0 <record_btrace_ops>, regcache=0x9a0a798, regno=8)
at gdb/record-btrace.c:1202
#1 0x083f4ee2 in delegate_fetch_registers (self=0x974bfc0 <record_btrace_ops>, arg1=0x9a0a798,
arg2=8) at gdb/target-delegates.c:149
#2 0x08406562 in target_fetch_registers (regcache=0x9a0a798, regno=8)
at gdb/target.c:3279
#3 0x08355255 in regcache_raw_read (regcache=0x9a0a798, regnum=8,
buf=0xbfffe6c0 "¨\003\222\tÃ8kIøæÿ¿HO5\b\035]")
at gdb/regcache.c:643
#4 0x083558a7 in regcache_cooked_read (regcache=0x9a0a798, regnum=8,
buf=0xbfffe6c0 "¨\003\222\tÃ8kIøæÿ¿HO5\b\035]")
at gdb/regcache.c:734
#5 0x08355de3 in regcache_cooked_read_unsigned (regcache=0x9a0a798, regnum=8, val=0xbfffe738)
at gdb/regcache.c:838
#6 0x0827a106 in i386_linux_resume (ops=0x9737ca0 <linux_ops_saved>, ptid=..., step=1,
signal=GDB_SIGNAL_0) at gdb/i386-linux-nat.c:670
#7 0x08280c12 in linux_resume_one_lwp (lp=0x9a0a5b8, step=1, signo=GDB_SIGNAL_0)
at gdb/linux-nat.c:1529
#8 0x08281281 in linux_nat_resume (ops=0x98da608, ptid=..., step=1, signo=GDB_SIGNAL_0)
at gdb/linux-nat.c:1708
#9 0x0850738e in record_btrace_resume (ops=0x98da608, ptid=..., step=1, signal=GDB_SIGNAL_0)
at gdb/record-btrace.c:1760
...
The fix is just to not lose information, and let the intact ptid reach
record-btrace.c.
Tested on x86-64 Fedora 20, -m32.
gdb/ChangeLog:
2015-03-03 Pedro Alves <palves@redhat.com>
* i386-linux-nat.c (i386_linux_resume): Get the ptrace PID out of
the lwp field of ptid. Pass the full ptid to get_thread_regcache.
* inf-ptrace.c (get_ptrace_pid): New function.
(inf_ptrace_resume): Use it.
* linux-nat.c (linux_resume_one_lwp): Pass the LWP's ptid ummodified
to the lower layer.
commit dd2ac17449b62de57f128f670b1783bb6728eac6
Author: Gary Benson <gbenson@redhat.com>
Date: Tue Mar 3 12:34:40 2015 +0000
Fix incorrect vFile: prefix lengths
gdb/gdbserver/ChangeLog:
* hostio.c (handle_vFile): Fix prefix lengths.
commit d68e53f47932eb7c374df9b90faed7aca2eed9d7
Author: Markus Metzger <markus.t.metzger@intel.com>
Date: Thu Jan 29 10:43:05 2015 +0100
btrace: support 32-bit inferior on 64-bit host
The heuristic for filtering out kernel addressess in BTS trace checks the
most significant bit in each address. This works fine for 32-bit and 64-bit
mode.
For 32-bit compatibility mode, i.e. a 32-bit inferior running on 64-bit
host, we need to check bit 63 (or any bit bigger than 31), not bit 31.
Use the machine field in struct utsname provided by a uname call to
determine whether we are running on a 64-bit host.
Thanks to Jan Kratochvil for reporting the issue.
gdb/
* nat/linux-btrace.c: Include sys/utsname.h.
(linux_determine_kernel_ptr_bits): New.
(linux_enable_bts): Call linux_determine_kernel_ptr_bits.
* x86-linux-nat.c (x86_linux_enable_btrace): Do not overwrite non-zero
ptr_bits.
gdbserver/
* linux-low.c (linux_low_enable_btrace): Do not overwrite non-zero
ptr_bits.
commit 986b66010c684a871f5606cb4f074d4e3d829e2f
Author: Markus Metzger <markus.t.metzger@intel.com>
Date: Fri Jan 23 13:32:12 2015 +0100
btrace: work around _dl_runtime_resolve returning to resolved function
On some systems, _dl_runtime_resolve returns to the resolved function
instead of jumping to it. Since btrace will not find the function in
the current stack back trace, it will start a new back trace on the
same level. It will look the same to the user via the backtrace
command but the frames will have different id's which confuses stepping.
This fixes a test fail with 32-bit inferior reported by Jan Kratochvil.
gdb/
* btrace.c (ftrace_update_function): Treat return as tailcall for
"_dl_runtime_resolve".
commit ce0dfbeaadee82ffae390e4515433d3b6b1e0084
Author: Markus Metzger <markus.t.metzger@intel.com>
Date: Tue Jun 24 14:25:50 2014 +0200
btrace: compute line range when printing
The "record function-call-history" command prints the range of source lines
for a function segment when given the /l modifier. This information is
computed for the entire execution history when processing the recorded branch
trace.
To speed up the initial trace processing, we compute the information when
we print a function segment and only if requested. The computation is fast
enough (due to the limited scope) that it is not worth storing the data in
struct btrace_function, anymore.
gdb/
* btrace.h (btrace_function) <lbegin, lend>: Remove.
* btrace.c (ftrace_debug): Do not print the line range.
(ftrace_skip_file, ftrace_update_lines): Remove.
(ftrace_new_function): Remove lbegin and lend initialization.
(btrace_compute_ftrace_bts): Remove call to ftrace_update_lines.
* record-btrace.c (btrace_compute_src_line_range): New.
(btrace_call_history_src_line): Call btrace_compute_src_line_range.
commit 95e50b2723eba05ca34e9ea69c1de63e65ce9578
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 3 01:25:17 2015 +0000
follow-exec: delete all non-execing threads
This fixes invalid reads Valgrind first caught when debugging against
a GDBserver patched with a series that adds exec events to the remote
protocol. Like these, using the gdb.threads/thread-execl.exp test:
$ valgrind ./gdb -data-directory=data-directory ./testsuite/gdb.threads/thread-execl -ex "tar extended-remote :9999" -ex "b thread_execler" -ex "c" -ex "set scheduler-locking on"
...
Breakpoint 1, thread_execler (arg=0x0) at src/gdb/testsuite/gdb.threads/thread-execl.c:29
29 if (execl (image, image, NULL) == -1)
(gdb) n
Thread 32509.32509 is executing new program: build/gdb/testsuite/gdb.threads/thread-execl
[New Thread 32509.32532]
==32510== Invalid read of size 4
==32510== at 0x5AA7D8: delete_breakpoint (breakpoint.c:13989)
==32510== by 0x6285D3: delete_thread_breakpoint (thread.c:100)
==32510== by 0x628603: delete_step_resume_breakpoint (thread.c:109)
==32510== by 0x61622B: delete_thread_infrun_breakpoints (infrun.c:2928)
==32510== by 0x6162EF: for_each_just_stopped_thread (infrun.c:2958)
==32510== by 0x616311: delete_just_stopped_threads_infrun_breakpoints (infrun.c:2969)
==32510== by 0x616C96: fetch_inferior_event (infrun.c:3267)
==32510== by 0x63A2DE: inferior_event_handler (inf-loop.c:57)
==32510== by 0x4E0E56: remote_async_serial_handler (remote.c:11877)
==32510== by 0x4AF620: run_async_handler_and_reschedule (ser-base.c:137)
==32510== by 0x4AF6F0: fd_event (ser-base.c:182)
==32510== by 0x63806D: handle_file_event (event-loop.c:762)
==32510== Address 0xcf333e0 is 16 bytes inside a block of size 200 free'd
==32510== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==32510== by 0x77CB74: xfree (common-utils.c:98)
==32510== by 0x5AA954: delete_breakpoint (breakpoint.c:14056)
==32510== by 0x5988BD: update_breakpoints_after_exec (breakpoint.c:3765)
==32510== by 0x61360F: follow_exec (infrun.c:1091)
==32510== by 0x6186FA: handle_inferior_event (infrun.c:4061)
==32510== by 0x616C55: fetch_inferior_event (infrun.c:3261)
==32510== by 0x63A2DE: inferior_event_handler (inf-loop.c:57)
==32510== by 0x4E0E56: remote_async_serial_handler (remote.c:11877)
==32510== by 0x4AF620: run_async_handler_and_reschedule (ser-base.c:137)
==32510== by 0x4AF6F0: fd_event (ser-base.c:182)
==32510== by 0x63806D: handle_file_event (event-loop.c:762)
==32510==
[Switching to Thread 32509.32532]
Breakpoint 1, thread_execler (arg=0x0) at src/gdb/testsuite/gdb.threads/thread-execl.c:29
29 if (execl (image, image, NULL) == -1)
(gdb)
The breakpoint in question is the step-resume breakpoint of the
non-main thread, the one that was "next"ed.
The exact same issue can be seen on mainline with native debugging, by
running the thread-execl.exp test in non-stop mode, because the kernel
doesn't report a thread exit event for the execing thread.
Tested on x86_64 Fedora 20.
gdb/ChangeLog:
2015-03-02 Pedro Alves <palves@redhat.com>
* infrun.c (follow_exec): Delete all threads of the process except
the event thread. Extended comments.
gdb/testsuite/ChangeLog:
2015-03-02 Pedro Alves <palves@redhat.com>
* gdb.threads/thread-execl.exp (do_test): Handle non-stop.
(top level): Call do_test with non-stop as well.
commit cfe6bf439228831f7bddb8160fb099d0e16215a6
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 3 00:00:07 2015 +0000
Automatic date update in version.in
commit 28054d694f6794d2866d22073117897e372803f2
Author: Pedro Alves <palves@redhat.com>
Date: Mon Mar 2 20:05:25 2015 +0000
gdb_test_multiple: return -1 on internal error
gdb_test_multiple is supposed to return -1 on internal error:
# Returns:
# 1 if the test failed, according to a built-in failure pattern
# 0 if only user-supplied patterns matched
# -1 if there was an internal error.
But alas, that's broken, it returns success... It looks like the code
is assuming an earlier 'set result -1' is still in effect, but
'result' is set to 0 at the end, just before we call gdb_expect:
set result 0
set code [catch {gdb_expect $code} string]
gdb/testsuite/
2015-03-02 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_test_multiple) <internal error>: Set result to
-1.
commit 2c7b626ceef8ee50d6ef6fb575cfe55b93ef7a0f
Author: Cary Coutant <ccoutant@google.com>
Date: Mon Mar 2 10:20:21 2015 -0800
Fix crash when processing merge section with entsize of 0.
2015-02-04 Peter Collingbourne <pcc@google.com>
Cary Coutant <ccoutant@google.com>
gold/
* output.cc (Output_section::add_merge_input_section): Do not
attempt to merge sections with an entsize of 0.
commit 5b07cd848db1dbe9e3498e94bea5e69c8e438153
Author: Cary Coutant <ccoutant@google.com>
Date: Mon Mar 2 10:10:52 2015 -0800
Fix an internal error in do_print_to_mapfile on Arm.
2015-02-02 Khem Raj <raj.khem@gmail.com>
gold/
* attributes.h (class Output_attributes_section_data ): Add
do_print_to_mapfile function.
commit 9a284c9794a7589edc01b5701efe5406a27b5b4a
Author: Doug Evans <xdje42@gmail.com>
Date: Mon Mar 2 08:33:10 2015 -0800
gdb.texinfo (Specify Location): Fix syntax of filename:function.
gdb/doc/ChangeLog:
* gdb.texinfo (Specify Location): Fix syntax of filename:function.
commit 00e474c2e96f9a56f128ee29fbdc36ac32d5e14a
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Mar 2 06:05:01 2015 -0800
Revert "Remove true and false ARI checks now that we use stdbool.h."
As we cannot use type bool until conversion to C++ is official,
this patch re-instates the ARI checks for "true/false".
gdb/ChangeLog:
* contrib/ari/gdb_ari.sh: Reinstate checks for "true" and "false".
commit cc7039d31aefe14a31b5b6d8d3694e32bc22b486
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Mar 2 06:01:23 2015 -0800
Remove use of stdbool.h in GDB sources.
Using type bool from stdbool unfortunately causes problems trying
to build GDB on AiX and Solaris:
In file included from ../../src/gdb/utils.h:24:0,
from ../../src/gdb/defs.h:707,
from ../../src/gdb/utils.c:20:
/[...]/curses.h:96:14: error: two or more data types in declaration
specifiers
typedef char bool;
^
make[2]: *** [utils.o] Error 1
In theory, the problem is in curses.h which, in both cases, do
something similar. On Solaris:
#if !defined(__cplusplus) && !defined(_BOOL)
typedef char bool;
#endif /* !defined(__cplusplus) && !defined(_BOOL) */
On AiX:
#if !defined(__cplusplus) || (defined(__IBMCPP__) &&(__IBMCPP__<400))
#ifndef _BOOL
#define _BOOL
typedef int bool;
#endif
#endif
You can reproduce the same problem by trying to compile:
% cat toto.c
#include <stdbool.h>
#include <curses.h>
% gcc -c toto.c
In file included from toto.c:1:0:
/[...]/curses.h:159:13: error: two or more data types in declaration
specifiers
typedef int bool;
^
This specific issue wouldn't occur if we included curses.h before
including stdbool.h, and I looked at that just to be complete.
Here is a small schematic representation of the include logic:
* utils.c:
-> defs.h -> utils.h -> stdbool.h
-> gdb_curses.h -> curses.h
Because defs.h should always be first on the list, it means that
stdbool.h will always necessarily be included ahead of curses.h.
But, thinking beyond this very specific issue, it shows that using
stdbool.h is going to cause problems on these systems until either
GCC fixes those includes in a way that makes them work; or we switch
to C++.
In the meantime, I think the path of least resistance is to revert
the use of stdbool.h, and use integers, the way we've done up until
now. The benefits of using type "bool" are modest, IMO, so not
a great loss, and a temporary one.
gdb/ChangeLog:
* utils.h: Remove <stdbool.h> #include.
(producer_is_gcc): Change return type to "int".
* utils.c (producer_is_gcc): Change return type to int.
Return 1 instead of true, and 0 instead of false.
Adjust function documentation accordingly.
commit 4fa5d7b436815f58688ec9245f24fc83263364b9
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 2 10:57:40 2015 +0100
S390: Vector register test case
Add a test case for S/390 vector registers support.
gdb/testsuite/ChangeLog:
* gdb.arch/s390-vregs.exp: New test.
* gdb.arch/s390-vregs.S: New file.
commit bf2d68ab8c9da89a7caec2abdd2cc27c607f4a04
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 2 10:57:40 2015 +0100
S390: Add vector register support to gdbserver
On S/390 targets with vector registers, enable gdbserver to advertise
and handle the feature "org.gnu.gdb.s390.vx".
gdb/gdbserver/ChangeLog:
* Makefile.in (s390-vx-linux64.c, s390-tevx-linux64.c)
(s390x-vx-linux64.c, s390x-tevx-linux64.c): New rules.
(clean): Add "rm -f" for above C files.
* configure.srv (srv_regobj): Add s390-vx-linux64.o,
s390-tevx-linux64.o, s390x-vx-linux64.o, and s390x-tevx-linux64.o.
(srv_xmlfiles): Add s390-vx-linux64.xml, s390-tevx-linux64.xml,
s390x-vx-linux64.xml, s390x-tevx-linux64.xml, and s390-vx.xml.
* linux-s390-low.c (HWCAP_S390_VX): New macro.
(init_registers_s390_vx_linux64, init_registers_s390_tevx_linux64)
(init_registers_s390x_vx_linux64)
(init_registers_s390x_tevx_linux64)
(tdesc_s390_vx_linux64, tdesc_s390_tevx_linux64)
(tdesc_s390x_vx_linux64, tdesc_s390x_tevx_linux64): New extern
declarations.
(s390_fill_vxrs_low, s390_store_vxrs_low, s390_fill_vxrs_high)
(s390_store_vxrs_high): New functions.
(s390_regsets): Add entries for NT_S390_VXRS_LOW and
NT_S390_VXRS_HIGH.
(s390_arch_setup): Add logic for selecting one of the new target
descriptions. Activate the new vector regsets if applicable.
(initialize_low_arch): Also invoke init_registers_s390_vx_linux64,
init_registers_s390_tevx_linux64, init_registers_s390x_vx_linux64,
and init_registers_s390x_tevx_linux64.
commit 550bdf96cae94bc3e6c0f7e7e9a6793399dd8fe6
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 2 10:57:39 2015 +0100
S390: Add vector register support to gdb
Recognize S/390 targets with the new vector feature and present their
vector registers appropriately: as 32 new 128-bit wide registers
v0-v31, where the first 16 embed the floating point registers f0-f15.
Each of the full registers v0-v15 is modelled as a pseudo register.
gdb/ChangeLog:
* s390-linux-nat.c (have_regset_vxrs): New static variable.
(s390_linux_fetch_inferior_registers): Handle vector registers, if
present.
(s390_linux_store_inferior_registers): Likewise.
(s390_get_hwcap): Remove function. Embed its logic...
(s390_read_description): ...here. Yield a target description with
vector registers if applicable.
* s390-linux-tdep.c: Include "features/s390-vx-linux64.c",
"features/s390-tevx-linux64.c", "features/s390x-vx-linux64.c", and
"features/s390x-tevx-linux64.c".
(struct gdbarch_tdep) <v0_full_regnum>: New field.
(s390_dwarf_regmap): Add vector registers. Remove bogus entries
for "GNU/Linux-specific registers".
(s390_dwarf_reg_r0l): New enum value.
(s390_dwarf_reg_to_regnum): Support vector registers.
(s390_adjust_frame_regnum): Adjust pseudo DWARF register numbers
of GPR lower halves.
(regnum_is_vxr_full): New function.
(s390_register_name): New function.
(s390_pseudo_register_name): Handle v0-v15, which are composed of
f0-f15 and v0l-v15l.
(s390_pseudo_register_type): Likewise.
(s390_pseudo_register_read): Likewise.
(s390_pseudo_register_write): Likewise.
(s390_value_from_register): Account for the fact that values are
placed left-justified in vector registers.
(s390_pseudo_register_reggroup_p): Add pseudo registers v0-v15 to
the vector reggroup and omit them from the general reggroup.
(s390_regmap_vxrs_low, s390_regmap_vxrs_high): New register maps.
(s390_vxrs_low_regset, s390_vxrs_high_regset): New regsets.
(s390_iterate_over_regset_sections): Add iterations for the two
new vector regsets.
(s390_core_read_description): Yield a target description with
vector registers if applicable.
(s390_gdbarch_init): Handle target descriptions with vector
registers. Add "register_name" gdbarch method.
(_initialize_s390_tdep): Call new tdesc initialization functions.
* s390-linux-tdep.h (HWCAP_S390_VX): New macro.
(S390_V0_LOWER_REGNUM, S390_V1_LOWER_REGNUM, S390_V2_LOWER_REGNUM)
(S390_V3_LOWER_REGNUM, S390_V4_LOWER_REGNUM, S390_V5_LOWER_REGNUM)
(S390_V6_LOWER_REGNUM, S390_V7_LOWER_REGNUM, S390_V8_LOWER_REGNUM)
(S390_V9_LOWER_REGNUM, S390_V10_LOWER_REGNUM)
(S390_V11_LOWER_REGNUM, S390_V12_LOWER_REGNUM)
(S390_V13_LOWER_REGNUM, S390_V14_LOWER_REGNUM)
(S390_V15_LOWER_REGNUM, S390_V16_REGNUM, S390_V17_REGNUM)
(S390_V18_REGNUM, S390_V19_REGNUM, S390_V20_REGNUM)
(S390_V21_REGNUM, S390_V22_REGNUM, S390_V23_REGNUM)
(S390_V24_REGNUM, S390_V25_REGNUM, S390_V26_REGNUM)
(S390_V27_REGNUM, S390_V28_REGNUM, S390_V29_REGNUM)
(S390_V30_REGNUM, S390_V31_REGNUM): New macros.
(S390_NUM_REGS): Adjust value.
(s390_vxrs_low_regset, s390_vxrs_high_regset): Declare.
(tdesc_s390_vx_linux64, tdesc_s390_tevx_linux64)
(tdesc_s390x_vx_linux64, tdesc_s390x_tevx_linux64): Likewise.
* NEWS: Announce S/390 vector register support.
commit 446899e472025a04017064f5172105cec70eb357
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 2 10:57:39 2015 +0100
S390: Add target descriptions for vector register sets
The IBM z13 has new vector registers v0-v31 which are presented by the
Linux kernel as two additional register sets. This patch adds XML
descriptions and the respective autogenerated .c and .dat files for
S390 targets with this feature. Note that supported combinations
include targets with and without a transactional execution facility.
gdb/ChangeLog:
* features/s390-tevx-linux64.xml: New file.
* features/s390-vx-linux64.xml: New file.
* features/s390-vx.xml: New file.
* features/s390x-tevx-linux64.xml: New file.
* features/s390x-vx-linux64.xml: New file.
* features/Makefile (WHICH): Add s390-vx-linux64,
s390x-vx-linux64, s390-tevx-linux64, and s390x-tevx-linux64.
(s390-vx-linux64-expedite, s390-tevx-linux64-expedite)
(s390x-vx-linux64-expedite, s390x-tevx-linux64-expedite): New
macros.
* features/s390-tevx-linux64.c: New generated file.
* features/s390-vx-linux64.c: Likewise.
* features/s390x-tevx-linux64.c: Likewise.
* features/s390x-vx-linux64.c: Likewise.
* regformats/s390-tevx-linux64.dat: Likewise.
* regformats/s390-vx-linux64.dat: Likewise.
* regformats/s390x-tevx-linux64.dat: Likewise.
* regformats/s390x-vx-linux64.dat: Likewise.
gdb/doc/ChangeLog:
* gdb.texinfo (S/390 and System z Features): Describe new feature
"org.gnu.gdb.s390.vx".
commit daf220f0a7322ab97390d4ff33d0b4202267117d
Author: Alan Modra <amodra@gmail.com>
Date: Mon Mar 2 16:53:07 2015 +1030
Correct -z nocopyreloc doc
This option is misnamed. It should probably be called -z nodynbss,
but it's too late to change now.
* ld.texinfo (Options <-z nocopyreloc>): Rewrite.
commit a07229507b48662c2d08957dca9e2d8ad16c407b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 2 00:00:07 2015 +0000
Automatic date update in version.in
commit c966a859b96f78920c16e1161578405d88b425cf
Author: Pedro Alves <palves@redhat.com>
Date: Sun Mar 1 14:55:29 2015 +0000
Fix 32-bit x86 in-process agent build
Git commit 3c14e5a39bb4fddd added a declaration for
gdb_agent_get_raw_reg to tracepoint.h, and this now caught that the
32-bit x86 implementation has the wrong prototype:
../../../src/gdb/gdbserver/linux-i386-ipa.c:103:1: error: conflicting types for âgdb_agent_get_raw_regâ
gdb_agent_get_raw_reg (unsigned char *raw_regs, int regnum)
^
In file included from ../../../src/gdb/gdbserver/linux-i386-ipa.c:24:0:
../../../src/gdb/gdbserver/tracepoint.h:168:31: note: previous declaration of âgdb_agent_get_raw_regâ was here
IP_AGENT_EXPORT_FUNC ULONGEST gdb_agent_get_raw_reg
^
make[2]: *** [linux-i386-ipa.o] Error 1
gdb/gdbserver/
2015-03-01 Pedro Alves <palves@redhat.com>
* linux-i386-ipa.c (gdb_agent_get_raw_reg): Constify 'raw_regs'
parameter.
commit 3ea9863f6b965a91d3307e8661edfc81ad3be410
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 1 00:00:07 2015 +0000
Automatic date update in version.in
commit acf1419f9c52d06ee70169b85c5f8980c7359f8f
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Fri Feb 13 17:04:42 2015 +0000
objcopy: Add --update-section option.
New option for objcopy --update-section allows the contents of a section
to be updated while maintaining the section flags, and, for ELF files,
the section to segment mapping.
New test uses --dump-section and --update-section to check that a
section can be made larger and smaller with an update.
binutils/ChangeLog:
* objcopy.c (update_sections): New list.
(command_line_switch): Add OPTION_UPDATE_SECTION.
(copy_options): Add update-section.
(copy_usage): Document new option.
(is_update_section): New function.
(is_strip_section_1): Add check for attempt to update and remove
the same section.
(copy_object): Update size and content of requested sections.
(skip_section): Don't copy for updated sections.
(copy_main): Handle --update-section.
* doc/binutils.texi (objcopy): Add description of --update-section
option.
* NEWS: Mention --update-section option.
binutils/testsuite/ChangeLog:
* binutils-all/update-1.s: New file.
* binutils-all/update-2.s: New file.
* binutils-all/update-3.s: New file.
* binutils-all/update-4.s: New file.
* binutils-all/update-section.exp: New file.
commit b7236fbee40060bcf5e90740a5c5706317749f91
Author: Doug Evans <xdje42@gmail.com>
Date: Sat Feb 28 12:05:27 2015 -0800
symtab.h (struct symtab) <next>: Fix comment.
gdb/ChangeLog:
* symtab.h (struct symtab) <next>: Fix comment.
commit 9028d9432c57fc0871479960f843ef4af194d5ac
Author: Alan Modra <amodra@gmail.com>
Date: Wed Feb 25 09:36:36 2015 +1030
Pad only text sections at end by default
gas/
* write.c (SUB_SEGMENT_ALIGN): Don't pad non-code sections at
end to their alignment.
gas/testsuite/
* gas/sparc/pcrel.d: Update for changed padding in data sections.
* gas/sparc/pcrel64.d: Likewise.
ld/testsuite/
* ld-sparc/gotop32.rd: Update for changed padding in data sections.
* ld-sparc/gotop32.td: Likewise.
* ld-sparc/gotop64.rd: Likewise.
* ld-sparc/gotop64.td: Likewise.
* ld-tilegx/external.s: Align .data.
* ld-tilepro/external.s: Likewise.
commit f01f1741df37f0330fbf2809df0ffddc992ff60c
Author: Alan Modra <amodra@gmail.com>
Date: Fri Feb 27 11:43:21 2015 +1030
Tweak ppc32 tls_get_addr optimisation
This patch is cosmetic. It prevents references to __tls_get_addr_opt
(an alias for __tls_get_addr) when the optimisation isn't possible.
* elf32-ppc.c (ppc_elf_tls_setup): Set no_tls_get_addr_opt if
not PLT_NEW.
commit eb704cb6566cc4594099f49f8a215bab4fa7bbb6
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Feb 28 00:00:08 2015 +0000
Automatic date update in version.in
commit 02e62830e26a0d3c0d47d4e09209cc04354765a6
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Feb 27 17:40:36 2015 -0500
Fix Python 3 build: rename GdbMethods
Rename forgotten GdbMethods to python_GdbMethods.
gdb/ChangeLog:
* python/python.c (python_GdbModuleDef): Rename GdbMethods to
python_GdbMethods.
commit c1d11331c9d84541b5002314f8cee2f302dd5763
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Feb 27 11:27:31 2015 -0800
Convert mov to lea only if needed
We can convert mov to lea only if there are R_386_GOT32/R_X86_64_GOTPCREL
relocations against non IFUNC symbols.
* elf32-i386.c (need_convert_mov_to_lea): New.
(elf_i386_check_relocs): Set need_convert_mov_to_lea if needed.
(elf_i386_convert_mov_to_lea): Return TRUE if
need_convert_mov_to_lea is unset.
* elf64-x86-64.c (need_convert_mov_to_lea): New.
(elf_x86_64_check_relocs): Set need_convert_mov_to_lea if needed.
(elf_x86_64_convert_mov_to_lea): Return TRUE if
need_convert_mov_to_lea is unset.
commit bf36a1e7df75608045be60a5d16a1df207df3464
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 26 14:03:47 2015 +0000
More redefinition errors in C++ mode
In C++, we can't forward declare objects like in C. The compiler
complains about symbol redefinition. Most cases of this were fixed in
e36122e9, but dtrace probes introduced a new one meanwhile. This
patch fixes it the same way e36122e9 fixed the others.
gdb/
2015-02-27 Pedro Alves <palves@redhat.com>
* dtrace-probe.c (dtrace_probe_ops): Make extern.
commit ad6aff7dead678cc0fa4f786fa59c6040c6fa758
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:12 2015 +0000
Move exception_none to common code, and use it
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* common/common-exceptions.h (exception_none): Declare.
* common/common-exceptions.c (exception_none): Moved from
exceptions.c.
(exceptions_state_mc_init): Use exception_none.
* exceptions.c (exception_none): Move to
common/common-exceptions.c.
* exceptions.h (exception_none): Move to
common/common-exceptions.h.
commit 97c185659a35d249aa20c89674e3da2baf4b4352
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:10 2015 +0000
catch_command_errors: Remove 'mask' parameter
All callers of catch_command_errors pass RETURN_MASK_ALL as mask
argument. This patch eliminates the mask parameter as unnecessary.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* main.c (catch_command_errors, catch_command_errors_const):
Remove 'mask' argument. Adjust.
(captured_main): Adjust callers.
gdb/testsuite/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* gdb.gdb/python-interrupts.exp (test_python_interrupts): Adjust
call to catch_command_errors.
* gdb.gdb/python-selftest.exp (selftest_python): Adjust call to
catch_command_errors.
commit a37bfa30016370992c59105fb4fd97cd3a264149
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 15:14:41 2014 +0100
Adjust self tests to cope with GDB built as a C++ program
gdb/testsuite/
2015-02-27 Pedro Alves <palves@redhat.com>
* gdb.gdb/complaints.exp (test_initial_complaints): Also accept
"true" for boolean result.
* gdb.gdb/selftest.exp (test_with_self): Also accept full
prototype of main.
commit e992c591afd3e4f047ecad5afa49bdbde6c33eac
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 12:27:50 2014 +0100
python/python-internal.h: enum âext_lang_rcâ not defined
Fixes this in C++ mode:
src/gdb/python/python-internal.h: At global scope:
src/gdb/python/python-internal.h:313:13: error: use of enum âext_lang_rcâ without previous declaration
extern enum ext_lang_rc gdbpy_apply_val_pretty_printer
^
src/gdb/python/python-internal.h:320:41: error: invalid type in declaration before â;â token
const struct language_defn *language);
^
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* python/python-internal.h: Include "extension-priv.h".
commit 64166036b3de842d3e62e9471a2813b55643e3f3
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 12:26:06 2014 +0100
breakpoint.h: move enum âprint_stop_actionâ
Building GDB in C++, we get:
src/gdb/breakpoint.h:529:8: error: use of enum âprint_stop_actionâ without previous declaration
We can't forward declare enums in C++.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* breakpoint.h (enum print_stop_action): Move further up in the
file.
commit 8a526fa69afd8ea7d2e303f80c03f9eb46211390
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 12:16:56 2014 +0100
gdbarch.h: include regcache.h
Building GDB in C++ mode, I got:
src/gdb/gdbarch.h:240:149: error: invalid type in declaration before â;â token
src/gdb/gdbarch.h:240:14: error: use of enum âregister_statusâ without previous declaration
src/gdb/gdbarch.h:241:13: error: use of enum âregister_statusâ without previous declaration
src/gdb/gdbarch.h:241:140: error: invalid type in declaration before â;â token
That's because 'enum register_status' has not been declared (and we can't
forward declare enums in C++).
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* gdbarch.sh: Include regcache.h.
* gdbarch.h: Regenerate.
commit 0fa9c223ddc05a4b823bc7982dce8ba3b45d903f
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 05:58:23 2014 +0100
Remove duplicate const
Building --enable-targets=all in C++ mode fails with:
gdb/sparc-sol2-tdep.c:179:7: error: duplicate âconstâ
gdb/arm-tdep.c:13878:33: error: duplicate âconstâ
gdb/arm-tdep.c:13891:33: error: duplicate âconstâ
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* arm-tdep.c (decode_insn) <arm_handle_insn, thumb_handle_insn>:
Remove duplicate const.
* sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Remove
duplicate const.
commit 7cf99fb1c72769c17eed0a62951698bf56432108
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 13:22:27 2015 +0000
Exported const objects
const works different in C vs C++. In C++, a global "const" variable
has internal linkage by default, resulting in link errors like:
...
extension.o: In function `get_ext_lang_defn(extension_language)':
gdb/extension.c:126: undefined reference to `extension_language_guile'
gdb/extension.c:124: undefined reference to `extension_language_guile'
...
The fix is to define exported const objects with "extern const". But
that in C would not be a definition. So we need to #ifdef C vs C++ in
this case.
EXPORTED_CONST comes from include/ansidecl.h, but in the
feature_to_c.sh case I think it's better to leave the script with no
dependencies.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* cp-valprint.c (vtbl_ptr_name): Use EXPORTED_CONST.
* guile/guile.c (extension_language_guile): Use EXPORTED_CONST.
* features/feature_to_c.sh: Tag the generated xml_builtin array
with extern const in C++ mode.
commit 1424c16eab1a96de054991c346c2bbf3eac82dec
Author: Tom Tromey <tromey@redhat.com>
Date: Thu Jun 5 14:36:27 2014 -0600
Rename struct lzma_stream to avoid clash with system header
/home/pedro/gdb/mygit/src/gdb/minidebug.c: At global scope:
/home/pedro/gdb/mygit/src/gdb/minidebug.c:55:8: error: using typedef-name âlzma_streamâ after âstructâ
struct lzma_stream
^
In file included from /usr/include/lzma.h:281:0,
from /home/pedro/gdb/mygit/src/gdb/minidebug.c:28:
/usr/include/lzma/base.h:498:3: note: âlzma_streamâ has a previous declaration here
} lzma_stream;
^
gdb/ChangeLog:
2015-02-27 Tom Tromey <tromey@redhat.com>
* minidebug.c (struct lzma_stream): Rename to ...
(struct gdb_lzma_stream): ... this.
(lzma_open, lzma_pread, lzma_close, lzma_stat): Adjust.
commit 10367c7c946a123597cbc5efaa44c18912e5e43a
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 05:09:07 2014 +0100
mi/mi-cmd-stack.c|frame filters: print_values <-> ext_lang_frame_args
The enums are value compatible by design, but building in C++ mode trips
on them, like:
...
gdb/mi/mi-cmd-stack.c:363:34: error: cannot convert âprint_valuesâ to âext_lang_frame_argsâ for argument â3â to âext_lang_bt_status apply_ext_lang_frame_filter(frame_info*, int, ext_lang_frame_args, ui_out*, int, int)â
...
Fix this by adding a helper function.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): New
function.
(mi_cmd_stack_list_locals, mi_cmd_stack_list_args)
(mi_cmd_stack_list_variables): Use it.
commit 4180215b9db1549b88da2da2fcc320fe28233481
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 13:51:07 2014 +0100
x86 Linux/ptrace: fix offsetof usage in C++ mode
In C++ mode, we get:
gdb/gdbserver/linux-x86-low.c: In function âvoid x86_linux_dr_set(ptid_t, int, long unsigned int)â:
gdb/gdbserver/linux-x86-low.c:558:38: error: âregnumâ cannot appear in a constant-expression
offsetof (struct user, u_debugreg[regnum]), value);
^
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* linux-x86-low.c (u_debugreg_offset): New function.
(x86_linux_dr_get, x86_linux_dr_set): Use it.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* x86-linux-nat.c (u_debugreg_offset): New function.
(x86_linux_dr_get, x86_linux_dr_set): Use it.
commit 2f56f7c302c8d4012cc47d8bd261b151b2ddfa22
Author: Pedro Alves <palves@redhat.com>
Date: Mon Oct 20 00:06:55 2014 +0100
Don't forward declare enum target_hw_bp_type
Can't do that in C++.
2015-02-27 Pedro Alves <palves@redhat.com>
* nat/x86-dregs.h (enum target_hw_bp_type): Remove forward
declaration.
Include break-common.h.
commit 570dc176ff0e33525c4c1db981de87aa0dce742e
Author: Tom Tromey <tromey@redhat.com>
Date: Wed Oct 22 06:08:20 2014 +0100
Do not increment of decrement enums
In C++, we can't do arithmetic on enums. This patch fixes build errors like:
src/gdb/i386-tdep.c: In function âint i386_stap_parse_special_token(gdbarch*, stap_parse_info*)â:
src/gdb/i386-tdep.c:4309:7: error: no match for âoperator++â (operand type is âi386_stap_parse_special_token(gdbarch*, stap_parse_info*)::<anonymous enum>â)
++current_state;
^
...
src/gdb/rs6000-tdep.c:4265:18: error: no match for âoperator++â (operand type is âpowerpc_vector_abiâ)
src/gdb/arm-tdep.c:9428:71: error: no match for âoperator++â (operand type is âarm_float_modelâ)
src/gdb/arm-tdep.c:9465:64: error: no match for âoperator++â (operand type is âarm_abi_kindâ)
...
gdb/ChangeLog:
2015-02-27 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
* arm-tdep.c (set_fp_model_sfunc, arm_set_abi): Use 'int' for
local used to iterate over enums.
* completer.c (signal_completer): Likewise.
* i386-tdep.c (i386_stap_parse_special_token): Likewise.
* rs6000-tdep.c (powerpc_set_vector_abi): Likewise.
* tui/tui-data.c (tui_next_win, tui_prev_win): Likewise.
* tui/tui-layout.c (next_layout, prev_layout): Likewise.
* tui/tui-win.c (tui_refresh_all_win, tui_rehighlight_all)
(tui_resize_all, tui_set_focus_command, tui_all_windows_info): Likewise.
* tui-wingeneral.c (tui_refresh_all): Likewise.
commit 68c14faadaf5bfd9816ac913dc8858116aa15a84
Author: Pedro Alves <palves@redhat.com>
Date: Wed Oct 22 04:35:38 2014 +0100
target.h: Include infrun.h
Fixes:
src/gdb/target.h:753:10: error: use of enum âexec_direction_kindâ without previous declaration
in C++ mode. We can't forward declare enums.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* target.h: Include "infrun.h".
commit 749bab0110ddc56835bfe70765675577e3dea05a
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:09 2015 +0000
proc-service, extern "C"
libthread_db.so calls symbols in the client (GDB), through the
proc-service interface. These routines must have extern "C" linkage
so their symbol names are not mangled when GDB is built as a C++
program. On the GDBserver side, we were missing fallback declarations for
all these symbols.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
[!HAVE_PROC_SERVICE_H] (struct ps_prochandle): Forward declare.
[!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
(ps_lsetfpregs, ps_getpid)
(ps_get_thread_area, ps_pglobal_lookup, ps_pstop, ps_pcontinue)
(ps_lstop, ps_lcontinue, ps_lgetxregsize, ps_lgetxregs)
(ps_lsetxregs, ps_plog): Declare.
commit 3c14e5a39bb4fddd911ba49483c44a12294ae6ef
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:08 2015 +0000
Make functions and variables exported by the IPA be extern "C"
Functions and variables that are exported by the IPA DSO (that
GDBserver needs to look up) should have "C" mangling, thus be declared
with extern "C".
Function and variable declarations need the extern "C" marker, but
variable definitions can't be marked extern, so the patch splits
IP_AGENT_EXPORT into three.
Building in C++ mode revealed that a few variables were missing
IP_AGENT_EXPORT, thus the IPA has been broken when stripped, even in C
mode... So this ends being a bug fix as well.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* common/agent.h (IPA_SYM_EXPORTED_NAME): New.
(IPA_SYM): Use it.
* common/common-defs.h (EXTERN_C_PUSH, EXTERN_C_POP): New macros.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* linux-amd64-ipa.c (gdb_agent_get_raw_reg): Use
IP_AGENT_EXPORT_FUNC.
* linux-i386-ipa.c (gdb_agent_get_raw_reg): Use
IP_AGENT_EXPORT_FUNC.
* tracepoint.c (ATTR_USED, ATTR_NOINLINE, ATTR_CONSTRUCTOR)
(IP_AGENT_EXPORT): Delete.
(gdb_tp_heap_buffer, gdb_jump_pad_buffer, gdb_jump_pad_buffer_end)
(gdb_trampoline_buffer, gdb_trampoline_buffer_end)
(gdb_trampoline_buffer_error, collecting, gdb_collect)
(stop_tracing, flush_trace_buffer, about_to_request_buffer_space)
(trace_buffer_is_full, stopping_tracepoint, expr_eval_result)
(error_tracepoint, tracepoints, tracing, trace_buffer_ctrl)
(trace_buffer_ctrl_curr, trace_buffer_lo, trace_buffer_hi)
(traceframe_read_count, traceframe_write_count)
(traceframes_created, trace_state_variables, get_raw_reg)
(get_trace_state_variable_value, set_trace_state_variable_value)
(ust_loaded, helper_thread_id, cmd_buf): Use
IPA_SYM_EXPORTED_NAME.
(stop_tracing, flush_trace_buffer): Use IP_AGENT_EXPORT_FUNC.
(tracepoints) Use IP_AGENT_EXPORT_VAR.
(stopping_tracepoint, trace_buffer_is_full, expr_eval_result): Use
IP_AGENT_EXPORT_VAR and wrap in EXTERN_C_PUSH/EXTERN_C_POP.
(last_tracepoint): Move into !IN_PROCESS_AGENT block.
(error_tracepoint): Use IP_AGENT_EXPORT_VAR and wrap in
EXTERN_C_PUSH/EXTERN_C_POP.
(trace_state_variables): Use IP_AGENT_EXPORT_VAR.
(trace_buffer_lo, trace_buffer_hi): Use IP_AGENT_EXPORT_VAR and
wrap in EXTERN_C_PUSH/EXTERN_C_POP.
(trace_buffer_ctrl, trace_buffer_ctrl_curr)
(traceframe_write_count, traceframe_read_count)
(traceframes_created, tracing): Use IP_AGENT_EXPORT_VAR.
(about_to_request_buffer_space, get_trace_state_variable_value)
(set_trace_state_variable_value): Use IP_AGENT_EXPORT_FUNC.
(collecting): Use IP_AGENT_EXPORT_VAR and wrap in
EXTERN_C_PUSH/EXTERN_C_POP.
(gdb_collect): Use IP_AGENT_EXPORT_FUNC.
(ust_loaded, cmd_buf): Use IP_AGENT_EXPORT_VAR.
(helper_thread_id, gdb_agent_capability): Use IP_AGENT_EXPORT_VAR
and wrap in EXTERN_C_PUSH/EXTERN_C_POP.
(gdb_tp_heap_buffer, gdb_jump_pad_buffer, gdb_jump_pad_buffer_end)
(gdb_trampoline_buffer, gdb_trampoline_buffer_end)
(gdb_trampoline_buffer_error): Use IP_AGENT_EXPORT_VAR.
* tracepoint.h (ATTR_USED, ATTR_NOINLINE, EXPORTED_SYMBOL):
Define.
(IP_AGENT_EXPORT_FUNC, IP_AGENT_EXPORT_VAR)
(IP_AGENT_EXPORT_VAR_DECL): Define.
(tracing): Declare.
(gdb_agent_get_raw_reg): Declare.
commit 56000a9801956afa7622249f114da778afc8887f
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:08 2015 +0000
Add extern "C" to declarations of C symbols
These symbols are defined in C code, so in C++ mode we need to use
extern "C" to declare them. As extern "C" can't be used inside a
function's scope, we move the declarations to the global scope at the
same time.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* cli-out.c (_rl_erase_entire_line): Move declaration out of
cli_mld_erase_entire_line, and make it extern "C".
* common/common-defs.h (EXTERN_C): New.
* completer.c (_rl_completion_prefix_display_length)
(_rl_print_completions_horizontally, QSFUNC): Move declarations
out of gdb_display_match_list_1.
(_rl_qsort_string_compare): Move declaration out of
gdb_display_match_list_1, and make it extern "C".
* defs.h (re_comp): Use EXTERN_C.
* maint.c (_mcleanup): Move declaration out of mcleanup_wrapper,
and make it extern "C".
(monstartup): Move declaration out of maintenance_set_profile_cmd,
and make it extern "C".
(main): Move declaration out of maintenance_set_profile_cmd.
* nat/linux-ptrace.c (linux_ptrace_attach_fail_reason_string): Use
EXTERN_C.
commit bcabf4207e7ba20f09e15141c6c3241862ac4aee
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 14:59:06 2015 +0000
Make array object extern
Compiling python.c in C++ mode, we get:
...src/gdb/python/python.c: At global scope:
...src/gdb/python/python.c:106:31: error: storage size of âGdbMethodsâ isnât known
static PyMethodDef GdbMethods[];
^
Fix it by making the affected array objects extern.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* python/python.c (GdbMethods): Rename to ...
(python_GdbMethods): ... this and make extern.
(GdbModuleDef): Rename to ...
(python_GdbModuleDef): ... this and make extern.
commit 928dbe07562fa842a990d1c3aa65e12343426e68
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 9 17:13:39 2015 +0000
record-btrace.c: Remove redefinitions
The set_record_btrace_cmdlist and show_record_btrace_cmdlist objects
are declared twice in the file, seemingly a simply copy/paste
oversight. In C, the first time counts as forward declaration, but in
C++, they are all definitions. That results in:
src/gdb/record-btrace.c:80:33: error: redefinition of âcmd_list_element* set_record_btrace_cmdlistâ
src/gdb/record-btrace.c:61:33: error: âcmd_list_element* set_record_btrace_cmdlistâ previously declared here
src/gdb/record-btrace.c:81:33: error: redefinition of âcmd_list_element* show_record_btrace_cmdlistâ
src/gdb/record-btrace.c:62:33: error: âcmd_list_element* show_record_btrace_cmdlistâ previously declared here
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* record-btrace.c (set_record_btrace_cmdlist)
(show_record_btrace_cmdlist): Remove redefinitions.
---
gdb/record-btrace.c | 4 ----
1 file changed, 4 deletions(-)
commit 52059ffd6935427d02ee418be3eceeff6fd5c066
Author: Tom Tromey <tromey@redhat.com>
Date: Mon Feb 9 14:59:05 2015 +0000
Fix struct, union, and enum nesting in C++
In C, an enum or structure defined inside other structure has global
scope just like it had been defined outside the struct in the first
place. However, in C++, such a nested structure is given a name that
is nested inside the structure. This patch moves such affected
structures/enums out to global scope, so that code using them works
the same in C++ as it works today in C.
gdb/ChangeLog:
2015-02-27 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
* dwarf2-frame.c (enum cfa_how_kind, struct
dwarf2_frame_state_reg_info): Move out of struct
dwarf2_frame_state.
* dwarf2read.c (struct tu_stats): Move out of struct
dwarf2_per_objfile.
(struct file_entry): Move out of struct line_header.
(struct nextfield, struct nextfnfield, struct fnfieldlist, struct
typedef_field_list): Move out of struct field_info.
* gdbtypes.h (enum dynamic_prop_kind, union dynamic_prop_data):
Move out of struct dynamic_prop.
(union type_owner, union field_location, struct field, struct
range_bounds, union type_specific): Move out of struct main_type.
(struct fn_fieldlist, struct fn_field, struct typedef_field)
(VOFFSET_STATIC): Move out of struct cplus_struct_type.
(struct call_site_target, union call_site_parameter_u, struct
call_site_parameter): Move out of struct call_site.
* m32c-tdep.c (enum m32c_prologue_kind): Move out of struct
m32c_prologue.
(enum srcdest_kind): Move out of struct srcdest.
* main.c (enum cmdarg_kind): Move out of struct cmdarg.
* prologue-value.h (enum prologue_value_kind): Move out of struct
prologue_value.
* s390-linux-tdep.c (enum s390_abi_kind): Move out of struct
gdbarch_tdep.
* stabsread.c (struct nextfield, struct next_fnfieldlist): Move
out of struct field_info.
* symfile.h (struct other_sections): Move out of struct
section_addr_info.
* symtab.c (struct symbol_cache_slot): Move out struct
block_symbol_cache.
* target-descriptions.c (enum tdesc_type_kind): Move out of
typedef struct tdesc_type.
* tui/tui-data.h (enum tui_line_or_address_kind): Move out of
struct tui_line_or_address.
* value.c (enum internalvar_kind, union internalvar_data): Move
out of struct internalvar.
* xtensa-tdep.h (struct ctype_cache): Move out of struct
gdbarch_tdep.
commit fe978cb071b460b2d4aed2f9a71d895f84efce0e
Author: Pedro Alves <palves@redhat.com>
Date: Fri Feb 27 16:33:07 2015 +0000
C++ keyword cleanliness, mostly auto-generated
This patch renames symbols that happen to have names which are
reserved keywords in C++.
Most of this was generated with Tromey's cxx-conversion.el script.
Some places where later hand massaged a bit, to fix formatting, etc.
And this was rebased several times meanwhile, along with re-running
the script, so re-running the script from scratch probably does not
result in the exact same output. I don't think that matters anyway.
gdb/
2015-02-27 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
Rename symbols whose names are reserved C++ keywords throughout.
gdb/gdbserver/
2015-02-27 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
Rename symbols whose names are reserved C++ keywords throughout.
commit 3bc3d82a005466a66fa22f704c90f4486ca71344
Author: Pedro Alves <palves@redhat.com>
Date: Fri Feb 27 13:11:25 2015 +0000
Add --enable-build-with-cxx configure switch
This new option, disabled by default for now, allows specifying
whether to build GDB, GDBserver, and friends with a C++ (98/03)
compiler.
The name of the switch should be familiar to those who followed GCC's
own C++ conversion process.
. Adding -fpermissive to COMPILER in C++ mode (see the new
build-with-cxx.m4 file) makes errors like these be warnings instead:
gdb/infrun.c:6597:1: error: initializing argument 1 of âvoid sig_print_info(gdb_signal)â [-fpermissive]
sig_print_info (enum gdb_signal oursig)
^
gdb/infrun.c: In function âvoid do_restore_infcall_suspend_state_cleanup(void*)â:
gdb/infrun.c:7164:39: error: invalid conversion from âvoid*â to âinfcall_suspend_state*â [-fpermissive]
restore_infcall_suspend_state (state);
^
so that the compiler carries on compiling the file. -Werror still
catches the warnings, so nothing is lost, only our lifes are made
easier by concentrating on getting other more important things out of
the way first.
There's no way to quiet those warnings. Until they're all fixed, when
building in C++ mode, -Werror is disabled by default.
. Adding -Wno-narrowing suppresses thousands of instances of this warning:
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of â-1â from âintâ to âULONGEST {aka long unsigned int}â inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:439:1: error: narrowing conversion of â-1lâ from âLONGEST {aka long int}â to âULONGEST {aka long unsigned int}â inside { } is ill-formed in C++11 [-Werror=narrowing]
gdb/arm-linux-tdep.c:450:1: error: narrowing conversion of â-1â from âintâ to âULONGEST {aka long unsigned int}â inside { } is ill-formed in C++11 [-Werror=narrowing]
We can defer handling those until we target C++11.
. Adding -Wno-sign-compare suppresses thousands of instances of this warning:
gdb/linux-record.c:1763:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (tmpulongest == tdep->fcntl_F_GETLK64)
^
. Adding -Wno-write-strings suppresses thousands of instances of this warning:
gdb/mi/mi-cmd-var.c: In function âvoid mi_cmd_var_show_attributes(char*, char**, int)â:
gdb/mi/mi-cmd-var.c:514:12: warning: deprecated conversion from string constant to âchar*â [-Wwrite-strings]
attstr = "editable";
^
gdb/mi/mi-cmd-var.c:516:12: warning: deprecated conversion from string constant to âchar*â [-Wwrite-strings]
attstr = "noneditable";
^
For now, it's best to hide these warnings from view until we're
'-fpermissive'-clean, and can thus start building with -Werror.
The C compiler has always managed to build working GDBs with these
issues in the code, so a C++ compiler should too.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(COMPILE.pre, CC_LD): Use COMPILER.
(CXX): Get from autoconf instead.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* build-with-cxx.m4: New file.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Only enable -Wpointer-sign in C mode.
Run supported-warning-flags tests with the C++ compiler.
Save/restore CXXFLAGS too.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* Makefile.in (COMPILER): New, get it from autoconf.
(CXX): Get from autoconf instead.
(COMPILE.pre): Use COMPILER.
(CC-LD): Rename to ...
(CC_LD): ... this. Use COMPILER.
(gdbserver$(EXEEXT), gdbreplay$(EXEEXT), $(IPA_LIB)): Adjust.
(CXX_FOR_TARGET): Default to g++ instead of gcc.
* acinclude.m4: Include build-with-cxx.m4.
* configure.ac: Call AC_PROG_CXX and GDB_AC_BUILD_WITH_CXX.
Disable -Werror by default if building in C++ mode.
(build_warnings): Add -Wno-sign-compare, -Wno-write-strings and
-Wno-narrowing in C++ mode. Run supported-warning-flags tests with
the C++ compiler. Save/restore CXXFLAGS too.
* configure: Regenerate.
commit f0673d2040a49ecebfc0d3a03993d09fb4dd3e17
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Feb 27 16:19:57 2015 +0000
Fixes a problem with the linker script parser not always handling the ! character in memort region attributes.
PR ld/17900
* ldlang.c (lang_set_flags): Allow exclamation mark to reverse the
sense of the following memory region attribute characters.
commit 07697489f4587e41f4f63aa526c1bd7d2fcd5494
Author: Pedro Alves <palves@redhat.com>
Date: Fri Feb 27 15:52:02 2015 +0000
Create libiberty.m4, have GDB and GDBserver use it
Converting GDB to be a C++ program, I stumbled on 'basename' issues,
like:
src/gdb/../include/ansidecl.h:169:64: error: new declaration âchar* basename(const char*)â
/usr/include/string.h:597:26: error: ambiguates old declaration âconst char* basename(const char*)â
which I believe led to this bit in gold's configure.ac:
dnl We have to check these in C, not C++, because autoconf generates
dnl tests which have no type information, and current glibc provides
dnl multiple declarations of functions like basename when compiling
dnl with C++.
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp])
These checks IIUC intend to generate all the HAVE_DECL_FOO symbols
that libiberty.h and ansidecl.h check.
GDB is missing these checks currently, which results in the conflict
shown above.
This adds an m4 file that both GDB and GDBserver's configury use to
pull in the autoconf checks that libiberty clients needs done in order
to use these libiberty.h/ansidecl.h.
gdb/ChangeLog:
2015-02-27 Pedro Alves <palves@redhat.com>
* libiberty.m4: New file.
* acinclude.m4: Include libiberty.m4.
* configure.ac: Call libiberty_INIT.
* config.in, configure: Regenerate.
gdb/gdbserver/
2015-02-27 Pedro Alves <palves@redhat.com>
* acinclude.m4: Include libiberty.m4.
* configure.ac: Call libiberty_INIT.
* config.in, configure: Regenerate.
commit cdb602b17548eeebb5e700c507d734ea5f887a49
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Feb 27 15:38:32 2015 +0000
Fixes a problem recognizing libraries created by Visual Studio.
PR binutils/17910
* coffgen.c (_bfd_coff_internal_syment_name): Only check for
string length overflow when the string table length is actually
set.
commit 6f98576f29a70ed947f102015df0388bccc6aa1a
Author: Pedro Alves <palves@redhat.com>
Date: Fri Feb 27 13:54:22 2015 +0000
Add "../lib/unbuffer_output.c" and use it in gdb.base/interrupt.c
In some scenarios, GDB or GDBserver can be spawned with input _not_
connected to a tty, and then tests that rely on stdio fail with
timeouts, because the inferior's stdout and stderr streams end up
fully buffered.
See discussion here:
https://sourceware.org/ml/gdb-patches/2015-02/msg00809.html
We have a hack in place that works around this for Windows testing,
that forces every test program to link with an .o file that does
(lib/set_unbuffered_mode.c):
static int __gdb_set_unbuffered_output (void) __attribute__ ((constructor));
static int
__gdb_set_unbuffered_output (void)
{
setvbuf (stdout, NULL, _IONBF, BUFSIZ);
setvbuf (stderr, NULL, _IONBF, BUFSIZ);
}
That's a bit hacky; it ends up done for _all_ tests.
This patch adds a way to do this unbuffering explicitly from the test
code itself, so it is done only when necessary, and for all
targets/hosts. For starters, it adjusts gdb.base/interrupt.c to use
it.
Tested on x86_64 Fedora 20, native, and against a remote gdbserver
board file that connects to the target with ssh, with and without -t
(create pty).
gdb/testsuite/
2015-02-27 Pedro Alves <palves@redhat.com>
* lib/unbuffer_output.c: New file.
* gdb.base/interrupt.c: Include "../lib/unbuffer_output.c".
(main): Call gdb_unbuffer_output.
commit eba5ab56cf54396325f855a39654964bb9e28a9c
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Feb 27 13:45:06 2015 +0000
Don't skip catch-syscall.exp on hppa*-hp-hpux* target
As far as I know, "catch syscall" is supported on hppa*-hp-hpux*, but
the test catch-syscall.exp is skipped on this target by mistake. This
patch is to fix it. However, I don't have a hpux machine to test.
gdb/testsuite:
2015-02-27 Yao Qi <yao.qi@linaro.org>
* gdb.base/catch-syscall.exp: Don't skip it on hppa*-hp-hpux*
target.
commit 96c20bc18d71ca5ae3335d48ff2b459d495032d3
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Feb 27 12:21:54 2015 +0000
Regenerate bfd-in2.h and libbfd.h
commit a3976a7c56ec803f6ba141576cc56afe02663a8a
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Feb 27 09:49:20 2015 +0000
Fixes problems building the V850 simulator introduced with the previous delta.
* sim-main.h (reg64_t): New type.
(v850_regs): Add selID_sregs field.
(VR, SAT16, SAT32, ABS16, ABS32 ): New macros.
* v850-dc: Add fields for v850e3v5 instructions.
* v850.igen (cvtf.dl): Use correctly signed local value.
(cvtf.dw, cvtf.sw, trncf.dul, trncf.dl, trncf.sul, trncf.sw):
Likewise.
* interp.c: Fix old style function declarations.
* simops.c: Likewise.
commit 60abeae4f219a7a445d11ebaf72d2939413ffe80
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Fri Feb 27 10:47:54 2015 +0100
S390: Fix compiler invocation with "compile" command
On 64-bit S390 platforms the "compile" command always failed because
gcc was not invoked correctly. This patch fixes the compiler
invocation.
gdb/ChangeLog:
* s390-linux-tdep.c (s390_gcc_target_options): Not just handle
31-bit targets, but 64-bit targets as well.
(s390_gnu_triplet_regexp): New function.
(s390_gdbarch_init): Set the gcc_target_options gdbarch method for
64-bit targets as well. Set the gnu_triplet_regexp gdbarch
method.
commit f44466fb654c587908d417b016c16c0fd27bf415
Author: Joel Brobecker <brobecker@adacore.com>
Date: Fri Feb 27 09:49:59 2015 +0100
Mark latest entry in gdb/ChangeLog as "(tiny patch)".
commit f0666312fd86272e0234d5f7c92d8f65d5c6505e
Author: Jon TURNEY <jon.turney@dronecode.org.uk>
Date: Wed Feb 18 23:13:47 2015 +0000
Retrieve segment registers on Windows amd64
For amd64, CONTEXT_FULL does not contain CONTEXT_SEGMENTS, which seems
to be needed to retrieve all the segment registers. Add it explicitly,
with a little de-cruftification.
The value of the segment registers isn't terribly useful on amd64, but
at least this makes the output of 'info registers' correct.
Before:
(gdb) i r cs ss ds es fs gs
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
After:
(gdb) i r cs ss ds es fs gs
cs 0x33 51
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x53 83
gs 0x2b 43
gdb/ChangeLog
2015-02-27 Jon TURNEY <jon.turney@dronecode.org.uk>
* windows-nat.c (CONTEXT_DEBUGGER): Remove.
(CONTEXT_DEBUGGER_DR): Add CONTEXT_SEGMENTS. Incorporate flags
from CONTEXT_DEBUGGER.
commit 73920eed1d5331150d6a0e3207aa653e10f0a1ac
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Feb 27 08:07:55 2015 +0000
Adjust ChangeLog entry.
commit 0def5aaad6a89e78f09cef2b95635dc3254ce304
Author: Doug Evans <dje@google.com>
Date: Thu Feb 26 17:31:29 2015 -0800
Add missing CHECK_TYPEDEF calls to recent vptr_{fieldno,basetype} cleanup.
gdb/ChangeLog:
* gdbtypes.c (internal_type_vptr_fieldno): Add missing call to
CHECK_TYPEDEF.
(set_type_vptr_fieldno): Ditto.
(internal_type_vptr_basetype, set_type_vptr_basetype): Ditto.
* gnu-v3-abi.c (gnuv3_dynamic_class): Ditto.
gdb/testsuite/ChangeLog:
* gdb.cp/class2.cc (Dbase, D): New classes.
(main): New local delta.
* gdb.cp/class2.exp: Test printing delta.
* gdb.cp/classes.cc (DynamicBase2, DynamicBar): New classes.
(dynbar): New global.
* gdb.cp/classes.exp (test_ptype_class_objects): Test ptype DynamicBar.
commit 330b17b30f85b091a214c2987de5dfef1e9733ac
Author: Alan Modra <amodra@gmail.com>
Date: Thu Feb 26 13:01:50 2015 +1030
Fix recent h8300 configury changes
* Makefile.am (ALL_EMULATION_SOURCES): Sort new h8300 entries.
(eh8300elf_linux.c, eh8300helf_linux.c, eh8300self_linux.c,
eh8300sxelf_linux.c): Do not invoke genscripts here.
* Makefile.in: Regenerate.
commit 2ae824de90cee5f16c444a79cc1b442eb9c2cedd
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Feb 27 00:00:08 2015 +0000
Automatic date update in version.in
commit 60d1b0d6a43b984b88da499f6bbc13cf729f0447
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Feb 19 09:52:24 2015 +0000
[AArch64] Add tiny DESC test cases.
commit 1ada945d059789e05542ebf573bd9b7eab2a2654
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 15:37:35 2015 +0000
[AArch64] Add support for :tlsdesc: and TLSDESC_LD_PREL19
commit 389b8029b69e2a4cdbc3a23d0ee9d5b3c974bd34
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 15:36:40 2015 +0000
[AArch64] Add support for :tlsdesc: and TLSDESC_ADR_PREL21
commit b480a4819bb85f0d8004cc0904e7a2eeb03cb2b7
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Feb 19 09:10:11 2015 +0000
Add tiny memory model GD test cases.
commit 3c12b0543695609d96f818b2a60c74b624fc0ffb
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Feb 13 07:13:57 2015 +0000
Add ADR :tlsgd: directive and TLSGD_ADR_PREL21 support.
commit b108998791b5ac14ba97a0ca3f2e2ed8742f27bb
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 18:10:59 2015 +0000
Adding tls-tiny-ie test.
commit 043bf05a3d8e4bf7706f7c038540b893ec075051
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Feb 13 09:57:11 2015 +0000
Adding support for TLSIE_LD_GOTTREL_PREL19.
commit 74ad790c76cf890fc7f42d6dd5a4cebfde5cc0db
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 18:10:27 2015 +0000
Adding ld_literal_type.
Extend the address modifier parsing to distinguish between the
modifers used in LDR literal and LDR register offset address modes.
The current parser incorrectly accepts the :got: modifier on a
register offset instruction resulting in silent corruption of the
output binary.
commit 27228ca23e80c31ecbf3da261224b1d2ece4be83
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 18:32:43 2015 +0000
Adding test case for abuse of :got: in offset load
The :got: modifier is not meaningful in a register offset load store
instruction and should result in a diagnostic.
commit 6f4a313ba49c84d9f8b266d8d90c9cedbd11b1bc
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Feb 5 16:57:09 2015 +0000
Adding adr_type and prevent adr :got:
The current implementation of the :got: assembler modifier does not
distinguish the ADR and ADRP instruction. The :got: modifier does not
make sense on and ADR instruction and should be error'd rather than
the current behavior of applying an inappropriate relocation to the
output and scrambling the underlying instruction silently.
commit 3e29ed9f07740a848432a1825c3fb466cdb98a4a
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Feb 5 13:16:33 2015 +0000
Add test case for ADR :got:foo
The modifier :got: does not make sense on an ADR instruction. Add a
test case to ensure we gripe.
commit 7366006f66f6b781832e397dd177ed8698d4fdc7
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 15:08:34 2015 +0000
Fix field size for TLSDESC_CALL
This relocation is a marker and does not result in a modification to
the binary. Changing the HOWTO bit field width to reflect this
property.
commit 07875fbce7911d7e6174d6398cec2872eb489613
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Thu Feb 26 21:20:05 2015 +0000
Fix field size for TLSLE_MOVW_TPREL_* relocations.
The HOWTO table entries for the TLSLE_MOVW_TPREL_* relocations are
wrong by inspection. The current implementation does not actually use
these field widths for these relocations but they should be corrected.
commit 49d8f92c6e07977ede747163090b6a702f345629
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Wed Feb 18 15:00:27 2015 +0000
Fix TLSIE_MOVW_GOTTPREL_G0_NC field size.
commit 1db365dcdff81c772d4c22e73a86971016ebb6e2
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date: Fri Feb 13 06:02:52 2015 +0000
Remove dead code.
commit d93c7787a0dd4261b8ac65a92a33196b62ef57b4
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 26 22:16:16 2015 +0000
Fix arithmetic overflows running srconv on fuzzed binaries.
PR binutils/17512
* coffgrok.c (do_type): Check for an out of range tag index.
Check for integer overflow computing array dimension.
(do_define): Likewise.
commit c86934ceee0971a04bbfc145c7b9a53357c25c91
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 26 21:32:04 2015 +0000
Fixes illegal memory access errors and arithmetic overflows when running strip on fuzzed binaries.
PR binutils/17512
* coffcode.h (coff_compute_section_file_positions): Report
negative page sizes.
* elf.c (elf_fake_sections): Handle excessive alignmment powers.
(assign_file_positions_for_non_load_sections): Replace assertion
with an error message.
(rewrite_elf_program_header): Handle excessive segment
alignments.
* mach-o.c (bfd_mach_o_read_section_32): Likewise.
(bfd_mach_o_read_section_64): Likewise.
* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Use %B to
print a bfd name, not %A.
commit 9beb7c4e1d403e1374096df3a16607132a8cfe84
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 26 18:48:46 2015 +0000
gdbserver/Linux: Simplify stepping past program breakpoint a little
.decr_pc_after_break is never higher than .breakpoint_len, so use
.breakpoint_len directly. Based on idea from Yao here:
https://sourceware.org/ml/gdb-patches/2015-02/msg00689.html
gdb/gdbserver/ChangeLog:
2015-02-26 Pedro Alves <palves@redhat.com>
* linux-low.c (linux_wait_1): When incrementing the PC past a
program breakpoint always use the_low_target.breakpoint_len as
increment, rather than the maximum between that and
the_low_target.decr_pc_after_break.
commit 77b64a49e24dd4b5f4c7edb5d4030fe8aa1eec44
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 26 18:29:12 2015 +0000
Add ATTRIBUTE_PRINTF attributes, and fix fallout
Fixes building gdb on x86_64-apple-darwin14 with clang, which produces
a number of warnings from -Wformat-nonliteral.
Ref: https://sourceware.org/ml/gdb/2015-02/msg00047.html
gdb/ChangeLog:
2015-02-26 Pedro Alves <palves@redhat.com>
* auto-load.h (file_is_auto_load_safe): Add ATTRIBUTE_PRINTF.
* complaints.c (vcomplaint): Pass argument FMT directly to
printf-like functions instead of complaint->fmt.
* ctf.c (ctf_save_write_metadata): Add ATTRIBUTE_PRINTF.
* darwin-nat.c (inferior_debug): Add ATTRIBUTE_PRINTF.
* compile/compile-loc2c.c (pushf, unary, binary): Add
ATTRIBUTE_PRINTF.
(do_compile_dwarf_expr_to_c): Pass string literal as format string
to pushf.
(BINARY): Pass string literal as format string to 'binary'.
* compile/compile-object-load.c (link_callbacks_einfo): Add
ATTRIBUTE_PRINTF.
* guile/guile-internal.h (gdbscm_printf): Add ATTRIBUTE_PRINTF.
commit 06b73f4199944fb8a7d2c8874f91ed1deb7f4c44
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Thu Feb 26 17:17:46 2015 +0000
objcopy: Avoid shadowing optarg.
In commit 7173b38a442c007a554ea200817a0eadce89c87b I used optarg as the
name for a function parameter, shadowing the global of that name. This
commit changes the function parameter to be called arg.
binutils/ChangeLog:
* objcopy.c (init_section_add): Rename optarg to arg in order to
avoid shadowing a global variable.
commit 532f44ed674a74edc1ef1aa6fd7fed911413e1ba
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 26 17:13:58 2015 +0000
Rename windows-termcap.c -> stub-termcap.c
Preparation for using this on all hosts.
Confirmed that --host=x86_64-w64-mingw32 still builds the stub
termcap.
gdb/ChangeLog:
2015-02-26 Pedro Alves <palves@redhat.com>
* windows-termcap.c: Rename to ...
* stub-termcap.c: ... this. Adjust header line.
* Makefile.in (SFILES): Refer to stub-termcap.c instead of
windows-termcap.c.
* configure: Regenerate.
* configure.ac: Refer to stub-termcap.o instead of
windows-termcap.o.
* gdb_curses.h: Mention stub-termcap.c instead of
windows-termcap.c.
commit 081a1c2cede38dfb837e3d89539416fd836be4fe
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 26 17:40:57 2015 +0100
compile: Fix GNU-IFUNC funcs called from injected code
One could not call IFUNCs (=indirect functions) from the compiled injected
code. Either it errored with:
gdb command line:1:1: error: function return type cannot be function
or it just called the IFUNC dispatcher in normal way, returning real function
implementation address instead of the function return value (and thus no
function was called).
gdb/ChangeLog
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
* compile/compile-c-symbols.c (convert_one_symbol, convert_symbol_bmsym)
(gcc_symbol_address): Call gnu_ifunc_resolve_addr.
gdb/testsuite/ChangeLog
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.compile/compile-ifunc.c: New file.
* gdb.compile/compile-ifunc.exp: New file.
commit 2f41223f62de5d893bd6a4bd832293c2c3e80d91
Author: Antoine Tremblay <antoine.tremblay@ericsson.com>
Date: Wed Feb 25 11:00:01 2015 -0500
Fix print of value type in a corner case of finish
When doing finish in a function, if gdb fails to return a value, gdb
also fails at printing the value type if this type is a struct.
For example :
(gdb) fin
....
Value returned has type: . Cannot determine contents
This patch fixes this by calling type_to_string to print the type
so that we can support these types.
This patch returns the following example output :
(gdb) fin
....
Value returned has type: struct test. Cannot determine contents
Also, this patch modifies structs.exp to check that we return the
correct type.
gdb/ChangeLog:
* gdb/infcmd.c (print_return_value): use type_to_string to print type.
gdb/testsuite/ChangeLog:
* gdb.base/structs.exp: Check for correct struct on finish.
commit c8071705c69a13d237aeca4709bf91deaff7e5cb
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 26 14:21:54 2015 +0000
Fix undefined arithmetic operations detected by -fsanitize=undefined when running readelf on fuzzed binaries.
PR binutils/17512
* dwarf.c (display_debug_loc): Pacify the undefined behaviour
sanitizer by simplifying address difference calculation.
(struct Frame_Chunk): Change type of cfa_offset to dwarf_vma in
order to avoid arithmetic overflows.
(frame_display_row): Cast cfa_offset before printing it.
(display_debug_frames): Likewise.
Check for an unexpected segment size.
Chnage type of 'l' local to dwarf_vma and cast it back to an int
when printing.
(process_cu_tu_index): Tighten check for an invalid ncols value.
* readelf.c (process_corefile_note_segment): Check for
inote.descdata extending beyond the end of the section.
(process_v850_notes): Likewise.
commit 03eddd80d7c9b406109c43c07741c9991520954b
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Feb 26 14:21:19 2015 +0000
Dwarf assembler: handle one instruction function
On aarch64, we got the following fail:
(gdb) disassemble func
Dump of assembler code for function func:
0x0000000000400730 <+0>: ret
End of assembler dump.^M
(gdb) x/2i func+0^M
0x400730 <func>: ret^M
0x400734 <main>: stp x29, x30, [sp,#-16]!^M
(gdb) FAIL: gdb.dwarf2/dw2-ifort-parameter.exp: x/2i func+0
the pattern in proc function_range expects to match <func+0>, however,
GDB doesn't display the offset when it is zero. This patch is to
adjust the pattern when $func_length is zero.
gdb/testsuite:
2015-02-26 Yao Qi <yao.qi@linaro.org>
* lib/dwarf.exp (function_range): Adjust pattern when $func_length
is zero.
commit 80c570537e380c1b8e48754c0ddbce2abcde2d00
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 26 14:08:01 2015 +0100
SEGV in ppc64_elf_get_synthetic_symtab reading a separate debug file
The attached patch fixes the SEGV and lets GDB successfully
load all kernel modules installed by default on RHEL 7.
Valgrind on F-21 x86_64 host has shown me more clear what is the problem:
Reading symbols from /home/jkratoch/t/cordic.ko...Reading symbols from
/home/jkratoch/t/cordic.ko.debug...=================================================================
==22763==ERROR: AddressSanitizer: heap-use-after-free on address 0x6120000461c8 at pc 0x150cdbd bp 0x7fffffffc7e0 sp 0x7fffffffc7d0
READ of size 8 at 0x6120000461c8 thread T0
#0 0x150cdbc in ppc64_elf_get_synthetic_symtab /home/jkratoch/redhat/gdb-test-asan/bfd/elf64-ppc.c:3282
#1 0x8c5274 in elf_read_minimal_symbols /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1205
#2 0x8c55e7 in elf_symfile_read /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1268
[...]
0x6120000461c8 is located 264 bytes inside of 288-byte region [0x6120000460c0,0x6120000461e0)
freed by thread T0 here:
#0 0x7ffff715454f in __interceptor_free (/lib64/libasan.so.1+0x5754f)
#1 0xde9cde in xfree common/common-utils.c:98
#2 0x9a04f7 in do_my_cleanups common/cleanups.c:155
#3 0x9a05d3 in do_cleanups common/cleanups.c:177
#4 0x8c538a in elf_read_minimal_symbols /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1229
#5 0x8c55e7 in elf_symfile_read /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1268
[...]
previously allocated by thread T0 here:
#0 0x7ffff71547c7 in malloc (/lib64/libasan.so.1+0x577c7)
#1 0xde9b95 in xmalloc common/common-utils.c:41
#2 0x8c4da2 in elf_read_minimal_symbols /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1147
#3 0x8c55e7 in elf_symfile_read /home/jkratoch/redhat/gdb-test-asan/gdb/elfread.c:1268
[...]
SUMMARY: AddressSanitizer: heap-use-after-free /home/jkratoch/redhat/gdb-test-asan/bfd/elf64-ppc.c:3282 ppc64_elf_get_synthetic_symtab
[...]
==22763==ABORTING
A similar case a few lines later I have fixed in 2010 by:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3f1eff0a2c7f0e7078f011f55b8e7f710aae0cc2
My testcase does not always reproduce it but at least a bit:
* GDB without ppc64 target (even as a secondary one) is reported as "untested"
* ASAN-built GDB with ppc64 target always crashes (and PASSes with this fix)
* unpatched non-ASAN-built GDB with ppc64 target crashes from commandline
* unpatched non-ASAN-built GDB with ppc64 target PASSes from runtest (?)
gdb/ChangeLog
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
* elfread.c (elf_read_minimal_symbols): Use bfd_alloc for
bfd_canonicalize_symtab.
gdb/testsuite/ChangeLog
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.arch/cordic.ko.bz2: New file.
* gdb.arch/cordic.ko.debug.bz2: New file.
* gdb.arch/ppc64-symtab-cordic.exp: New file.
commit e3ee40059d4a4e04d10e2b5c46bacd2a810355ca
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 26 12:23:18 2015 +0000
Fixes a resource exhaustion problem when running windres on a corrupt binary.
PR binutils/17512
* resrc.c (write_rc_messagetable): Tighten check for invalid
message lengths.
commit bd4d2eaad0f624bc47b2e27222480a44d1a48108
Author: Alan Modra <amodra@gmail.com>
Date: Thu Feb 26 21:26:42 2015 +1030
PowerPC64 thread-safe stubs not needed for iplt
I was looking at a current glibc using objdump today and saw an odd
plt call stub.
0000000000044d80 <00000033.plt_call.__strchrnul>:
44d80: f8 41 00 28 std r2,40(r1)
44d84: e9 82 8c f8 ld r12,-29448(r2)
44d88: 7d 89 03 a6 mtctr r12
44d8c: e8 42 8d 00 ld r2,-29440(r2)
44d90: 28 22 00 00 cmpldi r2,0
44d94: 4c e2 04 20 bnectr+
44d98: 48 13 84 f0 b 17d288 <realloc@plt>
What? It doesn't branch to __strchrnul@plt on finding a zero r2?
Turns out this isn't a real problem since the stub is for loading an
ifunc, so will not be lazily resolved and thus r2 will never be zero.
Of course, that means the thread-safety check is unnecessary.
I also tweak the special __tls_get_addr_opt call stub here, to
restore r2 immediately after the call. Not doing that might affect
eh_frame unwinding.
* elf64-ppc.c (plt_stub_size, build_plt_stub): Don't build
thread-safe stubs for iplt.
(build_tls_get_addr_stub): Restore r2 immediately after call.
commit cf424aef0af89903abdd6c4e055684929e4990af
Author: John Baldwin <jhb@freebsd.org>
Date: Wed Feb 25 09:51:42 2015 -0500
Rework signal frame probing for FreeBSD/x86
- Use signal frame sniffers that look for the signal trampoline
instruction sequence to detect most signal frames.
- FreeBSD kernels between 9.2 and 10.1 inclusive do not include the
signal trampoline code in process core dumps. To detect signal
frames for core dumps under these kernels, use the
kern.proc.sigtramp.<pid> sysctl to fetch the location of the signal
trampoline in the gdb process and assume that PC values within this
location are signal frames. This depends on that location being
identical for all binaries.
gdb/ChangeLog:
2015-02-25 John Baldwin <jhb@FreeBSD.org>
* amd64fbsd-nat.c: Include sys/user.h.
(_initialize_amd64fbsd_nat): Use the KERN_PROC_SIGTRAMP sysctl
instead of KERN_PS_STRINGS to locate the signal trampoline.
* i386fbsd-nat.c: Include sys/user.h.
(_initialize_i386fbsd_nat): Use the KERN_PROC_SIGTRAMP sysctl
instead of KERN_PS_STRINGS to locate the signal trampoline.
* amd64fbsd-tdep.c (amd64fbsd_sigtramp_code): New.
(amd64fbsd_sigtramp_p): New.
(amd64fbsd_sigtramp_start_addr, amd64fbsd_sigtramp_end_addr): No
longer set default values.
(amd64fbsd_init_abi): Set "sigtramp_p" to "amd64fbsd_sigtramp_p".
* i386fbsd-tdep.c (i386fbsd_sigtramp_start)
(i386fbsd_sigtramp_middle, i386fbsd_sigtramp_end)
(i386fbsd_freebsd4_sigtramp_start)
(i386fbsd_freebsd4_sigtramp_middle)
(i386fbsd_freebsd4_sigtramp_end, i386fbsd_osigtramp_start)
(i386fbsd_osigtramp_middle, i386fbsd_osigtramp_end): New.
(i386fbsd_sigtramp_p): New.
(i386fbsd_sigtramp_start_addr, i386fbsd_sigtramp_end_addr): No
longer set default values.
(i386fbsd_init_abi): Set "sigtramp_p" to "i386fbsd_sigtramp_p".
commit c5cb74eeb3ea13a9fbeb0ec26b5bad10c4b92e4a
Author: John Baldwin <jhb@freebsd.org>
Date: Thu Feb 26 11:07:57 2015 +0000
Fix infinite recursion in amd64fbsd_sigcontext_addr
amd64fbsd_sigcontext_addr is using frame_unwind_register_unsigned to
fetch the stack pointer which results in infinite recursion. This
patch changes it to use get_frame_register to match the
sigcontext_addr methods in the i386-bsd and amd64-linux targets
instead.
gdb/ChangeLog:
2015-02-25 John Baldwin <jhb@freebsd.org>
* amd64fbsd-tdep.c (amd64fbsd_sigcontext_addr): Use
get_frame_register instead of frame_unwind_register_unsigned.
commit 17487d857c372c01fb84b028062eaf1cdb41048a
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 26 11:50:08 2015 +0100
Change // comment in gdb/compile/
Missing ChangeLog in the previous commit:
bb2b33b9395662e7562be34b47b9533620b583c6
gdb/ChangeLog
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
PR build/18033
* compile/compile-c-support.c (c_compute_program): Change // comment.
* compile/compile-object-load.c (setup_sections): Change // comment.
commit bb2b33b9395662e7562be34b47b9533620b583c6
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 26 11:48:18 2015 +0100
Change // comment in gdb/compile/
commit 9357a9e66e08fea2a13446a4dfba2ceaf11da827
Author: Joel Brobecker <brobecker@adacore.com>
Date: Thu Feb 26 10:42:04 2015 +0100
Remove // comment in gdb/iq2000-tdep.c
gdb/ChangeLog:
PR build/18033:
* iq2000-tdep.c (iq2000_frame_cache): Delete C++-style comment.
commit 99654aaf360c38a7bff69be8c175a78b83a7d263
Author: Terry Guo <terry.guo@arm.com>
Date: Thu Feb 26 14:11:41 2015 +0800
[ARM]Update for Tag_ABI_HardFP_use per EABI doc
Updated how we merge and display this attribute per the latest
EABI documents.
bfd/ChangeLog
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Update how we
merge Tag_ABI_HardFP_use.
binutils/ChangeLog
* readelf.c (arm_attr_tag_ABI_HardFP_use): Update how we
display it.
ld/testsuite/ChangeLog
* ld-arm/attr-merge-3.attr: Remove Tag_ABI_HardFP_use.
* ld-arm/attr-merge-vfp-10.d: Likewise.
* ld-arm/attr-merge-vfp-10r.d: Likewise.
* ld-arm/attr-merge-vfp-12.d: Likewise.
* ld-arm/attr-merge-vfp-12r.d: Likewise.
* ld-arm/attr-merge-vfp-13.d: Likewise.
* ld-arm/attr-merge-vfp-13r.d: Likewise.
* ld-arm/attr-merge-vfp-14.d: Likewise.
* ld-arm/attr-merge-vfp-14r.d: Likewise.
* ld-arm/attr-merge-vfp-6.d: Likewise.
* ld-arm/attr-merge-vfp-6r.d: Likewise.
* ld-arm/attr-merge-vfp-7.d: Likewise.
* ld-arm/attr-merge-vfp-7r.d: Likewise.
* ld-arm/attr-merge-vfp-8.d: Likewise.
* ld-arm/attr-merge-vfp-8r.d: Likewise.
commit a127494f2dcad834743e613be4cfea39511ad5ec
Author: Alan Modra <amodra@gmail.com>
Date: Mon Feb 23 16:45:05 2015 +1030
Use dynamic text relocs for protected vars
Rather than reporting a link error on attempting to use dynbss for
protected vars, use dynamic text relocs.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Heed -z nocopyreloc.
Use text relocs rather than giving an error on trying to use
.dynbss for protected shared lib vars.
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
commit e26e3344573513d33e99bca5c659bbbe3a9b647c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Feb 26 00:00:08 2015 +0000
Automatic date update in version.in
commit 7173b38a442c007a554ea200817a0eadce89c87b
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Fri Feb 20 20:12:56 2015 +0000
objcopy: Factor out some of the option parsing code.
This patch splits out some of the option parsing code, increasing code
reuse.
binutils/ChangeLog:
* objcopy.c (init_section_add): New function.
(section_add_load_file): New function.
(copy_main): Make use of new functions.
commit bac13f5a4c05ed88d7c4639c37ad01bb7e305419
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Thu Jan 8 22:07:48 2015 +0000
AVR/ld: Use .avr.prop data during linker relaxation.
Make use of the data held within the .avr.prop section during linker
relaxation in order to maintain the properties of the .org and .align
directives.
In relation to the .align directives, if enough bytes are deleted before
a .align directive then the alignment can be moved while still
maintaining the alignment requirement.
bfd/ChangeLog:
* elf32-avr.c (struct elf_avr_section_data): New structure.
(struct avr_relax_info): New structure.
(elf_avr_new_section_hook): New function.
(struct elf_avr_section_data): Add relax_info.
(get_avr_relax_info): New function.
(init_avr_relax_info): New function.
(elf32_avr_relax_delete_bytes): Find next property record before
deleting bytes. When deleting don't move bytes beyond the next
property record.
(avr_elf32_assign_records_to_section): New function.
(avr_property_record_compare): New function.
(avr_load_all_property_sections): New function.
(elf32_avr_relax_section): Load property data. After relaxing the
section, move any .align directives that have enough deleted bytes
before them.
(bfd_elf32_new_section_hook): Define.
ld/testsuite/ChangeLog:
* ld-avr/avr-prop-1.d: New file.
* ld-avr/avr-prop-1.s: New file.
* ld-avr/avr-prop-2.d: New file.
* ld-avr/avr-prop-2.s: New file.
* ld-avr/avr-prop-3.d: New file.
* ld-avr/avr-prop-3.s: New file.
* ld-avr/avr-prop-4.d: New file.
* ld-avr/avr-prop-4.s: New file.
commit 137c83d69fad77677cc818593f9399caa777a0c5
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Thu Jan 8 21:55:43 2015 +0000
avr/objdump: Support dumping .avr.prop section.
Add support to objdump for dumping the .avr.prop section in a structured
way.
binutils/ChangeLog:
* od-elf32_avr.c: Add elf32-avr.h include.
(OPT_AVRPROP): Define.
(options[]): Add 'avr-prop' entry.
(elf32_avr_help): Add avr-prop help text.
(elf32_avr_dump_avr_prop): New function.
(elf32_avr_dump): Add check for avr-prop.
bfd/ChangeLog:
* elf32-avr.h (struct avr_property_header): New strucure.
(avr_elf32_load_property_records): Declare.
(avr_elf32_property_record_name): Declare.
* elf32-avr.c: Add bfd_stdint.h include.
(retrieve_local_syms): New function.
(get_elf_r_symndx_section): New function.
(get_elf_r_symndx_offset): New function.
(internal_reloc_compare): New function.
(struct avr_find_section_data): New structure.
(avr_is_section_for_address): New function.
(avr_find_section_for_address): New function.
(avr_elf32_load_records_from_section): New function.
(avr_elf32_load_property_records): New function.
(avr_elf32_property_record_name): New function.
gas/testsuite/ChangeLog:
* gas/avr/avr-prop-1.d: New file.
* gas/avr/avr-prop-1.s: New file.
commit fdd410ac7a07dfb47dcb992201000582a280d8b2
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Thu Jan 8 20:55:10 2015 +0000
avr/gas: Write out data to track .org/.align usage.
Adds support to the assembler to write out data for tracking the use of
.org and .align directives. This data is collected within the assembler
and written out to a section ".avr.prop" (if there's anything to write
out).
This patch does not add any tests. The next patch in this series will
add a better mechanism for visualising the contents of .avr.prop which
will make writing tests much easier.
This patch also does not make any use of this collected data, that will
also come along in a later patch; the intended consumer is the linker,
during linker relaxation this information will be used to ensure that
the .org and .align directives are honoured.
bfd/ChangeLog:
* elf32-avr.h (AVR_PROPERTY_RECORD_SECTION_NAME): Define.
(AVR_PROPERTY_RECORDS_VERSION): Define.
(AVR_PROPERTY_SECTION_HEADER_SIZE): Define.
(struct avr_property_record): New structure.
gas/ChangeLog:
* config/tc-avr.c: Add elf32-avr.h include.
(struct avr_property_record_link): New structure.
(avr_output_property_section_header): New function.
(avr_record_size): New function.
(avr_output_property_record): New function.
(avr_create_property_section): New function.
(avr_handle_align): New function.
(exclude_section_from_property_tables): New function.
(create_record_for_frag): New function.
(append_records_for_section): New function.
(avr_create_and_fill_property_section): New function.
(avr_post_relax_hook): New function.
* config/tc-avr.h (md_post_relax_hook): Define.
(avr_post_relax_hook): Declare.
(HANDLE_ALIGN): Define.
(avr_handle_align): Declare.
(strut avr_frag_data): New structure.
(TC_FRAG_TYPE): Define.
commit ac99436572d903781c124fa3cc72d83360202b76
Author: Oleg Endo <olegendo@gcc.gnu.org>
Date: Wed Feb 25 21:22:54 2015 +0100
[SH] Fix clrs, sets, pref insn arch memberships.
opcodes/
* sh-opc.h (clrs, sets): Mark as arch_sh3_nommu_up instead of
arch_sh_up.
(pref): Mark as arch_sh2a_nofpu_or_sh3_nommu_up instead of
arch_sh2a_nofpu_or_sh4_nommu_nofpu_up.
gas/testsuite/
* gas/sh/arch/arch.exp: Replace dead code to generate expected .s files
with ...
* gas/sh/arch/sh-opc-gen-as.pl: ... this new script.
* gas/sh/arch/arch_expected.txt: Regenerate.
* gas/sh/arch/sh-dsp.s: Likewise.
* gas/sh/arch/sh-opc-gen-as.pl: Likewise.
* gas/sh/arch/sh.s: Likewise.
* gas/sh/arch/sh2.s: Likewise.
* gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s: Likewise.
* gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s: Likewise.
* gas/sh/arch/sh2a-nofpu.s: Likewise.
* gas/sh/arch/sh2a-or-sh3e.s: Likewise.
* gas/sh/arch/sh2a-or-sh4.s: Likewise.
* gas/sh/arch/sh2a.s: Likewise.
* gas/sh/arch/sh2e.s: Likewise.
* gas/sh/arch/sh3-dsp.s: Likewise.
* gas/sh/arch/sh3-nommu.s: Likewise.
* gas/sh/arch/sh3.s: Likewise.
* gas/sh/arch/sh3e.s: Likewise.
* gas/sh/arch/sh4-nofpu.s: Likewise.
* gas/sh/arch/sh4-nommu-nofpu.s: Likewise.
* gas/sh/arch/sh4.s: Likewise.
* gas/sh/arch/sh4a-nofpu.s: Likewise.
* gas/sh/arch/sh4a.s: Likewise.
* gas/sh/arch/sh4al-dsp.s: Likewise.
ld/testsuite/
* ld-sh/arch/arch_expected.txt: Regenerate.
* ld-sh/arch/sh-dsp.s: Likewise.
* ld-sh/arch/sh.s: Likewise.
* ld-sh/arch/sh2.s: Likewise.
* ld-sh/arch/sh2a-nofpu-or-sh3-nommu.s: Likewise.
* ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s: Likewise.
* ld-sh/arch/sh2a-nofpu.s: Likewise.
* ld-sh/arch/sh2a-or-sh3e.s: Likewise.
* ld-sh/arch/sh2a-or-sh4.s: Likewise.
* ld-sh/arch/sh2a.s: Likewise.
* ld-sh/arch/sh2e.s: Likewise.
* ld-sh/arch/sh3-dsp.s: Likewise.
* ld-sh/arch/sh3-nommu.s: Likewise.
* ld-sh/arch/sh3.s: Likewise.
* ld-sh/arch/sh3e.s: Likewise.
* ld-sh/arch/sh4-nofpu.s: Likewise.
* ld-sh/arch/sh4-nommu-nofpu.s: Likewise.
* ld-sh/arch/sh4.s: Likewise.
* ld-sh/arch/sh4a-nofpu.s: Likewise.
* ld-sh/arch/sh4a.s: Likewise.
* ld-sh/arch/sh4al-dsp.s: Likewise.
commit 4469186b996eb84ee9341f4cdcd0f92c412b3f27
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date: Wed Feb 25 13:40:08 2015 +0000
[gas][ARM] Document supported ARMv8 cores.
2015-02-25 Matthew Wahab <matthew.wahab@arm.com>
* doc/c-arm.texi (-mcpu=): Add cortex-a53, cortex-a57 and
cortex-a72.
commit 21613c12d1822dcb71116ce8f386ff87719e104f
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Feb 25 10:39:59 2015 +0000
[aarch64] Fix one fail in gdb.xml/tdesc-regs.exp
Hi,
I see the following fail in aarch64-linux-gnu testing...
(gdb) set tdesc file /XXX/gdb/testsuite/gdb.xml/single-reg.xml^M
warning: Architecture rejected target-supplied description^M
(gdb) FAIL: gdb.xml/tdesc-regs.exp: set tdesc file single-reg.xml
core-regs isn't set for aarch64 target, and looks it is an oversight
when aarch64 port was added.
gdb/testsuite:
2015-02-25 Yao Qi <yao.qi@linaro.org>
* gdb.xml/tdesc-regs.exp: Set core-regs to aarch64-core.xml for
aarch64*-*-* target.
commit ca7ae53a8669bd0a4c64d90072f42741f4c0ddd7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Feb 25 00:00:07 2015 +0000
Automatic date update in version.in
commit 9ad55e9b25ea4423413b46be0714fc5590f85eb6
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 17:58:50 2015 +0000
Adds support for emulating V850 e3v5 instructions to the simulator.
* v850.igen: Add more e3v5 support.
(FMAF.S): New pattern.
(FMSF.S): New pattern.
(FNMAF.S): New pattern.
(FNMSF.S): New pattern.
(cnvq15q30): New pattern.
(cnvq30q15): New pattern.
(cnvq31q62): New pattern.
(cnvq62q31): New pattern.
(dup.h): New pattern.
(dup.w): New pattern.
(expq31): New pattern.
(modadd): New pattern.
(mov.dw): New pattern.
(mov.h): New pattern.
(mov.w): New pattern.
(pki16i32): New pattern.
(pki16ui8): New pattern.
(pki32i16): New pattern.
(pki64i32): New pattern.
(pkq15q31): New pattern.
(pkq30q31): New pattern.
(pkq31q15): New pattern.
(pkui8i16): New pattern.
(vabs.h): New pattern.
(vabs.w): New pattern.
(vadd.dw): New placeholder pattern.
(vadd.h): New placeholder pattern.
(vadd.w): New placeholder pattern.
(vadds.h): New placeholder pattern.
(vadds.w): New placeholder pattern.
(vaddsat.h): New placeholder pattern.
(vaddsat.w): New placeholder pattern.
(vand): New pattern.
(vbiq.h): New placeholder pattern.
(vbswap.dw): New placeholder pattern.
(vbswap.h): New placeholder pattern.
(vbswap.w): New placeholder pattern.
(vcalc.h): New placeholder pattern.
(vcalc.w): New placeholder pattern.
(vcmov): New placeholder pattern.
commit 685080f2100373d1a45932521f9a24922a68d68f
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 17:54:09 2015 +0000
Adds support for generating notes in V850 binaries.
bfd * elf32-v850.c (v850_set_note): New function. Creates a Renesas
style note entry.
(v850_elf_make_note_section): New function. Creates a note
section.
(v850_elf_create_sections): New function. Create a note section
if one is not already present.
(v850_elf_set_note): New function. Adds a note to a bfd.
(v850_elf_copy_private_bfd_data): New function. Copies V850
notes.
(v850_elf_merge_notes): New function. Merges V850 notes.
(print_v850_note): New function. Displays a V850 note.
(v850_elf_print_notes): New function. Displays all notes attached
to a bfd.
(v850_elf_merge_private_bfd_data): Call v850_elf_merge_notes.
(v850_elf_print_private_bfd_data): Call v850_elf_print_notes.
(v850_elf_fake_sections): Set the type of the V850 note section.
* bfd-in.h (v850_elf_create_sections): Add prototype.
(v850_elf_set_note): Add prototype.
* bfd-in2.h: Regenerate.
binutils* readelf.c (get_machine_flags): Remove deprecated V850 machine
flags.
(get_v850_section_type_name): New function. Handles V850 special
sections.
(get_section_type_name): Add support for V850.
(get_v850_elf_note_type): New function. Returns the name of a
V850 note.
(print_v850_note): New function. Prints a V850 note.
(process_v850_notes): New function. Prints V850 notes.
(process_note_sections): Add support for V850.
binutils/testsute
* binutils-all/objcopy.exp: Skip the strip-10 test for the V850.
gas * config/tc-v850.c (soft_float): New variable.
(v850_data_8): New variable.
(md_show_usage): Add -msoft-float/-mhard-float.
(md_parse_option): Likewise.
(md_begin): Set the default value of soft_float.
(v850_md_end): New function. Creates a note section.
* config/tc-v850.h (md_end): Define.
* doc/c-v850.texi: Document -msoft-float/-mhard-float.
gas/testsuite
* gas/elf/elf.exp: Add special version of the section2 test for
the V850.
* gas/elf/section2.e-v850: New file.
include/elf
* v850.h (EF_RH850_SIMD): Delete deprecated flag.
(EF_RH850_CACHE): Likewise.
(EF_RH850_MMU): Likewise.
(EF_RH850_DATA_ALIGN8): Likewise.
(SHT_RENESAS_IOP): Fix typo in name.
(SHT_RENESAS_INFO): Define.
(V850_NOTE_SECNAME): Define.
(SIZEOF_V850_NOTE): Define.
(V850_NOTE_NAME): Define.
(enum v850_notes): New enum.
(NUM_V850_NOTES): Define.
ld/ChangeLog
2015-02-24 Nick Clifton <nickc@redhat.com>
* Makefile.am (ev850.c): Add dependency upon
$(srcdir)/emultempl/v850elf.em.
(ev850_rh850.c): Likewise.
* Makefile.in: Regenerate.
* emultempl/v850elf.em: New file.
* emulparams/v850.sh (EXTRA_EM_FILE): Define.
* emulparams/v850_rh850.sh (EXTRA_EM_FILE): Define.
* scripttempl/v850.sc: Add .note.renesas section.
* scripttempl/v850_rh850.sc: Likewise.
ld/testsuite
* ld-elf/extract-symbol-1sec.d: Expect to fail on the V850.
commit 31593e1b96c792abba3c5268d6423975aefa56b2
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 17:01:23 2015 +0000
Fixes compiling peXXigen under MAC OS/X where the wcsncasecmp function is not available.
* configure.ac (AC_CHECK_HEADERS): Add wctype.h.
* configure: Regenerate.
* config.in: Regenerate.
* peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined.
(u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined.
(rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H
is defined.
commit 94d15024fe3dff908ab570aaa741b1c834c856d6
Author: Mike Frysinger <vapier@gentoo.org>
Date: Tue Feb 24 01:47:51 2015 -0500
readelf: handle corrupted chains better
The current chain walker tries to protect itself against loops, by only
works with loops of length 1: a chain that points to itself. If you have
a chain longer than that (3->4->3->4->...), readelf will still hang.
Since we know the max length of the chain, simply abort when we've walked
more times than that. The only way that could have happened is if there
was a loop.
commit 884151a7b8f1770a823e5017c8f5025802c44f24
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 24 23:04:20 2015 +1030
Add aligned string merge test
* ld-elf/merge3.s, * ld-elf/merge3.d: New test.
commit 948f632f5671aa16c239507652d92f23f7713703
Author: Dmitry Antipov <dantipov@nvidia.com>
Date: Tue Feb 24 13:21:10 2015 +0000
Speed up the display of unwind tables by using a binary chop search to locate function symbols.
* readelf.c (find_symbol_for_address): Use a binary search to
speed up symbol location. Skip check for function symbol type.
(*_unw_aux_info): Add funtab and nfuns fields contains a sorted
list of function symbols.
(dump_ia64_unwind): Initialise the funtab and nfuns fields and
pass them to find_symbol_for_address.
(dump_hppa_unwind): Likewise.
(arm_print_vma_and_name): Pass funtab to find_symbol_for_address.
(dump_arm_unwind): Initialise the funtab and nfuns fields.
commit cb0728165e282be2ad9b121c8c1e9da98c9784e4
Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Tue Feb 24 11:26:28 2015 +0000
This patch modifies the AVR linker script templates to use __<name>_REGION_LENGTH__ symbols, if provided, for setting memory region lengths, defaulting to the current constant values otherwise.
ld * scripttempl/avr.sc: Add new user_signatures region. Define and Use
symbols for all region lengths.
* scripttempl/avrtiny.sc: Define and use symbols for all region lengths.
testsuite * ld-avr/region_overflow.d: New test.
* ld-avr/region_overflow.s: Likewise.
commit 0821d5b14efc2fb0c929ba077855cbc5e7a0932a
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 11:10:07 2015 +0000
Improves the warning message produyced by objdump when it cannot load a section.
* objdump.c (dump_section): Extend the warning message displayed
when a section cannot be loaded.
commit 10d602c7f9c043a149741acaffb5bbd32f9bff6f
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 10:27:07 2015 +0000
Fix the detection of illegal memory accesses in the MSP430 simulator.
* msp430-sim.c (sim_open): Allocate memory regions matching those
declared in the libgloss/msp430 linker scripts.
Allow sim_load_file to fail.
(get_op): Test the correct address bit when checking for out of
range addresses.
Include the address in the error message when an illegal access to
the hardware multiplier is detected.
(put_op): Test the correct address bit when checking for out of
range addresses.
commit 3ad797fd086ee8eb71041992877e6d169266b4b5
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 24 10:13:51 2015 +0000
Fix the gas test align2 for the PDP11 by ensuring that the .text and .data sections are written to their aligned sizes.
* pdp11.c (set_section_contents): Pad the .text and .data sections
to their aligned sizes.
commit ec86f43468e2591127c493d67882de59dbfd79de
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 24 18:16:26 2015 +1030
PowerPC64 GOLD: complain on misaligned _DS relocs
PR 18010
* powerpc.cc (Powerpc_relocate_functions::addr16_ds): Always
complain if value is not a multiple of four.
(Target_powerpc::Relocate::relocate): Correct handling of
R_POWERPC_GOT_TPREL16 and R_POWERPC_GOT_TPREL16_LO for ppc64.
commit ecfe5151674f7837eb05f0f05dea868586ce2848
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Feb 24 00:00:11 2015 +0000
Automatic date update in version.in
commit b615dd209febdbf5f13e1c4e7667c172d65bd777
Author: Doug Evans <dje@google.com>
Date: Mon Feb 23 13:39:45 2015 -0800
Fix typo in earlier entry.
commit 7ee67ee4424a318e4c975ea61465d6e529da794b
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Mon Feb 23 16:15:29 2015 -0500
PR gdb/18008: Fix typo in documentation
This obvious patch fixes a typo in our documentation
(s/problam/problem).
gdb/doc/ChangeLog:
2015-02-23 Sergio Durigan Junior <sergiodj@redhat.com>
PR gdb/18008
* gdb.texinfo (maint internal-error, maint internal-warning, maint
demangler-warning): Fix typo ("problam").
commit 8090aef2bf5021f35c94193a035eb1ecd5e25e41
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 23 18:59:38 2015 +0000
gdbserver: redo stepping over breakpoint that was on top of a permanent breakpoint
I'm going to add an alternate mechanism of breakpoint trap
identification to 'check_stopped_by_breakpoint' that does not rely on
checking the instruction at PC. The mechanism currently used to tell
whether we're stepping over a permanent breakpoint doesn't fit in that
new method. This patch redoes the whole logic in a different way that
works with both old and new methods, in essence moving the "stepped
permanent breakpoint" detection "one level up". It makes lower level
check_stopped_by_breakpoint always the adjust the PC, and then has
linux_wait_1 advance the PC past the breakpoint if necessary. This
ends up being better also because this now handles
non-decr_pc_after_break targets too. Before, such targets would get
stuck forever reexecuting the breakpoint instruction.
Tested on x86_64 Fedora 20.
gdb/gdbserver/ChangeLog:
2015-02-23 Pedro Alves <palves@redhat.com>
* linux-low.c (check_stopped_by_breakpoint): Don't check if the
thread was doing a step-over; always adjust the PC if
we stepped over a permanent breakpoint.
(linux_wait_1): If we stepped over breakpoint that was on top of a
permanent breakpoint, manually advance the PC past it.
commit d8b901edd1a9b717bd397400ce498c7a2d9504d0
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 23 17:35:09 2015 +0000
delete_breakpoints: Rewrite using gdb_test_multiple
Because delete_breakpoints uses gdb_expect directly, an internal error
results in slow timeouts instead of quickly bailing out. This patch
rewrites the procedure to use gdb_test_multiple instead, while
preserving the existing general logic ("delete breakpoints" + "info
breakpoints").
gdb/testsuite/
2015-02-23 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (delete_breakpoints): Rewrite using
gdb_test_multiple.
commit fd63f640f645878605e4b4bc33ca31fb51583ecd
Author: Vinay <Vinay.G@kpit.com>
Date: Mon Feb 23 17:16:30 2015 +0000
Adds a space between the operands of the RL78's MOV instruction for consistency with the disassembling of other instructions.
* rl78-decode.opc (MOV): Added space between two operands for
'mov' instruction in index addressing mode.
* rl78-decode.c: Regenerate.
commit 5518c738a47f0282d6fcc6768e1cde598e9538e0
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Date: Mon Feb 23 17:04:53 2015 +0000
Add support for the h8300-linux target.
ld * Makefile.am: (ALL_EMULATION_SOURCES): Add new emulations.
* Makefile.in: Regenerate.
* configure.tgt: Add h8300-*-linux
* emulparams/h8300elf_linux.sh: Add new emulation.
* emulparams/h8300helf_linux.sh: Likewise.
* emulparams/h8300self_linux.sh: Likewise.
* emulparams/h8300sxelf_linux.sh: Likewise.
bfd * config.bfd: Add h8300-*-linux.
* configure.ac: Add h8300_elf32_linux_vec.
* configure: Regenerate.
* elf32-h8300.c: Likewise.
* targets.c(_bfd_target_vector): Likewise.
gas * config/tc-h8300.c (line_separater_chars): Add a version for
h8300-linux that includes a separator.
(default_mach): New variable.
(md_main): Use it.
(md_longopts): Add '--march' option.
(md_parse_option): Parse the new option.
* config/tc-h8300.h (TARGET_FORMAT): Add elf32-h8300-linux.
* configure.tgt: Add h8300-*-linux
* doc/c-h8300.texi: Document --march.
commit 1f10ba14bc8c53120432ccc7b2ba5605b4cee80e
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 23 16:45:39 2015 +0000
remote.c: simplify parsing stop reasons in T stop replies
We need to be careful with parsing optional stop reasons that start
with an hex character ("awatch", "core"), as GDBs that aren't aware of
them parse them as real numbers. That's silly of course, given that
there should be a colon after those magic "numbers". So if strtol on
"abbz:" doesn't return "first invalid char" pointing to the colon, we
know that "abbz" isn't really a register number. It must be optional
stop info we don't know about. This adjusts GDB to work that way,
removing the need for the special casing done upfront:
/* If this packet is an awatch packet, don't parse the 'a'
as a register number. */
if (strncmp (p, "awatch", strlen("awatch")) != 0
&& strncmp (p, "core", strlen ("core") != 0))
For as long as we care about compatibility with GDB 7.9, we'll need to
continue to be careful about this, so I added a comment.
Tested on x86_64 Fedora 20, native gdbserver.
gdb/ChangeLog:
2015-02-23 Pedro Alves <palves@redhat.com>
* remote.c (skip_to_semicolon): New function.
(remote_parse_stop_reply) <T stop reply>: Use it. Don't
special case the stop reasons that look like hex numbers
upfront. Instead handle real register numbers after matching
all the known stop reasons.
commit f971c12fc5aca91875b2fff0a115611577d01909
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Feb 23 15:33:56 2015 +0000
Fixes a problem where "ld -ixxx" would report an error of "ld: bad -rpath option".
* lexsup.c (parse_args): Produce a more reasonable error message
when -ixxx or -rxxx is the last option on the linker command line.
commit 0f8f0c57ea4742ad2d9b0598a18243331c1c06e3
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Feb 23 14:53:02 2015 +0000
Fixes the generation of dwarf line debug information for the msp430, even in the presence of function sections and linker garbage collection.
PR 17940
* dwarf2dbg.c (out_header): When generating dwarf sections use
real symbols not temps for the start and end symbols.
* config/tc-msp430.h (TC_FORCE_RELOCATION_SUB_SAME): Also prevent
adjustments to relocations in debug sections.
(TC_LINKRELAX_FIXUP): Likewise.
* elf32-msp430.c (msp430_elf_relax_delete_bytes): Adjust debug
symbols at end of sections. Adjust function sizes.
commit 8f3102ea1a9954ed00f84a9e3452a79e94953840
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Feb 23 13:43:11 2015 +0000
Fixes a typo in the license notice in include/elf/score.h
PR 17915
* score.h: Fix typo in license header.
commit e5b85ead638e4916ee188698e434dd1940e484e4
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 23 14:03:48 2015 +0000
gdb.base/info-os.c: Include stdlib.h
Fixes:
> gdb compile failed, /gdb/testsuite/gdb.base/info-os.c: In function 'main':
> /gdb/testsuite/gdb.base/info-os.c:65:3: warning: implicit declaration of function 'atexit' [-Wimplicit-function-declaration]
> atexit (ipc_cleanup);
> ^
> FAIL: gdb.base/info-os.exp: cannot compile test program
with recent GCCs.
gdb/testsuite/ChangeLog:
2015-02-23 Pedro Alves <palves@redhat.com>
* gdb.base/info-os.c: Include stdlib.h.
commit cb967f0d6ce36d566d97cf37b298265434fb6db5
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Feb 23 13:39:51 2015 +0000
Fixes a couple of typos in the license header of the cpu-w65.c file.
PR 17914
* cpu-w65.c: Correct typos in license notice.
commit bc9540e842eb5639ca59cb133adef211d252843c
Author: Pedro Alves <palves@redhat.com>
Date: Mon Feb 23 13:03:10 2015 +0000
gdbserver: 64-bit kernel / 32-inferior, syscall restarting
$ make check RUNTESTFLAGS="--target_board=native-gdbserver/-m32 clone-thread_db.exp"
gdb.log shows:
Running target native-gdbserver/-m32
...
clone-thread_db: src/gdb/testsuite/gdb.threads/clone-thread_db.c:57: thread_fn: Assertion `res != -1' failed.
...
(gdb) FAIL: gdb.threads/clone-thread_db.exp: continue to end
That was waitpid returning -1 / EINTR. We don't see that when testing
with unix/-m32 (native debugging). Turns out to be that when
debugging a 32-bit inferior, a 64-bit GDBserver is reading/writing
$orig_eax from/to the wrong ptrace register buffer offset. When
gdbserver is 64-bit, the ptrace register buffer is in 64-bit layout,
so the register is found at "ORIG_EAX * 8", not at "ORIG_EAX * 4".
Fixes these with --target_board=native-gdbserver/-m32 on x86_64 Fedora 20:
-FAIL: gdb.threads/clone-thread_db.exp: continue to end
+PASS: gdb.threads/clone-thread_db.exp: continue to end
-FAIL: gdb.threads/hand-call-in-threads.exp: all dummies popped
+PASS: gdb.threads/hand-call-in-threads.exp: all dummies popped
PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on all_threads_running
PASS: gdb.threads/hand-call-in-threads.exp: breakpoint on hand_call
PASS: gdb.threads/hand-call-in-threads.exp: disable scheduler locking
@@ -29339,15 +29331,15 @@ PASS: gdb.threads/hand-call-in-threads.e
PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 4
PASS: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 5
PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 1
-FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
-FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
-FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
PASS: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 5
PASS: gdb.threads/hand-call-in-threads.exp: enable scheduler locking
PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 1
-FAIL: gdb.threads/hand-call-in-threads.exp: hand call, thread 2
-FAIL: gdb.threads/hand-call-in-threads.exp: hand call, thread 3
-FAIL: gdb.threads/hand-call-in-threads.exp: hand call, thread 4
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 2
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 3
+PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 4
PASS: gdb.threads/hand-call-in-threads.exp: hand call, thread 5
PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 1
PASS: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 2
gdb/gdbserver/ChangeLog
2015-02-23 Pedro Alves <palves@redhat.com>
* linux-x86-low.c (REGSIZE): Define in both 32-bit and 64-bit
modes.
(x86_fill_gregset, x86_store_gregset): Use it when handling
$orig_eax.
commit a17b84dd9f9171bdfaee82f61ce6df9f65e94d0b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Feb 23 00:00:09 2015 +0000
Automatic date update in version.in
commit 5634e839cc1af4629b3baae1138b0ddeebbacd71
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:34 2015 +0100
sim/erc32: Use readline.h for readline types and functions.
Use gdb's readline.h for readline types.
commit be66981e1605eff305ac9c561825f4bd6801fca2
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sun Feb 22 05:18:50 2015 -0800
Set GOLD_DEFAULT_SIZE to 32 for x32
* configure.ac (default_size): Set to 32 for x32.
* configure: Regenerated.
commit 85c3a371b327377ba1014e8962ba41554599d3e6
Author: Doug Evans <xdje42@gmail.com>
Date: Sun Feb 22 09:11:55 2015 -0800
testcase for PR symtab/17855
gdb/testsuite/ChangeLog:
PR symtab/17855
* gdb.ada/exec_changed.exp: Add second test where symbol lookup cache
is read after symbols have been re-read.
* gdb.ada/exec_changed/first.adb (First): New procedure Break_Me.
* gdb.ada/exec_changed/second.adb (Second): Ditto.
commit 96553a0cffb30d2ac6068eb71bed38ea7432073b
Author: Doug Evans <dje@google.com>
Date: Sat Feb 21 21:58:31 2015 -0800
PR c++/17976, symtab/17821
This patch addresses two issues.
The basic problem is that "(anonymous namespace)" doesn't get entered
into the symbol table because when dwarf2read.c:new_symbol_full is called
the DIE has no name (dwarf2_name returns NULL).
PR 17976: ptype '(anonymous namespace)' should work like any namespace
PR 17821: perf issue looking up (anonymous namespace)
bash$ gdb monster-program
(gdb) mt set per on
(gdb) mt set symbol-cache-size 0
(gdb) break (anonymous namespace)::foo
Before:
Command execution time: 3.266289 (cpu), 6.169030 (wall)
Space used: 811429888 (+12910592 for this command)
After:
Command execution time: 1.264076 (cpu), 4.057408 (wall)
Space used: 798781440 (+0 for this command)
gdb/ChangeLog:
PR c++/17976, symtab/17821
* cp-namespace.c (cp_search_static_and_baseclasses): New parameter
is_in_anonymous. All callers updated.
(find_symbol_in_baseclass): Ditto.
(cp_lookup_nested_symbol_1): Ditto. Don't search all static blocks
for symbols in an anonymous namespace.
* dwarf2read.c (namespace_name): Don't call dwarf2_name, fetch
DW_AT_name directly.
(dwarf2_name): Convert missing namespace name to
CP_ANONYMOUS_NAMESPACE_STR.
gdeb/testsuite/ChangeLog:
* gdb.cp/anon-ns.exp: Add test for ptype '(anonymous namespace)'.
commit e26473a140d91672765866857e2284e4a7f105b4
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:25 2015 +0100
sim/erc32: File loading via command line did not work
* sis.c (main) load binary file from argv parameters
commit 96d67095792f5c8c0c91522820de861e54c37728
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:24 2015 +0100
sim/erc32: Fix incorrect simulator performance report
commit bb6ead917c6aa8159281cac13b603e43035dcea3
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:23 2015 +0100
sim/erc32: Remove unused defines in Makefile and switch off statistics
commit 0172ee3adcd28ffdc89f8288eb11924f4b1274d7
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:22 2015 +0100
sim/erc32: Use fenv.h for host FPU access
commit 20a0ffe33a7d43ba13eff917ec3f50b4f7644f81
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:21 2015 +0100
sim/erc32: Perform pseudo-init if binary linked to non-zero address.
Binaries produced by most erc32 tool-chains do not include
system initialization. sis will detect this and initialize
necessary registers for memory and timer control.
commit df9bc4163b1331c8a4dad6830afeff4ff305a20a
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:20 2015 +0100
sim/erc32: Corrected wrong CPU implementation and version ID in psr
commit 53b5af48f6591c3120fb076f078188a4f117c2b7
Author: Jiri Gaisler <jiri@gaisler.se>
Date: Thu Feb 19 23:31:19 2015 +0100
sim/erc32: Disassembly in stand-alone mode did not work.
The API to print_insn_sparc() has changed over the years ...
commit 74f4df0028f256214ede2091cb102ffd496463c9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Feb 22 00:00:08 2015 +0000
Automatic date update in version.in
commit 9035ed511099fd79bc5a76d1ac457c0a8226a324
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sat Feb 21 16:10:04 2015 -0500
binutils: readelf: add missing newline to warning message
commit 97a0c6972eb9eb730df3817a95f351545a8f7cac
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Feb 21 15:24:20 2015 +0100
Testsuite patch for: i386: Fix internal error when prstatus in core file is too big
gdb/testsuite/ChangeLog
2015-02-21 Jan Kratochvil <jan.kratochvil@redhat.com>
PR corefiles/17808
* gdb.arch/i386-biarch-core.core.bz2: New file.
* gdb.arch/i386-biarch-core.exp: New file.
commit a47cd6e95a6eeaae01c96b89880330c4c1db0c4b
Author: Pedro Alves <palves@redhat.com>
Date: Sat Feb 21 12:03:23 2015 +0000
gdb.threads/multi-create-ns-info-thr.exp and native-extended-remote board
The buildbot shows that the new
gdb.threads/multi-create-ns-info-thr.exp test is timing out when
tested with --target=native-extended-remote. The reason is:
No breakpoints or watchpoints.
(gdb) break main
Breakpoint 1 at 0x10000b00: file ../../../binutils-gdb/gdb/testsuite/gdb.threads/multi-create.c, line 72.
(gdb) run
Starting program: /home/gdb-buildbot/fedora-21-ppc64be-1/fedora-ppc64be-native-extended-gdbserver/build/gdb/testsuite/outputs/gdb.threads/multi-create-ns-info-thr/multi-cre
ate-ns-info-thr
Process /home/gdb-buildbot/fedora-21-ppc64be-1/fedora-ppc64be-native-extended-gdbserver/build/gdb/testsuite/outputs/gdb.threads/multi-create-ns-info-thr/multi-create-ns-inf
o-thr created; pid = 16266
Unexpected vCont reply in non-stop mode: