Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 14.06.2005
Откуда: Москва
При сборке пакета с помощью apt-build увидел в логе, что на этапе запуска ./configure оно передаёт ему, что сборка ведётся на i486-linux-gnu. Почитав ./debian/rules определил, что за это отвечает dpkg-architecture.
Код:
vlok@core-laptop:~$ dpkg-architecture
DEB_BUILD_ARCH=i386
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=i386
DEB_BUILD_GNU_CPU=i486
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=i486-linux-gnu
DEB_HOST_ARCH=i386
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=i386
DEB_HOST_GNU_CPU=i486
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=i486-linux-gnu

При попытке сменить его значения оно выдаёт:
Код:
vlok@core-laptop:~$ sudo dpkg-architecture -ai686 -ti686-pc-linux-gnu -f
dpkg-architecture: warning: Default GNU system type  for Debian arch i686 does not match specified GNU system type i686-pc-linux-gnu
dpkg-architecture: warning: Specified GNU system type i686-pc-linux-gnu does not match gcc system type i486-linux-gnu.
DEB_BUILD_ARCH=i386
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=i386
DEB_BUILD_GNU_CPU=i486
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=i486-linux-gnu
DEB_HOST_ARCH=i686
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=i686
DEB_HOST_GNU_CPU=i686
DEB_HOST_GNU_SYSTEM=pc-linux-gnu
DEB_HOST_GNU_TYPE=i686-pc-linux-gnu

И ничего в итоге не меняется. Как я понимаю всё дело в том, что gcc как-то жёстко завязано на i486-linux-gnu.
Код:
vlok@core-laptop:~$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

Собственно вопрос: как сменить цель у gcc на i686-linux-gnu? И вообще, влияет это на что-нибудь? Вот содержимое влияющих на сборку системный переменных и мой /etc/apt/apt-build.conf:
Код:
vlok@core-laptop:~$ echo $CHOST
i686-pc-linux-gnu
vlok@core-laptop:~$ echo $HOSTTYPE
i686
vlok@core-laptop:~$ echo $CFLAGS
-march=prescott -O2 -pipe -fomit-frame-pointer
vlok@core-laptop:~$ echo $CXXFLAGS
-march=prescott -O2 -pipe -fomit-frame-pointer

Код:
build-dir = /var/cache/apt-build/build
repository-dir = /var/cache/apt-build/repository
Olevel = -O2
mtune = -mtune=prescott
options = "-pipe -fomit-frame-pointer"
make_options = "-j3"

Ах да, сборка ведётся для core duo.

_________________
JustDoIt&ShutUp!
OS: Arch Linux на ноутбуке, CentOS на сервере, Ubuntu на десктопе, Maemo на N810.



Партнер
 

Member
Статус: Не в сети
Регистрация: 08.03.2004
Откуда: Москва
rules - это обычный makefile. Найди мануал по НАПИСАНИЮ мейкфайла и по флагам gcc и все будет. Либо возьми какой-нибудь заранее 686 пакет, пофиг что это будет, хоть rpm, это все равно архивы, распакуй, найди мейкфайл и подсмотри.
Добавлено спустя 3 минуты, 37 секунд
Кстати, на сколько я помню, если ты используешь apt-build install, к примеру, пакет автоматом собирается под твою РЕАЛЬНУЮ архитектуру.

_________________
Software is like a sex, it is better when it is free


 

Member
Статус: Не в сети
Регистрация: 14.06.2005
Откуда: Москва
BaBL писал(а):
rules - это обычный makefile. Найди мануал по НАПИСАНИЮ мейкфайла и по флагам gcc и все будет. Либо возьми какой-нибудь заранее 686 пакет, пофиг что это будет, хоть rpm, это все равно архивы, распакуй, найди мейкфайл и подсмотри.
Не-не, ты меня не понял, я хочу чтобы при apt-build install blablabla, эта самая blablabla уже собиралась со всеми возможными оптимизациями (безопасными :) ), основная идея apt-build как раз в этом, вроде как, и состоит. Править у всех нужных пакетов makefile у меня нет ни цели ни желания)
BaBL писал(а):
Кстати, на сколько я помню, если ты используешь apt-build install, к примеру, пакет автоматом собирается под твою РЕАЛЬНУЮ архитектуру.
Ну если core duo это i486 - то я наверное тогда Папа Римский. :tooth:

