[devel] %configure: --host/--build problem
Ivan Zakharyaschev
=?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Пт Ноя 8 02:34:20 MSK 2002
Hello!
Обнаружилось, что в последних сборках emacs archlibdir прнимала значение
.../i686-pc-linux-gnu, хотя должна была, как и раньше,
.../i586-alt-linux (#1535).
Оказалось, что rpm-макрос %configure теперь передаёт ./configure
параметр --build=%_target_platform. После чтения документации по
autoconf и configure (Canadian Cross), я понял, что это в общем-то не
то, что хочется: на самом деле надо устанавливать --host, а не --build:
--build - тип машины, на которой производится сборка
--host - для которой (если не указан, угадывается по типу машины, на
которой производится сборка, при этом значение --build не используется)
--target - очень редкая вещь; нужна для сборки кросс-компиляторов.
Т.е. все эти слова надо понимать по отношению к программе, которая
собирается.
После добавления:
%define _configure_target --host=%_target_platform
в emacs.spec собралось, как надо.
Кто неправ?
Могли ли ещё какие-нибудь пакеты "пострадать" подобным образом при
пересборке?
Ещё я нашёл среди макросов rpm сложный %GNUconfigure, но он, по-моему,
нигде не описан. Зачем он нужен?
Вот что написано в info по autoconf и configure о --host и --build:
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
When you run `configure', you must use both the `--build' and
`--host' options.
The `--build' option is used to specify the configuration name of
the build system. This can normally be the result of running the
`config.guess' shell script, and it is reasonable to use
`--build=`config.guess`'.
The `--host' option is used to specify the configuration name of the
host system.
--
С наилучшими пожеланиями,
Иван Захарьящев, Москва
Подробная информация о списке рассылки Devel