Установка fpc на FreeBSD amd64 из портов
Модератор: Модераторы
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
Установка fpc на FreeBSD amd64 из портов
Поддержка i386 на FreeBSD поднята.
По аналогии с установкой других i386 программ делаю:
В MakeFile закомментировать # ONLY_FOR_ARCHS = i386
и добавить ARCH = i386
все скачивает, долго что-то собирает и в конце
i386/prt0.as: Assembler messages:
i386/prt0.as:51: Error: suffix or operands invalid for `push'
i386/prt0.as:53: Error: suffix or operands invalid for `push'
i386/prt0.as:54: Error: suffix or operands invalid for `push'
i386/prt0.as:55: Error: suffix or operands invalid for `push'
i386/prt0.as:59: Error: `8(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:61: Error: `-4(%edi)' is not a valid 64 bit base/index expression
i386/prt0.as:63: Error: `4(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:64: Error: `12(%ebp,%ebx,4)' is not a valid 64 bit base/index expression
i386/prt0.as:69: Error: `8(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:73: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:77: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:79: Error: `1(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:83: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:97: Error: suffix or operands invalid for `push'
i386/prt0.as:107: Error: suffix or operands invalid for `push'
gmake[5]: *** [prt0.o] Error 1
gmake[4]: *** [freebsd_all] Error 2
gmake[3]: *** [rtl] Error 2
gmake[2]: *** [next] Error 2
gmake[1]: *** [ppc1] Error 2
gmake: *** [cycle] Error 2
как указать ассемблеру архитектуру? и какие еще камни будут?
По аналогии с установкой других i386 программ делаю:
В MakeFile закомментировать # ONLY_FOR_ARCHS = i386
и добавить ARCH = i386
все скачивает, долго что-то собирает и в конце
i386/prt0.as: Assembler messages:
i386/prt0.as:51: Error: suffix or operands invalid for `push'
i386/prt0.as:53: Error: suffix or operands invalid for `push'
i386/prt0.as:54: Error: suffix or operands invalid for `push'
i386/prt0.as:55: Error: suffix or operands invalid for `push'
i386/prt0.as:59: Error: `8(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:61: Error: `-4(%edi)' is not a valid 64 bit base/index expression
i386/prt0.as:63: Error: `4(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:64: Error: `12(%ebp,%ebx,4)' is not a valid 64 bit base/index expression
i386/prt0.as:69: Error: `8(%ebp)' is not a valid 64 bit base/index expression
i386/prt0.as:73: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:77: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:79: Error: `1(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:83: Error: `(%eax)' is not a valid 64 bit base/index expression
i386/prt0.as:97: Error: suffix or operands invalid for `push'
i386/prt0.as:107: Error: suffix or operands invalid for `push'
gmake[5]: *** [prt0.o] Error 1
gmake[4]: *** [freebsd_all] Error 2
gmake[3]: *** [rtl] Error 2
gmake[2]: *** [next] Error 2
gmake[1]: *** [ppc1] Error 2
gmake: *** [cycle] Error 2
как указать ассемблеру архитектуру? и какие еще камни будут?
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
Спасибо ваша ссылка помогла установил снапшот, но при сборке проектов вываливает
Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127
что делать дальше?
Добавлено спустя 2 минуты 11 секунд:
судя по всему этого файла просто нет! где его брать?
Error: ppcx64 can't be executed, error message: Failed to execute "ppcx64", error code: 127
что делать дальше?
Добавлено спустя 2 минуты 11 секунд:
судя по всему этого файла просто нет! где его брать?
На сколько я понял вы пытаетесь собирать под i386 в системе x86_64.
так ppcx64 - 64 битная весия компилятора, а вам нужна ppc386.
так ppcx64 - 64 битная весия компилятора, а вам нужна ppc386.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
уже нет. На freepascal.org говорят что fpc 2.2.4 i386 под x86_64 на FreeBSD не соберешь. Есть snapshot fpc 2.3.1 для FreeBSD x86_64. Я его поставил (просто распаковал в нужные каталоги /usr/bin /usr/lib и т.д.) но при компиляции выдает вышеозначенное сообщение. Указанный файл нашелся в папке /usr/lib/fpc/2.3.1. Из командной строки вызывается нормально (выводит справку). компилирую так fpc -Mobjfpc -O3 -CX -Os -Xs -XX my.lpr -FE/home/www/cgi/bin -omy
Добавлено спустя 3 минуты 4 секунды:
my.lpr тестовое cgi приложение "hello world"
Добавлено спустя 15 минут 51 секунду:
На других дистрибутивах linux 64 этот файлик лежит в bin я тоже переложил его соответственно в /usr/bin сообщения изменились:
Fatal: Can't find unit httpDefs used by my
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
Добавлено спустя 2 часа 5 минут 9 секунд:
Итог установка fpc для FreeBSD под x86_64
скачиваем
http://www.stack.nl/~marcov/snapshot-fr ... 98.tar.bz2
распаковываем в соответствующие папки /usr/...
добавляем в /etc/ файл fpc.cfg из другой системы где fpc работает
поправляем пути в файле fpc.cfg
копируем /usr/lib/fpc/2.3.1/ppcx64 в /usr/bin/
ура! работает.
Добавлено спустя 3 минуты 4 секунды:
my.lpr тестовое cgi приложение "hello world"
Добавлено спустя 15 минут 51 секунду:
На других дистрибутивах linux 64 этот файлик лежит в bin я тоже переложил его соответственно в /usr/bin сообщения изменились:
Fatal: Can't find unit httpDefs used by my
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
Добавлено спустя 2 часа 5 минут 9 секунд:
Итог установка fpc для FreeBSD под x86_64
скачиваем
http://www.stack.nl/~marcov/snapshot-fr ... 98.tar.bz2
распаковываем в соответствующие папки /usr/...
добавляем в /etc/ файл fpc.cfg из другой системы где fpc работает
поправляем пути в файле fpc.cfg
копируем /usr/lib/fpc/2.3.1/ppcx64 в /usr/bin/
ура! работает.
Поздравляю! Вы прошли квест! 
P.S.
Я так понял, что в 2.4.0 таки не будет FreeBSD x86_64 версии.
P.S.
Я так понял, что в 2.4.0 таки не будет FreeBSD x86_64 версии.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
Таки прошел!
Не будет? Это не есть хорошо!
FreeBSD в основном стоит на серверах, а на сервера народ старается железо помощнее и поновее.
Хотя помимо fpc у многих программных продуктов проблема с FreeBSD x86_64. А поддержка i386 на этой платформе подкачала
.
Но наш проект уже выпущен под FreeBSD x86_64 и даже работает.
Не будет? Это не есть хорошо!
FreeBSD в основном стоит на серверах, а на сервера народ старается железо помощнее и поновее.
Хотя помимо fpc у многих программных продуктов проблема с FreeBSD x86_64. А поддержка i386 на этой платформе подкачала
Но наш проект уже выпущен под FreeBSD x86_64 и даже работает.
Поставил и себе. При компиляции паскалевских прог выдает странное сообщение:
ar: warning: creating libplcalck.a
где pcalck - имя компилируемой программы
ar: warning: creating libplcalck.a
где pcalck - имя компилируемой программы
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
если вы не ошиблись при копировании то ваша программа называется pcalck, а линкер требует библиотеку plcalck. Дайте ему то что он просит и все будут счастливы. 
AbakAngelSoft писал(а):если вы не ошиблись при копировании то ваша программа называется pcalck, а линкер требует библиотеку plcalck. Дайте ему то что он просит и все будут счастливы.
Он компилит нормально. Но постоянно выводит такой варнинг.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
у меня тоже выводить для каждой программы и модуля сообщение о том что создан *.a но без всяческих warning-ов. 
AbakAngelSoft писал(а):у меня тоже выводить для каждой программы и модуля сообщение о том что создан *.a но без всяческих warning-ов.
Код: Выделить всё
program test;
begin
WriteLn('test');
end.Код: Выделить всё
# fpc test.pas
Free Pascal Compiler version 2.3.1 [2008/09/17] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: FreeBSD for x86-64
Compiling test.pas
Assembling test
Assembling with smartlinking test
ar: warning: creating libptest.a
Linking test
5 lines compiled, 0.1 secКод: Выделить всё
# ./test
test