avoid silly hg dependency
ported version of Aram's basic cgo build patch
wesolows/golang#1 6l produces discontiguous relocation sections
wesolows/golang#2 cgo testso fails with -linkmode=internal
wesolows/golang#3 cgo/test TestCallback dumps core
wesolows/golang#6 unhelpful output when 6l is passed -d
wesolows/golang#5 random callback-related cgo tests fail
wesolows/golang#7 6l confused by external functions; runtime acting as enabler
wesolows/golang#10 net package still tries to build/use some cgo bits on illumos
wesolows/golang#8 enable cgo for illumos
sync with upstream

commit 91bfd26b081c86c1da7271540abf0b284a48e71d
commit 1209ceed7e43ea6994d98fcf05d1a9520d1645e9
commit c2437e0532401851380275f918680d5f9b37e82d
commit 795e0d037e3ae992594009f960c1565be3d00fca
commit 5591b341a8e0e691235424b66fedd1c0801e758d
commit e88d04acde4981e1d6dfe7c48acb29a6fcb23786
commit 796e96990542d5a053e195cc2ebfca54b710ea09
commit c9f43a1b00fccc21e2bdce7840dd46b4219ba539
commit abae4db8dd15e1a8ef9b0b2ec74602f115ad0981
commit 552ec8a339f0e23427ffd72f09ab5ee97ad843a4
commit cc55392cc3f393e83a40e63854b63a9f70893826
commit 88d662151d2306697f80615a7f7bebb4ec2d0f02
commit 862f7cbe52af55610f6565f5127fbc37634167db
commit dae415439cd968fb3ecde137a5f40b7a9e581b32
commit 0736c11a0ddf0856e8b60b845e4aa277322a8525
commit 38c5bce8faf4cc2a4661c8c265f5780f852c82a5
commit b2054bcd7eb755af5e99d99438a398a081001c1b
commit a108f933358ec35a5167b67796f9b27ad01704c3
commit 27f84883cdd9563c12dfd9a38641d43fa2ba7a38
commit 21d7227cb1ac3a7d55b4ffc9843026b4aa58f517
commit c2bc187485e430cc900d4b1aa8e9bd01585b014b
commit 3fda66f5bf02848da4d17823aa78a65680d1b432
commit dc6395fc5dfcce58d8167076e5687862c6403556
commit 23a1740d82bd97b4b5602910790b3eb4f5a04163
commit a4203b9b0019232f05a915163446e9439d96fe26
commit d71427d6c37f14cd2f1a7979fd227af81ba3392b
commit 84669cafdc29d056b0686d46293338cd4f81e311
commit 7496bfb60ed9fe7786962c8e3662c08c291ee9e4
commit 064fe14b86a5126e4f408842d02b5afe317aff7a
commit 5cdddf768bcc8b5acf94231dde9cc956a33fafaa
commit d712534316ac5032da14e8e782565afe2bab339e
commit 4a04567351f7a232dd5109b34be8c1aa91ebdb8a
commit 10297afddbb545d362bedf1c4794ced3827e9cc9
commit b9ef1b42f44e5f3b3a3ac400873d6b0f3bef6cf3
commit 66dd3d130470996361c49fc15ed540406593fb7f
commit d781f6cb53ac3efb79aab71ddc3daa182b7d0a38
commit 91e08a8dca5cfa3ad30af2a11a04a95ee86b970d
commit fccb1694d7974460b46f0981761a1ea8e39edef5
commit 37ee0c98ff39712e7bf3427569ef31510e6c1d25
commit a0654d61dd096a8cb14010396b3d2f0e581b83f6
commit f61291c541792d4b9225ea3904642f722f2a5278
commit 7dd424985a6d441054dba207494362c574ba3588
commit bbc1cd8f468fcd96540e179270f2e1e93e68ad1f
commit 697b0cf587a1618576f5c383db16180cea97a083
commit 093fe49d9c7a05052723facb7c7ab22022790185
commit 1e458d48161936ce60cf48bdda315425d2d1dc9c
commit 4b9ccd692696ec9bb52a629d8be0b3411cc725c3
commit 7e8ec5c715cfb2f4902e41765a149a588c47a543
commit baf6a76bd4c196dc7a73cd029b89e872f6b1cc4c
commit ce27b137ffe19a8d485f79ff8b7f7c40597c6bc7
commit 5dc7984f94b74689eff0f61c1a519c912f3543ce
commit 011b675313fdc0f10c03710bede8e05f963e3163
commit d53792d711cd20bc509a7aff1774a78b5b346156
commit 17c3a51de5bfdbc3af7ec4024434caa96145e899
commit 9b002faa2c524dae34528adf3d50746cafb8e567
commit 8f20b0f6e4ccbe3ba1cb32a2d69498d5c4ae517a
commit 1f793864231035529f192f3ef7605d1bde2cc642
commit 74edada1395a0e21a671328fca85a03a527badbc
commit 669a2518b24cf7db65c7052dec1a204256a63849
commit edd715d4b3591e365ff04e4b53ade23061aeea34
commit 630fc79e54303153ecfdd031b9f85e1531e38946
commit 7e554a371497e5f59d106e81fcbbb059cb883603
commit 4414cbbc84f797622b9c4899c468eaabd4f85e2f
commit 924c37f4d6756da7b2770cf4a146d267eb71f65d
commit e89c7fbd2c14ce8cbde0bb7d16e1e09668463a6a
commit 132e9d2c343109b48ac16f189c9ee4b1271dcff8
commit 7063fa50eeda4b202c802331505a229bbd90075d
commit caecba43d30802c0e472a982ddcae4c6c0ea421d
commit d3c8177a7e7739a149d657b9ff820709c65dd155
commit c7c21d6df48fba61d5314f3d70e19c251e6f47be
commit ef1a25b835d7d6da35e3bca64808390dd03da1d7
commit 592677ea4120be3ad27eee9f524dbc1e3467dac4
commit 7e624f3a1cfb013f16c51eca47280307348e701c
commit bff8c40735f07ec14c867066aa09473d66ef063e
commit 95f9c0f7446bb14f52f75c273855732b7c32fb1b
commit 1389faa6409a005aa28451ed6b663302ae1b39df
commit 63f90393b29db8160f1f8dd17fddc73f74b99383
commit 6819f662e48dc7b225a093ced6c4aeb8216fe8d6
wesolows/golang#11 li'l linker emits fixed, wrong shndx in .dynsym
	merge with dev.cc

