The branch, scox/globalstate has been updated via 8cb7f5b73460dd9ed08cc78a382d60e52c8f2781 (commit) via 9c03a84f6cc54af01d4fe655f6e0a0aa13d8ef74 (commit) via 4d82fe66e8d38b20ad429cb99a99ed8741336d72 (commit) via e7cf25a8ab54cd02b48e7443ef25764475f02315 (commit) via c0518081f09298c67d1e74e0cc592fde8e0c6571 (commit) via 651657fa61aa0a2946d56063295a7ce8d73f803b (commit) via 4c4ac9642a973e825d71584b526ee8bbb83fdbd2 (commit) via 1b451dda5f8905b26bafafe00423335d4fffe8dd (commit) via fccbac73f9328cdde552d8dd82927481a60c388b (commit) via 3facb0e9a754d2869a139fe135dcd2a58ced2347 (commit) via bc06e0b148dfc4f2e52003a17d48463150f72e7b (commit) via 8a4c286981e1a69596a6296ac14b66c5cee05550 (commit) via 4e7b8beaa3b7b9ac8577b10afa9d58bb9d453b08 (commit) via 663f6d42f47265d2deaa86c8a976e658fb13f820 (commit) via c84f6bbfe50ff13928360d3cc349d7c553867ce6 (commit) via 22a0232400ea09c57ab70d97cffc1f25e6320da7 (commit) via 5d5658a1d3c3eb2a09c03f2f0662a1c01963c869 (commit) via 43792cf0de3a49fb871d432343672bdf16270e99 (commit) via 8465445732dc04c3fb6cf954274e12d06b274f08 (commit) via e3940304fe75c91f99e260a89fe8c45ece7e373f (commit) via a911d87ad714cbfbbc5c5752cb8b445a7e70196c (commit) via 8405419985b2a5f9c4f79b28af6c2324655b5c5b (commit) via 13ce3603be6e1732d1580237ba4ed9b0f0f18a1a (commit) via 1bce3adf994fae49c51c8ddadd4a2371ab6fcc06 (commit) via 27b9952f2d68f2541191fed4589d5379d10c1271 (commit) via 82075af2c14b1f8a54fa5796fb63f7ef23f98d9d (commit) via 41549dfbcc747d0dc4a97c9a427c3a29e9878f05 (commit) via f9498162b9aae9233a6d37c102bf744b77961226 (commit) via 8a8880cb673893c479b473f598905c0490897817 (commit) via d1193addae7e5a24dc867f9946681ef0781a766f (commit) via 1985dc2d048a4134f20dc9cda61255eb33289476 (commit) via 105bde5771c1c1b26b69e3623c88f3caafa3a480 (commit) via ac06903dcff237777c8d507a03aafd79c84129ae (commit) via ce5e165eae8925f64da52172f3e67ad8010a1aa0 (commit) via d18547d8b08615a58db18ad3e43f721dc92ae298 (commit) via 8f13a3ce8afc1144169a14c7704689e263316e70 (commit) via 5b3da067f0893be637f9e992b409e36682ea081a (commit) via ba4dd7c4a1d99c62a1c2edd68f511a82f8fe041e (commit) via bc504a311794145e7aef2011f31ea87aa64bea4c (commit) via cde67b27d6304ffcc43fc13fb6da56f583af018d (commit) via e46eeeddfb308cacd863f11a433c10ff1d403827 (commit) via 5eddd57823971bdb54f957d10c11ff3fc9f97b1e (commit) via 5230aa4dc919e4aa5519146531f55d2d094a0cae (commit) via d21f123b0ead1806416cf0dafae12bec4cca8920 (commit) via b36d953bced0a4fecdde1823abac70ed7038ee95 (commit) via 4d625b70fc3fb7facc7159feb8d49b78ac6641f9 (commit) via b05b120205e697db6291abb95a8cd2be054f99e9 (commit) via fd18a3722ce73d6c031dc1b968d1e1d508df17b5 (commit) via 01d8c27e4f77375c0e157d115266129b76ff6734 (commit) via 9a70630256e21a7b86344d555dbe39407e998f91 (commit) via c0ecb95f3dc0c3e8d1545f0a37c0c3e537e1ea96 (commit) via b835bb5265d614fd8a4759f284b987b365292c36 (commit) via afa8d4054b8e0b1384f2d07f1c15163c0699d660 (commit) via 4849dfd8f454b9c595e6ee7477f6b7b25c31a499 (commit) via 34ac507d94ea4af59f931b26e66e7721c967f55c (commit) via 3e35d6c9ffe40c6c9c4f0a9a58d6dff8a0558d31 (commit) via ce39bd389039d99458950b072550ab52f0a07a34 (commit) via e19418e02e25ae4c62eb95547220897fa6aaf2e0 (commit) via 16f7876d71604f835aefe48f0bf230c028c05d99 (commit) via 35656e95217a20309c0a0f16bf0c89a49a549177 (commit) via 99d8e879938c947588332a9cc579d378ccc2a855 (commit) via 6d90347b5dcbb10ecb410b1246613c0caf511bd9 (commit) via 347fe5bb868b7383d4f6942894b31ecf1da6894e (commit) via 0dc73ef7c304e6ffc9ce43b2131c77553a74e1d4 (commit) via 22be3fbeaccf50e3c0f58d0f7e9f7ed77effeaab (commit) via 7124407794aaa3762a25c26cd3a00a637f7241c9 (commit) via 5295724cdc94a09713b021728b02163dad128e9e (commit) via 936df7568a0e47547285a0dd57b81643264fef38 (commit) via 80f3f9eecf3aec5903a1a52a7963e9029ef9d15f (commit) via 6cfc1fcb515d1ecd8445905b4749b81b3ca69552 (commit) via 582a1b0064b14cb12b18f48678876d32c59c11c8 (commit) via 2f99e8fc9cb84ca80cfca6c119f1f22bbfd2a314 (commit) via 5a0dd67a459338efb77f8d82bb3650d801ff0dd5 (commit) via 83c3256ef5afe10625fd55dda2df5fc56b9b7393 (commit) via 109575d7ebac21a0eb67980001ecd4173d696f88 (commit) via 2ed73a6ff5f75c689e9d23603c2078ade27ddf6c (commit) via 5dd0563088b3ca9f5fd66daa0ffe823b60e4b92e (commit) via b900245c3b92fc460a3f7fa17d14eb08f9ab4c76 (commit) via 2e3d4f4d5d386995e99d035354a9e411d1dc0331 (commit) via 23ad6f3ec4b1086a987ba05e6ea77c131d72875c (commit) via b31e4803316aa0635a6f9beaeceea3e18dbbe459 (commit) via f5aa306929127aacf9890a949f9a21b38a0e0e7e (commit) via b2ca446f682854c2b187178358b97174bf313fa7 (commit) via b05a65d0adb340e4129f62c1d380a09935ee433d (commit) via 79bc59cb349fdbb8d3fa81804eb121af3c340c22 (commit) via 68477034727ad85aeed248ec995da746f7639e53 (commit) via bf69ad5a189db1dca362723a3b0a7a1b545219a9 (commit) via 7288962315bd9dd1c003e497081a2c03fafc0711 (commit) via b36c1ccb1feb678f7279b4a8d66c0125d4295078 (commit) via 203217665139943a4f0d1797b9a5f913b3acf184 (commit) via 4bec0ef03e91506caf60d8842786b29c2d2ff049 (commit) via 13b356b2b5c1857490b7911dbbb48e17a3a92b04 (commit) via 6675033211e145ecd094b6803ed4a3427b3fd21e (commit) via 402cf0534665db83e19c00f130184e94552a75fb (commit) via 1a846c62626357f9e966ef50917dca3a357c9644 (commit) via 824c862804128f6d31ae5f80fb741d12419da943 (commit) via 70d394483206f5afe911fa21c8456b852c12da74 (commit) via bfb2629c162c05dac30fc16180953efb671c4227 (commit) via 4eb70007f1a750b5bdf4e2a08eef96cf7c666c0a (commit) via 296ebfbb91bc9453134c467b4bfe8363582674f7 (commit) via fa89c1268f5d4e9950f3faf8c027dbbeb6aac773 (commit) via 976102cd178de0dd6b366746f850b026a2793097 (commit) via 44ddb0c66aa268f0027665da61273e78c9d748ae (commit) via bc273e17510c7680bcffee75858d374aa93f7e4b (commit) via ac8eefeb243ad326946c3b2b78ba5d1367fe0f99 (commit) via 6f9a11d38911851eaa22d3f55a0939417d7aadc3 (commit) via 2f2da8fd3ff3c04928621bcbc0c01b9f9ebce7cc (commit) via a3dc0a7f65bd4cfcfad6afee8b11657972e5a8de (commit) via d537eeb527bb80fb791d22a7eedec245856b9d35 (commit) via 43d223b5430a93dc0d777276471128800b9887cf (commit) via b2e9744f80a002c06504ac1ef41ae1f7e48167c8 (commit) via 28d45e28be904a53fef4310b3d41e41b045885b0 (commit) via 23ba6f1807299311717df4d48b5f68d534ab6c47 (commit) via cf8502c1314287df100e44f81c4e3cf32c198353 (commit) via dcb1c79659056a9b762feb235815ef283725490f (commit) via 8d7d784e23b5b2f8c7e28ece1bdb73b58199f16f (commit) via 9bbf6f91c6e85ca916ec2c266009167f20f5ecfd (commit) via 13adda68c54abf2654d01fa6523c379a13e418da (commit) via 43368e1d9ab8437079001f7a5f6ae2241acaece3 (commit) via 77cf2ef5dc9099501529151921a73be904757466 (commit) via 3726f72c654ab357be5b79c78f238da7a869f9a3 (commit) via db18b05b4b0bcf6b6b1d6e735b70c86bb008962c (commit) via 61971b86bb897dc333fccffb7518056c83b99f45 (commit) via 34fed69938f1296b62354b2a825b49602fe7af50 (commit) via aba6f46b235a3a139c04d5ed6a3310125aa9c982 (commit) via 0cb8d8513cf44a102953ff5cf93e9dd399f42e9a (commit) via 1ac72f0659d64d6a14da862242db0d841d2878d0 (commit) via 987f8739051ff368ecaf6ca1e0fc966c974381a1 (commit) via b3fbb288afd9071523b61b3222869cfed0f95ab8 (commit) via 027e73b217ec5ed334015b5484ff8d281258b6bb (commit) via d47f5b30d8481272e9480118bdcb283690070349 (commit) via 32273fe68f3d1288b2eef6b96beda3732d0ac25e (commit) via dea827fc5c3349dc0308d0e22ab2d6791282cf8b (commit) via 4a2abdc468f9028435df0b30d9dab1b5ba9a7520 (commit) via 6f2750feaf2827ef8a1a0a5b2f90c1e9a6cabbd1 (commit) via 3499769a6a6d3acb48d4d7eef5f656b22fecaeb8 (commit) via 4120fa118fc46e07910c2f36d8ca0c790c2732b1 (commit) via 618f726fcb851883a0094aa7fa17003889b7189f (commit) via edd88788349db3bd2af5fc9a38e2ea9cc220757f (commit) via 0f7b3ef4dc9e4abf0bd85bb759f620c6302dfacf (commit) via 9ec80f85156e65efa2a8b95de185c4ac49cd11cb (commit) via 5ba8bc973cca60cb06bf41a2808ba6fa4ed02879 (commit) via 8e26d677a240d3b495b7c565006d75646a15ed53 (commit) via eca4255a1a6c3603e05c4f3ca9c0849f529657c3 (commit) via 356a418c5dbff10ae4a2afc599163c0a85385f07 (commit) via cec99e6b2c28d3d32d770ad645c4b0c26f2e1685 (commit) via 2a2757ac7e849aa35fc519ddfcc8688a46b60448 (commit) via 4ca9d09e826e959f382ab45b2e1dfa8125135124 (commit) via 5658c2571f34fcf7f0f10dbd45ddc6680aa57576 (commit) via 9950eccba15155dda9ef8025a5a1685dd9db53b7 (commit) via e1211e55062594679697d2175b7ea77dad173823 (commit) via c78dff22918f29b3970729f32f70060b70e75678 (commit) via f2089a69c164c789bcfd06b5eb9e0878f5520e13 (commit) via 331e61312eab8ef2412582bafc404cc107fd5e8f (commit) via 90d99f327063af7d87c61234896d4a1dbe073a43 (commit) via 090d9d00b51cf130973f01770cd1712e768f1d87 (commit) via d50d388b8505cd822e157db422f71937e41953de (commit) via 65da7f144f53f8af57ff8d4e337ceda49daacc21 (commit) via c622ccedda0134f95751bf14d1daa6fce2365d45 (commit) via a7be2893a6449e64fe6cfcdd8700b0a367a69f19 (commit) via 5d01527536684c75235f2ed288b11d253572b570 (commit) via 5e744ef887c1e879052cb30783638807190275f8 (commit) via 1b393626cef48974502e7077b191555b56680ee6 (commit) via 466b619e95908dc073b78413f0d0d0b1cb97e4b5 (commit) via b72dd4c228d71b44e487ff2c53c0d2883653bce7 (commit) via 236bf91febaa3a7b0c2231a8740968e90aa497c6 (commit) via dea10706e9159ba6e94eab4c25010f3006d033a0 (commit) via 26f8bf63bf36f9062a5cc1afacf71462a4abe0c8 (commit) via 8b494522f9f20e1e1d29089067d51fc141c33558 (commit) via 0e9672991e9346d5c2cb9cd33e30fb3e573f88b8 (commit) via f66affe97c40465e70249970b3339cc2f0a40e69 (commit) via 3e1a8f9569478157ee932e35de928beb211f5df4 (commit) via 245d2ad7f57cf877abf7442f9a189dc4c655f136 (commit) via 79fad5b803e22798bcb087066234a954d0ccdc60 (commit) via 2023145711ca36f06258e07f4fa1c490efbbf37e (commit) via 9c0c156bb7ddca2d3fce7bea96631715f8c67390 (commit) via 34cf511206839b0f2b76870bf2d487c2dbcdbc1f (commit) via 13e49fd6364e94625985b9eb15da5b1decd6a196 (commit) via d4a587a4ed828eaf3273b435e328120e73bbb2cc (commit) via 49aef5a5b8873b80f43ca79edd5755d28cab53b3 (commit) via cf59f47ebeccf4ea82b6c529c882644e4c445323 (commit) via 0d58595077841917ad57c9f8d2a61184a504ef40 (commit) via 8a0ebee658862bec66191df192c1d3b09bf0c943 (commit) via 91d6df784db745df2b0a6827de8306246083bc94 (commit) via f0c1b768b4f42c631547643ec01b020108c0ef8e (commit) via 42a3af5688cd41550e2b517f676f03f2842e615b (commit) via 9e8e7dd966670c80f3b71f8cf7e07f2843b33e80 (commit) via 268c91391a3235cb00249b6eb9a2cb7341914fed (commit) via ef04e3719831b50e62cb97cd0ac10548a35cef40 (commit) via cb379ede3cf6cf367b2bb58b85d8ee849a82a9b0 (commit) via 269362117d399d9d86b7e565e7cb827500fac31c (commit) via 9db2b719087eb42cfb31018fe87657243f6185c9 (commit) via cec19744887931294e9d4a1dfa4fa8bd42e57ae5 (commit) via bd3fb5b8fb33adb751407a128e1f2240dfb215d9 (commit) via 84e8e361dd3a3dd7314759f7f07927dac401d0e6 (commit) via 3cabaf66d6ec7343bd3badc5c44c2ddd06221913 (commit) via b1af947345ccba81244d3370756d0047d3bc8b6e (commit) via 8abe6c668e9336418277e64983587f121c8534e6 (commit) via a0f5b6dc16ffcb53f2ce22ab2eceeb2d67755a08 (commit) via 2fd158eb7bd4059478086143dd58edcc5ea44864 (commit) via ff8646eef8bdef6fe3091eb79627929c1c100c6a (commit) via 4ed7ed8db2289a9cd61312c14344cb210dc229b7 (commit) via fc289b0a832c536a2ec324634cb420f39b212696 (commit) via 443bfd5a371633064bf251a74b27382c7774f217 (commit) via ab8314b3d99625c9a2125d39f4f3e74bf9e49cce (commit) via 64ac34cf666e2f6b47ee4d4ad8d57e8edac8514e (commit) via b1a0d2a059824b9c2826ff27ce459c68d4bf0e10 (commit) via fe33faff35a8ee19db823149e764e3373e603bb9 (commit) via 491d01d3da18fb61fa6c7c61c091b4cb8c5773f7 (commit) via 4abd5ed2221c826bcb843794286777452de5c50b (commit) via 0e50fe5ca6ed2ce780cbbfa516aec20b023433ce (commit) via aec47d1d54be415050bbd3ccb93c0157d60ed92d (commit) via 239efab16429cad466591ccd1c57bba786171765 (commit) via ac4c9b0459fe89f2b84bf8b18a3bf86bf569b7d1 (commit) via 6d265cb4a956310d2cae231ac63a37e11fe376e1 (commit) via a20a33ffa88d6ca8c42e5c6179024da3d0c569bd (commit) via 10125099f09197b325c7e0e7f2af6d3c04f929a6 (commit) via 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5 (commit) via b6304613bf0bb1c188bed30eb3df6e3e154b4196 (commit) via 35adc03f3787405297259a1706608bdeaab4fda9 (commit) via 361fa3a4948143be2b8a113e5c49adb8e8505eb7 (commit) via b4a7fcab76dc6162a4db4b93d878a212553b722a (commit) via c2345c187848c7294b87e51ddc9ecb59c835189c (commit) via bf401b072ea4eaff1af425df69f32cad8d52b57c (commit) via 0965b1441f522361b90acc924534cb9a976e2f97 (commit) via e7826da33d884c21bd1a036e71fe1002fae76ce4 (commit) via bc008695f5f9c72d2eac80d5dc125659ca106fad (commit) via 1690b6163c6546305cb5f8811d4c7348d8f435e0 (commit) via 420d30a957d0bc3a773de0490b26aeae1ad3b5a9 (commit) via a28def75916fb4fa8280404f8c023adc0773162d (commit) via 5f2dfcfdb5def494d13bff72275f6ff75fe75f40 (commit) via aff9c0f8ab32e4f2f7ff9700afe84a61d23a08c6 (commit) via bd2b290956e9a1931cf593b0f2cc934867da1d45 (commit) via 7fe5e27e9d63b065731b1b0b69ffd344942f4f39 (commit) via d9311bfaf572cf14af577a66e79c51c491553552 (commit) via 68ce205943e0821eacd8028881ced3607cc83c0d (commit) via d0e59a68884ad3a346ff0f6f763636c7245e4cb3 (commit) via cba7e83fda349cbf423fab274f5b8677d8148947 (commit) via fa5308bdcc4967861d1277b45205c2623b154a64 (commit) via c9f203207d418f72217f4bc0997acd809a0479ce (commit) via ec70be9f6162aca5fb14876e232e68c64b1faa7f (commit) via ce3e49806d505721e0875e704de0b6fcba7660ed (commit) via 33e0d1ca50b06a19fc1b813755cce5b6c4042d95 (commit) via 16e1d72743fe26eae47c587587b5cd009195803f (commit) via dea6e325f6aca9ec51b932ad514063d57bcc5aea (commit) via a6904d5a6aa63e4bef7207407250d8b76b56f8a9 (commit) via 4a6ed09b0f70c79b11bc1e0973a7333d9316a287 (commit) via c3c874459bf57a70ccbf71a39a3a7dc3c472a201 (commit) via 10c9892b66d56de0aab3fbaec3d59a0304dc0a21 (commit) via 0bef0414267e22a1ba581b001836fc800b6370e1 (commit) via 95c29a83ebadd0038fd304539a83c5e90798c1b9 (commit) via eedd1410d342a8305f7063457d9090ff0de2366e (commit) via 7544db951abbb5dca5373dcc7ae83ed60c0782ad (commit) via a4e22a5df64a46bc99f737a982c0b9d1e8a45e2b (commit) via 72d98d16ed09584660d0cbb759d90f8dfeef2343 (commit) via 9c35a5290213e9a28e6cc691e1cc7ba5055653f7 (commit) via 29b1539538f5f285e017adbc64b8d72b45c104a8 (commit) via ff1fe6fad9687cebddcdf82076c55d7025df7566 (commit) via a22279dd83da7a0dd2b496c92dc2522427f74e37 (commit) via 270f824531ceef276616a5d2f3027fa9f537c10b (commit) via 1d19cae752a7b032b8253feb4fa3b9f1dc162823 (commit) via 08832196accd270fa053e8125c21e7a54ab19fe0 (commit) via caa8d70005e4e12392683c799b30790fc4c62166 (commit) via a117b0a51cd3c768453c244a3754c1b9a77e74fc (commit) via ef603459d553034a3f4daeb9c8c673f5ef3e4ed0 (commit) via 0588c79688b061699500f317e193bbb3fe50c41d (commit) via 5d978e177217d8e9da8648498f0592b5cd885e69 (commit) via 7e763b8690ff486d9783f43ce0f4bbb7c9e81b6c (commit) via 87a3a92c46c770e6aa2ca1209f46af16eae2c4e9 (commit) via 19d9d4efd18bcc633e99cb6a3e39bd9b22ca70ce (commit) via 8020350c5277e056e89b0ea5e14a8d09408f7fb3 (commit) via a8f077dc25b1732fb272a7ff10f72b5ca6f67b70 (commit) via 4fd0a9fd005ea3affe8e61f6ec82817055a3bc2b (commit) via b5b0f34c669a91b9d873221ea3d688cf7f495ab5 (commit) via b195470dd29e8a5c8810209fb2d22c30004fe6ab (commit) via 3067d3b96cfb88e86acf94d2aa1575cff0e0110f (commit) via 65f2205d609d9c38e1a7f009d2c6833aecfb83eb (commit) via 4b5fc357a17d59929cf39869d19fc4eabdb7ae81 (commit) via bb515fea4ac30f761c17dec701c95c0b54fabf30 (commit) via 5f7728b7413b3bed576f8dd11d1343c20b3a2333 (commit) via 42f23f6218262ae8488caab214b7f272c6758941 (commit) via 80776b29d60ebdcd3631604858f144a72b8bcb8e (commit) via f3aa142b8b04bfccef2cbc3233b565c2b3faa01a (commit) via 6b4680fbd08221530ad3d541cd51a866eefef6fc (commit) via 51d543ed936c9ea7d045ecf80030e6bc8ffff29f (commit) via 40d16a76c781bc9951d22ee359e07c6c240b81ba (commit) via 6351190792e586b5e80fe0efa0f254b4da0b6705 (commit) via 132874d7e3c94d8cc6f865b57f286cf62e5ad0b8 (commit) via 92e18d93433197e0cee12366b17297a984e76bd8 (commit) via 552e55ed06b1e68dfde4fbf3dc0dbd9f43f92108 (commit) via 365f51be4900322d3c833183083ff359f4b93db6 (commit) via 39040bb911bc71e49f2a2dd951f8af1b44e562d7 (commit) via 67dd2c2073b194f68b10f9d53c70132fc385d437 (commit) via dafa877d360978c80c71ce6c64a4cbc29effdd10 (commit) via b817670b52b7414d592cbfd96fd77cf725a33413 (commit) via 1f157432d9d71fa036cdefb51a64d35de19b50ab (commit) via 4fdd372d502d241eb42032844836ae031830237a (commit) via 3b2464a8d39b8b787664438253b8fdf7625cac32 (commit) via a0def019aaf79adf3add2a0559ab75bb84d72085 (commit) via 5c000dff26b7c5159ca1a6d562e7ab50656f4b73 (commit) via 1a48ce76774633e9e27dd245ba275a714b2b339f (commit) via 8c05462adbc01f0aba946c42422146ccca2ae4db (commit) via f43f85715ac097b6ff4bfaed00879eb541428c1a (commit) via 6e0813d359c6eaddc481b3b902ca4ccc1251febe (commit) via 6b2353a53a621680dc839366f4b2b4f96eccb6da (commit) via f1637ebed142eabd96cbc009edda8ec903c71fd6 (commit) via db91f50261d30e66350281d18759aa7490672a34 (commit) via b37a6290beb90f4f65f1513626205f7bac695624 (commit) via 1e6f4800fc01c7957d0688158385aba3bf5ce8de (commit) via 9ed608f98b2c8c483c994f884429420e74835417 (commit) via a0f7013add6b1737e9a5e5d63cdf41ab2ebca0bf (commit) via 55c144e691ec05a7b8231b5c58dc6d6659a1c4eb (commit) via 73af8ed6b107040eb7488f6ec122cd05d5e2e903 (commit) via 9343aa2bf070409716ae15f300bb2aa06eaf71c6 (commit) via c5847ba7267b6eedd4b750f5eeece3ec037a27fd (commit) via 60269a4a36a78063d7563a32a6d34107cb52cca5 (commit) via bebf4942b083027860539b7c5e0649714b92e401 (commit) via f4f4330e517a0497601baf6253d6408b77b10626 (commit) via 22a5455c6ccaf6157095863f9e6da33a81541acf (commit) via b1236ac35aaad56d76a5670a5a22cc2be124a736 (commit) via 36d6fc0a3cbda55b9eb07a351c1312e369d4743f (commit) via d6bf7ce6c26cd31fe744419269dea999a3faaf8c (commit) via ea2deeec92695c33045d71ffa73add6305b17b9a (commit) via 762f774785f4ef878ac4c831e1f4733dc957234d (commit) via 4a07dc81356ed8728e204e9aabeb256703c59aef (commit) via 6479e48ef9e7345e1111ed9fe578babd74faa1ef (commit) via 7039122d13ab62045e1cc299fe5b4994aef3ac5f (commit) via c2c2a31fdb228d41ce3db62b268efea04bd39c18 (commit) via 47f8114261a50dcb44bd3be355b705e37d920944 (commit) via c8a6db6fa0b06b978e5b63593a6b0cb3300ad259 (commit) via af117b3cf1877da805d081b93f606f3dd8153502 (commit) via 0f59c28f617516f3b8d30fd8e38a374a4060c191 (commit) via 28d2bfb9c3e519a3b7619bbe5d061ebe520750ef (commit) via c74088593761f7e839aa9a97728df146f3dfb3d6 (commit) via 33d4099fc891760ea1f080746dee4dcfc36c757c (commit) via a0fad44f986a8d09a0b319535955e32aa0507fc4 (commit) via f56331b468908d1502c7ae26adab6f9b858cb13f (commit) via 5fc2beac27f81d0840e717e3dd8d6524f9c2e890 (commit) via 8eab413676a0222a863f45ff606f3db69bb7afc4 (commit) via fa7cc15f24f9cd8e3cc07c7552c3fad1b756eed8 (commit) via 1c35a88f1d8399902c08a8334d3e3303df833538 (commit) via ec892a0718dc47c2d009532865c353daa749eaa1 (commit) via b593e3d9b00b09af43abf1e95d68e68200e3c2a5 (commit) via c192dad24398767edd64ab7e5e3a72df9265bda0 (commit) via dcfc7dd477b74f84d673f0d20cb350c950d6dbed (commit) via e3a7574e2e06f975a4933d3f7e77af1d9189d9de (commit) via 91a65d2fe88fabe2d553a0362b2f76034f820175 (commit) via b7a5f21d4f98e006ac98df0c3494a6b8380917bd (commit) via 7460c0abe8a195243110e66624da095a44cc96d6 (commit) via ec9ab52c3217835113f22431911fda3474598fcd (commit) via 35c1a4396497a4009c99e5587aa908bb6df4e1e6 (commit) via fbdf9406b0589e9b8bbfbbed606f3fff2d060b3c (commit) via 3685b09fb85dc279762e19df310dc2f30e64b044 (commit) via e896287c1643b8b47080c4a8ddbe9a92d9fa585b (commit) via 7859afc4fa05f6876c4e6b95cfb8fc252efd96bc (commit) via 1eac08cc37b3d8a42a1b81de888b29d079b0608e (commit) via e4e26dfd3f401cde164e36f23fe17eb80bc9e332 (commit) via 1e550d79b170a548f7903e4954c877acc6125cbc (commit) via 17b1509aac6ff4205749c2626fddbb1c4d7255f4 (commit) via 6056244624a21a569985e33b30f43f44c8da482e (commit) via 5ee4a06adea76e607f47eceff65c6bd4a98c49ff (commit) via d72413e64a3444868e72e315ba2ceaf5a9d2bf6f (commit) via 1b36b65787bcb905fb6a2c7b790b07dcaacbe1cb (commit) via f7584f0560f36189ef9434d157e83ffcd988c098 (commit) via cbf959729423640e28a0d571338d3c8045cbb1e1 (commit) via c20f6f63eda61348326a861a155716b8d9073307 (commit) via 549dba71045c856f3d169bf2edc7bfc7cabe5a0b (commit) via 006589cfa144fc1efeea1d114943c0bd1624e930 (commit) via 487b24d8c244263ee99ed7c6a307161b1328decc (commit) via dd2887fc3de48f6261d34208a0132122f05d7ef4 (commit) via 2b213129c51f4a6c4525120319d9aceb04483ab4 (commit) via 2f672fe62a125a8c499f72dc172049445c2665f0 (commit) via 030f17b5eb56b6e48588f6da015e05f568144692 (commit) via a4581526decb2c7ed2a1e16ab1f5ac65c03734af (commit) via a5d43209a5183556b47a8ab4b0f9226fdf424ab0 (commit) via ece66d651004eac0210217c4d48babf4e80d1f2e (commit) via cc51fd4ccfdca1559efb0351b498bd8c0f3d1eed (commit) via 02e2aef89bb58e8e0cc4390db41c5f775e1b7c3e (commit) via f27c5390b2fcff06b1e2199a4f051d543670aa03 (commit) via 461c4b2edee2f0a4ee7dec0001a6fabf46454a24 (commit) via 24b368f8532b4775f9fd5bcc7958a84d4218aa46 (commit) via 5cc854a862fef488bd08190eb5822ab6e2a50ef3 (commit) via 7ef8ae7c5f352bb1ef166af0fe6a09a3d3b39f67 (commit) via e58c48b4c81f25ec08174f324990d021aad0e96e (commit) via 41d0efca578f03db2787246a4e0c7bf9b085007c (commit) via b4687fcc2bfb7e72bd34aed19490d0afe0fd9c2c (commit) via 06cc42316cde28e082b37216787361f2d87a078d (commit) via 923b198a8426f02866f33362b26ed8bbf7a5c5cd (commit) via 26e3a0c9ba4a8376fdf9f898637919d144d8b1d8 (commit) via c27b8c2aeb369972f4f9f98f390607694c56a127 (commit) via 3395762edd7232d976179b232c93cd901b739367 (commit) via 46de9bcfe44d90bb61a386f2fae013fd65865461 (commit) via ead3d5427a2df5e33316d4ad045510c1d2078c2a (commit) via 974eac9d7694ca14dcdf6d1a74777a265fffdb95 (commit) via 2e3b657e3a811087533cec33307eb8bbf454cd1c (commit) via 99fd02d9fc9d6cc470d3b81c4cc3439b47bb9419 (commit) via 3a8c4a5b428c1babd941606c2bbe9cf8a041d9d9 (commit) via bbb1afc89b5cfa2f09b6a7c25fbfef745fbdd724 (commit) via b560e2acdd41fe6b6228b11c2d82ad2a96188153 (commit) via 23d61901b0dadd93a8d8e26fd113691e5b9ead4f (commit) via 44c2e680824714fcbdb1d8151f1b0e842b91d42a (commit) via f26dd30880bad7f75b5ed1b1683628c7c986bb34 (commit) via 0a5ff21b13783cef3b26680d1673b1ae37697aeb (commit) via 56529cb37488352c6b6ef6867de5e2d502ac0218 (commit) via fbec8956077503e04f7adeae7f40037fc834edaa (commit) via 9b4c5f878ff39e04127a1ad95f6b3832afe6d278 (commit) via 7d00775ece9e2364da5cfd65ebbfce515859667f (commit) via 2d97cd356e0f0320ecb71cf6a10616ba4618f318 (commit) via 769ef81fec526f3c7513c88e82f98045f8971d14 (commit) via fddedbe665db9cb9824150e454c89abdc750957a (commit) via 1bebeeca940f4f6339e66eb7fb486c81cd951522 (commit) via a67a9faef0e32886c83611cc7a0ba61e91123063 (commit) via f2faf941ae49653ff6e1485adfee299313d47c91 (commit) via f4836ba964a96364f39c7eab8b8b2f8656d14d05 (commit) via 04bf20c5687b102b9a2c2a915d4c400788296a3b (commit) via a681f9c91372d282229f6d58ba235ef0dd3644fb (commit) via 65706a29bac50c2c971227a1945e46502845766b (commit) via 09df4675f2e4f8f098954f9a38f44d12089f1c4e (commit) via 56cf4bed5354769d7352c5cf4e054a346d2553cd (commit) via 500c1d8576ad5a5bdc791fc7f7c3518a4d3f4b39 (commit) via de979965d3f5de7e4bf2354871fe85b3f77c720e (commit) via 799a2abe613be0645b84f5aaa050f2f91e6ae3f7 (commit) via 34c6591498f4363ef2c71d683cdaaa33d6a6ad64 (commit) via 066f6b6edcb63b363cc9a95c3727b996d1895549 (commit) via 6efcd9a8b3dc6a01cd1f212a2d854e5f8896715e (commit) via f015c27b5294eaf87d0aa814d94972e65c7cc90e (commit) via 01a49af81b74c425baf1215760d50889bd68f27c (commit) via 42bcef4ad646732e0684557fe08b74dd0c5aa7e9 (commit) via bc301448c07afbf8aa70f2808be68dc8c50c9098 (commit) via 08e4f6088d1c2decc97b37e288484a25cebeffb8 (commit) via 5900049b6615fae790c2b49093a4c1e050afa963 (commit) via 16807a48edfdfe89c8f8f745edeb938ef0b7e5eb (commit) via 3b16c5514a2e01d47295e8d82cecd6b62db62955 (commit) via 87746c154ae96bd3b632198273061eb6879f20a5 (commit) via f4936735c5ed55abd37062791f60ba2754c89c31 (commit) via c4be264168ee2f6c38b6b9b3db0a166441be478b (commit) via f3363926de602b7590526740a01a64ca973ca78a (commit) via 1e924157387421d45ccf2aafd33a886abda05420 (commit) via 35a88fa501ff2e2fe133e7c0f38768ae703a43b7 (commit) via e9a3881624886dc523a500a86bfdac6dc58fd0db (commit) via d81bf7ddc2ad497037fbfde5d15cfa8d81a9e959 (commit) via 6a8796db3691b9a53dc5475eaec5388bc1af115d (commit) via aaae08a7e4ac526975403ebb5f93b7f24ea16b90 (commit) via e3e3b08c81fec50ab1623a64bae164856ce215cf (commit) via 622b9eb1a6047bd3ad3e1a3f120cf7318ac25b57 (commit) via cf86120bae8973340583a0613ad622f0ca013efd (commit) via 3bd894a7147feacf6a8ab388b1b1e0d685abfcdc (commit) via 64357d2e04994ba161b4a99ef2bc45db0c180ea0 (commit) via d685192a58d4c198633bd0e69cfe0a114576e98a (commit) via e19616610d7327664f99215a69cb326682742dc3 (commit) via 35822b3812f74319dfad28876d37645589b83a80 (commit) via 805035d70cd8637c169caf97800accdd267d1d8e (commit) via 58b584afe6ed6949c10b3049167c66cc070e0e81 (commit) via cd635f74a3b71043d35501db31b3acac956018cd (commit) via 238f2452e6d94f7b227a9d132f5ae887299d96c6 (commit) via dfcb77a8d78462af49ebc42b41d6fc504f4c2cf0 (commit) via 88e8ec1b3e372dc1ea1cd0be44c59ca7760e9008 (commit) via bfde72c275bff9d5be21cf51ba790cf38ecd0d59 (commit) via 1a04d1a7e1e0ab4456c8f729375b9415a8cf7c61 (commit) via 870181955b565b4fbbf4efcbec4a43d687703d1a (commit) via b6c30ffef9f060caec6122437595f9767612b48c (commit) via 980facc35f88dfc6ae715c7e0b088b262d2f5204 (commit) via f6512a69cd414a31e302daf107f5959ef06bcbec (commit) via 79efa585c51f0657b319beb1e213d5721eaacdcc (commit) via 73ede76585a987a07fbd67a7474b193e4ca05517 (commit) via 46a3515b49ce30315e2b621525b29cd8263aed15 (commit) via 9a4db61fd538c0a0185367661a0ddacffff5d57a (commit) via da09a436519e8085d328a586c438b5b0a560924d (commit) via 74b03b91333ccbc8fa70647eca22062e902f797f (commit) via 751e4d66b4c6daaf04e6bccdb3f9ce4a0620babb (commit) via 5e7e0604cf263449ff9fe9e92286cfde83fe0234 (commit) via 2c32be708da9011b3ce7404f2be43b17ab1eddd4 (commit) via be81798bb66a6f2d007983f466ba4fdeb7141578 (commit) via 62147a2265e322c758743edf13a1377fdcb62479 (commit) via 2f341b6e28e27fadd8160d95337c3aa854bcba3b (commit) via 7e0aa6aa9983c745aedc203db0cc360a0ad47cac (commit) via 050c224b67b0cb62a5620d294997254d5b6675f9 (commit) via 2cc57ad8d14499775e4b9de4a3ffaf73ac728781 (commit) via 3ff0b31dc6b8d8b7cd2bd617bfe843c3cdcf9f3b (commit) via 2e8cf49e1387eba9c4ce062885b99a6eb76c01f8 (commit) via 351e610191016136a49ee2a0889f1c4929169fc6 (commit) via c93e8391bf595de7adde64d1b3f1d564da6f3aee (commit) via 045ccf910b4345a1cfa9f3d3af20ae4d8d1defa2 (commit) via 5506f9f67ec105b0059a0b3a66fbde82cb5a0a15 (commit) via 16c3b12f199a7ec99a0b51bd83b66942547bba87 (commit) via 80d82c196402f6a61aa84452104b9aaed364eb42 (commit) via a6a20ad7a16346e2d630b312a94a4cbae60fca45 (commit) via 416dc9c6e9acd57255015d255799ac031a262182 (commit) via 64da5dd5eaa60269a8070e0bdb740b3b2c6e9740 (commit) via 206853a02ec27f603ecd584503bfb33cc0fdc03d (commit) via 155bfbd30aacd4e01a9ac8ca8032d804ed7ece47 (commit) via e49d43ff73a309548dd2b576bb7b602f62be66d6 (commit) via aa14fb50785c8ac8be5fbb148d7cdd88fcf8f896 (commit) via ad2073b0b48e23028ca9b4d348970690d4501933 (commit) via 3eb831e0ca5aa3035845fc039c58c6340fd51c31 (commit) via 37ce4055fe907b9edd25498dcda7a133dbd19784 (commit) via d41fc1249b1365a5373354d6c5aba1dd1ac7af50 (commit) via dc11500a11e5ef1068182886007fccd4d7ad1c70 (commit) via 2561d5808a330240a28841e8b3ce706a65ed31c9 (commit) via 7c125e3b10ac6f9222d24c76cdf31a5a9ec8dae0 (commit) via 37258e9950490293bb00808a55d82dea640efe6c (commit) via 82d442c6c67e42c1697b07aa7ac2b323baf333c0 (commit) via 807eaf04cb4ba3c1e5529069ac78af6d9969a5b0 (commit) via 6cc98856315993e8723fc2c6a2baabd8dc7fd360 (commit) via c1fc4b4d17ee89a2f3d1a2b23eb84ffdc02ada2f (commit) via d320201dbe5a3677e96008738cb6cc754147e3bd (commit) via 3559ed3fa4b4b8496dc304e3eb35ef468f7c3601 (commit) via 38d42a53a74109793825fb5eff2c33407e957ec7 (commit) via e084c964d61e6f8582711c73738c4df132410597 (commit) via 314cf376c5b5493eeea6d3b2a357a5c832943b30 (commit) via f21cd979851fb422b8c01ee26b85b0273885350e (commit) via 250aafa4773feafd5ca0a61f270b1e901dcd8987 (commit) via 8c00185a1eeddb7218f8cc02f4c596b7c966a04d (commit) via 0b1fa2880c60dcb97d15e5d96e5640f3672dae48 (commit) via a915c10f7f1cd8ed433554f05a7281995ae9a540 (commit) via 9b334a2ccd0ba00d67ae590b3bab470836f79269 (commit) via a4f8732b2a0c2cf48cff088311ed0ee2b17435b9 (commit) via f075eb5e6b0dd850304f78cf4d5c94df7b44c7a3 (commit) via 11b8aeb88174dd67ff8b7c58377e8ef94ccf274e (commit) via f8c2a96547f690bb6308f1dbdf174679afd01b2b (commit) via bb0974456ed6d421e8d0b257f1e108c242326afc (commit) via 9c88ed8f116dc5f9471280c73f9ab08c81a86f2d (commit) via 96161e2527c6fdc5c507fa1c0b8e7b8e7a08a03e (commit) via 7fcdc24df1cfbf6c26be311efc2a6ea1abc3d34f (commit) via 06e03fff313dfcc5f344280f8ac70b0ec8521f3a (commit) via b35d5edb03798388d503d922d8f909a133bf93dd (commit) via bb82e93484cdd56c67efd52b869a6123b2623f6c (commit) via 9a0847060d5823ec520ebf0c3e307e26442e5b8c (commit) via dad44a1fbaa460e5ff80ce203196bc1c1317dc60 (commit) via c6d811243634c84e185a25faf33491ee1a5f900a (commit) via 4d1931791d0aca95ce82d5391f03b31613d9173b (commit) via f8708a14262c9abe0a6823de4470f5710374fe40 (commit) via 915ef8b18e28e6418216a582067b9fbdd6395e6a (commit) via c2825638b6784179f191c6ee8ebbda1c49ae5271 (commit) via 231c0592639d6f5c1796feb4a6375eab202a4acb (commit) via 6c1c9a8bbd2aa3fbc627525b452e7dbbaf40efc5 (commit) via 9caa33114e9195b0d28ad46d21a11a8f838ffb07 (commit) via 6a69a054f7581d16d4f65f80c45b92176311e1ef (commit) via d47b13e0e2286ef9e9444292bc5631f43cf226da (commit) via 56a1b672f4b97b10b093f02540dff1c855a69855 (commit) via acb787b032ea5a84e8a5e94de0b0bf97523f8b47 (commit) via 9a724e7b6b7ab9c5dd68954ed75d857c860c8fdf (commit) via 32d849b35dead5af58e47bc20c04cf4f5c8625ef (commit) via 04830f249f8cb2c4f89e12cde9212febf50611ff (commit) via f29cf775fa9d4c8df1445e7e04bf92deda60e001 (commit) via b39910205f54538f53e77b9ae13f1d41ff728f5a (commit) via 62aa7be1959a8d1202ab2c4809d76147aadeeeab (commit) via 7cc3f8e23b5c19a50722adefce986230b191e9cd (commit) via 79f338988c53625a3ab3fba63f06c6ffd224e9ff (commit) via e3a3797ee558f4f84c67a65e1d9abce845f15abd (commit) via b53e4c0e7c0832a1779d5000a71a9de51dae699b (commit) via bcb51645d3ef1211efbce59f0935f5f0223602a3 (commit) via 1798301e20d5c5be69a362bbec149abce446c215 (commit) via 0735fdddbc086291f6d2357e8fa57e5df6095e89 (commit) via 4978e369fb75a8b7756bf4201668b2a9d9556286 (commit) via 47daa70fe08c57aaafa6fe1a7e762072909d0f8f (commit) via c389945b7a470aa328972026fe4a836c57ccb7ae (commit) via cdf850e9d953f765f600e1ecae61664eab5ae7f1 (commit) via 8fd3fe9331ea62972272f0f9f7dfcb7d39a7d2f5 (commit) via a6760b615451518704601cae9327d333fe4bec57 (commit) via 1946c4ccca04e374acc040fc30c8b44d2c9ca0a8 (commit) via b6b806729dd5c4c46981d59f351460b4d7989548 (commit) via eec461d0a8e7ae14c7fe8f0196ab8d0e30285d83 (commit) via 91ee7171d0886731900ab0238ce3795241d877a4 (commit) via e063da67902e2ba03cfc6f7381694f4c6a72ecf4 (commit) via 95824559df96a53ddeccbaacd91617f83c8d52cd (commit) via ce7715e2594db00b2f434f62aa264a1061221b72 (commit) via 56db1d676cf48a3d90174f212379679d84bc3118 (commit) via c08790597c54c015ecfcd7ea56ebe30fa1d9e946 (commit) via 69e976f8cc902adc5ee8aec24e4a208f4afd51b3 (commit) via c3de4d92dfd0a1fa8d32a00bbb99de2a4ee0e140 (commit) via 43499ea30db2a866412c86952c7e1d7b158d806f (commit) via 2986367f8eea0dc5febab9c9fd1cf06b3a4a8fdb (commit) via 0ae1c716a162ce43a63c16c37aa8c6caaa484650 (commit) via cd78b7a16778046c0cfa4818780ea94a9a90c32c (commit) via c25b1ab690ddeeba239a044c8d0086867de30f93 (commit) via 0c801b966379f7826fdd793b26ae879c2edf78d1 (commit) via 8d297bbf604c8318ffc72d5a7b3db654409c5ed9 (commit) via 9a4073e20b2f1da74cb3b46707e4f6fc4e700950 (commit) via eee926f28e8745dcd03adcb1113f3e4a7b79b1e5 (commit) via e7286c5668bcc5de0bfe523ac7b7cddabeffebe5 (commit) via 340c283058287c3c1307f0a8d44239e802d6c8c5 (commit) via 66c6502d7a457057683f56fd6d606fd9b2da0655 (commit) via 146b80ff180c0490fa920c183d665f536f2a4b0b (commit) via 58a345fe1f0407cb2743da0b295ef28cc7f23c72 (commit) via 7ffdbc4f3fe7aaa8862a9189bc625cbbb05ff9a4 (commit) via db3516bbfabe710a0292f642cb83b95ea24c323a (commit) via 8e80f9d1d5cc0884ea1e677f796c69c36a5893cd (commit) via 0d1993c072e5617b69204aef641acd2385b080ec (commit) via ef9bd0b8d7d0a70f9fa9b239a03099c57eb5ceea (commit) via 3940d2c36abbf7c4701e312bd76f6bb119898c8a (commit) via 797eee4264d1b504aabcbcabb6de2f1108441261 (commit) via 9db36cf86d58f93def38a94ed05e1854beda3b20 (commit) via 0ef7f98177f610dbb503d87f405c54e3722d8b25 (commit) via 761e171ad834a0d0adcd8712fde85ab1325afc3a (commit) via 267b3b8e068f5043419991175bdbc56eb7a575be (commit) via 137fbfd2818b5d1443f5f628e28b55b4e23037d1 (commit) via c2270cd8a662cb8046bcde090db60a933b69d0ed (commit) via 7ea08e8cb74bc21fcfe5befc0f3c8de3762cb0d6 (commit) via e9b0081f986716eca364580fdfeb1034c5da76c9 (commit) via aadc1740c74a65b916b7d9bb6efe588352326871 (commit) via 679546067e1f3e1617bff22d03e483fb2beeed24 (commit) via a572cc6fd43e90e28e828c6bdaa344c1ef6a75ab (commit) via 8ae8f9c382591537963adf2398cb508c4cb3ac54 (commit) via 7eed1055b89ad3207151734d34849dd8631d2da2 (commit) via 9ef4651c4930423f9678832f793343059d4ef9ad (commit) via 5809534fe153fbbf925424716eb2e295f2217c65 (commit) via 02962cd9eae61acef03aea44afb7350bfa30bae7 (commit) via d2dfd2424284bedaade2a203a51ea82364270a92 (commit) via 6e4f085c7f459e0777a71bcb61ed3aa8257fa386 (commit) via 1bd1b714219e1c8324cc2fb5feb4496e80b6adfd (commit) via 9bea4d16a6f009585841c1134a024d10a61b8d56 (commit) via c4d4ed40834de8e2b493f83cf15291f2d2e38c6f (commit) via d8bd95efd8119e06e6753c841f1bbc54bb09d5de (commit) via 79bffa3b90933d33390cb28b810bea5980a5e42a (commit) via db1ff0288b923bc17d2408a6172a016b7ba0a6a4 (commit) via 895d4275baf1739a1a02d6c5c918be42b9102702 (commit) via c4312b1985f4f3c567546f82e7f26f9b8e914b6f (commit) via b13c8ab2b93de7fe1adb1ecd307d9078ce299c6e (commit) via c1862d0f60ee6050e3d4add7bbb1a595b1758473 (commit) via 77ae9c1933b5007fdcbd222b0eaa2d775ea6ae43 (commit) via 7feec526b7efc8778a5ff536332d4b2a8437dcbb (commit) via 3319bd54ab4e8f70d02634edfb33e0bf2c04d007 (commit) via 06d2788cefa3dc24ce0e92e795cf3987a6c630ed (commit) via 9c352f1c234efabd0e60a0927ae3f25009e4932b (commit) via 8915a9b7e86881dd3f658e851983b532c64e3b5c (commit) via 43cdc0a8fbb1bc48f6d95183a6840a76aca41a8f (commit) via 582cfe03cb7496371bc6d83af49b6324d0c36887 (commit) via df3b6708fe2384913e66d90340b619190cc4530e (commit) via a680de9a980e9d268846e8605af14ba1e7f3a39b (commit) via 3604307d2f39ddd0b7f640148338b7ecc0ea4b45 (commit) via 430e004ef7ecb3f75fc3c6642c9fdfb1d85a3694 (commit) via 4397c913d5640ba61316d3e631d544cf768b5a36 (commit) via 5f515954d10b69ba6c390e7b8bcfdba2ced7850b (commit) via f3575e08379b36ab3a286c8fb5838a2d54424073 (commit) via be20f084f1dfbbd5f08d220469128ec18727941d (commit) via 6e7675a70f5a375159f94354fb6f38519303a73d (commit) via 6b21c2bf57ecb18d7df949391ffc178f00b85630 (commit) via 634a9f67d95161fa0182fc38601832c98bf62ffa (commit) via 18954b29a1b49c9ffbfef925fdac4a23194ef82d (commit) via 2d5da47320d6d22a58b793801999ba33c43c758f (commit) via 60f2e42e00083accdcdbdda399534082bf309d1e (commit) via 6637a4265e6144f5a9ad29e9fa08aba4bd959cb9 (commit) via c316a17c40e44e8798b34ff84130904f2e7a53de (commit) via 1057567ea711d80f9937653179b06507827d5819 (commit) via 9b4888d5161e540f2f60f1c537cc66577094eac1 (commit) via 5697b730e2da25240068ad935b9074bac2d15b60 (commit) via 87d094f308ab080932cb6f90399937fcf6f8c9b6 (commit) via cc203475bdf401cbceaa003ed425884d686c18e2 (commit) via 859d79870d7975ef8d98ea728ee52a264efe7d1e (commit) via dddc0e16ef5d77e4f97d02ee0e2d4234c97dae0e (commit) via 8d3842cd156eb6cd6cd6c68c49c090b8f9452a2d (commit) via c4e0beacd71d4a65cfbe27466ae3d0403c39ead5 (commit) via 29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6 (commit) via a5eda10c7857581e6ee641937f99aa76fa8044eb (commit) via c098766357b77f0553ec017b48abdd563de0281e (commit) via be7fe1cddbd5463651e0dff3e8d2cd06455246fc (commit) via c20a0642333655311b1f5b6f78adfeb8ec9fe1d4 (commit) via 78d14d2b9325fb4d25034eccf5650ef967d19640 (commit) via e9f40d7d68ecc03c8c32ec0acd07c35359fdb4a3 (commit) via 314dee8ea9be79a450d9f0b451619b67ebe0e017 (commit) via 29960db7242169411c6a51e721bc995b32a603f8 (commit) via db0cf0603a08bf05eb3e412533072e0441921fa3 (commit) via c6f0b406f56ac5232d08cbd88c0bddfb2f640e90 (commit) via f01dcfd9a7954462ea08d2c7b24dad0ca5e07db2 (commit) via 66e749b6edfe817aa78d70c437ff59904b3b9b45 (commit) via 82ef0f70744ca47057b9e95cd926dbcb25ebb0c8 (commit) via ed60fec722981ecfbd9d1c46b4a2294b228711e9 (commit) via 2223449a47a8908db2a1992379f54294128a7ee4 (commit) via 96f9814df23564e16909bb5ba00de4a202c63417 (commit) via 0eccf19f96d6218dd7c2f8d13f0546c2b942cc08 (commit) via c86a40c6c2902b73ec6f601176820c760524afd2 (commit) via d9ebcbce29f3621a687872270cc8952ba1501e56 (commit) via 93d960127c205918dbb69ab32e686b20ff365a25 (commit) via 868ac09218632073a0366fcae0436cbad4bb5a82 (commit) via a4957dbf04e53afaf210a098c1b0f54973618d3b (commit) via 6f2f1a3a706e56b3fddd7ab1fc9a313343c85d4a (commit) via 6df55226405d626059f81bec3078a70db41dec9f (commit) via 566c56c91116321f48573a0a4274cc5244330490 (commit) via 394816ee10a85e3e0fa7c9b0a4ca29e7e160e63c (commit) via fe6052e1eeffd4e2e2210cebc480b90094429a16 (commit) via 14cb1c0b38b120cf5325d9538cce1a0347e2b626 (commit) via 1a2ccd2e32ecf767973bf96b965e915bd0a04bf3 (commit) via e00b3c9bc1cb8f0ce1ee39f07d7a216ab12c3064 (commit) via 0c532a298058669a72061ad94ba9e24170ae91ae (commit) via f94cc8975cfcf8625833eba0c0077bb878f0cbaa (commit) via a50a40267668422e60901cc7fb949050caceb90c (commit) via af70908dc41c8bf21680aeb2f849ce4043b2031a (commit) via b9fdaa8d92d2918001969efd083c6ef9765b3c82 (commit) via 1c215b97f9a64d6ba9821e8a0cf0f44526f29d78 (commit) via 1996e237bb2fd3ac6c487b6e0821fdce6e03d122 (commit) via cbec665beba8acf6393a8c93312bdd3a03a0846c (commit) via eb3e3c67e5f922e8f2c665e1687a71f08dbe37a8 (commit) via f844cf0ec3887110375e9c1d4c48a68cb6a8b141 (commit) via 171de4b8fb2bfe1be8a2f7f479047e51da05883e (commit) via 04248ead1f57204119180022580626e31c165f60 (commit) via 04b3479c3f92e102c5a7d1158ab608e0015252c6 (commit) via f4b0a6714adb7371e3b7a0f47589c3dfd958cd09 (commit) via 653090d3219377766f1d4597819fa3c805ce49eb (commit) via 2bc84e8a6d94d9d7ead1bc4febf0fb331394406e (commit) via e6c5bb0517d29b6d888b8559facb797b442e7b86 (commit) via ab2733963604205afbcc1bc164048864e955c8ff (commit) via c1e7d6a827c40a56816e3cd8e3815790197fa41b (commit) via 1ac688f831d2aaaf7f0cf500056b4aa0ddc4ed4f (commit) via d5f0636bf6fb6b5e54cd405811cfbfcc98fa667b (commit) via 7ad8b86c674ed941b354322f608cd964ca0affb2 (commit) via b9559b8bc4b3c0dffaf08569704a0484e1fb8080 (commit) via 4310e625bb94586d96a48191e65c9efa71525f0c (commit) via 854eb72b00ba46d65ce36dc3432f01e223ce44cb (commit) via e292aa7a9529771c04e9578a2307b8c95bb5591c (commit) via a62e59897771e2f04fad908fc891714b9bd75d7b (commit) via 1e52a0735533acf8b50494bf4274f4d4c4e7683f (commit) via 6a727d6d3d0cb4fef7e02fb3ba87245eb266dc95 (commit) via 6e46b9c76c408269db2496add31514918c40d53c (commit) via d35ae83384324ec7a03a56600174b5e925510b74 (commit) via 4081c0f1222810746068579c6fbbcd8a9b59cbb8 (commit) via 10268a4c0d64b3892397aeaafbc4b91f6a1e0dc8 (commit) via d9b19c4992e7384f12441bc13c0e22d4054b0487 (commit) via c28ebe255ba37f4dcd295cf6a4608424aaeb699f (commit) via ff83a547feacaea9263c04f527aba4faae77035f (commit) via d2de23ad3916c9d6f6102688fdbd5fdc73053c43 (commit) via cb658d218b873a69b1f19971695f92d5db17a388 (commit) via b80d067ff0a7d2fcca3f8c01abf4b7201e71b8f0 (commit) via 933c5a623f247c63b642988a2984f5ce9b558d27 (commit) via 72aded8673d6cb2d0e33696e010a778e9bbfa817 (commit) via 7571f7f297c8d8b4fb4657f84437b1d156957e16 (commit) via d625f9a988e2b7d4a3c43e477af1d94a6ec8bda7 (commit) via aefb52a69351517dbcfaafca1d21e5431d4119d1 (commit) via 452b4ba5f70df5b8b2332bcadd46eec95273b50b (commit) via 7ea45d72f91e22cf6c9dfa23c79ec24a5118c6d3 (commit) via 26f187cd169e484ac2b8ac3f9ece55a597caadf9 (commit) via 1b1149fadbe85fe74cc3a1d7faaeb63549371026 (commit) via 692916105d13be0ca5588bf8aa94b8ba04239269 (commit) via b42945fd28b881e23016ce2efaf5fd83d5038f34 (commit) via d2242e347a25dc15fbf7286975e3baba143deea9 (commit) via cb0a2700865a77a111994ced22fd68815e5eed63 (commit) via 15cf126c04a3720fb856f7f3bfb56869d5855939 (commit) via d6f85c8421acaf09fa5a25ae2621819889d54038 (commit) via f98cd059076c64cdb94b9743c544458b2b91716c (commit) via b40699581c0d390e653f36a5bba99f13cf9763a0 (commit) via 7535d5edeaa5cfa5ba369e8d3ffb47972483394a (commit) via fa4c39cb5139e3fcd27bb486a6331297e343d248 (commit) via e681cf3fe50d3c8d17dabde079bbd949a59ef53a (commit) via ebf05345dadb3fcb232cb788a9126e563f6bb767 (commit) via 41e83f2b16ec57fb7e163c19fc315c86e4994b2e (commit) via b10a8bc7de0087b5c509b4b0831e606b56b6702c (commit) via ca9584fb9b4a54232d2538de9f75b1916bda00fe (commit) via a75cf613fd7d0a48d526a996ff5c250c599d3ab7 (commit) via 968bc5cc86bff4ebf89e63bf99db7c7e777d4756 (commit) via d2412fa5d0051f7eb7b13aaf98173b5d9a55d132 (commit) via c17414a2a4de406c1aa55882b25a1644ba26f555 (commit) via e053fbc44f32c12a67f4bcd9f01142b4e043496c (commit) via add67df84c59a6c28111d65e8d0a7e6b4994cdb1 (commit) via 50bc912a2074c974c9c5074e674e9149a33b64c2 (commit) via 44a8b4df1d6f5b8096f01787751fd51c42e78fc6 (commit) via e3bdafe2bac1672da335fde734b337c5504e5437 (commit) via 9c6595ab6873e15fe533b05bb7b98c11f17c5d57 (commit) via f82aa1657b7254ab634bfcce7354770478c31686 (commit) via 936384714fa8b0f7ca8cc3b5637394461bc998c8 (commit) via d85063237a6a579905f9a3ead5749fb4e931dec3 (commit) via 941c9cadbb254c37b945e55379b5fd4006034129 (commit) via 5d2b446244becdd4a67d7f216ab64cf120275c8e (commit) via 238830c697fdfca5c9cbb0bbb24fd215f643a934 (commit) via bd890911dac4a201cb08c54ad5a7444b7306151d (commit) via a817ff49c331c180f5b75cff4da1c338366c5d4e (commit) via e79a4bad70029595e43cc536c0d1e60d5d6ee115 (commit) via 6f97897dbef256a80fb08c561b7f447aacf4bdf1 (commit) via 8d9743bd43d7c3123bfee2287e879dde0ac9bba4 (commit) via 93084fcd9b85e9f982b75f63f366081f5fe8e2d8 (commit) via 3043c1aba16b1b5bfdf6813d90ec661988ddfa3f (commit) via a3718e9efd2e0035dc0c008c754309edd8d5ae28 (commit) via 0e3536f9844e6a6c7a882387ad5d765944f510ad (commit) via 43cdf5aeb8ae6ac2ec3bdbf636cbb2731ccbbb2a (commit) via 82188b295de579bee5f68de9f4d76ce4a3d41aa9 (commit) via 6f4b1afcdc8317280669d020765b8215110c4584 (commit) via 7963511fbf0459fff586c3129705bfbc706770e3 (commit) via 199af1503922ce2134d774a78be0d9e2ae055ab1 (commit) via 26656b1dc6c00f2eea0d329cc2637aebf3da1458 (commit) via 4d2f5d5824be99326c2c3e459c298e338856d8c8 (commit) via b80c3053162ec5533e120ee4e4ed30296d4c5fb2 (commit) via d09f2c3fc15dd4491e9cfa455191045c0729a3c3 (commit) via c5192092506e52a5f075b137a36933e42db64563 (commit) via 79b289e2d8083691ccb2c943d4502e1af54e81e2 (commit) via c2f2875869a3e427435ea04bcd416ee2f99e7ee9 (commit) via 709b551853919f47b58aafbb95fd00a98bcaf76c (commit) via e0d13cbd4bcec3e8136925a3a07f85e58187da06 (commit) via 4666280441d1a8d3479d45f1ec5b67cf83d58f35 (commit) via 02f12cd4669463a1b2346145808213adeb303e2d (commit) via c6486df5f1400d90a13df5c6dbd96aeaccf8225b (commit) via 70b8286a9749deb6639c2fd5b39c7e4a26195738 (commit) via a480de357b17b1b2057b8375284079ccafae39db (commit) via a504d23a83d115b1b29a5b1fbfaeb2b09bc0e22c (commit) via c6056a744af028824797e769ddb71927740be88a (commit) via d6867a7559ceb7380fc229f948fd5fd910404643 (commit) via ef8e6722f2eaae6d65b360459451f57f1350d2af (commit) via 469bdc72e7b00509d6578f5caca01a45f5db5027 (commit) via 5e2e7507b4ef8410501452224d98071657ea2d53 (commit) via a04a15f586590f1969ab31478f0b04243f760769 (commit) via 321df0656c7557004a232b4ac3d8c354a59de364 (commit) via d7f3ff3ea7830389f458be7c5eadb5d4a4e0a90b (commit) via bf6778dab2b3efc5a0ab01ee41e62e966ef08069 (commit) via c92444842b32533b6411230e3554509a09924163 (commit) via 6780fe1095bf34f92f89a831a577d42b311a6a9f (commit) via 7b7e7f1da28585cfa49cbced50dbbd75a143cd20 (commit) via 0fde2c536bc483baa4baa2990ebebfb3a7c00415 (commit) via 1a70ae976b673f7762f14734785b34fc5ba92eae (commit) via 372405a5e8adbe5affce56410b6d6048c63cac3f (commit) via 682b25469e66ea45b214e95962671373983c118f (commit) via 963843d4d07aef6caa296dacf191f8adc9518596 (commit) via d41401ace01c234f42697e190a2ac95991780626 (commit) via 1522597b057c321d813d3433bcd1e17c02a56557 (commit) via 7acd011bef4e461e9caef644f20379f41ddfd631 (commit) via a6af384b19c63bab4a1803c09592c5b5bd8674c2 (commit) via 7cc53fba0a4e5c316a6e86fdae28f8cc9d0f9a68 (commit) via 48ffa2b8cd986527a41654c3b27755bbf6762048 (commit) via 585a269afbfdb71b99ae72c22ef5101a800d565c (commit) via e0dd41e9671fffc957c3d8f41adcd52274319f4f (commit) via 74ef968fbaab0bd52335314abdb3e0eb04020fb1 (commit) via cdfb4fc32dfe130698fa72629aaa99aa06b50044 (commit) via 27dc26ab3938c31a14c356f384acca93128e1691 (commit) via 2d5a88dc5005a4f4b0584d02719e479645409e92 (commit) via f4ee58bde946ec87c8ead17d7b47c1c7bcb7c3f6 (commit) via 1650ca11248ca377a6c8b6f7e21ec2aa8e7b3fd5 (commit) via a7dbb7d12b5f198dc5173f55d0a049236b3c439f (commit) via 55e5bf59f09012c978aa952670be654b6c5598e8 (commit) via 49e66b4debebff088958077201eabab36df168f0 (commit) via cfcb22a541ab8f783bf667cf7afbbfd9cd243cce (commit) via ce746418ef15c5a47b9ab17c249ba5f7c273db4a (commit) via 10d43c801e9edb475eed059fa47935c2bb45e578 (commit) via a55515eecb1c8edb875e30a411afc55f304e88d9 (commit) via 6ecf4e06a48cfc6dfbdf7c8f2969ffe7271f15da (commit) via 3db2885585b1c4172d1534f96f4bf97f5f6c465f (commit) via fb78e89c56db8fddf3044cdc644d6e799ae97b3a (commit) via 2e6ee069ae81f3b5140059f6b997ccb0dcd1684e (commit) via 1cce69b9dc8c58884c3cc4a8928fb234294e6886 (commit) via be83aa76d2877770c23d7c2bde0319564a8f7e48 (commit) via 034f1a812d8f5655d08e2bdeb5ec7d56caa40d41 (commit) via e9f3d8639d088aae89f11c3f8a3197b92c6cb5f2 (commit) via 1e7eae0dcc0e5473dda573b30107ffdd501b0d73 (commit) via bba037e0aef1f3b17cc6cf6fd041ed6110cc375a (commit) via d236ad1955a0a6b5203bc1474b989fd9dba668f8 (commit) via 1652a98612a20443c0e17fd90e7f6941b7bc3ad8 (commit) via db0f0d0c1d0541b6c2f81d655cd5420e059c91d4 (commit) via fb70bc1a74d371cc6cc07e018df436a17c26037e (commit) via c72f45d16c16954478dcd87531df146f68acd87c (commit) via 2213f746d3ab63715c24c3197ae207486464091b (commit) via 9b4c123c959085bb11a1e8126242a79d9de18995 (commit) via c287bfe4297ec9c12db292fae5562be1758cf14f (commit) via 282b7d7b65e928a59464b2a9a5e75555c97481dc (commit) via 64e59d8e11a3b7a99a786c768a2817dc2c636af0 (commit) via 60905b1e2a5fbd734bfd026cd77b9641cc5f3e66 (commit) via 5af9928d44e302b7f68365a0c551f640895366ff (commit) via 3e45d68b7088df39d0520d1a92005cfdf4e2b922 (commit) via 709476c3c595fb61f155ba453733809d3e76ed51 (commit) via 4894d80b508ad2626eb2cfd23cfcb5635cdf7442 (commit) via 2891b491040ac84dfe0013454b2aa834de7b539c (commit) via 493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb (commit) via caa65211bbbfd53c40c9ce1b79b97ccf2c679a52 (commit) via 56ceb5b5405af23eddd12e12d8ba849010120324 (commit) via 02a866936de7e63ad4962ccba56c8cd05c231275 (commit) via 99ba51255402201c6e193d803ee1f1fc3f2de0e6 (commit) via d8ee9e44cc9a986b063a6ea6c91d39217cce65a1 (commit) via 01a53584798606cf6329e8a86134cb9b47d1de11 (commit) via 0f042c67a04d5d0c8f879c27d651a7ed5aa6566f (commit) via 0a511368e2b896fe84f3b4bce5390e6269bcc57b (commit) via e44c481aff721595eb9d28a7751d02300155148d (commit) via 61643fbadb17932965e5c02db75ec3f8e211d7b1 (commit) via 8b89121d4444e5c23295c63835da538b11d4cb49 (commit) via 4ee3febded6c95ef47e8982a406aa3549cb6b59b (commit) via 79697b649f28a6fc1062bb91737d9e64ee114ee6 (commit) via bed91f4da252b5f30d3cb4fd9f9febd61ad9560d (commit) via 3f2f83ddcba5b04389dd3c666ce7d4cace7e5b63 (commit) via 27145d50705b46e213f5f261bd07572383c79e20 (commit) via a846e9c1872038b0d7bac1fe5bb134668ae5e697 (commit) via abeead094ef75fb896c9cabce8bf7b91da0a552c (commit) via b0b4b5019484fbf1dd074527270f193703411498 (commit) via 8689682cc375f6f30d65f1583b3aaa3e6a1e4d63 (commit) via 2716529498941971b698f603e9aa0edc89905cb8 (commit) via dd373349578df87396bc43e7ab00a1a5ceb16c8b (commit) via 397dd9a5223d92035e7eebfee8ddcd19b0516f7a (commit) via 80f0110c98d4134409f38e7d498e89fe96773819 (commit) via d7161de46af80e460d432d8dbb1c42f8cbacf6dc (commit) via a9889169e5b21efb8c42105fc62461be43968d64 (commit) via 2b35fb28f397a26c0da03f7579116d28af2af824 (commit) via 1283d92f0e4704bb31b1e163b9c88216756ef62c (commit) via 6c3bc0f82c625d425b09c01f96b64946abe4118e (commit) via 4cd98a1920446165eaf0a5d5e71f86133e92954d (commit) via 2c3853e30485654f3d40d6d9e1b57d31444d3598 (commit) via 5f3ff4f893d7d70f79cb2daf4001be7047cd126b (commit) via 0fd153457cc1a775abb1112090251cb6bfb05553 (commit) via e5343fde2046fbc19b9ac91326d5829d40066872 (commit) via 8a6c0ccdd27188047da2be9c2a49544c27dcade3 (commit) via 609c3040c2df944239d4d96644d736df605a6831 (commit) via edeefb679201858453502e21446d7a65fedeaf0e (commit) via f9c62303d87da9c766ca67d01f602130c2777951 (commit) via bfd09d203fe1eda11ef2c7a500ad1d21eae32bc0 (commit) via b224a9e1a190c84ee6bdd8a195c47dabff73cd66 (commit) via 29090fb629734b7980f058f4a7e24a0369e9bb49 (commit) via 15a70cda9772c5775f471182fea70b3fd28b76f0 (commit) via e12fe5554c3b70139f68e33ded9e2a8075b9d484 (commit) via 65808c966405fdc5ac770bfede9b3d5e0614dc81 (commit) via b32b93c614de5ef1319eaa002e481094357018ff (commit) via b615f43f531209705e12dcb01bd14d67029d3b07 (commit) via 434d28e01bd23b7a61128bacbe66ff09e1fed336 (commit) via 595712bb07e5db19dde5879bdf1b827abbe90c60 (commit) via 0b002d4885505f557c52febcc0c6c7c45914e814 (commit) via 9f08fa5c12890bd9e5609910bfd89903b0dcde25 (commit) via 0716a48d498253d45bc0f3b3b8c7dbe026283763 (commit) via 774ee6d252eba19d3e23c936d14bfc1f7fa70651 (commit) via 833dcd29758287ac7799d9c022c0994f7c16608e (commit) via 96e7a1eb6d09fda9e22e112e35e7d0085a8f4fd0 (commit) via 6457197210144f50a696097c0d308d81d46d5510 (commit) via e66acfb155e75c1909a6f29702ed6ba3762e36b4 (commit) via 75a06c790f96f07e859be95d3c3c084a718afeef (commit) via b31bcacc489d6ede2e9bdfa9905de0ebfd919454 (commit) via baf9351a5983e36c9857b6f5b11e991d2bb1e9b6 (commit) via ae7683d2389973fbd368ee1ac77413a3cd1e4a7a (commit) via 4dba69b9ba9d2f2f05f75de29f0d3bc655e75a48 (commit) via 8d689ee570e7c4c61231b919d5b6a34c20414c43 (commit) via 21c40443ce8b12faa085149ba8a30b33193f6cc7 (commit) via 7b19bec22f266f2e1fab6528f166912328b999b6 (commit) via e43fb83166ca5610e34cfba1dcf1216d0953aa8c (commit) via 38bc821765fd286a12d6934a4d9e4369fda64b41 (commit) via 89fdc87fdb757f81c757f3408baa73740618b78f (commit) via 1fb80d6d50f3c0adc46ff584af26583b980be834 (commit) via b32a5c16f100c53fd9c0c22464f863eeeec6087a (commit) via 35cd5fc22ec2e66936eeb9a13662d358ce0adff3 (commit) via b4b0e149fa667b3907382e3492b53759665fe979 (commit) via 485f23cf5c890c037053c3a1580c1139fc5c6ab6 (commit) via c46eb7b88a1261bc079bfbe2339060152bdf3527 (commit) via efb068d3027d3f24430b1f8b5c2b6b02d3f37869 (commit) via 6448a3e4daecbdba25e5c76b0fbb0c21583a1347 (commit) via 82c88aa6294d6f764bc1ad9b55497b73a4743bb1 (commit) via 33f914a197fa8cd4338396e7d62a5f26621f183c (commit) via e6a959d68b8181c816851dcfc91ae0b2b9296df3 (commit) via 170742de5dd5be2156f938e00e2451526ef57d5c (commit) via bfb1c7963b15b31073c9adf2d97ff1cf953ec99c (commit) via aa5c10ce9b1bd04a7f4a619d5e956c977fcd60d3 (commit) via 4666fec3b414c7880e9629f3c9b0a5b584235c6d (commit) via 3953f15ce4b4154e9fd7951424fedac0170ab59c (commit) via 01f573ad8aa539f972e2fef8a10ef290e042e24c (commit) via 8f33e7daaf80d23fc0f0551a14f9cffb95a85141 (commit) via 341b8ee719163f7ae8528f2a7832381887fbf8d8 (commit) via 8173c2a3c46efd8b12983b6095ff7bed4cda1c90 (commit) via cb781f0412a62a7e248721ed8fe6c491ccc9c456 (commit) via a0d34a3956f504e755638cadb2bac2b03e4e37e7 (commit) via edbbff4a22154a4b155ac987436c6498947cf8b4 (commit) via 9d622bda566a4980b045631f500c29717ede8186 (commit) via fc58fa65d454ce87cfa87a532f2c4f5d0b57d252 (commit) via 8d3fea161a8e1d280d207406ba3fee0d44776ce6 (commit) via f54b226fb0c350b98a9d7afb09d84564089a5bed (commit) via 6da660c76dd7c2998d847d2c978a293f13105eea (commit) via 1f713e48f024e964f5a4f5468bc9506dac262763 (commit) via cb65d272fd09b79b7911cc00b5262d4fe14a40d7 (commit) via 4373f8af3ddbc301227e883d5cbed8302c107e59 (commit) via ede77e6963d1fa748fed1515d58f26e842a2cccb (commit) via eda14cf2590aaab147d298418a3b7773b8d63ce5 (commit) via 1c2e1515c45af104fc9b2aea6bd6b1471238dd98 (commit) via e1c587c312c6347d8f14a019b79e4de0181de599 (commit) via 0fd8ac1c450d340d0b11823107d9e990341e7e11 (commit) via 34240514b58b7e8d2b444b69345d13db2695fef6 (commit) via b6542f81d0894d69e7f12a73b94bf4adead75a5c (commit) via 246994ce350923199a4c952b38dcee5bcbe8c554 (commit) via 0badd99faf8cb1a20ade36e94d3f74b9e6f65cd1 (commit) via dfaffe9d93dec5c23cc71b74789221ce97a132ef (commit) via 70b439f0a87b6c42901e49a71b1dbd09300e8260 (commit) via 8240f4421f7ab761ff5476d16090789d2332b676 (commit) via 2520f728b710c0249cde01b8cfb4872a22ef10b6 (commit) via 431ff0756ac64c33f6cfbfa8f1cc21c739b7e601 (commit) via ef05be83b7e1e10e7cba51aeafc879ca3a66826d (commit) via da76f7d33ffb3725dadd828f61427f421d1f6ac3 (commit) via da6e19a92645583da12dc2d15f54d2bd240fd3f2 (commit) via 7d8a636c9a234354c9b2ecf01b6e405bece190a1 (commit) via 3f946aa82518e878aea2cba4b6a9bcc651412c5c (commit) via 5fde150fede436dd250706d3fb1786c590e04b26 (commit) via d98007761887582f8ab25414ba5784eb238d06d8 (commit) via bd4e004229275568cbd2a9975a4776edcf7650d4 (commit) via 5b639deae123db13af61e915807c0a1ab224e246 (commit) via 0cafa88cc03786fb5794ca53e987e45fd09621f8 (commit) via 220475ed8b0c1ef7b4eabf64bcc723e14fd78209 (commit) via d0a9e8108942ebeb68d9b0b39bebb37369e0f701 (commit) via f93fca700f0fd70532132ae535f48c1a936abb0a (commit) via a1c95e6b6ede168770664cdca8ae1568187554b4 (commit) via fbd000da7c05ea751f47a678936de706733ea6e3 (commit) via 086ca51f460e52828fa02096638a3f36e272ccd2 (commit) via c5bcd27856f388ae4935b525b1016e812803ddf5 (commit) via 78c5b882482b5435bb2dcf1c09a52683d54cb81e (commit) via f9fa37b32501f173a37891fb1a8f9013af38a098 (commit) via 7c543f7b07678f69f22772bd2780602be67731d7 (commit) via 7567e115d312c3f8b56de6d1e2e8a90212e9dba8 (commit) via f9acce4a4f411e78ebca90995c598ed231b104a3 (commit) via abcef95aa511a845f0599178be09403348ba4bad (commit) via 145e3ddb4b1657a1f29eb9f41f2d54d0bf26b6f0 (commit) via bc04c45531c0a107c57afef239bdf66a21b3e958 (commit) via d5d8c4e12b220068fb0b2047b63562d3f9903e91 (commit) via 4e7de1556a25a3a31c53ea2242b1d9a5c103dd16 (commit) via 3f94e60d92d9bf67f1f8cbc19ffbfe5d28db7fcf (commit) via 04c4fe8c59d3f2870a5df7be7f55fca60d88381f (commit) via 8c5b385cbf07f318b579780df683d2c6b04f20b0 (commit) via 875880c661e71a7622d8f7282f0dd1ef756040ff (commit) via d3e12b29aef25bc9d1830b0a05643b11296f1b8f (commit) via 886a250647ac0c608f20a7007fc2167a70f64e20 (commit) via 3b0357dadaf2366cc418ec725dec55b1cea1a2e7 (commit) via f77ee8026d6c46ebb4463548b3b923ace978aa41 (commit) via ff792d99a93e8c91bae8d0a3998076d1b3bc8fb4 (commit) via 9eacb935acd69f6532135ec1353630db5111467c (commit) via 8c6da3dfbc65354975680bf7d8e273dbdca5de87 (commit) via cbd641edf3323ce354c0bc7eb54496057040b564 (commit) via 6540205329fe12999006bd886402823f4fce1c6e (commit) via a0d49154d4a471cd36954408b29a348a091efaa3 (commit) via e753e154bf8a1f507b43e03dec04b341dde3f429 (commit) via d00c2bc9c0567b6eb7d64ac4dee27b8a8dc2cedb (commit) via 9706b5e627dfae1ab0a2788dda8a2aa5a0e09af7 (commit) via 73e5465df5bdb240d632ed207677916d0fa9ad4c (commit) via ae4e25019d53d38b2ad50475c80fa99ecab94c5c (commit) via 604763ceaa318df58f706c92eb563a7ba98ebe6e (commit) via 06e635ef635f61c5f5c3b9ff16d4c813e3db2452 (commit) via 3ebe65c0ff9f8f76c9971b1cc078273298f0c693 (commit) via 0484b4549e9e2802e2f9db30a61f4b2a76332a8f (commit) via 43a357f99fc8c6535d064c5bce4b2865aa33bdd2 (commit) via ac734732481451698ee23990aaa64907e56dd082 (commit) via b7a944fea3a0194d81f6de4d958f3a1d2c6ad03a (commit) via 3b957e5b074407e18782a9592754c732671df8ed (commit) via 7ba7cfe43195305f5efa887ebbffb53a724aaac6 (commit) via 3e8286c0d2f6f94fcbc38a2233d85b90ca4040c0 (commit) via 94facae3374655816798d1d505b447f81db4759d (commit) via 1aa66fb1527c3c81fef2a39a3a3ec9d36f1cfdec (commit) via dc8008f508bb39ccbca49ea71a7d5c70571c4685 (commit) via ca632371cebf83eb9b5ce951bbe734e7636aa614 (commit) via 74a1bfe1d6e7e85fffad518f50575a44630d9293 (commit) via 654248e7f702887c5a43bf402cd6080734f57819 (commit) via a2e1db00c76bcad0594654d78af76d0e12a217ee (commit) via a0becb8948afaf3dcb7c39884464a51aa35a9cd9 (commit) via e141d84e8986ad948fdc891fd7b8c4d7de53477c (commit) via 36f4aab18ccf897b405f137d6cd4f9673bd947fc (commit) via 7232d38966babb802e9d8d0e9e591346a7b93d96 (commit) via 371517f576f8e7b25fc228c7459d6865c13d5247 (commit) via 5db4f0d383e3de40e594cf05dd8f6d743233a487 (commit) via dd0a637a3d8f5ca7229131c085ef6b8e255d01f6 (commit) via 73524045d3a3b95bb0437386bba2a1583791ea42 (commit) via 0e1e4a751264ef12dce933e720152914c9ea5eb6 (commit) via de48f481b1769866ad8da5923792a49420a2d157 (commit) via c220e327e316ae72a0adc183f30224979ea3959b (commit) via 21d80863256aab4653f1419bf8095856eb6c6b46 (commit) via 017e6bceee1a96d4b57175687560b4d625fdb150 (commit) via 1fd60fc077da09a3ae8f20a8b3f5f88b413c7237 (commit) via 398e081380a204e3b9fb4eb4da069ccf471f930e (commit) via 4ee959fb247a677b048ce3c59c1399c023a400d9 (commit) via b8836e409ea9619d9886bfa920b93392decf5be0 (commit) via 6ab24463cb63af792c958ab4455d630b5936f1b1 (commit) via 6899683948c66a81ae470efc0869ea01e489e9cd (commit) via 4b627c18440f51077f8fd4c18adaa3919c3a373e (commit) via ede5f15146ae45f4c017f5701629a4fa04ef2beb (commit) via 7781c06f6e735e92fcf597c578540c2f925a9f05 (commit) via e019fd1d143061c703691b862f1e282be57b2983 (commit) via 51c935fa4adebc59d41a7868917c2ba78735f58e (commit) via aca20ec47359776488863193660cf9fd2fe3cfe7 (commit) via 77ba2a67960d05991a3e3641049cac649ca04c96 (commit) via 9865bd0da6e59c3a1c55605b5a6a9283ed4d542c (commit) via 2ec6d9e621ca468d56ac92df8ec2ec510d21f6da (commit) via 630993ec93fed0f2da1c4511b865cc69f5f0e835 (commit) via a39d2e820dd949f934411dbc724d9afb5f4ace03 (commit) via 6c4f2328aba04ffacce9a4033fd253222e2ea1aa (commit) via 3b1ad7d5104a63b4c7cae69188a56d1a230f68e0 (commit) via 395b0d8a3fdd8915a4897b9b925d56fa42745dcc (commit) via 71c34ca7a0f54c8c8ad39b72ea1badf9f9a1ade7 (commit) via 1eefa9cbaf0516c0cb3bc384c8376332ad4c39b2 (commit) via cbd44e247ede49688e1e1fa42e57d390ad141967 (commit) via 0bcf3dd6905d67936815411b42dab6fd4c47b4db (commit) via 4f714dd43efde465c7f2272ee444ccd2f1b3a1b5 (commit) via 86feccb92092506f2a23a32345bc0f562ac4042b (commit) via c68c16371639f360d1b110eacf4b1a28ddb5cf53 (commit) via 7ecc513a44095d614f10e89c67d9be5826abacf9 (commit) via 56e6cf80bd4be6dc95ed9b84b633e3c11ae8c86b (commit) via 7b45154096ea081fe41041fcec20c82e8ca944b5 (commit) via 84d73afc1a36de35f3dfd31c83131dc2054d2150 (commit) via 2181a6c6267eb62cc4feebb82a44907ae3c1ee2c (commit) via c60eb31fb11129ee91b9f778b852f886db545381 (commit) via 245af5969525a0d1cdcb1c0c632587d5cec27646 (commit) via c402ef907a6c0600fc5dec79b6165afd49233124 (commit) via 71f4ed30fe331d062703e803f29a67b558e8e22d (commit) via b08b78e7d4bb56f395d3212eed6184ede236c760 (commit) via 36f7a9411dcd7dbeb3483bc83a1acbb3dd235deb (commit) via f1b383b81a2e837d6b06656896a4753aac449803 (commit) via a8b916588645b648b8ef6d43787ec48f8f1d0db7 (commit) via bc84451b7af508ddd154a8793eaf0de68b7ca80a (commit) via ba587d55a56db16e9e47d1e0975f5125fbafc6db (commit) via 03fa52cea208036e3db029c412d6baf4b9f8fb5a (commit) via 792005b027e804bfa7ac92a484c5024a05a1684b (commit) via 9a09557a93b9f11371e4213589878437e567f897 (commit) via 19ba03f49581e407097a3e4821a957c422551ae5 (commit) via 9a3c826307ae6ad4dd6fbd72431e7d9d4947f1dd (commit) via 224c3ddb89a43bf8db06c373d4ff429477833c0f (commit) via 8e394ffc7ab691eafcf276d7ae578454a8c5548f (commit) via 8a9e7a9121490a8c64d8c17f5be510e43104f6d9 (commit) via 6cd8405efd699ed7686671d6f0d9caf20757b7a3 (commit) via 9720e656055e5b906649c9f506a6de5a31337d07 (commit) via aebd6ce4ca570f0506717873c686d8c9ca5fffe1 (commit) via 6e15a7d88b346cd5dd6ea76d86121d29932c3c8d (commit) via c7c9216298b3c8e380d348f8be6e03a48dbe5918 (commit) via 623fb77545da1272c7602cd51a4c187b66c366c8 (commit) via 3074964fcfff45aef4584b84550eeef84f902fc4 (commit) via 938d3bf25b2f5bc1a9d955d86070e8bbee127f52 (commit) via 86e13c95cf5c615a0acd7075bf3131f88fbf8804 (commit) via e6c2c623f7736175e52fce2b61aab60c60eccdf5 (commit) via b6518b3871859f9eeb7653bf2f3baaa43fa0a5d0 (commit) via 6a40cf0c5c845683fdb82721813ebd5dd867cce5 (commit) via bcd68f9e44a70c73bde08e612a28e413570dc039 (commit) via af73b6a704bec1715511938a3514409af3810641 (commit) via c58b006be334ee40a9df0e9a2c4ff7be470735a8 (commit) via 0a6b6047cfd01e229234b747c7694e545b9aefb3 (commit) via e3ec6cc681835fcd1457aedbf5cea914915e89a8 (commit) via f04265eceb78a33e452faa8727562e96af374f39 (commit) via bc1f8cdaf4b26d1c7af34c7a33038c50fd5eabd4 (commit) via 5fe2850dd96483f176858fd75c098313d5b20bc2 (commit) via 5c383f026242d25a3c21fdfda42e5ca218b346c8 (commit) via 6dca4fd141fd0b9fe0ea662295833b8ed43cb4e8 (commit) via c8b187ea07f534bac147cbbc44dd08925f5734b0 (commit) via 6b9e742a93e42312b4e4012046eb8310a11f516a (commit) via 95421fb9b76d5a87c29fb6079afd21783f24b97b (commit) via acaa662f29836ce4d4c3a0abc2132f285f9df585 (commit) via 7f7a1bce250bc286d23a4b895d684748bec03a71 (commit) via 4d9d419e0e0512c301eb1ffcb793828451653024 (commit) via 06da0f77c2a447348127e072e34bf541597154a2 (commit) via 4f51c22aca0d53526e65954b99d1ab3abfbb8bc8 (commit) via 7041adf41fc291659fa4d102b50539946403f97e (commit) via afbe19f83ad1af46e7b1f1639d9fa0eb873dcbb5 (commit) via bb903df05b0bc46f7d2f156a21b8265c158f0eb2 (commit) via 6ec5f4be052e594dc90b6677fec1c1e7727d9651 (commit) via 787749ead66eee8c20754c160bd79404b2109553 (commit) via 9812b2e60750cc7bbfa252d9ae8d85a72a399e01 (commit) via 18fe412be41dc4c1b0cce91499189dcf94e603f6 (commit) via 183dc7ecf69a92653e0a72e0bbc02732bac9ec8c (commit) via 8c60ef43a8c45f3f8f6ab275ba331640f658f59b (commit) via 2ee7123e5a54fba15b976a05bce173871eba8aba (commit) via 7d1c9c9b4c586ede0abecb7a0a47d8996aaf56da (commit) via 9b8b325a1f4cdaf235e7d803849dde6ededec865 (commit) via 25f004c8dd2d96f92ea8f18217a04212f907eb94 (commit) via 7dc7c195f31657186dac0c4d6521200da11311fa (commit) via be550b6ed9d6c5948d2c331a396020769f65204f (commit) via 615b3f6299d95db8507b2a68dda2704d08bcd1d0 (commit) via 015d2e7e49056e0d5fea1c18bf8de9b1be7c096f (commit) via d96c806b9210f2a9dc07f9ebfc811b3fc0c0f870 (commit) via 26b188a2db6345f70985d27ef91ebc30725424ea (commit) via 79dc332ba2db30e02e816f6ecbffca548f2f6c30 (commit) via f57929f229c97462650cef4086bb930290ba92af (commit) via 3f469b177da53a0e63d3fe3cfb4fac91e921de3d (commit) via 7800dbe4301d831dd81a469107eb5f0e1bd0b927 (commit) via 515b89b30c18dae6b91e57ec2dd336919bb4578d (commit) via a0cc84cd15396df7752fe16659c01628ba729324 (commit) via d2939ba2b40daa89b501d4b81484ea888ef17139 (commit) via f2665db5f2c20f3f47673ad5343738b10ce81dde (commit) via 7ff27e9babb1564a9c0e213c4a42396aa420f8cc (commit) via 797094dddfbcc3ea1d0efc900185ba3857d30226 (commit) via 4d10e986f499f330963c4641fd91046c57c94bd8 (commit) via a52eab48080f29feaa56421481cfea221ee6346e (commit) via cbb55fa7a110e499dae0170060d762eb3f243768 (commit) via d1988021e345c990f4272843577529a123f8943d (commit) via a6b5be76f94664406def040d79ac8bc4d4aa8bd0 (commit) via ec71cc2fc6d319ebe4aebbe65a6a56ea1376200e (commit) via 0ca912dfef6289f9d2cd7d70b7ec80883a9b4395 (commit) via e3cfc1c76d89f904659b106d78b352884797967b (commit) via cf8f8f0c4244b4980ce538680f81de3738ba08d6 (commit) via 011c71b6cbda4ecd856a08cf3124330d7f4342de (commit) via d825d248105e1c9a13fef4a35e76b6f4912e3792 (commit) via 3c615f99d3923df7dfa94c6587733c682efbbc78 (commit) via 987e68b1a38ad9116f309bff006e794c7e6f85e8 (commit) via 6e4879f0eb5ff1985d1040669a69675fadad53f8 (commit) via 5953356cc4f2bcbf76e2979c35283c11ce0ba992 (commit) via 7ae4ea7d0db5228d8978d52bebac2b1d95a78560 (commit) via 7c9cf4158452094f4c463676e5122c5c4ce64de8 (commit) via 975f8a9e3144e4d3d3f391e907c8bf94b23dc8b6 (commit) via b29b8669ad250df649a0f02c5575e7163a2cd9e4 (commit) via a8aa551e5abde13e063beb32ec0366bdc6008d71 (commit) via 43691ca179b1e573ca01e7bff87404519d4a3d75 (commit) via c785244dd4a68bbc5eef3b16358ea95db73ee686 (commit) via d78908cff50f281dab6390646fb1b7c58236d83e (commit) via 1ed415e2b9b985aac087c35949d0e1e489ab496d (commit) via d136eff549649f23b12121575362dfa09343ea0a (commit) via 991f019c506528fa94ac173db6f1120f8b2373bf (commit) via bca6d0e3195217576b39fa1205469e1d578b386a (commit) via 25bc8a24e4d5f7f7ba4cafc1ffd8499b18a3c842 (commit) via bfca584fae65570fa8ed052f662948763f3ccfa8 (commit) via b326e5870e54f52d52c32388f7f6e07454e2f2c2 (commit) via 92b3f0082674ecdb4dad89d722acd069aef0dafa (commit) via 5382cfab6110741b8ba36965b30334c00d8f9409 (commit) via e68fa6f07666ec4726cfef59f641a81244cc2e00 (commit) via b277c936e06479f38ec21dbd6322463c9435bad3 (commit) via 141c5cc4c44a6ce1a5c628c0f4849a8b1c91d383 (commit) via d57e0d5022e0d3409f68bb02fd27311d8d0327ea (commit) via 5a676acc4bba751c7746c4a200a054d6c557f3ee (commit) via 8228463cbca8d629572dbad99286c4e05886350b (commit) via 7c5d0fad2e732bdea75f585b67fc1a0cc4d3107f (commit) via d15dcecdee0f07b0b088dd3a8ebb50826c5b7bc5 (commit) via 750ce8d1caf237464dd663de54ad055c0e58409d (commit) via 70b90b91bf77e72a36abdef039234359195b1942 (commit) via ade90bdeb78ccaeb294e34af04751f2f649a324f (commit) via afa18d267a8cdc61b2c96b98af8c217f92516dc6 (commit) via fbedb42d07cdc97a5bc698d1f7732ee776763cbc (commit) via 4c2f2a792a5971fcc7fe6511725eaf50d19d302b (commit) via 919e6dbe9b61a27e8f7f89121ba182907df461a3 (commit) via b027a8fa7dc4854e72ddada0b495b52166be2974 (commit) via 157280a4d6b8c49703c698bda5546d7b2cc21e35 (commit) via 1090ebbf87ad8150ff293ac57bda8da3185179ac (commit) via 1ba82504618462968e0e7ccca2e4196dd5219e27 (commit) via f3c3938c1c1a57f78e1be9d2dbb9ea0cda12edf6 (commit) via d8f16f3e9f709dd06bb3c3494bf6d39d150d959b (commit) via b459a59be3a9b92a27b71790f5e3f3be38595cb3 (commit) via 2fd33e94480fc2c662d1ad28f83e522cc5dbdc2e (commit) via d46addbb52a1f6d970bcac583b0b00ff4326e116 (commit) via 94585166dfea8232c248044f9f4b1c217dc4ac2e (commit) via 6d636d8c779d3be92dd5db021d12c2e3a2c5d419 (commit) via 669e74e8295e8aef1dc052f30ff30bad624eb0f6 (commit) via 4d50586db70d366d7d9eaf42062bf23bb6073695 (commit) from 86f94295634f71220c6e6c4ac987406be3014e59 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8cb7f5b73460dd9ed08cc78a382d60e52c8f2781 Merge: 86f9429 9c03a84 Author: Stan Cox Date: Fri Jan 22 09:56:25 2016 -0500 Merge remote-tracking branch 'gdb/master' into scox/globalstate commit 9c03a84f6cc54af01d4fe655f6e0a0aa13d8ef74 Author: GDB Administrator Date: Fri Jan 15 00:00:08 2016 +0000 Automatic date update in version.in commit 4d82fe66e8d38b20ad429cb99a99ed8741336d72 Author: Nick Clifton Date: Thu Jan 14 16:23:35 2016 +0000 Fix display of RL78 MOVW instructions that use the stack pointer. * rl78-decode.opc (rl78_decode_opcode): Add 's' operand to movw instructions that can support stack pointer operations. * rl78-decode.c: Regenerate. * rl78-dis.c: Fix display of stack pointer in MOVW based instructions. * testsuite/gas/rl78/sp-relative-movw.s: New test. * testsuite/gas/rl78/sp-relative-movw.d: Expected disassembly. * testsuite/gas/rl78/rl78.exp: Run the new test. commit e7cf25a8ab54cd02b48e7443ef25764475f02315 Author: Yao Qi Date: Thu Jan 14 14:54:24 2016 +0000 [ARM] Remove field syscall_next_pc in struct gdbarch_tdep Field syscall_next_pc in struct gdbarch_tdep was to calculate the next pc of syscall instruction. On linux target, syscall_next_pc is set to arm_linux_syscall_next_pc, to do linux specific things. However, after we have struct arm_get_next_pcs_ops, we can do the same thing in struct arm_get_next_pcs_ops field syscall_next_pc, so syscall_next_pc in struct gdbarch_tdep is not needed any more. gdb: 2016-01-14 Yao Qi * arm-linux-tdep.c (arm_linux_get_next_pcs_syscall_next_pc): Declare. (arm_linux_get_next_pcs_ops): Install arm_linux_get_next_pcs_syscall_next_pc. (arm_linux_syscall_next_pc): Change to ... (arm_linux_get_next_pcs_syscall_next_pc): ... it. (arm_linux_init_abi): Don't set tdep->syscall_next_pc. * arm-tdep.c (arm_get_next_pcs_syscall_next_pc): Declare. (arm_get_next_pcs_syscall_next_pc): Make it static. Don't call tdep->syscall_next_pc. * arm-tdep.h (struct gdbarch_tdep) : Remove. (arm_get_next_pcs_syscall_next_pc): Remove. commit c0518081f09298c67d1e74e0cc592fde8e0c6571 Author: Yao Qi Date: Thu Jan 14 12:28:02 2016 +0000 Fix C++ build error by casting void * Two recent patches breaks GDB C++ mode build, https://sourceware.org/ml/gdb-patches/2016-01/msg00150.html https://sourceware.org/ml/gdb-patches/2016-01/msg00086.html gdb/remote.c: In function 'int remote_set_syscall_catchpoint(target_ops*, int, int, int, int, int*)': gdb/remote.c:2036:39: error: invalid conversion from 'void*' to 'char*' [-fpermissive] catch_packet = xmalloc (maxpktsz); ^ gdb/thread.c: In function 'int do_captured_thread_select(ui_out*, void*)': gdb/git/gdb/thread.c:1999:24: error: invalid conversion from 'void*' to 'const char*' [-fpermissive] const char *tidstr = tidstr_v; ^ this patch fixes them by casting void * to the right type. gdb: 2016-01-14 Yao Qi * remote.c (remote_set_syscall_catchpoint): Cast to char *. * thread.c (do_captured_thread_select): Cast to const char *. commit 651657fa61aa0a2946d56063295a7ce8d73f803b Author: Matthew Wahab Date: Thu Jan 14 10:55:11 2016 +0000 [AArch64] Fix missing architecture checks for ARMv8.2 system registers. Some of the RAS system registers added to binutils as part of the ARMv8.2 support are missing the feature checks to warn when they aren't supported by the target. This patch adds the missing feature checks with a test to check that the correct warnings are given for all the ARMv8.2 system registers. gas/ 2016-01-14 Matthew Wahab * testsuite/gas/aarch64/illegal-sysreg-2.l: New. * testsuite/gas/aarch64/illegal-sysreg-2.d: New. opcodes/ 2016-01-14 Matthew Wahab * aarch64-opc.c (aarch64_sys_reg_supported_p): Merge conditionals testing for RAS support. Add checks for erxfr_el1, erxctlr_el1, erxtatus_el1 and erxaddr_el1. Change-Id: I66b590ea49c1eb6b0e5c93e0dc2bc9c4e79a52fe commit 4c4ac9642a973e825d71584b526ee8bbb83fdbd2 Author: Thomas Preud'homme Date: Thu Jan 14 18:00:24 2016 +0800 Fix Thumb-Thumb farcall v6-M (no profile) test 2016-01-14 Thomas Preud'homme ld/ * testsuite/ld-arm/arm-elf.exp (Thumb-Thumb farcall v6-M (no profile)): Set address of .foo section when linking. * testsuite/ld-arm/farcall-thumb-thumb-m-no-profile-b.s: Place myfunc in .foo section. * testsuite/ld-arm/farcall-thumb-thumb-m-no-profile.d: Adapt expected output to the above changes. commit 1b451dda5f8905b26bafafe00423335d4fffe8dd Author: Yao Qi Date: Thu Jan 14 09:36:43 2016 +0000 [ARM] Make thumb2_breakpoint static again This patch makes thumb2_breakpoint static. When writing this patch, I find the only reason we keep thumb2_breakpoint extern is that it is used as an argument passed to arm_gdbserver_get_next_pcs. However, field arm_thumb2_breakpoint is only used in a null check in thumb_get_next_pcs_raw, so I wonder why do need to pass thumb2_breakpoint to arm_gdbserver_get_next_pcs. thumb2_breakpoint was added by Daniel Jacobowitz in order to support single-step IT block https://sourceware.org/ml/gdb-patches/2010-01/msg00624.html the logic there was if we have 32-bit thumb-2 breakpoint defined, we can safely single-step IT block, otherwise, we can't. Daniel didn't want to use 16-bit thumb BKPT instruction, because it triggers even on instruction which should be executed. Secondly, using 16-bit thumb illegal instruction on top of 32-bit thumb instruction may break the meaning of original IT blocks, because the other 16-bit can be regarded as an instruction. See more explanations from Daniel's kernel patch http://www.spinics.net/lists/arm-kernel/msg80476.html Let us back to this patch, GDB/GDBserver can safely single step IT block if thumb2_breakpoint is defined, but the single step logic doesn't have to know the thumb-2 breakpoint instruction. Only breakpoint insertion mechanism decides to use which breakpoint instruction. In the software single step code, instead of pass thumb2_breakpoint, we can pass a boolean variable has_thumb2_breakpoint indicate whether the target has thumb-2 breakpoint defined, which is equivalent to the original code. Regression tested on arm-linux. No regression. gdb: 2016-01-14 Yao Qi * arch/arm-get-next-pcs.c (arm_get_next_pcs_ctor): Change argument arm_thumb2_breakpoint to has_thumb2_breakpoint. (thumb_get_next_pcs_raw): Check has_thumb2_breakpoint instead. * arch/arm-get-next-pcs.h (struct arm_get_next_pcs) : Remove. : New field. (arm_get_next_pcs_ctor): Update declaration. * arm-linux-tdep.c (arm_linux_software_single_step): Pass 1 to arm_get_next_pcs_ctor. * arm-tdep.c (arm_software_single_step): Pass 0 to arm_get_next_pcs_ctor. gdb/gdbserver: 2016-01-14 Yao Qi * linux-aarch32-low.c (thumb2_breakpoint): Make it static. * linux-aarch32-low.h (thumb2_breakpoint): Remove declaration. * linux-arm-low.c (arm_gdbserver_get_next_pcs): Pass 1 to arm_get_next_pcs_ctor. commit fccbac73f9328cdde552d8dd82927481a60c388b Author: GDB Administrator Date: Thu Jan 14 00:00:09 2016 +0000 Automatic date update in version.in commit 3facb0e9a754d2869a139fe135dcd2a58ced2347 Author: Maciej W. Rozycki Date: Wed Jan 13 20:58:29 2016 +0000 Nios II/GAS: Fix build error in `output_movia' Fix: cc1: warnings being treated as errors .../gas/config/tc-nios2.c: In function 'output_movia': .../gas/config/tc-nios2.c:3474: warning: 'code' may be used uninitialized in this function make[4]: *** [tc-nios2.o] Error 1 seen with GCC 4.1.2 and 4.4.7. gas/ * config/tc-nios2.c (output_movia): Preset `code' to 0. commit bc06e0b148dfc4f2e52003a17d48463150f72e7b Author: Ulrich Weigand Date: Wed Jan 13 18:57:59 2016 +0100 MAINTAINERS: Add Andreas Arnez as s390 target maintainer. gdb/ChangeLog: * MAINTAINERS: Add Andreas Arnez as s390 target maintainer. commit 8a4c286981e1a69596a6296ac14b66c5cee05550 Author: Yoshinori Sato Date: Wed Jan 13 17:47:34 2016 +0000 Remove spurious condition in test for closing parenthesis. * config/tc-h8300.c (get_operand): Remove spurious condition in test for closing parenthesis. commit 4e7b8beaa3b7b9ac8577b10afa9d58bb9d453b08 Author: Yao Qi Date: Wed Jan 13 16:15:31 2016 +0000 Read instruction with byte_order_for_code When reading instruction, we should use byte_order_for_code instead of byte_order. gdb: 2016-01-13 Yao Qi * arch/arm-get-next-pcs.c (arm_get_next_pcs_raw): Use byte_order_for_code to read instruction. commit 663f6d42f47265d2deaa86c8a976e658fb13f820 Author: Pedro Alves Date: Wed Jan 13 10:56:10 2016 +0000 Add $_gthread convenience variable This commit adds a new $_gthread convenience variable, that is like $_thread, but holds the current thread's global thread id. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention $_gthread. * gdbthread.h (struct thread_info) : Mention $_gthread. * thread.c (thread_num_make_value_helper): New function. (thread_id_make_value): Delete. (thread_id_per_inf_num_make_value, global_thread_id_make_value): New. (thread_funcs): Adjust. (gthread_funcs): New. (_initialize_thread): Register $_gthread variable. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.base/default.exp: Expect $_gthread as well. * gdb.multi/tids.exp: Test $_gthread. * gdb.threads/thread-specific.exp: Test $_gthread. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * gdb.texinfo (Threads): Document the $_gthread convenience variable. (Convenience Vars): Likewise. commit c84f6bbfe50ff13928360d3cc349d7c553867ce6 Author: Pedro Alves Date: Wed Jan 13 10:56:09 2016 +0000 Implement "info threads -gid" This commit makes global thread IDs optionaly visible in "info threads", with the new "-gid" switch: (gdb) info threads -gid Id GId Target Id Frame 1.1 1 Thread 0x7ffff7fc2740 (LWP 6022) "threads" (running) 1.2 3 Thread 0x7ffff77c0700 (LWP 6028) "threads" (running) 1.3 4 Thread 0x7ffff7fc2740 (LWP 6032) "threads" (running) 2.1 2 Thread 0x7ffff7fc1700 (LWP 6037) "threads" (running) 2.2 5 Thread 0x7ffff77c0700 (LWP 6038) "threads" (running) * 2.3 6 Thread 0x7ffff7fc2740 (LWP 6039) "threads" (running) (gdb) info threads Id Target Id Frame 1.1 Thread 0x7ffff7fc2740 (LWP 6022) "threads" (running) 1.2 Thread 0x7ffff77c0700 (LWP 6028) "threads" (running) 1.3 Thread 0x7ffff7fc2740 (LWP 6032) "threads" (running) 2.1 Thread 0x7ffff7fc1700 (LWP 6037) "threads" (running) 2.2 Thread 0x7ffff77c0700 (LWP 6038) "threads" (running) * 2.3 Thread 0x7ffff7fc2740 (LWP 6039) "threads" (running) No regressions on x86_64 Fedora 20. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention "info threads -gid". * gdbthread.h (struct thread_info) : Mention "info threads -gid". * thread.c (info_threads_command): Handle "-gid". (_initialize_thread): Adjust "info threads" help string to mention -gid. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.multi/tids.exp: Test "info threads -gid". gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * gdb.texinfo (Threads): Document "info threads -gid". commit 22a0232400ea09c57ab70d97cffc1f25e6320da7 Author: Pedro Alves Date: Wed Jan 13 10:56:08 2016 +0000 Add Python InferiorThread.global_num attribute This commit adds a new Python InferiorThread.global_num attribute. This can be used to pass the correct thread ID to Breakpoint.thread, which takes a global thread ID, not a per-inferior thread number. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention InferiorThread.global_num. * python/py-infthread.c (thpy_get_global_num): New function. (thread_object_getset): Register "global_num". gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.multi/tids.exp: Test InferiorThread.global_num and Breakpoint.thread. * gdb.python/py-infthread.exp: Test InferiorThread.global_num. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * python.texi (Breakpoints In Python) : Add anchor. (Threads In Python): Document new InferiorThread.global_num attribute. commit 5d5658a1d3c3eb2a09c03f2f0662a1c01963c869 Author: Pedro Alves Date: Wed Jan 13 10:56:07 2016 +0000 Per-inferior/Inferior-qualified thread IDs This commit changes GDB to track thread numbers per-inferior. Then, if you're debugging multiple inferiors, GDB displays "inferior-num.thread-num" instead of just "thread-num" whenever it needs to display a thread: (gdb) info inferiors Num Description Executable 1 process 6022 /home/pedro/gdb/tests/threads * 2 process 6037 /home/pedro/gdb/tests/threads (gdb) info threads Id Target Id Frame 1.1 Thread 0x7ffff7fc2740 (LWP 6022) "threads" (running) 1.2 Thread 0x7ffff77c0700 (LWP 6028) "threads" (running) 1.3 Thread 0x7ffff7fc2740 (LWP 6032) "threads" (running) 2.1 Thread 0x7ffff7fc1700 (LWP 6037) "threads" (running) 2.2 Thread 0x7ffff77c0700 (LWP 6038) "threads" (running) * 2.3 Thread 0x7ffff7fc2740 (LWP 6039) "threads" (running) (gdb) ... (gdb) thread 1.1 [Switching to thread 1.1 (Thread 0x7ffff7fc2740 (LWP 8155))] (gdb) ... etc. You can still use "thread NUM", in which case GDB infers you're referring to thread NUM of the current inferior. The $_thread convenience var and Python's InferiorThread.num attribute are remapped to the new per-inferior thread number. It's a backward compatibility break, but since it only matters when debugging multiple inferiors, I think it's worth doing. Because MI thread IDs need to be a single integer, we keep giving threads a global identifier, _in addition_ to the per-inferior number, and make MI always refer to the global thread IDs. IOW, nothing changes from a MI frontend's perspective. Similarly, since Python's Breakpoint.thread and Guile's breakpoint-thread/set-breakpoint-thread breakpoint methods need to work with integers, those are adjusted to work with global thread IDs too. Follow up patches will provide convenient means to access threads' global IDs. To avoid potencially confusing users (which also avoids updating much of the testsuite), if there's only one inferior and its ID is "1", IOW, the user hasn't done anything multi-process/inferior related, then the "INF." part of thread IDs is not shown. E.g,.: (gdb) info inferiors Num Description Executable * 1 process 15275 /home/pedro/gdb/tests/threads (gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fc1740 (LWP 15275) "threads" main () at threads.c:40 (gdb) add-inferior Added inferior 2 (gdb) info threads Id Target Id Frame * 1.1 Thread 0x7ffff7fc1740 (LWP 15275) "threads" main () at threads.c:40 (gdb) No regressions on x86_64 Fedora 20. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention that thread IDs are now per inferior and global thread IDs. * Makefile.in (SFILES): Add tid-parse.c. (COMMON_OBS): Add tid-parse.o. (HFILES_NO_SRCDIR): Add tid-parse.h. * ada-tasks.c: Adjust to use ptid_to_global_thread_id. * breakpoint.c (insert_breakpoint_locations) (remove_threaded_breakpoints, bpstat_check_breakpoint_conditions) (print_one_breakpoint_location, set_longjmp_breakpoint) (check_longjmp_breakpoint_for_call_dummy) (set_momentary_breakpoint): Adjust to use global IDs. (find_condition_and_thread, watch_command_1): Use parse_thread_id. (until_break_command, longjmp_bkpt_dtor) (breakpoint_re_set_thread, insert_single_step_breakpoint): Adjust to use global IDs. * dummy-frame.c (pop_dummy_frame_bpt): Adjust to use ptid_to_global_thread_id. * elfread.c (elf_gnu_ifunc_resolver_stop): Likewise. * gdbthread.h (struct thread_info): Rename field 'num' to 'global_num. Add new fields 'per_inf_num' and 'inf'. (thread_id_to_pid): Rename thread_id_to_pid to global_thread_id_to_ptid. (pid_to_thread_id): Rename to ... (ptid_to_global_thread_id): ... this. (valid_thread_id): Rename to ... (valid_global_thread_id): ... this. (find_thread_id): Rename to ... (find_thread_global_id): ... this. (ALL_THREADS, ALL_THREADS_BY_INFERIOR): Declare. (print_thread_info): Add comment. * tid-parse.h: New file. * tid-parse.c: New file. * infcmd.c (step_command_fsm_prepare) (step_command_fsm_should_stop): Adjust to use the global thread ID. (until_next_command, until_next_command) (finish_command_fsm_should_stop): Adjust to use the global thread ID. (attach_post_wait): Adjust to check the inferior number too. * inferior.h (struct inferior) : New field. * infrun.c (handle_signal_stop) (insert_exception_resume_breakpoint) (insert_exception_resume_from_probe): Adjust to use the global thread ID. * record-btrace.c (record_btrace_open): Use global thread IDs. * remote.c (process_initial_stop_replies): Also consider the inferior number. * target.c (target_pre_inferior): Clear the inferior's highest thread num. * thread.c (clear_thread_inferior_resources): Adjust to use the global thread ID. (new_thread): New inferior parameter. Adjust to use it. Set both the thread's global ID and the thread's per-inferior ID. (add_thread_silent): Adjust. (find_thread_global_id): New. (find_thread_id): Make static. Adjust to rename. (valid_thread_id): Rename to ... (valid_global_thread_id): ... this. (pid_to_thread_id): Rename to ... (ptid_to_global_thread_id): ... this. (thread_id_to_pid): Rename to ... (global_thread_id_to_ptid): ... this. Adjust. (first_thread_of_process): Adjust. (do_captured_list_thread_ids): Adjust to use global thread IDs. (should_print_thread): New function. (print_thread_info): Rename to ... (print_thread_info_1): ... this, and add new show_global_ids parameter. Handle it. Iterate over inferiors. (print_thread_info): Reimplement as wrapper around print_thread_info_1. (show_inferior_qualified_tids): New function. (print_thread_id): Use it. (tp_array_compar): Compare inferior numbers too. (thread_apply_command): Use tid_range_parser. (do_captured_thread_select): Use parse_thread_id. (thread_id_make_value): Adjust. (_initialize_thread): Adjust "info threads" help string. * varobj.c (struct varobj_root): Update comment. (varobj_create): Adjust to use global thread IDs. (value_of_root_1): Adjust to use global_thread_id_to_ptid. * windows-tdep.c (display_tib): No longer accept an argument. * cli/cli-utils.c (get_number_trailer): Make extern. * cli/cli-utils.h (get_number_trailer): Declare. (get_number_const): Adjust documentation. * mi/mi-cmd-var.c (mi_cmd_var_update_iter): Adjust to use global thread IDs. * mi/mi-interp.c (mi_new_thread, mi_thread_exit) (mi_on_normal_stop, mi_output_running_pid, mi_on_resume): * mi/mi-main.c (mi_execute_command, mi_cmd_execute): Likewise. * guile/scm-breakpoint.c (gdbscm_set_breakpoint_thread_x): Likewise. * python/py-breakpoint.c (bppy_set_thread): Likewise. * python/py-finishbreakpoint.c (bpfinishpy_init): Likewise. * python/py-infthread.c (thpy_get_num): Add comment and return the per-inferior thread ID. (thread_object_getset): Update comment of "num". gdb/testsuite/ChangeLog: 2016-01-07 Pedro Alves * gdb.base/break.exp: Adjust to output changes. * gdb.base/hbreak2.exp: Likewise. * gdb.base/sepdebug.exp: Likewise. * gdb.base/watch_thread_num.exp: Likewise. * gdb.linespec/keywords.exp: Likewise. * gdb.multi/info-threads.exp: Likewise. * gdb.threads/thread-find.exp: Likewise. * gdb.multi/tids.c: New file. * gdb.multi/tids.exp: New file. gdb/doc/ChangeLog: 2016-01-07 Pedro Alves * gdb.texinfo (Threads): Document per-inferior thread IDs, qualified thread IDs, global thread IDs and thread ID lists. (Set Watchpoints, Thread-Specific Breakpoints): Adjust to refer to thread IDs. (Convenience Vars): Document the $_thread convenience variable. (Ada Tasks): Adjust to refer to thread IDs. (GDB/MI Async Records, GDB/MI Thread Commands, GDB/MI Ada Tasking Commands, GDB/MI Variable Objects): Update to mention global thread IDs. * guile.texi (Breakpoints In Guile) : Mention global thread IDs instead of thread IDs. * python.texi (Threads In Python): Adjust documentation of InferiorThread.num. (Breakpoint.thread): Mention global thread IDs instead of thread IDs. commit 43792cf0de3a49fb871d432343672bdf16270e99 Author: Pedro Alves Date: Wed Jan 13 10:56:06 2016 +0000 Centralize thread ID printing Add a new function to print a thread ID, in the style of paddress, plongest, etc. and adjust all CLI-reachable paths to use it. This gives us a single place to tweak to print inferior-qualified thread IDs later: - [Switching to thread 1 (Thread 0x7ffff7fc2740 (LWP 8155))] + [Switching to thread 1.1 (Thread 0x7ffff7fc2740 (LWP 8155))] etc., though for now, this has no user-visible change. No regressions on x86_64 Fedora 20. gdb/ChangeLog: 2016-01-13 Pedro Alves * breakpoint.c (remove_threaded_breakpoints) (print_one_breakpoint_location): Use print_thread_id. * btrace.c (btrace_enable, btrace_disable, btrace_teardown) (btrace_fetch, btrace_clear): Use print_thread_id. * common/print-utils.c (CELLSIZE): Delete. (get_cell): Rename to ... (get_print_cell): ... this and made extern. Adjust call callers. Adjust to use PRINT_CELL_SIZE. * common/print-utils.h (get_print_cell): Declare. (PRINT_CELL_SIZE): New. * gdbthread.h (print_thread_id): Declare. * infcmd.c (signal_command): Use print_thread_id. * inferior.c (print_inferior): Use print_thread_id. * infrun.c (handle_signal_stop) (insert_exception_resume_breakpoint) (insert_exception_resume_from_probe) (print_signal_received_reason): Use print_thread_id. * record-btrace.c (record_btrace_info) (record_btrace_resume_thread, record_btrace_cancel_resume) (record_btrace_step_thread, record_btrace_wait): Use print_thread_id. * thread.c (thread_apply_all_command): Use print_thread_id. (print_thread_id): New function. (thread_apply_command): Use print_thread_id. (thread_command, thread_find_command, do_captured_thread_select): Use print_thread_id. commit 8465445732dc04c3fb6cf954274e12d06b274f08 Author: Pedro Alves Date: Wed Jan 13 10:56:06 2016 +0000 Add Python InferiorThread.inferior attribute So a script can easily get at a thread's inferior and its number. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention InferiorThread.inferior. * python/py-infthread.c (thpy_get_inferior): New. (thread_object_getset): Register "inferior". gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.python/py-infthread.exp: Test InferiorThread.inferior. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * python.texi (Threads In Python): Document InferiorThread.inferior. commit e3940304fe75c91f99e260a89fe8c45ece7e373f Author: Pedro Alves Date: Wed Jan 13 10:56:05 2016 +0000 Add a new $_inferior convenience variable Like $_thread, but holds the current inferior number. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention $_inferior. * inferior.c (inferior_id_make_value): New. (inferior_funcs): New. (_initialize_inferior): Create $_inferior variable. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.base/default.exp: Expect $_inferior as well. * gdb.multi/base.exp: Test $_inferior. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * gdb.texinfo (Inferiors and Programs): Document the $_inferior convenience variable. (Convenience Vars): Likewise. commit a911d87ad714cbfbbc5c5752cb8b445a7e70196c Author: Pedro Alves Date: Wed Jan 13 10:40:33 2016 +0000 Fix PR19388: Can't access $_siginfo in breakpoint (catch signal) condition This commit merges both the registers and $_siginfo "thread running/executing" checks into a single function. Accessing $_siginfo from a "catch signal" breakpoint condition doesn't work. The condition always fails with "Selected thread is running": (gdb) catch signal Catchpoint 3 (standard signals) (gdb) condition $bpnum $_siginfo.si_signo == 5 (gdb) continue Continuing. Error in testing breakpoint condition: Selected thread is running. Catchpoint 3 (signal SIGUSR1), 0x0000003615e35877 in __GI_raise (sig=10) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) When accessing the $_siginfo object, we check whether the thread is marked running (external/public) state and refuse the access if so. This is so "print $_siginfo" at the prompt fails nicelly when the current thread is running. While evaluating breakpoint conditionals, we haven't decided yet whether the thread is going to stop, so is_running still returns true, and we thus always error out. Evaluating an expression that requires registers access is really conceptually the same -- we could think of $_siginfo as a pseudo register. However, in that case we check whether the thread is marked executing (internal/private state), not running (external/public state). Changing the $_siginfo validation to check is_executing as well fixes the bug in question. Note that checking is_executing is not fully correct, not even for registers. See PR 19389. However, I think this is the lesser of two evils and ends up as an improvement. We at least now have a single place to fix. Tested on x86_64 GNU/Linux. gdb/ChangeLog: 2016-01-13 Pedro Alves PR breakpoints/19388 * frame.c (get_current_frame): Use validate_registers_access. * gdbthread.h (validate_registers_access): Declare. * infrun.c (validate_siginfo_access): Delete. (siginfo_value_read, siginfo_value_write): Use validate_registers_access. * thread.c (validate_registers_access): New function. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves PR breakpoints/19388 * gdb.base/catch-signal-siginfo-cond.c: New file. * gdb.base/catch-signal-siginfo-cond.exp: New file. commit 8405419985b2a5f9c4f79b28af6c2324655b5c5b Author: Nick Clifton Date: Wed Jan 13 10:00:49 2016 +0000 Mark the linker's -Bsymbolic-functions test as an expected failure for MIPS targets. * ld-elf/elf.exp (-Bymsolic-functions): Expect to fail for MIPS targets. commit 13ce3603be6e1732d1580237ba4ed9b0f0f18a1a Author: Nick Clifton Date: Wed Jan 13 09:40:11 2016 +0000 Mark the linker's extract symbols test as an expected failure for MIPS targets. * testsuite/ld-scripts/script.exp (extract_symbol_test): Expect to fail for MIPS targets. commit 1bce3adf994fae49c51c8ddadd4a2371ab6fcc06 Author: Nick Clifton Date: Wed Jan 13 09:26:22 2016 +0000 Mark the rgn-at11 test as an expected failure for MIPS targets. * ld-scripts/rgn-at11.d: Expect this test to fail for MIPS targets. commit 27b9952f2d68f2541191fed4589d5379d10c1271 Author: GDB Administrator Date: Wed Jan 13 00:00:13 2016 +0000 Automatic date update in version.in commit 82075af2c14b1f8a54fa5796fb63f7ef23f98d9d Author: Josh Stone Date: Tue Jan 12 12:27:27 2016 -0800 Implement 'catch syscall' for gdbserver This adds a new QCatchSyscalls packet to enable 'catch syscall', and new stop reasons "syscall_entry" and "syscall_return" for those events. It is currently only supported on Linux x86 and x86_64. gdb/ChangeLog: 2016-01-12 Josh Stone Philippe Waroquiers * NEWS (Changes since GDB 7.10): Mention QCatchSyscalls and the syscall_entry and syscall_return stop reasons. Mention GDB support for remote catch syscall. * remote.c (PACKET_QCatchSyscalls): New enum. (remote_set_syscall_catchpoint): New function. (remote_protocol_features): New element for QCatchSyscalls. (remote_parse_stop_reply): Parse syscall_entry/return stops. (init_remote_ops): Install remote_set_syscall_catchpoint. (_initialize_remote): Config QCatchSyscalls. * linux-nat.h (struct lwp_info) : Comment typo. gdb/doc/ChangeLog: 2016-01-12 Josh Stone Philippe Waroquiers * gdb.texinfo (Remote Configuration): List the QCatchSyscalls packet. (Stop Reply Packets): List the syscall entry and return stop reasons. (General Query Packets): Describe QCatchSyscalls, and add it to the table and the detailed list of stub features. gdb/gdbserver/ChangeLog: 2016-01-12 Josh Stone Philippe Waroquiers * inferiors.h: Include "gdb_vecs.h". (struct process_info): Add syscalls_to_catch. * inferiors.c (remove_process): Free syscalls_to_catch. * remote-utils.c (prepare_resume_reply): Report syscall_entry and syscall_return stops. * server.h (UNKNOWN_SYSCALL, ANY_SYSCALL): Define. * server.c (handle_general_set): Handle QCatchSyscalls. (handle_query): Report support for QCatchSyscalls. * target.h (struct target_ops): Add supports_catch_syscall. (target_supports_catch_syscall): New macro. * linux-low.h (struct linux_target_ops): Add get_syscall_trapinfo. (struct lwp_info): Add syscall_state. * linux-low.c (handle_extended_wait): Mark syscall_state as an entry. Maintain syscall_state and syscalls_to_catch across exec. (get_syscall_trapinfo): New function, proxy to the_low_target. (linux_low_ptrace_options): Enable PTRACE_O_TRACESYSGOOD. (linux_low_filter_event): Toggle syscall_state entry/return for syscall traps, and set it ignored for all others. (gdb_catching_syscalls_p): New function. (gdb_catch_this_syscall_p): New function. (linux_wait_1): Handle SYSCALL_SIGTRAP. (linux_resume_one_lwp_throw): Add PTRACE_SYSCALL possibility. (linux_supports_catch_syscall): New function. (linux_target_ops): Install it. * linux-x86-low.c (x86_get_syscall_trapinfo): New function. (the_low_target): Install it. gdb/testsuite/ChangeLog: 2016-01-12 Josh Stone Philippe Waroquiers * gdb.base/catch-syscall.c (do_execve): New variable. (main): Conditionally trigger an execve. * gdb.base/catch-syscall.exp: Enable testing for remote targets. (test_catch_syscall_execve): New, check entry/return across execve. (do_syscall_tests): Call test_catch_syscall_execve. commit 41549dfbcc747d0dc4a97c9a427c3a29e9878f05 Author: H.J. Lu Date: Tue Jan 12 12:21:53 2016 -0800 Fix compile error with use of 'typename' outside of template * i386.cc (Target_i386::Classify_reloc::get_r_addend): Remove 'typename'. commit f9498162b9aae9233a6d37c102bf744b77961226 Author: H.J. Lu Date: Tue Jan 12 12:08:06 2016 -0800 Remove typename from Mips64_rela_data commit 8a8880cb673893c479b473f598905c0490897817 Author: Cary Coutant Date: Tue Jan 12 11:39:50 2016 -0800 Fix breakage for SHT_REL targets where get_r_addend() gives internal error. gold/ * arm.cc (Target_arm::Classify_reloc::get_r_addend): New method. * i386.cc (Target_i386::Classify_reloc::get_r_addend): New method. * mips.cc (Target_arm::Mips_classify_reloc::get_r_addend): (Both specializations) New method. commit d1193addae7e5a24dc867f9946681ef0781a766f Author: H.J. Lu Date: Tue Jan 12 11:27:55 2016 -0800 Fix compile error with use of 'typename' outside of template. elfcpp/ * elfcpp_internal.h (Mips64_rel_data, Mips64_rela_data): Remove 'typename'. commit 1985dc2d048a4134f20dc9cda61255eb33289476 Author: H.J. Lu Date: Tue Jan 12 08:44:06 2016 -0800 Sync top-level btool.m4 with GCC Sync with GCC 2015-11-26 David Edelsohn * m4/libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols. commit 105bde5771c1c1b26b69e3623c88f3caafa3a480 Author: Matthew Wahab Date: Tue Jan 12 16:35:30 2016 +0000 [ARM] Support ARMv8.2 RAS extension. The ARMv8.2 architecture includes the RAS extension which adds an instruction, ESB, and a number of coprocessor registers. This patch adds the instruction to binutils, making it available when -march=armv8.2-a is selected. It also adds tests for the instruction and for the coprocessor registers. gas/ 2016-01-12 Matthew Wahab * config/tc-arm.c (arm_ext_v8_2): New. (insns): Add "esb". * testsuite/gas/arm/armv8_2-a.d: New. * testsuite/gas/arm/armv8_2-a.s: New. opcodes/ 2016-01-12 Matthew Wahab * arm-dis.c (arm_opcodes): Add "esb". (thumb_opcodes): Likewise. Change-Id: I67f3d70789db78d1c66a56c4994675f99ac15e34 commit ac06903dcff237777c8d507a03aafd79c84129ae Author: Yury Usishchev Date: Tue Jan 12 16:33:20 2016 +0000 Add cantunwind when unwind info does not match start of section. bfd * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind when address in first unwind entry does not match start of section. tests * ld-arm/arm-elf.exp: New test. * ld-arm/unwind-mix.d: New file. * ld-arm/unwind-mix1.s: New file. * ld-arm/unwind-mix2.s: New file. commit ce5e165eae8925f64da52172f3e67ad8010a1aa0 Author: H.J. Lu Date: Tue Jan 12 08:34:07 2016 -0800 Sync top-level Makefile.def with GCC 2016-01-12 Bernd Edlinger PR bootstrap/69134 * Makefile.def (mpfr): Disable assembler. * Makefile.in: Regenerate. commit d18547d8b08615a58db18ad3e43f721dc92ae298 Author: Yao Qi Date: Tue Jan 12 16:29:30 2016 +0000 Fix invalid conversion from void * to gdb_byte * This patch fixes the following GDB build error in C++ mode. gdb/nat/linux-ptrace.c: In function 'int linux_child_function(void*)': gdb/nat/linux-ptrace.c:323:65: error: invalid conversion from 'void*' to 'gdb_byte* {aka unsigned char*}' [-fpermissive] linux_fork_to_function (child_stack, linux_grandchild_function); ^ gdb: 2016-01-12 Yao Qi * nat/linux-ptrace.c (linux_child_function): Cast child_stack to gdb_byte * and pass to linux_fork_to_function. commit 8f13a3ce8afc1144169a14c7704689e263316e70 Author: Mike Frysinger Date: Mon Jan 11 14:12:51 2016 -0500 gdbserver: use the new gdb warning helpers We need to use -Wno-missing-prototypes for now as much of the code sticks externs in local files and not in common headers. 2016-01-11 Mike Frysinger * acinclude.m4: Include new ../warning.m4 file. * configure: Regenerated. * configure.ac: Replace all warning logic with AM_GDB_WARNINGS. commit 5b3da067f0893be637f9e992b409e36682ea081a Author: Mike Frysinger Date: Mon Jan 11 14:05:11 2016 -0500 gdbserver: fix various warnings Delete unused funcs, update old prototypes, and mark local funcs as static. This doesn't cover all missing prototype warnings. commit ba4dd7c4a1d99c62a1c2edd68f511a82f8fe041e Author: Yao Qi Date: Tue Jan 12 15:18:09 2016 +0000 Change function signature passed to clone I see the following compile error with an old bfin-uclinux gcc to build GDBserver, cc1: warnings being treated as errors gdb/gdbserver/../nat/linux-ptrace.c: In function 'linux_fork_to_function': gdb/gdbserver/../nat/linux-ptrace.c:283: error: passing argument 1 of 'clone' from incompatible pointer type in glibc, clone's prototype is like this, and in uClibc, it is the same, int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ... /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */ ); so this patch changes function signature from 'void (*function) (gdb_byte *)' to 'int (*function) (void *)'. Note that I find Pedro advised to change argument type from 'void *' to 'gdb_byte *' during the patch review https://sourceware.org/ml/gdb-patches/2013-08/msg00611.html however, I think fix compile error can justify the change back to 'void *'. gdb: 2016-01-12 Yao Qi * nat/linux-ptrace.c (linux_fork_to_function): Change type of argument 'function'. (linux_grandchild_function): Change return type to 'int'. Change child_stack's type to 'void *'. (linux_child_function): Likewise. commit bc504a311794145e7aef2011f31ea87aa64bea4c Author: Pedro Alves Date: Tue Jan 12 15:03:11 2016 +0000 Remove trademark acknowledgements throughout The GNU Coding Standards say: "Please do not include any trademark acknowledgements in GNU software packages or documentation." gdb/ChangeLog: 2016-01-12 Pedro Alves Remove use of the registered trademark symbol throughout. gdb/gdbserver/ChangeLog: 2016-01-12 Pedro Alves Remove use of the registered trademark symbol throughout. gdb/doc/ChangeLog: 2016-01-12 Pedro Alves Remove use of the registered trademark symbol throughout. commit cde67b27d6304ffcc43fc13fb6da56f583af018d Author: Yao Qi Date: Tue Jan 12 14:59:45 2016 +0000 [DOC] Interrupt when program is stopped This patch changes the document that interrupt (ctrl-c) is not ignored when the program is stopped. When the interrupt was supported in remote target, people thought interrupt is meaningless when the program is stopped. See https://www.sourceware.org/ml/gdb/2005-11/msg00349.html https://www.sourceware.org/ml/gdb-patches/2005-11/msg00307.html recently we find it is hard to preserve this feature "ignore interrupt while program is stopped" when we fix some other bugs. See https://sourceware.org/ml/gdb-patches/2016-01/msg00039.html so we think we can go to the simpler approach "not ignoring ctrl-c when program is stopped". As a result, we tweak the documentation here. gdb/doc: 2016-01-12 Yao Qi * gdb.texinfo (Interrupts): Update the document on handling interrupt when program is stopped. commit e46eeeddfb308cacd863f11a433c10ff1d403827 Author: Pedro Alves Date: Tue Jan 12 12:30:33 2016 +0000 Test gdb.base/random-signal.exp with "attach" This exposes the issued fixed by 2f99e8fc9cb8: https://sourceware.org/ml/gdb-patches/2015-12/msg00423.html to native debugging as well. gdb/testsuite/ChangeLog: 2016-01-12 Pedro Alves * gdb.base/random-signal.exp (do_test): New procedure, with body of testcase moved in. (top level) Call it twice, once with "run" and once with "attach". commit 5eddd57823971bdb54f957d10c11ff3fc9f97b1e Author: Thomas Schwinge Date: Tue Jan 12 12:53:09 2016 +0100 Hurd: Make gdb/reply_mig_hack.awk script compatible to "mawk" The "mawk" AWK implementation did't like that regular expression: mawk: [...]/gdb/reply_mig_hack.awk: line 98: regular expression compile failed (missing operand) gdb/ * reply_mig_hack.awk: Rewrite one regular expression. commit 5230aa4dc919e4aa5519146531f55d2d094a0cae Author: Alan Modra Date: Tue Jan 12 18:20:26 2016 +1030 PowerPC gas test vsx3 Tweak for padding, now present for COFF. * testsuite/gas/ppc/vsx3.d: Accept nop padding. commit d21f123b0ead1806416cf0dafae12bec4cca8920 Author: Cary Coutant Date: Mon Jan 11 23:57:44 2016 -0800 Fix internal error when applying TLSDESC relocations with no TLS segment. gold/ PR gold/19353 * aarch64.cc (Target_aarch64::relocate_tls): Don't insist that we have a TLS segment for GD-to-IE optimization. * i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter. Adjust all calls. (Target_i386::tls_desc_gd_to_ie): Likewise. (Target_i386::relocate_tls): Don't insist that we have a TLS segment for TLSDESC GD-to-IE optimizations. * x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter. Adjust all calls. (Target_x86_64::tls_desc_gd_to_ie): Likewise. (Target_x86_64::relocate_tls): Don't insist that we have a TLS segment for TLSDESC GD-to-IE optimizations. commit b36d953bced0a4fecdde1823abac70ed7038ee95 Author: Mike Frysinger Date: Tue Jan 12 01:39:47 2016 -0500 sim: mips: workaround 32-bit addr sign extensions The mips bfd will sign extend 32-bit addresses into 64-bit values, so if the entry happens to be 0x80000000 or higher, it is turned to 0xffffffff80000000 which points to memory that doesn't exist. This wasn't an issue until commit 26f8bf63bf36f9062a5cc1afacf71462a as all addresses were automatically truncated there in the translate function to 32-bits. When we cleaned up that code, the full 64-bits were checked leading to many test failures for mips-sde-elf targets and such. commit 4d625b70fc3fb7facc7159feb8d49b78ac6641f9 Author: Cary Coutant Date: Fri Dec 11 07:43:59 2015 -0800 Refactor gold to enable support for MIPS-64 relocation format. For MIPS-64, the r_info field in the relocation format is replaced by several individual fields, including r_sym and r_type. To enable support for this format, I've refactored target-independent code to remove almost all uses of the r_info field. (I've left alone a couple of routines used only for incremental linking, which I can update if/when the MIPS target adds support for incremental linking.) For routines that are already templated on a Classify_reloc class (namely, gc_process_relocs, relocate_section, and relocate_relocs), I've extended the Classify_reloc interface to include sh_type (which no longer needs to be a separate template parameter) as well as get_r_sym() and get_r_type() methods for extracting the r_sym and r_type fields. For scan_relocatable_relocs, I've extended the Default_scan_relocatable_relocs class by converting it to a class template with Classify_reloc as a template parameter. For the remaining routines that need to access r_sym, I've added a virtual Target::get_r_sym() method with an override for the MIPS target. In elfcpp, I've added Mips64_rel, etc., accessor classes and corresponding internal data structures. The MIPS target uses these new classes within its own Mips_classify_reloc class. The Mips64_ accessor classes also expose the r_ssym, r_type2, and r_type3 fields from the relocation. These changes should be functionally the same for all but the MIPS target. elfcpp/ * elfcpp.h (Mips64_rel, Mips64_rel_write): New classes. (Mips64_rela, Mips64_rela_write): New classes. * elfcpp_internal.h (Mips64_rel_data, Mips64_rela_data): New structs. gold/ * gc.h (get_embedded_addend_size): Remove sh_type parameter. (gc_process_relocs): Remove sh_type template parameter. Use Classify_reloc to access r_sym, r_type, and r_addend fields. * object.h (Sized_relobj_file::split_stack_adjust): Add target parameter. (Sized_relobj_file::split_stack_adjust_reltype): Likewise. * reloc-types.h (Reloc_types::copy_reloc_addend): (SHT_REL and SHT_RELA specializations) Remove. * reloc.cc (Emit_relocs_strategy): Rename and move to target-reloc.h. (Sized_relobj_file::emit_relocs_scan): Call Target::emit_relocs_scan(). (Sized_relobj_file::emit_relocs_scan_reltype): Remove. (Sized_relobj_file::split_stack_adjust): Add target parameter. Adjust all callers. (Sized_relobj_file::split_stack_adjust_reltype): Likewise. Call Target::get_r_sym() to get r_sym field from relocations. (Track_relocs::next_symndx): Call Target::get_r_sym(). * target-reloc.h (scan_relocs): Remove sh_type template parameter; add Classify_reloc template parameter. Use for accessing r_sym and r_type. (relocate_section): Likewise. (Default_classify_reloc): New class (renamed and moved from reloc.cc). (Default_scan_relocatable_relocs): Remove sh_type template parameter. (Default_scan_relocatable_relocs::Reltype): New typedef. (Default_scan_relocatable_relocs::reloc_size): New const. (Default_scan_relocatable_relocs::sh_type): New const. (Default_scan_relocatable_relocs::get_r_sym): New method. (Default_scan_relocatable_relocs::get_r_type): New method. (Default_emit_relocs_strategy): New class. (scan_relocatable_relocs): Replace sh_type template parameter with Scan_relocatable_relocs class. Use it to access r_sym and r_type fields. (relocate_relocs): Replace sh_type template parameter with Classify_reloc class. Use it to access r_sym and r_type fields. * target.h (Target::is_call_to_non_split): Replace r_type parameter with pointer to relocation. Adjust all callers. (Target::do_is_call_to_non_split): Likewise. (Target::emit_relocs_scan): New virtual method. (Sized_target::get_r_sym): New virtual method. * target.cc (Target::do_is_call_to_non_split): Replace r_type parameter with pointer to relocation. * aarch64.cc (Target_aarch64::emit_relocs_scan): New method. (Target_aarch64::Relocatable_size_for_reloc): Remove. (Target_aarch64::gc_process_relocs): Use Default_classify_reloc. (Target_aarch64::scan_relocs): Likewise. (Target_aarch64::relocate_section): Likewise. (Target_aarch64::Relocatable_size_for_reloc::get_size_for_reloc): Remove. (Target_aarch64::scan_relocatable_relocs): Use Default_classify_reloc. (Target_aarch64::relocate_relocs): Use Default_classify_reloc. * arm.cc (Target_arm::Arm_scan_relocatable_relocs): Remove sh_type template parameter. (Target_arm::emit_relocs_scan): New method. (Target_arm::Relocatable_size_for_reloc): Replace with... (Target_arm::Classify_reloc): ...this. (Target_arm::gc_process_relocs): Use Classify_reloc. (Target_arm::scan_relocs): Likewise. (Target_arm::relocate_section): Likewise. (Target_arm::scan_relocatable_relocs): Likewise. (Target_arm::relocate_relocs): Likewise. * i386.cc (Target_i386::emit_relocs_scan): New method. (Target_i386::Relocatable_size_for_reloc): Replace with... (Target_i386::Classify_reloc): ...this. (Target_i386::gc_process_relocs): Use Classify_reloc. (Target_i386::scan_relocs): Likewise. (Target_i386::relocate_section): Likewise. (Target_i386::scan_relocatable_relocs): Likewise. (Target_i386::relocate_relocs): Likewise. * mips.cc (Mips_scan_relocatable_relocs): Remove sh_type template parameter. (Mips_reloc_types): New class template. (Mips_classify_reloc): New class template. (Target_mips::Reltype): New typedef. (Target_mips::Relatype): New typedef. (Target_mips::emit_relocs_scan): New method. (Target_mips::get_r_sym): New method. (Target_mips::Relocatable_size_for_reloc): Replace with Mips_classify_reloc. (Target_mips::copy_reloc): Use Mips_classify_reloc. (Target_mips::gc_process_relocs): Likewise. (Target_mips::scan_relocs): Likewise. (Target_mips::relocate_section): Likewise. (Target_mips::scan_relocatable_relocs): Likewise. (Target_mips::relocate_relocs): Likewise. (mips_get_size_for_reloc): New function, factored out from Relocatable_size_for_reloc::get_size_for_reloc. (Target_mips::Scan::local): Use Mips_classify_reloc. (Target_mips::Scan::global): Likewise. (Target_mips::Relocate::relocate): Likewise. * powerpc.cc (Target_powerpc::emit_relocs_scan): New method. (Target_powerpc::Relocatable_size_for_reloc): Remove. (Target_powerpc::gc_process_relocs): Use Default_classify_reloc. (Target_powerpc::scan_relocs): Likewise. (Target_powerpc::relocate_section): Likewise. (Powerpc_scan_relocatable_reloc): Convert to class template. (Powerpc_scan_relocatable_reloc::Reltype): New typedef. (Powerpc_scan_relocatable_reloc::reloc_size): New const. (Powerpc_scan_relocatable_reloc::sh_type): New const. (Powerpc_scan_relocatable_reloc::get_r_sym): New method. (Powerpc_scan_relocatable_reloc::get_r_type): New method. (Target_powerpc::scan_relocatable_relocs): Use Powerpc_scan_relocatable_reloc. (Target_powerpc::relocate_relocs): Use Default_classify_reloc. * s390.cc (Target_s390::emit_relocs_scan): New method. (Target_s390::Relocatable_size_for_reloc): Remove. (Target_s390::gc_process_relocs): Use Default_classify_reloc. (Target_s390::scan_relocs): Likewise. (Target_s390::relocate_section): Likewise. (Target_s390::Relocatable_size_for_reloc::get_size_for_reloc): Remove. (Target_s390::scan_relocatable_relocs): Use Default_classify_reloc. (Target_s390::relocate_relocs): Use Default_classify_reloc. * sparc.cc (Target_sparc::emit_relocs_scan): New method. (Target_sparc::Relocatable_size_for_reloc): Remove. (Target_sparc::gc_process_relocs): Use Default_classify_reloc. (Target_sparc::scan_relocs): Likewise. (Target_sparc::relocate_section): Likewise. (Target_sparc::Relocatable_size_for_reloc::get_size_for_reloc): Remove. (Target_sparc::scan_relocatable_relocs): Use Default_classify_reloc. (Target_sparc::relocate_relocs): Use Default_classify_reloc. * tilegx.cc (Target_tilegx::emit_relocs_scan): New method. (Target_tilegx::Relocatable_size_for_reloc): Remove. (Target_tilegx::gc_process_relocs): Use Default_classify_reloc. (Target_tilegx::scan_relocs): Likewise. (Target_tilegx::relocate_section): Likewise. (Target_tilegx::Relocatable_size_for_reloc::get_size_for_reloc): Remove. (Target_tilegx::scan_relocatable_relocs): Use Default_classify_reloc. (Target_tilegx::relocate_relocs): Use Default_classify_reloc. * x86_64.cc (Target_x86_64::emit_relocs_scan): New method. (Target_x86_64::Relocatable_size_for_reloc): Remove. (Target_x86_64::gc_process_relocs): Use Default_classify_reloc. (Target_x86_64::scan_relocs): Likewise. (Target_x86_64::relocate_section): Likewise. (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc): Remove. (Target_x86_64::scan_relocatable_relocs): Use Default_classify_reloc. (Target_x86_64::relocate_relocs): Use Default_classify_reloc. * testsuite/testfile.cc (Target_test::emit_relocs_scan): New method. commit b05b120205e697db6291abb95a8cd2be054f99e9 Author: Pedro Alves Date: Tue Jan 12 01:12:38 2016 +0000 Reapply: List inferiors/threads/pspaces in ascending order [This reapplies a change that was accidentally reverted with c0ecb95f3d.] Before: (gdb) info threads Id Target Id Frame 3 Thread 0x7ffff77c3700 (LWP 29035) callme () at foo.c:30 2 Thread 0x7ffff7fc4700 (LWP 29034) 0x000000000040087b in child_function_2 (arg=0x0) at foo.c:60 * 1 Thread 0x7ffff7fc5740 (LWP 29030) 0x0000003b37209237 in pthread_join (threadid=140737353893632, thread_return=0x0) at pthread_join.c:92 After: (gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fc5740 (LWP 29030) 0x0000003b37209237 in pthread_join (threadid=140737353893632, thread_return=0x0) at pthread_join.c:92 2 Thread 0x7ffff7fc4700 (LWP 29034) 0x000000000040087b in child_function_2 (arg=0x0) at foo.c:60 3 Thread 0x7ffff77c3700 (LWP 29035) callme () at foo.c:30 gdb/doc/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.texinfo (Inferiors and Programs): Adjust "maint info program-spaces" example to ascending order listing. (Threads): Adjust "info threads" example to ascending order listing. (Forks): Adjust "info inferiors" example to ascending order listing. gdb/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * inferior.c (add_inferior_silent): Append the new inferior to the end of the list. * progspace.c (add_program_space): Append the new pspace to the end of the list. * thread.c (new_thread): Append the new thread to the end of the list. gdb/testsuite/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.base/foll-exec-mode.exp: Adjust to GDB listing inferiors and threads in ascending order. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise. * gdb.base/multi-forks.exp: Likewise. * gdb.mi/mi-nonstop.exp: Likewise. * gdb.mi/mi-nsintrall.exp: Likewise. * gdb.multi/base.exp: Likewise. * gdb.multi/multi-arch.exp: Likewise. * gdb.python/py-inferior.exp: Likewise. * gdb.threads/break-while-running.exp: Likewise. * gdb.threads/execl.exp: Likewise. * gdb.threads/gcore-thread.exp: Likewise. * gdb.threads/info-threads-cur-sal.exp: Likewise. * gdb.threads/kill.exp: Likewise. * gdb.threads/linux-dp.exp: Likewise. * gdb.threads/multiple-step-overs.exp: Likewise. * gdb.threads/next-bp-other-thread.exp: Likewise. * gdb.threads/step-bg-decr-pc-switch-thread.exp: Likewise. * gdb.threads/step-over-lands-on-breakpoint.exp: Likewise. * gdb.threads/step-over-trips-on-watchpoint.exp: Likewise. * gdb.threads/thread-find.exp: Likewise. * gdb.threads/tls.exp: Likewise. * lib/mi-support.exp (mi_reverse_list): Delete. (mi_check_thread_states): No longer reverse list. commit fd18a3722ce73d6c031dc1b968d1e1d508df17b5 Author: GDB Administrator Date: Tue Jan 12 00:00:20 2016 +0000 Automatic date update in version.in commit 01d8c27e4f77375c0e157d115266129b76ff6734 Author: Jan Kratochvil Date: Mon Jan 11 22:27:15 2016 +0100 testsuite: i386 regression for funcargs.exp 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5 is the first bad commit commit 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5 Author: Simon Marchi Date: Mon Dec 21 12:51:54 2015 -0500 Remove HP-UX references fom testsuite @@ -1013,13 +1013,6 @@ proc localvars_in_indirect_call { } { # gdb_test_multiple "finish" "finish from indirectly called function" { - -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$gdb_prompt $" { - #On hppa2.0w-hp-hpux11.00, gdb finishes at one line earlier than - #hppa1.1-hp-hpux11.00. Therefore, an extra "step" is necessary - #to continue the test. - send_gdb "step\n" - exp_continue - } -re ".*\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$gdb_prompt $" { pass "finish from indirectly called function" } -> finish^M Run till exit from #0 call0a (c=97 'a', s=1, i=2, l=3) at ./gdb.base/funcargs.c:82^M 0x0804a189 in main () at ./gdb.base/funcargs.c:583^M 583 (*pointer_to_call0a) (c, s, i, l); /* First step into call0a. */^M -(gdb) step^M -584 (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */^M -(gdb) PASS: gdb.base/funcargs.exp: finish from indirectly called function +(gdb) FAIL: gdb.base/funcargs.exp: finish from indirectly called function step^M -call0a (c=97 'a', s=1, i=2, l=3) at ./gdb.base/funcargs.c:82^M -82 c = 'a';^M -(gdb) PASS: gdb.base/funcargs.exp: stepping into indirectly called function +584 (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */^M +(gdb) FAIL: gdb.base/funcargs.exp: stepping into indirectly called function At least on x86_64 with testsuite in -m32 (expecting native i386 would be the same). Pedro Alves: The difference is that with newer GCC there's an extra instruction after the call which is still assigned to line 583: $ diff -up /tmp/4.8.3 /tmp/6.0.0 -U 1000 --- /tmp/4.8.3 2016-01-11 12:37:39.611089156 +0000 +++ /tmp/6.0.0 2016-01-11 13:21:00.021127976 +0000 @@ -1,27 +1,30 @@ 583 (*pointer_to_call0a) (c, s, i, l); /* First step into call0a. */ mov 0x804d060,%ebx mov 0x804d050,%ecx movzwl 0x804d040,%eax movswl %ax,%edx movzbl 0x804d030,%eax movsbl %al,%eax - mov %ebx,0xc(%esp) - mov %ecx,0x8(%esp) - mov %edx,0x4(%esp) - mov %eax,(%esp) - mov 0x7c(%esp),%eax + push %ebx + push %ecx + push %edx + push %eax + mov -0x1c(%ebp),%eax call *%eax + add $0x10,%esp 584 (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */ mov 0x804d060,%ebx mov 0x804d050,%ecx movzwl 0x804d040,%eax movswl %ax,%edx movzbl 0x804d030,%eax movsbl %al,%eax - mov %ebx,0xc(%esp) - mov %ecx,0x8(%esp) - mov %edx,0x4(%esp) - mov %eax,(%esp) - mov 0x7c(%esp),%eax + push %ebx + push %ecx + push %edx + push %eax + mov -0x1c(%ebp),%eax call *%eax + add $0x10,%esp + I don't know why -m32 changed to push/add instead of mov while 64-bit hasn't. This is most likely needed on non-x86 ports as well. gdb/testsuite/ChangeLog 2016-01-11 Jan Kratochvil Pedro Alves * gdb.base/funcargs.exp (finish from indirectly called function): Reintroduce the case for 'First'. commit 9a70630256e21a7b86344d555dbe39407e998f91 Author: Jan Kratochvil Date: Mon Jan 11 22:20:16 2016 +0100 testsuite: Regression for foll-vfork.exp fe33faff35a8ee19db823149e764e3373e603bb9 is the first bad commit commit fe33faff35a8ee19db823149e764e3373e603bb9 Author: Simon Marchi Date: Tue Dec 22 10:52:31 2015 -0500 Remove HP-UX reference in foll-vfork.exp FAIL: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exit: vfork parent follow, finish after tcatch vfork: continue to vfork FAIL: gdb.base/foll-vfork.exp: exit: vfork child follow, finish after tcatch vfork: continue to vfork It happens for plain gdb.base/foll-vfork.exp runtest on Fedora 23 x86_64. -Temporary catchpoint 2 (vforked process 24562), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M +Temporary catchpoint 2 (vforked process 25345), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M 52 pushq %rdi^M Current language: auto^M The current source language is "auto; currently asm".^M -(gdb) PASS: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork +(gdb) FAIL: gdb.base/foll-vfork.exp: exec: vfork parent follow, finish after tcatch vfork: continue to vfork -Temporary catchpoint 2 (vforked process 24629), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M +Temporary catchpoint 2 (vforked process 25411), vfork () at ../sysdeps/unix/sysv/linux/x86_64/vfork.S:52^M 52 pushq %rdi^M Current language: auto^M The current source language is "auto; currently asm".^M -(gdb) PASS: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork +(gdb) FAIL: gdb.base/foll-vfork.exp: exec: vfork child follow, finish after tcatch vfork: continue to vfork So I have reverted it and just simplified the comment. The third case is not necessary during testing but I have changed back all the 3 cases. Pedro Alves: I know it was that way before, but would you mind moving this to a helper proc. gdb/testsuite/ChangeLog 2016-01-11 Jan Kratochvil Pedro Alves * gdb.base/foll-vfork.exp (tcatch_vfork_then_parent_follow) (tcatch_vfork_then_child_follow_exec) (tcatch_vfork_then_child_follow_exit): Revert back DWARF vfork identification. commit c0ecb95f3dc0c3e8d1545f0a37c0c3e537e1ea96 Author: Jan Kratochvil Date: Mon Jan 11 22:12:16 2016 +0100 testsuite: Fix false FAILs on too long base directory I was getting gu (print arg0)^M = 0x7fffffffdafb "/unsafebuild-x86_64-redhat-linux-gnu/gdb/testsuite.unix.-m64/outputs/gdb.guile/scm-value/scm-"...^M (gdb) FAIL: gdb.guile/scm-value.exp: verify dereferenced value python print (arg0)^M 0x7fffffffdafd "/unsafebuild-x86_64-redhat-linux-gnu/gdb/testsuite.unix.-m64/outputs/gdb.python/py-value/py-v"...^M (gdb) FAIL: gdb.python/py-value.exp: verify dereferenced value and also: (gdb) p argv[0]^M $2 = 0x7fffffffd832 "/home/jkratoch/redhat/gdb-test-", 'x' ...^M (gdb) FAIL: gdb.guile/scm-value.exp: argv[0] should be available on this target gdb/testsuite/ChangeLog 2016-01-11 Jan Kratochvil * gdb.guile/scm-value.exp (test_value_in_inferior): Set print elements and repeats to unlimited. * gdb.python/py-value.exp: Likewise. * lib/gdb.exp (gdb_has_argv0): Save and temporarily set print elements and repeats to unlimited. commit b835bb5265d614fd8a4759f284b987b365292c36 Author: Mike Frysinger Date: Thu Jan 7 06:06:04 2016 -0500 gdb: split out warnings helpers This will allow the sim tree to use the same set of warnings. The new code in warning.m4 is exactly the same (other than the AC_DEFUN wrapping). commit afa8d4054b8e0b1384f2d07f1c15163c0699d660 Author: Peter Bergner Date: Mon Jan 11 11:54:58 2016 -0600 Delete opcodes that have been removed from ISA 3.0. opcodes/ * ppc-opc.c : Delete. : Likewise. : Likewise. : Likewise. : Likewise. gas/ * testsuite/gas/ppc/power9.d : Delete tests. * testsuite/gas/ppc/power9.s: Likewise. * testsuite/gas/ppc/vsx3.d: Likewise. * testsuite/gas/ppc/vsx3.s: Likewise. commit 4849dfd8f454b9c595e6ee7477f6b7b25c31a499 Author: Nick Clifton Date: Mon Jan 11 11:06:56 2016 +0000 Import changes made to files shared with the FSF GCC project. Import the following changes from the GCC mainline: 2015-11-13 Tsvetkova Alexandra * configure.ac: Enable libmpx by default. * configure: Regenerated. 2015-11-19 Martin Liska * .gitignore: Add .clang-format to ignored files. * Makefile.tpl: Add clang-format. * Makefile.in: Regenerate. 2015-12-01 Andreas Tobler PR libffi/65726 * Makefile.def (lang_env_dependencies): Make libffi depend on cxx. * Makefile.in: Regenerate. 2015-12-02 Ian Lance Taylor PR go/66147 * Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET. * Makefile.in: Regenerate. 2015-12-17 Nathan Sidwell * config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs. * configure: Regenerate. 2015-12-17 Sebastian Pop * Makefile.in: Replace ISL with isl. * Makefile.tpl: Same. * config/isl.m4: Same. * configure.ac: Same. * contrib/download_prerequisites: Same. * configure: Regenerate. 2016-01-01 Ben Elliston * config.guess: Import version 2016-01-01. * config.sub: Likewise. include 2016-01-07 Mike Frysinger * longlong.h: Change !__SHMEDIA__ to (!defined (__SHMEDIA__) || !__SHMEDIA__). Change __SHMEDIA__ to defined (__SHMEDIA__) && __SHMEDIA__. commit 34ac507d94ea4af59f931b26e66e7721c967f55c Author: Mike Frysinger Date: Sun Jan 3 19:11:06 2016 -0500 sim: config: do not try to align settings We try to align the output for a few settings, but not most of them. Drop the aligning entirely to be lazy. commit 3e35d6c9ffe40c6c9c4f0a9a58d6dff8a0558d31 Author: GDB Administrator Date: Mon Jan 11 00:00:08 2016 +0000 Automatic date update in version.in commit ce39bd389039d99458950b072550ab52f0a07a34 Author: Mike Frysinger Date: Sat Jan 9 04:09:35 2016 -0500 sim: move many common settings from CPPFLAGS to config.h Rather than stuffing the command line with a bunch of -D flags, start moving things to config.h which is managed by autoheader. This makes the makefile a bit simpler and the build output tighter, and it makes the migration to automake easier as there are fewer vars to juggle. We'll want to move the other options out too, but it'll take more work. commit e19418e02e25ae4c62eb95547220897fa6aaf2e0 Author: Mike Frysinger Date: Sun Jan 10 17:49:48 2016 -0500 sim: drop unused SIM_AC_OPTION_PACKAGES This was imported from the ppc sim, but that was only used to control a single file, and that is already governed by the hw models. There's no need to have a sep configure option here, especially since none of the other sims are using it. Even when the code is enabled, there's no runtime overhead. commit 16f7876d71604f835aefe48f0bf230c028c05d99 Author: Mike Frysinger Date: Sun Jan 10 16:52:25 2016 -0500 sim: allow the environment configure option everywhere Currently ports have to call SIM_AC_OPTION_ENVIRONMENT explicitly in order to make the configure flag available. There's no real reason to not allow this flag for all ports, so move it to the common sim macro. This way we get standard behavior across all ports too. commit 35656e95217a20309c0a0f16bf0c89a49a549177 Author: Mike Frysinger Date: Sun Jan 10 15:55:44 2016 -0500 sim: allow the assert configure option everywhere Currently ports have to call SIM_AC_OPTION_ASSERT explicitly in order to make the configure flag available, which none of them do. There's no real reason to not allow this flag for all ports, so move it to the common sim macro. This way we get standard behavior across all ports. commit 99d8e879938c947588332a9cc579d378ccc2a855 Author: Mike Frysinger Date: Sun Jan 10 03:50:08 2016 -0500 sim: drop targ-vals.def->nltvals.def indirection We don't have alternative nltvals.def files, so always symlinking the targ-vals.def file to it doesn't gain us anything. It does make the build more complicated though and a pain to convert to something newer (like automake). Drop the symlinking entirely. In the future, we'll want to explode this file anyways into the respective arch dirs so things can be selected dynamically at runtime, so it's not like we'll be bringing this back. commit 6d90347b5dcbb10ecb410b1246613c0caf511bd9 Author: Mike Frysinger Date: Sun Jan 10 02:49:15 2016 -0500 sim: mips: drop SIM_AC_OPTION_SMP call No other port calls this macro directly, and mips has it hardcoded to the default -- disabling smp. In the future we'll enable this for all targets in common code, so tidy up the mips code now. commit 347fe5bb868b7383d4f6942894b31ecf1da6894e Author: Mike Frysinger Date: Sat Jan 9 05:58:01 2016 -0500 sim: allow the inline configure option everywhere Currently ports have to call SIM_AC_OPTION_INLINE explicitly in order to make the configure flag available. There's no real reason to not allow this flag for all ports, so move it to the common sim macro. This way we get standard behavior across all ports too. commit 0dc73ef7c304e6ffc9ce43b2131c77553a74e1d4 Author: Mike Frysinger Date: Sat Jan 9 05:13:37 2016 -0500 sim: drop --enable-sim-{regparm,stdcall} options These options were never exposed for most sims (just the ppc one), and they are really only useful on 32-bit x86 systems. Considering modern systems tend to be 64-bit x86_64 and how well modern compilers are at optimizing code, these have outlived their usefulness. commit 22be3fbeaccf50e3c0f58d0f7e9f7ed77effeaab Author: Mike Frysinger Date: Sat Jan 9 04:00:53 2016 -0500 sim: drop --enable-sim-cflags option No other sub directory provides such a configuration option, so drop it from the sim dir as well. This cleans up a good bit of code in the process. If people want to use custom flags for just the sim, they can still run configure+make by hand in the sim subdir and use the normal CFLAGS settings. commit 7124407794aaa3762a25c26cd3a00a637f7241c9 Author: GDB Administrator Date: Sun Jan 10 00:00:08 2016 +0000 Automatic date update in version.in commit 5295724cdc94a09713b021728b02163dad128e9e Author: Mike Frysinger Date: Fri Jan 8 20:27:46 2016 -0500 sim: stop configuring common subdir Now that cconfig.h doesn't exist, there's no need to build in the common subdir anymore. We leave the configure/Makefile files in there as there is a helper for developers to generate the nltvals.def file. Once that gets cleaned up in the future though, we can drop the build logic too. commit 936df7568a0e47547285a0dd57b81643264fef38 Author: Mike Frysinger Date: Fri Jan 8 20:23:37 2016 -0500 sim: drop common/cconfig.h in favor of a single config.h The common subdir sets up a cconfig.h file to hold checks for the common code. In practice, most files still end up using config.h instead which just leads to confusion. Merge all the configure checks that went into cconfig.h into SIM_AC_COMMON so we can drop the cconfig.h file altogether. Now there is only a single config.h file like normal. commit 80f3f9eecf3aec5903a1a52a7963e9029ef9d15f Author: GDB Administrator Date: Sat Jan 9 00:00:08 2016 +0000 Automatic date update in version.in commit 6cfc1fcb515d1ecd8445905b4749b81b3ca69552 Author: Jan Kratochvil Date: Fri Jan 8 20:07:02 2016 +0100 Fix gdb.multi/base.exp testsuite regression Regressed by: commit 762f774785f4ef878ac4c831e1f4733dc957234d Author: Pedro Alves Date: Thu Dec 10 16:21:06 2015 +0000 Stop using nowarnings in gdb/testsuite/gdb.multi/ +gdb compile failed, gdb/testsuite/gdb.multi/hello.c: In function 'commonfun': +gdb/testsuite/gdb.multi/hello.c:24:19: warning: implicit declaration of function 'bar' [-Wimplicit-function-declaration] + int commonfun() { bar(); } /* from hello */ + ^ +gdb/testsuite/gdb.multi/hello.c: At top level: +gdb/testsuite/gdb.multi/hello.c:26:1: warning: return type defaults to 'int' [-Wimplicit-int] + bar() + ^ +gdb/testsuite/gdb.multi/hello.c:32:1: warning: return type defaults to 'int' [-Wimplicit-int] + hello(int x) + ^ +gdb/testsuite/gdb.multi/hello.c:38:1: warning: return type defaults to 'int' [-Wimplicit-int] + main() + ^ +UNTESTED: gdb.multi/base.exp: base.exp gdb/testsuite/ChangeLog 2016-01-08 Jan Kratochvil * gdb.multi/goodbye.c: Fix compilation warnings by adding return types and reordering the functions. * gdb.multi/hangout.c: Likewise. * gdb.multi/hello.c: Likewise. commit 582a1b0064b14cb12b18f48678876d32c59c11c8 Author: Simon Marchi Date: Fri Jan 8 10:22:17 2016 -0500 perf testsuite: python 3 fixes There are a few errors when trying to run the performance testsuite with Python 3. This commit fixes them. In Python 2, it was possible to use relative imports (importing a module relative to the current one). In Python 3 it isn't. So I use absolute_import from the __future__ module, which allows Python 2 to behave like Python 3, and use the Python 3 syntax. In Python 3, dict.iterkeys doesn't exist anymore. Using dict.keys is a good compromise in this case. gdb/testsuite/ChangeLog: * gdb.perf/lib/perftest/perftest.py: Change relative imports to absolute. (SingleStatisticTestResult.report): Use dict.keys instead of dict.iterkeys. commit 2f99e8fc9cb84ca80cfca6c119f1f22bbfd2a314 Author: Yao Qi Date: Fri Jan 8 11:06:00 2016 +0000 Change SIGINT handler for extension languages only when target terminal is ours I see a timeout in gdb.base/random-signal.exp, Continuing.^M PASS: gdb.base/random-signal.exp: continue ^CPython Exception : ^M FAIL: gdb.base/random-signal.exp: stop with control-c (timeout) it can be reproduced by running random-signal.exp with native-gdbserver in a loop, like this, and the fail will be shown in about 20 runs, $ (set -e; while true; do make check RUNTESTFLAGS="--target_board=native-gdbserver random-signal.exp"; done) In the test, the program is being single-stepped for software watchpoint, and in each internal stop, python unwinder sniffer is used, #0 pyuw_sniffer (self=, this_frame=, cache_ptr=0xd554f8) at /home/yao/SourceCode/gnu/gdb/git/gdb/python/py-unwind.c:608 #1 0x00000000006a10ae in frame_unwind_try_unwinder (this_frame=this_frame@entry=0xd554e0, this_cache=this_cache@entry=0xd554f8, unwinder=0xecd540) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame-unwind.c:107 #2 0x00000000006a143f in frame_unwind_find_by_frame (this_frame=this_frame@entry=0xd554e0, this_cache=this_cache@entry=0xd554f8) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame-unwind.c:163 #3 0x000000000069dc6b in compute_frame_id (fi=0xd554e0) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame.c:454 #4 get_prev_frame_if_no_cycle (this_frame=this_frame@entry=0xd55410) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame.c:1781 #5 0x000000000069fdb9 in get_prev_frame_always_1 (this_frame=0xd55410) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame.c:1955 #6 get_prev_frame_always (this_frame=this_frame@entry=0xd55410) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame.c:1971 #7 0x00000000006a04b1 in get_prev_frame (this_frame=this_frame@entry=0xd55410) at /home/yao/SourceCode/gnu/gdb/git/gdb/frame.c:2213 when GDB goes to python extension, or other language extension, the SIGINT handler is changed, and is restored when GDB leaves extension language. GDB only stays in extension language for a very short period in this case, but if ctrl-c is pressed at that moment, python extension will handle the SIGINT, and exceptions.KeyboardInterrupt is shown. Language extension is used in GDB side rather than inferior side, so GDB should only change SIGINT handler for extension language when the terminal is ours (not inferior's). This is what this patch does. With this patch applied, I run random-signal.exp in a loop for 18 hours, and no fail is shown. gdb: 2016-01-08 Yao Qi * extension.c: Include target.h. (set_active_ext_lang): Only call install_gdb_sigint_handler, check_quit_flag, and set_quit_flag if target_terminal_is_ours returns false. (restore_active_ext_lang): Likewise. * target.c (target_terminal_is_ours): New function. * target.h (target_terminal_is_ours): Declare. commit 5a0dd67a459338efb77f8d82bb3650d801ff0dd5 Author: Yao Qi Date: Fri Jan 8 11:06:00 2016 +0000 Check input interrupt first when reading packet Hi, I see timeout in one of several runs of random-signal.exp like this, $ (set -e; while true; do make check RUNTESTFLAGS="--target_board=native-gdbserver random-signal.exp"; done) In about every five runs, we can see a fail, PASS: gdb.base/random-signal.exp: continue ^CFAIL: gdb.base/random-signal.exp: stop with control-c (timeout) after some investigation, I find '\003' may be discarded by GDBserver when it is expecting '$'. In GDB side, both normal packets and '\003' are sent via function send, but GDBserver may receive them at any time, that is to say, in the receive buffer in GDBserver, '\003' may appear before or after normal packet. However, current GDBserver doesn't handle this case. With this patch applied, I don't see this fail in multiple runs. Although there is still timeout fail, that is a different problem, the next patch will fix it. gdb/gdbserver: 2016-01-08 Yao Qi * remote-utils.c (getpkt): If c is '\003', call target hook request_interrupt. commit 83c3256ef5afe10625fd55dda2df5fc56b9b7393 Author: Andreas Schwab Date: Fri Jan 8 11:38:00 2016 +0100 m68k: fix constraints of move.[bw] for ISA_B/C For ISA_B/C only the combination #,d(An) is allowed in addition to the ISA_A combinations for move.b and move.w (and pc-relative is never allowed as destination). opcodes/ PR gas/13050 * m68k-opc.c (moveb, movew): For ISA_B/C only allow #,d(An) in addition to ISA_A. gas/ PR gas/13050 * testsuite/gas/m68k/all.exp: Add tests p13050-1 and p13050-2. * testsuite/gas/m68k/p13050-1.s: New file. * testsuite/gas/m68k/p13050-2.d: New file. * testsuite/gas/m68k/p13050-2.s: New file. commit 109575d7ebac21a0eb67980001ecd4173d696f88 Author: Jiong Wang Date: Fri Jan 8 09:47:24 2016 +0000 [ARM] PR ld/19368: Add missing relocation type class for R_ARM_IRELATIVE 2016-01-08 Richard Sandiford Jiong Wang PR ld/19368 bfd/ * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to reloc_class_ifunc. ld/ * testsuite/ld-arm/ifunc-3.rd: Update expected result. * testsuite/ld-arm/ifunc-4.rd: Likewise. * testsuite/ld-arm/ifunc-9.rd: Likewise. * testsuite/ld-arm/ifunc-10.rd: Likewise. * testsuite/ld-arm/ifunc-12.rd: Likewise. * testsuite/ld-arm/ifunc-13.rd: Likewise. commit 2ed73a6ff5f75c689e9d23603c2078ade27ddf6c Author: GDB Administrator Date: Fri Jan 8 00:00:21 2016 +0000 Automatic date update in version.in commit 5dd0563088b3ca9f5fd66daa0ffe823b60e4b92e Author: Maciej W. Rozycki Date: Thu Jan 7 19:12:44 2016 +0000 MIPS: Complete `status' to `err' renaming in `mips_breakpoint_from_pc' Complement commit d09f2c3f [target_read_memory&co: no longer return target_xfer_status] and apply the same change made to the big-endian leg of the function to the little-endian leg as well. gdb/ * mips-tdep.c (mips_breakpoint_from_pc): Rename local `status' to `err' in the little-endian leg. commit b900245c3b92fc460a3f7fa17d14eb08f9ab4c76 Author: Mike Frysinger Date: Sun Jan 3 19:11:58 2016 -0500 sim: config: drop use of __DATE__/__TIME__ These don't add a whole lot of useful info, and people don't like them as it makes builds unreproducible, so just drop them. commit 2e3d4f4d5d386995e99d035354a9e411d1dc0331 Author: Mike Frysinger Date: Sun Jan 3 01:51:44 2016 -0500 sim: sim_{create_inferior,open,parse_args}: constify argv/env slightly 2016-01-03 Mike Frysinger * sim-options.c (sim_parse_args): Mark argv array const. * sim-options.h (sim_parse_args): Likewise. commit 23ad6f3ec4b1086a987ba05e6ea77c131d72875c Author: GDB Administrator Date: Thu Jan 7 00:00:10 2016 +0000 Automatic date update in version.in commit b31e4803316aa0635a6f9beaeceea3e18dbbe459 Author: Maciej W. Rozycki Date: Wed Jan 6 18:31:23 2016 +0000 MIPS/include: opcode/mips.h: Add a summary of MIPS16 operand codes include/ * opcode/mips.h: Add a summary of MIPS16 operand codes. commit f5aa306929127aacf9890a949f9a21b38a0e0e7e Author: Yao Qi Date: Wed Jan 6 15:03:41 2016 +0000 Make {arm,thumb}_get_next_pcs_raw static This patch makes arm_get_next_pcs_raw and thumb_get_next_pcs_raw static. gdb: 2016-01-06 Yao Qi * arch/arm-get-next-pcs.c (arm_get_next_pcs): Move it to some lines below. (thumb_get_next_pcs_raw): Make it static. (arm_get_next_pcs_raw): Likewise. * arch/arm-get-next-pcs.h (thumb_get_next_pcs_raw): Remove the declaration. (arm_get_next_pcs_raw): Likewise. commit b2ca446f682854c2b187178358b97174bf313fa7 Author: Yao Qi Date: Wed Jan 6 12:11:41 2016 +0000 [ARM/AArch64] Fix -Werror=unused-const-variable warnings in GDBserver This patch fixes gcc warning when build ARM GDBserver and AArch64 GDBserver, AArch64 GDBserver: gdb/gdbserver/linux-aarch32-low.h:36:29: error: 'thumb2_breakpoint' defined but not used [-Werror=unused-const-variable] static const unsigned short thumb2_breakpoint[] = { 0xf7f0, 0xa000 }; ^ gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable] static const unsigned short thumb_breakpoint = 0xde01; ^ gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable] static const unsigned long arm_breakpoint = arm_eabi_breakpoint; ^ cc1: all warnings being treated as errors ARM GDBserver: gdb/gdbserver/linux-aarch32-low.h:34:29: error: 'thumb_breakpoint' defined but not used [-Werror=unused-const-variable] static const unsigned short thumb_breakpoint = 0xde01; ^~~~~~~~~~~~~~~~ gdb/gdbserver/linux-aarch32-low.h:28:28: error: 'arm_breakpoint' defined but not used [-Werror=unused-const-variable] static const unsigned long arm_breakpoint = arm_eabi_breakpoint; ^~~~~~~~~~~~~~ by simply moving these macros and variables to linux-aarch32-low.c and only declare thumb2_breakpoint in linux-aarch32-low.h, which is not perfect, and reveals some issues in recent arm GDBserver software single step changes. I'll post follow-up patches. gdb/gdbserver: 2016-01-06 Yao Qi * linux-aarch32-low.h (arm_abi_breakpoint): Move to linux-aarch32-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint_len): Likewise. (thumb2_breakpoint, thumb2_breakpoint_len): Likewise. (thumb2_breakpoint): Declare. * linux-aarch32-low.c (arm_abi_breakpoint): Moved from linux-aarch32-low.h. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint_len): Likewise. (thumb2_breakpoint, thumb2_breakpoint_len): Likewise. commit b05a65d0adb340e4129f62c1d380a09935ee433d Author: Andrew Burgess Date: Tue Jan 5 14:46:39 2016 +0000 bfd/arc: Add R_ prefix to all relocation names The convention within for relocation names is that they start with the string "R_", however, this is not so for ARC for the display names of relocations, however, internally, the names for the relocations types do have the 'R_' prefix. I suspect that the missing 'R_' on the output strings was an oversight, as I can't see any comment to the contrary. To bring ARC into line with other targets, this commit adds the 'R_' prefix to the output strings used for relocation names, and updates all of the assembler tests where this was exposed. bfd/ChangeLog: * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to place 'R_' before the reloc name returned. (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before the relocation string. gas/ChangeLog: * testsuite/gas/arc/adc.d: Add 'R_' prefix to relocation names. * testsuite/gas/arc/add.d: Likewise. * testsuite/gas/arc/and.d: Likewise. * testsuite/gas/arc/asl.d: Likewise. * testsuite/gas/arc/asr.d: Likewise. * testsuite/gas/arc/bic.d: Likewise. * testsuite/gas/arc/extb.d: Likewise. * testsuite/gas/arc/extw.d: Likewise. * testsuite/gas/arc/j.d: Likewise. * testsuite/gas/arc/jl.d: Likewise. * testsuite/gas/arc/ld2.d: Likewise. * testsuite/gas/arc/lsr.d: Likewise. * testsuite/gas/arc/mov.d: Likewise. * testsuite/gas/arc/or.d: Likewise. * testsuite/gas/arc/pcl-relocs.d: Likewise. * testsuite/gas/arc/pcrel-relocs.d: Likewise. * testsuite/gas/arc/pic-relocs.d: Likewise. * testsuite/gas/arc/plt-relocs.d: Likewise. * testsuite/gas/arc/rlc.d: Likewise. * testsuite/gas/arc/ror.d: Likewise. * testsuite/gas/arc/rrc.d: Likewise. * testsuite/gas/arc/sbc.d: Likewise. * testsuite/gas/arc/sda-relocs.d: Likewise. * testsuite/gas/arc/sda-relocs2.d: Likewise. * testsuite/gas/arc/sexb.d: Likewise. * testsuite/gas/arc/sexw.d: Likewise. * testsuite/gas/arc/st.d: Likewise. * testsuite/gas/arc/sub.d: Likewise. * testsuite/gas/arc/tls-relocs.d: Likewise. * testsuite/gas/arc/xor.d: Likewise. commit 79bc59cb349fdbb8d3fa81804eb121af3c340c22 Author: Pedro Alves Date: Wed Jan 6 11:31:52 2016 +0000 Fix gdb.python/py-infthread.exp test message typo gdb/testsuite/ChangeLog: 2016-01-06 Pedro Alves * gdb.python/py-infthread.exp: Fix typo. Expect t0.num to be 1. commit 68477034727ad85aeed248ec995da746f7639e53 Author: Joel Brobecker Date: Wed Jan 6 09:38:21 2016 +0400 Change copyright owner to FSF in sim/testsuite/sim/mips/hilo-hazard-4.s sim/testsuite/sim/mips/ChangeLog: * hilo-hazard-4.s: Change copyright ownder to FSF. commit bf69ad5a189db1dca362723a3b0a7a1b545219a9 Author: Mike Frysinger Date: Tue Jan 5 23:23:52 2016 -0500 gdb: change version stamp to git commit 7288962315bd9dd1c003e497081a2c03fafc0711 Author: GDB Administrator Date: Wed Jan 6 00:00:08 2016 +0000 Automatic date update in version.in commit b36c1ccb1feb678f7279b4a8d66c0125d4295078 Author: Mike Frysinger Date: Sun Jan 3 01:30:32 2016 -0500 libiberty: {count,dup,write}argv: constify argv input slightly Would be more useful if we could use "const char * const *", but there's a long standing bug where gcc warns about incompatible pointers when you try to pass in "char **". We can at least constify the array itself as gcc will not warn in that case. commit 203217665139943a4f0d1797b9a5f913b3acf184 Author: Mike Frysinger Date: Sun Jan 3 01:29:03 2016 -0500 libiberty: dupargv: rewrite to use xstrdup This func is basically open coding the xstrdup function, so gut it and use it directly. commit 4bec0ef03e91506caf60d8842786b29c2d2ff049 Author: Patrick Palka Date: Mon Dec 28 22:00:14 2015 +0000 libiberty: Tweak the documentation of libiberty's xcrc32 function In some places the xcrc32 documentation refers to GDB's own crc32 implementation, but GDB no longer has its own crc32 implementation. It now uses libiberty's xcrc32 throughout. So this patch removes these references to GDB's now-nonexistent crc32 implementation. Also, there appears to be a bug in the table-generation program embedded within the documentation. When the variable "int i" is >= 128, the computation "i << 24" shifts a one bit into the sign bit (assuming a 32-bit int), which is UB. To avoid this UB, I think it is sufficient to make the induction variables i and j have type unsigned int. This bug seems latent, however. I ran the program before and after this change and the table output is the same. commit 13b356b2b5c1857490b7911dbbb48e17a3a92b04 Author: Nick Clifton Date: Mon Dec 21 08:23:35 2015 +0000 libiberty: fix warnings about left shifting a negative value. GCC PR 66827 reports some problems with left shifting a negative value: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66827 Of the problems reported only two remain - in libiberty/regex.c: libiberty/regex.c:6970:11: runtime error: left shift of negative value -1 libiberty/regex.c:7165:4: runtime error: left shift of negative value -1 The patch below fixes these errors by casting the value to be shifted to unsigned before the shift occurs. No regressions were found in the libiberty testsuite or bootstrapping gcc (on an x86_64 target). commit 6675033211e145ecd094b6803ed4a3427b3fd21e Author: Mike Frysinger Date: Sat Jan 2 03:11:44 2016 -0500 gdb: score: drop sim file check There has never been a GNU/sim port for the S+Core architecture. It was added to support private code that has (and most likely never will) see the light of day [1]. Punt this as we don't do this for other people. If you want to maintain a proprietary internal build, then that's not really our problem. [1] https://sourceware.org/ml/gdb-patches/2009-03/msg00390.html commit 402cf0534665db83e19c00f130184e94552a75fb Author: Mike Frysinger Date: Mon Jan 4 00:25:46 2016 -0500 sim: msp430: drop duplicate sim_load_file call There's no need, or desire, to call sim_load_file from sim_open. The higher levels (gdb/run) take care of calling sim_load for us already. commit 1a846c62626357f9e966ef50917dca3a357c9644 Author: Mike Frysinger Date: Wed Dec 30 23:26:05 2015 -0500 sim: aarch64: switch to common disassembler tracing The output should largely be the same. commit 824c862804128f6d31ae5f80fb741d12419da943 Author: Mike Frysinger Date: Wed Dec 30 23:20:23 2015 -0500 sim: bfin: add support disasm tracing commit 70d394483206f5afe911fa21c8456b852c12da74 Author: Mike Frysinger Date: Wed Dec 30 23:19:01 2015 -0500 sim: msp430: switch to common disassembler tracing The output format is a bit different, but the new form matches all the other trace lines. Otherwise, it should be functionally equivalent. commit bfb2629c162c05dac30fc16180953efb671c4227 Author: Mike Frysinger Date: Wed Dec 30 23:17:58 2015 -0500 sim: trace: add support for disassembling Some targets have started to add support for calling the disassembler automatically when executing code. Add support for that directly into the trace core. commit 4eb70007f1a750b5bdf4e2a08eef96cf7c666c0a Author: Nick Clifton Date: Tue Jan 5 16:49:26 2016 +0000 Add myself as the maintainer for the AArch64. commit 296ebfbb91bc9453134c467b4bfe8363582674f7 Author: Nick Clifton Date: Tue Jan 5 16:43:58 2016 +0000 Fix the execution of the MSP430 simulator testsuite. ld * emulparams/msp430elf.sh (RAM_START): Move to 0x500 - above the MSP430 hardware multiply address range. * scripttempl/elf32msp430.sc (__romdatastart): Define. (__romdatacopysize): Define. * scripttempl/elf32msp430_3.sc: Likewise. tests * testutils.inc (__pass): Use the LMA addresses of the _passmsg symbol. (__fail): Likewise. commit fa89c1268f5d4e9950f3faf8c027dbbeb6aac773 Author: Pedro Alves Date: Tue Jan 5 11:12:31 2016 +0000 Add missing ChangeLog entry bit gdb/ChangeLog: PR sim/13418 * rs6000-tdep.c (init_sim_regno_table): Check WITH_PPC_SIM instead of WITH_SIM. commit 976102cd178de0dd6b366746f850b026a2793097 Author: Pedro Alves Date: Tue Jan 5 11:03:40 2016 +0000 Fix PR sim/13418: building with --enable-targets=all fails Multitarget builds currently fail when: (1) simulator support is enabled (the main --target supports target sim) (2) powerpc is included in the --enable-targets list (3) powerpc is not the main/default target (--target) This is because the powerpc sim provides a non-standard API function sim_spr_register_name which gdb/rs6000-tdep.c utilizes. Since the sim does not yet support multitarget, only the sim (if one exists) for the main target is built. When that target isn't powerpc, this function is not available leading to linking errors: rs6000-tdep.c:(.text+0x1e34d): undefined reference to `sim_spr_register_name' Fix this by only using that API if the sim linked in is the powerpc sim. gdb/ChangeLog: 2016-01-05 Pedro Alves PR sim/13418 * configure.ac: Define WITH_PPC_SIM when linking in the sim and the target is powerpc*. * configure: Regenerate. * config.in: Regenerate. commit 44ddb0c66aa268f0027665da61273e78c9d748ae Author: Mike Frysinger Date: Mon Jan 4 22:32:49 2016 -0500 sim: use STATE_MAGIC helper commit bc273e17510c7680bcffee75858d374aa93f7e4b Author: Mike Frysinger Date: Mon Jan 4 22:24:03 2016 -0500 sim: unify min/max macros Import defines from gdb/defs.h to the sim core so we can delete the various copies that already exist. commit ac8eefeb243ad326946c3b2b78ba5d1367fe0f99 Author: Tristan Gingold Date: Wed Dec 9 12:34:45 2015 +0100 sim: aarch64: drop syscall.h include to fix build The simulator is including syscall.h which is not standard and apparently not required (builds correctly without it on my machine). commit 6f9a11d38911851eaa22d3f55a0939417d7aadc3 Author: GDB Administrator Date: Tue Jan 5 00:00:08 2016 +0000 Automatic date update in version.in commit 2f2da8fd3ff3c04928621bcbc0c01b9f9ebce7cc Author: Maciej W. Rozycki Date: Mon Jan 4 23:35:03 2016 +0000 MIPS/LD: Convert ELF linker emulation option macros to an enum ld/ * emultempl/mipself.em (PARSE_AND_LIST_PROLOGUE): Convert OPTION_INSN32 and OPTION_NO_INSN32 macros to an enum. commit a3dc0a7f65bd4cfcfad6afee8b11657972e5a8de Author: Maciej W. Rozycki Date: Mon Jan 4 23:32:34 2016 +0000 MIPS/BFD: Factor out ABI flag merging Factor out the parts of `_bfd_mips_elf_merge_private_bfd_data' responsible for ABI flag merging to `mips_elf_merge_obj_abiflags'. No functional change. bfd/ * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function, factored out from... (_bfd_mips_elf_merge_private_bfd_data): ... here. commit d537eeb527bb80fb791d22a7eedec245856b9d35 Author: Maciej W. Rozycki Date: Mon Jan 4 23:30:00 2016 +0000 MIPS/BFD: Move attribute check after ELF file header flag check We have a problem in that in making compatibility checks while merging private BFD data on the MIPS target we give priority to the attribute check, which may fail and cause the function to abort early on. The problem with this is the ABI compatibility aspect recorded in the attributes is relatively minor compared to aspects recorded in the ELF file header. However the premature exit causes any more important compatibility aspect violated to be masked and not reported to the user once a problem with attributes has been noticed. So move the attribute check after the ELF file header flag check in `_bfd_mips_elf_merge_private_bfd_data', and do not return prematurely there. Take advantage of the resulting grouping of ELF file header handling together and remove the premature success return point for the first input object being handled, letting the code later on figure out output ABI flags even for this object. Update LD test cases according to messages from ELF file header checks now preceding ones from attribute checks. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move attribute check after ELF file header flag check. ld/ * testsuite/ld-mips-elf/attr-gnu-4-14.d: Update the order of messages expected according to MIPS BFD private data merge changes. * testsuite/ld-mips-elf/attr-gnu-4-24.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-34.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-41.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-42.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-43.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-45.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-46.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-47.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-48.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-49.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-54.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-64.d: Likewise. * testsuite/ld-mips-elf/attr-gnu-4-74.d: Likewise. commit 43d223b5430a93dc0d777276471128800b9887cf Author: Maciej W. Rozycki Date: Mon Jan 4 23:16:45 2016 +0000 MIPS/BFD: Propagate the return status in attribute merging Fix the issue of any failure from `_bfd_elf_merge_object_attributes' not being propagated by `mips_elf_merge_obj_attributes'. bfd/ * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the return status from `_bfd_elf_merge_object_attributes'. commit b2e9744f80a002c06504ac1ef41ae1f7e48167c8 Author: Maciej W. Rozycki Date: Mon Jan 4 23:15:03 2016 +0000 MIPS/BFD: Factor out ELF file header flag checks Factor out the parts of `_bfd_mips_elf_merge_private_bfd_data' responsible for ELF file header flag compatibility checks to `mips_elf_merge_obj_e_flags'. As a side effect remove a premature return point from `_bfd_mips_elf_merge_private_bfd_data'. No functional change otherwise. bfd/ * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function, factored out from... (_bfd_mips_elf_merge_private_bfd_data): ... here. commit 28d45e28be904a53fef4310b3d41e41b045885b0 Author: Maciej W. Rozycki Date: Mon Jan 4 23:13:10 2016 +0000 MIPS/BFD: Fold the handling of input MIPS ABI flags together Fold the handling of input MIPS ABI flags in private BFD data merging together, moving the attribute check afterwards, and consequently making input vs output compatibility checks only start once all input ABI flag data has been gathered, checked for inconsistencies and put in order. Consequently also address the issue of input ABI flag inconsistencies being masked by a failing attribute check, which currently makes `_bfd_mips_elf_merge_private_bfd_data' exit prematurely and therefore prevent input ABI flag inconsistencies from being reported. Such inconsistencies need to be reported as they may be the very cause of an attribute check failure. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the handling of input MIPS ABI flags together. commit 23ba6f1807299311717df4d48b5f68d534ab6c47 Author: Maciej W. Rozycki Date: Mon Jan 4 23:00:24 2016 +0000 MIPS/BFD: Suppress attribute checks for null input We currently special-case the handling of attribute checks on input objects and make them even before we check a given input object actually contains any sections. This does not add value as empty objects do not cause a compatibility concern and we already make this observation for other properties such as ELF file header flags. Moreover the attributes themselves are stored in a `.gnu.attributes' section so the absence of any section (except from a few special cases) implies there have been no attributes provided either. Therefore it is safe to move the attribute checks later on, after the null-section check has been made. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress attribute checks for null input. commit cf8502c1314287df100e44f81c4e3cf32c198353 Author: Maciej W. Rozycki Date: Mon Jan 4 22:49:59 2016 +0000 MIPS/BFD: Use local pointers to target data in private data merge Use local pointers to target data to reduce the amount of indirection and improve the readability of `_bfd_mips_elf_merge_private_bfd_data'. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local pointers to target data. commit dcb1c79659056a9b762feb235815ef283725490f Author: Maciej W. Rozycki Date: Mon Jan 4 22:46:40 2016 +0000 MIPS/BFD: Correct an FP ABI warning Correct a warning produced on any FP ABI mismatch observed. Unlike the other settings, which in the presence of `.MIPS.abiflags' are duplicated in the `e_flags' member of the ELF file header, information on the FP ABI in use is duplicated in `.gnu.attributes' rather than in the former place. Update the warning message accordingly. bfd/ * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct an FP ABI warning. commit 8d7d784e23b5b2f8c7e28ece1bdb73b58199f16f Author: Mike Frysinger Date: Mon Jan 4 05:08:26 2016 -0500 sim: parse_args: polish getopt error message The cris sim hit a few failures after the recent getopt logic, and the expected output showed a few ways we can improve things to better match other utils. commit 9bbf6f91c6e85ca916ec2c266009167f20f5ecfd Author: Mike Frysinger Date: Mon Jan 4 04:06:01 2016 -0500 sim: punt x86-specific bswap logic The compiler/C library should produce reasonable code for htonl/ntohl, and at least glibc tries pretty hard to always produce good code for them. This logic only had support for 32-bit x86 systems anymore, and it's unlikely people were even opting into this, so drop it all. commit 13adda68c54abf2654d01fa6523c379a13e418da Author: Mike Frysinger Date: Mon Jan 4 03:58:09 2016 -0500 sim: d10v: gut endian logic The compiler should produce reasonable code here in general, so punt the various arch checks and bswap defines. This code will eventually go away entirely when we convert it to the common memory code. commit 43368e1d9ab8437079001f7a5f6ae2241acaece3 Author: Markus Metzger Date: Wed Dec 23 13:53:53 2015 +0100 btrace: do not return out of TRY/CATCH In btrace_pt_readmem_callback, we read memory inside TRY/CATCH and return in case of an error return value. This corrupts the cleanup chain, which eventually results in a SEGV when doing or discarding cleanups later on. gdb/ * btrace.c (btrace_pt_readmem_callback): Do not return in TRY/CATCH. testsuite/ * gdb.btrace/dlopen.exp: New. * gdb.btrace/dlopen.c: New. * gdb.btrace/dlopen-dso.c: New. commit 77cf2ef5dc9099501529151921a73be904757466 Author: Mike Frysinger Date: Sun Jan 3 21:40:34 2016 -0500 sim: parse_args: display getopt error ourselves Fix a long standing todo where we let getopt write directly to stderr when an invalid option is passed. Use the sim io funcs instead as they go through the filtered callbacks that gdb wants. commit 3726f72c654ab357be5b79c78f238da7a869f9a3 Author: Mike Frysinger Date: Sun Jan 3 19:54:25 2016 -0500 sim: TODO: move to wiki We're maintaining development docs in the wiki now: https://sourceware.org/gdb/wiki/Sim/TODO commit db18b05b4b0bcf6b6b1d6e735b70c86bb008962c Author: GDB Administrator Date: Mon Jan 4 00:00:08 2016 +0000 Automatic date update in version.in commit 61971b86bb897dc333fccffb7518056c83b99f45 Author: Mike Frysinger Date: Sun Jan 3 03:44:02 2016 -0500 sim: clean up some more device detritus Clean up some more remains of WITH_DEVICES that escaped notice. We also clean up GETTWI/SETTWI defines in a few ports where they were copied & pasted and are unused as they happen to be near the device code. commit 34fed69938f1296b62354b2a825b49602fe7af50 Author: Mike Frysinger Date: Sun Jan 3 01:40:46 2016 -0500 sim: use libiberty countargv in more places A bunch of places open code the countargv implementation, or outright duplicate it (as count_argc). Replace all of those w/countargv. commit aba6f46b235a3a139c04d5ed6a3310125aa9c982 Author: Mike Frysinger Date: Sun Jan 3 01:44:44 2016 -0500 sim: nrun: use lbasename commit 0cb8d8513cf44a102953ff5cf93e9dd399f42e9a Author: Mike Frysinger Date: Sun Jan 3 00:36:13 2016 -0500 sim: drop host endian configure option The --enable-sim-hostendian flag was purely so people had an escape route for when cross-compiling. This is because historically, AC_C_BIGENDIAN did not work in those cases. That was fixed a while ago though, so we can require that macro everywhere now and simplify a good bit of code. commit 1ac72f0659d64d6a14da862242db0d841d2878d0 Author: Mike Frysinger Date: Sat Jan 2 17:46:16 2016 -0500 sim: convert to bfd_endian Rather than re-invent endian defines, as well as maintain our own list of OS & arch-specific includes, punt all that logic in favor of the bfd ones already set up and maintained elsewhere. We already rely on the bfd library, so leveraging the endian aspect should be fine. commit 987f8739051ff368ecaf6ca1e0fc966c974381a1 Author: GDB Administrator Date: Sun Jan 3 00:00:15 2016 +0000 Automatic date update in version.in commit b3fbb288afd9071523b61b3222869cfed0f95ab8 Author: Mike Frysinger Date: Sat Jan 2 11:11:09 2016 -0500 sim: cris: use standard output helpers The sim-io module provides output helpers, so no need to define local ones anymore. commit 027e73b217ec5ed334015b5484ff8d281258b6bb Author: Mike Frysinger Date: Sat Jan 2 10:29:51 2016 -0500 sim: iq2000/m32r/lm32/sh64: delete dead option code The iq2000/m32r/sh64 option parsing logic appears to have always been dead. At least iq2000/sh64 are simply copy & paste rot from m32r. The lm32 option parsing hack here hasn't been needed for a while -- this was fixed back in commit 11409fac6b95d71a92848a4499b02d60a4f4c5bb in the common code. commit d47f5b30d8481272e9480118bdcb283690070349 Author: Mike Frysinger Date: Sat Jan 2 09:23:06 2016 -0500 sim: delete dead current_state globals The global current_state handle to the current simulator state is a design idea that was half implemented, but never really cleaned up. The point was to have a global variable pointing to the state so that funcs could more quickly & easily access the state anywhere. We've instead moved in the direction of passing state around everywhere and don't have any intention of moving back. I also can't find any references to gdb using this variable, or to cgen related "dump_regs" functions, both of which were used in the comments related to this code. commit 32273fe68f3d1288b2eef6b96beda3732d0ac25e Author: Mike Frysinger Date: Sat Jan 2 03:10:57 2016 -0500 gdb: ppc: drop unnecessary sim file check We don't do this for other ppc targets in this file (we assume the sim subdir exists), and it has existed for over a decade at this point. commit dea827fc5c3349dc0308d0e22ab2d6791282cf8b Author: Mike Frysinger Date: Sat Jan 2 02:34:05 2016 -0500 sim: ppc: do not exit when parsing args w/gdb When connecting to the simulator in gdb, we don't want it to exit on us when we pass down unknown/invalid/help/etc... options. Plumb down the kind argument so we can handle both gdb & psim interfaces. commit 4a2abdc468f9028435df0b30d9dab1b5ba9a7520 Author: GDB Administrator Date: Sat Jan 2 00:00:08 2016 +0000 Automatic date update in version.in commit 6f2750feaf2827ef8a1a0a5b2f90c1e9a6cabbd1 Author: Alan Modra Date: Fri Jan 1 21:55:12 2016 +1030 Copyright update for binutils commit 3499769a6a6d3acb48d4d7eef5f656b22fecaeb8 Author: Alan Modra Date: Fri Jan 1 21:14:31 2016 +1030 New 2016 binutils ChangeLog files Note that this does not create bfd/doc/ChangeLog, */testsuite/ChangeLog and include/*/ChangeLog files. commit 4120fa118fc46e07910c2f36d8ca0c790c2732b1 Author: Alan Modra Date: Fri Jan 1 21:12:53 2016 +1030 binutils ChangeLog rotation commit 618f726fcb851883a0094aa7fa17003889b7189f Author: Joel Brobecker Date: Fri Jan 1 08:33:14 2016 +0400 GDB copyright headers update after running GDB's copyright.py script. gdb/ChangeLog: Update year range in copyright notice of all files. commit edd88788349db3bd2af5fc9a38e2ea9cc220757f Author: Joel Brobecker Date: Fri Jan 1 08:22:36 2016 +0400 update copyright year printed by GDB, GDBserver and gdbreplay. gdb/ChangeLog: * top.c (print_gdb_version): Change copyright year in version message. gdb/gdbserver/ChangeLog: * gdbreplay.c (gdbreplay_version): Change copyright year in version message. * server.c (gdbserver_version): Likewise. commit 0f7b3ef4dc9e4abf0bd85bb759f620c6302dfacf Author: Joel Brobecker Date: Fri Jan 1 08:19:16 2016 +0400 Rotate the GDB ChangeLog Per GDB the "Start of New Year Procedure", this patch - renames the current ChangeLog into ChangeLog-2015; - starts a new ChangeLog file. gdb/ChangeLog: * config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2015. commit 9ec80f85156e65efa2a8b95de185c4ac49cd11cb Author: GDB Administrator Date: Fri Jan 1 00:00:08 2016 +0000 Automatic date update in version.in commit 5ba8bc973cca60cb06bf41a2808ba6fa4ed02879 Author: Andrew Burgess Date: Wed Dec 16 13:57:44 2015 +0000 opcodes/arc: Support dmb instruction with no operands In this GCC commit: https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00735.html GCC started emitting dmb instructions with no operands. The intention was that dmb with no operands should be an alias for 'dmb 0'. The following patch extends the arc opcodes library to support dmb with no operands. opcodes/ChangeLog: * arc-tbl.h (dmb): Add a no operand version of dmb. commit 8e26d677a240d3b495b7c565006d75646a15ed53 Author: Mike Frysinger Date: Wed Dec 30 23:47:35 2015 -0500 sim: m68hc11: fix default endian The previous commit here set the default to little instead of big. A typo lost when reviewing the different targets in parallel. commit eca4255a1a6c3603e05c4f3ca9c0849f529657c3 Author: Mike Frysinger Date: Wed Dec 30 21:01:58 2015 -0500 sim: cris/m68hc11: move default endian/alignment to configure commit 356a418c5dbff10ae4a2afc599163c0a85385f07 Author: GDB Administrator Date: Thu Dec 31 00:00:10 2015 +0000 Automatic date update in version.in commit cec99e6b2c28d3d32d770ad645c4b0c26f2e1685 Author: Mike Frysinger Date: Wed Dec 30 06:03:31 2015 -0500 sim: h8300: inline sim_state_initialize All the state is handled already by the common cpu allocation which zeros out the entire state. commit 2a2757ac7e849aa35fc519ddfcc8688a46b60448 Author: Mike Frysinger Date: Wed Dec 30 05:58:12 2015 -0500 sim: h8300: simplify h8300_reg_{fetch,store} funcs We can leverage the cpu->regs array rather than going through the function helpers to get nice compact code. Further, fix up the return values: return -1 when we can't find a register (and let the caller write out warnings), return 2/4 when we actually write out that amount, and handle the zero reg. commit 4ca9d09e826e959f382ab45b2e1dfa8125135124 Author: Mike Frysinger Date: Wed Dec 30 04:28:10 2015 -0500 sim: h8300: switch to common sim-resume commit 5658c2571f34fcf7f0f10dbd45ddc6680aa57576 Author: Mike Frysinger Date: Wed Dec 30 05:19:40 2015 -0500 sim: h8300: move default endian/alignment to configure commit 9950eccba15155dda9ef8025a5a1685dd9db53b7 Author: Mike Frysinger Date: Tue Dec 29 23:54:12 2015 -0500 sim: simplify STATE_MY_NAME setup No point in writing basename ourselves when libiberty provides one. commit e1211e55062594679697d2175b7ea77dad173823 Author: Mike Frysinger Date: Wed Dec 30 03:28:45 2015 -0500 sim: arm/d10v/h8300/m68hc11/microblaze/mips/mn10300/moxie/sh/v850: convert to common sim_{fetch,store}_register commit c78dff22918f29b3970729f32f70060b70e75678 Author: Mike Frysinger Date: Wed Dec 30 01:49:53 2015 -0500 sim: h8300: move unused/buggy lregs array This array isn't used anywhere, and the init phase actually corrupts some memory because the array has 18 elements but tries to set the 19th (ZERO) position. commit f2089a69c164c789bcfd06b5eb9e0878f5520e13 Author: Mike Frysinger Date: Wed Dec 30 01:26:08 2015 -0500 sim: h8300: drop unused inst.h We can also drop the compile.o rule since the common dep generation logic takes care of this for us. commit 331e61312eab8ef2412582bafc404cc107fd5e8f Author: Alan Modra Date: Wed Dec 30 09:20:20 2015 +1030 Fix assorted ChangeLog errors commit 90d99f327063af7d87c61234896d4a1dbe073a43 Author: Kevin Buettner Date: Mon Nov 16 14:58:07 2015 -0700 sim: ppc: track closed state of file descriptors 0, 1, and 2. This change tracks the "closed" state of file descriptors 0, 1, and 2, introducing the function fdbad() to emul_netbsd.c and emul_unix.c. Note that a function of the same name and purpose exists in sim/common/callback.c. This patch eliminates all of the "unresolved testcases" when testing GDB against the powerpc simulator. This occurs because the powerpc simulator closes, on behalf of the testcase, the file descriptors associated with stdin, stdout, and stderr. GDB still needs these descriptors to communicate with the user or, in this case, with the testing framework. commit 090d9d00b51cf130973f01770cd1712e768f1d87 Author: GDB Administrator Date: Wed Dec 30 00:00:09 2015 +0000 Automatic date update in version.in commit d50d388b8505cd822e157db422f71937e41953de Author: GDB Administrator Date: Tue Dec 29 00:00:08 2015 +0000 Automatic date update in version.in commit 65da7f144f53f8af57ff8d4e337ceda49daacc21 Author: Patrick Palka Date: Mon Nov 2 13:21:44 2015 -0500 Use libiberty's crc32 implementation in gdbserver Tested on x86_64-pc-linux-gnu native-gdbserver, no new regressions. gdb/gdbserver/ChangeLog: * server.c (crc32_table): Delete. (crc32): Use libiberty's xcrc32 function. commit c622ccedda0134f95751bf14d1daa6fce2365d45 Author: GDB Administrator Date: Mon Dec 28 00:00:09 2015 +0000 Automatic date update in version.in commit a7be2893a6449e64fe6cfcdd8700b0a367a69f19 Author: Sandra Loosemore Date: Sun Dec 27 12:30:26 2015 -0800 Correct nios2 _gp address computation. 2015-12-27 Sandra Loosemore bfd/ * elf32-nios2.c (nios2_elf_assign_gp): Correct computation of _gp address. (nios2_elf32_relocate_section): Tidy code for R_NIOS2_GPREL error messages. commit 5d01527536684c75235f2ed288b11d253572b570 Author: Mike Frysinger Date: Sun Dec 27 01:41:27 2015 -0500 sim: aarch64/msp430: fix disassembler usage The disasm framework reserves the private_data field for the disassemblers themselves, not for people who use the disassembler. Instead, there is an application_data field for callers such as the sim. Switch to it to avoid random corruption/crashes when the disassemblers use private_data. commit 5e744ef887c1e879052cb30783638807190275f8 Author: Mike Frysinger Date: Fri Apr 10 19:40:34 2015 -0400 sim: unify sim-hload Pretty much all targets are using this module already, so add it to the common list of objects. The only oddball out here is cris and that's because it supports loading via an offset for all the phdrs. We drop support for that. commit 1b393626cef48974502e7077b191555b56680ee6 Author: Mike Frysinger Date: Sat Dec 26 20:20:23 2015 -0500 sim: punt WITH_DEVICES & tconfig.h support No arch is using this anymore, and we want all new ports using the hardware framework instead. Punt WITH_DEVICES and the two callbacks device_io_{read,write}_buffer. We can also punt the tconfig.h file as no port is using it anymore. This fixes in-tree builds that get confused by picking up the wrong one (common/ vs /) caused by commit ae7d0cac8ce971f7108d270c. Any port that needs to set up a global define can use their own sim-main.h file that they must provide regardless. commit 466b619e95908dc073b78413f0d0d0b1cb97e4b5 Author: Mike Frysinger Date: Sat Dec 26 19:02:07 2015 -0500 sim: bfin: push down mmr address/size checks The bfin port is using the WITH_DEVICES framework for two reasons: - get access to the cpu making the request (if available) - check the alignment & size for core & system MMRs We addressed the first part with commit dea10706e9159ba6e94eab4c25010f3, and we handle the second part with this commit. Arguably this is more correct too because trying to do bad reads/writes directly (when devices support is disabled) often results in bad memory accesses. As part of this clean up, we also adjust all of the existing logic that would reject invalid accesses: the code was relying on the checks never returning, but that's not the case when things like gdb (via the user's commands) are making the requests. Thus we'd still end up with bad mem accesses, or sometimes gdb being hung due to while(1) loops. Now we can connect (most of) these models into any address and have them work correctly. commit b72dd4c228d71b44e487ff2c53c0d2883653bce7 Author: GDB Administrator Date: Sun Dec 27 00:00:15 2015 +0000 Automatic date update in version.in commit 236bf91febaa3a7b0c2231a8740968e90aa497c6 Author: Mike Frysinger Date: Sat Dec 26 18:22:37 2015 -0500 sim: bfin: avoid stack error under asan We set up an array of 3 elements and then index into it with a 2bit value. We check the range before we actually use the pointer, but the indexing is enough to make asan upset, so just stuff a fourth value in there to keep things simple. commit dea10706e9159ba6e94eab4c25010f3006d033a0 Author: Mike Frysinger Date: Sat Dec 26 14:16:51 2015 -0500 sim: sim-core: pass down cpu to hw accesses when available The bfin port has been using the device callback largely so it could be passed the cpu when available. Add this logic to the common core code so all ports get access to the active cpu. The semantics of these buffer functions are changed slightly in that errors halt the engine synchronously rather than returning the length to the caller. We'll probably adjust this in a follow up commit. The bfin code isn't updated just yet as it has a bit more logic in the device layer that needs to be unwound at which point we can delete it entirely. commit 26f8bf63bf36f9062a5cc1afacf71462a4abe0c8 Author: Mike Frysinger Date: Sat Dec 26 11:35:03 2015 -0500 sim: mips: delete mmu stubs to move to common sim_{read,write} The only unique thing about mip's sim_{read,write} helpers is the call to address_translation on the incoming address. When we look closer at that function though, we see it's just a stub that maps physical to virtual, and the cache/return values are hardcoded. If we delete this function, we can then collapse all the callers and drop the custom sim_{read,write} logic entirely. Some day we might want to add MMU support, but when we do, we'll want to have the common layers handle things so all targets benefit. commit 8b494522f9f20e1e1d29089067d51fc141c33558 Author: Mike Frysinger Date: Sat Dec 26 08:13:38 2015 -0500 sim: cris: do not pass cpu when writing memory during init The point of passing down the cpu to core reads/writes is to signal which cpu is making the access. For system accesses (such as internal memory initialization), passing the cpu down doesn't make sense, and in the case of early init like cris, can cause crashes. Since the cpu isn't fully set up at this point, if the core code tries to access some fields (like the PC reg), it'll crash. While cris shouldn't be doing this setup here (it should be in the inferior stage), we'll deal with that later. commit 0e9672991e9346d5c2cb9cd33e30fb3e573f88b8 Author: Mike Frysinger Date: Sat Dec 26 07:05:41 2015 -0500 sim: standardize sim_create_inferior handling of argv a bit more For targets that process argv in sim_create_inferior, improve the code: - provide more details in the comment - make the check for when to re-init more robust - clean out legacy sim_copy_argv code This will be cleaned up more in the future when we have a common inferior creation function, but at least help new ports get it right until then. commit f66affe97c40465e70249970b3339cc2f0a40e69 Author: Mike Frysinger Date: Sat Dec 26 07:12:13 2015 -0500 sim: aarch64: move ChangeLog content commit 3e1a8f9569478157ee932e35de928beb211f5df4 Author: Thomas Preud'homme Date: Sat Dec 26 10:24:58 2015 +0800 Add test for ARMv6-M farcall with no profile info 2015-12-24 Thomas Preud'homme ld/testsuite/ * ld-arm/arm-elf.exp: Run new test "Thumb-Thumb farcall v6-M (no profile)". * ld-arm/farcall-thumb-thumb-m-no-profile-a.s: New file. * ld-arm/farcall-thumb-thumb-m-no-profile-b.s: Likewise. * ld-arm/farcall-thumb-thumb-m-no-profile.d: Likewise. commit 245d2ad7f57cf877abf7442f9a189dc4c655f136 Author: GDB Administrator Date: Sat Dec 26 00:00:17 2015 +0000 Automatic date update in version.in commit 79fad5b803e22798bcb087066234a954d0ccdc60 Author: Sandra Loosemore Date: Fri Dec 25 11:36:52 2015 -0800 Document that the PATTERN argument to gdb_test is optional. 2015-12-25 Sandra Loosemore gdb/testsuite/ * lib/gdb.exp (gdb_test): Update comments to clarify that the PATTERN argument is optional. commit 2023145711ca36f06258e07f4fa1c490efbbf37e Author: Mike Frysinger Date: Fri Dec 25 13:19:07 2015 -0500 sim: frv: punt WITH_DEVICE support The frv port used the device logic to support a single cache address, and the comments around that are "these were merely copied from a diff port and are unused", plus the code to attach the memory is "#if 0". Just punt it all. commit 9c0c156bb7ddca2d3fce7bea96631715f8c67390 Author: Mike Frysinger Date: Fri Dec 25 13:04:26 2015 -0500 sim: m32r: migrate from WITH_DEVICES to WITH_HW The m32r port was using the device framework to handle two devices: the cache and uart registers. Both can be implemented in the newer hardware framework instead which allows us to drop the device logic entirely, as well as delete the tconfig.h file. While creating the new uart device model, I also added support for using stdin to read/write data rather than only supporting sockets. This has been lightly tested as there doesn't appear to be test coverage for the code already. If anyone still cares about this port, then they should (hopefully) file bug reports. commit 34cf511206839b0f2b76870bf2d487c2dbcdbc1f Author: Mike Frysinger Date: Fri Dec 25 06:03:22 2015 -0500 sim: cris: migrate from WITH_DEVICES to WITH_HW The cris port was using the device framework to handle two addresses when the --cris-900000xx flag was specified. That can be implemented using the newer hardware framework instead which allows us to drop the device logic entirely, as well as delete the tconfig.h file. Basically we create a new cris_900000xx device model and move the read logic out of devices.c and into that. The rest of the devices logic was callback to the hardware framework already. commit 13e49fd6364e94625985b9eb15da5b1decd6a196 Author: Mike Frysinger Date: Fri Dec 25 05:54:12 2015 -0500 sim: cris: clean up rvdummy a bit This fixes a few warnings when compiling the rvdummy tool. commit d4a587a4ed828eaf3273b435e328120e73bbb2cc Author: Mike Frysinger Date: Fri Dec 25 05:51:46 2015 -0500 sim: cris: set up sane default path to rvdummy Much like we autodetect the path to the run program when there is none set explicitly, do the same for the rvdummy program. Otherwise the default make check fails to execute the helper properly. commit 49aef5a5b8873b80f43ca79edd5755d28cab53b3 Author: Mike Frysinger Date: Fri Dec 25 05:45:47 2015 -0500 sim: hw-properties: delete trace calls These trace calls don't seem to add anything useful and break the cris hw tests, so punt them. They were disabled before commit 6d519a4606b9 but were re-enabled as part of TRACE macro cleanups. commit cf59f47ebeccf4ea82b6c529c882644e4c445323 Author: Mike Frysinger Date: Fri Dec 25 04:45:57 2015 -0500 sim: drop WITH_ENGINE define We enable this everywhere already, and all new ports should use the engine logic, so no point in making it an option to disable. commit 0d58595077841917ad57c9f8d2a61184a504ef40 Author: Mike Frysinger Date: Fri Dec 25 04:27:27 2015 -0500 sim: sim-model: build for everyone Rather than include this for some targets, set it up so we can build it all the time via the common code. This makes it easier for targets to opt into it when they're ready, increases build coverage, and allows us to centralize much of the logic. We also get to delete tconfig.h from two more targets -- they were setting WITH_DEVICES to 0 which has the same behavior as not defining it at all. While the SIM_HAVE_MODEL knob is gone, we now have WITH_MODEL_P, but it is only used by the common sim-model code. We use it to declare dummy model lists when the arch hasn't created its own. commit 8a0ebee658862bec66191df192c1d3b09bf0c943 Author: Mike Frysinger Date: Fri Dec 25 04:12:55 2015 -0500 sim: move MACH/MODEL types into SIM_xxx namespace The "MACH" and "MODEL" names are a bit generic and collide with symbols used by other sections of code (like h8300's opcodes). Since these are sim-specific types, they really should have a "SIM_" prefix. commit 91d6df784db745df2b0a6827de8306246083bc94 Author: Mike Frysinger Date: Sun Nov 15 19:45:36 2015 -0800 sim: arm: delete unused code These vestiges of the 20 year old emulator are just getting in the way. Punt all the dead code we either don't compile or don't use. commit f0c1b768b4f42c631547643ec01b020108c0ef8e Author: Mike Frysinger Date: Fri Dec 25 02:34:40 2015 -0500 sim: move WITH_SCACHE_PBB to sim-main.h This helps us break up tconfig.h more. Any file using this define should be pulling in sim-main.h already, so things should continue working. commit 42a3af5688cd41550e2b517f676f03f2842e615b Author: Mike Frysinger Date: Fri Dec 25 02:13:18 2015 -0500 sim: device_error: punt Only four targets implement this function, and three of them do nothing. The 4th merely calls abort. Since calls to this function are followed by calls to sim_hw_abort or sim_io_error, this is largely useless. In the two places where we don't, replace the call with sim_engine_abort. We want to kill off the WITH_DEVICES logic in favor of WITH_HW, so this is a good first step. commit 9e8e7dd966670c80f3b71f8cf7e07f2843b33e80 Author: Mike Frysinger Date: Fri Dec 25 00:23:50 2015 -0500 sim: always enable callback memory We enable WITH_CALLBACK_MEMORY everywhere and don't provide a way to turn it off, and no target does so. Make it unconditional for all to keep things simple. commit 268c91391a3235cb00249b6eb9a2cb7341914fed Author: Mike Frysinger Date: Fri Dec 25 00:09:48 2015 -0500 sim: dv-pal: always use CPU_INDEX Since the core always provides CPU_INDEX, use it. The current code doesn't actually use it even though it should since it doesn't include the right headers. commit ef04e3719831b50e62cb97cd0ac10548a35cef40 Author: Mike Frysinger Date: Thu Dec 24 22:37:11 2015 -0500 sim: mips: delete TARGET_TX3904 define With the LMA cleanup, we no longer need this define. commit cb379ede3cf6cf367b2bb58b85d8ee849a82a9b0 Author: Mike Frysinger Date: Thu Dec 24 22:27:04 2015 -0500 sim: mips: move SIM_QUIET_NAN_NEGATED to sim-main.h We want to kill off tconfig.h, so move the one define mips still uses to sim-main.h. commit 269362117d399d9d86b7e565e7cb827500fac31c Author: Mike Frysinger Date: Thu Dec 24 21:36:09 2015 -0500 sim: make LMA loading the default for all targets Most targets already default to loading code via their LMA, but for a few, this means the default changes from loading VMA to LMA. It's better to have the different targets be consistent, and allows some code clean up. commit 9db2b719087eb42cfb31018fe87657243f6185c9 Author: Mike Frysinger Date: Thu Dec 24 15:49:31 2015 -0500 sim: cris: move option install to sim_open We've moved custom option install for other targets to sim_open, so update cris too. It's the last one using MODULE_LIST, so we can drop that from the common code too. commit cec19744887931294e9d4a1dfa4fa8bd42e57ae5 Author: Mike Frysinger Date: Thu Dec 24 17:37:01 2015 -0500 sim: delete old breakpoint code This code relies on the old sim-break module, but that was deleted in 2003. The module only existed for gdb to tell the sim to set breakpoints on its behalf, but then that logic was abandoned in favor of gdb knowing all about proper breakpoints (since it does already for non-sim targets). Some dead code lived on in the older ports though -- clean it up now. commit bd3fb5b8fb33adb751407a128e1f2240dfb215d9 Author: Mike Frysinger Date: Thu Dec 24 17:26:54 2015 -0500 sim: h8300: move h8300-specific options out of common code Register the options in sim_open like other arches to avoid having to hack up the common modules. commit 84e8e361dd3a3dd7314759f7f07927dac401d0e6 Author: Mike Frysinger Date: Thu Dec 24 17:01:21 2015 -0500 sim: enable watchpoint module everywhere We build & bundle the watchpoint module everywhere, but we don't make the command line flags available by default. A few targets opted in, but most did not. Just enable the flag for everyone. Not all targets will respect the flags (making them nops), but shouldn't be a big deal. This is how we handle other common modules already. commit 3cabaf66d6ec7343bd3badc5c44c2ddd06221913 Author: Mike Frysinger Date: Thu Dec 24 16:41:55 2015 -0500 sim: delete SIM_HAVE_FLATMEM support No target has used this, and it's a cheap hack in place in using the common memory module. We want everyone using that though, so drop support for flatmem entirely. commit b1af947345ccba81244d3370756d0047d3bc8b6e Author: Mike Frysinger Date: Thu Dec 24 16:38:37 2015 -0500 sim: delete SIM_HAVE_MEM_SIZE This define isn't used anywhere (doesn't seem to ever have been used by versions committed), so delete the commented out code as it's dead. commit 8abe6c668e9336418277e64983587f121c8534e6 Author: Mike Frysinger Date: Thu Dec 24 16:04:26 2015 -0500 sim: delete SIM_HAVE_SIMCACHE This was used by the old run interface, but we punted that awhile ago, so drop this define too. commit a0f5b6dc16ffcb53f2ce22ab2eceeb2d67755a08 Author: GDB Administrator Date: Fri Dec 25 00:00:08 2015 +0000 Automatic date update in version.in commit 2fd158eb7bd4059478086143dd58edcc5ea44864 Author: Thomas Preud'homme Date: Thu Dec 24 17:33:17 2015 +0800 Add support for linking ARMv8-M object files 2015-12-24 Thomas Preud'homme bfd/ * elf32-arm.c (using_thumb_only): Check that profile is 'M' and update logic around Tag_CPU_arch values to return TRUE for ARMv8-M architectures. (tag_cpu_arch_combine): Define v8m_baseline and v8m_mainline and update v4t_plus_v6_m and comb to deal with ARMv8-M Tag_CPU_arch merging logic. (elf32_arm_merge_eabi_attributes): Add Tag_CPU_name values for ARMv8-M. bfd/testsuite/ * ld-arm/arm-elf.exp (armeabitests_common): Run new tests "Thumb-Thumb farcall v8-M", "EABI attribute merging 8", "EABI attribute merging 9" and "EABI attribute merging 10". (Thumb-Thumb farcall v8-M): Renamed to ... (Thumb-Thumb farcall v8-M Mainline): This. (Thumb-Thumb farcall v8-M Baseline): New test. * ld-arm/attr-merge-8a.s: New file. * ld-arm/attr-merge-8b.s: Likewise. * ld-arm/attr-merge-8.attr: Likewise. * ld-arm/attr-merge-9a.s: Likewise. * ld-arm/attr-merge-9b.s: Likewise. * ld-arm/attr-merge-9.out: Likewise. * ld-arm/attr-merge-10a.s: Likewise. * ld-arm/attr-merge-10b.s: Likewise. * ld-arm/attr-merge-10.attr: Likewise. commit ff8646eef8bdef6fe3091eb79627929c1c100c6a Author: Thomas Preud'homme Date: Thu Dec 24 17:26:08 2015 +0800 Add assembler support for ARMv8-M Baseline 2015-12-24 Thomas Preud'homme bfd/ (tag_cpu_arch_combine): Adjust comment in v4t_plus_v6_m with regards to merging with ARMv8-M Baseline. binutils/ * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Baseline Tag_CPU_arch value. gas/ * config/tc-arm.c (arm_ext_v6t2_v8m): New feature for instructions shared between ARMv6T2 and ARMv8-M. (move_or_literal_pool): Check mov.w/mvn and movw availability against arm_ext_v6t2 and arm_ext_v6t2_v8m respectively instead of checking arm_arch_t2. (do_t_branch): Error out for wide conditional branch instructions if targetting ARMv8-M Baseline. (non_v6t2_wide_only_insn): Add the logic for new wide-only instructions in ARMv8-M Baseline. (wide_insn_ok): New function. (md_assemble): Use wide_insn_ok instead of non_v6t2_wide_only_insn and adapt error message for unsupported wide instruction to ARMv8-M Baseline. (insns): Reorganize instructions shared by ARMv8-M Baseline and ARMv6t2 architecture. (arm_cpus): Set feature bit ARM_EXT2_V6T2_V8M for marvell-pj4 and marvell-whitney cores. (arm_archs): Define armv8-m.base architecture. (cpu_arch_ver): Define ARM_ARCH_V8M_BASE architecture version. (aeabi_set_public_attributes): Add logic to set Tag_CPU_arch to 17 for ARMv8-M Mainline. Set Tag_DIV_use for ARMv8-M Baseline as well. gas/testsuite/ * gas/arm/archv8m-base.d: New file. * gas/arm/attr-march-armv8m.base.d: Likewise. * gas/arm/armv8m.base-idiv.d: Likewise. * gas/arm/any-armv8m.d: Adapt to deal with ARMv8-M Baseline. include/elf/ * arm.h (TAG_CPU_ARCH_V8M_BASE): Declare. include/opcode/ * arm.h (ARM_EXT2_V6T2_V8M): New extension bit. (ARM_AEXT2_V8A): New architecture extension bitfield. (ARM_AEXT2_V8_1A): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS. (ARM_AEXT_V8M_BASE): New architecture extension bitfield. (ARM_AEXT2_V8M): Add extension bit ARM_EXT2_V6T2_V8M. (ARM_ARCH_V6T2): Use ARM_EXT2_V6T2_V8M for the second extension bitfield. (ARM_ARCH_V6KT2): Likewise. (ARM_ARCH_V6ZT2): Likewise. (ARM_ARCH_V6KZT2): Likewise. (ARM_ARCH_V7): Likewise. (ARM_ARCH_V7A): Likewise. (ARM_ARCH_V7VE): Likewise. (ARM_ARCH_V7R): Likewise. (ARM_ARCH_V7M): Likewise. (ARM_ARCH_V7EM): Likewise. (ARM_ARCH_V8A): Likewise. (ARM_ARCH_V8M_BASE): New architecture bitfield. (ARM_ARCH_THUMB2): Include instructions shared by ARMv6t2 and ARMv8-M. (ARM_ARCH_V7A_SEC): Use ARM_EXT2_V6T2_V8M for the second extension bitfield and reindent. (ARM_ARCH_V7A_MP_SEC): Likewise. (ARM_ARCH_V7R_IDIV): Likewise. (ARM_ARCH_V8A_FP): Use ARM_AEXT2_V8A instead of ARM_EXT2_ATOMICS. (ARM_ARCH_V8A_SIMD): Likewise. (ARM_ARCH_V8A_CRYPTOV1): Likewise. opcodes/ * arm-dis.c (arm_opcodes): Guard movw, movt cbz, cbnz, clrex, ldrex, ldrexb, ldrexh, strex, strexb, strexh shared by ARMv6T2 and ARMv8-M by ARM_EXT2_V6T2_V8M instead of ARM_EXT_V6T2. commit 4ed7ed8db2289a9cd61312c14344cb210dc229b7 Author: Thomas Preud'homme Date: Thu Dec 24 17:16:19 2015 +0800 Add assembler support for ARMv8-M Mainline 2015-12-24 Thomas Preud'homme bfd/ (tag_cpu_arch_combine): Adjust v4t_plus_v6_m and comb array to account for new TAG_CPU_ARCH_V4T_PLUS_V6_M value. Deal with NULL values in comb array. binutils/ * readelf.c (arm_attr_tag_CPU_arch): Add ARMv8-M Mainline Tag_CPU_arch value. (arm_attr_tag_THUMB_ISA_use): Add ARMv8-M Mainline Tag_THUMB_ISA_use value. gas/ * config/tc-arm.c (arm_ext_m): Include ARMv8-M. (arm_ext_v8m): New feature for ARMv8-M. (arm_ext_atomics): New feature for ARMv8 atomics. (do_tt): New encoding function for TT* instructions. (insns): Add new entries for ARMv8-M specific instructions and reorganize the ones shared by ARMv8-M Mainline and ARMv8-A. (arm_archs): Define armv8-m.main architecture. (cpu_arch_ver): Define ARM_ARCH_V8M_MAIN architecture version and clarify the ordering rule. (aeabi_set_public_attributes): Use TAG_CPU_ARCH_* macro to refer to Tag_CPU_arch values for ARMv7e-M detection. Add logic to keep setting Tag_CPU_arch to ARMv8-A for -march=all. Also set Tag_CPU_arch_profile to 'A' if extension bit for atomic instructions is set, unless it is ARMv8-M. Set Tag_THUMB_ISA_use to 3 for ARMv8-M. Set Tag_DIV_use to 0 for ARMv8-M Mainline. gas/testsuite/ * gas/arm/archv8m.s: New file. * gas/arm/archv8m-main.d: Likewise. * gas/arm/attr-march-armv8m.main.d: Likewise. * gas/arm/any-armv8m.s: Likewise. * gas/arm/any-armv8m.d: Likewise. include/elf/ * arm.h (TAG_CPU_ARCH_V8M_MAIN): Declare. (MAX_TAG_CPU_ARCH): Define to TAG_CPU_ARCH_V8M_MAIN. (TAG_CPU_ARCH_V4T_PLUS_V6_M): Define to unused value 15. include/opcode/ * arm.h (ARM_EXT2_ATOMICS): New extension bit. (ARM_EXT2_V8M): Likewise. (ARM_EXT_V8): Adjust comment with regards to atomics and remove mention of legacy use for that bit. (ARM_AEXT2_V8_1A): New architecture extension bitfield. (ARM_AEXT2_V8_2A): Likewise. (ARM_AEXT_V8M_MAIN): Likewise. (ARM_AEXT2_V8M): Likewise. (ARM_ARCH_V8A): Use ARM_EXT2_ATOMICS for features in second bitfield. (ARM_ARCH_V8_1A): Likewise with ARM_AEXT2_V8_1A. (ARM_ARCH_V8_2A): Likewise with ARM_AEXT2_V8_2A. (ARM_ARCH_V8M_MAIN): New architecture feature bitfield. (ARM_ARCH_V8A_FP): Use ARM_EXT2_ATOMICS for features in second bitfield and reindent. (ARM_ARCH_V8A_SIMD): Likewise. (ARM_ARCH_V8A_CRYPTOV1): Likewise. (ARM_ARCH_V8_1A_FP): Use ARM_AEXT2_V8_1A to set second bitfield of feature bits. (ARM_ARCH_V8_1A_SIMD): Likewise. (ARM_ARCH_V8_1A_CRYPTOV1): Likewise. opcodes/ * arm-dis.c (arm_opcodes): Guard lda, ldab, ldaex, ldaexb, ldaexh, stl, stlb, stlh, stlex, stlexb and stlexh by ARM_EXT2_ATOMICS instead of ARM_EXT_V8. (thumb32_opcodes): Add entries for wide ARMv8-M instructions. commit fc289b0a832c536a2ec324634cb420f39b212696 Author: Thomas Preud'homme Date: Thu Dec 24 17:01:42 2015 +0800 Consolidate Thumb-1/Thumb-2 ISA detection 2015-12-24 Thomas Preud'homme gas/ * config/tc-arm.c (move_or_literal_pool): Check mov.w, mvm and movw availability against arm_ext_v6t2 instead of checking arm_arch_t2, fixing comments along the way. (handle_it_state): Check arm_ext_v6t2 instead of arm_arch_t2 to generate IT instruction. (t1_isa_t32_only_insn): New function. (md_assemble): Use above new function to check for invalid wide instruction for CPU Thumb ISA and to determine what Thumb extension bit is necessary for that instruction. (md_apply_fix): Use arm_ext_v6t2 instead of arm_arch_t2 to decide if branch is out of range. include/opcode/ * arm.h (ARM_ARCH_THUMB2): Add comment explaining its meaning and remove extension bit not including any Thumb-2 instruction. commit 443bfd5a371633064bf251a74b27382c7774f217 Author: Thomas Preud'homme Date: Thu Dec 24 16:50:26 2015 +0800 Add tests for gas arch autodetection on ARM 2015-12-09 Andre Vieira gas/testsuite/ * gas/arm/automatic-bw.d: New. * gas/arm/automatic-bw.s: New. * gas/arm/automatic-cbz.d: New. * gas/arm/automatic-cbz.s: New. * gas/arm/automatic-clrex.d: New. * gas/arm/automatic-clrex.s: New. * gas/arm/automatic-lda.d: New. * gas/arm/automatic-lda.s: New. * gas/arm/automatic-ldaex.d: New. * gas/arm/automatic-ldaex.s: New. * gas/arm/automatic-ldaexb.d: New. * gas/arm/automatic-ldaexb.s: New. * gas/arm/automatic-ldrex.d: New. * gas/arm/automatic-ldrex.s: New. * gas/arm/automatic-ldrexd.d: New. * gas/arm/automatic-ldrexd.s: New. * gas/arm/automatic-movw.d: New. * gas/arm/automatic-movw.s: New. * gas/arm/automatic-sdiv.d: New. * gas/arm/automatic-sdiv.s: New. * gas/arm/automatic-strexb.d: New. * gas/arm/automatic-strexb.s: New. commit ab8314b3d99625c9a2125d39f4f3e74bf9e49cce Author: Joel Brobecker Date: Tue Dec 22 13:28:41 2015 +0400 [testsuite/Ada] stop using project files when building test programs The current approach when building Ada programs for testing is based on the use of a project file (testsuite/gdb.ada/gnat_ada.gpr). To do that, we pass a number of additional arguments to target_compile, one of them being the project file (via "-P/path/to/gnat_ada.gpr"). This used to work well-enough, but AdaCore is currently working towards removing project-file support from gnatmake (the prefered tool for using project files is gprbuild). So, we need to either switch the compilation to gprbuild, or stop using project files. First, using gprbuild is not always what users will be using to build their applications. So having the option of using gnatmake provides more flexibility towards exactly reproducing past bugs. If we ever need a testcase that requires the use of gprbuild, then I believe support for a new target needs to be added to dejagnu's target_compile. Also, the only real reason behind using a project file in the first place is that we wanted to make it easy to specify the directory where all compilation artifacts get stored. This is a consequence of the organization choice we made for gdb.ada to keep each testcase well organized. It is very easy to achieve that goal without using project files. This is therefore what this patch does: It change gdb_compile_ada to build any program using gnatmake without using a project file (by temporarily changing the current working directory). There is a small (beneficial) side-effect; in the situation where GDB is built in-tree, gnatmake is called as... % gnatmake [...] unit.adb ... which means that the debugging info in unit.o will say contain a filename whose name is 'unit.adb', rather than '/path/to/unit.adb'. This also better matches what users might typically do. But the side- effect is that the unit name in the GDB output is not always a full path. This patch tweaks a couple of testcases to make the path part optional. gdb/testsuite: * lib/ada.exp (target_compile_ada_from_dir): New function. (gdb_compile_ada): Reimplement avoiding the use of project files. * gdb.ada/gnat_ada.gpr: Delete. * gdb.ada/cond_lang.exp: Adjust test to make path before filename optional. * gdb.ada/small_reg_param.exp: Likewise. Tested on x86_64-linux, with both in-tree and out-of-tree builds. commit 64ac34cf666e2f6b47ee4d4ad8d57e8edac8514e Author: GDB Administrator Date: Thu Dec 24 00:00:15 2015 +0000 Automatic date update in version.in commit b1a0d2a059824b9c2826ff27ce459c68d4bf0e10 Author: GDB Administrator Date: Wed Dec 23 00:00:08 2015 +0000 Automatic date update in version.in commit fe33faff35a8ee19db823149e764e3373e603bb9 Author: Simon Marchi Date: Tue Dec 22 10:52:31 2015 -0500 Remove HP-UX reference in foll-vfork.exp One more I just found. Tested with native, native-gdbserver and native-extended-gdbserver on Linux. gdb/testsuite/ChangeLog: * gdb.base/foll-vork.exp: Remove HP-UX special case. commit 491d01d3da18fb61fa6c7c61c091b4cb8c5773f7 Author: Yury Usishchev Date: Tue Dec 22 15:50:13 2015 +0000 ARM: Fix exidx coverage for relocatable builds. bfd * elf-bfd.h: Add callback to count additional relocations. * elf32-arm.c (_arm_elf_section_data): Add new counter. (insert_cantunwind_after): Increment relocations counter. (elf32_arm_fix_exidx_coverage): Remove exidx entries and add terminating CANTUNWIND entry only in final builds. (elf32_arm_add_relocation): New function. (elf32_arm_write_section): Add relocations in relocatable builds. (elf32_arm_count_additional_relocs): New function. (elf_backend_count_additional_relocs): New define. * bfd/elflink.c (bfd_elf_final_link): Use callback and adjust size of .rel section. * bfd/elfxx-target.h (elf_backend_count_additional_relocs): New define. ld * emultempl/armelf.em (gld${EMULATION_NAME}_after_allocation): Call elf32_arm_fix_exidx_coverage for relocatable builds. ld/testsuite * ld-arm/arm-elf.exp: New test. * ld-arm/unwind-rel.d: New file. * ld-arm/unwind-rel1.s: New file. * ld-arm/unwind-rel2.s: New file. * ld-arm/unwind-rel3.s: New file. commit 4abd5ed2221c826bcb843794286777452de5c50b Author: Joel Brobecker Date: Sun Dec 20 09:39:40 2015 -0500 [lynxos] gdbserver hangs when killing inferior from GDB With any program under GDBserver control on LynxOS, killing the program from the debugger (using the "kill" command) causes GDBserver to properly kill the inferior but GDBserver then hangs. This change of behavior occured after the following change was applied: commit f0ea042932e6922c90df3fd0001497d287b97677 Date: Mon Nov 30 16:05:27 2015 +0000 Subject: gdbserver: don't exit until GDB disconnects One of the changes introduced by the commit above is that process_serial_event no longer calls exit after handling the vKill packet. Instead, what happens is that we wait until captured_main finds that we no longer have any inferior to debug, at which point it throws_quit. This (normal) exception is then expected to propagate all the way to the exception handle in function "main", which calls exit. However, before the exception gets propagated, the cleanups are first executed, and one of the cleanups in question is detach_or_kill_for_exit_cleanup, which was put in place by captured_main. detach_or_kill_for_exit_cleanup is basically a wrapper around detach_or_kill_for_exit, which iterates over all inferiors, and kills them all. In our case, we have only one inferior, which we have already killed during the handling for the "vKill" packet. Unfortunately, we did not properly clean our internal data for that inferior up, and so detach_or_kill_for_exit thinks that we still have one inferior, and therefore tries to kill it. This results in lynx_kill being called, doing the following: lynx_ptrace (PTRACE_KILL, ptid, 0, 0, 0); lynx_wait (ptid, &status, 0); the_target->mourn (process); The hang is caused by the call to lynx_wait, which waits for an event from a process which does not exist... This patch fixes the issue by enhancing lynx_mourn to clean the threads and process list up. gdb/gdbserver/ChangeLog: * lynx-low.c (lynx_delete_thread_callback): New function. (lynx_mourn): Properly delete our process and all of its threads. Remove call to clear_inferiors. commit 0e50fe5ca6ed2ce780cbbfa516aec20b023433ce Author: Joel Brobecker Date: Sun Dec 20 00:49:59 2015 -0500 gdbserver crash in gdb/gdbserver/thread.c::thread_search_callback Connecting GDB to a LynxOS-178 GDBserver causes GDBserver to crash: % gdbserver :4444 simple_main Process simple_main created; pid = 19 Listening on port 4444 Remote debugging from host 205.232.38.10 Segmentation fault (core dumped) The crash happens in thread_search_callback where the function calls the_target->thread_stopped (via the thread_stopped macro) without verifying whether the callback is NULL or not. For the record, the regression was introduced by: commit a67a9faef0e32886c83611cc7a0ba61e91123063 Date: Mon Nov 30 16:05:26 2015 +0000 Subject: gdbserver:prepare_access_memory: pick another thread This patch avoids the crash by checking the value of the callback first, before calling it. gdb/gdbserver/ChangeLog: * target.c (thread_search_callback): Add check that the thread_stopped target callback is not NULL before calling it. commit aec47d1d54be415050bbd3ccb93c0157d60ed92d Author: Joel Brobecker Date: Sat Dec 19 09:21:01 2015 -0500 [win32] cannot automatically find executable file [...] warning at GDB startup The following change... commit 43499ea30db2a866412c86952c7e1d7b158d806f Date: Tue Nov 17 15:17:44 2015 +0000 Subject: [C++/mingw] windows-nat.c casts ... causes a small regression in GDB, where we get the following warning at startup: % gdb C:\[...]\gdb.exe: warning: cannot automatically find executable file or library to read symbols. Use "file" or "dll" command to load executable/libraries directly. GNU gdb (GDB) 7.10.50.20151218-cvs (with AdaCore local changes) [...] (gdb) The warning comes from _initialize_loadable which tries to dynamically load some symbols from kernel32.dll and psapi.dll, and in particular: hm = LoadLibrary ("psapi.dll"); if (hm) { GPA (hm, EnumProcessModules); GPA (hm, GetModuleInformation); GPA (hm, GetModuleFileNameEx); } The problem is that the new GPA macro assumes that the name of the variable we use to point to the function, and the name of its associated symbol are the same. This is mostly the case, except for GetModuleFileNameEx, where the name is provided by the GetModuleFileNameEx_name macro (defined differently depending on whether we are on cygwin or not). As a result, the dynamic resolution for GetModuleFileNameEx returns NULL, and we trip the following check which leads to the warning: if (!EnumProcessModules || !GetModuleInformation || !GetModuleFileNameEx) { [...] warning(_("[...]")); } This patch fixes the problem by calling GetProcAddress directly, rather than through the GPA macro, but in a way which hopefully avoids the C++ compilation warning that the previous patch was trying to get rid of. gdb/ChangeLog: * windows-nat.c (_initialize_loadable): Fix computing of GetModuleFileNameEx. commit 239efab16429cad466591ccd1c57bba786171765 Author: Yoshinori Sato Date: Thu Dec 17 01:42:34 2015 +0900 RXv2 support update 2015-12-22 Yoshinori Sato opcodes/ * rx-decode.opc (movco): Use uniqe id. (movli): Likewise. (stnz): Condition fix. (mvtacgu): Destination fix. * rx-decode.c: Regenerate. bfd/ * archures.c: Add bfd_mach_rx_v2. * bfd-in2.h: Regenerate. * cpu-rx.c (arch_info_struct): Add v2 information. * elf32-rx.c (elf32_rx_machine): Add v2 support. commit ac4c9b0459fe89f2b84bf8b18a3bf86bf569b7d1 Author: Mickael Guene Date: Tue Dec 22 14:12:35 2015 +0000 Add support for ARM's NOREAD section flag. include/elf * arm.h: Add arm SHF_ARM_NOREAD section flag. bfd * bfd-in2.h: Regenerate. * section.c: Add SEC_ELF_NOREAD. * elf32-arm.c (elf32_arm_post_process_headers): Only set PF_X attribute if a segment only contains section with SHF_ARM_NOREAD flag. (elf32_arm_fake_sections): Add SEC_ELF_NOREAD conversion. (elf32_arm_section_flags): New function to convert SHF_ARM_NOREAD to bfd flag. (elf32_arm_lookup_section_flags): New function to allow INPUT_SECTION_FLAGS directive with SHF_ARM_NOREAD flag. (elf32_arm_special_sections): Add special sections array to catch section prefix by '.text.noread' pattern. ld/testsuite * ld-arm/arm-elf.exp: New tests. * ld-arm/thumb1-input-section-flag-match.d: New * ld-arm/thumb1-input-section-flag-match.s: New * ld-arm/thumb1-noread-not-present-mixing-two-section.d: New * ld-arm/thumb1-noread-not-present-mixing-two-section.s: New * ld-arm/thumb1-noread-present-one-section.d: New * ld-arm/thumb1-noread-present-one-section.s: New * ld-arm/thumb1-noread-present-two-section.d: New * ld-arm/thumb1-noread-present-two-section.s: New binutils * readelf.c (get_elf_section_flags): Add support for ARM specific section flags. commit 6d265cb4a956310d2cae231ac63a37e11fe376e1 Author: Thomas Preud'homme Date: Tue Dec 22 10:50:21 2015 +0800 Add an expect for running commands with CLI jump 2015-12-22 Thomas Preud'homme gdb/testsuite/ * lib/mi-support.exp (mi_run_cmd_full): Add an expect for the CLI jump case. commit a20a33ffa88d6ca8c42e5c6179024da3d0c569bd Author: GDB Administrator Date: Tue Dec 22 00:00:08 2015 +0000 Automatic date update in version.in commit 10125099f09197b325c7e0e7f2af6d3c04f929a6 Author: Simon Marchi Date: Mon Dec 21 14:38:51 2015 -0500 Remove dead code in testsuite This patch removes cases from the testsuite that are not posssibly used. The messages "Catch of * not yet implemented" were removed here: https://www.sourceware.org/ml/gdb-patches/2004-01/msg00679.html I changed the regexp at the same time to match the string more closely. gdb/testsuite/ChangeLog: * gdb.base/break.exp: Remove dead code. * gdb.base/sepdebug.exp: Likewise. commit 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5 Author: Simon Marchi Date: Mon Dec 21 12:51:54 2015 -0500 Remove HP-UX references fom testsuite This patch removes all special cases for HP-UX, for which support has been removed earlier, that I found in the testsuite. Note that the hppa architecture != HP-UX, since other OSes can run on hppa, so I tried to leave everything that is not HP-UX specific. Two complete tests were completely HP-UX specific, so I removed them. I ran the testsuite on Linux x86-64, native and native-gdbserver, and noticed no regressions. gdb/testsuite/ChangeLog: * gdb.asm/asm-source.exp: Remove HP-UX references. * gdb.base/annota1.exp: Likewise. * gdb.base/annota3.exp: Likewise. * gdb.base/attach.exp: Likewise. * gdb.base/bigcore.exp: Likewise. * gdb.base/break.exp: Likewise. * gdb.base/call-ar-st.exp: Likewise. * gdb.base/callfuncs.exp: Likewise. * gdb.base/catch-fork-static.exp: Likewise. * gdb.base/display.exp: Likewise. * gdb.base/foll-exec-mode.exp: Likewise. * gdb.base/foll-exec.exp: Likewise. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise. * gdb.base/funcargs.exp: Likewise. * gdb.base/hbreak2.exp: Likewise. * gdb.base/inferior-died.exp: Likewise. * gdb.base/interrupt.exp: Likewise. * gdb.base/multi-forks.exp: Likewise. * gdb.base/nodebug.exp: Likewise. * gdb.base/sepdebug.exp: Likewise. * gdb.base/solib1.c: Likewise. * gdb.base/step-test.exp: Likewise. * gdb.mi/non-stop.c: Likewise. * gdb.mi/pthreads.c: Likewise. * gdb.multi/bkpt-multi-exec.ex: Likewise. * gdb.threads/pthreads.c: Likewise. * gdb.threads/staticthreads.exp: Likewise. * lib/future.exp: Likewise. * lib/gdb.exp: Likewise. * gdb.base/so-indr-cl.c: Remove. * gdb.base/so-indr-cl.exp: Likewise. * gdb.base/solib.c: Likewise. * gdb.base/solib.exp: Likewise. * gdb.base/solib2.c: Likewise. commit b6304613bf0bb1c188bed30eb3df6e3e154b4196 Author: Simon Marchi Date: Mon Dec 21 11:23:43 2015 -0500 Remove references to HP CC/aCC compiler from testsuite The HP CC/aCC compiler is exclusive to HP-UX, for which support has been explicitly removed. Therefore, It does not make sense to keep tests for these compilers' quirks. gdb/testsuite/ChangeLog: * gdb.base/break.exp: Remove references to HP CC/aCC compilers. * gdb.base/call-ar-st.exp: Likewise. * gdb.base/callfuncs.exp: Likewise. * gdb.base/condbreak.exp: Likewise. * gdb.base/constvars.exp: Likewise. * gdb.base/hbreak2.exp: Likewise. * gdb.base/langs.exp: Likewise. * gdb.base/list.exp: Likewise. * gdb.base/long_long.exp: Likewise. * gdb.base/ptype.exp: Likewise. * gdb.base/scope.exp: Likewise. * gdb.base/signals.exp: Likewise. * gdb.base/so-impl-ld.exp: Likewise. * gdb.base/varargs.exp: Likewise. * gdb.base/volatile.exp: Likewise. * gdb.base/whatis.exp: Likewise. * gdb.cp/cplusfuncs.exp: Likewise. * gdb.cp/inherit.exp: Likewise. * gdb.cp/local.exp: Likewise. * gdb.cp/member-ptr.exp: Likewise. * gdb.cp/method.exp: Likewise. * gdb.cp/overload.exp: Likewise. * gdb.cp/templates.exp: Likewise. * gdb.stabs/weird.exp: Likewise. * lib/compiler.c: Likewise. * lib/compiler.cc: Likewise. * lib/cp-support.exp: Likewise. * lib/gdb.exp: Likewise. commit 35adc03f3787405297259a1706608bdeaab4fda9 Author: Yao Qi Date: Mon Dec 21 13:55:45 2015 +0000 Use arm_eabi_breakpoint on aarch32 This patch is to get b37a6290 back again, which was removed by d9311bfa by mistake. gdb/gdbserver: 2015-12-21 Yao Qi * linux-aarch32-low.h [__aarch64__]: Use arm_abi_breakpoint arm breakpoint. commit 361fa3a4948143be2b8a113e5c49adb8e8505eb7 Author: Nick Clifton Date: Mon Dec 21 12:00:04 2015 +0000 Fix building pdfs of assembler documentation. PR gas/19386 * doc/as.texinfo (Strings): Prepend a space to index entries that start with a backslash. This works around a problem in the pdf generator. commit b4a7fcab76dc6162a4db4b93d878a212553b722a Author: Joel Brobecker Date: Mon Dec 21 06:51:50 2015 +0400 Minor reformatting fix in gdbtypes.c::create_array_type_with_stride gdb/ChangeLog: * gdbtypes.c (create_array_type_with_stride): Fix indentation. commit c2345c187848c7294b87e51ddc9ecb59c835189c Author: GDB Administrator Date: Mon Dec 21 00:00:08 2015 +0000 Automatic date update in version.in commit bf401b072ea4eaff1af425df69f32cad8d52b57c Author: Simon Marchi Date: Sun Dec 20 09:59:02 2015 -0500 Remove HP-UX reference in testsuite/configure.ac gdb/testsuite/ChangeLog: * configure.ac: Remove HP-UX case. * configure: Regenerate. commit 0965b1441f522361b90acc924534cb9a976e2f97 Author: GDB Administrator Date: Sun Dec 20 00:00:19 2015 +0000 Automatic date update in version.in commit e7826da33d884c21bd1a036e71fe1002fae76ce4 Author: Joel Brobecker Date: Sat Dec 19 07:28:41 2015 +0400 Fix ARI warning in gdb/arch/arm-get-next-pcs.c gdb/ChangeLog: * arch/arm-get-next-pcs.c (arm_get_next_pcs_raw): Remove trailing newline at end of error message. commit bc008695f5f9c72d2eac80d5dc125659ca106fad Author: Sandra Loosemore Date: Fri Dec 18 17:55:26 2015 -0800 Reset pagination counts even when stdin is not a tty. 2015-12-18 Sandra Loosemore gdb/ * event-top.c (command_handler): Don't require stdin to be a tty for call to reinitialize_more_filter. * top.c (command_loop): Likewise. commit 1690b6163c6546305cb5f8811d4c7348d8f435e0 Author: Sandra Loosemore Date: Fri Dec 18 17:53:11 2015 -0800 Make prompt_for_continue call throw_quit directly. 2015-12-18 Sandra Loosemore gdb/ * utils.c (prompt_for_continue): Call throw_quit directly on 'q'. commit 420d30a957d0bc3a773de0490b26aeae1ad3b5a9 Author: GDB Administrator Date: Sat Dec 19 00:00:09 2015 +0000 Automatic date update in version.in commit a28def75916fb4fa8280404f8c023adc0773162d Author: H.J. Lu Date: Fri Dec 18 14:03:43 2015 -0800 Process 64-bit imm/disp only for 64-bit BFD We only need to store 32-bit immediate in 64-bit and optimize 64-bit displacement to 32-bit only for 64-bit BFD. * config/tc-i386.c (optimize_imm): Store 32-bit immediate in 64-bit only for 64-bit BFD (optimize_disp): Optimize 64-bit displacement to 32-bit only for 64-bit BFD. commit 5f2dfcfdb5def494d13bff72275f6ff75fe75f40 Author: Antoine Tremblay Date: Fri Dec 18 15:23:58 2015 -0500 Cast to enum bfd_endian in arm_get_next_pcs_read_memory_unsigned_integer This patch fixes the cxx build broken by commit : d9311bfaf572cf14af577a66e79c51c491553552. Pushed as obvious. gdb/ChangeLog: * arm-tdep.c (arm_get_next_pcs_read_memory_unsigned_integer): Cast to enum bfd_endian) commit aff9c0f8ab32e4f2f7ff9700afe84a61d23a08c6 Author: Simon Marchi Date: Fri Dec 18 13:39:26 2015 -0500 Add documentation to gdb_compile This patch adds some documentation to gdb_compile. It describes the various options that can influence compilation. Most of them are handled by DejaGnu, but are not really documented anywhere, so I think it's good to have a quick reference. Not all possible options are described, that would add way to much noise. I chose those that I think are relevant in the context of writing a test case. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_compile): Add function doc. commit bd2b290956e9a1931cf593b0f2cc934867da1d45 Author: Antoine Tremblay Date: Fri Dec 18 11:33:59 2015 -0500 Enable conditional breakpoints for targets that support software single step in GDBServer This patch enables support for conditional breakpoints if the target supports software single step. This was disabled before as the implementations of software single step were too simple as discussed in https://sourceware.org/ml/gdb-patches/2015-04/msg01110.html. Since these issues are now fixed support can be added back. New tests passing : PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation target and related... No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * server.c (handle_query): Call target_supports_software_single_step. commit 7fe5e27e9d63b065731b1b0b69ffd344942f4f39 Author: Antoine Tremblay Date: Fri Dec 18 11:33:59 2015 -0500 Enable software single stepping for while-stepping actions in GDBServer This patch enables software single stepping if the targets support it, to do while-stepping actions. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-low.c (single_step): New function. (linux_resume_one_lwp_throw): Call single_step. (start_step_over): Likewise. commit d9311bfaf572cf14af577a66e79c51c491553552 Author: Antoine Tremblay Date: Fri Dec 18 11:33:59 2015 -0500 Support software single step on ARM in GDBServer This patch teaches GDBServer how to software single step on ARM linux by sharing code with GDB. The arm_get_next_pcs function in GDB is now shared with GDBServer. So that GDBServer can use the function to return the possible addresses of the next PC. A proper shared context was also needed so that we could share the code, this context is described in the arm_get_next_pcs structure. Testing : No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * Makefile.in (ALL_TARGET_OBS): Append arm-get-next-pcs.o, arm-linux.o. (ALLDEPFILES): Append arm-get-next-pcs.c, arm-linux.c (arm-linux.o): New rule. (arm-get-next-pcs.o): New rule. * arch/arm-get-next-pcs.c: New file. * arch/arm-get-next-pcs.h: New file. * arch/arm-linux.h: New file. * arch/arm-linux.c: New file. * arm.c: Include common-regcache.c. (thumb_advance_itstate): Moved from arm-tdep.c. (arm_instruction_changes_pc): Likewise. (thumb_instruction_changes_pc): Likewise. (thumb2_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. * arm.h (submask): Move macro from arm-tdep.h (bit): Likewise. (bits): Likewise. (sbits): Likewise. (BranchDest): Likewise. (thumb_advance_itstate): Moved declaration from arm-tdep.h (arm_instruction_changes_pc): Likewise. (thumb_instruction_changes_pc): Likewise. (thumb2_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. * arm-linux-tdep.c: Include arch/arm.h, arch/arm-get-next-pcs.h arch/arm-linux.h. (arm_linux_get_next_pcs_ops): New struct. (ARM_SIGCONTEXT_R0, ARM_UCONTEXT_SIGCONTEXT, ARM_OLD_RT_SIGFRAME_SIGINFO, ARM_OLD_RT_SIGFRAME_UCONTEXT, ARM_NEW_RT_SIGFRAME_UCONTEXT, ARM_NEW_SIGFRAME_MAGIC): Move stack layout defines to arch/arm-linux.h. (arm_linux_sigreturn_next_pc_offset): Move to arch/arm-linux.c. (arm_linux_software_single_step): Adjust for arm_get_next_pcs implementation. * arm-tdep.c: Include arch/arm-get-next-pcs.h. (arm_get_next_pcs_ops): New struct. (submask): Move macro to arm.h. (bit): Likewise. (bits): Likewise. (sbits): Likewise. (BranchDest): Likewise. (thumb_instruction_changes_pc): Move to arm.c (thumb2_instruction_changes_pc): Likewise. (arm_instruction_changes_pc): Likewise. (shifted_reg_val): Likewise. (thumb_advance_itstate): Likewise. (thumb_get_next_pc_raw): Move to arm-get-next-pcs.c. (arm_get_next_pc_raw): Likewise. (arm_get_next_pc): Likewise. (thumb_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence): Likewise. (arm_get_next_pcs_read_memory_unsigned_integer): New function. (arm_get_next_pcs_addr_bits_remove): Likewise. (arm_get_next_pcs_syscall_next_pc): Likewise. (arm_get_next_pcs_is_thumb): Likewise. (arm_software_single_step): Adjust for arm_get_next_pcs implementation. * arm-tdep.h: (arm_get_next_pc): Remove declaration. (arm_get_next_pcs_read_memory_unsigned_integer): New declaration. (arm_get_next_pcs_addr_bits_remove): Likewise. (arm_get_next_pcs_syscall_next_pc): Likewise. (arm_get_next_pcs_is_thumb): Likewise. (arm_deal_with_atomic_sequence: Remove declaration. * common/gdb_vecs.h: Add CORE_ADDR vector definition. * configure.tgt (aarch64*-*-linux): Add arm-get-next-pcs.o, arm-linux.o. (arm*-wince-pe): Add arm-get-next-pcs.o. (arm*-*-linux*): Add arm-get-next-pcs.o, arm-linux.o, arm-get-next-pcs.o (arm*-*-netbsd*,arm*-*-knetbsd*-gnu): Add arm-get-next-pcs.o. (arm*-*-openbsd*): Likewise. (arm*-*-symbianelf*): Likewise. (arm*-*-*): Likewise. * symtab.h: Move CORE_ADDR vector definition to gdb_vecs.h. gdb/gdbserver/ChangeLog: * Makefile.in (SFILES): Append arch/arm-linux.c, arch/arm-get-next-pcs.c. (arm-linux.o): New rule. (arm-get-next-pcs.o): New rule. * configure.srv (arm*-*-linux*): Add arm-get-next-pcs.o, arm-linux.o. * linux-aarch32-low.c (arm_abi_breakpoint): Remove macro. Moved to linux-aarch32-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint): Likewise. (thumb_breakpoint_len, thumb2_breakpoint): Likewise. (thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode): Make non-static. * linux-aarch32-low.h (arm_abi_breakpoint): New macro. Moved from linux-aarch32-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint): Likewise. (thumb_breakpoint_len, thumb2_breakpoint): Likewise. (thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode): New declaration. * linux-arm-low.c: Include arch/arm-linux.h aarch/arm-get-next-pcs.h, sys/syscall.h. (get_next_pcs_ops): New struct. (get_next_pcs_addr_bits_remove): New function. (get_next_pcs_is_thumb): New function. (get_next_pcs_read_memory_unsigned_integer): Likewise. (arm_sigreturn_next_pc): Likewise. (get_next_pcs_syscall_next_pc): Likewise. (arm_gdbserver_get_next_pcs): Likewise. (struct linux_target_ops) : Initialize. * linux-low.h: Move CORE_ADDR vector definition to gdb_vecs.h. * server.h: Include gdb_vecs.h. commit 68ce205943e0821eacd8028881ced3607cc83c0d Author: Antoine Tremblay Date: Fri Dec 18 11:33:59 2015 -0500 Share regcache function regcache_raw_read_unsigned This patch is in preparation for software single step support on ARM in GDBServer. It adds a new shared function regcache_raw_read_unsigned and regcache_raw_get_unsigned so that GDB and GDBServer can use the same call to fetch a raw register into an integer. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * Makefile.in (SFILES): Append common/common-regcache.c. (COMMON_OBS): Append common/common-regcache.o. (common-regcache.o): New rule. * common/common-regcache.h (register_status) New enum. (regcache_raw_read_unsigned): New declaration. * common/common-regcache.c: New file. * regcache.h (enum register_status): Move to common-regcache.h. (regcache_raw_read_unsigned): Likewise. (regcache_raw_get_unsigned): Likewise. gdb/gdbserver/ChangeLog: * Makefile.in (SFILES): Append common/common-regcache.c. (OBS): Append common-regcache.o. (common-regcache.o): New rule. * regcache.c (init_register_cache): Initialize cache to REG_UNAVAILABLE. (regcache_raw_read_unsigned): New function. * regcache.h (REG_UNAVAILABLE, REG_VALID): Replaced by shared register_status enum. commit d0e59a68884ad3a346ff0f6f763636c7245e4cb3 Author: Antoine Tremblay Date: Fri Dec 18 11:33:59 2015 -0500 Refactor arm_software_single_step to use regcache This patch is in preparation for software single step support on ARM in GDBServer. It refactors arm_*_software_single_step and sub-functions to use regcache instead of frame to access registers so that the code can be shared more easily between GDB and GDBServer. Note also that since the intention is at some point to get rid of frame completely in that function, memory reads have also been replaced by read_memory_unsigned_integer rather than get_frame_memory_unsigned. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * arm-linux-tdep.c (arm_linux_sigreturn_next_pc_offset): New function. (arm_linux_sigreturn_next_pc): Likewise. (arm_linux_syscall_next_pc): Use regcache instead of frame. (arm_linux_software_single_step): Likewise. * arm-tdep.c (arm_is_thumb): New function. (shifted_reg_va): Use regcache instead of frame. (thumb_get_next_pc_raw): Likewise. (arm_get_next_pc_raw): Likewise. (arm_get_next_pc): Likewise. (thumb_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence_raw): Likewise. (arm_deal_with_atomic_sequence): Likewise. (arm_software_single_step): Likewise. * arm-tdep.h (struct gdbarch_tdep): Use regcache for syscall_next_pc. (arm_get_next_pc): Use regcache. (arm_deal_with_atomic_sequence): Likewise. (arm_is_thumb): New declaration. * regcache.c (regcache_raw_get_unsigned): New function. * regcache.h (regcache_raw_get_unsigned): New function declaration. commit cba7e83fda349cbf423fab274f5b8677d8148947 Author: Antoine Tremblay Date: Fri Dec 18 11:33:58 2015 -0500 Share some ARM target dependent code from GDB with GDBServer This patch is in preparation for software single stepping support on ARM it shares some functions and definitions that will be needed. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } Not tested: wince/bsd build. gdb/ChangeLog: * arch/arm.c (bitcount): Move from arm-tdep.c. (condition_true): Likewise. * arch/arm.h (Instruction Definitions): Move form arm-tdep.h. (condition_true): Move defenition from arm-tdep.h. (bitcount): Likewise. * arm-tdep.c (condition_true): Move to arch/arm.c. (bitcount): Likewise. * arm-tdep.h (Instruction Definitions): Move to arch/arm.h. * arm-wince-tdep.c: Include arch/arm.h. * armnbsd-tdep.c: Likewise. commit fa5308bdcc4967861d1277b45205c2623b154a64 Author: Antoine Tremblay Date: Fri Dec 18 11:33:58 2015 -0500 Replace breakpoint_reinsert_addr by get_next_pcs operation in GDBServer This patch in preparation for software single step support on ARM. It refactors breakpoint_reinsert_addr into get_next_pcs so that multiple location can be returned. When software single stepping there can be multiple possible next addresses because we're stepping over a conditional branch instruction, for example. The operation get_next_pcs handles that by returning a vector of all the possible next addresses. Software breakpoints are installed at each location returned. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-aarch64-low.c (the_low_targets): Rename breakpoint_reinsert_addr to get_next_pcs. * linux-arm-low.c (the_low_targets): Likewise. * linux-bfin-low.c (the_low_targets): Likewise. * linux-cris-low.c (the_low_targets): Likewise. * linux-crisv32-low.c (the_low_targets): Likewise. * linux-low.c (can_software_single_step): Likewise. (install_software_single_step_breakpoints): New function. (start_step_over): Use install_software_single_step_breakpoints. * linux-low.h: New CORE_ADDR vector. (struct linux_target_ops) Rename breakpoint_reinsert_addr to get_next_pcs. * linux-mips-low.c (the_low_targets): Likewise. * linux-nios2-low.c (the_low_targets): Likewise. * linux-sparc-low.c (the_low_targets): Likewise. commit c9f203207d418f72217f4bc0997acd809a0479ce Author: H.J. Lu Date: Fri Dec 18 08:15:27 2015 -0800 Fix formatting in coff-x86_64.c * coff-x86_64.c (coff_amd64_reloc): Fix formatting. commit ec70be9f6162aca5fb14876e232e68c64b1faa7f Author: Nick Clifton Date: Fri Dec 18 08:49:02 2015 +0000 Fix formatting of coff-i386.c * coff-i386.c (coff_i386_reloc): Fix formatting. commit ce3e49806d505721e0875e704de0b6fcba7660ed Author: Peter Collingbourne Date: Thu Dec 17 16:50:35 2015 -0800 Implement --long-plt flag (ARM only). gold/ PR gold/18780 * arm.cc (Target_arm::do_make_data_plt): Choose PLT generator based on value of --long-plt flag. (Output_data_plt_arm_standard::do_get_plt_entry_size): Moved to Output_data_plt_arm_short. (Output_data_plt_arm_standard::do_fill_plt_entry): Likewise. (Output_data_plt_arm_standard::plt_entry): Likewise. (Output_data_plt_arm_standard::do_fill_first_plt_entry): Fix variable reference. (Output_data_plt_arm_short): New class. (Output_data_plt_arm_short::do_fill_plt_entry): Error out on too large PLT offsets instead of asserting. (Output_data_plt_arm_long): New class. * options.h (General_options): Define --long-plt flag. commit 33e0d1ca50b06a19fc1b813755cce5b6c4042d95 Author: GDB Administrator Date: Fri Dec 18 00:00:08 2015 +0000 Automatic date update in version.in commit 16e1d72743fe26eae47c587587b5cd009195803f Author: Maciej W. Rozycki Date: Thu Dec 17 17:25:42 2015 +0000 MAINTAINERS: Add myself as MIPS maintainer binutils/ * MAINTAINERS: Add myself as MIPS maintainer. commit dea6e325f6aca9ec51b932ad514063d57bcc5aea Author: Ramana Radhakrishnan Date: Thu Dec 17 16:33:24 2015 +0000 [Patch ARM] Fix build attributes for armv8-a in case of assembler files that contain no directives. Add missing ChangeLog entry. commit a6904d5a6aa63e4bef7207407250d8b76b56f8a9 Author: Pedro Alves Date: Thu Dec 17 14:20:52 2015 +0000 Fix PR threads/19354: "info threads" error with multiple inferiors Note: this applies on top of: [PATCH] Remove support for LinuxThreads and vendor 2.4 kernels w/ backported NPTL https://sourceware.org/ml/gdb-patches/2015-12/msg00214.html We try to avoid using libthread_db.so to list threads in the inferior when debugging live processes, but the code that decides whether to use it decides incorrectly if you have more than one inferior, and the current inferior doesn't have execution yet. The result is visible as: (gdb) add-inferior Added inferior 2 (gdb) inferior 2 [Switching to inferior 2 [] ()] (gdb) info inferiors Num Description Executable 1 process 15397 /home/pedro/gdb/tests/threads * 2 (gdb) info threads Cannot find new threads: generic error (gdb) Fix this by checking whether each inferior has execution rather than just the current inferior. By moving the core updating to linux-nat.c's update_thread_list implementation, this also ends up fixing the lwp-last-seen-running-on-core updating in the case we're debugging a program that uses raw clone rather than pthreads, as linux-thread-db.c isn't pushed in the target stack in that scenario. Tested on x86_64 Fedora 20. gdb/ChangeLog: 2015-12-17 Pedro Alves PR threads/19354 * linux-nat.c (linux_nat_update_thread_list): Update process cores each lwp was last seen running on here. * linux-thread-db.c (update_thread_core): Delete. (thread_db_update_thread_list_td_ta_thr_iter): Rename to ... (thread_db_update_thread_list): ... this. Skip inferiors with execution. Also call the target beneath. (thread_db_update_thread_list): Delete. gdb/testsuite/ChangeLog: 2015-12-17 Pedro Alves PR threads/19354 * gdb.multi/info-threads.exp: New file. commit 4a6ed09b0f70c79b11bc1e0973a7333d9316a287 Author: Pedro Alves Date: Thu Dec 17 14:20:51 2015 +0000 Remove support for LinuxThreads and vendor 2.4 kernels w/ backported NPTL Since we now rely on PTRACE_EVENT_CLONE being available (added in Linux 2.5.46), we're relying on NPTL. This commit removes the support for older LinuxThreads, as well as the workarounds for vendor 2.4 kernels with NPTL backported. - Rely on tkill being available. - Assume gdb doesn't get cancel signals. - Remove code that checks the LinuxThreads restart and cancel signals in the inferior. - Assume that __WALL is available. - Assume that non-leader threads report WIFEXITED. - Thus, no longer need to send signal 0 to check whether threads are still alive. - Update comments throughout. Tested on x86_64 Fedora 20, native and gdbserver. gdb/ChangeLog: * configure.ac: Remove tkill checks. * configure, config.in: Regenerate. * linux-nat.c: Remove HAVE_TKILL_SYSCALL check. Update top level comments. (linux_nat_post_attach_wait): Remove 'cloned' parameter. Use __WALL. (attach_proc_task_lwp_callback): Don't set the cloned flag. (linux_nat_attach): Adjust. (kill_lwp): Remove HAVE_TKILL_SYSCALL check. No longer fall back to 'kill'. (linux_handle_extended_wait): Use __WALL. Don't set the cloned flag. (wait_lwp): Use __WALL. Update comments. (running_callback, stop_and_resume_callback): Delete. (linux_nat_filter_event): Don't stop and resume all lwps. Don't check if the event LWP has previously exited. (check_zombie_leaders): Update comments. (linux_nat_wait_1): Use __WALL. (kill_wait_callback): Don't handle clone processes separately. Use __WALL instead. (linux_thread_alive): Delete. (linux_nat_thread_alive): Return true as long as the LWP is in the LWP list. (linux_nat_update_thread_list): Assume the kernel supports PTRACE_EVENT_CLONE. (get_signo): Delete. (lin_thread_get_thread_signals): Remove LinuxThreads references. No longer check __pthread_sig_restart / __pthread_sig_cancel in the inferior. * linux-nat.h (struct lwp_info) : Delete field. * linux-thread-db.c: Update comments. (_initialize_thread_db): Remove LinuxThreads references. * nat/linux-waitpid.c (my_waitpid): No longer emulate __WALL. Pass down flags unmodified. * linux-waitpid.h (my_waitpid): Update documentation. gdb/gdbserver/ChangeLog: * linux-low.c (linux_kill_one_lwp): Remove references to LinuxThreads. (kill_lwp): Remove HAVE_TKILL_SYSCALL check. No longer fall back to 'kill'. (linux_init_signals): Delete. (initialize_low): Adjust. * thread-db.c (thread_db_init): Remove LinuxThreads reference. commit c3c874459bf57a70ccbf71a39a3a7dc3c472a201 Author: Yao Qi Date: Thu Dec 17 13:07:54 2015 +0000 Fix one heap buffer overflow in aarch64_push_dummy_call Hi, AddressSanitizer reports an error like this, (gdb) PASS: gdb.base/call-ar-st.exp: continue to tbreak9 print print_long_arg_list(a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, *flags, *flags_combo, *three_char, *five_char, *int_char_combo, *d1, *d2, *d3, *f1, *f2, *f3) ================================================================= ==6236==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200008eb50 at pc 0x89e432 bp 0x7fffa3df9080 sp 0x7fffa3df9078 READ of size 5 at 0x60200008eb50 thread T0 #0 0x89e431 in memory_xfer_partial gdb/target.c:1264 #1 0x89e6c7 in target_xfer_partial gdb/target.c:1320 #2 0x89f267 in target_write_partial gdb/target.c:1595^M #3 0x8a014b in target_write_with_progress gdb/target.c:1889^M #4 0x8a0262 in target_write gdb/target.c:1914^M #5 0x89ee59 in target_write_memory gdb/target.c:1492^M #6 0x9a1c74 in write_memory gdb/corefile.c:393^M #7 0x467ea5 in aarch64_push_dummy_call gdb/aarch64-tdep.c:1388 The problem is that an instance of stack_item_t is created to adjust stack for alignment, the item.len is correct, but item.data is buf, which is wrong, because item.len can be greater than the length of buf. This patch sets item.data to NULL, and only update sp (no inferior memory writes on stack for this item). gdb: 2015-12-17 Yao Qi * aarch64-tdep.c (struct stack_item_t): Update comments. (pass_on_stack): Set item.data to NULL. (aarch64_push_dummy_call): Call write_memory if si->data isn't NULL. commit 10c9892b66d56de0aab3fbaec3d59a0304dc0a21 Author: Ramana Radhakrishnan Date: Thu Dec 17 10:55:54 2015 +0000 [Patch ARM] Fix build attributes for armv8-a in case of assembler files that contain no directives. There is currently a problem in the way in which we produce build attributes for simple assembler files that have armv8-a instructions. In these case we need to generate TAG_ISA_THUMB_Use to be Thumb-2 and set the architecture profile to be 'A' rather than not setting architecture profile to be 'A' and setting TAG_ISA_THUMB_Use to be Thumb-1. This is a pre-requisite for any v8-m patches that have been posted. arm-none-eabi gas testsuite run. no regressions. 2015-12-17 Ramana Radhakrishnan * gas/config/tc-arm.c (aeabi_set_public_attributes): Adjust TAG_ARCH_profile for armv8-a. * gas/testsuite/gas/arm/armv8a-automatic-hlt.d: New test. * gas/testsuite/gas/arm/armv8a-automatic-hlt.s: New test. * gas/testsuite/gas/arm/armv8a-automatic-lda.d: New test. * gas/testsuite/gas/arm/armv8a-automatic-lda.s: New test. commit 0bef0414267e22a1ba581b001836fc800b6370e1 Author: Christophe Lyon Date: Thu Dec 17 11:10:16 2015 +0100 Add forgotten ChangeLog updates for 72d98d16ed09584660d0cbb759d90f8dfeef2343: 2015-12-16 Mickael Guene bfd/ * bfd-in2.h: Regenerate. * reloc.c: Add new relocations. * libbfd.h (bfd_reloc_code_real_names): Add new relocations display names. * elf32-arm.c (elf32_arm_howto_table_1): Add HOWTO for new relocations. (elf32_arm_reloc_map): Add bfd/arm mapping for new relocations. (elf32_arm_final_link_relocate): Implement new relocations resolution. gas/ * doc/c-arm.texi: Add documentation about new directives * config/tc-arm.c (group_reloc_table): Add mapping between gas syntax and new relocations. (do_t_add_sub): Keep new relocations for add operand. (do_t_mov_cmp): Keep new relocations for mov operand. (insns): Use 'shifter operand with possible group relocation' operand parse code for movs operand. (md_apply_fix): Implement mov and add encoding when new relocations on them. (tc_gen_reloc): Add new relocations. (arm_fix_adjustable): Since offset has a limited range ([0:255]) we disable adjust_reloc_syms() for new relocations. gas/testsuite/ * gas/arm/adds-thumb1-reloc-local.d: New * gas/arm/adds-thumb1-reloc-local.s: New * gas/arm/movs-thumb1-reloc-local.d: New * gas/arm/movs-thumb1-reloc-local.s: New include/ * elf/arm.h: Add new arm relocations. ld/testsuite/ * ld-arm/arm-elf.exp (armelftests_common): Add new relocations tests. * ld-arm/thumb1-adds.d: New * ld-arm/thumb1-adds.s: New * ld-arm/thumb1-movs.d: New * ld-arm/thumb1-movs.s: New commit 95c29a83ebadd0038fd304539a83c5e90798c1b9 Author: Roland McGrath Date: Wed Dec 16 16:35:27 2015 -0800 PR gold/17473: Fix gold build with system C++ headers that use . gold/ PR gold/17473 * binary.cc: Move #include "safe-ctype.h" to be last #include. commit eedd1410d342a8305f7063457d9090ff0de2366e Author: GDB Administrator Date: Thu Dec 17 00:00:09 2015 +0000 Automatic date update in version.in commit 7544db951abbb5dca5373dcc7ae83ed60c0782ad Author: Pedro Alves Date: Wed Dec 16 22:56:48 2015 +0000 Fix -Wno-unknown-warning support detection Ref: https://sourceware.org/ml/gdb/2015-12/msg00024.html We have code in configure.ac that tries to detect whether the compiler supports each warning and suppress it if not, but that doesn't work with "-Wno-" options, because gcc doesn't error out for -Wno-unknown-warning unless other diagnostics are being produced. See https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html. Handle this by checking whether -Wfoo works when we actually want -Wno-foo. gdb/ChangeLog: 2015-12-16 Pedro Alves * configure.ac (compiler warning flags): When testing a -Wno-foo option, check whether -Wfoo works instead. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2015-12-16 Pedro Alves * configure.ac (compiler warning flags): When testing a -Wno-foo option, check whether -Wfoo works instead. * configure: Regenerate. commit a4e22a5df64a46bc99f737a982c0b9d1e8a45e2b Author: Pedro Alves Date: Wed Dec 16 19:25:32 2015 +0000 [C++] Fix -Winvalid-offsetof warnings with g++ 4.4 Ref: https://sourceware.org/ml/gdb/2015-12/msg00014.html Fixes the build in C++ mode with g++ 4.4: gdb/btrace.h: In function ‘size_t VEC_btrace_insn_s_embedded_size(int)’: gdb/btrace.h:84: error: invalid access to non-static data member ‘VEC_btrace_insn_s::vec’ of NULL object gdb/btrace.h:84: error: (perhaps the ‘offsetof’ macro was used incorrectly) gdb/btrace.h: In function ‘VEC_btrace_insn_s* VEC_btrace_insn_s_alloc(int)’: gdb/btrace.h:84: error: invalid access to non-static data member ‘VEC_btrace_insn_s::vec’ of NULL object gdb/btrace.h:84: error: (perhaps the ‘offsetof’ macro was used incorrectly) gdb/btrace.h: In function ‘VEC_btrace_insn_s* VEC_btrace_insn_s_copy(VEC_btrace_insn_s*)’: gdb/btrace.h:84: error: invalid access to non-static data member ‘VEC_btrace_insn_s::vec’ of NULL object gdb/btrace.h:84: error: (perhaps the ‘offsetof’ macro was used incorrectly) gdb/btrace.h: In function ‘VEC_btrace_insn_s* VEC_btrace_insn_s_merge(VEC_btrace_insn_s*, VEC_btrace_insn_s*)’: gdb/btrace.h:84: error: invalid access to non-static data member ‘VEC_btrace_insn_s::vec’ of NULL object gdb/btrace.h:84: error: (perhaps the ‘offsetof’ macro was used incorrectly) gdb/btrace.h: In function ‘int VEC_btrace_insn_s_reserve(VEC_btrace_insn_s**, int, const char*, unsigned int)’: gdb/btrace.h:84: error: invalid access to non-static data member ‘VEC_btrace_insn_s::vec’ of NULL object gdb/btrace.h:84: error: (perhaps the ‘offsetof’ macro was used incorrectly) gdb/ChangeLog: 2015-12-16 Pedro Alves * common/vec.h (vec_offset): New macro. (DEF_VEC_ALLOC_FUNC_I, DEF_VEC_ALLOC_FUNC_O): Use it instead of offsetof. commit 72d98d16ed09584660d0cbb759d90f8dfeef2343 Author: Mickael Guene Date: Wed Dec 16 10:09:05 2015 +0100 [ARM] Add support for thumb1 pcrop relocations. To support thumb1 execute-only code we need to support four new relocations (R_ARM_THM_ALU_ABS_G0_NC, R_ARM_THM_ALU_ABS_G1_NC, R_ARM_THM_ALU_ABS_G2_NC and R_ARM_THM_ALU_ABS_G3_NC). These relocations allow the static linker to finalize construction of symbol address. Typical sequence of code to get address of the symbol foo is then the following : movs r3, #:upper8_15:#foo lsls r3, #8 adds r3, #:upper0_7:#foo lsls r3, #8 adds r3, #:lower8_15:#foo lsls r3, #8 adds r3, #:lower0_7:#foo This will give following sequence of text and relocations after assembly : 4: 2300 movs r3, #0 4: R_ARM_THM_ALU_ABS_G3_NC foo 6: 021b lsls r3, r3, #8 8: 3300 adds r3, #0 8: R_ARM_THM_ALU_ABS_G2_NC foo a: 021b lsls r3, r3, #8 c: 3300 adds r3, #0 c: R_ARM_THM_ALU_ABS_G1_NC foo e: 021b lsls r3, r3, #8 10: 3300 adds r3, #0 10: R_ARM_THM_ALU_ABS_G0_NC foo commit 9c35a5290213e9a28e6cc691e1cc7ba5055653f7 Author: GDB Administrator Date: Wed Dec 16 00:00:18 2015 +0000 Automatic date update in version.in commit 29b1539538f5f285e017adbc64b8d72b45c104a8 Author: Matthew Wahab Date: Tue Dec 15 16:37:38 2015 +0000 [ARM] Enable CRC by default for ARMv8.1 and later. ARMv8.1 includes CRC as a required extension but the +crc feature isn't enabled by -march=armv8.1-a as it should be. This patch fixes that. opcode/include 2015-12-15 Matthew Wahab * arm.h (ARM_ARCH_V8_1A): Add the CRC_EXT_ARMV8 co-processor feature macro. (ARM_ARCH_V8_2A): Likewise. Change-Id: Id1fe0e6fa51dede19d61e1fd08e68628ea1b1e9e commit ff1fe6fad9687cebddcdf82076c55d7025df7566 Author: Nick Clifton Date: Tue Dec 15 16:21:29 2015 +0000 Remove refernces to a non-existent silicon errata. * doc/c-msp430.texi (MSP430 Options): Remove references to a non-existent silicon errata. * config/tc-msp430.c: Likewise. commit a22279dd83da7a0dd2b496c92dc2522427f74e37 Author: Yao Qi Date: Tue Dec 15 16:09:41 2015 +0000 Tweak gdb.trace/ftrace.exp for aarch64 Some tests are skipped on aarch64 unexpectedly because arg0exp isn't set. This patch is to set arg0exp to "$x0" for aarch64. gdb/testsuite: 2015-12-15 Yao Qi * gdb.trace/ftrace.exp: Set arg0exp to "$x0" if target is aarch64*-*-*. commit 270f824531ceef276616a5d2f3027fa9f537c10b Author: Jan Beulich Date: Tue Dec 15 14:31:25 2015 +0100 bfd: don't produce corrupt COFF symbol table due to long ELF file name symbols The re-writing logic in _bfd_coff_final_link() overwrote the ".file" part of the symbol table entry, due to not coping with the auxiliary entry generated in all cases. Note that while I would have wanted to add a test case, (a) I didn't spot any one testing the base functionality here, and (b) I wasn't able to figure out proper conditionals to use in e.g. ld-elf/elf.exp to check for the necessary PE/PE+ support (which varies by target). commit 1d19cae752a7b032b8253feb4fa3b9f1dc162823 Author: Dominik Vogt Date: Tue Dec 15 14:09:14 2015 +0100 Fix invalid left shift of negative value Fix occurrences of left-shifting negative constants in C code. sim/arm/ChangeLog: * thumbemu.c (handle_T2_insn): Fix left shift of negative value. * armemu.c (handle_v6_insn): Likewise. sim/avr/ChangeLog: * interp.c (sign_ext): Fix left shift of negative value. sim/mips/ChangeLog: * micromips.igen (process_isa_mode): Fix left shift of negative value. sim/msp430/ChangeLog: * msp430-sim.c (get_op, put_op): Fix left shift of negative value. sim/v850/ChangeLog: * simops.c (v850_bins): Fix left shift of negative value. commit 08832196accd270fa053e8125c21e7a54ab19fe0 Author: Nick Clifton Date: Tue Dec 15 12:28:38 2015 +0000 Update the copyright notices in the affected files. PR 19339 * elf-vxworks.h: Update copyright notice. * elf-vxworks.c: Update copyright notice. * elf-nacl.h: Update copyright notice. * elf-nacl.c: Update copyright notice. commit caa8d70005e4e12392683c799b30790fc4c62166 Author: Nick Clifton Date: Tue Dec 15 11:01:03 2015 +0000 Add support for the MRS instruction to the AArch64 simulator. * aarch64/simulator.c (system_get): New function. Provides read access to the dczid system register. (do_mrs): New function - implements the MRS instruction. (dexSystem): Call do_mrs for the MRS instruction. Halt on unimplemented system instructions. commit a117b0a51cd3c768453c244a3754c1b9a77e74fc Author: Yoshinori Sato Date: Tue Dec 15 09:26:56 2015 +0000 Add support for RX V2 Instruction Set binutils * readelf.c(get_machine_flags): Add v2 flag. gas * config/rx-defs.h(rx_cpu_type): Add RXV2 type. * config/tc-rx.c(cpu_type_list): New type lookup table. (md_parse_option): Use lookup table for choose cpu. (md_show_usage): Add rxv2 for mcpu option. * doc/c-rx.texi: Likewise. * config/rx-parse.y: Add v2 instructions and ACC register. (rx_check_v2): check v2 type. include/elf * rx.h(E_FLAG_RX_V2): New RXv2 type. include/opcode * rx.h: Add new instructions. opcoes * rx-deocde.opc(rx_decode_opcode): Add new instructions pattern. * rx-dis.c(register_name): Add new register. gas/testsuite * gas/rx/emaca.d: New. * gas/rx/emaca.sm: New. * gas/rx/emsba.d: New. * gas/rx/emsba.sm: New. * gas/rx/emula.d: New. * gas/rx/emula.sm: New. * gas/rx/fadd.d: Add new pattern. * gas/rx/fadd.sm: Add new pattern. * gas/rx/fmul.d: Add new pattern. * gas/rx/fmul.sm: Add new pattern. * gas/rx/fsqrt.d: New. * gas/rx/fsqrt.sm: New. * gas/rx/fsub.d: Add new pattern. * gas/rx/fsub.sm: Add new pattern. * gas/rx/ftou.d: New. * gas/rx/ftou.sm: New. * gas/rx/maclh.d: New. * gas/rx/maclh.sm: New. * gas/rx/maclo.d: Add new pattern. * gas/rx/maclo.sm: Add new pattern. * gas/rx/macros.inc: Add new register. * gas/rx/movco.d: New. * gas/rx/movco.sm: New. * gas/rx/movli.d: New. * gas/rx/movli.sm: New. * gas/rx/msbhi.d: New. * gas/rx/msbhi.sm: New. * gas/rx/msblh.d: New. * gas/rx/msblh.sm: New. * gas/rx/msblo.d: New. * gas/rx/msblo.sm: New. * gas/rx/mullh.d: New. * gas/rx/mullh.sm: New. * gas/rx/mvfacgu.d: New. * gas/rx/mvfacgu.sm: New. * gas/rx/mvfachi.d: Add new pattern. * gas/rx/mvfachi.sm: Add new pattern. * gas/rx/mvfaclo.d: Add new pattern. * gas/rx/mvfaclo.sm: Add new pattern. * gas/rx/mvfacmi.d: Add new pattern. * gas/rx/mvfacmi.sm: Add new pattern. * gas/rx/mvfc.d: Add new pattern. * gas/rx/mvtacgu.d: New. * gas/rx/mvtacgu.sm: New. * gas/rx/mvtc.d: Add new pattern. * gas/rx/popc.d: Add new pattern. * gas/rx/pushc.d: Add new pattern. * gas/rx/racl.d: New. * gas/rx/racl.sm: New. * gas/rx/racw.d: Add new pattern. * gas/rx/racw.sm: Add new pattern. * gas/rx/rdacl.d: New. * gas/rx/rdacl.sm: New. * gas/rx/rdacw.d: New. * gas/rx/rdacw.sm: New. * gas/rx/rx.exp: Add option. * gas/rx/stnz.d: Add new pattern. * gas/rx/stnz.sm: Add new pattern. * gas/rx/stz.d: Add new pattern. * gas/rx/stz.sm: Add new pattern. * gas/rx/utof.d: New. * gas/rx/utof.sm: New. commit ef603459d553034a3f4daeb9c8c673f5ef3e4ed0 Author: GDB Administrator Date: Tue Dec 15 00:00:08 2015 +0000 Automatic date update in version.in commit 0588c79688b061699500f317e193bbb3fe50c41d Author: Sandra Loosemore Date: Mon Dec 14 15:22:12 2015 -0800 Check for readline support in gdb.base/history-duplicates.exp. 2015-12-14 Sandra Loosemore gdb/testsuite/ * gdb.base/history-duplicates.exp: Skip if no readline support. commit 5d978e177217d8e9da8648498f0592b5cd885e69 Author: Sandra Loosemore Date: Mon Dec 14 15:17:23 2015 -0800 Skip gdb.base/gdbinit-history.exp on remote hosts. 2015-12-14 Sandra Loosemore gdb/testsuite/ * gdb.base/gdbinit-history.exp: Skip for remote-host testing. commit 7e763b8690ff486d9783f43ce0f4bbb7c9e81b6c Author: Sandra Loosemore Date: Mon Dec 14 15:14:03 2015 -0800 Skip gdb.base/gdbhistsize-history.exp on remote hosts. 2015-12-14 Sandra Loosemore gdb/testsuite/ * gdb.base/gdbhistsize-history.exp: Skip for remote-host testing. commit 87a3a92c46c770e6aa2ca1209f46af16eae2c4e9 Author: Sandra Loosemore Date: Mon Dec 14 15:02:59 2015 -0800 Skip tests that send ctrl-c to GDB if nointerrupts target property is set. 2015-12-14 Sandra Loosemore gdb/testsuite/ * gdb.base/completion.exp: Skip tests that interrupt GDB with ctrl-C if nointerrupts target property is set. * gdb.base/double-prompt-target-event-error.exp: Likewise. * gdb.base/paginate-after-ctrl-c-running.exp: Likewise. * gdb.base/paginate-bg-execution.exp: Likewise. * gdb.base/paginate-execution-startup.exp: Likewise. * gdb.base/random-signal.exp: Likewise. * gdb.base/range-stepping.exp: Likewise. * gdb.cp/annota2.exp: Likewise. * gdb.cp/annota3.exp: Likewise. * gdb.gdb/selftest.exp: Likewise. * gdb.threads/continue-pending-status.exp: Likewise. * gdb.threads/leader-exit.exp: Likewise. * gdb.threads/manythreads.exp: Likewise. * gdb.threads/pthreads.exp: Likewise. * gdb.threads/schedlock.exp: Likewise. * gdb.threads/sigthread.exp: Likewise. commit 19d9d4efd18bcc633e99cb6a3e39bd9b22ca70ce Author: Don Breazeal Date: Mon Dec 14 11:18:06 2015 -0800 Target remote mode fork and exec event documentation This patch implements documentation updates for target remote mode fork and exec events. A summary of the rationale for the changes made here: * Connecting to a remote target -- explain that the two protocols exist. * Connecting in target remote mode -- explain invoking gdbserver for target remote mode, and move remote-specific text from original "Connecting to a remote target" section. * Connecting in target extended-remote mode -- promote this section from "Using the gdbserver Program | Running gdbserver | Multi-Process Mode for gdbserver". Put it next to the target remote mode section. * Host and target files -- collect paragraphs dealing with how to locate symbol files from original sections "Connecting to a remote target" and "Using the gdbserver program | Connecting to gdbserver". * Steps for connecting to a remote target -- used to be "Using the gdbserver program | Connecting to gdbserver" * Remote connection commands -- used to be the bulk of "Connecting to a remote target". Added "target extended-remote" commands and information. gdb/ChangeLog: * NEWS: Announce fork and exec event support for target remote. gdb/doc/ChangeLog: * gdb.texinfo (Forks): Correct Linux kernel version where fork and exec events are supported, add notes about support of these events in target remote mode. (Connecting): Reorganize and clarify distinctions between target remote, extended-remote, and multiprocess. Reorganize related text from separate sections into new sections. (Server): Note effects of target extended-remote mode. Delete section on Multi-Process Mode for gdbserver. Move some text to "Connecting" node. commit 8020350c5277e056e89b0ea5e14a8d09408f7fb3 Author: Don Breazeal Date: Mon Dec 14 11:18:05 2015 -0800 Target remote mode fork and exec event support This patch implements support for fork and exec events with target remote mode Linux targets. For such targets with Linux kernels 2.5.46 and later, this enables follow-fork-mode, detach-on-fork and fork and exec catchpoints. The changes required to implement this included: * Don't exit from gdbserver if there are still active inferiors. * Allow changing the active process in remote mode. * Enable fork and exec events in remote mode. * Print "Ending remote debugging" only when disconnecting. * Combine remote_kill and extended_remote_kill into a single function that can handle the multiple inferior case for target remote. Also, the same thing for remote_mourn and extended_remote_mourn. * Enable process-style ptids in target remote. * Remove restriction on multiprocess mode in target remote. gdb/gdbserver/ChangeLog: * server.c (process_serial_event): Don't exit from gdbserver in remote mode if there are still active inferiors. gdb/ChangeLog: * inferior.c (number_of_live_inferiors): New function. (have_live_inferiors): Use number_of_live_inferiors in place of duplicate code. * inferior.h (number_of_live_inferiors): Declare new function. * remote.c (set_general_process): Remove restriction on target remote mode. (remote_query_supported): Likewise. (remote_detach_1): Exit in target remote mode only when there is just one live inferior left. (remote_disconnect): Unpush the target directly instead of calling remote_mourn. (remote_kill): Rewrite function to handle both target remote and extended-remote. Call remote_kill_k. (remote_kill_k): New function. (extended_remote_kill): Delete function. (remote_mourn, extended_remote_mourn): Combine functions into one, remote_mourn, and enable extended functionality for target remote. (remote_pid_to_str): Enable "process" style ptid string for target remote. (remote_supports_multi_process): Remove restriction on target remote mode. commit a8f077dc25b1732fb272a7ff10f72b5ca6f67b70 Author: Don Breazeal Date: Mon Dec 14 11:18:05 2015 -0800 Target remote mode fork and exec test updates This patch updates tests for fork and exec events in target remote mode. In the majority of cases this was a simple matter of removing some code that disabled the test for target remote. In a few cases the test needed to be disabled; in those cases the gdb_protocol was checked instead of using the [is_remote target] etc. In a couple of cases we needed to use clean_restart, since target remote doesn't support the run command, and in one case we had to modify an expect expression to allow for a "multiprocess-style" ptid. Tested with the patch that implemented target remote mode fork and exec event support. gdb/testsuite/ChangeLog: * gdb.base/execl-update-breakpoints.exp (main): Enable for target remote. * gdb.base/foll-exec-mode.exp (main): Disable for target remote. * gdb.base/foll-exec.exp (main): Enable for target remote. * gdb.base/foll-fork.exp (main): Likewise. * gdb.base/foll-vfork.exp (main): Likewise. * gdb.base/multi-forks.exp (main): Likewise, and use clean_restart. (proc continue_to_exit_bp_loc): Use clean_restart. * gdb.base/pie-execl.exp (main): Disable for target remote. * gdb.base/watch-vfork.exp (main): Enable for target remote. * gdb.mi/mi-nsthrexec.exp (main): Likewise. * gdb.threads/execl.exp (main): Likewise. * gdb.threads/fork-child-threads.exp (main): Likewise. * gdb.threads/fork-plus-threads.exp (main): Disable for target remote. * gdb.threads/fork-thread-pending.exp (main): Enable for target remote. * gdb.threads/linux-dp.exp (check_philosopher_stack): Allow pid.tid style ptids, instead of just tid. * gdb.threads/thread-execl.exp (main): Enable for target remote. * gdb.threads/watchpoint-fork.exp (main): Likewise. * gdb.trace/report.exp (use_collected_data): Allow pid.tid style ptids, instead of just tid. commit 4fd0a9fd005ea3affe8e61f6ec82817055a3bc2b Author: Matthew Wahab Date: Mon Dec 14 17:46:21 2015 +0000 [AArch64][PATCH 14/14] Support FP16 Adv.SIMD Scalar Shift By Immediate instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch extends instructions in the group Adv.SIMD Scalar Shift By Immediate to support FP16, making this support available when +simd+fp16 is enabled. The extended instructions are: SCVTF, FCVTZS, UCVTF and FCVTZU. The general form for these instructions is , , # gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16: Add tests for Adv.SIMD scalar shift by immediate instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SSHIFT_H): New. (aarch64_opcode_table): Add fp16 versions of scvtf, fcvtzs, ucvtf and fcvtzu to the Adv.SIMD scalar shift by immediate group. Change-Id: I40506496f52dd96909e7344f243b38a1870df7ff commit b5b0f34c669a91b9d873221ea3d688cf7f495ab5 Author: Matthew Wahab Date: Mon Dec 14 17:40:03 2015 +0000 [AArch64][PATCH 13/14] Support FP16 Adv.SIMD Shift By Immediate instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch extends instructions in the group Adv.SIMD Shift By Immediate to support FP16, making this support available when +simd+fp16 is enabled. The new instructions legal make some uses of the 4h vector type that had been invalid. This patch adjusts a test that checks for these uses. The extended instructions are: SCVTF, FCVTZS, UCVTF and FCVTZU. The general form for these instructions is ., ., # where T is 4h or 8h. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD across lanes instructions. * gas/aarch64/illegal.d: Update expected output. * gas/aarch64/illegal.s: Replace tests for illegal use of 'h' specifier. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_VSHIFT_H): New. (aarch64_opcode_table): Add fp16 versions of scvtf, fcvtzs, ucvtf and fcvtzu to the Adv.SIMD shift by immediate group. Change-Id: I3480f63883d54db46562573185da6982f2365ee8 commit b195470dd29e8a5c8810209fb2d22c30004fe6ab Author: Matthew Wahab Date: Mon Dec 14 17:35:47 2015 +0000 [AArch64][PATCH 12/14] Support FP16 Adv.SIMD Scalar Pairwise instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Adv.SIMD Scalar Pairwise, making them available when +simd+fp16 is enabled. The instructions added are: FMAXNMP, FADDP, FMAXP, FMINNMP and FMINP The general form for these instructions is , . where T is 4h or 8h. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD Scalar Pairwise instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SISD_PAIR_H): New. (aarch64_opcode_table): Add fp16 versions of fmaxnmp, faddp, fmaxp, fminnmp, fminp to the Adv.SIMD scalar pairwise group. Change-Id: I19937ede3441b66dd0f940269ece895b17d3c345 commit 3067d3b96cfb88e86acf94d2aa1575cff0e0110f Author: Matthew Wahab Date: Mon Dec 14 17:27:52 2015 +0000 [AArch64][PATCH 11/14] Add support for the 2H vector type. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. The FP16 additions to the scalar pairwise group introduce a new vector type, 2H. This patch adds support for this vector type to binutils. The patch adds a new operand qualifier to the enum aarch64.h:aarch64_opnd_qualifier. This interferes with the calculation used by aarch64-dis.c:get_vreg_qualifier_from_value, called when decoding an instruction. Since the new vector type is only used in FP16 scalar pairwise instructions which do not require the function, this patch adjusts the function to ignore the new qualifier. gas/ 2015-12-14 Matthew Wahab * config/tc-aarch64.c (parse_neon_type_for_operand): Adjust to take into account new vector type 2H. (vectype_to_qualifier): Likewise. include/opcode/ 2015-12-14 Matthew Wahab * aarch64.h (enum aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_V_2H. opcodes/ 2015-12-14 Matthew Wahab * aarch64-dis.c (get_vreg_qualifier_from_value): Update comment and adjust calculation to ignore qualifier for type 2H. * aarch64-opc.c (aarch64_opnd_qualifier): Add "2H". Change-Id: Idf9a3694732962c80fde04f08c7304de9164f126 commit 65f2205d609d9c38e1a7f009d2c6833aecfb83eb Author: Matthew Wahab Date: Mon Dec 14 17:25:35 2015 +0000 [AArch64][PATCH 10/14] Rework code mapping vector types to operand qualifiers. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. The FP16 additions to the scalar pairwise group introduce a new vector type. This patch reworks code in the assembler to allow the addition of the new type. The new vector type requires the addtion of a new operand qualifier to the enum aarch64_opnd_qualifier which is defined include/opcodes/aarch64.h, in the group prefixed by AARCH64_OPN_QLF_V_. The correctness of the GAS utility function tc-aarch64.c:vectype_to_qualifier is heavily dependent on the number and ordering of this group. In particular, it makes assumptions about the positions of the members of the group that are not true if a qualifier for type 2H is added before the qualifier for 4H. This patch reworks the function to weaken its assumptions, making it calculate positions in the group from the type (B, H, S, D, Q) and register width. gas/ 2015-12-14 Matthew Wahab * config/tc-aarch64.c (vectype_to_qualifier): Calculate operand qualifier from per-type base and offet. Change-Id: I95535864e342a6dec46f69d2696b3900a008f0b1 commit 4b5fc357a17d59929cf39869d19fc4eabdb7ae81 Author: Matthew Wahab Date: Mon Dec 14 17:22:36 2015 +0000 [AArch64][PATCH 9/14] Support FP16 Adv.SIMD Modified Immediate instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds an FP16 instruction to the group Adv.SIMD Modified Immediate, making it available when +simd+fp16 is enabled. The instruction added is: FMOV. The form of this instructions is , # gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD modified immediate instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SIMD_IMM_H): New. (aarch64_opcode_table): Add fp16 version of fmov to the Adv.SIMD modified immediate group. Change-Id: Ic66af44c494e6a53fb1cf01c372cdc62d12643e2 commit bb515fea4ac30f761c17dec701c95c0b54fabf30 Author: Matthew Wahab Date: Mon Dec 14 17:16:50 2015 +0000 [AArch64][PATCH 8/14] Support FP16 Adv.SIMD Across Lanes instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Adv.SIMD Across Lanes, making them available when +simd+fp16 is enabled. The instructions added are: FMAXNMV, FMAXV, FMINNMV and FMINV. The general form for these instructions is , . where T is 4h or 8h. The new instructions valid make uses of the 8H and 4H that were previously illegal. The patch adjusts a test for illegal uses of vector types to take this into account. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for Adv.SIMD across lanes instructions. * gas/aarch64/illegal.d: Update expected output. * gas/aarch64/illegal.s: Replace test for illegal use of 'h' specifier. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_XLANES_FP_H): New. (aarch64_opcode_table): Add fp16 versions of fmaxnmv, fmaxv, fminnmv, fminv to the Adv.SIMD across lanes group. Change-Id: Ib9a47e867f55e0272c2446eb7e16837503d2f94c commit 5f7728b7413b3bed576f8dd11d1343c20b3a2333 Author: Matthew Wahab Date: Mon Dec 14 17:07:51 2015 +0000 [AArch64][PATCH 7/14] Support FP16 Scalar Indexed Element instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Scalar Indexed Element, making them available when +simd+fp16 is enabled. The instructions added are: FMLA, FMLS, FMUL and FMULX. The general form for these instructions is , , .h[] gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for scalar indexed element instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (aarch64_opcode_table): Add fp16 versions of fmla, fmls, fmul and fmulx to the scalar indexed element group. Change-Id: I6a4ee20a9ae1019b89d0fd05da55222f267c5627 commit 42f23f6218262ae8488caab214b7f272c6758941 Author: Matthew Wahab Date: Mon Dec 14 17:01:56 2015 +0000 [AArch64][PATCH 6/14] Support FP16 Vector Indexed Element instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Vector Indexed Element, making them available when +simd+fp16 is enabled. The instructions added are: FMLA, FMLS, FMUL and FMULX. The general form for these instructions is ., ., .h[] where T is 4h or 8h gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for vector indexed element instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_ELEMENT_FP_H): New. (aarch64_opcode_table): Add fp16 versions of fmla, fmls, fmul and fmulx to the vector indexed element group. Change-Id: Ib70cd4eaa6ea2938f84ac41f31d72644dbb0ceb4 commit 80776b29d60ebdcd3631604858f144a72b8bcb8e Author: Matthew Wahab Date: Mon Dec 14 16:57:04 2015 +0000 [AArch64][PATCH 5/14] Support FP16 Scalar Two Register Misc. instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Scalar Two Register Misc, making them available when +simd+fp16 is enabled. The instructions added are: FCMGT, FCMGE, FCMEQ, FCMLE, FCMLT, FCVTNS, FCVTNU, FCVTPS, FCVTPU, FCVTMS, FCVTMU, FCVTZS, FCVTZU, FCVTAS, FCVTAU, SCVTF, UCVTF, FRECPE, FRSQRTE and FRECPX. The general form for these instructions is , or , , #0.0 Tested the series for aarch64-none-linux-gnu with cross-compiled check-binutils and check-gas. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for scalar two register misc. instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_SISD_FCMP_H_0): new. (QL_S_2SAMEH): New. (aarch64_opcode_table): Add fp16 versions of fcvtns, fcvtms, fcvtas, scvtf, fcmgt, fcmeq, fcmlt, fcvtps, fcvtzs, frecpe, frecpx, fcvtnu, fcvtmu, fcvtau, ucvtf, fcmge, fcmle, fcvtpu, fcvtzu and frsqrte to the scalar two register misc. group. Change-Id: I19b25baae33027ce1bade68cc8dc47a4321d045c commit f3aa142b8b04bfccef2cbc3233b565c2b3faa01a Author: Matthew Wahab Date: Mon Dec 14 16:54:38 2015 +0000 [AArch64][PATCH 4/14] Support FP16 Vector Two Register Misc. instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Vector Two Register Misc, making them available when +simd+fp16 is enabled. The instructions added are: FCMGT, FCMGE, FCMEQ, FCMLE, FCMLT, FABS, FNEG, FRINTN, FRINTA, FRINTP, FRINTM, FRINTX, FRINTZ, FRINTI, FCVTNS, FCVTNU, FCVTPS, FCVTPU, FCVTMS, FCVTMU, FCVTZS, FCVTZU, FCVTAS, FCVTAU, SCVTF, UCVTF, FRECPE, FRSQRTE and FSQRT. The general form for these instructions is ., . where T is 4h or 8h. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for vector two register misc. instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_V2SAMEH): New. (aarch64_opcode_table): Add fp16 versions of frintn, frintm, fcvtns, fcvtms, fcvtas, scvtf, fcmgt, fcmeq, fcmlt, fabs, frintp, frintz, fcvtps, fcvtzs, frecpe, frinta, frintx, fcvtnu, fcvtmu, fcvtau, ucvtf, fcmge, fcmle, fneg, frinti, fcvtpu, fcvtzu, frsqrte and fsqrt to the vector register misc. group. Change-Id: I0267511a7f7ea14247504d29fe4752e84c9af9ad commit 6b4680fbd08221530ad3d541cd51a866eefef6fc Author: Matthew Wahab Date: Mon Dec 14 16:49:34 2015 +0000 [AArch64][PATCH 3/14] Support ARMv8.2 FP16 Scalar Three Same instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Scalar Three Register Same, making them available when +simd+fp16 is enabled. The instructions added are: FABD, FMULX, FCMEQ, FCMGE, FCMGT, FACGE, FACGT, FRECPS and FRSQRTS. The general form for these instructions is , , gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: Update expected output. * gas/aarch64/advsimd-fp16.s: Add tests for scalar three register same instructions. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (aarch64_opcode_table): Add fp16 versions of fmulx, fcmeq, frecps, frsqrts, fcmge, facge, fabd, fcmgt and facgt to the scalar three same group. Change-Id: I155eb8d7c1e9a7c89d691d7e4aae83be51ff1238 commit 51d543ed936c9ea7d045ecf80030e6bc8ffff29f Author: Matthew Wahab Date: Mon Dec 14 16:44:02 2015 +0000 [AArch64][PATCH 2/14] Support ARMv8.2 FP16 Vector Three Same instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to floating point and Adv.SIMD support. This patch adds FP16 instructions to the group Vector Three Register Same, making them available when +simd+fp16 is enabled. The instructions added are: FMAXNM, FMAXNMP, FNMINNM, FMINNMP, FMLA, FMLS, FADD, FADDP, FSUB, FABD, FMULX, FMUL, FCMEQ, FCMGE, FCMGT, FACGE, FACGT, FMAX, FMAXP, FMIN, FMINP, FRECPS, FDIV and FRSQRTS. The general form for these instructions is ., ., . where T is 4h or 8h. gas/testsuite/ 2015-12-14 Matthew Wahab * gas/aarch64/advsimd-fp16.d: New. * gas/aarch64/advsimd-fp16.s: New. opcodes/ 2015-12-14 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_V3SAMEH): New. (aarch64_opcode_table): Add fp16 versions of fmaxnm, fmla, fadd, fmulx, fcmeq, fmax, frecps, fminnm, fmls, fsub, fmin, frsqrts, fmaxnmp, faddp, fmul, fcmge, facge, fmaxp, fdiv, fminnmp, fabd, fcmgt, facgt and fminp to the vector three same group. Change-Id: I3f1c5fe82ca73f7a17fe5329cf2b0de03c94328c commit 40d16a76c781bc9951d22ee359e07c6c240b81ba Author: Matthew Wahab Date: Mon Dec 14 16:34:47 2015 +0000 [AArch64][PATCH 1/14] Support ARMv8.2 FP16 Adv.SIMD instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to floating point and Adv.SIMD support. This patch set adds the 16-bit Adv.SIMD vector and scalar instructions to binutils, making them available when both +simd and +fp16 architecture extensions are enabled. The series also adds support for a new vector type, 2H, used by the FP16 scalar pairwise instructions. The patches in this series: - Add a FP16 Adv.SIMD feature macro for use by the encoding/decoding routines. - Add FP16 instructions in the group Vector Three Register Same. - Add FP16 instructions in the group Scalar Three Register Same. - Add FP16 instructions in the group Vector Two Register Misc. - Add FP16 instructions in the group Scalar Two Register Misc. - Add FP16 instructions in the group Vector Indexed Element. - Add FP16 instructions in the group Scalar Indexed Element. - Add FP16 instructions in the group Adv.SIMD Across Lanes. - Add FP16 instructions in the group Adv.SIMD Modified Immediate. - Rework some code for handling vector types to weaken its assumptions about available vector-types. - Add support for the 2H vector type. - Add FP16 instructions in the group Adv.SIMD Scalar Pairwise. - Add FP16 instructions in the group Adv.SIMD Shift By Immediate. - Add a FP16 instructions in the group Adv.SIMD Scalar Shift By Immediate. This patch adds the feature macro SIMD_F16 to the AArch64 encoding/decoding routines. It is used to decide when the new instructions are available to the assembler and is true when both +simd and +fp16 are selected. opcodes/ 2015-12-14 Matthew Wahab * aarch64-tbl.h (aarch64_feature_simd_f16): New. (SIMD_F16): New. Change-Id: Iee5a37928418f15e51dfaa927b24cafef7295e8f commit 6351190792e586b5e80fe0efa0f254b4da0b6705 Author: Matthew Wahab Date: Mon Dec 14 16:28:46 2015 +0000 [AArch64] Fix errors rebasing the ARMv8.2 AT and system registers patch A mistake with rebasing the ARMv8.2 AT instruction patch left this part + /* AT S1E1RP, AT S1E1WP. Values are from aarch64_sys_regs_at. */ + if ((reg->value == CPENS (0, C7, C9, 0) + || reg->value == CPENS (0, C7, C9, 1)) + && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_2)) + return FALSE; in aarch64_pstatefield_supported_p rather than in aarch64_sys_ins_reg_supported_p, where it was supposed to be. The patch adding support for id_aa64mmfr2_el1, also had the effect of removing a conditional branch in aarch64_sys_reg_supported_p. The effect of both of these is to suppress an error if some ARMv8.2 system registers are used with the wrong -march settings. This patch fixes these mistakes. opcodes/ 2015-12-14 Matthew Wahab * aarch64-opc.c (aarch64_sys_reg_supported_p): Add mistakenly removed statement. (aarch64_pstatefield_supported_p): Move feature checks for AT registers .. (aarch64_sys_ins_reg_supported_p): .. to here. Change-Id: I48783d118eaaf0f3312e8b08a8340ef7af4e36a4 commit 132874d7e3c94d8cc6f865b57f286cf62e5ad0b8 Author: Andrew Burgess Date: Fri Dec 11 17:06:35 2015 +0000 gdb: Use TYPE_LENGTH macro Fixes a couple of places where we access the length field of the type structure directly, rather than using the TYPE_LENGTH macro. gdb/ChangeLog: * i386-tdep.c (i386_mpx_info_bounds): Use TYPE_LENGTH. (i386_mpx_set_bounds): Likewise. * solib-darwin.c (darwin_load_image_infos): Likewise. (darwin_solib_read_all_image_info_addr): Likewise. commit 92e18d93433197e0cee12366b17297a984e76bd8 Author: Jan Beulich Date: Mon Dec 14 09:25:10 2015 +0100 gas: free allocated symbol name in .cfi_label handling I've just noticed this further oversights of the original commit. commit 552e55ed06b1e68dfde4fbf3dc0dbd9f43f92108 Author: Jan Beulich Date: Mon Dec 14 09:24:04 2015 +0100 nm: basic COFF symbol type support for SysV-style symbol table dumping commit 365f51be4900322d3c833183083ff359f4b93db6 Author: GDB Administrator Date: Mon Dec 14 00:00:19 2015 +0000 Automatic date update in version.in commit 39040bb911bc71e49f2a2dd951f8af1b44e562d7 Author: Cary Coutant Date: Sun Dec 13 14:04:24 2015 -0800 Remove const from return type of get_output_view. gold/ * object.h (Object::get_output_view): remove const from return type. (Object::do_get_output_view): Likewise. (Sized_relobj_file::do_get_output_view): Likewise. * reloc.cc (Sized_relobj_file::do_get_output_view): Likewise. commit 67dd2c2073b194f68b10f9d53c70132fc385d437 Author: GDB Administrator Date: Sun Dec 13 00:00:08 2015 +0000 Automatic date update in version.in commit dafa877d360978c80c71ce6c64a4cbc29effdd10 Author: Alan Modra Date: Sat Dec 12 21:28:27 2015 +1030 Fix SH gas testsuite invalid assembly exposed by ec9ab52c * gas/sh/tlsd.s: Use .tdata not .tbss. * gas/sh/tlsnopic.s: Likewise. commit b817670b52b7414d592cbfd96fd77cf725a33413 Author: Alan Modra Date: Sat Dec 12 17:26:33 2015 +1030 Enable 2 operand form of powerpc mfcr with -many This is a workaround for a gcc bug. PR 19359 * ppc-opc.c (insert_fxm): Remove "ignored" from error message. (powerpc_opcodes): Remove single-operand mfcr. commit 1f157432d9d71fa036cdefb51a64d35de19b50ab Author: GDB Administrator Date: Sat Dec 12 00:00:08 2015 +0000 Automatic date update in version.in commit 4fdd372d502d241eb42032844836ae031830237a Author: Andrew Burgess Date: Sat Nov 21 12:13:07 2015 +0100 gdb: Extend help text for 'list' command. Reference the 'listsize' setting in the help text for the 'list' command to help users find this setting. gdb/ChangeLog: * cli/cli-cmds.c (_initialize_cli_cmds): Extend help text for 'list' command. commit 3b2464a8d39b8b787664438253b8fdf7625cac32 Author: Andrew Burgess Date: Mon Nov 16 09:39:43 2015 +0000 gdb: Add an error when 'list -' reaches the start of a file. When a a user uses 'list +' to list forward through a source file they eventually reach the end of the source file. Subsequent uses of 'list +' result in an error message like this, that let the user know they are at the end of the source file: Line number XXX out of range; FILENAME has YYY lines. Compare this to the current behaviour of 'list -' which lists backwards through a source file. When the user reaches the beginning of the source file, subsequent uses of 'list -' result in the command silently returning. This can be confusing if the previous uses of 'list -' have scrolled off the users display, the user receives no reminder that the have already seen the start of the file. After this commit a use of 'list -' when the user has already seen the start of a file will receive the following error: Already at the start of FILENAME. gdb/ChangeLog: * cli/cli-cmds.c (list_command): Add an error when trying to use '-' to scan read off the start of the source file. gdb/testsuite/ChangeLog: * gdb.base/list.exp (test_list_forward): Add end of file error test. (test_repeat_list_command): Add end of file error test. (test_list_backwards): Add beginning of file error test. commit a0def019aaf79adf3add2a0559ab75bb84d72085 Author: Andrew Burgess Date: Mon Nov 16 09:33:32 2015 +0000 gdb: 'list' command, tweak handling of +/- arguments. There is an inconsistency with the handling of the special +/- arguments to the list command. For the very first time that list is used (after the inferior has changed locations) then only the first character of the argument string is checked, so 'list +BLAH' will operate as 'list +' and 'list -----FOO' will operate as 'list -'. This compares to each subsequent use of list, where the whole argument string is checked, so 'list +BLAH' will try to list lines of code around the function '+BLAH'. This commit unifies the behaviour so that the whole argument string is checked, in order to list the next 10, or previous 10 lines from a file only 'list +' and 'list -' are now valid. gdb/ChangeLog: * cli/cli-cmds.c (list_command): Check that the argument string is a single character, either '+' or '-'. gdb/testsuite/ChangeLog: * gdb.base/list.exp (test_list_invalid_args): New function, defined, and called. commit 5c000dff26b7c5159ca1a6d562e7ab50656f4b73 Author: Andrew Burgess Date: Wed Nov 25 00:11:43 2015 +0000 gdb: Make test names unique in list.exp. gdb/testsuite/ChangeLog: * gdb.base/list.exp (test_list): Make test names unique. commit 1a48ce76774633e9e27dd245ba275a714b2b339f Author: Andrew Burgess Date: Mon Nov 16 09:30:35 2015 +0000 gdb: Small code restructure for list_command. Move handling of special +/- arguments to the list_command function inside a single if block, this helps group all related functionality together. There should be no user visible changes after this commit. gdb/ChangeLog: * cli/cli-cmds.c (list_command): Move all handling of +/- arguments into a single if block. commit 8c05462adbc01f0aba946c42422146ccca2ae4db Author: Andrew Burgess Date: Mon Nov 16 09:27:40 2015 +0000 gdb: Use NULL instead of 0 for pointer comparison. Small code cleanup, use NULL instead of 0 when checking pointers. There should be no user visible changes after this commit. gdb/ChangeLog: * cli/cli-cmds.c (list_command): Use NULL instead of 0 when checking pointers. commit f43f85715ac097b6ff4bfaed00879eb541428c1a Author: Andrew Burgess Date: Thu Nov 12 09:48:32 2015 +0000 gdb: Make lines_to_list variable static. Small clean up, make variable static. gdb/ChangeLog: * source.c (lines_to_list): Make static. commit 6e0813d359c6eaddc481b3b902ca4ccc1251febe Author: Cary Coutant Date: Fri Dec 11 14:20:41 2015 -0800 Pass relocations to Target::do_calls_non_split. gold/ * target.h (Target::calls_non_split): Add prelocs, reloc_count parameters. (Target::do_calls_non_split): Likewise. * target.cc (Target::do_calls_non_split): Likewise. * reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Adjust call to Target::calls_non_split. * i386.cc (Target_i386::do_calls_non_split): Add prelocs, reloc_count parameters. * powerpc.cc (Target_powerpc::do_calls_non_split): Likewise. * x86_64.cc (Target_x86_64::do_calls_non_split): Likewise. commit 6b2353a53a621680dc839366f4b2b4f96eccb6da Author: Cary Coutant Date: Fri Dec 11 14:01:22 2015 -0800 Make output views accessible to Target during do_relocate(). gold/ * object.cc (Sized_relobj_file::Sized_relobj_file): Initialize output_views_. * object.h (Object::get_output_view): New function. (Object::do_get_output_view): New function. (Sized_relobj_file::do_get_output_view): New function. (Sized_relobj_file::output_views_): New data member. * reloc.cc: (Sized_relobj_file::do_relocate): Store pointer to output views in class object. (Sized_relobj_file::do_get_output_view): New function. commit f1637ebed142eabd96cbc009edda8ec903c71fd6 Author: Yao Qi Date: Fri Dec 11 16:21:09 2015 +0000 Remove gdb.base/coremaker2.c I happen to find that coremaker2.c isn't used in the testsuite (if I don't miss anything). I don't believe it until I see this ChangeLog entry, 1999-11-18 Fred Fish * gdb.base/coremaker2.c: Add sample program for generating cores that is more self contained than coremaker.c. Eventually I'll add more code to this and tie it into the testsuite. looks Fred didn't "tie it into testsuite" later. gdb/testsuite: 2015-12-11 Yao Qi * gdb.base/coremaker2.c: Remove. commit db91f50261d30e66350281d18759aa7490672a34 Author: Yao Qi Date: Fri Dec 11 11:19:52 2015 +0000 Understand arm breakpoints in aarch64_breakpoint_at AArch64 GDBserver can debug ARM program, and it should recognize various arm breakpoint instructions. This patch should be included in 17b1509a. gdb/gdbserver: 2015-12-11 Yao Qi * linux-aarch64-low.c (aarch64_breakpoint_at): Call arm_breakpoint_at if the process is 32-bit. commit b37a6290beb90f4f65f1513626205f7bac695624 Author: Yao Qi Date: Fri Dec 11 11:19:52 2015 +0000 Use arm_eabi_breakpoint on aarch32 Nowdays, GDBserver chooses arm breakpoint instructions by checking macro __ARM_EABI__. When aarch64 GDBserver debugs arm program, arm_eabi_breakpoint is still needed, but __ARM_EABI__ isn't defined in aarch64 compiler. This causes GDBserver chooses the wrong breakpoint instruction for arm program. This patch fixes it. gdb/gdbserver: 2015-12-11 Yao Qi * linux-aarch32-low.c [__aarch64__]: Use arm_abi_breakpoint arm breakpoint. commit 1e6f4800fc01c7957d0688158385aba3bf5ce8de Author: Matthew Wahab Date: Fri Dec 11 10:22:40 2015 +0000 [AArch64][Patch 5/5] Add instruction PSB CSYNC The Statistical Profile Extension adds the instruction PSB CSYNC as an alias for the HINT #17 instruction. This patch adds the instruction to binutils as a HINT alias that takes an operand. A new operand type, AARCH64_OPND_BARRIER_PSB, is added to represent the operand to PSB. A parser for the operand type is added to the assembler and a printer to the disassembler. The operand name "csync" is added to the list of HINT options with HINT number #17. Encoding and decoding of the operand is handled by the ins_hint/ext_hint functions added in the preceding patches. gas/ 2015-12-11 Matthew Wahab * config/tc-aarch64.c (aarch64_hint_opt_hsh): New. (parse_barrier_psb): New. (parse_operands): Add case for AARCH64_OPND_BARRIER_PSB. (md_begin): Set up aarch64_hint_opt_hsh. gas/testsuite/ 2015-12-11 Matthew Wahab * gas/aarch64/system-2.d: Enable the statistical profiling extension. Update the expected output. * gas/aarch64/system-2.s: Add tests for PSB CSYNC. * gas/aarch64/system.d: Update the expected output. include/opcode/ 2015-12-11 Matthew Wahab * aarch64.h (aarch64_opnd): Add AARCH64_OPND_BARRIER_PSB. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-opc.c (aarch64_hint_options): Add "csync". (aarch64_print_operands): Handle AARCH64_OPND_BARRIER_PSB. * aarch64-tbl.h (aarch64_feature_stat_profile): New. (STAT_PROFILE): New. (aarch64_opcode_table): Add "psb". (AARCH64_OPERANDS): Add "BARRIER_PSB". Change-Id: I5ffb672d26a8b15b48785478d359350a9b70ca09 commit 9ed608f98b2c8c483c994f884429420e74835417 Author: Matthew Wahab Date: Fri Dec 11 10:11:27 2015 +0000 [AArch64][Patch 4/5] Support HINT aliases taking operands. The Statistical Profile Extension adds the instruction PSB CSYNC as an alias for the HINT #17 instruction. This patch adds support for aliases of HINT which take an operand, adding a table to store operand names and their matching hint number as well as encoding and decoding functions for such operands. Parsing and printing the operands are deferred to any support added for aliases with such operands. include/opcode/ 2015-12-11 Matthew Wahab * aarch64.h (aarch64_hint_options): Declare. (aarch64_opnd_info): Add field hint_option. opcodes/ 2015-12-11 Matthew Wahab * aarch64-asm.c (aarch64_ins_hint): New. * aarch64-asm.h (aarch64_ins_hint): Declare. * aarch64-dis.c (aarch64_ext_hint): New. * aarch64-dis.h (aarch64_ext_hint): Declare. * aarch64-opc-2.c: Regenerate. * aarch64-opc.c (aarch64_hint_options): New. * aarch64-tbl.h (AARCH64_OPERANDS): Fix typos. Change-Id: I2205038fc1c47d3025d1f0bc2fbf405b5575b287 commit a0f7013add6b1737e9a5e5d63cdf41ab2ebca0bf Author: Matthew Wahab Date: Fri Dec 11 09:56:07 2015 +0000 [AArch64][Patch 3/5] Adjust maximum number of instruction aliases. The Statistical Profile Extension adds the instruction PSB CSYNC as an alias for the HINT #17 instruction. The HINT instruction currently has 8 aliases, which is the maximum number allowed. This patch raises to 16 the limit on the number of aliases an instruction can have. opcodes/ 2015-12-11 Matthew Wahab * aarch64-gen.c (find_alias_opcode): Set max_num_aliases to 16. Change-Id: I131044bf6e0fe0940a9e7478d9bf52137748907d commit 55c144e691ec05a7b8231b5c58dc6d6659a1c4eb Author: Matthew Wahab Date: Fri Dec 11 09:52:11 2015 +0000 [AArch64][Patch 2/5] Add Statistical Profiling Extension system registers. The Statistical Profile extension included in the ARMv8.2 architecture adds a number of system registers. This patch adds the registers to binutils, making them available when the architecture extension "+profile" is enabled. opcodes/ 2015-12-11 Matthew Wahab * aarch64-opc.c (aarch64_sys_reg): Add pbmlimitr_el1, pmbptr_el1, pmbsr_el1, pmbidr_el1, pmscr_el1, pmsicr_el1, pmsirr_el1, pmsfcr_el1, pmsevfr_el1, pmslatfr_el1, pmsidr_el1, pmscr_el2 and pmscr_el2. (aarch64_sys_reg_supported_p): Add architecture feature tests for the new registers. gas/testsuite/ 2015-12-11 Matthew Wahab * gas/aarch64/sysreg-2.s: Add tests for the statistical profiling system registers. * gas/aarch64/sysreg-2.d: Enable the statistical profiling extension and update the expected output. Change-Id: Ibf23ad34db7c33f0fcd30010b796748b38be6efb commit 73af8ed6b107040eb7488f6ec122cd05d5e2e903 Author: Matthew Wahab Date: Fri Dec 11 09:30:26 2015 +0000 [AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension. The Statistical Profile extension included in the ARMv8.2 architecture adds a number of system registers and a new instruction. This patch set adds support for the extension to binutils, enabled when -march=armv8.2-a+profile is given. The patches in this series: - Add the new command line option and feature flags. - Add the new system registers. - Adjust the maximum number of aliases permitted for an instruction. - Add support for HINT aliases which take operands. - Add the new instruction, an alias of the HINT instruction. This patch adds the option "profile" to the permitted architecture extensions, disabling it by default. gas/ 2015-12-11 Matthew Wahab * config/tc-aarch64.c (aarch64_features): Add "profile". * doc/c-aarch64.texi (AArch64 Extensions): Add "profile". include/opcode/ 2015-12-11 Matthew Wahab * aarch64.h (AARCH64_FEATURE_PROFILE): New. Change-Id: If9bb4a9b69a264180f96f8ffaf10b15ced273699 commit 9343aa2bf070409716ae15f300bb2aa06eaf71c6 Author: GDB Administrator Date: Fri Dec 11 00:00:13 2015 +0000 Automatic date update in version.in commit c5847ba7267b6eedd4b750f5eeece3ec037a27fd Author: H.J. Lu Date: Thu Dec 10 12:35:35 2015 -0800 ld -r doesn't need plugin for slim lto object Plugin isn't required on slim lto object for relocatable link. bfd/ PR ld/19317 * linker.c (_bfd_generic_link_add_one_symbol): Don't complain plugin needed to handle slim lto object for relocatable link. ld/testsuite/ PR ld/19317 * ld-plugin/lto.exp (lto_no_fat): New. (lto_link_tests): Add a test for PR ld/19317. (lto_run_tests): Likewise. (run_ld_link_tests): Likewise. commit 60269a4a36a78063d7563a32a6d34107cb52cca5 Author: Antoine Tremblay Date: Thu Dec 10 14:43:48 2015 -0500 Fix regression revealed by corethreads.exp This patch fixes a regression introduced by: https://sourceware.org/ml/gdb-patches/2015-12/msg00192.html We can't use thread_from_lwp with core files. As mentioned in a comment, td_ta_map_lwp2thr uses ps_get_thread_area, but we can't use that currently on core targets, as it uses ptrace directly. Use directly record_thread instead. This fixes : PASS -> FAIL: gdb.threads/corethreads.exp: thread0 found PASS -> FAIL: gdb.threads/corethreads.exp: thread1 found gdb/ChangeLog: * linux-thread-db.c (find_new_threads_callback): Use record_thread. commit bebf4942b083027860539b7c5e0649714b92e401 Author: H.J. Lu Date: Thu Dec 10 11:28:48 2015 -0800 ld -r doesn't need plugin for slim lto object Plugin isn't required on slim lto object for relocatable link. PR ld/19317 * symtab.cc (Symbol_table::add_from_relobj): Don't complain plugin needed to handle slim lto object for relocatable link. commit f4f4330e517a0497601baf6253d6408b77b10626 Author: Pedro Alves Date: Thu Dec 10 17:47:57 2015 +0000 [gdb/doc] Explain that there's always a thread This warning is a few years out of date -- there's always a thread nowadays. gdb/doc/ChangeLog: * gdb.texinfo (Threads): Replace warning with explanation about single-threaded programs. commit 22a5455c6ccaf6157095863f9e6da33a81541acf Author: Matthew Wahab Date: Thu Dec 10 16:58:51 2015 +0000 [Aarch64] Support ARMv8.2 AT instructions ARMv8.2 adds new instructions AT S1E1RP and AT S1E1WP to Aarch64. This patch adds support for the instructions, making them available when -march=armv8.2-a is selected. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/sysreg-2.d: Update for new tests for AT S1E1RP and AT S1E1WP. * gas/aarch64/sysreg-2.s: Add tests for AT S1E1RP and AT S1E1WP. opcodes/ 2015-12-10 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs_at): Add "s1e1rp" and "s1e1wp". (aarch64_sys_ins_reg_supported_p): Add ARMv8.2 system register feature test for "s1e1rp" and "s1e1wp". Change-Id: I09e1044b629ab0a34b03c423e8d4e71ff92daad4 commit b1236ac35aaad56d76a5670a5a22cc2be124a736 Author: Pedro Alves Date: Thu Dec 10 11:43:19 2015 +0000 [gdb/doc] Remove references to no-longer-supported systems HP-UX and SGI/IRIX are no longer supported. Remove references throughout. AFAICS from the sources, "catch fork" seems to be supported in multiple Unix systems -- just remove the "only works on xxx" remarks. Update the list of supported shared library types. gdb/doc/ChangeLog: * gdb.texinfo (Threads): Remove mention of SGI. (Forks): Remove mention of HP-UX. (Breakpoints): Remove mention of HP-UX. (Set Watchpoints) : Don't mention HP-UX. Reword in terms of architectures. (Set Catchpoints) : Don't mention supported systems. (Convenience Vars): Don't mention HP-UX. (Jumping): Remove mention of HP-UX in comment. (Files) : Update supported shared library types list. Remove mention of HP-UX. (Native): Remove HP-UX subsection. (SVR4 Process Information): Remove mention of HP-UX. commit 36d6fc0a3cbda55b9eb07a351c1312e369d4743f Author: Pedro Alves Date: Thu Dec 10 16:49:32 2015 +0000 Remove "spaces" references from gdb.multi/base.exp I think these references to "spaces" came from the original multi-exec submission that exposed "symbol spaces" to the user and had a different UI, and then survived a global find/replace. gdb/testsuite/ChangeLog: 2015-12-10 Pedro Alves * gdb.multi/base.exp: Remove stale "spaces" references. commit d6bf7ce6c26cd31fe744419269dea999a3faaf8c Author: Matthew Wahab Date: Thu Dec 10 16:38:44 2015 +0000 [AArch64][PATCH 2/2] Support ARMv8.2 DC CVAP instruction. ARMv8.2 adds the new system instruction DC CVAP. This patch adds support for the instruction to binutils, enabled when -march=armv8.2-a is selected. gas/ 2015-12-10 Matthew Wahab * config/tc-aarch64.c (parse_sys_ins_reg): Add check of architectural support for system register. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/sysreg-2.d: Add tests for dc instruction. * gas/aarch64/sysreg-2.s: Add uses of dc instruction. include/opcode/ 2015-12-10 Matthew Wahab * aarch64.h (aarch64_sys_ins_reg_supported_p): Declare. opcodes/ 2015-12-10 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs_dc): Add "cvap". (aarch64_sys_ins_reg_supported_p): New. Change-Id: I3158b97d9bbee9644c2d0e2986db807412ef1053 commit ea2deeec92695c33045d71ffa73add6305b17b9a Author: Matthew Wahab Date: Thu Dec 10 16:31:35 2015 +0000 [AArch64][PATCH 1/2] Add support for ARMv8.2 DC CVAP instruction. ARMv8.2 adds the new system instruction DC CVAP. This patch series adds support for this instruction to binutils, enabled when -march=armv8.2-a is selected. The AArch64 binutils record of some system registers uses a boolean value to hold the single flag currently supported for them. To allow these registers to be limited to specific architectures, the first patch in this series replaces the boolean flag with a bitset and feature test. include/opcode/ 2015-12-10 Matthew Wahab * aarch64.h (aarch64_sys_ins_reg): Replace has_xt with flags. (aarch64_sys_ins_reg_has_xt): Declare. opcodes/ 2015-12-10 Matthew Wahab * aarch64-dis.c (aarch64_ext_regrt_sysins): Replace use of has_xt with aarch64_sys_ins_reg_has_xt. (aarch64_ext_sysins_op): Likewise. * aarch64-opc.c (operand_general_constraint_met_p): Likewise. (F_HASXT): New. (aarch64_sys_regs_ic): Update for changes to aarch64_sys_ins_reg. (aarch64_sys_regs_dc): Likewise. (aarch64_sys_regs_at): Likewise. (aarch64_sys_regs_tlbi): Likewise. (aarch64_sys_ins_reg_has_xt): New. Change-Id: I363637a6c3f54d7ffff953b3a0734e8139cae819 commit 762f774785f4ef878ac4c831e1f4733dc957234d Author: Pedro Alves Date: Thu Dec 10 16:21:06 2015 +0000 Stop using nowarnings in gdb/testsuite/gdb.multi/ Several of the gdb.multi tests use the "nowarnings" option to suppress warnings. The warnings in question all come from missing headers, like e.g.: src/gdb/testsuite/gdb.multi/multi-arch-exec.c:28:3: warning: incompatible implicit declaration of built-in function 'exit' [enabled by default] exit (1); ^ There's no point in trying to avoid to include standard headers. In gdb.base/hangout.c's case, it's even dangerous, as that file calls printf. In order to compile a call to a variatic function correctly, a declaration must be visible. gdb/testsuite/ChangeLog: 2015-12-10 Pedro Alves * gdb.multi/base.exp: Don't use nowarnings. * gdb.multi/bkpt-multi-exec.exp: Don't use nowarnings. * gdb.multi/hangout.c: Include stdio.h. * gdb.multi/hello.c: Include stdlib.h. * gdb.multi/multi-arch-exec.c: Include stdlib.h. * gdb.multi/multi-arch-exec.exp: Don't use nowarnings. * gdb.multi/multi-arch.exp: Don't use nowarnings. commit 4a07dc81356ed8728e204e9aabeb256703c59aef Author: Kwok Cheung Yeung Date: Thu Dec 10 16:11:07 2015 +0000 ld: Fix LTO for MinGW targets When creating a dummy BFD for an IR file, the output BFD is used as a template for the new BFD, when it needs to be the input BFD passed into the function when not dealing with a BFD plugin. On most targets this is not an issue as the input and output formats are the same anyway, but on MinGW targets, there are two variant formats used (pe-i386/pe-x86-64 and pei-i386/pei-x86-64) which are similar but not interchangeable here. PR ld/18199 * plugin.c (plugin_get_ir_dummy_bfd): Use srctemplate as the template when calling bfd_create if it does not use the BFD plugin target vector. commit 6479e48ef9e7345e1111ed9fe578babd74faa1ef Author: Matthew Wahab Date: Thu Dec 10 16:01:29 2015 +0000 [AArch64][binutils] Add support for ARMv8.2 PSTATE.UAO. ARMv8.2 adds a new control bit PSTATE.UAO. This patch adds support for this bit to binutils, following the same basic pattern as for PSTATE.PAN. The new control bit is only available when -march=armv8.2-a is specified. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/uao-directive.d: New. * gas/aarch64/uao.d: New. * gas/aarch64/uao.s: New. opcodes/ 2015-12-10 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs): Add "uao". (aarch64_sys_reg_supported_p): Add comment. Add checks for "uao". (aarch64_pstatefields): Add "uao". (aarch64_pstatefield_supported_p): Add checks for "uao". Change-Id: Id571628ac5227b78aaf1876e85d15d7b6c0a2896 commit 7039122d13ab62045e1cc299fe5b4994aef3ac5f Author: Jose E. Marchesi Date: Thu Dec 10 11:01:35 2015 -0500 gas: documentation for the SPARC %dN and %qN fp registers notation gas/ChangeLog: 2015-12-10 Jose E. Marchesi * doc/c-sparc.texi (Sparc-Regs): Document the %dN and %qN notation for floating-point registers. commit c2c2a31fdb228d41ce3db62b268efea04bd39c18 Author: Antoine Tremblay Date: Thu Dec 10 10:44:08 2015 -0500 Remove support for thread events without PTRACE_EVENT_CLONE in GDB Before, on systems that did not support PTRACE_EVENT_CLONE, both GDB and GDBServer coordinated with libthread_db.so to insert breakpoints at magic locations in libpthread.so, in order to break at thread creation and thread death. Support for thread events was removed from GDBServer as patch: https://sourceware.org/ml/gdb-patches/2015-11/msg00466.html This patch removes support for thread events in GDB. No regressions found on Ubuntu 14.04 x86_64. gdb/ChangeLog: * breakpoint.c (remove_thread_event_breakpoints): Remove. * breakpoint.h (remove_thread_event_breakpoints): Remove declaration. * linux-nat.c (in_pid_list_p): Remove. (lin_lwp_attach_lwp): Remove. * linux-nat.h (lin_lwp_attach_lwp): Remove declaration. * linux-thread-db.c (thread_db_use_events): Remove. (struct thread_db_info) : Remove. : Likewise. : Likewise. : Likewise. : Likewise. : Likewise. : Likewise. (attach_thread): Likewise. (detach_thread): Likewise. (have_threads_callback): Likewise. (have_threads): Likewise. (enable_thread_event): Likewise. (enable_thread_event_reporting): Likewise. (try_thread_db_load_1): Remove td_ta_event_addr, td_ta_set_event, td_ta_clear_event, td_ta_event_getmsg, td_thr_event_enable initializations. (try_thread_db_load_1): Remove enable_thread_event_reporting call. (disable_thread_event_reporting): Remove. (record_thread): Adapt to thread_db_use_event removal. (detach_thread): Remove. (thread_db_detach): Adapt to thread_db_use_event removal. (check_event): Remove. (thread_db_wait): Adapt to thread events support removal. (thread_db_mourn_inferior): Likewise. (find_new_threads_callback): Likewise. (find_new_threads_once): Likewise. (thread_db_update_thread_list): Likewise. commit 47f8114261a50dcb44bd3be355b705e37d920944 Author: Matthew Wahab Date: Thu Dec 10 14:09:03 2015 +0000 [AArch64][PATCH 2/2] Add RAS system registers. The ARMv8.2 RAS extension adds a number of new registers. This patch adds the registers and makes them available whenever the RAS extension is enabled, as it is when -march=armv8.2-a is selected. The new registers are: erridr_el1, errselr_el1, erxfr_el1, erxctlr, erxaddr_el1, erxmisc0_el1, erxmisc1_el1, vsesr_el2, disr_el1 and vdisr_el2. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/sysreg-2.d: Add tests for new registers. * gas/aarch64/sysreg-2.s: Likewise. Also replace some spaces with tabs. opcodes/ 2015-12-10 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs): Add "vsesr_el2", "erridr_el1", "errselr_el1", "erxfr_el1", "erxctlr", "erxaddr_el1", "erxmisc0_el1", "erxmisc1_el1", "disr_el1" and "vdisr_el2". (aarch64_sys_reg_supported_p): Add architecture feature tests for new registers. Change-Id: I8a01a0f0ee7987f89eead32650f6afcc749b3c74 commit c8a6db6fa0b06b978e5b63593a6b0cb3300ad259 Author: Matthew Wahab Date: Thu Dec 10 14:05:01 2015 +0000 [AArch64][PATCH 1/2] Add support for RAS instruction ESB. The ARMv8.2 RAS extension adds a new barrier instruction ESB as an alias and the preferred form of HINT 16. This patch adds an architectural feature flag for the RAS extension and includes it in the features selected enabled by -march=armv8.2-a. It also adds the ESB instruction, making it available whenever the RAS feature is enabled. Because ESB is the preferred form and because the target architecture isn't available to the disassembler, HINT 16 will be disassembled as ESB even when the target has no support for the RAS extension. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/system-2.d: New. * gas/aarch64/system-2.s: New. * gas/aarch64/system.d: Adjust expected output for HINT 16. include/opcode/ 2015-12-10 Matthew Wahab * aarch64.h (AARCH64_FEATURE_RAS): New. (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_RAS. opcodes/ 2015-12-10 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-tbl.h (aarch64_feature_ras): New. (RAS): New. (aarch64_opcode_table): Add "esb". Change-Id: Id4713917da15cca3b977284f43febd1c9b3d9faf commit af117b3cf1877da805d081b93f606f3dd8153502 Author: Matthew Wahab Date: Thu Dec 10 13:58:21 2015 +0000 [AArch64] Fix ARMv8.1 and ARMv8.2 feature settings. ARMv8.1 includes CRC as a required extension but this isn't reflected in the features enabled by -march=armv8.1-a. The FP16 feature modifier also clashes with AARCH64_FEATURE_V8_1 and the list of features for ARMv8.2 is missing ARMv8.1 features. This patch enables +crc for -march values of armv8.1-a and later. It also fixes the values for AARCH64_FEATURE_F16 and makes AARCH64_ARCH_V8_2 and superset of AARCH64_ARCH_V8_2. gas/ 2015-12-10 Matthew Wahab * doc/c-aarch64.texi (AArch64 Extensions): Update entry for crc. include/opcode 2015-12-10 Matthew Wahab * aarch64.h (AARCH64_FEATURE_F16): Fix clash with AARCH64_FEATURE_V8_1. (AARCH64_ARCH_V8_1): Add AARCH64_FEATURE_CRC. (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_CRC and AARCH64_FEATURE_V8_1. Change-Id: I8af5369f6df2430b28f6cec92870d2a4d14a7431 commit 0f59c28f617516f3b8d30fd8e38a374a4060c191 Author: Pedro Alves Date: Thu Dec 10 11:39:58 2015 +0000 [gdb/doc] Stack, Examining the Stack: Reorder menu Commit fc58fa65d454 (gdb/doc: Restructure frame command documentation) reordered the sections in the 'Examining the Stack' chapter, but missed updating the menu: src/gdb/doc/gdb.texinfo:6968: warning: node next `Backtrace' in menu `Frame Filter Management' and in sectioning `Selection' differ src/gdb/doc/gdb.texinfo:7167: warning: node prev `Selection' in menu `Frame Filter Management' and in sectioning `Backtrace' differ src/gdb/doc/gdb.texinfo:7252: warning: node `Frame Filter Management' is next for `Frame Info' in sectioning but not in menu src/gdb/doc/gdb.texinfo:7317: warning: node `Selection' is next for `Frame Filter Management' in menu but not in sectioning src/gdb/doc/gdb.texinfo:7317: warning: node prev `Frame Filter Management' in menu `Backtrace' and in sectioning `Frame Info' differ gdb/doc/ChangeLog: 2015-12-10 Pedro Alves * gdb.texinfo (Stack): Reorder menu. commit 28d2bfb9c3e519a3b7619bbe5d061ebe520750ef Author: Andrew Burgess Date: Fri Oct 16 10:08:19 2015 +0200 gdb: Handle multiple base address in debug_ranges data. It is possible to use multiple base addresses within a single address range series, within the .debug_ranges section. The following is a simplified example for 32-bit addresses: .section ".debug_ranges" .4byte 0xffffffff .4byte BASE_1 .4byte START_OFFSET_1 .4byte END_OFFSET_1 .4byte START_OFFSET_2 .4byte END_OFFSET_2 .4byte 0xffffffff .4byte BASE_2 .4byte START_OFFSET_3 .4byte END_OFFSET_3 .4byte 0 .4byte 0 In this example START/END 1 and 2 are relative to BASE_1, while START/END 3 are relative to BASE_2. Currently gdb does not correctly parse this DWARF, resulting in corrupted address range information. This commit fixes this issue, and adds a new test to cover this case. In order to support testing of this feature extensions were made to the testsuite dwarf assembler, additional functionality was added to the .debug_line generation function, and a new function for generating the .debug_ranges section was added. gdb/ChangeLog: * dwarf2read.c (dwarf2_ranges_read): Unify and fix base address reading code. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-ranges-base.c: New file. * gdb.dwarf2/dw2-ranges-base.exp: New file. * lib/dwarf.exp (namespace eval Dwarf): Add new variables to support additional line table, and debug ranges generation. (Dwarf::ranges): New function, generate .debug_ranges. (Dwarf::lines): Support generating simple line table programs. (Dwarf::assemble): Initialise new namespace variables. commit c74088593761f7e839aa9a97728df146f3dfb3d6 Author: Andrew Burgess Date: Wed Dec 9 19:13:54 2015 +0000 arc/gas: Accept, but ignore, dummy arguments. There's a set of legacy command line arguments that the arc assembler still accepts, however, these arguments not longer have any effect on the assembler. Currently we return false from md_parse_option for all of these arguments, with the result that the assembler terminates with an error message. We should return true indicating that the argument has been accepted, even though we ignore it. gas/ChangeLog: * config/tc-arc.c (md_parse_option): Return 1 in order to accept dummy arguments. commit 33d4099fc891760ea1f080746dee4dcfc36c757c Author: Sandra Loosemore Date: Wed Dec 9 16:13:58 2015 -0800 Fix GOT address computations in initial PLT entries for nios2. 2015-12-09 Sandra Loosemore bfd/ * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Correct %hiadj/%lo computations for _GLOBAL_OFFSET_TABLE_ in initial PLT entries. Assert alignment requirements. commit a0fad44f986a8d09a0b319535955e32aa0507fc4 Author: GDB Administrator Date: Thu Dec 10 00:00:12 2015 +0000 Automatic date update in version.in commit f56331b468908d1502c7ae26adab6f9b858cb13f Author: Kevin Buettner Date: Tue Nov 24 21:53:13 2015 -0700 dwarf2loc.c: Perform a pointer to address conversion for DWARF_VALUE_MEMORY. This patch fixes the following failures for rl78-elf: FAIL: gdb.base/vla-datatypes.exp: print int_vla FAIL: gdb.base/vla-datatypes.exp: print unsigned_int_vla FAIL: gdb.base/vla-datatypes.exp: print double_vla FAIL: gdb.base/vla-datatypes.exp: print float_vla FAIL: gdb.base/vla-datatypes.exp: print long_vla FAIL: gdb.base/vla-datatypes.exp: print unsigned_long_vla FAIL: gdb.base/vla-datatypes.exp: print char_vla FAIL: gdb.base/vla-datatypes.exp: print short_vla FAIL: gdb.base/vla-datatypes.exp: print unsigned_short_vla FAIL: gdb.base/vla-datatypes.exp: print unsigned_char_vla FAIL: gdb.base/vla-datatypes.exp: print foo_vla FAIL: gdb.base/vla-datatypes.exp: print bar_vla FAIL: gdb.base/vla-datatypes.exp: print vla_struct_object FAIL: gdb.base/vla-datatypes.exp: print vla_union_object FAIL: gdb.base/vla-ptr.exp: print td_vla FAIL: gdb.mi/mi-vla-c99.exp: evaluate complete vla The first failure in this bunch occurs due to printing an incorrect result for a variable length array: print int_vla $1 = {-1, -1, -1, -1, -1} The result should actually be this: $1 = {0, 2, 4, 6, 8} When I started examining this bug, I found that printing an individual array element worked correctly. E.g. "print int_vla[2]" resulted in 4 being printed. I have not looked closely to see why this is the case. I found that evaluation of the location expression for int_vla was causing problems. This is the relevant DWARF entry for int_vla: <2><15a>: Abbrev Number: 10 (DW_TAG_variable) <15b> DW_AT_name : (indirect string, offset: 0xbf): int_vla <15f> DW_AT_decl_file : 1 <160> DW_AT_decl_line : 35 <161> DW_AT_type : <0x393> <165> DW_AT_location : 4 byte block: 86 7a 94 2 (DW_OP_breg22 (r22): -6; DW_OP_deref_size: 2) I found that DW_OP_breg22 was providing a correct result. DW_OP_deref_size was fetching the correct value from memory. However, the value being fetched should be considered a pointer. DW_OP_deref_size zero extends the fetched value prior to pushing it onto the evaluation stack. (The DWARF-4 document specifies this action; so GDB is faithfully implementing the DWARF-4 specification.) However, zero extending the pointer is not sufficient for converting that value to an address for rl78 and (perhaps) other architectures which define a `pointer_to_address' method. (I suspect that m32c would have the same problem.) Ideally, we would perform the pointer to address conversion in DW_OP_deref_size. We don't, however, know the type of the object that the address refers to in DW_OP_deref_size. I can't think of a way to infer the type at that point in the code. Before proceeding, I should note that there are two other DWARF operations that could be used in place of DW_OP_deref_size. One of these is DW_OP_GNU_deref_type. Current GDB implements this operation, but as is obvious from the name, it is non-standard DWARF. The other operation is DW_OP_xderef_size. Even though it's part of DWARF-2 through DWARF-4 specifications, it's not presently implemented in GDB. Present day GCC does not output dwarf expressions containing this operation either. [Of the two, I like DW_OP_GNU_deref_type better. Using it avoids the need to specify an "address space identifier". (GCC, GDB, and other non-free tools all need to agree on the meanings of these identifiers.)] Back to the bug analysis... The closest consumer of the DW_OP_deref_size result is the DWARF_VALUE_MEMORY case in dwarf2_evaluate_loc_desc_full. At that location, we do know the object type to which the address is intended to refer. I added code to perform a pointer to address conversion at this location. (See the patch.) I do have some misgivings regarding this patch. As noted earlier, it would really be better to perform the pointer to address conversion in DW_OP_deref_size. I can't, however, think of a way to make this work. Changing GCC to output one of the other aforementioned operations might be preferable but, as noted earlier, these solutions have problems as well. Long term, I think it'd be good to have something like DW_OP_GNU_deref_type become part of the standard. If that can't or won't happen, we'll need to implement DW_OP_xderef_size. But until that happens, this patch will work for expressions in which DW_OP_deref_size occurs last. It should even work for dereferences followed by adding an offset. I don't think it'll work for more than one dereference in the same expression. gdb/ChangeLog: * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Perform a pointer to address conversion for DWARF_VALUE_MEMORY. commit 5fc2beac27f81d0840e717e3dd8d6524f9c2e890 Author: Kevin Buettner Date: Mon Dec 7 23:07:29 2015 -0700 gdb.base/async.exp: Handle "asynchronous execution not supported" This change eliminates some failures on simulator targets and makes the test run a bit quicker too - without this change, we have to wait for timeouts. gdb/testsuite/ChangeLog: * gdb.base/async.exp (proc test_background): Add case for asynchronous execution not supported. commit 8eab413676a0222a863f45ff606f3db69bb7afc4 Author: H.J. Lu Date: Wed Dec 9 08:01:57 2015 -0800 Implement Intel OSPKE instructions This patch implements Intel OSPKE instructions documented in Intel64 and IA-32 Architectures Software Developer’s Manual Volume 2, September 2015. gas/testsuite/ * gas/i386/i386.exp: Run ospke and x86-64-ospke. * gas/i386/ospke.d: New file. * gas/i386/ospke.s: Likewise. * gas/i386/x86-64-ospke.d: Likewise. opcodes/ * i386-dis.c (MOD_0F01_REG_5): New. (RM_0F01_REG_5): Likewise. (reg_table): Use MOD_0F01_REG_5. (mod_table): Add MOD_0F01_REG_5. (rm_table): Add RM_0F01_REG_5. * i386-gen.c (cpu_flag_init): Add CPU_OSPKE_FLAGS. (cpu_flags): Add CpuOSPKE. * i386-opc.h (CpuOSPKE): New. (i386_cpu_flags): Add cpuospke. * i386-opc.tbl: Add rdpkru and wrpkru instructions. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. commit fa7cc15f24f9cd8e3cc07c7552c3fad1b756eed8 Author: Jan Beulich Date: Wed Dec 9 14:35:07 2015 +0100 gas/ELF: slightly relax elf/file*.d expectations Despite the re-ordering done for the file symbols, some targets manage to put section symbols ahead of it. commit 1c35a88f1d8399902c08a8334d3e3303df833538 Author: Luis Machado Date: Wed Dec 9 10:56:27 2015 -0200 varobj zero-padded hexadecimal format This set of patches add support for the zero-padded hexadecimal format for varobj's, defined as "zero-hexadecimal". We currently only support regular non-zero-padded hexadecimal. Talking with IDE developers, they would like to have this option that is already available to GDB's print/x commands, in the CLI, as 'z'. gdb/ChangeLog: 2015-12-09 Luis Machado * gdb/mi/mi-cmd-var.c (mi_parse_format): Handle new "zero-hexadecimal" format. * gdb/varobj.c (varobj_format_string): Add "zero-hexadecimal" entry. (format_code): Add 'z' entry. (varobj_set_display_format): Handle FORMAT_ZHEXADECIMAL. * gdb/varobj.h (varobj_display_formats) : New enum field. * NEWS: Add new note to MI changes citing the new zero-hexadecimal format for -var-set-format. gdb/doc/ChangeLog: 2015-12-09 Luis Machado * gdb.texinfo (GDB/MI Variable Objects): Update text to mention -var-set-format's new zero-hexadecimal format. gdb/testsuite/ChangeLog: 2015-12-09 Luis Machado * gdb.mi/mi-var-display.exp: Add new checks for the zero-hexadecimal format and change test names to make them unique. commit ec892a0718dc47c2d009532865c353daa749eaa1 Author: Jose E. Marchesi Date: Wed Dec 9 07:32:52 2015 -0500 sparc: support %dN and %qN syntax for FP registers. The SPARC Refence Manual documents the %dN and %qN syntax to refer to double and quad-precision floating-point registers, respectively. See OSA2015 Appendix C, Assembly Language Syntax, C1.1 Register Names. This patch adds support for these names to GAS. This eases the porting of software from Solaris to GNU/Linux, as these register names have been supported by the Solaris linker for a long time and many assembler require that support. gas/ChangeLog: 2015-12-09 Jose E. Marchesi * config/tc-sparc.c (sparc_ip): Support %dN and %qN notation for double and quad-precision floating-point registers. commit b593e3d9b00b09af43abf1e95d68e68200e3c2a5 Author: Ruslan Kabatsayev Date: Wed Dec 9 12:17:40 2015 +0000 Fix wrong output of x87 registers due to truncation to double on amd64 When `info float` is used on an AMD64 system, GDB prints floating-point values of x87 registers with raw contents like 0x361a867a8e0527397ce0 or 0xc4f988454a1ddd3cfdab wrongly. This happens due to truncation to double, after which the former becomes 0.0, and the latter becomes negative infinity. This is caused by failed detection of x86-64 host, which results in setting gdb_host_{float,double,long_double}_format to zeros. This commit fixes this misdetection, and adds a test to make sure future commits don't introduce a regression here. gdb/ChangeLog: 2015-12-09 Ruslan Kabatsayev PR gdb/18702 * configure.host: Fix detection of x86_64 host when setting floatformats. gdb/testsuite/ChangeLog: 2015-12-09 Ruslan Kabatsayev Pedro Alves PR gdb/18702 Add checking of floatformats setup on x86_64 hosts. * gdb.arch/i386-float.S (main): Load bigval and smallval. (smallval, bigval): New labels/constants. * gdb.arch/i386-float.exp: Use with_test_prefix and test "info float" after loading bigval and smallval. commit c192dad24398767edd64ab7e5e3a72df9265bda0 Author: Nick Clifton Date: Wed Dec 9 12:01:19 2015 +0000 Fix compile time warning building RX target. commit dcfc7dd477b74f84d673f0d20cb350c950d6dbed Author: Alan Modra Date: Wed Dec 9 10:30:18 2015 +1030 [GOLD] PowerPC style fix * powerpc.cc (Target_powerpc::Relocate::relocate): New constant d_offset. Use throughout. (Target_powerpc::relocate_relocs): Likewise. commit e3a7574e2e06f975a4933d3f7e77af1d9189d9de Author: Alan Modra Date: Wed Dec 9 10:18:44 2015 +1030 [GOLD] Edit PowerPC64 ELFv2 function entry code In an fixed position executable, the entry code does not need to be PIC and can thus lose a dependency on r12. * powerpc.cc (Target_powerpc::Relocate::relocate): Edit ELFv2 entry code. (Target_powerpc::relocate_relocs): Edit relocs to suit. commit 91a65d2fe88fabe2d553a0362b2f76034f820175 Author: Alan Modra Date: Wed Dec 9 10:18:30 2015 +1030 [GOLD] Relocate::relocate() params Some linker code editing needs to change multiple insns. In some cases multiple relocations are involved and it is not sufficient to make the changes independently as relocations are processed, because doing so might lead to a partial edit. So in order to safely edit we need all the relocations available in relocate(). Also, to emit edited relocs corresponding to the edited code sequence we need some way to pass information from relocate() to relocate_relocs(), particularly if the edit depends on insns. We can't modify input relocs in relocate() as they are mmapped PROT_READ, nor it is particularly clean to write relocs to the output at that stage. So add a Relocatable_relocs* field to relinfo to mark edited relocs. Given that relocate is passed the raw reloc pointer, it makes sense to remove the rel/rela parameter and r_type too. However, that means the mips relocate() needs to know whether SHT_REL or SHT_RELA relocs are being processed. So add a rel_type for mips, which also has the benefit of removing relocate() overloading there. This patch adds the infrastructure without making use of it. Note that relinfo->rr will be NULL if not outputting relocations. * object.h (struct Relocate_info): Add "rr". * reloc.h (Relocatable_relocs::set_strategy): New accessor. * reloc.cc (Sized_relobj_file::do_relocate_sections): Init relinfo.rr for relocate_section and relocate_relocs. * powerpc.cc (relocate): Add rel_type and preloc parameters. Delete rela and r_type params, instead recalculate these from preloc. (relocate_relocs): Delete Relocatable_relocs* param, instead use relinfo->rr. * aarch64.cc: Likewise. * arm.cc: Likewise. * i386.cc: Likewise. * mips.cc: Likewise. * s390.cc: Likewise. * sparc.cc: Likewise. * target.h: Likewise. * tilegx.cc: Likewise. * x86_64.cc: Likewise. * testsuite/testfile.cc: Likewise. * target-reloc.h (relocate_section): Adjust to suit. (apply_relocation, relocate_relocs): Likewise. commit b7a5f21d4f98e006ac98df0c3494a6b8380917bd Author: GDB Administrator Date: Wed Dec 9 00:00:08 2015 +0000 Automatic date update in version.in commit 7460c0abe8a195243110e66624da095a44cc96d6 Author: Nick Clifton Date: Tue Dec 8 09:49:49 2015 +0000 Fix static analysis warning about undefined bheaviour. PR binutils/19310 * dwarf.c (display_debug_frames): Recode range test to avoid undefined behaviour. commit ec9ab52c3217835113f22431911fda3474598fcd Author: Jan Beulich Date: Tue Dec 8 10:14:49 2015 +0100 gas: consistently emit diagnostics for non-zero data emission to .bss/.struct commit 35c1a4396497a4009c99e5587aa908bb6df4e1e6 Author: Jan Beulich Date: Tue Dec 8 10:12:54 2015 +0100 gas: don't get confused by .asci{i,z} after .struct While not allowed, this certainly shouldn't result in confusing the programmer (by skipping lines in unexpected ways): Without returning, demand_empty_rest_of_line() (at the end of the function) will demand the _next_ line to be empty, and without the conditional we would ignore the next line. commit fbdf9406b0589e9b8bbfbbed606f3fff2d060b3c Author: Jan Beulich Date: Tue Dec 8 10:11:58 2015 +0100 ELF: don't re-order SHF_FILE symbols .file directives may be used to identify the scope of local symbols, the purpose of which gets subverted when re-ordering them. Only allow the first of them to be moved to the first position. commit 3685b09fb85dc279762e19df310dc2f30e64b044 Author: Pierre-Marie de Rodat Date: Thu Sep 3 17:34:58 2015 +0200 DOCO: Enhance the menu to select function overloads with signatures gdb/ChangeLog: * NEWS: Announce this enhancement and the corresponding new option. gdb/doc/ChangeLog: * gdb.texinfo (Ada Mode Into): Move overloading support description to its own node. (Overloading support for Ada): New node. commit e896287c1643b8b47080c4a8ddbe9a92d9fa585b Author: DJ Delorie Date: Tue Dec 8 01:29:25 2015 -0500 rl78: relaxation fixes Various fixes to linker relaxation. In general, we need to support relaxing every branch, even if we don't relax it in the assembler, so we can optionally defer relaxation to the linker. * elf32-rl78.c (rl78_offset_for_reloc): Add more relocs. (rl78_elf_relax_section): Add bc/bz/bnc/bnz/bh/bnh. Fix reloc choices. * config/rl78-parse.y: Make all branches relaxable via rl78_linkrelax_branch(). * config/tc-rl78.c (rl78_linkrelax_branch): Mark all relaxable branches with relocs. (options): Add OPTION_NORELAX. (md_longopts): Add -mnorelax. (md_parse_option): Support OPTION_NORELAX. (op_type_T): Add bh, sk, call, and br. (rl78_opcode_type): Likewise. (rl78_relax_frag): Fix not-relaxing logic. Add sk. (md_convert_frag): Fix relocation handling. (tc_gen_reloc): Strip relax relocs when not linker relaxing. (md_apply_fix): Defer overflow handling for anything that needs a PLT, to the linker. * config/tc-rl78.h (TC_FORCE_RELOCATION): Force all relocations to the linker when linker relaxing. * doc/c-rl78.texi (norelax): Add. commit 7859afc4fa05f6876c4e6b95cfb8fc252efd96bc Author: DJ Delorie Date: Tue Dec 8 01:15:58 2015 -0500 rx: Fix p_vaddr reconstruction logic. * elf32-rx.c (rx_elf_object_p): Ignore empty and nobits sections. commit 1eac08cc37b3d8a42a1b81de888b29d079b0608e Author: DJ Delorie Date: Mon Dec 7 22:33:39 2015 -0500 rl78: Enable MULU for all ISAs. Unlike other mul/div opcodes, MULU is available on all variants of the RL78. * rl78-decode.opc: Enable MULU for all ISAs. * rl78-decode.c: Regenerate. commit e4e26dfd3f401cde164e36f23fe17eb80bc9e332 Author: GDB Administrator Date: Tue Dec 8 00:00:22 2015 +0000 Automatic date update in version.in commit 1e550d79b170a548f7903e4954c877acc6125cbc Author: Jan Beulich Date: Mon Dec 7 17:52:25 2015 +0100 ld: relax alignment requirements of compressed .debug_* section checks This fixes a failure of the gabinormal linking test on some distros (where e.g. crt1.o has a .debug_aranges section with larger alignment). commit 17b1509aac6ff4205749c2626fddbb1c4d7255f4 Author: Yao Qi Date: Mon Dec 7 15:56:31 2015 +0000 Support Z0 packet in AArch64 multi-arch debugging In commit 6085d6f6, Z0 packet is disabled in aarch64 GDBserver if the inferior is 32-bit or there may be multiple inferiors, because Z0 packet isn't supported for arm then. Recently, Z0 packet is supported in arm target, so we don't have such limitation in aarch64 GDBserver, that is to say, aarch64 GDBserver can use Z0 packet in multi-arch/multi-inferior debugging when the inferior's arch is arm. Part of this patch is to revert 6085d6f6, and the rest of the patch is to move some breakpoint related arm_* functions into linux-aarch32-low.c in order to share them between arm and aarch64. This patch is regression tested on aarch64-linux for debugging both aarch64 programs and arm programs respectively. gdb/gdbserver: 2015-12-07 Yao Qi * configure.srv: Append arm.o to srv_tgtobj for aarch64*-*-linux* target. * linux-aarch32-low.c (arm_abi_breakpoint): New macro. Moved from linux-arm-low.c. (arm_eabi_breakpoint, arm_breakpoint): Likewise. (arm_breakpoint_len, thumb_breakpoint): Likewise. (thumb_breakpoint_len, thumb2_breakpoint): Likewise. (thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode, arm_breakpoint_at): Likewise. (arm_breakpoint_kinds): Likewise. (arm_breakpoint_kind_from_pc): Likewise. (arm_sw_breakpoint_from_kind): Likewise. (arm_breakpoint_kind_from_current_state): Likewise. * linux-aarch32-low.h (arm_breakpoint_kind_from_pc): Declare. (arm_sw_breakpoint_from_kind): Declare. (arm_breakpoint_kind_from_current_state): Declare. (arm_breakpoint_at): Declare. * linux-aarch64-low.c (aarch64_sw_breakpoint_from_kind): Call arm_sw_breakpoint_from_kind if process is 32-bit. (aarch64_breakpoint_kind_from_pc): New function. (aarch64_breakpoint_kind_from_current_state): New function. (the_low_target): Initialize fields breakpoint_kind_from_pc and breakpoint_kind_from_current_state. * linux-arm-low.c (arm_breakpoint_kinds): Move to linux-aarch32-low.c. (arm_abi_breakpoint, arm_eabi_breakpoint): Likewise. (arm_breakpoint, arm_breakpoint_len): Likewise. (thumb_breakpoint, thumb_breakpoint_len): Likewise. (thumb2_breakpoint, thumb2_breakpoint_len): Likewise. (arm_is_thumb_mode): Likewise. (arm_breakpoint_at): Likewise. (arm_breakpoint_kind_from_pc): Likewise. (arm_sw_breakpoint_from_kind): Likewise. (arm_breakpoint_kind_from_current_state): Likewise. Revert: 2015-08-04 Yao Qi * linux-aarch64-low.c (aarch64_supports_z_point_type): Return 0 for Z_PACKET_SW_BP if it may be used in multi-arch debugging. * server.c (extended_protocol): Remove "static". * server.h (extended_protocol): Declare it. commit 6056244624a21a569985e33b30f43f44c8da482e Author: Nick Clifton Date: Mon Dec 7 14:44:46 2015 +0000 oops - accidentally omittde from previous delta. commit 5ee4a06adea76e607f47eceff65c6bd4a98c49ff Author: Nick Clifton Date: Mon Dec 7 14:43:47 2015 +0000 Fix relaxation in RX linker when --no-keep-memory is specified. * elf32-rx.c (elf32_rx_relax_delete_bytes): Add extra parameter - the start of the relocs for the section. Delete code to load in the relocs. (elf32_rx_relax_section): Do not free the loaded relocs. commit d72413e64a3444868e72e315ba2ceaf5a9d2bf6f Author: Pierre-Marie de Rodat Date: Thu Sep 3 17:34:58 2015 +0200 Enhance the menu to select function overloads with signatures So far, trying to evaluate an expression involving a function call for which GDB could find multiple function candidates outputs a menu so that the user can select the one to run. For instance, with the two following functions: type New_Integer is new Integer; function F (I : Integer) return Boolean; function F (I : New_Integer) return Boolean; Then we get the following GDB session: (gdb) print f(1) Multiple matches for f [0] cancel [1] foo.f at foo.adb:23 [2] foo.f at foo.adb.28 > While the source location information is sufficient in order to determine which one to select, one has to look for them in source files, which is not convenient. This commit tunes this menu in order to also include the list of formal and return types (if any) in each entry. The above then becomes: (gdb) print f(1) Multiple matches for f [0] cancel [1] foo.f (integer) return boolean at foo.adb:23 [2] foo.f (foo.new_integer) return boolean at foo.adb.28 > Since this output is more verbose than previously, this change also introduces an option (set/show ada print-signatures) to get the original output. gdb/ChangeLog: * ada-lang.c (print_signatures): New. (ada_print_symbol_signature): New. (user_select_syms): Add signatures to the output of candidate symbols using ada_print_symbol_signature. (_initialize_ada_language): Add a "set/show ada print-signatures" boolean option. gdb/testsuite/ChangeLog: * gdb.ada/fun_overload_menu.exp: New testcase. * gdb.ada/fun_overload_menu/foo.adb: New testcase. Tested on x86_64-linux, no regression. commit 1b36b65787bcb905fb6a2c7b790b07dcaacbe1cb Author: Andreas Arnez Date: Mon Dec 7 10:43:39 2015 +0100 Add myself as a write-after-approval GDB maintainer gdb/ChangeLog: * MAINTAINERS (Write After Approval): Add Andreas Arnez. commit f7584f0560f36189ef9434d157e83ffcd988c098 Author: Nick Clifton Date: Mon Dec 7 10:19:19 2015 +0000 Add support for MSP430 F5 hardware multiply. * msp430-sim.c (sim_open): Check for needed memory at address 0x500 not 0x200. (get_op): Add support for F5 hardware multiply addresses. (put_op): Likewise. commit cbf959729423640e28a0d571338d3c8045cbb1e1 Author: Alan Modra Date: Mon Dec 7 13:52:01 2015 +1030 PowerPC ifunc with local symbols This fixes some cases where the linker would incorrectly error on plt relocs to local ifunc symbols. I've also tidied plt and ifunc handling for ppc64, where check_relocs was allowing for the possibility of plt calls via addr14/addr24 relocs but relocate_section was not. * elf32-ppc.c (ppc_elf_check_relocs): Don't error on local ifunc plt call. Wrap long lines. (ppc_elf_relocate_section): Wrap long lines. * elf64-ppc.c (ppc64_elf_check_relocs): Don't error on local ifunc plt calls. Move __tls_get_addr checks later. Don't create plt for addr14/addr24 relocs. (ppc64_elf_gc_sweep_hook): Adjust to suit check_relocs changes. (ppc64_elf_relocate_section): Correct local ifunc handling for PLT64, PLT32 and PLT16 relocs. commit c20f6f63eda61348326a861a155716b8d9073307 Author: Alan Modra Date: Mon Dec 7 13:41:36 2015 +1030 PR19323 memory allocation greater than 4G On 32-bit targets, memory requested for program/section headers on a fuzzed binary can wrap to 0. A bfd_alloc of zero bytes actually returns a one byte allocation rather than a NULL pointer. This then leads to buffer overflows. Making this check unconditional triggers an extremely annoying gcc-5 warning. PR19323 * elfcode.h (elf_object_p): Check for ridiculous e_shnum and e_phnum values. commit 549dba71045c856f3d169bf2edc7bfc7cabe5a0b Author: Alan Modra Date: Mon Dec 7 13:15:24 2015 +1030 [GOLD] R_PPC64_ENTRY support elfcpp/ * powerpc.h (R_PPC64_ENTRY): Define. gold/ * powerpc.cc (add_2_2_12, ld_2_12, lis_2): Define. (Target_powerpc::Scan::local, global): Handle R_PPC64_ENTRY. (Target_powerpc::Relocate::relocate): Edit code at R_PPC64_ENTRY. commit 006589cfa144fc1efeea1d114943c0bd1624e930 Author: Alan Modra Date: Mon Dec 7 13:14:53 2015 +1030 R_PPC64_ENTRY Add a new relocation that marks large-model entry code, for edit back to medium-model. include/elf/ * ppc64.h (R_PPC64_ENTRY): Define. bfd/ * reloc.c (BFD_RELOC_PPC64_ENTRY): New. * elf64-ppc.c (reloc_howto_type ppc64_elf_howto_raw): Add entry for R_PPC64_ENTRY. (LD_R2_0R12, ADD_R2_R2_R12, LIS_R2, ADDIS_R2_R12): Define. (ppc64_elf_reloc_type_lookup): Handle R_PPC64_ENTRY. (ppc64_elf_relocate_section): Edit code at R_PPC64_ENTTY. Use new insn defines. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. commit 487b24d8c244263ee99ed7c6a307161b1328decc Author: Alan Modra Date: Mon Dec 7 13:14:35 2015 +1030 tc-ppc.c md_apply_fix tidy * config/tc-ppc.c (md_apply_fix): Localize variables. Reduce casts. commit dd2887fc3de48f6261d34208a0132122f05d7ef4 Author: Alan Modra Date: Mon Dec 7 13:14:05 2015 +1030 Reorder some power9 insns The idea being to put instructions that have the same encoding adjacent to each other. * opcodes/ppc-opc.c (powerpc_opcodes): Sort power9 insns by major opcode/xop. commit 2b213129c51f4a6c4525120319d9aceb04483ab4 Author: Kaz Kojima Date: Mon Dec 7 09:58:37 2015 +0900 bfd: Mark sh5*-*-* and sh64*-*-* targets as obsolete. commit 2f672fe62a125a8c499f72dc172049445c2665f0 Author: GDB Administrator Date: Mon Dec 7 00:00:08 2015 +0000 Automatic date update in version.in commit 030f17b5eb56b6e48588f6da015e05f568144692 Author: Joel Brobecker Date: Sun Dec 6 18:38:24 2015 +0100 Replace remaining references to i386-nat with x86-nat instead. i386-nat.[hc] got renamed to x86-nat.[hc] a while back, but somehow 3 references to the old file name remained past the renaming. This fixes all of them. gdb/ChangeLog (with Mike Stump ): * Makefile.in (TAGS): Replace i386-nat.h by x86-nat.h. * x86-nat.c: Replace remaining references to i386-nat by reference to x86-nat instead. commit a4581526decb2c7ed2a1e16ab1f5ac65c03734af Author: GDB Administrator Date: Sun Dec 6 00:00:08 2015 +0000 Automatic date update in version.in commit a5d43209a5183556b47a8ab4b0f9226fdf424ab0 Author: Joel Brobecker Date: Sat Dec 5 16:29:09 2015 +0100 Document the GDB 7.10.1 release in gdb/ChangeLog gdb/ChangeLog: GDB 7.10.1 released. commit ece66d651004eac0210217c4d48babf4e80d1f2e Author: Josh Stone Date: Fri Dec 4 13:28:07 2015 -0800 gdbserver: set ptrace flags after creating inferiors Rename target_ops.arch_setup to .post_create_inferior. In the Linux hook, continue calling the low arch setup, then also set ptrace flags. This corrects the possibility of running without flags, demonstrated by a new test that would fail to catch a fork before. gdb/gdbserver/ChangeLog: 2015-12-04 Josh Stone * target.h (struct target_ops) : Rename to ... (struct target_ops) : ... this. (target_arch_setup): Rename to ... (target_post_create_inferior): ... this, calling post_create_inferior. * server.c (start_inferior): Update target_arch_setup calls to target_post_create_inferior. * linux-low.c (linux_low_ptrace_options): Forward declare. (linux_arch_setup): Update its comment for general use. (linux_post_create_inferior): New, run arch_setup and setup ptrace. (struct linux_target_ops): Use linux_post_create_inferior. * lynx-low.c (struct lynx_target_ops): Update arch_setup stub comment to post_create_inferior. * nto-low.c (struct nto_target_ops): Likewise. * spu-low.c (struct spu_target_ops): Likewise. * win32-low.c (struct win32_target_ops): Likewise. gdb/testsuite/ChangeLog: 2015-12-04 Josh Stone * gdb.base/catch-fork-static.exp: New. commit cc51fd4ccfdca1559efb0351b498bd8c0f3d1eed Author: GDB Administrator Date: Sat Dec 5 00:00:07 2015 +0000 Automatic date update in version.in commit 02e2aef89bb58e8e0cc4390db41c5f775e1b7c3e Author: H.J. Lu Date: Fri Dec 4 08:43:45 2015 -0800 Optimize R_386_GOT32/R_386_GOT32X only if addend is 0 Linker can't optimize R_386_GOT32 and R_386_GOT32X relocations if addend isn't 0. It isn't valid to convert movl foo@GOT+1(%ecx), %eax to leal foo@GOTOFF+1(%ecx), %eax nor to convert movq foo@GOTPCREL+1(%rip), %rax to leaq foo(%rip), %rax for x86-64. We should check if addend is 0 before optimizing R_386_GOT32 and R_386_GOT32X relocations. Testcases are added for i386 and x86-64. bfd/ * elf32-i386.c (elf_i386_convert_load): Skip if addend isn't 0. (elf_i386_relocate_section): Skip R_386_GOT32X optimization if addend isn't 0. ld/testsuite/ * ld-i386/i386.exp: Run mov2a, mov2b and mov3. * ld-i386/mov2.s: New file. * ld-i386/mov2a.d: Likewise. * ld-i386/mov2b.d: Likewise. * ld-i386/mov3.d: Likewise. * ld-i386/mov3.s: Likewise. * ld-x86-64/mov2.s: Likewise. * ld-x86-64/mov2a.d: Likewise. * ld-x86-64/mov2b.d: Likewise. * ld-x86-64/mov2c.d: Likewise. * ld-x86-64/mov2d.d: Likewise. * ld-x86-64/x86-64.exp: Run mov2a, mov2b, mov2c and mov2d. commit f27c5390b2fcff06b1e2199a4f051d543670aa03 Author: Nick Clifton Date: Fri Dec 4 15:07:10 2015 +0000 Fix GAS testsuite failures for COFF/PE based ARM targets. PR gas/19276 gas * config/tc-arm.h (SUB_SEGMENT_ALIGN): Do not define for COFF/PE targets. testsuite * gas/arm/align64.d: Skip for COFF/PE targets. * gas/arm/bundle-lock.d: Adjust for COFF/PE targets. commit 461c4b2edee2f0a4ee7dec0001a6fabf46454a24 Author: Tristan Gingold Date: Thu Dec 3 11:57:29 2015 +0100 Remove useless loop in elf.c commit 24b368f8532b4775f9fd5bcc7958a84d4218aa46 Author: Claudiu Zissulescu Date: Fri Dec 4 10:49:57 2015 +0000 Fix failures in the GAS testsuite for the ARC architecture. gas * config/tc-arc.c (arc_option): Sets all internal gas options when parsing .cpu directive. (declare_register_set): Declare all 64 registers. (md_section_align): Refactor. (md_pcrel_from_section): Remove assert. (pseudo_operand_match): Fix pseudo operand match. (find_reloc): Use flags filed, extend matching. * config/tc-arc.h (TC_VALIDATE_FIX): Don't fixup any PLT relocation. testsuite * gas/arc/bic.d: Update test. * gas/arc/add_s-err.s: New file. * gas/arc/cpu-warn1.s: Likewise. * gas/arc/pcl-relocs.d: Likewise. * gas/arc/pcl-relocs.s: Likewise. * gas/arc/pcrel-relocs.d: Likewise. * gas/arc/pcrel-relocs.s: Likewise. * gas/arc/pic-relocs.d: Likewise. * gas/arc/pic-relocs.s: Likewise. * gas/arc/plt-relocs.d: Likewise. * gas/arc/plt-relocs.s: Likewise. * gas/arc/pseudos.d: Likewise. * gas/arc/pseudos.s: Likewise. * gas/arc/sda-relocs.d: Likewise. * gas/arc/sda-relocs.s: Likewise. * gas/arc/sda-relocs2.d: Likewise. * gas/arc/sda-relocs2.s: Likewise. * gas/arc/tls-relocs.d: Likewise. * gas/arc/tls-relocs.s: Likewise. opcode * arc.h (arc_reloc_equiv_tab): Replace flagcode with flags[32]. opcodes * arc-dis.c (special_flag_p): Match full mnemonic. * arc-opc.c (print_insn_arc): Check section size to read appropriate number of bytes. Fix printing. * arc-tbl.h: Fix instruction table. Allow clri/seti instruction without arguments. commit 5cc854a862fef488bd08190eb5822ab6e2a50ef3 Author: GDB Administrator Date: Fri Dec 4 00:00:12 2015 +0000 Automatic date update in version.in commit 7ef8ae7c5f352bb1ef166af0fe6a09a3d3b39f67 Author: Vladimir Radosavljevic Date: Thu Dec 3 15:29:17 2015 -0800 Take addend into account when making GOT entries for local symbols. gold/ * object.cc (Sized_relobj::do_for_all_local_got_entries): Use Local_got_entry_key for searching in local_got_offsets_. * object.h (class Local_got_entry_key): New class. (Relobj::local_has_got_offset): New overloaded method. (Relobj::local_got_offset): Likewise. (Relobj::set_local_got_offset): Likewise. (Relobj::do_local_has_got_offset): Add addend argument. (Relobj::do_local_got_offset): Likewise. (Relobj::do_set_local_got_offset): Likewise. (Sized_relobj::do_local_has_got_offset): Add addend argument, and use Local_got_entry_key for searching through local_got_offsets_. (Sized_relobj::do_local_got_offset): Likewise. (Sized_relobj::do_set_local_got_offset): Likewise. (Sized_relobj::Local_got_offsets): Change type of the key from unsigned int to Local_got_entry_key, and add hash and equal_to. * output.cc (Got_entry::write): Take addend into account for calculating value of the local symbol for GOT. (Output_data_got::add_local): New definition of overloaded method. (Output_data_got::add_local_with_rel): Likewise. (Output_data_got::add_local_pair_with_rel): Likewise. * output.h (Output_data_got::add_local): New declaration of overloaded method. commit e58c48b4c81f25ec08174f324990d021aad0e96e Author: Antoine Tremblay Date: Thu Dec 3 13:56:37 2015 -0500 Remove duplicate arch/arm.h include in linux-arm-low.c. A duplicate include arm/arm.h was introduced, remove it. Pushed as obvious. gdb/gdbserver/ChangeLog: * linux-arm-low.c: Remove duplicate arch/arm.h include. commit 41d0efca578f03db2787246a4e0c7bf9b085007c Author: Yao Qi Date: Thu Dec 3 17:12:41 2015 +0000 Run gdb.base/sizeof.exp with board having gdb,noinferiorio In my remote cross testing (x86_64 host and aarch64 target), the test gdb.base/sizeof.exp is skipped because gdb,noinferiorio is defined in my gdbserver board file. Tests are skipped because the test checks the expected value from the program's output, but I don't see why must do it this way. With my patch applied, we can save the result in variable in the program, and check the variable then. Then, the test doesn't rely on inferiorio. gdb/testsuite: 2015-12-03 Yao Qi * gdb.base/sizeof.c: Don't include stdio.h and ../lib/unbuffer_output.c. (main): New variable 'size' and 'value'. Remove printf and gdb_unbuffer_output. Assign return value to size and value. * gdb.base/sizeof.exp: Remove the checking to gdb,noinferiorio at the beginning. (check_sizeof): Check the result by printing variable 'size'. (check_valueof): Check the result by printing variable 'value'. commit b4687fcc2bfb7e72bd34aed19490d0afe0fd9c2c Author: Tristan Gingold Date: Thu Dec 3 11:56:09 2015 +0100 Darwin: add new mach-o header flags. binutils/ * od-macho.c (bfd_mach_o_header_flags_name): Add name for flags until BFD_MACH_O_MH_APP_EXTENSION_SAFE. include/mach-o/ * loader.h (bfd_mach_o_header_flags): Add BFD_MACH_O_MH_APP_EXTENSION_SAFE. commit 06cc42316cde28e082b37216787361f2d87a078d Author: GDB Administrator Date: Thu Dec 3 00:00:08 2015 +0000 Automatic date update in version.in commit 923b198a8426f02866f33362b26ed8bbf7a5c5cd Author: Alan Modra Date: Wed Dec 2 15:46:48 2015 +1030 addr2line vs. inlined C functions called from C++ In this case the inlined function doesn't have DW_AT_linkage_name in .debug_info, but the language is C++ so find_nearest_line goes looking in the symbol table. Since the function is inlined the enclosing non-inline function symbol is returned from _bfd_elf_find_function, which is wrong. This patch only uses a symbol if its address matches. PR binutils/19315 * dwarf2.c (_bfd_elf_find_function): Return symbol matched. (_bfd_dwarf2_find_nearest_line): Check symbol returned above against dwarf range. * elf-bfd.h (_bfd_elf_find_function): Update prototype. commit 26e3a0c9ba4a8376fdf9f898637919d144d8b1d8 Author: Alan Modra Date: Wed Dec 2 19:23:41 2015 +1030 Make --enable-initfini-array the default * configure.ac (--enable-initfini-array): Remove run test. Default to "yes". Change help string to --disable-initfini-array. * configure: Regenerate. commit c27b8c2aeb369972f4f9f98f390607694c56a127 Author: Alan Modra Date: Wed Dec 2 18:49:53 2015 +1030 Fix powerpc64 segfault caused by zero r_symndx relocs. Fixes a segfault in ppc64_elf_tls_optimize found when testing R_PPC64_ENTRY, and potential for trouble in other places found by code inspection. * elf64-ppc.c (ppc64_elf_tls_optimize): Don't segfault on NULL symbol section or output section. (ppc64_elf_edit_toc): Similarly for ld -R objects. (ppc64_elf_size_stubs): Likewise. commit 3395762edd7232d976179b232c93cd901b739367 Author: Andre Vieira Date: Wed Nov 25 13:56:55 2015 +0000 Fix ldah being disassembled as ldaexh 2015-12-02 Andre Vieira opcodes/ * arm-dis.c (arm_opcodes): : Fix typo... : ... to this. gas/testsuite/ * gas/arm/armv8-a.d: : Rename mismatched mnemonics ... : ... to this. commit 46de9bcfe44d90bb61a386f2fae013fd65865461 Author: GDB Administrator Date: Wed Dec 2 00:00:08 2015 +0000 Automatic date update in version.in commit ead3d5427a2df5e33316d4ad045510c1d2078c2a Author: H.J. Lu Date: Tue Dec 1 14:45:51 2015 -0800 Properly check symbol defined by assignment in linker script Symbol defined by a linker assignment may have type bfd_link_hash_new or bfd_link_hash_undefined. And h->def_regular is always set. elf_i386_convert_load and elf_x86_64_convert_load should check h->def_regular as well as bfd_link_hash_undefined and bfd_link_hash_new to see if a symbol is defined by a linker script. bfd/ PR ld/19319 * elf32-i386.c (elf_i386_convert_load): Check h->def_regular instead of bfd_link_hash_new. * elf64-x86-64.c (elf_x86_64_convert_load): Likewise. Skip relocation overflow for bfd_link_hash_undefined and bfd_link_hash_new if h->def_regular is set. ld/testsuite/ PR ld/19319 * ld-i386/i386.exp: Run pr19319 test. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr19319.dd: New file. * ld-i386/pr19319a.S: Likewise. * ld-i386/pr19319b.S: Likewise. * ld-x86-64/pr19319.dd: Likewise. * ld-x86-64/pr19319a.S: Likewise. * ld-x86-64/pr19319b.S: Likewise. commit 974eac9d7694ca14dcdf6d1a74777a265fffdb95 Author: Ulrich Weigand Date: Tue Dec 1 18:04:39 2015 +0100 Avoid "operation may be undefined" warning in remote.c GCC 4.1 gives the following warning: gdb/remote.c: In function 'remote_parse_stop_reply': gdb/remote.c:6549: warning: operation on 'p' may be undefined on this line of code: event->ptid = read_ptid (++p, &p); Since p actually isn't used afterwards anyway, simply use NULL. gdb/ * remote.c (remote_parse_stop_reply): Avoid GCC 4.1 "operation may be undefined" warning. commit 2e3b657e3a811087533cec33307eb8bbf454cd1c Author: Ulrich Weigand Date: Tue Dec 1 17:49:27 2015 +0100 Fix uninitialized variable warnings in remote.c Fix a couple of places where a struct thread_item was added to a vector while the item.name field was uninitialized. gdb/ * remote.c (remote_newthread_step): Initialize item.name. (remote_get_threads_with_qthreadinfo): Likewise. commit 99fd02d9fc9d6cc470d3b81c4cc3439b47bb9419 Author: Yao Qi Date: Tue Dec 1 12:37:04 2015 +0000 Run gdb.base/disp-step-syscall.exp for aarch64-linux This patch handles target aarch64*-*-linux* for syscall instruction. gdb/testsuite: 2015-12-01 Yao Qi * gdb.base/disp-step-syscall.exp: Define syscall instruction for aarch64*-*-linux* target. commit 3a8c4a5b428c1babd941606c2bbe9cf8a041d9d9 Author: Alan Modra Date: Tue Dec 1 13:56:09 2015 +1030 Trim unused params from aout adjust_sizes_and_vmas * aoutx.h (adjust_sizes_and_vmas): Remove unused text_size and text_end parameters. Update callers. * aout-tic30.c: Update adjust_sizes_and_vmas callers. * hp300hpux.c: Likewise. * i386lynx.c: Likewise. * libaout.h: Likewise. * netbsd.h: Likewise. * pdp11.c: Likewise. * riscix.c: Likewise. commit bbb1afc89b5cfa2f09b6a7c25fbfef745fbdd724 Author: Alan Modra Date: Tue Dec 1 11:40:52 2015 +1030 Invoke aout N_* macros with pointer to struct internal_exec No functional changes here. BTW, some of these headers don't seem to be used anywhere: include/aout/dynix3.h, include/aout/encap.h, include/aout/hp.h, gas/config/aout_gnu.h bfd/ * aout-adobe.c: Invoke aout N_* macros with pointer to struct internal_exec. * aout-arm.c: Likewise. * aout-cris.c: Likewise. * aout-target.h: Likewise. * aout-tic30.c: Likewise. * aoutf1.h: Likewise. * aoutx.h: Likewise. * bout.c: Likewise. * freebsd.h: Likewise. * gen-aout.c: Likewise. * hp300hpux.c: Likewise. * i386aout.c: Likewise. * i386linux.c: Likewise. * i386lynx.c: Likewise. * i386mach3.c: Likewise. * i386os9k.c: Likewise. * libaout.h: Likewise. * m68klinux.c: Likewise. * m88kmach3.c: Likewise. * mipsbsd.c: Likewise. * netbsd.h: Likewise. * pc532-mach.c: Likewise. * pdp11.c: Likewise. * riscix.c: Likewise. * sparclinux.c: Likewise. * sparclynx.c: Likewise. gas/ * config/aout_gnu.h: Invoke aout N_* macros with pointer to struct internal_exec. include/ * bout.h: Invoke aout N_* macros with pointer to struct internal_exec. * os9k.h: Likewise. include/aout/ * adobe.h: Invoke aout N_* macros with pointer to struct internal_exec. * aout64.h: Likewise. * dynix3.h: Likewise. * encap.h: Likewise. * hp.h: Likewise. * hp300hpux.h: Likewise. * sun4.h: Likewise. commit b560e2acdd41fe6b6228b11c2d82ad2a96188153 Author: Alan Modra Date: Tue Dec 1 11:40:25 2015 +1030 Don't use BFD_TRADITIONAL_FORMAT flag in COFF support info->traditional_format is available, or can be easily made available. This relegates BFD_TRADITIONAL_FORMAT to AOUT use only. * coff-rs6000.c (_bfd_xcoff_put_symbol_name): Replace abfd param with info param. Test info->traditional_format rather than BFD_TRADITIONAL_FORMAT flag. * coff64-rs6000.c (_bfd_xcoff64_put_symbol_name): Likewise. * libxcoff.h (struct xcoff_backend_data_rec): Update _xcoff_put_symbol_name prototype. (bfd_xcoff_put_symbol_name): Add info param. * xcofflink.c (xcoff_find_tc0): Update bfd_xcoff_put_symbol_name call. (xcoff_write_global_symbol): Likewise. (xcoff_link_input_bfd): Test info->traditional_format rather than BFD_TRADITIONAL_FORMAT flag. * cofflink.c (_bfd_coff_final_link): Likewise. (_bfd_coff_link_input_bfd, _bfd_coff_write_global_sym): Likewise. commit 23d61901b0dadd93a8d8e26fd113691e5b9ead4f Author: Alan Modra Date: Tue Dec 1 11:40:02 2015 +1030 binutils/configure update Missed from f8c2a965. * configure: Regenerate. commit 44c2e680824714fcbdb1d8151f1b0e842b91d42a Author: Alan Modra Date: Tue Dec 1 11:39:37 2015 +1030 SRC-POTFILES.in update * po/SRC-POTFILES.in: Regenerate. commit f26dd30880bad7f75b5ed1b1683628c7c986bb34 Author: Alan Modra Date: Tue Dec 1 13:36:30 2015 +1030 Re: ARC port broken reloc processing * elf32-arc.c (ARC_ELF_HOWTO): Delete. (arc_elf_howto): New function. (bfd_elf32_bfd_reloc_type_lookup): Use it in place of existing init code. (bfd_elf32_bfd_reloc_name_lookup): Use arc_elf_howto. (arc_info_to_howto_rel, elf_arc_relocate_section): Likwise. (elf_arc_check_relocs): Likewise. commit 0a5ff21b13783cef3b26680d1673b1ae37697aeb Author: Alan Modra Date: Tue Dec 1 11:10:23 2015 +1030 ARC port broken reloc processing This initialises howto.dst_mask so that relocations in debug sections are applied by the generic reloc processing used by objdump to display debug sections. * elf32-arc.c (arc_elf_howto_init): Init dst_mask. commit 56529cb37488352c6b6ef6867de5e2d502ac0218 Author: GDB Administrator Date: Tue Dec 1 00:00:07 2015 +0000 Automatic date update in version.in commit fbec8956077503e04f7adeae7f40037fc834edaa Author: Antoine Tremblay Date: Thu Nov 19 11:29:10 2015 -0500 Remove too simple breakpoint_reinsert_addr implementations. This patch removes too simple implementations of the breakpoint_reinsert_addr operation. The only reason to keep them around was to support thread events when PTRACE_EVENT_CLONE was not present but this support has been removed in a previous patch. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } Also compilation was tested on aarch64, bfin, cris, crisv32, m32r, mips, nios2, ppc, s390, sparc, tic6x, tile, xtensa. gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_reinsert_addr): Remove function. (struct linux_target_ops : Set to NULL. * linux-cris-low.c (cris_reinsert_addr> Remove function. (struct linux_target_ops) : Set to NULL. * linux-crisv32-low.c (cris_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-mips-low.c (mips_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-nios2-low.c (nios2_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. * linux-sparc-low.c (sparc_reinsert_addr): Remove function. (struct linux_target_ops) : Set to NULL. commit 9b4c5f878ff39e04127a1ad95f6b3832afe6d278 Author: Antoine Tremblay Date: Thu Nov 19 11:29:10 2015 -0500 Remove support for thread events without PTRACE_EVENT_CLONE in GDBServer. This patch removes support for thread events if PTRACE_EVENT_CLONE is not supported in GDBServer. Before, on systems that did not support PTRACE_EVENT_CLONE, both GDB and GDBServer coordinated with libthread_db.so to insert breakpoints at magic locations in libpthread.so, in order to break at thread creation and thread death. Simple software single stepping support was implemented to step over these breakpoints in case there was no hardware single stepping support. However, these simple software single stepping implementations were not fit for any other use as discussed in : https://sourceware.org/ml/gdb-patches/2015-04/msg01110.html These too simple implementations conflict with ongoing work to make proper implementations of software single stepping in GDBServer. The problem is that if some implementations are correct and others are not and only there for the thread magic breakpoint, we can't enable features based solely software single step support since some would be broken. To keep the incorrect implementations and allow the new proper ones at the same time we would need to implement fallback code and it quickly becomes ugly and confusing with multiple checks for legacy software single step or proper software single step. However, PTRACE_EVENT_CLONE was first introduced in Linux 2.5.46, released in November 2002. So I think it's reasonable to just remove support for kernels that don't support PTRACE_EVENT_CLONE, and sidestep the libthread_db breakpoints issues entirely. This thread on the mailling list discusses the issue : https://sourceware.org/ml/gdb/2015-10/msg00078.html No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-low.c (linux_look_up_symbols): Don't call linux_supports_traceclone. * linux-low.h (thread_db_init): Remove use_events argument. * thread-db.c (thread_db_use_event): Remove global variable. (struct thread_db) : Remove field. (struct thread_db) : Remove field. (thread_db_create_event): Remove function. (thread_db_enable_reporting): Likewise. (find_one_thread): Don't check for thread_db_use_events. (attach_thread): Likewise. (thread_db_load_search): Remove td_thr_event_enable_p initialization. (try_thread_db_load_1): Don't check for thread_db_use_events. (thread_db_init): Remove use_events argument and thread events handling. (remove_thread_event_breakpoints): Remove function. (thread_db_detach): Remove call to remove_thred_event_breakpoints. commit 7d00775ece9e2364da5cfd65ebbfce515859667f Author: Antoine Tremblay Date: Thu Nov 19 11:29:10 2015 -0500 Refactor queries for hardware and software single stepping support in GDBServer. Before this patch there was only one call: can_hardware_single_step. Its implementation was a check on breakpoint_reinsert_addr if NULL it assumed that the target could hardware single step. This patch prepares for the case where this is not true anymore. In order to improve software single stepping in GDBServer the breakpoint_reinsert_addr operation of targets that had a very simple software implementation used only for stepping over thread creation events will be removed. This will create a case where a target does not support hardware single step and has the operation breakpoint_reinsert_addr set to NULL, thus can_hardware_single_step needs to be implemented another way. A new target operation supports_hardware_single_step is introduced and is to return true if the target does support such a feature, support for the feature is manually hardcoded. Note that the hardware single step support was enabled as per the current behavior, I did not check if tile for example really has ptrace singlestep support but since the current implementation assumed it had, I kept it that way. No regressions on Ubuntu 14.04 on ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } Compilation tested on: aarch64,arm,bfind,crisv32,m32r,ppc,s390,tic6x,tile, xtensa. Not tested : sh. gdb/gdbserver/ChangeLog: * linux-aarch64-low.c (aarch64_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-arm-low.c (arm_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-bfin-low.c (bfin_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-crisv32-low.c (cris_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-low.c (can_hardware_single_step): Use supports_hardware_single_step. (can_software_single_step): New function. (start_step_over): Call can_software_single_step. (linux_supports_hardware_single_step): New function. (struct target_ops) : Initialize. * linux-low.h (struct linux_target_ops) : Initialize. * linux-m32r-low.c (m32r_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-ppc-low.c (ppc_supports_hardware_single_step): New function. (struct linux_target_ops) Initialize. * linux-s390-low.c (s390_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-sh-low.c (sh_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-tic6x-low.c (tic6x_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-tile-low.c (tile_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * linux-x86-low.c (x86_supports_hardware_single_step) New function. (struct linux_target_ops) : Initialize. * linux-xtensa-low.c (xtensa_supports_hardware_single_step): New function. (struct linux_target_ops) : Initialize. * target.h (struct target_ops): : New field. (target_supports_software_single_step): New macro. commit 2d97cd356e0f0320ecb71cf6a10616ba4618f318 Author: Antoine Tremblay Date: Mon Nov 30 15:16:22 2015 -0500 Fix instruction skipping when using software single step in GDBServer Without this patch, when doing a software single step, with for example a conditional breakpoint, gdbserver would wrongly avance the pc of breakpoint_len and skips an instruction. This is due to gdbserver assuming that it's hardware single stepping. When it resumes from the breakpoint address it expects the trap to be caused by ptrace and if it's rather caused by a software breakpoint it assumes this is a permanent breakpoint and that it needs to skip over it. However when software single stepping, this breakpoint is legitimate as it's the reinsert breakpoint gdbserver has put in place to break at the next instruction. Thus gdbserver wrongly advances the pc and skips an instruction. This patch fixes this behavior so that gdbserver checks if it is a reinsert breakpoint from software single stepping. If it is it won't advance the pc. And if there's no reinsert breakpoint there we assume then that it's a permanent breakpoint and advance the pc. Here's a commented log of what would happen before and after the fix on gdbserver : /* Here there is a conditional breakpoint at 0x10428 that needs to be stepped over. */ Need step over [LWP 11204]? yes, found breakpoint at 0x10428 ... /* e7f001f0 is a breakpoint instruction on arm Here gdbserver writes the software breakpoint we would like to hit */ Writing e7f001f0 to 0x0001042c in process 11204 ... Resuming lwp 11220 (continue, signal 0, stop not expected) pending reinsert at 0x10428 stop pc is 00010428 continue from pc 0x10428 ... /* Here gdbserver hit the software breakpoint that was in place for the step over */ stop pc is 0001042c pc is 0x1042c step-over for LWP 11220.11220 executed software breakpoint Finished step over. Could not find fast tracepoint jump at 0x10428 in list (reinserting). /* Here gdbserver writes back the original instruction */ Writing e50b3008 to 0x0001042c in process 11220 Step-over finished. Need step over [LWP 11220]? No /* Here because gdbserver assumes this is a permenant breakpoint it advances the pc of breakpoint_len, in this case 4 bytes, so we have just skipped the instruction that was written back here : Writing e50b3008 to 0x0001042c in process 11220 */ stop pc is 00010430 pc is 0x10430 Need step over [LWP 11220]? No, no breakpoint found at 0x10430 Proceeding, no step-over needed proceed_one_lwp: lwp 11220 stop pc is 00010430 This patch fixes this situation and we get the right behavior : Writing e50b3008 to 0x0001042c in process 11245 Hit a gdbserver breakpoint. Hit a gdbserver breakpoint. Step-over finished. proceeding all threads. Need step over [LWP 11245]? No stop pc is 0001042c pc is 0x1042c Need step over [LWP 11245]? No, no breakpoint found at 0x1042c Proceeding, no step-over needed proceed_one_lwp: lwp 11245 stop pc is 0001042c pc is 0x1042c Resuming lwp 11245 (continue, signal 0, stop not expected) stop pc is 0001042c continue from pc 0x1042c It also works if the value at 0x0001042c is a permanent breakpoint. If so gdbserver will finish the step over, remove the reinserted breakpoint, resume at that location and on the next SIGTRAP gdbserver will trigger the advance PC condition as reinsert_breakpoint_inserted_here will be false. I also tested this against bp-permanent.exp on arm (with a work in progress software single step patchset) without any regressions. It's also tested against x86 bp-permanent.exp without any regression. So both software and hardware single step are tested. No regressions on Ubuntu 14.04 on ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-low.c (linux_wait_1): Fix pc advance condition. * mem-break.c (reinsert_breakpoint_inserted_here): New function. * mem-break.h (reinsert_breakpoint_inserted_here): New declaration. commit 769ef81fec526f3c7513c88e82f98045f8971d14 Author: Antoine Tremblay Date: Mon Nov 30 15:08:04 2015 -0500 Fix breakpoint size when stepping over a permanent breakpoint in GDBServer. When manually stepping over a permanent breakpoint on ARM we need to fetch the right breakpoint size based on the current instruction set used. Since this is not encoded in the stop_pc, the instruction mode needs to be fetched from the CPSR register. This is done by introducing a new target operation called : breakpoint_kind_from_current_state. For other targets that do not need this, breakpoint_kind_from_pc is used. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_is_thumb_mode): New function. (arm_breakpoint_at): Use arm_is_thumb_mode. (arm_breakpoint_kind_from_current_state): New function. (struct linux_target_ops) : Initialize. * linux-low.c (linux_wait_1): Call breakpoint_kind_from_current_state. (linux_breakpoint_kind_from_current_state): New function. (struct target_ops : Initialize. * linux-low.h (struct linux_target_ops) : New field. * target.h (struct target_ops): Likewise. (target_breakpoint_kind_from_current_state): New macro. commit fddedbe665db9cb9824150e454c89abdc750957a Author: Pedro Alves Date: Mon Nov 30 16:05:27 2015 +0000 gdbserver: don't exit until GDB disconnects When testing with "target remote" with "maint set target-non-stop on", we regressions like this: Running /home/pedro/gdb/mygit/build/../src/gdb/testsuite/gdb.threads/continue-pending-after-query.exp ... FAIL: gdb.threads/continue-pending-after-query.exp: iter 4: continue until exit FAIL: gdb.threads/continue-pending-after-query.exp: iter 6: continue until exit FAIL: gdb.threads/continue-pending-after-query.exp: iter 10: continue until exit === gdb Summary === # of expected passes 28 # of unexpected failures 3 where gdb.log shows: continue Continuing. Remote communication error. Target disconnected.: Connection reset by peer. (gdb) FAIL: gdb.threads/continue-pending-after-query.exp: iter 4: continue until exit Enabling gdb + gdbserver debug logs we see: gdbserver: <<<< exiting linux_wait_1 gdbserver: handling possible serial event gdbserver: Writing resume reply for LWP 11089.11089:0 gdbserver: handling possible serial event gdbserver: GDBserver exiting GDB: Packet received: OK GDB: infrun: prepare_to_wait GDB: Sending packet: $vStopped#55...Packet received: W0;process:2b51 GDB: Sending packet: $vStopped#55...Packet received: OK GDB: infrun: target_wait (-1.0.0, status) = GDB: infrun: -1.0.0 [Thread 0], GDB: infrun: status->kind = no-resumed GDB: Sending packet: $Hgp2b51.2b51#41...Remote connection closed (gdb) FAIL: gdb.threads/continue-pending-after-query.exp: iter 1: continue until exit Notice the "Packet received: W0;process:2b51" followed by vStopped->OK. That means the process exit notification was successfully sent to GDB and GDB fetched it. That makes gdbserver exit, in server.c:process_serial_event: if (!extended_protocol && have_ran && !target_running ()) { /* In non-stop, defer exiting until GDB had a chance to query the whole vStopped list (until it gets an OK). */ if (QUEUE_is_empty (notif_event_p, notif_stop.queue)) { /* Be transparent when GDB is connected through stdio -- no need to spam GDB's console. */ if (!remote_connection_is_stdio ()) fprintf (stderr, "GDBserver exiting\n"); remote_close (); exit (0); } } However, GDB is still busy processing an earlier "no-resumed" event, and sends a "Hg" packet, which errors out with "Remote connection closed". IOW, it's not enough to wait for GDB to query the whole vStopped list, gdbserver needs to wait until the exit event is really processed. The fix is to make gdbserver not disconnect until gdb does. Tested on x86_64 Fedora, native gdbserver, remote + extended-remote + with and without "maint set target-non-stop on". gdb/gdbserver/ChangeLog: 2015-10-14 Pedro Alves * remote-utils.c (readchar): Don't print "Got EOF" unless debugging gdbserver. * server.c (captured_main): Exit gdbserver if gdb disconnects when in "target remote" mode and there are no processes left to debug. (process_serial_event): Remove 'have_ran' static local and remove logic that exits gdbserver in "target remote" mode. commit 1bebeeca940f4f6339e66eb7fb486c81cd951522 Author: Pedro Alves Date: Mon Nov 30 16:05:26 2015 +0000 gdbserver/linux: Always wake up event loop after resume Running killed-outside.exp in with "maint set target-non-stop on" hangs currently. This test has the inferior process die with a SIGKILL while stopped. gdbserver gets a SIGCHLD and reacts by retrieveing the SIGKILL events out of waitpid. But because the process is not resumed from GDB's perspective, the event is left pending. When GDB resumes the process afterwards, the process is not really resumed because it already has the event pending. But nothing wakes up the event loop to consume the event. Handle this in the same way nat/linux-nat.c:linux_nat_resume handles this. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * linux-low.c (linux_resume): Wake up the event loop before returning. commit a67a9faef0e32886c83611cc7a0ba61e91123063 Author: Pedro Alves Date: Mon Nov 30 16:05:26 2015 +0000 gdbserver:prepare_access_memory: pick another thread Say GDB wants to access the inferior process's memory. The current remote general thread is 3, but GDB's switched to thread 2. Because both threads are of the same process, GDB skips making the remote thread be thread 2 as well (sending an Hg packet) before accessing memory (remote.c:set_general_process). However, if thread 3 has exited meanwhile, thread 3 no longer exists on the server and gdbserver points current_thread to NULL. The result is the memory access fails, even through the process still exists. Fix this by making prepare_to_access memory select the thread to access memory through. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * mem-break.c (check_gdb_bp_preconditions): Remove current_thread check. (set_gdb_breakpoint): If prepare_to_access_memory fails, set *ERR to -1. * target.c (struct thread_search): New structure. (thread_search_callback): New function. (prev_general_thread): New global. (prepare_to_access_memory, done_accessing_memory): New functions. * target.h (prepare_to_access_memory, done_accessing_memory): Replace macros with function declarations. commit f2faf941ae49653ff6e1485adfee299313d47c91 Author: Pedro Alves Date: Mon Nov 30 16:05:25 2015 +0000 Implement TARGET_WAITKIND_NO_RESUMED in the remote protocol Testing with "maint set target-non-stop on" causes regressions in tests that rely on TARGET_WAITKIND_NO_RESUMED, which isn't modelled on the RSP. In real all-stop, gdbserver detects the situation and reporst error to GDB, and so the tests (e.g., gdb.threads/no-unwaited-for-left.exp) at fail quickly. But with "maint set target-non-stop on", GDB instead hangs forever waiting for a stop reply that never comes, and so the tests take longer to time out. This adds a new "N" stop reply packet that maps 1-1 to TARGET_WAITKIND_NO_RESUMED. gdb/ChangeLog: 2015-11-30 Pedro Alves PR 14618 * NEWS (New remote packets): Mention the N stop reply. * remote.c (remote_protocol_features): Add "no-resumed" entry. (remote_query_supported): Report no-resumed+ support. (remote_parse_stop_reply): Handle 'N'. (process_stop_reply): Handle TARGET_WAITKIND_NO_RESUMED. (remote_wait_as): Handle 'N' / TARGET_WAITKIND_NO_RESUMED. (_initialize_remote): Register "set/show remote no-resumed-stop-reply" commands. gdb/doc/ChangeLog: 2015-11-30 Pedro Alves PR 14618 * gdb.texinfo (Stop Reply Packets): Document the N stop reply. (Remote Configuration): Add the "set/show remote no-resumed-stop-reply" to the available settings table. (General Query Packets): Document the "no-resumed" qSupported feature. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves PR 14618 * linux-low.c (linux_wait_1): If the last resumed thread is gone, report TARGET_WAITKIND_NO_RESUMED. * remote-utils.c (prepare_resume_reply): Handle TARGET_WAITKIND_NO_RESUMED. * server.c (report_no_resumed): New global. (handle_query) : Handle "no-resumed+". Report "no-resumed+" support. (resume): When the target reports TARGET_WAITKIND_NO_RESUMED, only return error if the client doesn't support no-resumed events. (push_stop_notification): New function. (handle_target_event): Use it. Report TARGET_WAITKIND_NO_RESUMED events if the client supports them. gdb/testsuite/ChangeLog: 2015-11-30 Pedro Alves * gdb.threads/no-unwaited-for-left.exp: Remove setup_kfail calls. commit f4836ba964a96364f39c7eab8b8b2f8656d14d05 Author: Pedro Alves Date: Mon Nov 30 16:05:24 2015 +0000 infrun: Fix TARGET_WAITKIND_NO_RESUMED handling in non-stop mode Running the testsuite against gdbserver with "maint set target-non-stop on" stumbled on a set of problems. See code comments for details. This handles my concerns expressed in PR14618. gdb/ChangeLog: 2015-11-30 Pedro Alves PR 14618 * infrun.c (handle_no_resumed): New function. (handle_inferior_event_1) : Defer to handle_no_resumed. commit 04bf20c5687b102b9a2c2a915d4c400788296a3b Author: Pedro Alves Date: Mon Nov 30 16:05:23 2015 +0000 testsuite: Range stepping and non-stop mode The range-stepping tests fail with "maint set target-non-stop on" mode because exec_cmd_expect_vCont_count doesn't know that in non-stop mode, vCont's reply is simply "OK". gdb/testsuite/ChangeLog: 2015-11-30 Pedro Alves * lib/range-stepping-support.exp (exec_cmd_expect_vCont_count): Handle non-stop mode vCont replies. commit a681f9c91372d282229f6d58ba235ef0dd3644fb Author: Pedro Alves Date: Mon Nov 30 16:05:23 2015 +0000 gdbserver: fix killed-outside.exp killed-outside.exp regresses with "maint set target-non-stop on". The logs show: (gdb) continue Continuing. infrun: clear_proceed_status_thread (Thread 9028.9028) infrun: proceed (addr=0xffffffffffffffff, signal=GDB_SIGNAL_DEFAULT) infrun: proceed: resuming Thread 9028.9028 Sending packet: $Z0,3615a03966,1#4b... Notification received: Stop:X9;process:2344 Packet received: E01 Sending packet: $Z0,3615a13970,1#47...Packet received: E01 Sending packet: $Z0,3615a14891,1#4a...Packet received: E01 infrun: resume (step=0, signal=GDB_SIGNAL_0), trap_expected=0, current thread [Thread 9028.9028] at 0x4005e4 Sending packet: $vCont;c:p2344.2344#1a...Packet received: E.target not running. Sending packet: $qXfer:threads:read::0,fff#03...Packet received: l\n\n Sending packet: $vStopped#55...Packet received: OK Unexpected vCont reply in non-stop mode: E.target not running. (gdb) remote_async_inferior_event_handler infrun: target_wait (-1.0.0, status) = infrun: 9028.0.0 [process 9028], 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 infrun: clear_step_over_info infrun: stop_all_threads remote_thread_exit_events(1) Note the "Unexpected vCont reply" error. I traced it to a problem in status_pending_p_callback. It resumes an LWP when it shouldn't. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * linux-low.c (thread_still_has_status_pending_p): Don't check vCont;t here. (lwp_resumed): New function. (status_pending_p_callback): Return early if the LWP is not supposed to be resumed. commit 65706a29bac50c2c971227a1945e46502845766b Author: Pedro Alves Date: Mon Nov 30 16:05:21 2015 +0000 Remote thread create/exit events When testing with "maint set target-non-stop on", a few threading-related tests expose an issue that requires new RSP packets. Say there are 3 threads running, 1-3. If GDB tries to stop thread 1, 2 and 3, and then waits for their stops, but meanwhile say, thread 2 exits, GDB hangs forever waiting for a stop for thread 2 that won't ever happen. This patch fixes the issue by adding support for thread exit events to the protocol. However, we don't want these always enabled, as they're useless most of the time, and would slow down remote debugging. So I made it so that GDB can enable/disable them, and then made gdb do that around the cases that need it, which currently is only infrun.c:stop_all_threads. In turn, if we have thread exit events, then the extra "thread x exited" traffic slows down attach-many-short-lived-threads.exp enough that gdb has trouble keeping up with new threads that are spawned while gdb tries to stop existing ones. To fix that I added support for the counterpart thread created events too. Enabling those when we try to stop threads ensures that new threads never get a chance to themselves start new threads, killing the race. gdb/doc/ChangeLog: 2015-11-30 Pedro Alves * gdb.texinfo (Remote Configuration): List "set/show remote thread-events" command in configuration table. (Stop Reply Packets): Document "T05 create" stop reason and 'w' stop reply. (General Query Packets): Document QThreadEvents packet. Document QThreadEvents qSupported feature. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * linux-low.c (handle_extended_wait): Assert that the LWP's waitstatus is TARGET_WAITKIND_IGNORE. If GDB wants to hear about thread create events, leave the new child's status pending. (linux_low_filter_event): If GDB wants to hear about thread exit events, leave the LWP marked dead and don't delete it. (linux_wait_for_event_filtered): Don't check for thread exit. (filter_exit_event): New function. (linux_wait_1): Use it, when returning an exit event. (linux_resume_one_lwp_throw): Assert that the LWP's waitstatus is TARGET_WAITKIND_IGNORE. * remote-utils.c (prepare_resume_reply): Handle TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED. * server.c (report_thread_events): New global. (handle_general_set): Handle QThreadEvents. (handle_query) : Handle and report QThreadEvents+; (handle_target_event): Handle TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED. * server.h (report_thread_events): Declare. gdb/ChangeLog: 2015-11-30 Pedro Alves * NEWS (New commands): Mention "set/show remote thread-events" commands. (New remote packets): Mention thread created/exited stop reasons and QThreadEvents packet. * infrun.c (disable_thread_events): New function. (stop_all_threads): Disable/enable thread create/exit events. Handle TARGET_WAITKIND_THREAD_EXITED. (handle_inferior_event_1): Handle TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED. * remote.c (remove_child_of_pending_fork): Also remove threads of threads that have TARGET_WAITKIND_THREAD_EXITED events. (remote_parse_stop_reply): Handle "create" magic register. Handle 'w' stop reply. (initialize_remote): Install remote_thread_events as to_thread_events target hook. (remote_thread_events): New function. * target-delegates.c: Regenerate. * target.c (target_thread_events): New function. * target.h (struct target_ops) : New field. (target_thread_events): Declare. * target/waitstatus.c (target_waitstatus_to_string): Handle TARGET_WAITKIND_THREAD_CREATED and TARGET_WAITKIND_THREAD_EXITED. * target/waitstatus.h (enum target_waitkind) Date: Mon Nov 30 16:05:19 2015 +0000 Make dprintf-non-stop.exp cope with remote testing Testing with the extended-remote board with "maint set target-non-stop on" shows a dprintf-non-stop.exp regression. The issue is simply that the test is expecting output that is only valid for the native target: native: [process 8676] #1 stopped. remote: [Thread 8900.8900] #1 stopped. In order to expose this without "maint set target-non-stop on", this restarts gdb with non-stop mode already enabled. gdb/testsuite/ChangeLog: 2015-11-30 Pedro Alves * gdb.base/dprintf-non-stop.exp: Use build_executable instead of prepare_for_testing. Start gdb with "set non-stop on" appended to GDBFLAGS. Lax expected stop output. commit 56cf4bed5354769d7352c5cf4e054a346d2553cd Author: Pedro Alves Date: Mon Nov 30 16:05:19 2015 +0000 gdbserver resume_stop handling bug Running attach-many-short-lived-threads.exp with the extended-remote board with "maint set target-non-stop on" times out -- the attach never completes. Enabling infrun debug logs, we see that GDB is stuck stopping all threads: infrun: target_wait (-1.0.0, status) = infrun: 1639.22213.0 [Thread 1639.22213], infrun: status->kind = stopped, signal = GDB_SIGNAL_0 infrun: Thread 1639.22260 not executing infrun: Thread 1639.22256 not executing infrun: Thread 1639.22258 not executing infrun: Thread 1639.22257 not executing infrun: Thread 1639.22259 not executing infrun: Thread 1639.22255 not executing infrun: Thread 1639.22253 executing, already stopping infrun: Thread 1639.22251 executing, already stopping infrun: Thread 1639.22252 executing, already stopping infrun: Thread 1639.22250 executing, already stopping infrun: Thread 1639.22254 executing, already stopping infrun: Thread 1639.22247 executing, already stopping infrun: Thread 1639.22213 not executing infrun: Thread 1639.22207 not executing infrun: Thread 1639.22201 not executing infrun: Thread 1639.22219 not executing infrun: Thread 1639.1639 not executing ** HANG HERE ** GDB is waiting for the stop replies of any of those "already stopping" threads. Take 22253 for example. On the gdbserver logs we see: ... resume_stop request for LWP 22253 stopping LWP 22253 Sending sigstop to lwp 22253 linux_resume done ... and: my_waitpid (-1, 0x40000001) my_waitpid (-1, 0x80000001): status(3057f), 22253 LWFE: waitpid(-1, ...) returned 22253, ERRNO-OK LLW: waitpid 22253 received Trace/breakpoint trap (stopped) pc is 0x3615ef4ce1 HEW: Got clone event from LWP 22253, new child is LWP 22259 but from here on, we never see any other event for LWP 22253. In particular, we never see the expected SIGSTOP (from "Sending sigstop" above). The issue is that linux_resume_stopped_resumed_lwps never re-resumes the 22253 after the clone event. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * linux-low.c (resume_stopped_resumed_lwps): Don't check whether the thread's last_resume_kind was resume_stop. commit 500c1d8576ad5a5bdc791fc7f7c3518a4d3f4b39 Author: Pedro Alves Date: Mon Nov 30 16:05:18 2015 +0000 gdbserver crash if gdb attaches too fast With "maint set target-non-stop on", the attach tests occasionally crash gdbserver. Basically, gdb attaches with vAttach;PID, and then shortly after reads the xml target description for that process, to figure out the process' architecture. On the gdbserver side, the target description is only filled in when the first process/thread in the thread group reports its initial PTRACE_ATTACH SIGSTOP. So if GDB is fast enough, it can read the target description _before_ that initial stop, and then gdbserver dies dereferencing a NULL tdesc pointer. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * linux-low.c (linux_attach): In non-stop mode, wait for one stop before returning. commit de979965d3f5de7e4bf2354871fe85b3f77c720e Author: Pedro Alves Date: Mon Nov 30 16:05:17 2015 +0000 New vCtrlC packet, non-stop mode equivalent of \003 There's currently no non-stop equivalent of the all-stop ^C (\003) "packet" that GDB sends when a ctrl-c is pressed while a foreground command is active. There's vCont;t, but that's defined to cause a "signal 0" stop. This fixes many tests that type ^C, when testing with extended-remote with "maint set target-non-stop on". E.g.: Continuing. talk to me baby PASS: gdb.base/interrupt.exp: process is alive a a PASS: gdb.base/interrupt.exp: child process ate our char ^C [Thread 22730.22730] #1 stopped. 0x0000003615ee6650 in __read_nocancel () at ../sysdeps/unix/syscall-template.S:81 81 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS) (gdb) FAIL: gdb.base/interrupt.exp: send_gdb control C p func1 () gdb/ 2015-11-30 Pedro Alves * NEWS (New remote packets): Mention vCtrlC. * remote.c (PACKET_vCtrlC): New enum value. (async_remote_interrupt): Call target_interrupt instead of target_stop. (remote_interrupt_as): Remove 'ptid' parameter. (remote_interrupt_ns): New function. (remote_stop): Adjust. (remote_interrupt): If the target is in non-stop mode, try interrupting with vCtrlC. (initialize_remote): Install set remote ctrl-c packet. gdb/doc/ 2015-11-30 Pedro Alves * gdb.texinfo (Bootstrapping): Add "interrupting remote targets" anchor. (Packets): Document vCtrlC. gdb/gdbserver/ 2015-11-30 Pedro Alves * server.c (handle_v_requests): Handle vCtrlC. commit 799a2abe613be0645b84f5aaa050f2f91e6ae3f7 Author: Pedro Alves Date: Mon Nov 30 16:05:16 2015 +0000 remote: stop reason and watchpoint data address per thread Running local-watch-wrong-thread.exp with "maint set target-non-stop on" exposes that gdb/remote.c only records whether the target stopped for a breakpoint/watchpoint plus the watchpoint data address *for the last reported remote event*. But in non-stop mode, we need to keep that info per-thread, as each thread can end up with its own last-status pending. gdb/ChangeLog: 2015-11-30 Pedro Alves * remote.c (struct remote_state) : Delete fields. (struct private_thread_info) : New fields. (resume_clear_thread_private_info): New function. (append_pending_thread_resumptions): Call it. (remote_resume): Clear all threads' private info. (process_stop_reply): Adjust. (remote_wait_as): Don't reference remote_state's stop_reason field. (remote_stopped_by_sw_breakpoint) (remote_stopped_by_hw_breakpoint, remote_stopped_by_watchpoint) (remote_stopped_data_address): Adjust to refer get data from the current thread. commit 34c6591498f4363ef2c71d683cdaaa33d6a6ad64 Author: Pedro Alves Date: Mon Nov 30 16:05:15 2015 +0000 gdbserver crash running gdb.threads/non-ldr-exc-1.exp This fixes a gdbserver crash when running gdb.threads/non-ldr-exc-1.exp with "maint set target-non-stop on". The problem is that qSymbol is called when gdbserver has current_thread == NULL. gdb/gdbserver/ChangeLog: 2015-11-30 Pedro Alves * gdbthread.h (find_any_thread_of_pid): Declare. * inferiors.c (thread_of_pid, find_any_thread_of_pid): New functions. * server.c (handle_query): If current_thread is NULL, look for another thread of the selected process. commit 066f6b6edcb63b363cc9a95c3727b996d1895549 Author: Pedro Alves Date: Mon Nov 30 16:05:14 2015 +0000 attach + target always in non-stop mode: stop all threads When running with "maint set target-non-stop on", and in all-stop mode, nothing is stopping all threads after attaching. vAttach in non-stop can leave all threads running and GDB has to explicitly pause them. This is not visible with the native target, as in that case, attach always stops all threads (the core re-resumes them in case of "attach&"). In addition, it's not defined which thread manages to report the initial attach stop, so always pick the lowest one (otherwise multi-attach.exp regresses). gdb/ChangeLog: 2015-11-30 Pedro Alves * infcmd.c (attach_post_wait): If the target is always in non-stop mode, and the UI is in all-stop mode, stop all threads and pick the one with lowest number as current. commit 6efcd9a8b3dc6a01cd1f212a2d854e5f8896715e Author: Pedro Alves Date: Mon Nov 30 16:05:13 2015 +0000 Remote all-stop-on-top-of-non-stop This is the first pass at implementing support for all-stop mode running against the remote target using the non-stop variant of the protocol. The trickiest part here is the initial connection setup/synching. We need to fetch all inferiors' target descriptions etc. before stopping threads, because stop_all_threads needs to read the threads' registers (to record each thread's stop_pc). But OTOH, the initial inferior setup (target_post_attach, post_create_inferior, etc.), only works correctly if the inferior is stopped... So I've split that initial setup part from attach_command_post_wait to a separate function, and added a "still needs setup" flag to the inferior structure. This is similar to gdbserver/linux-low.c's handling of discovering the process's target description). Then if on connection all threads of the remote inferior are running, when we go about stopping them, as soon as they stop we call setup_inferior, from within stop_all_threads. Also, in all-stop, we need to process all the initial stop replies to learn about all the pending signal the threads may already be stopped for, and pick the one to report as current. This is exposed by gdb.threads/reconnect-signal.exp. gdb/ 2015-11-30 Pedro Alves * gdbthread.h (switch_to_thread_no_regs): Declare. * infcmd.c (setup_inferior): New function, factored out from ... (attach_command_post_wait): ... this. Rename to ... (attach_post_wait): ... this. Replace parameter async_exec with attach_post_wait_mode parameter. Adjust. (enum attach_post_wait_mode): New enum. (struct attach_command_continuation_args): Replace 'async_exec' field with 'mode' field. (attach_command_continuation): Adjust. (attach_command): Add comment. Mark the inferior as needing setup. Adjust to use enum attach_post_wait_mode. (notice_new_inferior): Use switch_to_thread_no_regs. Adjust to use enum attach_post_wait_mode. * inferior.h (setup_inferior): Declare. (struct inferior) : New field. * infrun.c (set_last_target_status): Make extern. (stop_all_threads): Make extern. Setup inferior, if necessary. * infrun.h (set_last_target_status, stop_all_threads): Declare. * remote-notif.c (remote_async_get_pending_events_handler) (handle_notification): Replace non_stop checks with target_is_non_stop_p() checks. * remote.c (remote_notice_new_inferior): Remove non_stop check. (remote_update_thread_list): Replace non_stop check with target_is_non_stop_p() check. (print_one_stopped_thread): New function. (process_initial_stop_replies): New 'from_tty' parameter. "Notice" all new live inferiors after storing initial stops as pending status in each corresponding thread. If all-stop, stop all threads, try picking a signalled thread as current, and print the status of that one thread. Record the last target status. (remote_start_remote): Replace non_stop checks with target_is_non_stop_p() checks. Don't query for the remote current thread of use qOffsets here. Pass from_tty to process_initial_stop_replies. (extended_remote_attach): Replace non_stop checks with target_is_non_stop_p() checks. (extended_remote_post_attach): Send qOffsets here. (remote_vcont_resume, remote_resume, remote_stop) (remote_interrupt, remote_parse_stop_reply, remote_wait): Replace non_stop checks with target_is_non_stop_p() checks. (remote_async): If target is non-stop, mark/clear the pending events token. * thread.c (switch_to_thread_no_regs): New function. commit f015c27b5294eaf87d0aa814d94972e65c7cc90e Author: Pedro Alves Date: Mon Nov 30 16:05:12 2015 +0000 Fix mi-nonstop.exp with extended-remote Testing with "maint set target-non-stop on" makes mi-nonstop.exp run with the extended-remote board. That reveals that mi-nonstop.exp is using the wrong predicate to check for "using remote protocol". This is not visible today because non-stop tests all fail to run with extended-remote board, because they spawn gdb and then do "set non-stop on". However, with that board, gdb connects to the gdbserver from within mi_gdb_start, and changing non-stop when already connected doesn't work. Fix that by instead enabling non-stop mode on gdb's command line. gdb/testsuite/ChangeLog: 2015-11-30 Pedro Alves * gdb.mi/mi-nonstop.exp: Append "set non-stop on" to GDBFLAGS instead of issuing "-gdb-set non-stop 1" after starting gdb. Use mi_is_target_remote instead of checking "is_remote target". * lib/gdb.exp (gdb_is_target_remote): Rename to ... (gdb_is_target_remote_prompt): ... this, and add 'prompt_regexp' parameter. (gdb_is_target_remote): Reimplement. * lib/mi-support.exp (mi_is_target_remote): New procedure. commit 01a49af81b74c425baf1215760d50889bd68f27c Author: Pedro Alves Date: Mon Nov 30 18:32:24 2015 +0000 Fix ChangeLog entry There should be only one date in multi-author entries. commit 42bcef4ad646732e0684557fe08b74dd0c5aa7e9 Author: Andrew Burgess Date: Fri Oct 16 11:58:02 2015 +0200 objdump: Handle 32-bit base address in debug_ranges / debug_loc. When the DWARF address size is 32-bit, but the host machine is 64-bit, objdump fails to spot base addresses specified in the .debug_ranges and .debug_loc lists. As an example, here is the output when dumping an example .debug_ranges section with the pre-patched objdump: Contents of the .debug_ranges section: Offset Begin End 00000000 ffffffff 00000004 (start > end) 00000000 00000000 00000004 00000000 ffffffff 00000008 (start > end) 00000000 00000000 00000004 00000000 And this is what the same section looks like when dumped with the patched version of objdump: Contents of the .debug_ranges section: Offset Begin End 00000000 ffffffff 00000004 (base address) 00000000 00000004 00000008 00000000 ffffffff 00000008 (base address) 00000000 00000008 0000000c 00000000 binutils/ChangeLog: * dwarf.c (is_max_address): New function. (display_loc_list): Remove out of date comment, use is_max_address. (display_debug_ranges): Likewise. binutils/testsuite/ChangeLog: * binutils-all/objdump.exp: Add test for .debug_ranges decode. * binutils-all/dw2-ranges.S: New file. * binutils-all/dw2-ranges.W: New file. commit bc301448c07afbf8aa70f2808be68dc8c50c9098 Author: GDB Administrator Date: Mon Nov 30 00:00:08 2015 +0000 Automatic date update in version.in commit 08e4f6088d1c2decc97b37e288484a25cebeffb8 Author: Cary Coutant Date: Sat Nov 28 17:19:52 2015 -0800 Update my email address in MAINTAINERS. binutils/ * MAINTAINERS: Update my email address. commit 5900049b6615fae790c2b49093a4c1e050afa963 Author: GDB Administrator Date: Sun Nov 29 00:00:07 2015 +0000 Automatic date update in version.in commit 16807a48edfdfe89c8f8f745edeb938ef0b7e5eb Author: Pedro Alves Date: Sat Nov 28 16:39:32 2015 +0000 Adjust GDB to demangler API change Before commit 3a8724032abf, DEMANGLE_COMPONENT_CAST was used for both casts and conversion operators. We now have DEMANGLE_COMPONENT_CONVERSION for the latter. gdb/ChangeLog: 2014-11-28 Pedro Alves * cp-name-parser.y (conversion_op): Use DEMANGLE_COMPONENT_CONVERSION instead of DEMANGLE_COMPONENT_CAST. commit 3b16c5514a2e01d47295e8d82cecd6b62db62955 Author: Maxim Ostapenko Date: Sat Nov 28 16:39:32 2015 +0000 libsanitizer merge from upstream r250806, compiler part. gcc/ * asan.c (asan_emit_stack_protection): Don't pass local stack to asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned NULL and use local stack than. (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call in addition to __asan_init. * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init. (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call. * asan.h (asan_intercepted_p): Handle new string builtins. * ubsan.c (ubsan_use_new_style_p): New function. (ubsan_instrument_float_cast): If location is unknown, assign input_location to loc. Propagate loc to ubsan_create_data if ubsan_use_new_style_p returned true. config/ * bootstrap-asan.mk: Replace ASAN_OPTIONS=detect_leaks with LSAN_OPTIONS=detect_leaks. gcc/testsuite/ * c-c++-common/ubsan/float-cast-overflow-10.c: Adjust test. * c-c++-common/ubsan/float-cast-overflow-8.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-9.c: Likewise. * g++.dg/asan/default-options-1.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229112 138bc75d-0d04-0410-961f-82ee72b054a4 commit 87746c154ae96bd3b632198273061eb6879f20a5 Author: Rainer Orth Date: Sat Nov 28 16:39:32 2015 +0000 Port libvtv to Solaris libstdc++-v3: * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) : Use -Wl,-R in VTV_CXXLINKFLAGS. * configure: Regenerate. * testsuite/18_support/bad_exception/23591_thread-1.c: Use -fvtable-verify=none on Solaris 12+. libgcc: * Makefile.in (VTV_CFLAGS): New variable. (vtv_start$(objext), vtv_end$(objext), vtv_end$(objext)) (vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it. * config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file. Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o to extra_parts if $enable_vtable_verify = yes. libvtv: * configure.tgt (*-*-solaris2.[1-9]*): Declare supported. * configure.ac: Call AC_USE_SYSTEM_EXTENSIONS. <*-*-solaris2*>: Check for init priority support. Check for getexecname, __fortify_fail, _obstack_begin. (VTV_NO_OBSTACK): New conditional. * configure: Regenerate. * Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition. Create empty config.h * Makefile.in: Regenerate. * vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New variable. (read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it. (dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it. (__fortify_fail): Wrap in HAVE___FORTIFY_FAIL [!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation. (read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE. (iterate_modules): Fix typo. Use VTV_PAGE_SIZE. (dl_iterate_phdr_callback): Fix typo. Use VTV_PAGE_SIZE. (__VLTChangePermission): Fix typos. include: * vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ && __sparc__]: Define. gcc: * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up. (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define. (STARTFILE_SPEC): Use %(startfile_vtv). (ENDFILE_SPEC): Use %(endfile_vtv). (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC. * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230865 138bc75d-0d04-0410-961f-82ee72b054a4 commit f4936735c5ed55abd37062791f60ba2754c89c31 Author: Rich Felker Date: Sat Nov 28 16:39:31 2015 +0000 SH FDPIC backend support gcc/ChangeLog * config.gcc: Handle --enable-fdpic. * config/sh/constraints.md (Ccl): New constraint. * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic. * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and __SH_FDPIC__. * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to library functions. * config/sh/sh-protos.h (function_symbol_result): New struct. (function_symbol): Return function_symbol_result. (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New declarations. * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement target hook. (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise. (sh_option_override): Force -fPIC if FDPIC is in effect. (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and UNSPEC_GOTOFFFUNCDESC cases. (prepare_move_operands): Use FDPIC initial GOT register for TLS-related GOT access; inhibit cross-section address offset constants for FDPIC. (sh_assemble_integer): New function. (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC PC-relative call sites. (expand_ashiftrt): Adapt invocation of function_symbol. (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC. (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and UNSPEC_GOTOFFFUNCDESC. (legitimize_pic_address): Resolve function symbols to function descriptors for FDPIC. Do not use GOT-relative addressing for local data that may be read-only on FDPIC. (sh_emit_storesi, sh_emit_storehi): New functions. (sh_trampoline_init): Generate FDPIC trampolines. (sh_function_ok_for_sibcall): Add TARGET_FDPIC check. (sh_expand_sym_label2reg): Don't assume sibcalls are local. (sh_output_mi_thunk): Generate FDPIC call. (function_symbol): Return function_symbol_result. For SFUNC_STATIC on FDPIC, generate call site labels to use PC-relative addressing rather than GOT-relative addressing. (sh_conditional_register_usage): Make PIC register fixed and call used when FDPIC is in effect. (sh_legitimate_constant_p): Impose FDPIC constant constraints. (sh_cannot_force_const_mem_p, sh_load_function_descriptor) (sh_get_fdpic_reg_initial_val): New functions. * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic. (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS) (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED) (SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros. (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and FDPIC_SELF_SPECS. (TRAMPOLINE_SIZE): Select trampoline size for FDPIC. (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case. * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New constants. (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic) (sibcalli_pcrel_fdpic, sibcall_pcrel_fdpic, sibcall_valuei_fdpic) (sibcall_valuei_pcrel_fdpic, sibcall_value_pcrel_fdpic) (sym2GOTFUNCDESC, symGOTFUNCDESC2reg, sym2GOTOFFFUNCDESC) (symGOTOFFFUNCDESC2reg): New patterns. (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3, *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3) (ashlsi3, ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call) (calli, call_valuei, call, call_value, sibcalli, sibcalli_pcrel) (sibcall_pcrel, sibcall, sibcall_valuei, sibcall_valuei_pcrel) (sibcall_value_pcrel, sibcall_value, GOTaddr2picreg, symGOT_load) (symGOTOFF2reg, block_move_real, block_lump_real) (block_move_real_i4, block_lump_real_i4): Add support for FDPIC calls. (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop, call_value_pop): Adjust for new function_symbol signature. * config/sh/sh.opt (-mfdpic): New option. * doc/install.texi (Options specification): Document --enable-fdpic. * doc/invoke.texi (SH Options): Document -mfdpic. include/ChangeLog: * longlong.h (udiv_qrnnd): Add FDPIC compatible version for SH. libitm/ChangeLog: * config/sh/sjlj.S (_ITM_beginTransaction): Bypass PLT calling GTM_begin_transaction for compatibility with FDPIC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229438 138bc75d-0d04-0410-961f-82ee72b054a4 commit c4be264168ee2f6c38b6b9b3db0a166441be478b Author: Pedro Alves Date: Sat Nov 28 16:39:31 2015 +0000 PR other/61321 - demangler crash on casts in template parameters The fix for bug 59195: [C++ demangler handles conversion operator incorrectly] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195 unfortunately makes the demangler crash due to infinite recursion, in case of casts in template parameters. For example, with: template struct A {}; template void function_temp(A) {} template void function_temp(A); The 'function_temp' instantiation above mangles to: _Z13function_tempIiEv1AIXszcvT_Li999EEE The demangler parses this as: typed name template name 'function_temp' template argument list builtin type int function type builtin type void argument list template (*) name 'A' template argument list unary operator operator sizeof unary operator cast template parameter 0 (**) literal builtin type int name '999' And after the fix for 59195, due to: static void d_print_cast (struct d_print_info *dpi, int options, const struct demangle_component *dc) { ... /* For a cast operator, we need the template parameters from the enclosing template in scope for processing the type. */ if (dpi->current_template != NULL) { dpt.next = dpi->templates; dpi->templates = &dpt; dpt.template_decl = dpi->current_template; } when printing the template argument list of A (what should be ""), the template parameter 0 (that is, "T_", the '**' above) now refers to the first parameter of the the template argument list of the 'A' template (the '*' above), exactly what we were already trying to print. This leads to infinite recursion, and stack exaustion. The template parameter 0 should actually refer to the first parameter of the 'function_temp' template. Where it reads "for the cast operator" in the comment in d_print_cast (above), it's really talking about a conversion operator, like: struct A { template explicit operator U(); }; We don't want to inject the template parameters from the enclosing template in scope when processing a cast _expression_, only when handling a conversion operator. The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous, and means _both_ 'conversion operator' and 'cast expression'. Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type, which does what DEMANGLE_COMPONENT_CAST does today, and making DEMANGLE_COMPONENT_CAST just simply print its component subtree. I think we could instead reuse DEMANGLE_COMPONENT_CAST and in d_print_comp_inner still do: @@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options, d_print_comp (dpi, options, dc->u.s_extended_operator.name); return; case DEMANGLE_COMPONENT_CAST: d_append_string (dpi, "operator "); - d_print_cast (dpi, options, dc); + d_print_conversion (dpi, options, dc); return; leaving the unary cast case below calling d_print_cast, but seems to me that spliting the component types makes it easier to reason about the code. g++'s testsuite actually generates three symbols that crash the demangler in the same way. I've added those as tests in the demangler testsuite as well. And then this fixes PR other/61233 too, which happens to be a demangler crash originally reported to GDB, at: https://sourceware.org/bugzilla/show_bug.cgi?id=16957 Bootstrapped and regtested on x86_64 Fedora 20. Also ran this through GDB's testsuite. GDB will require a small update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using DEMANGLE_COMPONENT_CAST in its sources. libiberty/ 2015-11-27 Pedro Alves PR other/61321 PR other/61233 * demangle.h (enum demangle_component_type) : New value. * cp-demangle.c (d_demangle_callback, d_make_comp): Handle DEMANGLE_COMPONENT_CONVERSION. (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION instead of DEMANGLE_COMPONENT_CAST. (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION component if handling a conversion. (d_count_templates_scopes, d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION. (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead of DEMANGLE_COMPONENT_CAST. (d_print_cast): Rename as ... (d_print_conversion): ... this. Adjust comments. (d_print_cast): Rewrite - simply print the left subcomponent. * cp-demint.c (cplus_demangle_fill_component): Handle DEMANGLE_COMPONENT_CONVERSION. * testsuite/demangle-expected: Add tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231020 138bc75d-0d04-0410-961f-82ee72b054a4 commit f3363926de602b7590526740a01a64ca973ca78a Author: Mike Stump Date: Sat Nov 28 16:39:31 2015 +0000 libiberty TAGS * Makefile.in (etags tags TAGS): Use && instead of ;. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230270 138bc75d-0d04-0410-961f-82ee72b054a4 commit 1e924157387421d45ccf2aafd33a886abda05420 Author: Jason Merrill Date: Sat Nov 28 16:39:30 2015 +0000 (Makefiles): PATCH to include libcpp and libiberty in GCC etags gcc/c/ * Make-lang.in (c.tags): Also include libcpp TAGS. gcc/cp/ * Make-lang.in (c++.tags): Also include libcpp TAGS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229504 138bc75d-0d04-0410-961f-82ee72b054a4 commit 35a88fa501ff2e2fe133e7c0f38768ae703a43b7 Author: Iain Sandoe Date: Sat Nov 28 16:39:30 2015 +0000 Fix PR63758 by using the _NSGetEnviron() API on Darwin include/ Roland McGrath PR other/63758 * environ.h: New file. libiberty/ Roland McGrath Iain Sandoe PR other/63758 * pex-unix.c: Obtain the environment interface from settings in environ.h rather than in-line code. Update copyright date. * setenv.c: Likewise. * xmalloc.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228942 138bc75d-0d04-0410-961f-82ee72b054a4 commit e9a3881624886dc523a500a86bfdac6dc58fd0db Author: Jason Merrill Date: Sat Nov 28 16:39:30 2015 +0000 Implement N4514, C++ Extensions for Transactional Memory. gcc/ * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute. gcc/c-family/ * c-common.c (c_common_reswords): Add C++ TM TS keywords. (c_common_attribute_table): Add transaction_safe_dynamic. transaction_safe now affects type identity. (handle_tm_attribute): Handle transaction_safe_dynamic. * c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT, RID_ATOMIC_CANCEL, RID_SYNCHRONIZED. (OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED. (D_TRANSMEM): New. * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory. * c-pretty-print.c (pp_c_attributes_display): Don't print transaction_safe in C++. gcc/c/ * c-parser.c (c_lex_one_token): Handle @synchronized. * c-decl.c (match_builtin_function_types): A declaration of a built-in can change whether the function is transaction_safe. gcc/cp/ * cp-tree.h (struct cp_declarator): Add tx_qualifier field. (BCS_NORMAL, BCS_TRANSACTION): New enumerators. * lex.c (init_reswords): Limit TM kewords to -fgnu-tm. * parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized. (make_call_declarator): Take tx_qualifier. (cp_parser_tx_qualifier_opt): New. (cp_parser_lambda_declarator_opt): Use it. (cp_parser_direct_declarator): Likewise. (cp_parser_statement): Handle atomic_noexcept, atomic_cancel. (cp_parser_compound_statement): Change in_try parameter to bcs_flags. (cp_parser_std_attribute): Map optimize_for_synchronized to transaction_callable. (cp_parser_transaction): Take the token. Handle atomic_noexcept. * lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety. * call.c (enum conversion_kind): Add ck_tsafe. (standard_conversion): Handle transaction-safety conversion. (convert_like_real, resolve_address_of_overloaded_function): Likewise. (check_methods): Diagnose transaction_safe_dynamic on non-virtual function. (look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic. * cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant) (can_convert_tx_safety): New. * typeck.c (composite_pointer_type): Handle transaction-safety. * name-lookup.h (enum scope_kind): Add sk_transaction. * name-lookup.c (begin_scope): Handle it. * semantics.c (begin_compound_stmt): Pass it. * decl.c (check_previous_goto_1): Check it. (struct named_label_entry): Add in_transaction_scope. (poplevel_named_label_1): Set it. (check_goto): Check it. (duplicate_decls): A specialization can be transaction_safe independently of its template. (grokdeclarator): Handle tx-qualifier. * rtti.c (ptr_initializer): Handle transaction-safe. * search.c (check_final_overrider): Check transaction_safe_dynamic. Don't check transaction_safe. * mangle.c (write_function_type): Mangle transaction_safe here. (write_CV_qualifiers_for_type): Not here. (write_type): Preserve transaction_safe when stripping attributes. * error.c (dump_type_suffix): Print transaction_safe. libiberty/ * cp-demangle.c (d_cv_qualifiers): Dx means transaction_safe. (cplus_demangle_type): Let d_cv_qualifiers handle it. (d_dump, d_make_comp, has_return_type, d_encoding) (d_count_templates_scopes, d_print_comp_inner) (d_print_mod_list, d_print_mod, d_print_function_type) (is_ctor_or_dtor): Handle DEMANGLE_COMPONENT_TRANSACTION_SAFE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228462 138bc75d-0d04-0410-961f-82ee72b054a4 commit d81bf7ddc2ad497037fbfde5d15cfa8d81a9e959 Author: Mikhail Maltsev Date: Sat Nov 28 16:39:29 2015 +0000 Fix several crashes of C++ demangler on fuzzed input. libiberty/ * cp-demangle.c (d_dump): Fix syntax error. (d_identifier): Adjust type of len to match d_source_name. (d_expression_1): Fix out-of-bounds access. Check code variable for NULL before dereferencing it. (d_find_pack): Do not recurse for FIXED_TYPE, DEFAULT_ARG and NUMBER. (d_print_comp_inner): Add NULL pointer check. * cp-demangle.h (d_peek_next_char): Define as inline function when CHECK_DEMANGLER is defined. (d_advance): Likewise. * testsuite/demangle-expected: Add new testcases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225727 138bc75d-0d04-0410-961f-82ee72b054a4 commit 6a8796db3691b9a53dc5475eaec5388bc1af115d Author: Uros Bizjak Date: Sat Nov 28 16:39:29 2015 +0000 Avoid "enum conversion when passing argument 1 of 'getrusage' is invalid in C++" warning * getruntime.c (RUSAGE_SELF): Define if not already defined. (get_runtime): Use RUSAGE_SELF as argument 1 of getrusage call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225614 138bc75d-0d04-0410-961f-82ee72b054a4 commit aaae08a7e4ac526975403ebb5f93b7f24ea16b90 Author: Uros Bizjak Date: Sat Nov 28 16:39:29 2015 +0000 Avoid "enum conversion when passing argument 1 of 'getrusage' is invalid in C++" warning * getruntime.c (get_run_time) [__USE_GNU]: Use RUSAGE_SELF as argument 1 of getrusage call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225534 138bc75d-0d04-0410-961f-82ee72b054a4 commit e3e3b08c81fec50ab1623a64bae164856ce215cf Author: GDB Administrator Date: Sat Nov 28 00:00:08 2015 +0000 Automatic date update in version.in commit 622b9eb1a6047bd3ad3e1a3f120cf7318ac25b57 Author: Matthew Wahab Date: Fri Nov 27 16:32:21 2015 +0000 [AArch64][PATCH 3/3] Add floating-point FP16 instructions ARMv8.2 adds 16-bit floating point operations as an optional extension to the ARMv8 FP support. This patch adds the new FP16 instructions, making them available when the architecture extension +fp+fp16 is specified. The instructions added are: - Comparisons and conditionals: FCMP, FCCMPE, FCMP, FCMPE and FCSEL. - Arithmetic: FABS, FNEG, FSQRT, FMUL, FDIV, FADD, FSUB, FMADD, FMSUB, FNMADD and FNMSUB. - Rounding: FRINTN, FRINTP, FRINTM, FRINTZ, FRINTA, FRINTX and FRINTI. - Conversions: SCVTF (fixed-point), SCVTF (integer), UCVTF (fixed-point) UCVTF (integer), FCVTZS (fixed-point), FCVTZS (integer), FCVTZU (fixed-point), FCVTZU (integer), FCVTNS, FCVTNU, FCVTAS, FCVTAU, FCVTPS, FCVTPU, FCVTMS and FCVTMU. - Scalar FMOV: immediate, general and register gas/testsuite/ 2015-11-27 Matthew Wahab * gas/aarch64/float-fp16.d: New. * gas/aarch64/float-fp16.s: New. opcodes/ 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (QL_FIX2FP_H, QL_FP2FIX_H): New. (QL_INT2FP_H, QL_FP2INT_H): New. (QL_FP2_H, QL_FP3_H, QL_FP4_H): New (QL_DST_H): New. (QL_FCCMP_H): New. (aarch64_opcode_table): Add 16-bit variants of scvt, ucvtf, fcvtzs, fcvtzu, fcvtns, fcvtnu, scvtf, ucvtf, fcvtas, fcvtau, fmov, fcvtpos, fcvtpu, fcvtms, fcvtmu, fcvtzs, fcvtzu, fccmp, fccmpe, fcmp, fcmpe, fabs, fneg, fsqrt, frintn, frintp, frintm, frintz, frinta, frintx, frinti, fmul, fdiv, fadd, fsub, fmax, fmin, fmaxnm, fminnm, fnmul, fmadd, fmsub, fnmadd, fnmsub and fcsel. Change-Id: Ie6d40bd1b215a9bc024e12ba75e52afbe1675eb7 commit cf86120bae8973340583a0613ad622f0ca013efd Author: Matthew Wahab Date: Fri Nov 27 16:25:52 2015 +0000 [AArch64][PATCH 2/3] Adjust a utility function for floating point values. ARMv8.2 adds 16-bit floating point operations as an optional extension. This patch adjusts the utility function expand_fp_imm to support 16-bit values. The function is intended to convert an 8-bit immediate representing a floating point value to a representation that can be passed to fprintf. Because of the limited use of the results, the only change made to the function is to treat a request for a 16-bit float as a request for a 32-bit float. opcodes/ 2015-11-27 Matthew Wahab * aarch64-opc.c (half_conv_t): New. (expand_fp_imm): Replace is_dp flag with the parameter size to specify the number of bytes for the required expansion. Treat a 16-bit expansion like a 32-bit expansion. Add check for an unsupported size request. Update comment. (aarch64_print_operand): Update to support 16-bit floating point values. Update for changes to expand_fp_imm. Change-Id: I1ae3df3864be375d71925197ab03397ed1ad2d15 commit 3bd894a7147feacf6a8ab388b1b1e0d685abfcdc Author: Matthew Wahab Date: Fri Nov 27 15:47:53 2015 +0000 [AArch64][PATCH 1/3] Support ARMv8.2 FP16 floating point instructions. ARMv8.2 adds 16-bit floating point operations as an optional extension to the ARMv8 FP support. This patch set adds support for the 16-bit FP instructions to binutils, enabling the instructions when both +fp and +fp16 architecture extensions are enabled. The patches in this series: - Add a feature macro for use by the encoding/decoding mechanism. - Adjust a utility function, used when disassembling, to support 16-bit floating point values. - Add the new scalar floating-point instructions. This patch adds the feature macro FP_F16 to the AArch64 encoding/decoding mechanism, enabling it when both +fp and +fp16 are selected. opcodes/ 2015-11-27 Matthew Wahab * aarch64-tbl.h (aarch64_feature_fp_f16): New. (FP_F16): New. Change-Id: Ie370e43e3d77a7d54b4416b4be901b363a37f3d5 commit 64357d2e04994ba161b4a99ef2bc45db0c180ea0 Author: Matthew Wahab Date: Fri Nov 27 15:39:12 2015 +0000 [AArch64] Add ARMv8.2 instruction alias REV64. This patch adds the alias REV64 , as an alias for REV , . However, REV is still the preferred form for the instruction. gas/testsuite/ 2015-11-27 Matthew Wahab * gas/aarch64/alias-2.d: Add tests for REV. * gas/aarch64/alias-2.s: Likewise. opcodes/ 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-tbl.h (aarchr64_opcode_table): Update "rev", add "rev64". Change-Id: I331567c8d3618ba9fec1673c6e0b5977222dde61 commit d685192a58d4c198633bd0e69cfe0a114576e98a Author: Matthew Wahab Date: Fri Nov 27 15:25:08 2015 +0000 [AArch64] Add ARMv8.2 instructions BFC and REV64. ARMv8.2 adds two new instructions: BFC as an alias for BFM and REV64 as an alias for REV. This patch set adds support for these to binutils, enabled when the -march=armv8.2-a is given. It depends on the support for an instruction being its preferred form which was added in an earlier patch. This patch adds the alias BFC , #, # as the preferred form for BFM when the source is a zero register and the conditions for using the BFI form are met (in other words, BFC is the preferred form for BFI , , #, # when the is a zero register). gas/testsuite/ 2015-11-27 Matthew Wahab * gas/aarch64/alias-2.d: New. * gas/aarch64/alias-2.s: New. include/opcode/ 2015-11-27 Matthew Wahab * aarch64.h (aarch64_op): Add OP_BFC. opcodes/ 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-asm.c (convert_bfc_to_bfm): New. (convert_to_real): Add case for OP_BFC. * aarch64-dis-2.c: Regenerate. * aarch64-dis.c: (convert_bfm_to_bfc): New. (convert_to_alias): Add case for OP_BFC. * aarch64-opc-2.c: Regenerate. * aarch64-opc.c (operand_general_constraint_met_p): Weaken assert to allow width operand in three-operand instructions. * aarch64-tbl.h (QL_BF1): New. (aarch64_feature_v8_2): New. (ARMV8_2): New. (aarch64_opcode_table): Add "bfc". Change-Id: I6efe318b2538ba11f0caece7c6d70957441c872b commit e19616610d7327664f99215a69cb326682742dc3 Author: Simon Marchi Date: Fri Nov 27 10:14:42 2015 -0500 remote.c: Add missing cast Fixes in C++: /home/emaisin/src/binutils-gdb/gdb/remote.c: In function ‘void start_thread(gdb_xml_parser*, const gdb_xml_element*, void*, VEC_gdb_xml_value_s*)’: /home/emaisin/src/binutils-gdb/gdb/remote.c:2975:59: error: invalid conversion from ‘void*’ to ‘const char*’ [-fpermissive] item.name = attr != NULL ? (char *) xstrdup (attr->value) : NULL; ^ In file included from /home/emaisin/src/binutils-gdb/gdb/common/common-defs.h:64:0, from /home/emaisin/src/binutils-gdb/gdb/defs.h:28, from /home/emaisin/src/binutils-gdb/gdb/remote.c:22: /home/emaisin/src/binutils-gdb/gdb/../include/libiberty.h:323:14: error: initializing argument 1 of ‘char* xstrdup(const char*)’ [-fpermissive] extern char *xstrdup (const char *) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL; ^ make[2]: *** [remote.o] Error 1 gdb/ChangeLog: * remote.c (start_thread): Add cast. commit 35822b3812f74319dfad28876d37645589b83a80 Author: Matthew Wahab Date: Fri Nov 27 15:02:26 2015 +0000 [AArch64] Let aliased instructions be their preferred form. Although the AArch64 backend supports aliased instructions, the aliasing forms are always preferred over the real instruction. This makes it awkward to handle instructions which have aliases but which are their own preferred form. This patch includes the instruction being aliased in the list of alternatives which is searched when considering which form to use. opcodes/ 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-dis.c: Weaken assert. * aarch64-gen.c: Include the instruction in the list of its possible aliases. Change-Id: I1f23eb25fccef76a64d3d732d58761bd25fad94e commit 805035d70cd8637c169caf97800accdd267d1d8e Author: Yao Qi Date: Fri Nov 27 14:53:32 2015 +0000 [AArch64] Only check breakpoint alignment on inserting This patch fixes the GDB internal error on AArch64 when running watchpoint-fork.exp top?bt 15 internal_error (file=file@entry=0x79d558 "../../binutils-gdb/gdb/linux-nat.c", line=line@entry=4866, fmt=0x793b20 "%s: Assertion `%s' failed.") at ../../binutils-gdb/gdb/common/errors.c:51 #1 0x0000000000495bc4 in linux_nat_thread_address_space (t=, ptid=) at ../../binutils-gdb/gdb/linux-nat.c:4866 #2 0x00000000005db2c8 in delegate_thread_address_space (self=, arg1=) at ../../binutils-gdb/gdb/target-delegates.c:2447 #3 0x00000000005e8c7c in target_thread_address_space (ptid=) at ../../binutils-gdb/gdb/target.c:2727 #4 0x000000000054eef8 in get_thread_arch_regcache (ptid=..., gdbarch=0xad51e0) at ../../binutils-gdb/gdb/regcache.c:529 #5 0x000000000054efcc in get_thread_regcache (ptid=...) at ../../binutils-gdb/gdb/regcache.c:546 #6 0x000000000054f120 in get_thread_regcache_for_ptid (ptid=...) at ../../binutils-gdb/gdb/regcache.c:560 #7 0x00000000004a2278 in aarch64_point_is_aligned (is_watchpoint=0, addr=34168, len=2) at ../../binutils-gdb/gdb/nat/aarch64-linux-hw-point.c:122 #8 0x00000000004a2e68 in aarch64_handle_breakpoint (type=hw_execute, addr=34168, len=2, is_insert=0, state=0xae8880) at ../../binutils-gdb/gdb/nat/aarch64-linux-hw-point.c:465 #9 0x000000000048edf0 in aarch64_linux_remove_hw_breakpoint (self=, gdbarch=, bp_tgt=) at ../../binutils-gdb/gdb/aarch64-linux-nat.c:657 #10 0x00000000005da8dc in delegate_remove_hw_breakpoint (self=, arg1=, arg2=) at ../../binutils-gdb/gdb/target-delegates.c:492 #11 0x0000000000536a24 in bkpt_remove_location (bl=) at ../../binutils-gdb/gdb/breakpoint.c:13065 #12 0x000000000053351c in remove_breakpoint_1 (bl=0xb3fe70, is=is@entry=mark_inserted) at ../../binutils-gdb/gdb/breakpoint.c:4026 #13 0x000000000053ccc0 in detach_breakpoints (ptid=...) at ../../binutils-gdb/gdb/breakpoint.c:3930 #14 0x00000000005a3ac0 in handle_inferior_event_1 (ecs=0x7ffffff048) at ../../binutils-gdb/gdb/infrun.c:5042 After the fork, GDB will physically remove the breakpoints from the child process (in frame #14), but at that time, GDB doesn't create an inferior yet for child, but inferior_ptid is set to child's ptid (in frame #13). In aarch64_point_is_aligned, we'll get the regcache of current_lwp_ptid to determine if the current process is 32-bit or 64-bit, so the inferior can't be found, and the internal error is caused. I don't find a better fix other than not checking alignment on removing breakpoint. gdb: 2015-11-27 Yao Qi * nat/aarch64-linux-hw-point.c (aarch64_dr_state_remove_one_point): Don't assert on alignment. (aarch64_handle_breakpoint): Only check alignment when IS_INSERT is true. commit 58b584afe6ed6949c10b3049167c66cc070e0e81 Author: Yao Qi Date: Fri Nov 27 14:50:30 2015 +0000 New test gdb.arch/arm-neon.exp Both ARM and AArch64 have defined some SIMD data types in arm_neon.h, but we don't have a test case for passing them and returning them in inferior call. This test also covers passing and returning homogeneous short vector aggregate (defined by AArch64 ABI document) in inferior call too. gdb/testsuite: * gdb.arch/arm-neon.exp: New. * gdb.arch/arm-neon.c: New. commit cd635f74a3b71043d35501db31b3acac956018cd Author: Yao Qi Date: Fri Nov 27 14:50:30 2015 +0000 [AArch64] Handle HFA and HVA together AArch64 AAPCS defined HFA (homogeneous floating-point aggregate) and HVF (homogeneous short vector aggregate), bug GDB only handles the former. In the AAPCS doc, both types are treated exactly the same in terms of alignment and passing locations (on registers or stack). This patch is to extend is_hfa to handle both HFA and HVA. gdb: 2015-11-27 Yao Qi * aarch64-tdep.c (is_hfa): Rename to ... (is_hfa_or_hva): ... this. Handle vector type. All callers updated. (aarch64_extract_return_value): Update debugging message. (aarch64_store_return_value): Likewise. (aarch64_return_in_memory): Update comments. commit 238f2452e6d94f7b227a9d132f5ae887299d96c6 Author: Yao Qi Date: Fri Nov 27 14:50:30 2015 +0000 [AArch64] Support gnu vector in inferior call As defined in AArch64 AAPCS, short vectors are passed through V registers, and its maximum alignment is 16-byte. This patch is to reflect these rules in GDB. This patch fixes some fails in gdb.base/gnu_vector.exp. gdb: 2015-11-27 Yao Qi * aarch64-tdep.c (aarch64_type_align): For vector type, return its length, but with the maximum of 16 bytes. (is_hfa): Return zero for vector type. (aarch64_push_dummy_call): Handle short vectors. (aarch64_extract_return_value): Likewise. (aarch64_store_return_value): Likewise. commit dfcb77a8d78462af49ebc42b41d6fc504f4c2cf0 Author: Yao Qi Date: Fri Nov 27 14:15:49 2015 +0000 Use multi_line to make pattern more human readable gdb/testsuite: 2015-11-27 Yao Qi * gdb.cp/annota2.exp: Rewrite the pattern using multi_line. commit 88e8ec1b3e372dc1ea1cd0be44c59ca7760e9008 Author: Yao Qi Date: Fri Nov 27 14:21:47 2015 +0000 Allow multiple occurrences of the frames-invalid annotation in gdb.cp/annota2.exp Hi, I see one fail on aarch64-linux testing, FAIL: gdb.cp/annota2.exp: watch triggered on a.x (timeout) because GDB prints two frames-invalid annotation but the test expects only one. next^M ^M ^Z^Zpost-prompt^M ^M ^Z^Zstarting^M ^M ^Z^Zframes-invalid^M ^M ^Z^Zframes-invalid^M ^M Note I also see the fail on Debian-s390x-m64 too. https://sourceware.org/ml/gdb-testers/2015-q4/msg07291.html The test shouldn't only expect one frames-invalid annotation, because there can be multiple times of stop/resume before the user visible stop. Ulrich did something similar before https://www.sourceware.org/ml/gdb-patches/2009-06/msg00118.html This patch only changes ${frames_invalid} to \(${frames_invalid}\)* in the regexp pattern. The patch below fixes the fail on aarch64-linux. gdb/testsuite: 2015-11-27 Yao Qi * gdb.cp/annota2.exp: Allow multiple occurrences of the frames-invalid annotation. commit bfde72c275bff9d5be21cf51ba790cf38ecd0d59 Author: Yao Qi Date: Fri Nov 27 14:21:47 2015 +0000 Use ${frames_invalid} in gdb.cp/annota2.exp Variable frames_invalid was defined, but wasn't used much. This patch is to replace the literals in the regexp with ${frames_invalid}. gdb/testsuite: 2015-11-27 Yao Qi * gdb.cp/annota2.exp: Use ${frames_invalid}. commit 1a04d1a7e1e0ab4456c8f729375b9415a8cf7c61 Author: Matthew Wahab Date: Fri Nov 27 13:44:10 2015 +0000 [Aarch64] Support an ARMv8.2 system register. ARMv8.2 adds a new system register id_aa64mmfr2_el1. This patch adds support for the register to binutils, making it available when -march=armv8.2-a is selected. opcodes/ 2015-11-27 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs): Add "id_aa64mmfr2_el1". (aarch64_sys_reg_supported_p): Add ARMv8.2 system register feature test. gas/testsuite/ 2015-11-27 Matthew Wahab * gas/aarch64/sysreg-2.d: New. * gas/aarch64/sysreg-2.s: New. Change-Id: I767f18a60e2bd70ce74c89f6abfe07afdc9e601f commit 870181955b565b4fbbf4efcbec4a43d687703d1a Author: Matthew Wahab Date: Fri Nov 27 13:19:50 2015 +0000 [AArch64] Add feature flags and command line for ARMv8.2 FP16 support. ARMv8.2 adds optional support for 16-bit operations to the FP and Adv.SIMD instructions. This patch adds a feature macro for this support with a new command line option "+fp16" to enable/disable it. Although the command line option is added as an architecture extension, it only affects instructions available with when +fp or +simd is enabled. If +fp16 is specified then it will also enable +fp. There are currently no FP16 instructions implemented in binutils, this patch is to enable subsequent work on supporting the extension. gas/ 2015-11-27 Matthew Wahab * config/tc-aarch64.c (aarch64_features): Add "fp16". * doc/c-aarch64.texi (Architecture Extensions): Add "fp16". include/opcode/ 2015-11-27 Matthew Wahab * aarch64.h (AARCH64_FEATURE_F16): New. (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_F16 to ARMv8.2 features. Change-Id: Id2021e0513946e16d0935c2a5b9605574cdff95a commit b6c30ffef9f060caec6122437595f9767612b48c Author: GDB Administrator Date: Fri Nov 27 00:00:08 2015 +0000 Automatic date update in version.in commit 980facc35f88dfc6ae715c7e0b088b262d2f5204 Author: Simon Marchi Date: Thu Nov 26 15:49:46 2015 -0500 Adjust ChangeLog entry Par Olsson was the original author of the fix, so change the name in the ChangeLog to give him the credit. commit f6512a69cd414a31e302daf107f5959ef06bcbec Author: Simon Marchi Date: Thu Nov 26 09:49:04 2015 -0500 Add test for thread names I couldn't find a test that verified the thread name functionality, so I created a new one. A target board can define gdb,no_thread_names if it doesn't support thread names and wants to skip the tests that uses them. This test has been made with Linux in mind. Not all platforms use pthread_setname_np to set the thread name, but some #ifdefs can be added later in order to support other platforms. Tested on x86-64 Ubuntu 14.04, native and remote. gdb/testsuite/ChangeLog: * gdb.threads/names.exp: New file. * gdb.threads/names.c: New file. * README: Mention gdb,no_thread_names. commit 79efa585c51f0657b319beb1e213d5721eaacdcc Author: Simon Marchi Date: Thu Nov 26 09:49:04 2015 -0500 Display names of remote threads This patch adds support for thread names in the remote protocol, and updates gdb/gdbserver to use it. The information is added to the XML description sent in response to the qXfer:threads:read packet. gdb/ChangeLog: * linux-nat.c (linux_nat_thread_name): Replace implementation by call to linux_proc_tid_get_name. * nat/linux-procfs.c (linux_proc_tid_get_name): New function, implementation inspired by linux_nat_thread_name. * nat/linux-procfs.h (linux_proc_tid_get_name): New declaration. * remote.c (struct private_thread_info) : New field. (free_private_thread_info): Free name field. (remote_thread_name): New function. (thread_item_t) : New field. (clear_threads_listing_context): Free name field. (start_thread): Get name xml attribute. (thread_attributes): Add "name" attribute. (remote_update_thread_list): Copy name field. (init_remote_ops): Assign remote_thread_name callback. * target.h (target_thread_name): Update comment. * NEWS: Mention remote thread name support. gdb/gdbserver/ChangeLog: * linux-low.c (linux_target_ops): Use linux_proc_tid_get_name. * server.c (handle_qxfer_threads_worker): Refactor to include thread name in reply. * target.h (struct target_ops) : New field. (target_thread_name): New macro. gdb/doc/ChangeLog: * gdb.texinfo (Thread List Format): Mention thread names. commit 73ede76585a987a07fbd67a7474b193e4ca05517 Author: Simon Marchi Date: Thu Nov 26 09:49:03 2015 -0500 Constify thread name return path Since this code path returns a string owned by the target (we don't know how it's allocated, could be a static read-only string), it's safer if we return a constant string. If, for some reasons, the caller wishes to modify the string, it should make itself a copy. gdb/ChangeLog: * linux-nat.c (linux_nat_thread_name): Constify return value. * target.h (struct target_ops) : Likewise. (target_thread_name): Likewise. * target.c (target_thread_name): Likewise. * target-delegates.c (debug_thread_name): Regenerate. * python/py-infthread.c (thpy_get_name): Constify local variables. * thread.c (print_thread_info): Likewise. (thread_find_command): Likewise. commit 46a3515b49ce30315e2b621525b29cd8263aed15 Author: Markus Metzger Date: Thu Nov 19 14:33:41 2015 +0100 btrace: diagnose "record btrace pt" without libipt If GDB has been configured without libipt support, i.e. HAVE_LIBIPT is undefined, and is running on a system that supports Intel(R) Processor Trace, GDB will run into an internal error when trying to decode the trace. (gdb) record btrace (gdb) s usage (name=0x7fffffffe954 "fib-64") at src/fib.c:12 12 fprintf(stderr, "usage: %s \n", name); (gdb) info record Active record target: record-btrace Recording format: Intel(R) Processor Trace. Buffer size: 16kB. gdb/btrace.c:971: internal-error: Unexpected branch trace format. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) This requires a system with Linux kernel 4.1 or later running on a 5th Generation Intel Core processor or later. The issue is documented as PR 19297. When trying to enable branch tracing, in addition to checking the target support for the requested branch tracing format, also check whether GDB supports. it. gdb/ * btrace.c (btrace_enable): Check whether HAVE_LIBIPT is defined. testsuite/ * lib/gdb.exp (skip_btrace_pt_tests): Check for a "GDB does not support" error. commit 9a4db61fd538c0a0185367661a0ddacffff5d57a Author: GDB Administrator Date: Thu Nov 26 00:00:08 2015 +0000 Automatic date update in version.in commit da09a436519e8085d328a586c438b5b0a560924d Author: Joel Brobecker Date: Wed Nov 25 15:09:09 2015 -0800 Import zlib 1.2.8 with local change merged in. ChangeLog: * zlib: Update to zlib 1.2.8 with local changes merged in. commit 74b03b91333ccbc8fa70647eca22062e902f797f Author: Cary Coutant Date: Wed Nov 25 08:50:41 2015 -0800 Adjust local symbol value in relocatable link to be relative to section. gold/ PR gold/19291 * object.cc (Sized_relobj_file::write_local_symbols): If relocatable, subtract section address from symbol value. commit 751e4d66b4c6daaf04e6bccdb3f9ce4a0620babb Author: Alan Modra Date: Wed Nov 25 13:38:43 2015 +1030 [GOLD] Align PowerPC64 GOT As done in a27e685f for bfd ld. * powerpc.cc (Output_data_got_powerpc::Output_data_got_powerpc): Align to 256 byte boundary. commit 5e7e0604cf263449ff9fe9e92286cfde83fe0234 Author: GDB Administrator Date: Wed Nov 25 00:00:08 2015 +0000 Automatic date update in version.in commit 2c32be708da9011b3ce7404f2be43b17ab1eddd4 Author: Christophe Monat Date: Tue Nov 24 22:17:54 2015 +0100 [GAS, ARM] Invalid LDR immediate transformation 2015-11-24 Christophe Monat * config/tc-arm.c (move_or_literal_pool): Do not transform ldr ri,=imm into movs when ri is a high register in T1. 2015-11-24 Christophe Monat * gas/arm/thumb2_ldr_immediate_armv6t2.s: Added high register tests. * gas/arm/thumb2_ldr_immediate_armv6t2.d: Accounted for new test cases. * gas/arm/thumb2_ldr_immediate_highregs_armv6t2.s: New. * gas/arm/thumb2_ldr_immediate_highregs_armv6t2.d: New. commit be81798bb66a6f2d007983f466ba4fdeb7141578 Author: Pedro Alves Date: Tue Nov 24 18:11:23 2015 +0000 NEWS: "info" commands now list in ascending order gdb/ChangeLog: 2015-11-24 Pedro Alves * NEWS: Mention that a few "info" commands now list the corresponding items in ascending ID order. commit 62147a2265e322c758743edf13a1377fdcb62479 Author: Pedro Alves Date: Tue Nov 24 18:11:22 2015 +0000 List displays in ascending order Before: (gdb) info display Auto-display expressions now in effect: Num Enb Expression 3: y 1 2: y 1 1: y 1 After: (gdb) info display Auto-display expressions now in effect: Num Enb Expression 1: y 1 2: y 1 3: y 1 gdb/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * printcmd.c (display_command): Append new display at the end of the list. gdb/testsuite/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.base/display.exp: Expect displays to be sorted in ascending order. Use multi_line. * gdb.base/solib-display.exp: Likewise. commit 2f341b6e28e27fadd8160d95337c3aa854bcba3b Author: Pedro Alves Date: Tue Nov 24 18:11:22 2015 +0000 List checkpoints in ascending order Before: (gdb) info checkpoints 3 process 29132 at 0x4008ad, file foo.c, line 81 2 process 29131 at 0x4008ad, file foo.c, line 81 1 process 29130 at 0x4008ad, file foo.c, line 81 * 0 Thread 0x7ffff7fc5740 (LWP 29128) (main process) at 0x4008ad, file foo.c, line 81 After: (gdb) info checkpoints * 0 Thread 0x7ffff7fc5740 (LWP 29128) (main process) at 0x4008ad, file foo.c, line 81 1 process 29130 at 0x4008ad, file foo.c, line 81 2 process 29131 at 0x4008ad, file foo.c, line 81 3 process 29132 at 0x4008ad, file foo.c, line 81 gdb/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * printcmd.c (display_command): Append new display at the end of the list. gdb/testsuite/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.base/display.exp: Expect displays to be sorted in ascending order. Use multi_line. * gdb.base/solib-display.exp: Likewise. commit 7e0aa6aa9983c745aedc203db0cc360a0ad47cac Author: Pedro Alves Date: Tue Nov 24 18:11:21 2015 +0000 List inferiors/threads/pspaces in ascending order Before: (gdb) info threads Id Target Id Frame 3 Thread 0x7ffff77c3700 (LWP 29035) callme () at foo.c:30 2 Thread 0x7ffff7fc4700 (LWP 29034) 0x000000000040087b in child_function_2 (arg=0x0) at foo.c:60 * 1 Thread 0x7ffff7fc5740 (LWP 29030) 0x0000003b37209237 in pthread_join (threadid=140737353893632, thread_return=0x0) at pthread_join.c:92 After: (gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fc5740 (LWP 29030) 0x0000003b37209237 in pthread_join (threadid=140737353893632, thread_return=0x0) at pthread_join.c:92 2 Thread 0x7ffff7fc4700 (LWP 29034) 0x000000000040087b in child_function_2 (arg=0x0) at foo.c:60 3 Thread 0x7ffff77c3700 (LWP 29035) callme () at foo.c:30 gdb/doc/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.texinfo (Inferiors and Programs): Adjust "maint info program-spaces" example to ascending order listing. (Threads): Adjust "info threads" example to ascending order listing. (Forks): Adjust "info inferiors" example to ascending order listing. gdb/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * inferior.c (add_inferior_silent): Append the new inferior to the end of the list. * progspace.c (add_program_space): Append the new pspace to the end of the list. * thread.c (new_thread): Append the new thread to the end of the list. gdb/testsuite/ChangeLog: 2015-11-24 Pedro Alves PR 17539 * gdb.base/foll-exec-mode.exp: Adjust to GDB listing inferiors and threads in ascending order. * gdb.base/foll-fork.exp: Likewise. * gdb.base/foll-vfork.exp: Likewise. * gdb.base/multi-forks.exp: Likewise. * gdb.mi/mi-nonstop.exp: Likewise. * gdb.mi/mi-nsintrall.exp: Likewise. * gdb.multi/base.exp: Likewise. * gdb.multi/multi-arch.exp: Likewise. * gdb.python/py-inferior.exp: Likewise. * gdb.threads/break-while-running.exp: Likewise. * gdb.threads/execl.exp: Likewise. * gdb.threads/gcore-thread.exp: Likewise. * gdb.threads/info-threads-cur-sal.exp: Likewise. * gdb.threads/kill.exp: Likewise. * gdb.threads/linux-dp.exp: Likewise. * gdb.threads/multiple-step-overs.exp: Likewise. * gdb.threads/next-bp-other-thread.exp: Likewise. * gdb.threads/step-bg-decr-pc-switch-thread.exp: Likewise. * gdb.threads/step-over-lands-on-breakpoint.exp: Likewise. * gdb.threads/step-over-trips-on-watchpoint.exp: Likewise. * gdb.threads/thread-find.exp: Likewise. * gdb.threads/tls.exp: Likewise. * lib/mi-support.exp (mi_reverse_list): Delete. (mi_check_thread_states): No longer reverse list. commit 050c224b67b0cb62a5620d294997254d5b6675f9 Author: Pedro Alves Date: Tue Nov 24 18:11:20 2015 +0000 Linux: dump the signalled thread first ... like the kernel does. gcore-thread.exp has a check to make sure the signalled thread is the current thread after loading the core back, but that just works by accident, because the signalled thread happened to be the last thread on the thread list, and gdb currently iterates over threads in reverse order. So this fixes gcore-thread.exp once we start walking threads in ascending number. gdb/ChangeLog: 2015-11-24 Pedro Alves * linux-tdep.c (find_stop_signal): Delete. (struct linux_corefile_thread_data) : Remove field. (linux_corefile_thread_callback): Rename to ... (linux_corefile_thread): ... this. Now takes a struct linux_corefile_thread_data pointer rather than a void pointer. Remove thread state and thread pid checks. (linux_make_corefile_notes): Prefer dumping the signalled thread first. Use ALL_NON_EXITED_THREADS instead of iterate_over_threads. commit 2cc57ad8d14499775e4b9de4a3ffaf73ac728781 Author: Pedro Alves Date: Tue Nov 24 18:11:19 2015 +0000 Make gdb.python/py-inferior.exp test names unique Before we had: $ cat testsuite/gdb.sum | grep "PASS" | sort | uniq -c | sort -n ... 1 PASS: gdb.python/py-inferior.exp: write str 2 PASS: gdb.python/py-inferior.exp: Get inferior list length 2 PASS: gdb.python/py-inferior.exp: py start_addr = gdb.selected_frame ().read_var ('search_buf') 2 PASS: gdb.python/py-inferior.exp: Switch to first inferior 3 PASS: gdb.python/py-inferior.exp: find mixed-sized pattern 4 PASS: gdb.python/py-inferior.exp: py length = search_buf.type.sizeof 4 PASS: gdb.python/py-inferior.exp: py start_addr = search_buf.address 5 PASS: gdb.python/py-inferior.exp: Check inferior validity $ gdb/testsuite/ChangeLog: 2015-11-24 Pedro Alves * gdb.python/py-inferior.exp: Use with_test_prefix. Consistently use lowercase. commit 3ff0b31dc6b8d8b7cd2bd617bfe843c3cdcf9f3b Author: Matthew Wahab Date: Tue Nov 24 10:21:52 2015 +0000 [ARM][GAS] Fix invalid arm-wince-pe tests. There are a number of failures for the arm-wince-pe targets, most are due to the test being invalid for the target. This patch adjusts the invalid tests to either make them valid or to set them as skipped for arm-wince-pe targets. gas/testsuite 2015-11-24 Matthew Wahab * gas/arm/armv7e-m+fpv5-d16.d: Skip test for *-*-pe, *-wince-* and for *-*-coff targets. * gas/arm/armv7e-m+fpv5-sp-d16.d: Likewise. * gas/arm/blx-bl-convert.d: Likewise. * gas/arm/ldst-offset0.d: Likewise. * gas/arm/thumb2_ldr_immediate_armv6t2.d: Likewise. * gas/arm/armv8-a+pan.s: Adjust test to make it valid for non-ELF targets. * gas/arm/wince.d: Add assembler option "-mccs". * gas/arm/wince_inst.d: Update expected output. Change-Id: I33a356e97eace3f8e1d581a46ec6413898105bef commit 2e8cf49e1387eba9c4ce062885b99a6eb76c01f8 Author: Nick Clifton Date: Tue Nov 24 08:47:59 2015 +0000 Add an AArch64 simulator to GDB. sim * configure.tgt: Add aarch64 entry. * configure: Regenerate. * sim/aarch64/configure.ac: New configure template. * sim/aarch64/aclocal.m4: Generate. * sim/aarch64/config.in: Generate. * sim/aarch64/configure: Generate. * sim/aarch64/cpustate.c: New file - functions for accessing AArch64 registers. * sim/aarch64/cpustate.h: New header. * sim/aarch64/decode.h: New header. * sim/aarch64/interp.c: New file - interface between GDB and simulator. * sim/aarch64/Makefile.in: New makefile template. * sim/aarch64/memory.c: New file - functions for simulating aarch64 memory accesses. * sim/aarch64/memory.h: New header. * sim/aarch64/sim-main.h: New header. * sim/aarch64/simulator.c: New file - aarch64 simulator functions. * sim/aarch64/simulator.h: New header. include/gdb * sim-aarch64.h: New file. sim/test * configure: Regenerate. * sim/aarch64: New directory. commit 351e610191016136a49ee2a0889f1c4929169fc6 Author: GDB Administrator Date: Tue Nov 24 00:00:08 2015 +0000 Automatic date update in version.in commit c93e8391bf595de7adde64d1b3f1d564da6f3aee Author: Simon Marchi Date: Mon Nov 23 18:47:09 2015 -0500 Fix internal error when saving fast tracepoint definitions When trying to save fast tracepoints to file, gdb returns internal failure: gdb/breakpoint.c:13446: internal-error: unhandled tracepoint type 27 A problem internal to GDB has been detected, further debugging may prove unreliable. And no file including the fast tracepoints definition is created. The patch also extends save-trace.exp to test saving tracepoint with a fast tracepoint in there. Note that because this test doesn't actually inserts the tracepoints in the program, we can run it with targets that don't actually support fast tracepoints (or tracepoints at all). gdb/ChangeLog: * breakpoint.c (tracepoint_print_recreate): Fix logic error if -> else if. gdb/testsuite/ChangeLog: * gdb.trace/actions.c: Include trace-common.h. (main): Add a location for a fast tracepoint. * gdb.trace/save-trace.exp: Set a fast tracepoint in addition to the normal tracepoints. (gdb_verify_tracepoints): Adjust number of expected tracepoints. commit 045ccf910b4345a1cfa9f3d3af20ae4d8d1defa2 Author: Simon Marchi Date: Mon Nov 23 18:47:08 2015 -0500 Refactor gdb.trace/save-trace.exp Some code is duplicated, to run the test twice with absolute and relative paths, so I factored it out in a few procs. It uses with_test_prefix to differentiate between test runs. I replaced usages of "save-tracepoints" with "save tracepoint", since the former is deprecated. I also removed the "10.x", as it doesn't make much sense anymore. It isn't used in general in the testsuite, and I don't think it's really useful. gdb/testsuite/ChangeLog: * save-trace.exp: Factor out code to these... (gdb_save_tracepoints): New. (gdb_load_tracepoints): New. (do_save_load_test): New. commit 5506f9f67ec105b0059a0b3a66fbde82cb5a0a15 Author: Kevin Buettner Date: Sat Nov 14 13:15:45 2015 -0700 minsyms.c: Scan backwards over all zero sized symbols. The comment for the code in question says: /* If the minimal symbol has a zero size, save it but keep scanning backwards looking for one with a non-zero size. A zero size may mean that the symbol isn't an object or function (e.g. a label), or it may just mean that the size was not specified. */ As written, the code in question will only scan past the first symbol of zero size. My change fixes the implementation to match the comment. Having this correct is important when the compiler generates several local labels that are left in place by the linker. (I've been told that the linker should eliminate these symbols, but I know of one architecture for which this is not happening.) I've created a test case called asmlabel.c. It's pretty simple: main (int argc, char **argv) { asm ("L0:"); v = 0; asm ("L1:"); v = 1; /* set L1 breakpoint here */ asm ("L2:"); v = 2; /* set L2 breakpoint here */ return 0; } If breakpoints are placed on the lines indicated by the comments, this is the behavior of GDB built without my patch: (gdb) continue Continuing. Breakpoint 2, L1 () at asmlabel.c:26 26 v = 1; /* set L1 breakpoint here */ Note that L1 appears as the function instead of main. This is not what we want to happen. With my patch in place, we see the desired behavior instead: (gdb) continue Continuing. Breakpoint 2, main (argc=1, argv=0x7fffffffdb88) at asmlabel.c:26 26 v = 1; /* set L1 breakpoint here */ gdb/ChangeLog: * minsyms.c (lookup_minimal_symbol_by_pc_section_1): Scan backwards over all zero-sized symbols. gdb/testsuite/ChangeLog: * gdb.base/asmlabel.exp: New test. * gdb.base/asmlabel.c: New test case. commit 16c3b12f199a7ec99a0b51bd83b66942547bba87 Author: Joel Brobecker Date: Mon Nov 23 10:02:50 2015 -0800 error/internal-error printing local variable during "bt full". One of our users reported an internal error using the "bt full" command. In their situation, reproducing involved the following scenario: (gdb) frame 1 (gdb) bt full #0 0xf7783430 in __kernel_vsyscall () No symbol table info available. #1 0xf5550aeb in waitpid () at ../sysdeps/unix/syscall-template.S:81 No locals. [...] #6 0x0fe83139 in xxxx (arg=...) [...some locals printed, and then...] = [...]/dwarf2loc.c:364: internal-error: dwarf_expr_frame_base: Assertion `framefunc != NULL' failed. As shown above, the error happens while GDB is trying to print the value of , which is a local string internally generated by the compiler. For that, it finds that the array lives in memory, and therefore tries to create a struct value for it via: case DWARF_VALUE_MEMORY: { CORE_ADDR address = dwarf_expr_fetch_address (ctx, 0); [...] retval = value_at_lazy (type, address + byte_offset); Unfortunately for us, TYPE happens to be an array whose bounds are dynamic. More precisely, the bounds of our arrays are described in the debugging info as being... <4><2c1985e>: Abbrev Number: 33 (DW_TAG_subrange_type) <2c1985f> DW_AT_type : <0x2c1989c> <2c19863> DW_AT_lower_bound : <0x2c19835> <2c19867> DW_AT_upper_bound : <0x2c19841> ... which are references to a pair of local variables. For instance, the lower bound is a reference to the following DIE <3><2c19835>: Abbrev Number: 32 (DW_TAG_variable) <2c19836> DW_AT_name : [...] <2c1983a> DW_AT_type : <0x2c198b4> <2c1983e> DW_AT_artificial : 1 <2c1983e> DW_AT_location : 2 byte block: 91 58 (DW_OP_fbreg: -40) As a result of the above, value_at_lazy indirectly triggers a resolution of TYPE (via value_from_contents_and_address), which means a resolution of TYPE's bounds, and as seen in the DW_AT_location attribute above for our bounds, computing the bound's location requires the frame (its location expression uses DW_OP_fbreg). Unfortunately for us, value_at_lazy does not get passed a frame, we've lost the relevant frame when we try to resolve the array's bounds. Instead, resolve_dynamic_range gets calls dwarf2_evaluate_property with NULL as the frame: static struct type * resolve_dynamic_range (struct type *dyn_range_type, struct property_addr_info *addr_stack) { [...] if (dwarf2_evaluate_property (prop, NULL, addr_stack, &value)) ^^^^ ... which then handles this by using the selected frame instead: if (frame == NULL && has_stack_frames ()) frame = get_selected_frame (NULL); In our case, the selected frame happens to be frame #1, which is a frame where we have a minimal amount of debugging info, and in particular, no debug info for the function itself. And because of that, when we try to determine the frame's base... static void dwarf_expr_frame_base (void *baton, const gdb_byte **start, size_t * length) { struct dwarf_expr_baton *debaton = (struct dwarf_expr_baton *) baton; const struct block *bl = get_frame_block (debaton->frame, NULL); [...] framefunc = block_linkage_function (bl); ... framefunc ends up being NULL, which triggers the assert in that same function: gdb_assert (framefunc != NULL); This patches avoids the issue by temporarily setting the selected_frame before printing the locals of each frames. This patch also adds a small testcase, which reproduces the same issue, but with a slightly different outcome: (gdb) bt full #0 0x000000000040049a in opaque_routine () No symbol table info available. #1 0x0000000000400532 in main () at wrong_frame_bt_full-main.c:20 my_table_size = 3 my_table = With this patch, the output becomes: (gdb) bt full [...] my_table = {0, 1, 2} gdb/ChangeLog: * stack.c (print_frame_local_vars): Temporarily set the selected frame to FRAME while printing the frame's local variables. gdb/testsuite/ChangeLog: * gdb.base/wrong_frame_bt_full-main.c: New file. * gdb.base/wrong_frame_bt_full-opaque.c: New file. * gdb.base/wrong_frame_bt_full.exp: New file. commit 80d82c196402f6a61aa84452104b9aaed364eb42 Author: Joel Brobecker Date: Mon Nov 23 09:56:23 2015 -0800 [LynxOS] GDBserver crash debugging threaded program This crash is observable by debugging a threaded program on LynxOS. On the GDB side, this is what we would see: % gdb q (gdb) target remote machine:4444 (gdb) break q.adb:6 (gdb) cont [gdb hits breakpoint] (gdb) cont Remote connection closed <<<--- expected: [Inferior 1 (Remote target) exited normally] On the gdbserver side, which was launched as usual: % gdbserver --once :4444 q Segmentation fault (core dumped) Ooops! The problem happens while GDB is trying to handle the thread termination event of the thread that hit the breakpoint. It started happening after the following change was made: commit 96e7a1eb6d09fda9e22e112e35e7d0085a8f4fd0 Date: Fri Oct 16 11:08:38 2015 -0400 Subject: gdbserver: Reset current_thread when the thread is removed. Reset current_thread and make sure 'remove_process' is used after all associated threads have been removed first. More precisely: . GDBserver receives the execution-resume order; . lynx-low resumes it succesfully, and then relies on lynx_wait_1 to wait for the next event; . We quickly receive one, which lynx_wait_1 analyzes to be a "thread exit" event, and therefore does... case SIGTHREADEXIT: remove_thread (find_thread_ptid (new_ptid)); lynx_continue (new_ptid); goto retry; => remove_thread causes current_thread to be set to NULL... (that's the recent change mentioned above) => ... which causes problems during lynx_continue, because it calls lynx_resume, which calls regcache_invalidate, which unfortunately assumes that CURRENT_THREAD is not NULL: void regcache_invalidate (void) { /* Only update the threads of the current process. */ SEGV!--> int pid = ptid_get_pid (current_thread->entry.id); find_inferior (&all_threads, regcache_invalidate_one, &pid); } Since the problem at hand is caused by trying to figure out which inferior to reset the regcache for, and since lynx_resume actually had that info, this patch fixes the problem by introducing a new routine called regcache_invalidate_pid, which invalidates the cache of the given pid; and then modifies lynx_resume use that new routine rather than relying on regcache_invalidate to invalidate the regcache of the expected inferior. gdb/gdbserver/ChangeLog: * regcache.h (regcache_invalidate_pid): Add declaration. * regcache.c (regcache_invalidate_pid): New function, extracted from regcache_invalidate. (regcache_invalidate): Reimplement using regcache_invalidate_pid. Add trivial documentation comment. * lynx-low.c: Use regcache_invalidate_pid instead of regcache_invalidate. commit a6a20ad7a16346e2d630b312a94a4cbae60fca45 Author: Joel Brobecker Date: Mon Nov 23 09:53:31 2015 -0800 infinite loop stopping at "pop" insn on x64-windows We noticed the following hang trying to run a program where one of the subroutines we built without debugging info (opaque_routine): $ gdb my_program (gdb) break opaque_routine (gdb) run [...hangs...] The problem comes from the fact that, at the breakpoint's address, we have the following code: => 0x0000000000401994 <+4>: pop %rbp At some point after hitting the breakpoint and stopping, GDB calls amd64_windows_frame_decode_epilogue, which then gets stuck in the following infinite loop: | /* We don't care about the instruction deallocating the frame: | if it hasn't been executed, the pc is still in the body, | if it has been executed, the following epilog decoding will work. */ | | /* First decode: | - pop reg [41 58-5f] or [58-5f]. */ | | while (1) | { | /* Read opcode. */ | if (target_read_memory (pc, &op, 1) != 0) | return -1; | | if (op >= 0x40 && op <= 0x4f) | { | /* REX prefix. */ | rex = op; | | /* Read opcode. */ | if (target_read_memory (pc + 1, &op, 1) != 0) | return -1; | } | else | rex = 0; | | if (op >= 0x58 && op <= 0x5f) | { | /* pop reg */ | gdb_byte reg = (op & 0x0f) | ((rex & 1) << 3); | | cache->prev_reg_addr[amd64_windows_w2gdb_regnum[reg]] = cur_sp; | cur_sp += 8; | } | else | break; | | /* Allow the user to break this loop. This shouldn't happen as the | number of consecutive pop should be small. */ | QUIT; | } Nothing in that loop updates PC, and therefore, because the instruction we stopped at is a "pop", we keep looping forever doing the same thing over and over! This patch fixes the issue by advancing PC to the beginning of the next instruction if the current one is a "pop reg" instruction. gdb/ChangeLog: * amd64-windows-tdep.c (amd64_windows_frame_decode_epilogue): Increment PC in while loop skipping "pop reg" instructions. commit 416dc9c6e9acd57255015d255799ac031a262182 Author: Joel Brobecker Date: Mon Nov 23 09:50:55 2015 -0800 [ARM] "svc" insn check at irrelevant address in ARM unwind info sniffer The following issue has been observed on arm-android, trying to step over the following line of code: Put_Line (">>> " & Integer'Image (Message (I))); Below is a copy of the GDB transcript: (gdb) cont Breakpoint 1, q.dump (message=...) at q.adb:11 11 Put_Line (">>> " & Integer'Image (Message (I))); (gdb) next 0x00016000 in system.concat_2.str_concat_2 () The expected behavior for the "next" command is to step over the call to Put_Line and stop at line 12: (gdb) next 12 I := I + 1; What happens during the next step is that the code for line 11 above make a call to system.concat_2.str_concat_2 (to implement the '&' string concatenation operator) before making the call to Put_Line. While stepping, GDB stops eventually stops at the first instruction of that function, and fails to detect that it's a function call from where we were before, and so decides to stop stepping. And the reason why it fails to detect that we landed inside a function call is because it fails to unwind from that function: (gdb) bt #0 0x00016000 in system.concat_2.str_concat_2 () #1 0x0001bc74 in ?? () Debugging GDB, I found that GDB decides to use the ARM unwind info for that function, which contains the following data: 0x16000 : 0x80acb0b0 Compact model index: 0 0xac pop {r4, r5, r6, r7, r8, r14} 0xb0 finish 0xb0 finish But, in fact, using that data is wrong, in this case, because it mentions a pop of 6 registers, and therefore hints at a frame size of 24 bytes. The problem is that, because we're at the first instruction of the function, the 6 registers haven't been pushed to the stack yet. In other words, using the ARM unwind entry above, GDB is tricked into thinking that the frame size is 24 bytes, and that the return address (r14) is available on the stack. One visible manifestation of this issue can been seen by looking at the value of the stack pointer, and the frame's base address: (gdb) p /x $sp $2 = 0xbee427b0 (gdb) info frame Stack level 0, frame at 0xbee427c8: ^^^^^^^^^^ |||||||||| The frame's base address should be equal to the value of the stack pointer at entry. And you eventually get the correct frame address, as well as the correct backtrace if you just single-step one additional instruction, past the push: (gdb) x /i $pc => 0x16000 : push {r4, r5, r6, r7, r8, lr} (gdb) stepi (gdb) bt #0 0x00016004 in system.concat_2.str_concat_2 () #1 0x00012b6c in q.dump (message=...) at q.adb:11 #2 0x00012c3c in q () at q.adb:19 Digging further, I found that GDB tries to use the ARM unwind info only when sure that it is relevant, as explained in the following comment: /* The ARM exception table does not describe unwind information for arbitrary PC values, but is guaranteed to be correct only at call sites. We have to decide here whether we want to use ARM exception table information for this frame, or fall back [...] There is one case where it decides that the info is relevant, described in the following comment: /* We also assume exception information is valid if we're currently blocked in a system call. The system library is supposed to ensure this, so that e.g. pthread cancellation works. For that, it just parses the instruction at the address it believes to be the point of call, and matches it against an "svc" instruction. For instance, for a non-thumb instruction, it is at... get_frame_pc (this_frame) - 4 ... and the code checking looks like the following. if (safe_read_memory_integer (get_frame_pc (this_frame) - 4, 4, byte_order_for_code, &insn) && (insn & 0x0f000000) == 0x0f000000 /* svc */) exc_valid = 1; However, the reason why this doesn't work in our case is that because we are at the first instruction of a function in the innermost frame. That frame can't possibly be making a call, and therefore be stuck on a system call. What the code above ends up doing is checking the instruction just before the start of our function, which in our case is not even an actual instruction, but unlucky for us, happens to match the pattern it is looking for, thus leading GDB to improperly trust the ARM unwinding data. gdb/ChangeLog: * arm-tdep.c (arm_exidx_unwind_sniffer): Do not check for a frame stuck on a system call if the given frame is the innermost frame. commit 64da5dd5eaa60269a8070e0bdb740b3b2c6e9740 Author: Joel Brobecker Date: Mon Nov 23 09:48:16 2015 -0800 [gdbserver] disable Elf32_auxv_t/Elf64_auxv_t AC_CHECK_TYPES check on Android See the comment added in configure.ac for more details behind this change. gdb/gdbserver/ChangeLog: * configure.ac: Do not call AC_CHECK_TYPES for Elf32_auxv_t and Elf64_auxv_t if the target is Android. commit 206853a02ec27f603ecd584503bfb33cc0fdc03d Author: Joel Brobecker Date: Mon Nov 23 09:45:52 2015 -0800 Fix space-vs-tab issues in gdb/testsuite/ChangeLog. commit 155bfbd30aacd4e01a9ac8ca8032d804ed7ece47 Author: Joel Brobecker Date: Mon Nov 23 09:44:16 2015 -0800 gdb/dwarf2read: Minimal handling of non-constant struct sizes. Using the gdb.ada/var_rec_arr.exp test, where the program declares an array of variant records... 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; ... and then a variable A1 of type Array_Type, the following command ocassionally trigger an internal error trying to allocate more memory than we have left: (gdb) ptype a1(1) [...]/utils.c:1089: internal-error: virtual memory exhausted. A problem internal to GDB has been detected, [...] What happens is that recent versions of GNAT are able to generate DWARF expressions for type Record_Type, and therefore the record's DW_AT_byte_size is not a constant, which unfortunately breaks an assumption made by dwarf2read.c:read_structure_type when it does: attr = dwarf2_attr (die, DW_AT_byte_size, cu); if (attr) { TYPE_LENGTH (type) = DW_UNSND (attr); } As a result of this, when ada_evaluate_subexp tries to create a value_zero for a1(1) while processing the OP_FUNCALL operator as part of evaluating the subscripting operation in no-side-effect mode, we try to allocate a value with a bogus size, potentially triggering the out-of-memory internal error. This patch avoids this issue by setting the length to zero in this case. Until we decide to start supporting dynamic type lengths in GDB's type struct, and it's not clear yet that this is worth the effort (see added comment), that's probably the best we can do. gdb/ChangeLog: * dwarf2read.c (read_structure_type): Set the type's length to zero if it has a DW_AT_byte_size attribute which is not a constant. gdb/testsuite/ChangeLog: * testsuite/gdb.ada/var_rec_arr.exp: Add "ptype a1(1)" test. commit e49d43ff73a309548dd2b576bb7b602f62be66d6 Author: Tristan Gingold Date: Fri Nov 20 17:24:52 2015 +0100 opcodes: handle mach-o for thumb/arm disambiguation. opcodes/ * arm-dis.c (print_insn): Also set is_thumb for Mach-O. commit aa14fb50785c8ac8be5fbb148d7cdd88fcf8f896 Author: Tristan Gingold Date: Wed Jul 8 12:18:32 2015 +0200 darwin-nat: disable sstep cache. Was not reliable after inferior call. commit ad2073b0b48e23028ca9b4d348970690d4501933 Author: Tristan Gingold Date: Mon Nov 23 11:45:05 2015 +0100 solib-darwin: support PIE for spawned processes. solib-darwin is now able to read the load address of the executable before any inferior execution. commit 3eb831e0ca5aa3035845fc039c58c6340fd51c31 Author: Tristan Gingold Date: Thu Oct 9 14:08:07 2014 +0200 darwin-nat: rewrite darwin_read_write_inferior This is a little bit more efficient. commit 37ce4055fe907b9edd25498dcda7a133dbd19784 Author: Doug Evans Date: Sun Nov 22 17:24:03 2015 -0800 target.h: #include . For musl. commit d41fc1249b1365a5373354d6c5aba1dd1ac7af50 Author: GDB Administrator Date: Mon Nov 23 00:00:08 2015 +0000 Automatic date update in version.in commit dc11500a11e5ef1068182886007fccd4d7ad1c70 Author: Mike Frysinger Date: Sat Nov 21 23:22:39 2015 -0800 sim: common: set up CPPFLAGS/CXXFLAGS/LDFLAGS from configure [PR sim/18762] Make sure we pass down the CPP/CXX/LD flags that configure set up for us like we already do for C flags. commit 2561d5808a330240a28841e8b3ce706a65ed31c9 Author: Mike Frysinger Date: Sat Nov 21 23:10:04 2015 -0800 sim: sim_do_commandf: fix call to va_end [PR sim/19273] Make sure we call va_end even in the error case. commit 7c125e3b10ac6f9222d24c76cdf31a5a9ec8dae0 Author: Mike Frysinger Date: Sat Nov 21 22:56:04 2015 -0800 sim: ppc: avoid use of $< in ordinary rules [PR sim/13834] POSIX does not define $< behavior in ordinary rules, so avoid its use to fix building on non-GNU make setups. Reported-by: Christopher January commit 37258e9950490293bb00808a55d82dea640efe6c Author: Mike Frysinger Date: Sat Jun 20 15:21:26 2015 +0545 sim: common: add PRI printf defines Keeping track of the right printf formats for the various types can be a pretty big hassle, especially in common code which has to support a variety of bitsizes. Take a page from the existing standards and add a set of PRI macros which hide the details in a common header. commit 82d442c6c67e42c1697b07aa7ac2b323baf333c0 Author: Mike Frysinger Date: Sat Nov 21 22:00:57 2015 -0800 sim: avr: move global state to sim/cpu state We don't want global variables in the sim as all state should be in the sim state or in the cpu state. This pushes down all that logic for avr. commit 807eaf04cb4ba3c1e5529069ac78af6d9969a5b0 Author: Mike Frysinger Date: Sat Nov 21 21:12:59 2015 -0800 sim: avr: switch to common sim-reg This is not entirely useful as avr doesn't (yet) store its register state in the cpu state, but it does allow for switching to the common code for these functions. commit 6cc98856315993e8723fc2c6a2baabd8dc7fd360 Author: Mike Frysinger Date: Sat Nov 21 20:47:33 2015 -0800 sim: sh: delete global callback/argv We can use the sim state everywhere now to get these values on the fly. commit c1fc4b4d17ee89a2f3d1a2b23eb84ffdc02ada2f Author: Mike Frysinger Date: Fri Nov 20 20:49:35 2015 -0800 sim: h8300: delete global callback/kind/name We can use the sim state everywhere now to get these values on the fly. commit d320201dbe5a3677e96008738cb6cc754147e3bd Author: Mike Frysinger Date: Fri Nov 20 20:41:51 2015 -0800 sim: mn10300: drop global callback handle It's used in one place and can easily be replaced by using the sim state. commit 3559ed3fa4b4b8496dc304e3eb35ef468f7c3601 Author: GDB Administrator Date: Sun Nov 22 00:00:07 2015 +0000 Automatic date update in version.in commit 38d42a53a74109793825fb5eff2c33407e957ec7 Author: GDB Administrator Date: Sat Nov 21 00:00:08 2015 +0000 Automatic date update in version.in commit e084c964d61e6f8582711c73738c4df132410597 Author: Don Breazeal Date: Fri Nov 20 09:45:44 2015 -0800 Fix '-data-read-memory-bytes' typo/assertion This patch fixes a typo in target.c:read_memory_robust, where it calls read_whatever_is_readable with the function arguments in the wrong order. Depending on the address being read, it can cause an xmalloc with a huge size, resulting in an assertion failure, or just read something other than what was requested. The problem only arises when GDB is handling an MI "-data-read-memory-bytes" request and the initial target_read returns an error status. Note that read_memory_robust is only called from the MI code. gdb/ChangeLog: * gdb/target.c (read_memory_robust): Call read_whatever_is_readable with arguments in the correct order. commit 314cf376c5b5493eeea6d3b2a357a5c832943b30 Author: Maciej W. Rozycki Date: Fri Nov 20 16:14:33 2015 +0000 MIPS/GAS/testsuite: Tighten negative-match NaN tests Fix a test quality regression introduced with commit 351cdf24 [[MIPS] Implement O32 FPXX, FP64 and FP64A ABI extensions] where MIPS ABI flags match patterns have been added to negative-match tests covering ELF file header flags. Negative-match tests succeed whenever there is a failure in matching output produced and consequently the likelihood of a false success increases when patterns to match irrelevant output are added. Therefore remove the irrelevant paterns so that the tests complete as soon as the line concerned has been seen. gas/testsuite/ * gas/mips/nan-legacy-1.d: Remove MIPS ABI flags match patterns. * gas/mips/nan-legacy-2.d: Likewise. * gas/mips/nan-legacy-3.d: Likewise. * gas/mips/nan-legacy-4.d: Likewise. * gas/mips/nan-legacy-5.d: Likewise. commit f21cd979851fb422b8c01ee26b85b0273885350e Author: Maciej W. Rozycki Date: Fri Nov 20 16:11:22 2015 +0000 MIPS/LD: Fix little-endian `mti' and `img' ELF emulations Make the little-endian emulation the default for the `mips*el-mti-elf*' and `mips*el-img-elf*' targets, fixing the issue of LD rejecting, in its default configuration, object files produced by GAS also in its default configuration. ld/ * configure.tgt : Add targets. commit 250aafa4773feafd5ca0a61f270b1e901dcd8987 Author: Matthew Wahab Date: Fri Nov 20 16:09:34 2015 +0000 [AArch64] Add support for ARMv8.1 Virtulization Host Extensions. The ARMv8.1 architecture includes the Virtualization Host Extensions which add a number of system registers. This patch adds support for these system registers, making them available when -march=armv8.1-a is selected. include/opcode/ 2015-11-20 Matthew Wahab * aarch64.h (AARCH64_FEATURE_V8_1): New. (AARCH64_ARCH_v8_1): Add AARCH64_FEATURE_V8_1. opcodes/ 2015-11-20 Matthew Wahab * aarch64-opc.c (aarch64_sys_regs): Add spsr_el12, elr_el12, sctlr_el12, cpacr_el12, ttbr1_el2, ttbr0_el12, ttbr1_el12, tcr_el12, afsr0_el12, afsr1_el12, esr_el12, far_el12, mair_el12, amair_el12, vbar_el12, contextidr_el2, contextidr_el12, cntkctl_el12, cntp_tval_el02, cntp_ctl_el02, cntp_cval_el02, cntv_tval_el02, cntv_ctl_el02, cntv_cval_el02, cnthv_tval_el2, cnthv_ctl_el2, cnthv_cval_el2. (aarch64_sys_reg_supported_p): Update for the new system registers. gas/testsuite/ 2015-11-20 Matthew Wahab * gas/aarch64/virthostext-directive.d: New. * gas/aarch64/virthostext.d: New. * gas/aarch64/virthostext.s: New. Change-Id: Iecb370591b1b6e9e00d81c8ccd9ae3b0f71794a2 commit 8c00185a1eeddb7218f8cc02f4c596b7c966a04d Author: Matthew Wahab Date: Fri Nov 20 15:53:41 2015 +0000 Stop the ARM short mapping symbol test being run for the symbianelf target. * gas/arm/mapshort-elf.d: Fix typo in exclusion list. commit 0b1fa2880c60dcb97d15e5d96e5640f3672dae48 Author: Stefan Teleman Date: Fri Nov 20 15:28:40 2015 +0000 Fix a problem with the maximum number of open files held in the cache when running on a 32-bit Solaris host. PR ld/19260 * cache.c (bfd_cache_max_open): Avoid using getrlimit on 32-bit Solaris as the result is unreliable. commit a915c10f7f1cd8ed433554f05a7281995ae9a540 Author: Nick Clifton Date: Fri Nov 20 14:15:20 2015 +0000 Remove a if-clause that is redundant because the same test has been performed earlier on. PR binutils/19224 * h8300-dis.c (bfd_h8_disassemble): Remove redundant if clause. commit 9b334a2ccd0ba00d67ae590b3bab470836f79269 Author: Tristan Gingold Date: Fri Nov 20 15:14:38 2015 +0100 Fix missing update in previous patch. bfd/ * mach-o-x86-64.c (x86_64_howto_table): Change name here too. commit a4f8732b2a0c2cf48cff088311ed0ee2b17435b9 Author: Ronald Hoogenboom Date: Fri Nov 20 14:08:29 2015 +0000 Fix building objcopy under mingw64 by replacing uses of strndup with xstrndup. * objcopy.c (parse_symflags): Use xstrndup in place of strndup. (copy_main): Likewise. commit f075eb5e6b0dd850304f78cf4d5c94df7b44c7a3 Author: Tristan Gingold Date: Fri Nov 20 11:33:33 2015 +0100 binutils: add support for arm-*-darwin and aarch64-*-darwin. Currently only in bfd and binutils. ChangeLog/ * configure.ac: Add aarch64-*-darwin* and arm-*-darwin*. * configure: Regenerate. bfd/ChangeLog/ * targets.c (aarch64_mach_o_vec, arm_mach_o_vec): Declare. (_bfd_target_vector): Add new vectors. * reloc.c (BFD_RELOC_MACH_O_SUBTRACTOR32) (BFD_RELOC_MACH_O_SUBTRACTOR64, BFD_RELOC_MACH_O_ARM64_ADDEND) (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21) (BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12) (BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT): New relocations. (BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32) (BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64): Remove. * mach-o-x86-64.c (bfd_mach_o_x86_64_swap_reloc_out): Change name of subtractor relocations. * config.bfd: Handle aarch64-*-darwin*, arm-*-darwin*. * Makefile.am (BFD32_BACKENDS): Add mach-o-arm.lo. (BFD32_BACKENDS_CFILES): Add mach-o-arm.c. (BFD64_BACKENDS): Add mach-o-aarch64.lo. (BFD64_BACKENDS_CFILES): Add mach-o-aarch64.c. * configure.ac: Handle aarch64_mach_o_vec and arm_mach_o_vec. * mach-o-aarch64.c: New file. * mach-o-arm.c: New file. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * libbfd.h: Regenerate. commit 11b8aeb88174dd67ff8b7c58377e8ef94ccf274e Author: David Bridgham Date: Fri Nov 20 12:58:16 2015 +0000 Synchronize PDP11 page size between BFD and LD. * pdp11.c (TARGET_PAGE_SIZE): Set to 256 to match definition in ld/emulparams/pdp11.sh. commit f8c2a96547f690bb6308f1dbdf174679afd01b2b Author: Nick Clifton Date: Fri Nov 20 12:35:43 2015 +0000 Update translations. binutils * po/ca.po: New Catalan translation. * configure.ac (ALL_LINGUAS): Add ca. * configure: Regenerate. gas * po/fr.po: Updated French translation. * po/uk.po: Updated Ukraninan translation. * po/zh_CN.po: New simplified Chinese translation. * configure.ac (ALL_LINGUAS): Add zh_CN. * configure: Regenerate. opcodes * po/zh_CN.po: Updated simplified Chinese translation. commit bb0974456ed6d421e8d0b257f1e108c242326afc Author: Jose E. Marchesi Date: Fri Nov 20 11:36:07 2015 +0100 callfuncs.exp: avoid spurious register differences in sparc64 targets. The Linux kernel disables the FPU upon returning to userland. This introduces spurious failures in the register preservation tests in callfuncs.exp, since the pstate.PEF bit gets cleared after system calls. This patch filters out the pstate register in sparc64-*-linux-gnu targets, so the relevant tests are no longer fooled and pass. gdb/testsuite/ChangeLog: 2015-11-20 Jose E. Marchesi * gdb.base/callfuncs.exp (fetch_all_registers): Filter out the pstate register when comparing registers values in sparc64-*-linux-gnu targets to avoid spurious differences. commit 9c88ed8f116dc5f9471280c73f9ab08c81a86f2d Author: Jose E. Marchesi Date: Fri Nov 20 10:48:56 2015 +0100 sparc: fix build of gdb/testsuite/gdb.arch/sparc-sysstep.c This patch adds a missing include that makes the test program to not be built (--Wimplicit-function-declaration). gdb/testsuite/ChangeLog: 2015-11-20 Jose E. Marchesi * gdb.arch/sparc-sysstep.c: Include unistd.h for getpid. commit 96161e2527c6fdc5c507fa1c0b8e7b8e7a08a03e Author: Sandra Loosemore Date: Thu Nov 19 16:22:04 2015 -0800 Fix think-o in calls to gdb_compile. 2015-11-19 Sandra Loosemore gdb/testsuite/ * gdb.base/nested-subp1.exp: Pass executable, not executable name, as type argument to gdb_compile. * gdb.base/nested-subp2.exp: Likewise. * gdb.base/nested-subp3.exp: Likewise. commit 7fcdc24df1cfbf6c26be311efc2a6ea1abc3d34f Author: GDB Administrator Date: Fri Nov 20 00:00:08 2015 +0000 Automatic date update in version.in commit 06e03fff313dfcc5f344280f8ac70b0ec8521f3a Author: Pedro Alves Date: Thu Nov 19 18:31:50 2015 +0000 gdbserver: Fix qSupported:xmlRegisters=i386;UnknownFeature+ handling The target_process_qsupported method is called for each qSupported feature that the common code does not recognize. The only current implementation, for x86 Linux (x86_linux_process_qsupported), assumes that it either is called with the "xmlRegisters=i386" feature, or that it is isn't called at all, indicating the connected GDB predates x86 XML descriptions. That's a bad assumption however. If GDB sends in a new/unknown (to core gdbserver) feature after "xmlRegisters=i386", say, something like qSupported:xmlRegisters=i386;UnknownFeature+, then when target_process_qsupported is called for "UnknownFeature+", x86_linux_process_qsupported clears the 'use_xml' global and calls x86_linux_update_xmltarget, and gdbserver ends up _not_ reporting a XML description... This commit changes the target_process_qsupported API to instead pass down a vector of unprocessed qSupported features in one go. (There's an early call to target_process_qsupported(NULL) that indicates "starting qSupported processing". There's no matching call to mark the end of processing, though. I first fixed this by passing (char *)-1 to indicate that, and adjusted the x86 backend to only clear 'use_xml' when qSupported processing starts, and then only call x86_linux_update_xmltarget() when (char *)-1 was passed. However, I wasn't that happy with the hack and came up this alternative version.) gdb/gdbserver/ChangeLog: 2015-11-19 Pedro Alves * linux-low.c (linux_process_qsupported): Change prototype. Adjust. * linux-low.h (struct linux_target_ops) : Change prototype. * linux-x86-low.c (x86_linux_process_qsupported): Change prototype and adjust to loop over all features. * server.c (handle_query) : Adjust to call target_process_qsupported once, passing it a vector of unprocessed features. * target.h (struct target_ops) : Change prototype. (target_process_qsupported): Adjust. commit b35d5edb03798388d503d922d8f909a133bf93dd Author: Pedro Alves Date: Thu Nov 19 18:31:49 2015 +0000 gdb: Workaround bad gdbserver qSupported:xmlRegisters=i386;UnknwnFeat+ handling gdbserver's target_process_qsupported is called for each feature that the gdbserver common code does not recognize. The only current implementation, for x86 Linux, does this: static void x86_linux_process_qsupported (const char *query) { /* Return if gdb doesn't support XML. If gdb sends "xmlRegisters=" with "i386" in qSupported query, it supports x86 XML target descriptions. */ use_xml = 0; if (query != NULL && startswith (query, "xmlRegisters=")) { char *copy = xstrdup (query + 13); char *p; for (p = strtok (copy, ","); p != NULL; p = strtok (NULL, ",")) { if (strcmp (p, "i386") == 0) { use_xml = 1; break; } } free (copy); } x86_linux_update_xmltarget (); } Notice that this clears use_xml and calls x86_linux_update_xmltarget each time target_process_qsupported is called. So if gdb sends in any unknown feature after "xmlRegisters=i386", like e.g., "xmlRegisters=i386;UnknownFeature+" gdbserver ends up not reporting a XML description... Work around this by having GDB send the "xmlRegisters=" feature last. gdb/ChangeLog: 2015-11-19 Pedro Alves * remote.c (remote_query_supported): Send the "xmlRegisters=" feature last. commit bb82e93484cdd56c67efd52b869a6123b2623f6c Author: Simon Marchi Date: Thu Nov 19 10:17:36 2015 -0500 Fix iov_len calculation in aarch64_linux_set_debug_regs There is this build failure when building in C++: /home/simark/src/binutils-gdb/gdb/nat/aarch64-linux-hw-point.c: In function ‘void aarch64_linux_set_debug_regs(const aarch64_debug_reg_state*, int, int)’: /home/simark/src/binutils-gdb/gdb/nat/aarch64-linux-hw-point.c:564:64: error: ‘count’ cannot appear in a constant-expression iov.iov_len = (offsetof (struct user_hwdebug_state, dbg_regs[count - 1]) ^ We can simplify the computation and make g++ happy at the same time by formulating as: size of fixed part + size of variable part thus... size of fixed part + count * size of one variable part element thus... offsetof (struct user_hwdebug_state, dbg_regs) + count * sizeof (regs.dbg_reg[0]); gdb/ChangeLog: * nat/aarch64-linux-hw-point.c (aarch64_linux_set_debug_regs): Change form of iov_len computation. commit 9a0847060d5823ec520ebf0c3e307e26442e5b8c Author: Pedro Alves Date: Thu Nov 19 14:32:54 2015 +0000 [C++] Default to -Werror in C++ mode too Both x86_64 GNU/Linux and x86_64 mingw-w64 build cleanly with --enable-targets=all. This enables -Werror by default in C++ mode too, in order to let the buildbot catch C++ build regressions for us. gdb/ChangeLog: 2015-11-19 Pedro Alves * configure.ac (ERROR_ON_WARNING): Don't check whether in C++ mode. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2015-11-19 Pedro Alves * configure.ac (ERROR_ON_WARNING): Don't check whether in C++ mode. * configure: Regenerate. commit dad44a1fbaa460e5ff80ce203196bc1c1317dc60 Author: Pedro Alves Date: Thu Nov 19 14:32:54 2015 +0000 [C++] Drop -fpermissive hack Both x86_64 GNU/Linux and x86_64 mingw-w64 build cleanly with --enable-targets=all. Let's drop the -fpermissive hack, in order to let the buildbot catch C++ build regressions for us. gdb/ChangeLog: 2015-11-19 Pedro Alves * build-with-cxx.m4 (GDB_AC_BUILD_WITH_CXX): Remove -fpermissive. * configure: Regenerate. gdb/gdbserver/ChangeLog: 2015-11-19 Pedro Alves * configure: Regenerate. commit c6d811243634c84e185a25faf33491ee1a5f900a Author: Pedro Alves Date: Thu Nov 19 14:32:53 2015 +0000 [C++] breakpoint.c: "no memory" software watchpoints and enum casts Fixes: src/gdb/breakpoint.c: In function ‘void update_watchpoint(watchpoint*, int)’: src/gdb/breakpoint.c:2147:31: error: invalid conversion from ‘int’ to ‘target_hw_bp_type’ [-fpermissive] base->loc->watchpoint_type = -1; ^ Seems better to rely on "address == -1 && length == -1" than on a enum value that's not really part of the set of supposedly valid enum values. Also, factor that out to separate functions for better localization of the concept. gdb/ChangeLog: 2015-11-19 Pedro Alves * breakpoint.c (software_watchpoint_add_no_memory_location) (is_no_memory_software_watchpoint): New functions. (update_watchpoint): Use software_watchpoint_add_memoryless_location. (breakpoint_address_bits): Use is_no_memory_software_watchpoint. commit 4d1931791d0aca95ce82d5391f03b31613d9173b Author: Simon Marchi Date: Thu Nov 19 14:32:53 2015 +0000 [C++] s390: Fix enum gdb_syscall conversion Fixes: src/gdb/s390-linux-tdep.c: In function ‘gdb_syscall s390_canonicalize_syscall(int, s390_abi_kind)’: src/gdb/s390-linux-tdep.c:2622:16: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall; ^ src/gdb/s390-linux-tdep.c:2722:16: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall; ^ src/gdb/s390-linux-tdep.c:2725:24: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall + 2; ^ src/gdb/s390-linux-tdep.c:2728:24: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall + 5; ^ src/gdb/s390-linux-tdep.c:2731:24: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall + 6; ^ src/gdb/s390-linux-tdep.c:2734:24: error: invalid conversion from ‘int’ to ‘gdb_syscall’ [-fpermissive] return syscall + 7; ^ gdb/ChangeLog: 2015-11-19 Simon Marchi Pedro Alves * s390-linux-tdep.c (s390_canonicalize_syscall): Add casts and intermediate 'int' variable. commit f8708a14262c9abe0a6823de4470f5710374fe40 Author: Pedro Alves Date: Thu Nov 19 14:32:53 2015 +0000 [C++] linux-thread-db.c: dladdr cast Fixes: src/gdb/linux-thread-db.c: In function ‘int try_thread_db_load_1(thread_db_info*)’: src/gdb/linux-thread-db.c:769:53: error: invalid conversion from ‘td_err_e (*)(ps_prochandle*, td_thragent_t**) {aka td_err_e (*)(ps_prochandle*, td_thragent**)}’ to ‘const void*’ [-fpermissive] library = dladdr_to_soname (*info->td_ta_new_p); ^ src/gdb/linux-thread-db.c:637:1: error: initializing argument 1 of ‘const char* dladdr_to_soname(const void*)’ [-fpermissive] dladdr_to_soname (const void *addr) ^ gdb/ChangeLog: 2015-11-19 Pedro Alves * linux-thread-db.c (try_thread_db_load_1): Add cast. commit 915ef8b18e28e6418216a582067b9fbdd6395e6a Author: Pedro Alves Date: Thu Nov 19 14:32:53 2015 +0000 [C++] remote.c: Avoid enum arithmetic Fixes: src/gdb/remote.c: In function ‘void remote_unpush_target()’: src/gdb/remote.c:4610:45: error: invalid conversion from ‘int’ to ‘strata’ [-fpermissive] pop_all_targets_above (process_stratum - 1); ^ In file included from src/gdb/inferior.h:38:0, from src/gdb/remote.c:25: src/gdb/target.h:2299:13: error: initializing argument 1 of ‘void pop_all_targets_above(strata)’ [-fpermissive] extern void pop_all_targets_above (enum strata above_stratum); ^ I used to carry a patch in the C++ branch that just did: - pop_all_targets_above (process_stratum - 1); + pop_all_targets_above ((enum strata) (process_stratum - 1)); But then thought that maybe adding a routine that does exactly what we need results in clearer code. This is the result. gdb/ChangeLog: 2015-11-19 Pedro Alves * remote.c (remote_unpush_target): Use pop_all_targets_at_and_above instead of pop_all_targets_above. * target.c (unpush_target_and_assert): New function, factored out from ... (pop_all_targets_above): ... here. (pop_all_targets_at_and_above): New function. * target.h (pop_all_targets_at_and_above): Declare. commit c2825638b6784179f191c6ee8ebbda1c49ae5271 Author: Matthew Wahab Date: Thu Nov 19 14:13:45 2015 +0000 [AArch64] Reject invalid immediate operands to MSR PAN The support for accessing the ARMv8.1 PSTATE field PAN allows instructions of the form MSR PAN, # with any unsigned 4-bit integer. However, the architecture specification requires that the immediate is either 0 or 1. This patch implements the constraint on the immediate, generating an error if the immediate operand is invalid, and adds tests for the illegal forms. opcodes/ 2015-11-19 Matthew Wahab * aarch64-opc.c (operand_general_constraint_met_p): Check validity of MSR PAN immediate operand. gas/testsuite/ 2015-11-19 Matthew Wahab * gas/aarch64/pan-illegal.d: New. * gas/aarch64/pan-illegal.l: New. * gas/aarch64/pan.s: Add tests for invalid immediates. Change-Id: Ibb3056c975eb792104da138d94594224f56a993e commit 231c0592639d6f5c1796feb4a6375eab202a4acb Author: Yao Qi Date: Thu Nov 19 13:58:29 2015 +0000 Change argument opcode type from enum aarch64_opcodes to uint32_t The patch fixes the following errors in C++ build, gdb/gdbserver/linux-aarch64-low.c: In function 'int emit_data_processing(uint32_t*, aarch64_opcodes, aarch64_register, aarch64_register, aarch64_operand)': gdb/gdbserver/linux-aarch64-low.c:1071:52: error: invalid conversion from 'unsigned int' to 'aarch64_opcodes' [-fpermissive] return emit_data_processing_reg (buf, opcode | operand_opcode, rd, ^ gdb/gdbserver: 2015-11-19 Yao Qi * linux-aarch64-low.c (emit_data_processing_reg): Change opcode type to uint32_t. commit 6c1c9a8bbd2aa3fbc627525b452e7dbbaf40efc5 Author: Yao Qi Date: Thu Nov 19 13:58:29 2015 +0000 Define enum out of the scope of struct This patch moves the enum definition out of the scope of struct, and fixes the following error. gdb/gdbserver/linux-aarch64-low.c:681:18: error: 'OPERAND_REGISTER' was not declared in this scope operand.type = OPERAND_REGISTER; ^ gdb/gdbserver: 2015-11-19 Yao Qi * linux-aarch64-low.c (enum aarch64_operand_type): New. (struct aarch64_operand): Move enum out. commit 9caa33114e9195b0d28ad46d21a11a8f838ffb07 Author: Yao Qi Date: Thu Nov 19 13:58:29 2015 +0000 Cast void * to user_fpsimd_state *. This patch fixes the following build error in GDBserver, gdb/gdbserver/linux-aarch64-low.c: In function 'void aarch64_fill_fpregset(regcache*, void*)': gdb/gdbserver/linux-aarch64-low.c:134:38: error: invalid conversion from 'void*' to 'user_fpsimd_state*' [-fpermissive] struct user_fpsimd_state *regset = buf; ^ gdb/gdbserver/linux-aarch64-low.c: In function 'void aarch64_store_fpregset(regcache*, const void*)': gdb/gdbserver/linux-aarch64-low.c:146:44: error: invalid conversion from 'const void*' to 'const user_fpsimd_state*' [-fpermissive] const struct user_fpsimd_state *regset = buf; ^ gdb/gdbserver: 2015-11-19 Yao Qi * linux-aarch64-low.c (aarch64_fill_fpregset): Cast buf to struct user_fpsimd_state *. (aarch64_store_fpregset): Likewise. commit 6a69a054f7581d16d4f65f80c45b92176311e1ef Author: Yao Qi Date: Thu Nov 19 13:58:29 2015 +0000 Cast void * to struct user_pt_regs * This patch fixes the following GDBserver build errors in C++. gdb/gdbserver/linux-aarch64-low.c:108:33: error: invalid conversion from 'void*' to 'user_pt_regs*' [-fpermissive] struct user_pt_regs *regset = buf; ^ gdb/gdbserver/linux-aarch64-low.c: In function 'void aarch64_store_gregset(regcache*, const void*)': gdb/gdbserver/linux-aarch64-low.c:121:39: error: invalid conversion from 'const void*' to 'const user_pt_regs*' [-fpermissive] const struct user_pt_regs *regset = buf; gdb/gdbserver: 2015-11-19 Yao Qi * linux-aarch64-low.c (aarch64_fill_gregset): Cast buf to struct user_pt_regs *. (aarch64_store_gregset): Likewise. commit d47b13e0e2286ef9e9444292bc5631f43cf226da Author: Andreas Krebbel Date: Thu Nov 19 11:10:06 2015 +0100 [S/390] Add null ptr check + port GOTOFF handling from 32 bit over to 64 bit bfd/ChangeLog: 2015-11-19 Andreas Krebbel PR ld/19263 * elf32-s390.c (elf_s390_gc_sweep_hook): Add null ptr check. * elf64-s390.c (elf_s390_check_relocs): Port the GOTOFF handling over from the 32 bit code. (elf_s390_relocate_section): Likewise. commit 56a1b672f4b97b10b093f02540dff1c855a69855 Author: Matthew Wahab Date: Thu Nov 19 09:24:14 2015 +0000 [ARM] Add ARMv8.2 architecture feature and command line option. ARMv8.2 is an architectural extension of ARMv8. This patch adds an architecture feature macro for ARMv8.2 to the binutils ARM target with GAS command line option -march=armv8.2-a. gas/ 2015-11-19 Matthew Wahab * config/tc-arm.c (arm_archs): Add "armv8.2-a". * doc/c-arm.texi (-march): Add "armv8.2-a". include/opcode/ 2015-11-19 Matthew Wahab * arm.h (ARM_EXT2_V8_2A): New. (ARM_ARCH_V8_2A): New. Change-Id: I9e0f50e3c6cea24e6b87b8b862fd4e1cdcc1052e commit acb787b032ea5a84e8a5e94de0b0bf97523f8b47 Author: Matthew Wahab Date: Thu Nov 19 09:12:49 2015 +0000 [AArch64] Add ARMv8.2 command line option and feature flag. ARMv8.2 is an architectural extension of ARMv8. This patch adds an architecture feature macro for ARMv8.2 to the binutils AArch64 target with GAS command line option -march=armv8.2-a. gas/ 2015-11-19 Matthew Wahab * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a". * doc/c-aarch64.texi (-march): Likewise. include/opcode/ 2015-11-19 Matthew Wahab * aarch64.h (AARCH64_FEATURE_V8_2): New. (AARCH64_ARCH_V8_2): New. Change-Id: I129232ab00234a07d18ce4b619607344acb3cbaf commit 9a724e7b6b7ab9c5dd68954ed75d857c860c8fdf Author: Alan Modra Date: Thu Nov 19 17:01:59 2015 +1030 output_big_leb128 comment * read.c (output_big_leb128): Describe "sign" parameter. commit 32d849b35dead5af58e47bc20c04cf4f5c8625ef Author: Alan Modra Date: Thu Nov 19 16:59:36 2015 +1030 [GOLD] PowerPC TOC16 and GOT16 relocs are relative * powerpc.cc (Target_powerpc::Scan::get_reference_flags): Correct GOT16 and TOC16 relocs to RELATIVE_REF. commit 04830f249f8cb2c4f89e12cde9212febf50611ff Author: Alan Modra Date: Thu Nov 19 16:57:49 2015 +1030 Recent powerpc testcase fails On powerpcle-cygwin a couple of tests fail due to alignment. * gas/ppc/altivec3.d: Allow for padding at end of section. * gas/testsuite/gas/ppc/power9.d: Likewise. commit f29cf775fa9d4c8df1445e7e04bf92deda60e001 Author: Alan Modra Date: Thu Nov 19 16:53:43 2015 +1030 Use default sub-segment align for non-ELF powerpc Defining this to zero for COFF and PE meant that code sections were padded with zeros. The fact that no one has complained since 2006 says these targets are dead, I guess. * config/tc-ppc.h (SUB_SEGMENT_ALIGN): Define only for ELF. commit b39910205f54538f53e77b9ae13f1d41ff728f5a Author: Alan Modra Date: Thu Nov 19 15:00:13 2015 +1030 Account for .tbss alignment when adjusting start of relro Another option might be to not bump "dot" for .tbss alignment in the main section sizing loop, but that could leak some of the following section into the TLS segment. Leakage shouldn't matter since it will be to bytes past the end of .tdata, but for now this is a safer option. PR ld/19264 * ldlang.c (lang_size_sections): Don't ignore .tbss when adjusting start of relro region. commit 62aa7be1959a8d1202ab2c4809d76147aadeeeab Author: GDB Administrator Date: Thu Nov 19 00:00:08 2015 +0000 Automatic date update in version.in commit 7cc3f8e23b5c19a50722adefce986230b191e9cd Author: Simon Marchi Date: Wed Nov 18 11:20:22 2015 -0500 Constify value_string If we constify value_cstring, we might as well constify this one. gdb/ChangeLog: * valops.c (value_string): Constify 'ptr' parameter. * value.h (value_string): Constify 'ptr' parameter. commit 79f338988c53625a3ab3fba63f06c6ffd224e9ff Author: Simon Marchi Date: Tue Nov 17 13:07:24 2015 +0000 [C++] Add casts to obstack_base calls The recent libiberty import of upstream obstack.h (314dee8ea9be) makes obstack_base return a 'void *', with the consequence that a few places in gdb need a (char *) cast. gdb/ChangeLog: 2015-11-18 Simon Marchi Pedro Alves * break-catch-sig.c (signal_catchpoint_print_one): Add cast. * c-exp.y (parse_string_or_char, yylex): Add casts. * c-lang.c (evaluate_subexp_c): Add casts. * d-exp.y (parse_string_or_char, yylex): Add casts. * go-exp.y (parse_string_or_char, build_packaged_name): Add casts. * p-valprint.c (pascal_object_print_value_fields): Add casts. * valprint.c (generic_emit_char, generic_printstr): Add casts. commit e3a3797ee558f4f84c67a65e1d9abce845f15abd Author: Simon Marchi Date: Wed Nov 18 15:51:17 2015 +0000 Constify value_cstring gdb/ChangeLog: 2015-11-18 Simon Marchi * valops.c (value_cstring): Constify 'ptr' parameter. * value.h (value_cstring): Constify 'ptr' parameter. commit b53e4c0e7c0832a1779d5000a71a9de51dae699b Author: Tristan Gingold Date: Wed Nov 18 16:45:03 2015 +0100 mach-o: decode and display arm64 compact unwind entries. commit bcb51645d3ef1211efbce59f0935f5f0223602a3 Author: Tristan Gingold Date: Wed Nov 18 15:43:27 2015 +0100 mach-o: use a per-target reloc canonicalize function. bfd/ * mach-o.h (bfd_mach_o_swap_in_non_scattered_reloc) (bfd_mach_o_canonicalize_non_scattered_reloc) (bfd_mach_o_pre_canonicalize_one_reloc): Declare. (bfd_mach_o_backend_data): Rename field _bfd_mach_o_swap_reloc_in to _bfd_mach_o_canonicalize_one_reloc. * mach-o.c (bfd_mach_o_swap_in_non_scattered_reloc): Now public. (bfd_mach_o_canonicalize_non_scattered_reloc): Renames from bfd_mach_o_canonicalize_one_reloc. (bfd_mach_o_pre_canonicalize_one_reloc): New function. (bfd_mach_o_canonicalize_relocs): Adjust. (bfd_mach_o_canonicalize_relocs): Rename define from bfd_mach_o_swap_reloc_in. * mach-o-target.c (TARGET_NAME_BACKEND): Use bfd_mach_o_canonicalize_one_reloc instead of bfd_mach_o_swap_reloc_in. * mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Renames from bfd_mach_o_i386_swap_reloc_in and adjust. (bfd_mach_o_canonicalize_one_reloc): Renames from bfd_mach_o_i386_canonicalize_one_reloc. * mach-o-x86_64.c (bfd_mach_o_x86_64_canonicalize_one_reloc): Renames from bfd_mach_o_x86_64_swap_reloc_in and adjust. (bfd_mach_o_canonicalize_one_reloc): Renames from bfd_mach_o_x86_64_canonicalize_one_reloc. commit 1798301e20d5c5be69a362bbec149abce446c215 Author: Pedro Alves Date: Wed Nov 18 13:02:21 2015 +0000 [gdbserver/ipa] Fix build dependencies Commit 91ee7171d088 (MinGW and attribute format(printf/gnu_printf)) made common/common-defs.h depend on gnulib's substitute headers. Turns out that that broke the gdbserver/ipa build (as the buildbots discovered) because nothing is making sure that gnulib is built before the ipa is. gdb/gdbserver/ChangeLog: 2015-11-18 Pedro Alves * Makefile.in (all_object_files): Add $IPA_OBJS. commit 0735fdddbc086291f6d2357e8fa57e5df6095e89 Author: Yao Qi Date: Wed Nov 18 11:49:32 2015 +0000 Fix out of boundary access in pass_in_v Hi, I build GDB with -fsanitize=address, and run testsuite. In gdb.base/callfuncs.exp, I see the following error, p t_float_values(0.0,0.0) ================================================================= ==8088==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000cb650 at pc 0x6e195c bp 0x7fff164f9770 sp 0x7fff164f9768 READ of size 16 at 0x6020000cb650 thread T0^ #0 0x6e195b in regcache_raw_write /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:912 #1 0x6e1e52 in regcache_cooked_write /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:945 #2 0x466d69 in pass_in_v /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1101 #3 0x467512 in pass_in_v_or_stack /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1196 #4 0x467d7d in aarch64_push_dummy_call /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1335 The code in pass_in_v read contents from V registers (128 bit), but the data passed through V registers can be less than 128 bit. In this case, float is passed. So writing V registers contents into contents buff will cause overflow. In this patch, we add an array reg[V_REGISTER_SIZE], which is to hold the contents from V registers, and then copy useful bits to buf. gdb: 2015-11-18 Yao Qi * aarch64-tdep.c (pass_in_v): Add argument len. Add local array reg. Callers updated. commit 4978e369fb75a8b7756bf4201668b2a9d9556286 Author: Alan Modra Date: Wed Nov 18 22:12:23 2015 +1030 Prevent looping in archives PR 19256 * archive.c (bfd_generic_openr_next_archived_file): Don't allow backward file movement via "negative" sizes. * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Likewise. commit 47daa70fe08c57aaafa6fe1a7e762072909d0f8f Author: Tristan Gingold Date: Wed Nov 18 10:33:11 2015 +0100 mach-o cleanup: remove useless calls to bfd_seek. Also support new commands. bfd/ * mach-o.h (struct mach_o_data_struct): Add hdr_offset field. (bfd_mach_o_fat_archive_p): Renames prototype. (bfd_mach_o_fat_openr_next_archived_file): Renames. (bfd_mach_o_header_p): Add argument. * mach-o.c (bfd_mach_o_read_header): Add hdr_off argument and use it. (bfd_mach_o_read_section_32, bfd_mach_o_read_section_64) (bfd_mach_o_read_section): Remove offset argument. (bfd_mach_o_read_dylinker): Remove bfd_seek call. (bfd_mach_o_read_dylib, bfd_mach_o_read_prebound_dylib) (bfd_mach_o_read_prebind_cksum, bfd_mach_o_read_twolevel_hints) (bfd_mach_o_read_fvmlib, bfd_mach_o_read_dysymtab) (bfd_mach_o_read_symtab, bfd_mach_o_read_uuid) (bfd_mach_o_read_linkedit, bfd_mach_o_read_str) (bfd_mach_o_read_dyld_info, bfd_mach_o_read_version_min) (bfd_mach_o_read_encryption_info): Likewise. (bfd_mach_o_read_encryption_info_64): New function. (bfd_mach_o_read_main, bfd_mach_o_read_source_version) (bfd_mach_o_read_segment): Remove call to bfd_seek. (bfd_mach_o_read_command): Use hdr_offset in bfd_seek. Handle BFD_MACH_O_LC_LINKER_OPTIMIZATION_HINT, BFD_MACH_O_LC_ENCRYPTION_INFO_64, BFD_MACH_O_LC_VERSION_MIN_WATCHOS. (bfd_mach_o_header_p): Add hdr_off argument. (bfd_mach_o_gen_object_p, bfd_mach_o_gen_core_p): Adjust calls. (bfd_mach_o_fat_archive_p): Renames. (bfd_mach_o_fat_openr_next_archived_file): Renames. (bfd_mach_o_close_and_cleanup): Remove useless code. (bfd_mach_o_close_and_cleanup): Define. * mach-o-x86-64.c (bfd_mach_o_x86_64_object_p) (bfd_mach_o_x86_64_core_p): Adjust calls. * mach-o-target.c: Move defines for archive from mach-o.c. Remove check on TARGET_ARCHIVE. * mach-o-i386.c (bfd_mach_o_i386_object_p) (bfd_mach_o_i386_core_p): Adjust calls. commit c389945b7a470aa328972026fe4a836c57ccb7ae Author: Mike Frysinger Date: Tue Nov 17 00:24:35 2015 -0800 sim: mn10300/v850: drop unused WITH_CORE define This was dropped from the sim core in 1997, so no point in having these sim ports continue to define it. commit cdf850e9d953f765f600e1ecae61664eab5ae7f1 Author: Mike Frysinger Date: Tue Nov 17 00:19:56 2015 -0800 sim: always enable modulo memory Having this be a config option doesn't make sense: the code size is pretty much the same (as all the logic is still active), and if it's disabled, the sim throws an error if you try to use it. That means we can't break sims that weren't using it before by enabling it all the time. commit 8fd3fe9331ea62972272f0f9f7dfcb7d39a7d2f5 Author: GDB Administrator Date: Wed Nov 18 00:00:08 2015 +0000 Automatic date update in version.in commit a6760b615451518704601cae9327d333fe4bec57 Author: Pedro Alves Date: Tue Nov 17 19:21:21 2015 +0000 [sim/ppc] Fix printf_filtered reference Building a gdb that includes the PPC sim in C++ mode fails to link with: (...)s.o compile-object-load.o compile-object-run.o compile-loc2c.o compile-c-support.o inflow.o init.o \ ../sim/ppc/libsim.a ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a -lz ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -ldl -ldl -lncurses -lm -ldl -lguile-2.0 -lgc -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -lexpat -llzma -lbabeltrace -lbabeltrace-ctf ../libiberty/libiberty.a build-gnulib/import/libgnu.a ../sim/ppc/libsim.a(sim_calls.o): In function `sim_open': /home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:73: undefined reference to `printf_filtered' /home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:73: undefined reference to `printf_filtered' ../sim/ppc/libsim.a(sim_calls.o): In function `sim_close': /home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:93: undefined reference to `printf_filtered' /home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:93: undefined reference to `printf_filtered' ../sim/ppc/libsim.a(sim_calls.o): In function `sim_load': /home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:102: undefined reference to `printf_filtered' ../sim/ppc/libsim.a(sim_calls.o):/home/pedro/gdb/mygit/cxx-convertion/src/sim/ppc/sim_calls.c:102: more undefined references to `printf_filtered' follow collect2: error: ld returned 1 exit status The undefined references come from TRACE macro calls, which expand to calls to printf_filtered. But note that the sim's 'printf_filtered' is actually a #define to 'sim_io_printf_filtered', in sim_callbacks.h : #define printf_filtered sim_io_printf_filtered AFAICS, this is not meant to call gdb's printf_filtered function. The ChangeLog entry that added the printf_filtered macro reads: Tue Jul 30 21:12:24 1996 Andrew Cagney * sim_callbacks.h (sim_io_printf_filtered): Replace printf_filtered with a local simulator specific version. Add #define printf_filtered to simplify updating of existing code. That is, just another incomplete/partial transition. Maybe prior to 1996 this was really meant to call gdb's printf_filtered version. The reference to printf_filtered appears because sim_calls.c, the compilation unit that fails to link, has this at the top: #undef printf_filtered /* blow away the mapping */ presumably so that this further below: void sim_io_printf_filtered(const char *fmt, ...) { (...) callbacks->printf_filtered(callbacks, "%s", message); } works. So those TRACE macros instances in sim_calls.c just happen to work because gdb is linked in, which satisfies the 'printf_filtered' reference, when GDB is built in C mode. When built in C++ mode, the problem is exposed, as GDB's printf_filtered is mangled. The fix here is to make the TRACE macro call sim_io_printf_filtered directly. (Standalone "run" doesn't fail to link simply because the offending routines are not part of its link.) sim/ppc/ChangeLog 2015-11-17 Pedro Alves * debug.h (TRACE, ITRACE, DTRACE, DITRACE, PTRACE): Call sim_io_printf_filtered instead of printf_filtered. commit 1946c4ccca04e374acc040fc30c8b44d2c9ca0a8 Author: Yao Qi Date: Tue Nov 17 15:40:29 2015 +0000 Fix gdb.threads/multiple-step-overs.exp fails on arm Hi, Some tests in gdb.threads/multiple-step-overs.exp fail on arm target when the displaced stepping on, but they pass when displaced stepping is off. FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: step FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: next FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: continue FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: continue to sigusr1_handler when displaced stepping is on, Sending packet: $vCont;c#a8...infrun: infrun_async(1)^M <--- [1] infrun: prepare_to_wait^M infrun: target_wait (-1.0.0, status) =^M infrun: -1.0.0 [Thread 0],^M infrun: status->kind = ignore^M infrun: TARGET_WAITKIND_IGNORE^M infrun: prepare_to_wait^M Packet received: T05swbreak:;0b:f8faffbe;0d:409ee7b6;0f:d0880000;thread:p635.636;core:0;^M infrun: target_wait (-1.0.0, status) =^M infrun: 1589.1590.0 [Thread 1590],^M infrun: status->kind = stopped, signal = GDB_SIGNAL_TRAP^M infrun: TARGET_WAITKIND_STOPPED^M infrun: stop_pc = 0x88d0^M infrun: context switch^M infrun: Switching context from Thread 1591 to Thread 1590^ GDB resumes the whole process (all threads) rather than the specific thread for which GDB wants to step over the breakpoint (as shown in [1]). That is wrong because we resume a single thread and leave others stopped when doing a normal step over where we temporarily remove the breakpoint, single-step, reinsert the breakpoint, is that if we let other threads run in the period while the breakpoint is removed, then these other threads could miss the breakpoint. Since with displaced stepping, we don't ever remove the breakpoint, it should be fine to let other threads run. However, there's another reason that we should not let other threads run: that is the case where some of those threads are also stopped for a breakpoint that itself needs to be stepped over. If we just let those threads run, then they immediately re-trap their breakpoint again. when displaced stepping is off, GDB behaves correctly, only resumes the specific thread (as shown in [2]). Sending packet: $vCont;c:p611.613#b2...infrun: infrun_async(1)^M <-- [2] infrun: prepare_to_wait^M infrun: target_wait (-1.0.0, status) =^M infrun: -1.0.0 [Thread 0],^M infrun: status->kind = ignore^M infrun: TARGET_WAITKIND_IGNORE^M infrun: prepare_to_wait^M Packet received: T05swbreak:;0b:f8faffbe;0d:409e67b6;0f:48880000;thread:p611.613;core:1;^M infrun: target_wait (-1.0.0, status) =^M infrun: 1553.1555.0 [Thread 1555],^M infrun: status->kind = stopped, signal = GDB_SIGNAL_TRAP^M infrun: TARGET_WAITKIND_STOPPED^M infrun: clear_step_over_info^M infrun: stop_pc = 0x8848 The current logic in GDB on deciding the set of threads to resume is: /* Decide the set of threads to ask the target to resume. */ if ((step || thread_has_single_step_breakpoints_set (tp)) && tp->control.trap_expected) { /* We're allowing a thread to run past a breakpoint it has hit, by single-stepping the thread with the breakpoint removed. In which case, we need to single-step only this thread, and keep others stopped, as they can miss this breakpoint if allowed to run. */ resume_ptid = inferior_ptid; } else resume_ptid = internal_resume_ptid (user_step); it doesn't handle the case correctly that GDB continue (instead of single step) the thread for displaced stepping. I also update the comment below to reflect the code. I remove the "with the breakpoint removed" comment, because GDB doesn't remove breakpoints in displaced stepping, so we don't have to worry that other threads may miss the breakpoint. Patch is regression tested on both x86_64-linux and arm-linux. gdb: 2015-11-17 Yao Qi * infrun.c (resume): Check control.trap_expected only when deciding the set of threads to resume. commit b6b806729dd5c4c46981d59f351460b4d7989548 Author: Pedro Alves Date: Tue Nov 17 13:12:23 2015 +0000 Introduce null_block_symbol ... in the spirit of null_ptid, null_frame_id, etc. Fixes two instances of: /root/binutils-gdb/gdb/cp-namespace.c: In function 'block_symbol cp_lookup_nested_symbol(type*, const char*, const block*, domain_enum)': /root/binutils-gdb/gdb/cp-namespace.c:1010: warning: jump to case label /root/binutils-gdb/gdb/cp-namespace.c:1008: error: crosses initialization of 'block_symbol ' Compiler info: Reading specs from /usr/lib/gcc-lib/amd64-unknown-openbsd5.8/4.2.1/specs Target: amd64-unknown-openbsd5.8 Configured with: OpenBSD/amd64 system compiler Thread model: posix gcc version 4.2.1 20070719 gdb/ChangeLog: 2015-11-17 Pedro Alves * cp-namespace.c (cp_lookup_bare_symbol) (cp_search_static_and_baseclasses, cp_lookup_symbol_via_imports) (cp_lookup_symbol_via_all_imports, cp_lookup_nested_symbol_1) (cp_lookup_nested_symbol): Use null_block_symbol. * d-namespace.c (d_lookup_symbol, d_lookup_nested_symbol) (d_lookup_symbol_imports, d_lookup_symbol_module): Use null_block_symbol. * symtab.c (null_block_symbol): New global. * symtab.h (null_block_symbol): Declare. commit eec461d0a8e7ae14c7fe8f0196ab8d0e30285d83 Author: Pedro Alves Date: Tue Nov 17 15:17:46 2015 +0000 [C++] Always use setjmp/longjmp for exceptions We currently throw exceptions from signal handlers (e.g., for Quit/ctrl-c). But throwing C++ exceptions from signal handlers is undefined. (That doesn't restore signal masks, like siglongjmp does, and, because asynchronous signals can arrive at any instruction, we'd have to build _everything_ with -fasync-unwind-tables to make it reliable.) It happens to work on x86_64 GNU/Linux at least, but it's likely broken on other ports. Until we stop throwing from signal handlers, use setjmp/longjmp based exceptions in C++ mode as well. gdb/ChangeLog: 2015-11-17 Pedro Alves * common/common-exceptions.h (GDB_XCPT_SJMP, GDB_XCPT_TRY) (GDB_XCPT_RAW_TRY, GDB_XCPT): Define. Replace __cplusplus checks with GDB_XCPT checks throughout. * common/common-exceptions.c: Replace __cplusplus checks with GDB_XCPT checks throughout. commit 91ee7171d0886731900ab0238ce3795241d877a4 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 MinGW and attribute format(printf/gnu_printf) Cross building gdbserver for --host=x86_64-w64-mingw32 with gcc 4.8.4 20141219 (Fedora MinGW 4.8.4-1.fc20), I get: src/gdb/gdbserver/tracepoint.c: In function 'cmd_qtdp': src/gdb/gdbserver/tracepoint.c:2577:7: error: unknown conversion type character 'l' in format [-Werror=format=] trace_debug ("Defined %stracepoint %d at 0x%s, " ^ src/gdb/gdbserver/tracepoint.c:2577:7: error: unknown conversion type character 'l' in format [-Werror=format=] src/gdb/gdbserver/tracepoint.c:2577:7: error: too many arguments for format [-Werror=format-extra-args] src/gdb/gdbserver/tracepoint.c: In function 'stop_tracing': src/gdb/gdbserver/tracepoint.c:3447:7: error: unknown conversion type character 'l' in format [-Werror=format=] trace_debug ("Stopping the trace because " ^ src/gdb/gdbserver/tracepoint.c:3447:7: error: too many arguments for format [-Werror=format-extra-args] src/gdb/gdbserver/tracepoint.c: In function 'collect_data_at_tracepoint': src/gdb/gdbserver/tracepoint.c:4651:3: error: unknown conversion type character 'l' in format [-Werror=format=] trace_debug ("Making new traceframe for tracepoint %d at 0x%s, hit %" PRIu64, ^ src/gdb/gdbserver/tracepoint.c:4651:3: error: too many arguments for format [-Werror=format-extra-args] src/gdb/gdbserver/tracepoint.c: In function 'collect_data_at_step': src/gdb/gdbserver/tracepoint.c:4687:3: error: unknown conversion type character 'l' in format [-Werror=format=] trace_debug ("Making new step traceframe for " ^ trace_debug is a macro that calls: static void trace_vdebug (const char *, ...) ATTRIBUTE_PRINTF (1, 2); The calls that fail checking use PRIu64, etc., like: trace_debug ("Defined %stracepoint %d at 0x%s, " "enabled %d step %" PRIu64 " pass %" PRIu64, tpoint->type == fast_tracepoint ? "fast " : tpoint->type == static_tracepoint ? "static " : "", tpoint->number, paddress (tpoint->address), tpoint->enabled, tpoint->step_count, tpoint->pass_count); gnulib's stdio/printf module replacements may make %llu, etc. work on mingw, instead of the MS-specific %I64u, and thus may make PRIu64 expand to %llu. However, gcc isn't aware of that, because libiberty's ansidecl.h defines ATTRIBUTE_PRINTF as using attribute format(printf). But, with that format, gcc checks for MS-style format strings (%I64u). In order to have gcc expect gnu/standard formats, we need to use gnu_printf format instead. Which version to use (printf/gnu_printf) depends on msvcrt and mingw version, and so gnulib has a configure-time check, and defines _GL_ATTRIBUTE_FORMAT_PRINTF accordingly. Since _GL_ATTRIBUTE_FORMAT_PRINTF is compatible with ATTRIBUTE_PRINTF, the fix is simply to make use of the former. gdb/ChangeLog: 2015-11-17 Pedro Alves * common/common-defs.h (ATTRIBUTE_PRINTF): Redefine in terms of _GL_ATTRIBUTE_FORMAT_PRINTF after including ansidecl.h. commit e063da67902e2ba03cfc6f7381694f4c6a72ecf4 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++] Define __STDC_CONSTANT_MACROS / __STDC_LIMIT_MACROS for stdint.h With some toolchains, building in C++ mode stumbles on many instances of: In file included from ../../src/gdb/../include/splay-tree.h:43:0, from ../../src/gdb/dcache.c:26: build-gnulib/import/inttypes.h:61:3: error: #error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." ^ make: *** [dcache.o] Error 1 That's: #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX) # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." #endif I see it when cross building for --host=x86_64-w64-mingw32 using Fedora 20's g++ (gcc version 4.8.4 20141219 (Fedora MinGW 4.8.4-1.fc20)), Simon reports seeing this on several cross compilers too. The issue is that on some hosts that predate C++11, when using C++ one must define __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS to make visible the definitions of INTMAX_C / INTMAX_MAX etc. This was a C99 requirement that later C++11 -- the first to define stdint.h -- removed, and then C11 removed it as well. https://www.gnu.org/software/gnulib/manual/html_node/stdint_002eh.html says that gnulib's stdint.h fixes this, but because we run gnulib's configure tests with a C compiler, gnulib determines that mingw's stdint.h is C99-compliant, and doesn't actually replace it. Actually, even though configuring gnulib with a C++ compiler does result in gnulib replacing stdint.h, the resulting replacement is broken for mingw, because it defines uintptr_t incorrectly. I sent a gnulib patch upstream to fix that, here: https://lists.gnu.org/archive/html/bug-gnulib/2015-11/msg00004.html but then even with that, gnulib still stumbles on other configured-with-C++-compiler problems. So for now, until gnulib + C++ is fixed upstream and then gdb's copy is updated, which may take a while, I think it's best to keep configuring gnulib in C, and define __STDC_LIMIT_MACROS/__STDC_CONSTANT_MACROS ourselves, just like C99 intended. gdb/ChangeLog: 2015-11-17 Pedro Alves * common/common-defs.h (__STDC_CONSTANT_MACROS) (__STDC_LIMIT_MACROS): Define before including stdint.h. commit 95824559df96a53ddeccbaacd91617f83c8d52cd Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] Simplify first chance exception handling Building in C++ errors out with: ../../src/gdb/windows-nat.c: In function 'int get_windows_debug_event(target_ops*, int, target_waitstatus*)': ../../src/gdb/windows-nat.c:1503:13: warning: invalid conversion from 'int' to 'gdb_signal' [-fpermissive] last_sig = 1; ^ ../../src/gdb/windows-nat.c:1533:43: warning: invalid conversion from 'int' to 'gdb_signal' [-fpermissive] windows_resume (ops, minus_one_ptid, 0, 1); ^ ../../src/gdb/windows-nat.c:1228:1: warning: initializing argument 4 of 'void windows_resume(target_ops*, ptid_t, int, gdb_signal)' [-fpermissive] windows_resume (struct target_ops *ops, ^ Looking at the code, I can't figure out why we treat first chance exceptions any different here. AFAICS, we set last_sig to 1, and then call windows_resume passing signal==1, so the DBG_EXCEPTION_NOT_HANDLED code path in win32_resume is taken: ~~~ if (sig != GDB_SIGNAL_0) { if (current_event.dwDebugEventCode != EXCEPTION_DEBUG_EVENT) { OUTMSG (("Cannot continue with signal %d here.\n", sig)); } else if (sig == last_sig) continue_status = DBG_EXCEPTION_NOT_HANDLED; else OUTMSG (("Can only continue with recieved signal %d.\n", last_sig)); } ~~~ Fix this by removing this special casing. gdbserver also goes straight to continuing with DBG_EXCEPTION_NOT_HANDLED, AFAICS. gdb/ChangeLog: 2015-11-17 Pedro Alves * windows-nat.c (handle_exception): Return 0 for first chance exceptions. (get_windows_debug_event): Adjust. commit ce7715e2594db00b2f434f62aa264a1061221b72 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] gdbserver: gdb/host signal mixup Building in C++ caught a buglet here: ../../../src/gdb/gdbserver/win32-low.c: In function 'void win32_resume(thread_resume*, size_t)': ../../../src/gdb/gdbserver/win32-low.c:929:11: error: invalid conversion from 'int' to 'gdb_signal' [-fpermissive] sig = resume_info[0].sig; ^ ../../../src/gdb/gdbserver/win32-low.c:934:11: error: invalid conversion from 'int' to 'gdb_signal' [-fpermissive] sig = 0; ^ Signals in the "struct thread_resume" structure are host signals, not gdb signals. The current code happens to work because the only signals that the Windows port supports have the same number as the gdb equivalent (see handle_exception for the win32 exception -> gdb signal mapping). gdb/gdbserver/ChangeLog: 2015-11-17 Pedro Alves * win32-low.c (win32_resume): Use gdb_signal_from_host, GDB_SIGNAL_0 and gdb_signal_to_string. commit 56db1d676cf48a3d90174f212379679d84bc3118 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] Fix windows-nat.c::xlate Fixes: ../../src/gdb/windows-nat.c:287:11: error: invalid conversion from 'int' to 'gdb_signal' [-fpermissive] {-1, -1}}; ^ The signal number here doesn't really matter. gdb/ChangeLog: 2015-11-17 Pedro Alves * windows-nat.c (xslate): Use GDB_SIGNAL_UNKNOWN instead of -1 as signal number for terminator. commit c08790597c54c015ecfcd7ea56ebe30fa1d9e946 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] handle_output_debug_string Fixes: ../../../src/gdb/gdbserver/win32-low.c: In function 'int win32_kill(int)': ../../../src/gdb/gdbserver/win32-low.c:823:46: error: invalid conversion from 'int' to 'target_waitkind' [-fpermissive] struct target_waitstatus our_status = { 0 }; ^ handle_output_debug_string doesn't use the parameter for anything (it's an output parameter in the gdb version), so just remove it. gdb/gdbserver/ChangeLog: 2015-11-17 Pedro Alves * win32-low.c (handle_output_debug_string): Remove parameter. (win32_kill): Remove our_status local and adjust call to handle_output_debug_string. (get_child_debug_event): Adjust call to handle_output_debug_string. commit 69e976f8cc902adc5ee8aec24e4a208f4afd51b3 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] ser-tcp.c casts Fixes a few errors like these: ../../src/gdb/ser-tcp.c: In function 'int net_open(serial*, const char*)': ../../src/gdb/ser-tcp.c:286:73: error: invalid conversion from 'void*' to 'char*' [-fpermissive] res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len); ^ gdb/ChangeLog: 2015-11-17 Pedro Alves * ser-tcp.c (net_open) : Cast getsockopt argument to char * instead of void *. Update comment. (net_read_prim): Cast recv argument to char * instead of void *. (net_write_prim): Cast send argument to char *. Add comment. commit c3de4d92dfd0a1fa8d32a00bbb99de2a4ee0e140 Author: Pedro Alves Date: Tue Nov 17 15:17:45 2015 +0000 [C++/mingw] gdbserver casts A set of obviously-needed C++ casts. gdb/gdbserver/ChangeLog: 2015-11-17 Pedro Alves * win32-i386-low.c (update_debug_registers_callback) (win32_get_current_dr): Add cast. * win32-low.c (thread_rec, delete_thread_info) (continue_one_thread): Add casts. (strwinerror): Cast FormatMessage argument to LPTSTR instead of LPVOID. (win32_create_inferior, suspend_one_thread): Add casts. commit 43499ea30db2a866412c86952c7e1d7b158d806f Author: Pedro Alves Date: Tue Nov 17 15:17:44 2015 +0000 [C++/mingw] windows-nat.c casts Fixes a set of errors like: ../../src/gdb/windows-nat.c: In function 'void _initialize_loadable()': ../../src/gdb/windows-nat.c:2778:30: error: invalid conversion from 'void*' to 'BOOL (*)(DWORD) {aka int (*)(long unsigned int)}' [-fpermissive] DebugActiveProcessStop = (void *) ^ gdb/ChangeLog: 2015-11-17 Pedro Alves * windows-nat.c (AdjustTokenPrivileges_ftype) (DebugActiveProcessStop_ftype, DebugBreakProcess_ftype) (DebugSetProcessKillOnExit_ftype, EnumProcessModules_ftype) (GetCurrentConsoleFont_ftype, GetModuleInformation_ftype) (LookupPrivilegeValueA_ftype, OpenProcessToken_ftype) (GetConsoleFontSize_ftype): New typedefs. (AdjustTokenPrivileges, DebugActiveProcessStop) (DebugBreakProcess, DebugSetProcessKillOnExit, EnumProcessModules) (GetConsoleFontSize, GetCurrentConsoleFont, GetModuleInformation) (LookupPrivilegeValueA, OpenProcessToken, GetConsoleFontSize): Adjust. (GetModuleFileNameEx_ftype): New typedef. (GetModuleFileNameEx): Use it. (_initialize_loadable): Define GPA macro and use it. commit 2986367f8eea0dc5febab9c9fd1cf06b3a4a8fdb Author: Pedro Alves Date: Tue Nov 17 15:17:44 2015 +0000 [C++/mingw] gdb-dlfcn.c casts Fixes: ../../src/gdb/gdb-dlfcn.c: In function 'void* gdb_dlsym(void*, const char*)': ../../src/gdb/gdb-dlfcn.c:105:49: error: invalid conversion from 'void*' to 'HMODULE {aka HINSTANCE__*}' [-fpermissive] return (void *) GetProcAddress (handle, symbol); ^ gdb/ChangeLog: 2015-11-17 Pedro Alves * gdb-dlfcn.c (gdb_dlsym, gdb_dlclose) [__MINGW32__]: Add casts to HMODULE. commit 0ae1c716a162ce43a63c16c37aa8c6caaa484650 Author: Pedro Alves Date: Tue Nov 17 15:17:44 2015 +0000 [C++/mingw] Misc alloca casts gdb/ChangeLog: 2015-11-17 Pedro Alves * exec.c (exec_file_attach, symfile_bfd_open) [__GO32__ || _WIN32 || __CYGWIN__]: Add casts. * utils.c (gdb_filename_fnmatch): Add cast. * windows-nat.c (windows_create_inferior): Add cast. commit cd78b7a16778046c0cfa4818780ea94a9a90c32c Author: Pedro Alves Date: Tue Nov 17 15:17:44 2015 +0000 [C++/mingw] ser-mingw.c casts 2015-11-17 Pedro Alves * ser-mingw.c (CancelIo_ftype): New typedef. (CancelIo): Use CancelIo_ftype. (ser_windows_close, ser_windows_wait_handle) (ser_windows_read_prim, stop_select_thread) (console_select_thread, pipe_select_thread, file_select_thread) (ser_console_wait_handle, ser_console_done_wait_handle) (ser_console_close, cleanup_pipe_state, pipe_windows_close) (pipe_windows_write, pipe_wait_handle, pipe_done_wait_handle) (net_windows_socket_check_pending, net_windows_select_thread) (net_windows_wait_handle, net_windows_done_wait_handle) (net_windows_close): Add casts. (_initialize_ser_windows): Cast to CancelIo_ftype* instead of void*. commit c25b1ab690ddeeba239a044c8d0086867de30f93 Author: Tristan Gingold Date: Tue Nov 17 14:56:04 2015 +0100 Mach-O: add new defines and struct for darwin 14.5 include/mach-o/ * arm64.h: New file. * unwind.h: Add arm64 encodings. * loader.h (bfd_mach_o_cpu_subtype): Add arm64 literals. (BFD_MACH_O_LC_ENCRYPTION_INFO_64, BFD_MACH_O_LC_LINKER_OPTIONS) (BFD_MACH_O_LC_LINKER_OPTIMIZATION_HINT) (BFD_MACH_O_LC_VERSION_MIN_WATCHOS): Define. * external.h (mach_o_encryption_info_64_command_external): (mach_o_linker_option_command_external) (mach_o_dyld_cache_header_external) (mach_o_dyld_cache_mapping_info_external) (mach_o_dyld_cache_image_info_external): New types. commit 0c801b966379f7826fdd793b26ae879c2edf78d1 Author: Simon Marchi Date: Tue Nov 17 13:31:29 2015 +0000 Convert c_string_type to an enum flags type c_string_type contains values meant to be OR'ed together (even though some bits are mutually exclusive), so it makes sense to make it an enum flags type. gdb/ChangeLog: 2015-11-17 Simon Marchi * c-exp.y (exp): Adjust, change enum c_string_type to c_string_type. (parse_string_or_char): Likewise. * c-lang.c (charset_for_string_type): Likewise. (classify_type): Likewise. (c_printchar): Likewise. (c_printstr): Likewise. (evaluate_subexp_c): Likewise. And change cast to enum c_string_type_values. * c-lang.h: Include "common/enum_flags.h". (enum c_string_type): Rename to... (enum c_string_type_values): ...this. (c_string_type): Define new enum flags type. commit 8d297bbf604c8318ffc72d5a7b3db654409c5ed9 Author: Pedro Alves Date: Tue Nov 17 13:31:29 2015 +0000 Type-safe wrapper for enum flags This patch fixes C++ build errors like this: /home/pedro/gdb/mygit/cxx-convertion/src/gdb/linux-tdep.c:1126:35: error: invalid conversion from ‘int’ to ‘filterflags’ [-fpermissive] | COREFILTER_HUGETLB_PRIVATE); ^ This is a case of enums used as bit flags. Unlike "regular" enums, these values are supposed to be or'ed together. However, in C++, the type of "(ENUM1 | ENUM2)" is int, and you then can't assign an int to an enum variable without a cast. That means that this: enum foo_flags flags = 0; if (...) flags |= FOO_FLAG1; if (...) flags |= FOO_FLAG2; ... would have to be written as: enum foo_flags flags = (enum foo_flags) 0; if (...) flags = (enum foo_flags) (flags | FOO_FLAG1); if (...) flags = (enum foo_flags) (flags | FOO_FLAG2); which is ... ugly. Alternatively, we'd have to use an int for the variable's type, which isn't ideal either. This patch instead adds an "enum flags" class. "enum flags" are exactly the enums where the values are bits that are meant to be ORed together. This allows writing code like the below, while with raw enums this would fail to compile without casts to enum type at the assignments to 'f': enum some_flag { flag_val1 = 1 << 1, flag_val2 = 1 << 2, flag_val3 = 1 << 3, flag_val4 = 1 << 4, }; DEF_ENUM_FLAGS_TYPE(enum some_flag, some_flags) some_flags f = flag_val1 | flag_val2; f |= flag_val3; It's also possible to assign literal zero to an enum flags variable (meaning, no flags), dispensing either adding an awkward explicit "no value" value to the enumeration or the cast to assignments from 0. For example: some_flags f = 0; f |= flag_val3 | flag_val4; Note that literal integers other than zero do fail to compile: some_flags f = 1; // error C is still supported -- DEF_ENUM_FLAGS_TYPE is just a typedef in that case. gdb/ChangeLog: 2015-11-17 Pedro Alves * btrace.h: Include common/enum-flags.h. (btrace_insn_flags): Define. (struct btrace_insn) : Change type. (btrace_function_flags): Define. (struct btrace_function) : Change type. (btrace_thread_flags): Define. (struct btrace_thread_info) : Change type. * c-exp.y (token_flags): Rename to ... (token_flag): ... this. (token_flags): Define. (struct token) : Change type. * common/enum-flags.h: New file. * compile/compile-c-types.c (convert_qualified): Change type of 'quals' local. * compile/compile-internal.h: Include "common/enum-flags.h". (gcc_qualifiers_flags): Define. * completer.c (enum reg_completer_targets): Rename to ... (enum reg_completer_target): ... this. (reg_completer_targets): Define. (reg_or_group_completer_1): Change type of 'targets' parameter. * disasm.c (do_mixed_source_and_assembly_deprecated): Change type of 'psl_flags' local. (do_mixed_source_and_assembly): Change type of 'psl_flags' local. * infrun.c: Include "common/enum-flags.h". (enum step_over_what): Rename to ... (enum step_over_what_flag): ... this. (step_over_what): Change type. (start_step_over): Change type of 'step_what' local. (thread_still_needs_step_over): Now returns a step_over_what. Adjust. (keep_going_pass_signal): Change type of 'step_what' local. * linux-tdep.c: Include "common/enum-flags.h". (enum filterflags): Rename to ... (enum filter_flag): ... this. (filter_flags): Define. (dump_mapping_p): Change type of 'filterflags' parameter. (linux_find_memory_regions_full): Change type of 'filterflags' local. (linux_find_memory_regions_full): Pass the address of an unsigned int to sscanf instead of the address of an enum. * record-btrace.c (btrace_print_lines): Change type of local 'psl_flags'. (btrace_call_history): Replace 'flags' parameter with 'int_flags' parameter. Adjust. (record_btrace_call_history, record_btrace_call_history_range) (record_btrace_call_history_from): Rename 'flags' parameter to 'int_flags'. Use record_print_flags. * record.h: Include "common/enum-flags.h". (record_print_flags): Define. * source.c: Include "common/enum-flags.h". (print_source_lines_base, print_source_lines): Change type of flags parameter. * symtab.h: Include "common/enum-flags.h". (enum print_source_lines_flags): Rename to ... (enum print_source_lines_flag): ... this. (print_source_lines_flags): Define. (print_source_lines): Change prototype. commit 9a4073e20b2f1da74cb3b46707e4f6fc4e700950 Author: Pedro Alves Date: Tue Nov 17 13:31:28 2015 +0000 guile disassembly hardcode TARGET_XFER_E_IO Instead of adding a cast at the memory_error call, as needed for C++, and have the reader understand the indirection, make it simple and hardcode the generic memory error at the memory_error call site. gdb/ChangeLog: 2015-11-17 Pedro Alves * guile/scm-disasm.c (gdbscm_disasm_read_memory): Return -1 on error instead of TARGET_XFER_E_IO. (gdbscm_disasm_memory_error): Always pass TARGET_XFER_E_IO to memory_error. commit eee926f28e8745dcd03adcb1113f3e4a7b79b1e5 Author: Christophe Lyon Date: Tue Nov 17 11:35:08 2015 +0000 Fix a problematic message with the STM32L4XX fixup on 32-bit hosts. * elf32-arm.c (elf32_arm_write_section): Force offset output as long (%ld). commit e7286c5668bcc5de0bfe523ac7b7cddabeffebe5 Author: Nick Clifton Date: Mon Nov 16 14:26:07 2015 +0000 Fix the disassembly of conditional instructions will illegal condition selections. * rx-dis.c (condition_names): Replace always and never with invalid, since the always/never conditions can never be legal. commit 340c283058287c3c1307f0a8d44239e802d6c8c5 Author: Dominik Vogt Date: Tue Nov 17 10:56:32 2015 +0100 gdb/testsuite: Fix left shift of negative value. This patch fixes all occurences of left-shifting negative constants in C cod which is undefined by the C standard. gdb/testsuite/ChangeLog: * lib/dwarf.exp (_note): Fix left shift of negative value. * gdb.trace/trace-condition.exp: Likewise. commit 66c6502d7a457057683f56fd6d606fd9b2da0655 Author: Dominik Vogt Date: Tue Nov 17 10:56:32 2015 +0100 gdb: Fix left shift of negative value. This patch fixes all occurences of left-shifting negative constants in C cod which is undefined by the C standard. gdb/ChangeLog: * hppa-tdep.c (hppa_sign_extend, hppa_low_hppa_sign_extend) (prologue_inst_adjust_sp, hppa_frame_cache): Fix left shift of negative value. * dwarf2read.c (read_subrange_type): Likewise. commit 146b80ff180c0490fa920c183d665f536f2a4b0b Author: Mike Frysinger Date: Mon Nov 16 00:12:23 2015 -0800 sim: sim-close: use XCONCAT2 helper No point in open coding this logic when we've got nifty helpers to do it. commit 58a345fe1f0407cb2743da0b295ef28cc7f23c72 Author: Mike Frysinger Date: Sun Nov 15 02:46:03 2015 -0500 gas: microblaze: fix shift overflow This code tries to shift an integer 31 bits which triggers a werror: gas/config/tc-microblaze.c:742:21: error: integer overflow in expression [-Werror=overflow] e->X_add_number |= -(1 << 31); Cast the 1 to offsetT to match X_add_number to fix things. commit 7ffdbc4f3fe7aaa8862a9189bc625cbbb05ff9a4 Author: GDB Administrator Date: Tue Nov 17 00:00:09 2015 +0000 Automatic date update in version.in commit db3516bbfabe710a0292f642cb83b95ea24c323a Author: Yao Qi Date: Mon Nov 16 15:37:03 2015 +0000 Fix stack buffer overflow in aarch64_extract_return_value Hi, I build GDB with -fsanitize=address, and run testsuite. In gdb.base/callfuncs.exp, I see the following error, p/c fun1() =================================================================^M ==9601==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffee858530 at pc 0x6df079 bp 0x7fffee8583a0 sp 0x7fffee858398 WRITE of size 16 at 0x7fffee858530 thread T0 #0 0x6df078 in regcache_raw_read /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:673 #1 0x6dfe1e in regcache_cooked_read /home/yao/SourceCode/gnu/gdb/git/gdb/regcache.c:751 #2 0x4696a3 in aarch64_extract_return_value /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1708 #3 0x46ae57 in aarch64_return_value /home/yao/SourceCode/gnu/gdb/git/gdb/aarch64-tdep.c:1918 We are extracting return value from V registers (128 bit), but only allocate X_REGISTER_SIZE-byte array, which isn't sufficient. This patch changes the array to V_REGISTER_SIZE. gdb: 2015-11-16 Yao Qi * aarch64-tdep.c (aarch64_extract_return_value): Change array buf's length to V_REGISTER_SIZE. commit 8e80f9d1d5cc0884ea1e677f796c69c36a5893cd Author: Yao Qi Date: Mon Nov 16 14:50:29 2015 +0000 Pass value * instead of bfd_byte * to pass_* functions in aarch64-tdep.c This patch changes the last argument of functions pass_in_x_or_stack, pass_in_v_or_stack, pass_on_stack, and pass_in_x to type value *. gdb: 2015-11-16 Yao Qi * aarch64-tdep.c (pass_in_x_or_stack): Change argument type from bfd_byte * to value *. Caller updated. (pass_in_x): Likewise. (pass_in_v_or_stack): Likewise. (pass_on_stack): Likewise. commit 0d1993c072e5617b69204aef641acd2385b080ec Author: Yao Qi Date: Mon Nov 16 14:47:50 2015 +0000 Use value_contents instead of value_contents_writeable Both aarch64_push_dummy_call and bfin_push_dummy_call only use args[i] contents but then never write to them, so that we can use value_contents instead. gdb: 2015-11-16 Yao Qi * aarch64-tdep.c (aarch64_push_dummy_call): Call value_contents instead of value_contents_writeable. * bfin-tdep.c (bfin_push_dummy_call): Likewise. commit ef9bd0b8d7d0a70f9fa9b239a03099c57eb5ceea Author: Yao Qi Date: Mon Nov 16 14:44:19 2015 +0000 Fix bug in arm_push_dummy_call by -fsanitize=address When I build GDB with -fsanitize=address, and run testsuite, some gdb.base/*.exp test triggers the ERROR below, ================================================================= ==7646==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000242810 at pc 0x487844 bp 0x7fffe32e84e0 sp 0x7fffe32e84d8 READ of size 4 at 0x603000242810 thread T0 #0 0x487843 in push_stack_item /home/yao/SourceCode/gnu/gdb/git/gdb/arm-tdep.c:3405 #1 0x48998a in arm_push_dummy_call /home/yao/SourceCode/gnu/gdb/git/gdb/arm-tdep.c:3960 In that path, GDB passes value on stack, in an INT_REGISTER_SIZE slot, but the value contents' length can be less than INT_REGISTER_SIZE, so the contents will be accessed out of the bound. This patch adds an array buf[INT_REGISTER_SIZE], and copy val to buf before writing them to stack. gdb: 2015-11-16 Yao Qi * arm-tdep.c (arm_push_dummy_call): New array buf. Store regval to buf. Pass buf instead of val to push_stack_item. commit 3940d2c36abbf7c4701e312bd76f6bb119898c8a Author: Nick Clifton Date: Mon Nov 16 14:21:28 2015 +0000 Fixes an invalid warning about memory region overflow on the ARM. PR ld/19106 * emultempl/armelf.em (_set_symbols): New function. Enables relaxation for non-relocatable links. (LDEMUL_SET_SYMBOLS): Define. commit 797eee4264d1b504aabcbcabb6de2f1108441261 Author: Mike Frysinger Date: Sun Nov 15 20:06:42 2015 -0800 sim: sim-stop/sim-reason/sim-reg: move to common obj list Now that all arches (for the most part) have moved over, move sim-stop.o, sim-reason.o, and sim-reg.o to the common object list and out of all the arch ports. commit 9db36cf86d58f93def38a94ed05e1854beda3b20 Author: Mike Frysinger Date: Sun Nov 15 03:41:26 2015 -0800 sim: cr16: drop global callback state Now that we have access to the sim state in all the right places, use existing sim helpers in place of cr16_callback directly. commit 0ef7f98177f610dbb503d87f405c54e3722d8b25 Author: Mike Frysinger Date: Sun Nov 15 03:07:06 2015 -0800 sim: cr16: convert to common sim engine logic Now that we have access to the sim state everywhere, we can convert to the common engine logic for overall processing. This frees us up from tracking exception state ourselves. commit 761e171ad834a0d0adcd8712fde85ab1325afc3a Author: Mike Frysinger Date: Sun Nov 15 15:57:10 2015 -0800 sim: cr16: convert to common sim memory modules The cr16 port has a lot of translation/offset logic baked into it, but it all looks like copy & paste from the d10v port rather than something the cr16 port wants. commit 267b3b8e068f5043419991175bdbc56eb7a575be Author: Mike Frysinger Date: Sun Nov 15 02:57:42 2015 -0800 sim: cr16: push down sd/cpu vars By itself, this commit doesn't really change anything. It lays the groundwork for using the cpu state in follow up commits, both for engine state and for cpu state. Splitting things up this way so it is easier to see how things have changed. commit 137fbfd2818b5d1443f5f628e28b55b4e23037d1 Author: Mike Frysinger Date: Sun Nov 15 12:25:29 2015 -0800 sim: cr16: delete unused memory helpers These aren't used anywhere and are just leftover from the d10v port. Delete them so follow up commits are easier to follow. commit c2270cd8a662cb8046bcde090db60a933b69d0ed Author: Mike Frysinger Date: Sun Nov 15 12:22:30 2015 -0800 sim: cr16: switch to common sim-reg This is mostly to get us off the weird cr16 specific memory functions, but it's also a good clean up to move to the common core. commit 7ea08e8cb74bc21fcfe5befc0f3c8de3762cb0d6 Author: Mike Frysinger Date: Sun Nov 15 03:47:10 2015 -0800 sim: cr16/d10v: drop redundant call to sim_create_inferior With the conversion to the nrun frontend, this call should no longer be necessary. It also actively crashes when trying to use the sd state. commit e9b0081f986716eca364580fdfeb1034c5da76c9 Author: Mike Frysinger Date: Sun Nov 15 03:41:26 2015 -0800 sim: d10v: drop global callback state Now that we have access to the sim state in all the right places, use existing sim helpers in place of d10v_callback directly. commit aadc1740c74a65b916b7d9bb6efe588352326871 Author: Mike Frysinger Date: Sun Nov 15 03:07:06 2015 -0800 sim: d10v: convert to common sim engine logic Now that we have access to the sim state everywhere, we can convert to the common engine logic for overall processing. This frees us up from tracking exception state ourselves. commit 679546067e1f3e1617bff22d03e483fb2beeed24 Author: Mike Frysinger Date: Sun Nov 15 02:57:42 2015 -0800 sim: d10v: push down sd/cpu vars By itself, this commit doesn't really change anything. It lays the groundwork for using the cpu state in follow up commits, both for engine state and for cpu state. Splitting things up this way so it is easier to see how things have changed. commit a572cc6fd43e90e28e828c6bdaa344c1ef6a75ab Author: GDB Administrator Date: Mon Nov 16 00:00:08 2015 +0000 Automatic date update in version.in commit 8ae8f9c382591537963adf2398cb508c4cb3ac54 Author: Mike Frysinger Date: Sun Nov 15 01:04:31 2015 -0800 sim: h8300: convert to common sim_{reason,stop} This ends up being pretty easy as the h8300 port already supports much of the common engine core. commit 7eed1055b89ad3207151734d34849dd8631d2da2 Author: Mike Frysinger Date: Sun Nov 15 00:42:33 2015 -0800 sim: mcore: pull cpu state out of global scope This avoids using global variables to hold the cpu state so we can better integrate with the sim common code. There's also a minor fix here where we move the pc register back into the state that is accessible by the asints array. When it was pulled out previously, the reg store/fetch functions broke, but no one really noticed as the mcore gdb port was dropped a while back. commit 9ef4651c4930423f9678832f793343059d4ef9ad Author: Mike Frysinger Date: Sun Nov 15 00:17:02 2015 -0800 sim: mcore: switch to common sim-reg This is not entirely useful as mcore doesn't (yet) store its register state in the cpu state, but it does allow for switching to the common code for these functions. commit 5809534fe153fbbf925424716eb2e295f2217c65 Author: Mike Frysinger Date: Sun Nov 15 00:13:29 2015 -0800 sim: mcore: add a fail testcase commit 02962cd9eae61acef03aea44afb7350bfa30bae7 Author: Mike Frysinger Date: Sun Nov 15 00:09:32 2015 -0800 sim: mcore: convert to common reason/resume logic Switch over to the common event loop logic so we don't have to maintain the exception/exit logic ourselves. commit d2dfd2424284bedaade2a203a51ea82364270a92 Author: Mike Frysinger Date: Sun Nov 15 02:43:11 2015 -0500 sim: clean up redundant objects Some of the target makefiles listed objects that were already pulled in via SIM_NEW_COMMON_OBJS. Clean those up. commit 6e4f085c7f459e0777a71bcb61ed3aa8257fa386 Author: Mike Frysinger Date: Sun Mar 22 23:10:09 2015 -0400 sim: sim-close: unify sim_close logic Other than the nice advantage of all sims having to declare one fewer common function, this also fixes leakage in pretty much every sim. Many were not freeing any resources, and a few were inconsistent as to the ones they did. Now we have a single module that takes care of all the logic for us. Most of the non-cgen based ones could be deleted outright. The cgen ones required adding a callback to the arch-specific cleanup func. The few that still have close callbacks are to manage their internal state. We do not convert erc32, m32c, ppc, rl78, or rx as they do not use the common sim core. commit 1bd1b714219e1c8324cc2fb5feb4496e80b6adfd Author: Mike Frysinger Date: Mon Nov 9 01:16:01 2015 -0500 sim: m32c: add a basic testsuite commit 9bea4d16a6f009585841c1134a024d10a61b8d56 Author: Mike Frysinger Date: Mon Nov 9 01:14:57 2015 -0500 sim: testsuite: support basic vars in flags Sometimes in tests, we need supplemental files like linker scripts or board helper files. There's no way to set those flags in the tests currently and relative paths don't work (breaks out of tree builds). Update the main option parser to replace some strings on the fly. Now tests can do things like: Long term we'll want to switch the framework to use the dejagnu helpers like dg-xxx that gcc & gdb utilize. But that'll require more rework. commit c4d4ed40834de8e2b493f83cf15291f2d2e38c6f Author: Mike Frysinger Date: Mon Nov 9 23:12:52 2015 -0800 sim: drop extern C linkage from most sim interface headers Since these headers merely have enum's, drop the extern C linkage markings. Helps to reduce the copy & paste spam. commit d8bd95efd8119e06e6753c841f1bbc54bb09d5de Author: Tristan Gingold Date: Sat Nov 14 16:24:39 2015 -0800 Bump version to 2.26.51 bfd/ 2015-11-13 Tristan Gingold * version.m4: Bump version to 2.26.51 * configure: Regenerate. binutils/ 2015-11-13 Tristan Gingold * configure: Regenerate. gas/ 2015-11-13 Tristan Gingold * configure: Regenerate. gprof/ 2015-11-13 Tristan Gingold * configure: Regenerate. ld/ 2015-11-13 Tristan Gingold * configure: Regenerate. opcodes/ 2015-11-13 Tristan Gingold * configure: Regenerate. commit 79bffa3b90933d33390cb28b810bea5980a5e42a Author: GDB Administrator Date: Sun Nov 15 00:00:08 2015 +0000 Automatic date update in version.in commit db1ff0288b923bc17d2408a6172a016b7ba0a6a4 Author: Cary Coutant Date: Sat Nov 14 11:04:01 2015 -0800 Fix problem where bss symbols for copy relocations are marked local. gold/ PR gold/19244 PR gold/18548 * symtab.cc (Symbol_table::do_define_in_output_data): Check for forced local symbols only for predefined symbols. commit 895d4275baf1739a1a02d6c5c918be42b9102702 Author: GDB Administrator Date: Sat Nov 14 00:00:08 2015 +0000 Automatic date update in version.in commit c4312b1985f4f3c567546f82e7f26f9b8e914b6f Author: Yao Qi Date: Fri Nov 13 15:11:58 2015 +0000 PR 19051: support of inferior call with gnu vector support on ARM This patch teaches GDB to support gnu vector in inferior calls. As a result, fails in gdb.base/gnu_vector.exp are fixed. The calling convention of gnu vector isn't documented in the AAPCS, because it is the GCC extension. I checked the gcc/config/arm/arm.c, understand how GCC pass arguments and return values, and do the same in GDB side. The patch is tested with both hard float and soft float on arm-linux. gdb: 2015-11-13 Yao Qi PR tdep/19051 * arm-tdep.c (arm_type_align): Return the right alignment value for vector. (arm_vfp_cprc_sub_candidate): Return true for 64-bit and 128-bit vector types. (arm_return_in_memory): Handel vector type. commit b13c8ab2b93de7fe1adb1ecd307d9078ce299c6e Author: Yao Qi Date: Fri Nov 13 15:11:58 2015 +0000 Refactor arm_return_in_memory Current arm_return_in_memory isn't friendly to adding new things in it. Moreover, a lot of stuff are about APCS, which is not used nowadays (AAPCS is being used). This patch is to refactor arm_return_in_memory, so that some code can be shared for both APCS and AAPCS at the beginning of arm_return_in_memory, and then each ABI (APCS and AAPCS) are processed separately. gdb: 2015-11-13 Yao Qi * arm-tdep.c (arm_return_in_memory): Rewrite it. (arm_return_value): Call arm_return_in_memory for TYPE_CODE_COMPLEX. commit c1862d0f60ee6050e3d4add7bbb1a595b1758473 Author: Yao Qi Date: Fri Nov 13 15:06:38 2015 +0000 Remove d10v from testsuite This patch removes the leftover of the d10v stuff in the testsuite directory. The d10v port was removed in GDB 6.7, but I happen to see that there are still some leftovers about d10v in testsuite. gdb/testsuite: 2015-11-13 Yao Qi * gdb.base/call-sc.exp (test_scalar_returns): Remove the comments about d10v. (test_scalar_returns): Likewise. * gdb.base/d10v.ld: Remove. * gdb.base/overlays.exp: Remove the target triplet checking for d10v-*-*. * gdb.base/structs.exp (test_struct_returns): Remove the comments about d10v. (test_struct_calls): Likewise. commit 77ae9c1933b5007fdcbd222b0eaa2d775ea6ae43 Author: Yao Qi Date: Fri Nov 13 15:03:25 2015 +0000 gdb.base/gnu_vector.exp: Don't test output from the inferior gdb.base/gnu_vector.c printf the vector and gdb.base/gnu_vector.exp expects the output by gdb_test_multiple. Nowadays, the test doesn't expect the output from inferior_spawn_id, which is wrong. Even we change the test to expect from inferior_spawn_id for the inferior output, it is still possible the inferior exit before tcl/expect gets the inferior output. We see this fail on both s390x-linux and ppc-linux on buildbot, FAIL: gdb.base/gnu_vector.exp: verify vector return value (the program exited) https://sourceware.org/ml/gdb-testers/2015-q4/msg04922.html https://sourceware.org/ml/gdb-testers/2015-q4/msg04952.html In order to address these two shortcomings above in gnu_vector.exp, this patch rewrites the test a little bit. Get rid of checking the inferior output, and instead checking them by printing them. In this way, the test can also be run on the target without inferior io (gdb,noinferiorio is set in the board file). gdb/testsuite: 2015-11-13 Yao Qi * gdb.base/gnu_vector.exp: Check the return value by "p res". * gdb.base/gnu_vector.c: Don't include stdio.h. (main): Don't print res and call add_some_intvecs. commit 7feec526b7efc8778a5ff536332d4b2a8437dcbb Author: Tristan Gingold Date: Fri Nov 13 09:30:08 2015 +0100 Add markers for release 2.26 binutils/ 2015-11-13 Tristan Gingold * NEWS: Add marker for 2.26. gas/ 2015-11-13 Tristan Gingold * NEWS: Add marker for 2.26. ld/ 2015-11-13 Tristan Gingold * NEWS: Add marker for 2.26. commit 3319bd54ab4e8f70d02634edfb33e0bf2c04d007 Author: GDB Administrator Date: Fri Nov 13 00:00:07 2015 +0000 Automatic date update in version.in commit 06d2788cefa3dc24ce0e92e795cf3987a6c630ed Author: Marcus Shawcroft Date: Thu Nov 12 15:15:28 2015 +0000 Revert "[LD][AARCH64]Add TLSIE relaxation support under large memory model." This reverts commit 3ebe65c0ff9f8f76c9971b1cc078273298f0c693. Reverted due to PR19188 commit 9c352f1c234efabd0e60a0927ae3f25009e4932b Author: James Greenhalgh Date: Thu Nov 12 12:04:22 2015 +0000 [AArch64] Add support for Cortex-A35 This patch adds support to the AArch64 back-end for the Cortex-A35 processor, as recently announced by ARM. The ARM Cortex-A35 provides full support for the ARMv8-A architecture, including the CRC extension, with optional Advanced-SIMD and Floating-Point support. We therefore set feature flags for this CPU to AARCH64_ARCH_V8 and AARCH64_FEATURE_CRC, in the same fashion as Cortex-A53 and Cortex-A57. Tested in a cross environment for AArch64 with no issues. commit 8915a9b7e86881dd3f658e851983b532c64e3b5c Author: Ramana Radhakrishnan Date: Thu Nov 12 11:13:58 2015 +0000 Fix dates in Changelog for previous commit. 582cfe03cb7496371bc6d83af49b6324d0c36887 commit 43cdc0a8fbb1bc48f6d95183a6840a76aca41a8f Author: Ramana Radhakrishnan Date: Thu Nov 12 11:12:53 2015 +0000 Add support for Cortex-A35 2015-11-12 James Greenhalgh * config/tc-arm.c (arm_cpus): Likewise. * doc/c-arm.texi (-mcpu=): Likewise. commit 582cfe03cb7496371bc6d83af49b6324d0c36887 Author: Ramana Radhakrishnan Date: Thu Nov 12 10:50:22 2015 +0000 Fix PR gas/19217 2015-11-11 Matthew Wahab PR gas/19217 * config/tc-arm.c (move_or_literal_pool): Remove redundant feature check. Fix some code formatting. Drop use of MOVT. Add some comments. 2015-11-11 Matthew Wahab PR gas/19217 * gas/arm/thumb2_ldr_immediate_armv6t2.d: Update expected output. commit df3b6708fe2384913e66d90340b619190cc4530e Author: Yao Qi Date: Thu Nov 12 09:14:20 2015 +0000 Use gdb_byte * instead of void * in push_stack_item gdb: 2015-11-12 Yao Qi * arm-tdep.c (push_stack_item): Change contents type to const gdb_byte *. commit a680de9a980e9d268846e8605af14ba1e7f3a39b Author: Peter Bergner Date: Wed Nov 11 19:52:52 2015 -0600 Add assembler, disassembler and linker support for power9. include/opcode/ * ppc.h (PPC_OPCODE_POWER9): New define. (PPC_OPCODE_VSX3): Likewise. opcodes/ * ppc-dis.c (ppc_opts): Add "power9" and "pwr9" entries. Add PPC_OPCODE_VSX3 to the vsx entry. (powerpc_init_dialect): Set default dialect to power9. * ppc-opc.c (insert_dcmxs, extract_dcmxs, insert_dxd, extract_dxd, insert_dxdn, extract_dxdn, insert_l0, extract_l0, insert_l1, extract_l1 insert_xtq6, extract_xtq6): New static functions. (insert_esync): Test for illegal L operand value. (DCMX, DCMXS, DXD, NDXD, L0, L1, RC, FC, UIM6, X_R, RIC, PRS, XSQ6, XTQ6, LRAND, IMM8, DQX, DQX_MASK, DX, DX_MASK, VXVAPS_MASK, VXVA,XVA, XX2VA, XVARC, XBF_MASK, XX2UIM4_MASK, XX2BFD_MASK, XX2DCMXS_MASK, XVA_MASK, XRLA_MASK, XBFRARB_MASK, XLRAND_MASK, POWER9, PPCVEC3, PPCVSX3): New defines. (powerpc_opcodes) : Use XBF_MASK. : Use XBFRARB_MASK. : New instructions. : Disable on POWER9. : Add additional operands. include/elf/ * ppc.h (R_PPC_REL16DX_HA): New reloction. * ppc64.h (R_PPC64_REL16DX_HA): Likewise. bfd/ * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_REL16DX_HA. (ppc_elf_reloc_type_lookup): Handle R_PPC_REL16DX_HA. (ppc_elf_addr16_ha_reloc): Likewise. (ppc_elf_check_relocs): Likewise. (ppc_elf_relocate_section): Likewise. (is_insn_dq_form): Handle lxv and stxv instructions. * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_REL16DX_HA. (ppc64_elf_reloc_type_lookup): Handle R_PPC64_REL16DX_HA. (ppc64_elf_ha_reloc): Likewise. (ppc64_elf_check_relocs): Likewise. (ppc64_elf_relocate_section): Likewise. * bfd-in2.h: Regenerate. * libbfd.h: Likewise. * reloc.c (BFD_RELOC_PPC_REL16DX_HA): New. elfcpp/ * powerpc.h (R_POWERPC_REL16DX_HA): Define. gas/ * doc/as.texinfo (Target PowerPC): Document -mpower9 and -mpwr9. * doc/c-ppc.texi (PowerPC-Opts): Likewise. * config/tc-ppc.c (md_show_usage): Likewise. (md_assemble): Handle BFD_RELOC_PPC_REL16DX_HA. (md_apply_fix): Likewise. (ppc_handle_align): Handle power9's group ending nop. gas/testsuite/ * gas/ppc/altivec3.s: New test. * gas/ppc/altivec3.d: Likewise. * gas/ppc/vsx3.s: Likewise. * gas/ppc/vsx3.d: Likewise. * gas/ppc/power9.s: Likewise. * gas/ppc/power9.d: Likewise. * gas/ppc/ppc.exp: Run them. * gas/ppc/power8.s : Add new tests. * gas/ppc/power8.d: Likewise. * gas/ppc/vsx.s: : Rename invalid mnemonics ... : ...to this. * gas/ppc/vsx.d: Likewise. gold/ * gold/powerpc.cc (Powerpc_relocate_functions::addr16_dq): New function. (Powerpc_relocate_functions::addr16dx_ha): Likewise. (Target_powerpc::Scan::local): Handle R_POWERPC_REL16DX_HA. (Target_powerpc::Scan::global): Likewise. (Target_powerpc::Relocate::relocate): Likewise. ld/testsuite/ * ld-powerpc/addpcis.d: New test. * ld-powerpc/addpcis.s: New test. * ld-powerpc/powerpc.exp: Run it. commit 3604307d2f39ddd0b7f640148338b7ecc0ea4b45 Author: GDB Administrator Date: Thu Nov 12 00:00:09 2015 +0000 Automatic date update in version.in commit 430e004ef7ecb3f75fc3c6642c9fdfb1d85a3694 Author: Marcin Kościelnicki Date: Tue Nov 10 12:12:00 2015 +0100 gdb/testsuite/gdb.trace: Deduplicate set_point assembly. The assembly code for emitting the proper tracepointable instruction was duplicated in many places. Keep it in one place, to reduce work needed for new targets. gdb/testsuite/ChangeLog: * gdb.trace/change-loc.h: include "trace-common.h", remove SYMBOL macro. (func5): Removed. (func4): Use FAST_TRACEPOINT_LABEL. * gdb.trace/ftrace-lock.c: include "trace-common.h", remove SYMBOL macro. (func): Removed. (thread_function): Use FAST_TRACEPOINT_LABEL. * gdb.trace/ftrace.c: include "trace-common.h", remove SYMBOL macro. (func): Remove. (marker): Use FAST_TRACEPOINT_LABEL. * gdb.trace/pendshr1.c: include "trace-common.h", remove SYMBOL macro. (pendfunc1): Remove. (pendfunc): Use FAST_TRACEPOINT_LABEL. * gdb.trace/pendshr2.c: include "trace-common.h", remove SYMBOL macro. (foo): Remove. (pendfunc2): Use FAST_TRACEPOINT_LABEL. * gdb.trace/trace-break.c: include "trace-common.h", remove SYMBOL macro. (func): Remove. (marker): Use FAST_TRACEPOINT_LABEL. * gdb.trace/trace-common.h: New header. * gdb.trace/trace-condition.c: include "trace-common.h", remove SYMBOL macro. (func): Remove. (marker): Use FAST_TRACEPOINT_LABEL. * gdb.trace/trace-mt.c: include "trace-common.h", remove SYMBOL macro. (func): Remove. (thread_function): Use FAST_TRACEPOINT_LABEL. commit 4397c913d5640ba61316d3e631d544cf768b5a36 Author: Simon Marchi Date: Wed Nov 11 15:16:05 2015 -0500 Replace long int * cast with PTRACE_TYPE_RET * These casts uses the typedef target type (long int *) instead of the typedef name. This was a little mistake in one of the big C++ cast patches. gdb/ChangeLog: * inf-ptrace.c (inf_ptrace_fetch_register): Change long int * cast to PTRACE_TYPE_RET *. (inf_ptrace_store_register): Likewise. commit 5f515954d10b69ba6c390e7b8bcfdba2ced7850b Author: Andrew Burgess Date: Mon Nov 9 20:27:55 2015 +0000 gdb: Make use of 'add_info' to create info sub-commands. Switch to using 'add_info' function for creating basic info sub-commands. gdb/ChangeLog: * avr-tdep.c (_initialize_avr_tdep): Switch to 'add_info' for creating info sub-commands. * gnu-nat.c (add_task_commands): Likewise. * macrocmd.c (_initialize_macrocmd): Likewise. commit f3575e08379b36ab3a286c8fb5838a2d54424073 Author: Andrew Burgess Date: Sat Nov 7 11:14:20 2015 +0000 gdb: Use class_info when creating info commands. The 'add_info' function is used for creating info commands, these commands should be created as 'class_info' rather than 'no_class'. gdb/ChangeLog: * cli/cli-decode.c (add_info): Switch to class_info. commit be20f084f1dfbbd5f08d220469128ec18727941d Author: GDB Administrator Date: Wed Nov 11 00:00:08 2015 +0000 Automatic date update in version.in commit 6e7675a70f5a375159f94354fb6f38519303a73d Author: Marcin Kościelnicki Date: Tue Nov 10 09:52:29 2015 +0100 gdb/testsuite/gdb.trace: Deduplicate pcreg/spreg/fpreg. These variables were used in many gdb.trace tests. Keep them in one place, to reduce work needed for new targets. gdb/testsuite/ChangeLog: * gdb.trace/backtrace.exp: Use global fpreg/spreg definition, add $ in front. * gdb.trace/change-loc.exp: Use global pcreg definition. * gdb.trace/collection.exp: Use global pcreg/fpreg/spreg definition. * gdb.trace/entry-values.exp: Use global spreg definition, add $ in front. * gdb.trace/mi-trace-frame-collected.exp: Use global pcreg definition. * gdb.trace/pending.exp: Likewise. * gdb.trace/report.exp: Use global pcreg/fpreg/spreg definition. * gdb.trace/trace-break.exp: Likewise. * gdb.trace/trace-condition.exp: Use global pcreg definition, add $ in front. * gdb.trace/unavailable.exp: Use global pcreg/fpreg/spreg definition. * gdb.trace/while-dyn.exp: Use global fpreg definition, add $ in front. * lib/trace-support.exp: Define fpreg, spreg, pcreg variables. commit 6b21c2bf57ecb18d7df949391ffc178f00b85630 Author: Jim Wilson Date: Tue Nov 10 09:19:45 2015 -0800 Add Qualcomm qdf24xx support. gas/ * config/tc-aarch64.c (aarch64_cpus): Add qdf24xx. * config/tc-arm.c (arm_cpus): Likewise. * doc/c-arm.texi, doc/c-aarch64.texi: Likewise. commit 634a9f67d95161fa0182fc38601832c98bf62ffa Author: Nick Clifton Date: Tue Nov 10 16:07:17 2015 +0000 Update the RX simulator to handle the latest opcode types. * rx.c (id_names): Add nop4, nop5, nop6 and nop7. (decode_opcode): Likewise. (get_op): Handle RX_Operand_Zero_Indirect. Handle RX_Bad_Size and RX_MAX_SIZE. (put_op): Likewise. (N_MAP): Increase to 90. commit 18954b29a1b49c9ffbfef925fdac4a23194ef82d Author: H.J. Lu Date: Tue Nov 10 04:26:55 2015 -0800 Handle x86 VTINHERIT/VTENTRY relocs when deleting relocations * elf32-i386.c (elf_i386_relocate_section): Handle VTINHERIT and VTENTRY relocations when deleting relocations. * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. commit 2d5da47320d6d22a58b793801999ba33c43c758f Author: H.J. Lu Date: Mon Nov 9 23:49:02 2015 -0800 Properly move kept relocations when deleting relocations * elf32-i386.c (elf_i386_relocate_section): Properly move kept relocations when deleting relocations. * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. commit 60f2e42e00083accdcdbdda399534082bf309d1e Author: H.J. Lu Date: Mon Nov 9 23:49:02 2015 -0800 Fix performance regression on x86 with ld -r Similar fix to "commit c316a17c40e44e8798b34ff84130904f2e7a53de". * elf32-i386.c (elf_i386_relocate_section): Use read and write pointers to reloc array, rather than memmove when deleting a reloc. Don't use RELOC_AGAINST_DISCARDED_SECTION. Adjust reloc counts at end of loop. * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise. commit 6637a4265e6144f5a9ad29e9fa08aba4bd959cb9 Author: Mike Frysinger Date: Mon Nov 9 23:04:53 2015 -0800 sim: cr16/d10v: localize translation funcs These functions are only used in the interp module, so there's no point in exporting them and declaring them in the external sim interface. commit c316a17c40e44e8798b34ff84130904f2e7a53de Author: Alan Modra Date: Mon Nov 9 15:03:29 2015 +1030 Fix performance regression due to ld -r memmove The idea here is that instead of using memmove to shuffle the relocs array every time one is deleted, to add a "wrel" pointer and copy from rel[0] to wrel[0] as we go. * elf64-ppc.c (ppc64_elf_relocate_section): Use read and write pointers to reloc array, rather than memmove when deleting a reloc. Don't use RELOC_AGAINST_DISCARDED_SECTION. Adjust reloc counts at end of loop. * elf32-ppc.c (ppc_elf_relocate_section): Likewise. commit 1057567ea711d80f9937653179b06507827d5819 Author: Mike Frysinger Date: Mon Nov 9 00:13:08 2015 -0500 sim: m32c: move test code to testsuite Various target code belongs in the testsuite/ subdir, so move the m32c code to match all the other targets. commit 9b4888d5161e540f2f60f1c537cc66577094eac1 Author: Mike Frysinger Date: Mon Nov 9 00:14:26 2015 -0500 sim: m32c: drop redundant dependency info commit 5697b730e2da25240068ad935b9074bac2d15b60 Author: Mike Frysinger Date: Sun Nov 8 21:41:53 2015 -0500 sim: h8300: drop unused littleendian variable commit 87d094f308ab080932cb6f90399937fcf6f8c9b6 Author: GDB Administrator Date: Tue Nov 10 00:00:09 2015 +0000 Automatic date update in version.in commit cc203475bdf401cbceaa003ed425884d686c18e2 Author: Vladimir Radosavljevic Date: Tue Nov 3 16:18:09 2015 +0000 Recognize .pdr debug sections. gold/ * layout.h (Layout::is_debug_info_section): Recognize .pdr debug sections. commit 859d79870d7975ef8d98ea728ee52a264efe7d1e Author: Cary Coutant Date: Mon Nov 9 08:43:46 2015 -0800 Remove unnecessary target dependencies on relocation format. 2015-11-09 Cary Coutant Vladimir Radosavljevic gold/ * copy-relocs.h (Copy_relocs::copy_reloc): Replace reloc parameter with type, offset, addend. (Copy_relocs::save): Likewise. * copy-relocs.cc (Copy_relocs::copy_reloc): Likewise. (Copy_relocs::save): Likewise. * aarch64.cc (Target_aarch64::copy_reloc): Pass r_type, r_offset, and r_addend to Copy_relocs::copy_reloc. * arm.cc (Target_arm::copy_reloc): Likewise. * i386.cc (Target_i386::copy_reloc): Likewise. * mips.cc (Target_mips::copy_reloc): Likewise. * powerpc.cc (Target_powerpc::copy_reloc): Likewise. * s390.cc (Target_s390::copy_reloc): Likewise. * sparc.cc (Target_sparc::copy_reloc): Likewise. * tilegx.cc (Target_tilegx::copy_reloc): Likewise. * x86_64.cc (Target_x86_64::copy_reloc): Likewise. commit dddc0e16ef5d77e4f97d02ee0e2d4234c97dae0e Author: Joel Brobecker Date: Mon Nov 9 09:58:16 2015 -0800 [Ada] GDB crash during "finish" of function with out parameters Consider a function with the following signature... function F (R : out Rec_Type) return Enum_Type; ... where Rec_Type is a simple record: type Rec_Type is record Cur : Integer; end record; Trying to "finish" from that function causes GDB to SEGV: (gdb) fin Run till exit from #0 bar.f (r=...) at bar.adb:5 0x00000000004022fe in foo () at foo.adb:5 5 I : Enum_Type := F (R); [1] 18949 segmentation fault (core dumped) /[..]/gdb This is related to the fact that funtion F has a parameter (R) which is an "out" parameter being passed by copy. For those, GNAT transforms the return value to be a record with multiple fields: The first one is called "RETVAL" and contains the return value shown in the source, and the remaining fields have the same name as the "out" or "in out" parameters which are passed by copy. So, in the example above, function F returns a struct that has one field who name is "r". Because "RETVAL" starts with "R", GDB thinks it's a wrapper field, because it looks like the encoding used for variant records: -- member_name ::= {choice} | others_choice -- choice ::= simple_choice | range_choice -- simple_choice ::= S number -- range_choice ::= R number T number <<<<<----- here -- number ::= {decimal_digit} [m] -- others_choice ::= O (upper case letter O) See ada_is_wrapper_field: return (name != NULL && (startswith (name, "PARENT") || strcmp (name, "REP") == 0 || startswith (name, "_parent") || name[0] == 'S' || name[0] == 'R' || name[0] == 'O')); As a result of this, when trying to print the RETURN value, we think that RETVAL is a wrapper, and thus recurse into print_field_values... if (ada_is_wrapper_field (type, i)) { comma_needed = print_field_values (TYPE_FIELD_TYPE (type, i), valaddr, (offset + TYPE_FIELD_BITPOS (type, i) / HOST_CHAR_BIT), stream, recurse, val, options, comma_needed, type, offset, language); ... which is a problem since print_field_values assumes that the type it is given ("TYPE_FIELD_TYPE (type, i)" here), is also a record type. However, that's not the case, since RETVAL is an enum. That eventually leads GDB to a NULL type when trying to extract fields out of the enum, which then leads to a SEGV when trying to dereference it. Ideally, we'd want to be a little more careful in identifying wrapper fields, by enhancing ada_is_wrapper_field to be a little more complete in its analysis of the field name before declaring it a variant record wrapper. However, it's not super easy to do so, considering that the choices can be combined together when complex choices are used. Eg: -- [...] the choice 1 .. 4 | 7 | -10 would be represented by -- R1T4S7S10m Given that we are working towards getting rid of GNAT encodings, which means that the above will eventually disappear, we took the more pragmatic approach is just treating RETVAL as a special case. gdb/ChangeLog: * ada-lang.c (ada_is_wrapper_field): Add special handling for fields called "RETVAL". gdb/testsuite/ChangeLog: * gdb.ada/fin_fun_out: New testcase. commit 8d3842cd156eb6cd6cd6c68c49c090b8f9452a2d Author: Dominik Vogt Date: Mon Nov 9 17:12:57 2015 +0100 gas: Fix left shift of negative value. This patch fixes all occurences of left-shifting negative constants in C cod which is undefined by the C standard. gas/ChangeLog: * read.c (parse_bitfield_cons): Fix left shift of negative value. * config/tc-xstormy16.c (md_section_align): Likewise. * config/tc-xgate.c (md_section_align): Likewise. * config/tc-visium.c (md_section_align): Likewise. * config/tc-v850.c (md_section_align): Likewise. * config/tc-tic6x.c (md_section_align): Likewise. * config/tc-sh.c (SH64PCREL32_M, SH64PCREL48_M, SH64PCREL32_M) (MOVI_32_M, MOVI_48_M, MOVI_32_M, md_section_align): Likewise. * config/tc-sh64.c (shmedia_md_estimate_size_before_relax): Likewise. * config/tc-score.c (s3_section_align): Likewise. * config/tc-score7.c (s7_section_align): Likewise. * config/tc-s390.c (md_section_align): Likewise. * config/tc-rx.c (md_section_align): Likewise. * config/tc-rl78.c (md_section_align): Likewise. * config/tc-ppc.c (md_section_align): Likewise. * config/tc-or1k.c (md_section_align): Likewise. * config/tc-nds32.c (md_section_align): Likewise. * config/tc-mt.c (md_section_align): Likewise. * config/tc-msp430.c (md_section_align): Likewise. * config/tc-mn10300.c (md_section_align): Likewise. * config/tc-mn10200.c (md_section_align): Likewise. * config/tc-mips.c (md_section_align): Likewise. * config/tc-microblaze.c (parse_imm): Likewise. * config/tc-mep.c (md_section_align): Likewise. * config/tc-m68k.c (md_section_align): Likewise. * config/tc-m68hc11.c (md_section_align): Likewise. * config/tc-m32r.c (md_section_align): Likewise. * config/tc-m32c.c (md_section_align): Likewise. * config/tc-lm32.c (md_section_align): Likewise. * config/tc-iq2000.c (md_section_align): Likewise. * config/tc-ip2k.c (md_section_align): Likewise. * config/tc-ia64.c (dot_save, dot_vframe): Likewise. * config/tc-i960.c (md_number_to_field, md_section_align): Likewise. * config/tc-i386.c (md_section_align): Likewise. * config/tc-i370.c (md_section_align): Likewise. * config/tc-frv.c (md_section_align): Likewise. * config/tc-fr30.c (md_section_align): Likewise. * config/tc-epiphany.c (md_section_align): Likewise. * config/tc-d30v.c (md_section_align): Likewise. * config/tc-d10v.c (md_section_align): Likewise. * config/tc-cr16.c (l_cons): Likewise. * config/tc-bfin.c (md_section_align): Likewise. * config/tc-arm.c (md_section_align): Likewise. * config/tc-arc.c (md_section_align): Likewise. * config/bfin-parse.y (expr_1): Likewise. gas/testsuite/ChangeLog: * gas/all/test-gen.c (random_order_16s, random_order_24s) (random_order_32s): Fix left shift of negative value. commit c4e0beacd71d4a65cfbe27466ae3d0403c39ead5 Author: Dominik Vogt Date: Mon Nov 9 17:12:56 2015 +0100 binutils: Fix left shift of negative value. This patch fixes all occurences of left-shifting negative constants in C code which is undefined by the C standard. binutils/ChangeLog: * dwarf.c (read_leb128): Fix left shift of negative value. commit 29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6 Author: Dominik Vogt Date: Mon Nov 9 17:12:56 2015 +0100 bfd: Fix left shift of negative value. This patch fixes all occurences of left-shifting negative constants in C code which is undefined by the C standard. bfd/ChangeLog: * elf64-ppc.c (ppc64_elf_size_stubs, ppc64_elf_build_stubs): Fix left shift of negative value. * libbfd.c (safe_read_leb128): Likewise. * dwarf2.c (place_sections): Likewise. * bfd-in.h (align_power): Likewise. * bfd-in2.h (align_power): Likewise. commit a5eda10c7857581e6ee641937f99aa76fa8044eb Author: Yao Qi Date: Mon Nov 9 15:56:20 2015 +0000 Use ELF_STRING_ARM_unwind in arm-tdep.c We've already has the definition like this, #define ELF_STRING_ARM_unwind ".ARM.exidx" so it is better to use the macro rather than the string. gdb: 2015-11-09 Yao Qi * arm-tdep.c (arm_exidx_new_objfile): Use ELF_STRING_ARM_unwind. commit c098766357b77f0553ec017b48abdd563de0281e Author: Yao Qi Date: Mon Nov 9 14:39:56 2015 +0000 New function displaced_step_in_progress_thread This patch adds a new function displaced_step_in_progress_thread, which returns whether the thread is in progress of displaced stepping. gdb: 2015-11-09 Yao Qi * infrun.c (displaced_step_in_progress_thread): New function. (handle_inferior_event_1): Call it. commit be7fe1cddbd5463651e0dff3e8d2cd06455246fc Author: Robert Suchanek Date: Mon Nov 9 08:43:09 2015 +0000 Move copy_u.w to MSA64 ASE, remove copy_u.d. opcodes/ChangeLog: * mips-opc.c (mips_builtin_opcodes): Change "copy_u.w" to MSA64 ASE, remove "copy_u.d". gas/testsuite/ChangeLog: * gas/mips/micromips@msa.d: Remove "copy_u.w". * gas/mips/msa.d: Likewise. * gas/mips/msa.s: Likweise. * gas/mips/mipsr6@msa.d: Likewise. Replace addresses with regex. * gas/mips/msa64.d: Add "copy_u.w". Remove "copy_u.d". * gas/mips/msa64.s: Likewise. * gas/mips/micromips@msa64.d: Likewise. commit c20a0642333655311b1f5b6f78adfeb8ec9fe1d4 Author: Alan Modra Date: Mon Nov 9 15:17:05 2015 +1030 Configury changes for obstack optimization Provides defines used to determine whether glibc obstacks are compatible. Generally speaking, 32-bit targets won't need to use obstack.o from libiberty if glibc is used, while 64-bit targets will, until glibc gets the new obstack code. libiberty/ * configure.ac: Get size of size_t. * config.in: Regenerate. * configure: Regenerate. commit 78d14d2b9325fb4d25034eccf5650ef967d19640 Author: Alan Modra Date: Mon Nov 9 15:15:51 2015 +1030 Silence obstack.c -Wc++compat warning Fixes warning: request for implicit conversion from ‘void *’ to ‘struct _obstack_chunk *’ not permitted in C++ [-Wc++-compat] I moved the assignment to h->chunk to fix an overlong line, then decided it would be better after the alloc failure check just to do things the same way as in _obstack_newchunk. * obstack.c (_obstack_newchunk): Silence -Wc++compat warning. (_obstack_begin_worker): Likewise. Move assignment to h->chunk after alloc failure check. commit e9f40d7d68ecc03c8c32ec0acd07c35359fdb4a3 Author: Alan Modra Date: Mon Nov 9 15:13:51 2015 +1030 Modify obstack.[hc] to avoid having to include other gnulib files Using the standard gnulib obstack source requires importing quite a lot of other files from gnulib, and requires build changes. include/ PR gdb/17133 * obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE. libiberty/ PR gdb/17133 * obstack.c (__alignof__): Expand alignof_type from alignof.h. (obstack_exit_failure): Don't use exitfail.h. (_): Include libintl.h when HAVE_LIBINTL_H and nls enabled. Provide default. Don't include gettext.h. (_Noreturn): Define. * obstacks.texi: Adjust node references to external libc info files. commit 314dee8ea9be79a450d9f0b451619b67ebe0e017 Author: Alan Modra Date: Mon Nov 9 15:12:45 2015 +1030 Copy gnulib obstack files This copies obstack.[ch] from gnulib, and updates the docs. The next patch should be applied if someone repeats the import at a later date. include/ PR gdb/17133 * obstack.h: Import current gnulib file. libiberty/ PR gdb/17133 * obstack.c: Import current gnulib file. * obstacks.texi: Updated doc, from glibc's manual/memory.texi. commit 29960db7242169411c6a51e721bc995b32a603f8 Author: GDB Administrator Date: Mon Nov 9 00:00:23 2015 +0000 Automatic date update in version.in commit db0cf0603a08bf05eb3e412533072e0441921fa3 Author: GDB Administrator Date: Sun Nov 8 00:00:10 2015 +0000 Automatic date update in version.in commit c6f0b406f56ac5232d08cbd88c0bddfb2f640e90 Author: Kevin Buettner Date: Thu Oct 29 21:53:51 2015 -0700 gdb.dwarf2: Don't hardcode certain constants in Dwarf::assemble constructs Two tests in gdb.dwarf2, data-loc.exp and dynarr-ptr.exp assume that sizeof(int) is 4. This patch looks up the integer size and uses this constant for DW_AT_byte_size, DW_AT_lower_bound, and DW_AT_upper_bound. I discovered this problem while looking at test results for this msp430 multilib: msp430-sim/-msim/-mcpu=msp430x/-mlarge/-mdata-region=either/-mcode-region=either It fixes the following set of failures: FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr.all'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr_tdef.all'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.three_ptr_tdef'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr.all'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr_tdef.all'first FAIL: gdb.dwarf2/dynarr-ptr.exp: print foo.five_ptr_tdef'first FAIL: gdb.dwarf2/data-loc.exp: print foo.three FAIL: gdb.dwarf2/data-loc.exp: print foo.three(1) FAIL: gdb.dwarf2/data-loc.exp: print foo.three(2) FAIL: gdb.dwarf2/data-loc.exp: print foo.three(3) FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(1) FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(2) FAIL: gdb.dwarf2/data-loc.exp: print foo.three_tdef(3) FAIL: gdb.dwarf2/data-loc.exp: print foo.five FAIL: gdb.dwarf2/data-loc.exp: print foo.five(2) FAIL: gdb.dwarf2/data-loc.exp: print foo.five(3) FAIL: gdb.dwarf2/data-loc.exp: print foo.five(4) FAIL: gdb.dwarf2/data-loc.exp: print foo.five(5) FAIL: gdb.dwarf2/data-loc.exp: print foo.five(6) FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(2) FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(3) FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(4) FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(5) FAIL: gdb.dwarf2/data-loc.exp: print foo.five_tdef(6) FAIL: gdb.dwarf2/data-loc.exp: print foo__three FAIL: gdb.dwarf2/data-loc.exp: print foo__three_tdef FAIL: gdb.dwarf2/data-loc.exp: print foo__five FAIL: gdb.dwarf2/data-loc.exp: print foo__five_tdef As I recall, there are still (other) problems with msp430 multilibs which don't use -mlarge. gdb/testsuite/ChangeLog: * gdb.dwarf2/data-loc.exp (Dwarf::assemble): Don't hardcode value associated with DW_AT_byte_size. * gdb.dwarf2/dynarr-ptr.exp (Dwarf::assemble): Don't hardcode constants for DW_AT_byte_size, DW_AT_lower_bound, and DW_AT_upper_bound. commit f01dcfd9a7954462ea08d2c7b24dad0ca5e07db2 Author: Kevin Buettner Date: Thu Nov 5 21:40:53 2015 -0700 testsuite: Define and use gdb_target_symbol_prefix_flags_asm. Some of the source code for the test cases in the GDB testsuite reside in .S files containing assembly code. These files typically define a symbol - such as main - which may, depending on the target, require a prefix such as underscore. For example, gdb.dwarf2/dw-compdir-oldgcc.S defines the symbol main: main: .globl main Some targets, such as rx-elf, require main to have an underscore prefix. (If it doesn't, a linker error results due to not being able to find _main required by crt0.o.) So, instead, the above should look like this for rx-elf and other targets with this same requirement: _main: .globl _main This patch defines a new tcl proc in lib/gdb named gdb_target_symbol_prefix_flags_asm. This proc returns a string which will - assuming everything else is wired up correctly - cause -DSYMBOL_PREFIX=_ to be passed on the command line to the compiler. The test cases are augmented with a macro definition for SYMBOL as follows: #define CONCAT1(a, b) CONCAT2(a, b) #define CONCAT2(a, b) a ## b #ifdef SYMBOL_PREFIX # define SYMBOL(str) CONCAT1(SYMBOL_PREFIX, str) #else # define SYMBOL(str) str #endif Symbols, such as main shown in the example earlier are then wrapped with SYMBOL like this: SYMBOL(main): .globl SYMBOL(main) The net effect will be to add a prefix for those targets which need it and add no prefix for those targets which do not. It should be noted that there was already a proc in lib/gdb.exp called gdb_target_symbol_prefix_flags. It still exists, but has been significantly rewritten. (There is only one small difference between the two versions.) That proc used to explicitly list targets which were known to require an underscore prefix. This is no longer done; the recently added proc, gdb_target_symbol_prefix, is now invoked to dynamically discover whether or not a prefix is required for that particular target. The difference between gdb_target_symbol_prefix_flags_asm and gdb_target_symbol_prefix_flags is that the former returns a bare prefix while the latter returns the prefix enclosed in double quotes. I.e. assuming that the discovered prefix is underscore, gdb_target_symbol_prefix_flags_asm returns: additional_flags=-DSYMBOL_PREFIX=_ while gdb_target_symbol_prefix_flags returns: additional_flags=-DSYMBOL_PREFIX="_" The double-quoted version is not suitable for using with .S files containing assembly code; there is no way to strip the double quotes using C preprocessor constructs. It would be possible to use the bare (non double quoted) version in C source code. However, the supporting macros become more complicated and therefore more difficult to maintain. gdb/testsuite/ChangeLog: * lib/gdb (gdb_target_symbol_prefix_flags_asm): New proc. (gdb_target_symbol_prefix_flags): Define in terms of _asm version. * gdb.arch/i386-float.exp, gdb.arch/i386-permbkpt.exp, gdb.dwarf2/dw2-canonicalize-type.exp, gdb.dwarf2/dw2-compdir-oldgcc.exp, gdb.dwarf2/dw2-minsym-in-cu.exp, gdb.dwarf2/dw2-op-stack-value.exp, gdb.dwarf2/dw2-unresolved.exp, gdb.dwarf2/fission-reread.exp, gdb.dwarf2/pr13961.exp: Use flags provided by gdb_target_symbol_prefix_flags_asm. * gdb.dwarf2/dw2-canonicalize-type.S, gdb.dwarf2/dw2-compdir-oldgcc.S, testsuite/gdb.dwarf2/dw2-minsym-in-cu.S, testsuite/gdb.dwarf2/dw2-unresolved-main.c, testsuite/gdb.dwarf2/dw2-unresolved.S, gdb.dwarf2/fission-reread.S, gdb.dwarf2/pr13961.S: Define and use SYMBOL macro (and supporting macros where needed). Use this macro for symbols which require the prefix provided by SYMBOL_PREFIX. commit 66e749b6edfe817aa78d70c437ff59904b3b9b45 Author: GDB Administrator Date: Sat Nov 7 00:00:07 2015 +0000 Automatic date update in version.in commit 82ef0f70744ca47057b9e95cd926dbcb25ebb0c8 Author: Joel Brobecker Date: Fri Nov 6 13:39:19 2015 -0800 Do not use libiberty's getpagesize on Android Building libiberty on Android currently fails with the error message shown below. This was discovered by trying to build GDBserver for Android, which stopped building after libiberty became a GDBserver dependency. Here is the error message: [...]/getpagesize.c:64:1: error: redefinition of 'getpagesize' In file included from /[...]/getpagesize.c:34:0: /[...]/usr/include/unistd.h:171:23: note: previous definition of 'getpagesize' was here And looking at the definition, one can see that it defined as a static inline function... static __inline__ int getpagesize(void) { extern unsigned int __page_size; return __page_size; } ... which explains why the AC_CHECK_FUNCS test failed to detect the function, since there is no associated symbol to be linked in. This patch prevents getpagesize.c to be compiled in by hard-coding the fact that getpagesize is available on android hosts. libiberty/ChangeLog: * configure.ac: Set AC_CV_FUNC_GETPAGESIZE to "yes" on Android hosts. * configure: Regenerate. commit ed60fec722981ecfbd9d1c46b4a2294b228711e9 Author: GDB Administrator Date: Fri Nov 6 00:00:08 2015 +0000 Automatic date update in version.in commit 2223449a47a8908db2a1992379f54294128a7ee4 Author: Kevin Buettner Date: Wed Oct 28 11:36:06 2015 -0700 gdb.dwarf2: Define and use gdb_target_symbol for symbol prefixes Some of the tests in gdb.dwarf2 which use Dwarf::assemble refer to (minimal/linker) symbols created in the course of building a small test program. Some targets use a prefix such as underscore ("_") on these symbols. Many of the tests in gdb.dwarf2 do not take this into account. As a consequence, these tests fail to build, resulting either in failures or untested testcases. Here is an example from gdb.dwarf2/dw2-regno-invalid.exp: Dwarf::assemble $asm_file { cu {} { compile_unit { {low_pc main DW_FORM_addr} {high_pc main+0x10000 DW_FORM_addr} } { ... } For targets which require an underscore prefix on linker symbols, the two occurrences of "main" would have to have a prepended underscore, i.e. _main instead of main. For the above case, a call to the new proc gdb_target_symbol is used prepend the correct prefix to the symbol. I.e. the above code is rewritten (as shown in the patch) as follows: Dwarf::assemble $asm_file { cu {} { compile_unit { {low_pc [gdb_target_symbol main] DW_FORM_addr} {high_pc [gdb_target_symbol main]+0x10000 DW_FORM_addr} } { ... } I also found it necessary to make an adjustment to lib/dwarf.exp so that expressions of more than just one list element can be used in DW_TAG_... constructs. Both atomic-type.exp and dw2-bad-mips-linkage-name.exp require this new functionality. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_target_symbol_prefix, gdb_target_symbol): New procs. * lib/dwarf.exp (_handle_DW_TAG): Handle attribute values, representing expressions, of more than one list element. * gdb.dwarf2/atomic-type.exp (Dwarf::assemble): Use gdb_target_symbol to prepend linker symbol prefix to f. * gdb.dwarf2/data-loc.exp (Dwarf::assemble): Likewise, for table_1 and table_2. * gdb.dwarf2/dw2-bad-mips-linkage-name.exp (Dwarf::assemble): Likewise, for f and g. * gdb.dwarf2/dw2-ifort-parameter.exp (Dwarf::assemble): Likewise, for ptr. * gdb.dwarf2/dw2-regno-invalid.exp (Dwarf::assemble): Likewise, for main. * gdb.dwarf2/dynarr-ptr.exp (Dwarf::assemble): Likewise, for table_1_ptr and table_2_ptr. commit 96f9814df23564e16909bb5ba00de4a202c63417 Author: Cary Coutant Date: Thu Nov 5 12:59:02 2015 -0800 Revert patch for PR 19119, which led to PR 19172 and 19197. Gold does not support all the emulations that Gnu ld does, and supports only one spelling per target. The -m option is used only in the rare case where there are no ELF input files, and we produce an empty output file. In those cases, users are expected to supply a -m option naming one of the supported emulations. In the many cases where a build script provides an unnecessary -m option naming an emulation that gold does not support, we will simply ignore the option, as we did before the reverted patch. gold/ PR gold/19119 PR gold/19172 PR gold/19197 Revert commit 6457197210144f50a696097c0d308d81d46d5510: 2015-10-16 H.J. Lu * options.h (General_options): Remove "obsolete" from -m. * parameters.cc (set_parameters_target): Check if input target is compatible with output emulation set by "-m emulation". commit 0eccf19f96d6218dd7c2f8d13f0546c2b942cc08 Author: Cary Coutant Date: Thu Nov 5 12:24:14 2015 -0800 Add aarch64-specific --no-apply-dynamic-relocs option. With --no-apply-dynamic-relocs on aarch64 targets, gold will not apply link-time values for absolute relocations that become dynamic relocations. This provides a workaround for broken Android dynamic linkers that use the link-time value as an extra addend to the relocation. gold/ PR gold/19163 * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply certain relocations if --no-apply-dynamic-relocs is set. * options.h (--apply-dynamic-relocs): New aarch64-specific option. commit c86a40c6c2902b73ec6f601176820c760524afd2 Author: Yao Qi Date: Thu Nov 5 09:44:32 2015 +0000 Use aarch64_decode_insn in aarch64_displaced_step_copy_insn gdb: 2015-11-05 Yao Qi * aarch64-tdep.c (aarch64_displaced_step_copy_insn): Call aarch64_decode_insn and decode instruction by aarch64_inst. commit d9ebcbce29f3621a687872270cc8952ba1501e56 Author: Yao Qi Date: Thu Nov 5 09:44:32 2015 +0000 Use aarch64_decode_insn in aarch64_analyze_prologue This patch convert aarch64_analyze_prologue to using aarch64_decode_insn to decode instructions. After this change, aarch64_analyze_prologue looks much simple, and some aarch64_decode_* functions are removed accordingly. gdb: 2015-11-05 Yao Qi * aarch64-tdep.c (extract_signed_bitfield): Remove. (decode_masked_match): Remove. (aarch64_decode_add_sub_imm): Remove. (aarch64_decode_br): Remove. (aarch64_decode_eret): Remove. (aarch64_decode_movz): Remove. (aarch64_decode_orr_shifted_register_x): Remove. (aarch64_decode_ret): Remove. (aarch64_decode_stp_offset): Remove. (aarch64_decode_stur): Remove. (aarch64_analyze_prologue): Call aarch64_decode_insn and use aarch64_inst to decode instructions. commit 93d960127c205918dbb69ab32e686b20ff365a25 Author: Yao Qi Date: Thu Nov 5 09:44:32 2015 +0000 Combine aarch64_decode_stp_offset_wb and aarch64_decode_stp_offset This patch combines both aarch64_decode_stp_offset_wb and aarch64_decode_stp_offset together. gdb: 2015-11-05 Yao Qi * aarch64-tdep.c (aarch64_decode_stp_offset): New argument wback. (aarch64_decode_stp_offset_wb): Removed. (aarch64_analyze_prologue): Don't use aarch64_decode_stp_offset_wb. commit 868ac09218632073a0366fcae0436cbad4bb5a82 Author: Alan Modra Date: Thu Nov 5 00:44:50 2015 +1030 Regenerate ld/Makefile.in * Makefile.in: Regenerate. commit a4957dbf04e53afaf210a098c1b0f54973618d3b Author: GDB Administrator Date: Thu Nov 5 00:00:12 2015 +0000 Automatic date update in version.in commit 6f2f1a3a706e56b3fddd7ab1fc9a313343c85d4a Author: Jan Kratochvil Date: Wed Nov 4 15:52:41 2015 +0100 Fortran: allocate()d memory is uninitialized allocate (vla1 (5)) ! vla1-not-allocated l = allocated(vla1) ! vla1-allocated <------------------ Expecting: ^(510-data-evaluate-expression vla1[^M ]+)?(510\^done,value="\(0, 0, 0, 0, 0\)"[^M ]+[(]gdb[)] ^M [ ]*) 510-data-evaluate-expression vla1^M 510^done,value="(1.82987403e-09, 7.8472714e-44, 1.82987403e-09, 7.8472714e-44, 2.67929926e+20)"^M (gdb) ^M FAIL: gdb.mi/mi-vla-fortran.exp: evaluate allocated vla gcc-4.9.2-6.fc21.x86_64 I think some older gfortran did initialize allocated memory but that is an unspecified behavior. I haven't found any initialization mentioned in Fortran 90 standard (draft) and it is also clearly stated here: https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/268786 Initialization to 0 of allocated arrays (of integers) is an implementation issue. i.e. do not rely on it. Joel Brobecker wrote: I am wondering if it might be better to just relax instead the regexp to allow any number rather than just remove the test altogether. The test allows us to verify that, as soon as we're past the "allocate" call, we no longer say "not allocated". gdb/testsuite/ChangeLog 2015-11-03 Jan Kratochvil Joel Brobecker * gdb.mi/mi-vla-fortran.exp (evaluate allocated vla): Permit any data. commit 6df55226405d626059f81bec3078a70db41dec9f Author: Marcin Kościelnicki Date: Mon Nov 2 17:17:22 2015 +0100 gdb/s390-linux: Step over MVCLE+JO (and similiar) as a unit. This is needed to avoid O(n**2) complexity when recording MVCLE and other partial execution instructions. gdb/ChangeLog: PR/18376 * gdb/s390-linux-tdep.c (s390_is_partial_instruction): New function. (s390_software_single_step): New function. (s390_displaced_step_hw_singlestep): New function. (s390_gdbarch_init): Fill gdbarch slots with the above. commit 566c56c91116321f48573a0a4274cc5244330490 Author: Marcin Kościelnicki Date: Mon Nov 2 17:16:07 2015 +0100 gdb: Add process record and replay support for s390. gdb/ChangeLog: PR/18376 * gdb/configure.tgt: Add linux-record.o to s390*-linux. * gdb/s390-linux-tdep.c: #include "linux-record.h", "record-full.h" (s390_linux_record_tdep): New static global variable. (s390x_linux_record_tdep): New static global variable. (s390_all_but_pc_registers_record): New function. (s390_canonicalize_syscall): New function. (s390_linux_syscall_record): New function. (s390_linux_record_signal): New function. (s390_record_calc_disp_common): New function. (s390_record_calc_disp): New function. (s390_record_calc_disp_vsce): New function. (s390_record_calc_rl): New function. (s390_record_gpr_g): New function. (s390_record_gpr_h): New function. (s390_record_vr): New function. (s390_process_record): New function. (s390_init_linux_record_tdep): New function. (s390_gdbarch_init): Fill record function slots. gdb/testsuite/ChangeLog: * gdb.reverse/s390-mvcle.c: New test. * gdb.reverse/s390-mvcle.exp: New file. * lib/gdb.exp: Enable reverse tests on s390*-linux. commit 394816ee10a85e3e0fa7c9b0a4ca29e7e160e63c Author: Marcin Kościelnicki Date: Mon Nov 2 02:12:58 2015 +0100 gdb/record-full: Use xmalloc instead of alloca for temporary memory storage. On the newly added s390 target, it's possible for a single instruction to write practically unbounded amount of memory (eg. MVCLE). This caused a stack overflow when alloca was used. gdb/ChangeLog: * record-full.c (record_full_exec_insn): Use xmalloc for temporary memory storage. commit fe6052e1eeffd4e2e2210cebc480b90094429a16 Author: Alan Modra Date: Thu Nov 5 00:33:55 2015 +1030 DATA_SEGMENT_ALIGN documentation is not consistent with behaviour PR ld/19203 * ld.texinfo (DATA_SEGMENT_ALIGN): Correct second expression. commit 14cb1c0b38b120cf5325d9538cce1a0347e2b626 Author: Walfred Tedeschi Date: Wed Nov 4 11:09:03 2015 +0100 Fix non stopping breakpoint on newer compilers. The breakpoint presented in the return statement was not activated while compiling the test with gcc 4.9.2. Added a dummy statement to allow the breakpoint again. 2015-10-14 Walfred Tedeschi gdb/testsuite: * i386-mpx-map.c (foo): Add dummy statement to trigger breakpoint. Change-Id: I5293ca1c7f82a631e1e41cb650c30dd2d09ef3c2 Signed-off-by: Walfred Tedeschi commit 1a2ccd2e32ecf767973bf96b965e915bd0a04bf3 Author: Walfred Tedeschi Date: Wed Nov 4 11:09:02 2015 +0100 Changing compiler flags for MPX tests. Adapts tests to use actual GCC flags, previous used flags were related to an internal GCC release. 2015-06-18 Walfred Tedeschi gdb/testsuite: * gdb.arch/i386-mpx-map.exp (comp_flags): Use released GCC flags. * gdb.arch/i386-mpx.exp (comp_flags): Use released GCC flags. Change-Id: Id4c4551693a8df071ed4b71bb5dfb46a526ed5db Signed-off-by: Walfred Tedeschi commit e00b3c9bc1cb8f0ce1ee39f07d7a216ab12c3064 Author: Walfred Tedeschi Date: Wed Nov 4 11:09:02 2015 +0100 Improve error message for MPX bound table examinations. Error was introduced to fix a build issue caused by a mismatching variable size. The error message is changed to explicitly report what goes wrong and how user might still investigate the issue. 2015-06-18 Walfred Tedeschi * i386-tdep.c (i386_mpx_get_bt_entry) Improves error message. Change-Id: I6e9c7475eba663f49bd8e720b84ad0265bcb0e92 Signed-off-by: Walfred Tedeschi commit 0c532a298058669a72061ad94ba9e24170ae91ae Author: Markus Metzger Date: Fri Sep 11 10:09:54 2015 +0200 btrace: add instruction-history /s and fix documentation Add support for the /s modifier of the "record instruction-history" command. It behaves exactly like /m and prints disassembled instructions in the order in which they were recorded with interleaved sources. We accept /s in addition to /m to align with the "disassemble" command. The "record instruction-history" modifiers were not documented. Document all of them. gdb/ * record.c (get_insn_history_modifiers): Set DISASSEMBLY_SOURCE instead of DISASSEMBLY_SOURCE_DEPRECATED. Also accept /s. (_initialize_record): Document the /s modifier. * NEWS: Announce record instruction-history's new /s modifier. doc/ * gdb.texinfo (Process Record and Replay): Document "record instruction-history" modifiers. commit f94cc8975cfcf8625833eba0c0077bb878f0cbaa Author: Markus Metzger Date: Wed Aug 12 10:38:35 2015 +0200 btrace: change record instruction-history /m The /m modifier interleaves source lines with the disassembly of recorded instructions. This calls disasm.c's gdb_disassembly once for each recorded instruction to be printed. This doesn't really work because gdb_disassembly may choose not to print anything in some situations. And if it does print something, the output interferes with btrace_insn_history's output around it. It further results in a separate asm_insns list for each instruction in MI. Even though there is no MI support for target record, yet, we fix this obvious issue. Change record instruction-history /m to use the new gdb_pretty_print_insn function for printing a single instruction and interleave source lines as appropriate. We cannot reuse the new disasm.c do_mixed_source_and_assembly function without significant changes to it. gdb/ * record-btrace.c (struct btrace_line_range): New. (btrace_mk_line_range, btrace_line_range_add) (btrace_line_range_is_empty, btrace_line_range_contains_range) (btrace_find_line_range, btrace_print_lines): New. (btrace_insn_history): Add source interleaving algorithm. commit a50a40267668422e60901cc7fb949050caceb90c Author: Markus Metzger Date: Fri Sep 11 14:47:08 2015 +0200 disasm: add struct disasm_insn to describe to-be-disassembled instruction The "record instruction-history" command prints for each instruction in addition to the instruction's disassembly: - the instruction number in the recorded execution trace - a '?' before the instruction if it was executed speculatively To allow the "record instruction-history" command to use GDB's disassembly infrastructure, we extend gdb_pretty_print_insn to optionally print those additional fields and export the function. Add a new struct disasm_insn to add additional fields describing the to-be-disassembled instruction. The additional fields are: number an optional instruction number, zero if omitted. is_speculative a predicate saying whether the instruction was executed speculatively. If non-zero, the instruction number is printed first. It will also appear as a new optional field "insn-number" in MI. The field will be present if insn_num is non-zero. If is_speculative is set, speculative execution will be indicated by a "?" following the new instruction number field. Unless the PC is omitted, it will overwrite the first byte of the PC prefix. It will appear as a new optional field "is-speculative" in MI. The field will contain "?" and will be present if is_speculative is set. The speculative execution indication is guarded by a new flag DISASSEMBLY_SPECULATION. Replace the PC parameter of gdb_pretty_print_insn with a pointer to the above struct. GDB's "disassemble" command does not use the new fields. gdb/ * disasm.h (DISASSEMBLY_SPECULATION): New. (struct disasm_insn): New. (gdb_pretty_print_insn): New. * disasm.c (gdb_pretty_print_insn): Replace parameter PC with INSN. Update users. Print instruction number and indicate speculative execution, if requested. commit af70908dc41c8bf21680aeb2f849ce4043b2031a Author: Markus Metzger Date: Mon Oct 12 13:43:42 2015 +0200 disasm: split dump_insns Split disasm.c's dump_insn into two parts: - print a single instruction - loop over the specified address range The first part will be refined in subsequent patches so it can be reused. gdb/ * disasm.c (dump_insns): Split into this and ... (gdb_pretty_print_insn): ... this. commit b9fdaa8d92d2918001969efd083c6ef9765b3c82 Author: GDB Administrator Date: Wed Nov 4 00:00:08 2015 +0000 Automatic date update in version.in commit 1c215b97f9a64d6ba9821e8a0cf0f44526f29d78 Author: Simon Marchi Date: Tue Nov 3 13:33:16 2015 -0500 xtensa: Add missing statics This actually fixes the build in C: /home/simark/src/binutils-gdb/gdb/xtensa-linux-nat.c:100:1: error: no previous prototype for ‘supply_gregset_reg’ [-Werror=missing-prototypes] supply_gregset_reg (struct regcache *regcache, ^ /home/simark/src/binutils-gdb/gdb/xtensa-linux-nat.c:257:1: error: no previous prototype for ‘xtensa_linux_fetch_inferior_registers’ [-Werror=missing-prototypes] xtensa_linux_fetch_inferior_registers (struct target_ops *ops, ^ /home/simark/src/binutils-gdb/gdb/xtensa-linux-nat.c:272:1: error: no previous prototype for ‘xtensa_linux_store_inferior_registers’ [-Werror=missing-prototypes] xtensa_linux_store_inferior_registers (struct target_ops *ops, ^ cc1: all warnings being treated as errors These functions are local to this file, so they should be static. gdb/ChangeLog: * xtensa-linux-nat.c (supply_gregset_reg): Make static. (xtensa_linux_fetch_inferior_registers): Likewise. (xtensa_linux_store_inferior_registers): Likewise. commit 1996e237bb2fd3ac6c487b6e0821fdce6e03d122 Author: Simon Marchi Date: Tue Nov 3 13:33:15 2015 -0500 linux-mips-low.c: Add casts Fixes a bunch of: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-mips-low.c: In function ‘void mips_store_fpregset(regcache*, const void*)’: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-mips-low.c:809:39: error: invalid conversion from ‘const void*’ to ‘const mips_register*’ [-fpermissive] const union mips_register *regset = buf; ^ gdb/gdbserver/ChangeLog: * linux-mips-low.c (mips_fill_gregset): Add cast. (mips_store_gregset): Likewise. (mips_fill_fpregset): Likewise. (mips_store_fpregset): Likewise. commit cbec665beba8acf6393a8c93312bdd3a03a0846c Author: Simon Marchi Date: Tue Nov 3 13:33:15 2015 -0500 linux-mips-low.c: Change "private" variable name Fixes: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-mips-low.c:359:48: error: expected ‘,’ or ‘...’ before ‘private’ mips_add_watchpoint (struct arch_process_info *private, CORE_ADDR addr, ^ gdb/gdbserver/ChangeLog: * linux-mips-low.c (mips_add_watchpoint): Rename private to priv. commit eb3e3c67e5f922e8f2c665e1687a71f08dbe37a8 Author: Simon Marchi Date: Tue Nov 3 13:33:14 2015 -0500 linux-mips-low.c: Fix type of mips_add_watchpoint parameter Fixes /home/simark/src/binutils-gdb/gdb/gdbserver/linux-mips-low.c: In function ‘void mips_add_watchpoint(arch_process_info*, CORE_ADDR, int, int)’: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-mips-low.c:368:19: error: invalid conversion from ‘int’ to ‘target_hw_bp_type’ [-fpermissive] new_watch->type = watch_type; ^ gdb/gdbserver/ChangeLog: * linux-mips-low.c (mips_linux_new_thread): Change type of watch_type to enum target_hw_bp_type. commit f844cf0ec3887110375e9c1d4c48a68cb6a8b141 Author: Simon Marchi Date: Tue Nov 3 13:33:14 2015 -0500 arm-linux-nat.c: Add cast Fixes: /home/simark/src/binutils-gdb/gdb/arm-linux-nat.c: In function ‘const target_desc* arm_linux_read_description(target_ops*)’: /home/simark/src/binutils-gdb/gdb/../include/libiberty.h:711:38: error: invalid conversion from ‘void*’ to ‘char*’ [-fpermissive] # define alloca(x) __builtin_alloca(x) ^ /home/simark/src/binutils-gdb/gdb/arm-linux-nat.c:578:13: note: in expansion of macro ‘alloca’ buf = alloca (VFP_REGS_SIZE); ^ gdb/ChangeLog: * arm-linux-nat.c (arm_linux_read_description): Add cast. commit 171de4b8fb2bfe1be8a2f7f479047e51da05883e Author: Simon Marchi Date: Tue Nov 3 13:33:13 2015 -0500 Change return type of raw_bkpt_type_to_arm_hwbp_type Fixes: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-arm-low.c: In function ‘int arm_linux_hw_point_initialize(raw_bkpt_type, CORE_ADDR, int, arm_linux_hw_breakpoint*)’: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-arm-low.c:459:55: error: invalid conversion from ‘int’ to ‘arm_hwbp_type’ [-fpermissive] hwbp_type = raw_bkpt_type_to_arm_hwbp_type (raw_type); ^ gdb/gdbserver/ChangeLog: * linux-arm-low.c (raw_bkpt_type_to_arm_hwbp_type): Change return type to arm_hwbp_type. commit 04248ead1f57204119180022580626e31c165f60 Author: Simon Marchi Date: Tue Nov 3 13:33:13 2015 -0500 gdbserver arm: Add casts Trivial casts for C++. Fixes things like In file included from /home/simark/src/binutils-gdb/gdb/gdbserver/../common/common-defs.h:39:0, from /home/simark/src/binutils-gdb/gdb/gdbserver/server.h:22, from /home/simark/src/binutils-gdb/gdb/gdbserver/linux-arm-low.c:19: /home/simark/src/binutils-gdb/gdb/gdbserver/linux-arm-low.c: In function ‘int arm_get_hwcap(long unsigned int*)’: /home/simark/src/binutils-gdb/gdb/gdbserver/../../include/libiberty.h:711:38: error: invalid conversion from ‘void*’ to ‘unsigned char*’ [-fpermissive] # define alloca(x) __builtin_alloca(x) ^ /home/simark/src/binutils-gdb/gdb/gdbserver/linux-arm-low.c:807:25: note: in expansion of macro ‘alloca’ unsigned char *data = alloca (8); ^ gdb/gdbserver/ChangeLog: * linux-aarch32-low.c (arm_fill_gregset): Add cast. (arm_store_gregset): Likewise. * linux-arm-low.c (arm_get_hwcap): Likewise. (arm_read_description): Likewise. commit 04b3479c3f92e102c5a7d1158ab608e0015252c6 Author: Simon Marchi Date: Tue Nov 3 13:33:12 2015 -0500 linux-aarch32-low.c: Use NULL_REGSET Fixes /home/simark/src/binutils-gdb/gdb/gdbserver/linux-aarch32-low.c:124:1: error: invalid conversion from ‘int’ to ‘regset_type’ [-fpermissive] }; ^ gdb/gdbserver/ChangeLog: * linux-aarch32-low.c (aarch32_regsets): Use NULL_REGSET. commit f4b0a6714adb7371e3b7a0f47589c3dfd958cd09 Author: Simon Marchi Date: Tue Nov 3 13:33:12 2015 -0500 target_ops mask_watchpoint: change int to target_hw_bp_type Fixes: /home/simark/src/binutils-gdb/gdb/ppc-linux-nat.c: In function ‘int ppc_linux_insert_mask_watchpoint(target_ops*, CORE_ADDR, CORE_ADDR, int)’: /home/simark/src/binutils-gdb/gdb/ppc-linux-nat.c:1730:40: error: invalid conversion from ‘int’ to ‘target_hw_bp_type’ [-fpermissive] p.trigger_type = get_trigger_type (rw); ^ gdb/ChangeLog: * ppc-linux-nat.c (ppc_linux_insert_mask_watchpoint): Change type of rw to enum target_hw_bp_type. (ppc_linux_remove_mask_watchpoint): Likewise. * target.c (target_insert_mask_watchpoint): Likewise. (target_remove_mask_watchpoint): Likewise. * target.h (target_insert_mask_watchpoint): Likewise. (target_remove_mask_watchpoint): Likewise. (struct target_ops) : Likewise. (struct target_ops) : Likewise. * target-delegates.c: Regenerate. commit 653090d3219377766f1d4597819fa3c805ce49eb Author: Simon Marchi Date: Tue Nov 3 13:33:11 2015 -0500 remote-sim.c: Add casts Mostly some casts from "generic arg" void* to the actual type. There are two (enum gdb_signal) casts. I tried to see if it would have been better to change the type of sigrc, but it has a double role, as an enum and as an integer, so I left it as is. gdb/ChangeLog: * remote-sim.c (check_for_duplicate_sim_descriptor): Add casts. (get_sim_inferior_data): Likewise. (sim_inferior_data_cleanup): Likewise. (gdbsim_close_inferior): Likewise. (gdbsim_resume_inferior): Likewise. (gdbsim_wait): Likewise. (simulator_command): Likewise. (sim_command_completer): Likewise. commit 2bc84e8a6d94d9d7ead1bc4febf0fb331394406e Author: Simon Marchi Date: Tue Nov 3 13:33:11 2015 -0500 linux-ppc-low.c: Add casts Trivial casts for C++. gdb/gdbserver/ChangeLog: * linux-ppc-low.c (ppc_get_hwcap): Add cast. (ppc_fill_vsxregset): Likewise. (ppc_store_vsxregset): Likewise. (ppc_fill_vrregset): Likewise. (ppc_store_vrregset): Likewise. (ppc_fill_evrregset): Likewise. (ppc_store_evrregset): Likewise. commit e6c5bb0517d29b6d888b8559facb797b442e7b86 Author: Simon Marchi Date: Tue Nov 3 13:33:10 2015 -0500 linux-ppc-low.c: Remove forward declaration, move ppc_arch_setup lower g++ doesn't like that we forward-declare a variable that is initialized later in the file. It's easy enough to re-order things to fix it. Fixes /home/simark/src/binutils-gdb/gdb/gdbserver/linux-ppc-low.c:663:28: error: redefinition of ‘usrregs_info ppc_usrregs_info’ static struct usrregs_info ppc_usrregs_info = ^ /home/simark/src/binutils-gdb/gdb/gdbserver/linux-ppc-low.c:381:28: note: ‘usrregs_info ppc_usrregs_info’ previously declared here static struct usrregs_info ppc_usrregs_info; ^ gdb/gdbserver/ChangeLog: * linux-ppc-low.c (ppc_usrregs_info): Remove forward-declaration. (ppc_arch_setup): Move lower in file. commit ab2733963604205afbcc1bc164048864e955c8ff Author: Alan Modra Date: Tue Nov 3 19:33:27 2015 +1030 readelf verdef and verneed readelf ought to notify when a symbol wrongly has both a version definition and a needed version. This patch does that, and removes the heuristic that only defined symbols in SHT_NOBITS sections have verneed entries. * readelf (process_version_sections): Check DT_VERNEED and DT_VERDEF for all symbols. Report "*both*" should a symbol have both a verneed and verdef. (get_symbol_version_string): Reduce indentation by early exits. Don't use SHT_NOBITS heuristic to detect case where a defined symbol has a verneed entry. commit c1e7d6a827c40a56816e3cd8e3815790197fa41b Author: Alan Modra Date: Tue Nov 3 16:46:39 2015 +1030 [GOLD] Regenerate POTFILES.in to add s390.cc * po/POTFILES.in: Regenerate. commit 1ac688f831d2aaaf7f0cf500056b4aa0ddc4ed4f Author: Renlin Li Date: Tue Nov 3 12:00:10 2015 +0000 [LD][AARCH64]Add test cases for big-endian. ld/testsuite 2015-11-03 Renlin Li * ld-aarch64/aarch64-elf.exp: Run newly added test cases. * ld-aarch64/emit-relocs-301.d: Skip aarch64_be. * ld-aarch64/emit-relocs-302.d: Likwise. * ld-aarch64/emit-relocs-310.d: Likwise. * ld-aarch64/emit-relocs-515.d: Likwise. * ld-aarch64/emit-relocs-516.d: Likwise. * ld-aarch64/tls-large-desc.d: Likwise. * ld-aarch64/tls-large-ie.d: Likwise. * ld-aarch64/tls-relax-large-desc-ie.d: Likwise. * ld-aarch64/tls-relax-large-desc-le.d: Likwise. * ld-aarch64/tls-relax-large-gd-ie.d: Likwise. * ld-aarch64/tls-relax-large-gd-le.d: Likwise. * ld-aarch64/emit-relocs-301-be.d: New for aarch64_be. * ld-aarch64/emit-relocs-302-be.d: Likewise. * ld-aarch64/emit-relocs-310-be.d: Likewise. * ld-aarch64/emit-relocs-515-be.d: Likewise. * ld-aarch64/emit-relocs-516-be.d: Likewise. * ld-aarch64/tls-large-desc-be.d: Likewise. * ld-aarch64/tls-large-ie-be.d: Likewise. * ld-aarch64/tls-relax-large-desc-ie-be.d: Likewise. * ld-aarch64/tls-relax-large-desc-le-be.d: Likewise. * ld-aarch64/tls-relax-large-gd-ie-be.d: Likewise. * ld-aarch64/tls-relax-large-gd-le-be.d: Likewise. commit d5f0636bf6fb6b5e54cd405811cfbfcc98fa667b Author: Marcin Kościelnicki Date: Mon Nov 2 20:29:12 2015 +0100 Obvious typo fix in gdb.reverse/readv-reverse.exp gdb/testsuite/ChangeLog: * gdb.reverse/readv-reverse.exp: Obvious typo fixed. commit 7ad8b86c674ed941b354322f608cd964ca0affb2 Author: Marcin Kościelnicki Date: Mon Nov 2 20:27:19 2015 +0100 gdb/reverse: Fix continue_to_breakpoint in syscall testcases. continue_to_breakpoint always continues to the next breakpoint, not to the one named in parameter. This rendered the tests effectively useless, since marker2 was never reached. gdb/testsuite/ChangeLog: * gdb.reverse/fstatat-reverse.exp: Set breakpoint on marker1 after reaching marker2. * gdb.reverse/getresuid-reverse.exp: Likewise. * gdb.reverse/pipe-reverse.exp: Likewise. * gdb.reverse/readv-reverse.exp: Likewise. * gdb.reverse/recvmsg-reverse.exp: Likewise. * gdb.reverse/time-reverse.exp: Likewise. * gdb.reverse/waitpid-reverse.exp: Likewise and add KFAILs. commit b9559b8bc4b3c0dffaf08569704a0484e1fb8080 Author: Marcin Kościelnicki Date: Tue Nov 3 11:28:19 2015 +0100 Add myself to gdb MAINTAINERS gdb/ChangeLog: * MAINTAINERS (Write After Approval): Add Marcin Kościelnicki. commit 4310e625bb94586d96a48191e65c9efa71525f0c Author: GDB Administrator Date: Tue Nov 3 00:00:08 2015 +0000 Automatic date update in version.in commit 854eb72b00ba46d65ce36dc3432f01e223ce44cb Author: Nick Clifton Date: Mon Nov 2 14:37:33 2015 +0000 Disassemble RX NOP instructions as such. opcode * rx.h (enum RX_Opcode_ID): Add more NOP opcodes. opcodes * rx-decode.opc (rx_decode_opcode): Decode extra NOP instructions. * rx-decode.c: Regenerate. tests * gas/rx/max.d: Update expecetd disassembly. * gas/rx/nod.d: Likewise. * gas/rx/nop.sm: Add tests of more NOP instructions. commit e292aa7a9529771c04e9578a2307b8c95bb5591c Author: Nick Clifton Date: Mon Nov 2 14:14:22 2015 +0000 Fix disassembly of RX zero-offset register indirect instructions. opcode * rx.h (enum RX_Operand_Type): Add RX_Operand_Zero_Indirect. opcodes * rx-decode.opc (rx_disp): If the displacement is zero, set the type to RX_Operand_Zero_Indirect. * rx-decode.c: Regenerate. * rx-dis (print_insn): Handle RX_Operand_Zero_Indirect. gas * config/rx-parse.y: Allow zero value for 5-bit displacements. tests * gas/rx/mov.sm: Add tests for zero offset indirect moves. * gas/rx/mov.d: Update expected output. commit a62e59897771e2f04fad908fc891714b9bd75d7b Author: Nick Clifton Date: Mon Nov 2 13:46:13 2015 +0000 Fix the RX assembler's section alignment parameter to use multiples of N rather than powers of N * config/tc-rx.c (parse_rx_section): Align parameter provides a multiple of n argument, not a power of n argument. commit 1e52a0735533acf8b50494bf4274f4d4c4e7683f Author: GDB Administrator Date: Mon Nov 2 00:00:07 2015 +0000 Automatic date update in version.in commit 6a727d6d3d0cb4fef7e02fb3ba87245eb266dc95 Author: GDB Administrator Date: Sun Nov 1 00:00:08 2015 +0000 Automatic date update in version.in commit 6e46b9c76c408269db2496add31514918c40d53c Author: GDB Administrator Date: Sat Oct 31 00:00:08 2015 +0000 Automatic date update in version.in commit d35ae83384324ec7a03a56600174b5e925510b74 Author: Pedro Alves Date: Fri Oct 30 16:00:43 2015 +0000 Don't displaced step when there's a breakpoint in the scratch pad range Assuming displaced stepping is enabled, and a breakpoint is set in the memory region of the scratch pad, things break. One of two cases can happen: #1 - The breakpoint wasn't inserted yet (all threads were stopped), so after setting up the displaced stepping scratch pad with the adjusted copy of the instruction we're trying to single-step, we insert the breakpoint, which corrupts the scratch pad, and the inferior executes the wrong instruction. (Example below.) This is clearly unacceptable. #2 - The breakpoint was already inserted, so setting up the displaced stepping scratch pad overwrites the breakpoint. This is OK in the sense that we already assume that no thread is going to executes the code in the scratch pad range (after initial startup) anyway. This commit addresses both cases by simply punting on displaced stepping if we have a breakpoint in the scratch pad range. The #1 case above explains a few regressions exposed by the AS/NS series on x86: Running ./gdb.dwarf2/callframecfa.exp ... FAIL: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa FAIL: gdb.dwarf2/callframecfa.exp: step 1 for call-frame-cfa FAIL: gdb.dwarf2/callframecfa.exp: step 2 for call-frame-cfa FAIL: gdb.dwarf2/callframecfa.exp: step 3 for call-frame-cfa FAIL: gdb.dwarf2/callframecfa.exp: step 4 for call-frame-cfa Running ./gdb.dwarf2/typeddwarf.exp ... FAIL: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:53 FAIL: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:53 FAIL: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:53 FAIL: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:53 FAIL: gdb.dwarf2/typeddwarf.exp: continue to breakpoint: continue to typeddwarf.c:73 FAIL: gdb.dwarf2/typeddwarf.exp: check value of w at typeddwarf.c:73 FAIL: gdb.dwarf2/typeddwarf.exp: check value of x at typeddwarf.c:73 FAIL: gdb.dwarf2/typeddwarf.exp: check value of y at typeddwarf.c:73 FAIL: gdb.dwarf2/typeddwarf.exp: check value of z at typeddwarf.c:73 Enabling "maint set target-non-stop on" implies displaced stepping enabled as well, and it's the latter that's to blame here. We can see the same failures with "maint set target-non-stop off + set displaced on". Diffing (good/bad) gdb.log for callframecfa.exp shows: @@ -99,29 +99,29 @@ Breakpoint 2 at 0x80481b0: file q.c, lin continue Continuing. -Breakpoint 2, func (arg=77) at q.c:2 +Breakpoint 2, func (arg=52301) at q.c:2 2 in q.c (gdb) PASS: gdb.dwarf2/callframecfa.exp: continue to breakpoint: continue to breakpoint for call-frame-cfa display arg -1: arg = 77 -(gdb) PASS: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa +1: arg = 52301 +(gdb) FAIL: gdb.dwarf2/callframecfa.exp: set display for call-frame-cfa The problem is here, when setting up the func call: Breakpoint 1, main (argc=-13345, argv=0x0) at q.c:7 7 in q.c (gdb) disassemble Dump of assembler code for function main: 0x080481bb <+0>: push %ebp 0x080481bc <+1>: mov %esp,%ebp 0x080481be <+3>: sub $0x4,%esp => 0x080481c1 <+6>: movl $0x4d,(%esp) 0x080481c8 <+13>: call 0x80481b0 0x080481cd <+18>: leave 0x080481ce <+19>: ret End of assembler dump. (gdb) disassemble /r Dump of assembler code for function main: 0x080481bb <+0>: 55 push %ebp 0x080481bc <+1>: 89 e5 mov %esp,%ebp 0x080481be <+3>: 83 ec 04 sub $0x4,%esp => 0x080481c1 <+6>: c7 04 24 4d 00 00 00 movl $0x4d,(%esp) 0x080481c8 <+13>: e8 e3 ff ff ff call 0x80481b0 0x080481cd <+18>: c9 leave 0x080481ce <+19>: c3 ret End of assembler dump. Note the breakpoint at main is set at 0x080481c1. Right at the instruction that sets up func's argument. Executing that instruction should write 0x4d to the address pointed at by $esp. However, if we stepi, the program manages to write 52301/0xcc4d there instead (0xcc is int3, the x86 breakpoint instruction), because the breakpoint address is 4 bytes inside the scratch pad location, which is 0x080481bd: (gdb) p 0x080481c1 - 0x080481bd $1 = 4 IOW, instead of executing: "c7 04 24 4d 00 00 00" [ movl $0x4d,(%esp) ] the inferior executes: "c7 04 24 4d cc 00 00" [ movl $0xcc4d,(%esp) ] gdb/ChangeLog: 2015-10-30 Pedro Alves * breakpoint.c (breakpoint_in_range_p) (breakpoint_location_address_range_overlap): New functions. * breakpoint.h (breakpoint_in_range_p): New declaration. * infrun.c (displaced_step_prepare_throw): If there's a breakpoint in the scratch pad range, don't displaced step. commit 4081c0f1222810746068579c6fbbcd8a9b59cbb8 Author: Yao Qi Date: Fri Oct 30 15:51:33 2015 +0000 Simplify gdb.threads/wp-replication.exp on counting HW watchpoints Nowadays, test gdb.threads/wp-replication.exp uses a while loop to repeatedly insert HW watchpoint, resume and check no error message coming out, in order to count HW watchpoints There are some drawbacks in this way, - the loop could be endless. I think this is use to making trouble to S/390, since we had such comment # Some targets (like S/390) behave as though supporting # unlimited hardware watchpoints. In this case we just take a # safe exit out of the loop. I hit this today too because a GDB internal error is triggered on "continue" in the loop, and $done is 0 invariantly, so the loop can't end. - the code counting hardware watchpoint is too complicated. We can use "set breakpoint always-inserted on" to get the result of inserting HW watchpoint without resuming the inferior. In this way, watch_count_done and empty_cycle in c file is no longer needed. In this patch, I change to use "set breakpoint always-inserted on" trick, and only iterate $NR_THREADS times, to count the HW watchpoint. In this way, the loop can't be endless, and GDB doesn't need to resume the inferior. gdb/testsuite: 2015-10-30 Yao Qi * gdb.threads/wp-replication.c (watch_count_done): Remove. (empty_cycle): Remove. (main): Don't call empty_cycle. Don't use watch_count_done. * gdb.threads/wp-replication.exp: Don't set breakpoint on empty_cycle. Rewrite the code counting HW watchpoints. commit 10268a4c0d64b3892397aeaafbc4b91f6a1e0dc8 Author: Marcin Kościelnicki Date: Fri Oct 30 15:52:02 2015 +0000 gdb/linux-record: Fix struct sizes for x32 While x32 syscall interface is mostly shared with x86_64, some syscalls are truly 32-bit. Correct sizes accordingly. gdb/ChangeLog: * amd64-linux-tdep.c (amd64_x32_linux_init_abi): Fix size_msghdr, size_stack_t, size_size_t, size_iovec. commit d9b19c4992e7384f12441bc13c0e22d4054b0487 Author: Marcin Kościelnicki Date: Fri Oct 30 15:52:02 2015 +0000 gdb/linux-record: Fix size_termios for x32, amd64, aarch64 60 bytes is the size of glibc's struct termios, the one used by kernel is 36 bytes long. gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Fix size_termios. * amd64-linux-tdep.c (amd64_linux_init_abi): Fix size_termios. (amd64_x32_linux_init_abi): Fix size_termios. commit c28ebe255ba37f4dcd295cf6a4608424aaeb699f Author: Marcin Kościelnicki Date: Fri Oct 30 15:52:01 2015 +0000 gdb/linux-record: TASK_COMM_LEN is 16 on ppc too gdb/ChangeLog: * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Fix TASK_COMM_LEN. commit ff83a547feacaea9263c04f527aba4faae77035f Author: Marcin Kościelnicki Date: Fri Oct 30 15:52:01 2015 +0000 gdb/linux-record: Fix old_select syscall handling We have to use extract_unsigned_integer to read paramaters structure - target pointers can have different endianness and size. gdb/ChangeLog: * linux-record.c (record_linux_system_call): Fix old_select. commit d2de23ad3916c9d6f6102688fdbd5fdc73053c43 Author: Marcin Kościelnicki Date: Fri Oct 30 15:52:00 2015 +0000 gdb/linux-record: Fix newfstatat handling The struct stat pointer is in the third argument, not the second. gdb/ChangeLog: * linux-record.c (record_linux_system_call): Fix newstatat. commit cb658d218b873a69b1f19971695f92d5db17a388 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:59 2015 +0000 gdb/linux-record: Fix [gs]etgroups16 syscall Memory size for getgroups16 needs to be multiplied by entry count, and only needs recording if the pointer is non-NULL. setgroups16, on the other hand, doesn't write to user memory and doesn't need special handling at all. gdb/ChangeLog: * linux-record.c (record_linux_system_call): Fix [gs]etgroups16. commit b80d067ff0a7d2fcca3f8c01abf4b7201e71b8f0 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:59 2015 +0000 gdb/linux-record: Support time, waitpid, pipe syscalls gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Add size_time_t. * amd64-linux-tdep.c (amd64_linux_init_abi): Add size_time_t. (amd64_x32_linux_init_abi): Add size_time_t. * arm-linux-tdep.c (arm_linux_init_abi): Add size_time_t. * i386-linux-tdep.c (i386_linux_init_abi): Add size_time_t. * linux-record.c (record_linux_system_call): Add time, waitpid, pipe handling. * linux-record.h (struct linux_record_tdep): Add size_time_t. * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Add size_time_t. commit 933c5a623f247c63b642988a2984f5ce9b558d27 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:58 2015 +0000 gdb/linux-record: Fix msghdr parsing on 64-bit targets The code failed to account for padding between the int and subsequent pointer present on 64-bit architectures. gdb/ChangeLog: * linux-record.c (record_linux_msghdr): Fix msg_namelen handling. commit 72aded8673d6cb2d0e33696e010a778e9bbfa817 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:58 2015 +0000 gdb/linux-record: Fix readdir and getdents handling getdents buffer size is given in bytes, not dirent entries (which have variable size anyway). We don't need size_dirent and size_dirent64 for this reason. readdir, on the other hand, needs size of old_linux_dirent, which is a somewhat different structure. Accordingly, rename size_dirent to size_old_dirent. gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * amd64-linux-tdep.c (amd64_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. (amd64_x32_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * arm-linux-tdep.c (arm_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * i386-linux-tdep.c (i386_linux_init_abi): Remove size_dirent{,64}, add size_old_dirent. * linux-record.c (record_linux_system_call): Fix handling of readdir and getdents{,64}. * linux-record.h (struct linux_record_tdep): Remove size_dirent{,64}, add size_old_dirent. * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Remove size_dirent{,64}, add size_old_dirent. commit 7571f7f297c8d8b4fb4657f84437b1d156957e16 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:57 2015 +0000 gdb/linux-record: Fix sizes of sigaction and sigset_t The values were mistakenly set to size of glibc's sigset_t (128 bytes) and sigaction (140 or 152 bytes) instead of the kernel ones. The kernel has 4 or 8 byte old_sigset_t, 8 byte sigset_t, 16 or 32 byte old_sigaction, 20 or 32 byte sigaction. gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Fix size_sigaction, size_sigset_t, size_old_sigaction, size_old_sigset_t. * amd64-linux-tdep.c (amd64_linux_init_abi): Fix size_sigaction, size_sigset_t, size_old_sigaction, size_old_sigset_t. (amd64_x32_linux_init_abi): Fix size_sigaction, size_sigset_t, size_old_sigaction, size_old_sigset_t. * arm-linux-tdep.c (arm_linux_init_abi): Fix size_sigaction, size_old_sigaction, size_old_sigset_t. * i386-linux-tdep.c (i386_linux_init_abi): Fix size_sigaction, size_old_sigaction, size_old_sigset_t. * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Fix size_sigaction, size_sigset_t, size_old_sigaction, size_old_sigset_t. commit d625f9a988e2b7d4a3c43e477af1d94a6ec8bda7 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:56 2015 +0000 gdb/linux-record: Fix size_[ug]id values i386 and arm wrongly set them to 2, when it should be 4. size_[ug]id is used by getgroups32 etc syscalls, while size_old_[ug]id is used for getgroups16 and friends. gdb/ChangeLog: * arm-linux-tdep.c (arm_linux_init_abi): Fix size_[ug]id. * i386-linux-tdep.c (i386_linux_init_abi): Fix size_[ug]id. commit aefb52a69351517dbcfaafca1d21e5431d4119d1 Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:56 2015 +0000 gdb/linux-record: Remove size_siginfo It's a duplicate of size_siginfo_t. gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_init_abi): Remove size_siginfo. * amd64-linux-tdep.c (amd64_linux_init_abi): Remove size_siginfo. (amd64_x32_linux_init_abi): Remove size_siginfo. * arm-linux-tdep.c (arm_linux_init_abi): Remove size_siginfo. * i386-linux-tdep.c (i386_linux_init_abi): Remove size_siginfo. * linux-record.c (record_linux_system_call): Change size_siginfo to size_siginfo_t. * linux-record.h (struct linux_record_tdep): Remove size_siginfo. * ppc-linux-tdep.c (ppc_init_linux_record_tdep): Remove size_siginfo. commit 452b4ba5f70df5b8b2332bcadd46eec95273b50b Author: Marcin Kościelnicki Date: Fri Oct 30 15:51:55 2015 +0000 gdb/record: Add testcases for a few syscalls. gdb/testsuite/ChangeLog: * gdb.reverse/fstatat-reverse.c: New test. * gdb.reverse/fstatat-reverse.exp: New file. * gdb.reverse/getresuid-reverse.c: New test. * gdb.reverse/getresuid-reverse.exp: New file. * gdb.reverse/pipe-reverse.c: New test. * gdb.reverse/pipe-reverse.exp: New file. * gdb.reverse/readv-reverse.c: New test. * gdb.reverse/readv-reverse.exp: New file. * gdb.reverse/recvmsg-reverse.c: New test. * gdb.reverse/recvmsg-reverse.exp: New file. * gdb.reverse/time-reverse.c: New test. * gdb.reverse/time-reverse.exp: New file. * gdb.reverse/waitpid-reverse.c: New test. * gdb.reverse/waitpid-reverse.exp: New file. commit 7ea45d72f91e22cf6c9dfa23c79ec24a5118c6d3 Author: Simon Marchi Date: Fri Oct 30 11:50:00 2015 -0400 gdbserver/proc-service.c: Change CORE_ADDR cast to uintptr_t Fixes on i386: ../../../binutils-gdb/gdb/gdbserver/proc-service.c: In function ps_pdread: ../../../binutils-gdb/gdb/gdbserver/proc-service.c:83:25: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] ../../../binutils-gdb/gdb/gdbserver/proc-service.c: In function ps_pdwrite: ../../../binutils-gdb/gdb/gdbserver/proc-service.c:93:30: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] I could have kept both casts: (CORE_ADDR) (uintptr_t) addr but it's cleaner this way. The uintptr_t implicitely gets promoted to a CORE_ADDR, which is at least as long as uintptr_t. gdb/gdbserver/ChangeLog: * proc-service.c (ps_pdread): Change CORE_ADDR cast to uintptr_t. (ps_pdwrite): Likewise. commit 26f187cd169e484ac2b8ac3f9ece55a597caadf9 Author: Nick Clifton Date: Fri Oct 30 12:50:27 2015 +0000 Updated (simplified) Chinese translations for ld, bfd, binutils and gold. * po/zh_CN.po: Updated (simplified) Chinese translation. commit 1b1149fadbe85fe74cc3a1d7faaeb63549371026 Author: GDB Administrator Date: Fri Oct 30 00:00:17 2015 +0000 Automatic date update in version.in commit 692916105d13be0ca5588bf8aa94b8ba04239269 Author: Henrik Wallin Date: Wed Oct 14 13:14:26 2015 +0200 gdbserver: Move pointer dereference to after assert checks. gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_new_thread): Move pointer dereference to after assert checks. Signed-off-by: Henrik Wallin commit b42945fd28b881e23016ce2efaf5fd83d5038f34 Author: Simon Marchi Date: Thu Oct 29 14:15:08 2015 -0400 Add/adjust casts in gdbserver's proc-service The casts are required because ps_pd{read,write} must respect a fixed interface. gdb/gdbserver/ChangeLog: * proc-service.c (ps_pdread): Add/adjust casts. (ps_pdwrite): Add/adjust casts. commit d2242e347a25dc15fbf7286975e3baba143deea9 Author: Pedro Alves Date: Thu Oct 29 16:18:30 2015 +0000 mdebugread.c: Address class -> address class index This fixes this error in C++ mode: /home/pedro/gdb/mygit/cxx-convertion/src/gdb/mdebugread.c:654:11: error: invalid conversion from ‘int’ to ‘address_class’ [-fpermissive] theclass = mdebug_register_index; ^ The "theclass" local is of type enum address_class, however, what it really holds is an address class index. Class index values by design match the address class values up until LOC_FINAL_VALUE, but extend beyond that, so it's not really right to store an address class index in an enum address_class. The fix is really the same making the 'theclass' local be of type int, but while we're at it, we get rid of the goto, and thus the local becomes the 'aclass_index' parameter in the new add_data_symbol function. gdb/ChangeLog: 2015-10-29 Pedro Alves * mdebugread.c (add_data_symbol): New function, factored out from ... (parse_symbol): ... here. Delete 'theclass' local. commit cb0a2700865a77a111994ced22fd68815e5eed63 Author: Simon Marchi Date: Thu Oct 29 13:41:14 2015 -0400 Add a cast in jit_target_read_impl We could change the signature of the function. However, it would require changing gdb_target_read in jit-reader.h, which is an exported interface. It's probably better to just add a cast in our code than to break other people's code. gdb/ChangeLog: * jit.c (jit_target_read_impl): Add cast. commit 15cf126c04a3720fb856f7f3bfb56869d5855939 Author: Simon Marchi Date: Thu Oct 29 13:41:14 2015 -0400 Cast gdb_dlsym return value gdb/ChangeLog: * jit.c (jit_reader_load): Add cast. commit d6f85c8421acaf09fa5a25ae2621819889d54038 Author: Simon Marchi Date: Thu Oct 29 13:41:13 2015 -0400 gdbserver/server.c: Cast return value of memmem gdb/gdbserver/ChangeLog: * server.c (handle_search_memory_1): Cast return value of memmem. commit f98cd059076c64cdb94b9743c544458b2b91716c Author: Simon Marchi Date: Thu Oct 29 13:41:13 2015 -0400 Change type of write_qxfer_response parameter Fixes: /home/simark/src/binutils-gdb/gdb/gdbserver/server.c: In function ‘int write_qxfer_response(char*, const void*, int, int)’: /home/simark/src/binutils-gdb/gdb/gdbserver/server.c:398:32: error: invalid conversion from ‘const void*’ to ‘const gdb_byte* {aka const unsigned char*}’ [-fpermissive] &out_len, PBUFSIZ - 2) + 1; ^ gdb/gdbserver/ChangeLog: * server.c (write_qxfer_response): Change type of data to gdb_byte *. commit b40699581c0d390e653f36a5bba99f13cf9763a0 Author: Simon Marchi Date: Thu Oct 29 13:41:12 2015 -0400 dwarf2read.c: Add cast There is no enum value representing 0. It seems like the value of the name field is irrelevant here. gdb/ChangeLog: * dwarf2read.c (partial_die_full_name): Add cast. commit 7535d5edeaa5cfa5ba369e8d3ffb47972483394a Author: Pedro Alves Date: Thu Oct 29 15:25:08 2015 +0000 Add cast to VEC_iterate Fixes this in C++: ../../src/gdb/break-catch-sig.c: In function ‘int VEC_gdb_signal_type_iterate(const VEC_gdb_signal_type*, unsigned int, gdb_signal_type*)’: ../../src/gdb/common/vec.h:576:12: error: invalid conversion from ‘int’ to ‘gdb_signal_type {aka gdb_signal}’ [-fpermissive] *ptr = 0; \ ^ ../../src/gdb/common/vec.h:417:1: note: in expansion of macro ‘DEF_VEC_FUNC_P’ DEF_VEC_FUNC_P(T) \ ^ ../../src/gdb/break-catch-sig.c:37:1: note: in expansion of macro ‘DEF_VEC_I’ DEF_VEC_I (gdb_signal_type); ^ I actually carried a different fix in the C++ branch that removed this assignment and then adjusted all callers that depended on it. The thinking was that this is for the case where we're returning false, indicating end of iteration. But that results in a much larger and tricker patch; looking back it seems quite pointless. I looked at the history of GCC's C++ conversion and saw that they added this same cast to their version of vec.h, FWIW. (GCC's vec.h is completely different nowadays, having been converted to templates meanwhile.) gdb/ChangeLog: 2015-10-29 Pedro Alves * common/vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T. commit fa4c39cb5139e3fcd27bb486a6331297e343d248 Author: Pedro Alves Date: Thu Oct 29 15:25:00 2015 +0000 guile/: Add enum cast gdb/ChangeLog: 2015-10-29 Pedro Alves * guile/scm-frame.c (gdbscm_unwind_stop_reason_string): Add cast. commit e681cf3fe50d3c8d17dabde079bbd949a59ef53a Author: Eli Zaretskii Date: Thu Oct 29 19:25:28 2015 +0200 Disable paging when run by Emacs 25.1 and later. gdb/ChangeLog: * utils.c (init_page_info): Disable paging if INSIDE_EMACS is set in the environment. commit ebf05345dadb3fcb232cb788a9126e563f6bb767 Author: Pedro Alves Date: Thu Oct 29 17:23:34 2015 +0000 gnu-v2-abi.c: Add casts I looked at changing these is_destructor_name/is_constructor_name interfaces in order to detangle the boolean result from the ctor/dtor kind return, but then realized that this design goes all the way down to the libiberty demangler interfaces. E.g, include/demangle.h: ~~~ /* Return non-zero iff NAME is the mangled form of a constructor name in the G++ V3 ABI demangling style. Specifically, return an `enum gnu_v3_ctor_kinds' value indicating what kind of constructor it is. */ extern enum gnu_v3_ctor_kinds is_gnu_v3_mangled_ctor (const char *name); enum gnu_v3_dtor_kinds { gnu_v3_deleting_dtor = 1, gnu_v3_complete_object_dtor, gnu_v3_base_object_dtor, /* These are not part of the V3 ABI. Unified destructors are generated as a speed-for-space optimization when the -fdeclone-ctor-dtor option is used, and are always internal symbols. */ gnu_v3_unified_dtor, gnu_v3_object_dtor_group }; ~~~ libiberty/cp-demangle.c: ~~~ enum gnu_v3_ctor_kinds is_gnu_v3_mangled_ctor (const char *name) { enum gnu_v3_ctor_kinds ctor_kind; enum gnu_v3_dtor_kinds dtor_kind; if (! is_ctor_or_dtor (name, &ctor_kind, &dtor_kind)) return (enum gnu_v3_ctor_kinds) 0; return ctor_kind; } ~~~ etc. gdb/ChangeLog: 2015-10-29 Pedro Alves * gnu-v2-abi.c (gnuv2_is_destructor_name) (gnuv2_is_constructor_name): Add casts. commit 41e83f2b16ec57fb7e163c19fc315c86e4994b2e Author: H.J. Lu Date: Thu Oct 29 08:47:12 2015 -0700 Make GOT entry size target-dependent The GOT entry size is target-dependent. This patch adds a got_entry_size function to Sized_target class so that a target can provide a value different from default. PR gold/19184 * incremental.cc (Got_plt_view_info): Add got_entry_size. (Local_got_offset_visitor::visit): Replace got_entry_size_ with info_.got_entry_size. (Local_got_offset_visitor::got_entry_size_): Removed. (Global_got_offset_visitor::visit): Replace got_entry_size_ with info_.got_entry_size. (Global_got_offset_visitor::got_entry_size_): Removed. (Output_section_incremental_inputs::write_got_plt): Initialize view_info.got_entry_size. * target.h (Sized_target::got_entry_size): New virtual function. * x86_64.cc (Target_x86_64::got_entry_size): New function. commit b10a8bc7de0087b5c509b4b0831e606b56b6702c Author: H.J. Lu Date: Thu Oct 29 09:18:57 2015 -0700 Also check GOTPCRELX * ld-x86-64/plt-main3.rd: Also check GOTPCRELX. commit ca9584fb9b4a54232d2538de9f75b1916bda00fe Author: Catherine Moore Date: Thu Oct 29 06:58:16 2015 -0700 2015-10-29 Catherine Moore bfd/ * elfxx-mips.c (mips_elf_check_mips16_stubs): Set a stub's output section to bfd_abs_section_ptr if the stub is discarded. ld/testsuite/ * ld-mips-elf/mips16-fp-stub-1.s: New. * ld-mips-elf/mips16-fp-stub-2.s: New. * ld-mips-elf/mips16-fp-stub.d: New. * ld-mips-elf/mips-elf.exp: Run new tests. * ld-mips-elf/mips16-intermix.d: Update expected output. https://sourceware.org/ml/binutils/2015-10/msg00137.html commit a75cf613fd7d0a48d526a996ff5c250c599d3ab7 Author: Ed Schouten Date: Thu Oct 29 13:49:03 2015 +0000 Add support for AArch64 CloudABI binaries. ld * Makefile.am (ALL_64_EMULATION_SOURCES): Add support for CloudABI on aarch64. For this target we have to make sure we use ELFOSABI_CLOUDABI instead of ELFOSABI_NONE. * configure.tgt (targ_emul): Likewise. * emulparams/aarch64cloudabi.sh: New file. * emulparams/aarch64cloudabib.sh: New file. * Makefile.in: Regenerate. bfd * config.bfd (targ_defvec): Add support for CloudABI on aarch64. For this target we have to make sure we use ELFOSABI_CLOUDABI instead of ELFOSABI_NONE. * configure.ac (tb): Likewise. * elfnn-aarch64.c: Likewise. * targets.c (_bfd_target_vector): Likewise. * configure: Regenerate. gas * config/tc-aarch64.c (elf64_aarch64_target_format): Select the cloudabi format if the TARGET_OS is cloudabi. commit 968bc5cc86bff4ebf89e63bf99db7c7e777d4756 Author: Pedro Alves Date: Thu Oct 29 12:55:03 2015 +0000 bfd/libhppa.h: Make C++ compatible Fixes this when GDB is built in C++ mode: In file included from /home/pedro/gdb/mygit/src/gdb/../bfd/som.h:27:0, from /home/pedro/gdb/mygit/src/gdb/somread.c:31: /home/pedro/gdb/mygit/src/gdb/../bfd/libhppa.h: In function ‘int bfd_hppa_insn2fmt(bfd*, int)’: /home/pedro/gdb/mygit/src/gdb/../bfd/libhppa.h:380:42: error: invalid conversion from ‘int’ to ‘hppa_opcode_type’ [-fpermissive] #define get_opcode(insn) (((insn) >> 26) & 0x3f) ^ /home/pedro/gdb/mygit/src/gdb/../bfd/libhppa.h:465:30: note: in expansion of macro ‘get_opcode’ enum hppa_opcode_type op = get_opcode (insn); ^ bfd/ChangeLog: 2015-10-29 Pedro Alves * libhppa.h (bfd_hppa_insn2fmt): Add cast. commit d2412fa5d0051f7eb7b13aaf98173b5d9a55d132 Author: Pedro Alves Date: Thu Oct 29 12:55:02 2015 +0000 gdbserver/mem-break.c: Add cast ... for C++. Fixes: gdb/gdbserver/mem-break.c:204:28: error: invalid conversion from 'int' to 'bkpt_type' [-fpermissive] gdb/gdbserver/ChangeLog: 2015-10-29 Pedro Alves * mem-break.c (Z_packet_to_bkpt_type): Add cast. commit c17414a2a4de406c1aa55882b25a1644ba26f555 Author: Pedro Alves Date: Thu Oct 29 12:55:02 2015 +0000 gdbserver/tracepoint: Add casts out of tpoint->handle ... as needed for C++. tpoint->handle is a generic 'void *' handle. gdb/gdbserver/ChangeLog: 2015-10-29 Pedro Alves * tracepoint.c (clear_installed_tracepoints): Add casts. commit e053fbc44f32c12a67f4bcd9f01142b4e043496c Author: Pedro Alves Date: Thu Oct 29 12:55:02 2015 +0000 gdbserver: enum gdb_signal casts This is code parsing RSP signal numbers, checking whether the numbers are indeed valid/known GDB signals, and then converting to host signal numbers. I considered adding temporary enum gdb_signal variables instead, but didn't really like the result. gdb/gdbserver/ChangeLog: 2015-10-29 Pedro Alves * server.c (handle_v_cont, process_serial_event): Add enum gdb_signal casts to signal parsing code. commit add67df84c59a6c28111d65e8d0a7e6b4994cdb1 Author: Pedro Alves Date: Thu Oct 29 12:55:02 2015 +0000 gdbserver: btrace enums Fixes: ../../../src/gdb/gdbserver/linux-low.c: In function ‘int linux_low_read_btrace(btrace_target_info*, buffer*, int)’: ../../../src/gdb/gdbserver/linux-low.c:6827:48: error: invalid conversion from ‘int’ to ‘btrace_read_type’ [-fpermissive] err = linux_read_btrace (&btrace, tinfo, type); ^ In file included from ../../../src/gdb/gdbserver/linux-low.c:98:0: ../../../src/gdb/gdbserver/../nat/linux-btrace.h:116:26: error: initializing argument 3 of ‘btrace_error linux_read_btrace(btrace_data*, btrace_target_info*, btrace_read_type)’ [-fpermissive] extern enum btrace_error linux_read_btrace (struct btrace_data *btrace, ^ The cyclic dependency the comment talks about is no longer relevant: https://sourceware.org/ml/gdb-patches/2015-10/msg00643.html gdb/gdbserver/ChangeLog: 2015-10-29 Pedro Alves * linux-low.c (linux_low_read_btrace): Change type of 'type' parameter. * server.c (handle_qxfer_btrace): Change type of 'type' local. * target.h (struct target_ops) : Change type of 'type' parameter. Update comment. commit 50bc912a2074c974c9c5074e674e9149a33b64c2 Author: Pedro Alves Date: Thu Oct 29 12:55:02 2015 +0000 gdbserver/Linux: Introduce NULL_REGSET Fixes errors like: src/gdb/gdbserver/linux-x86-low.c:477:1: error: invalid conversion from 'int' to 'regset_type' [-fpermissive] gdb/gdbserver/ChangeLog: 2015-10-29 Pedro Alves * linux-low.h (NULL_REGSET): Define. * linux-aarch64-low.c (aarch64_regsets): Use NULL_REGSET. * linux-arm-low.c (arm_regsets): Likewise. * linux-crisv32-low.c (cris_regsets): Likewise. * linux-m68k-low.c (m68k_regsets): Likewise. * linux-mips-low.c (mips_regsets): Likewise. * linux-nios2-low.c (nios2_regsets): Likewise. * linux-ppc-low.c (ppc_regsets): Likewise. * linux-s390-low.c (s390_regsets): Likewise. * linux-sh-low.c (sh_regsets): Likewise. * linux-sparc-low.c (sparc_regsets): Likewise. * linux-tic6x-low.c (tic6x_regsets): Likewise. * linux-tile-low.c (tile_regsets): Likewise. * linux-x86-low.c (x86_regsets): Likewise. * linux-xtensa-low.c (xtensa_regsets): Likewise. commit 44a8b4df1d6f5b8096f01787751fd51c42e78fc6 Author: Pedro Alves Date: Thu Oct 29 12:55:01 2015 +0000 Add cast to exception_none Fixes, in C++ mode: ../../src/gdb/common/common-exceptions.c:23:69: error: invalid conversion from ‘int’ to ‘return_reason’ [-fpermissive] const struct gdb_exception exception_none = { 0, GDB_NO_ERROR, NULL }; ^ (I considered adding an enum value for '0', but the code and comments around return_reason and its uses explain how 0 is special/internal, so I'm leaving it be.) gdb/ChangeLog: 2015-10-29 Pedro Alves * common/common-exceptions.c (exception_none): Add cast. commit e3bdafe2bac1672da335fde734b337c5504e5437 Author: Pedro Alves Date: Thu Oct 29 12:55:01 2015 +0000 compile: Rename struct type_map_instance::gcc_type field Fixes: src/gdb/compile/compile-c-types.c:36:12: error: declaration of ‘gcc_type type_map_instance::gcc_type’ [-fpermissive] gcc_type gcc_type; ^ In file included from src/gdb/../include/gcc-c-interface.h:23:0, from src/gdb/compile/compile-internal.h:21, from src/gdb/compile/compile-c-types.c:23: src/gdb/../include/gcc-interface.h:32:28: error: changes meaning of ‘gcc_type’ from ‘typedef long long unsigned int gcc_type’ [-fpermissive] typedef unsigned long long gcc_type; ^ src/gdb/compile/compile-c-types.c: In function ‘gcc_type convert_qualified(compile_c_instance*, type*)’: src/gdb/compile/compile-c-types.c:310:19: error: invalid conversion from ‘int’ to ‘gcc_qualifiers’ [-fpermissive] quals); ^ gdb/ChangeLog: 2015-10-29 Pedro Alves * compile/compile-c-types.c (struct type_map_instance) : Rename to gcc_type_handle. (insert_type, convert_type): Adjust. commit 9c6595ab6873e15fe533b05bb7b98c11f17c5d57 Author: Pedro Alves Date: Thu Oct 29 12:55:01 2015 +0000 Don't assume break/continue inside a TRY block works In C++, this: try { break; } catch (..) {} is invalid. However, because our TRY/CATCH macros support it in C, the C++ version of those macros support it too. To catch such assumptions, this adds a (disabled) hack that maps TRY/CATCH to raw C++ try/catch. Then it goes through all instances that building on x86_64 GNU/Linux trips on, fixing them. This isn't strictly necessary yet, but I think it's nicer to try to keep the tree in a state where it's easier to eliminate the TRY/CATCH macros. gdb/ChangeLog: 2015-10-29 Pedro Alves * dwarf2-frame-tailcall.c (dwarf2_tailcall_sniffer_first): Don't assume that "break" breaks out of a TRY/CATCH. * python/py-framefilter.c (py_print_single_arg): Don't assume "continue" breaks out of a TRY/CATCH. * python/py-value.c (valpy_binop_throw): New function, factored out from ... (valpy_binop): ... this. (valpy_richcompare_throw): New function, factored out from ... (valpy_richcompare): ... this. * solib.c (solib_read_symbols): Don't assume "break" breaks out of a TRY/CATCH. * common/common-exceptions.h [USE_RAW_CXX_TRY] : Define as 1-1 wrappers around try/catch. commit f82aa1657b7254ab634bfcce7354770478c31686 Author: Nick Clifton Date: Thu Oct 29 10:45:10 2015 +0000 Fix reporting of command line options that need an argument, but which occur as the last option on the command line. PR ld/19146 * lexsup.c (parse_args): Correct error message for an option that is missing its argument if that option is the last one on the command line. commit 936384714fa8b0f7ca8cc3b5637394461bc998c8 Author: Alan Modra Date: Thu Oct 29 16:16:22 2015 +1030 Re: Orphan output section with multiple input sections The last patch missed handling the case where the ideal place to put an orphan was after a non-existent output section statement, as can happen when not using the builtin linker scripts. This patch uses the updated flags for that case too, and extends the support to mmo and pe. PR ld/19162 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Pass updated flags to lang_output_section_find_by_flags. * emultempl/mmo.em (mmo_place_orphan): Merge flags for any other input sections that might match a new output section to decide placement. * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise. * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise. * ldlang.c (lang_output_section_find_by_flags): Add sec_flags param. * ldlang.h (lang_output_section_find_by_flags): Update prototype. commit d85063237a6a579905f9a3ead5749fb4e931dec3 Author: Matthias Klose Date: Thu Oct 29 16:03:33 2015 +1030 fix typo in ld's texinfo * ld.texinfo (Options <-rpath>): Fix typo. commit 941c9cadbb254c37b945e55379b5fd4006034129 Author: Thomas Preud'homme Date: Thu Oct 15 10:37:55 2015 +0800 Fix CPS availability. 2015-10-29 Thomas Preud'homme gas/ * config/tc-arm.c (insns): Guard cps by arm_ext_v6_notm instead of arm_ext_v6_dsp. commit 5d2b446244becdd4a67d7f216ab64cf120275c8e Author: GDB Administrator Date: Thu Oct 29 00:00:08 2015 +0000 Automatic date update in version.in commit 238830c697fdfca5c9cbb0bbb24fd215f643a934 Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:16 2015 +0200 Add __attribute__((__aligned__(1))) to unaligned symbols from scripts (for s390). gold/ * testsuite/binary_test.cc: Add __attribute__((aligned(1))). * testsuite/script_test_12a.c: Likewise. * testsuite/script_test_1a.cc: Likewise. * testsuite/script_test_2.cc: Likewise. commit bd890911dac4a201cb08c54ad5a7444b7306151d Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:15 2015 +0200 Make debug_msg.sh more open-minded about line numbers (needed for s390). gold/ * testsuite/debug_msg.sh: Accept more fuzz in line numbers. commit a817ff49c331c180f5b75cff4da1c338366c5d4e Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:14 2015 +0200 Fix empty string alignment in .rodata.str* gold/ PR gold/18959 * stringpool.cc (Stringpool_template::new_key_offset): Align all strings, even zero-length. (Stringpool_template::set_string_offsets): commit e79a4bad70029595e43cc536c0d1e60d5d6ee115 Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:13 2015 +0200 Add s390 backend. elfcpp/ * s390.h: New file. gold/ * s390.cc: New file. * Makefile.am (TARGETSOURCES): Add s390.cc. (ALL_TARGETOBJS): Add s390.o. * Makefile.in: Regenerate. * configure.ac: Add s390 support. * configure: Regenerate. * configure.tgt: Add s390-*-* and s390x-*-*. * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Add s390 support. commit 6f97897dbef256a80fb08c561b7f447aacf4bdf1 Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:12 2015 +0200 Add 64-bit archive support. gold/ * archive.cc (Archive::sym64name): New const. (Archive::setup): Add support for SYM64 armap. (Archive::read_armap): Likewise. (Archive::interpret_header): Likewise. (Archive::const_iterator::read_next_header): Likewise. * archive.h (Archive::sym64name): New const. (Archive::read_armap): Add mapsize template parameter. commit 8d9743bd43d7c3123bfee2287e879dde0ac9bba4 Author: Marcin Kościelnicki Date: Mon Oct 5 16:57:11 2015 +0200 Support 64-bit entry size in SHT_HASH (for s390). gold/ * dynobj.cc (Dynobj::create_elf_hash_table): Create hash table with target-specific entry size. (Dynobj::sized_create_elf_hash_table): Add size template parameter. * dynobj.h (Dynobj::sized_create_elf_hash_table): Likewise. * layout.cc (Layout::create_dynamic_symtab): Set entsize to hash_entry_size. * target.h (Target::hash_entry_size): New method. (Target::Target_info::hash_entry_size): New data member. * aarch64.cc (Target_aarch64::aarch64_info): Add hash_entry_size. * arm.cc (Target_arm::arm_info): Likewise. (Target_arm_nacl::arm_nacl_info): Likewise. * i386.cc (Target_i386::i386_info): Likewise. (Target_i386_nacl::i386_nacl_info): Likewise. (Target_iamcu::iamcu_info): Likewise. * mips.cc (Target_mips::mips_info): Likewise. (Target_mips_nacl::mips_nacl_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_info): Likewise. * sparc.cc (Target_sparc::sparc_info): Likewise. * tilegx.cc (Target_tilegx::tilegx_info): Likewise. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. (Target_x86_64_nacl::x86_64_nacl_info): Likewise. * testsuite/testfile.cc (Target_test::test_target_info): Likewise. commit 93084fcd9b85e9f982b75f63f366081f5fe8e2d8 Author: Simon Dardis Date: Wed Oct 28 09:52:17 2015 -0700 Move encoded as 'or' in binutils. A patch (http://sourceware.org/ml/binutils/2015-07/msg00376.html) submitted to binutils will be encoding move as an 'or' instruction over [d]addu in assembly and various code stubs. This patch for gdb addresses that change for the mips specific parts of gdb. gdb/ChangeLog: * mips-linux-tdep.c (mips_linux_in_dynsym_stub): Recognise 'or' as move along with [d]addu. commit 3043c1aba16b1b5bfdf6813d90ec661988ddfa3f Author: H.J. Lu Date: Wed Oct 28 09:15:17 2015 -0700 Check R_386_GOT32/R_386_GOT32X without base register The R_386_GOT32 and R_386_GOT32X relocations may be used without base register: movl bar@GOT, %eax Its calculation is G + A, instead of G + A - GOT, and it can only used to generate non-PIC executable. Include the .got.plt section address for R_386_GOT32 and R_386_GOT32X relocations without base register. Don't allow R_386_GOT32 and R_386_GOT32X relocations without base register when making a PIC output. PR gold/19177 * i386.cc (Target_i386::Relocate::relocate): Check R_386_GOT32 and R_386_GOT32X relocations without base register. commit a3718e9efd2e0035dc0c008c754309edd8d5ae28 Author: H.J. Lu Date: Wed Oct 28 09:03:59 2015 -0700 Fix a typo in comment in elf32-i386.c * elf32-i386.c (elf_i386_relocate_section): Fix a typo in comment. commit 0e3536f9844e6a6c7a882387ad5d765944f510ad Author: Nick Clifton Date: Wed Oct 28 15:30:05 2015 +0000 Add tests for 16-bit versions of ARM teq, tst, cmp and cmn instructions. * gas/arm/pinsn.s: New. * gas/arm/pinsn.d: Likewise. commit 43cdf5aeb8ae6ac2ec3bdbf636cbb2731ccbbb2a Author: Yao Qi Date: Mon Oct 5 11:15:58 2015 +0100 Pass noaliases_p to aarch64_decode_insn Nowadays aarch64_decode_insn is a public interface used by both opcodes and gdb. However, its behaviour relies on a global variable no_aliases, which isn't a good practise. On the other hand, In default, no_aliases is zero, but in GDB, we do want no alias when decoding instructions for prologue analysis (patches to be posted), so that we can handle both instructions "add" and "mov" (an alias of "add") as "add". The code in GDB can be simplified. This patch adds a new argument in aarch64_decode_insn, and pass no_aliases to it. In GDB side, always pass 1 to it. include/opcode: 2015-10-28 Yao Qi * aarch64.h (aarch64_decode_insn): Update declaration. opcodes: 2015-10-28 Yao Qi * aarch64-dis.c (aarch64_decode_insn): Add one argument noaliases_p. Update comments. Pass noaliases_p rather than no_aliases to aarch64_opcode_decode. (print_insn_aarch64_word): Pass no_aliases to aarch64_decode_insn. gdb: 2015-10-28 Yao Qi * aarch64-tdep.c (aarch64_software_single_step): Pass 1 to aarch64_decode_insn. commit 82188b295de579bee5f68de9f4d76ce4a3d41aa9 Author: Nick Clifton Date: Wed Oct 28 13:52:11 2015 +0000 Fix recent STM324LXX patch to compile on 32-bit hosts. * elf32-arm.c (create_instruction_branch_absolute): Replace pointer parameters with a simple integer parameter. (stm32l4xx_create_replacing_stub_ldmia): Update calls to create_instruction_branch_absolute. (stm32l4xx_create_replacing_stub_ldmdb): Likewise. (stm32l4xx_create_replacing_stub_vldm): Likewise. (elf32_arm_write_section): Use pointer type for veneer addresses. commit 6f4b1afcdc8317280669d020765b8215110c4584 Author: Cupertino Miranda Date: Wed Oct 28 13:48:00 2015 +0000 Fix errors in the gas testsuite for the ARC target. bfd * reloc.c (BFD_RELOC_ARC_32_PCREL): New entry. (ARC_TLS_DTPOFF): Arrange it in order. * elf32-arc.c (arc_elf_howto_ini): Update formula. (get_middle_endian_relocation): New function. (PDATA): Define. * bfd-in2.h: Regenerate. * libbfd.h: Likewise. elf * arc-reloc.def (ARC_32_PCREL): New definition. gas * config/tc-arc.c (tokenize_arguments): Avoid creating unused symbols when parsing relocation types. (md_apply_fix): Handle TLS relocations. Fix BFD_RELOC_ARC_32_PCREL relocation. (arc_check_reloc): Emit BFD_RELOC_ARC_32_PCREL relocation. commit 7963511fbf0459fff586c3129705bfbc706770e3 Author: H.J. Lu Date: Wed Oct 28 03:20:55 2015 -0700 Add a test for PR ld/19162 PR ld/19162 * ld-x86-64/x86-64.exp: Run pr19162. * ld-x86-64/pr19162.d: New file. * ld-x86-64/pr19162a.s: Likewise. * ld-x86-64/pr19162b.s: Likewise. commit 199af1503922ce2134d774a78be0d9e2ae055ab1 Author: Alan Modra Date: Wed Oct 28 17:18:13 2015 +1030 Orphan output section with multiple input sections If given input sections with differing flags, we'd like to place the section according to the final output section flags. bfd/ PR ld/19162 * elflink.c (_bfd_elf_gc_mark_reloc): Move code iterating over linker input bfds.. * section.c (bfd_get_next_section_by_name): ..to here. Add ibfd param. (bfd_get_linker_section): Adjust bfd_get_next_section_by_name call. * tekhex.c (first_phase): Likewise. * elflink.c (bfd_elf_gc_sections): Likewise. * bfd-in2.h: Regenerate. ld/ PR ld/19162 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Check flags before calling _bfd_elf_match_sections_by_type. Merge flags for any other input sections that might match a new output section to decide placement. commit 26656b1dc6c00f2eea0d329cc2637aebf3da1458 Author: GDB Administrator Date: Wed Oct 28 00:00:18 2015 +0000 Automatic date update in version.in commit 4d2f5d5824be99326c2c3e459c298e338856d8c8 Author: Han Shen Date: Tue Oct 27 15:17:54 2015 -0700 Patch for PR gold/19042 - unsupported reloc 311/312. gold/ * aarch64.cc (Target_aarch64::Scan::local): Add support for reloc 311/312. commit b80c3053162ec5533e120ee4e4ed30296d4c5fb2 Author: Pedro Alves Date: Tue Oct 27 17:25:09 2015 +0000 Make host_address_to_string/gdb_print_host_address cast parameter to 'void *' Fixes a set of errors like: ../../src/gdb/symfile-debug.c: In function ‘int debug_qf_map_symtabs_matching_filename(objfile*, const char*, const char*, int (*)(symtab*, void*), void*)’: ../../src/gdb/symfile-debug.c:137:39: error: invalid conversion from ‘int (*)(symtab*, void*)’ to ‘const void*’ [-fpermissive] host_address_to_string (callback), ^ Note this has to work with data and function pointers. In C++11 we may perhaps do something a bit safer, but we're not there yet, and I don't think it really matters. For now just always do a simple C-style cast in host_address_to_string itself. No point in adding a void * cast to each and every caller. gdb/ChangeLog: 2015-10-27 Pedro Alves * common/print-utils.c (host_address_to_string): Rename to ... (host_address_to_string_1): ... this. * common/print-utils.h (host_address_to_string): Reimplement as wrapper around host_address_to_string_1. * utils.c (gdb_print_host_address): Rename to ... (gdb_print_host_address_1): ... this. * utils.h (gdb_print_host_address): Reimplement as wrapper macro around host_address_to_string_1. commit d09f2c3fc15dd4491e9cfa455191045c0729a3c3 Author: Pedro Alves Date: Tue Oct 27 17:25:09 2015 +0000 target_read_memory&co: no longer return target_xfer_status Years ago, these functions used to return errno/EIO. Later, through a series of changes that intended to remove native/remote differences, they ended up returning a target_xfer_status in disguise. Unlike target_xfer_partial&co, the point of target_read_memory&co is to either fully succeed or fail. On error, they always return TARGET_XFER_E_IO. So there's no real point in casting the return of target_read_memory to a target_xfer_status to pass it to memory_error. Instead, it results in clearer code to simply decouple target_read_memory&co's return from target_xfer_status. This fixes build errors like this in C++ mode: ../../src/gdb/corefile.c: In function ‘void read_stack(CORE_ADDR, gdb_byte*, ssize_t)’: ../../src/gdb/corefile.c:276:34: error: invalid conversion from ‘int’ to ‘target_xfer_status’ [-fpermissive] memory_error (status, memaddr); ^ ../../src/gdb/corefile.c:216:1: error: initializing argument 1 of ‘void memory_error(target_xfer_status, CORE_ADDR)’ [-fpermissive] gdb/ChangeLog: 2015-10-27 Pedro Alves * alpha-tdep.c (alpha_read_insn): Always pass TARGET_XFER_E_IO to memory_error. Rename local 'status' to 'res'. * c-lang.c (c_get_string): Always pass TARGET_XFER_E_IO to memory_error. * corefile.c (read_stack, read_code, write_memory): Always pass TARGET_XFER_E_IO to memory_error. * disasm.c (dis_asm_memory_error): Always pass TARGET_XFER_E_IO to memory_error. Rename parameter 'status' to 'err'. (dump_insns): Rename local 'status' to 'err'. * mips-tdep.c (mips_fetch_instruction): Rename parameter 'statusp' to 'errp'. Rename local 'status' to 'err'. Always pass TARGET_XFER_E_IO to memory_error. (mips_breakpoint_from_pc): Rename local 'status' to 'err'. * target.c (target_read_memory, target_read_raw_memory) (target_read_stack, target_read_code, target_write_memory) (target_write_raw_memory): Return -1 on error instead of TARGET_XFER_E_IO. * valprint.c (val_print_string): Rename local 'errcode' to 'err'. Always pass TARGET_XFER_E_IO to memory_error. Update comment. commit c5192092506e52a5f075b137a36933e42db64563 Author: Simon Marchi Date: Tue Oct 27 13:11:45 2015 -0400 guile: Change return value of gdbscm_with_guile for const char * The documentation of gdbscm_with_guile says that it returns a statically allocated string (IOW, a const char *). We can reflect that in its return value type, and get rid of C++ build errors. Initially fixes: /home/simark/src/binutils-gdb/gdb/guile/scm-disasm.c: In function ‘void* gdbscm_disasm_read_memory_worker(void*)’: /home/simark/src/binutils-gdb/gdb/guile/scm-disasm.c:93:12: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive] return "seek error"; gdb/ChangeLog: * guile/guile-internal.h (gdbscm_with_guile): Change return types to const char *. * guile/scm-safe-call.c (gdbscm_with_guile): Likewise. (struct c_data) : Likewise. (struct c_data) : Change type to const char *. (scscm_eval_scheme_string): Change return type to const char *. (scscm_source_scheme_script): Likewise. (gdbscm_safe_eval_string): Change type of result variable to const char * and remove cast. (gdbscm_safe_source_script): Likewise. * guile/scm-disasm.c (gdbscm_disasm_read_memory_worker): Change return type to const char *. (gdbscm_disasm_read_memory): Change type of status to const char *. commit 79b289e2d8083691ccb2c943d4502e1af54e81e2 Author: Pedro Alves Date: Tue Oct 27 16:03:24 2015 +0000 source.c:openp: save/restore errno openp's return is documented as: ~~~ If a file is found, return the descriptor. Otherwise, return -1, with errno set for the last name we tried to open. */ ~~~ By inspection, I noticed that there are function calls after the ones that first set errno, and those may clobber errno. It's safer to save errno when see an open fail, and restore it on exit. Tested on x86_64 Fedora 20. gdb/ChangeLog: 2015-10-27 Pedro Alves * source.c (openp): New local 'last_errno'. Use it to save/restore errno. commit c2f2875869a3e427435ea04bcd416ee2f99e7ee9 Author: Vinay Kumar Date: Tue Oct 27 15:24:40 2015 +0000 Fix RL78 disassembly of DE+offset addressing to always show the offset, even when zero. PR binutils/19159 opcodes * rl78-decode.opc (MOV): Added offset to DE register in index addressing mode. * rl78-decode.c: Regenerate. test * gas/rl78/pr19159.s: New test source file. * gas/rl78/pr19159.d: New test case. * gas/rl78/rl78.exp: Run the new test. commit 709b551853919f47b58aafbb95fd00a98bcaf76c Author: Pedro Alves Date: Tue Oct 27 14:57:18 2015 +0000 psymtab.c: Add casts ... as needed for C++. gdb/ChangeLog: 2015-10-27 Pedro Alves * psymtab.c (dump_psymtab_addrmap_1): Add casts. commit e0d13cbd4bcec3e8136925a3a07f85e58187da06 Author: Simon Marchi Date: Tue Oct 27 10:53:24 2015 -0400 ctf.c: Fix int/enum implicit cast This patch was taken directly from Pedro's branch. Right now, SET_INT32_FIELD is used to set enum fields. This works in C, but not C++. Therefore, define the new SET_ENUM_FIELD, which casts the value to the right enum type. gdb/ChangeLog: * ctf.c (SET_ENUM_FIELD): New macro. (ctf_read_status): Use it. (ctf_read_tp): Use it. commit 4666280441d1a8d3479d45f1ec5b67cf83d58f35 Author: Vinay Kumar Date: Tue Oct 27 14:49:02 2015 +0000 Display system registers by their names when disassembling RL78 instructions. PR binutils/19158 opcodes * rl78-decode.opc: Add 's' print operator to instructions that access system registers. * rl78-decode.c: Regenerate. * rl78-dis.c (print_insn_rl78_common): Decode all system registers. tests * gas/rl78/pr19158.s: New test source file. * gas/rl78/pr19158.d: New test case. * gas/rl78/rl78.exp: Run the new test. commit 02f12cd4669463a1b2346145808213adeb303e2d Author: Vinay Kumar Date: Tue Oct 27 14:00:40 2015 +0000 Fix RL78 disassembly so that SP+OFFSET addressing always shows the offset, even when zero. PR binutils/19157 opcodes * rl78-decode.opc: Add 'a' print operator to mov instructions using stack pointer plus index addressing. * rl78-decode.c: Regenerate. tests * gas/rl78: New directory. * gas/rl78/rl78.exp: New test driver. * gas/rl78/pr19157.s: New test source file. * gas/rl78/pr19157.d: New test case. commit c6486df5f1400d90a13df5c6dbd96aeaccf8225b Author: Simon Marchi Date: Tue Oct 27 09:34:30 2015 -0400 Add scm_t_dynwind_flags casts There is a handful of calls to scm_dynwind_begin (0); where the parameter is an enum, scm_t_dynwind_flags. In C++, we have no choice but to add an explicit cast, since there is no enum value that represents 0 (no flags set). gdb/ChangeLog: * guile/scm-breakpoint.c (gdbscm_set_breakpoint_stop_x): Add scm_t_dynwind_flags casts. * guile/scm-cmd.c (gdbscm_parse_command_name): Likewise. * guile/scm-ports.c (gdbscm_open_memory): Likewise. * guile/scm-value.c (gdbscm_value_to_string): Likewise. commit 70b8286a9749deb6639c2fd5b39c7e4a26195738 Author: Simon Marchi Date: Tue Oct 27 09:33:29 2015 -0400 Introduce ax_raw_byte and use it This patch was taken directly from Pedro's branch. ax_simple is used to append an agent expression operator to an agent expression string. Therefore, it takes an enum agent_op as input. There is an instance where it's called to append a raw byte, unrelated to the enum. It makes the build fail in C++ mode. This patch introduces ax_raw_byte for that purpose and uses it. gdb/ChangeLog: * ax.h (ax_raw_byte): New declaration. * ax-general.c (ax_raw_byte): New function. (ax_simple): Use ax_raw_byte. * ax-gdb.c (gen_printf): Likewise. commit a480de357b17b1b2057b8375284079ccafae39db Author: Simon Marchi Date: Tue Oct 27 09:27:40 2015 -0400 ada-lang.h: Add cast in GROW_VECT The assignment requires a cast in C++. We only use this macro for vectors of chars, so adding (char *) diretly will do for now. gdb/ChangeLog: * ada-lang.h (GROW_VECT): Add cast. commit a504d23a83d115b1b29a5b1fbfaeb2b09bc0e22c Author: Laurent Alfonsi Date: Tue Oct 27 13:20:33 2015 +0000 Add --fix-stm32l4xx-629360 to the ARM linker to enable a link-time workaround for a bug in the bus matrix / memory controller for some of the STM32 Cortex-M4 based products (STM32L4xx). bfd * bfd-in2.h: Regenerate. * bfd-in.h (bfd_arm_stm32l4xx_fix): New enum. Specify how STM32L4XX instruction scanning should be done. (bfd_elf32_arm_set_stm32l4xx_fix) (bfd_elf32_arm_stm32l4xx_erratum_scan) (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): Add prototypes. (bfd_elf32_arm_set_target_relocs): Add stm32l4xx fix type argument to prototype. * elf32-arm.c (STM32L4XX_ERRATUM_VENEER_SECTION_NAME) (STM32L4XX_ERRATUM_VENEER_ENTRY_NAME): Define macros. (elf32_stm32l4xx_erratum_type): New enum. (elf32_stm32l4xx_erratum_list): New struct. List of veneers or jumps to veneers. (_arm_elf_section_data): Add stm32l4xx_erratumcount, stm32l4xx_erratumlist. (elf32_arm_link_hash_table): Add stm32l4xx_erratum_glue_size, stm32l4xx_fix and num_stm32l4xx_fixes fields. (ctz): New function. (popcount): New function. (elf32_arm_link_hash_table_create): Initialize stm32l4xx_fix. (put_thumb2_insn): New function. (STM32L4XX_ERRATUM_LDM_VENEER_SIZE): Define. Size of a veneer for LDM instructions. (STM32L4XX_ERRATUM_VLDM_VENEER_SIZE): Define. Size of a veneer for VLDM instructions. (bfd_elf32_arm_allocate_interworking_sections): Initialise erratum glue section. (record_stm32l4xx_erratum_veneer) : New function. Create a single veneer, and its associated symbols. (bfd_elf32_arm_add_glue_sections_to_bfd): Add STM32L4XX erratum glue. (bfd_elf32_arm_set_stm32l4xx_fix): New function. Set the type of erratum workaround required. (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): New function. Find out where veneers and branches to veneers have been placed in virtual memory after layout. (is_thumb2_ldmia): New function. (is_thumb2_ldmdb): Likewise. (is_thumb2_vldm ): Likewise. (stm32l4xx_need_create_replacing_stub): New function. Decide if a veneer must be emitted. (bfd_elf32_arm_stm32l4xx_erratum_scan): Scan the sections of an input BFD for potential erratum-triggering insns. Record results. (bfd_elf32_arm_set_target_relocs): Set stm32l4xx_fix field in global hash table. (elf32_arm_size_dynamic_sections): Collect glue information. (create_instruction_branch_absolute): New function. (create_instruction_ldmia): Likewise. (create_instruction_ldmdb): Likewise. (create_instruction_mov): Likewise. (create_instruction_sub): Likewise. (create_instruction_vldmia): Likewise. (create_instruction_vldmdb): Likewise. (create_instruction_udf_w): Likewise. (create_instruction_udf): Likewise. (push_thumb2_insn32): Likewise. (push_thumb2_insn16): Likewise. (stm32l4xx_fill_stub_udf): Likewise. (stm32l4xx_create_replacing_stub_ldmia): New function. Expands the replacing stub for ldmia instructions. (stm32l4xx_create_replacing_stub_ldmdb): Likewise for ldmdb. (stm32l4xx_create_replacing_stub_vldm): Likewise for vldm. (stm32l4xx_create_replacing_stub): New function. Dispatches the stub emission to the appropriate functions. (elf32_arm_write_section): Output veneers, and branches to veneers. ld * ld.texinfo: Description of the STM32L4xx erratum workaround. * emultempl/armelf.em (stm32l4xx_fix): New. (arm_elf_before_allocation): Choose the type of fix, scan for erratum. (gld${EMULATION_NAME}_finish): Fix veneer locations. (arm_elf_create_output_section_statements): Propagate stm32l4xx_fix value. (PARSE_AND_LIST_PROLOGUE): Define OPTION_STM32L4XX_FIX. (PARSE_AND_LIST_LONGOPTS): Add entry for handling --fix-stm32l4xx-629360. (PARSE_AND_LIST_OPTION): Add entry for helping on --fix-stm32l4xx-629360. (PARSE_AND_LIST_ARGS_CASES): Treat OPTION_STM32L4XX_FIX. tests * ld-arm/arm-elf.exp (armelftests_common): Add STM32L4XX tests. * ld-arm/stm32l4xx-cannot-fix-far-ldm.d: New. * ld-arm/stm32l4xx-cannot-fix-far-ldm.s: Likewise. * ld-arm/stm32l4xx-cannot-fix-it-block.d: Likewise. * ld-arm/stm32l4xx-cannot-fix-it-block.s: Likewise. * ld-arm/stm32l4xx-fix-all.d: Likewise. * ld-arm/stm32l4xx-fix-all.s: Likewise. * ld-arm/stm32l4xx-fix-it-block.d: Likewise. * ld-arm/stm32l4xx-fix-it-block.s: Likewise. * ld-arm/stm32l4xx-fix-ldm.d: Likewise. * ld-arm/stm32l4xx-fix-ldm.s: Likewise. * ld-arm/stm32l4xx-fix-vldm.d: Likewise. * ld-arm/stm32l4xx-fix-vldm.s: Likewise. commit c6056a744af028824797e769ddb71927740be88a Author: Stephen Fisher Date: Tue Oct 27 11:32:38 2015 +0000 Add support to readelf for reading NetBSD ELF core notes. binutils * binutils.c (process_netbsd_elf_note): New function. (process_note): Call the new function for NetBSD core notes. include * common.h (NT_NETBSD_MARCH): Define. commit d6867a7559ceb7380fc229f948fd5fd910404643 Author: Sangamesh Mallayya Date: Tue Oct 27 10:30:29 2015 +0000 Add support for 32-bit and 64-bit PowerPC AIX core files. * configure.ac (powerpc64-*-aix[5-9].*): Match powerpc64 running aix for core file support. * configure: Regenerate. * rs6000-core.c: Check for __ld_info64 if compiling 64-bit gdb. Added BFD64 check if we are using old core file format for 32-bit gdb. Set sizeof CORE_COMMONSZ appropriately in case of either new or old core file format. (read_hdr): Added BFD64 check for 64-bit support. (rs6000coff_core_p): Likewise. (rs6000coff_core_file_matches_executable_p): Likewise. (rs6000coff_core_file_failing_command): Likewise. (rs6000coff_core_file_failing_signal): Likewise. Add support for debugging core files generated by binaries in Large Memory model. (rs6000coff_core_p): If Large Memory Model is used, then the .data segment should start from BDATAORG which has been defined in the system header files. commit ef8e6722f2eaae6d65b360459451f57f1350d2af Author: Jim Wilson Date: Tue Oct 27 09:33:08 2015 +0000 Prevent overflowing the selected_cpu_name buffer in the ARM assembler. * config/tc-arm.c (selected_cpu_name): Increase length of array to accomodate "Samsung Exynos M1". (arm_parse_cpu): Add assertion and length check to prevent overfilling selected_cpu_name. commit 469bdc72e7b00509d6578f5caca01a45f5db5027 Author: Alan Modra Date: Tue Oct 27 18:03:24 2015 +1030 xfail pr19161 test on hppa-linux HPPA linux needs libgcc.a for millicode routine $$dyncall. * ld-gc/pr19161.d: xfail hppa-*-*. commit 5e2e7507b4ef8410501452224d98071657ea2d53 Author: Jan Kratochvil Date: Tue Oct 27 06:08:45 2015 +0100 Fix access_to_packed_array.exp typos/errors Running ./gdb.ada/access_to_packed_array.exp ... ERROR: tcl error sourcing ./gdb.ada/access_to_packed_array.exp. ERROR: extra characters after close-quote while executing "gdb_test "print pack.a" "\\(0 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\)")" (file "./gdb.ada/access_to_packed_array.exp" line 29) invoked from within "source ./gdb.ada/access_to_packed_array.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source ./gdb.ada/access_to_packed_array.exp" invoked from within "catch "uplevel #0 source $test_file_name"" Unrelated to the typos I have changed the print expectations s/"x"/" = x"/ as for example expectation "3" should not match " = 43". 2015-10-27 Jan Kratochvil * gdb.ada/access_to_packed_array.exp: Fix typos erroring the testfile. commit a04a15f586590f1969ab31478f0b04243f760769 Author: Doug Evans Date: Mon Oct 26 20:24:16 2015 -0700 symtab.h (struct general_symbol_info> : Update comment. gdb/ChangeLog: * symtab.h (struct general_symbol_info> : Update comment. commit 321df0656c7557004a232b4ac3d8c354a59de364 Author: Alan Modra Date: Tue Oct 27 12:01:55 2015 +1030 Evaluate __start_* and __stop_* symbol PROVIDE expressions early Makes these symbols defined before bfd_elf_size_dynamic_sections, to avoid horrible hacks elsewhere. The exp_fold_tree undefweak change is necessary to define undefweak symbols early too. The comment was wrong. PROVIDE in fact defines undefweak symbols, via bfd_elf_record_link_assignment. PR ld/19175 * ldlang.c (lang_insert_orphan): Evaluate __start_* and __stop_* symbol PROVIDE expressions. * ldexp.c (exp_fold_tree_1 ): Define undefweak references. commit d7f3ff3ea7830389f458be7c5eadb5d4a4e0a90b Author: Simon Marchi Date: Mon Oct 26 22:07:27 2015 -0400 target.c: Add a cast and change a type Fixes some errors in C++ build. gdb/ChangeLog: * target.c (memory_xfer_partial): Change type of buf to gdb_byte pointer. (simple_search_memory): Cast return of memmem. commit bf6778dab2b3efc5a0ab01ee41e62e966ef08069 Author: Simon Marchi Date: Mon Oct 26 22:04:10 2015 -0400 stap-probe.c: Add casts gdb/ChangeLog: * stap-probe.c (handle_stap_probe): Add (const char *) casts. commit c92444842b32533b6411230e3554509a09924163 Author: Simon Marchi Date: Mon Oct 26 22:00:41 2015 -0400 ctf_xfer_partial: Return TARGET_XFER_E_IO instead of -1 on error Use the enum value instead of the corresponding int value. gdb/ChangeLog: * ctf.c (ctf_xfer_partial): Return TARGET_XFER_E_IO instead of -1 on error. commit 6780fe1095bf34f92f89a831a577d42b311a6a9f Author: GDB Administrator Date: Tue Oct 27 00:00:10 2015 +0000 Automatic date update in version.in commit 7b7e7f1da28585cfa49cbced50dbbd75a143cd20 Author: H.J. Lu Date: Mon Oct 26 16:32:34 2015 -0700 Check symbol defined by assignment in linker script Symbol symbol defined by an assignment in a linker script has type bfd_link_hash_new. elf_i386_convert_load and elf_x86_64_convert_load should check bfd_link_hash_new to see if a symbol is defined by a linker script. bfd/ PR ld/19175 * elf32-i386.c (elf_i386_convert_load): Check bfd_link_hash_new instead of calling bfd_link_get_defined_symbol. * elf64-x86-64.c (elf_x86_64_convert_load): Likewise. Skip relocation overflow for bfd_link_hash_new. * linker.c (bfd_link_get_defined_symbol): Removed. * bfd-in2.h: Regenerated. ld/testsuite/ PR ld/19175 * ld-i386/i386.exp: Run pr19175. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/pr19175.d: New file. * ld-i386/pr19175.s: Likewise. * ld-i386/pr19175.t: Likewise. * ld-x86-64/pr19175.d: Likewise. * ld-x86-64/pr19175.s: Likewise. * ld-x86-64/pr19175.t: Likewise. commit 0fde2c536bc483baa4baa2990ebebfb3a7c00415 Author: Doug Evans Date: Mon Oct 26 16:05:21 2015 -0700 PR symtab/17391 gdb internal error: assertion fails in regcache.c:178 gdb/ChangeLog: * dwarf2-frame.c (dwarf2_restore_rule): Call dwarf_reg_to_regnum instead of gdbarch_dwarf2_reg_to_regnum. (dwarf2_frame_cache): Ditto. (read_addr_from_reg): Call dwarf_reg_to_regnum_or_error instead of gdbarch_dwarf2_reg_to_regnum. (get_reg_value): Ditto. (dwarf2_fetch_cfa_info): Ditto. (dwarf2_frame_prev_register): Ditto. * dwarf2loc.c: #include "complaints.h". (dwarf_expr_read_addr_from_reg): Call dwarf_reg_to_regnum_or_error instead of gdbarch_dwarf2_reg_to_regnum. (dwarf_expr_get_reg_value): Ditto. (read_pieced_value): Ditto. (write_pieced_value): Ditto. (dwarf2_evaluate_loc_desc_full): Ditto. (dwarf_reg_to_regnum): New function. (throw_bad_regnum_error): New function. (dwarf_reg_to_regnum_or_error): Renamed from dwarf2_reg_to_regnum_or_errorChange to take a ULONGEST regnum. All callers updated. Call throw_bad_regnum_error. (locexpr_regname): Improve text of bad register number. * dwarf2loc.h (dwarf_reg_to_regnum): Declare. (dwarf_reg_to_regnum_or_error): Update prototype. * dwarf2expr.c: #include "dwarf2loc.h". (dwarf_block_to_sp_offset): Call dwarf_reg_to_regnum instead of gdbarch_dwarf2_reg_to_regnum. * gdbarch.sh (dwarf2_reg_to_regnum): Add comment. * gdbarch.h: Regenerate. * amd64-tdep.c (amd64_dwarf_reg_to_regnum): Remove warning for bad register. * avr-tdep.c (avr_dwarf_reg_to_regnum): Ditto. * cris-tdep.c (cris_dwarf2_reg_to_regnum): Ditto. * bfin-tdep.c (bfin_reg_to_regnum): Fix error checking. * hppa-linux-tdep.c (hppa_dwarf_reg_to_regnum): Improve error checking. Remove warning for bad register. * hppa-tdep.c (hppa64_dwarf_reg_to_regnum): Ditto. * i386-tdep.c (i386_svr4_dwarf_reg_to_regnum): Renamed from i386_svr4_reg_to_regnum. Return -1 for bad registers. (i386_svr4_reg_to_regnum): New function. (i386_gdbarch_init): Update call to set_gdbarch_dwarf2_reg_to_regnum. * microblaze-tdep.c (microblaze_dwarf2_reg_to_regnum): Don't assert on bad registers, return -1. * msp430-tdep.c (msp430_dwarf2_reg_to_regnum): Improve error checking. Remove warning for bad register. * nios2-tdep.c: Add static assert for NIOS2_NUM_REGS. (nios2_dwarf_reg_to_regnum): Fix off-by-one error. Remove warning for bad register. Return -1 for bad register. * rl78-tdep.c (rl78_dwarf_reg_to_regnum): Don't flag an internal error for bad register, return -1. * rx-tdep.c (rx_dwarf_reg_to_regnum): Ditto. * m68k-tdep.c (m68k_dwarf_reg_to_regnum): Fix error result. * mep-tdep.c (mep_debug_reg_to_regnum): Ditto. * mips-tdep.c (mips_stab_reg_to_regnum): Ditto. (mips_dwarf_dwarf2_ecoff_reg_to_regnum): Ditto. * mn10300-tdep.c (mn10300_dwarf2_reg_to_regnum): Remove warning for bad regs. * xtensa-tdep.c (xtensa_reg_to_regnum): Remove internal error for bad regs. Fix error result. * stabsread.c (stab_reg_to_regnum): Watch for negative regno. (reg_value_complaint): Update complaint text. * mdebugread.c (reg_value_complaint): New function. (mdebug_reg_to_regnum): Rewrite to watch for bad reg numbers. gdb/testsuite/ChangeLog: * lib/dwarf.exp (_location): Add support for DW_OP_regx. * gdb.dwarf2/bad-regnum.c: New file. * gdb.dwarf2/bad-regnum.exp: New file. commit 1a70ae976b673f7762f14734785b34fc5ba92eae Author: Doug Evans Date: Mon Oct 26 14:33:19 2015 -0700 PR python/18938: source -s foo.py with foo.py a symlink to foo.notpy fails gdb/ChangeLog: PR python/18938 * cli/cli-cmds (source_script_fron_sctream): New arg file_to_open. All callers updated. gdb/testsuite/ChangeLog: * gdb.python/python.exp: Add test for symlink from .py file to .notpy file. commit 372405a5e8adbe5affce56410b6d6048c63cac3f Author: Doug Evans Date: Mon Oct 26 14:12:51 2015 -0700 Print address map in output of "mt print psymbols" gdb/ChangeLog: * psymtab.c (struct dump_psymtab_addrmap_data): Define. (dump_psymtab_addrmap_1, dump_psymtab_addrmap): New functions. (maintenance_print_psymbols): Print address map. commit 682b25469e66ea45b214e95962671373983c118f Author: Doug Evans Date: Mon Oct 26 13:30:57 2015 -0700 Move __SIGRTMIN. gdb/ChangeLog: * nat/linux-nat.h (__SIGRTMIN): Move here from gdbserver/linux-low.c. gdb/gdbserver/ChangeLog: * linux-low.c (__SIGRTMIN): Move to nat/linux-nat.h. commit 963843d4d07aef6caa296dacf191f8adc9518596 Author: Doug Evans Date: Mon Oct 26 13:24:01 2015 -0700 musl: Move W_STOPCODE to common/gdb_wait.h. gdb/ChangeLog: * common/gdb_wait.h (W_STOPCODE): Define, moved here from gdbserver/linux-low.c. (WSETSTOP): Simplify. gdb/gdbserver/ChangeLog: * linux-low.c (W_STOPCODE): Moved to common/gdb_wait.h. commit d41401ace01c234f42697e190a2ac95991780626 Author: Doug Evans Date: Mon Oct 26 13:20:12 2015 -0700 Add some casts for building on musl. gdb/ChangeLog: * linux-thread-db.c (find_new_threads_callback): Cast ti.ti_tid to unsigned long for debug_printf. (thread_db_pid_to_str): Ditto. gdb/gdbserver/ChangeLog: * thread-db.c (find_one_thread): Cast ti.ti_tid to unsigned long for debug_printf. (attach_thread, find_new_threads_callback): Ditto. commit 1522597b057c321d813d3433bcd1e17c02a56557 Author: Simon Marchi Date: Mon Oct 26 15:05:50 2015 -0400 guile: Simplify ioscm_make_gdb_stdio_port As pointed out by Pedro, it's clearer to do it this way. We can trust that scm_mode_bits won't try to modify our string, even though it takes a non-const char *. gdb/ChangeLog: * guile/scm-ports.c (ioscm_make_gdb_stdio_port): Do not pass a local char array to scm_mode_bits, use a cast instead. commit 7acd011bef4e461e9caef644f20379f41ddfd631 Author: Simon Marchi Date: Mon Oct 26 12:58:32 2015 -0400 tui: Simplify tui_alloc_content I stumbled upon this while doing some cxx-conversion work. Since the x-family alloc functions throw on failure, it is useless to test their result for failure. The else branch of != NULL is basically dead code. I changed the type of element_block_ptr to struct tui_win_element, which seems obvious (this is actually what raised the flag, casting the result of xmalloc to struct tui_win_element* wouldn't work). gdb/ChangeLog: * tui/tui-data.c (tui_alloc_content): Don't check xmalloc result. Change type of element_block_ptr. Change allocation to use XNEWVEC. commit a6af384b19c63bab4a1803c09592c5b5bd8674c2 Author: H.J. Lu Date: Mon Oct 26 06:10:23 2015 -0700 Properly convert address load of __start_XXX/__stop_XXX Since __start_XXX and __stop_XXX symbols aren't defined when address load is being converted, we need to check if there is an XXX output section to get their section and value. This patch adds a new function, bfd_link_get_defined_symbol, to search for the XXX output section to check if __start_XXX and __stop_XXX symbols are defined. bfd/ PR ld/19171 * elf32-i386.c (elf_i386_convert_load): Call bfd_link_get_defined_symbol to check if a symbol is defined. * elf64-x86-64.c (elf_x86_64_convert_load): Call bfd_link_get_defined_symbol to get defined symbol section and value. * linker.c (bfd_link_get_defined_symbol): New function. * bfd-in2.h: Regenerated. ld/testsuite/ PR ld/19171 * ld-i386/lea1.s: Add tests for address load of __start_XXX and __stop_XXX. * ld-i386/mov1.s: Likewise. * ld-x86-64/lea1.s: Likewise. * ld-x86-64/mov1.s: Likewise. * ld-i386/lea1a.d: Updated. * ld-i386/lea1b.d: Likewise. * ld-i386/lea1c.d: Likewise. * ld-i386/mov1a.d: Likewise. * ld-i386/mov1b.d: Likewise. * ld-x86-64/lea1a.d: Likewise. * ld-x86-64/lea1b.d: Likewise. * ld-x86-64/lea1c.d: Likewise. * ld-x86-64/lea1d.d: Likewise. * ld-x86-64/lea1e.d: Likewise. * ld-x86-64/lea1f.d: Likewise. * ld-x86-64/mov1a.d: Likewise. * ld-x86-64/mov1b.d: Likewise. * ld-x86-64/mov1c.d: Likewise. * ld-x86-64/mov1d.d: Likewise. commit 7cc53fba0a4e5c316a6e86fdae28f8cc9d0f9a68 Author: Luis Machado Date: Mon Oct 26 11:17:29 2015 -0200 Do not pass NULL for the string in catch_errors I caught a segmentation fault while running gdb.reverse/sigall-reverse.exp, in a mingw32 GDB, in this code path. It boils down to the code trying to strlen () a NULL pointer. I tracked things down and it looks like record_full_message_wrapper_safe is the only offender. gdb/ChangeLog: 2015-10-26 Luis Machado * record-full.c (record_full_message_wrapper_safe): Pass empty string to catch_errors call instead of NULL. commit 48ffa2b8cd986527a41654c3b27755bbf6762048 Author: Simon Marchi Date: Mon Oct 26 08:41:38 2015 -0400 Fix constness problem in ioscm_make_gdb_stdio_port ioscm_make_gdb_stdio_port passes const char pointers (literal strings) to scm_mode_bits, which takes a non-const char pointer. Ideally, we would change scm_mode_bits to take a const char pointer, but it's not part of an API we control. Instead, it's easy enough to build the string to pass to scm_mode_bits in a (non-const) char array and pass that. gdb/ChangeLog: * guile/scm-ports.c (ioscm_make_gdb_stdio_port): Pass non-const char pointer to scm_mode_bits. commit 585a269afbfdb71b99ae72c22ef5101a800d565c Author: Simon Marchi Date: Mon Oct 26 08:41:38 2015 -0400 symtab.c: Add cast gdb/ChangeLog: * symtab.c (default_make_symbol_completion_list_break_on_1): Add cast. commit e0dd41e9671fffc957c3d8f41adcd52274319f4f Author: Simon Marchi Date: Mon Oct 26 08:41:37 2015 -0400 gdbscm_memory_port_write: use local variable to avoid adding casts By having a local variable of type (const gdb_byte *), we can avoid adding two casts. gdb/ChangeLog: * guile/scm-ports.c (gdbscm_memory_port_write): Declare new "data" local variable and use it. commit 74ef968fbaab0bd52335314abdb3e0eb04020fb1 Author: Simon Marchi Date: Mon Oct 26 08:41:36 2015 -0400 scm-symbol.c: Add (domain_enum) casts We currently pass integers as domain_enums to lookup_symbol. The most obvious fix is to add casts there. I first thought of changing the type of the domain variables to domain_enum. However, because we pass a pointer to them to gdbscm_parse_function_args, which expects them to be integers (because of the format string), I don't think it would be correct. If the enum does not have the same size as an int, gdbscm_parse_function_args could write past the memory of domain, overwriting something else on the stack. gdb/ChangeLog: * guile/scm-symbol.c (gdbscm_lookup_global_symbol): Add domain_enum cast. (gdbscm_lookup_symbol): Likewise. commit cdfb4fc32dfe130698fa72629aaa99aa06b50044 Author: GDB Administrator Date: Mon Oct 26 00:00:08 2015 +0000 Automatic date update in version.in commit 27dc26ab3938c31a14c356f384acca93128e1691 Author: Jan Kratochvil Date: Sun Oct 25 12:16:10 2015 +0100 Fix compile.exp error message expectation commit cdaec3f3e7ea9118204f0e579bd3257234fbae63 Author: Luis Machado Date: Thu Aug 27 02:00:16 2015 -0300 Mention language in compile error message regressed: -PASS: gdb.compile/compile.exp: compile code globalvar +FAIL: gdb.compile/compile.exp: compile code globalvar Update the expected message. gdb/testsuite/ChangeLog 2015-10-25 Jan Kratochvil * gdb.compile/compile.exp (compile code globalvar): Update expectation for a change by "Mention language in compile error message". commit 2d5a88dc5005a4f4b0584d02719e479645409e92 Author: Iain Buclaw Date: Sun Oct 25 09:17:24 2015 +0100 Re-apply change for handling non-local references in nested functions. gdb/ChangeLog: * d-exp.y: Remove an obsolete comment and propagate the block information to the produced expression. commit f4ee58bde946ec87c8ead17d7b47c1c7bcb7c3f6 Author: Simon Marchi Date: Sat Oct 24 22:40:37 2015 -0400 tui-data.c: Remove unnecessary casts The (void *) casts make the build fail in C++ mode and are unnecessary. gdb/ChangeLog: * tui/tui-data.c (tui_add_to_source_windows): Remove void * cast. (tui_add_content_elements): Likewise. commit 1650ca11248ca377a6c8b6f7e21ec2aa8e7b3fd5 Author: Simon Marchi Date: Sat Oct 24 22:28:56 2015 -0400 cli-setshow.c: Constify variable Fixes: /home/simark/src/binutils-gdb/gdb/cli/cli-setshow.c:390:13: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive] p = strchr (arg, ' '); ^ gdb/ChangeLog: * cli/cli-setshow.c (do_set_command): Constify p. commit a7dbb7d12b5f198dc5173f55d0a049236b3c439f Author: GDB Administrator Date: Sun Oct 25 00:00:08 2015 +0000 Automatic date update in version.in commit 55e5bf59f09012c978aa952670be654b6c5598e8 Author: Simon Marchi Date: Sat Oct 24 18:36:26 2015 -0400 Replace (void *) cast with (gdb_byte *) Fixes: /home/simark/src/binutils-gdb/gdb/nat/linux-ptrace.c:207:6: error: invalid conversion from ‘void*’ to ‘gdb_byte* {aka unsigned char*}’ [-fpermissive] pc = (void *) (uintptr_t) l; ^ gdb/ChangeLog: * nat/linux-ptrace.c (linux_ptrace_test_ret_to_nx): Replace (void *) cast with (gdb_byte *). commit 49e66b4debebff088958077201eabab36df168f0 Author: Simon Marchi Date: Sat Oct 24 18:36:25 2015 -0400 proc-service.c: Add (gdb_byte *) cast A cast here is necessary, just as it's necessary in ps_pdwrite just below. The type of buf can't be changed, since it's fixed in the ps_pd* API. gdb/ChangeLog: * proc-service.c (ps_pdread): Add cast. commit cfcb22a541ab8f783bf667cf7afbbfd9cd243cce Author: Simon Marchi Date: Sat Oct 24 18:36:24 2015 -0400 sparc64-tdep.c: Don't assign using memcpy return This: valbuf = memcpy (buf, valbuf, len); causes a build failure in C++, because memcpy returns the value of "buf" as a void *. Instead of adding a cast, we can just do the assignment separately. gdb/ChangeLog: * sparc64-tdep.c (sparc64_store_arguments): Split assignment of valbuf. commit ce746418ef15c5a47b9ab17c249ba5f7c273db4a Author: Simon Marchi Date: Sat Oct 24 18:36:23 2015 -0400 ia64-tdep.c: Remove (void *) casts Remove these (void *) casts, which cause a build failure in C++ mode. gdb/ChangeLog: * ia64-tdep.c (ia64_pseudo_register_write): Remove cast. (ia64_push_dummy_call): Remove cast and change type of "to" to array of gdb_byte. commit 10d43c801e9edb475eed059fa47935c2bb45e578 Author: GDB Administrator Date: Sat Oct 24 00:00:08 2015 +0000 Automatic date update in version.in commit a55515eecb1c8edb875e30a411afc55f304e88d9 Author: Simon Marchi Date: Fri Oct 23 19:48:48 2015 -0400 Add mmap casts in linux-btrace.c gdb/ChangeLog: * linux-btrace.c (linux_enable_pt): Add cast to mmap return. commit 6ecf4e06a48cfc6dfbdf7c8f2969ffe7271f15da Author: Simon Marchi Date: Fri Oct 23 16:58:13 2015 -0400 Add cast to observer.sh gdb/ChangeLog: * observer.h (observer_${event}_notification_stub): Add cast. commit 3db2885585b1c4172d1534f96f4bf97f5f6c465f Author: Antoine Tremblay Date: Fri Oct 23 13:20:39 2015 -0400 Remove set_breakpoint_data definition in GDBServer. This patch removes the now unused set_breakpoint_data function from mem_break.h gdb/gdbserver/ChangeLog: * mem-break.h (set_breakpoint_data): Remove. commit fb78e89c56db8fddf3044cdc644d6e799ae97b3a Author: Antoine Tremblay Date: Fri Oct 23 13:20:39 2015 -0400 Fix nto,spu and win32 builds of GDBServer. This patch fixes the build that was broken by : https://sourceware.org/ml/gdb-patches/2015-10/msg00369.html It implements the sw_breakpoint_from_kind operation on these targets and removes the calls to set_breakpoint_data. Compiliation tested on win32. Not tested : nto, spu. gdb/gdbserver/ChangeLog: * nto-low.c (nto_sw_breakpoint_from_kind): New function. (struct target_ops) : Initialize. (initialize_low): Remove set_breakpoint_data call. * spu-low.c (spu_sw_breakpoint_from_kind): New function. (struct target_ops) : Iniitalize. (initialize_low): Remove set_breakpoint_data call. * win32-low.c (win32_sw_breakpoint_from_kind): New function. (struct target_ops) : Initialize. (initialize_low): Remove set_breakpoint_data call. commit 2e6ee069ae81f3b5140059f6b997ccb0dcd1684e Author: Antoine Tremblay Date: Fri Oct 23 13:20:39 2015 -0400 Refactor default_breakpoint_kind_from_pc to be used by all targets in GDBServer. This patch moves default_breakpoint_kind_from_pc to target.c and creates a macro so that all targets can easily use it. This allows the breakpoint_kind_from_pc operation to be left unimplemented in targets that do not need it. This is preparation to fix the win32/nto/spu build that was broken by this patch: https://sourceware.org/ml/gdb-patches/2015-10/msg00369.html No regression on Ubuntu 14.04 x86-64 with gdbserver-{native-extended} gdb/gdbserver/ChangeLog: * linux-low.c (default_breakpoint_kind_from_pc): Move to target.c. * mem-break.c (set_breakpoint_at): Use target_breakpoint_kind_from_pc. * target.c (default_breakpoint_kind_from_pc): Moved from linux-low.c * target.h (target_breakpoint_kind_from_pc): New macro. commit 1cce69b9dc8c58884c3cc4a8928fb234294e6886 Author: Alan Modra Date: Fri Oct 23 22:23:05 2015 +1030 Handle __start_* and __stop_* symbols in --gc-sections PR ld/11133 PR ld/19161 PR ld/19167 * elflink.c (_bfd_elf_gc_mark_hook): Delete code handling __start_* and __stop_* symbol refs. (_bfd_elf_gc_mark_rsec): Add start_stop parameter. Handle __start_* and __stop_* symbol refs here.. (_bfd_elf_gc_mark_reloc): ..and here. * elf-bfd.h (_bfd_elf_gc_mark_hook): Update prototype. * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Update _bfd_elf_gc_mark_rsec call. commit be83aa76d2877770c23d7c2bde0319564a8f7e48 Author: H.J. Lu Date: Fri Oct 23 04:23:51 2015 -0700 Add a test for PR ld/19167 PR ld/19167 * ld-gc/gc.exp: Run pr19167 test. * ld-gc/pr19167.d: New file. * ld-gc/pr19167a.s: Likewise. * ld-gc/pr19167b.s: Likewise. commit 034f1a812d8f5655d08e2bdeb5ec7d56caa40d41 Author: Yao Qi Date: Wed Oct 21 15:50:55 2015 +0100 Initialize field insn_count correctly This patch initialize dsd.insn_count, otherwise, it triggers the assert below on testings we did recently. gdb: 2015-10-23 Yao Qi * aarch64-tdep.c (aarch64_displaced_step_copy_insn): Set dsd.insn_count to zero. commit e9f3d8639d088aae89f11c3f8a3197b92c6cb5f2 Author: GDB Administrator Date: Fri Oct 23 00:00:08 2015 +0000 Automatic date update in version.in commit 1e7eae0dcc0e5473dda573b30107ffdd501b0d73 Author: Alan Modra Date: Fri Oct 23 10:14:51 2015 +1030 Re: Always keep sections marked with SEC_KEEP Revert bba037e0, it breaks the gc-sections model. Instead fix the underlying problem which is that _bfd_elf_gc_mark_hook is too late to be setting SEC_KEEP. PR ld/11133 PR ld/19161 * elflink.c (elf_gc_sweep): Revert last patch. (_bfd_elf_gc_mark_hook): Don't set SEC_KEEP here. commit bba037e0aef1f3b17cc6cf6fd041ed6110cc375a Author: H.J. Lu Date: Thu Oct 22 12:17:43 2015 -0700 Always keep sections marked with SEC_KEEP SEC_KEEP check in elf_gc_sweep was missing in commit: commit bde6f3eb6dff94cea1d471e15c6154d55d49820f Author: H.J. Lu Date: Fri Jan 8 01:43:23 2010 +0000 Set SEC_KEEP on section XXX for undefined __start_XXX/__stop_XXX bfd/ 2010-01-07 H.J. Lu PR ld/11133 * elflink.c (_bfd_elf_gc_mark_hook): Check section XXX for undefined __start_XXX/__stop_XXX in all input files and set SEC_KEEP. This patch adds SEC_KEEP check to elf_gc_sweep. bfd/ PR ld/19161 * elflink.c (elf_gc_sweep): Always keep sections marked with SEC_KEEP. ld/testsuite/ PR ld/19161 * ld-gc/gc.exp: Run pr19161 test. * ld-gc/pr19161-1.c: New file. * ld-gc/pr19161-2.c: Likewise. * ld-gc/pr19161.d: Likewise. commit d236ad1955a0a6b5203bc1474b989fd9dba668f8 Author: Pedro Alves Date: Sun Oct 18 12:32:47 2015 +0100 garbage collect gdb/infrun.c:stop_after_trap No longer used anywhere. gdb/ChangeLog: 2015-10-22 Pedro Alves * infrun.c (stop_after_trap): Delete. (clear_proceed_status, handle_signal_stop, struct infcall_control_state, save_infcall_control_state) (restore_infcall_control_state): Remove references to stop_after_trap. commit 1652a98612a20443c0e17fd90e7f6941b7bc3ad8 Author: Antoine Tremblay Date: Thu Oct 22 12:21:51 2015 -0400 Fix inconsistent breakpoint kinds between breakpoints and tracepoints in GDBServer. This patch fixes a regression introduced by : https://sourceware.org/ml/gdb-patches/2015-10/msg00369.html Tests : gdb.trace/trace-break.exp and gdb.trace/trace-mt.exp would fail on x86 with gdbserver-{native,extended}. Before this patch, the breakpoint kind set by GDB with a Z packet and the one set in the case of a tracepoint would be inconsistent on targets that did not implement breakpoint_kind_from_pc. On x86 for example a breakpoint set by GDB would have a kind of 1 but a breakpoint set by a tracepoint would have a kind of 0. This created a missmatch when trying to insert a tracepoint and a breakpoint at the same location. One of the two breakpoints would be removed with debug message : "Inconsistent breakpoint kind". This patch fixes the issue by changing the default 0 breakpoint kind to be the size of the breakpoint according to sw_breakpoint_from_kind. The default breakpoint kind must be the breakpoint length to keep consistency between breakpoints set via GDB and the ones set internally by GDBServer. No regression on Ubuntu 14.04 x86-64 with gdbserver-{native-extended} gdb/gdbserver/ChangeLog: * linux-low.c (default_breakpoint_kind_from_pc): New function. (linux_breakpoint_kind_from_pc): Use default_breakpoint_kind_from_pc for the default breakpoint kind. commit db0f0d0c1d0541b6c2f81d655cd5420e059c91d4 Author: Simon Marchi Date: Thu Oct 22 12:13:19 2015 -0400 Add cast in python.c gdb/ChangeLog: * python/python.c (_initialize_python): Add cast. commit fb70bc1a74d371cc6cc07e018df436a17c26037e Author: Simon Marchi Date: Thu Oct 22 11:58:38 2015 -0400 Add cast in nto-tdep.c gdb/ChangeLog: * nto-tdep.c (nto_inferior_data): Add cast. commit c72f45d16c16954478dcd87531df146f68acd87c Author: Pedro Alves Date: Thu Oct 22 16:40:45 2015 +0100 gdb/Windows: use windows_wait/windows_resume directly in initial startup Explation below based on what Joel wrote at: https://sourceware.org/ml/gdb-patches/2015-10/msg00274.html The merge async/sync code paths patch broke attaching on Windows. This is what we observe, after attaching to any process. At first, it seems like everything worked fine, since the process stops, and we get the prompt back: (gdb) att 3156 Attaching to program `C:\[...]\foo.exe', process 3156 [New Thread 3156.0xcd8] [New Thread 3156.0xfe4] 0x7770000d in ntdll!DbgBreakPoint () from C:\Windows\SysWOW64\ntdll.dll (gdb) However, enter any commands at all, and GDB appears to be hanging. For instance: (gdb) set lang ada [nothing happens] Despite appearances, GDB is not reading from the prompt. It is blocked waiting for an event from the inferior. And since our inferior is stopped, there aren't going to be any events to read. In chronological order, what happens is that windows_attach calls do_initial_windows_stuff, which performs the inferior creation, and repeatedly waits until we get the first SIGTRAP: while (1) { stop_after_trap = 1; wait_for_inferior (); tp = inferior_thread (); if (tp->suspend.stop_signal != GDB_SIGNAL_TRAP) resume (tp->suspend.stop_signal); else break; } The call to wait_for_inferior triggers a call to do_target_wait to get the event, followed by handle_inferior_event to process it. However, because the first couple of events are "spurious" events, GDB resumes the execution, and prepares the inferior to wait again: case TARGET_WAITKIND_SPURIOUS: [...] resume (GDB_SIGNAL_0); prepare_to_wait (ecs); And prepare_to_wait just does... ecs->wait_some_more = 1; if (!target_is_async_p ()) mark_infrun_async_event_handler (); ... which as a result sets the infrun_async_event_handler "ready" flag to 1. We get a couple of spurious events before we get the initial SIGTRAP, at which point we exit the "while (1)" loop above, after which we reach the end of the attach_command, followed by the normal end-of-command processing (normal_stop, bp handling, printing the GDB prompt), back finally to the root of the event loop. Notice that, at this point, nothing has unset the "ready" flag for the infrun_async_event_handler. So, when another cycle of gdb_do_one_event from the event loop, we eventually call check_async_event_handlers, which finds that the infrun async event handler is "ready", and therefore calls it's associated "proc" callback, which does... inferior_event_handler (INF_REG_EVENT, NULL); ... triggering a blocking call to target_wait, thus hanging forever. The fix is to use windows_wait and windows_resume directly, similarly to gdbserver. This will also allow getting rid of 'stop_after_trap'. gdb/ChangeLog: 2015-10-22 Pedro Alves * windows-nat.c (do_initial_windows_stuff): Rewrite loop using windows_wait and windows_resume directly instead of wait_for_inferior and resume. commit 2213f746d3ab63715c24c3197ae207486464091b Author: Nick Clifton Date: Thu Oct 22 16:25:46 2015 +0100 Add support for MSP430 silicon errata to the assembler. * config/tc-msp430.c (PUSH_1X_WORKAROUND): Delete. (OPTION_SILICON_ERRATA): Define. (OPTION_SILICON_WARN): Define. (md_parse_opton): Handle silicon errata options. (md_longopts): Add silicon errata options. (ms_show_usage): Report silicon errata options. (msp430_srcoperand): Handle silicon errata. (msp430_operands): Likewise. Improve nop insertion. (msp430_fix_adjustable): Update warning generation. * doc/c-msp430.texi: Document silicon errata options. tests * gas/msp430/errata_fixes.s: New test source file. * gas/msp430/errata_fixes.d: New test control file. * gas/msp430/errata_warns.s: New test source file. * gas/msp430/errata_warns.d: New test control file. * gas/msp430/errata_warns.l: New test message file. * gas/msp430/msp430.exp: Run the new tests. * gas/msp430/bad.l: Update expected warning messages * gas/msp430/msp430.exp: Run the new tests. commit 9b4c123c959085bb11a1e8126242a79d9de18995 Author: H.J. Lu Date: Thu Oct 22 07:44:05 2015 -0700 Properly check --enable-compressed-debug-sections={yes,all} gas/ * configure.ac: Properly check --enable-compressed-debug-sections={yes,all}. * configure: Regenerated. ld/ * configure.ac: Properly check --enable-compressed-debug-sections={yes,all}. * configure: Regenerated. commit c287bfe4297ec9c12db292fae5562be1758cf14f Author: Hans-Peter Nilsson Date: Thu Oct 22 09:32:30 2015 +0200 bfd/mmo.c: handle "objcopy --extract-symbols" generating and reading back. bfd: * mmo.c (struct mmo_data_struct): New members symbol_consistency_override_calculated and ignore_symbol_consistency. (mmo_section_has_contents, mmo_ignore_symbol_consistency): New functions. (mmo_create_symbol): Check with mmo_ignore_symbol_consistency if to report an error for unexpected value of Main. (mmo_write_symbols_and_terminator): Similar. commit 282b7d7b65e928a59464b2a9a5e75555c97481dc Author: Hans-Peter Nilsson Date: Thu Oct 22 09:28:40 2015 +0200 Allow mmix-knuth-mmixware adjustments to objcopy --extract-symbols test. * ld-scripts/script.exp (extract_symbol_test): Allow nm output of objcopy --extract-symbols result to differ from original on mmix-knuth-mmixware. commit 64e59d8e11a3b7a99a786c768a2817dc2c636af0 Author: Hans-Peter Nilsson Date: Thu Oct 22 16:12:35 2015 +0200 binutils/objcopy.c (setup_section): missing extract_symbol part * objcopy.c (setup_section): Don't omit bfd_copy_private_bfd_data call when extract_symbol. commit 60905b1e2a5fbd734bfd026cd77b9641cc5f3e66 Author: Simon Marchi Date: Thu Oct 22 09:46:32 2015 -0400 xtensa: Fix implicit enum conversions XTREG is used with raw numbers, like: ... XTREG( 78,312,32, 4, 4,0x02d7,0x0007,-2, 2,0x1000,excsave7, 0,0,0,0,0,0) XTREG( 79,316, 8, 4, 4,0x02e0,0x0007,-2, 2,0x1000,cpenable, 0,0,0,0,0,0) XTREG( 80,320,22, 4, 4,0x02e2,0x000b,-2, 2,0x1000,interrupt, 0,0,0,0,0,0) XTREG( 81,324,22, 4, 4,0x02e2,0x000d,-2, 2,0x1000,intset, 0,0,0,0,0,0) ... So just add the explicit cast to the macro. In file included from /home/pedro/gdb/mygit/src/gdb/xtensa-config.c:25:0: /home/pedro/gdb/mygit/src/gdb/xtensa-tdep.h:289:2: error: invalid conversion from ‘int’ to ‘call_abi_t’ [-fpermissive] } ^ gdb/ChangeLog: * xtensa-tdep.h (XTREG): Add casts. (XTREG_END): Likewise. commit 5af9928d44e302b7f68365a0c551f640895366ff Author: Simon Marchi Date: Thu Oct 22 09:46:31 2015 -0400 solib-spu: Add gdb_byte* cast Fixes this error: /home/simark/src/binutils-gdb/gdb/solib-spu.c: In function ‘file_ptr spu_bfd_iovec_pread(bfd*, void*, void*, file_ptr, file_ptr)’: /home/simark/src/binutils-gdb/gdb/solib-spu.c:299:55: error: invalid conversion from ‘void*’ to ‘gdb_byte* {aka unsigned char*}’ [-fpermissive] ret = target_read_memory (addr + offset, buf, nbytes); ^ In file included from /home/simark/src/binutils-gdb/gdb/target.h:65:0, from /home/simark/src/binutils-gdb/gdb/exec.h:23, from /home/simark/src/binutils-gdb/gdb/gdbcore.h:29, from /home/simark/src/binutils-gdb/gdb/solib-spu.c:23: /home/simark/src/binutils-gdb/gdb/target/target.h:35:12: note: initializing argument 2 of ‘int target_read_memory(CORE_ADDR, gdb_byte*, ssize_t)’ extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, gdb/ChangeLog: * solib-spu.c (spu_bfd_iovec_pread): Add (gdb_byte *) cast. commit 3e45d68b7088df39d0520d1a92005cfdf4e2b922 Author: Simon Marchi Date: Thu Oct 22 09:46:29 2015 -0400 rs6000: Add cast for int to enum conversion Fixes this error: /home/pedro/gdb/mygit/src/gdb/rs6000-tdep.c:3091:1: error: invalid conversion from ‘int’ to ‘bfd_architecture’ [-fpermissive] }; ^ /home/pedro/gdb/mygit/src/gdb/rs6000-tdep.c: In function ‘void powerpc_set_vector_abi(char*, int, cmd_list_element*)’: /home/pedro/gdb/mygit/src/gdb/rs6000-tdep.c:6063:28: error: invalid conversion from ‘int’ to ‘powerpc_vector_abi’ [-fpermissive] powerpc_vector_abi_global = vector_abi; ^ gdb/ChangeLog: * rs6000-tdep.c (variants): Add (enum bfd_architecture) cast. commit 709476c3c595fb61f155ba453733809d3e76ed51 Author: Simon Marchi Date: Thu Oct 22 09:46:28 2015 -0400 mips: fix void*/gdb_byte* compilation errors The error in mips64_linux_get_longjmp_target is fixed by changing "buf" to be a gdb_byte*, as usual. supply_32bit_reg and mips64_fill_gregset do some more complicated things however, so it's safer just to add the explicit cast and avoid changing the code too much. gdb/ChangeLog: * mips-linux-tdep.c (mips64_linux_get_longjmp_target): Change type of buf to gdb_byte*. (supply_32bit_reg): Add cast. (mips64_fill_gregset): Likewise. commit 4894d80b508ad2626eb2cfd23cfcb5635cdf7442 Author: H.J. Lu Date: Thu Oct 22 05:18:21 2015 -0700 Handle --enable-compressed-debug-sections=ld,gas gas/ PR gas/19109 * configure.ac: Handle --enable-compressed-debug-sections=*,gas,*. * configure: Regenerated. ld/ PR gas/19109 * configure.ac: Handle --enable-compressed-debug-sections=*,ld,*. * configure: Regenerated. commit 2891b491040ac84dfe0013454b2aa834de7b539c Author: H.J. Lu Date: Thu Oct 22 04:56:10 2015 -0700 Gold: Don't fail on R_X86_64_[REX_]GOTPCRELX relocations This patch updates gold to treat the R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX relocations proposed in https://groups.google.com/forum/#!topic/x86-64-abi/n9AWHogmVY0 the same as R_X86_64_GOTPCREL. FIXME: Gold should perform the transformations as suggested. elfcpp/ * x86_64.h (R_X86_64_GOTPCRELX): New. (R_X86_64_REX_GOTPCRELX): Likewise. gold/ * x86_64.cc (Target_x86_64::Scan::get_reference_flags): Treat R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX the same as R_X86_64_GOTPCREL. (Target_x86_64::Scan::local): Likewise. (Target_x86_64::Scan::possible_function_pointer_reloc): Likewise. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise. (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc): Likewise. commit 493d4b48decc2b3c5fe9d2df68bcee67fdd8b7cb Author: H.J. Lu Date: Thu Oct 22 04:54:42 2015 -0700 Gold: Don't fail on R_386_GOT32X relocation This patch updates gold to treat the R_386_GOT32X relocation proposed in https://groups.google.com/forum/#!topic/ia32-abi/GbJJskkid4I the same as R_386_GOT32. FIXME: Gold should perform the transformations as suggested. elfcpp/ * i386.h (R_386_GOT32X): New. gold/ * i386.cc (Target_i386::Scan::get_reference_flags(): Treat R_386_GOT32X the same as R_386_GOT32. (Target_i386::Scan::local): Likewise. (Target_i386::Scan::possible_function_pointer_reloc): Likewise. (Target_i386::Scan::global): Likewise. (Target_i386::Relocate::relocate): Likewise. (Target_i386::Relocatable_size_for_reloc::get_size_for_reloc): Likewise. commit caa65211bbbfd53c40c9ce1b79b97ccf2c679a52 Author: H.J. Lu Date: Thu Oct 22 04:53:04 2015 -0700 Add "-z call-nop=PADDING" option to ld The ld linker can transform indirect call to a locally defined function, foo, via its GOT slot, to either "NOP call foo" or "call foo NOP" where NOP is a 1-byte NOP padding. This patch adds a "-z call-nop=PADDING" option to x86 ld to control 1-byte NOP padding for x86 call instruction. PADDING is one of prefix-addr, prefix-nop, suffix-nop, prefix-NUMBER or suffix-NUMBER. bfd/ * elf32-i386.c (elf_i386_convert_load): Use call_nop_byte and check call_nop_as_suffix for 1-byte NOP padding to pad call. * elf64-x86-64.c (elf_x86_64_convert_load): Likewise. include/ * bfdlink.h (bfd_link_info): Add call_nop_as_suffix and call_nop_byte. ld/ * ld/ld.texinfo: Document "-z call-nop=PADDING" option. * emulparams/call_nop.sh: New file. * emulparams/elf_i386_be.sh: Source ${srcdir}/emulparams/call_nop.sh. * emulparams/elf_i386_chaos.sh: Likewise. * emulparams/elf_i386_ldso.sh: Likewise. * emulparams/elf_i386_vxworks.sh: Likewise. * emulparams/elf_iamcu.sh: Likewise. * emulparams/elf_k1om.sh: Likewise. * emulparams/elf_l1om.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set link_info.call_nop_byte if $CALL_NOP_BYTE isn't empty. ld/testsuite/ * ld-i386/call3.s: New file. * ld-i386/call3a.d: Likewise. * ld-i386/call3b.d: Likewise. * ld-i386/call3c.d: Likewise. * ld-i386/call3d.d: Likewise. * ld-i386/call3e.d: Likewise. * ld-i386/call3f.d: Likewise. * ld-i386/call3g.d: Likewise. * ld-i386/call3h.d: Likewise. * ld-i386/load1-nacl.d: Likewise. * ld-x86-64/call1.s: Likewise. * ld-x86-64/call1a.d: Likewise. * ld-x86-64/call1b.d: Likewise. * ld-x86-64/call1c.d: Likewise. * ld-x86-64/call1d.d: Likewise. * ld-x86-64/call1e.d: Likewise. * ld-x86-64/call1f.d: Likewise. * ld-x86-64/call1g.d: Likewise. * ld-x86-64/call1h.d: Likewise. * ld-x86-64/call1i.d: Likewise. * ld-x86-64/load1a-nacl.d: Likewise. * ld-x86-64/load1b-nacl.d: Likewise. * ld-x86-64/load1c-nacl.d: Likewise. * ld-x86-64/load1d-nacl.d: Likewise. commit 56ceb5b5405af23eddd12e12d8ba849010120324 Author: H.J. Lu Date: Thu Oct 22 04:49:20 2015 -0700 Add R_X86_64_[REX_]GOTPCRELX support to gas and ld This patch adds support for the R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX relocations proposed in https://groups.google.com/forum/#!topic/x86-64-abi/n9AWHogmVY0 to gas and ld. It updates gas to generate R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX if there is a REX prefix, relocation for memory operand, foo@GOTPCREL(%rip). With the locally defined symbol, foo, we convert mov foo@GOTPCREL(%rip), %reg to lea foo(%rip), %reg and convert call/jmp *foo@GOTPCREL(%rip) to nop call foo/jmp foo nop When PIC is false, convert test %reg, foo@GOTPCREL(%rip) to test $foo, %reg and convert binop foo@GOTPCREL(%rip), %reg to binop $foo, %reg where binop is one of adc, add, and, cmp, or, sbb, sub, xor instructions. bfd/ * elf64-x86-64.c: Include opcode/i386.h. (x86_64_elf_howto_table): Add R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX. (R_X86_64_standard): Replace R_X86_64_PLT32_BND with R_X86_64_REX_GOTPCRELX. (x86_64_reloc_map): Add BFD_RELOC_X86_64_GOTPCRELX and BFD_RELOC_X86_64_REX_GOTPCRELX. (need_convert_mov_to_lea): Renamed to ... (need_convert_load): This. (elf_x86_64_check_relocs): Handle R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX. Replace need_convert_mov_to_lea with need_convert_load. (elf_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX. (elf_x86_64_size_dynamic_sections): Likewise. (elf_x86_64_relocate_section): Likewise. (elf_x86_64_convert_mov_to_lea): Renamed to ... (elf_x86_64_convert_load): This. Replace need_convert_mov_to_lea with need_convert_load. Support R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX transformations. * reloc.c (BFD_RELOC_X86_64_GOTPCRELX): New. (BFD_RELOC_X86_64_REX_GOTPCRELX): Likewise. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. gas/ * config/tc-i386.c (tc_i386_fix_adjustable): Handle BFD_RELOC_X86_64_GOTPCRELX and BFD_RELOC_X86_64_REX_GOTPCRELX. (tc_gen_reloc): Likewise. (i386_validate_fix): Generate BFD_RELOC_X86_64_GOTPCRELX or BFD_RELOC_X86_64_REX_GOTPCRELX if fx_tcbit2 is set. * config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Also return true for BFD_RELOC_X86_64_GOTPCRELX and BFD_RELOC_X86_64_REX_GOTPCRELX. gas/testsuite/ * gas/i386/i386.exp: Run x86-64-gotpcrel. * gas/i386/x86-64-gotpcrel.d: New file. * gas/i386/x86-64-gotpcrel.s: Likewise. * gas/i386/ilp32/x86-64-gotpcrel.d: Likewise. * gas/i386/x86-64-localpic.d: Replace R_X86_64_GOTPCREL with R_X86_64_REX_GOTPCRELX. * gas/i386/ilp32/x86-64-localpic.d: Likewise. include/elf/ * x86-64.h (R_X86_64_GOTPCRELX): New. (R_X86_64_REX_GOTPCRELX): Likewise. ld/testsuite/ * ld-ifunc/ifunc-5r-local-x86-64.d: Replace R_X86_64_GOTPCREL with R_X86_64_REX_GOTPCRELX. * ld-x86-64/plt-main1.rd: Likewise. * ld-x86-64/plt-main3.rd: Likewise. * ld-x86-64/plt-main4.rd: Likewise. * ld-x86-64/gotpcrel1.dd: New file. * ld-x86-64/gotpcrel1.out: Likewise. * ld-x86-64/gotpcrel1a.S: Likewise. * ld-x86-64/gotpcrel1b.c: Likewise. * ld-x86-64/gotpcrel1c.c: Likewise. * ld-x86-64/gotpcrel1d.S: Likewise. * ld-x86-64/load1.s: Likewise. * ld-x86-64/load1a.d: Likewise. * ld-x86-64/load1b.d: Likewise. * ld-x86-64/load1c.d: Likewise. * ld-x86-64/load1d.d: Likewise. * ld-x86-64/x86-64.exp: Run load1a, load1b, load1c and load1d tests. Run gotpcrel1 test. commit 02a866936de7e63ad4962ccba56c8cd05c231275 Author: H.J. Lu Date: Thu Oct 22 04:46:51 2015 -0700 Add R_386_GOT32X support to gas and ld This patch adds support for the R_386_GOT32X relocation proposed in https://groups.google.com/forum/#!topic/ia32-abi/GbJJskkid4I to gas and ld. It updates gas to generate R_386_GOT32X relocation for memory operand, foo@GOT[(%reg)]. We must encode "mov foo@GOT, %eax" with the 0x8b opcode, instead of the 0xb8 opcode, so that it can be transformed to "lea foo, %eax". With the locally defined symbol, foo, we convert mov foo@GOT[(%reg1)], %reg2 to lea foo[@GOTOFF(%reg1)], %reg2 and convert call/jmp *foo@GOT[(%reg)] to nop call foo/jmp foo nop When PIC is false, convert test %reg1, foo@GOT[(%reg2)] to test $foo, %reg1 and convert binop foo@GOT[(%reg1)], %reg2 to binop $foo, %reg2 where binop is one of adc, add, and, cmp, or, sbb, sub, xor instructions. bfd/ * elf32-i386.c: Include opcode/i386.h. (elf_howto_table): Add R_386_GOT32X. (R_386_ext2): Replace R_386_IRELATIVE with R_386_GOT32X. (elf_i386_reloc_type_lookup): Handle BFD_RELOC_386_GOT32X. (need_convert_mov_to_lea): Renamed to ... (need_convert_load): This. (elf_i386_check_relocs): Handle R_386_GOT32X. Replace need_convert_mov_to_lea with need_convert_load. (elf_i386_gc_sweep_hook): Handle R_386_GOT32X. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_convert_mov_to_lea): Renamed to ... (elf_i386_convert_load): This. Replace need_convert_mov_to_lea with need_convert_load. Support R_386_GOT32X transformations. * reloc.c (BFD_RELOC_386_GOT32X): New. * bfd-in2.h: Regenerated. * libbfd.h: Likewise. gas/ * config/tc-i386.c (tc_i386_fix_adjustable): Handle BFD_RELOC_386_GOT32X. (tc_gen_reloc): Likewise. (match_template): Force 0x8b encoding for "mov foo@GOT, %eax". (output_disp): Check for "call/jmp *mem", "mov mem, %reg", "test %reg, mem" and "binop mem, %reg" where binop is one of adc, add, and, cmp, or, sbb, sub, xor instructions. Set fx_tcbit if the REX prefix is generated. Set fx_tcbit2 if BFD_RELOC_386_GOT32X should be generated. (i386_validate_fix): Generate BFD_RELOC_386_GOT32X if fx_tcbit2 is set. gas/testsuite/ * gas/i386/got.d: New file. * gas/i386/got.s: Likewise. * gas/i386/i386.exp: Run got. * gas/i386/localpic.d: Replace R_386_GOT32 with R_386_GOT32X. * gas/i386/mixed-mode-reloc32.d: Likewise. * gas/i386/reloc32.d: Likewise. include/elf/ * i386.h (R_386_GOT32X): New relocation. ld/testsuite/ * ld-i386/branch1.d: New file. * ld-i386/branch1.s: Likewise. * ld-i386/call1.d: Likewise. * ld-i386/call1.s: Likewise. * ld-i386/call2.d: Likewise. * ld-i386/call2.s: Likewise. * ld-i386/got1.dd: Likewise. * ld-i386/got1.out: Likewise. * ld-i386/got1a.S: Likewise. * ld-i386/got1b.c: Likewise. * ld-i386/got1c.c: Likewise. * ld-i386/got1d.S: Likewise. * ld-i386/jmp1.d: Likewise. * ld-i386/jmp1.s: Likewise. * ld-i386/jmp2.d: Likewise. * ld-i386/jmp2.s: Likewise. * ld-i386/load1.d: Likewise. * ld-i386/load1.s: Likewise. * ld-i386/load2.d: Likewise. * ld-i386/load2.s: Likewise. * ld-i386/load3.d: Likewise. * ld-i386/load3.s: Likewise. * ld-i386/load4.s: Likewise. * ld-i386/load4a.d: Likewise. * ld-i386/load4b.d: Likewise. * ld-i386/load5.s: Likewise. * ld-i386/load5a.d: Likewise. * ld-i386/load5b.d: Likewise. * ld-i386/load6.d: Likewise. * ld-i386/load6.s: Likewise. * ld-i386/i386.exp: Run branch1, call1, call2, jmp1, jmp2, load1, load2, load3, load4a, load4b, load5a, load5b and load6 tests. Run got1 test. commit 99ba51255402201c6e193d803ee1f1fc3f2de0e6 Author: Andreas Krebbel Date: Mon Oct 19 15:44:35 2015 +0200 S/390: ifunc: Redirect local function calls to the IPLT. bfd/ChangeLog: * elf32-s390.c (elf_s390_check_relocs): Set the non_got_ref marker only when linking an executable. (elf_s390_relocate_section): Redirect PC-relative relocs to a IPLT slot. * elf64-s390.c (elf_s390_check_relocs): Set the non_got_ref marker only when linking an executable. (elf_s390_relocate_section): Redirect PC-relative relocs to a IPLT slot. commit d8ee9e44cc9a986b063a6ea6c91d39217cce65a1 Author: Andreas Krebbel Date: Fri Oct 16 21:49:43 2015 +0200 S/390: ifunc: Fix function pointers to hidden ifunc symbols. bfd/ChangeLog: * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Set the PLT reference counters for local IFUNC calls. * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise. commit 01a53584798606cf6329e8a86134cb9b47d1de11 Author: Andreas Krebbel Date: Fri Oct 16 21:07:17 2015 +0200 S/390: ifunc: Handle GOTOFF relocs on ifunc symbols. Normally a GOTOFF reloc only uses the GOT pointer to address something relativ to it without actually requiring a GOT or PLT slot. Things change if the target is an ifunc symbol though. bfd/ChangeLog: * elf32-s390.c (elf_s390_check_relocs): Fallthrough to the PLT slot allocating code for GOTOFF relocs on ifunc symbols. (elf_s390_gc_sweep_hook): Decrement plt refcount for GOTOFF relocs on ifunc symbols. (elf_s390_relocate_section): Redirect a GOTOFF reloc to an iplt slot. commit 0f042c67a04d5d0c8f879c27d651a7ed5aa6566f Author: Andreas Krebbel Date: Thu Oct 22 10:11:07 2015 +0200 S/390: ifunc: Fix PR18841. In order to get the ifunc relocs properly sorted the correct class needs to be returned. The code mimics what has been done for x86. bfd/ChangeLog: PR ld/18841 * elf32-s390.c (elf_s390_reloc_type_class): Return reloc_class_ifunc for ifunc symbols. * elf64-s390.c (elf_s390_reloc_type_class): Likewise. commit 0a511368e2b896fe84f3b4bce5390e6269bcc57b Author: Andreas Krebbel Date: Mon Oct 12 17:33:28 2015 +0200 S/390: ifunc: Fix for undefined ifunc symbols. bfd/ChangeLog: * elf32-s390.c (elf_s390_finish_dynamic_symbol): Call elf_s390_finish_ifunc_symbol only for actually defined symbols. * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. commit e44c481aff721595eb9d28a7751d02300155148d Author: Andreas Krebbel Date: Mon Oct 12 17:34:11 2015 +0200 S/390: ifunc: Enable the ifunc tests. ld/testsuite/ChangeLog: * ld-ifunc/ifunc.exp: Run ifunc tests on s390* targets. commit 61643fbadb17932965e5c02db75ec3f8e211d7b1 Author: Andreas Krebbel Date: Mon Oct 19 13:08:27 2015 +0200 S/390: Get rid of superfluous parameter to s390_elf_allocate_ifunc_dyn_relocs. bfd/ChangeLog: * elf-s390-common.c (s390_elf_allocate_ifunc_dyn_relocs): Remove `head' parameter. * elf32-s390.c (allocate_dynrelocs): Don't use last parameter. * elf64-s390.c (allocate_dynrelocs): Don't use last parameter. commit 8b89121d4444e5c23295c63835da538b11d4cb49 Author: Alan Modra Date: Thu Oct 22 12:44:24 2015 +1030 Run add-symbol test on mips * binutils-all/add-symbol.d: Run test on mips. Support either order of NEW and NEWDATA symbols. commit 4ee3febded6c95ef47e8982a406aa3549cb6b59b Author: Alan Modra Date: Thu Oct 22 10:58:47 2015 +1030 Fix tests for PR 18500, revisited Correct commit a846e9c1. PR gas/18500 * gas/arm/vfpv2-ldr_immediate.d: Use parentheses, not brackets, to select alternatives. * gas/arm/vfpv3-ldr_immediate.d: Likewise. * gas/arm/vfpv3xd-ldr_immediate.d: Likewise. commit 79697b649f28a6fc1062bb91737d9e64ee114ee6 Author: GDB Administrator Date: Thu Oct 22 00:00:08 2015 +0000 Automatic date update in version.in commit bed91f4da252b5f30d3cb4fd9f9febd61ad9560d Author: Simon Marchi Date: Wed Oct 21 15:57:22 2015 -0400 Fix accessing a function's fields (parameters) from Python (PR 18073) Since 7.4, gdb doesn't allow calling .fields() on a function type, even though the documentation states it should return a list corresponding to the function's parameters. This patch restores the intended behaviour and adds a test for it. Reg-tested on Arch Linux x86-64. gdb/ChangeLog: PR python/18073 * python/py-type.c (typy_get_composite): Allow returning a function type. gdb/testsuite/ChangeLog: PR python/18073 * gdb.python/py-type.c (C::a_method): New. (C::a_const_method): New. (C::a_static_method): New. (a_function): New. * gdb.python/py-type.exp (test_fields): Test getting fields from function and method. commit 3f2f83ddcba5b04389dd3c666ce7d4cace7e5b63 Author: Keven Boell Date: Wed Oct 21 15:32:30 2015 -0400 fort_dyn_array: add basic fortran dyn array support Fortran provide types whose values may be dynamically allocated or associated with a variable under explicit program control. The purpose of this commit is: * to read allocated/associated DWARF tags and store them in the dynamic property list of main_type. * enable GDB to print the value of a dynamic array in Fortran in case the type is allocated or associated (pointer to dynamic array). Examples: (gdb) p vla_not_allocated $1 = (gdb) p vla_allocated $1 = (1, 2, 3) (gdb) p vla_ptr_not_associated $1 = (gdb) p vla_ptr_associated $1 = (1, 2, 3) Add basic test coverage for most dynamic array use-cases in Fortran. The commit contains the following tests: * Ensure that values of Fortran dynamic arrays can be evaluated correctly in various ways and states. * Ensure that Fortran primitives can be evaluated correctly when used as a dynamic array. * Dynamic arrays passed to subroutines and handled in different ways inside the routine. * Ensure that the ptype of dynamic arrays in Fortran can be printed in GDB correctly. * Ensure that dynamic arrays in different states (allocated/associated) can be evaluated. * Dynamic arrays passed to functions and returned from functions. * History values of dynamic arrays can be accessed and printed again with the correct values. * Dynamic array evaluations using MI protocol. * Sizeof output of dynamic arrays in various states. The patch was tested using the test suite on Ubuntu 12.04 64bit. gdb/ChangeLog: * dwarf2read.c (set_die_type): Add read of DW_AT_allocated and DW_AT_associated. * f-typeprint.c: New include of typeprint.h (f_print_type): Add check for allocated/associated status of type. (f_type_print_varspec_suffix): Add check for allocated/associated status of type. * gdbtypes.c (create_array_type_with_stride): Add check for valid data location of type in case allocated or associated attributes are set. Length of an array should be only calculated if allocated or associated is resolved as true. (is_dynamic_type_internal): Add check for allocated/ associated. (resolve_dynamic_array): Evaluate allocated/associated properties. * gdbtypes.h (enum dynamic_prop_node_kind): : New enums. (TYPE_ALLOCATED_PROP, TYPE_ASSOCIATED_PROP): New macros. (type_not_allocated): New function. (type_not_associated): New function. * valarith.c (value_subscripted_rvalue): Add check for allocated/associated. * valprint.c: New include of typeprint.h. (valprint_check_validity): Add check for allocated/associated. (value_check_printable): Add check for allocated/ associated. * typeprint.h (val_print_not_allocated): New function. (val_print_not_associated): New function. * typeprint.c (val_print_not_allocated): New function. (val_print_not_associated): New function. gdb/testsuite/ChangeLog: * gdb.fortran/vla-alloc-assoc.exp: New file. * gdb.fortran/vla-datatypes.exp: New file. * gdb.fortran/vla-datatypes.f90: New file. * gdb.fortran/vla-history.exp: New file. * gdb.fortran/vla-ptype-sub.exp: New file. * gdb.fortran/vla-ptype.exp: New file. * gdb.fortran/vla-sizeof.exp: New file. * gdb.fortran/vla-sub.f90: New file. * gdb.fortran/vla-value-sub-arbitrary.exp: New file. * gdb.fortran/vla-value-sub-finish.exp: New file. * gdb.fortran/vla-value-sub.exp: New file. * gdb.fortran/vla-value.exp: New file. * gdb.fortran/vla-ptr-info.exp: New file. * gdb.mi/mi-vla-fortran.exp: New file. * gdb.mi/vla.f90: New file. commit 27145d50705b46e213f5f261bd07572383c79e20 Author: Sandra Loosemore Date: Wed Oct 21 09:54:49 2015 -0700 Adjust timeout in gdb.base/freebpcmd.exp. 2015-10-21 Sandra Loosemore gdb/testsuite/ * gdb.base/freebpcmd.exp: Use with_timeout_factor instead of hardwired timeout value. commit a846e9c1872038b0d7bac1fe5bb134668ae5e697 Author: Nick Clifton Date: Wed Oct 21 17:25:28 2015 +0100 Fix tests for PR 18500 so that they will pass for big-endian ARM toolchains. PR gas/18500 * gas/arm/vfpv3xd-ldr_immediate.d: Update test for big-endian ARM toolchains. * gas/arm/vfpv3-ldr_immediate.d: Likewise. * gas/arm/vfpv2-ldr_immediate.d: Likewise. commit abeead094ef75fb896c9cabce8bf7b91da0a552c Author: Antoine Tremblay Date: Wed Oct 21 11:13:42 2015 -0400 Support software breakpoints for ARM linux in GDBServer. This patch enables software breakpoints via GDB's Z0 packets on ARM. No regressions, tested on ubuntu 14.04 ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-arm-low.c (arm_supports_z_point_type): Add software breakpoint support. commit b0b4b5019484fbf1dd074527270f193703411498 Author: Antoine Tremblay Date: Wed Oct 21 11:13:42 2015 -0400 Refactor the breakpoint definitions in linux-arm-low.c. Before arm_sw_breakpoint_from_kind would use an #ifdef to return the right arm_breakpoint from the abi or eabi breakpoint type. arm_breakpoint_at would also check for the arm_breakpoint || arm_eabi_breakpoint. Thus the selected arm_breakpoint would be what arm_sw_breakpoint_from_kind returned and arm_breakpoint was arm_abi_breakpoint. This patch makes it more clear by naming those for what they are : 2 separate entities: arm_abi_breakpoint and arm_eabi_breakpoint and set the current used one as arm_breakpoint. This allows a cleaner arm_sw_breakpoint_from_kind as it just returns arm_breakpoint rather than having the #ifdef in that function. Any other reference to the arm_breakpoint can now also be clear of #ifdefs... No regressions on Ubuntu 14.04 on ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-arm-low.c: Refactor breakpoint definitions. (arm_breakpoint_at): Adjust for arm_abi_breakpoint. (arm_sw_breakpoint_from_kind): Adjust for arm_breakpoint. commit 8689682cc375f6f30d65f1583b3aaa3e6a1e4d63 Author: Antoine Tremblay Date: Wed Oct 21 11:13:41 2015 -0400 Implement breakpoint_kind_from_pc and sw_breakpoint_from_kind for ARM in GDBServer. ARM can have multiple breakpoint types based on the instruction set it's currently in: arm, thumb or thumb2. GDBServer needs to know what breakpoint is to be inserted at location when inserting a breakpoint. This is handled by the breakpoint_kind_from_pc and sw_breakpoint_from_kind target ops introduced in a previous patch, this patch adds the arm_breakpoint_kind_from_pc and arm_sw_breakpoint_from_kind implementation so that the proper breakpoint type is returned based on the pc. Also in order to share some code with GDB a new file called arm.c have been introduced in arch/. While this file does not contain much yet future patches will add more to it thus the inclusion at this stage. No regressions on Ubuntu 14.04 on ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/ChangeLog: * Makefile.in: Add arm.c/o. * arch/arm.c: New file. * arch/arm.h: (IS_THUMB_ADDR): Move macro from arm-tdep.c. (MAKE_THUMB_ADDR): Likewise. (UNMAKE_THUMB_ADDR): Likewise. * arm-tdep.c (int thumb_insn_size): Move to arm.c. (IS_THUMB_ADDR): Move to arm.h. (MAKE_THUMB_ADDR): Likewise. (UNMAKE_THUMB_ADDR): Likewise. * configure.tgt: Add arm.o to all ARM configs. gdb/gdbserver/ChangeLog: * Makefile.in: Add arm.c/o. * configure.srv: Likewise. * linux-arm-low.c (arm_breakpoint_kinds): New enum. (arm_breakpoint_kind_from_pc): New function. (arm_sw_breakpoint_from_kind): Return proper kind. (struct linux_target_ops) : Initialize. commit 2716529498941971b698f603e9aa0edc89905cb8 Author: Antoine Tremblay Date: Wed Oct 21 11:13:40 2015 -0400 Support breakpoint kinds for software breakpoints in GDBServer. There's two ways to set breakpoints in GDBServer. - GDBServer setting its own breakpoints, through API set_breakpoint_at. - GDBServer setting breakpoints according to the information in Z packets, through API set_gdb_breakpoint. Before this patch the breakpoint kinds were a concept unique to GDB and Z packets, as GDBServer never had to set different kinds of breakpoint on its own. This patch teaches GDBServer to handle breakpoint kinds for its own breakpoints. It generalizes the breakpoint kind as per Z packets to represent different kinds of breakpoints directly set by GDBServer also. GDBServer now querys breakpoint_kind_from_pc to know what breakpoint kind to set on its own. As the kind is now a differentiating factor equivalent to size for the breakpoint struct and that it's size can be queried using sw_breakpoint_from_kind, the size field has been replaced with the kind field. All references to size are now replaced by kind or a call to bp_size that wraps sw_breakpoing_from_kind and returns the size of the breakpoint in memory. To fetch the software breakpoint data bp_opcode is called and wraps the sw_breakpoint_from_kind call. No regressions on Ubuntu 14.04 on ARMv7 and x86. With gdbserver-{native,extended} / { -marm -mthumb } gdb/gdbserver/ChangeLog: * linux-low.c (initialize_low): Ajdust for breakpoint global variables removal. * mem-break.c : Remove breakpoint_data/breakpoint_len global variables. (struct raw_breakpoint) : Remove. (struct raw_breakpoint) : Add. (bp_size): New function. (bp_opcode): Likewise. (find_raw_breakpoint_at): Adjust for kind. (insert_memory_breakpoint): Adjust for kind call bp_size,bp_opcode. (remove_memory_breakpoint): Adjust for kind call bp_size. (set_raw_breakpoint_at): Adjust for kind. (set_breakpoint): Likewise. (set_breakpoint_at): Call breakpoint_kind_from_pc. (delete_raw_breakpoint): Adjust for kind. (delete_breakpoint): Likewise. (find_gdb_breakpoint): Likewise. (set_gdb_breakpoint_1): Likewise. (set_gdb_breakpoint): Likewise. (delete_gdb_breakpoint_1): Likewise. (delete_gdb_breakpoint): Likewise. (uninsert_raw_breakpoint): Likewise. (reinsert_raw_breakpoint): Likewise. (set_breakpoint_data): Remove. (validate_inserted_breakpoint): Adjust for kind call bp_size,bp_opcode. (check_mem_read): Adjust for kind call bp_size. (check_mem_write): Adjust for kind call bp_size,bp_opcode. (clone_one_breakpoint): Adjust for kind. * mem-break.h (set_gdb_breakpoint): Likewise. (delete_gdb_breakpoint): Likewise. * server.c (process_serial_event): Likewise. commit dd373349578df87396bc43e7ab00a1a5ceb16c8b Author: Antoine Tremblay Date: Wed Oct 21 11:17:26 2015 -0400 Add the target_ops needed for software breakpoints in GDBServer. This patch is in preparation for software breakpoints on ARM linux. It refactors breakpoint and breakpoint_len into breakpoint_kind_from_pc and sw_breakpoint_from kind to prepare the case where we have multiple types of breakpoints. Kind is the type of breakpoint (hardware or software) to be inserted, usually it is the lenght of the software breakpoint but can be something else depending on the target. This patch introduces the linux_target_ops breakpoint_kind_from_pc and sw_breakpoint_from_kind. breakpoint_kind_from_pc returns the breakpoint kind and adjusts the PC to the real memory location in case a flag was present in the PC. E.g the instruction mode on ARM. sw_breakpoint_from_kind returns the software breakpoint for this kind as a string of bytes, the length of the breakpoint is adjusted for the breakpoint's size in memory. For targets that have only one kind of breakpoint, the default value 0 is returned by linux_breakpoint_kind_from_pc so that not all targets need to implement the breakpoint_kind_from_pc operation. No regressions, tested on Ubuntu 14.04 on ARMv7 and x86 With gdbserver-{native,extended} / { -marm -mthumb } Also since the target_ops have been changed compilation was tested on affected archs namely : aarch64, arm, bfin, cris, crisv32, m32r, m68k, mips, nios2, ppc, s390, sparc, tic6x, tile, x86, steins. Not tested : sh gdb/gdbserver/ChangeLog: * linux-aarch64-low.c (aarch64_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-arm-low.c (arm_breakpoint_kind_from_pc): New function. (arm_sw_breakpoint_from_kind): New function. * linux-bfin-low.c (bfin_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-cris-low.c (cris_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-crisv32-low.c (cris_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-low.c (linux_wait_1): Call breakpoint_kind_from_pc and sw_breakpoint_from_kind to increment the pc. (linux_breakpoint_kind_from_pc): New function. (linux_sw_breakpoint_from_kind): New function. (struct target_ops) : Initialize field. (initialize_low): Call breakpoint_kind_from_pc and sw_breakpoint_from_kind to replace breakpoint_data/len. * linux-low.h (struct linux_target_ops) : New field. (struct linux_target_ops) : Likewise. * linux-m32r-low.c (m32r_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-m68k-low.c (m68k_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-mips-low.c (mips_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-nios2-low.c (nios2_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-ppc-low.c (ppc_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-s390-low.c (s390_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-sh-low.c (sh_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-sparc-low.c (sparc_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-tic6x-low.c (tic6x_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-tile-low.c (tile_sw_breakpoint_from_kind): New function. * linux-x86-low.c (x86_sw_breakpoint_from_kind): New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. * linux-xtensa-low.c (xtensa_sw_breakpoint_from_kind) New function. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Remove. (struct linux_target_ops) : Initialize field. (struct linux_target_ops) : Initialize field. commit 397dd9a5223d92035e7eebfee8ddcd19b0516f7a Author: Ronald Hoogenboom Date: Wed Oct 21 16:20:02 2015 +0100 Fix typo in spelling of author's name. commit 80f0110c98d4134409f38e7d498e89fe96773819 Author: Yao Qi Date: Wed Oct 21 16:16:25 2015 +0100 Remove checking vCont;s in exec_cmd_expect_vCont_count Nowadays, in the range-stepping tests, we check not only the number of vCont;r packets but also the number of vCont;s packets, because we think the remote target which can do range stepping must support single step. However, if we turn displaced stepping on, the remote target (GDBserver) can do range stepping, and support single step, but GDB may decide to resume instructions in the scratchpad rather than single step them one by one for displaced stepping. For example, when aarch64 GDB debugs arm linux program with aarch64 GDBserver, GDBserver supports both range stepping and single step, but GDB (with the gdbarch for arm-linux) decides resume instructions in the scratchpad, so in the RSP traffic, there is no vCont;s packet at all, and some range-stepping.exp tests fail, FAIL: gdb.base/range-stepping.exp: multi insns: next: vCont;s=1 vCont;r=1 This patch is to get rid of the checking to the number of vCont;s in exec_cmd_expect_vCont_count. gdb/testsuite: 2015-10-21 Yao Qi * lib/range-stepping-support.exp (exec_cmd_expect_vCont_count): Remove argument exp_vCont_s. * gdb.base/range-stepping.exp: Callers updated. * gdb.trace/range-stepping.exp: Likewise. commit d7161de46af80e460d432d8dbb1c42f8cbacf6dc Author: Aleksandar Ristovski Date: Wed Oct 21 10:37:33 2015 -0400 [nto] Improve ABI sniffing. Use qnx specific notes to figure out the OS. gdb/ChangeLog: * gdb/nto-tdep.c (QNX_NOTE_NAME, QNX_INFO_SECT_NAME): New defines. (nto_sniff_abi_note_section): New function. (nto_elf_osabi_sniffer): Use new function to recognize nto specific binary. commit a9889169e5b21efb8c42105fc62461be43968d64 Author: Aleksandar Ristovski Date: Wed Oct 21 10:37:33 2015 -0400 [nto] Fix nto target stopped by watchpoint. Fix 'stopped by watchpoint' detection: add inferior data, use inferior data for storing last stopped flags needed for detection. gdb/ChangeLog: * nto-procfs.c (procfs_wait): Set stopped_flags nad stopped_pc. (procfs_stopped_by_watchpoint): Use flags stored in inferior data. * nto-tdep.c (nto_new_inferior_data_reg): New definition. (nto_new_inferior_data, nto_inferior_data_cleanup, nto_inferior_data): New functions. (_initialize_nto_tdep): New forward declaration, new function. * nto-tdep.h (struct nto_inferior_data): New struct. (nto_inferior_data): New function declaration. commit 2b35fb28f397a26c0da03f7579116d28af2af824 Author: Ronald Hoogenbllon Date: Wed Oct 21 15:16:35 2015 +0100 Add ability for objcopy to insert new symbols into a binary. PR binutils/19104 binutils * objcopy.c (command_line_switch): Add OPTION_ADD_SYMBOL. (copy_options): Add add-symbol. (copy_usage): Likewise. (parse_symflags): New function. (need_sym_before): New function. (create_new_symbol): New function. (filter_symbols): Add code to insert new symbols. (copy_main): Process OPTION_ADD_SYMBOL. * doc/binutils.texi: Document new feature. * NEWS: Add note about the new feature. tests * binutils-all/add-symbol.d: New test. * binutils-all/objcopy.exp: Run the new test. commit 1283d92f0e4704bb31b1e163b9c88216756ef62c Author: Nick Clifton Date: Wed Oct 21 14:57:28 2015 +0100 Extend description of the --enable-compressed-debug-sections configure option in gas and ld. commit 6c3bc0f82c625d425b09c01f96b64946abe4118e Author: Nick Clifton Date: Wed Oct 21 13:12:19 2015 +0100 Reset x86 Linux targets to not compressing debug sections by default. Enable compression of debug sections by default in the linker, if so configured. PR gas/19109 . * configure.ac: Note the 'none' is an acceptable argument to --enable-compressed-debug-sections. * configure: Regenerate. gas * configure.ac: Restore --enable-compressed-debug-sections. Do not enable compressed debug sections by default for x86 Linux targets. * configure: Regenerate. ld * configure.ac: Add --enable-compressed-debug-sections. * configure: Regenerate. * config.in: Regenerate. * ld.texinfo: Document how to determine the default action for debug sections. * ldmain.c (main): If DEFAULT_FLAG_COMPRESS_DEBUG is defined then set the compress_debug field of the link_info structure to zlib-gabi. * lexsup.c (elf_static_list_options): Output the default setting for the --compress-debug-sections option. * NEWS: Mention the new configure option. commit 4cd98a1920446165eaf0a5d5e71f86133e92954d Author: Antoine Tremblay Date: Wed Oct 21 07:44:26 2015 -0400 Fix --host cris-*-linux build of GDBServer. Compiling GDBServer with --host cris-*-linux yields a compilation error : linux-cris-low.c:65:21: error: ‘void’ must be the only parameter This patch fixes the issue by removing the void parameter in cris_get_pc. gdb/gdbserver/ChangeLog: * linux-cris-low.c (cris_get_pc): Remove void arg. commit 2c3853e30485654f3d40d6d9e1b57d31444d3598 Author: GDB Administrator Date: Wed Oct 21 00:00:08 2015 +0000 Automatic date update in version.in commit 5f3ff4f893d7d70f79cb2daf4001be7047cd126b Author: Jan Kratochvil Date: Tue Oct 20 20:40:38 2015 +0200 Fix internal error on DW_OP_bregx(-1) https://bugzilla.redhat.com/show_bug.cgi?id=1270564#c15 https://bugzilla.redhat.com/attachment.cgi?id=1081772 clang-3.5.0-9.fc22.x86_64 <3><22b2>: Abbrev Number: 69 (DW_TAG_variable) <22b3> DW_AT_location : 7 byte block: 92 ff ff ff ff f 0 (DW_OP_bregx: 4294967295 (r-1) 0) <22bb> DW_AT_name : (indirect string, offset: 0x2a36): texture_data <22c1> DW_AT_type : <0x1d3> (gdb) p variable warning: Unmapped DWARF Register #-1 encountered. regcache.c:177: internal-error: register_size: Assertion `regnum >= 0 && regnum < (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch))' failed. [...] Quit this debugging session? (y or n) FAIL: gdb.dwarf2/dw2-regno-invalid.exp: p variable (GDB internal error) -> (x86_64) (gdb) p variable warning: Unmapped DWARF Register #-1 encountered. Invalid register #-1, expecting 0 <= # < 220 (gdb) PASS: gdb.dwarf2/dw2-regno-invalid.exp: p variable -> (i386) (gdb) p variable Invalid register #104, expecting 0 <= # < 104 (gdb) PASS: gdb.dwarf2/dw2-regno-invalid.exp: p variable GDB calls gdbarch_dwarf2_reg_to_regnum() first which returns -1 in the x86_64 case if (regnum == -1) warning (_("Unmapped DWARF Register #%d encountered."), reg); but in i386 case it does: /* This will hopefully provoke a warning. */ return gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch); and the default implementation is a nop, leaving whatever register number the DWARF specified. gdb/ChangeLog 2015-10-20 Jan Kratochvil * findvar.c (address_from_register): Check REGNUM validity. gdb/testsuite/ChangeLog 2015-10-20 Jan Kratochvil Pedro Alves * gdb.dwarf2/dw2-regno-invalid.exp: New file. * lib/dwarf.exp (Dwarf): Add DW_OP_bregx. commit 0fd153457cc1a775abb1112090251cb6bfb05553 Author: H.J. Lu Date: Tue Oct 20 10:43:33 2015 -0700 Feed right input object to x86_64_mov_to_lea1[12] x86_64_mov_to_lea1.o is a 64-bit x86-64 object and x86_64_mov_to_lea2.o is a 32-bit x86-64 object. x86_64_mov_to_lea11 should use x86_64_mov_to_lea2.o and x86_64_mov_to_lea12 should use x86_64_mov_to_lea1.o. * testsuite/Makefile.am (x86_64_mov_to_lea11): Replace x86_64_mov_to_lea1.o with x86_64_mov_to_lea2.o. (x86_64_mov_to_lea12): Replace x86_64_mov_to_lea2.o with x86_64_mov_to_lea1.o. * testsuite/Makefile.in: Regenerated. commit e5343fde2046fbc19b9ac91326d5829d40066872 Author: Aleksandar Ristovski Date: Tue Oct 20 13:11:53 2015 -0400 [nto] Implement procfs_pid_to_exec_file. gdb/ChangeLog: * gdb/nto-procfs.c (procfs_pid_to_exec_file): New function. (init_procfs_targets): Wire new function. commit 8a6c0ccdd27188047da2be9c2a49544c27dcade3 Author: Aleksandar Ristovski Date: Tue Oct 20 12:58:47 2015 -0400 [nto] Implement TARGET_OBJECT_AUXV. Fix 'info auxv' for nto. gdb/ChangeLog: * nto-procfs.c (sys/auxv.h): Include. (procfs_xfer_partial): Implement TARGET_OBJECT_AUXV. * nto-tdep.c (nto_read_auxv_from_initial_stack): New function. * nto-tdep.h (nto_read_auxv_from_initial_stack): New declaration. commit 609c3040c2df944239d4d96644d736df605a6831 Author: Aleksandar Ristovski Date: Tue Oct 20 12:58:46 2015 -0400 [nto] Fixes for nto procfs. Fix errnoeus construction of procfs path. The issue is, after the first info pidlist or first run, the path for local node (the most common node) will be reset to empty which makes subsequent queries and runs impossible. gdb/ChangeLog: * nto-procfs.c (nto_procfs_path): Rename to... (nodestr): ... this, and change type. (nto_node): Use new variable and logic accordingly. (procfs_open_1): Use new variable name. Use local buffer to construct procfrs path. (procfs_pidlist): Use NODESTR to construct procfs path. (procfs_files_info): Use NODESTR to output meaningful text. (do_attach): Construct procfs using NODESTR. (procfs_create_inferior): Compare pointer to NULL. commit edeefb679201858453502e21446d7a65fedeaf0e Author: H.J. Lu Date: Tue Oct 20 08:58:10 2015 -0700 Add --enable-compressed-debug-sections={all,gas,gold,ld} This patch removes the gas configure option: --enable-compressed-debug-sections and adds a toplevel configure option: --enable-compressed-debug-sections={all,gas,gold,ld} to enable compressed debug sections for gas, gold or ld by default. At the moment, this configure option is ignored by gold and ld. For x86 Linux targets, default to compressing debug sections in gas. PR gas/19109 * configure.ac: Add --enable-compressed-debug-sections={all,gas,gold,ld}. * configure: Regenerated. gas/ PR gas/19109 * NEWS: Update --enable-compressed-debug-sections=. * configure.ac: Remove --enable-compressed-debug-sections. (DEFAULT_FLAG_COMPRESS_DEBUG): Check --enable-compressed-debug-sections={all,gas} instead of --enable-compressed-debug-sections. For x86 Linux targets, default to compressing debug sections. * configure: Regenerated. commit f9c62303d87da9c766ca67d01f602130c2777951 Author: Hans-Peter Nilsson Date: Tue Oct 20 06:56:33 2015 +0200 Correct printed value of Main in mmo.c consistency error message. commit bfd09d203fe1eda11ef2c7a500ad1d21eae32bc0 Author: Josh Stone Date: Mon Oct 19 17:59:38 2015 -0700 gdb: Improve syscall entry/return tracking on Linux The existing logic was simply to flip syscall entry/return state when a syscall trap was seen, and even then only with active 'catch syscall'. That can get out of sync if 'catch syscall' is toggled at odd times. This patch updates the entry/return state for all syscall traps, regardless of catching state, and also updates known syscall state for other kinds of traps. Almost all PTRACE_EVENT stops are delivered from the middle of a syscall, so this can act like an entry. Every other kind of ptrace stop is only delivered outside of syscall event pairs, so marking them ignored ensures the next syscall trap looks like an entry. Three new test scenarios are added to catch-syscall.exp: - Disable 'catch syscall' from an entry to deliberately miss the return event, then re-enable to make sure a new entry is recognized. - Enable 'catch syscall' for the first time from a vfork event, which is a PTRACE_EVENT_VFORK in the middle of the syscall. Make sure the next syscall event is recognized as the return. - Make sure entry and return are recognized for an ENOSYS syscall. This is to defeat a common x86 hack that uses the pre-filled ENOSYS return value as a sign of being on the entry side. gdb/ChangeLog: 2015-10-19 Josh Stone * linux-nat.c (linux_handle_syscall_trap): Always update entry/ return state, even when not actively catching syscalls at all. (linux_handle_extended_wait): Mark syscall_state like an entry. (wait_lwp): Set syscall_state ignored for other traps. (linux_nat_filter_event): Likewise. gdb/testsuite/ChangeLog: 2015-10-19 Josh Stone * gdb.base/catch-syscall.c: Include . (unknown_syscall): New variable. (main): Trigger a vfork and an unknown syscall. * gdb.base/catch-syscall.exp (vfork_syscalls): New variable. (unknown_syscall_number): Likewise. (check_call_to_syscall): Accept an optional syscall pattern. (check_return_from_syscall): Likewise. (check_continue): Likewise. (test_catch_syscall_without_args): Check for vfork and ENOSYS. (test_catch_syscall_skipping_return): New test toggling off 'catch syscall' to step over the syscall return, then toggling back on. (test_catch_syscall_mid_vfork): New test turning on 'catch syscall' during a PTRACE_EVENT_VFORK stop, in the middle of a vfork syscall. (do_syscall_tests): Call test_catch_syscall_without_args and test_catch_syscall_mid_vfork. (test_catch_syscall_without_args_noxml): Check for vfork and ENOSYS. (fill_all_syscalls_numbers): Initialize unknown_syscall_number. commit b224a9e1a190c84ee6bdd8a195c47dabff73cd66 Author: GDB Administrator Date: Tue Oct 20 00:00:10 2015 +0000 Automatic date update in version.in commit 29090fb629734b7980f058f4a7e24a0369e9bb49 Author: Luis Machado Date: Mon Oct 19 11:33:19 2015 -0200 Make GDB wait for events after handling target File-I/O _ftext () at arm-vector.S:25 25 ldr pc, [pc, #24] @ reset (gdb) load Loading section .text, size 0xc01c lma 0x0 Loading section .eh_frame, size 0x48 lma 0xc01c Loading section .ARM.exidx, size 0x8 lma 0xc064 Loading section .rodata, size 0x398 lma 0xc070 Loading section .data, size 0x8e0 lma 0xc408 Start address 0x40, load size 52452 Transfer rate: 17074 KB/sec, 1748 bytes/write. (gdb) c Continuing. infrun: clear_proceed_status_thread (Thread 1) infrun: proceed (addr=0xffffffff, signal=GDB_SIGNAL_DEFAULT) infrun: resume (step=0, signal=GDB_SIGNAL_0), trap_expected=0, current thread [Thread 1] at 0x40 Sending packet: $vCont?#49...Ack Packet received: Packet vCont (verbose-resume) is NOT supported Sending packet: $Hc0#db...Ack Packet received: OK Sending packet: $c#63...Ack infrun: infrun_async(1) infrun: prepare_to_wait infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = ignore infrun: TARGET_WAITKIND_IGNORE infrun: prepare_to_wait Packet received: Ffstat,00000001,07fffdb0 Sending packet: $M7fffdb0,40:000000000000000000002080000000010000c336000001180000000000000000000000000000000000000200000000000000000055dfb11b55dfb11b55dfb11b#5a...Ack Packet received: OK Sending packet: $F0#76...Ack infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = ignore infrun: TARGET_WAITKIND_IGNORE infrun: prepare_to_wait infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = no-resumed infrun: TARGET_WAITKIND_NO_RESUMED infrun: stop_waiting infrun: clear_step_over_info Sending packet: $qfThreadInfo#bb...Ack Packet received: m1 Sending packet: $qsThreadInfo#c8...Ack Packet received: l No unwaited-for children left. infrun: infrun_async(0) (gdb) c Continuing. Cannot execute this command while the selected thread is running. (gdb) Continuing. Cannot execute this command while the selected thread is running. This behavior shows up whenever GDB is in all-stop mode and is handling target-initiated File-I/O requests, in the middle of, say, a continue request. When GDB is done handling the File-I/O request, it doesn't set rs->waiting_for_stop_reply back to 1, meaning GDB should wait for further target events. This seems to be a latent bug, because in the past this didn't really cause any issues. But it seems to have been uncovered by commit 567420d10895611e03d5ee65e6b24c16a69a6e99, which explicitly checks for rs->waiting_for_stop_reply == 0, triggering the failures above. The following patch fixes this by reorganizing the setting of rs->waiting_for_stop_reply. infrun: prepare_to_wait Packet received: Ffstat,00000001,07fffdb0 Sending packet: $M7fffdb0,40:000000000000000000002080000000010000c336000001180000000000000000000000000000000000000200000000000000000055dfb19e55dfb19e55dfb19e#7b...Ack Packet received: OK Sending packet: $F0#76...Ack infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = ignore infrun: TARGET_WAITKIND_IGNORE infrun: prepare_to_wait Packet received: Fisatty,00000001 Sending packet: $F1#77...Ack infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = ignore infrun: TARGET_WAITKIND_IGNORE infrun: prepare_to_wait Packet received: Fwrite,00000001,0000d098,00000004 Sending packet: $md098,4#d2...Ack Packet received: 3732300a 720 Sending packet: $F4#7a...Ack infrun: target_wait (-1.0.0, status) = infrun: -1.0.0 [Thread 0], infrun: status->kind = ignore infrun: TARGET_WAITKIND_IGNORE infrun: prepare_to_wait Packet received: Fwrite,00000001,07ffffac,00000011 Sending packet: $m7ffffac,11#8e...Ack Packet received: 0a2a2a2a204558495420636f646520300a *** EXIT code 0 Regression-tested on Ubuntu x86-64 and qemu-system-based debugging for arm eabi. gdb/ChangeLog: 2015-10-16 Luis Machado * remote.c (remote_wait_as): Set rs->waiting_for_stop_reply to 0 when handling 'E', 'T', 'S', 'X' and 'W' packets. Do not set rs->waiting_for_stop_reply back to 1. commit 15a70cda9772c5775f471182fea70b3fd28b76f0 Author: Simon Dardis Date: Mon Oct 19 14:32:54 2015 +0100 Add test to ensure that ternary linker script operators copy symbol flags. * ld-elf/attributes.d: New test for symbol attribute copying. * ld-elf/attributes.ld: Part of above. * ld-elf/attributes.s: Likewise. commit e12fe5554c3b70139f68e33ded9e2a8075b9d484 Author: Nick Clifton Date: Mon Oct 19 11:45:54 2015 +0100 Add a gas configure option to select the default behaviour for the generation of debug sections - compressed or uncompressed. PR gas/19109 * configure.ac: Add option --enable-compressed-debug-sections. This sets the default behaviour for compressing debug sections. * as.c (flag_compress_debug): Define and initialise to COMPRESS_DEBUG_GABI_ZLIB if DEFAULT_COMPRESS_DEBUG is set. (show_usage): Indicate whether --no-compress-debug-sections or --compress-debug-sections is the default. * config/tc-i386.c (flag_compress_debug): Delete definition. * doc/as.texinfo (--nocompress-debug-sectionas): Update description. * NEWS: Announce the new feature. * config.in: Regenerate. * configure: Regenerate. commit 65808c966405fdc5ac770bfede9b3d5e0614dc81 Author: Andrew Stubbs Date: Mon Oct 19 11:21:52 2015 +0100 Fixup comments oops in last commit. commit b32b93c614de5ef1319eaa002e481094357018ff Author: Andrew Stubbs Date: Thu Oct 15 16:54:37 2015 +0100 Robustify inherit.exp and virtbase.exp. 2015-10-19 Andrew Stubbs gdb/testsuite/ * gdb.cp/inherit.exp (print g_vB, print g_vC, print g_vD, print g_vE): Add new pass patterns. * gdb.cp/virtbase.exp (print *this, print *(D *) e): Allow GDB to print various symbol names for vptr fields. commit b615f43f531209705e12dcb01bd14d67029d3b07 Author: GDB Administrator Date: Mon Oct 19 00:00:08 2015 +0000 Automatic date update in version.in commit 434d28e01bd23b7a61128bacbe66ff09e1fed336 Author: Doug Evans Date: Sun Oct 18 13:13:07 2015 -0700 targets.c (bfd_flavour_name): "MMO" is spelled "mmo". bfd/ChangeLog: * targets.c (bfd_flavour_name): "MMO" is spelled "mmo". commit 595712bb07e5db19dde5879bdf1b827abbe90c60 Author: Paul Pluzhnikov Date: Sun Oct 18 09:39:25 2015 -0700 Fix PR binutils/19147 -- off by one when printing NT_FILE note. commit 0b002d4885505f557c52febcc0c6c7c45914e814 Author: GDB Administrator Date: Sun Oct 18 00:00:07 2015 +0000 Automatic date update in version.in commit 9f08fa5c12890bd9e5609910bfd89903b0dcde25 Author: Alan Modra Date: Sat Oct 17 20:01:15 2015 +1030 Correct powerpc64le __glink_PLTresolve .eh_frame FDE * elf64-ppc.c (ppc64_elf_size_stubs): Correct __glink_PLTresolve eh_frame FDE for ELFv1. commit 0716a48d498253d45bc0f3b3b8c7dbe026283763 Author: GDB Administrator Date: Sat Oct 17 00:00:08 2015 +0000 Automatic date update in version.in commit 774ee6d252eba19d3e23c936d14bfc1f7fa70651 Author: Aleksandar Ristovski Date: Fri Oct 16 11:29:17 2015 -0400 [nto] Fix nto build. gdb/gdbserver/ChangeLog: * gdbserver/nto-low.c (nto_insert_point, nto_remove_point): Fix variable name. gdb/ChangeLog: * nto-procfs.c (common/filestuff.h): Include. (procfs_can_use_hw_breakpoint): Fix enum name. (procfs_open_1): Fix compiler warning. (procfs_pidlist): Make static. (procfs_meminfo): Make static, fix type name, add missing argument. (procfs_store_registers): Make static. (procfs_thread_info): Remove unused function. (_initialize_procfs): Forward declare. commit 833dcd29758287ac7799d9c022c0994f7c16608e Author: Aleksandar Ristovski Date: Fri Oct 16 11:12:21 2015 -0400 gdbserver: Reset current_thread when the thread is removed. Reset current_thread and make sure 'remove_process' is used after all associated threads have been removed first. gdb/gdbserver/ChangeLog: * inferiors.c (thread_pid_matches_callback): New function. (find_thread_process): New function. (remove_thread): Reset current_thread. (remove_process): Assert threads have been removed first. commit 96e7a1eb6d09fda9e22e112e35e7d0085a8f4fd0 Author: Aleksandar Ristovski Date: Fri Oct 16 11:08:38 2015 -0400 gdbserver: Reset current_thread when the thread is removed. Reset current_thread and make sure 'remove_process' is used after all associated threads have been removed first. gdb/gdbserver/ChangeLog: * inferiors.c (thread_pid_matches_callback): New function. (find_thread_process): New function. (remove_thread): Reset current_thread. (remove_process): Assert threads have been removed first. commit 6457197210144f50a696097c0d308d81d46d5510 Author: H.J. Lu Date: Fri Oct 16 08:04:58 2015 -0700 Don't ignore "-m emulation" command line option Gold shouldn't ignore "-m emulation" command line option, which may lead to incorrect output. PR gold/19119 * options.h (General_options): Remove "obsolete" from -m. * parameters.cc (set_parameters_target): Check if input target is compatible with output emulation set by "-m emulation". commit e66acfb155e75c1909a6f29702ed6ba3762e36b4 Author: Yao Qi Date: Fri Oct 16 12:22:45 2015 +0100 MAINTAINERS: Fix my inconsistent email address Hi, This patch fixes inconsistency in my email address. 2015-10-16 Yao Qi * MAINTAINERS: Update my email address. commit 75a06c790f96f07e859be95d3c3c084a718afeef Author: H.J. Lu Date: Fri Oct 16 04:17:49 2015 -0700 Check if symbol is defined when converting mov to lea We need to check if symbol is defined when converting mov to lea since SYMBOL_REFERENCES_LOCAL may return true on hidden undefined symbols. * elf32-i386.c (elf_i386_convert_mov_to_lea): Check if symbol is defined. * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise. commit b31bcacc489d6ede2e9bdfa9905de0ebfd919454 Author: H.J. Lu Date: Fri Oct 16 03:14:40 2015 -0700 Convert mov to lea for loading address of local common symbol There is no need to check def_regular when converting mov to lea for loading address of local symbols since def_regular may be false for common symbols and SYMBOL_REFERENCES_LOCAL is sufficient. bfd/ * elf32-i386.c (elf_i386_convert_mov_to_lea): Don't check def_regular. * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise. ld/testsuite/ * ld-i386/lea1.s: Add a test for loading address of local common symbol. * ld-x86-64/lea1.s: Likewise. * ld-i386/lea1a.d: Updated. * ld-i386/lea1b.d: Likewise. * ld-i386/lea1c.d: Likewise. * ld-x86-64/lea1a.d: Likewise. * ld-x86-64/lea1b.d: Likewise. * ld-x86-64/lea1c.d: Likewise. * ld-x86-64/lea1d.d: Likewise. * ld-x86-64/lea1e.d: Likewise. * ld-x86-64/lea1f.d: Likewise. commit baf9351a5983e36c9857b6f5b11e991d2bb1e9b6 Author: GDB Administrator Date: Fri Oct 16 00:00:09 2015 +0000 Automatic date update in version.in commit ae7683d2389973fbd368ee1ac77413a3cd1e4a7a Author: H.J. Lu Date: Thu Oct 15 11:01:39 2015 -0700 Fix typos in comments in _bfd_elf_merge_symbol * elflink.c (_bfd_elf_merge_symbol): Fix typos in comments commit 4dba69b9ba9d2f2f05f75de29f0d3bc655e75a48 Author: H.J. Lu Date: Thu Oct 15 10:59:55 2015 -0700 Fix a typo for "-z noextern-protected-data" * ld.texinfo: Fix a typo for "-z noextern-protected-data". commit 8d689ee570e7c4c61231b919d5b6a34c20414c43 Author: Yao Qi Date: Thu Oct 15 15:05:10 2015 +0100 aarch64 multi-arch part 6: HW breakpoint on unaligned address Nowadays, both aarch64 GDB and linux kernel assumes that address for setting breakpoint should be 4-byte aligned. However that is not true after we support multi-arch, because thumb instruction can be at 2-byte aligned address. Patch http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/375141.html to linux kernel is to teach kernel to handle 2-byte aligned address for HW breakpoint, while this patch is to teach aarch64 GDB handle 2-byte aligned address. First of all, we call gdbarch_breakpoint_from_pc to get the instruction length rather than using hard-coded 4. Secondly, in GDBserver, we set length back to 2 if it is 3, because GDB encode 3 in it to indicate it is a 32-bit thumb breakpoint. Then we relax the address alignment check from 4-byte aligned to 2-byte aligned. This patch enables some tests (such as gdb.base/break-idempotent.exp, gdb.base/cond-eval-mode.exp, gdb.base/watchpoint-reuse-slot.exp,) and fixes many fails (such as gdb.base/hbreak2.exp) when the program is compiled in thumb mode on aarch64. Regression tested on aarch64-linux, both native and gdbserver. This is the last patch of multi-arch work. gdb: 2015-10-15 Yao Qi * aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint): Call gdbarch_breakpoint_from_pc to instruction length. (aarch64_linux_remove_hw_breakpoint): Likewise. * common/common-regcache.h (regcache_register_size): Declare. * nat/aarch64-linux-hw-point.c: Include "common-regcache.h". (aarch64_point_is_aligned): Set alignment to 2 for breakpoint if the process is 32bit, otherwise set alignment to 4. (aarch64_handle_breakpoint): Update comments. * regcache.c (regcache_register_size): New function. gdb/gdbserver: 2015-10-15 Yao Qi * linux-aarch64-low.c (aarch64_insert_point): Set len to 2 if it is 3. (aarch64_remove_point): Likewise. * regcache.c (regcache_register_size): New function. commit 21c40443ce8b12faa085149ba8a30b33193f6cc7 Author: Alan Modra Date: Thu Oct 15 21:37:13 2015 +1030 binutils objcopy test tidy The main aim of this patch is to perform more objcopy tests when we can build executables but not run them. ie. non-native with cross compiler available. * binutils-all/objcopy.exp: Delete trailing whitespace. Use "string equal" rather than "string match" when making simple string comparisons. Revert 2008-07-08 host_triplet checks. Perform non-run tests when we can build executable. (strip_executable, strip_executable_with_saving_a_symbol): Move run test later. Take extra param on whether to perform run test. Update callers. (keep_debug_symbols_and_test_copy): Delete unused vars. commit 7b19bec22f266f2e1fab6528f166912328b999b6 Author: Alan Modra Date: Thu Oct 15 21:34:39 2015 +1030 objcopy --extract-symbol testcase Run the test for more than just ELF. Shows that objcopy --extract-symbol isn't working on PE, mips, mmix and some aout targets. * config/default.exp (size): New global. * ld-elf/extract-symbol-1.s, * ld-elf/extract-symbol-1.ld, * ld-elf/extract-symbol-1sec.d, * ld-elf/extract-symbol-1sym.d: Delete. * ld-scripts/script.exp (extract_symbol_test): New. commit e43fb83166ca5610e34cfba1dcf1216d0953aa8c Author: Alan Modra Date: Thu Oct 15 21:33:38 2015 +1030 objcopy --extract-symbol Calling bfd_copy_private_bfd_data is necessary to copy ELF file header info. binutils/ * objcopy.c (copy_object): Don't omit bfd_copy_private_bfd_data call when extract_symbol. bfd/ * elf32-v850.c (v850_elf_copy_private_bfd_data): Remove assertion that input and output .note.renesas sections are same size. Instead, only copy input to output if they are. commit 38bc821765fd286a12d6934a4d9e4369fda64b41 Author: Simon Marchi Date: Thu Oct 15 08:56:37 2015 -0400 Normalize my (personal) email address in ChangeLog commit 89fdc87fdb757f81c757f3408baa73740618b78f Author: Aleksandar Ristovski Date: Wed Oct 14 14:56:31 2015 -0400 Remove core_regset_section gdb/ChangeLog: * gdbarch.sh (core_regset_section): Remove. * gdbarch.h: Regenerate. commit 1fb80d6d50f3c0adc46ff584af26583b980be834 Author: Simon Dardis Date: Thu Oct 15 13:28:27 2015 +0100 When evaluating a ternary operator in a linker script, copy the symbol flags. * ld/ldexp.c: (try_copy_symbol_flags): New. Factored out from... (exp_fold_tree_1): Here. Cope with ternary operator in assignments. Use new helper. commit b32a5c16f100c53fd9c0c22464f863eeeec6087a Author: Riku Voipio Date: Thu Oct 15 12:56:55 2015 +0100 Use the file_ptr type when calling bfd_seek. PR ld/19123 * elfcore.h (elf_core_file_p): Use the file_ptr type to hold the offset for bfd_seek. * elfcode.h (elf_object_p): Likewise. commit 35cd5fc22ec2e66936eeb9a13662d358ce0adff3 Author: GDB Administrator Date: Thu Oct 15 00:00:08 2015 +0000 Automatic date update in version.in commit b4b0e149fa667b3907382e3492b53759665fe979 Author: Rich Felker Date: Thu Oct 15 07:14:43 2015 +0900 bfd: [SH] Emit DT_PLTGOT for FDPIC output unconditionally PR ld/19091 * elf32-sh.c (sh_elf_size_dynamic_sections): Always emit DT_PLTGOT for FDPIC output. commit 485f23cf5c890c037053c3a1580c1139fc5c6ab6 Author: Andreas Krebbel Date: Wed Oct 14 12:19:39 2015 +0200 Add missing changelog entries commit c46eb7b88a1261bc079bfbe2339060152bdf3527 Author: Andreas Krebbel Date: Wed Oct 14 10:58:41 2015 +0200 S/390: Fix instruction type of troo, trot, trto, and trtt. opcodes/ChangeLog: 2015-10-14 Andreas Krebbel * s390-opc.c: Fix comment. * s390-opc.txt: Change instruction type for troo, trot, trto, and trtt to RRF_U0RER since the second parameter does not need to be a register pair. gas/testsuite/ChangeLog: 2015-10-14 Andreas Krebbel * gas/s390/esa-g5.d: Use odd GPR for the second operand. * gas/s390/esa-g5.s: Likewise. * gas/s390/esa-z9-109.d: Likewise. * gas/s390/esa-z9-109.s: Likewise. commit efb068d3027d3f24430b1f8b5c2b6b02d3f37869 Author: Nick Clifton Date: Wed Oct 14 09:55:30 2015 +0100 Updated Chinese translation for the linker (again!) commit 6448a3e4daecbdba25e5c76b0fbb0c21583a1347 Author: Yao Qi Date: Wed Oct 14 09:23:14 2015 +0100 Define enum out of struct This patch moves the definition of enum out of the scope of struct aarch64_memory_operand, otherwise it breaks GDB build in c++ mode. gdb: 2015-10-14 Yao Qi * arch/aarch64-insn.h (struct aarch64_memory_operand): Move enum out of it. (enum aarch64_memory_operand_type): New. commit 82c88aa6294d6f764bc1ad9b55497b73a4743bb1 Author: GDB Administrator Date: Wed Oct 14 00:00:08 2015 +0000 Automatic date update in version.in commit 33f914a197fa8cd4338396e7d62a5f26621f183c Author: David Edelsohn Date: Tue Oct 13 18:45:38 2015 -0400 Recognize a few more AIX XCOFF DWARF sections. gdb/ChangeLog: * xcoffread.c (dwarf2_xcoff_names): Add .dwmac and .dwpbtyp. commit e6a959d68b8181c816851dcfc91ae0b2b9296df3 Author: Pedro Alves Date: Tue Oct 13 19:40:50 2015 +0100 More char constification Trivial constifications flagged by G++. E.g.: src/gdb/c-varobj.c: In function ‘void c_describe_child(const varobj*, int, char**, value**, type**, char**)’: src/gdb/c-varobj.c:373:33: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive] char *join = was_ptr ? "->" : "."; ^ gdb/ChangeLog: 2015-10-13 Pedro Alves * ada-lang.c (ada_enum_name): Constify local. * ada-typeprint.c (print_range_bound): Constify locals. * c-varobj.c (c_describe_child): Likewise. * cli/cli-setshow.c (do_set_command): Likewise. * gdb_vecs.c (delim_string_to_char_ptr_vec_append): Likewise. * dwarf2read.c (find_file_and_directory): Likewise. (anonymous_struct_prefix, dwarf2_name): Likewise. * gnu-v3-abi.c (gnuv3_rtti_type): Likewise. * go-lang.c (unpack_mangled_go_symbol): Likewise. * jv-typeprint.c (java_type_print_base): Likewise. * ser-tcp.c (net_open): Likewise. * symfile.c (deduce_language_from_filename): Likewise. * symtab.c (gdb_mangle_name): Likewise. * tui/tui-io.c (tui_redisplay_readline): Likewise. commit 170742de5dd5be2156f938e00e2451526ef57d5c Author: Pedro Alves Date: Tue Oct 13 19:40:50 2015 +0100 Fix execution_direction's type This fixes a few build errors like these in C++ mode: src/gdb/reverse.c: In function ‘void exec_reverse_once(char*, char*, int)’: src/gdb/reverse.c:49:34: error: invalid conversion from ‘int’ to ‘exec_direction_kind’ [-fpermissive] enum exec_direction_kind dir = execution_direction; ^ make: *** [reverse.o] Error 1 gdb/ChangeLog: 2015-10-13 Pedro Alves * infrun.c (restore_execution_direction): New function. (fetch_inferior_event): Use it instead of make_cleanup_restore_integer. (execution_direction): Change type to enum exec_direction_kind. * infrun.h (execution_direction): Likewise. commit bfb1c7963b15b31073c9adf2d97ff1cf953ec99c Author: Pedro Alves Date: Tue Oct 13 19:40:50 2015 +0100 ada-lang.c:ada_value_primitive_packed_val: const correctness gdb/ChangeLog: 2015-10-13 Pedro Alves * ada-lang.c (ada_value_primitive_packed_val): Constify locals. Use value_contents_writeable. Remove casts. commit aa5c10ce9b1bd04a7f4a619d5e956c977fcd60d3 Author: Pedro Alves Date: Tue Oct 13 19:40:50 2015 +0100 ada-lang.c: malloc/alloca casts for C++ gdb/ChangeLog: 2015-10-13 Pedro Alves * ada-lang.c (ada_value_primitive_packed_val): Add casts to malloc and alloca calls. commit 4666fec3b414c7880e9629f3c9b0a5b584235c6d Author: Simon Marchi Date: Tue Oct 13 13:37:13 2015 -0400 lm32: Replace call to write_memory with write_memory_unsigned_integer Fixes this error: /home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c: In function ‘CORE_ADDR lm32_push_dummy_call(gdbarch*, value*, regcache*, CORE_ADDR, int, value**, CORE_ADDR, int, CORE_ADDR)’: /home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:292:59: error: invalid conversion from ‘void*’ to ‘const gdb_byte* {aka const unsigned char*}’ [-fpermissive] write_memory (sp, (void *) &val, TYPE_LENGTH (arg_type)); ^ In file included from /home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:29:0: /home/emaisin/src/binutils-gdb/gdb/gdbcore.h:107:13: error: initializing argument 2 of ‘void write_memory(CORE_ADDR, const gdb_byte*, ssize_t)’ [-fpermissive] extern void write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, ^ gdb/ChangeLog: * lm32-tdep.c (lm32_push_dummy_call): Replace call to write_memory with write_memory_unsigned_integer. commit 3953f15ce4b4154e9fd7951424fedac0170ab59c Author: Simon Marchi Date: Tue Oct 13 12:40:01 2015 -0400 Constify arguments of gdb_bfd_lookup_symbol and related functions Fixes this error: /home/pedro/gdb/mygit/src/gdb/solib-frv.c: In function ‘int enable_break2()’: /home/pedro/gdb/mygit/src/gdb/solib-frv.c:622:72: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive] addr = gdb_bfd_lookup_symbol (tmp_bfd, cmp_name, "_dl_debug_addr"); ^ In file included from /home/pedro/gdb/mygit/src/gdb/solib-frv.c:23:0: /home/pedro/gdb/mygit/src/gdb/solib.h:82:18: error: initializing argument 3 of ‘CORE_ADDR gdb_bfd_lookup_symbol(bfd*, int (*)(asymbol*, void*), void*)’ [-fpermissive] extern CORE_ADDR gdb_bfd_lookup_symbol (bfd *abfd, ^ The call in question is: addr = gdb_bfd_lookup_symbol (tmp_bfd, cmp_name, "_dl_debug_addr"); gdb/ChangeLog: * solib-dsbt.c (cmp_name): Constify arguments. * solib-frv.c (cmp_name): Likewise. * solib-svr4.c (svr4_create_solib_event_breakpoints): Likewise. * solib.c (gdb_bfd_lookup_symbol_from_symtab): Likewise. (bfd_lookup_symbol_from_dyn_symtab): Likewise. (gdb_bfd_lookup_symbol): Likewise. * solib.h (gdb_bfd_lookup_symbol): Likewise. (gdb_bfd_lookup_symbol_from_symtab): Likewise. commit 01f573ad8aa539f972e2fef8a10ef290e042e24c Author: H.J. Lu Date: Tue Oct 13 09:02:23 2015 -0700 Add EM_IAMCU support to gold elfcpp/ PR gold/19118 * elfcpp.h (EM): Add EM_IAMCU. gold/ PR gold/19118 * i386.cc (Target_iamcu): New class. (Target_selector_iamcu): Likewise. (Target_iamcu::iamcu_info): New variable. (target_selector_iamcu): Likewise. commit 8f33e7daaf80d23fc0f0551a14f9cffb95a85141 Author: Nick Clifton Date: Tue Oct 13 14:32:44 2015 +0100 Updated Chinese translation for the linker. * po/zh_TW.po: Updated Chinese translation. commit 341b8ee719163f7ae8528f2a7832381887fbf8d8 Author: Alan Modra Date: Tue Oct 13 16:18:56 2015 +1030 Tidy code setting PT_GNU_RELRO p_flags No functional changes here. * elf.c (_bfd_elf_map_sections_to_segments): Don't set PT_GNU_RELRO p_flags. (assign_file_positions_for_non_load_sections): Set PT_GNU_RELRO flags to PF_R here. commit 8173c2a3c46efd8b12983b6095ff7bed4cda1c90 Author: James Bowman Date: Wed Oct 7 15:19:08 2015 +0000 sim: ft32: test coverage for link parameters and PM write port Adds test coverage for recent features. commit cb781f0412a62a7e248721ed8fe6c491ccc9c456 Author: GDB Administrator Date: Tue Oct 13 00:00:07 2015 +0000 Automatic date update in version.in commit a0d34a3956f504e755638cadb2bac2b03e4e37e7 Author: Andrew Burgess Date: Mon Sep 7 09:15:15 2015 +0100 gdb: Simplify parse_frame_specification. Remove an unneeded parameter from parse_frame_specification, replace with a fixed string within parse_frame_specification. The message was the same in every place that parse_frame_specification was used anyway. gdb/ChangeLog: * stack.c (parse_frame_specification): Remove message parameter, replace with fixed string in function body, update function comment. (frame_info): Remove message to parse_frame_specification. (select_frame_command): Likewise. commit edbbff4a22154a4b155ac987436c6498947cf8b4 Author: Andrew Burgess Date: Mon Sep 7 09:04:07 2015 +0100 gdb: Avoid unneeded calls to parse_frame_specification. Within the stack command there are a couple of places where fixed strings are passed into functions that are really intended for processing user input. These fixed strings are then processed and the result returned. Given that the input strings in these cases are fixed, and are always "0", then the result will always be the same, the current frame. By switching to using get_current_frame instead the code can be simplified, and the intention of the code is clearer. gdb/ChangeLog: * stack.c (parse_frame_specification): Delete. (parse_frame_specification_1): Rename to parse_frame_specification. (frame_info): Use parse_frame_specification. (select_frame_command): Likewise. (return_command): Use select_frame and print_stack_frame rather than frame_command and select_frame_command. (func_command): Use get_current_frame rather than parse_frame_specification. commit 9d622bda566a4980b045631f500c29717ede8186 Author: Andrew Burgess Date: Mon Sep 7 08:53:24 2015 +0100 gdb: Fix bug with dbx style func command. The func command, available when starting gdb in dbx mode, is supposed to take a function name and locate the frame for that function in the stack. This has been broken for a while due to an invalid check of the arguments within the worker function. Fixed in this commit. gdb/ChangeLog: * stack.c (func_command): Return early when there is no ARG string. gdb/testsuite/ChangeLog: * gdb.base/dbx.exp (test_func): Remove xfails, update expected results. commit fc58fa65d454ce87cfa87a532f2c4f5d0b57d252 Author: Andrew Burgess Date: Thu Sep 10 17:59:58 2015 +0100 gdb/doc: Restructure frame command documentation. The 'frame' command is documented in two places. The 'select-frame' command is only mentioned in one of these places. Of the two places, having the description of 'frame' and 'select-frame' in the section 'Selecting a Frame' seems like the most obvious choice, which is where things like 'up' and 'down' are also documented. This commit moves the documentation of 'frame' and 'select-frame' into the 'Selecting a Frame' section, and removes the duplicate documentation of the 'frame' command. At the same time I have reordered the sections in the 'Examining the Stack' chapter, moving the discussion of frame filters to the end of the chapter; it feels odd that we talk about frame filters before such basic things like navigating the stack, or examining stack frames in general. gdb/doc/ChangeLog: * gdb.texinfo (Frames): Remove 'frame' and 'select-frame' description. (Frame Filter Management): Move to later in the 'Examining the Stack' chapter. (Selection): Add entry for 'select-frame'. commit 8d3fea161a8e1d280d207406ba3fee0d44776ce6 Author: Andrew Burgess Date: Mon Sep 7 23:46:49 2015 +0100 gdb: Make use of safe-ctype.h header. In stack.c switch to using safe-ctype.h instead of ctype.h, update code as required. gdb/ChangeLog: * stack.c: Include safe-ctype.h not ctype.h. (parse_frame_specification): Use ISSPACE not isspace. (backtrace_command): Use TOLOWER not tolower. commit f54b226fb0c350b98a9d7afb09d84564089a5bed Author: Simon Marchi Date: Mon Oct 12 12:43:23 2015 -0400 mep: Add cast for int to enum conversion Taken directly from Pedro's branch. gdb/ChangeLog: * mep-tdep.c (current_me_module): Add cast. (mep_gdbarch_init): Likewise. commit 6da660c76dd7c2998d847d2c978a293f13105eea Author: Simon Marchi Date: Mon Oct 12 12:39:40 2015 -0400 m32c: Split m32c_move_reg_t in read/write variants This allows to avoid casting away the const qualification in m32c_pseudo_register_write (which is the entry points for all other register read/write functions). Also, use gdb_byte* instead of void* to avoid casts when calling gdb common memory functions. It also allows to remove those "For adderss arithmetic" local variables. gdb/ChangeLog: * m32c-tdep.c (m32c_move_reg_t): Replace with... (m32c_write_reg_t): ...this and... (m32c_read_reg_t): ...this. (struct m32c_reg): Update types of read and write. (m32c_raw_read): Change declaration type to m32c_read_reg_t and adjust definition. (m32c_banked_read): Likewise. (m32c_sb_read): Likewise. (m32c_part_read): Likewise. (m32c_cat_read): Likewise. (m32c_r3r2r1r0_read): Likewise. (m32c_raw_write): Change declaration type to m32c_write_reg_t and adjust definition. (m32c_banked_write): Likewise. (m32c_sb_write): Likewise. (m32c_part_write): Likewise. (m32c_cat_write): Likewise. (m32c_r3r2r1r0_write): Likewise. commit 1f713e48f024e964f5a4f5468bc9506dac262763 Author: Simon Marchi Date: Mon Oct 12 12:24:38 2015 -0400 aarch64: Add cast for integer to enum cast /home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c: In function ‘int aarch64_linux_syscall_record(regcache*, long unsigned int)’: /home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:904:57: error: invalid conversion from ‘long unsigned int’ to ‘aarch64_syscall’ [-fpermissive] syscall_gdb = aarch64_canonicalize_syscall (svc_number); ^ /home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:645:1: note: initializing argument 1 of ‘gdb_syscall aarch64_canonicalize_syscall(aarch64_syscall)’ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number) ^ gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_linux_syscall_record): Add cast. commit cb65d272fd09b79b7911cc00b5262d4fe14a40d7 Author: Simon Marchi Date: Mon Oct 12 12:24:37 2015 -0400 aarch64: Use gdb_sys_no_syscall enum instead of -1 Fixes: /home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c: In function "gdb_syscall aarch64_canonicalize_syscall(aarch64_syscall)": /home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:874:13: error: invalid conversion from "int" to "gdb_syscall" [-fpermissive] return -1; ^ gdb/ChangeLog: * aarch64-linux-tdep.c (aarch64_canonicalize_syscall): Return gdb_sys_no_syscall instead of -1. commit 4373f8af3ddbc301227e883d5cbed8302c107e59 Author: H.J. Lu Date: Mon Oct 12 04:55:24 2015 -0700 Skip the unversioned definition after the default version We may see an unversioned definition after the default version. We should skip the unversioned definition in this case. bfd/ PR ld/19073 * elflink.c (_bfd_elf_add_default_symbol): Skip the unversioned definition after the default version. ld/testsuite/ PR ld/19073 * ld-elf/pr19073.map: New file. * ld-elf/pr19073.rd: Likewise. * ld-elf/pr19073.s: Likewise. * ld-elf/shared.exp (build_tests): Add tests for PR ld/19073. commit ede77e6963d1fa748fed1515d58f26e842a2cccb Author: Nick Clifton Date: Mon Oct 12 11:51:05 2015 +0100 Update list of known MSP430 MCU names. * config/tc-msp430.c (msp430_mcu_names): Rename to msp430_mcu_data. Add fields for the ISA and hardware multiply support. Update with information from the latest devices.csv file. (md_parse_option): Make use of the new array. commit eda14cf2590aaab147d298418a3b7773b8d63ce5 Author: Yao Qi Date: Mon Oct 12 11:28:39 2015 +0100 Mention the change in NEWS gdb: 2015-10-12 Yao Qi * NEWS: Mention the change. commit 1c2e1515c45af104fc9b2aea6bd6b1471238dd98 Author: Yao Qi Date: Mon Oct 12 11:28:39 2015 +0100 Rename emit_load_store to aarch64_emit_load_store Likewise, this patch renames emit_load_store to aarch64_emit_load_store. gdb: 2015-10-12 Yao Qi * arch/aarch64-insn.c (emit_load_store): Rename to ... (aarch64_emit_load_store): ... it. All callers updated. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c: Update all callers as emit_load_store is renamed to aarch64_emit_load_store. commit e1c587c312c6347d8f14a019b79e4de0181de599 Author: Yao Qi Date: Mon Oct 12 11:28:39 2015 +0100 Rename emit_insn to aarch64_emit_insn As emit_insn becomes extern, the prefix "aarch64_" is needed. This patch renames emit_insn to aarch64_emit_insn. gdb: 2015-10-12 Yao Qi * arch/aarch64-insn.c (emit_insn): Rename to ... (aarch64_emit_insn): ... it. All callers updated. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c: Update all callers of function renaming from emit_insn to aarch64_emit_insn. commit 0fd8ac1c450d340d0b11823107d9e990341e7e11 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 New test case gdb.arch/disp-step-insn-reloc.exp This patch adds a new test case which uses gdb.arch/insn-reloc.c too to test displaced stepping. Nowadays, tests are for x86, x86_64 and aarch64. gdb/testsuite: 2015-10-12 Yao Qi * gdb.arch/disp-step-insn-reloc.exp: New test case. commit 34240514b58b7e8d2b444b69345d13db2695fef6 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Support displaced stepping in support_displaced_stepping for aarch64*-*-linux* gdb/testsuite: 2015-10-12 Yao Qi * lib/gdb.exp (support_displaced_stepping): Return 1 if target is aarch64*-*-linux*. commit b6542f81d0894d69e7f12a73b94bf4adead75a5c Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Support displaced stepping in aarch64-linux This patch is to support displaced stepping in aarch64-linux. A visitor is implemented for displaced stepping, and used to record information to fixup pc after displaced stepping if needed. Some emit_* functions are converted to macros, and moved to arch/aarch64-insn.{c,h} so that they can be shared. gdb: 2015-10-12 Yao Qi * aarch64-linux-tdep.c: Include arch-utils.h. (aarch64_linux_init_abi): Call set_gdbarch_max_insn_length, set_gdbarch_displaced_step_copy_insn, set_gdbarch_displaced_step_fixup, set_gdbarch_displaced_step_free_closure, set_gdbarch_displaced_step_location, and set_gdbarch_displaced_step_hw_singlestep. * aarch64-tdep.c (struct displaced_step_closure): New. (struct aarch64_displaced_step_data): New. (aarch64_displaced_step_b): New function. (aarch64_displaced_step_b_cond): Likewise. (aarch64_register): Likewise. (aarch64_displaced_step_cb): Likewise. (aarch64_displaced_step_tb): Likewise. (aarch64_displaced_step_adr): Likewise. (aarch64_displaced_step_ldr_literal): Likewise. (aarch64_displaced_step_others): Likewise. (aarch64_displaced_step_copy_insn): Likewise. (aarch64_displaced_step_fixup): Likewise. (aarch64_displaced_step_hw_singlestep): Likewise. * aarch64-tdep.h (DISPLACED_MODIFIED_INSNS): New macro. (aarch64_displaced_step_copy_insn): Declare. (aarch64_displaced_step_fixup): Declare. (aarch64_displaced_step_hw_singlestep): Declare. * arch/aarch64-insn.c (emit_insn): Moved from gdbserver/linux-aarch64-low.c. (emit_load_store): Likewise. * arch/aarch64-insn.h (enum aarch64_opcodes): Moved from gdbserver/linux-aarch64-low.c. (struct aarch64_register): Likewise. (struct aarch64_memory_operand): Likewise. (ENCODE): Likewise. (can_encode_int32): New macro. (emit_b, emit_bcond, emit_cb, emit_ldr, emit_ldrsw): Likewise. (emit_tb, emit_nop): Likewise. (emit_insn): Declare. (emit_load_store): Declare. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c (enum aarch64_opcodes): Move to arch/aarch64-insn.h. (struct aarch64_memory_operand): Likewise. (ENCODE): Likewise. (emit_insn): Move to arch/aarch64-insn.c. (emit_b, emit_bcond, emit_cb, emit_tb): Remove. (emit_load_store): Move to arch/aarch64-insn.c. (emit_ldr, emit_ldrb, emit_ldrsw, emit_nop): Remove. (can_encode_int32): Remove. commit 246994ce350923199a4c952b38dcee5bcbe8c554 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Move aarch64_relocate_instruction to arch/aarch64-insn.c This patch moves aarch64_relocate_instruction and visitor class to arch/aarch64-insn.c, so that both GDB and GDBserver can use it. gdb: 2015-10-12 Yao Qi * arch/aarch64-insn.c (aarch64_decode_ldr_literal): Moved from gdbserver/linux-aarch64-low.c. (aarch64_relocate_instruction): Likewise. * arch/aarch64-insn.h (aarch64_decode_ldr_literal): Declare. (struct aarch64_insn_data): Moved from gdbserver/linux-aarch64-low.c. (struct aarch64_insn_visitor): Likewise. (aarch64_relocate_instruction): Declare. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c (extract_signed_bitfield): Remove. (aarch64_decode_ldr_literal): Move to gdb/arch/aarch64-insn.c. (aarch64_relocate_instruction): Likewise. (struct aarch64_insn_data): Move to gdb/arch/aarch64-insn.h. (struct aarch64_insn_visitor): Likewise. commit 0badd99faf8cb1a20ade36e94d3f74b9e6f65cd1 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Use visitor in aarch64_relocate_instruction Nowadays, the instruction decodings and handling are mixed together inside aarch64_relocate_instruction. The patch decouples instruction decoding and instruction handling by using visitor pattern. That is, aarch64_relocate_instruction decode instructions and visit each instruction by different visitor methods. Each visitor defines the concrete things to different instructions. Fast tracepoint instruction relocation and displaced stepping can define their own visitors, sub-class of struct aarch64_insn_data. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c (struct aarch64_insn_data): New. (struct aarch64_insn_visitor): New. (struct aarch64_insn_relocation_data): New. (aarch64_ftrace_insn_reloc_b): New function. (aarch64_ftrace_insn_reloc_b_cond): Likewise. (aarch64_ftrace_insn_reloc_cb): Likewise. (aarch64_ftrace_insn_reloc_tb): Likewise. (aarch64_ftrace_insn_reloc_adr): Likewise. (aarch64_ftrace_insn_reloc_ldr_literal): Likewise. (aarch64_ftrace_insn_reloc_others): Likewise. (visitor): New. (aarch64_relocate_instruction): Use visitor. commit dfaffe9d93dec5c23cc71b74789221ce97a132ef Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Move append_insns out of aarch64_relocate_instruction aarch64_relocate_instruction should only decode instructions, and other operations should be done out side of it. This patch moves append_insns out of aarch64_relocate_instruction, to its caller. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c (aarch64_relocate_instruction): Return int. Add argument buf. (aarch64_install_fast_tracepoint_jump_pad): Pass buf to aarch64_relocate_instruction. commit 70b439f0a87b6c42901e49a71b1dbd09300e8260 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 Move target_read_uint32 out of aarch64_relocate_instruction This patch is to move target_read_uint32 out of aarch64_relocate_instruction and pass INSN to aarch64_relocate_instruction, so that it is cleaner, only decode instructions. gdb/gdbserver: 2015-10-12 Yao Qi * linux-aarch64-low.c (aarch64_relocate_instruction): Add argument insn. Remove local variable insn. Don't call target_read_uint32. (aarch64_install_fast_tracepoint_jump_pad): Call target_read_uint32. commit 8240f4421f7ab761ff5476d16090789d2332b676 Author: Yao Qi Date: Mon Oct 12 11:28:38 2015 +0100 More tests in gdb.arch/insn-reloc.c This patch adds more tests in gdb.arch/insn-reloc.c to cover instruction BL and cover B.CON when CON is false. These new added tests can be used for displaced stepping too. gdb/testsuite: 2015-10-12 Yao Qi * gdb.arch/insn-reloc.c (can_relocate_bcond): Rename to ... (can_relocate_bcond_true): ... it. (can_relocate_bcond_false): New function. (foo): Likewise. (can_relocate_bl): Likewise. (testcases) [__aarch64__]: Add can_relocate_bcond_false and can_relocate_bl. commit 2520f728b710c0249cde01b8cfb4872a22ef10b6 Author: Pierre-Marie de Rodat Date: Tue Sep 15 15:46:17 2015 +0200 Forward VALUE_LVAL when avoiding side effects for STRUCTOP_STRUCT Assume foo_array is a pointer to a C structure. GDB must evaluate the following expression properly, but it does not currently: (gdb) print 1 && &foo_array[1].a Attempt to take address of value not located in memory. The problem is that in EVAL_AVOID_SIDE_EFFECTS mode, eval.c:evaluate_subexp_standard always returns a not_lval value as the result for a STRUCTOP_STRUCT operation. As a consequence, the rest of the code believes that one cannot take the address of the returned value. This patch fixes STRUCTOP_STRUCT handling so that the VALUE_LVAL attribute for the returned value is properly initialized. After this change, the above session becomes: (gdb) print 1 && &foo_array[1].a $1 = 1 gdb/ChangeLog: * eval.c (evaluate_subexp_standard) : If EVAL_AVOID_SIDE_EFFECTS mode, forward the VALUE_LVAL attribute to the returned value. gdb/testsuite/ChangeLog: * gdb.base/nested-addr.c: New file. * gdb.base/nested-addr.exp: New testcase. Tested on x86_64-linux, no regression. commit 431ff0756ac64c33f6cfbfa8f1cc21c739b7e601 Author: Andrew Burgess Date: Wed Oct 7 20:47:38 2015 +0100 avr: Fix bugs in org/align tracking. This commit fixes a few issues in the mechanism for passing information about ".org" and ".align" directives from the assembler to the linker, used by the avr target. In the original commit fdd410ac7a07dfb47dcb992201000582a280d8b2, there were some mistakes when writing out information about ".align" directives: - An align with fill does not write out its information correctly, the fill data overwrites the alignment data. - Each alignment directive is recorded at the location where the previous alignment directive should be recorded, the first alignment directive is discarded. In commit 137c83d69fad77677cc818593f9399caa777a0c5, the data produced by objdump is not correct: - It's miss-aligned due to a missing whitespace. - The fill data for align with fill records is not displayed correctly. All of the above issues are addressed in this commit, and the test is improved to cover these cases. binutils/ChangeLog: * od-elf32_avr.c (elf32_avr_dump_avr_prop): Fix printing of align specific data, fix formatting for align and org data. gas/ChangeLog: * config/tc-avr.c (avr_output_property_record): Fix overwrite bug for align and fill records. (avr_handle_align): Record fill information for align frags. (create_record_for_frag): Add next frag assertion, use correct address for align records. gas/testsuite/ChangeLog: * gas/avr/avr-prop-1.s: Use fill in some cases. * gas/avr/avr-prop-1.d: Update expected results. commit ef05be83b7e1e10e7cba51aeafc879ca3a66826d Author: Andreas Krebbel Date: Mon Oct 12 10:21:51 2015 +0200 PR19083 S/390: Fix garbage collection of some GOT relocs. bfd/ChangeLog: 2015-10-12 Andreas Krebbel PR ld/19083 * elf32-s390.c (elf_s390_gc_sweep_hook): Do not reduce got refcount for relocs not really requiring a got slot. * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise. commit da76f7d33ffb3725dadd828f61427f421d1f6ac3 Author: GDB Administrator Date: Mon Oct 12 00:00:08 2015 +0000 Automatic date update in version.in commit da6e19a92645583da12dc2d15f54d2bd240fd3f2 Author: John David Anglin Date: Sun Oct 11 18:49:08 2015 -0400 Ignore references with relocs to discarded sections in .data.rel.ro.local on hppa-linux. commit 7d8a636c9a234354c9b2ecf01b6e405bece190a1 Author: Mike Frysinger Date: Sun Oct 11 03:56:22 2015 -0400 sim: moxie: fix leakage in error path [BZ #18273] Reported-by: dcb commit 3f946aa82518e878aea2cba4b6a9bcc651412c5c Author: Mike Frysinger Date: Sun Oct 11 03:32:11 2015 -0400 sim: bfin: handle negative left saturated shifts as ashifts [BZ #18407] When handling left saturated ashifts with negative immediates, they should be treated as right ashifts. This matches hardware behavior. Reported-by: Igor Rayak commit 5fde150fede436dd250706d3fb1786c590e04b26 Author: GDB Administrator Date: Sun Oct 11 00:00:08 2015 +0000 Automatic date update in version.in commit d98007761887582f8ab25414ba5784eb238d06d8 Author: Alan Modra Date: Sat Oct 10 10:48:05 2015 +1030 Bug 19113 - read.c stringer assertion Fails due to signed char promotion. PR gas/19113 * read.c (next_char_of_string): Mask char after escape. Use CHAR_MASK rather than 0xff. commit bd4e004229275568cbd2a9975a4776edcf7650d4 Author: GDB Administrator Date: Sat Oct 10 00:00:08 2015 +0000 Automatic date update in version.in commit 5b639deae123db13af61e915807c0a1ab224e246 Author: Joel Brobecker Date: Fri Oct 9 14:16:45 2015 -0700 [Ada] ada_unpack_from_contents: Error if target buffer not large enough This adds a guard that the size of the "unpacked" buffer is large enough to contain at least BIT_SIZE bits. If not, report an error. This is to guard this routine from doing buffer overflows when called incorrectly. gdb/ChangeLog: * ada-lang.c (ada_unpack_from_contents): Add guard that unpacked is large enough for BIT_SIZE. Update function comment. commit 0cafa88cc03786fb5794ca53e987e45fd09621f8 Author: Joel Brobecker Date: Fri Oct 9 14:15:16 2015 -0700 [Ada] Buffer overflow in ada_unpack_from_contents This patch fixes a buffer overflow in ada_unpack_from_contents caused by one of the previous commits. This happens when trying to print the value of an array of variant records. The overflow happens while trying to print one element of the array. Because the size of each element in the array is variable, the array has a DWARF byte_stride attribute, which makes us treat the array as if it was packed. And during the extraction of each array element, we try to unpack an object using the array's byte stride as the size, into an element whose size is actually less than the stride. This patch fixes the issue by overriding the byte-stride with the actual element's length. gdb/ChangeLog: * ada-lang.c (ada_value_primitive_packed_val): Move src_len variable to local block where used. Override BIT_SIZE if bigger than size of resolved type. commit 220475ed8b0c1ef7b4eabf64bcc723e14fd78209 Author: Joel Brobecker Date: Fri Oct 9 14:14:43 2015 -0700 make is_scalar_type non-static and use it in ada-lang.c Just a small cleanup, to avoid code duplication... gdb/ChangeLog: * gdbtypes.h (is_scalar_type): Add extern declaration. * gdbtypes.c (is_scalar_type): Make non-static. * ada-lang.c (ada_value_primitive_packed_val): Use is_scalar_type to compute IS_SCALAR instead of doing it ourselves. commit d0a9e8108942ebeb68d9b0b39bebb37369e0f701 Author: Joel Brobecker Date: Fri Oct 9 14:13:49 2015 -0700 [Ada] Better handling of dynamic types in ada_value_primitive_packed_val There is some partial handling for dynamic types in ada_value_primitive_packed_val, but this support was added in a fairly ad hoc way, and actually only covered the situation where OBJ is not NULL and its contents had not been fetched yet. In addition, even in the cases that it does cover, it doesn't make much sense. In particular, it was adjusting BIT_SIZE and SRC_LEN, which are properties of the data to be extracted _from_, based on TYPE's length once resolved, which is a property of the data we want to extract _to_. This patch hopefully adjust this function to handle dynamic types correctly, and in all cases. It does so by unpacking the data into a temporary buffer in order to use that buffer to resolve the type. And _then_ creates the resulting value from that resolved type. gdb/ChangeLog: * ada-lang.c (ada_value_primitive_packed_val): Rework handling of case where TYPE is dynamic. commit f93fca700f0fd70532132ae535f48c1a936abb0a Author: Joel Brobecker Date: Fri Oct 9 14:12:51 2015 -0700 [Ada] split data unpacking code out of ada_value_primitive_packed_val. This patch is just preparation work which splits the function ada_value_primitive_packed_val into two function: one which unpacks the data, and the other which now uses it to implement ada_value_primitive_packed_val. This simplifies a bit ada_value_primitive_packed_val, but will also allow us to use the new function to unpack data without actually creating a struct value as a result. gdb/ChangeLog: * ada-lang.c (ada_unpack_from_contents): New function, extracted from ada_value_primitive_packed_val. (ada_value_primitive_packed_val): Replace extracted out code by call to ada_unpack_from_contents. commit a1c95e6b6ede168770664cdca8ae1568187554b4 Author: Joel Brobecker Date: Fri Oct 9 14:12:29 2015 -0700 Reorder variable declarations in ada_value_primitive_packed_val This patch just changes the order in which local variables are declared so as to group the logically-related variables together. No code change otherwise. gdb/ChangeLog: * ada-lang.c (ada_value_primitive_packed_val): Reorder local variable declarations. commit fbd000da7c05ea751f47a678936de706733ea6e3 Author: Joel Brobecker Date: Fri Oct 9 14:10:18 2015 -0700 use gdb_byte in ada-lang.c::ada_value_primitive_packed_val... ... instead of "unsigned char". gdb/Changelog: * ada-lang.c (ada_value_primitive_packed_val): Change the type of local variables src and unpacked to "gdb_type *" instead of "unsigned char *". commit 086ca51f460e52828fa02096638a3f36e272ccd2 Author: Joel Brobecker Date: Fri Oct 9 14:10:03 2015 -0700 More explicit local variable names in ada_value_primitive_packed_val A number of local variables declared in ada_value_primitive_packed_val have a name that could, IMO, be improved to, either: Be more explicit about what the variable is about (Eg: "src" is an index, so rename it to "src_idx"); or be more consistent with other variables that they relate to: for instance, several variables refer to the source via "src" (Eg: srcBitsLeft, nsrc), but the buffer they refer to is called "bytes", so patch renames "bytes" to "src". This should help read and understand a little more easily the code inside this function. No real code change otherwise. gdb/ChangeLog: * ada-lang.c (ada_value_primitive_packed_val): Make the name of various local variables more explicit and consistent. No real code change otherwise. commit c5bcd27856f388ae4935b525b1016e812803ddf5 Author: Simon Marchi Date: Fri Oct 9 10:12:22 2015 -0400 i386: Fix type of gdbarch_tdep::register_reggroup_p gdb/ChangeLog: * i386-tdep.h (struct gdbarch_tdep): Change type of register_reggroup_p to gdbarch_register_reggroup_p_ftype. commit 78c5b882482b5435bb2dcf1c09a52683d54cb81e Author: Simon Marchi Date: Fri Oct 9 10:12:21 2015 -0400 cris: Use enum bfd_endian to represent endianness gdb/ChangeLog: * cris-tdep.c (struct instruction_environment): Change type of byte_order to enum bfd_endian. commit f9fa37b32501f173a37891fb1a8f9013af38a098 Author: Simon Marchi Date: Fri Oct 9 10:12:21 2015 -0400 arm-linux-tdep: Add explicit cast for int to gdb_syscall conversion This patch is taken from Pedro's branch. gdb/ChangeLog: * arm-linux-tdep.c (arm_canonicalize_syscall): Add enum gdb_syscall casts. commit 7c543f7b07678f69f22772bd2780602be67731d7 Author: Simon Marchi Date: Fri Oct 9 10:08:23 2015 -0400 Change some void* to gdb_byte* There are a bunch of places where a void* is implicitely casted into a gdb_byte*. The auto-insert-casts script added explicit casts at those places. However, in many cases, it makes more sense to just change the void* to a gdb_byte*. gdb/ChangeLog: * aarch64-tdep.c (stack_item_t): Change type of data to gdb_byte*. * arm-tdep.c (struct stack_item): Likewise. (push_stack_item): Add gdb_byte* cast. * avr-tdep.c (struct stack_item): Change type of data to gdb_byte*. (push_stack_item): Add gdb_byte* cast. * cli/cli-dump.c (dump_memory_to_file): Change type of buf to gdb_byte* and add cast. * cris-tdep.c (struct stack_item): Change type of data to gdb_byte*. (push_stack_item): Add gdb_byte* cast. * gcore.c (gcore_copy_callback): Change type of memhunk to gdb_byte* and add cast. * gdbtypes.h (print_scalar_formatted): Change type of first parameter to gdb_byte*. * h8300-tdep.c (h8300_extract_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (h8300h_extract_return_value): Likewise. (h8300_store_return_value): Change type of valbuf to gdb_byte*. (h8300h_store_return_value): Likewise. * iq2000-tdep.c (iq2000_extract_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. * jit.c (jit_reader_try_read_symtab): Change type of gdb_mem to gdb_byte* and add cast. * m32r-tdep.c (m32r_store_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (m32r_extract_return_value): Change type of dst to gdb_byte* and remove valbuf. * mep-tdep.c (mep_pseudo_cr32_read): Change type of buf to gdb_byte*. (mep_pseudo_cr64_read): Likewise. (mep_pseudo_csr_write): Likewise. (mep_pseudo_cr32_write): Likewise. (mep_pseudo_cr64_write): Likewise. * mi/mi-main.c (mi_cmd_data_write_memory): Change type of buffer to gdb_byte* and add cast. * moxie-tdep.c (moxie_store_return_value): Change type of valbuf to gdb_byte* and remove unnecessary cast. (moxie_extract_return_value): Change type of dst to gdb_byte* and remove valbuf. * p-valprint.c (print_scalar_formatted): Change type of valaddr to gdb_byte*. * printcmd.c (void): Likewise. * python/py-inferior.c (infpy_read_memory): Change type of buffer to gdb_byte* and add cast. (infpy_write_memory): Likewise. (infpy_search_memory): Likewise. * regcache.c (regcache_raw_write_signed): Change type of buf to gdb_byte* and add cast. (regcache_raw_write_unsigned): Likewise. (regcache_cooked_write_signed): Likewise. (regcache_cooked_write_unsigned): Likewise. * sh64-tdep.c (h64_extract_return_value): Change type of valbuf to gdb_byte*. commit 7567e115d312c3f8b56de6d1e2e8a90212e9dba8 Author: Simon Marchi Date: Fri Oct 9 09:41:30 2015 -0400 Add two callback data casts gdb/ChangeLog: * fbsd-tdep.c (fbsd_collect_regset_section_cb): Add cast. * linux-tdep.c (linux_collect_regset_section_cb_data): Likewise. commit f9acce4a4f411e78ebca90995c598ed231b104a3 Author: Eli Zaretskii Date: Fri Oct 9 16:21:08 2015 +0300 Fix typos in comments gdb/ 2015-10-09 Eli Zaretskii * stack.c (print_stack_frame): * utils.c (printchar): Fix typos in commentary. commit abcef95aa511a845f0599178be09403348ba4bad Author: Markus Metzger Date: Wed Sep 30 11:41:35 2015 +0200 btrace, test: avoid gdb.btrace/vdso.exp fail The vdso.exp test checks that we can access the VDSO memory when replaying. Depending on the line information generated by the compiler, runto_main may run to the line marked with bp.1 or stop before that line. The test incorrectly assumes that it will always run to the marked line and fails if it doesn't. The test does not really care about what is traced. It does care that GDB is replaying when capturing the second disassemble output. Reflect that in the test by ignoring the output of the stepping and record goto begin commands and by checking that GDB is actually replaying. testsuite/ * gdb.btrace/vdso.c (main): Remove breakpoint markers. * gdb.btrace/vdso.exp: Change stepping command to "next" and ignore its output. Ignore the output of "record goto begin" and instead check that GDB is replaying. commit 145e3ddb4b1657a1f29eb9f41f2d54d0bf26b6f0 Author: Pedro Alves Date: Fri Oct 9 12:56:26 2015 +0100 Fix gdb.base/a2-run.exp race This patch fixes this racy failure, with the native-extended-gdbserver board: (gdb) run Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run Remote debugging from host 127.0.0.1 Process build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run created; pid = 23832 Reading /lib64/ld-linux-x86-64.so.2 from remote target... warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. Reading /lib64/ld-linux-x86-64.so.2 from remote target... Reading /lib64/libm.so.6 from remote target... Reading /lib64/libc.so.6 from remote target... [Inferior 1 (process 23832) exited with code 01] (gdb) FAIL: gdb.base/a2-run.exp: run "a2-run" with no args PASS: gdb.base/a2-run.exp: no spurious messages at program exit run 5 Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run 5 Reading /lib64/ld-linux-x86-64.so.2 from remote target... usage: factorial Child exited with status 1 Note that the output is correct; it's just that inferior output appeared after gdb's output, and the test doesn't handle that correctly. This comment isn't really correct, unfortunately: # waiting. If we had already seen the status wrapper exit, # gdb_test_multiple/expect has no spawn ids left, and thus # returns. That's true of expect in general, but I had missed / forgot that gdb_test_multiple internally has extra matches using "-i $gdb_spawn_id", so even if the caller clears all the indirect spawn id lists, gdb_test_multiple will continue waiting. So do a conditional exp_continue manually instead. gdb/testsuite/ChangeLog: 2015-10-09 Pedro Alves * gdb.base/a2-run.exp (maybe_exp_continue): New procedure. (top level): Use it in the run with no args test. commit bc04c45531c0a107c57afef239bdf66a21b3e958 Author: GDB Administrator Date: Fri Oct 9 00:00:08 2015 +0000 Automatic date update in version.in commit d5d8c4e12b220068fb0b2047b63562d3f9903e91 Author: Iain Buclaw Date: Thu Oct 8 21:38:05 2015 +0200 [D] Support D style sizeof and typeof expressions. gdb/ChangeLog: * d-exp.y: (UnaryExpression): Support `type.sizeof' expressions. (PostfixExpression): Support `expr.sizeof' expressions. (PrimaryExpression): Support `typeof(expr)' expressions. gdb/testsuite/ChangeLog: * gdb.dlang/properties.exp: New file. commit 4e7de1556a25a3a31c53ea2242b1d9a5c103dd16 Author: Maciej W. Rozycki Date: Thu Oct 8 18:57:56 2015 +0100 MAINTAINERS: Update my email address gdb/ * MAINTAINERS: Update my email address. commit 3f94e60d92d9bf67f1f8cbc19ffbfe5d28db7fcf Author: Nick Clifton Date: Thu Oct 8 12:31:26 2015 +0100 Fix compile time warning compiling ARC port. commit 04c4fe8c59d3f2870a5df7be7f55fca60d88381f Author: Markus Metzger Date: Thu Oct 8 09:00:57 2015 +0200 btrace: fix void return record_btrace_resume returns the void return from the to_resume method of the target beneath. Split this into calling to_resume and return. gdb/ * record-btrace.c (record_btrace_resume): Fix void return. commit 8c5b385cbf07f318b579780df683d2c6b04f20b0 Author: GDB Administrator Date: Thu Oct 8 00:00:08 2015 +0000 Automatic date update in version.in commit 875880c661e71a7622d8f7282f0dd1ef756040ff Author: Yao Qi Date: Wed Oct 7 12:23:15 2015 +0100 Avoid using 'template' C++ keyword 'template' is used in include/opcode/aarch64.h as below, typedef struct { const char *template; uint32_t value; int has_xt; } aarch64_sys_ins_reg; and it triggers compilation errors when GDB is built in C++ mode. In file included from git/gdb/aarch64-tdep.c:62:0: git/gdb/../include/opcode/aarch64.h:651:15: error: expected unqualified-id before 'template' const char *template; This patch is to rename field template to name. gas/ * config/tc-aarch64.c (md_begin): Access field 'name' rather than 'template'. include/opcode/ * aarch64.h (aarch64_sys_ins_reg)