- 소프트웨어 엔지니어가 GCC에 대한 패치를 작성하여 Cosmopolitan Libc를 사용하여 실제로 이식 가능한 실행 파일을 간소화했습니다.
- 이 패치를 통해 bash, curl, git 및 gcc 자체와 같은 인기 있는 소프트웨어를 소스 코드를 변경하지 않고 Cosmopolitan Libc로 빌드할 수 있습니다.
- 빌드된 실행 파일은 Linux, FreeBSD, MacOS, OpenBSD, NetBSD 및 일부 경우에는 Windows에서 실행할 수 있습니다.
- 이 기사에서는 자신의 소프트웨어를 Cosmopolitan Libc로 이식하는 방법에 대한 단계별 지침을 제공합니다.
- 이 패치는 시스템 값에 의존하는 switch 문과 구조체 초기화의 문제를 해결합니다.
- 저자는 처음에는 C 전처리기와 ifdef 때문에 sed 및 Python 스크립트를 사용하여 변환을 자동화하려고 시도했지만 완전히 작동하지 않았습니다.
- 그런 다음 저자는 GCC 플러그인을 사용하고 문제를 해결하기 위해 GCC 자체를 패치하는 방법을 탐구했습니다.
- 패치된 GCC를 사용하여 Cosmopolitan Libc로 소프트웨어를 빌드할 수 있으므로 이식 프로세스가 더 쉽고 원활해집니다.
- 저자는 성공적으로 lua를 빌드하고 python3.11에서 ZIP 저장소에 액세스하기 위한 변경을 수행했습니다.
- 문자열 배열을 룩업 테이블로 사용하는 busybox를 빌드하는 동안 저자는 어려움을 겪었습니다.
- 이진 표현식 때문에 ncurses에서 구조체 초기화에 대한 도전도 있었습니다.
- 저자는 대부분의 경우 Cosmopolitan Libc로 소프트웨어를 이식하는 데 필요한 변경이 최소하다고 결론을 내렸습니다.
- 저자는 패치가 완벽하지 않을 수 있으며 일부 제한 사항이 있을 수 있다고 인정합니다.
- 저자는 독자들에게 C 소프트웨어를 Cosmopolitan Libc로 빌드해 보라고 권장합니다.
- 저자는 실행 파일을 Windows에서 실행할 수 있는 가능성에 대해 언급했지만 테스트하지 않았습니다.
- 저자는 추가 정보와 참고 자료를 제공합니다.
댓글과 토론