LLVM lld ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮೋಲ್ಡ್ 1.1 ಲಿಂಕರ್‌ನ ಬಿಡುಗಡೆ

ಮೋಲ್ಡ್ ಲಿಂಕರ್‌ನ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, ಇದನ್ನು ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಗ್ನೂ ಲಿಂಕರ್‌ಗೆ ವೇಗವಾದ, ಪಾರದರ್ಶಕ ಬದಲಿಯಾಗಿ ಬಳಸಬಹುದು. ಯೋಜನೆಯನ್ನು LLVM lld ಲಿಂಕರ್‌ನ ಲೇಖಕರು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದಾರೆ. ಮೋಲ್ಡ್‌ನ ಪ್ರಮುಖ ಲಕ್ಷಣವೆಂದರೆ ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡುವ ಹೆಚ್ಚಿನ ವೇಗ, ಗಮನಾರ್ಹವಾಗಿ GNU ಗೋಲ್ಡ್ ಮತ್ತು LLVM lld ಲಿಂಕರ್‌ಗಳಿಗಿಂತ ಮುಂದಿದೆ (Cp ಯುಟಿಲಿಟಿಯೊಂದಿಗೆ ಫೈಲ್‌ಗಳನ್ನು ಸರಳವಾಗಿ ನಕಲಿಸುವ ಅರ್ಧದಷ್ಟು ವೇಗದಲ್ಲಿ ಮೋಲ್ಡ್‌ನಲ್ಲಿ ಲಿಂಕ್ ಅನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ). ಕೋಡ್ ಅನ್ನು C++ (C++20) ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು AGPLv3 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.

ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ:

  • ಲಿಂಕ್ ಮಾಡುವ ಹಂತದಲ್ಲಿ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (LTO, ಲಿಂಕ್ ಟೈಮ್ ಆಪ್ಟಿಮೈಸೇಶನ್). ಬಿಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳ ಸ್ಥಿತಿಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವ ಮೂಲಕ LTO ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ಭಿನ್ನವಾಗಿರುತ್ತವೆ, ಆದರೆ ಸಾಂಪ್ರದಾಯಿಕ ಆಪ್ಟಿಮೈಸೇಶನ್ ಮೋಡ್‌ಗಳು ಪ್ರತಿ ಫೈಲ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಆಪ್ಟಿಮೈಜ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಇತರ ಫೈಲ್‌ಗಳಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಕರೆ ಕಾರ್ಯಗಳ ಷರತ್ತುಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ. ಈ ಹಿಂದೆ, GCC ಅಥವಾ LLVM ಮಧ್ಯಂತರ ಕೋಡ್ (IR) ಫೈಲ್‌ಗಳು ಕಂಡುಬಂದಾಗ, ಅನುಗುಣವಾದ ld.bfd ಅಥವಾ ld.lld ಲಿಂಕರ್‌ಗಳನ್ನು ಕರೆಯಲಾಗುತ್ತಿತ್ತು, ಈಗ Mold IR ಫೈಲ್‌ಗಳನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಲಿಂಕರ್ ಪ್ಲಗಿನ್ API ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದನ್ನು GNU ld ಮತ್ತು GNU ನಲ್ಲಿಯೂ ಬಳಸಲಾಗುತ್ತದೆ. ಚಿನ್ನದ ಲಿಂಕ್ ಮಾಡುವವರು. ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, LTO ಇತರ ಲಿಂಕರ್‌ಗಳಿಗಿಂತ ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ವೇಗವಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಲಿಂಕ್ ಮಾಡುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಕೋಡ್ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ವ್ಯಯಿಸಲಾಗುತ್ತದೆ.
  • ಹೋಸ್ಟ್ ಮತ್ತು ಟಾರ್ಗೆಟ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ RISC-V (RV64) ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಪೋಸ್ಟ್-ಲಿಂಕಿಂಗ್ ಹಂತದಲ್ಲಿ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳ ನಂತರದ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ ಇನ್‌ಪುಟ್ ಫೈಲ್‌ಗಳಿಂದ ಔಟ್‌ಪುಟ್ ಫೈಲ್‌ಗಳಿಗೆ ಸ್ಥಳಾಂತರ ವಿಭಾಗಗಳನ್ನು ನಕಲಿಸುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು “--ಎಮಿಟ್-ರಿಲೋಕ್ಸ್” ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ವರ್ಚುವಲ್ ವಿಳಾಸ ಜಾಗದಲ್ಲಿ ತಮ್ಮ ವಿಳಾಸಗಳನ್ನು ಸರಿಪಡಿಸುವ ಮೊದಲು ವಿಭಾಗಗಳ ಕ್ರಮವನ್ನು ಯಾದೃಚ್ಛಿಕಗೊಳಿಸಲು "--ಷಫಲ್-ವಿಭಾಗಗಳು" ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಇನ್‌ಪುಟ್ ಫೈಲ್‌ಗಳ ನಡುವಿನ ಅವಲಂಬನೆಗಳ ಬಗ್ಗೆ CSV ಫಾರ್ಮ್ಯಾಟ್ ಮಾಹಿತಿಯನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಲು “--print-dependencies” ಮತ್ತು “--print-dependencies=full” ಆಯ್ಕೆಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ಕೆಲವು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳನ್ನು ಲಿಂಕ್ ಮಾಡುವಾಗ ಸಂಪರ್ಕದ ಕಾರಣಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು. ಅಥವಾ ಫೈಲ್‌ಗಳ ನಡುವೆ ಮಿನಿಫಿಕೇಶನ್ ಕೆಲಸದ ಅವಲಂಬನೆಗಳನ್ನು ನಡೆಸುವಾಗ.
  • "--ಎಚ್ಚರಿಕೆ-ಒಮ್ಮೆ" ಮತ್ತು "--ವಾರ್ನ್-ಟೆಕ್ಸ್ಟ್ರೆಲ್" ಆಯ್ಕೆಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • libxxhash ಮೇಲಿನ ಅವಲಂಬನೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