commit ffdedc1814e7954c52898a0fe092bc046de97358
commit 952297e31525b670e8515a4bb5cd70fdf9c12f20
commit 64bbec2612706c026df4dee60c76e2ac55a15373
commit 1835351fd208b816437d7a147aac69501d7e3833
commit 4555cb4d71aa1c8bb9b00f31c449bf04e16db9bd
commit 73b7b7e379b6ba873a0651a6a95bea2416c3b9a6
commit bfb3bc2fb4748e8d6630e25714a77192de65fa47
commit bf5d8a40a9f70015bbe6b46977469638812cc156
commit dc1dbd3df34fbd98bec49ef65940e198204d4c61
commit d3fc48c7c8db6d9218694e48955ab0371063b520
commit 7a371074d7df2faa0632b3dc5875f830970a3dc8
commit efb583932045c2053ce4d25c7207c30f0ba2a041
commit 00dfa7aefc42b4ba3415c4c9c8c169657c728689
commit 7ff72322c2264b5b5c1b28316928a74c8711b2d9
commit 01354d31abd7c3bfea68824eadc409ec57ffa950
commit 650ab098489ed0763589ef2f53a7873ac58160a6
commit 254488741d32100459a9f25a370a218597a827b7
commit bbe96e069ec206153c1bae3fd1f321c1a7e622dd
commit d937735fff09cecec35573f5268bd5731c5b23db
commit 5613161dea56b96df24171399497de34bb7c49eb
commit e4ecb534c9967cbe340aafeb8ae47c9c22827713
commit aee24428f0d6b567f453bd5acf0a6d6dc25689a7
commit 4517da000d2242af1fe55263d968e8896417585e
commit f8445f9623f0d24640a581c615a0ebcd9712662b
commit 12890b8dae81090532c8f088c7358f11312c9f35
commit cb85fa1665106094ca07b5d5ac75e3fda3329dad
commit a377649d4ff90871619b67b27e85065b5218d43a
commit 9c17a7cd64c26ddef9f8ebb8d151f4b43d6ab7a4
commit 9e8cad1c7363b8e107a96bcf5f6e82adf4975257
commit 9dd0be24638cf181b77c39e7bf7ea74ebb5a37df
commit 2bffcadb1dff5eb352685cd52333d39bd8d524e2
commit 3da0df91ff2b3050f9412b0310ca96ba36c6e21f
commit 2fc987ed1c7f22087e0038fbf14831e7726be176
commit a6fa8b13771636a7545dbe60f001c8b63717d9a9
commit 9b8f43b9857c416d92dd5bd07883415495f155e6
commit 3de9ad3313fee643891f4ffda0c98183167b1464
commit 07343f29da039d258367acac00a49dd7d36d1aa2
commit 162d56f4950c06dcf01ee937a57f0d4209b0f1be
commit 4de0664e68b8a93cdcdf422276697b2015993193
commit 3a06e46890516eedfe79ec394562230ce32dd8c4
commit 42953b4f13ec3f9d342313ed6bb6fc3f7baa2bfc
commit 780c26a2c9d881023311c1409d13a054c582be7d
commit 95a310e0122acc6a298408a535bfa44b0dcfab5f
commit 86bc0967967d92cd1ce62b51db1b6eb737e57396
commit 4ed06016f12e7ad03502e1c963d193b67473dd74
commit 30836a5b106c5143fa03b79b672a70fe21e43a37
commit 2922fdb9be4b5b94486fd4595e6bbf4d64b26813
commit d9710d7735998602194bf0f1e2c7679aa068639d
commit 627ada40984899417859fc37c62015fb3b29ff39
commit 684e14880c6d83ad88cbbe3671995efc4dd2cd99
commit e3b221e1bfd3ac8a9d28a52ce35e6eee342468d5
commit 3afb7c6a2dba7cd0612295e4fb4a18cadb87869c
commit 140258393ba2880644ed0274dc35c004d6744fbf
commit 5c1ffe0d8160214554ab3df09203f8a1994c61fd
commit bc328a711826273fad2aa6d3bf2409e73c40e951
commit 44a9ca08f49801039fed33d8243178f7141a5214
    This commit fixes these problems by nuking this code.
