Glibc 2.31 පද්ධති පුස්තකාලය නිකුත් කිරීම

සංවර්ධනය මාස හයකට පසු පළ කර ඇත පද්ධති පුස්තකාල නිකුතුව GNU C පුස්තකාලය (glibc) 2.31, ISO C11 සහ POSIX.1-2008 ප්‍රමිතීන්ගේ අවශ්‍යතා සමඟ සම්පුර්ණයෙන්ම අනුකූල වේ. නව නිකුතුවට සංවර්ධකයින් 58 දෙනෙකුගෙන් නිවැරදි කිරීම් ඇතුළත් වේ.

Glibc 2.31 හි ක්‍රියාත්මක කරන ලද ඒවායින් වැඩිදියුණු කිරීම් ඔබට සටහන් කළ හැකිය:

  • කෙටුම්පත් අනාගත ISO ප්‍රමිතියේ අර්ථ දක්වා ඇති හැකියාවන් සක්‍රීය කිරීමට _ISOC2X_SOURCE සාර්ව එකතු කරන ලදී C2X. මෙම විශේෂාංග _GNU_SOURCE macro භාවිතා කරන විට හෝ "-std=gnu2x" ධජය සමඟ gcc තුළ ගොඩනඟන විටද සක්‍රීය වේ;
  • "math.h" යන ශීර්ෂ ගොනුවේ අර්ථ දක්වා ඇති කාර්යයන් සඳහා, ඒවායේ ප්‍රතිඵල කුඩා වර්ගයකට වට කරන, TS 18661-1:2014 සහ TS පිරිවිතරයන් මගින් අවශ්‍ය වන පරිදි, "tgmath.h" ගොනුවේ අනුරූප සාමාන්‍ය ආකාරයේ මැක්‍රෝ යෝජනා කෙරේ. 18661-3: 2015;
  • Pthread_clockjoin_np() ශ්‍රිතය එක් කරන ලදී, එය ත්‍රෙඩ් එක සම්පූර්ණ වන තෙක් බලා සිටින අතර, කල් ඉකුත්වීම සැලකිල්ලට ගනිමින් (සම්පූර්ණ වීමට පෙර කල් ඉකුත්වීම සිදුවුවහොත්, ශ්‍රිතය දෝෂයක් ලබා දෙනු ඇත). මෙන් නොව pthread_timedjoin_np(), pthread_clockjoin_np() හි කල් ඉකුත්වීම ගණනය කිරීම සඳහා ටයිමරයේ වර්ගය නිර්වචනය කළ හැකිය - CLOCK_MONOTONIC (නිද්‍රා ප්‍රකාරයේදී පද්ධතිය ගත කරන කාලය සැලකිල්ලට ගනී) හෝ CLOCK_REALTIME;
  • DNS විසදුම දැන් /etc/resolv.conf හි විශ්වාස-දැන්වීම් විකල්පය සහ _res.option හි RES_TRUSTAD ධජය සඳහා සහය දක්වයි, සැකසූ විට, DNS ඉල්ලීම් තුළ DNSSEC ධජය සම්ප්‍රේෂණය වේ. AD (සත්‍යාපිත දත්ත). මෙම ප්‍රකාරයේදී, සේවාදායකය විසින් සකසන ලද AD ධජය res_search() වැනි ශ්‍රිතයන් අමතන යෙදුම් වෙත ලබා ගත හැක. පෙරනිමියෙන්, යෝජිත විකල්ප සකසා නොමැති නම්, glibc ඉල්ලීම්වල AD ධජය සඳහන් නොකරන අතර DNSSEC චෙක්පත් අස්ථානගත වී ඇති බව අඟවමින් ප්‍රතිචාර වලදී එය ස්වයංක්‍රීයව හිස් කරයි;
  • Glibc සඳහා වැඩ කරන පද්ධති ඇමතුම් බන්ධන ගොඩනැගීමට තවදුරටත් Linux කර්නල් ශීර්ෂ ගොනු ස්ථාපනය කිරීම අවශ්‍ය නොවේ. ව්යතිරේකය වන්නේ 64-bit RISC-V ගෘහ නිර්මාණ ශිල්පයයි;
  • ඉවත් කරන ලදී අවදානම CVE-2019-19126, ආරක්ෂාව මඟ හැරීමට ඔබට ඉඩ සලසයි
    Setuid ධජය සහිත වැඩසටහන් වල 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 සහය දැනට රඳවා ඇත, නමුත් SuperSPARC ප්‍රොසෙසර නොව LEON ප්‍රොසෙසර වැනි CAS උපදෙස් සඳහා සහය දක්වන ප්‍රොසෙසර සඳහා පමණි).
  • යුගල කිරීම අසාර්ථක වුවහොත් "කම්මැලි", එම ශ්‍රිතයට පළමු ඇමතුම තෙක් සම්බන්ධකය ශ්‍රිතයක සංකේත සොයන්නේ නැති නම්, dlopen ශ්‍රිතය දැන් ක්‍රියාවලිය අවසන් කිරීමට බල කරයි (පෙර අසාර්ථක වූ විට NULL ආපසු ලබා දෙයි);
  • MIPS hard-float ABI සඳහා, ක්‍රියාත්මක කළ හැකි අට්ටිය දැන් භාවිතා වේ, ගොඩනැගීම ලිනක්ස් 4.8+ කර්නලය “-enable-kernel=4.8.0” පරාමිතිය හරහා පැහැදිලිවම සීමා කරන්නේ නම් මිස (කර්නල් 4.8 දක්වා, බිඳවැටීම් වේ. සමහර MIPS වින්‍යාසයන් සඳහා නිරීක්ෂණය කරන ලදී);
  • කාල හැසිරවීමට අදාළ පද්ධති ඇමතුම් වටා ඇති බැඳීම් පවතින නම්, time64 පද්ධති ඇමතුම භාවිතා කිරීමට ගෙන ගොස් ඇත (32-bit පද්ධති මත, glibc පළමුව 64-bit කාල වර්ගය හසුරුවන නව පද්ධති ඇමතුම් උත්සාහ කරන අතර, කිසිවක් නොමැති නම්, වැටේ. පැරණි 32-bit ඇමතුම් වෙත ආපසු).

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න