This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, hjl/x32/master, updated. glibc-2.15-1315-gbd9ca8e


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/x32/master has been updated
       via  bd9ca8e817db02559fceaca867c5c29fe92e96a6 (commit)
       via  1bee0078db9a9ed550787055e55b127a7e1dd4c0 (commit)
       via  20c07380db271009a735780514eee62ada8681b9 (commit)
       via  5abd277ea3535482e461de6c77cb7819a707d85a (commit)
       via  de8876544166556556bc019ae8d995a64f64e4d0 (commit)
       via  d8d1017e5ea0b5478a3c571fe12a233c9450d41b (commit)
       via  7e03c15eff0f2d5f1eee1944616d9b12f5a3034a (commit)
       via  6c7fb1458ddf7943dceac20440226d3d968e518d (commit)
       via  7831bd8ea9ac950b0cd89b917031f19f3de9050e (commit)
       via  07c58f8f3501329340bf3c69a347f7c8fdcbe528 (commit)
       via  662742187c77452c38cddababa92285cb62dbc28 (commit)
       via  61f65140eb0fe350ef59aca95b89d784e30f24af (commit)
       via  5fefb43629b36b143c9ac100b89408a2cbeed3a8 (commit)
       via  d8e272abb32d1788f6a95ae5128b2e2441b840e3 (commit)
       via  d024d23cbefcdb1799510483c1685e2f67ab9619 (commit)
       via  4a56a16205508ef7d8b0f4fc2ee36bd6c52f3cca (commit)
       via  9da37390e0c97c379fe36a687bc2c079293109fa (commit)
       via  8770001998182ca9859a65a143f16eb57fff7c04 (commit)
       via  cbc00a03986c5890f0a9d2c7cdac26b7606fe98c (commit)
       via  478143fa1706a0212366dfa4d9bcf3d8334ca131 (commit)
       via  d990b2820aea51197fda412f56a12e7172e45dd2 (commit)
       via  8b728fa3210c4ae4514a57bb25d1c0fc9ae62269 (commit)
       via  c7683a6d02f3ed59f5cd119b3e8547f45a15912f (commit)
       via  17d903509ac71060b3da12b51a62608cb853aa30 (commit)
       via  4e5b77d12c06eed7106de9550ea0d59beb0e2f5b (commit)
       via  a2d20bdb570e068cc5ec8e80f932c150c4a36ed0 (commit)
       via  a6f1845d45d0ea9303b3c71944c0a511e23bde26 (commit)
       via  cbcbe830f9fbdfecaecf298d42b5541a6724a512 (commit)
       via  e0b16cc25c4bae1ac45ec6ce90341f9a7d1ae6b6 (commit)
       via  5649e443926423bf68178e0edef577bef4c62183 (commit)
       via  7fd7b584646e4e2660d1e1445605895eb425b7b0 (commit)
       via  0ff290bd4c11d9e123d8ea5351791428e33cbb2f (commit)
       via  f66f0ce833523a47e12b4a3eacab6b20866ab033 (commit)
       via  6ad13e088de15b34beaa8eb7d1ae6d27517ccecd (commit)
       via  bb07f69f3b742687eb2849587c8756c28e018fe5 (commit)
       via  daa2981edb8c6dba20c5950d5778783be0aa0ab7 (commit)
       via  b1d072a75ee8f9f75ca8ab924ed7919be8796030 (commit)
       via  9eae47cb5bc2f34372ac155ea6f362df0fbc0991 (commit)
       via  e4bcecfab14ac78361c6b098d83fb269bf08c198 (commit)
       via  829580d6c2042d95a14899a22c000b4ecf29bedd (commit)
       via  e1814afa2118d114fa770743fa75e838385e6577 (commit)
       via  0726d95f36b9455ee760e21ba2a3ae8d7a907ee4 (commit)
       via  e6bdb741d11a5c408f1f162b4d649b93d8012ec9 (commit)
       via  1b74487e904d7e17eda4278598632d2cd81d8068 (commit)
       via  1cdbeb3f5816da1a9937234573010f02068e589c (commit)
       via  a88b64b9bbf8b2a315206e211250c5529534a477 (commit)
       via  610b86225e8d8ebd1400b4c083a04b624b4417b1 (commit)
       via  7cd195df6204a8575b3b1d303affb9aa5756a828 (commit)
       via  5de1769e902417743d74102718d38fd4d1c9fc31 (commit)
       via  3daa062f6b8642e8571c141db44c2192d4ebef4f (commit)
       via  48e0fa184b9c519a8ce87974327a1c63ca26683b (commit)
       via  94b07d20dd07d8426dbde1e83bafcd15eeead281 (commit)
       via  28a29101a4b4aa3bc5db0dd0ab495b39f13b8bd3 (commit)
       via  0b7dd3ad50202357abccadfe138d823a56e90866 (commit)
       via  77bece20790d1e1662aa86defdb0421e7df7e0ab (commit)
       via  9e64dff89021b8dd2f21321bb6232393cf898f58 (commit)
       via  5de56f23427ce8e4c7b6af2e0e3c6590e4a4d728 (commit)
       via  18298070c05cd6164db0947399f03d90faa771f4 (commit)
       via  3df70a26742d33bf010061f69d6b3034d00e6f24 (commit)
       via  553c7ea4fa267045d0f3338e4b15b285ca23c733 (commit)
       via  3707636e48c922a27854d5d7011a07ef92ce0a28 (commit)
       via  530be6c086b4449f4fb55512e7890996cd77a8e4 (commit)
       via  37fb1dc05733e0f3d7eca64820dc5c2c25f2a6d9 (commit)
       via  b53ef01aa25acc4c4f0b41dd120e90d6eb69e370 (commit)
       via  7a185db2b7f9853d35fbd1396a56d0c7a64b4bd9 (commit)
       via  85c301e45e6a0e6f556b4be886f8624ef912e37c (commit)
       via  5387cf00877f608b1555f832327169f36099a834 (commit)
       via  428bd7074c3db7f9258294189a92f1ec19956c6e (commit)
       via  3e5aef87d76cfa7354f2b0d82b96e59280720796 (commit)
       via  0df6d9f6618ff9568a19c924401aa41915b45094 (commit)
       via  1ba7c3dca1c45eca7f1214bea2278c67ce8c45a2 (commit)
       via  59910343fc16d7b9677a780d8f362316c2b19c93 (commit)
       via  2e4c1e9edb2a0f25a4d8de961dd4b7518c88bc54 (commit)
       via  6fc83de4245816ddf6e49f0d7b7464efec8a8d3a (commit)
       via  de7f5ce7c595f4741029f7e63429826f8e82b340 (commit)
       via  286abc3dea5e43835a1a77a3a8128c8ac14ca12d (commit)
       via  477cc68e904516c2108889c95c33326af0a87ec5 (commit)
       via  5681885d802e7fd1aae84ec2f478d57de8b4133c (commit)
       via  51da286a362c907f2f3e520e233799445f4aca27 (commit)
       via  dc7c451246ce5eeb99b443194b4cd70a350e57b5 (commit)
       via  1a0994f5356214e8af8a1c1cc33fbf74a7ac8993 (commit)
       via  776ced488abc150cbc7b1247af7c5d8ed516127f (commit)
       via  830f2858f535343b96baf2cd357dab1b015e662c (commit)
       via  0af797def371ceb4f05586d7bcd25841653d2082 (commit)
       via  889720040e058c0e399fd5a326632bdb15a7206c (commit)
       via  9ca0b371d9e1e8203a72cd115a03b2e2e28aebbc (commit)
       via  b3a3c14eec7a3ced866c2c72ec464490221a323b (commit)
       via  d8144f6a8f9614bea6d81c198a626d3b476eb3bb (commit)
       via  807c08d8a3e933d8f69580f8b4058460ce4eb501 (commit)
       via  36a85c5352c4e87ccb07916b51d6b76a484ac213 (commit)
       via  5abd5134602ad01372e7dce2561cb961020b45d2 (commit)
       via  e39745ffa030f685fbba13534a3023d52a27ead8 (commit)
       via  380192005eca1914357800b23bcce2df46d1d93e (commit)
       via  9736c0ed38978b61a3f77d3eeb56c4672f50ab45 (commit)
       via  48970aba309f08d3c94ddc8796630df87b8e093a (commit)
       via  0ba4e333bccdcc67c06e865bce9f3b43adcb2d8e (commit)
       via  5ef372c7180ac7adbde7694fb3af418a0548ca74 (commit)
       via  1ac9f242a792d135e98e85137511d2d40609ace1 (commit)
       via  1ed8a0ec0303b415b8a3392bc25db033148ffb67 (commit)
       via  20eb223cd9acac21d638f4953404d6bc7e115a9a (commit)
       via  7e01563921acc16a95e262a3988294d38aea8c5a (commit)
       via  d417aa28bf29ad81925bbc25fb543f57239d48af (commit)
       via  bedee953d820c79f704c6e17f778ede94eb95fc4 (commit)
       via  30b99d798f9728a96d4766dd3f7fcfe5daae8945 (commit)
       via  61653dfb81b776bb72ce4304175b861d77c357a8 (commit)
       via  1c8080eb011da89d0457b848b5251f16b94676e6 (commit)
       via  90c885c87bdb3380d430d3f72a4a5cabf2835167 (commit)
       via  73921270bcceae63ccc1463a76dc68a6dc3e5b43 (commit)
       via  661768bb509e85aa53385d7962ecde558421aa78 (commit)
       via  999ba295cba046cf0b27539f94f1fd9472cd8a7f (commit)
       via  43d724bab3748fc330a908c6ef832f91caf5ebdf (commit)
       via  d15fe576dbc48e3f31f5237c9263e8955eb47670 (commit)
       via  aa98a84744003a61b359fcaf7933bff41da5a696 (commit)
       via  2c97d133b2717f0ddcf372394055c5df16c21eac (commit)
       via  cef4676f539fa00bc01f931d5c6f0af2b7a4d0f2 (commit)
       via  d4261567b7c22fc411d2435c2a8ccff3fe4c5a50 (commit)
       via  cf3ff365ec96427f77da45e9aa0b498655b65c2d (commit)
       via  e60e6155c54f0dc8ddb6a2ee6ed49fbb810193f7 (commit)
       via  76cf3e4d0119dda0a163766f4045fdfd487c467d (commit)
       via  a637753a56c194a410ea173b635293d555f04b4e (commit)
       via  bc078378cc3c96d3b507c7d21871ef6f03a92299 (commit)
       via  d5e051198503e74256b72fee7b93e681f1de6b57 (commit)
       via  fd52d9ca1e04fd89dad9d52d25f457723a0b9d34 (commit)
       via  81986ac47d2b80ab80cdd9a548b7e05e0390f2eb (commit)
       via  910f9606f35eea2265d948b86acd8420c1c67625 (commit)
       via  f62ee380a1007441e4600f837b9a40ec8c43ba2d (commit)
       via  bb48f05f14d97cd334d1b53da0070e7949fc95ef (commit)
       via  d908bb31028fbbee5b5d4529480925285367101d (commit)
       via  da938a15e2146388908a2cc77c4e47ae0008ea4a (commit)
       via  953ca31a0c03921b390b6f7358edd34ce580d0df (commit)
       via  617aca05db2580b32217de89f806b6716e36bbdf (commit)
       via  6a3951a036dcd40d8d81072cbc8b2cdcbd9db7a2 (commit)
       via  4e124cedfb293c35b37f17c41b5444a2f42e4541 (commit)
       via  5762f7aeff67505c9f939f47ef7df18d813f4c04 (commit)
       via  a26b68566485e96ef8f8bdc71d229d4c6d709ad5 (commit)
       via  cb2b9ef758924cb55ea2fcdd09c08158bd7c5e5d (commit)
       via  a35dc3a5f3720637f516959e94675c62815621cb (commit)
       via  691d2ea78d05c0847eeb1ca36797beeef031290c (commit)
       via  0a66d67ac8fe1d870dc5d80563e2e65b0a3f5089 (commit)
       via  af29eeb6ef63db19417eca2e6e10f6e7d2a5aa09 (commit)
       via  de8d7efba4d37ef3bddaca824d6035bad36ff637 (commit)
       via  82d0d62d771475fbecfff2431e8a379e08065405 (commit)
       via  34683bb01bd2c65e1d124bf54e13f3c54779efd0 (commit)
       via  85e840453e8dd59a0f4ffee8212a96a103bbf184 (commit)
       via  84a68786746cd3f81b58f692d949df146790f3a9 (commit)
       via  48baa5f1d189b2d26636b65d55bc2f9551223433 (commit)
       via  180be88bf57c967a66e7152e58147a01d78a63cc (commit)
       via  5e90c8ad55a1196846e2b06e3f6a6d3c805542e0 (commit)
       via  23dfb58b4d868e3c90cdb472e4e6e6d7469f0ee1 (commit)
       via  ce5d54b0d6b097c74835dd1df660720223284373 (commit)
       via  13dc9eac616b866ff19098c971dd46e29d0ba30b (commit)
       via  c33589e8c515810f57c7bfa61f0270655bd6ce2e (commit)
       via  d4575d27c628c8579f3c127bdeb608fefa1b6222 (commit)
       via  a7895d159fbe2cda386ed4faa7be5661f24f76f7 (commit)
       via  1628095822c1d504b95c1c9a282886499d09f023 (commit)
       via  68c1ff70143295b9eca0debd6b14d18898e65943 (commit)
       via  5bd66283dbfa7a20b0c50c9a3e4362409b61ec06 (commit)
       via  79ddad36d20c8fde3c096d19ce22911d55195739 (commit)
       via  c66dde21453e5e7055526c6b65ae86c2e8eca3bf (commit)
       via  64a4512e7994886a6830662ade647d1d0a3ba863 (commit)
       via  92263dc2bcb415cdea40e08796c19c98185ec909 (commit)
       via  2ed82ff59ce7c1b94c7213b9704e0b24c2e43015 (commit)
       via  1cda1b0a2a48c0d13dce11f6e6dcf334f7005704 (commit)
       via  ff7d2e647a286e72762acffca77ca1469ee4b25d (commit)
       via  f9695c20b3152552ee9fb3d4bf5ad57379a99afb (commit)
       via  e49876768b680e6525923b2ddcf776488d93a533 (commit)
       via  60159d060f3a17017c4d272a5f3c4306f2d64634 (commit)
       via  e62a8f34b6566603270609e8efbdfb3f8fa9e430 (commit)
       via  0aeedaf6eb51ebb6aa32d5a94b8fa7fa7c8271a9 (commit)
       via  ffba7c5a334c5bbf701050c683183bf2b375622c (commit)
       via  b8ecf2629f181679a51e5c2b34df3281571c8dc6 (commit)
       via  e6f19c5b86a5f86f477e1f836ea4c329ca0d1e86 (commit)
       via  656416c96528437f54b345b1470aaa40f145ed30 (commit)
       via  a46f2169d30470c810411cb7f223713d46065651 (commit)
       via  7de5badaef54daa94146c9732814a4509b39fac7 (commit)
       via  c6350d8c717675a132bfb46a957132b545f3c058 (commit)
       via  6fe73b6477c0c4be93f619fa936e6e3936c0b298 (commit)
       via  6af6528b3bc21650462ab7b7e8256c9f473324f5 (commit)
       via  374f3ad5d3de6d9377fddece973b7adaa3879ca4 (commit)
       via  6843421be5bae6e1f6d3f021fee56f1c127fb3be (commit)
       via  de986b5636c6471580c4eb35e159512d797da112 (commit)
       via  85736dc78ba0a44d524961eef464e3690c67678a (commit)
       via  048073995fc2cdc629e11516f883e0247a23a336 (commit)
       via  a9538892adfbb9f092e0bb14ff3a1703973968af (commit)
       via  da2ce63712cf8a01df32b1c963df98a6abe2a264 (commit)
       via  67a160c1e9550daf18bb05e5b417e1d608c7ab71 (commit)
       via  2540d086871bffd0e914c0ef1eb4812af031c643 (commit)
       via  93171016830e1ed4ec77c46cd4c32156d4624c1a (commit)
       via  cc03b29695152a0223c2f34e147181702e1d3e61 (commit)
       via  f16af742175c8bdf536ebd97bf9fb33db925f02e (commit)
       via  d86813a021b6200cf2ff75041abc101cefcb2da2 (commit)
       via  03a9fdb5b54f1d2a2bcd094c2dcd3e4bc448f727 (commit)
       via  b907e1e1b1bf885057cb49dea84230d9b7315d1f (commit)
       via  86a41d70c83f04fd158917c7af4642ace5931008 (commit)
       via  d9754f5572a0bde769804157cf2e47a47fd65b9c (commit)
       via  2953ec750f08b58aa2197cd222e3763014536b58 (commit)
       via  3b550e9e48628300210892c64f1b9c2d940393d5 (commit)
       via  dde05f0093424253cea3f7bc19a3c14dee2e65d7 (commit)
       via  9dba3b5c0a0c0144f712a4a9d254369767877fa8 (commit)
       via  eda4170670ddd0dfdc98c7b59ccd274fe18b3636 (commit)
       via  8bd9be8ae9196b46d2b5718845b54ce9daff8da2 (commit)
       via  9ea01d93f7e08463febd23ad758e28973524f9be (commit)
       via  33fe5feeb88607d0cfe107be6b2ef9a48ac69094 (commit)
       via  b8f9a7a6332ebf611ac975f0870745352449a760 (commit)
       via  685945597f8ccfe6490f4e4479b740f5d452920b (commit)
       via  4a1642d553f3eadf7d3b8a377d009c5a2a44b92f (commit)
       via  02a9193863a929b06ccebe394dcf5a30103eb1d3 (commit)
       via  4c61b5a16a8cde2a8f3fdc4f2382923d76d66ea6 (commit)
       via  6540185fb9f869958f3b2822224c06292c7b7c07 (commit)
       via  509072a0f7f8a37bedf61a78c0cdd7783368c65a (commit)
       via  cce52588b67526f837c197162d329ce7a078eee4 (commit)
       via  730e08215d938c61129f5838d348399deae26359 (commit)
       via  0ce55aa9a7f2fd87de43c780560551d3410e7c42 (commit)
       via  ba75122dd93b6188d1be446df0502c4cbe5c32e6 (commit)
       via  5f658cf1473dc9d2daffdc28fa8480258967d0c4 (commit)
       via  6cae4b26ca10528e765cfa72a76ad12aa6f05a3a (commit)
       via  592f90e6ec52961ec44300f489d90b6231e85566 (commit)
       via  0e8860ad21c60450da7e08c36975a88667c4d4be (commit)
       via  30996e936976ebb9fb2895e6c7e9723077927b07 (commit)
       via  289ac4352aa9ac63474e03022a5ad395d8346ee5 (commit)
       via  890d8bd8547e7342e65b39aabcedf8398ee51e05 (commit)
       via  f6ee66232293f1bc0c83d04ffcb7b1d669dc15d0 (commit)
       via  ea2626f67516f1f171ef81771818b4a2dc9a368b (commit)
       via  085f715e51d6132eb879edb39ac2d49eb0fa0927 (commit)
       via  10f74fbcde80b662df440716b4c850f51db4e08b (commit)
       via  be8498fca009aa0a40ae3c7eeccfcba790284d60 (commit)
       via  70bc83b910850502582330b9b3a0fe961a36d86b (commit)
       via  9bc0b730a650b333a257777cf7d8e18d5332ee10 (commit)
       via  6d2850e7f5df4c67ca2ec172a945cbab20d9f050 (commit)
       via  3cb845617b80442ebb96a836852c329ecbdc738d (commit)
       via  54e2ed81050b3b943c104faea34cd82376df96f7 (commit)
       via  9a5ce6b04ebfd809755dbdb649185183d18fa159 (commit)
       via  58f63d04c7b50486b96974503b6830a73f58738d (commit)
       via  90c1aa524b915b1907d1a3a8f2b2c358bc261d1e (commit)
       via  8a17f34979b8425fdd74c15872d78c4d56a68079 (commit)
       via  777b1eea9df942aebc5ba38566111e667ddaaf91 (commit)
       via  f59594c434a22bd40c9e045197d7033e315a95f9 (commit)
       via  62f9bae74361ce47ec0246791e0014a620124705 (commit)
       via  d20d4ac2e0fd671899042a8c3bbaf3b69c93f2c8 (commit)
       via  439bf404b8fa125cf950dc1aa37838702c5353ea (commit)
       via  1db5509d36ba3bc3b6f401f1ee687cdd295ba9e8 (commit)
       via  b3c7fb73890a2399032b6a43239fd3dac43f5af2 (commit)
       via  2949684c162a4413e42249d6b2ad554cb468b5be (commit)
       via  c510cdd79ec6ba924dc388fdcf20b58068095dff (commit)
       via  7aaf5def2d3ca109ad6b7d91c21b90e5499f561c (commit)
       via  60489c6cad31ae9cd20521cca3808778ffea7c7c (commit)
       via  e3e49f32c0bf50344c94e0ecade0a581916ec041 (commit)
       via  6cdef1ab3666b1a0e9c5b3892970bd2fc8211bf8 (commit)
       via  245a11d7bd3bc44cd2b9f8598516287393705f76 (commit)
       via  57ff9e71f1040e27210054d57f24d25e564215cc (commit)
       via  274cb27026cea351d455ce6f4ae76b8833288bf0 (commit)
       via  a1e3098a0f60bd4f9f3c3ec225916b564337bc80 (commit)
       via  0b254d8f3db5deb23e57d5d644d7a9b2ca6df3f2 (commit)
       via  ceb809dcae3da4464ea7d34c3d6e01ba1aa2e3d8 (commit)
       via  ba380afe848ac6063370e3a16105b371417a226e (commit)
       via  4886efa462f56dd01b133610219826f73d2a479f (commit)
       via  144c5467725f0868fadbdd236d67ee5b1df2fb45 (commit)
       via  37f1abd46c22a13e7c2492ce9de18f4cc2ca308f (commit)
       via  11de3a3371c18b6fe955d4b43071656baf4b8804 (commit)
       via  e02f153a1ab75b95e3991dd9dbd3b9220dc9c3ae (commit)
       via  520ae0fd0bc4dbb57f103eedc818d6c1b39be13e (commit)
       via  be5eaa9c99a1c8ef63fc72d04614a9247b60100c (commit)
       via  b985be81fafe09f77f37ae818b902db278689a9b (commit)
       via  6a4888ffd67163b589e602d62ca6330a608d8b89 (commit)
       via  b8caea2cb90092ba8ecd3274898f227bbe2d305d (commit)
       via  1479b6957eb7a6e64f4adb9ae0589818fd7b67d3 (commit)
       via  7ac772940e915d2727f8d161741d3f74872d38dd (commit)
       via  caae5a8101236944532bb1b028e97654150df7bb (commit)
       via  ffb7875d03e224584fd1e3dc8bb6e90c79ed606e (commit)
       via  1bfb72913bf82781ae232d056991362b2b071800 (commit)
       via  c044d724dc0fb61ba194d853b266f4a4dbd1329d (commit)
       via  2523c62bec65ea0c17b1893ffdaba7ac3cff1e31 (commit)
       via  d7bb4c428aed3126614b999336397e9e55e6f486 (commit)
       via  9dc4e1fbfcebda9c5f1eaab1d777cc0bdbfafa47 (commit)
       via  c7df0112025704a914ab5071e8626bba2a5c007f (commit)
       via  d4e1af302fc8468636067d84f1c57048c8a7cd34 (commit)
       via  dc70356cbfc649af8e39c9a8d509fefd766fa8ef (commit)
       via  aff426c79157180f6e1a1d191257b050ab4555ca (commit)
       via  7bba0c5761014c1c9f55150359d826610436162b (commit)
       via  e0b3e90103d3c8ccbaf95dff556e71796fa782e2 (commit)
       via  9fb1a21f4d33c4c82719d6130e149eb2c5a51ae8 (commit)
       via  d3c6600440bfa95db3bb1ddd6c75dc43cffb79e7 (commit)
       via  36b5916e2eeb0ecea3d4c1b991d8e55f3d65e9e9 (commit)
       via  d1ab300fb6ff8f1f17600f12fe62453741aba860 (commit)
       via  4822a2a5207d0aa43160a7a95cb1ac244a350511 (commit)
       via  60d45b36a5cf5befde06d44424c720edf1f88244 (commit)
       via  00222c4d7d9eb943f603f8271ec41e4b55ddec26 (commit)
       via  842b81d6113b45c9a10a93dd8415639c414df946 (commit)
       via  1cf463cd4e499488cbea70c50939d22b6ffc045f (commit)
       via  eae2d36a96a266fa49459fdb8f98489afba9f0bb (commit)
       via  17d2d5ca1aaf652cf87a013144bfd6d09f5d29be (commit)
       via  60cc4a18e6a2c865e250609a3021fa4ff2b57650 (commit)
       via  a04e06bc4ce68f639ea074b82a4a1713889364d2 (commit)
       via  512ec530c7b6f29767bac4ff4c410a9b6390ce1b (commit)
       via  c0d2c8538a89c7a3de158ab60fe35fe1f9960803 (commit)
       via  1f59b0b121e1fe9df13560096c55d8ad6c6e8c46 (commit)
       via  c252ec15790cef36898948bed276ca0d810e2ed1 (commit)
       via  0898fd18f00276227655c5f0a60c8a5fea959c96 (commit)
       via  febb44a4cb4c83db022e33d5e6ef8f55e43e0687 (commit)
       via  08773b3c1d67859ef28871a1c27e49be587eb7aa (commit)
       via  9086b2957a6ac8605889db3ae6e3cdcb683459e8 (commit)
       via  685c35d6909c07d8b1a80a776aa484789bad6302 (commit)
       via  d287100675004aaf1abe45d5a63f20fd9bac1f9b (commit)
       via  0a10fb9eecc1f890cc247ae0dd4bdd4c20e7343e (commit)
       via  73ba80e963b9d5b8d5dd120ebe3fc6f1b0eb52b4 (commit)
       via  df8a552f6f93f62c494177a49ee49d3bf40949b8 (commit)
       via  f42d41d10769f9bf465348e6cf6960364d47e10b (commit)
       via  3c3571fc107525cf3877ddd938e4d8f9b6526b6e (commit)
       via  61f06bd3ba0a5c95ca7261cacb13025fa30f10f4 (commit)
       via  918d4d716343a54ce97aefb13d20fa8f4e1d03de (commit)
       via  f34d6f840eaba45a82fa8d20922fc2d678968fb7 (commit)
       via  674cdbc7a3d022764e83b75e73b2767a36823c91 (commit)
       via  8e41b99fe1ae60276f8db4211d47ed2b1bacebf2 (commit)
       via  10589b4adb212dfde20670aacfb76aa842f42b92 (commit)
       via  63643c85d4c47512decc16f35124160629c39a86 (commit)
       via  3faebe6abc04ea8d632bee4537948ca85479c09a (commit)
       via  c6474b07e7b5f0cdc9089c1c4fcfc4fcaa2bcd92 (commit)
       via  1043890b10996ec4b14cd01040b82610760d5d4a (commit)
       via  37ed8b9bdc820a23d5884132d0278d9e42942fd3 (commit)
       via  b29d4053f0bda40f052cf69019e4198a21c67efb (commit)
       via  db65366043bd85adbf7b0a73f406f5dadbf5ceb3 (commit)
       via  ee16e894aaf51674058224fe0ece852bd0b3632d (commit)
       via  6103ae3b0eb1569cfdceb0e7c9625643b63dfd2a (commit)
       via  80b4e5f3ef231702b24d44c33e8dceb70abb3a06 (commit)
       via  edadcbd6247ca741756e234b6aa5f3db895bdd3d (commit)
       via  1792c087e53274678b4c638a54ca6b85182e51ca (commit)
       via  8069478040336a7de3461be275432493cc7e4c91 (commit)
       via  66cbbebcc616db8e221e81f7ecbb2c77701d031b (commit)
       via  6b645f0d702e9285f3d7fe5684258e77051cfa8e (commit)
       via  e468f8a3a7b10b9cecfc92a0c3090f25b42a56a6 (commit)
       via  a4186cffbfdb464ff1b7344fd7561d6014ef721e (commit)
       via  510bbf14b4f25fec8ee3a2d24de3f24bdbf84333 (commit)
       via  5d5722e8ac22253bdc819da2d676d9900da0c533 (commit)
       via  be971a2b1c7828d94c41edd5cd22c1d9dcef1b6e (commit)
       via  37233df9d1fa7a1a6ff3a72ce4f642b1a96de9ca (commit)
       via  38de94a5efbc3de186d6f287d666f74e5b4c8247 (commit)
       via  bbc49098ff1bbbd5bdbcd69546b906d3844b4771 (commit)
       via  6753048948b86f3b045710f77e1616b348562fa9 (commit)
       via  18bad2ae1bd1797782d51231d24f7b773c2bfff6 (commit)
       via  5aa3a74a59916b489e9cf7c4dce9eb149e106c6c (commit)
       via  cd9fa98583b51812e906f1e85cc6e370bb4aff87 (commit)
       via  802ca5a5efa5d11836b2ffd81c9f6fd42f938ac6 (commit)
       via  ecd0de9a955fd14e825a666ea6785842e1579326 (commit)
       via  6960eb420d7b7cc18420dd68466b664867fa069d (commit)
       via  eb43375f0f7640a32fd6c67b94291419acb872d8 (commit)
       via  bcf5524012216fee3a7668a3b43aad3243a083b0 (commit)
       via  6178c55bdbb1e434b594e5f8563b6948f8f3edc0 (commit)
       via  6f080c2fcffac1bb8626b8d143dba57a37abb071 (commit)
       via  bcfe3a546e831ff3e43a8782f65a95fab7bb864d (commit)
       via  63494e2428228987d4904bf461ba8503c42dc631 (commit)
       via  89c9aa491a7cee97bf78a29cddbf0a25c902a671 (commit)
       via  ab561cc2b9ac4cb0e75518b015b7cab56454ed5c (commit)
       via  6353ced481dcf05076644e5ff1d2d1b742c5a3fd (commit)
       via  5c28a9aacfb9d9a17603a2b3c2998c4346378f4d (commit)
       via  021db4be6f1f4189f66feee066a495d49e92b93e (commit)
       via  703f5f5336f917bd1e5be38ee12a45f6bdd86d1f (commit)
       via  b5c086a2814b45e0b2ab678922fcc66c7351fece (commit)
       via  acc466e8bc8cf7952eef3d8e9eea2a915a61220a (commit)
       via  5d5644c386904e952c46364b979058c4074b0d5b (commit)
       via  a3654dd68b9a17f20e7600501c763f0ee2cc37ca (commit)
       via  6d74dd09d29f77ac2b22410f45687def349ba3da (commit)
       via  28e725016266de6cc18f7aef5c675c57b7a42a89 (commit)
       via  c8c59454eac603f75e8e037d290e595abeda2af5 (commit)
       via  6f27cd16593d0c095bb1b90787bee70910d3a609 (commit)
       via  29177f346388bf75968718e33f5a42263d05732d (commit)
       via  aebbd9a1f4769049defd414c31958f2c603eeecc (commit)
       via  e97f187ae3b3c716c4c96c35f53a645441b50331 (commit)
       via  02467e1ca1745158c99c9b2576b05850028394f7 (commit)
       via  da392631c9056d412daa5ba92b8e82a6951d4a87 (commit)
       via  8115f29badfc170d8ffadf3982646dda406f5919 (commit)
       via  edfe0dbebdae0a41edc7f642a0dd349f172fd3e6 (commit)
       via  bdd74070cc94ca50f1096808977268981308d7d6 (commit)
       via  91d8d69ec6bc407af06125c4c98f70e3a43f3b38 (commit)
       via  bb90b80baa683336584716122f529b039c48d3af (commit)
       via  1a4b75a190006bb013a61f2031a4de86e93a629f (commit)
       via  18b0b70bd7bcd775b0ce9f2bc1f15dcf225fc94c (commit)
       via  32a68affe8e2b7fcbff18c5a1029642824b0099c (commit)
       via  b1cc2472d26084ec88b53606baabb82ec6b80db2 (commit)
       via  e1b4354e663fe7f68c96b6c6e72e55492bf38b91 (commit)
       via  b9f1922d7e7d67e8559664b266b2a6b35121d6af (commit)
       via  1db86e88458d3f9cd159cebbda7f773ba29bacb2 (commit)
       via  ee0db19075ebc3428291934df429365a5abaea47 (commit)
       via  dee4a4e3d0e8b9df6b35ef53e46b9346ee713af0 (commit)
       via  6a43ec980c5a0500149ef37d4854eac0e270da6f (commit)
       via  05c2c9618f583ea4acd69b3fe5ae2a2922dd2ddc (commit)
      from  bb09b66ecd00062cc253763337df897c3fec2225 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bd9ca8e817db02559fceaca867c5c29fe92e96a6

commit bd9ca8e817db02559fceaca867c5c29fe92e96a6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:45:53 2012 -0700

    Remove trailing whitespaces

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9ef8d03..4b01569 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -43,7 +43,7 @@
 	(LOAD_ARG3_TYPE): Redefined to long long int.
 	(LOAD_ARG4_TYPE): Likewise.
 	Include sysdeps/unix/sysv/linux/wordsize-64/fallocate.c.
-	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c 
+	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
 	(LOAD_ARG2_TYPE): Redefined to long long int.
 	(LOAD_ARG3_TYPE): Likewise.
 	Include sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c.
@@ -1578,7 +1578,7 @@
 2011-11-21  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/Implies: Moved to ...
-	* sysdeps/unix/sysv/linux/x86_64/64/Implies: Here. 
+	* sysdeps/unix/sysv/linux/x86_64/64/Implies: Here.
 
 	* sysdeps/x86_64/Implies: Moved to ...
 	* sysdeps/x86_64/64/Implies: Here.  Prepend x86_64/fpu.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c b/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
index c026307..c636a3f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
@@ -32,7 +32,7 @@
 /* Since x32 ptrace stores 32-bit base address of segment register %fs
    and %gs as unsigned 64-bit value via ARCH_GET_FS and ARCH_GET_GS with
    PTRACE_ARCH_PRCTL, we use a local unsigned 64-bit variable to hold
-   the base address and copy it to ADDR after ptrace return.  
+   the base address and copy it to ADDR after ptrace return.
 
    We don't use
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1bee0078db9a9ed550787055e55b127a7e1dd4c0

commit 1bee0078db9a9ed550787055e55b127a7e1dd4c0
Merge: 5abd277 20c0738
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:42:45 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5abd277ea3535482e461de6c77cb7819a707d85a

commit 5abd277ea3535482e461de6c77cb7819a707d85a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:36:37 2012 -0700

    Revert "Use 64-bit anonymouse union on x32 TCB pointer_guard"
    
    This reverts commit 85c301e45e6a0e6f556b4be886f8624ef912e37c.

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 13e236a..7113b96 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,8 +1,3 @@
-2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h (tcbhead_t): Use anonymouse union on
-	pointer_guard.  Reordor fields for x32.
-
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index 58cf75b..f838916 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -52,30 +52,17 @@ typedef struct
   int gscope_flag;
   uintptr_t sysinfo;
   uintptr_t stack_guard;
-# ifdef __ILP32__
-  int rtld_must_xmm_save;
-  union
-    {
-      /* Needed for 64-bit PTR_MANGLE/PTR_DEMANGLE.  */
-      uintptr_t pointer_guard;
-      uint64_t __pointer_guard_word;
-    };
-  unsigned long int vgetcpu_cache[2];
-  /* Reservation of some values for the TM ABI.  */
-  void *__private_tm[5];
-# else
   uintptr_t pointer_guard;
   unsigned long int vgetcpu_cache[2];
-#  ifndef __ASSUME_PRIVATE_FUTEX
+# ifndef __ASSUME_PRIVATE_FUTEX
   int private_futex;
-#  else
+# else
   int __unused1;
-#  endif
+# endif
   int rtld_must_xmm_save;
   /* Reservation of some values for the TM ABI.  */
   void *__private_tm[5];
   long int __unused2;
-# endif
   /* Have space for the post-AVX register size.  */
   __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=de8876544166556556bc019ae8d995a64f64e4d0

commit de8876544166556556bc019ae8d995a64f64e4d0
Merge: 7e03c15 d8d1017
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:35:21 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7e03c15eff0f2d5f1eee1944616d9b12f5a3034a

commit 7e03c15eff0f2d5f1eee1944616d9b12f5a3034a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:25:31 2012 -0700

    Update x32 libc.abilist

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 809dc43..9ef8d03 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,7 @@
+2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist: Updated.
+
 2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
index 6f751c7..13b1d91 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
@@ -207,6 +207,7 @@ GLIBC_2.16
  __fxstat64 F
  __fxstatat F
  __fxstatat64 F
+ __getauxval F
  __getcwd_chk F
  __getdelim F
  __getdomainname_chk F
@@ -896,6 +897,7 @@ GLIBC_2.16
  getaliasbyname_r F
  getaliasent F
  getaliasent_r F
+ getauxval F
  getc F
  getc_unlocked F
  getchar F

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7831bd8ea9ac950b0cd89b917031f19f3de9050e

commit 7831bd8ea9ac950b0cd89b917031f19f3de9050e
Merge: 9da3739 6627421
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 13:01:19 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	sysdeps/x86_64/bits/wordsize.h


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9da37390e0c97c379fe36a687bc2c079293109fa

commit 9da37390e0c97c379fe36a687bc2c079293109fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 11:23:49 2012 -0700

    Revert "Define MALLOC_ALIGNMENT as 16 for x32."
    
    This reverts commit ca765c75a62e0d9b76d6cd0658829a74642cc02e.

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 140cb03..809dc43 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1255,10 +1255,6 @@
 
 2011-11-21  H.J. Lu  <hongjiu.lu@intel.com>
 
-	* sysdeps/x86_64/x32/Makefile: New.
-
-2011-11-21  H.J. Lu  <hongjiu.lu@intel.com>
-
 	* sysdeps/x86_64/x32/divdi3.c: New.
 	* sysdeps/x86_64/x32/ffs.c: Likewise.
 	* sysdeps/x86_64/x32/gmp-mparam.h: Likewise.
diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile
deleted file mode 100644
index 5b3ac54..0000000
--- a/sysdeps/x86_64/x32/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-ifeq ($(subdir),malloc)
-CFLAGS-malloc.c += -DMALLOC_ALIGNMENT=16
-endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8770001998182ca9859a65a143f16eb57fff7c04

commit 8770001998182ca9859a65a143f16eb57fff7c04
Merge: 17d9035 478143f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 21 11:23:20 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=17d903509ac71060b3da12b51a62608cb853aa30

commit 17d903509ac71060b3da12b51a62608cb853aa30
Merge: 4e5b77d a6f1845
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 09:38:17 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4e5b77d12c06eed7106de9550ea0d59beb0e2f5b

commit 4e5b77d12c06eed7106de9550ea0d59beb0e2f5b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 09:29:47 2012 -0700

    Rename LOAD_ARG2_TYPE to LOAD_ARG4_TYPE in x32 posix_fadvise.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 77f7bf3..140cb03 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
+	(LOAD_ARG2_TYPE): Renamed to ...
+	(LOAD_ARG4_TYPE): This.
+
+2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c: Removed.
 	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c: Likewise.
 	* sysdeps/unix/sysv/linux/x86_64/x32/preadv.c: Likewise.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
index 6d2d835..c4783c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
@@ -1,8 +1,15 @@
 #include <sysdep.h>
 
-#undef LOAD_ARG2_TYPE
-#define LOAD_ARG2_TYPE long long int
+/* Since posix_fallocate is implemented by calling the fallocate
+   system call with: fallocate (fd, 0, offset, len), we redefine
+   arguments 3 (offset) and 4 (len) to be long long int to match:
+
+   int fallocate(int fd, int mode, off_t offset, off_t len);
+ */
+
 #undef LOAD_ARG3_TYPE
 #define LOAD_ARG3_TYPE long long int
+#undef LOAD_ARG4_TYPE
+#define LOAD_ARG4_TYPE long long int
 
 #include <sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a2d20bdb570e068cc5ec8e80f932c150c4a36ed0

commit a2d20bdb570e068cc5ec8e80f932c150c4a36ed0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 08:53:04 2012 -0700

    Move fallocate/posix_fadvise/preadv/pwritev to syscalls.list

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 730b1fd..77f7bf3 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,14 @@
 2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/preadv.c: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c: Likewise.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list: New file.
+
+2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c: Update
 	comments.
 	(__arch_prctl): Use uintptr_t and uint64_t.  Check overflow.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
deleted file mode 100644
index 0d7533a..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <sysdep.h>
-
-#undef LOAD_ARG3_TYPE
-#define LOAD_ARG3_TYPE long long int
-#undef LOAD_ARG4_TYPE
-#define LOAD_ARG4_TYPE long long int
-
-#include <sysdeps/unix/sysv/linux/wordsize-64/fallocate.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
deleted file mode 100644
index d9aa9f2..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <sysdep.h>
-
-#undef LOAD_ARG2_TYPE
-#define LOAD_ARG2_TYPE long long int
-#undef LOAD_ARG3_TYPE
-#define LOAD_ARG3_TYPE long long int
-
-#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c b/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
deleted file mode 100644
index bf82c74..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sysdep.h>
-
-#undef LOAD_ARG4_TYPE
-#define LOAD_ARG4_TYPE long long int
-
-#include <sysdeps/unix/sysv/linux/wordsize-64/preadv.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c b/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
deleted file mode 100644
index 4cfcb18..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sysdep.h>
-
-#undef LOAD_ARG4_TYPE
-#define LOAD_ARG4_TYPE long long int
-
-#include <sysdeps/unix/sysv/linux/wordsize-64/pwritev.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
new file mode 100644
index 0000000..7edb6fd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
@@ -0,0 +1,6 @@
+# File name	Caller	Syscall name	# args	Strong name	Weak names
+
+fallocate	-	fallocate	Ci:iiii	fallocate	fallocate64
+posix_fadvise	-	fadvise64	Vi:iiii	posix_fadvise	posix_fadvise64
+preadv		-	preadv		Ci:ipii	preadv		preadv64
+pwritev		-	pwritev		Ci:ipii	pwritev		pwritev64

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5649e443926423bf68178e0edef577bef4c62183

commit 5649e443926423bf68178e0edef577bef4c62183
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 07:47:36 2012 -0700

    Add comments to x32 arch_prctl.c/ptrace.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b9e7dd5..730b1fd 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,12 @@
 2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c: Update
+	comments.
+	(__arch_prctl): Use uintptr_t and uint64_t.  Check overflow.
+	* sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c: Add comments.
+
+2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/statvfs.h (_STATVFSBUF_F_UNUSED):
 	Check __SYSCALL_WORDSIZE instead of __WORDSIZE_NO_STATVFSBUF_F_UNUSED.
 	* sysdeps/x86_64/bits/wordsize.h (__WORDSIZE_NO_STATVFSBUF_F_UNUSED):
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index 8aa0ebf..44c100b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -21,27 +21,24 @@
 #include <sys/syscall.h>
 #include <sysdep.h>
 
-/* Since x32 arch_prctl stores 32bit base address of segment register %fs
-   and %gs as unsigned 64bit value via ARCH_GET_FS and ARCH_GET_GS, we
-   use a local unsigned 64bit variable to hold the base address and copy
+/* Since x32 arch_prctl stores 32-bit base address of segment register %fs
+   and %gs as unsigned 64-bit value via ARCH_GET_FS and ARCH_GET_GS, we
+   use a local unsigned 64-bit variable to hold the base address and copy
    it to ADDR after arch_prctl return.  */
 
 int
-__arch_prctl (int code, unsigned long *addr)
+__arch_prctl (int code, uintptr_t *addr)
 {
   int res;
-  unsigned long long base_addr;
-  unsigned long *addr_saved;
+  uint64_t addr64;
+  uintptr_t *addr_saved;
 
   switch (code)
     {
     case ARCH_GET_FS:
     case ARCH_GET_GS:
       addr_saved = addr;
-      addr = (unsigned long *) &base_addr;
-      break;
-
-    default:
+      addr = (uintptr_t *) &addr64;
       break;
     }
 
@@ -51,14 +48,17 @@ __arch_prctl (int code, unsigned long *addr)
       {
       case ARCH_GET_FS:
       case ARCH_GET_GS:
-	*addr_saved = (unsigned long) base_addr;
-	break;
-
-      default:
+	 /* Check for a large value that overflows.  */
+	if ((uintptr_t) addr64 != addr64)
+	  {
+	    __set_errno (EOVERFLOW);
+	    return -1;
+	  }
+	*addr_saved = (uintptr_t) addr64;
 	break;
       }
 
   return res;
 }
 
-weak_alias (__arch_prctl, arch_prctl);
+weak_alias (__arch_prctl, arch_prctl)
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c b/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
index 09bdac9..c026307 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c
@@ -24,16 +24,25 @@
 #include <sys/syscall.h>
 #include <sysdep.h>
 
+/* PTRACE_ARCH_PRCTL is specific to x86 kernel and is only used by GDB.  */
 #ifndef PTRACE_ARCH_PRCTL
-#define PTRACE_ARCH_PRCTL      30
+# define PTRACE_ARCH_PRCTL	30
 #endif
 
-/* Since x32 ptrace stores 32bit base address of segment register %fs
-   and %gs as unsigned 64bit value via ARCH_GET_FS and ARCH_GET_GS with
-   PTRACE_ARCH_PRCTL, we use a local unsigned 64bit variable to hold
-   the base address and copy it to ADDR after ptrace return.  */
+/* Since x32 ptrace stores 32-bit base address of segment register %fs
+   and %gs as unsigned 64-bit value via ARCH_GET_FS and ARCH_GET_GS with
+   PTRACE_ARCH_PRCTL, we use a local unsigned 64-bit variable to hold
+   the base address and copy it to ADDR after ptrace return.  
 
-long
+   We don't use
+
+   long int ptrace (enum __ptrace_request __request, ...);
+
+   since x32 passes all 4 parameters in registers, which is the same
+   as the non-stdarg call.  The generated code is much simpler.
+   */
+
+long int
 ptrace (enum __ptrace_request request, pid_t pid, void *addr, void *data)
 {
   long res, ret;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7fd7b584646e4e2660d1e1445605895eb425b7b0

commit 7fd7b584646e4e2660d1e1445605895eb425b7b0
Merge: 0ff290b f66f0ce
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 07:18:27 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0ff290bd4c11d9e123d8ea5351791428e33cbb2f

commit 0ff290bd4c11d9e123d8ea5351791428e33cbb2f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 07:17:51 2012 -0700

    Add __SYSCALL_WORDSIZE
    
    Replace __WORDSIZE_NO_STATVFSBUF_F_UNUSED with __SYSCALL_WORDSIZE.

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 2498947..b9e7dd5 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,11 @@
+2012-05-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/bits/statvfs.h (_STATVFSBUF_F_UNUSED):
+	Check __SYSCALL_WORDSIZE instead of __WORDSIZE_NO_STATVFSBUF_F_UNUSED.
+	* sysdeps/x86_64/bits/wordsize.h (__WORDSIZE_NO_STATVFSBUF_F_UNUSED):
+	Removed.
+	(__SYSCALL_WORDSIZE): New macro.
+
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/bits/resource.h (struct rusage): Add
diff --git a/sysdeps/unix/sysv/linux/bits/statvfs.h b/sysdeps/unix/sysv/linux/bits/statvfs.h
index 340b758..d835dff 100644
--- a/sysdeps/unix/sysv/linux/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -21,7 +21,8 @@
 
 #include <bits/types.h>  /* For __fsblkcnt_t and __fsfilcnt_t.  */
 
-#if __WORDSIZE == 32 && !defined __WORDSIZE_NO_STATVFSBUF_F_UNUSED
+#if (__WORDSIZE == 32 \
+     && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32))
 #define _STATVFSBUF_F_UNUSED
 #endif
 
diff --git a/sysdeps/x86_64/bits/wordsize.h b/sysdeps/x86_64/bits/wordsize.h
index 48dda22..e25af28 100644
--- a/sysdeps/x86_64/bits/wordsize.h
+++ b/sysdeps/x86_64/bits/wordsize.h
@@ -7,6 +7,7 @@
 #endif
 
 #ifdef __x86_64__
-# define __WORDSIZE_TIME64_COMPAT32		1
-# define __WORDSIZE_NO_STATVFSBUF_F_UNUSED	1
+# define __WORDSIZE_TIME64_COMPAT32	1
+/* Both x86-64 and x32 use the 64-bit system call interface.  */
+# define __SYSCALL_WORDSIZE		64
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=daa2981edb8c6dba20c5950d5778783be0aa0ab7

commit daa2981edb8c6dba20c5950d5778783be0aa0ab7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 19 06:11:25 2012 -0700

    Add comments to struct rusage

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 18aa7e4..2498947 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/resource.h (struct rusage): Add
+	some comments.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
 	(LOAD_ARG3_TYPE): Redefined to long long int.
 	(LOAD_ARG4_TYPE): Likewise.
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index 218c87e..62cb257 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -179,6 +179,11 @@ enum __rusage_who
 #include <bits/time.h>		/* For `struct timeval'.  */
 
 /* Structure which says how much of each resource has been used.  */
+
+/* The purpose of all the unions is to have the kernel-compatible layout
+   while keeping the API type as 'long int', and among machines where
+   __syscall_slong_t is not 'long int', this only does the right thing
+   for little-endian ones, like x32.  */
 struct rusage
   {
     /* Total amount of user time used.  */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e4bcecfab14ac78361c6b098d83fb269bf08c198

commit e4bcecfab14ac78361c6b098d83fb269bf08c198
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 13:34:26 2012 -0700

    Use 64-bit fallocate.c/posix_fadvise.c/posix_fallocate.c  for x32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index cc02f75..18aa7e4 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,20 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
+	(LOAD_ARG3_TYPE): Redefined to long long int.
+	(LOAD_ARG4_TYPE): Likewise.
+	Include sysdeps/unix/sysv/linux/wordsize-64/fallocate.c.
+	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c 
+	(LOAD_ARG2_TYPE): Redefined to long long int.
+	(LOAD_ARG3_TYPE): Likewise.
+	Include sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c.
+	* sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
+	(LOAD_ARG2_TYPE): Redefined to long long int.
+	(LOAD_ARG3_TYPE): Likewise.
+	Include sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/preadv.c (LOAD_ARG4_TYPE):
 	Redefined to long long int.
 	Include sysdeps/unix/sysv/linux/wordsize-64/preadv.c.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
index 0f9113a..0d7533a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
@@ -1,56 +1,8 @@
-/* fallocate with 64-bit offset and length.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
 #include <sysdep.h>
-#include <sysdep-cancel.h>
-
-#undef LOAD_ARGS_3
-#define LOAD_ARGS_3(a1, a2, a3)				\
-  long long int __arg3 = (long long int) (a3);		\
-  LOAD_ARGS_2 (a1, a2)
-#undef LOAD_REGS_3
-#define LOAD_REGS_3					\
-  register long long int _a3 asm ("rdx") = __arg3;	\
-  LOAD_REGS_2
-
-#undef LOAD_ARGS_4
-#define LOAD_ARGS_4(a1, a2, a3, a4)			\
-  long long int __arg4 = (long long int) (a4);		\
-  LOAD_ARGS_3 (a1, a2, a3)
-#undef LOAD_REGS_4
-#define LOAD_REGS_4					\
-  register long long int _a4 asm ("r10") = __arg4;	\
-  LOAD_REGS_3
-
-/* Reserve storage for the data of the file associated with FD.  */
-int
-fallocate (int fd, int mode, __off_t offset, __off_t len)
-{
-  if (SINGLE_THREAD_P)
-    return INLINE_SYSCALL (fallocate, 4, fd, mode, offset, len);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-  int result = INLINE_SYSCALL (fallocate, 4, fd, mode, offset, len);
 
-  LIBC_CANCEL_RESET (oldtype);
+#undef LOAD_ARG3_TYPE
+#define LOAD_ARG3_TYPE long long int
+#undef LOAD_ARG4_TYPE
+#define LOAD_ARG4_TYPE long long int
 
-  return result;
-}
-strong_alias (fallocate, fallocate64)
+#include <sysdeps/unix/sysv/linux/wordsize-64/fallocate.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
index eb6681b..d9aa9f2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
@@ -1,53 +1,8 @@
-/* posix_fadvise with 64-bit offset and length.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
 #include <sysdep.h>
 
-#undef LOAD_ARGS_2
-#define LOAD_ARGS_2(a1, a2)				\
-  long long int __arg2 = (long long int) (a2);		\
-  LOAD_ARGS_1 (a1)
-#undef LOAD_REGS_2
-#define LOAD_REGS_2					\
-  register long long int _a2 asm ("rsi") = __arg2;	\
-  LOAD_REGS_1
-
-#undef LOAD_ARGS_3
-#define LOAD_ARGS_3(a1, a2, a3)				\
-  long long int __arg3 = (long long int) (a3);		\
-  LOAD_ARGS_2 (a1, a2)
-#undef LOAD_REGS_3
-#define LOAD_REGS_3					\
-  register long long int _a3 asm ("rdx") = __arg3;	\
-  LOAD_REGS_2
-
-/* Advice the system about the expected behaviour of the application with
-   respect to the file associated with FD.  */
+#undef LOAD_ARG2_TYPE
+#define LOAD_ARG2_TYPE long long int
+#undef LOAD_ARG3_TYPE
+#define LOAD_ARG3_TYPE long long int
 
-int
-posix_fadvise (int fd, off_t offset, off_t len, int advise)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  int ret = INTERNAL_SYSCALL (fadvise64, err, 4, fd, offset, len, advise);
-  if (INTERNAL_SYSCALL_ERROR_P (ret, err))
-    return INTERNAL_SYSCALL_ERRNO (ret, err);
-  return 0;
-}
-strong_alias (posix_fadvise, posix_fadvise64)
+#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
index ed9be3f..6d2d835 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
@@ -1,59 +1,8 @@
-/* posix_fallocate with 64-bit offset and length.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <fcntl.h>
 #include <sysdep.h>
 
-#define posix_fallocate static internal_fallocate
-#include <sysdeps/posix/posix_fallocate.c>
-#undef posix_fallocate
-
-#undef LOAD_ARGS_2
-#define LOAD_ARGS_2(a1, a2)				\
-  long long int __arg2 = (long long int) (a2);		\
-  LOAD_ARGS_1 (a1)
-#undef LOAD_REGS_2
-#define LOAD_REGS_2					\
-  register long long int _a2 asm ("rsi") = __arg2;	\
-  LOAD_REGS_1
-
-#undef LOAD_ARGS_3
-#define LOAD_ARGS_3(a1, a2, a3)				\
-  long long int __arg3 = (long long int) (a3);		\
-  LOAD_ARGS_2 (a1, a2)
-#undef LOAD_REGS_3
-#define LOAD_REGS_3					\
-  register long long int _a3 asm ("rdx") = __arg3;	\
-  LOAD_REGS_2
-
-/* Reserve storage for the data of the file associated with FD.  */
-int
-posix_fallocate (int fd, __off_t offset, __off_t len)
-{
-  INTERNAL_SYSCALL_DECL (err);
-  int res = INTERNAL_SYSCALL (fallocate, err, 4, fd, 0, offset, len);
-
-  if (! INTERNAL_SYSCALL_ERROR_P (res, err))
-    return 0;
-
-  if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
-    return INTERNAL_SYSCALL_ERRNO (res, err);
+#undef LOAD_ARG2_TYPE
+#define LOAD_ARG2_TYPE long long int
+#undef LOAD_ARG3_TYPE
+#define LOAD_ARG3_TYPE long long int
 
-  return internal_fallocate (fd, offset, len);
-}
-strong_alias (posix_fallocate, posix_fallocate64)
+#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=829580d6c2042d95a14899a22c000b4ecf29bedd

commit 829580d6c2042d95a14899a22c000b4ecf29bedd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 13:14:48 2012 -0700

    Use 64-bit preadv.c and pwritev.c for x32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 53a3987..cc02f75 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,14 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/preadv.c (LOAD_ARG4_TYPE):
+	Redefined to long long int.
+	Include sysdeps/unix/sysv/linux/wordsize-64/preadv.c.
+	* sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c (LOAD_ARG4_TYPE):
+	Redefined to long long int.
+	Include sysdeps/unix/sysv/linux/wordsize-64/pwritev.c.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/wordsize-64/preadv.c: New file.
 	* sysdeps/unix/sysv/linux/wordsize-64/pwritev.c: Likewise.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c b/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
index a2b9f3d..bf82c74 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
@@ -1,49 +1,6 @@
-/* preadv with 64-bit offset.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
 #include <sysdep.h>
-#define preadv64 __redirect_preadv64
-#include <sys/uio.h>
-#include <sysdep-cancel.h>
 
-#undef LOAD_ARGS_4
-#define LOAD_ARGS_4(a1, a2, a3, a4)			\
-  long long int __arg4 = (long long int) (a4);		\
-  LOAD_ARGS_3 (a1, a2, a3)
-#undef LOAD_REGS_4
-#define LOAD_REGS_4					\
-  register long long int _a4 asm ("r10") = __arg4;	\
-  LOAD_REGS_3
+#undef LOAD_ARG4_TYPE
+#define LOAD_ARG4_TYPE long long int
 
-ssize_t
-preadv (int fd, const struct iovec *vector, int count, off_t offset)
-{
-  ssize_t result;
-  if (SINGLE_THREAD_P)
-    result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
-  else
-    {
-      int oldtype = LIBC_CANCEL_ASYNC ();
-      result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
-      LIBC_CANCEL_RESET (oldtype);
-    }
-  return result;
-}
-#undef preadv64
-strong_alias (preadv, preadv64)
+#include <sysdeps/unix/sysv/linux/wordsize-64/preadv.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c b/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
index 0041aaf..4cfcb18 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
@@ -1,50 +1,6 @@
-/* pwritev with 64-bit offset.  Linux/x32 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
 #include <sysdep.h>
-/* Hide the pwritev64 declaration.  */
-#define pwritev64 __redirect_pwritev64
-#include <sys/uio.h>
-#include <sysdep-cancel.h>
 
-#undef LOAD_ARGS_4
-#define LOAD_ARGS_4(a1, a2, a3, a4)			\
-  long long int __arg4 = (long long int) (a4);		\
-  LOAD_ARGS_3 (a1, a2, a3)
-#undef LOAD_REGS_4
-#define LOAD_REGS_4					\
-  register long long int _a4 asm ("r10") = __arg4;	\
-  LOAD_REGS_3
+#undef LOAD_ARG4_TYPE
+#define LOAD_ARG4_TYPE long long int
 
-ssize_t
-pwritev (int fd, const struct iovec *vector, int count, off_t offset)
-{
-  ssize_t result;
-  if (SINGLE_THREAD_P)
-    result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
-  else
-    {
-      int oldtype = LIBC_CANCEL_ASYNC ();
-      result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
-      LIBC_CANCEL_RESET (oldtype);
-    }
-  return result;
-}
-#undef pwritev64
-strong_alias (pwritev, pwritev64)
+#include <sysdeps/unix/sysv/linux/wordsize-64/pwritev.c>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e1814afa2118d114fa770743fa75e838385e6577

commit e1814afa2118d114fa770743fa75e838385e6577
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 12:59:38 2012 -0700

    Add 64-bit preadv.c and pwritev.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 2431b0e..53a3987 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/wordsize-64/preadv.c: New file.
+	* sysdeps/unix/sysv/linux/wordsize-64/pwritev.c: Likewise.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (LOAD_ARG1_TYPE): New
 	macro.
 	(LOAD_ARG2_TYPE): Likewise.
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/preadv.c b/sysdeps/unix/sysv/linux/wordsize-64/preadv.c
new file mode 100644
index 0000000..e36ca86
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/preadv.c
@@ -0,0 +1,73 @@
+/* 64-bit preadv.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/param.h>
+/* Hide the preadv64 declaration.  */
+#define preadv64 __redirect_preadv64
+#include <sys/uio.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <kernel-features.h>
+
+#ifndef __ASSUME_PREADV
+static ssize_t __atomic_preadv_replacement (int, const struct iovec *,
+					    int, off_t) internal_function;
+#endif
+
+ssize_t
+preadv (int fd, const struct iovec *vector, int count, off_t offset)
+{
+#ifdef __NR_preadv
+  ssize_t result;
+
+  if (SINGLE_THREAD_P)
+    result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
+  else
+    {
+      int oldtype = LIBC_CANCEL_ASYNC ();
+
+      result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
+
+      LIBC_CANCEL_RESET (oldtype);
+    }
+# ifdef __ASSUME_PREADV
+  return result;
+# endif
+#endif
+
+#ifndef __ASSUME_PREADV
+# ifdef __NR_preadv
+  if (result >= 0 || errno != ENOSYS)
+    return result;
+# endif
+
+  return __atomic_preadv_replacement (fd, vector, count, offset);
+#endif
+}
+#undef preadv64
+strong_alias (preadv, preadv64)
+
+#ifndef __ASSUME_PREADV
+# define PREADV static internal_function __atomic_preadv_replacement
+# define PREAD __pread
+# define OFF_T off_t
+# include <sysdeps/posix/preadv.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c b/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c
new file mode 100644
index 0000000..05644dd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c
@@ -0,0 +1,73 @@
+/* 64-bit pwritev.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/param.h>
+/* Hide the pwritev64 declaration.  */
+#define pwritev64 __redirect_pwritev64
+#include <sys/uio.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <kernel-features.h>
+
+#ifndef __ASSUME_PWRITEV
+static ssize_t __atomic_pwritev_replacement (int, const struct iovec *,
+					     int, off_t) internal_function;
+#endif
+
+ssize_t
+pwritev (int fd, const struct iovec *vector, int count, off_t offset)
+{
+#ifdef __NR_pwritev
+  ssize_t result;
+
+  if (SINGLE_THREAD_P)
+    result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
+  else
+    {
+      int oldtype = LIBC_CANCEL_ASYNC ();
+
+      result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
+
+      LIBC_CANCEL_RESET (oldtype);
+    }
+# ifdef __ASSUME_PWRITEV
+  return result;
+# endif
+#endif
+
+#ifndef __ASSUME_PWRITEV
+# ifdef __NR_pwritev
+  if (result >= 0 || errno != ENOSYS)
+    return result;
+# endif
+
+  return __atomic_pwritev_replacement (fd, vector, count, offset);
+#endif
+}
+#undef pwritev64
+strong_alias (pwritev, pwritev64)
+
+#ifndef __ASSUME_PWRITEV
+# define PWRITE __pwrite
+# define PWRITEV static internal_function __atomic_pwritev_replacement
+# define OFF_T off_t
+# include <sysdeps/posix/pwritev.c>
+#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0726d95f36b9455ee760e21ba2a3ae8d7a907ee4

commit 0726d95f36b9455ee760e21ba2a3ae8d7a907ee4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 11:45:16 2012 -0700

    Add LOAD_ARG[1-6]_TYPE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 633915f..2431b0e 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,27 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (LOAD_ARG1_TYPE): New
+	macro.
+	(LOAD_ARG2_TYPE): Likewise.
+	(LOAD_ARG3_TYPE): Likewise.
+	(LOAD_ARG4_TYPE): Likewise.
+	(LOAD_ARG5_TYPE): Likewise.
+	(LOAD_ARG6_TYPE): Likewise.
+	(LOAD_ARGS_1): Use LOAD_ARG1_TYPE.
+	(LOAD_REGS_1): Likewise.
+	(LOAD_ARGS_2): Use LOAD_ARG2_TYPE.
+	(LOAD_REGS_2): Likewise.
+	(LOAD_ARGS_3): Use LOAD_ARG3_TYPE.
+	(LOAD_REGS_3): Likewise.
+	(LOAD_ARGS_4): Use LOAD_ARG4_TYPE.
+	(LOAD_REGS_4): Likewise.
+	(LOAD_ARGS_5): Use LOAD_ARG5_TYPE.
+	(LOAD_REGS_5): Likewise.
+	(LOAD_ARGS_6): Use LOAD_ARG6_TYPE.
+	(LOAD_REGS_6): Likewise.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/statvfs.h (_STATVFSBUF_F_UNUSED):
 	Don't define if __WORDSIZE_NO_STATVFSBUF_F_UNUSED is defined.
 	* sysdeps/x86_64/bits/wordsize.h (__WORDSIZE_NO_STATVFSBUF_F_UNUSED):
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index dcb9218..5cecc57 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -287,52 +287,58 @@
 # define LOAD_ARGS_0()
 # define LOAD_REGS_0
 # define ASM_ARGS_0
+# define LOAD_ARG1_TYPE	long int
+# define LOAD_ARG2_TYPE	long int
+# define LOAD_ARG3_TYPE	long int
+# define LOAD_ARG4_TYPE	long int
+# define LOAD_ARG5_TYPE	long int
+# define LOAD_ARG6_TYPE	long int
 
 # define LOAD_ARGS_1(a1)				\
-  long int __arg1 = (long int) (a1);			\
+  LOAD_ARG1_TYPE __arg1 = (LOAD_ARG1_TYPE) (a1);	\
   LOAD_ARGS_0 ()
 # define LOAD_REGS_1					\
-  register long int _a1 asm ("rdi") = __arg1;		\
+  register LOAD_ARG1_TYPE _a1 asm ("rdi") = __arg1;	\
   LOAD_REGS_0
 # define ASM_ARGS_1	ASM_ARGS_0, "r" (_a1)
 
 # define LOAD_ARGS_2(a1, a2)				\
-  long int __arg2 = (long int) (a2);			\
+  LOAD_ARG2_TYPE __arg2 = (LOAD_ARG2_TYPE) (a2);	\
   LOAD_ARGS_1 (a1)
 # define LOAD_REGS_2					\
-  register long int _a2 asm ("rsi") = __arg2;		\
+  register LOAD_ARG2_TYPE _a2 asm ("rsi") = __arg2;	\
   LOAD_REGS_1
 # define ASM_ARGS_2	ASM_ARGS_1, "r" (_a2)
 
 # define LOAD_ARGS_3(a1, a2, a3)			\
-  long int __arg3 = (long int) (a3);			\
+  LOAD_ARG3_TYPE __arg3 = (LOAD_ARG3_TYPE) (a3);	\
   LOAD_ARGS_2 (a1, a2)
 # define LOAD_REGS_3					\
-  register long int _a3 asm ("rdx") = __arg3;		\
+  register LOAD_ARG3_TYPE _a3 asm ("rdx") = __arg3;	\
   LOAD_REGS_2
 # define ASM_ARGS_3	ASM_ARGS_2, "r" (_a3)
 
 # define LOAD_ARGS_4(a1, a2, a3, a4)			\
-  long int __arg4 = (long int) (a4);			\
+  LOAD_ARG4_TYPE __arg4 = (LOAD_ARG4_TYPE) (a4);	\
   LOAD_ARGS_3 (a1, a2, a3)
 # define LOAD_REGS_4					\
-  register long int _a4 asm ("r10") = __arg4;		\
+  register LOAD_ARG4_TYPE _a4 asm ("r10") = __arg4;	\
   LOAD_REGS_3
 # define ASM_ARGS_4	ASM_ARGS_3, "r" (_a4)
 
 # define LOAD_ARGS_5(a1, a2, a3, a4, a5)		\
-  long int __arg5 = (long int) (a5);			\
+  LOAD_ARG5_TYPE __arg5 = (LOAD_ARG5_TYPE) (a5);	\
   LOAD_ARGS_4 (a1, a2, a3, a4)
 # define LOAD_REGS_5					\
-  register long int _a5 asm ("r8") = __arg5;		\
+  register LOAD_ARG5_TYPE _a5 asm ("r8") = __arg5;	\
   LOAD_REGS_4
 # define ASM_ARGS_5	ASM_ARGS_4, "r" (_a5)
 
 # define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6)		\
-  long int __arg6 = (long int) (a6);			\
+  LOAD_ARG6_TYPE __arg6 = (LOAD_ARG6_TYPE) (a6);	\
   LOAD_ARGS_5 (a1, a2, a3, a4, a5)
 # define LOAD_REGS_6					\
-  register long int _a6 asm ("r9") = __arg6;		\
+  register LOAD_ARG6_TYPE _a6 asm ("r9") = __arg6;	\
   LOAD_REGS_5
 # define ASM_ARGS_6	ASM_ARGS_5, "r" (_a6)
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1cdbeb3f5816da1a9937234573010f02068e589c

commit 1cdbeb3f5816da1a9937234573010f02068e589c
Merge: 5de1769 a88b64b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 09:35:59 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5de1769e902417743d74102718d38fd4d1c9fc31

commit 5de1769e902417743d74102718d38fd4d1c9fc31
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 07:09:48 2012 -0700

    Fold copyright years

diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index f8df78c..ac4979e 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1993, 1995-2004, 2006, 2007, 2010
-   Free Software Foundation, Inc.
+/* Copyright (C) 19932-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3daa062f6b8642e8571c141db44c2192d4ebef4f

commit 3daa062f6b8642e8571c141db44c2192d4ebef4f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 06:26:09 2012 -0700

    Add a descriptive comment

diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
index b1768da..0f9113a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* fallocate with 64-bit offset and length.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
index 9e1094c..994567f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* The gettimeofday system call.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
index 6e69f17..eb6681b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* posix_fadvise with 64-bit offset and length.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
index de57ce2..ed9be3f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/posix_fallocate.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* posix_fallocate with 64-bit offset and length.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c b/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
index 4e250e3..a2b9f3d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* preadv with 64-bit offset.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c b/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
index 3f5feb2..0041aaf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* pwritev with 64-bit offset.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/time.c b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
index fac19bf..059cecd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/time.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* The time system call.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=48e0fa184b9c519a8ce87974327a1c63ca26683b

commit 48e0fa184b9c519a8ce87974327a1c63ca26683b
Merge: 28a2910 94b07d2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 06:05:45 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=28a29101a4b4aa3bc5db0dd0ab495b39f13b8bd3

commit 28a29101a4b4aa3bc5db0dd0ab495b39f13b8bd3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 05:32:58 2012 -0700

    Check __WORDSIZE_NO_STATVFSBUF_F_UNUSED in bits/statvfs.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 1e36c83..633915f 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,14 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/statvfs.h (_STATVFSBUF_F_UNUSED):
+	Don't define if __WORDSIZE_NO_STATVFSBUF_F_UNUSED is defined.
+	* sysdeps/x86_64/bits/wordsize.h (__WORDSIZE_NO_STATVFSBUF_F_UNUSED):
+	New macro.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h: Removed.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* include/libc-symbols.h (libc_ifunc_vdso1): New macro.
 	(libc_ifunc_vdso): Likewise.
 	(libc_ifunc_vdso_hidden): Likewise.
diff --git a/sysdeps/unix/sysv/linux/bits/statvfs.h b/sysdeps/unix/sysv/linux/bits/statvfs.h
index 4b3fc57..340b758 100644
--- a/sysdeps/unix/sysv/linux/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2001,2002,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
 
 #include <bits/types.h>  /* For __fsblkcnt_t and __fsfilcnt_t.  */
 
-#if __WORDSIZE == 32
+#if __WORDSIZE == 32 && !defined __WORDSIZE_NO_STATVFSBUF_F_UNUSED
 #define _STATVFSBUF_F_UNUSED
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h b/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
deleted file mode 100644
index 21b1bdd..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_STATVFS_H
-# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
-#endif
-
-#include <bits/types.h>  /* For __fsblkcnt_t and __fsfilcnt_t.  */
-
-#ifndef __x86_64__
-#define _STATVFSBUF_F_UNUSED
-#endif
-
-struct statvfs
-  {
-    unsigned long int f_bsize;
-    unsigned long int f_frsize;
-#ifndef __USE_FILE_OFFSET64
-    __fsblkcnt_t f_blocks;
-    __fsblkcnt_t f_bfree;
-    __fsblkcnt_t f_bavail;
-    __fsfilcnt_t f_files;
-    __fsfilcnt_t f_ffree;
-    __fsfilcnt_t f_favail;
-#else
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-    __fsfilcnt64_t f_favail;
-#endif
-    unsigned long int f_fsid;
-#ifdef _STATVFSBUF_F_UNUSED
-    int __f_unused;
-#endif
-    unsigned long int f_flag;
-    unsigned long int f_namemax;
-    int __f_spare[6];
-  };
-
-#ifdef __USE_LARGEFILE64
-struct statvfs64
-  {
-    unsigned long int f_bsize;
-    unsigned long int f_frsize;
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-    __fsfilcnt64_t f_favail;
-    unsigned long int f_fsid;
-#ifdef _STATVFSBUF_F_UNUSED
-    int __f_unused;
-#endif
-    unsigned long int f_flag;
-    unsigned long int f_namemax;
-    int __f_spare[6];
-  };
-#endif
-
-/* Definitions for the flag in `f_flag'.  These definitions should be
-   kept in sync with the definitions in <sys/mount.h>.  */
-enum
-{
-  ST_RDONLY = 1,		/* Mount read-only.  */
-#define ST_RDONLY	ST_RDONLY
-  ST_NOSUID = 2			/* Ignore suid and sgid bits.  */
-#define ST_NOSUID	ST_NOSUID
-#ifdef __USE_GNU
-  ,
-  ST_NODEV = 4,			/* Disallow access to device special files.  */
-# define ST_NODEV	ST_NODEV
-  ST_NOEXEC = 8,		/* Disallow program execution.  */
-# define ST_NOEXEC	ST_NOEXEC
-  ST_SYNCHRONOUS = 16,		/* Writes are synced at once.  */
-# define ST_SYNCHRONOUS	ST_SYNCHRONOUS
-  ST_MANDLOCK = 64,		/* Allow mandatory locks on an FS.  */
-# define ST_MANDLOCK	ST_MANDLOCK
-  ST_WRITE = 128,		/* Write on file/directory/symlink.  */
-# define ST_WRITE	ST_WRITE
-  ST_APPEND = 256,		/* Append-only file.  */
-# define ST_APPEND	ST_APPEND
-  ST_IMMUTABLE = 512,		/* Immutable file.  */
-# define ST_IMMUTABLE	ST_IMMUTABLE
-  ST_NOATIME = 1024,		/* Do not update access times.  */
-# define ST_NOATIME	ST_NOATIME
-  ST_NODIRATIME = 2048,		/* Do not update directory access times.  */
-# define ST_NODIRATIME	ST_NODIRATIME
-  ST_RELATIME = 4096		/* Update atime relative to mtime/ctime.  */
-# define ST_RELATIME	ST_RELATIME
-#endif	/* Use GNU.  */
-};
diff --git a/sysdeps/x86_64/bits/wordsize.h b/sysdeps/x86_64/bits/wordsize.h
index c0ca075..48dda22 100644
--- a/sysdeps/x86_64/bits/wordsize.h
+++ b/sysdeps/x86_64/bits/wordsize.h
@@ -8,4 +8,5 @@
 
 #ifdef __x86_64__
 # define __WORDSIZE_TIME64_COMPAT32		1
+# define __WORDSIZE_NO_STATVFSBUF_F_UNUSED	1
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0b7dd3ad50202357abccadfe138d823a56e90866

commit 0b7dd3ad50202357abccadfe138d823a56e90866
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 05:13:55 2012 -0700

    Use macros to define x32 vDSO IFUNC

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 059552c..1e36c83 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,15 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* include/libc-symbols.h (libc_ifunc_vdso1): New macro.
+	(libc_ifunc_vdso): Likewise.
+	(libc_ifunc_vdso_hidden): Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c: Use
+	libc_ifunc_vdso.
+	* sysdeps/unix/sysv/linux/x86_64/x32/time.c: Use
+	libc_ifunc_vdso_hidden.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/timex.h (timex): Move comments
 	to the end of line.
 
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 12b3639..1d08ab5 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -772,6 +772,23 @@ for linking")
   }									\
   __asm__ (".type " #name ", %gnu_indirect_function");
 
+#define libc_ifunc_vdso1(name, vdsoname)				\
+  extern void *name##_ifunc (void) __asm__ (#name);			\
+  void *name##_ifunc (void)						\
+  {									\
+    PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);			\
+    return _dl_vdso_vsym (#vdsoname, &linux26);				\
+  }									\
+  __asm__ (".type " #name ", %gnu_indirect_function");
+
+/* Macro used for indirection function symbols with vDSO.  */
+#define libc_ifunc_vdso(name, vdsoname)					\
+  libc_ifunc_vdso1 (name, vdsoname)
+
+/* Macro used for hidden indirection function symbols with vDSO.  */
+#define libc_ifunc_vdso_hidden(name, vdsoname)				\
+  libc_ifunc_vdso1 (__GI_##name, vdsoname)
+
 /* The body of the function is supposed to use __get_cpu_features
    which will, if necessary, initialize the data first.  */
 #define libm_ifunc(name, expr)						\
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
index 4e94d53..9e1094c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c
@@ -17,17 +17,7 @@
 
 #ifdef SHARED
 # include <dl-vdso.h>
-
-void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday");
-
-void *
-gettimeofday_ifunc (void)
-{
-  PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
-
-  return _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
-}
-__asm (".type __gettimeofday, %gnu_indirect_function");
+libc_ifunc_vdso (__gettimeofday, __vdso_gettimeofday)
 #else
 # include <errno.h>
 # include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/time.c b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
index aba1aca..fac19bf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/time.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
@@ -48,17 +48,7 @@
 
 #ifdef SHARED
 # include <dl-vdso.h>
-
-void *time_ifunc (void) __asm__ ("__GI_time");
-
-void *
-time_ifunc (void)
-{
-  PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
-
-  return _dl_vdso_vsym ("__vdso_time", &linux26);
-}
-__asm (".type __GI_time, %gnu_indirect_function");
+libc_ifunc_vdso_hidden (time, __vdso_time)
 #else
 time_t
 time (time_t *t)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=77bece20790d1e1662aa86defdb0421e7df7e0ab

commit 77bece20790d1e1662aa86defdb0421e7df7e0ab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 04:02:29 2012 -0700

    Move comments to the end of line

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index fa879ef..059552c 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/timex.h (timex): Move comments
+	to the end of line.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/gnu/bits/utmp.h (lastlog): Check __WORDSIZE_TIME64_COMPAT32
 	instead of __WORDSIZE and __WORDSIZE_COMPAT32.
 	(utmp): Likewise.
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 0fe6660..0d733f0 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -24,47 +24,27 @@
 
 struct timex
 {
-  /* mode selector */
-  unsigned int modes;
-  /* time offset (usec) */
-  __syscall_slong_t offset;
-  /* frequency offset (scaled ppm) */
-  __syscall_slong_t freq;
-  /* maximum error (usec) */
-  __syscall_slong_t maxerror;
-  /* estimated error (usec) */
-  __syscall_slong_t esterror;
-  /* clock command/status */
-  int status;
-  /* pll time constant */
-  __syscall_slong_t constant;
-  /* clock precision (usec) (read only) */
-  __syscall_slong_t precision;
-  /* clock frequency tolerance (ppm) (read only) */
-  __syscall_slong_t tolerance;
-  /* (read only) */
-  struct timeval time;
-  /* (modified) usecs between clock ticks */
-  __syscall_slong_t tick;
-  /* pps frequency (scaled ppm) (ro) */
-  __syscall_slong_t ppsfreq;
-  /* pps jitter (us) (ro) */
-  __syscall_slong_t jitter;
-  /* interval duration (s) (shift) (ro) */
-  int shift;
-  /* pps stability (scaled ppm) (ro) */
-  __syscall_slong_t stabil;
-  /* jitter limit exceeded (ro) */
-  __syscall_slong_t jitcnt;
-  /* calibration intervals (ro) */
-  __syscall_slong_t calcnt;
-  /* calibration errors (ro) */
-  __syscall_slong_t errcnt;
-  /* stability limit exceeded (ro) */
-  __syscall_slong_t stbcnt;
-
-  /* TAI offset (ro) */
-  int tai;
+  unsigned int modes;		/* mode selector */
+  __syscall_slong_t offset;	/* time offset (usec) */
+  __syscall_slong_t freq;	/* frequency offset (scaled ppm) */
+  __syscall_slong_t maxerror;	/* maximum error (usec) */
+  __syscall_slong_t esterror;	/* estimated error (usec) */
+  int status;			/* clock command/status */
+  __syscall_slong_t constant;	/* pll time constant */
+  __syscall_slong_t precision;	/* clock precision (usec) (ro) */
+  __syscall_slong_t tolerance;	/* clock frequency tolerance (ppm) (ro) */
+  struct timeval time;		/* (read only) */
+  __syscall_slong_t tick;	/* (modified) usecs between clock ticks */
+  __syscall_slong_t ppsfreq;	/* pps frequency (scaled ppm) (ro) */
+  __syscall_slong_t jitter;	/* pps jitter (us) (ro) */
+  int shift;			/* interval duration (s) (shift) (ro) */
+  __syscall_slong_t stabil;	/* pps stability (scaled ppm) (ro) */
+  __syscall_slong_t jitcnt;	/* jitter limit exceeded (ro) */
+  __syscall_slong_t calcnt;	/* calibration intervals (ro) */
+  __syscall_slong_t errcnt;	/* calibration errors (ro) */
+  __syscall_slong_t stbcnt;	/* stability limit exceeded (ro) */
+
+  int tai;			/* TAI offset (ro) */
 
   /* ??? */
   int  :32; int  :32; int  :32; int  :32;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9e64dff89021b8dd2f21321bb6232393cf898f58

commit 9e64dff89021b8dd2f21321bb6232393cf898f58
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 03:55:01 2012 -0700

    Replace __WORDSIZE_COMPAT32 with __WORDSIZE_TIME64_COMPAT32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 8caabac..fa879ef 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,24 @@
 2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/gnu/bits/utmp.h (lastlog): Check __WORDSIZE_TIME64_COMPAT32
+	instead of __WORDSIZE and __WORDSIZE_COMPAT32.
+	(utmp): Likewise.
+	* sysdeps/gnu/bits/utmpx.h (utmpx): Likewise.
+	* sysdeps/powerpc/powerpc32/bits/wordsize.h (__WORDSIZE_COMPAT32):
+	Renamed to ...
+	(__WORDSIZE_TIME64_COMPAT32): This.
+	* sysdeps/powerpc/powerpc64/bits/wordsize.h: Likewise.
+	* sysdeps/sparc/sparc32/bits/wordsize.h: Likewise.
+	* sysdeps/sparc/sparc64/bits/wordsize.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h: Likewise.
+	* sysdeps/x86_64/bits/wordsize.h (__WORDSIZE_COMPAT32): Removed.
+	(__WORDSIZE_TIME64_COMPAT32): New macro.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/utmp.h: Removed.
+	* sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h: Likewise.
+
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Also check
 	alignments of d_ino and d_off.
 
diff --git a/sysdeps/gnu/bits/utmp.h b/sysdeps/gnu/bits/utmp.h
index c13380a..aed2750 100644
--- a/sysdeps/gnu/bits/utmp.h
+++ b/sysdeps/gnu/bits/utmp.h
@@ -1,6 +1,5 @@
 /* The `struct utmp' type, describing entries in the utmp file.  GNU version.
-   Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002
-   Free Software Foundation, Inc.
+   Copyright (C) 1993-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -36,7 +35,7 @@
    previous logins.  */
 struct lastlog
   {
-#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+#ifdef __WORDSIZE_TIME64_COMPAT32
     int32_t ll_time;
 #else
     __time_t ll_time;
@@ -69,7 +68,7 @@ struct utmp
 /* The ut_session and ut_tv fields must be the same size when compiled
    32- and 64-bit.  This allows data files and shared memory to be
    shared between 32- and 64-bit applications.  */
-#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+#ifdef __WORDSIZE_TIME64_COMPAT32
   int32_t ut_session;		/* Session ID, used for windowing.  */
   struct
   {
diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h
index 87626f0..f8716ca 100644
--- a/sysdeps/gnu/bits/utmpx.h
+++ b/sysdeps/gnu/bits/utmpx.h
@@ -1,5 +1,5 @@
 /* Structures and definitions for the user accounting database.  GNU version.
-   Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -66,7 +66,7 @@ struct utmpx
 /* The fields ut_session and ut_tv must be the same size when compiled
    32- and 64-bit.  This allows files and shared memory to be shared
    between 32- and 64-bit applications.  */
-#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+#ifdef __WORDSIZE_TIME64_COMPAT32
   __int32_t ut_session;		/* Session ID, used for windowing.  */
   struct
   {
diff --git a/sysdeps/powerpc/powerpc32/bits/wordsize.h b/sysdeps/powerpc/powerpc32/bits/wordsize.h
index 1a79c86..f31ac9a 100644
--- a/sysdeps/powerpc/powerpc32/bits/wordsize.h
+++ b/sysdeps/powerpc/powerpc32/bits/wordsize.h
@@ -2,7 +2,7 @@
 
 #if defined __powerpc64__
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
diff --git a/sysdeps/powerpc/powerpc64/bits/wordsize.h b/sysdeps/powerpc/powerpc64/bits/wordsize.h
index 1a79c86..f31ac9a 100644
--- a/sysdeps/powerpc/powerpc64/bits/wordsize.h
+++ b/sysdeps/powerpc/powerpc64/bits/wordsize.h
@@ -2,7 +2,7 @@
 
 #if defined __powerpc64__
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
diff --git a/sysdeps/sparc/sparc32/bits/wordsize.h b/sysdeps/sparc/sparc32/bits/wordsize.h
index 0dee88b..d8fd1a5 100644
--- a/sysdeps/sparc/sparc32/bits/wordsize.h
+++ b/sysdeps/sparc/sparc32/bits/wordsize.h
@@ -2,7 +2,7 @@
 
 #if defined __arch64__ || defined __sparcv9
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
diff --git a/sysdeps/sparc/sparc64/bits/wordsize.h b/sysdeps/sparc/sparc64/bits/wordsize.h
index 0dee88b..d8fd1a5 100644
--- a/sysdeps/sparc/sparc64/bits/wordsize.h
+++ b/sysdeps/sparc/sparc64/bits/wordsize.h
@@ -2,7 +2,7 @@
 
 #if defined __arch64__ || defined __sparcv9
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
index cf93423..3e8a1e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
@@ -2,7 +2,7 @@
 
 #if defined __powerpc64__
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
+# define __WORDSIZE_TIME64_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h b/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
deleted file mode 100644
index 408fb0e..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* The `struct utmp' type, describing entries in the utmp file.
-   Linux/x86-64 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _UTMP_H
-# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
-#endif
-
-#include <paths.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-
-#define UT_LINESIZE	32
-#define UT_NAMESIZE	32
-#define UT_HOSTSIZE	256
-
-
-/* The structure describing an entry in the database of
-   previous logins.  */
-struct lastlog
-  {
-#ifdef __x86_64__
-    int32_t ll_time;
-#else
-    __time_t ll_time;
-#endif
-    char ll_line[UT_LINESIZE];
-    char ll_host[UT_HOSTSIZE];
-  };
-
-
-/* The structure describing the status of a terminated process.  This
-   type is used in `struct utmp' below.  */
-struct exit_status
-  {
-    short int e_termination;	/* Process termination status.  */
-    short int e_exit;		/* Process exit status.  */
-  };
-
-
-/* The structure describing an entry in the user accounting database.  */
-struct utmp
-{
-  short int ut_type;		/* Type of login.  */
-  pid_t ut_pid;			/* Process ID of login process.  */
-  char ut_line[UT_LINESIZE];	/* Devicename.  */
-  char ut_id[4];		/* Inittab ID.  */
-  char ut_user[UT_NAMESIZE];	/* Username.  */
-  char ut_host[UT_HOSTSIZE];	/* Hostname for remote login.  */
-  struct exit_status ut_exit;	/* Exit status of a process marked
-				   as DEAD_PROCESS.  */
-/* The ut_session and ut_tv fields must be the same size when compiled
-   32- and 64-bit.  This allows data files and shared memory to be
-   shared between 32- and 64-bit applications.  */
-#ifdef __x86_64__
-  int32_t ut_session;		/* Session ID, used for windowing.  */
-  struct
-  {
-    int32_t tv_sec;		/* Seconds.  */
-    int32_t tv_usec;		/* Microseconds.  */
-  } ut_tv;			/* Time entry was made.  */
-#else
-  long int ut_session;		/* Session ID, used for windowing.  */
-  struct timeval ut_tv;		/* Time entry was made.  */
-#endif
-
-  int32_t ut_addr_v6[4];	/* Internet address of remote host.  */
-  char __unused[20];		/* Reserved for future use.  */
-};
-
-/* Backwards compatibility hacks.  */
-#define ut_name		ut_user
-#ifndef _NO_UT_TIME
-/* We have a problem here: `ut_time' is also used otherwise.  Define
-   _NO_UT_TIME if the compiler complains.  */
-# define ut_time	ut_tv.tv_sec
-#endif
-#define ut_xtime	ut_tv.tv_sec
-#define ut_addr		ut_addr_v6[0]
-
-
-/* Values for the `ut_type' field of a `struct utmp'.  */
-#define EMPTY		0	/* No valid user accounting information.  */
-
-#define RUN_LVL		1	/* The system's runlevel.  */
-#define BOOT_TIME	2	/* Time of system boot.  */
-#define NEW_TIME	3	/* Time after system clock changed.  */
-#define OLD_TIME	4	/* Time when system clock changed.  */
-
-#define INIT_PROCESS	5	/* Process spawned by the init process.  */
-#define LOGIN_PROCESS	6	/* Session leader of a logged in user.  */
-#define USER_PROCESS	7	/* Normal process.  */
-#define DEAD_PROCESS	8	/* Terminated process.  */
-
-#define ACCOUNTING	9
-
-/* Old Linux name for the EMPTY type.  */
-#define UT_UNKNOWN	EMPTY
-
-
-/* Tell the user that we have a modern system with UT_HOST, UT_PID,
-   UT_TYPE, UT_ID and UT_TV fields.  */
-#define _HAVE_UT_TYPE	1
-#define _HAVE_UT_PID	1
-#define _HAVE_UT_ID	1
-#define _HAVE_UT_TV	1
-#define _HAVE_UT_HOST	1
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h b/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
deleted file mode 100644
index 21b0f84..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Structures and definitions for the user accounting database.
-   Linux/x86-64 version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _UTMPX_H
-# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
-#endif
-
-#include <bits/types.h>
-#include <sys/time.h>
-
-
-#ifdef __USE_GNU
-# include <paths.h>
-# define _PATH_UTMPX	_PATH_UTMP
-# define _PATH_WTMPX	_PATH_WTMP
-#endif
-
-
-#define __UT_LINESIZE	32
-#define __UT_NAMESIZE	32
-#define __UT_HOSTSIZE	256
-
-
-/* The structure describing the status of a terminated process.  This
-   type is used in `struct utmpx' below.  */
-struct __exit_status
-  {
-#ifdef __USE_GNU
-    short int e_termination;	/* Process termination status.  */
-    short int e_exit;		/* Process exit status.  */
-#else
-    short int __e_termination;	/* Process termination status.  */
-    short int __e_exit;		/* Process exit status.  */
-#endif
-  };
-
-
-/* The structure describing an entry in the user accounting database.  */
-struct utmpx
-{
-  short int ut_type;		/* Type of login.  */
-  __pid_t ut_pid;		/* Process ID of login process.  */
-  char ut_line[__UT_LINESIZE];	/* Devicename.  */
-  char ut_id[4];		/* Inittab ID. */
-  char ut_user[__UT_NAMESIZE];	/* Username.  */
-  char ut_host[__UT_HOSTSIZE];	/* Hostname for remote login.  */
-  struct __exit_status ut_exit;	/* Exit status of a process marked
-				   as DEAD_PROCESS.  */
-
-/* The fields ut_session and ut_tv must be the same size when compiled
-   32- and 64-bit.  This allows files and shared memory to be shared
-   between 32- and 64-bit applications.  */
-#ifdef __x86_64__
-  __int32_t ut_session;		/* Session ID, used for windowing.  */
-  struct
-  {
-    __int32_t tv_sec;		/* Seconds.  */
-    __int32_t tv_usec;		/* Microseconds.  */
-  } ut_tv;			/* Time entry was made.  */
-#else
-  long int ut_session;		/* Session ID, used for windowing.  */
-  struct timeval ut_tv;		/* Time entry was made.  */
-#endif
-  __int32_t ut_addr_v6[4];	/* Internet address of remote host.  */
-  char __unused[20];		/* Reserved for future use.  */
-};
-
-
-/* Values for the `ut_type' field of a `struct utmpx'.  */
-#define EMPTY		0	/* No valid user accounting information.  */
-
-#ifdef __USE_GNU
-# define RUN_LVL	1	/* The system's runlevel.  */
-#endif
-#define BOOT_TIME	2	/* Time of system boot.  */
-#define NEW_TIME	3	/* Time after system clock changed.  */
-#define OLD_TIME	4	/* Time when system clock changed.  */
-
-#define INIT_PROCESS	5	/* Process spawned by the init process.  */
-#define LOGIN_PROCESS	6	/* Session leader of a logged in user.  */
-#define USER_PROCESS	7	/* Normal process.  */
-#define DEAD_PROCESS	8	/* Terminated process.  */
-
-#ifdef __USE_GNU
-# define ACCOUNTING	9	/* System accounting.  */
-#endif
diff --git a/sysdeps/x86_64/bits/wordsize.h b/sysdeps/x86_64/bits/wordsize.h
index 9b38756..c0ca075 100644
--- a/sysdeps/x86_64/bits/wordsize.h
+++ b/sysdeps/x86_64/bits/wordsize.h
@@ -2,7 +2,10 @@
 
 #if defined __x86_64__ && !defined __ILP32__
 # define __WORDSIZE	64
-# define __WORDSIZE_COMPAT32	1
 #else
 # define __WORDSIZE	32
 #endif
+
+#ifdef __x86_64__
+# define __WORDSIZE_TIME64_COMPAT32		1
+#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5de56f23427ce8e4c7b6af2e0e3c6590e4a4d728

commit 5de56f23427ce8e4c7b6af2e0e3c6590e4a4d728
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 03:35:09 2012 -0700

    Also check alignments of d_ino and d_off

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 6447685..8caabac 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Also check
+	alignments of d_ino and d_off.
+
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/pselect.c (data): Replace pointer
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index f31cf83..f8df78c 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -99,13 +99,17 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
   ssize_t retval;
 
 #ifdef __ASSUME_GETDENTS32_D_TYPE
-  /* Sizes of d_ino and d_off in kernel_dirent and dirent must be the
-     same.  */
+  /* The d_ino and d_off fields in kernel_dirent and dirent must have
+     the same sizes and alignments.  */
   if (sizeof (DIRENT_TYPE) == sizeof (struct dirent)
       && (sizeof (((struct kernel_dirent *) 0)->d_ino)
 	  == sizeof (((struct dirent *) 0)->d_ino))
       && (sizeof (((struct kernel_dirent *) 0)->d_off)
-	  == sizeof (((struct dirent *) 0)->d_off)))
+	  == sizeof (((struct dirent *) 0)->d_off))
+      && (offsetof (struct kernel_dirent, d_off)
+	  == offsetof (struct dirent, d_off))
+      && (offsetof (struct kernel_dirent, d_reclen)
+	  == offsetof (struct dirent, d_reclen)))
     {
       retval = INLINE_SYSCALL (getdents, 3, fd, CHECK_N(buf, nbytes), nbytes);
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3df70a26742d33bf010061f69d6b3034d00e6f24

commit 3df70a26742d33bf010061f69d6b3034d00e6f24
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 04:16:00 2012 -0700

    Fold copyright years

diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
index f122702..c0d894c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h b/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
index ef64ef3..84a9017 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
index c907d35..d7a0c88 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2004, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/reg.h b/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
index aca96cf..9a23ee0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=530be6c086b4449f4fb55512e7890996cd77a8e4

commit 530be6c086b4449f4fb55512e7890996cd77a8e4
Merge: 85c301e 7a185db
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 18 03:05:24 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=85c301e45e6a0e6f556b4be886f8624ef912e37c

commit 85c301e45e6a0e6f556b4be886f8624ef912e37c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 20:43:57 2012 -0700

    Use 64-bit anonymouse union on x32 TCB pointer_guard

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 7113b96..13e236a 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/tls.h (tcbhead_t): Use anonymouse union on
+	pointer_guard.  Reordor fields for x32.
+
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index f838916..58cf75b 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -52,17 +52,30 @@ typedef struct
   int gscope_flag;
   uintptr_t sysinfo;
   uintptr_t stack_guard;
+# ifdef __ILP32__
+  int rtld_must_xmm_save;
+  union
+    {
+      /* Needed for 64-bit PTR_MANGLE/PTR_DEMANGLE.  */
+      uintptr_t pointer_guard;
+      uint64_t __pointer_guard_word;
+    };
+  unsigned long int vgetcpu_cache[2];
+  /* Reservation of some values for the TM ABI.  */
+  void *__private_tm[5];
+# else
   uintptr_t pointer_guard;
   unsigned long int vgetcpu_cache[2];
-# ifndef __ASSUME_PRIVATE_FUTEX
+#  ifndef __ASSUME_PRIVATE_FUTEX
   int private_futex;
-# else
+#  else
   int __unused1;
-# endif
+#  endif
   int rtld_must_xmm_save;
   /* Reservation of some values for the TM ABI.  */
   void *__private_tm[5];
   long int __unused2;
+# endif
   /* Have space for the post-AVX register size.  */
   __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5387cf00877f608b1555f832327169f36099a834

commit 5387cf00877f608b1555f832327169f36099a834
Merge: 0df6d9f 428bd70
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 17:28:39 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0df6d9f6618ff9568a19c924401aa41915b45094

commit 0df6d9f6618ff9568a19c924401aa41915b45094
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 13:47:40 2012 -0700

    Replace pointer with __syscall_ulong_t

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 4dc2108..6447685 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/pselect.c (data): Replace pointer
+	with __syscall_ulong_t.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/tst-mallocalign1.c (main): Renamed to ...
 	(do_test): This.
 	(TEST_FUNCTION): New.
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index 8fb0a53..11aa7d1 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -52,11 +52,11 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
      be created.  */
   struct
   {
-    const sigset_t *ss;
+    __syscall_ulong_t ss;
     __syscall_ulong_t ss_len;
   } data;
 
-  data.ss = sigmask;
+  data.ss = (__syscall_ulong_t) (uintptr_t) sigmask;
   data.ss_len = _NSIG / 8;
 
   int result;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6fc83de4245816ddf6e49f0d7b7464efec8a8d3a

commit 6fc83de4245816ddf6e49f0d7b7464efec8a8d3a
Merge: 5681885 de7f5ce
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 12:43:27 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5681885d802e7fd1aae84ec2f478d57de8b4133c

commit 5681885d802e7fd1aae84ec2f478d57de8b4133c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 09:53:55 2012 -0700

    Remove trailing whitespace

diff --git a/sysdeps/x86_64/tst-mallocalign1.c b/sysdeps/x86_64/tst-mallocalign1.c
index d4edf26..5ce68da 100644
--- a/sysdeps/x86_64/tst-mallocalign1.c
+++ b/sysdeps/x86_64/tst-mallocalign1.c
@@ -36,7 +36,7 @@ do_test (void)
 {
   void *p;
   int ret = 0;
-  
+
   p = test (2);
   ret |= (unsigned long) p & ALIGN_MASK;
   free (p);

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=51da286a362c907f2f3e520e233799445f4aca27

commit 51da286a362c907f2f3e520e233799445f4aca27
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 09:51:13 2012 -0700

    Use test-skeleton.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 966dcec..4dc2108 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,12 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/tst-mallocalign1.c (main): Renamed to ...
+	(do_test): This.
+	(TEST_FUNCTION): New.
+	Include "../test-skeleton.c".
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/Makefile (tests): Add tst-mallocalign1.
 	* sysdeps/x86_64/tst-mallocalign1.c: New file.
 
diff --git a/sysdeps/x86_64/tst-mallocalign1.c b/sysdeps/x86_64/tst-mallocalign1.c
index 6b2a386..d4edf26 100644
--- a/sysdeps/x86_64/tst-mallocalign1.c
+++ b/sysdeps/x86_64/tst-mallocalign1.c
@@ -31,8 +31,8 @@ test (size_t s)
   return p;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *p;
   int ret = 0;
@@ -67,3 +67,6 @@ main (void)
 
   return ret;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=dc7c451246ce5eeb99b443194b4cd70a350e57b5

commit dc7c451246ce5eeb99b443194b4cd70a350e57b5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 07:37:09 2012 -0700

    Add tst-mallocalign1

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e56f304..966dcec 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/Makefile (tests): Add tst-mallocalign1.
+	* sysdeps/x86_64/tst-mallocalign1.c: New file.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* bits/types.h (__fsword_t): New type.
 	* bits/typesizes.h (__FSWORD_T_TYPE): New macro.
 	sysdeps/mach/hurd/bits/typesizes.h (__FSWORD_T_TYPE): Likewise.
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index 81c9128..d4525bc 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -11,6 +11,10 @@ ifeq ($(subdir),gmon)
 sysdep_routines += _mcount
 endif
 
+ifeq ($(subdir),malloc)
+tests += tst-mallocalign1
+endif
+
 ifeq ($(subdir),string)
 sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii
 gen-as-const-headers += locale-defines.sym
diff --git a/sysdeps/x86_64/tst-mallocalign1.c b/sysdeps/x86_64/tst-mallocalign1.c
new file mode 100644
index 0000000..6b2a386
--- /dev/null
+++ b/sysdeps/x86_64/tst-mallocalign1.c
@@ -0,0 +1,69 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Specified by x86-64 psABI.  */
+#define ALIGN_MASK (16 - 1)
+
+void *
+test (size_t s)
+{
+  void *p = malloc (s);
+
+  printf ("malloc: %d, %p: %ld\n", s, p,
+	  ((unsigned long) p) & ALIGN_MASK);
+  return p;
+}
+
+int
+main (void)
+{
+  void *p;
+  int ret = 0;
+  
+  p = test (2);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (8);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (13);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (16);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (23);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (43);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  p = test (123);
+  ret |= (unsigned long) p & ALIGN_MASK;
+  free (p);
+
+  return ret;
+}

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=776ced488abc150cbc7b1247af7c5d8ed516127f

commit 776ced488abc150cbc7b1247af7c5d8ed516127f
Merge: 830f285 0af797d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 06:11:45 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=830f2858f535343b96baf2cd357dab1b015e662c

commit 830f2858f535343b96baf2cd357dab1b015e662c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 06:08:13 2012 -0700

    Use __fsword_t in bits/statfs.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7722e63..e56f304 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,24 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* bits/types.h (__fsword_t): New type.
+	* bits/typesizes.h (__FSWORD_T_TYPE): New macro.
+	sysdeps/mach/hurd/bits/typesizes.h (__FSWORD_T_TYPE): Likewise.
+	* sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+	(__FSWORD_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+	(__FSWORD_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+	(__FSWORD_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+	(__FSWORD_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/bits/statfs.h (statfs): Replace
+	__SWORD_TYPE with __fsword_t.
+	(statfs64): Likewise.
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: Removed.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/timex.h: Include <bits/types.h>.
 
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/bits/types.h b/bits/types.h
index 6fb31c8..041ace6 100644
--- a/bits/types.h
+++ b/bits/types.h
@@ -176,6 +176,9 @@ __STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
 __STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
 __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
 
+/* Type of miscellaneous file system fields.  */
+__STD_TYPE __FSWORD_T_TYPE __fsword_t;
+
 __STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error.  */
 
 /* Signed long type used in system calls.  */
diff --git a/bits/typesizes.h b/bits/typesizes.h
index c254c55..3fd4a2e 100644
--- a/bits/typesizes.h
+++ b/bits/typesizes.h
@@ -44,6 +44,7 @@
 #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
 #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index 6e697f9..efc1314 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -44,6 +44,7 @@
 #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
 #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
diff --git a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
index 4e754db..02c24e4 100644
--- a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+++ b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
@@ -44,6 +44,7 @@
 #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
 #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__S32_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index 5019eb1..bfff772 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -23,8 +23,8 @@
 
 struct statfs
   {
-    __SWORD_TYPE f_type;
-    __SWORD_TYPE f_bsize;
+    __fsword_t f_type;
+    __fsword_t f_bsize;
 #ifndef __USE_FILE_OFFSET64
     __fsblkcnt_t f_blocks;
     __fsblkcnt_t f_bfree;
@@ -39,27 +39,27 @@ struct statfs
     __fsfilcnt64_t f_ffree;
 #endif
     __fsid_t f_fsid;
-    __SWORD_TYPE f_namelen;
-    __SWORD_TYPE f_frsize;
-    __SWORD_TYPE f_flags;
-    __SWORD_TYPE f_spare[4];
+    __fsword_t f_namelen;
+    __fsword_t f_frsize;
+    __fsword_t f_flags;
+    __fsword_t f_spare[4];
   };
 
 #ifdef __USE_LARGEFILE64
 struct statfs64
   {
-    __SWORD_TYPE f_type;
-    __SWORD_TYPE f_bsize;
+    __fsword_t f_type;
+    __fsword_t f_bsize;
     __fsblkcnt64_t f_blocks;
     __fsblkcnt64_t f_bfree;
     __fsblkcnt64_t f_bavail;
     __fsfilcnt64_t f_files;
     __fsfilcnt64_t f_ffree;
     __fsid_t f_fsid;
-    __SWORD_TYPE f_namelen;
-    __SWORD_TYPE f_frsize;
-    __SWORD_TYPE f_flags;
-    __SWORD_TYPE f_spare[4];
+    __fsword_t f_namelen;
+    __fsword_t f_frsize;
+    __fsword_t f_flags;
+    __fsword_t f_spare[4];
   };
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index e981474..def84cc 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -44,6 +44,7 @@
 #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
 #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 76d67ef..b65a1a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -44,6 +44,7 @@
 #define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
 #define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSWORD_T_TYPE		__SWORD_TYPE
 #define	__ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h b/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
deleted file mode 100644
index df65fc8..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_STATFS_H
-# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-#endif
-
-#include <bits/types.h>
-
-struct statfs
-  {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
-#ifndef __USE_FILE_OFFSET64
-    __fsblkcnt_t f_blocks;
-    __fsblkcnt_t f_bfree;
-    __fsblkcnt_t f_bavail;
-    __fsfilcnt_t f_files;
-    __fsfilcnt_t f_ffree;
-#else
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-#endif
-    __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
-  };
-
-#ifdef __USE_LARGEFILE64
-struct statfs64
-  {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-    __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
-  };
-#endif
-
-/* Tell code we have these members.  */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index bada64d..cbad9a3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -53,6 +53,7 @@
 #define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE
 #define __FSFILCNT_T_TYPE	__SYSCALL_ULONG_TYPE
 #define __FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define __FSWORD_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __ID_T_TYPE		__U32_TYPE
 #define __CLOCK_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=889720040e058c0e399fd5a326632bdb15a7206c

commit 889720040e058c0e399fd5a326632bdb15a7206c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 05:48:07 2012 -0700

    Update copyright year

diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h b/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
index 926b77d..408fb0e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
@@ -1,6 +1,6 @@
-/* The `struct utmp' type, describing entries in the utmp file.  GNU version.
-   Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002, 2012
-   Free Software Foundation, Inc.
+/* The `struct utmp' type, describing entries in the utmp file.
+   Linux/x86-64 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h b/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
index 822653a..21b0f84 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
@@ -1,6 +1,6 @@
-/* Structures and definitions for the user accounting database.  GNU version.
-   Copyright (C) 1997, 1998, 2000, 2001, 2002, 2012
-   Free Software Foundation, Inc.
+/* Structures and definitions for the user accounting database.
+   Linux/x86-64 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9ca0b371d9e1e8203a72cd115a03b2e2e28aebbc

commit 9ca0b371d9e1e8203a72cd115a03b2e2e28aebbc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 05:38:57 2012 -0700

    Include  <bits/types.h> in bits/timex.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e27f01b..7722e63 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/timex.h: Include <bits/types.h>.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c: Removed.
 
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 0d0356e..0fe6660 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -18,6 +18,8 @@
 #ifndef	_BITS_TIMEX_H
 #define	_BITS_TIMEX_H	1
 
+#include <bits/types.h>
+
 /* These definitions from linux/timex.h as of 2.6.30.  */
 
 struct timex

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b3a3c14eec7a3ced866c2c72ec464490221a323b

commit b3a3c14eec7a3ced866c2c72ec464490221a323b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 05:33:46 2012 -0700

    Remove x32 sendfile64.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index d963b89..e27f01b 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c: Removed.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/pselect.c (data): Replace size_t
 	with __syscall_ulong_t.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c b/sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c
deleted file mode 100644
index 4c451bd..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* sendfile64 is alias of sendfile syscall.  */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d8144f6a8f9614bea6d81c198a626d3b476eb3bb

commit d8144f6a8f9614bea6d81c198a626d3b476eb3bb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 05:24:00 2012 -0700

    Use __syscall_ulong_t in pselect.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index eb7bfce..d963b89 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,12 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/pselect.c (data): Replace size_t
+	with __syscall_ulong_t.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/pselect.c: Removed.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/time.c (time_syscall):
 	Removed.
 	(time_ifunc): Always return __vdso_time.
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index 8864d78..8fb0a53 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
 
@@ -53,7 +53,7 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
   struct
   {
     const sigset_t *ss;
-    size_t ss_len;
+    __syscall_ulong_t ss_len;
   } data;
 
   data.ss = sigmask;
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/pselect.c b/sysdeps/unix/sysv/linux/x86_64/x32/pselect.c
deleted file mode 100644
index 80a1086..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/pselect.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <time.h>
-#include <sys/poll.h>
-#include <sysdep-cancel.h>
-
-
-int
-__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
-	   const struct timespec *timeout, const sigset_t *sigmask)
-{
-  /* The Linux kernel can in some situations update the timeout value.
-     We do not want that so use a local variable.  */
-  struct timespec tval;
-  if (timeout != NULL)
-    {
-      tval = *timeout;
-      timeout = &tval;
-    }
-
-  /* Note: the system call expects 7 values but on most architectures
-     we can only pass in 6 directly.  If there is an architecture with
-     support for more parameters a new version of this file needs to
-     be created.  */
-  struct
-  {
-    const sigset_t *ss;
-    unsigned long long ss_len;
-  } data;
-
-  data.ss = sigmask;
-  data.ss_len = _NSIG / 8;
-
-  int result;
-
-  if (SINGLE_THREAD_P)
-    result = INLINE_SYSCALL (pselect6, 6, nfds, readfds, writefds,
-			     exceptfds, timeout, &data);
-  else
-    {
-      int oldtype = LIBC_CANCEL_ASYNC ();
-
-      result = INLINE_SYSCALL (pselect6, 6, nfds, readfds, writefds,
-			       exceptfds, timeout, &data);
-
-      LIBC_CANCEL_RESET (oldtype);
-    }
-
-  return result;
-}
-weak_alias (__pselect, pselect)
-strong_alias (__pselect, __libc_pselect)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=807c08d8a3e933d8f69580f8b4058460ce4eb501

commit 807c08d8a3e933d8f69580f8b4058460ce4eb501
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 05:11:59 2012 -0700

    Always use vDSO for time

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7423d8d..eb7bfce 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/time.c (time_syscall):
+	Removed.
+	(time_ifunc): Always return __vdso_time.
+
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Use
 	getdents system call only if kernel and user dirents have the
 	same d_ino and d_off sizes.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/time.c b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
index f17bf84..aba1aca 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/time.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/time.c
@@ -51,18 +51,12 @@
 
 void *time_ifunc (void) __asm__ ("__GI_time");
 
-static time_t
-time_syscall (time_t *t)
-{
-  return INLINE_SYSCALL (time, 1, t);
-}
-
 void *
 time_ifunc (void)
 {
   PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
 
-  return _dl_vdso_vsym ("__vdso_time", &linux26) ?: (void *) time_syscall;
+  return _dl_vdso_vsym ("__vdso_time", &linux26);
 }
 __asm (".type __GI_time, %gnu_indirect_function");
 #else

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=36a85c5352c4e87ccb07916b51d6b76a484ac213

commit 36a85c5352c4e87ccb07916b51d6b76a484ac213
Merge: 5abd513 e39745f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 04:30:22 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5abd5134602ad01372e7dce2561cb961020b45d2

commit 5abd5134602ad01372e7dce2561cb961020b45d2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 17 04:30:00 2012 -0700

    Remove x32/getdents.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 0c25547..7423d8d 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,11 @@
+2012-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Use
+	getdents system call only if kernel and user dirents have the
+	same d_ino and d_off sizes.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/getdents.c: Removed.
+
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/unix/x86_64/sysdep.S: Use or to set -1.
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index eb9cfef..f31cf83 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -99,7 +99,13 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
   ssize_t retval;
 
 #ifdef __ASSUME_GETDENTS32_D_TYPE
-  if (sizeof (DIRENT_TYPE) == sizeof (struct dirent))
+  /* Sizes of d_ino and d_off in kernel_dirent and dirent must be the
+     same.  */
+  if (sizeof (DIRENT_TYPE) == sizeof (struct dirent)
+      && (sizeof (((struct kernel_dirent *) 0)->d_ino)
+	  == sizeof (((struct dirent *) 0)->d_ino))
+      && (sizeof (((struct kernel_dirent *) 0)->d_off)
+	  == sizeof (((struct dirent *) 0)->d_off)))
     {
       retval = INLINE_SYSCALL (getdents, 3, fd, CHECK_N(buf, nbytes), nbytes);
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/getdents.c b/sysdeps/unix/sysv/linux/x86_64/x32/getdents.c
deleted file mode 100644
index 4c09922..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/getdents.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <alloca.h>
-#include <errno.h>
-#include <dirent.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sysdep.h>
-#include <bp-checks.h>
-
-/* For Linux we need a special version of this file since the
-   definition of `struct dirent' is not the same for the kernel and
-   the libc.  There is one additional field which might be introduced
-   in the kernel structure in the future.
-
-   Here is the kernel definition of `struct dirent64' as of 2.1.20:  */
-
-struct kernel_dirent64
-  {
-    uint64_t		d_ino;
-    int64_t		d_off;
-    unsigned short int	d_reclen;
-    unsigned char	d_type;
-    char		d_name[256];
-  };
-
-#ifndef __GETDENTS
-# define __GETDENTS __getdents
-#endif
-#ifndef DIRENT_TYPE
-# define DIRENT_TYPE struct dirent
-#endif
-#ifndef DIRENT_SET_DP_INO
-# define DIRENT_SET_DP_INO(dp, value) (dp)->d_ino = (value)
-#endif
-
-/* The problem here is that we cannot simply read the next NBYTES
-   bytes.  We need to take the additional field into account.  We use
-   some heuristic.  Assuming the directory contains names with 14
-   characters on average we can compute an estimated number of entries
-   which fit in the buffer.  Taking this number allows us to specify a
-   reasonable number of bytes to read.  If we should be wrong, we can
-   reset the file descriptor.  In practice the kernel is limiting the
-   amount of data returned much more then the reduced buffer size.  */
-ssize_t
-internal_function
-__GETDENTS (int fd, char *buf, size_t nbytes)
-{
-  ssize_t retval;
-  off64_t last_offset = -1;
-  union
-    {
-      struct kernel_dirent64 k;
-      DIRENT_TYPE u;
-      char b[1];
-    } *kbuf = (void *) buf, *outp, *inp;
-  size_t kbytes = nbytes;
-  if (offsetof (DIRENT_TYPE, d_name)
-      < offsetof (struct kernel_dirent64, d_name)
-      && nbytes <= sizeof (DIRENT_TYPE))
-    {
-      kbytes = nbytes + offsetof (struct kernel_dirent64, d_name)
-	- offsetof (DIRENT_TYPE, d_name);
-      kbuf = __alloca(kbytes);
-    }
-  retval = INLINE_SYSCALL (getdents64, 3, fd, CHECK_N(kbuf, kbytes),
-			   kbytes);
-  const size_t size_diff = (offsetof (struct kernel_dirent64, d_name)
-			    - offsetof (DIRENT_TYPE, d_name));
-
-  /* Return the error if encountered.  */
-  if (retval == -1)
-    return -1;
-
-  /* If the structure returned by the kernel is identical to what we
-     need, don't do any conversions.  */
-  if (offsetof (DIRENT_TYPE, d_name)
-      == offsetof (struct kernel_dirent64, d_name)
-      && sizeof (outp->u.d_ino) == sizeof (inp->k.d_ino)
-      && sizeof (outp->u.d_off) == sizeof (inp->k.d_off))
-    return retval;
-
-  /* These two pointers might alias the same memory buffer.
-     Standard C requires that we always use the same type for them,
-     so we must use the union type.  */
-  inp = kbuf;
-  outp = (void *) buf;
-
-  while (&inp->b < &kbuf->b + retval)
-    {
-      const size_t alignment = __alignof__ (DIRENT_TYPE);
-      /* Since inp->k.d_reclen is already aligned for the kernel
-	 structure this may compute a value that is bigger
-	 than necessary.  */
-      size_t old_reclen = inp->k.d_reclen;
-      size_t new_reclen = ((old_reclen - size_diff + alignment - 1)
-			   & ~(alignment - 1));
-
-      /* Copy the data out of the old structure into temporary space.
-	 Then copy the name, which may overlap if BUF == KBUF.  */
-      const uint64_t d_ino = inp->k.d_ino;
-      const int64_t d_off = inp->k.d_off;
-      const uint8_t d_type = inp->k.d_type;
-
-      memmove (outp->u.d_name, inp->k.d_name,
-	       old_reclen - offsetof (struct kernel_dirent64, d_name));
-
-      /* Now we have copied the data from INP and access only OUTP.  */
-
-      DIRENT_SET_DP_INO (&outp->u, d_ino);
-      outp->u.d_off = d_off;
-      if ((sizeof (outp->u.d_ino) != sizeof (inp->k.d_ino)
-	   && outp->u.d_ino != d_ino)
-	  || (sizeof (outp->u.d_off) != sizeof (inp->k.d_off)
-	      && outp->u.d_off != d_off))
-	{
-	  /* Overflow.  If there was at least one entry
-	     before this one, return them without error,
-	     otherwise signal overflow.  */
-	  if (last_offset != -1)
-	    {
-	      __lseek64 (fd, last_offset, SEEK_SET);
-	      return outp->b - buf;
-	    }
-	  __set_errno (EOVERFLOW);
-	  return -1;
-	}
-
-      last_offset = d_off;
-      outp->u.d_reclen = new_reclen;
-      outp->u.d_type = d_type;
-
-      inp = (void *) inp + old_reclen;
-      outp = (void *) outp + new_reclen;
-    }
-
-  return outp->b - buf;
-}
-
-#undef __getdents64
-weak_alias (__getdents, __getdents64);

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=380192005eca1914357800b23bcce2df46d1d93e

commit 380192005eca1914357800b23bcce2df46d1d93e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 20:10:25 2012 -0700

    Use or to set -1

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index fda0e1a..0c25547 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/x86_64/sysdep.S: Use or to set -1.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/lseek.S: New file.
 	* sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list: Deleted.
 
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index c771673..b13fdf4 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -45,7 +45,7 @@ notb:
 #else
 	movl %eax, %fs:C_SYMBOL_NAME(errno@TPOFF)
 #endif
-	mov $-1, %RAX_LP
+	or $-1, %RAX_LP
 	ret
 
 #undef	__syscall_error

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9736c0ed38978b61a3f77d3eeb56c4672f50ab45

commit 9736c0ed38978b61a3f77d3eeb56c4672f50ab45
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 20:06:30 2012 -0700

    Update copyright year

diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 982de81..4372c56 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0ba4e333bccdcc67c06e865bce9f3b43adcb2d8e

commit 0ba4e333bccdcc67c06e865bce9f3b43adcb2d8e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 19:38:24 2012 -0700

    Remove x32/syscalls.list and add x32/lseek.S

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 6ab1a46..fda0e1a 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/lseek.S: New file.
+	* sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list: Deleted.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
 	(SYSCALL_ERROR_HANDLER): Add error handler.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
new file mode 100644
index 0000000..eb976ee
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -0,0 +1,2 @@
+/* Need this dummy file since make-syscalls.sh doesn't know that the
+   lseek system call number is used by llseek.S.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
deleted file mode 100644
index a5d4007..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copied from 64bit syscalls.list without llseek, which is implemented in
-# llseek.S to properly handle 64bit parameter and return value.
-
-# File name	Caller	Syscall name	# args	Strong name	Weak names
-
-lseek		llseek	-
-pread		-	pread		Ci:ibni	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		Ci:ibni	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
-fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs fstatfs64 __fstatfs64
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
-mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
-ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate ftruncate64 __ftruncate64
-truncate	-	truncate	i:si	truncate	truncate64
-getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64
-setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit setrlimit64
-readahead	-	readahead	i:iii	__readahead	readahead
-sendfile	-	sendfile	i:iipi	sendfile	sendfile64
-sync_file_range	-	sync_file_range	Ci:iiii	sync_file_range
-creat		-	creat		Ci:si	__libc_creat	creat creat64
-open		-	open		Ci:siv	__libc_open	__open open __open64 open64
-prlimit		EXTRA	prlimit64	i:iipp	prlimit		prlimit64
-
-fanotify_mark	EXTRA	fanotify_mark	i:iiiis	fanotify_mark

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5ef372c7180ac7adbde7694fb3af418a0548ca74

commit 5ef372c7180ac7adbde7694fb3af418a0548ca74
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 19:02:55 2012 -0700

    Define SYSCALL_ERROR_HANDLER in x32/llseek.S

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e12d99a..6ab1a46 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+	(SYSCALL_ERROR_HANDLER): Add error handler.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c (__arch_prctl):
 	Cast to unsigned long * to silence GCC.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index b9d6bc4..85f4d70 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -18,19 +18,20 @@
 
 #include <sysdep-cancel.h>
 
-/* Nothing here, We have our own error handling.  */
+/* Return -1LL in a full 64 bits.  */
 #undef SYSCALL_ERROR_HANDLER
-#define SYSCALL_ERROR_HANDLER
+#define SYSCALL_ERROR_HANDLER	\
+0:				\
+	SYSCALL_SET_ERRNO	\
+	orq $-1, %rax;		\
+	ret;
 
+/* Always use our own error handler.  */
 #undef SYSCALL_ERROR_LABEL
 #define SYSCALL_ERROR_LABEL 0f
 
 PSEUDO (__libc_lseek64, lseek, 3)
 	ret
-0:
-	SYSCALL_SET_ERRNO
-	orq $-1, %rax   /* Return -1LL in a full 64 bits.  */
-	ret
 PSEUDO_END (__libc_lseek64)
 
 weak_alias (__libc_lseek64, __lseek64)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1ac9f242a792d135e98e85137511d2d40609ace1

commit 1ac9f242a792d135e98e85137511d2d40609ace1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 18:57:53 2012 -0700

    Cast to unsigned long * to silence GCC

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b3ea0de..e12d99a 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c (__arch_prctl):
+	Cast to unsigned long * to silence GCC.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
 	(SYSCALL_SET_ERROR_RETURN): Removed.
 	(SYSCALL_SET_ERRNO): New macro.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index a4079af..8aa0ebf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -38,7 +38,7 @@ __arch_prctl (int code, unsigned long *addr)
     case ARCH_GET_FS:
     case ARCH_GET_GS:
       addr_saved = addr;
-      addr = &base_addr;
+      addr = (unsigned long *) &base_addr;
       break;
 
     default:

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1ed8a0ec0303b415b8a3392bc25db033148ffb67

commit 1ed8a0ec0303b415b8a3392bc25db033148ffb67
Merge: 20eb223 bedee95
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 17:53:43 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=20eb223cd9acac21d638f4953404d6bc7e115a9a

commit 20eb223cd9acac21d638f4953404d6bc7e115a9a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 17:53:19 2012 -0700

    Add and use SYSCALL_SET_ERRNO

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 6acb27f..b3ea0de 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,19 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
+	(SYSCALL_SET_ERROR_RETURN): Removed.
+	(SYSCALL_SET_ERRNO): New macro.
+	(SYSCALL_ERROR_HANDLER): Use SYSCALL_SET_ERRNO.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+	(SYSCALL_SET_ERROR_RETURN): Removed.
+	(SYSCALL_ERROR_HANDLER): Redefined.
+	(SYSCALL_ERROR_LABEL): Likewise.
+	(__libc_lseek64): Use SYSCALL_SET_ERRNO and return -1LL in
+	a full 64 bits.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Use RAX_LP to
 	negate return value.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index f8032ba..dcb9218 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -112,33 +112,32 @@
 
 # define ret_ERRVAL ret
 
-/* Set error return value.  */
-# define SYSCALL_SET_ERROR_RETURN or $-1, %RAX_LP
-
-# ifndef PIC
-#  define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
-# elif RTLD_PRIVATE_ERRNO
-#  define SYSCALL_ERROR_HANDLER			\
-0:						\
+# if defined PIC && defined RTLD_PRIVATE_ERRNO
+#  define SYSCALL_SET_ERRNO			\
   lea rtld_errno(%rip), %RCX_LP;		\
   xorl %edx, %edx;				\
   sub %RAX_LP, %RDX_LP;				\
-  movl %edx, (%rcx);				\
-  SYSCALL_SET_ERROR_RETURN;			\
-  jmp L(pseudo_end);
+  movl %edx, (%rcx);
 # else
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
 #  else
 #   define SYSCALL_ERROR_ERRNO errno
 #  endif
-#  define SYSCALL_ERROR_HANDLER			\
-0:						\
+#  define SYSCALL_SET_ERRNO			\
   movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
   xorl %edx, %edx;				\
   sub %RAX_LP, %RDX_LP;				\
-  movl %edx, %fs:(%rcx);			\
-  SYSCALL_SET_ERROR_RETURN;			\
+  movl %edx, %fs:(%rcx);
+# endif
+
+# ifndef PIC
+#  define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
+# else
+#  define SYSCALL_ERROR_HANDLER			\
+0:						\
+  SYSCALL_SET_ERRNO				\
+  or $-1, %RAX_LP;				\
   jmp L(pseudo_end);
 # endif	/* PIC */
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index 379134f..b9d6bc4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -1,4 +1,5 @@
-/* Copyright (C) 2012 Free Software Foundation, Inc.
+/* The lseek system call with 64-bit offset.  Linux/x32 version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,13 +18,19 @@
 
 #include <sysdep-cancel.h>
 
-/* Set error return to 64-bit -1 since the lseek system call returns a
-   64-bit integer.  */
-#undef SYSCALL_SET_ERROR_RETURN
-#define SYSCALL_SET_ERROR_RETURN or $-1, %rax
+/* Nothing here, We have our own error handling.  */
+#undef SYSCALL_ERROR_HANDLER
+#define SYSCALL_ERROR_HANDLER
+
+#undef SYSCALL_ERROR_LABEL
+#define SYSCALL_ERROR_LABEL 0f
 
 PSEUDO (__libc_lseek64, lseek, 3)
 	ret
+0:
+	SYSCALL_SET_ERRNO
+	orq $-1, %rax   /* Return -1LL in a full 64 bits.  */
+	ret
 PSEUDO_END (__libc_lseek64)
 
 weak_alias (__libc_lseek64, __lseek64)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7e01563921acc16a95e262a3988294d38aea8c5a

commit 7e01563921acc16a95e262a3988294d38aea8c5a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 17:46:21 2012 -0700

    Use RAX_LP to negate return value

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9157578..6acb27f 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Use RAX_LP to
+	negate return value.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/x86_64/sysdep.S: Use RAX_LP to access return
 	value.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 0de339a..982de81 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -32,7 +32,7 @@
 
 	.text
 ENTRY (__syscall_error)
-	negq %rax
+	neg %RAX_LP
 
 #define __syscall_error __syscall_error_1
 #include <sysdeps/unix/x86_64/sysdep.S>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d417aa28bf29ad81925bbc25fb543f57239d48af

commit d417aa28bf29ad81925bbc25fb543f57239d48af
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 17:02:14 2012 -0700

    Use RAX_LP to access return value

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b6fc296..9157578 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/x86_64/sysdep.S: Use RAX_LP to access return
+	value.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Don't use
 	<syscall-template.S>.
 
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index 66d90f2..c771673 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,2002,2004,2005,2011,2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,7 +34,7 @@ __syscall_error:
 	/* We translate the system's EWOULDBLOCK error into EAGAIN.
 	   The GNU C library always defines EWOULDBLOCK==EAGAIN.
 	   EWOULDBLOCK_sys is the original number.  */
-	cmpq $EWOULDBLOCK_sys, %rax /* Is it the old EWOULDBLOCK?  */
+	cmp $EWOULDBLOCK_sys, %RAX_LP /* Is it the old EWOULDBLOCK?  */
 	jne notb		/* Branch if not.  */
 	movl $EAGAIN, %eax	/* Yes; translate it to EAGAIN.  */
 notb:
@@ -45,7 +45,7 @@ notb:
 #else
 	movl %eax, %fs:C_SYMBOL_NAME(errno@TPOFF)
 #endif
-	movq $-1, %rax
+	mov $-1, %RAX_LP
 	ret
 
 #undef	__syscall_error

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1c8080eb011da89d0457b848b5251f16b94676e6

commit 1c8080eb011da89d0457b848b5251f16b94676e6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 15:35:18 2012 -0700

    Don't use <syscall-template.S> in x32 llseek.S

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index d5d5800..b6fc296 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Don't use
+	<syscall-template.S>.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
 	(SYSCALL_SET_ERROR_RETURN):  New.
 	(SYSCALL_ERROR_HANDLER): Use R*LP on long and pointer
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index 4727cf2..379134f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -15,16 +15,17 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <sysdep.h>
+#include <sysdep-cancel.h>
 
+/* Set error return to 64-bit -1 since the lseek system call returns a
+   64-bit integer.  */
 #undef SYSCALL_SET_ERROR_RETURN
 #define SYSCALL_SET_ERROR_RETURN or $-1, %rax
 
-#define SYSCALL_NAME lseek
-#define SYSCALL_NARGS 3
-#define SYSCALL_SYMBOL __libc_lseek64
-#define SYSCALL_CANCELLABLE 1
-#include <syscall-template.S>
+PSEUDO (__libc_lseek64, lseek, 3)
+	ret
+PSEUDO_END (__libc_lseek64)
+
 weak_alias (__libc_lseek64, __lseek64)
 libc_hidden_weak (__lseek64)
 weak_alias (__libc_lseek64, lseek64)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=73921270bcceae63ccc1463a76dc68a6dc3e5b43

commit 73921270bcceae63ccc1463a76dc68a6dc3e5b43
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 14:58:35 2012 -0700

    Remove x32 SYSCALL_ERROR_HANDLER

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e6add1e..d5d5800 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,20 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
+	(SYSCALL_SET_ERROR_RETURN):  New.
+	(SYSCALL_ERROR_HANDLER): Use R*LP on long and pointer
+	Use SYSCALL_SET_ERROR_RETURN to set error return.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+	(SYSCALL_RETURN_INT64): Removed.
+	(SYSCALL_SET_ERROR_RETURN): Redefined with %rax.
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+	(SYSCALL_SET_ERROR_RETURN): Removed.
+	(SYSCALL_ERROR_HANDLER): Likewise.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sys/user.h (user): Use
 	anonymous union.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index aae4cb0..f8032ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -112,16 +112,19 @@
 
 # define ret_ERRVAL ret
 
+/* Set error return value.  */
+# define SYSCALL_SET_ERROR_RETURN or $-1, %RAX_LP
+
 # ifndef PIC
 #  define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
 # elif RTLD_PRIVATE_ERRNO
 #  define SYSCALL_ERROR_HANDLER			\
 0:						\
-  leaq rtld_errno(%rip), %rcx;			\
+  lea rtld_errno(%rip), %RCX_LP;		\
   xorl %edx, %edx;				\
-  subq %rax, %rdx;				\
+  sub %RAX_LP, %RDX_LP;				\
   movl %edx, (%rcx);				\
-  orq $-1, %rax;				\
+  SYSCALL_SET_ERROR_RETURN;			\
   jmp L(pseudo_end);
 # else
 #  ifndef NOT_IN_libc
@@ -133,9 +136,9 @@
 0:						\
   movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
   xorl %edx, %edx;				\
-  subq %rax, %rdx;				\
+  sub %RAX_LP, %RDX_LP;				\
   movl %edx, %fs:(%rcx);			\
-  orq $-1, %rax;				\
+  SYSCALL_SET_ERROR_RETURN;			\
   jmp L(pseudo_end);
 # endif	/* PIC */
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
index b1aee55..4727cf2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -15,9 +15,11 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define SYSCALL_RETURN_INT64
 #include <sysdep.h>
 
+#undef SYSCALL_SET_ERROR_RETURN
+#define SYSCALL_SET_ERROR_RETURN or $-1, %rax
+
 #define SYSCALL_NAME lseek
 #define SYSCALL_NARGS 3
 #define SYSCALL_SYMBOL __libc_lseek64
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
index 0ea7bd8..35e4c84 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -22,38 +22,4 @@
 #include <sysdeps/unix/sysv/linux/x86_64/sysdep.h>
 #include <sysdeps/x86_64/x32/sysdep.h>
 
-#ifdef __ASSEMBLER__
-
-# ifdef SYSCALL_RETURN_INT64
-#  define SYSCALL_SET_ERROR_RETURN orq $-1, %rax
-# else
-#  define SYSCALL_SET_ERROR_RETURN orl $-1, %eax
-# endif
-
-# ifndef PIC
-/* Nothing here.  */
-# elif RTLD_PRIVATE_ERRNO
-#  undef SYSCALL_ERROR_HANDLER
-#  define SYSCALL_ERROR_HANDLER			\
-0:						\
-  lea rtld_errno(%rip), %ecx;			\
-  xorl %edx, %edx;				\
-  subl %eax, %edx;				\
-  movl %edx, (%rcx);				\
-  SYSCALL_SET_ERROR_RETURN;			\
-  jmp L(pseudo_end);
-# else
-#  undef SYSCALL_ERROR_HANDLER
-#  define SYSCALL_ERROR_HANDLER			\
-0:						\
-  movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
-  xorl %edx, %edx;				\
-  subl %eax, %edx;				\
-  movl %edx, %fs:(%rcx);			\
-  SYSCALL_SET_ERROR_RETURN;			\
-  jmp L(pseudo_end);
-# endif	/* PIC */
-
-#endif	/* __ASSEMBLER__ */
-
 #endif /* linux/x86_64/x32/sysdep.h */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=999ba295cba046cf0b27539f94f1fd9472cd8a7f

commit 999ba295cba046cf0b27539f94f1fd9472cd8a7f
Merge: 43d724b d426156
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 14:16:31 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	sysdeps/unix/sysv/linux/x86_64/sys/user.h


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=43d724bab3748fc330a908c6ef832f91caf5ebdf

commit 43d724bab3748fc330a908c6ef832f91caf5ebdf
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 14:11:28 2012 -0700

    Use anonymous union in x86_64/sys/user.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 6a1977a..e6add1e 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sys/user.h (user): Use
+	anonymous union.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Use
 	__rlim_t cast.
 	(rusage): Use anonymous union.
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
index 46bf6ef..9db2937 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
@@ -82,14 +82,16 @@ struct user
   __extension__ unsigned long long int	start_stack;
   __extension__ long long int		signal;
   int				reserved;
-  struct user_regs_struct*	u_ar0;
-# ifdef __ILP32__
-  unsigned int			pad0;
-# endif
-  struct user_fpregs_struct*	u_fpstate;
-# ifdef __ILP32__
-  unsigned int			pad1;
-# endif
+  __extension__ union
+    {
+      struct user_regs_struct*	u_ar0;
+      __extension__ unsigned long long int	__u_ar0_word;
+    };
+  __extension__ union
+    {
+      struct user_fpregs_struct*	u_fpstate;
+      __extension__ unsigned long long int	__u_fpstate_word;
+    };
   __extension__ unsigned long long int	magic;
   char				u_comm [32];
   __extension__ unsigned long long int	u_debugreg [8];

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d15fe576dbc48e3f31f5237c9263e8955eb47670

commit d15fe576dbc48e3f31f5237c9263e8955eb47670
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 14:05:57 2012 -0700

    Use anonymous union in bits/resource.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index c266b95..6a1977a 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,12 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Use
+	__rlim_t cast.
+	(rusage): Use anonymous union.
+	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: Removed.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/bits/mqueue.h: Include <bits/types.h>
 	instead of <sys/types.h>.
 
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index be852e5..218c87e 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -1,6 +1,5 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994, 1996-2000, 2004, 2005, 2008, 2009, 2010, 2011, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1994-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -113,7 +112,7 @@ enum __rlimit_resource
 
 /* Value to indicate that there is no limit.  */
 #ifndef __USE_FILE_OFFSET64
-# define RLIM_INFINITY ((unsigned long int)(~0UL))
+# define RLIM_INFINITY ((__rlim_t) -1)
 #else
 # define RLIM_INFINITY 0xffffffffffffffffuLL
 #endif
@@ -187,39 +186,96 @@ struct rusage
     /* Total amount of system time used.  */
     struct timeval ru_stime;
     /* Maximum resident set size (in kilobytes).  */
-    long int ru_maxrss;
+    __extension__ union
+      {
+	long int ru_maxrss;
+	__syscall_slong_t __ru_maxrss_word;
+      };
     /* Amount of sharing of text segment memory
        with other processes (kilobyte-seconds).  */
-    long int ru_ixrss;
+    /* Maximum resident set size (in kilobytes).  */
+    __extension__ union
+      {
+	long int ru_ixrss;
+	__syscall_slong_t __ru_ixrss_word;
+      };
     /* Amount of data segment memory used (kilobyte-seconds).  */
-    long int ru_idrss;
+    __extension__ union
+      {
+	long int ru_idrss;
+	__syscall_slong_t __ru_idrss_word;
+      };
     /* Amount of stack memory used (kilobyte-seconds).  */
-    long int ru_isrss;
+    __extension__ union
+      {
+	long int ru_isrss;
+	 __syscall_slong_t __ru_isrss_word;
+      };
     /* Number of soft page faults (i.e. those serviced by reclaiming
        a page from the list of pages awaiting reallocation.  */
-    long int ru_minflt;
+    __extension__ union
+      {
+	long int ru_minflt;
+	__syscall_slong_t __ru_minflt_word;
+      };
     /* Number of hard page faults (i.e. those that required I/O).  */
-    long int ru_majflt;
+    __extension__ union
+      {
+	long int ru_majflt;
+	__syscall_slong_t __ru_majflt_word;
+      };
     /* Number of times a process was swapped out of physical memory.  */
-    long int ru_nswap;
+    __extension__ union
+      {
+	long int ru_nswap;
+	__syscall_slong_t __ru_nswap_word;
+      };
     /* Number of input operations via the file system.  Note: This
        and `ru_oublock' do not include operations with the cache.  */
-    long int ru_inblock;
+    __extension__ union
+      {
+	long int ru_inblock;
+	__syscall_slong_t __ru_inblock_word;
+      };
     /* Number of output operations via the file system.  */
-    long int ru_oublock;
+    __extension__ union
+      {
+	long int ru_oublock;
+	__syscall_slong_t __ru_oublock_word;
+      };
     /* Number of IPC messages sent.  */
-    long int ru_msgsnd;
+    __extension__ union
+      {
+	long int ru_msgsnd;
+	__syscall_slong_t __ru_msgsnd_word;
+      };
     /* Number of IPC messages received.  */
-    long int ru_msgrcv;
+    __extension__ union
+      {
+	long int ru_msgrcv;
+	__syscall_slong_t __ru_msgrcv_word;
+      };
     /* Number of signals delivered.  */
-    long int ru_nsignals;
+    __extension__ union
+      {
+	long int ru_nsignals;
+	__syscall_slong_t __ru_nsignals_word;
+      };
     /* Number of voluntary context switches, i.e. because the process
        gave up the process before it had to (usually to wait for some
        resource to be available).  */
-    long int ru_nvcsw;
+    __extension__ union
+      {
+	long int ru_nvcsw;
+	__syscall_slong_t __ru_nvcsw_word;
+      };
     /* Number of involuntary context switches, i.e. a higher priority process
        became runnable or the current process used up its time slice.  */
-    long int ru_nivcsw;
+    __extension__ union
+      {
+	long int ru_nivcsw;
+	__syscall_slong_t __ru_nivcsw_word;
+      };
   };
 
 /* Priority limits.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
deleted file mode 100644
index 76990f1..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994-2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_RESOURCE_H
-# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Transmute defines to enumerations.  The macro re-definitions are
-   necessary because some programs want to test for operating system
-   features with #ifdef RUSAGE_SELF.  In ISO C the reflexive
-   definition is a no-op.  */
-
-/* Kinds of resource limit.  */
-enum __rlimit_resource
-{
-  /* Per-process CPU limit, in seconds.  */
-  RLIMIT_CPU = 0,
-#define RLIMIT_CPU RLIMIT_CPU
-
-  /* Largest file that can be created, in bytes.  */
-  RLIMIT_FSIZE = 1,
-#define	RLIMIT_FSIZE RLIMIT_FSIZE
-
-  /* Maximum size of data segment, in bytes.  */
-  RLIMIT_DATA = 2,
-#define	RLIMIT_DATA RLIMIT_DATA
-
-  /* Maximum size of stack segment, in bytes.  */
-  RLIMIT_STACK = 3,
-#define	RLIMIT_STACK RLIMIT_STACK
-
-  /* Largest core file that can be created, in bytes.  */
-  RLIMIT_CORE = 4,
-#define	RLIMIT_CORE RLIMIT_CORE
-
-  /* Largest resident set size, in bytes.
-     This affects swapping; processes that are exceeding their
-     resident set size will be more likely to have physical memory
-     taken from them.  */
-  __RLIMIT_RSS = 5,
-#define	RLIMIT_RSS __RLIMIT_RSS
-
-  /* Number of open files.  */
-  RLIMIT_NOFILE = 7,
-  __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
-#define RLIMIT_NOFILE RLIMIT_NOFILE
-#define RLIMIT_OFILE __RLIMIT_OFILE
-
-  /* Address space limit.  */
-  RLIMIT_AS = 9,
-#define RLIMIT_AS RLIMIT_AS
-
-  /* Number of processes.  */
-  __RLIMIT_NPROC = 6,
-#define RLIMIT_NPROC __RLIMIT_NPROC
-
-  /* Locked-in-memory address space.  */
-  __RLIMIT_MEMLOCK = 8,
-#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
-
-  /* Maximum number of file locks.  */
-  __RLIMIT_LOCKS = 10,
-#define RLIMIT_LOCKS __RLIMIT_LOCKS
-
-  /* Maximum number of pending signals.  */
-  __RLIMIT_SIGPENDING = 11,
-#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
-
-  /* Maximum bytes in POSIX message queues.  */
-  __RLIMIT_MSGQUEUE = 12,
-#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
-
-  /* Maximum nice priority allowed to raise to.
-     Nice levels 19 .. -20 correspond to 0 .. 39
-     values of this resource limit.  */
-  __RLIMIT_NICE = 13,
-#define RLIMIT_NICE __RLIMIT_NICE
-
-  /* Maximum realtime priority allowed for non-priviledged
-     processes.  */
-  __RLIMIT_RTPRIO = 14,
-#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
-
-  /* Maximum CPU time in µs that a process scheduled under a real-time
-     scheduling policy may consume without making a blocking system
-     call before being forcibly descheduled.  */
-  __RLIMIT_RTTIME = 15,
-#define RLIMIT_RTTIME __RLIMIT_RTTIME
-
-  __RLIMIT_NLIMITS = 16,
-  __RLIM_NLIMITS = __RLIMIT_NLIMITS
-#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
-#define RLIM_NLIMITS __RLIM_NLIMITS
-};
-
-/* Value to indicate that there is no limit.  */
-#ifndef __USE_FILE_OFFSET64
-# define RLIM_INFINITY ((__rlim_t) -1)
-#else
-# define RLIM_INFINITY 0xffffffffffffffffuLL
-#endif
-
-#ifdef __USE_LARGEFILE64
-# define RLIM64_INFINITY 0xffffffffffffffffuLL
-#endif
-
-/* We can represent all limits.  */
-#define RLIM_SAVED_MAX	RLIM_INFINITY
-#define RLIM_SAVED_CUR	RLIM_INFINITY
-
-
-/* Type for resource quantity measurement.  */
-#ifndef __USE_FILE_OFFSET64
-typedef __rlim_t rlim_t;
-#else
-typedef __rlim64_t rlim_t;
-#endif
-#ifdef __USE_LARGEFILE64
-typedef __rlim64_t rlim64_t;
-#endif
-
-struct rlimit
-  {
-    /* The current (soft) limit.  */
-    rlim_t rlim_cur;
-    /* The hard limit.  */
-    rlim_t rlim_max;
-  };
-
-#ifdef __USE_LARGEFILE64
-struct rlimit64
-  {
-    /* The current (soft) limit.  */
-    rlim64_t rlim_cur;
-    /* The hard limit.  */
-    rlim64_t rlim_max;
- };
-#endif
-
-/* Whose usage statistics do you want?  */
-enum __rusage_who
-{
-  /* The calling process.  */
-  RUSAGE_SELF = 0,
-#define RUSAGE_SELF RUSAGE_SELF
-
-  /* All of its terminated child processes.  */
-  RUSAGE_CHILDREN = -1
-#define RUSAGE_CHILDREN RUSAGE_CHILDREN
-
-#ifdef __USE_GNU
-  ,
-  /* The calling thread.  */
-  RUSAGE_THREAD = 1
-# define RUSAGE_THREAD RUSAGE_THREAD
-  /* Name for the same functionality on Solaris.  */
-# define RUSAGE_LWP RUSAGE_THREAD
-#endif
-};
-
-#define __need_timeval
-#include <bits/time.h>		/* For `struct timeval'.  */
-
-/* Structure which says how much of each resource has been used.  */
-struct rusage
-  {
-    /* Total amount of user time used.  */
-    struct timeval ru_utime;
-    /* Total amount of system time used.  */
-    struct timeval ru_stime;
-    /* Maximum resident set size (in kilobytes).  */
-    long int ru_maxrss;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused1;
-#endif
-    /* Amount of sharing of text segment memory
-       with other processes (kilobyte-seconds).  */
-    long int ru_ixrss;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused2;
-#endif
-    /* Amount of data segment memory used (kilobyte-seconds).  */
-    long int ru_idrss;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused3;
-#endif
-    /* Amount of stack memory used (kilobyte-seconds).  */
-    long int ru_isrss;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused4;
-#endif
-    /* Number of soft page faults (i.e. those serviced by reclaiming
-       a page from the list of pages awaiting reallocation.  */
-    long int ru_minflt;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused5;
-#endif
-    /* Number of hard page faults (i.e. those that required I/O).  */
-    long int ru_majflt;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused6;
-#endif
-    /* Number of times a process was swapped out of physical memory.  */
-    long int ru_nswap;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused7;
-#endif
-    /* Number of input operations via the file system.  Note: This
-       and `ru_oublock' do not include operations with the cache.  */
-    long int ru_inblock;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused8;
-#endif
-    /* Number of output operations via the file system.  */
-    long int ru_oublock;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused9;
-#endif
-    /* Number of IPC messages sent.  */
-    long int ru_msgsnd;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused10;
-#endif
-    /* Number of IPC messages received.  */
-    long int ru_msgrcv;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused11;
-#endif
-    /* Number of signals delivered.  */
-    long int ru_nsignals;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused12;
-#endif
-    /* Number of voluntary context switches, i.e. because the process
-       gave up the process before it had to (usually to wait for some
-       resource to be available).  */
-    long int ru_nvcsw;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused13;
-#endif
-    /* Number of involuntary context switches, i.e. a higher priority process
-       became runnable or the current process used up its time slice.  */
-    long int ru_nivcsw;
-#if defined __x86_64__ && defined __ILP32__
-    long int __unused14;
-#endif
-  };
-
-/* Priority limits.  */
-#define PRIO_MIN	-20	/* Minimum priority a process can have.  */
-#define PRIO_MAX	20	/* Maximum priority a process can have.  */
-
-/* The type of the WHICH argument to `getpriority' and `setpriority',
-   indicating what flavor of entity the WHO argument specifies.  */
-enum __priority_which
-{
-  PRIO_PROCESS = 0,		/* WHO is a process ID.  */
-#define PRIO_PROCESS PRIO_PROCESS
-  PRIO_PGRP = 1,		/* WHO is a process group ID.  */
-#define PRIO_PGRP PRIO_PGRP
-  PRIO_USER = 2			/* WHO is a user ID.  */
-#define PRIO_USER PRIO_USER
-};
-
-
-__BEGIN_DECLS
-
-#ifdef __USE_GNU
-/* Modify and return resource limits of a process atomically.  */
-# ifndef __USE_FILE_OFFSET64
-extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
-		    const struct rlimit *__new_limit,
-		    struct rlimit *__old_limit) __THROW;
-# else
-#  ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
-				     enum __rlimit_resource __resource,
-				     const struct rlimit *__new_limit,
-				     struct rlimit *__old_limit), prlimit64);
-#  else
-#   define prlimit prlimit64
-#  endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
-		      const struct rlimit64 *__new_limit,
-		      struct rlimit64 *__old_limit) __THROW;
-# endif
-#endif
-
-__END_DECLS

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=aa98a84744003a61b359fcaf7933bff41da5a696

commit aa98a84744003a61b359fcaf7933bff41da5a696
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 14:03:12 2012 -0700

    Include <bits/types.h> instead of <sys/types.h>

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 0c397c2..c266b95 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/bits/mqueue.h: Include <bits/types.h>
+	instead of <sys/types.h>.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h (sigcontext):
 	Use anonymous union.
 
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index 5ce7c8b..c21246d 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -19,7 +19,7 @@
 # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
 
 typedef int mqd_t;
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2c97d133b2717f0ddcf372394055c5df16c21eac

commit 2c97d133b2717f0ddcf372394055c5df16c21eac
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 13:47:04 2012 -0700

    Use anonymous union in x86_64/bits/sigcontext.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 8007588..0c397c2 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h (sigcontext):
+	Use anonymous union.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Reformat and use
 	__syscall_slong_t.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index a157fc5..d9ba716 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -147,10 +147,11 @@ struct sigcontext
   __uint64_t trapno;
   __uint64_t oldmask;
   __uint64_t cr2;
-  struct _fpstate * fpstate;
-# ifdef __ILP32__
-  unsigned int pad0;
-# endif
+  __extension__ union
+    {
+      struct _fpstate * fpstate;
+      __uint64_t __fpstate_word;
+    };
   __uint64_t __reserved1 [8];
 };
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=cef4676f539fa00bc01f931d5c6f0af2b7a4d0f2

commit cef4676f539fa00bc01f931d5c6f0af2b7a4d0f2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 13:23:47 2012 -0700

    Remove trailing white space

diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
index b1cbdf1..691c437 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
@@ -25,7 +25,7 @@
 /* Versions of the `struct stat' data structure.  */
 #define _STAT_VER_KERNEL	0
 
-#ifndef __x86_64__ 
+#ifndef __x86_64__
 # define _STAT_VER_SVR4		2
 # define _STAT_VER_LINUX	3
 
@@ -45,7 +45,7 @@
 struct stat
   {
     __dev_t st_dev;		/* Device.  */
-#ifndef __x86_64__ 
+#ifndef __x86_64__
     unsigned short int __pad1;
 #endif
 #if defined __x86_64__ || !defined __USE_FILE_OFFSET64
@@ -53,7 +53,7 @@ struct stat
 #else
     __ino_t __st_ino;			/* 32bit file serial number.	*/
 #endif
-#ifndef __x86_64__ 
+#ifndef __x86_64__
     __mode_t st_mode;			/* File mode.  */
     __nlink_t st_nlink;			/* Link count.  */
 #else
@@ -62,11 +62,11 @@ struct stat
 #endif
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-#ifdef __x86_64__ 
+#ifdef __x86_64__
     int __pad0;
 #endif
     __dev_t st_rdev;		/* Device number, if device.  */
-#ifndef __x86_64__ 
+#ifndef __x86_64__
     unsigned short int __pad2;
 #endif
 #if defined __x86_64__ || !defined __USE_FILE_OFFSET64
@@ -101,7 +101,7 @@ struct stat
     __time_t st_ctime;			/* Time of last status change.  */
     __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
 #endif
-#ifdef __x86_64__ 
+#ifdef __x86_64__
     __syscall_slong_t __unused[3];
 #else
 # ifndef __USE_FILE_OFFSET64
@@ -162,7 +162,7 @@ struct stat64
     __time_t st_ctime;			/* Time of last status change.  */
     __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
 # endif
-# ifdef __x86_64__ 
+# ifdef __x86_64__
     __syscall_slong_t __unused[3];
 # else
     __ino64_t st_ino;			/* File serial number.		*/

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e60e6155c54f0dc8ddb6a2ee6ed49fbb810193f7

commit e60e6155c54f0dc8ddb6a2ee6ed49fbb810193f7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 13:11:07 2012 -0700

    Reformat and use __syscall_slong_t

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7726a5c..8007588 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Reformat and use
+	__syscall_slong_t.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Reformat.
 
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
index 843122c..b1cbdf1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
@@ -51,11 +51,11 @@ struct stat
 #if defined __x86_64__ || !defined __USE_FILE_OFFSET64
     __ino_t st_ino;		/* File serial number.	*/
 #else
-    __ino_t __st_ino;		/* 32bit file serial number.	*/
+    __ino_t __st_ino;			/* 32bit file serial number.	*/
 #endif
 #ifndef __x86_64__ 
-    __mode_t st_mode;		/* File mode.  */
-    __nlink_t st_nlink;		/* Link count.  */
+    __mode_t st_mode;			/* File mode.  */
+    __nlink_t st_nlink;			/* Link count.  */
 #else
     __nlink_t st_nlink;		/* Link count.  */
     __mode_t st_mode;		/* File mode.  */
@@ -102,7 +102,7 @@ struct stat
     __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
 #endif
 #ifdef __x86_64__ 
-    long long int __unused[3];
+    __syscall_slong_t __unused[3];
 #else
 # ifndef __USE_FILE_OFFSET64
     unsigned long int __unused4;
@@ -163,7 +163,7 @@ struct stat64
     __syscall_ulong_t st_ctimensec;	/* Nsecs of last status change.  */
 # endif
 # ifdef __x86_64__ 
-    long long int __unused[3];
+    __syscall_slong_t __unused[3];
 # else
     __ino64_t st_ino;			/* File serial number.		*/
 # endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bc078378cc3c96d3b507c7d21871ef6f03a92299

commit bc078378cc3c96d3b507c7d21871ef6f03a92299
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:56:28 2012 -0700

    Reformat x86_64/bits/typesizes.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 70d8ae9..7726a5c 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Reformat.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: Restored.
 	* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index 55958ed..bada64d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -1,4 +1,4 @@
-/* bits/typesizes.h -- underlying types for *_t.  X86_64 version.
+/* bits/typesizes.h -- underlying types for *_t.  Linux/x86-64 version.
    Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -28,11 +28,11 @@
 
 /* X32 kernel interface is 64-bit.  */
 #if defined __x86_64__ && defined __ILP32__
-#define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE
-#define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE
+# define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE
+# define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE
 #else
-#define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
-#define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
+# define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+# define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 #endif
 
 #define __DEV_T_TYPE		__UQUAD_TYPE

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=fd52d9ca1e04fd89dad9d52d25f457723a0b9d34

commit fd52d9ca1e04fd89dad9d52d25f457723a0b9d34
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:43:07 2012 -0700

    Restore sysdeps/unix/sysv/linux/x86_64/bits/statfs.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index f35cab0..70d8ae9 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: Restored.
+	* sysdeps/unix/sysv/linux/bits/statfs.h: Likewise.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h (prlimit):
 	Replace __const with const.
 	(prlimit64): Likewise.
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index 24fae05..5019eb1 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000,2002,2003,2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,8 +23,8 @@
 
 struct statfs
   {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
+    __SWORD_TYPE f_type;
+    __SWORD_TYPE f_bsize;
 #ifndef __USE_FILE_OFFSET64
     __fsblkcnt_t f_blocks;
     __fsblkcnt_t f_bfree;
@@ -39,27 +39,27 @@ struct statfs
     __fsfilcnt64_t f_ffree;
 #endif
     __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
+    __SWORD_TYPE f_namelen;
+    __SWORD_TYPE f_frsize;
+    __SWORD_TYPE f_flags;
+    __SWORD_TYPE f_spare[4];
   };
 
 #ifdef __USE_LARGEFILE64
 struct statfs64
   {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
+    __SWORD_TYPE f_type;
+    __SWORD_TYPE f_bsize;
     __fsblkcnt64_t f_blocks;
     __fsblkcnt64_t f_bfree;
     __fsblkcnt64_t f_bavail;
     __fsfilcnt64_t f_files;
     __fsfilcnt64_t f_ffree;
     __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
+    __SWORD_TYPE f_namelen;
+    __SWORD_TYPE f_frsize;
+    __SWORD_TYPE f_flags;
+    __SWORD_TYPE f_spare[4];
   };
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
similarity index 97%
copy from sysdeps/unix/sysv/linux/bits/statfs.h
copy to sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
index 24fae05..df65fc8 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
+/* Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=81986ac47d2b80ab80cdd9a548b7e05e0390f2eb

commit 81986ac47d2b80ab80cdd9a548b7e05e0390f2eb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:34:35 2012 -0700

    Replace __const with const.

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9493e61..f35cab0 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h (prlimit):
+	Replace __const with const.
+	(prlimit64): Likewise.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Replace
 	__extension__ unsigned long long int with __uint64_t.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
index e519228..76990f1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
@@ -286,13 +286,13 @@ __BEGIN_DECLS
 /* Modify and return resource limits of a process atomically.  */
 # ifndef __USE_FILE_OFFSET64
 extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
-		    __const struct rlimit *__new_limit,
+		    const struct rlimit *__new_limit,
 		    struct rlimit *__old_limit) __THROW;
 # else
 #  ifdef __REDIRECT_NTH
 extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
 				     enum __rlimit_resource __resource,
-				     __const struct rlimit *__new_limit,
+				     const struct rlimit *__new_limit,
 				     struct rlimit *__old_limit), prlimit64);
 #  else
 #   define prlimit prlimit64
@@ -300,7 +300,7 @@ extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
 # endif
 # ifdef __USE_LARGEFILE64
 extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
-		      __const struct rlimit64 *__new_limit,
+		      const struct rlimit64 *__new_limit,
 		      struct rlimit64 *__old_limit) __THROW;
 # endif
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=910f9606f35eea2265d948b86acd8420c1c67625

commit 910f9606f35eea2265d948b86acd8420c1c67625
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:22:07 2012 -0700

    Update copyright years

diff --git a/sysdeps/unix/sysv/linux/bits/ipc.h b/sysdeps/unix/sysv/linux/bits/ipc.h
index 6452d50..f1d5d37 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index 805b16c..5ce7c8b 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index e0b4061..24fae05 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2010,2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index dcb632a..0d0356e 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1995-1997,1999,2007,2009,2011,2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bb48f05f14d97cd334d1b53da0070e7949fc95ef

commit bb48f05f14d97cd334d1b53da0070e7949fc95ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:13:24 2012 -0700

    Update copyright years

diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
index 5d4be6a..7a3938c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
index b690790..46bf6ef 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 2001, 2002, 2004, 2011, 2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d908bb31028fbbee5b5d4529480925285367101d

commit d908bb31028fbbee5b5d4529480925285367101d
Merge: da938a1 953ca31
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:09:30 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=da938a15e2146388908a2cc77c4e47ae0008ea4a

commit da938a15e2146388908a2cc77c4e47ae0008ea4a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 12:00:40 2012 -0700

    Replace __extension__ unsigned long long int with __uint64_t

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 28ee4b1..9493e61 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Replace
+	__extension__ unsigned long long int with __uint64_t.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Don't
 	include <bits/wordsize.h>.  Check __ILP32__ instead of
 	__WORDSIZE.
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index 44356c1..a157fc5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -121,37 +121,37 @@ struct _fpstate
 
 struct sigcontext
 {
-  __extension__ unsigned long long r8;
-  __extension__ unsigned long long r9;
-  __extension__ unsigned long long r10;
-  __extension__ unsigned long long r11;
-  __extension__ unsigned long long r12;
-  __extension__ unsigned long long r13;
-  __extension__ unsigned long long r14;
-  __extension__ unsigned long long r15;
-  __extension__ unsigned long long rdi;
-  __extension__ unsigned long long rsi;
-  __extension__ unsigned long long rbp;
-  __extension__ unsigned long long rbx;
-  __extension__ unsigned long long rdx;
-  __extension__ unsigned long long rax;
-  __extension__ unsigned long long rcx;
-  __extension__ unsigned long long rsp;
-  __extension__ unsigned long long rip;
-  __extension__ unsigned long long eflags;
+  __uint64_t r8;
+  __uint64_t r9;
+  __uint64_t r10;
+  __uint64_t r11;
+  __uint64_t r12;
+  __uint64_t r13;
+  __uint64_t r14;
+  __uint64_t r15;
+  __uint64_t rdi;
+  __uint64_t rsi;
+  __uint64_t rbp;
+  __uint64_t rbx;
+  __uint64_t rdx;
+  __uint64_t rax;
+  __uint64_t rcx;
+  __uint64_t rsp;
+  __uint64_t rip;
+  __uint64_t eflags;
   unsigned short cs;
   unsigned short gs;
   unsigned short fs;
   unsigned short __pad0;
-  __extension__ unsigned long long err;
-  __extension__ unsigned long long trapno;
-  __extension__ unsigned long long oldmask;
-  __extension__ unsigned long long cr2;
+  __uint64_t err;
+  __uint64_t trapno;
+  __uint64_t oldmask;
+  __uint64_t cr2;
   struct _fpstate * fpstate;
 # ifdef __ILP32__
   unsigned int pad0;
 # endif
-  __extension__ unsigned long long __reserved1 [8];
+  __uint64_t __reserved1 [8];
 };
 
 #endif /* __x86_64__ */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a35dc3a5f3720637f516959e94675c62815621cb

commit a35dc3a5f3720637f516959e94675c62815621cb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 11:42:43 2012 -0700

    Collapse the copyright years

diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/msq.h b/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
index b375fd0..7f23500 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
index 956fd82..e519228 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
@@ -1,6 +1,5 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994, 1996-2000, 2004, 2005, 2008, 2009, 2010, 2011, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1994-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sem.h b/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
index 0065c73..92bbcef 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2011, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/shm.h b/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
index c7d1dfb..cba25ed 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004, 2009, 2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index b4db4cf..44356c1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
index e20b253..843122c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2003,2009,2010,2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h b/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
index 21f1ee8..21b1bdd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
@@ -1,5 +1,4 @@
-/* Copyright (C) 1997, 1998, 2000, 2001, 2002, 2006, 2012
-   Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=691d2ea78d05c0847eeb1ca36797beeef031290c

commit 691d2ea78d05c0847eeb1ca36797beeef031290c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 11:30:55 2012 -0700

    Check __ILP32__ instead of __WORDSIZE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 89cda8c..28ee4b1 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Don't
+	include <bits/wordsize.h>.  Check __ILP32__ instead of
+	__WORDSIZE.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Add
 	__extension__ to long long int.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index 9b9c71c..b4db4cf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -22,8 +22,6 @@
 # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
 #endif
 
-#include <bits/wordsize.h>
-
 struct _fpreg
 {
   unsigned short significand[4];
@@ -150,7 +148,7 @@ struct sigcontext
   __extension__ unsigned long long oldmask;
   __extension__ unsigned long long cr2;
   struct _fpstate * fpstate;
-# if __WORDSIZE == 32
+# ifdef __ILP32__
   unsigned int pad0;
 # endif
   __extension__ unsigned long long __reserved1 [8];

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0a66d67ac8fe1d870dc5d80563e2e65b0a3f5089

commit 0a66d67ac8fe1d870dc5d80563e2e65b0a3f5089
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 11:24:55 2012 -0700

    Add __extension__ to long long int

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 79b27ac..89cda8c 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: Add
+	__extension__ to long long int.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Define
 	types with __SYSCALL_SLONG_TYPE and __SYSCALL_ULONG_TYPE.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index 4e55310..9b9c71c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -123,37 +123,37 @@ struct _fpstate
 
 struct sigcontext
 {
-  unsigned long long r8;
-  unsigned long long r9;
-  unsigned long long r10;
-  unsigned long long r11;
-  unsigned long long r12;
-  unsigned long long r13;
-  unsigned long long r14;
-  unsigned long long r15;
-  unsigned long long rdi;
-  unsigned long long rsi;
-  unsigned long long rbp;
-  unsigned long long rbx;
-  unsigned long long rdx;
-  unsigned long long rax;
-  unsigned long long rcx;
-  unsigned long long rsp;
-  unsigned long long rip;
-  unsigned long long eflags;
+  __extension__ unsigned long long r8;
+  __extension__ unsigned long long r9;
+  __extension__ unsigned long long r10;
+  __extension__ unsigned long long r11;
+  __extension__ unsigned long long r12;
+  __extension__ unsigned long long r13;
+  __extension__ unsigned long long r14;
+  __extension__ unsigned long long r15;
+  __extension__ unsigned long long rdi;
+  __extension__ unsigned long long rsi;
+  __extension__ unsigned long long rbp;
+  __extension__ unsigned long long rbx;
+  __extension__ unsigned long long rdx;
+  __extension__ unsigned long long rax;
+  __extension__ unsigned long long rcx;
+  __extension__ unsigned long long rsp;
+  __extension__ unsigned long long rip;
+  __extension__ unsigned long long eflags;
   unsigned short cs;
   unsigned short gs;
   unsigned short fs;
   unsigned short __pad0;
-  unsigned long long err;
-  unsigned long long trapno;
-  unsigned long long oldmask;
-  unsigned long long cr2;
+  __extension__ unsigned long long err;
+  __extension__ unsigned long long trapno;
+  __extension__ unsigned long long oldmask;
+  __extension__ unsigned long long cr2;
   struct _fpstate * fpstate;
 # if __WORDSIZE == 32
   unsigned int pad0;
 # endif
-  unsigned long long __reserved1 [8];
+  __extension__ unsigned long long __reserved1 [8];
 };
 
 #endif /* __x86_64__ */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=af29eeb6ef63db19417eca2e6e10f6e7d2a5aa09

commit af29eeb6ef63db19417eca2e6e10f6e7d2a5aa09
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 11:15:02 2012 -0700

    Use __SYSCALL_SLONG_TYPE and __SYSCALL_ULONG_TYPE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index a2435a4..79b27ac 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Define
+	types with __SYSCALL_SLONG_TYPE and __SYSCALL_ULONG_TYPE.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Add
 	__extension__ to long long int.
 	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Likewise.
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index 9ad95a5..55958ed 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -28,31 +28,9 @@
 
 /* X32 kernel interface is 64-bit.  */
 #if defined __x86_64__ && defined __ILP32__
-#define __INO_T_TYPE		__UQUAD_TYPE
-#define __NLINK_T_TYPE		__UQUAD_TYPE
-#define __OFF_T_TYPE		__SQUAD_TYPE
-#define __RLIM_T_TYPE		__UQUAD_TYPE
-#define __BLKCNT_T_TYPE		__SQUAD_TYPE
-#define __FSFILCNT_T_TYPE	__UQUAD_TYPE
-#define __FSBLKCNT_T_TYPE	__UQUAD_TYPE
-#define __CLOCK_T_TYPE		__SQUAD_TYPE
-#define __TIME_T_TYPE		__SQUAD_TYPE
-#define __SUSECONDS_T_TYPE	__SQUAD_TYPE
-#define __BLKSIZE_T_TYPE	__SQUAD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE
 #define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE
 #else
-#define __INO_T_TYPE		__ULONGWORD_TYPE
-#define __NLINK_T_TYPE		__UWORD_TYPE
-#define __OFF_T_TYPE		__SLONGWORD_TYPE
-#define __RLIM_T_TYPE		__ULONGWORD_TYPE
-#define __BLKCNT_T_TYPE		__SLONGWORD_TYPE
-#define __FSFILCNT_T_TYPE	__ULONGWORD_TYPE
-#define __FSBLKCNT_T_TYPE	__ULONGWORD_TYPE
-#define __CLOCK_T_TYPE		__SLONGWORD_TYPE
-#define __TIME_T_TYPE		__SLONGWORD_TYPE
-#define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE
-#define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 #endif
@@ -60,21 +38,32 @@
 #define __DEV_T_TYPE		__UQUAD_TYPE
 #define __UID_T_TYPE		__U32_TYPE
 #define __GID_T_TYPE		__U32_TYPE
+#define __INO_T_TYPE		__SYSCALL_ULONG_TYPE
 #define __INO64_T_TYPE		__UQUAD_TYPE
 #define __MODE_T_TYPE		__U32_TYPE
+#define __NLINK_T_TYPE		__SYSCALL_ULONG_TYPE
+#define __OFF_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __OFF64_T_TYPE		__SQUAD_TYPE
 #define __PID_T_TYPE		__S32_TYPE
+#define __RLIM_T_TYPE		__SYSCALL_ULONG_TYPE
 #define __RLIM64_T_TYPE		__UQUAD_TYPE
+#define __BLKCNT_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __BLKCNT64_T_TYPE	__SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE	__SYSCALL_ULONG_TYPE
 #define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE
+#define __FSFILCNT_T_TYPE	__SYSCALL_ULONG_TYPE
 #define __FSFILCNT64_T_TYPE	__UQUAD_TYPE
 #define __ID_T_TYPE		__U32_TYPE
+#define __CLOCK_T_TYPE		__SYSCALL_SLONG_TYPE
+#define __TIME_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __USECONDS_T_TYPE	__U32_TYPE
+#define __SUSECONDS_T_TYPE	__SYSCALL_SLONG_TYPE
 #define __DADDR_T_TYPE		__S32_TYPE
-#define __SWBLK_T_TYPE		__SLONGWORD_TYPE
+#define __SWBLK_T_TYPE		__SYSCALL_SLONG_TYPE
 #define __KEY_T_TYPE		__S32_TYPE
 #define __CLOCKID_T_TYPE	__S32_TYPE
 #define __TIMER_T_TYPE		void *
+#define __BLKSIZE_T_TYPE	__SYSCALL_SLONG_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=de8d7efba4d37ef3bddaca824d6035bad36ff637

commit de8d7efba4d37ef3bddaca824d6035bad36ff637
Merge: 82d0d62 34683bb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 10:56:04 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=82d0d62d771475fbecfff2431e8a379e08065405

commit 82d0d62d771475fbecfff2431e8a379e08065405
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 10:55:43 2012 -0700

    Add __extension__ to long long int

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 82889b9..a2435a4 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h: Add
+	__extension__ to long long int.
+	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Likewise.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/x32/gmp-mparam.h (IEEE_DOUBLE_BIG_ENDIAN): New.
 
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
index f9be7c7..5d4be6a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
@@ -28,7 +28,7 @@
 #ifdef __x86_64__
 
 /* Type for general register.  */
-typedef long long int greg_t;
+__extension__ typedef long long int greg_t;
 
 /* Number of general registers.  */
 #define NGREG	23
@@ -126,7 +126,7 @@ typedef struct
     gregset_t gregs;
     /* Note that fpregs is a pointer.  */
     fpregset_t fpregs;
-    unsigned long long __reserved1 [8];
+    __extension__ unsigned long long __reserved1 [8];
 } mcontext_t;
 
 /* Userlevel context.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
index ecc120d..b690790 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
@@ -31,8 +31,8 @@ struct user_fpregs_struct
   unsigned short int	swd;
   unsigned short int	ftw;
   unsigned short int	fop;
-  unsigned long long int rip;
-  unsigned long long int rdp;
+  __extension__ unsigned long long int rip;
+  __extension__ unsigned long long int rdp;
   unsigned int		mxcsr;
   unsigned int		mxcr_mask;
   unsigned int		st_space[32];   /* 8*16 bytes for each FP-reg = 128 bytes */
@@ -42,33 +42,33 @@ struct user_fpregs_struct
 
 struct user_regs_struct
 {
-  unsigned long long int r15;
-  unsigned long long int r14;
-  unsigned long long int r13;
-  unsigned long long int r12;
-  unsigned long long int rbp;
-  unsigned long long int rbx;
-  unsigned long long int r11;
-  unsigned long long int r10;
-  unsigned long long int r9;
-  unsigned long long int r8;
-  unsigned long long int rax;
-  unsigned long long int rcx;
-  unsigned long long int rdx;
-  unsigned long long int rsi;
-  unsigned long long int rdi;
-  unsigned long long int orig_rax;
-  unsigned long long int rip;
-  unsigned long long int cs;
-  unsigned long long int eflags;
-  unsigned long long int rsp;
-  unsigned long long int ss;
-  unsigned long long int fs_base;
-  unsigned long long int gs_base;
-  unsigned long long int ds;
-  unsigned long long int es;
-  unsigned long long int fs;
-  unsigned long long int gs;
+  __extension__ unsigned long long int r15;
+  __extension__ unsigned long long int r14;
+  __extension__ unsigned long long int r13;
+  __extension__ unsigned long long int r12;
+  __extension__ unsigned long long int rbp;
+  __extension__ unsigned long long int rbx;
+  __extension__ unsigned long long int r11;
+  __extension__ unsigned long long int r10;
+  __extension__ unsigned long long int r9;
+  __extension__ unsigned long long int r8;
+  __extension__ unsigned long long int rax;
+  __extension__ unsigned long long int rcx;
+  __extension__ unsigned long long int rdx;
+  __extension__ unsigned long long int rsi;
+  __extension__ unsigned long long int rdi;
+  __extension__ unsigned long long int orig_rax;
+  __extension__ unsigned long long int rip;
+  __extension__ unsigned long long int cs;
+  __extension__ unsigned long long int eflags;
+  __extension__ unsigned long long int rsp;
+  __extension__ unsigned long long int ss;
+  __extension__ unsigned long long int fs_base;
+  __extension__ unsigned long long int gs_base;
+  __extension__ unsigned long long int ds;
+  __extension__ unsigned long long int es;
+  __extension__ unsigned long long int fs;
+  __extension__ unsigned long long int gs;
 };
 
 struct user
@@ -76,12 +76,12 @@ struct user
   struct user_regs_struct	regs;
   int				u_fpvalid;
   struct user_fpregs_struct	i387;
-  unsigned long long int	u_tsize;
-  unsigned long long int	u_dsize;
-  unsigned long long int	u_ssize;
-  unsigned long long int	start_code;
-  unsigned long long int	start_stack;
-  long long int			signal;
+  __extension__ unsigned long long int	u_tsize;
+  __extension__ unsigned long long int	u_dsize;
+  __extension__ unsigned long long int	u_ssize;
+  __extension__ unsigned long long int	start_code;
+  __extension__ unsigned long long int	start_stack;
+  __extension__ long long int		signal;
   int				reserved;
   struct user_regs_struct*	u_ar0;
 # ifdef __ILP32__
@@ -91,9 +91,9 @@ struct user
 # ifdef __ILP32__
   unsigned int			pad1;
 # endif
-  unsigned long long int	magic;
+  __extension__ unsigned long long int	magic;
   char				u_comm [32];
-  unsigned long long int	u_debugreg [8];
+  __extension__ unsigned long long int	u_debugreg [8];
 };
 
 #else

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=85e840453e8dd59a0f4ffee8212a96a103bbf184

commit 85e840453e8dd59a0f4ffee8212a96a103bbf184
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 10:33:57 2012 -0700

    Update copyright year

diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h b/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h
index fc217d9..2e05e65 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h
@@ -1,5 +1,5 @@
 /* siginfo_t, sigevent and constants.  Linux x86-64 version.
-   Copyright (C) 1997-2002, 2003, 2011, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c33589e8c515810f57c7bfa61f0270655bd6ce2e

commit c33589e8c515810f57c7bfa61f0270655bd6ce2e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 10:13:41 2012 -0700

    Add IEEE_DOUBLE_BIG_ENDIAN to x32 gmp-mparam.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index fb5f207..82889b9 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/x32/gmp-mparam.h (IEEE_DOUBLE_BIG_ENDIAN): New.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/x32/ffs.c: Include <sysdeps/x86_64/ffs.c>.
 	Add alias for ffsl
 
diff --git a/sysdeps/x86_64/x32/gmp-mparam.h b/sysdeps/x86_64/x32/gmp-mparam.h
index de2793f..69ced24 100644
--- a/sysdeps/x86_64/x32/gmp-mparam.h
+++ b/sysdeps/x86_64/x32/gmp-mparam.h
@@ -29,3 +29,5 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 #define BITS_PER_INT 32
 #define BITS_PER_SHORTINT 16
 #define BITS_PER_CHAR 8
+
+#define IEEE_DOUBLE_BIG_ENDIAN 0

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d4575d27c628c8579f3c127bdeb608fefa1b6222

commit d4575d27c628c8579f3c127bdeb608fefa1b6222
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 10:12:53 2012 -0700

    Incldue x86_64 ffs.c in x32 ffs.c

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 67d865a..fb5f207 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/x32/ffs.c: Include <sysdeps/x86_64/ffs.c>.
+	Add alias for ffsl
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/timex.h: Moved to ...
 	* sysdeps/unix/sysv/linux/bits/timex.h: Here.
 
diff --git a/sysdeps/x86_64/x32/ffs.c b/sysdeps/x86_64/x32/ffs.c
index 393f501..fa7de8b 100644
--- a/sysdeps/x86_64/x32/ffs.c
+++ b/sysdeps/x86_64/x32/ffs.c
@@ -1 +1,4 @@
-#include <sysdeps/i386/i686/ffs.c>
+#define ffsl __something_else
+#include <sysdeps/x86_64/ffs.c>
+#undef ffsl
+weak_alias (__ffs, ffsl)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1628095822c1d504b95c1c9a282886499d09f023

commit 1628095822c1d504b95c1c9a282886499d09f023
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:52:53 2012 -0700

    Remove x86_64 bits/timex.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7244af5..67d865a 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/timex.h: Moved to ...
+	* sysdeps/unix/sysv/linux/bits/timex.h: Here.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: Moved to ...
 	* sysdeps/unix/sysv/linux/bits/statfs.h: Here.
 
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 6d494b1..dcb632a 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995-1997,1999,2007,2009,2011 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1997,1999,2007,2009,2011,2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,28 +23,47 @@
 
 struct timex
 {
-  unsigned int modes;	/* mode selector */
-  long int offset;	/* time offset (usec) */
-  long int freq;	/* frequency offset (scaled ppm) */
-  long int maxerror;	/* maximum error (usec) */
-  long int esterror;	/* estimated error (usec) */
-  int status;		/* clock command/status */
-  long int constant;	/* pll time constant */
-  long int precision;	/* clock precision (usec) (read only) */
-  long int tolerance;	/* clock frequency tolerance (ppm) (read only) */
-  struct timeval time;	/* (read only) */
-  long int tick;	/* (modified) usecs between clock ticks */
-
-  long int ppsfreq;	/* pps frequency (scaled ppm) (ro) */
-  long int jitter;	/* pps jitter (us) (ro) */
-  int shift;		/* interval duration (s) (shift) (ro) */
-  long int stabil;	/* pps stability (scaled ppm) (ro) */
-  long int jitcnt;	/* jitter limit exceeded (ro) */
-  long int calcnt;	/* calibration intervals (ro) */
-  long int errcnt;	/* calibration errors (ro) */
-  long int stbcnt;	/* stability limit exceeded (ro) */
-
-  int tai;		/* TAI offset (ro) */
+  /* mode selector */
+  unsigned int modes;
+  /* time offset (usec) */
+  __syscall_slong_t offset;
+  /* frequency offset (scaled ppm) */
+  __syscall_slong_t freq;
+  /* maximum error (usec) */
+  __syscall_slong_t maxerror;
+  /* estimated error (usec) */
+  __syscall_slong_t esterror;
+  /* clock command/status */
+  int status;
+  /* pll time constant */
+  __syscall_slong_t constant;
+  /* clock precision (usec) (read only) */
+  __syscall_slong_t precision;
+  /* clock frequency tolerance (ppm) (read only) */
+  __syscall_slong_t tolerance;
+  /* (read only) */
+  struct timeval time;
+  /* (modified) usecs between clock ticks */
+  __syscall_slong_t tick;
+  /* pps frequency (scaled ppm) (ro) */
+  __syscall_slong_t ppsfreq;
+  /* pps jitter (us) (ro) */
+  __syscall_slong_t jitter;
+  /* interval duration (s) (shift) (ro) */
+  int shift;
+  /* pps stability (scaled ppm) (ro) */
+  __syscall_slong_t stabil;
+  /* jitter limit exceeded (ro) */
+  __syscall_slong_t jitcnt;
+  /* calibration intervals (ro) */
+  __syscall_slong_t calcnt;
+  /* calibration errors (ro) */
+  __syscall_slong_t errcnt;
+  /* stability limit exceeded (ro) */
+  __syscall_slong_t stbcnt;
+
+  /* TAI offset (ro) */
+  int tai;
 
   /* ??? */
   int  :32; int  :32; int  :32; int  :32;
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/timex.h b/sysdeps/unix/sysv/linux/x86_64/bits/timex.h
deleted file mode 100644
index c32e608..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/timex.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 1995-1997, 1999, 2007, 2009, 2011, 2012
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef	_BITS_TIMEX_H
-#define	_BITS_TIMEX_H	1
-
-/* These definitions from linux/timex.h as of 2.6.30.  */
-
-struct timex
-{
-  /* mode selector */
-  unsigned int modes;
-  /* time offset (usec) */
-  __syscall_slong_t offset;
-  /* frequency offset (scaled ppm) */
-  __syscall_slong_t freq;
-  /* maximum error (usec) */
-  __syscall_slong_t maxerror;
-  /* estimated error (usec) */
-  __syscall_slong_t esterror;
-  /* clock command/status */
-  int status;
-  /* pll time constant */
-  __syscall_slong_t constant;
-  /* clock precision (usec) (read only) */
-  __syscall_slong_t precision;
-  /* clock frequency tolerance (ppm) (read only) */
-  __syscall_slong_t tolerance;
-  /* (read only) */
-  struct timeval time;
-  /* (modified) usecs between clock ticks */
-  __syscall_slong_t tick;
-  /* pps frequency (scaled ppm) (ro) */
-  __syscall_slong_t ppsfreq;
-  /* pps jitter (us) (ro) */
-  __syscall_slong_t jitter;
-  /* interval duration (s) (shift) (ro) */
-  int shift;
-  /* pps stability (scaled ppm) (ro) */
-  __syscall_slong_t stabil;
-  /* jitter limit exceeded (ro) */
-  __syscall_slong_t jitcnt;
-  /* calibration intervals (ro) */
-  __syscall_slong_t calcnt;
-  /* calibration errors (ro) */
-  __syscall_slong_t errcnt;
-  /* stability limit exceeded (ro) */
-  __syscall_slong_t stbcnt;
-
-  /* TAI offset (ro) */
-  int tai;
-
-  /* ??? */
-  int  :32; int  :32; int  :32; int  :32;
-  int  :32; int  :32; int  :32; int  :32;
-  int  :32; int  :32; int  :32;
-};
-
-/* Mode codes (timex.mode) */
-#define ADJ_OFFSET		0x0001	/* time offset */
-#define ADJ_FREQUENCY		0x0002	/* frequency offset */
-#define ADJ_MAXERROR		0x0004	/* maximum time error */
-#define ADJ_ESTERROR		0x0008	/* estimated time error */
-#define ADJ_STATUS		0x0010	/* clock status */
-#define ADJ_TIMECONST		0x0020	/* pll time constant */
-#define ADJ_TAI			0x0080	/* set TAI offset */
-#define ADJ_MICRO		0x1000	/* select microsecond resolution */
-#define ADJ_NANO		0x2000	/* select nanosecond resolution */
-#define ADJ_TICK		0x4000	/* tick value */
-#define ADJ_OFFSET_SINGLESHOT	0x8001	/* old-fashioned adjtime */
-#define ADJ_OFFSET_SS_READ	0xa001	/* read-only adjtime */
-
-/* xntp 3.4 compatibility names */
-#define MOD_OFFSET	ADJ_OFFSET
-#define MOD_FREQUENCY	ADJ_FREQUENCY
-#define MOD_MAXERROR	ADJ_MAXERROR
-#define MOD_ESTERROR	ADJ_ESTERROR
-#define MOD_STATUS	ADJ_STATUS
-#define MOD_TIMECONST	ADJ_TIMECONST
-#define MOD_CLKB	ADJ_TICK
-#define MOD_CLKA	ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
-#define MOD_TAI		ADJ_TAI
-#define MOD_MICRO	ADJ_MICRO
-#define MOD_NANO	ADJ_NANO
-
-
-/* Status codes (timex.status) */
-#define STA_PLL		0x0001	/* enable PLL updates (rw) */
-#define STA_PPSFREQ	0x0002	/* enable PPS freq discipline (rw) */
-#define STA_PPSTIME	0x0004	/* enable PPS time discipline (rw) */
-#define STA_FLL		0x0008	/* select frequency-lock mode (rw) */
-
-#define STA_INS		0x0010	/* insert leap (rw) */
-#define STA_DEL		0x0020	/* delete leap (rw) */
-#define STA_UNSYNC	0x0040	/* clock unsynchronized (rw) */
-#define STA_FREQHOLD	0x0080	/* hold frequency (rw) */
-
-#define STA_PPSSIGNAL	0x0100	/* PPS signal present (ro) */
-#define STA_PPSJITTER	0x0200	/* PPS signal jitter exceeded (ro) */
-#define STA_PPSWANDER	0x0400	/* PPS signal wander exceeded (ro) */
-#define STA_PPSERROR	0x0800	/* PPS signal calibration error (ro) */
-
-#define STA_CLOCKERR	0x1000	/* clock hardware fault (ro) */
-#define STA_NANO	0x2000	/* resolution (0 = us, 1 = ns) (ro) */
-#define STA_MODE	0x4000	/* mode (0 = PLL, 1 = FLL) (ro) */
-#define STA_CLK		0x8000	/* clock source (0 = A, 1 = B) (ro) */
-
-/* Read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
-    STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
-
-#endif /* bits/timex.h */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=68c1ff70143295b9eca0debd6b14d18898e65943

commit 68c1ff70143295b9eca0debd6b14d18898e65943
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:48:24 2012 -0700

    Remove x86-64 bits/statfs.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 17da8ba..7244af5 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: Moved to ...
+	* sysdeps/unix/sysv/linux/bits/statfs.h: Here.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: Check
 	__ILP32__ instead of __WORDSIZE.
 
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index 5019eb1..e0b4061 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2010 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000,2002,2003,2010,2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,8 +24,8 @@
 
 struct statfs
   {
-    __SWORD_TYPE f_type;
-    __SWORD_TYPE f_bsize;
+    __syscall_slong_t f_type;
+    __syscall_slong_t f_bsize;
 #ifndef __USE_FILE_OFFSET64
     __fsblkcnt_t f_blocks;
     __fsblkcnt_t f_bfree;
@@ -39,27 +40,27 @@ struct statfs
     __fsfilcnt64_t f_ffree;
 #endif
     __fsid_t f_fsid;
-    __SWORD_TYPE f_namelen;
-    __SWORD_TYPE f_frsize;
-    __SWORD_TYPE f_flags;
-    __SWORD_TYPE f_spare[4];
+    __syscall_slong_t f_namelen;
+    __syscall_slong_t f_frsize;
+    __syscall_slong_t f_flags;
+    __syscall_slong_t f_spare[4];
   };
 
 #ifdef __USE_LARGEFILE64
 struct statfs64
   {
-    __SWORD_TYPE f_type;
-    __SWORD_TYPE f_bsize;
+    __syscall_slong_t f_type;
+    __syscall_slong_t f_bsize;
     __fsblkcnt64_t f_blocks;
     __fsblkcnt64_t f_bfree;
     __fsblkcnt64_t f_bavail;
     __fsfilcnt64_t f_files;
     __fsfilcnt64_t f_ffree;
     __fsid_t f_fsid;
-    __SWORD_TYPE f_namelen;
-    __SWORD_TYPE f_frsize;
-    __SWORD_TYPE f_flags;
-    __SWORD_TYPE f_spare[4];
+    __syscall_slong_t f_namelen;
+    __syscall_slong_t f_frsize;
+    __syscall_slong_t f_flags;
+    __syscall_slong_t f_spare[4];
   };
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h b/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
deleted file mode 100644
index e1f072f..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 1997, 1998, 2000, 2002, 2003, 2010, 2012
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_STATFS_H
-# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-#endif
-
-#include <bits/types.h>
-
-struct statfs
-  {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
-#ifndef __USE_FILE_OFFSET64
-    __fsblkcnt_t f_blocks;
-    __fsblkcnt_t f_bfree;
-    __fsblkcnt_t f_bavail;
-    __fsfilcnt_t f_files;
-    __fsfilcnt_t f_ffree;
-#else
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-#endif
-    __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
-  };
-
-#ifdef __USE_LARGEFILE64
-struct statfs64
-  {
-    __syscall_slong_t f_type;
-    __syscall_slong_t f_bsize;
-    __fsblkcnt64_t f_blocks;
-    __fsblkcnt64_t f_bfree;
-    __fsblkcnt64_t f_bavail;
-    __fsfilcnt64_t f_files;
-    __fsfilcnt64_t f_ffree;
-    __fsid_t f_fsid;
-    __syscall_slong_t f_namelen;
-    __syscall_slong_t f_frsize;
-    __syscall_slong_t f_flags;
-    __syscall_slong_t f_spare[4];
-  };
-#endif
-
-/* Tell code we have these members.  */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=79ddad36d20c8fde3c096d19ce22911d55195739

commit 79ddad36d20c8fde3c096d19ce22911d55195739
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:44:24 2012 -0700

    Check __ILP32__ instead of __WORDSIZE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e4b589c..17da8ba 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: Check
+	__ILP32__ instead of __WORDSIZE.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h: Moved to ...
 	* sysdeps/unix/sysv/linux/bits/mqueue.h: Here.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
index a5fecbf..956fd82 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/resource.h
@@ -188,78 +188,78 @@ struct rusage
     struct timeval ru_stime;
     /* Maximum resident set size (in kilobytes).  */
     long int ru_maxrss;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused1;
 #endif
     /* Amount of sharing of text segment memory
        with other processes (kilobyte-seconds).  */
     long int ru_ixrss;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused2;
 #endif
     /* Amount of data segment memory used (kilobyte-seconds).  */
     long int ru_idrss;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused3;
 #endif
     /* Amount of stack memory used (kilobyte-seconds).  */
     long int ru_isrss;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused4;
 #endif
     /* Number of soft page faults (i.e. those serviced by reclaiming
        a page from the list of pages awaiting reallocation.  */
     long int ru_minflt;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused5;
 #endif
     /* Number of hard page faults (i.e. those that required I/O).  */
     long int ru_majflt;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused6;
 #endif
     /* Number of times a process was swapped out of physical memory.  */
     long int ru_nswap;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused7;
 #endif
     /* Number of input operations via the file system.  Note: This
        and `ru_oublock' do not include operations with the cache.  */
     long int ru_inblock;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused8;
 #endif
     /* Number of output operations via the file system.  */
     long int ru_oublock;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused9;
 #endif
     /* Number of IPC messages sent.  */
     long int ru_msgsnd;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused10;
 #endif
     /* Number of IPC messages received.  */
     long int ru_msgrcv;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused11;
 #endif
     /* Number of signals delivered.  */
     long int ru_nsignals;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused12;
 #endif
     /* Number of voluntary context switches, i.e. because the process
        gave up the process before it had to (usually to wait for some
        resource to be available).  */
     long int ru_nvcsw;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused13;
 #endif
     /* Number of involuntary context switches, i.e. a higher priority process
        became runnable or the current process used up its time slice.  */
     long int ru_nivcsw;
-#if defined __x86_64__ && __WORDSIZE == 32
+#if defined __x86_64__ && defined __ILP32__
     long int __unused14;
 #endif
   };

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c66dde21453e5e7055526c6b65ae86c2e8eca3bf

commit c66dde21453e5e7055526c6b65ae86c2e8eca3bf
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:31:21 2012 -0700

    Remove x86_64 bits/mqueue.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 8c6f7d3..e4b589c 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h: Moved to ...
+	* sysdeps/unix/sysv/linux/bits/mqueue.h: Here.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/ipc.h: Moved to ...
 	* sysdeps/unix/sysv/linux/bits/ipc.h: Here.
 
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index e755f87..805b16c 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,13 +19,15 @@
 # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
 #endif
 
+#include <sys/types.h>
+
 typedef int mqd_t;
 
 struct mq_attr
 {
-  long int mq_flags;	/* Message queue flags.  */
-  long int mq_maxmsg;	/* Maximum number of messages.  */
-  long int mq_msgsize;	/* Maximum message size.  */
-  long int mq_curmsgs;	/* Number of messages currently queued.  */
-  long int __pad[4];
+  __syscall_slong_t mq_flags;	/* Message queue flags.  */
+  __syscall_slong_t mq_maxmsg;	/* Maximum number of messages.  */
+  __syscall_slong_t mq_msgsize;	/* Maximum message size.  */
+  __syscall_slong_t mq_curmsgs;	/* Number of messages currently queued.  */
+  __syscall_slong_t __pad[4];
 };
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h b/sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h
deleted file mode 100644
index 805b16c..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2004, 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MQUEUE_H
-# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
-#endif
-
-#include <sys/types.h>
-
-typedef int mqd_t;
-
-struct mq_attr
-{
-  __syscall_slong_t mq_flags;	/* Message queue flags.  */
-  __syscall_slong_t mq_maxmsg;	/* Maximum number of messages.  */
-  __syscall_slong_t mq_msgsize;	/* Maximum message size.  */
-  __syscall_slong_t mq_curmsgs;	/* Number of messages currently queued.  */
-  __syscall_slong_t __pad[4];
-};

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=64a4512e7994886a6830662ade647d1d0a3ba863

commit 64a4512e7994886a6830662ade647d1d0a3ba863
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:22:29 2012 -0700

    Remove x86-64 bits/ipc.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9d2c748..8c6f7d3 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/bits/ipc.h: Moved to ...
+	* sysdeps/unix/sysv/linux/bits/ipc.h: Here.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sys/msg.h: Moved to ...
 	* sysvipc/sys/msg.h: Here.
 
diff --git a/sysdeps/unix/sysv/linux/bits/ipc.h b/sysdeps/unix/sysv/linux/bits/ipc.h
index 3bd5f1b..6452d50 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,6 @@ struct ipc_perm
     unsigned short int __pad1;
     unsigned short int __seq;		/* Sequence number.  */
     unsigned short int __pad2;
-    unsigned long int __unused1;
-    unsigned long int __unused2;
+    __syscall_ulong_t __unused1;
+    __syscall_ulong_t __unused2;
   };
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/ipc.h b/sysdeps/unix/sysv/linux/x86_64/bits/ipc.h
deleted file mode 100644
index 6452d50..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/bits/ipc.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 1995-1999, 2000, 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'.  */
-#define IPC_CREAT	01000		/* Create key if key does not exist. */
-#define IPC_EXCL	02000		/* Fail if key exists.  */
-#define IPC_NOWAIT	04000		/* Return error on wait.  */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'.  */
-#define IPC_RMID	0		/* Remove identifier.  */
-#define IPC_SET		1		/* Set `ipc_perm' options.  */
-#define IPC_STAT	2		/* Get `ipc_perm' options.  */
-#ifdef __USE_GNU
-# define IPC_INFO	3		/* See ipcs.  */
-#endif
-
-/* Special key values.  */
-#define IPC_PRIVATE	((__key_t) 0)	/* Private key.  */
-
-
-/* Data structure used to pass permission information to IPC operations.  */
-struct ipc_perm
-  {
-    __key_t __key;			/* Key.  */
-    __uid_t uid;			/* Owner's user ID.  */
-    __gid_t gid;			/* Owner's group ID.  */
-    __uid_t cuid;			/* Creator's user ID.  */
-    __gid_t cgid;			/* Creator's group ID.  */
-    unsigned short int mode;		/* Read/write permission.  */
-    unsigned short int __pad1;
-    unsigned short int __seq;		/* Sequence number.  */
-    unsigned short int __pad2;
-    __syscall_ulong_t __unused1;
-    __syscall_ulong_t __unused2;
-  };

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=92263dc2bcb415cdea40e08796c19c98185ec909

commit 92263dc2bcb415cdea40e08796c19c98185ec909
Merge: 2ed82ff 656416c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 09:11:26 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2ed82ff59ce7c1b94c7213b9704e0b24c2e43015

commit 2ed82ff59ce7c1b94c7213b9704e0b24c2e43015
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 06:42:04 2012 -0700

    Remove x86-64 sys/msg.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 0627bb1..9d2c748 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sys/msg.h: Moved to ...
+	* sysvipc/sys/msg.h: Here.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sys/msg.h (msgsnd): Replace
 	__const with const.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h b/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
deleted file mode 100644
index 0dd9899..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1995-1997,1999,2000,2003,2006,2007,2012
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _SYS_MSG_H
-#define _SYS_MSG_H
-
-#include <features.h>
-
-#define __need_size_t
-#include <stddef.h>
-
-/* Get common definition of System V style IPC.  */
-#include <sys/ipc.h>
-
-/* Get system dependent definition of `struct msqid_ds' and more.  */
-#include <bits/msq.h>
-
-/* Define types required by the standard.  */
-#define	__need_time_t
-#include <time.h>
-
-#ifndef __pid_t_defined
-typedef __pid_t pid_t;
-# define __pid_t_defined
-#endif
-
-#ifndef __ssize_t_defined
-typedef __ssize_t ssize_t;
-# define __ssize_t_defined
-#endif
-
-/* The following System V style IPC functions implement a message queue
-   system.  The definition is found in XPG2.  */
-
-#ifdef __USE_GNU
-/* Template for struct to be used as argument for `msgsnd' and `msgrcv'.  */
-struct msgbuf
-  {
-    __syscall_slong_t mtype;	/* type of received/sent message */
-    char mtext[1];		/* text of the message */
-  };
-#endif
-
-
-__BEGIN_DECLS
-
-/* Message queue control operation.  */
-extern int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf) __THROW;
-
-/* Get messages queue.  */
-extern int msgget (key_t __key, int __msgflg) __THROW;
-
-/* Receive message from message queue.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern ssize_t msgrcv (int __msqid, void *__msgp, size_t __msgsz,
-		       long int __msgtyp, int __msgflg);
-
-/* Send message to message queue.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int msgsnd (int __msqid, const void *__msgp, size_t __msgsz,
-		   int __msgflg);
-
-__END_DECLS
-
-#endif /* sys/msg.h */
diff --git a/sysvipc/sys/msg.h b/sysvipc/sys/msg.h
index 4c8d62c..0dd9899 100644
--- a/sysvipc/sys/msg.h
+++ b/sysvipc/sys/msg.h
@@ -51,7 +51,7 @@ typedef __ssize_t ssize_t;
 /* Template for struct to be used as argument for `msgsnd' and `msgrcv'.  */
 struct msgbuf
   {
-    long int mtype;		/* type of received/sent message */
+    __syscall_slong_t mtype;	/* type of received/sent message */
     char mtext[1];		/* text of the message */
   };
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1cda1b0a2a48c0d13dce11f6e6dcf334f7005704

commit 1cda1b0a2a48c0d13dce11f6e6dcf334f7005704
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 06:39:04 2012 -0700

    Update copyright format

diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h b/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
index 7794a95..0dd9899 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1997, 1999, 2000, 2003, 2006, 2007, 2012
+/* Copyright (C) 1995-1997,1999,2000,2003,2006,2007,2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ff7d2e647a286e72762acffca77ca1469ee4b25d

commit ff7d2e647a286e72762acffca77ca1469ee4b25d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 06:35:17 2012 -0700

    Replace __const with const

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9311893..0627bb1 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sys/msg.h (msgsnd): Replace
+	__const with const.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Don't include
 	<bits/wordsize.h>.  Check __ILP32__ instead of __WORDSIZE.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h b/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
index 7144b4f..7794a95 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/msg.h
@@ -76,7 +76,7 @@ extern ssize_t msgrcv (int __msqid, void *__msgp, size_t __msgsz,
 
    This function is a cancellation point and therefore not marked with
    __THROW.  */
-extern int msgsnd (int __msqid, __const void *__msgp, size_t __msgsz,
+extern int msgsnd (int __msqid, const void *__msgp, size_t __msgsz,
 		   int __msgflg);
 
 __END_DECLS

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f9695c20b3152552ee9fb3d4bf5ad57379a99afb

commit f9695c20b3152552ee9fb3d4bf5ad57379a99afb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 06:28:06 2012 -0700

    Update copyright year

diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
index 93cfa8b..f9be7c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
index 7d90424..ecc120d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 2001, 2002, 2004, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2004, 2011, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e49876768b680e6525923b2ddcf776488d93a533

commit e49876768b680e6525923b2ddcf776488d93a533
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 06:25:03 2012 -0700

    Check __ILP32__ instead of __WORDSIZE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 5c44bd8..9311893 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sys/user.h: Don't include
+	<bits/wordsize.h>.  Check __ILP32__ instead of __WORDSIZE.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/x32/gmp-mparam.h (BITS_PER_LONGINT): Replace
 	__WORDSIZE with 32.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
index 8e32e91..7d90424 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h
@@ -22,8 +22,6 @@
    too much into it.  Don't use it for anything other than GDB unless
    you know what you are doing.  */
 
-#include <bits/wordsize.h>
-
 #ifdef __x86_64__
 
 struct user_fpregs_struct
@@ -85,11 +83,11 @@ struct user
   long long int			signal;
   int				reserved;
   struct user_regs_struct*	u_ar0;
-# if __WORDSIZE == 32
+# ifdef __ILP32__
   unsigned int			pad0;
 # endif
   struct user_fpregs_struct*	u_fpstate;
-# if __WORDSIZE == 32
+# ifdef __ILP32__
   unsigned int			pad1;
 # endif
   unsigned long long int	magic;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=60159d060f3a17017c4d272a5f3c4306f2d64634

commit 60159d060f3a17017c4d272a5f3c4306f2d64634
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:59:39 2012 -0700

    Update copyright year

diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
index ad648b1..f122702 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h b/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
index 249d620..ef64ef3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
index 1c22057..c907d35 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2004, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/reg.h b/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
index 5aee208..aca96cf 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e62a8f34b6566603270609e8efbdfb3f8fa9e430

commit e62a8f34b6566603270609e8efbdfb3f8fa9e430
Merge: 0aeedaf a46f216
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:39:40 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0aeedaf6eb51ebb6aa32d5a94b8fa7fa7c8271a9

commit 0aeedaf6eb51ebb6aa32d5a94b8fa7fa7c8271a9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:39:11 2012 -0700

    Replace __WORDSIZE with 32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index ab6e024..5c44bd8 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/x32/gmp-mparam.h (BITS_PER_LONGINT): Replace
+	__WORDSIZE with 32.
+
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Check
 	__ILP32__ instead of __WORDSIZE.
 
diff --git a/sysdeps/x86_64/x32/gmp-mparam.h b/sysdeps/x86_64/x32/gmp-mparam.h
index 7bf588b..de2793f 100644
--- a/sysdeps/x86_64/x32/gmp-mparam.h
+++ b/sysdeps/x86_64/x32/gmp-mparam.h
@@ -25,7 +25,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 #define _LONG_LONG_LIMB
 #define BITS_PER_MP_LIMB 64
 #define BYTES_PER_MP_LIMB 8
-#define BITS_PER_LONGINT __WORDSIZE
+#define BITS_PER_LONGINT 32
 #define BITS_PER_INT 32
 #define BITS_PER_SHORTINT 16
 #define BITS_PER_CHAR 8

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ffba7c5a334c5bbf701050c683183bf2b375622c

commit ffba7c5a334c5bbf701050c683183bf2b375622c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:34:56 2012 -0700

    Update copyright year and use FSF URL

diff --git a/sysdeps/x86_64/x32/gmp-mparam.h b/sysdeps/x86_64/x32/gmp-mparam.h
index 1428f7b..7bf588b 100644
--- a/sysdeps/x86_64/x32/gmp-mparam.h
+++ b/sysdeps/x86_64/x32/gmp-mparam.h
@@ -1,6 +1,6 @@
 /* gmp-mparam.h -- Compiler/machine parameter header file.
 
-Copyright (C) 2011 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -15,8 +15,8 @@ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 License for more details.
 
 You should have received a copy of the GNU Lesser General Public License
-along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+<http://www.gnu.org/licenses/>.  */
 
 #if defined __GMP_H__ && ! defined _LONG_LONG_LIMB
 #error "Included too late for _LONG_LONG_LIMB to take effect"

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b8ecf2629f181679a51e5c2b34df3281571c8dc6

commit b8ecf2629f181679a51e5c2b34df3281571c8dc6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:22:44 2012 -0700

    Reformat

diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index 6c9d70d..9ad95a5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -65,10 +65,10 @@
 #define __OFF64_T_TYPE		__SQUAD_TYPE
 #define __PID_T_TYPE		__S32_TYPE
 #define __RLIM64_T_TYPE		__UQUAD_TYPE
-#define	__BLKCNT64_T_TYPE	__SQUAD_TYPE
-#define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
-#define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
-#define	__ID_T_TYPE		__U32_TYPE
+#define __BLKCNT64_T_TYPE	__SQUAD_TYPE
+#define __FSBLKCNT64_T_TYPE	__UQUAD_TYPE
+#define __FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define __ID_T_TYPE		__U32_TYPE
 #define __USECONDS_T_TYPE	__U32_TYPE
 #define __DADDR_T_TYPE		__S32_TYPE
 #define __SWBLK_T_TYPE		__SLONGWORD_TYPE
@@ -79,7 +79,7 @@
 #define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
-#define	__FD_SETSIZE		1024
+#define __FD_SETSIZE		1024
 
 
 #endif /* bits/typesizes.h */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e6f19c5b86a5f86f477e1f836ea4c329ca0d1e86

commit e6f19c5b86a5f86f477e1f836ea4c329ca0d1e86
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 16 05:19:43 2012 -0700

    Check __ILP32__ instead of __WORDSIZE

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 69229c7..ab6e024 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h: Check
+	__ILP32__ instead of __WORDSIZE.
+
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* bits/types.h (__snseconds_t): Removed.
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index 4ab1d21..6c9d70d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -26,15 +26,15 @@
 /* See <bits/types.h> for the meaning of these macros.  This file exists so
    that <bits/types.h> need not vary across different GNU platforms.  */
 
-/* X32 kernel interface is 64bit.  */
-#if defined __x86_64__ && __WORDSIZE == 32
+/* X32 kernel interface is 64-bit.  */
+#if defined __x86_64__ && defined __ILP32__
 #define __INO_T_TYPE		__UQUAD_TYPE
 #define __NLINK_T_TYPE		__UQUAD_TYPE
 #define __OFF_T_TYPE		__SQUAD_TYPE
 #define __RLIM_T_TYPE		__UQUAD_TYPE
-#define	__BLKCNT_T_TYPE		__SQUAD_TYPE
-#define	__FSFILCNT_T_TYPE	__UQUAD_TYPE
-#define	__FSBLKCNT_T_TYPE	__UQUAD_TYPE
+#define __BLKCNT_T_TYPE		__SQUAD_TYPE
+#define __FSFILCNT_T_TYPE	__UQUAD_TYPE
+#define __FSBLKCNT_T_TYPE	__UQUAD_TYPE
 #define __CLOCK_T_TYPE		__SQUAD_TYPE
 #define __TIME_T_TYPE		__SQUAD_TYPE
 #define __SUSECONDS_T_TYPE	__SQUAD_TYPE
@@ -46,9 +46,9 @@
 #define __NLINK_T_TYPE		__UWORD_TYPE
 #define __OFF_T_TYPE		__SLONGWORD_TYPE
 #define __RLIM_T_TYPE		__ULONGWORD_TYPE
-#define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE
-#define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
-#define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE
+#define __BLKCNT_T_TYPE		__SLONGWORD_TYPE
+#define __FSFILCNT_T_TYPE	__ULONGWORD_TYPE
+#define __FSBLKCNT_T_TYPE	__ULONGWORD_TYPE
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
 #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7de5badaef54daa94146c9732814a4509b39fac7

commit 7de5badaef54daa94146c9732814a4509b39fac7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 18:02:44 2012 -0700

    Update copyright year

diff --git a/bits/types.h b/bits/types.h
index 7151814..270b656 100644
--- a/bits/types.h
+++ b/bits/types.h
@@ -1,5 +1,6 @@
 /* bits/types.h -- definitions of __*_t types underlying *_t types.
-   Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/bits/typesizes.h b/bits/typesizes.h
index 93d08a3..bdd040b 100644
--- a/bits/typesizes.h
+++ b/bits/typesizes.h
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Generic version.
-   Copyright (C) 2002, 2003, 2011
+   Copyright (C) 2002, 2003, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index 2e96141..594ea7d 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Hurd version.
-   Copyright (C) 2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 2002,2003,2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
index f361ea8..77b2b3b 100644
--- a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+++ b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  FreeBSD version.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index fd967b4..8ac715c 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Linux/s390 version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 610f1e5..acb2c41 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  Linux/SPARC version.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c6350d8c717675a132bfb46a957132b545f3c058

commit c6350d8c717675a132bfb46a957132b545f3c058
Merge: 6fe73b6 6af6528
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 17:57:57 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	sysdeps/mach/hurd/bits/typesizes.h

diff --cc sysdeps/mach/hurd/bits/typesizes.h
index 7bde5d5,e138175..2e96141
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@@ -57,6 -57,9 +57,8 @@@
  #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
  #define __FSID_T_TYPE		__UQUAD_TYPE
  #define __SSIZE_T_TYPE		__SWORD_TYPE
 -#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
+ #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
+ #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
  
  /* Number of descriptors that can fit in an `fd_set'.  */
  #define	__FD_SETSIZE		256

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6fe73b6477c0c4be93f619fa936e6e3936c0b298

commit 6fe73b6477c0c4be93f619fa936e6e3936c0b298
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 17:56:18 2012 -0700

    Remove __snseconds_t

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 1c0b389..69229c7 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,22 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* bits/types.h (__snseconds_t): Removed.
+	* time/time.h (struct timespec): Replace __snseconds_t with
+	__syscall_slong_t.
+	* sysdeps/mach/hurd/bits/typesizes.h (__SNSECONDS_T_TYPE):
+	Removed.
+	* bits/typesizes.h (__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+	(__SNSECONDS_T_TYPE): Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym: Renamed to ...
 	* sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym: This.
 
diff --git a/bits/types.h b/bits/types.h
index 34880a9..7151814 100644
--- a/bits/types.h
+++ b/bits/types.h
@@ -148,7 +148,6 @@ __STD_TYPE __ID_T_TYPE __id_t;		/* General type for IDs.  */
 __STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */
 __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
 __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */
-__STD_TYPE __SNSECONDS_T_TYPE __snseconds_t; /* Signed count of nanoseconds.  */
 
 __STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address.  */
 __STD_TYPE __SWBLK_T_TYPE __swblk_t;	/* Type of a swap block maybe?  */
diff --git a/bits/typesizes.h b/bits/typesizes.h
index 4a5fed0..93d08a3 100644
--- a/bits/typesizes.h
+++ b/bits/typesizes.h
@@ -58,7 +58,6 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index bca63ed..7bde5d5 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -57,7 +57,6 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		__UQUAD_TYPE
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		256
diff --git a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
index f860e34..f361ea8 100644
--- a/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
+++ b/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h
@@ -57,7 +57,6 @@
 #define __BLKSIZE_T_TYPE	__U32_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index 4b9bfca..fd967b4 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -63,7 +63,6 @@
 /* size_t is unsigned long int on s390 -m31.  */
 #define __SSIZE_T_TYPE		__SLONGWORD_TYPE
 #endif
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 254b304..610f1e5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -57,7 +57,6 @@
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
 #define __SSIZE_T_TYPE		__SWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
index 5fddc59..4ab1d21 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h
@@ -38,7 +38,6 @@
 #define __CLOCK_T_TYPE		__SQUAD_TYPE
 #define __TIME_T_TYPE		__SQUAD_TYPE
 #define __SUSECONDS_T_TYPE	__SQUAD_TYPE
-#define __SNSECONDS_T_TYPE	__SQUAD_TYPE
 #define __BLKSIZE_T_TYPE	__SQUAD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SQUAD_TYPE
 #define __SYSCALL_ULONG_TYPE	__UQUAD_TYPE
@@ -53,7 +52,6 @@
 #define __CLOCK_T_TYPE		__SLONGWORD_TYPE
 #define __TIME_T_TYPE		__SLONGWORD_TYPE
 #define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE
-#define __SNSECONDS_T_TYPE	__SLONGWORD_TYPE
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_SLONG_TYPE	__SLONGWORD_TYPE
 #define __SYSCALL_ULONG_TYPE	__ULONGWORD_TYPE
diff --git a/time/time.h b/time/time.h
index 776dc40..6256264 100644
--- a/time/time.h
+++ b/time/time.h
@@ -120,7 +120,7 @@ typedef __timer_t timer_t;
 struct timespec
   {
     __time_t tv_sec;		/* Seconds.  */
-    __snseconds_t tv_nsec;	/* Nanoseconds.  */
+    __syscall_slong_t tv_nsec;	/* Nanoseconds.  */
   };
 
 #endif /* timespec not defined and <time.h> or need timespec.  */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=374f3ad5d3de6d9377fddece973b7adaa3879ca4

commit 374f3ad5d3de6d9377fddece973b7adaa3879ca4
Merge: 6843421 de986b5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 17:43:34 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6843421be5bae6e1f6d3f021fee56f1c127fb3be

commit 6843421be5bae6e1f6d3f021fee56f1c127fb3be
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 17:43:25 2012 -0700

    Use <sigaltstack-offsets.h>

diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 9f92cd2..a0d1732 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -19,7 +19,7 @@
 #include <jmpbuf-offsets.h>
 #include <asm-syntax.h>
 
-#include "sigaltstack-offsets.h"
+#include <sigaltstack-offsets.h>
 
 	.section .rodata.str1.1,"aMS",@progbits,1
 	.type	longjmp_msg,@object

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=da2ce63712cf8a01df32b1c963df98a6abe2a264

commit da2ce63712cf8a01df32b1c963df98a6abe2a264
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 16:32:54 2012 -0700

    Rename sigaltstack.sym to sigaltstack-offsets.sym

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 35b5678..1c0b389 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,13 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym: Renamed to ...
+	* sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym: This.
+
+	* sysdeps/unix/sysv/linux/x86_64/Makefile: Updated.
+	* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/lib-names.awk: Moved to ...
 	* sysdeps/unix/sysv/linux/x86_64/lib-names.awk: Here.  Add ia32
 	support.
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index 244f1bb..b692212 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -18,7 +18,7 @@ gen-as-const-headers += ucontext_i.sym
 endif
 
 ifeq ($(subdir),misc)
-gen-as-const-headers += sigaltstack.sym
+gen-as-const-headers += sigaltstack-offsets.sym
 endif
 
 ifeq ($(subdir),elf)
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 5af4c09..9f92cd2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -19,7 +19,7 @@
 #include <jmpbuf-offsets.h>
 #include <asm-syntax.h>
 
-#include "sigaltstack.h"
+#include "sigaltstack-offsets.h"
 
 	.section .rodata.str1.1,"aMS",@progbits,1
 	.type	longjmp_msg,@object
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym b/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
similarity index 55%
rename from sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym
rename to sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
index 9fd26fe..5ff3af4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym
+++ b/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
@@ -9,7 +9,7 @@
 
 #define sigaltstack(member)	offsetof (stack_t, member)
 
-sizeSS				sizeof(stack_t)
-oSS_SP				sigaltstack(ss_sp)
-oSS_SIZE			sigaltstack(ss_size)
-oSS_FLAGS			sigaltstack(ss_flags)
+sizeSS				sizeof (stack_t)
+oSS_SP				sigaltstack (ss_sp)
+oSS_SIZE			sigaltstack (ss_size)
+oSS_FLAGS			sigaltstack (ss_flags)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=67a160c1e9550daf18bb05e5b417e1d608c7ab71

commit 67a160c1e9550daf18bb05e5b417e1d608c7ab71
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 15:43:49 2012 -0700

    Update Linux/x86-64 lib-names.awk to support ia32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index dbed798..35b5678 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,20 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/lib-names.awk: Moved to ...
+	* sysdeps/unix/sysv/linux/x86_64/lib-names.awk: Here.  Add ia32
+	support.
+
+	* sysdeps/x86_64/preconfigure.in: Don't set lib_names_awk here.
+
+	* sysdeps/unix/sysv/linux/i386/configure.in: New file.
+	* sysdeps/unix/sysv/linux/x86_64/configure.in: Likewise.
+
+	* sysdeps/x86_64/preconfigure: Regenerated.
+	* sysdeps/unix/sysv/linux/i386/configure: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/configure: Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Use R*_LP
 	to operate on stack.  Use %r9 with PTR_DEMANGLE.  Use RAX_LP
 	on pointers.
diff --git a/sysdeps/unix/sysv/linux/i386/configure b/sysdeps/unix/sysv/linux/i386/configure
new file mode 100644
index 0000000..482a0b4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/i386/configure.in b/sysdeps/unix/sysv/linux/i386/configure.in
new file mode 100644
index 0000000..8009ee9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/configure.in
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+dnl Need to handle lib-names properly for x86-64 and x32.
+lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/x86_64/configure b/sysdeps/unix/sysv/linux/x86_64/configure
new file mode 100644
index 0000000..482a0b4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/x86_64/configure.in b/sysdeps/unix/sysv/linux/x86_64/configure.in
new file mode 100644
index 0000000..8009ee9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/configure.in
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+dnl Need to handle lib-names properly for x86-64 and x32.
+lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/x86_64/lib-names.awk b/sysdeps/unix/sysv/linux/x86_64/lib-names.awk
similarity index 88%
rename from sysdeps/x86_64/lib-names.awk
rename to sysdeps/unix/sysv/linux/x86_64/lib-names.awk
index e402c6e..5a2d0d4 100644
--- a/sysdeps/x86_64/lib-names.awk
+++ b/sysdeps/unix/sysv/linux/x86_64/lib-names.awk
@@ -33,7 +33,15 @@ $1 != "DEFAULT" { multi = 1 }
       x32_macros[$1 FS lib "_SO"] = "\"ld-linux-x32.so.2\"";
       x32_macros[$1 FS "LD_LINUX_X32_SO"] = "\"ld-linux-x32.so.2\"";
     }
-    else {
+    else if (extra == "LD_LINUX") {
+      x86_64_macros[$1 FS lib "_SO"] = "\"ld-linux-x86-64.so.2\"";
+      x86_64_macros[$1 FS "LD_LINUX_X86_64_SO"] = "\"ld-linux-x86-64.so.2\"";
+      x32_macros[$1 FS lib "_SO"] = "\"ld-linux-x32.so.2\"";
+      x32_macros[$1 FS "LD_LINUX_X32_SO"] = "\"ld-linux-x32.so.2\"";
+      macros[$1 FS lib "_SO"] = soname;
+      macros[$1 FS extra "_SO"] = soname;
+    }
+    else if (extra != "LD") {
       macros[$1 FS lib "_SO"] = soname;
       macros[$1 FS extra "_SO"] = soname;
     }
diff --git a/sysdeps/x86_64/preconfigure b/sysdeps/x86_64/preconfigure
index 2fc5871..ca9de75 100644
--- a/sysdeps/x86_64/preconfigure
+++ b/sysdeps/x86_64/preconfigure
@@ -124,7 +124,6 @@ fi
 test -n "$base_machine" || case "$machine" in
 x86_64)
   base_machine=x86_64
-  lib_names_awk=sysdeps/x86_64/lib-names.awk
   # Check if we are building for x32.
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC compiles in -mx32 mode by default" >&5
diff --git a/sysdeps/x86_64/preconfigure.in b/sysdeps/x86_64/preconfigure.in
index 21e4121..600700e 100644
--- a/sysdeps/x86_64/preconfigure.in
+++ b/sysdeps/x86_64/preconfigure.in
@@ -4,7 +4,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 test -n "$base_machine" || case "$machine" in
 x86_64)
   base_machine=x86_64
-  lib_names_awk=sysdeps/x86_64/lib-names.awk
   # Check if we are building for x32.
   AC_CACHE_CHECK(whether $CC compiles in -mx32 mode by default,
 		 libc_cv_x32, [dnl

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2540d086871bffd0e914c0ef1eb4812af031c643

commit 2540d086871bffd0e914c0ef1eb4812af031c643
Merge: 03a9fdb 9317101
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 15:31:54 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=03a9fdb5b54f1d2a2bcd094c2dcd3e4bc448f727

commit 03a9fdb5b54f1d2a2bcd094c2dcd3e4bc448f727
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 14:21:23 2012 -0700

    Use R*_LP to operate on stack/pointers

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7437d23..dbed798 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S: Use R*_LP
+	to operate on stack.  Use %r9 with PTR_DEMANGLE.  Use RAX_LP
+	on pointers.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-trampoline.h: Use R*_LP to pass arguments
 	and access return value for _dl_profile_fixup.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 4be8d3b..5af4c09 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -31,15 +31,15 @@ longjmp_msg:
 //#define __longjmp ____longjmp_chk
 
 #ifdef PIC
-# define CALL_FAIL	subq	$8, %rsp;				      \
+# define CALL_FAIL	sub	$8, %RSP_LP;				      \
 			cfi_remember_state;				      \
 			cfi_def_cfa_offset(16);				      \
-			leaq	longjmp_msg(%rip), %rdi;		      \
+			lea	longjmp_msg(%rip), %RDI_LP;		      \
 			call	HIDDEN_JUMPTARGET(__fortify_fail);	      \
 			nop;						      \
 			cfi_restore_state
 #else
-# define CALL_FAIL	subq	$8, %rsp;				      \
+# define CALL_FAIL	sub	$8, %RSP_LP;				      \
 			cfi_remember_state;				      \
 			cfi_def_cfa_offset(16);				      \
 			mov	$longjmp_msg, %RDI_LP;			      \
@@ -54,16 +54,16 @@ longjmp_msg:
 	.text
 ENTRY(____longjmp_chk)
 	/* Restore registers.  */
-	movq	(JB_RSP*8)(%rdi), %r8
+	mov	(JB_RSP*8)(%rdi), %R8_LP
 	movq	(JB_RBP*8)(%rdi), %r9
-	movq	(JB_PC*8)(%rdi), %rdx
+	mov	(JB_PC*8)(%rdi), %RDX_LP
 #ifdef PTR_DEMANGLE
 	PTR_DEMANGLE (%R8_LP)
-	PTR_DEMANGLE (%R9_LP)
+	PTR_DEMANGLE (%r9)
 	PTR_DEMANGLE (%RDX_LP)
 #endif
 
-	cmpq	%r8, %rsp
+	cmp	%R8_LP, %RSP_LP
 	jbe	.Lok
 
 	/* Save function parameters.  */
@@ -84,7 +84,7 @@ ENTRY(____longjmp_chk)
 
 	mov	(-sizeSS + oSS_SP)(%rsp), %RAX_LP
 	add	(-sizeSS + oSS_SIZE)(%rsp), %RAX_LP
-	subq	%r8, %rax
+	sub	%R8_LP, %RAX_LP
 	cmp	(-sizeSS + oSS_SIZE)(%rsp), %RAX_LP
 	jae	.Lok2
 
@@ -112,7 +112,7 @@ ENTRY(____longjmp_chk)
 	movq	(JB_R15*8)(%rdi), %r15
 	/* Set return value for setjmp.  */
 	movl	%esi, %eax
-	movq	%r8,%rsp
+	mov	%R8_LP, %RSP_LP
 	movq	%r9,%rbp
 	jmpq	*%rdx
 END (____longjmp_chk)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b907e1e1b1bf885057cb49dea84230d9b7315d1f

commit b907e1e1b1bf885057cb49dea84230d9b7315d1f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 13:54:40 2012 -0700

    Use R*_LP for _dl_profile_fixup

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index d1fea00..7437d23 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-trampoline.h: Use R*_LP to pass arguments
+	and access return value for _dl_profile_fixup.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/sysdep.h: Allowed to be include more than once.
 	* sysdeps/x86_64/x32/sysdep.h: Include <sysdeps/x86_64/sysdep.h>.
 
diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
index 563e153..0f3de3d 100644
--- a/sysdeps/x86_64/dl-trampoline.h
+++ b/sysdeps/x86_64/dl-trampoline.h
@@ -40,14 +40,14 @@
 	vmovdqa %xmm7, (LR_SIZE + XMM_SIZE*7)(%rsp)
 #endif
 
-	movq %rsp, %rcx		# La_x86_64_regs pointer to %rcx.
-	movq 48(%rbx), %rdx	# Load return address if needed.
-	movq 40(%rbx), %rsi	# Copy args pushed by PLT in register.
-	movq 32(%rbx), %rdi	# %rdi: link_map, %rsi: reloc_index
-	leaq 16(%rbx), %r8	# Address of framesize
+	mov %RSP_LP, %RCX_LP	# La_x86_64_regs pointer to %rcx.
+	mov 48(%rbx), %RDX_LP	# Load return address if needed.
+	mov 40(%rbx), %RSI_LP	# Copy args pushed by PLT in register.
+	mov 32(%rbx), %RDI_LP	# %rdi: link_map, %rsi: reloc_index
+	lea 16(%rbx), %R8_LP	# Address of framesize
 	call _dl_profile_fixup	# Call resolver.
 
-	movq %rax, %r11		# Save return value.
+	mov %RAX_LP, %R11_LP	# Save return value.
 
 	movq 8(%rbx), %rax	# Get back register content.
 	movq LR_RDX_OFFSET(%rsp), %rdx

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=86a41d70c83f04fd158917c7af4642ace5931008

commit 86a41d70c83f04fd158917c7af4642ace5931008
Merge: 8bd9be8 d9754f5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 13:53:45 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8bd9be8ae9196b46d2b5718845b54ce9daff8da2

commit 8bd9be8ae9196b46d2b5718845b54ce9daff8da2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:43:25 2012 -0700

    Load futex pointer into RDI_LP

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 42ba2a1..7113b96 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,5 +1,17 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
+	futex pointer into RDI_LP.
+	(lll_robust_lock): Likewise.
+	(lll_cond_lock): Likewise.
+	(lll_robust_cond_lock): Likewise.
+	(lll_timedlock): Likewise.
+	(lll_robust_timedlock): Likewise.
+	(lll_unlock): Likewise.
+	(lll_robust_unlock): Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Use
 	RSP_LP to operate on stack.
 	(lll_robust_lock): Likewise.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index 5900030..ad14185 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -299,7 +299,7 @@ LLL_STUB_UNWIND_INFO_END
 			   ".subsection 1\n\t"				      \
 			   ".type _L_lock_%=, @function\n"		      \
 			   "_L_lock_%=:\n"				      \
-			   "1:\tleaq %2, %%rdi\n"			      \
+			   "1:\tlea %2, %%" RDI_LP "\n"			      \
 			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_lock_wait_private\n"	      \
 			   "4:\tadd $128, %%" RSP_LP "\n"		      \
@@ -317,7 +317,7 @@ LLL_STUB_UNWIND_INFO_END
 			   ".subsection 1\n\t"				      \
 			   ".type _L_lock_%=, @function\n"		      \
 			   "_L_lock_%=:\n"				      \
-			   "1:\tleaq %2, %%rdi\n"			      \
+			   "1:\tlea %2, %%" RDI_LP "\n"			      \
 			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_lock_wait\n"		      \
 			   "4:\tadd $128, %%" RSP_LP "\n"		      \
@@ -339,7 +339,7 @@ LLL_STUB_UNWIND_INFO_END
 		      ".subsection 1\n\t"				      \
 		      ".type _L_robust_lock_%=, @function\n"		      \
 		      "_L_robust_lock_%=:\n"				      \
-		      "1:\tleaq %2, %%rdi\n"				      \
+		      "1:\tlea %2, %%" RDI_LP "\n"			      \
 		      "2:\tsub $128, %%" RSP_LP "\n"			      \
 		      "3:\tcallq __lll_robust_lock_wait\n"		      \
 		      "4:\tadd $128, %%" RSP_LP "\n"			      \
@@ -362,7 +362,7 @@ LLL_STUB_UNWIND_INFO_END
 			 ".subsection 1\n\t"				      \
 			 ".type _L_cond_lock_%=, @function\n"		      \
 			 "_L_cond_lock_%=:\n"				      \
-			 "1:\tleaq %2, %%rdi\n"				      \
+			 "1:\tlea %2, %%" RDI_LP "\n"			      \
 			 "2:\tsub $128, %%" RSP_LP "\n"			      \
 			 "3:\tcallq __lll_lock_wait\n"			      \
 			 "4:\tadd $128, %%" RSP_LP "\n"			      \
@@ -384,7 +384,7 @@ LLL_STUB_UNWIND_INFO_END
 		      ".subsection 1\n\t"				      \
 		      ".type _L_robust_cond_lock_%=, @function\n"	      \
 		      "_L_robust_cond_lock_%=:\n"			      \
-		      "1:\tleaq %2, %%rdi\n"				      \
+		      "1:\tlea %2, %%" RDI_LP "\n"			      \
 		      "2:\tsub $128, %%" RSP_LP "\n"			      \
 		      "3:\tcallq __lll_robust_lock_wait\n"		      \
 		      "4:\tadd $128, %%" RSP_LP "\n"			      \
@@ -407,7 +407,7 @@ LLL_STUB_UNWIND_INFO_END
 		       ".subsection 1\n\t"				      \
 		       ".type _L_timedlock_%=, @function\n"		      \
 		       "_L_timedlock_%=:\n"				      \
-		       "1:\tleaq %4, %%rdi\n"				      \
+		       "1:\tlea %4, %%" RDI_LP "\n"			      \
 		       "0:\tmov %8, %%" RDX_LP "\n"			      \
 		       "2:\tsub $128, %%" RSP_LP "\n"			      \
 		       "3:\tcallq __lll_timedlock_wait\n"		      \
@@ -431,7 +431,7 @@ LLL_STUB_UNWIND_INFO_END
 		       ".subsection 1\n\t"				      \
 		       ".type _L_robust_timedlock_%=, @function\n"	      \
 		       "_L_robust_timedlock_%=:\n"			      \
-		       "1:\tleaq %4, %%rdi\n"				      \
+		       "1:\tlea %4, %%" RDI_LP "\n"			      \
 		       "0:\tmov %8, %%" RDX_LP "\n"			      \
 		       "2:\tsub $128, %%" RSP_LP "\n"			      \
 		       "3:\tcallq __lll_robust_timedlock_wait\n"	      \
@@ -469,7 +469,7 @@ LLL_STUB_UNWIND_INFO_END
 			   ".subsection 1\n\t"				      \
 			   ".type _L_unlock_%=, @function\n"		      \
 			   "_L_unlock_%=:\n"				      \
-			   "1:\tleaq %0, %%rdi\n"			      \
+			   "1:\tlea %0, %%" RDI_LP "\n"			      \
 			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_unlock_wake_private\n"	      \
 			   "4:\tadd $128, %%" RSP_LP "\n"		      \
@@ -486,7 +486,7 @@ LLL_STUB_UNWIND_INFO_END
 			   ".subsection 1\n\t"				      \
 			   ".type _L_unlock_%=, @function\n"		      \
 			   "_L_unlock_%=:\n"				      \
-			   "1:\tleaq %0, %%rdi\n"			      \
+			   "1:\tlea %0, %%" RDI_LP "\n"			      \
 			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_unlock_wake\n"		      \
 			   "4:\tadd $128, %%" RSP_LP "\n"		      \
@@ -509,7 +509,7 @@ LLL_STUB_UNWIND_INFO_END
 			".subsection 1\n\t"				      \
 			".type _L_robust_unlock_%=, @function\n"	      \
 			"_L_robust_unlock_%=:\n"			      \
-			"1:\tleaq %0, %%rdi\n"				      \
+			"1:\tlea %0, %%" RDI_LP "\n"			      \
 			"2:\tsub $128, %%" RSP_LP "\n"			      \
 			"3:\tcallq __lll_unlock_wake\n"			      \
 			"4:\tadd $128, %%" RSP_LP "\n"			      \

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=33fe5feeb88607d0cfe107be6b2ef9a48ac69094

commit 33fe5feeb88607d0cfe107be6b2ef9a48ac69094
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:33:30 2012 -0700

    Use RSP_LP to operate on stack

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index a7ec6de..42ba2a1 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,3 +1,15 @@
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Use
+	RSP_LP to operate on stack.
+	(lll_robust_lock): Likewise.
+	(lll_cond_lock): Likewise.
+	(lll_robust_cond_lock): Likewise.
+	(lll_timedlock): Likewise.
+	(lll_robust_timedlock): Likewise.
+	(lll_unlock): Likewise.
+	(lll_robust_unlock): Likewise.
+
 2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/tls.h (tcbhead_t): Remove __x86_64__ check.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index 87911d7..5900030 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -300,9 +300,9 @@ LLL_STUB_UNWIND_INFO_END
 			   ".type _L_lock_%=, @function\n"		      \
 			   "_L_lock_%=:\n"				      \
 			   "1:\tleaq %2, %%rdi\n"			      \
-			   "2:\tsubq $128, %%rsp\n"			      \
+			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_lock_wait_private\n"	      \
-			   "4:\taddq $128, %%rsp\n"			      \
+			   "4:\tadd $128, %%" RSP_LP "\n"		      \
 			   "5:\tjmp 24f\n"				      \
 			   "6:\t.size _L_lock_%=, 6b-1b\n\t"		      \
 			   ".previous\n"				      \
@@ -318,9 +318,9 @@ LLL_STUB_UNWIND_INFO_END
 			   ".type _L_lock_%=, @function\n"		      \
 			   "_L_lock_%=:\n"				      \
 			   "1:\tleaq %2, %%rdi\n"			      \
-			   "2:\tsubq $128, %%rsp\n"			      \
+			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_lock_wait\n"		      \
-			   "4:\taddq $128, %%rsp\n"			      \
+			   "4:\tadd $128, %%" RSP_LP "\n"		      \
 			   "5:\tjmp 24f\n"				      \
 			   "6:\t.size _L_lock_%=, 6b-1b\n\t"		      \
 			   ".previous\n"				      \
@@ -340,9 +340,9 @@ LLL_STUB_UNWIND_INFO_END
 		      ".type _L_robust_lock_%=, @function\n"		      \
 		      "_L_robust_lock_%=:\n"				      \
 		      "1:\tleaq %2, %%rdi\n"				      \
-		      "2:\tsubq $128, %%rsp\n"				      \
+		      "2:\tsub $128, %%" RSP_LP "\n"			      \
 		      "3:\tcallq __lll_robust_lock_wait\n"		      \
-		      "4:\taddq $128, %%rsp\n"				      \
+		      "4:\tadd $128, %%" RSP_LP "\n"			      \
 		      "5:\tjmp 24f\n"					      \
 		      "6:\t.size _L_robust_lock_%=, 6b-1b\n\t"		      \
 		      ".previous\n"					      \
@@ -363,9 +363,9 @@ LLL_STUB_UNWIND_INFO_END
 			 ".type _L_cond_lock_%=, @function\n"		      \
 			 "_L_cond_lock_%=:\n"				      \
 			 "1:\tleaq %2, %%rdi\n"				      \
-			 "2:\tsubq $128, %%rsp\n"			      \
+			 "2:\tsub $128, %%" RSP_LP "\n"			      \
 			 "3:\tcallq __lll_lock_wait\n"			      \
-			 "4:\taddq $128, %%rsp\n"			      \
+			 "4:\tadd $128, %%" RSP_LP "\n"			      \
 			 "5:\tjmp 24f\n"				      \
 			 "6:\t.size _L_cond_lock_%=, 6b-1b\n\t"		      \
 			 ".previous\n"					      \
@@ -385,9 +385,9 @@ LLL_STUB_UNWIND_INFO_END
 		      ".type _L_robust_cond_lock_%=, @function\n"	      \
 		      "_L_robust_cond_lock_%=:\n"			      \
 		      "1:\tleaq %2, %%rdi\n"				      \
-		      "2:\tsubq $128, %%rsp\n"				      \
+		      "2:\tsub $128, %%" RSP_LP "\n"			      \
 		      "3:\tcallq __lll_robust_lock_wait\n"		      \
-		      "4:\taddq $128, %%rsp\n"				      \
+		      "4:\tadd $128, %%" RSP_LP "\n"			      \
 		      "5:\tjmp 24f\n"					      \
 		      "6:\t.size _L_robust_cond_lock_%=, 6b-1b\n\t"	      \
 		      ".previous\n"					      \
@@ -409,9 +409,9 @@ LLL_STUB_UNWIND_INFO_END
 		       "_L_timedlock_%=:\n"				      \
 		       "1:\tleaq %4, %%rdi\n"				      \
 		       "0:\tmov %8, %%" RDX_LP "\n"			      \
-		       "2:\tsubq $128, %%rsp\n"				      \
+		       "2:\tsub $128, %%" RSP_LP "\n"			      \
 		       "3:\tcallq __lll_timedlock_wait\n"		      \
-		       "4:\taddq $128, %%rsp\n"				      \
+		       "4:\tadd $128, %%" RSP_LP "\n"			      \
 		       "5:\tjmp 24f\n"					      \
 		       "6:\t.size _L_timedlock_%=, 6b-1b\n\t"		      \
 		       ".previous\n"					      \
@@ -433,9 +433,9 @@ LLL_STUB_UNWIND_INFO_END
 		       "_L_robust_timedlock_%=:\n"			      \
 		       "1:\tleaq %4, %%rdi\n"				      \
 		       "0:\tmov %8, %%" RDX_LP "\n"			      \
-		       "2:\tsubq $128, %%rsp\n"				      \
+		       "2:\tsub $128, %%" RSP_LP "\n"			      \
 		       "3:\tcallq __lll_robust_timedlock_wait\n"	      \
-		       "4:\taddq $128, %%rsp\n"				      \
+		       "4:\tadd $128, %%" RSP_LP "\n"			      \
 		       "5:\tjmp 24f\n"					      \
 		       "6:\t.size _L_robust_timedlock_%=, 6b-1b\n\t"	      \
 		       ".previous\n"					      \
@@ -470,9 +470,9 @@ LLL_STUB_UNWIND_INFO_END
 			   ".type _L_unlock_%=, @function\n"		      \
 			   "_L_unlock_%=:\n"				      \
 			   "1:\tleaq %0, %%rdi\n"			      \
-			   "2:\tsubq $128, %%rsp\n"			      \
+			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_unlock_wake_private\n"	      \
-			   "4:\taddq $128, %%rsp\n"			      \
+			   "4:\tadd $128, %%" RSP_LP "\n"		      \
 			   "5:\tjmp 24f\n"				      \
 			   "6:\t.size _L_unlock_%=, 6b-1b\n\t"		      \
 			   ".previous\n"				      \
@@ -487,9 +487,9 @@ LLL_STUB_UNWIND_INFO_END
 			   ".type _L_unlock_%=, @function\n"		      \
 			   "_L_unlock_%=:\n"				      \
 			   "1:\tleaq %0, %%rdi\n"			      \
-			   "2:\tsubq $128, %%rsp\n"			      \
+			   "2:\tsub $128, %%" RSP_LP "\n"		      \
 			   "3:\tcallq __lll_unlock_wake\n"		      \
-			   "4:\taddq $128, %%rsp\n"			      \
+			   "4:\tadd $128, %%" RSP_LP "\n"		      \
 			   "5:\tjmp 24f\n"				      \
 			   "6:\t.size _L_unlock_%=, 6b-1b\n\t"		      \
 			   ".previous\n"				      \
@@ -510,9 +510,9 @@ LLL_STUB_UNWIND_INFO_END
 			".type _L_robust_unlock_%=, @function\n"	      \
 			"_L_robust_unlock_%=:\n"			      \
 			"1:\tleaq %0, %%rdi\n"				      \
-			"2:\tsubq $128, %%rsp\n"			      \
+			"2:\tsub $128, %%" RSP_LP "\n"			      \
 			"3:\tcallq __lll_unlock_wake\n"			      \
-			"4:\taddq $128, %%rsp\n"			      \
+			"4:\tadd $128, %%" RSP_LP "\n"			      \
 			"5:\tjmp 24f\n"					      \
 			"6:\t.size _L_robust_unlock_%=, 6b-1b\n\t"	      \
 			".previous\n"					      \

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b8f9a7a6332ebf611ac975f0870745352449a760

commit b8f9a7a6332ebf611ac975f0870745352449a760
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:07:57 2012 -0700

    Include x86_64 sysdep.h in x32 sysdep.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 4f8b193..d1fea00 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/sysdep.h: Allowed to be include more than once.
+	* sysdeps/x86_64/x32/sysdep.h: Include <sysdeps/x86_64/sysdep.h>.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/init-first.c: Replace
 	strong_alias with libc_hidden_proto/libc_hidden_data_def.
 	(_libc_vdso_platform_setup): Replace __GI___vdso_clock_gettime
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index e34d7a9..af69499 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -16,6 +16,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#ifndef _X86_64_SYSDEP_H
+#define _X86_64_SYSDEP_H 1
+
 #include <sysdeps/generic/sysdep.h>
 
 #ifdef	__ASSEMBLER__
@@ -152,3 +155,5 @@ lose:									      \
 #define R15_LP	"r15"
 
 #endif	/* __ASSEMBLER__ */
+
+#endif	/* _X86_64_SYSDEP_H */
diff --git a/sysdeps/x86_64/x32/sysdep.h b/sysdeps/x86_64/x32/sysdep.h
index 7817c29..cbe2e5f 100644
--- a/sysdeps/x86_64/x32/sysdep.h
+++ b/sysdeps/x86_64/x32/sysdep.h
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <sysdeps/x86_64/sysdep.h>
+
 #undef LP_SIZE
 #undef LP_OP
 #undef ASM_ADDR

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=685945597f8ccfe6490f4e4479b740f5d452920b

commit 685945597f8ccfe6490f4e4479b740f5d452920b
Merge: 4a1642d 02a9193
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:05:56 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4a1642d553f3eadf7d3b8a377d009c5a2a44b92f

commit 4a1642d553f3eadf7d3b8a377d009c5a2a44b92f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:03:12 2012 -0700

    Use libc_hidden_proto/libc_hidden_data_def

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 6689ab2..4f8b193 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,12 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/init-first.c: Replace
+	strong_alias with libc_hidden_proto/libc_hidden_data_def.
+	(_libc_vdso_platform_setup): Replace __GI___vdso_clock_gettime
+	with __vdso_clock_gettime.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/__longjmp.S: Use RSP_LP to set SP.
 
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c b/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c
index 6fc0dc0..c2aea9d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c
@@ -21,7 +21,8 @@
 
 long int (*__vdso_clock_gettime) (clockid_t, struct timespec *)
   __attribute__ ((nocommon));
-strong_alias (__vdso_clock_gettime, __GI___vdso_clock_gettime attribute_hidden)
+libc_hidden_proto (__vdso_clock_gettime)
+libc_hidden_data_def (__vdso_clock_gettime)
 
 static inline void
 _libc_vdso_platform_setup (void)
@@ -30,7 +31,7 @@ _libc_vdso_platform_setup (void)
 
   void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
   PTR_MANGLE (p);
-  __GI___vdso_clock_gettime = p;
+  __vdso_clock_gettime = p;
 }
 
 # define VDSO_SETUP _libc_vdso_platform_setup

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4c61b5a16a8cde2a8f3fdc4f2382923d76d66ea6

commit 4c61b5a16a8cde2a8f3fdc4f2382923d76d66ea6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 12:01:58 2012 -0700

    Use RSP_LP to set SP

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 69aae50..6689ab2 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/__longjmp.S: Use RSP_LP to set SP.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/__longjmp.S: Only use R*_LP on SP and PC.
 	* sysdeps/x86_64/setjmp.S: Likewise.
 
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index c7e7e2c..22beb88 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -50,7 +50,7 @@ ENTRY(__longjmp)
 	movq (JB_R15*8)(%rdi),%r15
 	/* Set return value for setjmp.  */
 	mov %esi, %eax
-	movq %r8,%rsp
+	mov %R8_LP,%RSP_LP
 	movq %r9,%rbp
 	jmpq *%rdx
 END (__longjmp)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=cce52588b67526f837c197162d329ce7a078eee4

commit cce52588b67526f837c197162d329ce7a078eee4
Merge: 730e082 ba75122
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 11:21:21 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	sysdeps/unix/sysv/linux/x86_64/x32/Makefile


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=730e08215d938c61129f5838d348399deae26359

commit 730e08215d938c61129f5838d348399deae26359
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 9 18:30:44 2012 -0700

    Revert "Support Implies-after"
    
    This reverts commit 681f58bcceb89bba443fcc8a3e3c5978a433ce70.
    
    Conflicts:
    
    	ChangeLog.x32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b3d7c11..69aae50 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -316,11 +316,6 @@
 	* sysdeps/unix/sysv/linux/x86_64/x32/Implies: Moved to ...
 	* sysdeps/unix/sysv/linux/x86_64/Implies: Here.
 
-2012-03-22  Roland McGrath  <roland@hack.frob.com>
-
-	* configure.in: Support Implies-after.
-	* configure: Regenerated.
-
 2012-04-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/bits/byteswap.h: Include <features.h>.
diff --git a/configure b/configure
index 98a7b73..add3aa9 100755
--- a/configure
+++ b/configure
@@ -4325,16 +4325,14 @@ while test $# -gt 0; do
   test -n "$enable_debug_configure" &&
   echo "DEBUG: name/Implies $xsrcdir$name/Implies" >&2
 
-  for implies_file in Implies Implies-after; do
-    implies_type=`echo $implies_file | sed s/-/_/`
-    eval ${implies_type}=
-    if test -f $xsrcdir$name/$implies_file; then
+  if test -f $xsrcdir$name/Implies; then
     # Collect more names from the `Implies' file (removing comments).
-      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
+    implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
+    implied=
     for x in $implied_candidate; do
       found=no
       if test -d $xsrcdir$name_base/$x; then
-	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
+	implied="$implied $name_base/$x";
 	found=yes
       fi
       for d in $add_ons_pfx ''; do
@@ -4344,10 +4342,10 @@ while test $# -gt 0; do
 	 *) try_srcdir=$srcdir/ ;;
 	esac
 	test -n "$enable_debug_configure" &&
-	   echo "DEBUG: $name $implies_file $x try($d) {$try_srcdir}$try" >&2
+	 echo "DEBUG: $name implied $x try($d) {$try_srcdir}$try" >&2
 	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
 	then
-	    eval "${implies_type}=\"\$${implies_type} \$try\""
+	  implied="$implied $try"
 	  found=yes
 	  case "$sysnames_add_ons" in
 	  *" $d "*) ;;
@@ -4356,12 +4354,13 @@ while test $# -gt 0; do
 	fi
       done
       if test $found = no; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $name/$implies_file specifies nonexistent $x" >&5
-$as_echo "$as_me: WARNING: $name/$implies_file specifies nonexistent $x" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $name/Implies specifies nonexistent $x" >&5
+$as_echo "$as_me: WARNING: $name/Implies specifies nonexistent $x" >&2;}
       fi
     done
+  else
+    implied=
   fi
-  done
 
   # Add NAME to the list of names.
   names="$names $name"
@@ -4376,7 +4375,7 @@ $as_echo "$as_me: WARNING: $name/$implies_file specifies nonexistent $x" >&2;}
   # configuration components; this ensures that for sysv4, unix/common
   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
   # after sysv4).
-  sysnames="`echo $Implies $* $parent $Implies_after`"
+  sysnames="`echo $implied $* $parent`"
   test -n "$sysnames" && set $sysnames
 done
 
diff --git a/configure.in b/configure.in
index 3ca448e..06a8dc9 100644
--- a/configure.in
+++ b/configure.in
@@ -761,16 +761,14 @@ while test $# -gt 0; do
   test -n "$enable_debug_configure" &&
   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
 
-  for implies_file in Implies Implies-after; do
-    implies_type=`echo $implies_file | sed s/-/_/`
-    eval ${implies_type}=
-    if test -f $xsrcdir$name/$implies_file; then
+  if test -f $xsrcdir$name/Implies; then
     # Collect more names from the `Implies' file (removing comments).
-      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
+    implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
+    implied=
     for x in $implied_candidate; do
       found=no
       if test -d $xsrcdir$name_base/$x; then
-	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
+	implied="$implied $name_base/$x";
 	found=yes
       fi
       for d in $add_ons_pfx ''; do
@@ -780,10 +778,10 @@ while test $# -gt 0; do
 	 *) try_srcdir=$srcdir/ ;;
 	esac
 	test -n "$enable_debug_configure" &&
-	   echo "[DEBUG]: $name $implies_file $x try($d) {$try_srcdir}$try" >&2
+	 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
 	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
 	then
-	    eval "${implies_type}=\"\$${implies_type} \$try\""
+	  implied="$implied $try"
 	  found=yes
 	  case "$sysnames_add_ons" in
 	  *" $d "*) ;;
@@ -792,11 +790,12 @@ while test $# -gt 0; do
 	fi
       done
       if test $found = no; then
-	  AC_MSG_WARN($name/$implies_file specifies nonexistent $x)
+	AC_MSG_WARN($name/Implies specifies nonexistent $x)
       fi
     done
+  else
+    implied=
   fi
-  done
 
   # Add NAME to the list of names.
   names="$names $name"
@@ -813,7 +812,7 @@ changequote([,])dnl
   # configuration components; this ensures that for sysv4, unix/common
   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
   # after sysv4).
-  sysnames="`echo $Implies $* $parent $Implies_after`"
+  sysnames="`echo $implied $* $parent`"
   test -n "$sysnames" && set $sysnames
 done
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0ce55aa9a7f2fd87de43c780560551d3410e7c42

commit 0ce55aa9a7f2fd87de43c780560551d3410e7c42
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 11:16:31 2012 -0700

    Only use R*_LP on SP and PC

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 79349f5..b3d7c11 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/__longjmp.S: Only use R*_LP on SP and PC.
+	* sysdeps/x86_64/setjmp.S: Likewise.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S: Remove
 	@PLT on __getcpu call.
 
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index a9a1a1e..c7e7e2c 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -25,12 +25,12 @@
 	.text
 ENTRY(__longjmp)
 	/* Restore registers.  */
-	movq (JB_RSP*8)(%rdi),%r8
+	mov (JB_RSP*8)(%rdi),%R8_LP
 	movq (JB_RBP*8)(%rdi),%r9
-	movq (JB_PC*8)(%rdi),%rdx
+	mov (JB_PC*8)(%rdi),%RDX_LP
 #ifdef PTR_DEMANGLE
 	PTR_DEMANGLE (%R8_LP)
-	PTR_DEMANGLE (%R9_LP)
+	PTR_DEMANGLE (%r9)
 	PTR_DEMANGLE (%RDX_LP)
 #endif
 	/* We add unwind information for the target here.  */
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
index 953f6c2..87c0952 100644
--- a/sysdeps/x86_64/setjmp.S
+++ b/sysdeps/x86_64/setjmp.S
@@ -25,7 +25,7 @@ ENTRY (__sigsetjmp)
 	movq %rbx, (JB_RBX*8)(%rdi)
 #ifdef PTR_MANGLE
 	movq %rbp, %rax
-	PTR_MANGLE (%RAX_LP)
+	PTR_MANGLE (%rax)
 	movq %rax, (JB_RBP*8)(%rdi)
 #else
 	movq %rbp, (JB_RBP*8)(%rdi)
@@ -34,12 +34,12 @@ ENTRY (__sigsetjmp)
 	movq %r13, (JB_R13*8)(%rdi)
 	movq %r14, (JB_R14*8)(%rdi)
 	movq %r15, (JB_R15*8)(%rdi)
-	leaq 8(%rsp), %rdx	/* Save SP as it will be after we return.  */
+	lea 8(%rsp), %RDX_LP	/* Save SP as it will be after we return.  */
 #ifdef PTR_MANGLE
 	PTR_MANGLE (%RDX_LP)
 #endif
 	movq %rdx, (JB_RSP*8)(%rdi)
-	movq (%rsp), %rax	/* Save PC we are returning to now.  */
+	mov (%rsp), %RAX_LP	/* Save PC we are returning to now.  */
 #ifdef PTR_MANGLE
 	PTR_MANGLE (%RAX_LP)
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9a5ce6b04ebfd809755dbdb649185183d18fa159

commit 9a5ce6b04ebfd809755dbdb649185183d18fa159
Merge: 58f63d0 777b1ee
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 09:45:06 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=58f63d04c7b50486b96974503b6830a73f58738d

commit 58f63d04c7b50486b96974503b6830a73f58738d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 09:44:45 2012 -0700

    Remove @PLT on __getcpu call

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 1294382..79349f5 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S: Remove
+	@PLT on __getcpu call.
+
 2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/start.S: Reformat.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S b/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
index 5bd81fe..f3ba9f1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
@@ -31,7 +31,7 @@ ENTRY (sched_getcpu)
 	mov	$VGETCPU_CACHE_OFFSET, %edx
 	add	%fs:0, %edx
 
-	call	__getcpu@PLT
+	call	__getcpu
 
 	cmp	$-4095, %eax
 	jae	SYSCALL_ERROR_LABEL

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=90c1aa524b915b1907d1a3a8f2b2c358bc261d1e

commit 90c1aa524b915b1907d1a3a8f2b2c358bc261d1e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 09:43:52 2012 -0700

    Add a comment

diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
index 2965164..90f960b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
@@ -18,5 +18,6 @@
 
 #include <sysdeps/unix/sysv/linux/x86_64/dl-cache.h>
 
+/* Defined as (FLAG_ELF_LIBC6 | FLAG_X8664_LIBX32).  */
 #undef _DL_CACHE_DEFAULT_ID
 #define _DL_CACHE_DEFAULT_ID	0x803

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f59594c434a22bd40c9e045197d7033e315a95f9

commit f59594c434a22bd40c9e045197d7033e315a95f9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 15 06:02:02 2012 -0700

    Update copyright year

diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index 1f5b848..87911d7 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 2002-2004, 2006-2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2004, 2006-2008, 2009, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
index 1977949..5239a94 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux/x86-64.
-   Copyright (C) 2001,2002,2004,2006,2007,2009,2010,2011
+   Copyright (C) 2001,2002,2004,2006,2007,2009-2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/msq.h b/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
index f8fa1ba..b375fd0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2011
+/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sem.h b/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
index 625591f..0065c73 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2011, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/shm.h b/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
index 2e321a4..c7d1dfb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004, 2009, 2011
+/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004, 2009, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
index 1d80fef..4e55310 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
index 133fcae..e20b253 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2003,2009,2010 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2003,2009,2010,2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1db5509d36ba3bc3b6f401f1ee687cdd295ba9e8

commit 1db5509d36ba3bc3b6f401f1ee687cdd295ba9e8
Merge: b3c7fb7 2949684
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 21:11:55 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b3c7fb73890a2399032b6a43239fd3dac43f5af2

commit b3c7fb73890a2399032b6a43239fd3dac43f5af2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 21:11:21 2012 -0700

    Remove __x86_64__ check and align rtld_savespace_sse

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 9944038..a7ec6de 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/tls.h (tcbhead_t): Remove __x86_64__ check.
+	Align rtld_savespace_sse to 32 bytes.
+
 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/x32/tls.h (CALL_THREAD_FCT): Add some
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index 1f0e991..f838916 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -59,22 +59,14 @@ typedef struct
 # else
   int __unused1;
 # endif
-# ifdef __x86_64__
   int rtld_must_xmm_save;
-# endif
   /* Reservation of some values for the TM ABI.  */
   void *__private_tm[5];
-# ifdef __x86_64__
   long int __unused2;
-#  ifdef __ILP32__
-  /* Pad rtld_savespace_sse to 32byte aligned.  */
-  void *__padding1[4];
-#  endif
   /* Have space for the post-AVX register size.  */
-  __m128 rtld_savespace_sse[8][4];
+  __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
 
-  void *__padding2[8];
-# endif
+  void *__padding[8];
 } tcbhead_t;
 
 #else /* __ASSEMBLER__ */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c510cdd79ec6ba924dc388fdcf20b58068095dff

commit c510cdd79ec6ba924dc388fdcf20b58068095dff
Merge: 7aaf5de 6cdef1a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 18:01:21 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7aaf5def2d3ca109ad6b7d91c21b90e5499f561c

commit 7aaf5def2d3ca109ad6b7d91c21b90e5499f561c
Merge: 60489c6 245a11d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 17:59:51 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=60489c6cad31ae9cd20521cca3808778ffea7c7c

commit 60489c6cad31ae9cd20521cca3808778ffea7c7c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 17:59:23 2012 -0700

    Add comments to __PTHREAD_RWLOCK_INT_FLAGS_SHARED

diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
index 8f10c87..88c7c25 100644
--- a/nptl/sysdeps/pthread/pthread.h
+++ b/nptl/sysdeps/pthread/pthread.h
@@ -118,6 +118,9 @@ enum
   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
 };
 
+/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
+   has the shared field.  All 64-bit architectures have the shared field
+   in pthread_rwlock_t.  */
 #ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
 # if __WORDSIZE == 64
 #  define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e3e49f32c0bf50344c94e0ecade0a581916ec041

commit e3e49f32c0bf50344c94e0ecade0a581916ec041
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 17:55:33 2012 -0700

    Reformat sysdeps/x86_64/start.S again

diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index 7766a3a..e603463 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -84,7 +84,7 @@ _start:
 	mov %RDX_LP, %R9_LP	/* Address of the shared library termination
 				   function.  */
 #ifdef __ILP32__
-	mov (%rsp), %esi	/* Simulate popping 4byte argument count.  */
+	mov (%rsp), %esi	/* Simulate popping 4-byte argument count.  */
 	add $4, %esp
 #else
 	popq %rsi		/* Pop the argument count.  */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=57ff9e71f1040e27210054d57f24d25e564215cc

commit 57ff9e71f1040e27210054d57f24d25e564215cc
Merge: 274cb27 0b254d8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 16:26:50 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	sysdeps/x86_64/x32/shlib-versions


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=274cb27026cea351d455ce6f4ae76b8833288bf0

commit 274cb27026cea351d455ce6f4ae76b8833288bf0
Merge: a1e3098 144c546
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 16:25:50 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a1e3098a0f60bd4f9f3c3ec225916b564337bc80

commit a1e3098a0f60bd4f9f3c3ec225916b564337bc80
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 16:25:35 2012 -0700

    Reformat sysdeps/x86_64/start.S

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7f0eb74..1294382 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/start.S: Reformat.
+
+2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/x32/dl-machine.h: Replace x32_dl_machine_h
 	with _X32_DL_MACHINE_H.
 	(RTLD_START): Optimize and reformat.
diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index 27e37c9..7766a3a 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -84,16 +84,18 @@ _start:
 	mov %RDX_LP, %R9_LP	/* Address of the shared library termination
 				   function.  */
 #ifdef __ILP32__
-	mov (%rsp),%esi		/* Simulate popping 4byte argument count.  */
-	add $4,%esp
+	mov (%rsp), %esi	/* Simulate popping 4byte argument count.  */
+	add $4, %esp
 #else
 	popq %rsi		/* Pop the argument count.  */
 #endif
-	mov %RSP_LP, %RDX_LP	/* argv starts just at the current stack top.  */
+	/* argv starts just at the current stack top.  */
+	mov %RSP_LP, %RDX_LP
 	/* Align the stack to a 16 byte boundary to follow the ABI.  */
 	and  $~15, %RSP_LP
 
-	pushq %rax		/* Push garbage because we push 8 more bytes.  */
+	/* Push garbage because we push 8 more bytes.  */
+	pushq %rax
 
 	/* Provide the highest stack address to the user code (for stacks
 	   which grow downwards).  */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ba380afe848ac6063370e3a16105b371417a226e

commit ba380afe848ac6063370e3a16105b371417a226e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 15:59:10 2012 -0700

    Add the column headers to new shlib-versions

diff --git a/nptl/sysdeps/x86_64/64/shlib-versions b/nptl/sysdeps/x86_64/64/shlib-versions
index 99abb06..5093c4c 100644
--- a/nptl/sysdeps/x86_64/64/shlib-versions
+++ b/nptl/sysdeps/x86_64/64/shlib-versions
@@ -1 +1,3 @@
+# Configuration		DEFAULT			Earliest symbol set
+# -------------		---------------		------------------------------
 x86_64-.*-linux.*	libpthread=0		GLIBC_2.2.5
diff --git a/nptl/sysdeps/x86_64/x32/shlib-versions b/nptl/sysdeps/x86_64/x32/shlib-versions
index 80ff581..8fcad2e 100644
--- a/nptl/sysdeps/x86_64/x32/shlib-versions
+++ b/nptl/sysdeps/x86_64/x32/shlib-versions
@@ -1 +1,3 @@
+# Configuration		DEFAULT			Earliest symbol set
+# -------------		---------------		------------------------------
 x86_64-.*-linux.*	libpthread=0		GLIBC_2.16
diff --git a/sysdeps/x86_64/64/shlib-versions b/sysdeps/x86_64/64/shlib-versions
index f793bda..c797487 100644
--- a/sysdeps/x86_64/64/shlib-versions
+++ b/sysdeps/x86_64/64/shlib-versions
@@ -1,2 +1,4 @@
-x86_64-.*-linux.*       DEFAULT			GLIBC_2.2.5
+# Configuration		DEFAULT			Earliest symbol set
+# -------------		---------------		------------------------------
+x86_64-.*-linux.*	DEFAULT			GLIBC_2.2.5
 x86_64-.*-linux.*	ld=ld-linux-x86-64.so.2	GLIBC_2.2.5
diff --git a/sysdeps/x86_64/x32/shlib-versions b/sysdeps/x86_64/x32/shlib-versions
index c30aeef..4d273c2 100644
--- a/sysdeps/x86_64/x32/shlib-versions
+++ b/sysdeps/x86_64/x32/shlib-versions
@@ -1,3 +1,5 @@
-x86_64-.*-linux.*       DEFAULT			GLIBC_2.16
+# Configuration		DEFAULT			Earliest symbol set
+# -------------		---------------		------------------------------
+x86_64-.*-linux.*	DEFAULT			GLIBC_2.16
 x86_64-.*-linux.*	ld=ld-linux-x32.so.2	GLIBC_2.16
 x86_64-.*-.*		ABI			x32-@OS@

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=4886efa462f56dd01b133610219826f73d2a479f

commit 4886efa462f56dd01b133610219826f73d2a479f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 15:39:40 2012 -0700

    Replace addl with add in sysdeps/x86_64/start.S

diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
index 57fe85f..27e37c9 100644
--- a/sysdeps/x86_64/start.S
+++ b/sysdeps/x86_64/start.S
@@ -85,7 +85,7 @@ _start:
 				   function.  */
 #ifdef __ILP32__
 	mov (%rsp),%esi		/* Simulate popping 4byte argument count.  */
-	addl $4,%esp
+	add $4,%esp
 #else
 	popq %rsi		/* Pop the argument count.  */
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=be5eaa9c99a1c8ef63fc72d04614a9247b60100c

commit be5eaa9c99a1c8ef63fc72d04614a9247b60100c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 13:26:04 2012 -0700

    Optimize and reformat x32 dl-machine.h

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 535654f..7f0eb74 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,9 @@
+2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/x32/dl-machine.h: Replace x32_dl_machine_h
+	with _X32_DL_MACHINE_H.
+	(RTLD_START): Optimize and reformat.
+
 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* elf/stackguard-macros.h (STACK_CHK_GUARD) [__x86_64__]: Use
diff --git a/sysdeps/x86_64/x32/dl-machine.h b/sysdeps/x86_64/x32/dl-machine.h
index 94d3c0b..bdc1f4b 100644
--- a/sysdeps/x86_64/x32/dl-machine.h
+++ b/sysdeps/x86_64/x32/dl-machine.h
@@ -16,10 +16,12 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Must allow <sysdeps/x86_64/dl-machine.h> to be included more than once.
+   See #ifdef RESOLVE_MAP in sysdeps/x86_64/dl-machine.h.  */
 #include <sysdeps/x86_64/dl-machine.h>
 
-#ifndef x32_dl_machine_h
-#define x32_dl_machine_h
+#ifndef _X32_DL_MACHINE_H
+#define _X32_DL_MACHINE_H
 
 #undef ARCH_LA_PLTENTER
 #undef ARCH_LA_PLTEXIT
@@ -34,7 +36,7 @@
    its return value is the user program's entry point.  */
 #define RTLD_START asm ("\n\
 .text\n\
-	.align 16\n\
+	.p2align 4\n\
 .globl _start\n\
 .globl _dl_start_user\n\
 _start:\n\
@@ -48,20 +50,19 @@ _dl_start_user:\n\
 	movl _dl_skip_args(%rip), %eax\n\
 	# Pop the original argument count.\n\
 	movl (%rsp), %edx\n\
-	addl $4,%esp\n\
 	# Adjust the stack pointer to skip _dl_skip_args words.\n\
-	lea (%rsp,%rax,4), %esp\n\
+	lea 4(%rsp,%rax,4), %esp\n\
 	# Subtract _dl_skip_args from argc.\n\
 	subl %eax, %edx\n\
 	# Push argc back on the stack.\n\
-	subl $4,%esp\n\
+	subl $4, %esp\n\
 	movl %edx, (%rsp)\n\
 	# Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
 	# argc -> rsi\n\
 	movl %edx, %esi\n\
 	# Save %rsp value in %r13.\n\
 	movl %esp, %r13d\n\
-	# And align stack for the _dl_init_internal call. \n\
+	# And align stack for the _dl_init_internal call.\n\
 	and $-16, %esp\n\
 	# _dl_loaded -> rdi\n\
 	movl _rtld_local(%rip), %edi\n\
@@ -72,7 +73,7 @@ _dl_start_user:\n\
 	# Clear %rbp to mark outermost frame obviously even for constructors.\n\
 	xorl %ebp, %ebp\n\
 	# Call the function to run the initializers.\n\
-	call _dl_init_internal@PLT\n\
+	call _dl_init_internal\n\
 	# Pass our finalizer function to the user in %rdx, as per ELF ABI.\n\
 	lea _dl_fini(%rip), %edx\n\
 	# And make sure %rsp points to argc stored on the stack.\n\
@@ -82,4 +83,4 @@ _dl_start_user:\n\
 .previous\n\
 ");
 
-#endif /* !x32_dl_machine_h */
+#endif /* !_X32_DL_MACHINE_H */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1479b6957eb7a6e64f4adb9ae0589818fd7b67d3

commit 1479b6957eb7a6e64f4adb9ae0589818fd7b67d3
Merge: d4e1af3 7ac7729
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon May 14 10:46:19 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d4e1af302fc8468636067d84f1c57048c8a7cd34

commit d4e1af302fc8468636067d84f1c57048c8a7cd34
Merge: aff426c dc70356
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat May 12 08:00:23 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=aff426c79157180f6e1a1d191257b050ab4555ca

commit aff426c79157180f6e1a1d191257b050ab4555ca
Merge: 7bba0c5 9fb1a21
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 17:35:08 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7bba0c5761014c1c9f55150359d826610436162b

commit 7bba0c5761014c1c9f55150359d826610436162b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 17:34:49 2012 -0700

    Update comments for CALL_THREAD_FCT

diff --git a/nptl/sysdeps/x86_64/x32/tls.h b/nptl/sysdeps/x86_64/x32/tls.h
index 6cc0ea7..7be337f 100644
--- a/nptl/sysdeps/x86_64/x32/tls.h
+++ b/nptl/sysdeps/x86_64/x32/tls.h
@@ -23,11 +23,11 @@
 
 #ifndef __ASSEMBLER__
 
-/* X32 doesn't support 32-bit indirect call via memory.  Instead, we
-   load 32-bit address from memory into the lower 32bits of return
-   register, which will automatically zero-extend the uppper 32-bits
-   of return register.  We then do the indirect call via 64-bit return
-   register.  */
+/* X32 doesn't support 32-bit indirect calls via memory.  Instead, we
+   load the 32-bit address from memory into the lower 32 bits of the
+   return-value register, which will automatically zero-extend the upper
+   32 bits of the return-value register.  We then do the indirect call
+   via the 64-bit return-value register.  */
 # undef CALL_THREAD_FCT
 # define CALL_THREAD_FCT(descr) \
   ({ void *__res;							      \

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e0b3e90103d3c8ccbaf95dff556e71796fa782e2

commit e0b3e90103d3c8ccbaf95dff556e71796fa782e2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 17:34:07 2012 -0700

    Improve x86-64 STACK_CHK_GUARD

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 9fc432b..535654f 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* elf/stackguard-macros.h (STACK_CHK_GUARD) [__x86_64__]: Use
+	"%c1" with "i" (offsetof (tcbhead_t, stack_guard)).
+
+2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-trampoline.S: Update error message.
 
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/elf/stackguard-macros.h b/elf/stackguard-macros.h
index e9b15f5..0cad315 100644
--- a/elf/stackguard-macros.h
+++ b/elf/stackguard-macros.h
@@ -4,13 +4,10 @@
 # define STACK_CHK_GUARD \
   ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
 #elif defined __x86_64__
-# ifdef __ILP32__
-#  define STACK_CHK_GUARD \
-  ({ uintptr_t x; asm ("movl %%fs:0x18, %0" : "=r" (x)); x; })
-# else
-#  define STACK_CHK_GUARD \
-  ({ uintptr_t x; asm ("movq %%fs:0x28, %0" : "=r" (x)); x; })
-# endif
+# define STACK_CHK_GUARD \
+  ({ uintptr_t x;						\
+     asm ("mov %%fs:%c1, %0" : "=r" (x)				\
+	  : "i" (offsetof (tcbhead_t, stack_guard))); x; })
 #elif defined __powerpc64__
 # define STACK_CHK_GUARD \
   ({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=36b5916e2eeb0ecea3d4c1b991d8e55f3d65e9e9

commit 36b5916e2eeb0ecea3d4c1b991d8e55f3d65e9e9
Merge: d1ab300 60d45b3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 14:45:04 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d1ab300fb6ff8f1f17600f12fe62453741aba860

commit d1ab300fb6ff8f1f17600f12fe62453741aba860
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 14:40:35 2012 -0700

    Add comments for CALL_THREAD_FCT

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 69299e4..9944038 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/x32/tls.h (CALL_THREAD_FCT): Add some
+	comments.
+
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/tls.h (THREAD_SELF): Replace movq/%q0 with
diff --git a/nptl/sysdeps/x86_64/x32/tls.h b/nptl/sysdeps/x86_64/x32/tls.h
index 4603ad7..6cc0ea7 100644
--- a/nptl/sysdeps/x86_64/x32/tls.h
+++ b/nptl/sysdeps/x86_64/x32/tls.h
@@ -23,6 +23,11 @@
 
 #ifndef __ASSEMBLER__
 
+/* X32 doesn't support 32-bit indirect call via memory.  Instead, we
+   load 32-bit address from memory into the lower 32bits of return
+   register, which will automatically zero-extend the uppper 32-bits
+   of return register.  We then do the indirect call via 64-bit return
+   register.  */
 # undef CALL_THREAD_FCT
 # define CALL_THREAD_FCT(descr) \
   ({ void *__res;							      \

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=00222c4d7d9eb943f603f8271ec41e4b55ddec26

commit 00222c4d7d9eb943f603f8271ec41e4b55ddec26
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 14:03:14 2012 -0700

    Update RTLD_SAVESPACE_SSE error message

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 000898f..9fc432b 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,7 @@
+2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/dl-trampoline.S: Update error message.
+
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela_relative): Handle
diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
index 0272b23..6185ba4 100644
--- a/sysdeps/x86_64/dl-trampoline.S
+++ b/sysdeps/x86_64/dl-trampoline.S
@@ -21,7 +21,7 @@
 #include <link-defines.h>
 
 #if (RTLD_SAVESPACE_SSE % 32) != 0
-# error "RTLD_SAVESPACE_SSE must be 32byte aligned"
+# error RTLD_SAVESPACE_SSE must be aligned to 32 bytes
 #endif
 
 	.text

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=17d2d5ca1aaf652cf87a013144bfd6d09f5d29be

commit 17d2d5ca1aaf652cf87a013144bfd6d09f5d29be
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 10:36:33 2012 -0700

    Update THREAD_SELF/THREAD_SETMEM/THREAD_SETMEM_NC

diff --git a/nptl/ChangeLog.x32 b/nptl/ChangeLog.x32
index 1b618dd..69299e4 100644
--- a/nptl/ChangeLog.x32
+++ b/nptl/ChangeLog.x32
@@ -1,3 +1,12 @@
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/tls.h (THREAD_SELF): Replace movq/%q0 with
+	mov/%0.
+	(THREAD_SETMEM): Use uint64_t on 64-bit integer.
+	(THREAD_SETMEM_NC): Likewise.
+
+	* sysdeps/x86_64/x32/tls.h (THREAD_SELF): Removed.
+
 2012-05-08  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/x32/shlib-versions: Replace GLIBC_2.11 with
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index ceffd10..1f0e991 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -177,7 +177,7 @@ typedef struct
    do not get optimized away.  */
 # define THREAD_SELF \
   ({ struct pthread *__self;						      \
-     asm ("movq %%fs:%c1,%q0" : "=r" (__self)				      \
+     asm ("mov %%fs:%c1,%0" : "=r" (__self)				      \
 	  : "i" (offsetof (struct pthread, header.self)));	 	      \
      __self;})
 
@@ -264,7 +264,7 @@ typedef struct
 	   abort ();							      \
 									      \
 	 asm volatile ("movq %q0,%%fs:%P1" :				      \
-		       : IMM_MODE ((unsigned long long int) value),	      \
+		       : IMM_MODE ((uint64_t) value),			      \
 			 "i" (offsetof (struct pthread, member)));	      \
        }})
 
@@ -289,7 +289,7 @@ typedef struct
 	   abort ();							      \
 									      \
 	 asm volatile ("movq %q0,%%fs:%P1(,%q2,8)" :			      \
-		       : IMM_MODE ((unsigned long long int) value),	      \
+		       : IMM_MODE ((uint64_t) value),			      \
 			 "i" (offsetof (struct pthread, member[0])),	      \
 			 "r" (idx));					      \
        }})
diff --git a/nptl/sysdeps/x86_64/x32/tls.h b/nptl/sysdeps/x86_64/x32/tls.h
index e397ca1..4603ad7 100644
--- a/nptl/sysdeps/x86_64/x32/tls.h
+++ b/nptl/sysdeps/x86_64/x32/tls.h
@@ -23,13 +23,6 @@
 
 #ifndef __ASSEMBLER__
 
-# undef THREAD_SELF
-# define THREAD_SELF \
-  ({ struct pthread *__self;						      \
-     asm ("movl %%fs:%c1,%k0" : "=r" (__self)				      \
-	  : "i" (offsetof (struct pthread, header.self)));	 	      \
-     __self;})
-
 # undef CALL_THREAD_FCT
 # define CALL_THREAD_FCT(descr) \
   ({ void *__res;							      \

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0898fd18f00276227655c5f0a60c8a5fea959c96

commit 0898fd18f00276227655c5f0a60c8a5fea959c96
Merge: 685c35d febb44a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri May 11 04:33:11 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=685c35d6909c07d8b1a80a776aa484789bad6302

commit 685c35d6909c07d8b1a80a776aa484789bad6302
Merge: d287100 0a10fb9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 19:27:36 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d287100675004aaf1abe45d5a63f20fd9bac1f9b

commit d287100675004aaf1abe45d5a63f20fd9bac1f9b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 19:26:54 2012 -0700

    Don't handle R_X86_64_RELATIVE64 in ld.so

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index d296277..000898f 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela_relative): Handle
+	R_X86_64_RELATIVE64 only if RTLD_BOOTSTRAP isn't defined.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Remove
 	__ILP32__ check on R_X86_64_RELATIVE64.  Use Elf64_Addr for
 	R_X86_64_64.
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 14df797..9c27ecf 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -487,11 +487,13 @@ elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
 			   void *const reloc_addr_arg)
 {
   ElfW(Addr) *const reloc_addr = reloc_addr_arg;
+#if !defined RTLD_BOOTSTRAP
   /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
      relocation updates the whole 64-bit entry.  */
   if (__builtin_expect (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE64, 0))
     *(Elf64_Addr *) reloc_addr = (Elf64_Addr) l_addr + reloc->r_addend;
   else
+#endif
     {
       assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
       *reloc_addr = l_addr + reloc->r_addend;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=73ba80e963b9d5b8d5dd120ebe3fc6f1b0eb52b4

commit 73ba80e963b9d5b8d5dd120ebe3fc6f1b0eb52b4
Merge: 63494e2 df8a552
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 17:06:32 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=63494e2428228987d4904bf461ba8503c42dc631

commit 63494e2428228987d4904bf461ba8503c42dc631
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 14:43:46 2012 -0700

    Remove __ILP32__ check on R_X86_64_RELATIVE64
    
    Also use Elf64_Addr for R_X86_64_64.

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 44961c0..d296277 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,13 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Remove
+	__ILP32__ check on R_X86_64_RELATIVE64.  Use Elf64_Addr for
+	R_X86_64_64.
+	(elf_machine_rela_relative): Remove __ILP32__ check on
+	R_X86_64_RELATIVE64.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* elf/elf.h (R_X86_64_RELATIVE64): Update comment.
 
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 1227428..4f613cd 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -283,7 +283,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
     }
   else
 # endif
-# if !defined RTLD_BOOTSTRAP && defined __ILP32__
+# if !defined RTLD_BOOTSTRAP
   /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
      relocation updates the whole 64-bit entry.  */
   if (__builtin_expect (r_type == R_X86_64_RELATIVE64, 0))
@@ -414,13 +414,9 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 
 # ifndef RTLD_BOOTSTRAP
 	case R_X86_64_64:
-#  ifdef __ILP32__
 	  /* value + r_addend may be > 0xffffffff and R_X86_64_64
 	     relocation updates the whole 64-bit entry.  */
 	  *(Elf64_Addr *) reloc_addr = (Elf64_Addr) value + reloc->r_addend;
-#  else
-	  *reloc_addr = value + reloc->r_addend;
-#  endif
 	  break;
 	case R_X86_64_32:
 	  value += reloc->r_addend;
@@ -491,17 +487,15 @@ elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
 			   void *const reloc_addr_arg)
 {
   ElfW(Addr) *const reloc_addr = reloc_addr_arg;
-#ifdef __ILP32__
   /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
      relocation updates the whole 64-bit entry.  */
   if (__builtin_expect (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE64, 0))
+    *(Elf64_Addr *) reloc_addr = (Elf64_Addr) l_addr + reloc->r_addend;
+  else
     {
-      *(Elf64_Addr *) reloc_addr = (Elf64_Addr) l_addr + reloc->r_addend;
-      return;
+      assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
+      *reloc_addr = l_addr + reloc->r_addend;
     }
-#endif
-  assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
-  *reloc_addr = l_addr + reloc->r_addend;
 }
 
 auto inline void

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ab561cc2b9ac4cb0e75518b015b7cab56454ed5c

commit ab561cc2b9ac4cb0e75518b015b7cab56454ed5c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 12:47:01 2012 -0700

    Update R_X86_64_RELATIVE64 comment

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7f84991..44961c0 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,9 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* elf/elf.h (R_X86_64_RELATIVE64): Update comment.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/Makefile (quad-pie-test): New.
 	(tests): Add $(quad-pie-test).
 	(tests-pie): Likewise.
diff --git a/elf/elf.h b/elf/elf.h
index 17b476c..6522ea6 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2703,7 +2703,7 @@ typedef Elf32_Addr Elf32_Conflict;
 					   descriptor.  */
 #define R_X86_64_TLSDESC        36	/* TLS descriptor.  */
 #define R_X86_64_IRELATIVE	37	/* Adjust indirectly by program base */
-#define R_X86_64_RELATIVE64	38	/* 64bit adjust by program base */
+#define R_X86_64_RELATIVE64	38	/* 64-bit adjust by program base */
 
 #define R_X86_64_NUM		39
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6353ced481dcf05076644e5ff1d2d1b742c5a3fd

commit 6353ced481dcf05076644e5ff1d2d1b742c5a3fd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 12:45:03 2012 -0700

    Add PIE tests for R_X86_64_64

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b9dc625..7f84991 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,20 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/Makefile (quad-pie-test): New.
+	(tests): Add $(quad-pie-test).
+	(tests-pie): Likewise.
+
+	* sysdeps/x86_64/tst-quadmod1.S (BIAS): Defined only if not
+	defined.
+	* sysdeps/x86_64/tst-quadmod2.S (BIAS): Likewise.
+
+	* sysdeps/x86_64/tst-quad1pie.c: New file.
+	* sysdeps/x86_64/tst-quad2pie.c: Likewise.
+	* sysdeps/x86_64/tst-quadmod1pie.S: Likewise.
+	* sysdeps/x86_64/tst-quadmod2pie.S: Likewise.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Properly handle
 	R_X86_64_64 for x32.
 
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index f2cb28d..81c9128 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -27,6 +27,13 @@ modules-names += tst-quadmod1 tst-quadmod2
 $(objpfx)tst-quad1: $(objpfx)tst-quadmod1.so
 $(objpfx)tst-quad2: $(objpfx)tst-quadmod2.so
 
+quad-pie-test += tst-quad1pie tst-quad2pie
+tests += $(quad-pie-test)
+tests-pie += $(quad-pie-test)
+
+$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
+$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
+
 tests: $(objpfx)tst-xmmymm.out
 $(objpfx)tst-xmmymm.out: ../sysdeps/x86_64/tst-xmmymm.sh $(objpfx)ld.so
 	@echo "Checking ld.so for SSE register use.  This will take a few seconds..."
diff --git a/sysdeps/x86_64/tst-quad1pie.c b/sysdeps/x86_64/tst-quad1pie.c
new file mode 100644
index 0000000..f5fd45f
--- /dev/null
+++ b/sysdeps/x86_64/tst-quad1pie.c
@@ -0,0 +1 @@
+#include "tst-quad1.c"
diff --git a/sysdeps/x86_64/tst-quad2pie.c b/sysdeps/x86_64/tst-quad2pie.c
new file mode 100644
index 0000000..a15d8d3
--- /dev/null
+++ b/sysdeps/x86_64/tst-quad2pie.c
@@ -0,0 +1 @@
+#include "tst-quad2.c"
diff --git a/sysdeps/x86_64/tst-quadmod1.S b/sysdeps/x86_64/tst-quadmod1.S
index 385a130..0e691be 100644
--- a/sysdeps/x86_64/tst-quadmod1.S
+++ b/sysdeps/x86_64/tst-quadmod1.S
@@ -15,7 +15,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define BIAS	0x7fffffff
+#ifndef BIAS
+# define BIAS	0x7fffffff
+#endif
 
 	.section	.data.rel,"aw",@progbits
 	.align 8
diff --git a/sysdeps/x86_64/tst-quadmod1pie.S b/sysdeps/x86_64/tst-quadmod1pie.S
new file mode 100644
index 0000000..c671d0c
--- /dev/null
+++ b/sysdeps/x86_64/tst-quadmod1pie.S
@@ -0,0 +1,2 @@
+#define BIAS 0x7fff0000
+#include "tst-quadmod1.S"
diff --git a/sysdeps/x86_64/tst-quadmod2.S b/sysdeps/x86_64/tst-quadmod2.S
index 451ed4b..38ab959 100644
--- a/sysdeps/x86_64/tst-quadmod2.S
+++ b/sysdeps/x86_64/tst-quadmod2.S
@@ -15,7 +15,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define BIAS 0x7fff0000
+#ifndef BIAS
+# define BIAS 0x7fff0000
+#endif
 
 	.section	.data.rel.local,"aw",@progbits
 	.align 8
diff --git a/sysdeps/x86_64/tst-quadmod2pie.S b/sysdeps/x86_64/tst-quadmod2pie.S
new file mode 100644
index 0000000..609183f
--- /dev/null
+++ b/sysdeps/x86_64/tst-quadmod2pie.S
@@ -0,0 +1 @@
+#include "tst-quadmod2.S"

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5c28a9aacfb9d9a17603a2b3c2998c4346378f4d

commit 5c28a9aacfb9d9a17603a2b3c2998c4346378f4d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 12:44:04 2012 -0700

    Properly handle R_X86_64_64 for x32

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 03c883d..b9dc625 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,10 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Properly handle
+	R_X86_64_64 for x32.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add a comment
 	for R_X86_64_RELATIVE64.
 	(elf_machine_rela_relative): Handle R_X86_64_RELATIVE64 for x32.
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 2ac389d..1227428 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -414,11 +414,12 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 
 # ifndef RTLD_BOOTSTRAP
 	case R_X86_64_64:
-	  value += reloc->r_addend;
 #  ifdef __ILP32__
-	  *(Elf64_Addr *) reloc_addr = (Elf64_Addr) value;
+	  /* value + r_addend may be > 0xffffffff and R_X86_64_64
+	     relocation updates the whole 64-bit entry.  */
+	  *(Elf64_Addr *) reloc_addr = (Elf64_Addr) value + reloc->r_addend;
 #  else
-	  *reloc_addr = value;
+	  *reloc_addr = value + reloc->r_addend;
 #  endif
 	  break;
 	case R_X86_64_32:

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=703f5f5336f917bd1e5be38ee12a45f6bdd86d1f

commit 703f5f5336f917bd1e5be38ee12a45f6bdd86d1f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 10:41:52 2012 -0700

    Update R_X86_64_RELATIVE64 process

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 5ea76a4..03c883d 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add a comment
+	for R_X86_64_RELATIVE64.
+	(elf_machine_rela_relative): Handle R_X86_64_RELATIVE64 for x32.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/Makefile (tests): Add tst-quad1 tst-quad2.
 	(modules-names): Add tst-quadmod1 tst-quadmod2.
 	($(objpfx)tst-quad1): New dependency.
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 3801527..2ac389d 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -284,9 +284,10 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
   else
 # endif
 # if !defined RTLD_BOOTSTRAP && defined __ILP32__
+  /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
+     relocation updates the whole 64-bit entry.  */
   if (__builtin_expect (r_type == R_X86_64_RELATIVE64, 0))
-    *(Elf64_Addr *) reloc_addr
-      = (Elf64_Addr) map->l_addr + reloc->r_addend;
+    *(Elf64_Addr *) reloc_addr = (Elf64_Addr) map->l_addr + reloc->r_addend;
   else
 # endif
   if (__builtin_expect (r_type == R_X86_64_NONE, 0))
@@ -489,6 +490,15 @@ elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
 			   void *const reloc_addr_arg)
 {
   ElfW(Addr) *const reloc_addr = reloc_addr_arg;
+#ifdef __ILP32__
+  /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
+     relocation updates the whole 64-bit entry.  */
+  if (__builtin_expect (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE64, 0))
+    {
+      *(Elf64_Addr *) reloc_addr = (Elf64_Addr) l_addr + reloc->r_addend;
+      return;
+    }
+#endif
   assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
   *reloc_addr = l_addr + reloc->r_addend;
 }

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=acc466e8bc8cf7952eef3d8e9eea2a915a61220a

commit acc466e8bc8cf7952eef3d8e9eea2a915a61220a
Merge: 5d5644c 6d74dd0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 10:19:48 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5d5644c386904e952c46364b979058c4074b0d5b

commit 5d5644c386904e952c46364b979058c4074b0d5b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 10:17:28 2012 -0700

    Keep long lines in sysdeps/x86_64/dl-machine.h

diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 90e3410..3801527 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -342,8 +342,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 		 bits but the GOT entry is 64 bits wide and the whole
 		 64-bit entry is used as a signed quantity, so we need
 		 to sign-extend the computed value to 64 bits.  */
-	      *(Elf64_Sxword *) reloc_addr
-		= (Elf64_Sxword) (Elf32_Sxword) value;
+	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) (Elf32_Sxword) value;
 #   else
 	      *reloc_addr = value;
 #   endif
@@ -404,8 +403,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 		 entry is 64 bits wide and the whole 64-bit entry is used
 		 as a signed quantity, so we need to sign-extend the
 		 computed value to 64 bits.  */
-	      *(Elf64_Sxword *) reloc_addr
-		= (Elf64_Sxword) (Elf32_Sword) value;
+	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) (Elf32_Sword) value;
 #  else
 	      *reloc_addr = value;
 #  endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a3654dd68b9a17f20e7600501c763f0ee2cc37ca

commit a3654dd68b9a17f20e7600501c763f0ee2cc37ca
Merge: 29177f3 6f27cd1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 10:16:38 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=29177f346388bf75968718e33f5a42263d05732d

commit 29177f346388bf75968718e33f5a42263d05732d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 07:28:05 2012 -0700

    Add tests for R_X86_64_64

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index d50d906..5ea76a4 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,16 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/Makefile (tests): Add tst-quad1 tst-quad2.
+	(modules-names): Add tst-quadmod1 tst-quadmod2.
+	($(objpfx)tst-quad1): New dependency.
+	($(objpfx)tst-quad2): Likewise.
+	* sysdeps/x86_64/tst-quad1.c: New file.
+	* sysdeps/x86_64/tst-quad2.c: Likewise.
+	* sysdeps/x86_64/tst-quadmod1.S: Likewise.
+	* sysdeps/x86_64/tst-quadmod2.S: Likewise.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Simplify
 	x32 relocations.
 
diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
index b989f6a..f2cb28d 100644
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -21,6 +21,12 @@ sysdep-dl-routines += tlsdesc dl-tlsdesc
 sysdep_routines += tlsdesc dl-tlsdesc
 sysdep-rtld-routines += tlsdesc dl-tlsdesc
 
+tests += tst-quad1 tst-quad2
+modules-names += tst-quadmod1 tst-quadmod2
+
+$(objpfx)tst-quad1: $(objpfx)tst-quadmod1.so
+$(objpfx)tst-quad2: $(objpfx)tst-quadmod2.so
+
 tests: $(objpfx)tst-xmmymm.out
 $(objpfx)tst-xmmymm.out: ../sysdeps/x86_64/tst-xmmymm.sh $(objpfx)ld.so
 	@echo "Checking ld.so for SSE register use.  This will take a few seconds..."
diff --git a/sysdeps/x86_64/tst-quad1.c b/sysdeps/x86_64/tst-quad1.c
new file mode 100644
index 0000000..a8567ea
--- /dev/null
+++ b/sysdeps/x86_64/tst-quad1.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+extern void foo (void);
+
+int
+main (void)
+{
+  foo ();
+  return 0;
+}
diff --git a/sysdeps/x86_64/tst-quad2.c b/sysdeps/x86_64/tst-quad2.c
new file mode 100644
index 0000000..f5fd45f
--- /dev/null
+++ b/sysdeps/x86_64/tst-quad2.c
@@ -0,0 +1 @@
+#include "tst-quad1.c"
diff --git a/sysdeps/x86_64/tst-quadmod1.S b/sysdeps/x86_64/tst-quadmod1.S
new file mode 100644
index 0000000..385a130
--- /dev/null
+++ b/sysdeps/x86_64/tst-quadmod1.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define BIAS	0x7fffffff
+
+	.section	.data.rel,"aw",@progbits
+	.align 8
+.Ljmp:
+	.quad	func + BIAS
+	.text
+	.globl	func
+	.type	func, @function
+func:
+	.cfi_startproc
+	xorl	%edi, %edi
+	jmp	exit@PLT
+	.cfi_endproc
+	.size	func, .-func
+	.globl	foo
+	.type	foo, @function
+foo:
+	.cfi_startproc
+	.cfi_def_cfa_register 6
+	movq	.Ljmp(%rip), %rax
+	subq	$BIAS, %rax
+	jmp	*%rax
+	.cfi_endproc
+	.size	foo, .-foo
diff --git a/sysdeps/x86_64/tst-quadmod2.S b/sysdeps/x86_64/tst-quadmod2.S
new file mode 100644
index 0000000..451ed4b
--- /dev/null
+++ b/sysdeps/x86_64/tst-quadmod2.S
@@ -0,0 +1,41 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define BIAS 0x7fff0000
+
+	.section	.data.rel.local,"aw",@progbits
+	.align 8
+.Ljmp:
+	.quad	func + BIAS
+	.text
+	.type	func, @function
+func:
+	.cfi_startproc
+	xorl	%edi, %edi
+	jmp	exit@PLT
+	.cfi_endproc
+	.size	func, .-func
+	.globl	foo
+	.type	foo, @function
+foo:
+	.cfi_startproc
+	.cfi_def_cfa_register 6
+	movq	.Ljmp(%rip), %rax
+	subq	$BIAS, %rax
+	jmp	*%rax
+	.cfi_endproc
+	.size	foo, .-foo

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=aebbd9a1f4769049defd414c31958f2c603eeecc

commit aebbd9a1f4769049defd414c31958f2c603eeecc
Merge: e97f187 02467e1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 06:31:49 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e97f187ae3b3c716c4c96c35f53a645441b50331

commit e97f187ae3b3c716c4c96c35f53a645441b50331
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 06:31:17 2012 -0700

    Simplify x32 dynamic relocations

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 71d06e1..d50d906 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Simplify
+	x32 relocations.
+
 2012-05-09  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add some
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 3eef829..90e3410 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -285,7 +285,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 # endif
 # if !defined RTLD_BOOTSTRAP && defined __ILP32__
   if (__builtin_expect (r_type == R_X86_64_RELATIVE64, 0))
-    *((Elf64_Addr *) (uintptr_t) reloc_addr)
+    *(Elf64_Addr *) reloc_addr
       = (Elf64_Addr) map->l_addr + reloc->r_addend;
   else
 # endif
@@ -334,19 +334,20 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 	  /* During relocation all TLS symbols are defined and used.
 	     Therefore the offset is already correct.  */
 	  if (sym != NULL)
-#   ifdef __ILP32__
 	    {
+	      value = sym->st_value + reloc->r_addend;
+#   ifdef __ILP32__
 	      /* This relocation type computes a signed offset that is
 		 usually negative.  The symbol and addend values are 32
 		 bits but the GOT entry is 64 bits wide and the whole
 		 64-bit entry is used as a signed quantity, so we need
 		 to sign-extend the computed value to 64 bits.  */
-	      Elf32_Sword svalue = sym->st_value + reloc->r_addend;
-	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) svalue;
-	    }
+	      *(Elf64_Sxword *) reloc_addr
+		= (Elf64_Sxword) (Elf32_Sxword) value;
 #   else
-	    *reloc_addr = sym->st_value + reloc->r_addend;
+	      *reloc_addr = value;
 #   endif
+	    }
 #  endif
 	  break;
 	case R_X86_64_TLSDESC:
@@ -396,19 +397,17 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 	      /* We know the offset of the object the symbol is contained in.
 		 It is a negative value which will be added to the
 		 thread pointer.  */
+	      value = (sym->st_value + reloc->r_addend
+		       - sym_map->l_tls_offset);
 #  ifdef __ILP32__
-	    {
 	      /* The symbol and addend values are 32 bits but the GOT
 		 entry is 64 bits wide and the whole 64-bit entry is used
 		 as a signed quantity, so we need to sign-extend the
 		 computed value to 64 bits.  */
-	      Elf32_Sword svalue = (sym->st_value + reloc->r_addend 
-				    - sym_map->l_tls_offset);
-	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) svalue;
-	    }
+	      *(Elf64_Sxword *) reloc_addr
+		= (Elf64_Sxword) (Elf32_Sword) value;
 #  else
-	      *reloc_addr = (sym->st_value + reloc->r_addend
-			     - sym_map->l_tls_offset);
+	      *reloc_addr = value;
 #  endif
 	    }
 	  break;
@@ -416,11 +415,11 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 
 # ifndef RTLD_BOOTSTRAP
 	case R_X86_64_64:
+	  value += reloc->r_addend;
 #  ifdef __ILP32__
-	  *((Elf64_Addr *) (uintptr_t) reloc_addr)
-	    = (Elf64_Addr) value + reloc->r_addend;
+	  *(Elf64_Addr *) reloc_addr = (Elf64_Addr) value;
 #  else
-	  *reloc_addr = value + reloc->r_addend;
+	  *reloc_addr = value;
 #  endif
 	  break;
 	case R_X86_64_32:

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=18b0b70bd7bcd775b0ce9f2bc1f15dcf225fc94c

commit 18b0b70bd7bcd775b0ce9f2bc1f15dcf225fc94c
Merge: 32a68af b1cc247
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 9 06:43:05 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=32a68affe8e2b7fcbff18c5a1029642824b0099c

commit 32a68affe8e2b7fcbff18c5a1029642824b0099c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 9 06:38:07 2012 -0700

    Add comments for R_X86_64_DTPOFF64/R_X86_64_TPOFF64

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index dddc7ea..71d06e1 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,8 @@
+2012-05-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Add some
+	comments for R_X86_64_DTPOFF64/R_X86_64_TPOFF64
+
 2012-05-08  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/x32/shlib-versions: Replace GLIBC_2.11 with
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 6fcd28d..3eef829 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -335,9 +335,15 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 	     Therefore the offset is already correct.  */
 	  if (sym != NULL)
 #   ifdef __ILP32__
-	    *(Elf64_Sxword *) reloc_addr
-	      = (Elf64_Sxword)
-		  ((Elf32_Sword) (sym->st_value + reloc->r_addend));
+	    {
+	      /* This relocation type computes a signed offset that is
+		 usually negative.  The symbol and addend values are 32
+		 bits but the GOT entry is 64 bits wide and the whole
+		 64-bit entry is used as a signed quantity, so we need
+		 to sign-extend the computed value to 64 bits.  */
+	      Elf32_Sword svalue = sym->st_value + reloc->r_addend;
+	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) svalue;
+	    }
 #   else
 	    *reloc_addr = sym->st_value + reloc->r_addend;
 #   endif
@@ -391,10 +397,15 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
 		 It is a negative value which will be added to the
 		 thread pointer.  */
 #  ifdef __ILP32__
-	    *(Elf64_Sxword *) reloc_addr
-	      = (Elf64_Sxword)
-		  ((Elf32_Sword) (sym->st_value + reloc->r_addend
-				  - sym_map->l_tls_offset));
+	    {
+	      /* The symbol and addend values are 32 bits but the GOT
+		 entry is 64 bits wide and the whole 64-bit entry is used
+		 as a signed quantity, so we need to sign-extend the
+		 computed value to 64 bits.  */
+	      Elf32_Sword svalue = (sym->st_value + reloc->r_addend 
+				    - sym_map->l_tls_offset);
+	      *(Elf64_Sxword *) reloc_addr = (Elf64_Sxword) svalue;
+	    }
 #  else
 	      *reloc_addr = (sym->st_value + reloc->r_addend
 			     - sym_map->l_tls_offset);

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          | 1747 +
 ChangeLog.x32                                      |  565 +-
 INSTALL                                            |   20 +-
 Makeconfig                                         |    5 +-
 Makerules                                          |   10 +-
 NEWS                                               |  111 +-
 README.libm                                        |  856 -
 bits/in.h                                          |   16 +-
 bits/libc-lock.h                                   |    5 +-
 bits/sigaction.h                                   |    4 +-
 bits/types.h                                       |    6 +-
 bits/typesizes.h                                   |    5 +-
 config.h.in                                        |    6 +
 config.make.in                                     |    3 +
 configure                                          |  254 +-
 configure.in                                       |  121 +-
 conform/data/locale.h-data                         |   22 +-
 conform/data/math.h-data                           |  106 +-
 conform/data/setjmp.h-data                         |    2 +
 conform/data/signal.h-data                         |   66 +-
 conform/data/stdarg.h-data                         |    2 +
 crypt/sha512c-test.c                               |    2 +-
 csu/.gitignore                                     |    1 -
 elf/Makefile                                       |    5 +-
 elf/dl-support.c                                   |    2 +
 elf/dl-sysdep.c                                    |    9 +-
 elf/elf.h                                          |    2 +-
 elf/ldconfig.c                                     |    6 +-
 elf/rtld.c                                         |    2 +-
 elf/stackguard-macros.h                            |   35 -
 elf/tst-relsort1.c                                 |    2 +-
 hurd/catch-signal.c                                |   13 +-
 hurd/hurd/fd.h                                     |    8 +-
 hurd/hurdchdir.c                                   |    5 +-
 hurd/hurdselect.c                                  |   28 +-
 hurd/hurdsock.c                                    |    8 +-
 hurd/intern-fd.c                                   |    4 +-
 hurd/lookup-retry.c                                |    9 +-
 hurd/port2fd.c                                     |    4 +-
 iconvdata/gb18030.c                                |11211 +++-
 iconvdata/tcvn5712-1.c                             |    5 +-
 include/features.h                                 |   12 +-
 include/libc-symbols.h                             |   28 +-
 include/shlib-compat.h                             |   10 +
 include/stdc-predef.h                              |    8 +-
 include/sys/socket.h                               |    3 +
 include/unistd.h                                   |    3 +-
 io/dup3.c                                          |    5 +-
 io/fcntl.h                                         |   26 +-
 libio/fileops.c                                    |    4 +-
 libio/freopen.c                                    |   11 +-
 libio/freopen64.c                                  |   11 +-
 locale/bits/locale.h                               |   31 +-
 localedata/ChangeLog                               |   14 +
 localedata/Makefile                                |    8 +-
 localedata/SUPPORTED                               |    1 -
 localedata/charmaps/GB18030                        |62496 +++++++++++++++++++-
 localedata/tst-strptime.c                          |   54 -
 malloc/malloc.c                                    |   77 +-
 manual/.gitignore                                  |   30 -
 manual/Makefile                                    |  171 +-
 manual/contrib.texi                                |  337 +-
 manual/examples/search.c                           |    5 +-
 manual/install.texi                                |   14 +-
 manual/libc-texinfo.sh                             |   19 +-
 manual/startup.texi                                |   30 +-
 manual/string.texi                                 |   11 +-
 math/bug-nextafter.c                               |    6 +
 math/bug-nexttoward.c                              |    6 +
 math/libm-test.inc                                 |  156 +
 math/s_ccosh.c                                     |   43 +-
 math/s_ccoshf.c                                    |   43 +-
 math/s_ccoshl.c                                    |   43 +-
 math/s_csin.c                                      |   43 +-
 math/s_csinf.c                                     |   43 +-
 math/s_csinh.c                                     |   43 +-
 math/s_csinhf.c                                    |   43 +-
 math/s_csinhl.c                                    |   43 +-
 math/s_csinl.c                                     |   43 +-
 math/test-fenv.c                                   |    6 +
 math/test-misc.c                                   |    6 +
 math/w_ilogbf.c                                    |    1 +
 misc/Makefile                                      |    4 +-
 misc/Versions                                      |    3 +
 misc/getauxval.c                                   |   36 +
 misc/sys/auxv.h                                    |   36 +
 misc/syslog.c                                      |    2 +
 nis/Makefile                                       |    6 +
 nptl/ChangeLog                                     |  184 +
 nptl/ChangeLog.x32                                 |   43 +
 nptl/Makefile                                      |    2 +
 nptl/descr.h                                       |   15 +
 nptl/pthreadP.h                                    |   17 +-
 nptl/pthread_cancel.c                              |    8 +
 nptl/sysdeps/pthread/bits/libc-lockP.h             |    2 +
 nptl/sysdeps/pthread/pthread.h                     |    3 +
 nptl/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h |    6 +-
 .../unix/sysv/linux/libc_multiple_threads.c        |    3 +
 .../unix/sysv/linux/sh/pthread_cond_timedwait.S    |  144 +-
 .../sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S |  135 +-
 nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S    |  130 +-
 nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S         |  116 +-
 nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h |   63 +-
 nptl/sysdeps/x86_64/64/shlib-versions              |    2 +
 nptl/sysdeps/x86_64/tls.h                          |   18 +-
 nptl/sysdeps/x86_64/x32/shlib-versions             |    2 +
 nptl/sysdeps/x86_64/x32/tls.h                      |   12 +-
 nptl/tst-cancel-self-cancelstate.c                 |   65 +
 nptl/tst-cancel-self-canceltype.c                  |   53 +
 nptl/tst-cancel-self-cleanup.c                     |   23 +
 nptl/tst-cancel-self-testcancel.c                  |   48 +
 nptl/tst-cancel-self.c                             |   48 +
 nptl/tst-stackguard1.c                             |    4 +-
 nptl/vars.c                                        |    4 +-
 nscd/connections.c                                 |    7 +-
 nscd/netgroupcache.c                               |    7 +-
 nscd/nscd-client.h                                 |   22 +-
 nscd/nscd.c                                        |   58 +-
 nscd/nscd_gethst_r.c                               |   21 +-
 nscd/nscd_helper.c                                 |   15 +-
 nss/makedb.c                                       |    8 +-
 nss/nss_db/db-initgroups.c                         |    2 +
 posix/tst-sysconf.c                                |    6 +
 stdio-common/Makefile                              |    3 +-
 stdio-common/bug15.c                               |   10 -
 stdio-common/bug22.c                               |    2 +-
 stdlib/bug-getcontext.c                            |    4 +
 stdlib/longlong.h                                  |   82 +-
 streams/stropts.h                                  |    3 +-
 string/bits/string2.h                              |    4 +-
 sunrpc/Makefile                                    |   46 +-
 sunrpc/auth_des.c                                  |    4 +-
 sunrpc/auth_none.c                                 |    2 +-
 sunrpc/auth_unix.c                                 |    4 +-
 sunrpc/authdes_prot.c                              |    4 +-
 sunrpc/authuxprot.c                                |    2 +-
 sunrpc/clnt_gen.c                                  |    2 +-
 sunrpc/clnt_perr.c                                 |   10 +-
 sunrpc/clnt_raw.c                                  |    2 +-
 sunrpc/clnt_simp.c                                 |    2 +-
 sunrpc/clnt_tcp.c                                  |    2 +-
 sunrpc/clnt_udp.c                                  |    6 +-
 sunrpc/clnt_unix.c                                 |    2 +-
 sunrpc/des_crypt.c                                 |    4 +-
 sunrpc/des_soft.c                                  |    2 +-
 sunrpc/get_myaddr.c                                |    2 +-
 sunrpc/key_call.c                                  |   18 +-
 sunrpc/key_prot.c                                  |   20 +-
 sunrpc/netname.c                                   |   10 +-
 sunrpc/pm_getmaps.c                                |    2 +-
 sunrpc/pm_getport.c                                |    4 +-
 sunrpc/pmap_clnt.c                                 |    4 +-
 sunrpc/pmap_prot.c                                 |    2 +-
 sunrpc/pmap_prot2.c                                |    2 +-
 sunrpc/pmap_rmt.c                                  |    8 +-
 sunrpc/proto.h                                     |   16 +
 sunrpc/publickey.c                                 |    4 +-
 sunrpc/rpc_cmsg.c                                  |    2 +-
 sunrpc/rpc_common.c                                |    2 +-
 sunrpc/rpc_dtable.c                                |    2 +-
 sunrpc/rpc_prot.c                                  |   14 +-
 sunrpc/rpc_thread.c                                |    8 +-
 sunrpc/rtime.c                                     |    2 +-
 sunrpc/svc.c                                       |   32 +-
 sunrpc/svc_auth.c                                  |    2 +-
 sunrpc/svc_raw.c                                   |    2 +-
 sunrpc/svc_run.c                                   |    4 +-
 sunrpc/svc_simple.c                                |    5 +-
 sunrpc/svc_tcp.c                                   |    4 +-
 sunrpc/svc_udp.c                                   |    6 +-
 sunrpc/svc_unix.c                                  |    4 +-
 sunrpc/svcauth_des.c                               |    2 +-
 sunrpc/xcrypt.c                                    |    7 +-
 sunrpc/xdr.c                                       |   44 +-
 sunrpc/xdr_array.c                                 |    4 +-
 sunrpc/xdr_float.c                                 |    4 +-
 sunrpc/xdr_intXX_t.c                               |   20 +-
 sunrpc/xdr_mem.c                                   |    2 +-
 sunrpc/xdr_rec.c                                   |    8 +-
 sunrpc/xdr_ref.c                                   |    4 +-
 sunrpc/xdr_sizeof.c                                |    2 +-
 sunrpc/xdr_stdio.c                                 |    2 +-
 sysdeps/generic/bits/hwcap.h                       |   23 +
 sysdeps/generic/ldsodefs.h                         |    9 +-
 sysdeps/generic/paths.h                            |    8 +-
 sysdeps/generic/stackguard-macros.h                |    4 +
 sysdeps/gnu/bits/utmp.h                            |    7 +-
 sysdeps/gnu/bits/utmpx.h                           |    4 +-
 sysdeps/gnu/configure                              |   36 +
 sysdeps/gnu/configure.in                           |   36 +
 sysdeps/i386/dl-machine.h                          |    4 +-
 sysdeps/i386/fpu/bits/mathinline.h                 |   37 -
 sysdeps/i386/fpu/libm-test-ulps                    |  217 +
 sysdeps/i386/i686/fpu/multiarch/Makefile           |    3 +
 sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S      |   22 +
 sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S      |  324 +
 sysdeps/i386/i686/fpu/multiarch/e_expf.c           |   15 +
 sysdeps/i386/i686/multiarch/Makefile               |    1 +
 sysdeps/i386/i686/multiarch/test-multiarch.c       |    1 +
 sysdeps/i386/i686/multiarch/wcschr-c.c             |   12 +-
 sysdeps/i386/stackguard-macros.h                   |    4 +
 sysdeps/ieee754/dbl-64/e_log10.c                   |   59 +-
 sysdeps/ieee754/dbl-64/e_log2.c                    |  114 +-
 sysdeps/ieee754/dbl-64/s_logb.c                    |   37 +-
 sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c       |   86 +
 sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c        |  128 +
 sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c        |   13 +-
 sysdeps/ieee754/flt-32/s_logbf.c                   |   32 +-
 sysdeps/ieee754/ldbl-128/s_logbl.c                 |   31 +-
 sysdeps/ieee754/ldbl-128ibm/s_logbl.c              |   35 +-
 sysdeps/ieee754/ldbl-96/s_logbl.c                  |   35 +-
 sysdeps/ieee754/ldbl-opt/Makefile                  |    1 +
 sysdeps/mach/bits/libc-lock.h                      |    5 +-
 sysdeps/mach/hurd/Makefile                         |    3 +-
 sysdeps/mach/hurd/accept.c                         |   65 +-
 sysdeps/mach/hurd/accept4.c                        |   99 +
 sysdeps/mach/hurd/bits/fcntl.h                     |   11 +-
 sysdeps/mach/hurd/bits/ioctls.h                    |    3 +-
 sysdeps/mach/hurd/bits/libc-lock.h                 |    5 +-
 sysdeps/mach/hurd/bits/posix_opt.h                 |   30 +-
 sysdeps/mach/hurd/bits/socket.h                    |  362 +
 sysdeps/mach/hurd/bits/stat.h                      |   59 +-
 sysdeps/mach/hurd/bits/typesizes.h                 |    6 +-
 sysdeps/mach/hurd/brk.c                            |   20 +-
 sysdeps/mach/hurd/chroot.c                         |    5 +-
 sysdeps/mach/hurd/configure                        |  170 +-
 sysdeps/mach/hurd/configure.in                     |    4 -
 sysdeps/mach/hurd/dirfd.c                          |    5 +-
 sysdeps/mach/hurd/dl-sysdep.c                      |   11 +-
 sysdeps/mach/hurd/dl-sysdep.h                      |    5 +-
 sysdeps/mach/hurd/dup2.c                           |  114 +-
 sysdeps/mach/hurd/dup3.c                           |  139 +
 sysdeps/mach/hurd/i386/Makefile                    |    4 +
 sysdeps/mach/hurd/i386/____longjmp_chk.S           |  107 +
 sysdeps/mach/hurd/i386/init-first.c                |   47 +-
 sysdeps/mach/hurd/i386/signal-defines.sym          |   10 +
 sysdeps/mach/hurd/ioctl.c                          |   21 +-
 sysdeps/mach/hurd/kernel-features.h                |   13 +-
 sysdeps/mach/hurd/mkdir.c                          |    8 +-
 sysdeps/mach/hurd/mkdirat.c                        |    9 +-
 sysdeps/mach/hurd/mlock.c                          |    4 +-
 sysdeps/mach/hurd/openat.c                         |    6 +-
 sysdeps/mach/hurd/opendir.c                        |   42 +-
 sysdeps/mach/hurd/readlinkat.c                     |   63 +
 sysdeps/mach/hurd/recvfrom.c                       |    6 +-
 sysdeps/mach/hurd/setitimer.c                      |    5 +-
 sysdeps/mach/hurd/setresgid.c                      |   76 +-
 sysdeps/mach/hurd/setresuid.c                      |   75 +-
 sysdeps/mach/hurd/xmknodat.c                       |   10 +-
 sysdeps/mach/hurd/xstatconv.c                      |   11 +-
 sysdeps/mach/nanosleep.c                           |   33 +-
 sysdeps/posix/getaddrinfo.c                        |    2 +-
 sysdeps/posix/getcwd.c                             |    3 +-
 sysdeps/powerpc/bits/hwcap.h                       |   53 +
 sysdeps/powerpc/fpu/libm-test-ulps                 |  214 +-
 sysdeps/powerpc/memmove.c                          |   11 +-
 sysdeps/powerpc/powerpc32/bits/wordsize.h          |    2 +-
 sysdeps/powerpc/powerpc32/dl-machine.c             |   13 +-
 sysdeps/powerpc/powerpc32/dl-start.S               |    7 +-
 sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S   |    9 +-
 sysdeps/powerpc/powerpc32/fpu/setjmp-common.S      |    8 +-
 sysdeps/powerpc/powerpc32/power4/Makefile          |    4 +-
 sysdeps/powerpc/powerpc32/power4/fpu/Makefile      |    2 +-
 sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c      |   75 +
 sysdeps/powerpc/powerpc32/power7/fpu/s_logbf.c     |   60 +
 sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c     |   72 +
 sysdeps/powerpc/powerpc32/stackguard-macros.h      |    4 +
 sysdeps/powerpc/powerpc64/__longjmp-common.S       |    8 +-
 sysdeps/powerpc/powerpc64/bits/wordsize.h          |    2 +-
 sysdeps/powerpc/powerpc64/dl-machine.h             |   10 +-
 sysdeps/powerpc/powerpc64/dl-trampoline.S          |    6 +-
 sysdeps/powerpc/powerpc64/power4/Makefile          |    4 +-
 sysdeps/powerpc/powerpc64/power4/fpu/Makefile      |    2 +-
 sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c      |    1 +
 sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c     |    1 +
 sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c     |    1 +
 sysdeps/powerpc/powerpc64/setjmp-common.S          |    8 +-
 sysdeps/powerpc/powerpc64/stackguard-macros.h      |    4 +
 sysdeps/powerpc/soft-fp/Makefile                   |   35 -
 sysdeps/powerpc/soft-fp/Subdirs                    |    1 -
 sysdeps/powerpc/soft-fp/Versions                   |    9 -
 sysdeps/powerpc/soft-fp/q_add.c                    |   38 -
 sysdeps/powerpc/soft-fp/q_cmp.c                    |   40 -
 sysdeps/powerpc/soft-fp/q_cmpe.c                   |   41 -
 sysdeps/powerpc/soft-fp/q_div.c                    |   38 -
 sysdeps/powerpc/soft-fp/q_dtoq.c                   |   43 -
 sysdeps/powerpc/soft-fp/q_feq.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_fge.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_fgt.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_fle.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_flt.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_fne.c                    |   39 -
 sysdeps/powerpc/soft-fp/q_itoq.c                   |   37 -
 sysdeps/powerpc/soft-fp/q_lltoq.c                  |   37 -
 sysdeps/powerpc/soft-fp/q_mul.c                    |   38 -
 sysdeps/powerpc/soft-fp/q_neg.c                    |   46 -
 sysdeps/powerpc/soft-fp/q_qtod.c                   |   44 -
 sysdeps/powerpc/soft-fp/q_qtoi.c                   |   37 -
 sysdeps/powerpc/soft-fp/q_qtoll.c                  |   37 -
 sysdeps/powerpc/soft-fp/q_qtos.c                   |   44 -
 sysdeps/powerpc/soft-fp/q_qtou.c                   |   37 -
 sysdeps/powerpc/soft-fp/q_qtoull.c                 |   37 -
 sysdeps/powerpc/soft-fp/q_sqrt.c                   |   37 -
 sysdeps/powerpc/soft-fp/q_stoq.c                   |   42 -
 sysdeps/powerpc/soft-fp/q_sub.c                    |   38 -
 sysdeps/powerpc/soft-fp/q_ulltoq.c                 |   37 -
 sysdeps/powerpc/soft-fp/q_util.c                   |   56 -
 sysdeps/powerpc/soft-fp/q_utoq.c                   |   37 -
 sysdeps/powerpc/soft-fp/sfp-machine.h              |   62 -
 sysdeps/powerpc/sysdep.h                           |   29 +-
 sysdeps/s390/s390-32/stackguard-macros.h           |    4 +
 sysdeps/s390/s390-64/stackguard-macros.h           |    4 +
 sysdeps/sparc/bits/hwcap.h                         |   47 +
 sysdeps/sparc/fpu/bits/fenv.h                      |    4 +-
 sysdeps/sparc/fpu/fpu_control.h                    |    8 +-
 sysdeps/sparc/fpu/libm-test-ulps                   |  323 +
 sysdeps/sparc/sparc32/bits/wordsize.h              |    2 +-
 .../sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S   |    3 +-
 sysdeps/sparc/sparc32/stackguard-macros.h          |    4 +
 sysdeps/sparc/sparc64/bits/wordsize.h              |    2 +-
 sysdeps/sparc/sparc64/stackguard-macros.h          |    4 +
 sysdeps/sparc/sysdep.h                             |   29 +-
 sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h   |    4 +-
 sysdeps/unix/syscalls.list                         |    2 +-
 sysdeps/unix/sysv/linux/bits/ipc.h                 |    6 +-
 sysdeps/unix/sysv/linux/bits/mqueue.h              |   14 +-
 sysdeps/unix/sysv/linux/bits/resource.h            |   95 +-
 sysdeps/unix/sysv/linux/bits/statfs.h              |   24 +-
 sysdeps/unix/sysv/linux/bits/statvfs.h             |    5 +-
 sysdeps/unix/sysv/linux/bits/timex.h               |   47 +-
 sysdeps/unix/sysv/linux/check_pf.c                 |    2 +-
 sysdeps/unix/sysv/linux/configure                  |   66 +-
 sysdeps/unix/sysv/linux/configure.in               |   66 +-
 sysdeps/unix/sysv/linux/dl-osinfo.h                |   14 +-
 sysdeps/unix/sysv/linux/getcwd.c                   |  170 +-
 sysdeps/unix/sysv/linux/getdents.c                 |   15 +-
 sysdeps/unix/sysv/linux/getsysstats.c              |    2 -
 sysdeps/unix/sysv/linux/i386/chown.c               |   79 +-
 sysdeps/unix/sysv/linux/i386/configure             |    4 +
 sysdeps/unix/sysv/linux/i386/configure.in          |    5 +
 sysdeps/unix/sysv/linux/i386/fchownat.c            |    3 +-
 sysdeps/unix/sysv/linux/i386/nptl/libc.abilist     |    2 +
 sysdeps/unix/sysv/linux/i386/sigaction.c           |  101 +-
 sysdeps/unix/sysv/linux/if_index.c                 |  201 +-
 sysdeps/unix/sysv/linux/ifreq.c                    |   57 +-
 sysdeps/unix/sysv/linux/kernel-features.h          |   54 +-
 sysdeps/unix/sysv/linux/poll.c                     |   61 +-
 sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h    |    2 +-
 sysdeps/unix/sysv/linux/powerpc/chown.c            |   90 +-
 sysdeps/unix/sysv/linux/powerpc/fchownat.c         |   12 +-
 .../linux/powerpc/powerpc32/fpu/nptl/libc.abilist  |    2 +
 sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c  |   29 +-
 .../unix/sysv/linux/powerpc/powerpc32/pread64.c    |   28 +-
 sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c |   28 +-
 .../unix/sysv/linux/powerpc/powerpc32/pwrite64.c   |   28 +-
 .../sysv/linux/powerpc/powerpc64/nptl/libc.abilist |    2 +
 sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c  |   28 +-
 .../unix/sysv/linux/powerpc/powerpc64/pread64.c    |   28 +-
 sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c |   28 +-
 .../unix/sysv/linux/powerpc/powerpc64/pwrite64.c   |   28 +-
 sysdeps/unix/sysv/linux/powerpc/sys/procfs.h       |    4 +-
 sysdeps/unix/sysv/linux/pread.c                    |   23 +-
 sysdeps/unix/sysv/linux/pread64.c                  |   24 +-
 sysdeps/unix/sysv/linux/pselect.c                  |    8 +-
 sysdeps/unix/sysv/linux/ptsname.c                  |    8 +-
 sysdeps/unix/sysv/linux/pwrite.c                   |   23 +-
 sysdeps/unix/sysv/linux/pwrite64.c                 |   24 +-
 sysdeps/unix/sysv/linux/s390/bits/hwcap.h          |   36 +
 sysdeps/unix/sysv/linux/s390/bits/typesizes.h      |    4 +-
 .../unix/sysv/linux/s390/s390-32/nptl/libc.abilist |    2 +
 .../unix/sysv/linux/s390/s390-64/nptl/libc.abilist |    2 +
 sysdeps/unix/sysv/linux/s390/sys/ucontext.h        |    6 +-
 sysdeps/unix/sysv/linux/sh/nptl/libc.abilist       |    2 +
 sysdeps/unix/sysv/linux/sh/pread.c                 |   29 +-
 sysdeps/unix/sysv/linux/sh/pread64.c               |   29 +-
 sysdeps/unix/sysv/linux/sh/pwrite.c                |   29 +-
 sysdeps/unix/sysv/linux/sh/pwrite64.c              |   29 +-
 sysdeps/unix/sysv/linux/sigaction.c                |   99 +-
 sysdeps/unix/sysv/linux/sigpending.c               |   29 +-
 sysdeps/unix/sysv/linux/sigprocmask.c              |   31 +-
 sysdeps/unix/sysv/linux/sigsuspend.c               |   33 +-
 sysdeps/unix/sysv/linux/sparc/bits/typesizes.h     |    4 +-
 .../sysv/linux/sparc/sparc32/nptl/libc.abilist     |    2 +
 sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c  |  106 +-
 .../sysv/linux/sparc/sparc64/nptl/libc.abilist     |    2 +
 sysdeps/unix/sysv/linux/syscalls.list              |    3 +
 sysdeps/unix/sysv/linux/syslog.c                   |    8 +-
 sysdeps/unix/sysv/linux/testrtsig.h                |    8 +-
 sysdeps/unix/sysv/linux/ttyname.c                  |   10 +-
 sysdeps/unix/sysv/linux/ttyname_r.c                |   10 +-
 sysdeps/unix/sysv/linux/wordsize-64/preadv.c       |   73 +
 sysdeps/unix/sysv/linux/wordsize-64/pwritev.c      |   73 +
 .../unix/sysv/linux/x86_64/64/nptl/libc.abilist    |    2 +
 sysdeps/unix/sysv/linux/x86_64/Makefile            |    2 +-
 sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S   |   30 +-
 sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h        |    2 +-
 sysdeps/unix/sysv/linux/x86_64/bits/ipc.h          |   55 -
 sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h       |   33 -
 sysdeps/unix/sysv/linux/x86_64/bits/msq.h          |    3 +-
 sysdeps/unix/sysv/linux/x86_64/bits/resource.h     |  309 -
 sysdeps/unix/sysv/linux/x86_64/bits/sem.h          |    2 +-
 sysdeps/unix/sysv/linux/x86_64/bits/shm.h          |    3 +-
 sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h   |   59 +-
 sysdeps/unix/sysv/linux/x86_64/bits/siginfo.h      |    2 +-
 sysdeps/unix/sysv/linux/x86_64/bits/stat.h         |   26 +-
 sysdeps/unix/sysv/linux/x86_64/bits/statfs.h       |   70 -
 sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h      |  109 -
 sysdeps/unix/sysv/linux/x86_64/bits/timex.h        |  127 -
 sysdeps/unix/sysv/linux/x86_64/bits/typesizes.h    |   62 +-
 sysdeps/unix/sysv/linux/x86_64/bits/utmp.h         |  123 -
 sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h        |  102 -
 sysdeps/unix/sysv/linux/x86_64/configure           |    4 +
 sysdeps/unix/sysv/linux/x86_64/configure.in        |    5 +
 sysdeps/unix/sysv/linux/x86_64/lib-names.awk       |  122 +
 .../unix/sysv/linux/x86_64/sigaltstack-offsets.sym |   15 +
 sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym     |   15 -
 sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h    |    2 +-
 sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h      |    2 +-
 sysdeps/unix/sysv/linux/x86_64/sys/msg.h           |   84 -
 sysdeps/unix/sysv/linux/x86_64/sys/procfs.h        |    2 +-
 sysdeps/unix/sysv/linux/x86_64/sys/reg.h           |    2 +-
 sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h      |    6 +-
 sysdeps/unix/sysv/linux/x86_64/sys/user.h          |   96 +-
 sysdeps/unix/sysv/linux/x86_64/sysdep.S            |    4 +-
 sysdeps/unix/sysv/linux/x86_64/sysdep.h            |   62 +-
 sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c    |   30 +-
 sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h      |    1 +
 sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c     |   55 -
 sysdeps/unix/sysv/linux/x86_64/x32/getdents.c      |  159 -
 sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c  |   15 +-
 sysdeps/unix/sysv/linux/x86_64/x32/init-first.c    |    5 +-
 sysdeps/unix/sysv/linux/x86_64/x32/llseek.S        |   27 +-
 sysdeps/unix/sysv/linux/x86_64/x32/lseek.S         |    2 +
 .../unix/sysv/linux/x86_64/x32/nptl/libc.abilist   |    2 +
 sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c |   52 -
 .../unix/sysv/linux/x86_64/x32/posix_fallocate.c   |   63 +-
 sysdeps/unix/sysv/linux/x86_64/x32/preadv.c        |   48 -
 sysdeps/unix/sysv/linux/x86_64/x32/pselect.c       |   69 -
 sysdeps/unix/sysv/linux/x86_64/x32/ptrace.c        |   21 +-
 sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c       |   49 -
 sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S  |    2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c    |    1 -
 sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list   |   25 +-
 sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h        |   34 -
 sysdeps/unix/sysv/linux/x86_64/x32/time.c          |   21 +-
 sysdeps/unix/sysv/syscalls.list                    |    5 -
 sysdeps/unix/x86_64/sysdep.S                       |    6 +-
 sysdeps/x86_64/64/shlib-versions                   |    4 +-
 sysdeps/x86_64/Makefile                            |   17 +
 sysdeps/x86_64/__longjmp.S                         |   18 +-
 sysdeps/x86_64/bits/wordsize.h                     |    7 +-
 sysdeps/x86_64/dl-machine.h                        |   59 +-
 sysdeps/x86_64/dl-trampoline.S                     |    2 +-
 sysdeps/x86_64/dl-trampoline.h                     |   12 +-
 sysdeps/x86_64/fpu/bits/mathinline.h               |   55 +-
 sysdeps/x86_64/fpu/libm-test-ulps                  |  114 +
 sysdeps/x86_64/lib-names.awk                       |  114 -
 sysdeps/x86_64/multiarch/Makefile                  |    1 +
 sysdeps/x86_64/multiarch/init-arch.c               |   27 +-
 sysdeps/x86_64/multiarch/init-arch.h               |   51 +-
 sysdeps/x86_64/multiarch/strcmp.S                  |    9 +-
 sysdeps/x86_64/multiarch/test-multiarch.c          |   90 +
 sysdeps/x86_64/preconfigure                        |    1 -
 sysdeps/x86_64/preconfigure.in                     |    1 -
 sysdeps/x86_64/setjmp.S                            |   17 +-
 sysdeps/x86_64/stackguard-macros.h                 |    6 +
 sysdeps/x86_64/start.S                             |   10 +-
 sysdeps/x86_64/sysdep.h                            |    5 +
 sysdeps/x86_64/tst-mallocalign1.c                  |   72 +
 sysdeps/x86_64/tst-quad1.c                         |   25 +
 sysdeps/x86_64/tst-quad1pie.c                      |    1 +
 sysdeps/x86_64/tst-quad2.c                         |    1 +
 sysdeps/x86_64/tst-quad2pie.c                      |    1 +
 sysdeps/x86_64/tst-quadmod1.S                      |   44 +
 sysdeps/x86_64/tst-quadmod1pie.S                   |    2 +
 sysdeps/x86_64/tst-quadmod2.S                      |   43 +
 sysdeps/x86_64/tst-quadmod2pie.S                   |    1 +
 sysdeps/x86_64/x32/Makefile                        |    3 -
 sysdeps/x86_64/x32/_itoa.h                         |    1 +
 sysdeps/x86_64/x32/dl-machine.h                    |   19 +-
 sysdeps/x86_64/x32/ffs.c                           |    5 +-
 sysdeps/x86_64/x32/gmp-mparam.h                    |   10 +-
 sysdeps/x86_64/x32/shlib-versions                  |    4 +-
 sysdeps/x86_64/x32/sysdep.h                        |    2 +
 sysvipc/sys/msg.h                                  |    2 +-
 time/ctime.c                                       |    6 +-
 time/time.h                                        |    4 +-
 time/tzset.c                                       |   18 +-
 wcsmbs/Makefile                                    |    3 +-
 wcsmbs/tst-mbsnrtowcs.c                            |   83 -
 490 files changed, 79063 insertions(+), 12731 deletions(-)
 delete mode 100644 README.libm
 delete mode 100644 csu/.gitignore
 delete mode 100644 elf/stackguard-macros.h
 delete mode 100644 localedata/tst-strptime.c
 delete mode 100644 manual/.gitignore
 create mode 100644 misc/getauxval.c
 create mode 100644 misc/sys/auxv.h
 create mode 100644 nptl/tst-cancel-self-cancelstate.c
 create mode 100644 nptl/tst-cancel-self-canceltype.c
 create mode 100644 nptl/tst-cancel-self-cleanup.c
 create mode 100644 nptl/tst-cancel-self-testcancel.c
 create mode 100644 nptl/tst-cancel-self.c
 delete mode 100644 stdio-common/bug15.c
 create mode 100644 sysdeps/generic/bits/hwcap.h
 create mode 100644 sysdeps/generic/stackguard-macros.h
 create mode 100644 sysdeps/gnu/configure
 create mode 100644 sysdeps/gnu/configure.in
 create mode 100644 sysdeps/i386/i686/fpu/multiarch/Makefile
 create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_expf-ia32.S
 create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S
 create mode 100644 sysdeps/i386/i686/fpu/multiarch/e_expf.c
 create mode 100644 sysdeps/i386/i686/multiarch/test-multiarch.c
 create mode 100644 sysdeps/i386/stackguard-macros.h
 create mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
 create mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
 create mode 100644 sysdeps/mach/hurd/accept4.c
 create mode 100644 sysdeps/mach/hurd/bits/socket.h
 create mode 100644 sysdeps/mach/hurd/dup3.c
 create mode 100644 sysdeps/mach/hurd/i386/____longjmp_chk.S
 create mode 100644 sysdeps/mach/hurd/i386/signal-defines.sym
 create mode 100644 sysdeps/mach/hurd/readlinkat.c
 create mode 100644 sysdeps/powerpc/bits/hwcap.h
 create mode 100644 sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c
 create mode 100644 sysdeps/powerpc/powerpc32/power7/fpu/s_logbf.c
 create mode 100644 sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c
 create mode 100644 sysdeps/powerpc/powerpc32/stackguard-macros.h
 create mode 100644 sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c
 create mode 100644 sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c
 create mode 100644 sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c
 create mode 100644 sysdeps/powerpc/powerpc64/stackguard-macros.h
 delete mode 100644 sysdeps/powerpc/soft-fp/Makefile
 delete mode 100644 sysdeps/powerpc/soft-fp/Subdirs
 delete mode 100644 sysdeps/powerpc/soft-fp/Versions
 delete mode 100644 sysdeps/powerpc/soft-fp/q_add.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_cmp.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_cmpe.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_div.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_dtoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_feq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_fge.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_fgt.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_fle.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_flt.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_fne.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_itoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_lltoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_mul.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_neg.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtod.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtoi.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtoll.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtos.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtou.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_qtoull.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_sqrt.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_stoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_sub.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_ulltoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_util.c
 delete mode 100644 sysdeps/powerpc/soft-fp/q_utoq.c
 delete mode 100644 sysdeps/powerpc/soft-fp/sfp-machine.h
 create mode 100644 sysdeps/s390/s390-32/stackguard-macros.h
 create mode 100644 sysdeps/s390/s390-64/stackguard-macros.h
 create mode 100644 sysdeps/sparc/bits/hwcap.h
 create mode 100644 sysdeps/sparc/sparc32/stackguard-macros.h
 create mode 100644 sysdeps/sparc/sparc64/stackguard-macros.h
 create mode 100644 sysdeps/unix/sysv/linux/i386/configure
 create mode 100644 sysdeps/unix/sysv/linux/i386/configure.in
 create mode 100644 sysdeps/unix/sysv/linux/s390/bits/hwcap.h
 create mode 100644 sysdeps/unix/sysv/linux/wordsize-64/preadv.c
 create mode 100644 sysdeps/unix/sysv/linux/wordsize-64/pwritev.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/ipc.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/mqueue.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/resource.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/statfs.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/statvfs.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/timex.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/utmp.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/configure
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/configure.in
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/lib-names.awk
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/sigaltstack.sym
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/sys/msg.h
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/fallocate.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/getdents.c
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/posix_fadvise.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/preadv.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/pselect.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/pwritev.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/sendfile64.c
 delete mode 100644 sysdeps/unix/sysv/syscalls.list
 delete mode 100644 sysdeps/x86_64/lib-names.awk
 create mode 100644 sysdeps/x86_64/multiarch/test-multiarch.c
 create mode 100644 sysdeps/x86_64/stackguard-macros.h
 create mode 100644 sysdeps/x86_64/tst-mallocalign1.c
 create mode 100644 sysdeps/x86_64/tst-quad1.c
 create mode 100644 sysdeps/x86_64/tst-quad1pie.c
 create mode 100644 sysdeps/x86_64/tst-quad2.c
 create mode 100644 sysdeps/x86_64/tst-quad2pie.c
 create mode 100644 sysdeps/x86_64/tst-quadmod1.S
 create mode 100644 sysdeps/x86_64/tst-quadmod1pie.S
 create mode 100644 sysdeps/x86_64/tst-quadmod2.S
 create mode 100644 sysdeps/x86_64/tst-quadmod2pie.S
 delete mode 100644 sysdeps/x86_64/x32/Makefile
 delete mode 100644 wcsmbs/tst-mbsnrtowcs.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]