ãªãªãŒã¹ãããŸãã ã¯ã€ã«ããªã³ã«ãŒ 0.9.0 â Rustã§æžãããæ°ãã髿§èœãªã³ã«ãŒããªãªãŒã¹æ å ±ã¯GitHubã«æ²èŒãããŠããŸãã 23æ2026幎ãã®ãããžã§ã¯ãã¯ãå埩éçºãå éããããã®ãªã³ã«ãŒãšããŠäœçœ®ã¥ããããŠããŸããéçºè ãã¡ã¯æçµçã«ã€ã³ã¯ãªã¡ã³ã¿ã«ãªã³ã¯ãå®çŸããããšèããŠããŸãããçŸåšã®ããŒãžã§ã³ã§ã¯ãŸã å®è£ ãããŠããŸãããã³ãŒãã¯ãã¥ã¢ã«ã©ã€ã»ã³ã¹ã§é åžãããŠããŸãã Apache 2.0 / MIT.
Wild 0.9ã®äž»ãªå€æŽç¹ã¯ãµããŒãã§ã ãªã³ã«ãŒãã©ã°ã€ã³APIGoldãªã³ã«ãŒã§å°å ¥ãããGNU ldãšMoldã§ããµããŒããããŠããã€ã³ã¿ãŒãã§ãŒã¹ãWildã«ãšã£ãŠããã㯠ãªã³ã«ãŒãã©ã°ã€ã³LTO ãªã³ã«ãŒãã©ã°ã€ã³ã«ãããªã³ã¯ææé©åãéçºè ã«ãããšãããã¯äž»ã«CãC++ãããã³æ··åã³ãŒããããžã§ã¯ãã«æå¹ã§ãããçŽç²ãªRustãããžã§ã¯ãã§ã¯éåžžãå éšçã«LTOãå®è¡ããããšã®ããšã§ãããã®æ©èœã®ãµããŒãã«ã¯ãŸã æ¢ç¥ã®åé¡ãããããã©ã°ã€ã³ãä»ãããªã³ã¯ã¯é ããªãå ŽåããããŸãã
0.9ã®äœæ¥ã®å€§éšåã¯ãWildã®ç§»è»¢æºåã«é¢é£ããŠããã Linux/ELFãELFåºæã®ããžãã¯ã¯æœè±¡åã®å€ã«ç§»åããããµããŒãäœæ¥ãéå§ãããŸããã ãããO О WebAssemblyãããã®æ©èœã¯ãŸã å®ç𿮵éã«ã¯è³ã£ãŠããŸããããæåã®èŠçŽ ã¯æ¢ã«ç»å ŽããŠããŸããMach-Oæ§æè§£æãã»ã¯ã·ã§ã³ããã³ã»ã°ã¡ã³ãåŠçãã·ã³ãã«ããŒãã«ãã³ãŒã眲åããã¡ãããã€ããªããããŠwasmã»ã¯ã·ã§ã³ãã·ã³ãã«ãåé 眮ã®åæãµããŒããªã©ã§ãã
Wild Linker 0.9ã®äž»ãªå€æŽç¹ïŒ
ãªã³ã«ãŒãã©ã°ã€ã³ã®ãµããŒãã ãªã³ã«ãŒãã©ã°ã€ã³APIã®ãµããŒãã远å ããŸãããããã¯ããªã³ã«ãŒãã©ã°ã€ã³LTOã«å¿ èŠãªæ©èœã§ãããäžéšã®GCC/GNU ld/Moldãã«ãã¹ã¯ãªãããšã®äºææ§ã確ä¿ããŠããŸãããŸãããã©ã°ã€ã³ã³ãŒã«ããã¯ã«é¢é£ããããã€ãã®åé¡ïŒã¢ãŒã«ã€ãå šäœãThinLTOããªãŒãã³ãã¡ã€ã«å¶éãLTOäžã®ãããã³ãŒãåé€ãªã©ïŒãä¿®æ£ããŸããã
ãªã³ã«ãŒã¹ã¯ãªããã®ãµããŒããå€§å¹ ã«æ¡åŒµããŸããã PROVIDEããã³PROVIDE_HIDDENãã£ã¬ã¯ãã£ããASSERTã®è§£æãšå®è¡ãæ°å€ãªãã©ã«ã«ãããMEMORYãORIGINãLENGTHãLOADADDRãALIGNOFãSEGMENT_STARTãKããã³Mãµãã£ãã¯ã¹ã®ãµããŒããè«çæŒç®åããããæŒç®åãåé æŒç®åãããã³å ¥åãã¡ã€ã«åã«ãããããã³ã°ãå®è£ ãããŠããŸããããã«ãããWildã¯ã·ã¹ãã ãœãããŠã§ã¢ãäœã¬ãã«ãããžã§ã¯ãã§ããèŠãããè€éãªãªã³ã¯ã¹ã¯ãªãããšã®äºææ§ãåäžããŸãã
RISC-VãAArch64ãx86-64ãLoongArch64åãã®æ¹åã RISC-V åŒã³åºãã®ç·©åãHI20 ã®ç·©åãR_RISCV_ALIGNãç«¶åãã ISA æ¡åŒµã®ãã§ãã¯ã远å ã® AArch64 åé 眮ãAArch64 ã®ç¯å²æ¡åŒµãµã³ã¯ãç·©åã䌎ã倿°ã® x86-64 åé 眮ã®åŠçãããã³ LoongArch64 ã®ç¯å²ãšã¢ã©ã€ã¡ã³ãã®æç¢ºåã远å ããŸããã
æ°ããäºææ§ãªãã·ã§ã³ã --dependency-fileã--auxiliaryã--exclude-libsã--enable-new-dtagsã--disable-new-dtagsã--traceã--nmagicã--compress-debug-sectionsã--pack-dynamic-relocs=relrã--use-android-relr-tagsãããã³ã¹ããŒã¹ãªãã®åœ¢åŒ -o/path ã®ãµããŒãã远å ããŸããã
鿢ããç¶æ ã§ç§»åããç©äœãçæããã éçåé 眮å¯èœãã¡ã€ã«ïŒåŸç¶ã®ãªã³ã¯åŠçã«åå ã§ããäžéãªããžã§ã¯ããã¡ã€ã«ïŒã®äœæããµããŒãããŸããã
ãé«éããªãªãŒã¹ã«éç¹ã眮ããã«ããã©ãŒãã³ã¹ãåäžãããã èè ãã¯ãããŒãžã§ã³0.9ã§ã¯ããã©ãŒãã³ã¹ã®å€§å¹ ãªåäžã¯ãªãã£ããã®ã®ãäœäžããªãã£ãããšãæèšããŠãããããŒã«ã«æé©åã«ã¯ãããŒãžã§ã³ã¹ã¯ãªããã«ãããéã°ããŒãã«ãããã£ãŒã®é«éãã¹ãã¢ãããã¯æäœæ°ã®åæžãç·©åã¹ãã£ã³äžã®ã»ã¯ã·ã§ã³ããã³ã·ã³ãã«ã¢ãã¬ã¹ã®äžŠåèšç®ãããã³æ¢ã«è§£æ±ºæžã¿ã®ã»ã¯ã·ã§ã³ã®ååŠçã®åæžãå«ãŸããã
倿°ã®äºææ§ã«é¢ããä¿®æ£ã åŒ±ãæªå®çŸ©ã·ã³ãã«ã.ctors/.dtorsãRELROãããŒãžã§ã³ã¹ã¯ãªãããSFrameãIFUNCã--version/-vãæªå®çŸ©ã·ã³ãã«ãšã©ãŒãèŠåããããã°åé 眮ã.eh_frameãSHT_SYMTAB_SHNDXãåçãªããžã§ã¯ãã®éçãªã³ã¯ãããã³ãªã³ã«ãŒã¹ã¯ãªããã䜿çšãã倿°ã®ã·ããªãªã®åŠçãä¿®æ£ããŸããã
ææžäœæãšãããžã§ã¯ã管çã è¡åèŠç¯ãLLM䜿çšããªã·ãŒãã¬ããã³ã¹ææžããªã³ã«ãŒã¹ã¯ãªããã®ãµããŒããããªãã¯ã¹ãGCC 16.1ã§-fuse-ld=wildã䜿çšããããã®æé ãããã³Brewã«ããã€ã³ã¹ããŒã«æ¹æ³ã远å ãããŸããããŸãããªããžããªã¯wild-linkerãšããå¥ã®GitHubçµç¹ã«ç§»è¡ãããŸããã
çŸæç¹ã§ã¯ã ã¯ã€ã«ã å ¬åŒã«ã¯äž»ã« Linux ããã³ELFããããžã§ã¯ãã®READMEã«ã¯ãµããŒããèšèŒãããŠããŸã x86-64, ARM64, RISC-V riscv64gc åæãµããŒã LoongArch64 Ма Linux; éçãã€ããªãéç PIEãåçã«ãªã³ã¯ãããå®è¡å¯èœãã¡ã€ã«ãããã³ .so ãã¡ã€ã«ãæ§ç¯ã§ãããããã°æ å ±ãGNU jobserverãããã³äžéšã®ãªã³ã«ãŒ ã¹ã¯ãªãããšé£æºããŸããã€ã³ã¯ãªã¡ã³ã¿ã« ãªã³ã¯ãããè€éãªãªã³ã«ãŒ ã¹ã¯ãªãããMach-Oãããã³ Windows ãããã¯çŸåšãæªå®çŸãŸãã¯æªå®äºã®æ©äŒãšããŠåé¡ãããŠããŸãã
å®åé¢ã§ã¯ãWild 0.9ã¯æ¢åã®ãã«ããšã³ã·ã¹ãã ãšã®äºææ§ãæ¡åŒµããELFãè¶ ããæ¡åŒµãéå§ããå€§èŠæš¡ãªC/C++ãããžã§ã¯ããæ··åãããžã§ã¯ãã§ãªã³ã«ãŒã®äœ¿çšãå°é£ã«ãªãã·ããªãªã®ãµããŒãã远å ããŸãããRustéçºè ã«ãšã£ãŠãWildã¯å°æ¥ã®ã€ã³ã¯ãªã¡ã³ã¿ã«ãªã³ã¯ã®æœåšçãªåºç€ãšããŠããŸãã·ã¹ãã éçºè ã«ãšã£ãŠãGNU ldãLLDãMoldã«å¯Ÿæããé«éãªããŒã«ãšããŠãäŸç¶ãšããŠé åçãªååšã§ãã
åºæïŒ linux.org.ru
