- एक software engineer ने GCC के लिए patch लिखा, जिससे Cosmopolitan Libc का उपयोग करके वास्तव में portable executable बनाना आसान हो गया।
- इस patch की मदद से bash, curl, git और स्वयं gcc जैसे लोकप्रिय software को source code बदले बिना Cosmopolitan Libc के साथ build किया जा सकता है।
- बने हुए executable Linux, FreeBSD, MacOS, OpenBSD, NetBSD और कुछ मामलों में Windows पर चल सकते हैं।
- यह लेख अपने software को Cosmopolitan Libc पर port करने के लिए step-by-step निर्देश देता है।
- यह patch system values पर निर्भर
switch statements और struct initialization की समस्याओं को हल करता है।
- लेखक ने शुरुआत में C preprocessor और
ifdef के कारण sed और Python scripts का उपयोग करके conversion को automate करने की कोशिश की, लेकिन वह पूरी तरह काम नहीं कर पाया।
- इसके बाद लेखक ने GCC plugin का उपयोग करने और समस्या हल करने के लिए स्वयं GCC को patch करने के तरीकों की पड़ताल की।
- patched GCC का उपयोग करके Cosmopolitan Libc के साथ software build किया जा सकता है, जिससे porting process अधिक आसान और smooth हो जाती है।
- लेखक ने सफलतापूर्वक lua build किया और python3.11 में ZIP repository access के लिए बदलाव किए।
- string arrays को lookup table की तरह इस्तेमाल करने वाले busybox को build करते समय लेखक को कठिनाइयों का सामना करना पड़ा।
- binary expressions की वजह से ncurses में struct initialization को लेकर भी चुनौतियां थीं।
- लेखक का निष्कर्ष है कि ज्यादातर मामलों में Cosmopolitan Libc पर software port करने के लिए बहुत कम बदलावों की जरूरत पड़ती है।
- लेखक मानते हैं कि patch पूरी तरह परफेक्ट नहीं हो सकता और इसमें कुछ सीमाएं हो सकती हैं।
- लेखक पाठकों को अपना C software Cosmopolitan Libc के साथ build करके देखने के लिए प्रोत्साहित करते हैं।
- लेखक ने executable के Windows पर चलने की संभावना का उल्लेख किया, लेकिन इसका परीक्षण नहीं किया।
- लेखक अतिरिक्त जानकारी और संदर्भ सामग्री प्रदान करते हैं।
3 टिप्पणियां
अब क्या neo मैसेज को code block में लपेटने वाले फ़ॉर्मैट में जा रहा है? horizontal scroll करना पड़ता है, और लाल रंग वाले text color भी थोड़ा निराशाजनक हैं...
आह, code block में wrap हो जाना एक bug है T_T
Hacker News राय
std::error_codeके उपयोग पर सवाल उठाता है।EINVALपर चर्चा है.