This repository was archived by the owner on May 28, 2025. It is now read-only.
Commit 46536f1
committed
Auto merge of rust-lang#137426 - DianQK:link-used, r=<try>
Link object files that use `#[used]`
By directly linking the object files that use `#[used]`, we ensure the linker can see them.
This approach allows `#[used]` to avoid modifying symbol visibility, preserving local symbols. A similar example in C would be:
```c
// foo.c
__attribute__((constructor)) static void foo() {}
// main.c
void main(void) {}
```
If `foo.c` is placed in a static library, it will never be loaded unless the entire static library is fully loaded by `--whole-archive`.
This pull request removes some of the symbols in `symbols.o`. We can remove more symbols in a follow-up PR.File tree
15 files changed
+282
-49
lines changed- compiler
- rustc_codegen_ssa/src
- back
- rustc_metadata/src/rmeta/decoder
- rustc_middle/src/middle
- src/tools/miri/src
- bin
- tests
- run-make
- include-all-symbols-linking
- linker-warning
- ui/attributes
- auxiliary
15 files changed
+282
-49
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
78 | 79 | | |
79 | 80 | | |
80 | 81 | | |
| 82 | + | |
81 | 83 | | |
82 | 84 | | |
83 | 85 | | |
| |||
142 | 144 | | |
143 | 145 | | |
144 | 146 | | |
| 147 | + | |
| 148 | + | |
145 | 149 | | |
146 | 150 | | |
147 | 151 | | |
| |||
214 | 218 | | |
215 | 219 | | |
216 | 220 | | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
217 | 225 | | |
218 | 226 | | |
219 | 227 | | |
| |||
765 | 773 | | |
766 | 774 | | |
767 | 775 | | |
| 776 | + | |
| 777 | + | |
768 | 778 | | |
769 | 779 | | |
770 | 780 | | |
| |||
789 | 799 | | |
790 | 800 | | |
791 | 801 | | |
| 802 | + | |
| 803 | + | |
792 | 804 | | |
793 | 805 | | |
794 | 806 | | |
| |||
2248 | 2260 | | |
2249 | 2261 | | |
2250 | 2262 | | |
| 2263 | + | |
| 2264 | + | |
2251 | 2265 | | |
2252 | 2266 | | |
2253 | 2267 | | |
| |||
2323 | 2337 | | |
2324 | 2338 | | |
2325 | 2339 | | |
| 2340 | + | |
| 2341 | + | |
| 2342 | + | |
| 2343 | + | |
| 2344 | + | |
| 2345 | + | |
| 2346 | + | |
2326 | 2347 | | |
2327 | 2348 | | |
2328 | 2349 | | |
| |||
2919 | 2940 | | |
2920 | 2941 | | |
2921 | 2942 | | |
| 2943 | + | |
| 2944 | + | |
| 2945 | + | |
| 2946 | + | |
| 2947 | + | |
| 2948 | + | |
| 2949 | + | |
| 2950 | + | |
| 2951 | + | |
| 2952 | + | |
| 2953 | + | |
| 2954 | + | |
| 2955 | + | |
| 2956 | + | |
| 2957 | + | |
| 2958 | + | |
| 2959 | + | |
| 2960 | + | |
| 2961 | + | |
| 2962 | + | |
| 2963 | + | |
| 2964 | + | |
| 2965 | + | |
| 2966 | + | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
| 2970 | + | |
| 2971 | + | |
2922 | 2972 | | |
2923 | 2973 | | |
2924 | 2974 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | | - | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
21 | 23 | | |
22 | 24 | | |
23 | 25 | | |
| 26 | + | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
| |||
1753 | 1756 | | |
1754 | 1757 | | |
1755 | 1758 | | |
1756 | | - | |
| 1759 | + | |
1757 | 1760 | | |
1758 | 1761 | | |
1759 | 1762 | | |
1760 | 1763 | | |
1761 | 1764 | | |
1762 | 1765 | | |
1763 | 1766 | | |
1764 | | - | |
1765 | | - | |
1766 | | - | |
| 1767 | + | |
1767 | 1768 | | |
1768 | 1769 | | |
1769 | 1770 | | |
| |||
1783 | 1784 | | |
1784 | 1785 | | |
1785 | 1786 | | |
1786 | | - | |
1787 | | - | |
1788 | | - | |
1789 | | - | |
1790 | | - | |
1791 | | - | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
1792 | 1795 | | |
1793 | 1796 | | |
1794 | 1797 | | |
| |||
1808 | 1811 | | |
1809 | 1812 | | |
1810 | 1813 | | |
1811 | | - | |
| 1814 | + | |
1812 | 1815 | | |
1813 | 1816 | | |
1814 | | - | |
| 1817 | + | |
| 1818 | + | |
1815 | 1819 | | |
1816 | 1820 | | |
1817 | 1821 | | |
1818 | | - | |
| 1822 | + | |
1819 | 1823 | | |
1820 | 1824 | | |
1821 | 1825 | | |
1822 | | - | |
1823 | | - | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
1824 | 1829 | | |
1825 | | - | |
1826 | | - | |
1827 | | - | |
1828 | | - | |
1829 | | - | |
1830 | | - | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
1831 | 1862 | | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
1832 | 1889 | | |
1833 | 1890 | | |
1834 | | - | |
| 1891 | + | |
1835 | 1892 | | |
1836 | 1893 | | |
1837 | 1894 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | | - | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
168 | 170 | | |
169 | 171 | | |
170 | 172 | | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
171 | 203 | | |
172 | 204 | | |
173 | 205 | | |
| |||
182 | 214 | | |
183 | 215 | | |
184 | 216 | | |
185 | | - | |
186 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
187 | 231 | | |
188 | 232 | | |
189 | 233 | | |
| |||
433 | 477 | | |
434 | 478 | | |
435 | 479 | | |
436 | | - | |
| 480 | + | |
437 | 481 | | |
438 | 482 | | |
439 | 483 | | |
| |||
545 | 589 | | |
546 | 590 | | |
547 | 591 | | |
548 | | - | |
| 592 | + | |
549 | 593 | | |
550 | 594 | | |
551 | 595 | | |
| |||
590 | 634 | | |
591 | 635 | | |
592 | 636 | | |
593 | | - | |
| 637 | + | |
594 | 638 | | |
595 | 639 | | |
596 | 640 | | |
597 | 641 | | |
598 | | - | |
| 642 | + | |
599 | 643 | | |
600 | 644 | | |
601 | 645 | | |
| |||
711 | 755 | | |
712 | 756 | | |
713 | 757 | | |
714 | | - | |
| 758 | + | |
715 | 759 | | |
716 | 760 | | |
717 | 761 | | |
| |||
0 commit comments