commit e27299b73107a180c2438884a2e552c0c7968c3c
commit 8ed155b62de8b35dd57974236ea201a2303908f1
commit 8c98d81d486ec5a60eec3e1d08b729fae74627cf
commit b24b1a295ef9056699a4443759125b2840be62ab
commit b29d5b46c5f13af7b39cae0797e2c602c1138423
commit 7f670c60979f228155d7f9ba6900d3647047bee9
commit 8e258801508cbea9be804b0b669ba832a59d6fc9
commit 4b6bd7db0699c491f0c2697582c4a28397c9f88d
commit 73cec41eb9ed83058c36444781bf73f98a89d7df
commit 305ae602d7c092b856596719e933c53d81cfaf99
commit 21d23e86d53b3388c7172767eaff0113317dfc4c
commit f225df736dbe08dcf45bbac47d8e2be353d1cc3e
commit 9ad16f3469a9e9b8a1a41c54b6530348f5bd5d41
commit 6111a78b42e2d1c64baa4169c4bc03e27744de0e
commit bcafbddbeb7268ea25dd1933e4c7377e54e656bc
commit 5a882d8939a854b973aeba204ccdb9ea553b4f9b
commit 8be59ecb480bc2b29177e9d99c91e7c61c1cfa0b
commit 27808d544c80c8fd75ddc1ac0dbab01a833fce59
commit 885060a937c99572ca1195a6338965d21feff05d
commit 76ad019a953447082ab08e4f0d0f841dd9a2aacc
commit d76c9207a40afd7ac70efa3a201dab96e85aa342
commit 0b23d85e39824c9ae2e5f56fd3cfb1f32d726135
commit 1c62993ba95fa65736cc4a15095ba8ccf5047448
commit 0f38c146b3deb920b0bb9fdd9c5fa2a5cb6ea368
commit 5b0857f81c41a0bf2e59d63ee95e5db10f73b683
commit 7a334f3c0e4da37ac48eb1e74346be026f387d54
commit 96e34206dbc1863dff3a516e4cc2b833512cf896
commit 2ae8097502104922b26a203d1bd41d30665e5818
commit f89015edd73705a1b62d0ea5da0bb71d9c94d265
commit f6885509219bff37da34742fef43b61fd8f90cc4
commit 893e74d60f1fcc05253576f0abb8195b08c7cf84
commit 76d98e5ec01b4adfc3edfa889f89e1a51c7754af
commit e288d752f97697e63ab9f8f146724ab9b57e3c06
commit 507c963b61e578667c569aec6aee2e79cf59ef7f
commit 7c66587af37603fe490aff176ef5fbcfae516352
commit a7656fd9bd139c90ae7ceb5452e7cf97be9211a2
commit 8a78102ecc4627bffb41da27cf0dfe36b86fb562
commit 871ff883b108f3469a93676be70cb9d8b650bf7a
commit 671dc2f808545b9695b4705801123ca22c61b130
commit 46807bfb6e979e042190157d0d0052b82fbf0fc7
commit d861cc512a27934385c352443219ae66933c3bc9
commit 979923b5ab9301e0f382cf2b19c3a945d457894e
commit 5e43876c713e79a5dbb261d49184d146d9170d55
commit f764c43c9c504f7717d6a5e950f04b5b16519084
commit 71b2cb671d9bcc6e94f2ace99703af1663dbd2ba
commit 381b5c756d164b2e2a6ac165839de31d72d4134a
commit 7ba913fcbc783dc51c93944476548e8169579c4b
commit 96ab45b1a751b2de0c8163c0ee2b5778d7eb08cf
commit 735ee0692f7b937b07a5560238d3cae7aed7d191
commit 08fafca9d42def82e409fafb4da032b2a76c523d
    commit caab29a25f68, but the reference masks used by
