LINUX.ORG.RU

musl libc 1.0

 ,


1

2

Сегодня вышла версия 1.0 musl, свободной реализации стандартной библиотеки языка C. musl реализует стандарты ISO C и Posix, плюс набор расширений используемых в системах на базе Linux. Код распространяется под лицензией MIT (начиная с версии 0.9.). Основные изменения:

  • нововведения
    • поддержка mips softfloat ABI;
    • legacy setkey и API шифрования для DES;
    • поддержка BSD версии struct tcphdr в дополнение к GNU версии;
    • поддержка протоколов ipv6, icmpv6 в семействе функций getprotoent;
  • поддержка новых архитектур
    • sh (SuperH);
    • x32 (ILP32 ABI для x86_64);
  • совместимость
    • улучшена поддержка компилятора c89 в math.h;
    • удалены предупреждения об ошибках в публичных заголовках;
    • добавлены отсутствующие возможности для LFS64 API;
  • исправление ошибок
    • переполнение буфера в printf;
    • ошибки округления в printf;
    • падение программы при передаче нулевого указателя в posix_spawn;
    • некорректная работа ftello;
    • некорректная работа wcsxfrm при n = 0;
    • ошибки в install.sh, в некоторых случаях, приводящие к краху системы при обновлении libc;
    • некорректная работа флага ntfw FTW_MOUNT;
    • отрицательные коды ошибок в ptsname/ptsname_r;
    • некорректная работа getprotoent;
    • неправильные код ошибки вызвращаемой readdir когда директория удалена;
  • архитектурно-специфические ошибки
    • некорректная работа fesetenv(FE_DFL_ENV) на i386 и x86_64;
    • strerror(EDQUOT) не работал на mips;
    • recvmsg/sendmsg не работал на powerpc;
    • sysv ipc не работал на powerpc и mips;
    • statfs/statvfs не работали на mips;
    • sigaltstack не работал на mips;

Список изменений по версиям

Сравнение различных реализаций libc

Скачать исходный код

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от wota

нет, код musl быстрее кода из dietlibc

И чего «нет»? Код musl на snprintf() сделан... С чего он быстрее?

ну так другие либы могут хоть все функции попытаться сделать
полностью thread safe

Не thread safe, просто дата порченая возвращается.

а есть стандарт, где сказано, что asctime_r thread safe

Где в стандарте сказано, что asctime() (без _r) даёт undefined behaviour, а не unspecified result? Если сказано, то вопрос будет снят, но я там этого не увидел.

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

If any of the members of the broken-down time contain values that are outside their normal ranges, 323) the behavior of the asctime function is undefined. Likewise, if the calculated year exceeds four digits or is less than the year 1000, the behavior is undefined.

7.27.3.2

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

Код musl на snprintf() сделан

блин, точно, это мы все код из uClibc обсуждали, я его частично скопировал и замерял, но не посмотрел адрес и решил, что это код musl из ОП, сорри

Где в стандарте сказано, что asctime() (без _r) даёт undefined behaviour, а не unspecified result?

так вот именно - и мне интересно, где там сказано обратное

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

кстати порчи памяти в коде uclibc нет. Есть вылеты по ассертам, есть запись «всякойфингни» в буфер, потому что первый поток уже затер смещения и второй вычитал какую-то хрень непонятно откуда. Но запись в неподобающее место волгринд так и не увидел. пол часа уже гоняется.

Так что есть мнение, что ты пиздобол-фантаст

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

If any of the members of the broken-down time contain values
that are outside their normal ranges, 323) the behavior of
the asctime function is undefined. Likewise, if the calculated
year exceeds four digits or is less than the year 1000, the
behavior is undefined.

Это здесь вообще не при чём. Тут речь про плохие входные параметры. В musl даже специально a_crash() для этого стоит.

Так что есть мнение, что ты пиздобол-фантаст

Тебе, мудаку, я ничего объяснять не намерен, а другим уже и так всё понятно.

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

слив защитан, да.

Иди трепло, учи уроки.

anonymous
()
Ответ на: комментарий от wota

блин, точно, это мы все код из uClibc обсуждали, я его частично
скопировал и замерял, но не посмотрел адрес и решил, что это
код musl из ОП, сорри

Ну вот и славно, спасибо за тесты.

так вот именно - и мне интересно, где там сказано обратное

Не знаю, но должно быть. Полной копии позикса у меня нет - она, кажется, платная... Если все либы как unspecified реализовывают, то, думаю, там так и есть.

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

А как еще назвать человека пытающегося сравнивать glibc с embedded libc?

С сабжем связываться пока стремно, хрен его знает что там в реальной жизни с posix совместимостью. Кстати, как у него обстоят дела с open posix test suite, например?

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

А как еще назвать человека пытающегося сравнивать glibc с
embedded libc?

Тупи в другом месте плиз, троль 4звёздный.

The authors claim that EGLIBC is not intended to be a fork of
glibc, but rather a variant, accepting patches that the core
glibc developers may reject.
Переводить надо?

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

А, у вас проблемы с английским. Но это не ко мне. Тролль тут все еще вы.

A-234 ★★★★★
()
Ответ на: комментарий от anonymous

Да хрен с ним с английским, вы хоть здравый смысл включите: как библиотека написанная с нуля будет принимать патчи от другого продукта? Бред, одним словом.

A-234 ★★★★★
()
Последнее исправление: A-234 (всего исправлений: 1)
Ответ на: комментарий от A-234

Вы чо, прикалываетесь, или всерьёз? Кто с нуля написан - eglibc??? Мля, да снимите троллю звёзды уже наконец. :)

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

И дались вам мои 4 звезды, тролль анонимный. Ну перепутал я вашу eglibc с сабжем, подумаешь. Так это только и говорит о том что вы тролль, поскольку при чем тут ваша eglibc если обсуждается совсем другая библиотека.

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