[РЕШЕНО] Проблема со сборкой ulatencyd
equeim 9 мая, 2014 - 22:50
Если кто не знает, это демон, динамически распределяющий ресурсы посредством cgroups, увеличивает отзывчивость системы.
Так как ебилд из оверлея сильно устарел, я решил переделать его в лайв-ебилд (благо собирается оно просто).
Ебилд: http://pastebin.com/ZATnwNR2
Сборка прекращается где-то на стадии линковки: http://pastebin.com/9tmVGHHA
Если собирать без портежа, (т.е. git clone, cmake, make), то все компилится нормально. Что я делаю не так?
»
- Для комментирования войдите или зарегистрируйтесь
equeim написал(а): Так как
попробуйте ебилд подправить как-то так:
@@ -24,6 +24,10 @@
"
RDEPEND="${DEPEND}"
+src_prepare() {
+ append-libs -ldl
+}
+
pkg_setup() {
python_set_active_version 2
python_pkg_setup
Не выходит, та же ошибка.
Не выходит, та же ошибка.
Если заменить
Если заменить /var/tmp/portage/sys-process/ulatencyd-9999/work/ulatencyd-9999_build/src/CMakeFiles/ulatencyd.dir/link.txt на тот, что генерируется при обычной сборке без портежа, а затем набрать make в директории сборки, то все линкуется нормально.
"правильный" link.txt: http://pastebin.com/vyZeHaqQ
link.txt от портежа: http://pastebin.com/8wdf4we5
В сборке из исходников я не специалист, в чем там проблема?
Думается, что проблема с
Думается, что проблема с --as-needed, а патч ебилда, добавляющий в конец -ldl почему-то не сработал (я не знаком с cmake и не знаю, что обозначают используемые вызовы в ebuild). Может быть, это не в prepare phase надо, а позже.. '--as-needed' исключает из elf библиотеки, которые как "кажется" линкеру - не нужны
Надо бы добиться чтобы -ldl добавлялся в конец команды сборки, либо - избавиться от --as-needed. В eclass/flag-o-matic.eclass есть и другие функции для манипуляции опциями компилятора и линкера - посмотрите, может найдётся подходящее
Починил!
Починил! http://pastebin.com/VpX2Tb2E
Не уверен, правда, что это является правильным решением.