์ถ์๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค ์์ผ๋ ๋ง์ปค 0.9.0 โ Rust๋ก ์์ฑ๋ ์๋ก์ด ๊ณ ์ฑ๋ฅ ๋ง์ปค์ ๋๋ค. ํด๋น ๋ฆด๋ฆฌ์ค๋ GitHub์ ๊ฒ์๋์ด ์์ต๋๋ค. 23 ์ 2026 ๋ ์ด ํ๋ก์ ํธ๋ ๋ฐ๋ณต์ ์ธ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ด๋ ๋ง์ปค๋ก ๊ธฐํ๋์์ต๋๋ค. ์ ์๋ค์ ๊ถ๊ทน์ ์ผ๋ก ์ฆ๋ถ ๋งํน์ ๊ตฌํํ๊ณ ์ ํ์ง๋ง, ํ์ฌ ๋ฒ์ ์๋ ์์ง ๊ตฌํ๋์ง ์์์ต๋๋ค. ์ฝ๋๋ ์ด์ค ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์ํ์น 2.0 / MIT.
Wild 0.9์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ง์ ๊ธฐ๋ฅ์ ๋๋ค. ๋ง์ปค ํ๋ฌ๊ทธ์ธ APIGold ๋ง์ปค์์ ๋์ ๋์๊ณ GNU ld ๋ฐ Mold์์๋ ์ง์๋๋ ์ธํฐํ์ด์ค์ ๋๋ค. Wild์ ๊ฒฝ์ฐ, ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ธธ์ ์ด์ด์ค๋๋ค. ๋ง์ปค ํ๋ฌ๊ทธ์ธ LTO โ ๋ง์ปค ํ๋ฌ๊ทธ์ธ์ ํตํ ๋งํฌ ์๊ฐ ์ต์ ํ. ๊ฐ๋ฐ์๋ค์ ์ด ๊ธฐ๋ฅ์ด ์ฃผ๋ก C, C++, ๊ทธ๋ฆฌ๊ณ ํผํฉ ์ฝ๋ ํ๋ก์ ํธ์ ์ ์ฉํ๋ฉฐ, ์์ Rust ํ๋ก์ ํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ด๋ถ์ ์ผ๋ก LTO(๋งํฌ ์๊ฐ ์ต์ ํ)๋ฅผ ์ํํ๋ค๊ณ ๋ช ์์ ์ผ๋ก ๋ฐํ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์๋ ์์ง ์๋ ค์ง ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ, ํ๋ฌ๊ทธ์ธ์ ํตํ ๋งํฌ๋ ์๋๊ฐ ๋๋ฆด ์ ์์ต๋๋ค.
0.9 ๋ฒ์ ์์ ์ ์๋น ๋ถ๋ถ์ Wild๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ด์ ํ๊ธฐ ์ํ ์ค๋น์ ๊ด๋ จ์ด ์์์ต๋๋ค. Linux/ELF. ELF ๊ด๋ จ ๋ก์ง์ด ์ถ์ํ ๊ณ์ธต ๋ฐ์ผ๋ก ์ด๋๋์์ผ๋ฉฐ, ์ง์ ์์ ์ด ์์๋์์ต๋๋ค. ๋ง ํ์ค ะธ 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 ๊ทธ๋ฆฌ๊ณ ์ด๊ธฐ ์ง์ ๋กฑ์์น64 ์ Linux์ ์ ๋ฐ์ด๋๋ฆฌ, ์ ์ PIE, ๋์ ๋งํฌ ์คํ ํ์ผ ๋ฐ .so ํ์ผ์ ๋น๋ํ ์ ์์ผ๋ฉฐ, ๋๋ฒ๊ทธ ์ ๋ณด, GNU ์์ ์๋ฒ ๋ฐ ์ผ๋ถ ๋ง์ปค ์คํฌ๋ฆฝํธ์ ํจ๊ป ์๋ํฉ๋๋ค. ์ฆ๋ถ ๋งํฌ, ๋ ๋ณต์กํ ๋ง์ปค ์คํฌ๋ฆฝํธ, Mach-O ๋ฑ๋ ์ง์ํฉ๋๋ค. Windows ํ์ฌ ๋ฏธ์คํ ๋๋ ๋ฏธ์์ฑ ๊ธฐํ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
์ค์ง์ ์ผ๋ก Wild 0.9๋ ๊ธฐ์กด ๋น๋ ์ํ๊ณ์์ ํธํ์ฑ์ ํ์ฅํ๊ณ , ELF ํ์์ ๋์ด ๋ค์ํ ํ์์ ์ง์ํ๊ธฐ ์์ํ์ผ๋ฉฐ, ๋๊ท๋ชจ C/C++ ๋ฐ ํผํฉ ํ๋ก์ ํธ์์ ๋ง์ปค ์ฌ์ฉ์ ์ด๋ ค์์ ์ฃผ๋ ์๋๋ฆฌ์ค์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค. Rust ๊ฐ๋ฐ์์๊ฒ Wild๋ ํฅํ ์ฆ๋ถ ๋งํฌ์ ์ ์ฌ์ ๊ธฐ๋ฐ์ผ๋ก์ ์ฌ์ ํ ํฅ๋ฏธ๋ก์ด ๋๊ตฌ์ด๋ฉฐ, ์์คํ ๊ฐ๋ฐ์์๊ฒ๋ GNU ld, LLD, Mold์ ๊ฒฝ์ํ ์ ์๋ ๋ ๋ค๋ฅธ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค.
์ถ์ฒ : linux.org.ru
