функций glibc из musl? Я пошарился по исходникам, но там только реализация функций, в .cmake файлах тоже ответа не нашёл (там только критерии собирать или нет)
Так musl же это просто реализация libc и оно выбирается при линковке, разве нет?
Я не могу вкурить, в какой момент часть из musl выбирается. Просто за счёт приоритета(порядок объявления линковки)? musl, потом недостающие ошмётки из libc? Если musl отключён, то все функци из libc?
Сомневаюсь, что можно слинковать glibc вместе с musl, нужно что-то одно выбрать.
Такие вопросы лучше в этот чат https://t.me/joinchat/B44Vi1T-PQA_9TwyAIBu-Q
В этом и фишка. Часть реализации идёт с musl, часть с glibc. Таймкод 01:05:08 https://youtu.be/Z7WuUhPJ-cU Там же и ответ на мой вопрос, просто линкуемся перед glibc)
Я хотел бы все-таки вставить свои пять копеек и добавить, что в общем случае смешивать две реализации libc это плохая идея: например libc может устанавливать хуки перед fork(), буферизовать ввод-вывод, и делать ещё много вещей, которые предполагают, что все функции берутся только из одной реализации. То, о чём говорил Алексей, является намного более частным случаем, когда копируются отдельные функции, вероятно не имеющие никаких скрытых зависимостей. В общем случае линковать нужно всегда только одну библиотеку и никак не две (аллокаторы не в счет). /оффтопик
Ну вот чисто с маслом у меня не заходит, потому что на системах с glibc он хочет линовщик, который системе отсутсвует
Если слинковать функции статически, то соответствующие функции из динамических библиотек уже не используются - вот и весь механизм подмены.
https://t.me/joinchat/VP49ANS8VOcAgG75
Обсуждают сегодня