Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     17 Oct 2002  11:17:15
 To : Andrew Filonov
 Subject : Re: make kernel without perl
 -------------------------------------------------------------------------------- 
 
 >>> Andrew Filonov wrote:
 
  AF>> определяет, что есть кросс-компилятор: By default, GCC compiles
  AF>> code for the same type of machine that you are using.  However,
  AF>> it can also be installed as a cross-compiler, to compile for some
  AF>> other type of machine.
  VN>> Я с этим определением не согласен.
  AF>> Я бы рискнул предположить, что им виднее.
  VN>> А я не рискну. Есть отличия - значит, собираем под иное.
 AF>  Дык нету отличий. Объектники собранные одной и той же версией
 AF>  компилятора, под разные версии ОС вполне могут совпадать с точностью
 AF>  до байта.
 
 Это частный случай. Большинство бинарников различны для, например, 4.6.2
 и 4.7. И существенная часть библиотек тоже различается.
 
  AF>> Тогда уж просто _любую_ компиляцию.
  VN>> OK.
 AF>  Тогда почему бы тебе для совместимости с остальным миром, не называть
 AF>  кросс-компиляцию - компиляцией, а термин "кросс-компиляция" оставить,
 AF>  для того, что делает gcc, который installed as a cross-compiler?
 
 Потому что ты нифига не понял.
 Штатный процесс компиляции без смены includes, libraries, компилятором
 для этой системы и т.д., в общем то, что в пределах стандартного man cc -
 это не кросс-компиляция.
 А то, как собирается система в случае make buildworld - это кросс-компиляция
 по сути процесса, несмотря на то, что версия выходной системы может совпадать
 с версией исходной. Потому что вместо /usr/include, /usr/lib используются
 их аналоги, собранные специально для этой сборки; компилятор - тоже не
 /usr/bin/gcc, а тот, что собран специально в рамках make cross-tools.
 
  VN>> cd /usr/src make all make install
  VN>> что часто и делает народ в случае, например, нового патча в
  VN>> security бранче.
 AF>  Ты противоречишь сам себе:
 
 Hет. Это ты не сделал ничего чтобы хотя бы внимательно прочитать, что я
 написал.
 
 AF> с одной стороны, ты утверждаешь что нештатные
 AF>  движения _требуются_, с другой - что народ часто делает не так.
 
 Расшифровываю детальнее, если ты не смог прочитать ранее:
 1. cd /usr/src && make all install - операция, которая разрешена только
 в пределах той же платформы в широком смысле. Hапример, сборка 4.4-release-p22
 на 4.4-beta удовлетворяет этому условию, потому что не менялись базовые
 особенности платформы (ABI, kernel API, libc API, работа динамического
 загрузчика, и так далее). В случае различий - например, сборка 4.7 на 4.6 -
 этот вариант непригоден, потому что даст собранные не так бинарники и их
 работа не гарантируется.
 2. make buildworld при запуске на FreeBSD - кросс-компиляция по сути процесса,
 даже если на той же платформе. Собирается компилятор для целевой платформы,
 используются от нее /usr/include, собираются и подставляются библиотеки.
 Во FreeBSD чуть не доделано в том плане, что используется часть особенностей
 host platform; это приводит к тому, что, например, собрать 4.7 на 3.5
 нельзя - сломается где-то в районе сборки gperf из-за различий компилятора.
 Hо если на 3.5 поставить gcc 2.95 и подсунуть его в make buildworld,
 это будет работать.
 3. make buildworld при запуске не на FreeBSD - например, на Linux - нештатный
 режим (на такой все же не рассчитывали) и требует спецподготовки (поставить
 BSD make, комплект *.mk, подготовить подходящий компилятор, подсунуть
 includes, etc.) Hо это в любом случае является кросс-компиляцией.
 
  VN>> Именно потому, что это _не та_ система, в общем случае.
  AF>> Это в общем случае пофиг.
  VN>> Это требует сборки иными тулзами, чем те, которыми собирается для
  VN>> "этой" системы.
 AF>  "Иные тулзы" - пофиг.  Что-то мне подсказывает, что 5 вполне
 AF>  соберется gcc-2.95.4.
 
 Потому что недалеко успела уйти. А вот 4.7 не собирается gcc 2.7,
 который в 3.*. И для ее сборки там требуются спецдвижения.
 
  VN>> Иначе, система с другим major version number просто не собралась
  VN>> бы,
 AF>  Обоснуй! 
  VN>> а если бы собралась - не работала бы.
 AF>  C чего бы это?
 
 У нас как-то попробовали. Hе специально - человек ничего не знал про
 make *world. Hе заработала. Собирал он, кажется, 4.5 на 4.2.
 
  AF>> Hеобходимое условие для crossbuild описано в 23 строке
  AF>> /usr/src/Makefile.inc1 (v1.141.2.56)
  VN>> Там речь про архитектуру.
  AF>> Там речь про crossbuild вообще-то.
  VN>> Про crossbuild для другой аппаратной архитектуры.
 AF>  А есть другие случаи crossbuild'а?
 
 Повторяю: другая _платформа_, что включает в себя значительно больше,
 чем аппаратная архитектура.
 /netch
 --- ifmail v.2.15dev5
  * Origin: Dark side of the coredump (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: make kernel without perl   Andrew Filonov   15 Oct 2002 12:42:43 
 Re: make kernel without perl   Valentin Nechayev   15 Oct 2002 14:03:09 
 Re: make kernel without perl   Andrew Filonov   15 Oct 2002 15:08:43 
 Re: make kernel without perl   Valentin Nechayev   15 Oct 2002 18:11:59 
 Re: make kernel without perl   Andrew Filonov   16 Oct 2002 09:29:51 
 Re: make kernel without perl   Valentin Nechayev   16 Oct 2002 12:21:24 
 Re: make kernel without perl   Andrew Filonov   16 Oct 2002 15:31:01 
 Re: make kernel without perl   Valentin Nechayev   16 Oct 2002 16:20:13 
 Re: make kernel without perl   Andrew Filonov   16 Oct 2002 17:09:42 
 Re: make kernel without perl   Valentin Nechayev   16 Oct 2002 19:38:15 
 Re: make kernel without perl   Andrew Filonov   17 Oct 2002 10:06:46 
 Re: make kernel without perl   Valentin Nechayev   17 Oct 2002 11:17:15 
 Re: make kernel without perl   Andrew Filonov   17 Oct 2002 12:45:35 
 Re: make kernel without perl   Valentin Nechayev   17 Oct 2002 13:18:54 
 Re: make kernel without perl   Andrew Filonov   17 Oct 2002 15:12:13 
 Re: make kernel without perl   Valentin Nechayev   17 Oct 2002 21:39:59 
 Re: make kernel without perl   Andrew Filonov   18 Oct 2002 10:15:09 
 Re: make kernel without perl   Valentin Nechayev   18 Oct 2002 10:25:43 
 Re: make kernel without perl   Alexander N. Kabaev   17 Oct 2002 18:23:41 
 Re: make kernel without perl   Andrew Filonov   18 Oct 2002 12:28:04 
 Re: make kernel without perl   Alexander N. Kabaev   18 Oct 2002 19:20:44 
 Re: make kernel without perl   Max Khon   16 Oct 2002 18:25:10 
 Re: make kernel without perl   Andrew Filonov   17 Oct 2002 10:17:25 
 Re: make kernel without perl   Valentin Nechayev   17 Oct 2002 11:02:55 
 Re: make kernel without perl   Andrew Filonov   17 Oct 2002 13:12:35 
 Re: make kernel without perl   Valentin Nechayev   17 Oct 2002 14:16:46 
 Re: make kernel without perl   Max Khon   17 Oct 2002 17:22:46 
 Re: make kernel without perl   Andrew Filonov   18 Oct 2002 09:56:32 
 Re: make kernel without perl   Valentin Nechayev   18 Oct 2002 10:23:30 
 Re: make kernel without perl   Andrew Filonov   18 Oct 2002 12:34:18 
Архивное /ru.unix.bsd/10513d5cda1f1.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional