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)

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

Это же очевидно - не glibc/uclibc/eglibc мешают задаче построения полностью проприетарного userspace. Теперь не надо мучаться с портированием разной BSD-шной отсебятины или юзать нижний уровень андроида в качестве платформы. Теперь есть нормальный libc и клоны busybox'a. Очень многие наши (и не наши) конторы будут счастливы. Только нужно разрекламировать.

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

А батенька Столлман-то был прав.

я наверное немного не в теме, или просто не уловил суть. поясните, пожалуйста, в чём был прав батюшка Столлман.

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

Но это неизбежно - вместе с clang создать полностью закрытый фреймворк - спрос на это огромен. Народ не жалеет бабосов для того, чтобы таки решить проблему отсутствия такого фреймворка.

На таком фреймворке можно лепить свою платформу без страха и рисков, спокойно, контролируя ее полностью, нагибая пользователей (которые будут очень рады нагибаться - см. эмбедчики), и используя традиционные методы разработки. Не надо ни с кем договариваться, под кого-то прогибаться, просто пилишь и всё. С ядром всё достаточно понятно, привыкли уже, но там и нет ничего ценного никогда, не жалко. А полностью контроллируемая базовая система дорогого стоит.

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

Для embedded. И вообще глянь таблицу сравнения с аналогами.

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

Про тивоизацию и тотальную проприетаризацию. И ударит это в первую очередь по пользователям.

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

musl is lightweight, fast, simple, free, and strives to be correct in the sense of standards-conformance and safety.

Вопросы?

anonymous
()

Ерунда какая-то - сравнение реализаций по состоянию на 2011 год.

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

Он говорил, что стоит только выпустить софт под лицензией, дающей право использующим закрыть код форков и клонов, как его у тебя тут же сопрут и закроют.

И да, он был прав. Mac OS X тому пример. И, судя по комментариям выше, скоро примеров будет больше.

Adonai ★★★
()

Закопать.

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

У макос только aqua закрыта. Все остальное есть в свободном доступе

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

стоит только выпустить софт под лицензией, дающей право использующим закрыть код форков и клонов, как его у тебя тут же сопрут и закроют

Ещё один, называющий копирование воровством... :/

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

Для всякого эмбеднутого добра с линуксом. uClibc - это трэш местами, остальное перечисленное слишком толстое. Ну и да, вопрос лицензии хоть и не на первом месте, но всё равно про него надо помнить.

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

Он говорил, что стоит только выпустить софт под лицензией, дающей право использующим закрыть код форков и клонов, как его у тебя тут же сопрут и закроют.

Может есть хоть один пример в истории того что лицензия GPL остановила кого-то от кражи кода? Как вообще выглядит эта процедура для кода на C? Даже в США где есть юристы специализирующиеся в этой сфере...

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Ещё раз: вопроса с лицензией нет. Там LGPL. Ты можешь динамически линковаться с чем угодно.

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

лицензия GPL остановила кого-то от кражи кода?

Таких историй достаточно много, см. en.wikipedia.org/wiki/Electronic_Frontier_Foundation

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

...стоит только выпустить софт под лицензией, дающей право использующим закрыть код форков и клонов, как его у тебя тут же сопрут и закроют.

Ну, допустим. И что? Сопрут != унесут всё с собой, код всё так же остаётся в руках сообщества. Кто НЕ хочет контрибутить в FOSS, тот всегда найдёт альтернативу. Кто может, тот будет помогать проекту, потому что даже проприетарщики нуждаются в дальнейшем развитии «украденного». Если же «украденный» шмот кода постоянно патчить проприетарными доделками, это гораздо больший головняк, чем внести всё то же самое в общую открытую базу. Логично?

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

Кто нибудь объяснит зачем оно нужно?

Оно меньше чем dietlibc или uClibc, проще конфигурируется, проще переносится на другие платформы, его проще кастрировать.

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

напиши, для каких задач её сделали?

It was developed by Rich Felker with the goal to write a clean, efficient and standards-conformant libc implementation. It is designed from scratch and optimized for static linking, allowing any application to be deployed as a single portable binary file.

uclibc

Ужасный, умышленно обфусцированный код, и жутко падучая. Пруф: http://git.uclibc.org/uClibc/tree/libc/misc/time/time.c#n304 Попробуйте «прочитать» код этой небольшой функции, и напишите здесь, как именно он работает.

dietlibc

http://ru.wikipedia.org/wiki/Dietlibc#.D0.9D.D0.B5.D0.B4.D0.BE.D1.81.D1.82.D0...

eglibc

Жирная, ибо наследие глибса.

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

Оно меньше чем dietlibc

Нет, не меньше.

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

И да, он был прав. Mac OS X тому пример

en.wikipedia.org/wiki/Darwin_(operating_saystem)

никто форки не закрывал

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

Речь была не о том, что glibc монстр.

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

Было бы неплохо.

Уже есть. Как называется, думаю, сам догадаешься.

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

А если оригинальный проект изначально маленький, а за плечами проприетарных клиентов большие IT-компании? Автор его забросит, а украденное потеряется в недрах.

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

Ну, Столлман утверждает, что если бы GCC был не GPL, мы бы на данный момент имели бы сонмы проприетарных компиляторов, несовместимых друг с другом.

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

сонмы ... компиляторов, несовместимых друг с другом

Кажется, это не связано напрямую с открытостью/закрытостью. Более того, разработчики в принципе не могут сделать софт, решительно не совместимый с де-факто стандартами - потребители не поймут...

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

Это Вы, например, код ядра FreeBSD 2.2 не читали...

Ага, ну так подтвердите, что Вы читали, и таки распишите тут, как работает код по ссылке выше. Болтать все мастера.

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

GPL для библиотек - это приговор. Есть LGPL, Но вообще все свободные лицензии хороши. WTFPL - особенно

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

Зато они могут наплодить «расширений» стандарта и завязать на эти расширения весь фреймворк. И впаривать это благодарным потребителям. Спообов вендорлочить немало...

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

Зато они могут наплодить «расширений» стандарта и завязать на
эти расширения весь фреймворк. И впаривать это благодарным
потребителям.

И правильно, полезные расширения так и надо внедрять. Остальные проекты тоже подхватят, а потом и комитет по стандартизации их одобрит.

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