В письме от Mon, 17 Oct 2011 17:32:58 +0400, Vsevolod
<[email protected]> сообщал:

Для сервера :

        linux-gate.so.1 =>  (0xb77a1000)
        libfbembed.so.2.5 => /opt/firebird/lib/libfbembed.so.2.5 (0xb728d000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7284000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb724b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7155000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb712f000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7110000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb70f7000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb6f9c000)
        libicuuc.so.30 => /opt/firebird/lib/libicuuc.so.30 (0xb6edd000)
        libicudata.so.30 => /opt/firebird/lib/libicudata.so.30 (0xb6d60000)
        libicui18n.so.30 => /opt/firebird/lib/libicui18n.so.30 (0xb6ce1000)
        /lib/ld-linux.so.2 (0xb77a2000)

странно, что не вижу ссылки на  ib_util.dll
или она подгружается динамичечски только при загрузке UDF ???

http://www.ibase.ru/ibfaq.htm#msvcr7


Для удф :

        statically linked


и вот это менч напрягает.
представь, что ты делаешь программу с плагинами, и сама программа у тебя
собрана с BPL (USe Runtime Packages), а плагин - статичен. В результате у
тебя внутри программы будет два разных типа TObject и соответственно всех
последующих классов тоже по два.
Сразу отваливаются операторы as и is и вообще хрен знает что происходит.

В принципе, конечно, взаимодействие FB <-> UDF должно быть примитивным и
не влиять... но хрен его знает, как поведут себя две инициализации двух
копий libc

мне интуитивно не нравится

впрочем, у Владимира все собрано динамически, библиотеки кажется
совпадают, а результат тот же...

Текст "мощной" удф :

library test ;

uses
linux;

Function test : Integer ; cdecl ; export ;
Begin
  Result := 400 ;
End ;

Exports test name 'test' ;

begin
end.

вот если бы FPC могу выдать "плоский" текст, со всеми модулями
подклеенными...
Где-то выгрузка программы не срабатывает...

может какого мьютекса ждёт или ещё чего...

Такая примитивная UDF-ка не выдаёт такое же "usr/bin/ld: warning: /opt/firebird/UDF/link.res contains output section; did you forget -T?" ? А если эту примитивную UDF-ку в GNU Pascal ? И сделать аналог на GCC для очистки совести ?

PS. GCC... при всей моей не любви к C/C++...
RIP mr. Ritchie

--
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/

Ответить