#gcc #buildroot
#gcc #buildroot
Вопрос:
Я использую buildroot для создания нового кросс-компилятора gcc на выделенном компьютере.
Это сработало нормально, но теперь мне нужно запустить этот gcc с другого компьютера, на котором у меня другая версия libc:-(. Конечно, gcc затем разбился.
Можно ли статически построить gcc с помощью buildroot?
Ответ №1:
Вы могли бы попробовать передать -static компоновщику (через LDFLAGS), но имейте в виду, что полное статическое связывание больше не поддерживается glibc (соответственно. для этого нужна сборка glibc, которая поддерживает статическое связывание).
Это связано с тем, что библиотеки nss (переключатель сервера имен) будут загружаться динамически (если вы не скомпилируете свой собственный glibc — но это противоречит цели nss). Однако этого может быть достаточно, чтобы уменьшить зависимости от системных библиотек.
Но я мог бы предположить, что статически связанный gcc довольно огромен — это может привести к длительному времени запуска.
Ответ №2:
Если ваша цель состоит только в создании перемещаемой цепочки инструментов, статической связи с expat, gmp, mpfr и mpc должно быть достаточно. Вы можете просто применить https://patchwork.ozlabs.org/patch/359841 /