[sisyphus] klibc incompatibilities

Dmitry V. Levin ldv на altlinux.org
Пн Авг 17 00:15:46 MSD 2009


On Sun, Aug 16, 2009 at 09:47:54PM +0400, Valery V. Inozemtsev wrote:
> > > > > да, совсем забыл... на самом деле все еще страшнее. для нашего glibc
> > > > > (собранного с хидерами от 2.6.29) нужно ядро 2.6.27 и выше. т.ч. это
> > > > > 2.6.18 все еще работает просто чудом или весь юзерспейс, что там
> > > > > работает, не использует (пока не использует) новые системные вызовы.
> > > > 
> > > > Валера, тот эффект, который ты описываешь, правильно было бы назвать
> > > > glibc ABI break.  Только я этот вопрос специально проверял, и ничего
> > > > подозрительного не выявил.  Так что, пожалуйста, расскажи подробности.
> > > > 
> > > 
> > > вот пример (тот же код и в glibc)
> > > http://git.altlinux.org/people/shrek/packages/?p=klibc.git;a=blob;f=usr/klibc/signalfd.c;h=1edc05d936229b5cbf5b56afc1fb2c0ddf56f458;hb=HEAD
> > > __NR_signalfd4 появился в 2.6.27
> > > есть еще кучка at()
> > > http://git.altlinux.org/people/shrek/packages/?p=klibc.git;a=commitdiff;h=7383280c094de24c926623b3996ce651e9d812d4
> > 
> > klibc - это простая библиотека, которая, в отличие от glibc, не
> > обеспечивает обратной совместимости.  В glibc совсем другой код,
> > при желании можешь посмотреть.
> 
> реализация signalfd в klibc была мной слизана из glibc практически 1:1

Если glibc собран со старыми хедерами ядра, то получится signalfd(),
который всегда будет возвращать ENOSYS.
Если glibc собран с новыми  хедерами ядра, то получится signalfd(),
который будет возвращать ENOSYS только на старых ядрах, которые не
поддерживают signalfd(2).

Если какой-то userspace завязан на signalfd(2), то он будет работать
только на тех ядрах, котрые поддерживают signalfd(2).  Интересно,
кто-нибудь уже заложился на этот signalfd(2) в такой степени?

> > Вопрос, эти новые системные вызовы в безусловной реализации klibc
> > уже где-нибудь используются?  Если да, то начиная с каких сборок?
> 
> они используются в udev >= 143

Т.е. в Сизифе udev ещё не использует эти системные вызовы.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090817/773c41ab/attachment.bin>


Подробная информация о списке рассылки Sisyphus