Мне ещё вот что интересно, я же передаю gcc, что сборку надо вести для прескота (Gentoo Wiki говорит, что это правильно) Играет ли тогда при этом какую-нибудь роль $CHOST?
Добавлено спустя 4 минуты, 29 секунд
Т.к. если не играет - тогда всё понятно))
Добавлено спустя 6 минут, 29 секунд
Хотя, если бы не играло, то на кой чёрт это надо указывать вместе с -march=prescott, согласно тому же дженту вики? :insane:
Добавлено спустя 11 минут, 37 секунд
Хотя бывает и -march=i686.. всё, запутался вконец, пойду ка я спать..

_________________
JustDoIt&ShutUp!
OS: Arch Linux на ноутбуке, CentOS на сервере, Ubuntu на десктопе, Maemo на N810.


 

Member
Статус: Не в сети
Регистрация: 23.03.2003
Откуда: Красноярск
AlkaNOID CHOST как раз играет САМУЮ ГЛАВНУЮ роль - он определяет целевую архитектуру, а -march - это оптимизация.
Например, CHOST="i686-pc-linux-gnu", CFLAGS="-march=k8 ..." даст 32-битный код.


 

Member
Статус: Не в сети
Регистрация: 08.03.2004
Откуда: Москва
AlkaNOID писал(а):
Ну если core duo это i486 - то я наверное тогда Папа Римский. Довольный и беззубый

у dpkg есть ограничения, не факт что там реально i486, возможно это флаг для DPKG просто.

_________________
Software is like a sex, it is better when it is free


 

Member
Статус: Не в сети
Регистрация: 14.06.2005
Откуда: Москва
Похоже я таки разобрался как заставить dpkg-buildpackage собирать под i686:
Код:
vlok@core-laptop:~$ sudo aptitude show pentium-builder
Password:
Пакет: pentium-builder
Состояние: не установлен
Версия: 0.19
Приоритет: дополнительный
Раздел: universe/devel
Сопровождающий: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Размер в распакованном виде: 81,9k
Зависимости: gcc | g++, perl
Описание: force pentium optimized compilation
 Replaces gcc, cc, and g++ with scripts that build pentium optimized code. (Other processors can be optimized for as well.)

 By default, after installing this package, the compilers will behave normally. However, if the environment variable DEBIAN_BUILDARCH=pentium
 is set, they will enter pentium optimized compile mode.


От себя ничего даже и не добавишь)
Добавлено спустя 1 час, 11 минут, 52 секунды
Мда, всё оказалось не так хорошо, вот скрипт что пихается этим пакетом вместо gcc:
Код:
vlok@core-laptop:~$ less /usr/bin/gcc
#! /usr/bin/perl

if ($ENV{DEBIAN_BUILDARCH} eq undef && $ENV{DEBIAN_BUILDGCCVER} eq undef) {
    @target = ("gcc.real", @ARGV);
} elsif ($ENV{DEBIAN_BUILDARCH} eq undef) {
    @target = ("gcc-" . $ENV{DEBIAN_BUILDGCCVER}, @ARGV);
} elsif ($ENV{DEBIAN_BUILDGCCVER} eq undef) {
    @target = ("gcc.real", "-mcpu=$ENV{DEBIAN_BUILDARCH}",
    "-march=$ENV{DEBIAN_BUILDARCH}", @ARGV);
} else {
    @target = ("gcc-" . $ENV{DEBIAN_BUILDGCCVER},
    "-mcpu=$ENV{DEBIAN_BUILDARCH}", "-march=$ENV{DEBIAN_BUILDARCH}",
    @ARGV);
}

exec @target or die "Unable to exec @target[0]: $!\n";

- оно просто подменяет -mcpu и -march.
Эхх, до сдам сессию - мигрирую на арч или дженту. Тут с этим делом глухо похоже) :)

_________________
JustDoIt&ShutUp!
OS: Arch Linux на ноутбуке, CentOS на сервере, Ubuntu на десктопе, Maemo на N810.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan