Rust 팀이 1.99.1 패치 릴리스를 공개했습니다. x86_64 FFI의 bool 반환, 일부 대상의 wcslen 심벌 누락, macOS에서 rust-lld가 libLLVM을 찾지 못하는 회귀를 수정합니다. Rust 공식 발표
FFI는 다른 언어로 만든 코드와 연결하는 인터페이스입니다. Rust 단위 시험이 통과해도 C 등 외부 호출 경계에서 다른 문제가 나타날 수 있어요. UEFI나 교차 컴파일 대상처럼 평소 CI에서 자주 실행하지 않는 구성도 확인해야 합니다.
이 글의 목차
패치 릴리스의 회귀 수정은 무엇을 의미할까
회귀는 이전에 동작하던 코드나 빌드가 도구의 변경 뒤 의도와 다르게 동작하는 문제입니다. 패치 릴리스는 이런 결함을 바로잡을 수 있지만, 버전 번호가 작게 바뀐다고 모든 프로젝트에서 영향이 작다는 뜻은 아닙니다. 이번 수정은 언어 간 호출과 특정 대상의 링크 경로에 걸쳐 있으므로 자신이 사용하는 빌드 대상과 연결 방식으로 읽는 것이 좋습니다.
컴파일러의 영향은 소스 코드 문법에만 있지 않습니다. 최적화가 만들어 내는 함수 호출이나 링커의 라이브러리 검색 경로도 최종 실행 파일에 영향을 줍니다. 개발 장비에서 일반 대상만 빌드하면 드러나지 않는 문제가 다른 운영체제나 펌웨어 대상에서 나타날 수 있어요. 빌드 성공과 실제 호출 결과를 나눠 확인하는 이유입니다.
FFI bool 문제는 언어 경계에서 확인합니다
FFI는 Rust와 C 같은 다른 언어가 함수를 호출하도록 연결하는 경계입니다. 호출 규약은 인자와 반환값을 어느 레지스터와 형태로 주고받는지 정합니다. Rust 코드 안에서는 참·거짓 값이 정상으로 보여도 외부 호출자가 기대하는 반환 형태를 지키지 않으면 문제가 생길 수 있습니다. 그래서 양쪽 언어를 함께 사용하는 시험이 필요합니다.
해당 경계를 점검할 때는 실제 사용 중인 대상 아키텍처와 호출 규약을 유지한 작은 시험을 준비합니다. Rust 내부의 단위 시험만 반복하기보다 외부 언어에서 함수를 호출해 참과 거짓을 모두 확인합니다. 이 글은 회귀의 의미를 설명하는 것이며 모든 bool 반환 함수가 영향을 받았다는 주장은 아닙니다. 공식 수정 범위와 자신의 구성을 대조합니다.
로컬과 CI가 고른 도구 체인을 맞춥니다
프로젝트는 고정된 도구 체인 파일이나 CI 이미지로 특정 Rust 버전을 선택할 수 있습니다. 개발자가 기본 stable을 갱신해도 실제 저장소 빌드에는 고정 버전이 계속 쓰일 수 있어요. 아래 명령으로 현재 디렉터리에서 선택한 컴파일러와 도구 체인을 읽고, CI의 설정과 함께 기록합니다. 버전 확인 명령은 업데이트를 설치하지 않습니다.
그다음 UEFI나 macOS처럼 사용하는 대상의 빌드와 외부 호출 시험을 다시 실행합니다. 과거 문제를 피하기 위한 우회 설정이 있다면 새 도구 체인에서 필요한지 검토하되 검증 전에 지우지 않습니다. 최종 산출물의 서명과 배포 경로까지 확인해야 컴파일러를 올린 작업이 실제 릴리스 과정으로 연결됩니다.
rustc --version --verbose
rustup show active-toolchain
rustup으로 관리하지 않는 환경에서는 두 번째 명령이 없을 수 있습니다. 그 경우 배포판 패키지나 빌드 이미지의 도구 체인 관리 방식을 확인합니다.
패치 릴리스 적용 시험
- 프로젝트와 CI가 실제 선택한 Rust 도구 체인을 확인합니다.
- FFI 경계와 UEFI·macOS 대상 빌드를 포함해 다시 시험합니다.
- 산출물의 재현성과 서명·배포 절차를 확인합니다.
이번 릴리스는 회귀 수정이며 모든 프로젝트의 성능 향상을 약속하는 업데이트가 아닙니다. 자신에게 해당하는 수정부터 확인합니다.
발표문 기준일: 2026-10-15 · 확인일: 2026-10-24



