3 puan yazan GN⁺ 2023-07-15 | 3 yorum | WhatsApp'ta paylaş
  • Bir yazılım mühendisi, Cosmopolitan Libc kullanarak gerçekten taşınabilir çalıştırılabilir dosyalar üretme sürecini basitleştirmek için GCC için bir yama yazdı.
  • Bu yama sayesinde bash, curl, git ve GCC'nin kendisi gibi popüler yazılımlar, kaynak kodu değiştirilmeden Cosmopolitan Libc ile derlenebiliyor.
  • Oluşturulan çalıştırılabilir dosyalar Linux, FreeBSD, MacOS, OpenBSD, NetBSD ve bazı durumlarda Windows üzerinde çalışabiliyor.
  • Bu makale, kendi yazılımınızı Cosmopolitan Libc'e taşımaya yönelik adım adım talimatlar sunuyor.
  • Yama, sistem değerlerine bağımlı switch ifadeleri ve yapı başlatmalarındaki sorunları çözüyor.
  • Yazar, başlangıçta C önişlemcisi ve ifdef nedeniyle dönüşümü sed ve Python betikleriyle otomatikleştirmeyi denedi, ancak bu yaklaşım tamamen işe yaramadı.
  • Ardından yazar, GCC eklentileri kullanmayı araştırdı ve sorunları çözmek için GCC'nin kendisini yamalama yoluna gitti.
  • Yamalanmış GCC sayesinde yazılımlar Cosmopolitan Libc ile derlenebildiği için taşıma süreci daha kolay ve daha sorunsuz hale geliyor.
  • Yazar, luayı başarıyla derledi ve python3.11 içinde ZIP deposuna erişim için değişiklikler yaptı.
  • Yazar, dizge dizilerini arama tablosu olarak kullanan busyboxu derlerken zorluk yaşadı.
  • İkili ifadeler nedeniyle ncurses içinde yapı başlatmaları konusunda da zorluklar vardı.
  • Yazar, çoğu durumda yazılımı Cosmopolitan Libc'e taşımak için gereken değişikliklerin asgari düzeyde olduğu sonucuna varıyor.
  • Yazar, yamanın kusursuz olmayabileceğini ve bazı sınırlamaları olabileceğini kabul ediyor.
  • Yazar, okuyucuları C yazılımlarını Cosmopolitan Libc ile derlemeyi denemeye teşvik ediyor.
  • Yazar, çalıştırılabilir dosyaların Windows üzerinde çalışabilme ihtimalinden bahsediyor, ancak bunu test etmediğini belirtiyor.
  • Yazar, ek bilgiler ve referanslar sunuyor.

3 yorum

 
ryuheechul 2023-07-15

Artık neo, mesajları kod bloğuna sarma formatına mı geçiyor? Yatay kaydırma yapmak gerekmesi ve kırmızı tonlardaki metin renginin biraz hayal kırıklığı yaratması üzücü...

 
xguru 2023-07-16

Ah, bunun kod bloğuna alınması bir bug hüzün

 
GN⁺ 2023-07-15
Hacker News yorumu
  • Yazar, gerçekten taşınabilir çalıştırılabilir dosyalar oluşturmak için GCC'yi nasıl yamaladığını anlatan bir yazı yayımladı.
  • Bu yama sayesinde vim, emacs, ninja, bash, git ve gcc gibi yazılımlar Cosmopolitan Libc ile derlenebiliyor.
  • Oluşturulan çalıştırılabilir dosyaların Linux, FreeBSD, MacOS, OpenBSD, NetBSD ve Windows'ta çalışabilmesi gerekiyor.
  • Yazar, bu teknikle derlenebilen yazılımların bir listesini sunuyor.
  • Go deposunda bu konuyla ilgili bir kayıt bulunuyor.
  • Bir yorumcu, yeni bir OS hedefi oluşturmak için farklı bir yaklaşım öneriyor.
  • Başka bir yorumcu, bu teknik kullanılarak başarıyla derlenen yazılımların bir listesinin yayımlanmasını öneriyor.
  • Birisi, gerçekten taşınabilir çalıştırılabilir dosyaların pratik amacını sorguluyor.
  • Başka bir yorumcu, kodda sabitleri ele almak için farklı bir yaklaşım öneriyor.
  • Sinyal numaraları ve errno kullanımına dair bir tartışma var.
  • Birisi, C++ standart kütüphanesini ve onun std::error_code kullanımını sorguluyor.
  • Bir yorumcu bu konuyu şaşırtıcı buluyor.
  • Derleme zamanı sabiti EINVAL hakkında bir tartışma var.