லினக்ஸ் 4.19 கர்னல் இப்போது ஜி.சி.சி 4.6 ஐ உருவாக்க வேண்டும், பழைய கட்டிடக்கலை தோல்விகளை தொகுக்கப்படுவதால்

லினக்ஸ்-யூனிக்ஸ் / லினக்ஸ் 4.19 கர்னல் இப்போது ஜி.சி.சி 4.6 ஐ உருவாக்க வேண்டும், பழைய கட்டிடக்கலை தோல்விகளை தொகுக்கப்படுவதால் 1 நிமிடம் படித்தது

லினக்ஸ் கர்னல் அமைப்பு, இன்க்.



கர்னலில் பணிபுரியும் லினக்ஸ் டெவலப்பர்களுக்கு, வெளியிடப்பட வேண்டிய லினக்ஸ் 4.19 கர்னல் கர்னல் கட்டிடத்திற்குத் தேவையான ஜி.சி.சி குறைந்தபட்ச பதிப்பை எழுப்புகிறது. அதிகாரப்பூர்வ லினக்ஸ் கர்னல் ஜி.சி.சி 3.2 ஐ பட்டியலிட்டுள்ளது குறைந்தபட்சம் கர்னல் கட்டடத்திற்கு தேவையான தொகுப்பியின் பதிப்பு, ஆனால் லினக்ஸ் கர்னல் 4.19 அதை ஜி.சி.சி 4.6 ஆக உயர்த்துகிறது.

ஏனென்றால் பழைய ஜி.சி.சி 4 வெளியீடுகளில் உள்ள பல்வேறு கட்டமைப்புகள் லினக்ஸ் கர்னலை சுத்தமாக தொகுக்கத் தவறிவிட்டன, எனவே ஜி.சி.சி 4.6 குறைந்தபட்சமாக அமைக்கப்படுகிறது. கர்னல் ஜி.சி.சி 4.6.0 அல்லது புதியதை வெளிப்படையாகச் சரிபார்க்கும், காணப்படவில்லை எனில், கம்பைலர் பிழையாகிவிடும்.



இது கர்னல் குறியீட்டிற்கும் பயனளிக்கிறது, ஏனெனில் பழைய ஜி.சி.சி பணித்தொகுப்புகளுக்கான பல டஜன் கோடுகளை கர்னல் டெவ்ஸ் அகற்ற முடிந்தது, அவை கம்பைலர் பிழைகள் மற்றும் பழைய கம்பைலர் வெளியீடுகளில் நடத்தை வேறுபாடுகளை நோக்கமாகக் கொண்டிருந்தன.



இந்த மாற்றம் இன்று முன்னதாக கிட் கமிட் வழியாக இணைக்கப்பட்டது - மற்றும் ஜி.சி.சி 4.6.0 2011 இல் வெளியிடப்பட்டது, எனவே ஜி.சி.சி எதிர்காலத்திலும் ஏதேனும் புதுப்பிப்புகளைக் கொண்டிருக்கிறதா என்று பார்ப்போம்.



இந்த புதுப்பித்தலுக்கான சேஞ்ச்லாக் / கமிட் அடிப்படையில் ஜி.சி.சி கம்பைலரின் பழைய பதிப்புகள் பல்வேறு கட்டமைப்புகளின் கீழ் கர்னலை உருவாக்கத் தவறியதால், இந்த மாற்றம் முற்றிலும் முற்றிலும் காரணம் என்பதைக் குறிப்பிடுகிறது:

 ஜி.சி.சி கம்பைலரின் பழைய பதிப்புகளுடன் பல்வேறு கட்டமைப்புகள் சரியாக உருவாக்கத் தவறிவிட்டன. நூலில் குண்டர் ரோக்கின் ஒரு எடுத்துக்காட்டு [1]: >> கோப்பில் ./include/linux/mm.h:17:0,> இலிருந்து ./include/linux/pid_namespace.h:7,> இலிருந்து ./include /linux/ptrace.h:10,> arch / openrisc / kernel / asm-offsets.c: 32:> ./include/linux/mm_types.h:497:16: பிழை: நெகிழ்வான வரிசை உறுப்பினர் இல்லையெனில் வெற்று struct> > இது or32 க்கு gcc 4.5.1 உடன் ஒரு எடுத்துக்காட்டு. ஜி.சி.சி 4.4 (யூனிகோர் 32 க்கு) உடன் நான் சிக்கலைக் கண்டேன். எனவே ஜி.சி.சியின் குறைந்தபட்ச தேவையான பதிப்பை 4.6 ஆக புதுப்பிக்கவும். [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/ இதர: - புதுப்பித்தல் ஆவணம் / செயல்முறை / மாற்றங்கள். Rst - 4.6 க்கும் குறைவான பதிப்புகளுக்கு கம்பைலர்- gcc.h இல் பதிப்பு சோதனை தொகுதிகளை அகற்றி ஒருங்கிணைக்கவும்

லினக்ஸ் x86_64 கர்னலை உருவாக்குவதற்கான எல்.எல்.வி.எம் கிளாங் முயற்சிகளைப் பொறுத்தவரை, தற்போது எல்.எல்.வி.எம்.எல்.எனக்ஸ் திட்டத்தில், சில முயற்சிகள் உள்ளன - இருப்பினும் கிளாங்க் உடன் ஏ.ஆர்.எம் லினக்ஸ் ஸ்பேஸ் வழியாக கர்னலை உருவாக்குவதில் சில வேலைகள் உள்ளன.