[08:04:27] <virtual_lark> workaround и patch - это, всё же, не костыли. костыль это... crutch :-)
[08:05:47] <virtual_lark> StarGate: с тобой всё нормально? А то в IRC не отображаюся последние строки.
[08:06:07] <virtual_lark> 16:49 < StarGate> [info] Participants on XMPP: "yeo" "landgraf" "Жаба"
"Dima222" "virtual_lark" "subjrs" "7len4ik7" "subj_rs"
"arn" "coopht" "vgodunko" "valexey"
Day changed to 29 Ноя 2011
[10:29:11] <StarGate> [notice] bridge "#ada@irc.tpu.ru <-> ada-ru@conference.jabber.ru" is running in limited mode
[15:11:01] <landgraf> что эт за такое? /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /root/v4l/ada/camerada/obj/camerada_device.o
[15:13:20] <vgodunko> Это не хорошо...
[15:13:27] <vgodunko> TLS - thread local storage
[15:13:44] <vgodunko> Т.е. несоответствие динамических библиотек имеет место быть
[15:13:52] <landgraf> o_O
[15:13:57] <landgraf> это как это так?
[15:14:03] <landgraf> function Errno return Integer;
pragma Import(C, Errno, "errno");
[15:14:09] <landgraf> vgodunko, чей косяк?
[15:16:43] <subj_rs> errno вроде не функция
[15:18:58] <landgraf> а что?
[15:19:00] <landgraf> extern int errno;
[15:19:18] <vgodunko> абсоютно верно
[15:19:57] <landgraf> так, лан, заюзаю florist
[15:21:10] <vgodunko> errno : Interfaces.C.int;
pragma Import (C, errno);
[15:21:17] <vgodunko> Так слабо?
[15:21:18] <vgodunko> ;-)
[15:21:34] <landgraf> пилять )
[15:21:36] <landgraf> простите
[15:21:43] <vgodunko> Дрова в смысле?
[15:22:12] <landgraf> ой
[15:22:15] <landgraf> а что это? )
[15:22:15] <vgodunko> Не откажусь, дерево я на выходных спилил, теперь как раз на дрова нужно попилить
[15:22:52] <landgraf> во флористе есть Fetch_Errno - как эту ошибку сбраисывать? )
[15:25:16] <landgraf> vgodunko, такая же ошибка
[15:25:41] <landgraf> gcc camerada.o -lflorist -o camerada
collect2: ld returned 1 exit status
gprbuild: link of camerada.adb failed
[15:26:02] <landgraf> ну и /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /root/v4l/ada/camerada/obj/camerada_device.o
[15:30:17] <vgodunko> pragma Thread_Local_Storage (errno);
[15:31:17] <landgraf> vgodunko, это откуда? )
[15:31:21] <landgraf> вернее куда
[15:32:19] <landgraf> vgodunko, вот такое падает http://fpaste.org/DyML/
[15:33:00] <vgodunko> with Interfaces.C;
package P is
Errno : Interfaces.C.int;
pragma Import (C, Errno);
pragma Thread_Local_Storage (Errno);
end P;
[15:33:10] <vgodunko> Вот так у меня собралось и работает.
[15:33:36] <vgodunko> Не, нужно на library level объявление переменной сделать
[15:34:01] <landgraf> ага, работает
[15:34:09] <landgraf> а как reset_errno сделать?
[15:34:12] <landgraf> или как оно там
[15:34:24] <landgraf> она же должна сбрасываться после считывания
[15:34:44] <landgraf> а она не сбрасывается )
[15:34:51] <vgodunko> Не должна.
[15:35:03] <vgodunko> Она переписывается следующим вызовом
[15:35:04] <landgraf> то есть там всегда ошибка будет?
[15:35:21] <landgraf> а чем ее можно перезаписать?
[15:35:24] <landgraf> тупым )
[15:36:16] <vgodunko> Её нельзя трогать.
[15:36:52] <landgraf> понял, спс
[15:37:41] <vgodunko> Можно ещё pragma Volatile (Errno); задать, дабы отбить у компилятора желание что-либо соптимизировать.
[15:40:35] <yeo> в GNAT-е есть готовый биндинг к C-шному errno
[15:40:55] <yeo> System.OS_Lib.Errno
[15:41:08] <yeo> или GNAT.OS_Lib.Errno
[15:41:38] <yeo> я бы его юзал
[15:59:52] <landgraf> я тоже его зающаю