āĻŽā§āĻ˛ā§āĻĄ āĻ˛āĻŋāĻā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ°āĻŋāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ 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