FreeBSD 6.3 (пи пи пи пииии пи пииии ) FPC

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

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

Ответить
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

FreeBSD 6.3 (пи пи пи пииии пи пииии ) FPC

Сообщение grot »

Здравствуйте коллеги !
(Заголовок сообщения подвергнут цензуре !)

Есть два компьютера с FreeBSD 6.3 : боевой и тестовый примерно одинаковой конфигурации.
На тестовом стоит FPC 2.4.0 - там я и компилирую свое простое приложение :
утилита для CGI - читает пару переменных окружения и запускает другую программу:
fpc -Mdelphi web.pas

пробовал параметр -XD
но все равно выходит статическая линковка :
(
%ldd ./web.cgi
ldd: ./web.cgi: not a dynamic executable
)
Внимание вопрос :
ПОЧЕМУ на тестовом компьютере приложение работает, а на боевом НЕТ !?!
(а выдает невразумительное : Runtime error 216 at $111916B2 )

Спасибо !
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

grot
ldd: ./web.cgi: not a dynamic executable

Подобную ошибку выдает ldd если его натравить на скрипт
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

coyot.rush писал(а):
grot
ldd: ./web.cgi: not a dynamic executable

Подобную ошибку выдает ldd если его натравить на скрипт


Ошибку? Где ? Чью ? Я что-то недопонимаю ...

В данном случае ldd просто информирует, что
данное приложение слинковано статически и все !

А есть что сказать по существу вопроса ?
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

ПОЧЕМУ на тестовом компьютере приложение работает, а на боевом НЕТ !?!

Сам же написал на тестовом стоит fpc. значит с его устоновкой произошла какаята донастройка ситемы :?:
Может каието ограничения в виде ulimit :?:
PS эт только домыслы сам юзаю Linux. хотя там и там POSIX
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

coyot.rush писал(а):
ПОЧЕМУ на тестовом компьютере приложение работает, а на боевом НЕТ !?!

Сам же написал на тестовом стоит fpc. значит с его устоновкой произошла какаята донастройка ситемы :?:
Может каието ограничения в виде ulimit :?:
PS эт только домыслы сам юзаю Linux. хотя там и там POSIX


Зашел как root - безрезультатно !

"Донастройка" при установке FPC возможна ...
Но при статической линковке внешние зависимости стремятся к нулю ...

Ха, ну и как тут возможно "распространять" готовую систему,
если между двумя своими компьютерами НЕ РАБОТАЕТ ?!?
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

Посчитал улетает по адресу aж 273 MB. :idea: Не свойственно для консольного приложения явно косяк вида

Код: Выделить всё

 mov eax,some_var
jmp eax

Что гдето не так считаеться. Может ошибка в коде :?:
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

Продолжение истории - делаю, как делал раньше бинарники для FreeBSD:
Захожу на Open SuSE 11.1 с FPC 2.2.2
так-же компилирую и переношу бинарник на FreeBSD 6.3
и запускаю :

%./web.cgi
ELF binary type "0" not known.
./web.cgi: Exec format error. Binary file not executable.

%brandelf -t Linux ./web.cgi
%./web.cgi
Segmentation fault

%ldd ./web.cgi
ldd: ./web.cgi: not a dynamic executable

Старый трюк не прошел,
вы спросите, а при чем здесь Java ...
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

На Open SuSE 11.1 с FPC 2.2.2 запускаеться???
PS FreeBSD 6.3, вышел FreeBSD 8
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

coyot.rush писал(а):На Open SuSE 11.1 с FPC 2.2.2 запускаеться???

Конечно !

coyot.rush писал(а):PS FreeBSD 6.3, вышел FreeBSD 8

Не могу - у меня хостинг на 6.3 ...
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

Может это поможет Linux в гостях у FreeBSD http://www.xakep.ru/magazine/xa/101/116/1.asp
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

