Rust: mingw๊ฐ€ ์•„๋‹Œ โ€‹โ€‹Windows์—์„œ msvc๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2012๋…„ 02์›” 06์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-lang/rust

์šฐ๋ฆฌ๋Š” Windows์—์„œ ๋งค์šฐ ํฌ๊ท€ํ•œ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Msvc๋Š” "ํ‘œ์ค€"์ด๋ฉฐ mingw๊ฐ€ ์•„๋‹Œ โ€‹โ€‹๊ธฐ๋ณธ Windows ๋„๊ตฌ ๋ชจ์Œ์— ํŽธ์•ˆํ•œ Rustc๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

A-driver A-linkage O-windows

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” mingw๊ฐ€ "์œˆ๋„์šฐ์—์„œ ๋งค์šฐ ๋“œ๋ฌธ ๋„๊ตฌ ์ฒด์ธ"์ด๋ผ๋Š” ๋ฌด์ž‘์œ„ ๊ฐ€์ •์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค:
equation.com์€ scilab์šฉ mingw ๋„๊ตฌ ์ฒด์ธ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
mingw-w64๋Š” ์กฐ์ • ๋ฐ ๊ฐœ์„ 
Google go๋Š” mingw๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ReactOS๋Š” mingw ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜๋งŽ์€ FOSS ํ”„๋กœ์ ํŠธ๊ฐ€ mingw๋ฅผ ์ˆ˜์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์„์ด ๋ฌดํšจ์ž„์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ž‘์—…์„ ์œ„ํ•ด mingw๋Š” ์ค‘์š”ํ•˜์ง€๋งŒ ๋…น์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ mingw๋Š” ๋…น์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ–ฅํ›„ ์ œํ’ˆ์— ๋Œ€ํ•ด ๊ณ ๋ คํ•  ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Mozilla๊ฐ€ Visual Studio๋ฅผ ์ˆ˜์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด VS๊ฐ€ ๋ฐ˜๋“œ์‹œ ์œ ์ผํ•œ ์˜ต์…˜์ž„์„ ์ฆ๋ช…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ์€ ๋ฐ˜๋ก€์ž…๋‹ˆ๋‹ค. mingw์™€ VS์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋ถ€์กฑ๋„ _๊ฐœ์ธ์ ์œผ๋กœ_ ํฐ ๋ฌธ์ œ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Mingw๋Š” ๋งŽ์€ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด, FreePascal/Mono/D ๋ฐ Go์™€ ๊ฐ™์€ ๋งŽ์€ ์™„์ „ํ•œ ์–ธ์–ด์™€ ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•˜์—ฌ VS์™€ ํ•จ๊ป˜ mingw๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ mingw๋ฅผ ์œ ์ง€ํ•˜๊ณ  clang+mingw ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  10 ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋Š” Rust๊ฐ€ ๊ฒฐ๊ตญ C ์ฝ”๋“œ์™€์˜ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ(์ฆ‰, ๋ฌธ์ œ #1850) ๋งค์šฐ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ MinGW C ๋„๊ตฌ ์ฒด์ธ์€ MSVC์™€ ABI ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉฐ ํŠนํžˆ ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋ฏธ๋ฌ˜ํ•˜๊ณ  ์‹ ๋น„ํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ์˜ˆ์ œ์˜ ๊ธด ๋ชฉ๋ก์— ๋Œ€ํ•ด ์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•˜์ง€๋งŒ MinGW/MSVC interop์—์„œ ๊ฒช์—ˆ๋˜ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

  • MinGW์™€ MSVC๋Š” ์‹ค์ œ๋กœ stdcall/dllimport์˜ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐํ˜ธ ์žฅ์‹์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋งํฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ํ—ค๋” ์ˆ˜์ •(๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ ์ „๋‹ฌ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • MSVC๋กœ ๋นŒ๋“œ๋œ ์ •์  .lib๋ฅผ ld.exe๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MinGW์—์„œ ์ƒ์„ฑ๋œ ๊ฐœ์ฒด ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์ž์ฒด ์„ค๋ช…์„œ์— ๋”ฐ๋ฅด๋ฉด ๊ฑฐ์˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ld.exe๊ฐ€ ์‚ฌ์†Œํ•œ ์˜ˆ์ œ ์ด์ƒ์„ ์‹œ๋„ํ•  ๋•Œ segfault๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Rustc๊ฐ€ Windows์—์„œ link.exe(MSVC)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ์กด VC++ ์ฝ”๋“œ์™€์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ํ–ฅํ•œ ํฐ ๋‹จ๊ณ„๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • DLL์˜ ์ƒํ™ฉ์€ ๋” ๋‚˜์•„์กŒ์ง€๋งŒ ์—ฌ์ „ํžˆ ์—‰๋ง์ž…๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜ค๊ธฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” "๊ทธ๋ƒฅ ์ž‘๋™"ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†์œผ๋ฉฐ ๊ฒฐ๊ตญ .def ํŒŒ์ผ์„ ์ถ”์ถœ/์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ .dll์— ์ง์ ‘ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. reimp.exe ๋ฐ --out-implib ํ”Œ๋ž˜๊ทธ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์–ด์ง€๋Ÿฝํžˆ๋Š” ๋ฐ ํ•œ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ ํ›„์—๋Š” ์ฒ˜์Œ์— MinGW๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์™€ ์–ด๋–ป๊ฒŒ๋“  ํ”ผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ดํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • DLL์„ ๋งํฌํ•˜๋„๋ก ๊ด€๋ฆฌํ•˜๋”๋ผ๋„ MinGW dll์€ msvcrt.dll์— ๋Œ€ํ•ด ๋งํฌํ•˜๊ณ  VC++10์€ msvcr100.dll์— ๋Œ€ํ•ด ๋งํฌํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ DLL ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ์ „๋‹ฌ๋˜๊ณ  ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ๋•Œ ๋ฏธ๋ฌ˜ํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œํ•œ์€ MinGW๋ฅผ ํ†ตํ•ด Windows์—์„œ ์ปดํŒŒ์ผ๋œ ๋งŽ์€ Linux ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ดด๋กญํž™๋‹ˆ๋‹ค. ์˜ˆ์—๋Š” ๊ตฌ์‹ VC++6 ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” MinGW๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋Š” GTK+๊ฐ€ ํฌํ•จ๋˜๋ฉฐ Qt์—๋Š” MinGW ๋ฐ ๋‹ค์–‘ํ•œ MSVC ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ๋ฐฐํฌํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ์ด ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๋Š” ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „(์˜ˆ: VS2005/VS2010)์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋ชจ๋“  ์ฝ”๋“œ์— ์ ์šฉ๋˜์ง€๋งŒ ๋ฌธ์ œ๋Š” mingw๊ฐ€ MSVC์˜ ์˜ค๋ž˜๋œ ๋ฒ„์ „๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์˜ค๋Š˜๋‚  ์ปดํŒŒ์ผ๋˜๋Š” ์ƒˆ ์ฝ”๋“œ์—๋Š” ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. MinGW ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์—์„œ msvcr100.dll ์ž‘์—…์— ๋Œ€ํ•œ ํ™œ๋™์„ ๋ณด์•˜์œผ๋ฏ€๋กœ ๊ณง ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ MinGWs ๋„๊ตฌ ์ฒด์ธ๊ณผ ํ•จ๊ป˜ MS ๋„๊ตฌ ์ฒด์ธ์œผ๋กœ ๊ตฌ์ถ•๋œ ์ •์ /๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ๋ฒˆ๊ฑฐ๋กœ์›€๊ณผ ๋ถˆ๊ฐ€๋Šฅ ์‚ฌ์ด์˜ ์–ด๋”˜๊ฐ€์— ์žˆ์Šต๋‹ˆ๋‹ค. .c ์ฝ”๋“œ(์˜ˆ: #1850)๋ฅผ MSVC๋กœ ์ปดํŒŒ์ผํ•œ ๋‹ค์Œ llvm์— ์˜ํ•ด ์ƒ์„ฑ๋œ rustc ๊ฐœ์ฒด์™€ ์—ฐ๊ฒฐํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ค„์–ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

llvm์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๊ฑฐ์˜ ์—†์œผ๋ฏ€๋กœ LLVM์˜ ABI(๋…น ๊ฐœ์ฒด์— ์‚ฌ์šฉ๋จ)๊ฐ€ MSVC์™€ ์–ผ๋งˆ๋‚˜ ํ˜ธํ™˜๋˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Intel์˜ ์ปดํŒŒ์ผ๋Ÿฌ(icc)๊ฐ€ MSVC๋กœ ๋นŒ๋“œ๋œ .lib/.def/.dll์„ ์ž˜ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. llvm์ด cl.exe/link.exe์™€ ํ•จ๊ป˜ icc๋งŒํผ ํ˜ธํ™˜๋˜๋Š” ๊ฒฝ์šฐ Rustc๋Š” ์ด๋Ÿฌํ•œ ์ด์ ์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” mingw๊ฐ€ "์œˆ๋„์šฐ์—์„œ ๋งค์šฐ ๋“œ๋ฌธ ๋„๊ตฌ ์ฒด์ธ"์ด๋ผ๋Š” ๋ฌด์ž‘์œ„ ๊ฐ€์ •์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค:
equation.com์€ scilab์šฉ mingw ๋„๊ตฌ ์ฒด์ธ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
mingw-w64๋Š” ์กฐ์ • ๋ฐ ๊ฐœ์„ 
Google go๋Š” mingw๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ReactOS๋Š” mingw ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜๋งŽ์€ FOSS ํ”„๋กœ์ ํŠธ๊ฐ€ mingw๋ฅผ ์ˆ˜์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์„์ด ๋ฌดํšจ์ž„์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ž‘์—…์„ ์œ„ํ•ด mingw๋Š” ์ค‘์š”ํ•˜์ง€๋งŒ ๋…น์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ mingw๋Š” ๋…น์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ–ฅํ›„ ์ œํ’ˆ์— ๋Œ€ํ•ด ๊ณ ๋ คํ•  ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Mozilla๊ฐ€ Visual Studio๋ฅผ ์ˆ˜์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด VS๊ฐ€ ๋ฐ˜๋“œ์‹œ ์œ ์ผํ•œ ์˜ต์…˜์ž„์„ ์ฆ๋ช…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ์€ ๋ฐ˜๋ก€์ž…๋‹ˆ๋‹ค. mingw์™€ VS์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋ถ€์กฑ๋„ _๊ฐœ์ธ์ ์œผ๋กœ_ ํฐ ๋ฌธ์ œ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Mingw๋Š” ๋งŽ์€ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด, FreePascal/Mono/D ๋ฐ Go์™€ ๊ฐ™์€ ๋งŽ์€ ์™„์ „ํ•œ ์–ธ์–ด์™€ ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•˜์—ฌ VS์™€ ํ•จ๊ป˜ mingw๋ฅผ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ mingw๋ฅผ ์œ ์ง€ํ•˜๊ณ  clang+mingw ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ: jemalloc์—๋Š” mingw๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Firefox๋Š” MSVC๊ฐ€ ์žˆ๋Š” Windows์—์„œ jemalloc์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. http://glandium.org/blog/?p=2581

jemalloc์€ ํ™•์‹คํžˆ MSVC๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ ์ „์ฒด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ drop-in malloc/free ๊ต์ฒด ์—ญํ• ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. je_ ์ ‘๋‘์‚ฌ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ํ˜ธ์ถœ์„ ์ „ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด malloc/free์— ๋Œ€ํ•œ LLVM์˜ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ตœ์ ํ™”๊ฐ€ ์†์‹ค๋˜์ง€๋งŒ ๊ทธ ์™ธ์—๋Š” ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@thestinger ์‹ค์ œ๋กœ ๋ณด์ด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•˜๋“œ ์ฝ”๋”ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ ๋ชฉ๋ก๊ณผ ํ•จ์ˆ˜ ์ „๋‹ฌ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. LLVM์ด ์ผ๋ฐ˜ ํ˜ธ์ถœ๊ณผ ๋™์ผํ•œ je_ ์ ‘๋‘์‚ฌ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@Aatch : ๊ทธ ์ด์ƒ์ž…๋‹ˆ๋‹ค - free ๋ฐ malloc ์™€ ๊ด€๋ จ๋œ ํŠน์ • ์ตœ์ ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

http://llvm.org/docs/doxygen/html/InstructionCombining_8cpp_source.html#l01378
http://llvm.org/docs/doxygen/html/Local_8cpp_source.html#l00269

๋ฒ„๊ทธ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•ด ๋ฐฉ๋ฌธ, 2013-08-05์˜ ์ด๋ฉ”์ผ

fdim ์™€ ๊ฐ™์€ ์ผ๋ถ€ c99 ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ msvcrt ๋Ÿฐํƒ€์ž„์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. #8663์€ mingw/mingw-w64๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๊ตฌํ˜„ํ•จ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ msvc์˜ ๊ฒฝ์šฐ ์ผ๋ถ€๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

9367์€ LLVM์— ๊ฐ•๋ ฅํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์Šค๋ƒ…์ƒท + ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋„๊ตฌ ์ฒด์ธ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ธฐ์กด MSVC++ ๋„๊ตฌ ์ฒด์ธ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