Drool 0 Опубліковано: 2007-09-16 12:19:51 Share Опубліковано: 2007-09-16 12:19:51 Это либо фича дистрибутива, либо Вашей системы сборки. При компоновке по умолчанию используется ключ --as-needed компоновщика. Эм... Ну дык я о чем и говорю :-) На http://www.freesource.info/wiki/AltLinux/S...earch=as-needed так и сказано: "С марта 2006 в ALT Linux наблюдается ld -Wl,--as-needed по умолчанию" Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 12:32:20 Share Опубліковано: 2007-09-16 12:32:20 2Drool:По поводу логов компиляции. + /usr/bin/subst 's|gmake|gmake CFLAGS="-pipe -Wall -O2 -march=athlon -mtune=athlon-xp"|g' ./build Я так понимаю, эта подстановка - работа автоматизированной системы сборки. Так вот, для библиотек и модулей обязательно нужно указывать -fPIC для генерации позиционно-независимоого кода. Сообщения: /usr/bin/ld: warning: creating a DT_TEXTREL in a shared object. как раз об этом и предупреждают. PS: судя по бинарникам в rpm'ке у вас не пофикшен install_bin. Поправьте как указано тут: http://local.com.ua/forum/index.php?showto...indpost&p=66146 /usr/bin/subst 's|gmake|gmake CFLAGS="-pipe -Wall -O2 -march=athlon -mtune=athlon-xp"|g' ./build - это я подставляю в спеке сам, так как существующие ключи не отрабатывают --target для rpm-based дистрибутивов, и если я у себя на athlon соберу с ключем, к примеру --target i586, то на выходе я получу *.i586.rpm-пакет, но истинность архитектуры i586 будет весьма сомнительна. Как правильно подставить флаги архитектуры в спеке: %__subst 's|gmake|gmake CFLAGS="%optflags"|g' ./build чтоб сохранить -fPIC ? %optflags - переменная, которая зависит от указания --target Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 12:35:26 Share Опубліковано: 2007-09-16 12:35:26 Выход 1: Использовать ключ --no-as-needed при сборке (-Wl,--no-as-needed для g++) - он должен быть указан ДО списка библиотек Выход 2: Глобально изменить систему сборки библиотек и модулей и указывать в них зависимости от других библиотек через -l<name> Относительно 1-го варианта. В Makefile старгайзера: LDFLAGS = -g3 -Wl,-E -L$(DIR_LIB) -Wl,-rpath,$(DIR_LIB) -Wl,-rpath,/usr/lib/stg Корректно ли будет сделать так: LDFLAGS = -Wl,--no-as-needed -g3 -Wl,-E -L$(DIR_LIB) -Wl,-rpath,$(DIR_LIB) -Wl,-rpath,/usr/lib/stg ? Для "себя" по-горячему и на скору руку - пойдет, но мантейнить в сизиф такое - нельзя... Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 15:01:47 Share Опубліковано: 2007-09-16 15:01:47 Относительно 1-го варианта. В Makefile старгайзера:LDFLAGS = -g3 -Wl,-E -L$(DIR_LIB) -Wl,-rpath,$(DIR_LIB) -Wl,-rpath,/usr/lib/stg Корректно ли будет сделать так: LDFLAGS = -Wl,--no-as-needed -g3 -Wl,-E -L$(DIR_LIB) -Wl,-rpath,$(DIR_LIB) -Wl,-rpath,/usr/lib/stg ? Попробовал - недостаточно. Видать не туды я пихаю этот ключик. =:-/ Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 15:25:01 Share Опубліковано: 2007-09-16 15:25:01 Интересно было бы посмотреть на вывод команды objdump -t libstg_crypto.so | grep Blowfish ls -l | grep libstg_crypto.so -rw------- 1 builder builder 15172 Sep 16 19:13 libstg_crypto.so objdump -t ./libstg_crypto.so | grep Blowfish (в ответ - тишина, ничегошеньки) Ссылка на сообщение Поделиться на других сайтах
Max 0 Опубліковано: 2007-09-16 17:12:02 Share Опубліковано: 2007-09-16 17:12:02 madf & Drool может вам в аське пообщаться чтобы тему не захламлять? Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 17:44:55 Share Опубліковано: 2007-09-16 17:44:55 Так вот, для библиотек и модулей обязательно нужно указывать -fPIC для генерации позиционно-независимоого кода. Сообщения: /usr/bin/ld: warning: creating a DT_TEXTREL in a shared object. как раз об этом и предупреждают. PS: судя по бинарникам в rpm'ке у вас не пофикшен install_bin. Поправьте как указано тут: http://local.com.ua/forum/index.php?showto...indpost&p=66146 Поправил -fPIC а также install_bin. Собирается, но только с отключенной проверкой на unresolved. Также присутствует жалоба на ненайденные библиотеки при генерировании requires самим rpm-ом. Спек, патчи и лог сборки выложил: http://fly.osdn.org.ua/~drool/stargazer/sp...ild_log.tar.bz2 Хотелось бы увидеть комментарии к этому делу. Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-16 17:48:11 Share Опубліковано: 2007-09-16 17:48:11 madf & Drool может вам в аське пообщаться чтобы тему не захламлять? Было бы неплохо. Моя аська указана в данных P.S. Таки рассылка удобнее Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2007-09-16 21:52:02 Share Опубліковано: 2007-09-16 21:52:02 Конечно, было бы неплохо форкнуть тему (или использовать ЖЖ), но в условиях форума довольно сложно. --no-as-needed нужно пихать в ключи сборки сервера (в корневой Makefile stargazer), а не в сборку библиотек или модулей. Потому что --no-as-needed относится именно к серверу. Warnings по поводу сборки модулей (undefined symbol) - результат неявного указания зависимостей от различных библиотек и объектных файлов сервера. Тоесть, это издержки системы сборки - зависимости разрешаются при компоновке сервера. Выход один - кардинально менять систему сборки сервера, что сейчас и происходит. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2007-09-16 21:58:13 Share Опубліковано: 2007-09-16 21:58:13 PS: Я один из разработчиков Stargazer, наравне с Борей. Примкнул к проекту год назад. Последний релиз (в частности - модуль firebird) - моя работа. Пинать по поводу ошибок меня . Не знаю, насколько часто будет постить коменты Боря, но я - по мере интереса и свободного времени. Ссылка на сообщение Поделиться на других сайтах
Alferov 0 Опубліковано: 2007-09-17 04:40:31 Share Опубліковано: 2007-09-17 04:40:31 Ага... замечательно. Уважаемый madf. FreeBSD 6.2 Firebird-2.0.2.12964-0 STG - новая сборка. При сборке с #define NO_DAEMON 1 Все замечательно. А вот без оного не запускается. В логах при этом вот что: -- Storage plugin: firebird_store v.1.2. Loading successfull. -- Error starting transaction! -- Broken pipe! -- Broken pipe! И все... Вопрос: что не так делаю? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2007-09-17 07:34:02 Share Опубліковано: 2007-09-17 07:34:02 2Alferov: Я уже писал немного выше - закомментировать код функции printfd из файла stglibs/common.lib/common.cpp (строки 77 - 96) Это помогает, но я пока не могу сказать, почему такое происходит Ссылка на сообщение Поделиться на других сайтах
Drool 0 Опубліковано: 2007-09-17 08:20:47 Share Опубліковано: 2007-09-17 08:20:47 Конечно, было бы неплохо форкнуть тему Не нужно форкать, есть уже: http://local.com.ua/forum/index.php?act=ST&f=4&t=9466 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения