ஆறு மாத வளர்ச்சிக்குப் பிறகு கணினி நூலக வெளியீடு (glibc) , இது ISO C11 மற்றும் POSIX.1-2008 தரநிலைகளின் தேவைகளுடன் முழுமையாக இணங்குகிறது. புதிய வெளியீட்டில் 58 டெவலப்பர்களிடமிருந்து திருத்தங்கள் உள்ளன.
Glibc 2.31 இல் செயல்படுத்தப்பட்டவற்றிலிருந்து நீங்கள் கவனிக்க முடியும்:
- வரைவு எதிர்கால ISO தரநிலையில் வரையறுக்கப்பட்ட திறன்களை செயல்படுத்த _ISOC2X_SOURCE மேக்ரோ சேர்க்கப்பட்டது . _GNU_SOURCE மேக்ரோவைப் பயன்படுத்தும் போது அல்லது "-std=gnu2x" கொடியுடன் gcc இல் உருவாக்கும்போது இந்த அம்சங்கள் செயல்படுத்தப்படும்;
- TS 18661-1:2014 மற்றும் TS விவரக்குறிப்புகளின்படி, "math.h" என்ற தலைப்புக் கோப்பில் வரையறுக்கப்பட்ட செயல்பாடுகளுக்கு, அவற்றின் முடிவுகளை சிறிய வகைக்குச் சுற்றி, தொடர்புடைய பொதுவான வகை மேக்ரோக்கள் "tgmath.h" கோப்பில் முன்மொழியப்படுகின்றன. 18661-3: 2015;
- pthread_clockjoin_np() செயல்பாடு சேர்க்கப்பட்டது, இது த்ரெட் முடிவடையும் வரை காத்திருக்கிறது, காலக்கெடுவை கணக்கில் எடுத்துக்கொள்கிறது (முடிவதற்கு முன் காலக்கெடு ஏற்பட்டால், செயல்பாடு பிழையை வழங்கும்). போலல்லாமல் , pthread_clockjoin_np() இல் காலக்கெடுவைக் கணக்கிடுவதற்கான டைமரின் வகையை வரையறுக்க முடியும் - CLOCK_MONOTONIC (கணினி தூக்க பயன்முறையில் செலவழித்த நேரத்தை கணக்கில் எடுத்துக்கொள்கிறது) அல்லது CLOCK_REALTIME;
- DNS ரிசல்வர் இப்போது /etc/resolv.conf இல் நம்பிக்கை-விளம்பர விருப்பத்தை ஆதரிக்கிறது மற்றும் _res.options இல் RES_TRUSTAD கொடியை அமைக்கும் போது, DNS கோரிக்கைகளில் DNSSEC கொடி அனுப்பப்படும். (அங்கீகரிக்கப்பட்ட தரவு). இந்த பயன்முறையில், சேவையகத்தால் அமைக்கப்பட்ட AD கொடியானது, res_search() போன்ற செயல்பாடுகளை அழைக்கும் பயன்பாடுகளுக்குக் கிடைக்கும். முன்னிருப்பாக, பரிந்துரைக்கப்பட்ட விருப்பங்கள் அமைக்கப்படவில்லை எனில், கோரிக்கைகளில் AD கொடியை glibc குறிப்பிடாது மற்றும் பதில்களில் தானாகவே அதை அழிக்கும், DNSSEC சரிபார்ப்புகள் இல்லை என்பதைக் குறிக்கிறது;
- Для сборки работающих обвязок системных вызовов для Glibc теперь не требуется установка заголовочных файлов ядра Linux. Исключение составляет 64-разрядная архитектура RISC-V;
- நீக்கப்பட்டது , இது பாதுகாப்பைத் தவிர்க்க உங்களை அனுமதிக்கிறது
செட்யூட் கொடியுடன் கூடிய நிரல்களில் ASLR மற்றும் LD_PREFER_MAP_32BIT_EXEC சூழல் மாறியைக் கையாளுவதன் மூலம் ஏற்றப்பட்ட நூலகங்களில் முகவரி அமைப்பைத் தீர்மானிக்கிறது.
இணக்கத்தன்மையை உடைக்கும் மாற்றங்கள்:
- totalorder(), totalordermag(), மற்றும் பிற மிதக்கும்-புள்ளி வகைகளுக்கான இதே போன்ற செயல்பாடுகள், நிலையில் மதிப்புகளை மாற்றுவது பற்றிய எச்சரிக்கைகளை நீக்குவதற்கான வாதங்களாக இப்போது சுட்டிகளை ஏற்கின்றன. , எதிர்கால C18661X தரநிலைக்கு முன்மொழியப்பட்ட TS 1-2 இன் பரிந்துரைகளுக்கு இணங்க.
ஃப்ளோட்டிங் பாயின்ட் ஆர்குயூட்டுகளை நேரடியாக அனுப்பும் எக்சிகியூட்டபிள்கள் மாற்றமின்றி தொடர்ந்து இயங்கும்; - glibc-இணைக்கப்பட்ட பைனரிகளுக்கு நீண்ட காலமாக நிறுத்தப்பட்ட stime செயல்பாடு இனி கிடைக்காது, மேலும் அதன் வரையறை time.h இலிருந்து அகற்றப்பட்டது. கணினி நேரத்தை அமைக்க, clock_settime செயல்பாட்டைப் பயன்படுத்தவும். எதிர்காலத்தில், நிறுத்தப்பட்ட ftime செயல்பாட்டையும், sys/timeb.h தலைப்புக் கோப்பையும் அகற்ற திட்டமிட்டுள்ளோம் (ftimeக்குப் பதிலாக gettimeofday அல்லது clock_gettime பயன்படுத்தப்பட வேண்டும்);
- gettimeofday செயல்பாடு கணினி முழுவதும் நேர மண்டலத்தைப் பற்றிய தகவலை அனுப்பாது (இந்த அம்சம் 4.2-BSD நாட்களில் தொடர்புடையது மற்றும் பல ஆண்டுகளாக நிறுத்தப்பட்டது). 'tzp' வாதம் இப்போது பூஜ்ய சுட்டியாக அனுப்பப்பட வேண்டும், மேலும் தற்போதைய நேரத்தின் அடிப்படையில் நேர மண்டலத் தகவலைப் பெற உள்ளூர் நேர() செயல்பாடு பயன்படுத்தப்பட வேண்டும். ஜீரோ அல்லாத 'tzp' வாதத்துடன் gettimeofday ஐ அழைப்பது, நேர மண்டல அமைப்பில் உள்ள காலியான tz_minuteswest மற்றும் tz_dsttime புலங்களை வழங்கும். gettimeofday செயல்பாடு POSIX இன் கீழ் நிறுத்தப்பட்டது (Gettimeofdayக்குப் பதிலாக clock_gettime பரிந்துரைக்கப்படுகிறது), ஆனால் glibc இலிருந்து அதை அகற்ற எந்த திட்டமும் இல்லை;
- settimeofday இனி நேரத்தை அமைப்பதற்கான அளவுருக்கள் மற்றும் நேரத்தை சரிசெய்யும் ஆஃப்செட் ஆகியவற்றை ஒரே நேரத்தில் அனுப்புவதை ஆதரிக்காது. settimeofday ஐ அழைக்கும் போது, வாதங்களில் ஒன்று (நேரம் அல்லது ஆஃப்செட்) இப்போது பூஜ்யமாக அமைக்கப்பட வேண்டும், இல்லையெனில் செயல்பாட்டு அழைப்பு EINVAL பிழையுடன் தோல்வியடையும். gettimeofday போலவே, settimeofday செயல்பாடு POSIX இல் நிறுத்தப்பட்டு, clock_settime செயல்பாடு அல்லது adjtime குடும்ப செயல்பாடுகளால் மாற்றப்பட பரிந்துரைக்கப்படுகிறது;
- SPARC ISA v7 கட்டமைப்பிற்கான ஆதரவு நிறுத்தப்பட்டது (இப்போதைக்கு v8 ஆதரவு தக்கவைக்கப்பட்டுள்ளது, ஆனால் LEON செயலிகள் போன்ற CAS வழிமுறைகளை ஆதரிக்கும் செயலிகளுக்கு மட்டுமே, SuperSPARC செயலிகள் அல்ல).
- "இல் இணைத்தல் தோல்வியுற்றால்", அந்த செயல்பாட்டிற்கான முதல் அழைப்பு வரை இணைப்பாளர் ஒரு செயல்பாட்டின் சின்னங்களைத் தேடவில்லை, dlopen செயல்பாடு இப்போது செயல்முறையை நிறுத்தும்படி கட்டாயப்படுத்துகிறது (முன்பு தோல்வியில் NULL திரும்பியது);
- Для ABI MIPS hard-float теперь используется исполняемый стек, если при сборке явно не задано ограничение на использование ядра Linux 4.8+ через параметр «—enable-kernel=4.8.0» (с ядрами до 4.8 наблюдаются сбои для некоторых конфигураций MIPS);
- நேரம் கையாளுதல் தொடர்பான கணினி அழைப்புகளைச் சுற்றியுள்ள பிணைப்புகள் time64 சிஸ்டம் அழைப்பைப் பயன்படுத்த நகர்த்தப்பட்டன (32-பிட் கணினிகளில், glibc முதலில் 64-பிட் நேர வகையைக் கையாளும் புதிய கணினி அழைப்புகளை முயற்சிக்கிறது, எதுவும் இல்லை என்றால், விழுகிறது. பழைய 32-பிட் அழைப்புகளுக்குத் திரும்பு).
ஆதாரம்: opennet.ru
