| author | |
| committer | |
| log | 8429ddecf89bf0e78b2e0143e9a4a6e7ba88a0fb |
| tree | 45c97bea61dd454347202e7371fa1d42d4b60938 |
| parent | 541e763010403d8233a6420756a1e8393f1dd4c2 |
| parent | 7438d0fc31f70b3a6d19e1da9a4e3f7918fc9d66 |
| signature |
10 files changed, 229 insertions(+), 28 deletions(-)
lib/libc/glibc/abi.txt+135| ... | ... | @@ -193,6 +193,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 193 | 193 | |
| 194 | 194 | |
| 195 | 195 | 29 |
| 196 | ||
| 196 | 197 | 29 |
| 197 | 198 | |
| 198 | 199 | 29 |
| ... | ... | @@ -514,6 +515,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 514 | 515 | 29 |
| 515 | 516 | 29 |
| 516 | 517 | 29 |
| 518 | 29 | |
| 517 | 519 | |
| 518 | 520 | 29 |
| 519 | 521 | |
| ... | ... | @@ -697,6 +699,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 697 | 699 | 29 |
| 698 | 700 | 29 |
| 699 | 701 | 29 |
| 702 | ||
| 700 | 703 | 29 |
| 701 | 704 | 29 |
| 702 | 705 | 29 |
| ... | ... | @@ -819,6 +822,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 819 | 822 | 29 |
| 820 | 823 | 29 |
| 821 | 824 | 29 |
| 825 | 29 | |
| 822 | 826 | |
| 823 | 827 | 29 |
| 824 | 828 | 29 |
| ... | ... | @@ -904,6 +908,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 904 | 908 | 29 |
| 905 | 909 | 29 |
| 906 | 910 | 29 |
| 911 | 29 | |
| 912 | ||
| 913 | ||
| 907 | 914 | 29 |
| 908 | 915 | 29 |
| 909 | 916 | 29 |
| ... | ... | @@ -1004,6 +1011,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 1004 | 1011 | 29 |
| 1005 | 1012 | 29 |
| 1006 | 1013 | 29 |
| 1014 | 29 | |
| 1007 | 1015 | |
| 1008 | 1016 | 29 |
| 1009 | 1017 | 29 |
| ... | ... | @@ -1033,6 +1041,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu |
| 1033 | 1041 | 29 |
| 1034 | 1042 | 29 |
| 1035 | 1043 | 29 |
| 1044 | 29 | |
| 1036 | 1045 | |
| 1037 | 1046 | 29 |
| 1038 | 1047 | 29 |
| ... | ... | @@ -3920,6 +3929,7 @@ s390x-linux-gnu |
| 3920 | 3929 | |
| 3921 | 3930 | |
| 3922 | 3931 | 5 |
| 3932 | ||
| 3923 | 3933 | 27 |
| 3924 | 3934 | |
| 3925 | 3935 | 27 |
| ... | ... | @@ -4241,6 +4251,7 @@ s390x-linux-gnu |
| 4241 | 4251 | 5 |
| 4242 | 4252 | 5 |
| 4243 | 4253 | 5 |
| 4254 | 5 | |
| 4244 | 4255 | 11 |
| 4245 | 4256 | 27 |
| 4246 | 4257 | |
| ... | ... | @@ -4424,6 +4435,7 @@ s390x-linux-gnu |
| 4424 | 4435 | 19 |
| 4425 | 4436 | 19 |
| 4426 | 4437 | 5 |
| 4438 | ||
| 4427 | 4439 | 5 |
| 4428 | 4440 | 5 |
| 4429 | 4441 | 28 |
| ... | ... | @@ -4543,6 +4555,7 @@ s390x-linux-gnu |
| 4543 | 4555 | 27 |
| 4544 | 4556 | |
| 4545 | 4557 | 16 |
| 4558 | ||
| 4546 | 4559 | 5 |
| 4547 | 4560 | 5 |
| 4548 | 4561 | 15 |
| ... | ... | @@ -4631,6 +4644,9 @@ s390x-linux-gnu |
| 4631 | 4644 | 16 |
| 4632 | 4645 | 5 |
| 4633 | 4646 | 5 |
| 4647 | ||
| 4648 | ||
| 4649 | 12 | |
| 4634 | 4650 | 5 |
| 4635 | 4651 | 5 |
| 4636 | 4652 | 5 |
| ... | ... | @@ -4731,6 +4747,7 @@ s390x-linux-gnu |
| 4731 | 4747 | 5 |
| 4732 | 4748 | 5 |
| 4733 | 4749 | 5 |
| 4750 | 5 | |
| 4734 | 4751 | |
| 4735 | 4752 | 5 |
| 4736 | 4753 | 5 |
| ... | ... | @@ -4756,6 +4773,7 @@ s390x-linux-gnu |
| 4756 | 4773 | 5 |
| 4757 | 4774 | 5 |
| 4758 | 4775 | 5 |
| 4776 | 5 | |
| 4759 | 4777 | 31 5 |
| 4760 | 4778 | 24 5 12 16 |
| 4761 | 4779 | 24 5 12 16 |
| ... | ... | @@ -7645,6 +7663,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7645 | 7663 | |
| 7646 | 7664 | |
| 7647 | 7665 | |
| 7666 | ||
| 7648 | 7667 | |
| 7649 | 7668 | |
| 7650 | 7669 | 27 |
| ... | ... | @@ -7968,6 +7987,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 7968 | 7987 | 16 |
| 7969 | 7988 | 16 |
| 7970 | 7989 | 16 |
| 7990 | 16 | |
| 7971 | 7991 | |
| 7972 | 7992 | 27 |
| 7973 | 7993 | |
| ... | ... | @@ -8151,6 +8171,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8151 | 8171 | 19 |
| 8152 | 8172 | 19 |
| 8153 | 8173 | 16 |
| 8174 | ||
| 8154 | 8175 | 16 |
| 8155 | 8176 | 16 |
| 8156 | 8177 | 28 |
| ... | ... | @@ -8273,6 +8294,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8273 | 8294 | 16 |
| 8274 | 8295 | 16 |
| 8275 | 8296 | 16 |
| 8297 | 16 | |
| 8276 | 8298 | |
| 8277 | 8299 | 16 |
| 8278 | 8300 | 16 |
| ... | ... | @@ -8358,6 +8380,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8358 | 8380 | 16 |
| 8359 | 8381 | 16 |
| 8360 | 8382 | 16 |
| 8383 | 16 | |
| 8384 | ||
| 8385 | ||
| 8361 | 8386 | 16 |
| 8362 | 8387 | 16 |
| 8363 | 8388 | 16 |
| ... | ... | @@ -8458,6 +8483,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8458 | 8483 | 16 |
| 8459 | 8484 | 16 |
| 8460 | 8485 | 16 |
| 8486 | 16 | |
| 8461 | 8487 | |
| 8462 | 8488 | 16 |
| 8463 | 8489 | 16 |
| ... | ... | @@ -8484,6 +8510,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf |
| 8484 | 8510 | 16 |
| 8485 | 8511 | 16 |
| 8486 | 8512 | 16 |
| 8513 | 16 | |
| 8487 | 8514 | 24 16 |
| 8488 | 8515 | 24 16 |
| 8489 | 8516 | 16 |
| ... | ... | @@ -11374,6 +11401,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11374 | 11401 | |
| 11375 | 11402 | |
| 11376 | 11403 | 0 |
| 11404 | ||
| 11377 | 11405 | 27 |
| 11378 | 11406 | |
| 11379 | 11407 | 27 |
| ... | ... | @@ -11693,6 +11721,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11693 | 11721 | 0 |
| 11694 | 11722 | 0 |
| 11695 | 11723 | 1 |
| 11724 | 1 | |
| 11696 | 11725 | 0 |
| 11697 | 11726 | 0 |
| 11698 | 11727 | 3 11 |
| ... | ... | @@ -11878,6 +11907,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11878 | 11907 | 19 |
| 11879 | 11908 | 19 |
| 11880 | 11909 | 0 |
| 11910 | ||
| 11881 | 11911 | 0 |
| 11882 | 11912 | 1 |
| 11883 | 11913 | 28 |
| ... | ... | @@ -11997,6 +12027,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 11997 | 12027 | 33 |
| 11998 | 12028 | |
| 11999 | 12029 | 16 |
| 12030 | ||
| 12000 | 12031 | 5 |
| 12001 | 12032 | 0 |
| 12002 | 12033 | 15 |
| ... | ... | @@ -12085,6 +12116,9 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12085 | 12116 | 16 |
| 12086 | 12117 | 0 |
| 12087 | 12118 | 0 |
| 12119 | 12 | |
| 12120 | ||
| 12121 | ||
| 12088 | 12122 | 1 |
| 12089 | 12123 | 1 |
| 12090 | 12124 | 1 |
| ... | ... | @@ -12183,6 +12217,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12183 | 12217 | 1 |
| 12184 | 12218 | 1 |
| 12185 | 12219 | 1 |
| 12220 | 1 | |
| 12186 | 12221 | 0 |
| 12187 | 12222 | 0 |
| 12188 | 12223 | |
| ... | ... | @@ -12207,6 +12242,7 @@ sparc-linux-gnu sparcel-linux-gnu |
| 12207 | 12242 | 0 |
| 12208 | 12243 | 0 |
| 12209 | 12244 | 0 |
| 12245 | 0 | |
| 12210 | 12246 | 5 |
| 12211 | 12247 | 0 |
| 12212 | 12248 | 0 |
| ... | ... | @@ -15101,6 +15137,7 @@ sparcv9-linux-gnu |
| 15101 | 15137 | 5 |
| 15102 | 15138 | 5 |
| 15103 | 15139 | |
| 15140 | ||
| 15104 | 15141 | 27 |
| 15105 | 15142 | |
| 15106 | 15143 | 27 |
| ... | ... | @@ -15422,6 +15459,7 @@ sparcv9-linux-gnu |
| 15422 | 15459 | 5 |
| 15423 | 15460 | 5 |
| 15424 | 15461 | 5 |
| 15462 | 5 | |
| 15425 | 15463 | 11 |
| 15426 | 15464 | 27 |
| 15427 | 15465 | |
| ... | ... | @@ -15605,6 +15643,7 @@ sparcv9-linux-gnu |
| 15605 | 15643 | 19 |
| 15606 | 15644 | 19 |
| 15607 | 15645 | 5 |
| 15646 | ||
| 15608 | 15647 | 5 |
| 15609 | 15648 | 5 |
| 15610 | 15649 | 28 |
| ... | ... | @@ -15724,6 +15763,7 @@ sparcv9-linux-gnu |
| 15724 | 15763 | 27 |
| 15725 | 15764 | |
| 15726 | 15765 | 16 |
| 15766 | ||
| 15727 | 15767 | 5 |
| 15728 | 15768 | 5 |
| 15729 | 15769 | 15 |
| ... | ... | @@ -15812,6 +15852,9 @@ sparcv9-linux-gnu |
| 15812 | 15852 | 16 |
| 15813 | 15853 | 5 |
| 15814 | 15854 | 5 |
| 15855 | 12 | |
| 15856 | ||
| 15857 | ||
| 15815 | 15858 | 5 |
| 15816 | 15859 | 5 |
| 15817 | 15860 | 5 |
| ... | ... | @@ -15912,6 +15955,7 @@ sparcv9-linux-gnu |
| 15912 | 15955 | 5 |
| 15913 | 15956 | 5 |
| 15914 | 15957 | 5 |
| 15958 | 5 | |
| 15915 | 15959 | |
| 15916 | 15960 | 5 |
| 15917 | 15961 | 5 |
| ... | ... | @@ -15938,6 +15982,7 @@ sparcv9-linux-gnu |
| 15938 | 15982 | 5 |
| 15939 | 15983 | 5 |
| 15940 | 15984 | 5 |
| 15985 | 5 | |
| 15941 | 15986 | 24 28 5 12 16 |
| 15942 | 15987 | 24 28 5 12 16 |
| 15943 | 15988 | 5 14 |
| ... | ... | @@ -18828,6 +18873,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 18828 | 18873 | |
| 18829 | 18874 | |
| 18830 | 18875 | 0 |
| 18876 | ||
| 18831 | 18877 | 27 |
| 18832 | 18878 | |
| 18833 | 18879 | 27 |
| ... | ... | @@ -19147,6 +19193,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19147 | 19193 | 0 |
| 19148 | 19194 | 0 |
| 19149 | 19195 | 5 |
| 19196 | 5 | |
| 19150 | 19197 | 0 |
| 19151 | 19198 | 0 |
| 19152 | 19199 | 11 |
| ... | ... | @@ -19332,6 +19379,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19332 | 19379 | 19 |
| 19333 | 19380 | 19 |
| 19334 | 19381 | 0 |
| 19382 | ||
| 19335 | 19383 | 0 |
| 19336 | 19384 | 5 |
| 19337 | 19385 | 28 |
| ... | ... | @@ -19450,6 +19498,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19450 | 19498 | 27 |
| 19451 | 19499 | 27 |
| 19452 | 19500 | |
| 19501 | 16 | |
| 19453 | 19502 | 16 |
| 19454 | 19503 | 5 |
| 19455 | 19504 | 0 |
| ... | ... | @@ -19539,6 +19588,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19539 | 19588 | 16 |
| 19540 | 19589 | 0 |
| 19541 | 19590 | 0 |
| 19591 | 12 | |
| 19592 | ||
| 19593 | ||
| 19542 | 19594 | 5 |
| 19543 | 19595 | 5 |
| 19544 | 19596 | 5 |
| ... | ... | @@ -19637,6 +19689,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19637 | 19689 | 5 |
| 19638 | 19690 | 5 |
| 19639 | 19691 | 5 |
| 19692 | 5 | |
| 19640 | 19693 | 0 |
| 19641 | 19694 | 0 |
| 19642 | 19695 | 0 |
| ... | ... | @@ -19661,6 +19714,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64 |
| 19661 | 19714 | 0 |
| 19662 | 19715 | 0 |
| 19663 | 19716 | 0 |
| 19717 | 0 | |
| 19664 | 19718 | 5 |
| 19665 | 19719 | 0 |
| 19666 | 19720 | 0 |
| ... | ... | @@ -22555,6 +22609,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22555 | 22609 | |
| 22556 | 22610 | |
| 22557 | 22611 | 0 |
| 22612 | ||
| 22558 | 22613 | 27 |
| 22559 | 22614 | |
| 22560 | 22615 | 27 |
| ... | ... | @@ -22874,6 +22929,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 22874 | 22929 | 0 |
| 22875 | 22930 | 0 |
| 22876 | 22931 | 5 |
| 22932 | 5 | |
| 22877 | 22933 | 0 |
| 22878 | 22934 | 0 |
| 22879 | 22935 | 11 |
| ... | ... | @@ -23059,6 +23115,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23059 | 23115 | 19 |
| 23060 | 23116 | 19 |
| 23061 | 23117 | 0 |
| 23118 | ||
| 23062 | 23119 | 0 |
| 23063 | 23120 | 5 |
| 23064 | 23121 | 28 |
| ... | ... | @@ -23177,6 +23234,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23177 | 23234 | 27 |
| 23178 | 23235 | 27 |
| 23179 | 23236 | |
| 23237 | 16 | |
| 23180 | 23238 | 16 |
| 23181 | 23239 | 5 |
| 23182 | 23240 | 0 |
| ... | ... | @@ -23266,6 +23324,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23266 | 23324 | 16 |
| 23267 | 23325 | 0 |
| 23268 | 23326 | 0 |
| 23327 | 12 | |
| 23328 | ||
| 23329 | ||
| 23269 | 23330 | 5 |
| 23270 | 23331 | 5 |
| 23271 | 23332 | 5 |
| ... | ... | @@ -23364,6 +23425,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23364 | 23425 | 5 |
| 23365 | 23426 | 5 |
| 23366 | 23427 | 5 |
| 23428 | 5 | |
| 23367 | 23429 | 0 |
| 23368 | 23430 | 0 |
| 23369 | 23431 | 0 |
| ... | ... | @@ -23388,6 +23450,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32 |
| 23388 | 23450 | 0 |
| 23389 | 23451 | 0 |
| 23390 | 23452 | 0 |
| 23453 | 0 | |
| 23391 | 23454 | 5 |
| 23392 | 23455 | 0 |
| 23393 | 23456 | 0 |
| ... | ... | @@ -26282,6 +26345,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26282 | 26345 | |
| 26283 | 26346 | |
| 26284 | 26347 | 0 |
| 26348 | ||
| 26285 | 26349 | 27 |
| 26286 | 26350 | |
| 26287 | 26351 | 27 |
| ... | ... | @@ -26601,6 +26665,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26601 | 26665 | 0 |
| 26602 | 26666 | 0 |
| 26603 | 26667 | 5 |
| 26668 | 5 | |
| 26604 | 26669 | 0 |
| 26605 | 26670 | 0 |
| 26606 | 26671 | 11 |
| ... | ... | @@ -26786,6 +26851,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26786 | 26851 | 19 |
| 26787 | 26852 | 19 |
| 26788 | 26853 | 0 |
| 26854 | ||
| 26789 | 26855 | 0 |
| 26790 | 26856 | 5 |
| 26791 | 26857 | 28 |
| ... | ... | @@ -26904,6 +26970,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26904 | 26970 | 27 |
| 26905 | 26971 | |
| 26906 | 26972 | |
| 26973 | 16 | |
| 26907 | 26974 | 16 |
| 26908 | 26975 | 5 |
| 26909 | 26976 | 0 |
| ... | ... | @@ -26993,6 +27060,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 26993 | 27060 | 16 |
| 26994 | 27061 | 0 |
| 26995 | 27062 | 0 |
| 27063 | 12 | |
| 27064 | ||
| 27065 | ||
| 26996 | 27066 | 5 |
| 26997 | 27067 | 5 |
| 26998 | 27068 | 5 |
| ... | ... | @@ -27091,6 +27161,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27091 | 27161 | 5 |
| 27092 | 27162 | 5 |
| 27093 | 27163 | 5 |
| 27164 | 5 | |
| 27094 | 27165 | 0 |
| 27095 | 27166 | 0 |
| 27096 | 27167 | 0 |
| ... | ... | @@ -27115,6 +27186,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf |
| 27115 | 27186 | 0 |
| 27116 | 27187 | 0 |
| 27117 | 27188 | 0 |
| 27189 | 0 | |
| 27118 | 27190 | 5 |
| 27119 | 27191 | 0 |
| 27120 | 27192 | 0 |
| ... | ... | @@ -30009,6 +30081,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30009 | 30081 | |
| 30010 | 30082 | |
| 30011 | 30083 | 0 |
| 30084 | ||
| 30012 | 30085 | 27 |
| 30013 | 30086 | |
| 30014 | 30087 | 27 |
| ... | ... | @@ -30328,6 +30401,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30328 | 30401 | 0 |
| 30329 | 30402 | 0 |
| 30330 | 30403 | 5 |
| 30404 | 5 | |
| 30331 | 30405 | 0 |
| 30332 | 30406 | 0 |
| 30333 | 30407 | 11 |
| ... | ... | @@ -30513,6 +30587,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30513 | 30587 | 19 |
| 30514 | 30588 | 19 |
| 30515 | 30589 | 0 |
| 30590 | ||
| 30516 | 30591 | 0 |
| 30517 | 30592 | 5 |
| 30518 | 30593 | 28 |
| ... | ... | @@ -30631,6 +30706,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30631 | 30706 | 27 |
| 30632 | 30707 | |
| 30633 | 30708 | |
| 30709 | 16 | |
| 30634 | 30710 | 16 |
| 30635 | 30711 | 5 |
| 30636 | 30712 | 0 |
| ... | ... | @@ -30720,6 +30796,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30720 | 30796 | 16 |
| 30721 | 30797 | 0 |
| 30722 | 30798 | 0 |
| 30799 | 12 | |
| 30800 | ||
| 30801 | ||
| 30723 | 30802 | 5 |
| 30724 | 30803 | 5 |
| 30725 | 30804 | 5 |
| ... | ... | @@ -30818,6 +30897,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30818 | 30897 | 5 |
| 30819 | 30898 | 5 |
| 30820 | 30899 | 5 |
| 30900 | 5 | |
| 30821 | 30901 | 0 |
| 30822 | 30902 | 0 |
| 30823 | 30903 | 0 |
| ... | ... | @@ -30842,6 +30922,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi |
| 30842 | 30922 | 0 |
| 30843 | 30923 | 0 |
| 30844 | 30924 | 0 |
| 30925 | 0 | |
| 30845 | 30926 | 5 |
| 30846 | 30927 | 0 |
| 30847 | 30928 | 0 |
| ... | ... | @@ -33734,6 +33815,7 @@ x86_64-linux-gnu |
| 33734 | 33815 | |
| 33735 | 33816 | |
| 33736 | 33817 | |
| 33818 | ||
| 33737 | 33819 | |
| 33738 | 33820 | |
| 33739 | 33821 | 27 |
| ... | ... | @@ -34057,6 +34139,7 @@ x86_64-linux-gnu |
| 34057 | 34139 | 10 |
| 34058 | 34140 | 10 |
| 34059 | 34141 | 10 |
| 34142 | 10 | |
| 34060 | 34143 | 11 |
| 34061 | 34144 | 27 |
| 34062 | 34145 | 36 |
| ... | ... | @@ -34240,6 +34323,7 @@ x86_64-linux-gnu |
| 34240 | 34323 | 19 |
| 34241 | 34324 | 19 |
| 34242 | 34325 | 10 |
| 34326 | ||
| 34243 | 34327 | 10 |
| 34244 | 34328 | 10 |
| 34245 | 34329 | 28 |
| ... | ... | @@ -34359,6 +34443,7 @@ x86_64-linux-gnu |
| 34359 | 34443 | 27 |
| 34360 | 34444 | |
| 34361 | 34445 | 16 |
| 34446 | ||
| 34362 | 34447 | 10 |
| 34363 | 34448 | 10 |
| 34364 | 34449 | 15 |
| ... | ... | @@ -34447,6 +34532,9 @@ x86_64-linux-gnu |
| 34447 | 34532 | 16 |
| 34448 | 34533 | 10 |
| 34449 | 34534 | 10 |
| 34535 | 12 | |
| 34536 | ||
| 34537 | ||
| 34450 | 34538 | 10 |
| 34451 | 34539 | 10 |
| 34452 | 34540 | 10 |
| ... | ... | @@ -34547,6 +34635,7 @@ x86_64-linux-gnu |
| 34547 | 34635 | 10 |
| 34548 | 34636 | 10 |
| 34549 | 34637 | 10 |
| 34638 | 10 | |
| 34550 | 34639 | |
| 34551 | 34640 | 10 |
| 34552 | 34641 | 10 |
| ... | ... | @@ -34573,6 +34662,7 @@ x86_64-linux-gnu |
| 34573 | 34662 | 10 |
| 34574 | 34663 | 10 |
| 34575 | 34664 | 10 |
| 34665 | 10 | |
| 34576 | 34666 | 24 10 12 16 |
| 34577 | 34667 | 24 10 12 16 |
| 34578 | 34668 | 10 14 |
| ... | ... | @@ -37461,6 +37551,7 @@ x86_64-linux-gnux32 |
| 37461 | 37551 | |
| 37462 | 37552 | |
| 37463 | 37553 | |
| 37554 | ||
| 37464 | 37555 | |
| 37465 | 37556 | |
| 37466 | 37557 | 28 |
| ... | ... | @@ -37784,6 +37875,7 @@ x86_64-linux-gnux32 |
| 37784 | 37875 | 28 |
| 37785 | 37876 | 28 |
| 37786 | 37877 | 28 |
| 37878 | 28 | |
| 37787 | 37879 | |
| 37788 | 37880 | 28 |
| 37789 | 37881 | 36 |
| ... | ... | @@ -37967,6 +38059,7 @@ x86_64-linux-gnux32 |
| 37967 | 38059 | 28 |
| 37968 | 38060 | 28 |
| 37969 | 38061 | 28 |
| 38062 | ||
| 37970 | 38063 | 28 |
| 37971 | 38064 | 28 |
| 37972 | 38065 | 28 |
| ... | ... | @@ -38086,6 +38179,7 @@ x86_64-linux-gnux32 |
| 38086 | 38179 | 28 |
| 38087 | 38180 | |
| 38088 | 38181 | 28 |
| 38182 | ||
| 38089 | 38183 | 28 |
| 38090 | 38184 | 28 |
| 38091 | 38185 | 28 |
| ... | ... | @@ -38174,6 +38268,9 @@ x86_64-linux-gnux32 |
| 38174 | 38268 | 28 |
| 38175 | 38269 | 28 |
| 38176 | 38270 | 28 |
| 38271 | 28 | |
| 38272 | ||
| 38273 | ||
| 38177 | 38274 | 28 |
| 38178 | 38275 | 28 |
| 38179 | 38276 | 28 |
| ... | ... | @@ -38274,6 +38371,7 @@ x86_64-linux-gnux32 |
| 38274 | 38371 | 28 |
| 38275 | 38372 | 28 |
| 38276 | 38373 | 28 |
| 38374 | 28 | |
| 38277 | 38375 | |
| 38278 | 38376 | 28 |
| 38279 | 38377 | 28 |
| ... | ... | @@ -38303,6 +38401,7 @@ x86_64-linux-gnux32 |
| 38303 | 38401 | 28 |
| 38304 | 38402 | 28 |
| 38305 | 38403 | 28 |
| 38404 | 28 | |
| 38306 | 38405 | |
| 38307 | 38406 | 28 |
| 38308 | 38407 | 28 |
| ... | ... | @@ -41190,6 +41289,7 @@ i386-linux-gnu |
| 41190 | 41289 | |
| 41191 | 41290 | |
| 41192 | 41291 | 0 |
| 41292 | 12 | |
| 41193 | 41293 | 27 |
| 41194 | 41294 | 36 |
| 41195 | 41295 | 27 |
| ... | ... | @@ -41509,6 +41609,7 @@ i386-linux-gnu |
| 41509 | 41609 | 0 |
| 41510 | 41610 | 0 |
| 41511 | 41611 | 1 |
| 41612 | 1 | |
| 41512 | 41613 | 0 |
| 41513 | 41614 | 0 |
| 41514 | 41615 | 3 11 |
| ... | ... | @@ -41694,6 +41795,7 @@ i386-linux-gnu |
| 41694 | 41795 | 19 |
| 41695 | 41796 | 19 |
| 41696 | 41797 | 0 |
| 41798 | ||
| 41697 | 41799 | 0 |
| 41698 | 41800 | 1 |
| 41699 | 41801 | 28 |
| ... | ... | @@ -41813,6 +41915,7 @@ i386-linux-gnu |
| 41813 | 41915 | 27 |
| 41814 | 41916 | |
| 41815 | 41917 | 16 |
| 41918 | ||
| 41816 | 41919 | 5 |
| 41817 | 41920 | 0 |
| 41818 | 41921 | 15 |
| ... | ... | @@ -41901,6 +42004,9 @@ i386-linux-gnu |
| 41901 | 42004 | 16 |
| 41902 | 42005 | 0 |
| 41903 | 42006 | 0 |
| 42007 | 12 | |
| 42008 | ||
| 42009 | ||
| 41904 | 42010 | 1 |
| 41905 | 42011 | 1 |
| 41906 | 42012 | 1 |
| ... | ... | @@ -41999,6 +42105,7 @@ i386-linux-gnu |
| 41999 | 42105 | 1 |
| 42000 | 42106 | 1 |
| 42001 | 42107 | 1 |
| 42108 | 1 | |
| 42002 | 42109 | 0 |
| 42003 | 42110 | 0 |
| 42004 | 42111 | |
| ... | ... | @@ -42023,6 +42130,7 @@ i386-linux-gnu |
| 42023 | 42130 | 0 |
| 42024 | 42131 | 0 |
| 42025 | 42132 | 0 |
| 42133 | 0 | |
| 42026 | 42134 | 5 |
| 42027 | 42135 | 0 |
| 42028 | 42136 | 0 |
| ... | ... | @@ -44915,6 +45023,7 @@ powerpc64le-linux-gnu |
| 44915 | 45023 | |
| 44916 | 45024 | |
| 44917 | 45025 | |
| 45026 | ||
| 44918 | 45027 | |
| 44919 | 45028 | |
| 44920 | 45029 | 29 |
| ... | ... | @@ -45238,6 +45347,7 @@ powerpc64le-linux-gnu |
| 45238 | 45347 | 29 |
| 45239 | 45348 | 29 |
| 45240 | 45349 | 29 |
| 45350 | 29 | |
| 45241 | 45351 | |
| 45242 | 45352 | 29 |
| 45243 | 45353 | 36 |
| ... | ... | @@ -45421,6 +45531,7 @@ powerpc64le-linux-gnu |
| 45421 | 45531 | 29 |
| 45422 | 45532 | 29 |
| 45423 | 45533 | 29 |
| 45534 | 33 | |
| 45424 | 45535 | 29 |
| 45425 | 45536 | 29 |
| 45426 | 45537 | 29 |
| ... | ... | @@ -45540,6 +45651,7 @@ powerpc64le-linux-gnu |
| 45540 | 45651 | 29 |
| 45541 | 45652 | |
| 45542 | 45653 | 29 |
| 45654 | ||
| 45543 | 45655 | 29 |
| 45544 | 45656 | 29 |
| 45545 | 45657 | 29 |
| ... | ... | @@ -45628,6 +45740,9 @@ powerpc64le-linux-gnu |
| 45628 | 45740 | 29 |
| 45629 | 45741 | 29 |
| 45630 | 45742 | 29 |
| 45743 | 29 | |
| 45744 | 32 | |
| 45745 | ||
| 45631 | 45746 | 29 |
| 45632 | 45747 | 29 |
| 45633 | 45748 | 29 |
| ... | ... | @@ -45728,6 +45843,7 @@ powerpc64le-linux-gnu |
| 45728 | 45843 | 29 |
| 45729 | 45844 | 29 |
| 45730 | 45845 | 29 |
| 45846 | 29 | |
| 45731 | 45847 | |
| 45732 | 45848 | 29 |
| 45733 | 45849 | 29 |
| ... | ... | @@ -45757,6 +45873,7 @@ powerpc64le-linux-gnu |
| 45757 | 45873 | 29 |
| 45758 | 45874 | 29 |
| 45759 | 45875 | 29 |
| 45876 | 29 | |
| 45760 | 45877 | |
| 45761 | 45878 | 29 |
| 45762 | 45879 | 29 |
| ... | ... | @@ -48642,6 +48759,7 @@ powerpc64-linux-gnu |
| 48642 | 48759 | |
| 48643 | 48760 | |
| 48644 | 48761 | |
| 48762 | ||
| 48645 | 48763 | |
| 48646 | 48764 | |
| 48647 | 48765 | 27 |
| ... | ... | @@ -48965,6 +49083,7 @@ powerpc64-linux-gnu |
| 48965 | 49083 | 12 |
| 48966 | 49084 | 12 |
| 48967 | 49085 | 12 |
| 49086 | 12 | |
| 48968 | 49087 | |
| 48969 | 49088 | 27 |
| 48970 | 49089 | |
| ... | ... | @@ -49148,6 +49267,7 @@ powerpc64-linux-gnu |
| 49148 | 49267 | 19 |
| 49149 | 49268 | 19 |
| 49150 | 49269 | 12 |
| 49270 | 33 | |
| 49151 | 49271 | 12 |
| 49152 | 49272 | 12 |
| 49153 | 49273 | 28 |
| ... | ... | @@ -49267,6 +49387,7 @@ powerpc64-linux-gnu |
| 49267 | 49387 | 27 |
| 49268 | 49388 | |
| 49269 | 49389 | 16 |
| 49390 | ||
| 49270 | 49391 | 12 |
| 49271 | 49392 | 12 |
| 49272 | 49393 | 15 |
| ... | ... | @@ -49355,6 +49476,9 @@ powerpc64-linux-gnu |
| 49355 | 49476 | 16 |
| 49356 | 49477 | 12 |
| 49357 | 49478 | 12 |
| 49479 | 12 | |
| 49480 | 32 | |
| 49481 | ||
| 49358 | 49482 | 12 |
| 49359 | 49483 | 12 |
| 49360 | 49484 | 12 |
| ... | ... | @@ -49455,6 +49579,7 @@ powerpc64-linux-gnu |
| 49455 | 49579 | 12 |
| 49456 | 49580 | 12 |
| 49457 | 49581 | 12 |
| 49582 | 12 | |
| 49458 | 49583 | |
| 49459 | 49584 | 12 |
| 49460 | 49585 | 12 |
| ... | ... | @@ -49480,6 +49605,7 @@ powerpc64-linux-gnu |
| 49480 | 49605 | 12 |
| 49481 | 49606 | 12 |
| 49482 | 49607 | 12 |
| 49608 | 12 | |
| 49483 | 49609 | 12 15 |
| 49484 | 49610 | 24 12 16 |
| 49485 | 49611 | 24 12 16 |
| ... | ... | @@ -52369,6 +52495,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52369 | 52495 | |
| 52370 | 52496 | |
| 52371 | 52497 | |
| 52498 | ||
| 52372 | 52499 | |
| 52373 | 52500 | |
| 52374 | 52501 | 27 |
| ... | ... | @@ -52690,6 +52817,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52690 | 52817 | 0 |
| 52691 | 52818 | 0 |
| 52692 | 52819 | 1 |
| 52820 | 1 | |
| 52693 | 52821 | 0 |
| 52694 | 52822 | 0 |
| 52695 | 52823 | 3 11 |
| ... | ... | @@ -52875,6 +53003,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52875 | 53003 | 19 |
| 52876 | 53004 | 19 |
| 52877 | 53005 | 0 |
| 53006 | 33 | |
| 52878 | 53007 | 0 |
| 52879 | 53008 | 1 |
| 52880 | 53009 | 28 |
| ... | ... | @@ -52994,6 +53123,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 52994 | 53123 | 27 |
| 52995 | 53124 | 13 |
| 52996 | 53125 | 16 |
| 53126 | ||
| 52997 | 53127 | 5 |
| 52998 | 53128 | 0 |
| 52999 | 53129 | 15 |
| ... | ... | @@ -53082,6 +53212,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53082 | 53212 | 16 |
| 53083 | 53213 | 0 |
| 53084 | 53214 | 0 |
| 53215 | 12 | |
| 53216 | 32 | |
| 53217 | ||
| 53085 | 53218 | 1 |
| 53086 | 53219 | 1 |
| 53087 | 53220 | 1 |
| ... | ... | @@ -53180,6 +53313,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53180 | 53313 | 1 |
| 53181 | 53314 | 1 |
| 53182 | 53315 | 1 |
| 53316 | 1 | |
| 53183 | 53317 | 0 |
| 53184 | 53318 | 0 |
| 53185 | 53319 | |
| ... | ... | @@ -53204,6 +53338,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf |
| 53204 | 53338 | 0 |
| 53205 | 53339 | 0 |
| 53206 | 53340 | 0 |
| 53341 | 0 | |
| 53207 | 53342 | 5 |
| 53208 | 53343 | 0 |
| 53209 | 53344 | 0 |
lib/libc/glibc/fns.txt+9| ... | ... | @@ -192,6 +192,7 @@ _Qp_uitoq c |
| 192 | 192 | _Qp_uxtoq c |
| 193 | 193 | _Qp_xtoq c |
| 194 | 194 | ___brk_addr c |
| 195 | ___tls_get_addr ld | |
| 195 | 196 | __acos_finite m |
| 196 | 197 | __acosf128_finite m |
| 197 | 198 | __acosf_finite m |
| ... | ... | @@ -511,6 +512,7 @@ __libc_memalign c |
| 511 | 512 | __libc_pvalloc c |
| 512 | 513 | __libc_realloc c |
| 513 | 514 | __libc_sa_len c |
| 515 | __libc_stack_end ld | |
| 514 | 516 | __libc_start_main c |
| 515 | 517 | __libc_valloc c |
| 516 | 518 | __libpthread_version_placeholder pthread |
| ... | ... | @@ -696,6 +698,7 @@ __open_2 c |
| 696 | 698 | __openat64_2 c |
| 697 | 699 | __openat_2 c |
| 698 | 700 | __overflow c |
| 701 | __parse_hwcap_and_convert_at_platform ld | |
| 699 | 702 | __pipe c |
| 700 | 703 | __poll c |
| 701 | 704 | __poll_chk c |
| ... | ... | @@ -815,6 +818,7 @@ __sqrtf_finite m |
| 815 | 818 | __sqrtl_finite m |
| 816 | 819 | __sqrtsf2 c |
| 817 | 820 | __stack_chk_fail c |
| 821 | __stack_chk_guard ld | |
| 818 | 822 | __statfs c |
| 819 | 823 | __stpcpy c |
| 820 | 824 | __stpcpy_chk c |
| ... | ... | @@ -903,6 +907,9 @@ __sysctl c |
| 903 | 907 | __syslog_chk c |
| 904 | 908 | __sysv_signal c |
| 905 | 909 | __timezone c |
| 910 | __tls_get_addr ld | |
| 911 | __tls_get_addr_opt ld | |
| 912 | __tls_get_offset ld | |
| 906 | 913 | __toascii_l c |
| 907 | 914 | __tolower_l c |
| 908 | 915 | __toupper_l c |
| ... | ... | @@ -999,6 +1006,7 @@ __ynf128_finite m |
| 999 | 1006 | __ynf_finite m |
| 1000 | 1007 | __ynl_finite m |
| 1001 | 1008 | _authenticate c |
| 1009 | _dl_mcount ld | |
| 1002 | 1010 | _dl_mcount_wrapper c |
| 1003 | 1011 | _dl_mcount_wrapper_check c |
| 1004 | 1012 | _environ c |
| ... | ... | @@ -1024,6 +1032,7 @@ _pthread_cleanup_pop pthread |
| 1024 | 1032 | _pthread_cleanup_pop_restore pthread |
| 1025 | 1033 | _pthread_cleanup_push pthread |
| 1026 | 1034 | _pthread_cleanup_push_defer pthread |
| 1035 | _r_debug ld | |
| 1027 | 1036 | _res c |
| 1028 | 1037 | _res_hconf c |
| 1029 | 1038 | _rpc_dtablesize c |
lib/std/debug.zig+44-11| ... | ... | @@ -235,9 +235,17 @@ pub fn panic(comptime format: []const u8, args: var) noreturn { |
| 235 | 235 | panicExtra(null, first_trace_addr, format, args); |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | /// TODO multithreaded awareness | |
| 238 | /// Non-zero whenever the program triggered a panic. | |
| 239 | /// The counter is incremented/decremented atomically. | |
| 239 | 240 | var panicking: u8 = 0; |
| 240 | 241 | |
| 242 | // Locked to avoid interleaving panic messages from multiple threads. | |
| 243 | var panic_mutex = std.Mutex.init(); | |
| 244 | ||
| 245 | /// Counts how many times the panic handler is invoked by this thread. | |
| 246 | /// This is used to catch and handle panics triggered by the panic handler. | |
| 247 | threadlocal var panic_stage: usize = 0; | |
| 248 | ||
| 241 | 249 | pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, comptime format: []const u8, args: var) noreturn { |
| 242 | 250 | @setCold(true); |
| 243 | 251 | |
| ... | ... | @@ -247,25 +255,50 @@ pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, c |
| 247 | 255 | resetSegfaultHandler(); |
| 248 | 256 | } |
| 249 | 257 | |
| 250 | switch (@atomicRmw(u8, &panicking, .Add, 1, .SeqCst)) { | |
| 258 | switch (panic_stage) { | |
| 251 | 259 | 0 => { |
| 252 | const stderr = getStderrStream(); | |
| 253 | noasync stderr.print(format ++ "\n", args) catch os.abort(); | |
| 254 | if (trace) |t| { | |
| 255 | dumpStackTrace(t.*); | |
| 260 | panic_stage = 1; | |
| 261 | ||
| 262 | _ = @atomicRmw(u8, &panicking, .Add, 1, .SeqCst); | |
| 263 | ||
| 264 | // Make sure to release the mutex when done | |
| 265 | { | |
| 266 | const held = panic_mutex.acquire(); | |
| 267 | defer held.release(); | |
| 268 | ||
| 269 | const stderr = getStderrStream(); | |
| 270 | noasync stderr.print(format ++ "\n", args) catch os.abort(); | |
| 271 | if (trace) |t| { | |
| 272 | dumpStackTrace(t.*); | |
| 273 | } | |
| 274 | dumpCurrentStackTrace(first_trace_addr); | |
| 275 | } | |
| 276 | ||
| 277 | if (@atomicRmw(u8, &panicking, .Sub, 1, .SeqCst) != 1) { | |
| 278 | // Another thread is panicking, wait for the last one to finish | |
| 279 | // and call abort() | |
| 280 | ||
| 281 | // Sleep forever without hammering the CPU | |
| 282 | var event = std.ResetEvent.init(); | |
| 283 | event.wait(); | |
| 284 | ||
| 285 | unreachable; | |
| 256 | 286 | } |
| 257 | dumpCurrentStackTrace(first_trace_addr); | |
| 258 | 287 | }, |
| 259 | 288 | 1 => { |
| 260 | // TODO detect if a different thread caused the panic, because in that case | |
| 261 | // we would want to return here instead of calling abort, so that the thread | |
| 262 | // which first called panic can finish printing a stack trace. | |
| 263 | warn("Panicked during a panic. Aborting.\n", .{}); | |
| 289 | panic_stage = 2; | |
| 290 | ||
| 291 | // A panic happened while trying to print a previous panic message, | |
| 292 | // we're still holding the mutex but that's fine as we're going to | |
| 293 | // call abort() | |
| 294 | const stderr = getStderrStream(); | |
| 295 | noasync stderr.print("Panicked during a panic. Aborting.\n", .{}) catch os.abort(); | |
| 264 | 296 | }, |
| 265 | 297 | else => { |
| 266 | 298 | // Panicked while printing "Panicked during a panic." |
| 267 | 299 | }, |
| 268 | 300 | } |
| 301 | ||
| 269 | 302 | os.abort(); |
| 270 | 303 | } |
| 271 | 304 |
src-self-hosted/stage2.zig+8| ... | ... | @@ -909,6 +909,7 @@ const Stage2Target = extern struct { |
| 909 | 909 | os_builtin_str: ?[*:0]const u8, |
| 910 | 910 | |
| 911 | 911 | dynamic_linker: ?[*:0]const u8, |
| 912 | standard_dynamic_linker_path: ?[*:0]const u8, | |
| 912 | 913 | |
| 913 | 914 | fn fromTarget(self: *Stage2Target, cross_target: CrossTarget) !void { |
| 914 | 915 | const allocator = std.heap.c_allocator; |
| ... | ... | @@ -1119,6 +1120,12 @@ const Stage2Target = extern struct { |
| 1119 | 1120 | } |
| 1120 | 1121 | }; |
| 1121 | 1122 | |
| 1123 | const std_dl = target.standardDynamicLinkerPath(); | |
| 1124 | const std_dl_z = if (std_dl.get()) |dl| | |
| 1125 | (try mem.dupeZ(std.heap.c_allocator, u8, dl)).ptr | |
| 1126 | else | |
| 1127 | null; | |
| 1128 | ||
| 1122 | 1129 | const cache_hash_slice = cache_hash.toOwnedSlice(); |
| 1123 | 1130 | self.* = .{ |
| 1124 | 1131 | .arch = @enumToInt(target.cpu.arch) + 1, // skip over ZigLLVM_UnknownArch |
| ... | ... | @@ -1134,6 +1141,7 @@ const Stage2Target = extern struct { |
| 1134 | 1141 | .is_native = cross_target.isNative(), |
| 1135 | 1142 | .glibc_or_darwin_version = glibc_or_darwin_version, |
| 1136 | 1143 | .dynamic_linker = dynamic_linker, |
| 1144 | .standard_dynamic_linker_path = std_dl_z, | |
| 1137 | 1145 | }; |
| 1138 | 1146 | } |
| 1139 | 1147 | }; |
src/all_types.hpp+1| ... | ... | @@ -2267,6 +2267,7 @@ struct CodeGen { |
| 2267 | 2267 | Buf *zig_lib_dir; |
| 2268 | 2268 | Buf *zig_std_dir; |
| 2269 | 2269 | Buf *version_script_path; |
| 2270 | Buf *override_soname; | |
| 2270 | 2271 | |
| 2271 | 2272 | const char **llvm_argv; |
| 2272 | 2273 | size_t llvm_argv_len; |
src/codegen.cpp+1| ... | ... | @@ -10510,6 +10510,7 @@ static Error check_cache(CodeGen *g, Buf *manifest_dir, Buf *digest) { |
| 10510 | 10510 | cache_str(ch, g->libc->kernel32_lib_dir); |
| 10511 | 10511 | } |
| 10512 | 10512 | cache_buf_opt(ch, g->version_script_path); |
| 10513 | cache_buf_opt(ch, g->override_soname); | |
| 10513 | 10514 | |
| 10514 | 10515 | // gen_c_objects appends objects to g->link_objects which we want to include in the hash |
| 10515 | 10516 | gen_c_objects(g); |
src/glibc.cpp+10| ... | ... | @@ -16,6 +16,7 @@ static const ZigGLibCLib glibc_libs[] = { |
| 16 | 16 | {"pthread", 0}, |
| 17 | 17 | {"dl", 2}, |
| 18 | 18 | {"rt", 1}, |
| 19 | {"ld", 2}, | |
| 19 | 20 | }; |
| 20 | 21 | |
| 21 | 22 | Error glibc_load_metadata(ZigGLibCAbi **out_result, Buf *zig_lib_dir, bool verbose) { |
| ... | ... | @@ -330,6 +331,8 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con |
| 330 | 331 | return err; |
| 331 | 332 | } |
| 332 | 333 | |
| 334 | bool is_ld = (strcmp(lib->name, "ld") == 0); | |
| 335 | ||
| 333 | 336 | CodeGen *child_gen = create_child_codegen(g, zig_file_path, OutTypeLib, nullptr, lib->name, progress_node); |
| 334 | 337 | codegen_set_lib_version(child_gen, lib->sover, 0, 0); |
| 335 | 338 | child_gen->is_dynamic = true; |
| ... | ... | @@ -337,6 +340,13 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con |
| 337 | 340 | child_gen->version_script_path = map_file_path; |
| 338 | 341 | child_gen->enable_cache = false; |
| 339 | 342 | child_gen->output_dir = dummy_dir; |
| 343 | if (is_ld) { | |
| 344 | assert(g->zig_target->standard_dynamic_linker_path != nullptr); | |
| 345 | Buf *ld_basename = buf_alloc(); | |
| 346 | os_path_split(buf_create_from_str(g->zig_target->standard_dynamic_linker_path), | |
| 347 | nullptr, ld_basename); | |
| 348 | child_gen->override_soname = ld_basename; | |
| 349 | } | |
| 340 | 350 | codegen_build_and_link(child_gen); |
| 341 | 351 | } |
| 342 | 352 |
src/link.cpp+4-4| ... | ... | @@ -1651,7 +1651,6 @@ static void construct_linker_job_elf(LinkJob *lj) { |
| 1651 | 1651 | |
| 1652 | 1652 | bool is_lib = g->out_type == OutTypeLib; |
| 1653 | 1653 | bool is_dyn_lib = g->is_dynamic && is_lib; |
| 1654 | Buf *soname = nullptr; | |
| 1655 | 1654 | if (!g->have_dynamic_link) { |
| 1656 | 1655 | if (g->zig_target->arch == ZigLLVM_arm || g->zig_target->arch == ZigLLVM_armeb || |
| 1657 | 1656 | g->zig_target->arch == ZigLLVM_thumb || g->zig_target->arch == ZigLLVM_thumbeb) |
| ... | ... | @@ -1662,15 +1661,13 @@ static void construct_linker_job_elf(LinkJob *lj) { |
| 1662 | 1661 | } |
| 1663 | 1662 | } else if (is_dyn_lib) { |
| 1664 | 1663 | lj->args.append("-shared"); |
| 1665 | ||
| 1666 | assert(buf_len(&g->bin_file_output_path) != 0); | |
| 1667 | soname = buf_sprintf("lib%s.so.%" ZIG_PRI_usize, buf_ptr(g->root_out_name), g->version_major); | |
| 1668 | 1664 | } |
| 1669 | 1665 | |
| 1670 | 1666 | if (target_requires_pie(g->zig_target) && g->out_type == OutTypeExe) { |
| 1671 | 1667 | lj->args.append("-pie"); |
| 1672 | 1668 | } |
| 1673 | 1669 | |
| 1670 | assert(buf_len(&g->bin_file_output_path) != 0); | |
| 1674 | 1671 | lj->args.append("-o"); |
| 1675 | 1672 | lj->args.append(buf_ptr(&g->bin_file_output_path)); |
| 1676 | 1673 | |
| ... | ... | @@ -1740,6 +1737,9 @@ static void construct_linker_job_elf(LinkJob *lj) { |
| 1740 | 1737 | } |
| 1741 | 1738 | |
| 1742 | 1739 | if (is_dyn_lib) { |
| 1740 | Buf *soname = (g->override_soname == nullptr) ? | |
| 1741 | buf_sprintf("lib%s.so.%" ZIG_PRI_usize, buf_ptr(g->root_out_name), g->version_major) : | |
| 1742 | g->override_soname; | |
| 1743 | 1743 | lj->args.append("-soname"); |
| 1744 | 1744 | lj->args.append(buf_ptr(soname)); |
| 1745 | 1745 |
src/stage2.h+1| ... | ... | @@ -291,6 +291,7 @@ struct ZigTarget { |
| 291 | 291 | size_t cache_hash_len; |
| 292 | 292 | const char *os_builtin_str; |
| 293 | 293 | const char *dynamic_linker; |
| 294 | const char *standard_dynamic_linker_path; | |
| 294 | 295 | }; |
| 295 | 296 | |
| 296 | 297 | // ABI warning |
tools/update_glibc.zig+16-13| ... | ... | @@ -20,6 +20,7 @@ const lib_names = [_][]const u8{ |
| 20 | 20 | "m", |
| 21 | 21 | "pthread", |
| 22 | 22 | "rt", |
| 23 | "ld", | |
| 23 | 24 | }; |
| 24 | 25 | |
| 25 | 26 | // fpu/nofpu are hardcoded elsewhere, based on .gnueabi/.gnueabihf with an exception for .arm |
| ... | ... | @@ -154,22 +155,24 @@ pub fn main() !void { |
| 154 | 155 | const fn_set = &target_funcs_gop.kv.value.list; |
| 155 | 156 | |
| 156 | 157 | for (lib_names) |lib_name, lib_name_index| { |
| 157 | const basename = try fmt.allocPrint(allocator, "lib{}.abilist", .{lib_name}); | |
| 158 | const lib_prefix = if (std.mem.eql(u8, lib_name, "ld")) "" else "lib"; | |
| 159 | const basename = try fmt.allocPrint(allocator, "{}{}.abilist", .{ lib_prefix, lib_name }); | |
| 158 | 160 | const abi_list_filename = blk: { |
| 159 | if (abi_list.targets[0].abi == .gnuabi64 and std.mem.eql(u8, lib_name, "c")) { | |
| 161 | const is_c = std.mem.eql(u8, lib_name, "c"); | |
| 162 | const is_m = std.mem.eql(u8, lib_name, "m"); | |
| 163 | const is_ld = std.mem.eql(u8, lib_name, "ld"); | |
| 164 | if (abi_list.targets[0].abi == .gnuabi64 and (is_c or is_ld)) { | |
| 160 | 165 | break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n64", basename }); |
| 161 | } else if (abi_list.targets[0].abi == .gnuabin32 and std.mem.eql(u8, lib_name, "c")) { | |
| 166 | } else if (abi_list.targets[0].abi == .gnuabin32 and (is_c or is_ld)) { | |
| 162 | 167 | break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n32", basename }); |
| 163 | 168 | } else if (abi_list.targets[0].arch != .arm and |
| 164 | 169 | abi_list.targets[0].abi == .gnueabihf and |
| 165 | (std.mem.eql(u8, lib_name, "c") or | |
| 166 | (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc))) | |
| 170 | (is_c or (is_m and abi_list.targets[0].arch == .powerpc))) | |
| 167 | 171 | { |
| 168 | 172 | break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "fpu", basename }); |
| 169 | 173 | } else if (abi_list.targets[0].arch != .arm and |
| 170 | 174 | abi_list.targets[0].abi == .gnueabi and |
| 171 | (std.mem.eql(u8, lib_name, "c") or | |
| 172 | (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc))) | |
| 175 | (is_c or (is_m and abi_list.targets[0].arch == .powerpc))) | |
| 173 | 176 | { |
| 174 | 177 | break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "nofpu", basename }); |
| 175 | 178 | } else if (abi_list.targets[0].arch == .arm) { |
| ... | ... | @@ -234,8 +237,8 @@ pub fn main() !void { |
| 234 | 237 | const vers_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "vers.txt" }); |
| 235 | 238 | const vers_txt_file = try fs.cwd().createFile(vers_txt_path, .{}); |
| 236 | 239 | defer vers_txt_file.close(); |
| 237 | var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&vers_txt_file.outStream().stream); | |
| 238 | const vers_txt = &buffered.stream; | |
| 240 | var buffered = std.io.bufferedOutStream(vers_txt_file.outStream()); | |
| 241 | const vers_txt = buffered.outStream(); | |
| 239 | 242 | for (global_ver_list) |name, i| { |
| 240 | 243 | _ = global_ver_set.put(name, i) catch unreachable; |
| 241 | 244 | try vers_txt.print("{}\n", .{name}); |
| ... | ... | @@ -246,8 +249,8 @@ pub fn main() !void { |
| 246 | 249 | const fns_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "fns.txt" }); |
| 247 | 250 | const fns_txt_file = try fs.cwd().createFile(fns_txt_path, .{}); |
| 248 | 251 | defer fns_txt_file.close(); |
| 249 | var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&fns_txt_file.outStream().stream); | |
| 250 | const fns_txt = &buffered.stream; | |
| 252 | var buffered = std.io.bufferedOutStream(fns_txt_file.outStream()); | |
| 253 | const fns_txt = buffered.outStream(); | |
| 251 | 254 | for (global_fn_list) |name, i| { |
| 252 | 255 | const kv = global_fn_set.get(name).?; |
| 253 | 256 | kv.value.index = i; |
| ... | ... | @@ -277,8 +280,8 @@ pub fn main() !void { |
| 277 | 280 | const abilist_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "abi.txt" }); |
| 278 | 281 | const abilist_txt_file = try fs.cwd().createFile(abilist_txt_path, .{}); |
| 279 | 282 | defer abilist_txt_file.close(); |
| 280 | var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&abilist_txt_file.outStream().stream); | |
| 281 | const abilist_txt = &buffered.stream; | |
| 283 | var buffered = std.io.bufferedOutStream(abilist_txt_file.outStream()); | |
| 284 | const abilist_txt = buffered.outStream(); | |
| 282 | 285 | |
| 283 | 286 | // first iterate over the abi lists |
| 284 | 287 | for (abi_lists) |*abi_list, abi_index| { |