Можно ли статически собрать gcc с помощью buildroot?

Я использую buildroot для создания нового кросс-компилятора gcc на выделенной машине.

Это работало нормально, но мне теперь нужно запустить этот gcc с другой машины, на которой у меня не та же версия libc :-(. Конечно, gcc тогда завис.

Можно ли статически собрать gcc с помощью buildroot?


person JCLL    schedule 10.10.2011    source источник


Ответы (2)


Вы можете попробовать передать компоновщику -static (через LDFLAGS), но имейте в виду, что полное статическое связывание больше не поддерживается glibc (соответственно, для этого требуется сборка glibc, которая поддерживает статическое связывание).

Это связано с тем, что библиотеки nss (переключатель сервера имен) будут загружаться динамически (если только вы не скомпилируете свой собственный glibc, но это противоречит цели nss). Однако этого может быть достаточно для уменьшения зависимости от системных библиотек.

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

person sstn    schedule 10.10.2011

Если ваша цель состоит только в создании перемещаемой цепочки инструментов, статической связи с expat, gmp, mpfr и mpc должно быть достаточно. Вы можете просто применить https://patchwork.ozlabs.org/patch/359841/

person Jérôme Pouiller    schedule 14.12.2015