Как указать компилятор для кросс-компиляции rustc?

Когда я компилирую rustc, в скрипте configure есть возможность указать другие цели для основных библиотек (libcore, libstd и т. д.), например:

./configure --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu

скомпилирует и установит rustlibs для обеих этих архитектур.

Моя проблема в том, что эта команда будет использовать мой gcc по умолчанию для компиляции всего (поскольку моя система является мультибиблиотекой, она также успешно скомпилируется в i686), но вместо этого я хочу использовать мой компилятор цепочки инструментов, например:

В моей системе amd64 есть 2 цепочки инструментов: i686-unknown-linux-gnu и arm-unknown-linux-gnueabi.

Когда я запускаю configure с этими параметрами:

./configure --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu,arm-unknown-linux-gnueabi

При компиляции rustlibs я хочу, чтобы скрипт использовал x86_64-unknown-linux-gnu-gcc для x86_64 и i686-unknown-linux-gnu-gcc для i686 и arm-unknown-linux-gnueabi-gcc для arm.

Таким образом, rustlib будет скомпилирован с использованием glibc и других библиотек из цепочки инструментов, а не по умолчанию из моей системы. Это возможно?


person Sassa    schedule 06.03.2017    source источник


Ответы (1)


Он указывается с помощью переменных среды с суффиксом: см. здесь за то, что они делают в CI.

person Tatsuyuki Ishi    schedule 07.03.2017
comment
У меня это не сработало, сработало создание файла config.toml с [target.i686-unknown-linux-gnu] cc = "i686-unknown-linux-gnu-gcc" cxx = "i686-unknown-linux-gnu-g++" - person Sassa; 09.03.2017