Издање системске библиотеке Глибц 2.31

После шест месеци развоја објављено издање системске библиотеке ГНУ Ц библиотека (глибц) 2.31, који је у потпуности усклађен са заһтевима ИСО Ц11 и ПОСИКС.1-2008. Ново издање укључује исправке од 58 програмера.

Имплементирано у Глибц 2.30 улучшениј можете приметити:

  • Додат _ИСОЦ2Кс_СОУРЦЕ макро да би се омогућиле могућности дефинисане у нацрту будућег ИСО стандарда Ц2Кс. Ове функције су такође омогућене када се користи макро _ГНУ_СОУРЦЕ или када се гради у гцц са заставицом „-стд=гну2к“;
  • За функције дефинисане у датотеци заглавља „матх.х“ које заокружују своје резултате на мањи тип, одговарајући макрои генеричког типа су предложени у датотеци „тгматх.х“, како то захтевају спецификације ТС 18661-1:2014 и ТС 18661-3: 2015;
  • Додата функција птхреад_цлоцкјоин_нп() која чека да се нит заврши, узимајући у обзир временско ограничење (ако се тајмоут догоди пре завршетка, функција ће вратити грешку). за разлику од птхреад_тимедјоин_нп(), у птхреад_цлоцкјоин_нп() могуће је дефинисати тип тајмера за израчунавање тајмаута - ЦЛОЦК_МОНОТОНИЦ (узима у обзир време које је систем провео у режиму мировања) или ЦЛОЦК_РЕАЛТИМЕ;
  • ДНС резолвер сада подржава опцију труст-ад у /етц/ресолв.цонф и РЕС_ТРУСТАД заставицу у _рес.оптионс, када је постављена, ДНССЕЦ заставица се преноси у ДНС захтевима AD (проверени подаци). У овом режиму, АД заставица коју поставља сервер постаје доступна апликацијама које позивају функције као што је рес_сеарцх(). Подразумевано, ако предложене опције нису подешене, глибц не наводи АД заставицу у захтевима и аутоматски је брише у одговорима, што указује да недостају ДНССЕЦ провере;
  • Изградња радних веза системских позива за Глибц више не захтева инсталирање датотека заглавља Линук кернела. Изузетак је 64-битна РИСЦ-В архитектура;
  • Елиминисано рањивост ЦВЕ-КСНУМКС-КСНУМКС, што вам омогућава да заобиђете заштиту
    АСЛР у програмима са сетуид заставицом и одреди распоред адресе у учитаним библиотекама кроз манипулацију променљивом окружења ЛД_ПРЕФЕР_МАП_32БИТ_ЕКСЕЦ.

Промене које нарушавају компатибилност:

  • тоталордер(), тоталордермаг() и сличне функције за друге типове са покретним зарезом сада прихватају показиваче као аргументе за елиминисање упозорења о претварању вредности у стање НаН, у складу са препорукама ТС 18661-1 предложеним за будући Ц2Кс стандард.
    Постојећи извршни фајлови који директно прослеђују аргументе са помичним зарезом наставиће да раде без измена;

  • Дуго застарела стиме функција више није доступна за бинарне датотеке повезане са глибц-ом, а њена дефиниција је уклоњена из тиме.х. Да бисте подесили системско време, користите функцију цлоцк_сеттиме. У будућности планирамо да уклонимо застарелу функцију фтиме, као и датотеку заглавља сис/тимеб.х (требало би да се користи геттимеофдаи или цлоцк_геттиме уместо фтиме);
  • Функција геттимеофдаи више не преноси информације о временској зони на нивоу система (ова карактеристика је била релевантна у време 4.2-БСД и застарела је дуги низ година). Аргументу 'тзп' сада треба проследити нулти показивач, а функцију лоцалтиме() треба користити за добијање информација о временској зони на основу тренутног времена. Позивање геттимеофдаи са аргументом који није нула 'тзп' ће вратити празна поља тз_минутесвест и тз_дсттиме у структури временске зоне. Сама функција геттимеофдаи је застарела под ПОСИКС-ом (цлоцк_геттиме се препоручује уместо геттимеофдаи), али нема планова да се она уклони из глибц-а;
  • сеттимеофдаи више не подржава истовремено преношење параметара за подешавање времена и офсета за исправљање времена. Када позивате сеттимеофдаи, један од аргумената (време или помак) сада мора бити подешен на нулл, иначе позив функције неће успети са грешком ЕИНВАЛ. Као и геттимеофдаи, функција сеттимеофдаи је застарела у ПОСИКС-у и препоручује се да је замени функција цлоцк_сеттиме или фамилија функција адјтиме;
  • Подршка за СПАРЦ ИСА в7 архитектуру је укинута (подршка в8 је за сада задржана, али само за процесоре који подржавају ЦАС инструкције, као што су ЛЕОН процесори, а не СуперСПАРЦ процесори).
  • Ако упаривање не успе у "лењ", у којој линкер не тражи симболе функције до првог позива те функције, функција длопен сада приморава процес да се прекине (претходно враћа НУЛЛ у случају неуспеха);
  • За МИПС хард-флоат АБИ, извршни стек се сада користи, осим ако изградња експлицитно не ограничава употребу Линук кернела 4.8+ преко параметра „-енабле-кернел=4.8.0“ (са језграма до 4.8, рушења су примећено за неке МИПС конфигурације);
  • Везивања око системских позива који се односе на манипулацију временом су померена да користе системски позив тиме64, ако постоји (на 32-битним системима, глибц прво покушава нове системске позиве који манипулишу 64-битним типом времена, а ако их нема, пада назад на старе 32-битне позиве).

Извор: опеннет.ру

Додај коментар