- Seorang insinyur perangkat lunak menulis patch untuk GCC yang menyederhanakan pembuatan file eksekusi yang benar-benar portabel menggunakan Cosmopolitan Libc.
- Dengan patch ini, perangkat lunak populer seperti bash, curl, git, dan gcc itu sendiri dapat dibangun dengan Cosmopolitan Libc tanpa mengubah kode sumber.
- File eksekusi yang dihasilkan dapat dijalankan di Linux, FreeBSD, MacOS, OpenBSD, NetBSD, dan dalam beberapa kasus, Windows.
- Artikel ini memberikan petunjuk langkah demi langkah tentang cara mem-porting perangkat lunak Anda sendiri ke Cosmopolitan Libc.
- Patch ini menyelesaikan masalah pada pernyataan switch dan inisialisasi struct yang bergantung pada nilai sistem.
- Penulis awalnya mencoba mengotomatiskan konversi menggunakan skrip sed dan Python karena C preprocessor dan ifdef, tetapi itu tidak sepenuhnya berhasil.
- Penulis kemudian mengeksplorasi penggunaan plugin GCC dan cara menambal GCC itu sendiri untuk menyelesaikan masalah.
- Dengan GCC yang telah ditambal, perangkat lunak dapat dibangun menggunakan Cosmopolitan Libc sehingga proses porting menjadi lebih mudah dan mulus.
- Penulis berhasil membangun lua dan melakukan perubahan pada python3.11 untuk mengakses penyimpanan ZIP.
- Saat membangun busybox yang menggunakan array string sebagai lookup table, penulis mengalami kesulitan.
- Ada juga tantangan pada inisialisasi struct di ncurses karena binary expression.
- Penulis menyimpulkan bahwa dalam sebagian besar kasus, perubahan yang diperlukan untuk mem-porting perangkat lunak ke Cosmopolitan Libc sangat minimal.
- Penulis mengakui bahwa patch ini mungkin belum sempurna dan bisa memiliki beberapa keterbatasan.
- Penulis mendorong para pembaca untuk mencoba membangun perangkat lunak C dengan Cosmopolitan Libc.
- Penulis menyebut kemungkinan file eksekusi dapat dijalankan di Windows, tetapi belum mengujinya.
- Penulis menyediakan informasi tambahan dan referensi.
3 komentar
Sekarang neo memakai format yang membungkus pesan dengan blok kode? Agak disayangkan karena jadi harus scroll horizontal dan warna teks bernuansa merah juga sedikit kurang cocok...
Aduh, ini terbungkus sebagai blok kode adalah bug T_T
Komentar Hacker News