Создание системы LFS с использованием ELLCC

Во-первых, это не моя первая попытка создания системы LFS – я уже успешно создал LFS 7.8 и LFS 7.8-systemd.

Я хотел бы заменить GCC + GlibC на ELLCC , который является Clang / LLVM + musl.

Он имеет несколько ограничений – наиболее заметным из которых является то, что в настоящее время ему не хватает поддержки динамической компоновки, но предполагаемый конец представляет собой сборку сшитого скрещивания (или, лучше всего, скомпилированную на устройстве), как часть эксперимента в заменив Android полностью на Linux на моем старом устройстве, поэтому эффективность двоичных файлов создала вопросы (отсюда и причина, по которой я заинтересован в использовании ELLCC.)

Реальный вопрос: как мне это сделать? Просто заменив GCC и GlibC на ELLCC, я даже не позволю мне пройти установку заголовков API Linux. Я могу скомпилировать некоторые из программ из источника отдельно, но они всегда в конечном итоге полагаются на хост-систему так или иначе.

Вы правы – просто обмен инструментами не волшебным образом заставит его работать.

Как опытный музыкант, я могу сказать, что это не будет работать «из коробки». Многим, многим программам по-прежнему требуются особые случаи glibc, которые обеспечивают даже не в мультии, и особенно многие проектные программы GNU даже не будут компилироваться без присутствия glibc.

В настоящее время ведется большая работа по фиксации популярных, но сломанных программ, и вы можете контролировать и участвовать, если хотите. Есть проекты, такие как саботаж linux, который создает патчи для таких программ, чтобы заставить их работать с musl (и другими менее известными libcs), поэтому, если вы достаточно храбры, вы можете попытаться исправить серьезные поломки сборки с помощью этих проектов.

Чтобы сделать обычную работу LFS, вы, вероятно, повредите книгу. (В 2009 году, когда я построил LFS в последний раз, я помню, что все еще были необъяснимые инструкции, которые работали над некоторыми специальными случаями glibc)

В качестве альтернативы вы можете попробовать:

  • CLFS , который заменил glibc муслином. Вы можете объединить обе книги, чтобы сделать что-то, что будет работать в вашей ситуации. Хотя он полностью опускает классическое программное обеспечение GNU.
  • Используйте один из этих новых дистрибутивов Linux на основе musl. В качестве примера я могу назвать саботаж и альпийский, но муслические вики имена больше. По крайней мере, вы можете создавать двоичные файлы на хосте, и они пытаются импортировать их на ваше устройство.

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