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