[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