[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