- Một kỹ sư phần mềm đã viết bản vá cho GCC để đơn giản hóa việc tạo ra các tệp thực thi thực sự có thể di chuyển bằng Cosmopolitan Libc.
- Bản vá này cho phép build các phần mềm phổ biến như bash, curl, git và chính gcc với Cosmopolitan Libc mà không cần thay đổi mã nguồn.
- Các tệp thực thi được build có thể chạy trên Linux, FreeBSD, MacOS, OpenBSD, NetBSD và trong một số trường hợp là Windows.
- Bài viết này cung cấp hướng dẫn từng bước về cách port phần mềm của bạn sang Cosmopolitan Libc.
- Bản vá giải quyết các vấn đề với câu lệnh switch và khởi tạo struct phụ thuộc vào các giá trị hệ thống.
- Ban đầu, tác giả đã thử tự động hóa việc chuyển đổi bằng các script sed và Python do có C preprocessor và ifdef, nhưng cách đó không hoạt động hoàn toàn.
- Sau đó, tác giả đã tìm hiểu việc dùng plugin GCC và cách vá chính GCC để giải quyết vấn đề.
- Với GCC đã được vá, có thể build phần mềm bằng Cosmopolitan Libc, giúp quá trình port trở nên dễ dàng và trơn tru hơn.
- Tác giả đã build thành công lua và thực hiện thay đổi trong python3.11 để truy cập kho lưu trữ ZIP.
- Khi build busybox, tác giả gặp khó khăn vì nó dùng mảng chuỗi làm bảng tra cứu.
- Cũng có thách thức với việc khởi tạo struct trong ncurses do các biểu thức nhị phân.
- Tác giả kết luận rằng trong đa số trường hợp, các thay đổi cần thiết để port phần mềm sang Cosmopolitan Libc là rất ít.
- Tác giả thừa nhận bản vá có thể chưa hoàn hảo và có thể tồn tại một số hạn chế.
- Tác giả khuyến khích độc giả thử build phần mềm C với Cosmopolitan Libc.
- Tác giả có nhắc đến khả năng chạy tệp thực thi trên Windows nhưng chưa kiểm thử.
- Tác giả cung cấp thêm thông tin và tài liệu tham khảo.
3 bình luận
Bây giờ neo chuyển sang định dạng bọc tin nhắn trong khối mã rồi à? Việc phải cuộn ngang và màu chữ tông đỏ thì hơi đáng tiếc...
Ôi, việc bị bọc trong khối mã là lỗi đó hu hu
Ý kiến trên Hacker News
std::error_codecủa nó.