3 पॉइंट द्वारा GN⁺ 2023-07-15 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • एक 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 टिप्पणियां

 
ryuheechul 2023-07-15

अब क्या neo मैसेज को code block में लपेटने वाले फ़ॉर्मैट में जा रहा है? horizontal scroll करना पड़ता है, और लाल रंग वाले text color भी थोड़ा निराशाजनक हैं...

 
xguru 2023-07-16

आह, code block में wrap हो जाना एक bug है T_T

 
GN⁺ 2023-07-15
Hacker News राय
  • लेखक ने GCC को patch करके वास्तव में portable executable files बनाने के तरीके पर एक पोस्ट लिखी है।
  • इस patch के ज़रिए vim, emacs, ninja, bash, git और gcc जैसे software को Cosmopolitan Libc के साथ build किया जा सकता है।
  • बनाई गई executable files को Linux, FreeBSD, MacOS, OpenBSD, NetBSD और Windows पर चलना चाहिए।
  • लेखक इस तकनीक का उपयोग करके build किए जा सकने वाले software की एक सूची देता है।
  • Go repository में इस विषय पर एक ticket है।
  • एक commenter नया OS target build करने के लिए एक अलग approach सुझाता है।
  • एक अन्य commenter इस तकनीक का उपयोग करके सफलतापूर्वक compile किए गए software की सूची पोस्ट करने का सुझाव देता है।
  • कोई वास्तव में portable executable files के व्यावहारिक उद्देश्य पर सवाल उठाता है।
  • एक अन्य commenter code में constants को handle करने के लिए एक अलग approach सुझाता है।
  • signal numbers और errno के उपयोग पर चर्चा है।
  • कोई C++ standard library और उसके std::error_code के उपयोग पर सवाल उठाता है।
  • एक commenter इस विषय को आश्चर्यजनक मानता है।
  • compile-time constant EINVAL पर चर्चा है.