[devel] Сборка heartbeat с --as-needed
Eugene Prokopiev
=?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Ср Сен 27 14:07:22 MSD 2006
>>>После make clean, ./configure, make получаю:
>>>gmake[2]: *** No rule to make target
>>>`../../lib/crm/cib/libpe_status.la', needed by `libpengine.la'. Stop.
>>
>>
>>Проверьте путь к библиотеке. Также, возможно, вам надо будет поменять
>>порядок директорий при сборке, чтобы libpe_status.la собиралась раньше
>>чем libpengine.la
>
>
> Проверил. Действительно, проблема в этом. Исправил, пока собирается.
Сборка закончилась на:
gcc -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations
-Wstrict-prototypes -Wdeclaration-after-statement -Wpointer-arith
-Wwrite-strings -Wcast-qual -Wcast-align -Wbad-function-cast -Winline
-Wmissing-format-attribute -Wformat=2 -Wformat-security
-Wformat-nonliteral -Wno-long-long -Wno-strict-aliasing -Werror -ggdb3
-funsigned-char -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations
-Wstrict-prototypes -Wdeclaration-after-statement -Wpointer-arith
-Wwrite-strings -Wcast-qual -Wcast-align -Wbad-function-cast -Winline
-Wmissing-format-attribute -Wformat=2 -Wformat-security
-Wformat-nonliteral -Wno-long-long -Wno-strict-aliasing -Werror -ggdb3
-funsigned-char -o .libs/pengine pengine-main.o
../../lib/clplumbing/.libs/libplumb.so
/usr/src/heartbeat-2.0.7/lib/pils/.libs/libpils.so
../../lib/pils/.libs/libpils.so
../../lib/crm/common/.libs/libcrmcommon.so
/usr/src/heartbeat-2.0.7/lib/apphb/.libs/libapphb.so
../../lib/crm/pengine/.libs/libpe_status.so ./.libs/libpengine.so
/usr/src/heartbeat-2.0.7/lib/crm/pengine/.libs/libpe_status.so
-lglib-2.0 ../../lib/crm/cib/.libs/libcib.so -lbz2 -lz -lxml2 -lc -luuid
-lrt -ldl -lltdl -Wl,--rpath -Wl,/usr/local/lib
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`get_object_root'
collect2: ld returned 1 exit status
gmake[2]: *** [pengine] Error 1
gmake[2]: Leaving directory `/usr/src/heartbeat-2.0.7/crm/pengine'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/src/heartbeat-2.0.7/crm'
make: *** [all-recursive] Error 1
Далее делаю:
$ find -name *.so | xargs grep get_object_root
Binary file ./crm/pengine/.libs/libpengine.so matches
Binary file ./lib/crm/cib/.libs/libcib.so matches
Binary file ./lib/crm/pengine/.libs/libpe_status.so matches
$ nm -CD ./crm/pengine/.libs/libpengine.so | grep get_object_root
U get_object_root
$ nm -CD ./lib/crm/cib/.libs/libcib.so | grep get_object_root
00003a40 T get_object_root
$ nm -CD ./lib/crm/pengine/.libs/libpe_status.so | grep get_object_root
U get_object_root
$ find -name libsib.la
libsib.la не нашлось. Правильно ли я понимаю, что теперь мне нужно
добавить ее в COMMONLIBS? Пытаюсь это сделать:
...
COMMONLIBS = $(CRM_DEBUG_LIBS) \
$(top_builddir)/lib/clplumbing/libplumb.la \
$(top_builddir)/lib/pils/libpils.la \
$(top_builddir)/lib/crm/common/libcrmcommon.la \
$(top_builddir)/lib/crm/cib/libcib.la \
$(top_builddir)/lib/crm/pengine/libpe_status.la \
libpengine.la \
$(GLIBLIB) \
$(CURSESLIBS) \
$(LIBRT)
...
libpengine_la_LIBADD = $(top_builddir)/lib/crm/pengine/libpe_status.la
$(top_builddir)/lib/crm/cib/libcib.la
...
пока собирается, посмотрим что будет ...
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки Devel