피드로 돌아가기
Node.js 9.10.1 (Current)
Node.js BlogNode.js Blog
Backend

Node.js 팀이 GCC 컴파일러 버전 불일치로 인한 PPC 아키텍처 ABI 호환성 문제를 빌드 인프라 수정으로 해결

Node.js 9.10.1 (Current)

2018년 3월 30일5intermediate

Context

Node.js 9.10.1 릴리스 이전에 PPC little endian 플랫폼용 바이너리가 GCC 4.8.X 대신 GCC 4.9.X로 부정확하게 빌드되어 ABI 호환성이 깨졌다. 이는 기존 PPCLE 환경에서 실행 중인 애플리케이션과의 바이너리 호환성 문제를 야기했다.

Technical Solution

  • PPC little endian 플랫폼의 바이너리를 GCC 4.9.X에서 GCC 4.8.X로 변경해 ABI 호환성 복구
  • 빌드 인프라 내 컴파일러 버전 지정 메커니즘 수정
  • Node.js 버전 10.X 이상은 GCC 4.9.X 이상으로 빌드하도록 정책 재정의
  • Node.js 9.X의 공식 최소 컴파일러 요구사항인 GCC 4.9.4를 명시

Impact

Node.js 플랫폼 지원 계약 준수 확인을 위한 재릴리스 실행.

Key Takeaway

플랫폼별 바이너리 호환성은 컴파일러 버전 관리만큼 중요하며, 빌드 인프라의 자동화된 컴파일러 버전 추적 메커니즘이 멀티 플랫폼 배포에서 필수적이다.


멀티 플랫폼(x86, ARM, PPC, s390x 등)을 지원하는 런타임 또는 네이티브 바이너리를 배포하는 팀에서는 각 플랫폼별로 빌드에 사용된 컴파일러 버전을 명시적으로 추적하고 테스트 환경에서 ABI 호환성을 검증해야 한다.

원문 읽기