commit b994c002d78796ec4aa452b62fe583d197f0919d
commit d01d1a0fb6a41fa22fa7b172e8a1415f71137b51
commit 16f0ebe897597edd8ce4503bc8864fc589ab4115
commit 864b1d9e7d36031c9c0aa1b310f1985b0955747e
commit 5923d2cd7ca150946446ed14cc88f16b78696282
commit 5c51920bce8cd14d440c52fdfa6e69b5579dd601
commit 6a2df54f999655b00cd2a569faf9ea8d85bd77e9
commit 1bc265f72040e2d78479d30682e04c97a8d95c0a
commit 189592175ba98956337c2ccf1117ea114266efb3
commit a32c10918a7056aae534c1076be668b95b8dc58a
commit d08d12d2427edeabc91f9cd6b05aaa0712929957
commit 7bca03c99766c26ad23c01f9232e2b471b74331e
commit ed5d0773b9acd2070a0da03bd8580dc272e379fa
commit 5936f0452550a2ec9174751e0ca4c2f4ced358cd
commit 831f50e7da77cb4b3138d483911efb7e3f12e205
commit 9061d34c54d1af6fc17438ea9983b003744f1328
    A recent commit lost the branch target in the really-big-stack
commit 62e9d30e83072dd6e78f98c30f8ac95b83a93e22
commit a67816e12a1ded38fd25fd18016e2abe0b33155d
commit 59dc2886e7d15440969f08cdb51c2af4d6bba466
commit 4ffc61d84273429b80c4e96c73e6b8c1385df044
commit 5542a0446ba36525fd1e046844fdd74c1521b6fa
commit 3c4954f6f4f52c54934d9e10463874b03cc2d662
commit 2394056eed9fab27beb34400a3a9facfc2705592
commit 4426b3db511079a83dcdb3a762e8961494cd219c
commit 73cb406da95efd74cb76040a5a2f7e0c88856c53
commit 7c1e783818fbfbcba054c1c369f22aaff167373a
commit a32a620fe4c88d476ec4704f8a588e1758b530f0
commit d160de782174a21d50ca1607f70690506726d49c
commit 6a21598a07428ffd88f28d4351b343899834513b
commit 385e6f3e1daed92d010fe7a92bbeb6b39091d1cb
commit 8cb3800657acef5e516e37235fc239f786f20c57
commit b6801a16a122fe1dcb8eb0054aa451f0457d1cdd
commit 2c36fbd3552384db775b6150fb1e3a0ea2e992cc
commit 8fe8beed0a9863bfd1d8da475daaebdc01c78f99
commit 0500b005d069d57e4d6b371fcfce3bb9322f4e9b
commit a43f578422c6544e9aae95f5e44aa53a12946ad0
commit cd9949948edee98b80e08ea94195634803950388
commit 50f8e598dafb5d1d19c33a1be3b84455c6b06509
commit b12c457f494e905fa4333ccc858705ad283789d7
commit 2b9528d3c87ad14987cfbe5b725d17c90354bc81
commit 68817b8eefdab6bf94a56e224fd1ca705e5df71e
commit 2e7898d2e401b9747d0756cdb49baf07fc074fb4
commit d8e44495118a3c44e50078a04e3f7a90e3dd44f3
commit 6dfa5b03f4af8f6700a6084160f7409314334ed1
commit 3c020e90848a8a8422d4778ae95300328907c37a
commit c878fbb5bcde98765b3ebc1c43c3bb8946b30954
commit c8dba3b27318e82ca04991558b8e08a63c255c0e
commit 54f583585139eca53b80dbd44bcada159c3fbfa5
commit 8cd1a8095c02e3dab502e596caf112ac6a064b69
commit 699150c6298cd7f9541c68fbd2966495198ffed0
commit ced25dc90f3b28048d13bdababfbed84faa110c3
commit 4bf734733e06f3e7ff2174a74120605361c0c59c
commit 46be3763f93a864e5ab93c1d68a587c1915eb885
commit 8a385a3c2f512ecf0aef479eec4a7079c3aa17a0
commit 1aa943822627974a5d7a4cc2a03dd8d83b749dfd
commit 80e9e91983ef691a7e4726d414cad06d63050e49
commit fa3beb13fe84590bf344c9f3bdd620c1c1bd5f72
commit 598159e4e54ec27523b71b74286d3132978761d0
commit b209d0c8b231ecf560400aabf5828df7ea426e96
commit c3b4eaad148fcd29daa6db2cc56070204f0a53ca
commit 8f93ceef4910ceb6d7019ebc301e297546e9eaab
commit 24602723c6b5fd19d78add68363d979c732e6735
commit 3b58d38c0e042e921716dbf22305d541a5c6a337
commit 39cc1eec1737046a15938589bbd4759c2bda32a9
commit 20e2fe5ba29b659d35e854df432714117c7d9ad9
commit 182476e7f9fa2ee86fc6f096784142e63501b788
commit d71ce8f78e995e7b8ca21dfe38de6d792c469fcc
commit 0d6d1f79cf7a0dd53b5ddaf47cce9019f916a972
commit 25bdf0e656653e182955dbeb87ceeebfea960526
commit aa941ef37c826bcb1822e8e232c2b828d68646e2
commit 99eb81aa3e3f9fb30fffc11eeeb9112d08419c64
commit 8b19fc85f6c7ac64fdd5628716e7294f71a3ece8
commit a79920473d602abfac6a08d92db9488e43749593
commit eaef71f4d2f3553a0b088157f4c991cf8279d81e
commit a4f19d97ad79c7ecc07156ba8266c893848f181c
commit 6d730b83ef7ef5f4eae687c3c4b767feaf4be586
commit a7bb91d9ef31da078afedd8009b470b8457d58de
commit 7bae9d2e2603738070f24c40839b48ee43ee3eec
commit 1ca40e8cd1ca40b4890fbd8ee444e95bca2ad10a
commit a6107be8fc80779305f894829fc8e8a68479f89a
commit 6108587c51364ad0feda711b9e156353e4c5d6b6
commit 40fdf381623101eb867dd39e58686bd8435c6e22
commit 5d166d190e02e16d486e56f9194979b3f5f4b713
commit 3868c8eae41e41f13c075cd58d06b611ca60de8d
commit 6689ba2b6554c21dc0a6d71f15153b42964854b0
commit 4c9ac6b43308f41b146f1692c58cc5d2b140c938
commit 860bf7a86d24095ade6f31cd56a7cb7db20464e5
commit 8cd8726bc31140e958fc0e28037ae21dc329027b
commit df37991e55ddb47df3cb13a92b9e3dc6996bf42a
commit a889214f63ab2a677b508519347160931e16b128
commit e8d4d54a3ef3e07b0183f430b0b7d88bdd213ea4
commit 8e87638236353e90b75b552b73b542dcdb558cee
commit 209887ac0109d353a8882f039de2b55d35ebf9f5
commit 4565eb183ba2e550347e01e5da99f40842ddd1f1
commit 86ea09ec5d4ae2cc88b5e705c0e45136c0806f84
commit 63b8c3b68768755145dcfbdf7c9ac4647f164f55
commit c63002baa07656cce83eebbecc24e04695acfc26
commit 7fa7e7240ce1d6281974265491359f37d428377c
commit 46d496c26262bcd8e0b7ae29db6db0bc6ce18509
commit 1a09a2be10f012eeed847af1d7ea354c766f84e3
commit cc69fecb36f9c942a8da07d5b60bdd8059e923d3
commit 4e39a96140186775ce3c4472a49837ca280d77ec
commit 8584952587b0f5d1a9e11b4641f0279914abcc3b
commit cbf1f0d3e583d5467a20032ad1d9b9d345b1397c
commit bede799a8133f6699b6dd8f4b1194dceaa993a91
commit b53607301eecaf8a499793add04ea563d24b4524
commit 8604572e81032dcb9b6837ac213295be7851c060
commit 7f53392bb4f92c94b72e0b14df5fadbf61eccd57
commit 70b53081d40310edad952bb9cebf821510c6ae95
commit 2e464e4d65dc18f9ae809f800c408115fe9e1369