āĻŽā§‹āĻ˛ā§āĻĄ 1.1 āĻ˛āĻŋāĻ‚āĻ•āĻžāĻ°ā§‡āĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ, LLVM lld āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ

āĻŽā§‹āĻ˛ā§āĻĄ āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ GNU āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻā§āĻ°ā§āĻ¤, āĻ¸ā§āĻŦāĻšā§āĻ› āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻāĻ˛āĻāĻ˛āĻ­āĻŋāĻāĻŽ āĻāĻ˛āĻāĻ˛āĻĄāĻŋ āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°ā§‡āĻ° āĻ˛ā§‡āĻ–āĻ• āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ Mold-āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻŽā§‚āĻ˛ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻšāĻ˛ āĻŦāĻ¸ā§āĻ¤ā§ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻžāĻ° āĻ–ā§āĻŦ āĻ‰āĻšā§āĻš āĻ—āĻ¤āĻŋ, GNU āĻ—ā§‹āĻ˛ā§āĻĄ āĻāĻŦāĻ‚ LLVM lld āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻĨā§‡āĻ•ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ (āĻŽā§‹āĻ˛ā§āĻĄā§‡ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻž āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° cp āĻ‡āĻ‰āĻŸāĻŋāĻ˛āĻŋāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ…āĻ°ā§āĻ§ā§‡āĻ• āĻĻā§āĻ°ā§āĻ¤ āĻ—āĻ¤āĻŋāĻ¤ā§‡ āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ)āĨ¤ āĻ•ā§‹āĻĄāĻŸāĻŋ C++ (C++20) āĻ āĻ˛ā§‡āĻ–āĻž āĻāĻŦāĻ‚ AGPLv3 āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻļā§āĻŦā§‡:

  • āĻ˛āĻŋāĻ™ā§āĻ•āĻŋāĻ‚ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (LTO, āĻ˛āĻŋāĻ™ā§āĻ• āĻŸāĻžāĻ‡āĻŽ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨)āĨ¤ āĻāĻ˛āĻŸāĻŋāĻ“ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻšāĻ¯āĻŧ, āĻ¯āĻ–āĻ¨ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻŽā§‹āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ˛āĻŋāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻļāĻ°ā§āĻ¤āĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻ—ā§‡, āĻ¯āĻ–āĻ¨ GCC āĻŦāĻž LLVM āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧā§‡āĻŸ āĻ•ā§‹āĻĄ (IR) āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤, āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ ld.bfd āĻŦāĻž ld.lld āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻ˛āĻž āĻšāĻ¤, āĻāĻ–āĻ¨ āĻŽā§‹āĻ˛ā§āĻĄ āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ IR āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ Linker āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ GNU ld āĻāĻŦāĻ‚ GNU-āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§‹āĻ¨āĻžāĻ° āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°āĨ¤ āĻ¯āĻ–āĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ LTO āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˛āĻŋāĻ™ā§āĻ•āĻžāĻ°āĻĻā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻ° āĻšāĻ¯āĻŧ āĻ•āĻžāĻ°āĻŖ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ•ā§‹āĻĄ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
  • āĻšā§‹āĻ¸ā§āĻŸ āĻāĻŦāĻ‚ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ RISC-V (RV64) āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻĒā§‹āĻ¸ā§āĻŸ-āĻ˛āĻŋāĻ™ā§āĻ•āĻŋāĻ‚ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻ¨āĻĒā§āĻŸ āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻŦāĻŋāĻ­āĻžāĻ—ā§‡āĻ° āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻ¤ā§‡ "--emit-relocs" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻ…ā§āĻ¯āĻžāĻĄā§āĻ°ā§‡āĻ¸ āĻ¸ā§āĻĒā§‡āĻ¸ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ āĻŋāĻ• āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻŦāĻŋāĻ­āĻžāĻ—āĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§āĻ°āĻŽ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ "--suffle-sections" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • āĻ‡āĻ¨āĻĒā§āĻŸ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ CSV āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻ¤āĻĨā§āĻ¯ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ "--āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ-āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž" āĻāĻŦāĻ‚ "--āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ-āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž=āĻĒā§‚āĻ°ā§āĻŖ" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻ¸ā§āĻ¤ā§ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ˛āĻŋāĻ™ā§āĻ• āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ•āĻžāĻ°āĻŖ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻĨāĻŦāĻž āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŽāĻŋāĻ¨āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻžāĻœ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻŦāĻšāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ.
  • "--warn-one" āĻāĻŦāĻ‚ "--warn-textrel" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
  • libxxhash-āĻāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