Большой файл для FreeBSD

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Большой файл для FreeBSD

Сообщение AbakAngelSoft » 21.06.2009 01:19:11

Изучаю кросскомпиляцию.
Возник вопрос: простенькое cgi приложение "hello world" для win32 весит 190 КБ, а для FreeBSD 530 КБ. Собственно вопрос - это нормально?
Приложение и там и там работает - результат выдает, но почему размер для FreeBSD в четыре раза больше?
Предупреждая возмущения: форум читаю, i386-freebsd-strip.exe пользуюсь, галочки "вырезать символы" и "внешний файл отладки" стоят.
Может для FreeBSD необходимо что-то еще?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Большой файл для FreeBSD

Сообщение Иван Шихалев » 21.06.2009 01:23:50

А модули собраны с поддержкой smartlink?
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Большой файл для FreeBSD

Сообщение Mr.Smart » 21.06.2009 02:01:57

Иван Шихалев писал(а):А модули собраны с поддержкой smartlink?

А кстати вопрос. Официальные бинарники FPC идут откомпилированные с данной опцией?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Большой файл для FreeBSD

Сообщение AbakAngelSoft » 21.06.2009 09:53:34

Да, умное связывание

Добавлено спустя 54 минуты 29 секунд:
Прошу прощения, ввел в заблуждение сообщество. Программа откомпилирована с "умным связыванием", а все модули с помощью make TARGET_OS=freebsd.
Я посмотрел - все по разному что-то с умным связыванием что-то нет. А как это исправлять? С синтаксисом make знаком слабо - на уровне простейших скриптов, а там файлы по 100 КБ! Неужели придется все их перебирать?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Большой файл для FreeBSD

Сообщение Sergei I. Gorelkin » 21.06.2009 13:17:37

Не нужно особо глубоко лезть в makefile... Параметры командной строки комилятора передаются с помощью OPT, т.е. нужна команда вроде:
Код: Выделить всё
make TARGET_OS=freebsd OPT="-CX -XX"
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Большой файл для FreeBSD

Сообщение AbakAngelSoft » 22.06.2009 13:55:53

Великолепно!
make OS_TARGET=freebsd OPT="-Os -O3 -CX -XX -Xs -Xg"
Файл весивший 530 КБ стал весить 88КБ и работать быстрее (несмотря на флаг "приоритет размера над скоростью"). О скорости судил по логам сервера.
Всем спасибо!

Только теперь получается файл для win32 в два раза "жирнее". Хоть это и не принципиально - но получается модули для win32 тоже стоит перебрать?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Большой файл для FreeBSD

Сообщение Sergei I. Gorelkin » 22.06.2009 14:09:28

Не факт, потому что для Windows используется встроенный линкер, который "умный" без дополнительных телодвижений. Но попробуй, мало ли...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru