3 poin oleh GN⁺ 2023-07-15 | 3 komentar | Bagikan ke WhatsApp
  • 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

 
ryuheechul 2023-07-15

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...

 
xguru 2023-07-16

Aduh, ini terbungkus sebagai blok kode adalah bug T_T

 
GN⁺ 2023-07-15
Komentar Hacker News
  • Penulis menulis postingan tentang cara menambal GCC untuk membangun executable yang benar-benar portabel.
  • Patch ini memungkinkan perangkat lunak seperti vim, emacs, ninja, bash, git, dan gcc dibangun dengan Cosmopolitan Libc.
  • Executable yang dibangun seharusnya dapat berjalan di Linux, FreeBSD, MacOS, OpenBSD, NetBSD, dan Windows.
  • Penulis menyediakan daftar perangkat lunak yang dapat dibangun menggunakan teknik ini.
  • Ada tiket di repositori Go tentang topik ini.
  • Seorang komentator mengusulkan pendekatan lain untuk membangun target OS baru.
  • Komentator lain menyarankan untuk memublikasikan daftar perangkat lunak yang berhasil dikompilasi menggunakan teknik ini.
  • Seseorang mempertanyakan tujuan praktis dari executable yang benar-benar portabel.
  • Komentator lain mengusulkan pendekatan berbeda untuk menangani konstanta dalam kode.
  • Ada diskusi tentang penggunaan nomor sinyal dan errno.
  • Seseorang mempertanyakan pustaka standar C++ dan penggunaan std::error_code di dalamnya.
  • Seorang komentator menganggap topik ini luar biasa.
  • Ada diskusi tentang konstanta waktu kompilasi EINVAL.