LINUX.ORG.RU
ФорумTalks

Заголовочные файлы, которые мы приобрели и потеряли с выходом библиотеки glibc 2.26

 , ,


0

2

Итак, как выясняется, библиотека glibc версии 2.26 частично ломает обратную совместимость. Я сейчас не буду разбирать внутреннее содержимое заголовочных файлов. Сейчас я расскажу только про них целиком.

Итак, этих заголовочных файлов больше нет:

* xlocale.h
* bits/siginfo.h
* bits/sigset.h
* bits/string.h
* bits/string2.h
* bits/string3.h
* bits/uio.h
* sys/ultrasound.h

А вот эти заголовочные файлы появились:

* bits/types/__FILE.h
* bits/types/__locale_t.h
* bits/types/__mbstate_t.h
* bits/types/__sigset_t.h
* bits/types/FILE.h
* bits/types/locale_t.h
* bits/types/mbstate_t.h
* bits/types/res_state.h
* bits/types/sig_atomic_t.h
* bits/types/sigevent_t.h
* bits/types/siginfo_t.h
* bits/types/sigset_t.h
* bits/types/sigval_t.h
* bits/types/stack_t.h
* bits/types/struct_iovec.h
* bits/types/struct_rusage.h
* bits/types/struct_sigstack.h
* bits/types/wint_t.h
Про xlocale.h и sys/ultrasound.h упоминалось на опеннете, но про остальное там сказано не было. Как и про то, какие грабли может означать внезапное исчезновение того же xlocale.h.

А тот же Perl при сборке проверяет наличие xlocale.h и если он есть в системе прописывает его использование в свои заголовочные файлы. Соответственно, если обновить glibc, но не пересобрать Perl, то тот же irssi не сможет собраться с поддержкой Perl'а. Пересборка Perl'а решит этот ребус. Вероятно, есть и ещё подобные грабли.

★★★★★

Последнее исправление: saahriktu (всего исправлений: 1)

наверное, подразумевается, что обновление glibc автоматом означает обновление всей системы

stevejobs ★★★★☆
()

Как вариант использовать NixOS, GuixSD. Там эта проблема решена.

misteralter
()
Ответ на: комментарий от stevejobs

Такое подразумеваться может только в тех дистрибутивах, где нет rolling-релизов и красноглазия. Там юзеры, конечно, вряд-ли будут обновлять один glibc отдельно. А вот в остальных случаях...

saahriktu ★★★★★
() автор топика

Итак, этих заголовочных файлов больше нет:

А как разработчики glibc комментируют этот факт?

Serge10 ★★★★★
()
Ответ на: комментарий от Serge10

bits/*.h они, видимо, относят ко внутренностям. В последнее время они туда переносят много структур, которые раньше были объявлены в других заголовочных файлах. И те в свою очередь начинают юзать эти самые bits/*.h. Даже структура tm перекочевала из time.h в bits/types/struct_tm.h.

Поддержка ultrasound'а, по ходу, устарела. А xlocale.h объявлен нестандартным и устаревшим. Вместо него предложено юзать locale.h.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от Serge10

А как разработчики glibc комментируют этот факт?

Вот так:

Never include this file directly

и так

The file and this data structure is not standardized. Don't rely on it. It can go away without warning.

redgremlin ★★★★★
()

Как и про то, какие грабли может означать внезапное исчезновение того же xlocale.h.

Дай угадаю, KOI8 отваливается?

WereFox ★☆
()

А чинить IPC они ещё не собираются? А то баги известные.

Quasar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.