কীভাবে-ওয়ারার = ডেট-টাইম / ম্যাক্রো "__DATE__" অক্ষম করবেন তা পুনরুত্পাদনযোগ্য বিল্ডগুলি রোধ করতে পারে


13

আমি নেটিস ডাব্লুএফ 2190 অ্যাডাপ্টারের জন্য ড্রাইভার সংকলনের চেষ্টা করছি। হ্যাঁ, আমি তাদের কাছ থেকে সাম্প্রতিকতম ডাউনলোড করেছি।

আমি কীভাবে -Werror=date-timeবিল্ডটি অক্ষম করতে পারি ? আমি এটি বিল্ড স্ক্রিপ্টের কোথাও খুঁজে পাচ্ছি না তাই আমি অনুভব করি এটি অবশ্যই কিছু গ্লোবাল ডিফল্ট সেটিংস। স্পষ্টতই কোডটি কেবল বিল্ডের তারিখ / সময়কে আউটপুটে এম্বেড করার চেষ্টা করছে, সুতরাং এই সতর্কতাটি অক্ষম করতে কোনও সমস্যা হবে না।

আমি যে সতর্কতাগুলি পাচ্ছি তার কয়েকটি এখানে ত্রুটি হিসাবে বিবেচিত হচ্ছে:

/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
cc1: some warnings being treated as errors

2
date-timeসাবধানবাণী জিসিসি 4.9 নতুন আমি মনে করি - তাহলে সম্ভবত এটি দ্বারা পরোক্ষভাবে চালু করা হয় -Wall (দ্বারা পরোক্ষভাবে এবং পরিণত একটি ত্রুটি মধ্যে -Werror)। আপনি এটিকে ফর্মটি ব্যবহার করে স্পষ্টভাবে বন্ধ করার চেষ্টা করতে পারেন -Wno-অর্থাৎ -Wno-error=date-timeযুক্ত করেছেন CFLAGSতবে আমি অনুমান করছি এবং এটি পরীক্ষা করতে পারছি না।
স্টিল্ড্রাইভার

@ স্টিল্ড্রাইভার হ্যাঁ, এটি কাজ করেছে, আপনাকে ধন্যবাদ! আপনি এটি একটি উত্তর হিসাবে জমা দিতে স্বাগত জানাই এবং আমি এটি গ্রহণ করব। সমস্যার অন্য অংশটি হ'ল আমি বুঝতে পারি নি ইনস্টল স্ক্রিপ্টটি প্রতিবার উত্সটি পুনরায় বের করা এবং মেকফাইলে পরিবর্তিত পরিবর্তনগুলি ওভাররাইট করা।
অ্যান্ডি

উত্তর:


14

তারিখ-সময় সতর্কতা জিসিসি 4.9 নতুন আমি মনে করি - তাহলে সম্ভবত এটি দ্বারা পরোক্ষভাবে চালু করা হয় -Wall(দ্বারা পরোক্ষভাবে এবং পরিণত একটি ত্রুটি মধ্যে -Werror)।

আপনি এটি -Wno-যুক্ত করে ফর্মটি স্পষ্টভাবে বন্ধ করে দেওয়ার চেষ্টা করতে পারেন turning

-Wno-error=date-time 

যাও CFLAGS


এটি করার জন্য টার্মিনালটিতে কোনটি বিশেষভাবে টাইপ করা দরকার?
হ্যাক-আর

1
হাই @ স্টিল্ড্রাইভার এটিই কি সঠিক বাক্য গঠন: CFLAGS + = "-নো-ত্রুটি = তারিখের সময়"
নয়াব বাশা

3

আমি বেশ কয়েকবার CFLAGS এ "ডাব্লুএনও-ত্রুটি = তারিখ-সময়" লাইন যুক্ত করার চেষ্টা করেছি, তবে এটি কার্যকর হয়নি বলে মনে হচ্ছে।

আমার পক্ষে এখন পর্যন্ত সবচেয়ে সহজ সমাধানটি সেই ফাইলটি সন্ধান করা ছিল যা সম্পাদন করে "__DATE__" লাইন তৈরি করে

grep -r "__DATE__"

যা (যে উত্স কোডের সাথে আমি কাজ করছি) ফাইলটি আমাকে দিয়েছে

acore/info.patch:+          "Compiled on " __DATE__ " for kernel %s"

আমি এটিকে উদ্ধৃতি চিহ্নগুলি মুছে ফেলে ভেরিয়েবল ব্যতীত একটি স্ট্রিংয়ে কেবল পরিবর্তন করেছি

"Compiled on __DATE__ for kernel %s"

সংকলনটি তখন এগিয়ে যেতে সক্ষম হয়েছিল

সম্পাদনা: পূর্বে উল্লিখিত হিসাবে, make cleanকনফিগার চালানোর আগে ব্যবহার করুন এবং তৈরি করুন, বা আরও ভাল, জিপ / টার ফাইল থেকে একটি নতুন সংস্করণ বের করুন


1

Rtw_debug.c ফাইল থেকে line 66 লাইন মুছে ফেলার মাধ্যমে আপত্তিজনক ম্যাক্রো অপসারণ করা ভাল।

sed -i -e '66d' /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c

এখন আপনি বিল্ডটি চালিয়ে যেতে পারেন:

cd /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/
sudo make clean
make
sudo make install

সুডো ক্লিন করা গুরুত্বপূর্ণ
মিচিড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.