Ну приложение в действительности не такое уж и простое - там используются Sockets для подключения к некоему серверу.
( стандартный unit Sockets). С похожими проблемами сталкивался и раньше когда делал клиента для E-mail ( по сути теже Sockets)
из CGI приложения. "Перетоптал" все что нашел - во FreeBSD 6.3 заработало _только_!_!_! приложение на базе Synapse с динамической линковкой. ( делал по вышеприведенному сценарию "из SuSE" ), а все остальное вываливалось с абсолютно неадекватными сообщениями ...

Похоже, придется перелопачивать Sockets в сторону Synapse...
(пи - пи ) или делать как все на этой (пи - пи) Java ?
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

Итак - итоги изысканий FPC vs. Java
на сервере FreeBSD 6.3 ( RAM - 64Mb, HDD 3G, on VirtualBox 3.x )

Испытатель: ab.exe (from Apache 2.2 on Windows) - 1000 запросов

FPC 2.4.0 - взят обрезанный пример из ExtPascal ( модуль fast-cgi на Apache 1.3.x mod_fastcgi )
- выводит только простой текст "Hello World!"

D:\temp>ab -v 0 -n 1000 -c 10 http://192.168.0.4/cgi-bin/web.fcgi
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.4 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software: Apache/1.3.39
Server Hostname: 192.168.0.4
Server Port: 80

Document Path: /cgi-bin/web.fcgi
Document Length: 14 bytes

Concurrency Level: 10
Time taken for tests: 33.594 seconds
Complete requests: 1000
Failed requests: 145
(Connect: 0, Receive: 0, Length: 145, Exceptions: 0)
Write errors: 0
Non-2xx responses: 145
Total transferred: 327995 bytes
HTML transferred: 98245 bytes
Requests per second: 29.77 [#/sec] (mean)
Time per request: 335.938 [ms] (mean)
Time per request: 33.594 [ms] (mean, across all concurrent requests)
Transfer rate: 9.53 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.2 0 16
Processing: 0 335 234.6 328 1609
Waiting: 0 333 233.6 328 1609
Total: 0 336 234.4 328 1609

Percentage of the requests served within a certain time (ms)
50% 328
66% 375
75% 422
80% 438
90% 516
95% 734
98% 1141
99% 1375
100% 1609 (longest request)

----------------------------------------------------------------------------------------------------
В результате испытуемый модуль просто ВЫЛЕТЕЛ !
========================================================================

Java :
JRE: diablo-latte-freebsd6-i386-1.6.0_07-b02.tar.bz2
apache-tomcat-6.0.18.tar.gz
Испытывается сервлет HelloWorld из прилагаемых примеров :

D:\temp>ab -v 0 -n 1000 -c 10 http://192.168.0.4:8080/examples/servlets/servlet/
HelloWorldExample
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.4 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software: Apache-Coyote/1.1
Server Hostname: 192.168.0.4
Server Port: 8080

Document Path: /examples/servlets/servlet/HelloWorldExample
Document Length: 359 bytes

Concurrency Level: 10
Time taken for tests: 2.500 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 507000 bytes
HTML transferred: 359000 bytes
Requests per second: 400.00 [#/sec] (mean)
Time per request: 25.000 [ms] (mean)
Time per request: 2.500 [ms] (mean, across all concurrent requests)
Transfer rate: 198.05 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 3.1 0 16
Processing: 0 24 16.0 16 125
Waiting: 0 23 15.8 16 125
Total: 0 24 16.2 16 125

Percentage of the requests served within a certain time (ms)
50% 16
66% 31
75% 31
80% 31
90% 31
95% 47
98% 78
99% 109
100% 125 (longest request)
--------------------------------------------------------------------------------------------------------
Сервлет - живой и легко прошел повторный аналогичный тест ...

Думайте и решайте сами ...
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Скорее всего где-то есть ошибка, либо что-то не учли в момент разработки. Более детальный разбор поможет вам в этом.
Ответить