* [devel] Сборка heartbeat с --as-needed
@ 2006-09-27 6:21 Eugene Prokopiev
2006-09-27 6:30 ` Alexey I. Froloff
2006-09-27 8:12 ` Damir Shayhutdinov
0 siblings, 2 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 6:21 UTC (permalink / raw)
To: devel
Здравствуйте!
Требуется собрать heartbeat 2.0.7. После ./configure и make получаю:
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/ptest ptest-ptest.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
-lglib-2.0 ../../lib/crm/cib/.libs/libcib.so
../../lib/crm/transition/.libs/libtransitioner.so -lbz2 -lz -lxml2 -lc
-luuid -lrt -ldl -lltdl -Wl,--rpath -Wl,/usr/local/lib
./.libs/libpengine.so: undefined reference to `add_hash_param'
./.libs/libpengine.so: undefined reference to `score2char'
./.libs/libpengine.so: undefined reference to `sort_rsc_priority'
./.libs/libpengine.so: undefined reference to `find_recurring_actions'
./.libs/libpengine.so: undefined reference to `node_list_or'
./.libs/libpengine.so: undefined reference to `print_resource'
./.libs/libpengine.so: undefined reference to `pe_find_resource'
./.libs/libpengine.so: undefined reference to `custom_action'
./.libs/libpengine.so: undefined reference to `get_interval'
./.libs/libpengine.so: undefined reference to `node_list_minus'
./.libs/libpengine.so: undefined reference to `role2text'
./.libs/libpengine.so: undefined reference to `was_config_error'
./.libs/libpengine.so: undefined reference to `pe_find_node_id'
./.libs/libpengine.so: undefined reference to `text2role'
./.libs/libpengine.so: undefined reference to `print_node'
./.libs/libpengine.so: undefined reference to `pe_free_shallow'
./.libs/libpengine.so: undefined reference to `task2text'
./.libs/libpengine.so: undefined reference to `node_list_dup'
./.libs/libpengine.so: undefined reference to `node_copy'
./.libs/libpengine.so: undefined reference to `find_expression_type'
./.libs/libpengine.so: undefined reference to `unpack_instance_attributes'
./.libs/libpengine.so: undefined reference to `set_working_set_defaults'
./.libs/libpengine.so: undefined reference to `cluster_status'
./.libs/libpengine.so: undefined reference to `cleanup_calculations'
./.libs/libpengine.so: undefined reference to `pe_free_shallow_adv'
./.libs/libpengine.so: undefined reference to `pe_free_action'
./.libs/libpengine.so: undefined reference to `order_actions'
./.libs/libpengine.so: undefined reference to `test_expression'
./.libs/libpengine.so: undefined reference to `merge_weights'
./.libs/libpengine.so: undefined reference to `sort_op_by_callid'
./.libs/libpengine.so: undefined reference to `log_action'
./.libs/libpengine.so: undefined reference to `was_processing_error'
./.libs/libpengine.so: undefined reference to `test_rule'
./.libs/libpengine.so: undefined reference to `find_rsc_op_entry'
./.libs/libpengine.so: undefined reference to `find_actions'
./.libs/libpengine.so: undefined reference to `was_processing_warning'
./.libs/libpengine.so: undefined reference to `DeleteRsc'
./.libs/libpengine.so: undefined reference to `was_config_warning'
./.libs/libpengine.so: undefined reference to `text2task'
./.libs/libpengine.so: undefined reference to `node_list_and'
./.libs/libpengine.so: undefined reference to `resource_location'
./.libs/libpengine.so: undefined reference to `test_ruleset'
./.libs/libpengine.so: undefined reference to `char2score'
./.libs/libpengine.so: undefined reference to `find_actions_exact'
collect2: ld returned 1 exit status
gmake[2]: *** [ptest] 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
Очевидно, проблема в crm/pengine/Makefile.am, который выглядит так:
MAINTAINERCLEANFILES = Makefile.in
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_builddir)/libltdl -I$(top_srcdir)/libltdl \
-I$(top_builddir)/linux-ha -I$(top_srcdir)/linux-ha \
-I$(top_builddir) -I$(top_srcdir)
hadir = $(sysconfdir)/ha.d
halibdir = $(libdir)/@HB_PKG@
commmoddir = $(halibdir)/modules/comm
havarlibdir = $(localstatedir)/lib/@HB_PKG@
pe_varlibdir = $(HA_VARLIBDIR)/$(HB_PKG)/pengine
# sockets with path
crmdir = $(havarlibdir)/crm
apigid = @HA_APIGID@
crmuid = @HA_CCMUID@
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/pengine/libpe_status.la \
libpengine.la \
$(GLIBLIB) \
$(CURSESLIBS) \
$(LIBRT)
LIBRT = @LIBRT@
AM_CFLAGS = @CFLAGS@ $(CRM_DEBUG_FLAGS)
## libraries
lib_LTLIBRARIES = libpengine.la
## binary progs
halib_PROGRAMS = ptest pengine
## SOURCES
noinst_HEADERS = allocate.h utils.h pengine.h
#utils.h pengine.h
libpengine_la_LDFLAGS = -version-info 3:0:0
# -L$(top_builddir)/lib/pils -lpils -export-dynamic -module -avoid-version
libpengine_la_SOURCES = pengine.c allocate.c utils.c \
native.c group.c clone.c master.c graph.c
pengine_SOURCES = main.c
pengine_CFLAGS = -DHA_VARLIBDIR='"@HA_VARLIBDIR@"'
pengine_LDADD = $(COMMONLIBS) $(top_builddir)/lib/crm/cib/libcib.la
# libcib for get_object_root()
# $(top_builddir)/lib/hbclient/libhbclient.la
ptest_SOURCES = ptest.c
ptest_CFLAGS = -DHA_VARLIBDIR='"@HA_VARLIBDIR@"'
ptest_LDADD = $(COMMONLIBS) \
$(top_builddir)/lib/crm/cib/libcib.la \
$(top_builddir)/lib/crm/transition/libtransitioner.la
clean-generic:
rm -f *.log *.debug *~ .gres.* testcases/.gres.*
install-exec-local:
$(mkinstalldirs) $(DESTDIR)/$(pe_varlibdir)
-chown $(HA_CCMUSER) $(DESTDIR)/$(pe_varlibdir)
-chgrp $(HA_APIGROUP) $(DESTDIR)/$(pe_varlibdir)
-chmod 750 $(DESTDIR)/$(pe_varlibdir)
uninstall-local:
Как в общем случае догадаться, что необходимо дописать в этот файл?
В моем случае ситуация несколько облегчается тем, что есть
heartbeat-alt-build.patch от lakostis, правда для версии 2.0.4. В нем
фрагмент, относящийся к crm/pengine/Makefile.am, выглядит так:
diff -uNpar heartbeat-2.0.7.orig/crm/pengine/Makefile.am
heartbeat-2.0.7/crm/pengine/Makefile.am
--- heartbeat-2.0.7.orig/crm/pengine/Makefile.am 2006-02-20
20:22:42 +0300
+++ heartbeat-2.0.7/crm/pengine/Makefile.am 2006-04-23 18:22:11 +0400
@@ -39,8 +39,8 @@ 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 \
libpengine.la \
- $(top_builddir)/lib/crm/cib/libcib.la \
$(top_builddir)/lib/apphb/libapphb.la \
$(GLIBLIB) \
$(CURSESLIBS) \
@@ -61,6 +61,7 @@ libpengine_la_SOURCES = color.c unpack.c
utils.c complex.c native.c stages.c \
group.c incarnation.c master.c
+libpengine_la_LIBADD = $(top_builddir)/lib/crm/cib/libcib.la
libpengine_la_LDFLAGS = -version-info 2:0:1
noinst_HEADERS = pe_utils.h pengine.h complex.h pe_rules.h
Т.е. для 2.0.4 оказалось достаточным переместить libcib.la выше
libpengine.la (зачем? почему не libapphb.la? на основании чего lakostis
сделал это умозаключение?) и дописать в libpengine_la_LIBADD libcib.la
(опять-таки, как lakostis до этого додумался?). В случае 2.0.7 libcib.la
и libapphb.la в COMMONLIBS Makefile.am уже не упоминается, а их место
занимает libpe_status.la до libpengine.la. Т.е. допустим, что в
COMMONLIBS ничего менять не надо. Но, наверное, нужно перед
libpengine_la_LDFLAGS по аналогии с патчем для 2.0.4 вписать:
libpengine_la_LIBADD = $(top_builddir)/lib/crm/cib/libpe_status.la
Можно ли как нибудь сделать такой вывод (или другой, если это ошибочен)
не на основании патча к 2.0.4, а на основании вывода make?
После make clean, ./configure, make получаю:
gcc -DHAVE_CONFIG_H -I. -I. -I../../linux-ha -I../../include
-I../../include -I../../include -I../../libltdl -I../../libltdl
-I../../linux-ha -I../../linux-ha -I../.. -I../.. -D_BSD_SOURCE
-D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/libxml2 -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 -MT graph.lo -MD -MP -MF .deps/graph.Tpo -c graph.c -o
graph.o >/dev/null 2>&1
gmake[2]: *** No rule to make target
`../../lib/crm/cib/libpe_status.la', needed by `libpengine.la'. Stop.
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
Что делать дальше?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 6:21 [devel] Сборка heartbeat с --as-needed Eugene Prokopiev
@ 2006-09-27 6:30 ` Alexey I. Froloff
2006-09-27 6:52 ` Eugene Prokopiev
2006-09-27 8:12 ` Damir Shayhutdinov
1 sibling, 1 reply; 23+ messages in thread
From: Alexey I. Froloff @ 2006-09-27 6:30 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 340 bytes --]
* Eugene Prokopiev <enp@> [060927 10:21]:
> Требуется собрать heartbeat 2.0.7. После ./configure и make получаю:
В Daedalus есть сборка имени L.A.Kostis...
--
Regards, Alexey I. Froloff
AIF5-RIPN, AIF5-RIPE
-------------------------------------------
Inform-Mobil, Ltd. System Administrator
http://www.inform-mobil.ru/
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 6:30 ` Alexey I. Froloff
@ 2006-09-27 6:52 ` Eugene Prokopiev
2006-09-27 7:39 ` Konstantin A. Lepikhov
0 siblings, 1 reply; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 6:52 UTC (permalink / raw)
To: ALT Devel discussion list
Alexey I. Froloff пишет:
> * Eugene Prokopiev <enp@> [060927 10:21]:
>
>>Требуется собрать heartbeat 2.0.7. После ./configure и make получаю:
>
> В Daedalus есть сборка имени L.A.Kostis...
есть, знаю, но 2.0.4
патч от 2.0.4 для 2.0.7 не подходит, нужно написать новый ...
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 6:52 ` Eugene Prokopiev
@ 2006-09-27 7:39 ` Konstantin A. Lepikhov
2006-09-27 8:01 ` Eugene Prokopiev
0 siblings, 1 reply; 23+ messages in thread
From: Konstantin A. Lepikhov @ 2006-09-27 7:39 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 425 bytes --]
Hi Eugene!
Wednesday 27, at 10:52:57 AM you wrote:
> Alexey I. Froloff пишет:
> > * Eugene Prokopiev <enp@> [060927 10:21]:
> >
> >>Требуется собрать heartbeat 2.0.7. После ./configure и make получаю:
> >
> > В Daedalus есть сборка имени L.A.Kostis...
>
> есть, знаю, но 2.0.4
>
> патч от 2.0.4 для 2.0.7 не подходит, нужно написать новый ...
я сегодня посмотрю и попробую это сделать
--
WBR et al.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 7:39 ` Konstantin A. Lepikhov
@ 2006-09-27 8:01 ` Eugene Prokopiev
0 siblings, 0 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 8:01 UTC (permalink / raw)
To: ALT Devel discussion list
Konstantin A. Lepikhov пишет:
> Hi Eugene!
>
> Wednesday 27, at 10:52:57 AM you wrote:
>
>
>>Alexey I. Froloff пишет:
>>
>>>* Eugene Prokopiev <enp@> [060927 10:21]:
>>>
>>>
>>>>Требуется собрать heartbeat 2.0.7. После ./configure и make получаю:
>>>
>>>В Daedalus есть сборка имени L.A.Kostis...
>>
>>есть, знаю, но 2.0.4
>>
>>патч от 2.0.4 для 2.0.7 не подходит, нужно написать новый ...
>
> я сегодня посмотрю и попробую это сделать
спасибо
если можно с комментариями, мне все-таки очень интересен процесс
"магического психотворчества сверхлюдей" (с) :)
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 6:21 [devel] Сборка heartbeat с --as-needed Eugene Prokopiev
2006-09-27 6:30 ` Alexey I. Froloff
@ 2006-09-27 8:12 ` Damir Shayhutdinov
2006-09-27 9:20 ` Eugene Prokopiev
1 sibling, 1 reply; 23+ messages in thread
From: Damir Shayhutdinov @ 2006-09-27 8:12 UTC (permalink / raw)
To: ALT Devel discussion list
> Как в общем случае догадаться, что необходимо дописать в этот файл?
>
> В моем случае ситуация несколько облегчается тем, что есть
> heartbeat-alt-build.patch от lakostis, правда для версии 2.0.4. В нем
> фрагмент, относящийся к crm/pengine/Makefile.am, выглядит так:
> Можно ли как нибудь сделать такой вывод (или другой, если это ошибочен)
> не на основании патча к 2.0.4, а на основании вывода make?
Возможно, это поможет:
http://lists.altlinux.org/pipermail/sisyphus/2006-July/084838.html
> После 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
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 8:12 ` Damir Shayhutdinov
@ 2006-09-27 9:20 ` Eugene Prokopiev
2006-09-27 9:39 ` Damir Shayhutdinov
` (3 more replies)
0 siblings, 4 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 9:20 UTC (permalink / raw)
To: ALT Devel discussion list
Damir Shayhutdinov пишет:
>>Как в общем случае догадаться, что необходимо дописать в этот файл?
>>
>>В моем случае ситуация несколько облегчается тем, что есть
>>heartbeat-alt-build.patch от lakostis, правда для версии 2.0.4. В нем
>>фрагмент, относящийся к crm/pengine/Makefile.am, выглядит так:
>
>
>>Можно ли как нибудь сделать такой вывод (или другой, если это ошибочен)
>>не на основании патча к 2.0.4, а на основании вывода make?
>
> Возможно, это поможет:
> http://lists.altlinux.org/pipermail/sisyphus/2006-July/084838.html
спасибо
пробую
> надо найти, в какой библиотеке находятся отсутствующие символы.
> Обычно можно догадаться по названию, но если это не ясно - придется
> искать. Я обычно делаю первичный поиск грепов по всем файлам *.so в
> каталоге сборки, а потом с помощью nm -CD bar/.libs/libbar.so | grep
> megabar определяю, есть ли этот символ в библиотеке libbar.so. (Если
> напротив символа стоит U - то нету, а если T - то есть).
>
> Если выяснено, что unresolved символы находятся в библиотеке
> libbaz.so, тогда надо добавить в строчку -lbaz - то есть примерно
> так:
>
> libfoo_la_LIBADD = -lbar -lbaz
$ find -name *.so | xargs grep add_hash_param
Binary file ./lib/crm/pengine/.libs/libpe_rules.so matches
Binary file ./lib/crm/pengine/.libs/libpe_status.so matches
$ nm -CD ./lib/crm/pengine/.libs/libpe_status.so | grep add_hash_param
00005640 T add_hash_param
$ nm -CD ./lib/crm/pengine/.libs/libpe_rules.so | grep add_hash_param
00003bf0 T add_hash_param
Вообще, Т означает, что функция экспортируется? Это нормально, что одну
функцию экспортирует несколько библиотек?
В libpengine_la_LIBADD нужно добавить обе библиотеки или выбирать, какую
из? На основании чего?
>>После 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
Проверил. Действительно, проблема в этом. Исправил, пока собирается.
Еще вопрос: я делаю make clean, ./configure, make. Это неправильно? Для
чего и на каком этапе нужен autoreconf -fisv? Правильно ли я понимаю,
что это замена make clean, ./configure? Для чего autoreconf -fisv нужен
в спеке, если исходники после наложения патчей до %configure еще не
сконфигурированы (т.е. ./configure не выполнен)
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 9:20 ` Eugene Prokopiev
@ 2006-09-27 9:39 ` Damir Shayhutdinov
2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:06 ` Konstantin A. Lepikhov
` (2 subsequent siblings)
3 siblings, 1 reply; 23+ messages in thread
From: Damir Shayhutdinov @ 2006-09-27 9:39 UTC (permalink / raw)
To: ALT Devel discussion list
> $ find -name *.so | xargs grep add_hash_param
> Binary file ./lib/crm/pengine/.libs/libpe_rules.so matches
> Binary file ./lib/crm/pengine/.libs/libpe_status.so matches
> $ nm -CD ./lib/crm/pengine/.libs/libpe_status.so | grep add_hash_param
> 00005640 T add_hash_param
>
> $ nm -CD ./lib/crm/pengine/.libs/libpe_rules.so | grep add_hash_param
> 00003bf0 T add_hash_param
>
> Вообще, Т означает, что функция экспортируется? Это нормально, что одну
> функцию экспортирует несколько библиотек?
Это не нормально, но бывает, если определение функции включено
например в заголовочный файл.
> В libpengine_la_LIBADD нужно добавить обе библиотеки или выбирать, какую
> из? На основании чего?
Одну из них. Какая полностью покрывает все undefined symbol, такую и брать.
> Еще вопрос: я делаю make clean, ./configure, make. Это неправильно?
Лучше make distclean && ./configure && make
> Для чего и на каком этапе нужен autoreconf -fisv?
Он нужен, если вы меняете что-либо в файлах .am или .ac. Например,
добавляете -lbar в libfoo_la_LIBADD.
Его надо вызывать перед configure, чтобы перегенерировать файлы
configure и Makefile.in, если "исходные файлы" - configure.in
(configure.ac) и Makefile.am были изменены.
> Правильно ли я понимаю,
> что это замена make clean, ./configure?
Нет.
> Для чего autoreconf -fisv нужен
> в спеке, если исходники после наложения патчей до %configure еще не
> сконфигурированы (т.е. ./configure не выполнен)
Чтобы сделать правильный ./configure и Makefile.in
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 9:39 ` Damir Shayhutdinov
@ 2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:29 ` Damir Shayhutdinov
0 siblings, 1 reply; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:07 UTC (permalink / raw)
To: ALT Devel discussion list
Damir Shayhutdinov пишет:
>>$ find -name *.so | xargs grep add_hash_param
>>Binary file ./lib/crm/pengine/.libs/libpe_rules.so matches
>>Binary file ./lib/crm/pengine/.libs/libpe_status.so matches
>
>
>>$ nm -CD ./lib/crm/pengine/.libs/libpe_status.so | grep add_hash_param
>>00005640 T add_hash_param
>>
>>$ nm -CD ./lib/crm/pengine/.libs/libpe_rules.so | grep add_hash_param
>>00003bf0 T add_hash_param
>>
>>Вообще, Т означает, что функция экспортируется? Это нормально, что одну
>>функцию экспортирует несколько библиотек?
>
> Это не нормально, но бывает, если определение функции включено
> например в заголовочный файл.
>
>
>>В libpengine_la_LIBADD нужно добавить обе библиотеки или выбирать, какую
>>из? На основании чего?
>
> Одну из них. Какая полностью покрывает все undefined symbol, такую и брать.
Бывает, что ни одна не покрывает? И тогда мне брать ту которая покрывает
больше всего + еще какую(какие)-нибудь?
>
>
>>Еще вопрос: я делаю make clean, ./configure, make. Это неправильно?
>
> Лучше make distclean && ./configure && make
>
>
>>Для чего и на каком этапе нужен autoreconf -fisv?
>
> Он нужен, если вы меняете что-либо в файлах .am или .ac. Например,
> добавляете -lbar в libfoo_la_LIBADD.
> Его надо вызывать перед configure, чтобы перегенерировать файлы
> configure и Makefile.in, если "исходные файлы" - configure.in
> (configure.ac) и Makefile.am были изменены.
>
>
>>Правильно ли я понимаю,
>>что это замена make clean, ./configure?
>
> Нет.
Вот я меняю Makefile.am, делаю только make clean, ./configure, make без
autoreconf -fisv и вижу, что дело движется ... Почему? В моем случае это
исключение, а обычно без autoreconf -fisv толку нет? От чего это зависит?
>>Для чего autoreconf -fisv нужен
>>в спеке, если исходники после наложения патчей до %configure еще не
>>сконфигурированы (т.е. ./configure не выполнен)
>
>
> Чтобы сделать правильный ./configure и Makefile.in
Makefile.in вроде генерируется на основе Makefile.am с помощью
./configure, а ./configure я не менял. Значит autoreconf -fisv в таком
случае не нужен? Или я не прав?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:07 ` Eugene Prokopiev
@ 2006-09-27 10:29 ` Damir Shayhutdinov
2006-09-27 10:41 ` Eugene Prokopiev
0 siblings, 1 reply; 23+ messages in thread
From: Damir Shayhutdinov @ 2006-09-27 10:29 UTC (permalink / raw)
To: ALT Devel discussion list
> > Одну из них. Какая полностью покрывает все undefined symbol, такую и брать.
>
> Бывает, что ни одна не покрывает? И тогда мне брать ту которая покрывает
> больше всего + еще какую(какие)-нибудь?
Угу, бывает надо несколько библиотек прилинковать, чтобы все
зависимости закрыть. Процесс итеративный, хотя о том, какие библиотеки
нужны иногда можно догадаться по именам символов и тогда добавить
сразу все.
Например, если символы в библиотеке libfoo.so начинаются с foo_
(например, foo_bar), а символы в библиотеке libbar.so начинаются с
bar_, тогда если в выводе "ldd -r" какой-то третьей библиотеки
появляются символы с префиксами foo_ и bar_, то ясно что
прилинковывать надо обе :)
> Вот я меняю Makefile.am, делаю только make clean, ./configure, make без
> autoreconf -fisv и вижу, что дело движется ... Почему? В моем случае это
> исключение, а обычно без autoreconf -fisv толку нет? От чего это зависит?
От даты модификации файлов "Makefile", "Makefile.in и Makefile.am".
autoreconf -fisv нужно обязательно делать при изменении configure.in
или configure.ac.
> Makefile.in вроде генерируется на основе Makefile.am с помощью
> ./configure, а ./configure я не менял.
Нет, Makefile.in генерируется из Makefile.am с помощью automake (эта
команда в числе прочих вызывается при autoreconf).
А с помощью configure из Makefile.in генерируется финальный Makefile.
> Значит autoreconf -fisv в таком случае не нужен? Или я не прав?
В принципе достаточно сделать automake. Но autoreconf надежнее :)
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:29 ` Damir Shayhutdinov
@ 2006-09-27 10:41 ` Eugene Prokopiev
2006-09-27 11:26 ` Damir Shayhutdinov
0 siblings, 1 reply; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:41 UTC (permalink / raw)
To: ALT Devel discussion list
Damir Shayhutdinov пишет:
>>>Одну из них. Какая полностью покрывает все undefined symbol, такую и брать.
>>
>>Бывает, что ни одна не покрывает? И тогда мне брать ту которая покрывает
>>больше всего + еще какую(какие)-нибудь?
>
> Угу, бывает надо несколько библиотек прилинковать, чтобы все
> зависимости закрыть. Процесс итеративный, хотя о том, какие библиотеки
> нужны иногда можно догадаться по именам символов и тогда добавить
> сразу все.
>
> Например, если символы в библиотеке libfoo.so начинаются с foo_
> (например, foo_bar), а символы в библиотеке libbar.so начинаются с
> bar_, тогда если в выводе "ldd -r" какой-то третьей библиотеки
> появляются символы с префиксами foo_ и bar_, то ясно что
> прилинковывать надо обе :)
Первый раз, когда я имел дело с --as-needed, именно так и оказалось,
поэтому тот опыт мне не пригодился :)
>>Вот я меняю Makefile.am, делаю только make clean, ./configure, make без
>>autoreconf -fisv и вижу, что дело движется ... Почему? В моем случае это
>>исключение, а обычно без autoreconf -fisv толку нет? От чего это зависит?
>
> От даты модификации файлов "Makefile", "Makefile.in и Makefile.am".
> autoreconf -fisv нужно обязательно делать при изменении configure.in
> или configure.ac.
>
>
>>Makefile.in вроде генерируется на основе Makefile.am с помощью
>>./configure, а ./configure я не менял.
>
> Нет, Makefile.in генерируется из Makefile.am с помощью automake (эта
> команда в числе прочих вызывается при autoreconf).
>
> А с помощью configure из Makefile.in генерируется финальный Makefile.
>
>
>>Значит autoreconf -fisv в таком случае не нужен? Или я не прав?
>
> В принципе достаточно сделать automake. Но autoreconf надежнее :)
а каким тогда образом у меня после make clean, ./configure, make
Makefile.am все же перегенеровался (или нет)? Это сделал ./configure,
вызвав automake у себя внутри?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:41 ` Eugene Prokopiev
@ 2006-09-27 11:26 ` Damir Shayhutdinov
0 siblings, 0 replies; 23+ messages in thread
From: Damir Shayhutdinov @ 2006-09-27 11:26 UTC (permalink / raw)
To: ALT Devel discussion list
> а каким тогда образом у меня после make clean, ./configure, make
> Makefile.am все же перегенеровался (или нет)? Это сделал ./configure,
> вызвав automake у себя внутри?
Да, если дата изменения Makefile.am больше даты изменения Makefile.in,
то он автоматически вызывает automake. Это можно даже увидеть.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 9:20 ` Eugene Prokopiev
2006-09-27 9:39 ` Damir Shayhutdinov
@ 2006-09-27 10:06 ` Konstantin A. Lepikhov
2006-09-27 10:28 ` Eugene Prokopiev
2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:11 ` Konstantin A. Lepikhov
3 siblings, 1 reply; 23+ messages in thread
From: Konstantin A. Lepikhov @ 2006-09-27 10:06 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 3118 bytes --]
Hi Eugene!
Wednesday 27, at 01:20:33 PM you wrote:
> > Проверьте путь к библиотеке. Также, возможно, вам надо будет поменять
> > порядок директорий при сборке, чтобы libpe_status.la собиралась раньше
> > чем libpengine.la
а дальше начинается самое интересное:
creating libpengine.la
(cd .libs && rm -f libpengine.la && ln -s ../libpengine.la libpengine.la)
/bin/sh ../../libtool --tag=CC --mode=link gcc -pipe -Wall -O2
-march=pentium4 -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 -ggdb3
-funsigned-char -pipe -Wall -O2 -march=pentium4 -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 -ggdb3 -funsigned-char -o ptest ptest-ptest.o
../../lib/clplumbing/libplumb.la ../../lib/pils/libpils.la
../../lib/crm/common/libcrmcommon.la ../../lib/crm/pengine/libpe_rules.la
../../lib/crm/pengine/libpe_status.la ../../lib/crm/cib/libcib.la
libpengine.la -lglib-2.0 -lncurses ../../lib/crm/cib/libcib.la
../../lib/crm/transition/libtransitioner.la -lbz2 -lz -lxml2 -lc -luuid
-lrt -ldl -lltdl
gcc -pipe -Wall -O2 -march=pentium4 -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
-ggdb3 -funsigned-char -pipe -Wall -O2 -march=pentium4 -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 -ggdb3 -funsigned-char -o .libs/ptest ptest-ptest.o
../../lib/clplumbing/.libs/libplumb.so ../../lib/pils/.libs/libpils.so
../../lib/crm/common/.libs/libcrmcommon.so
../../lib/crm/pengine/.libs/libpe_rules.so
../../lib/crm/pengine/.libs/libpe_status.so ./.libs/libpengine.so
-lglib-2.0 -lncurses ../../lib/crm/cib/.libs/libcib.so
../../lib/crm/transition/.libs/libtransitioner.so -lbz2 -lz -lxml2 -lc
-luuid -lrt -ldl -lltdl
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`stdscr'
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`wmove'
../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
`printw'
collect2: ld returned 1 exit status
make: *** [ptest] 1
printw/wmove - это символы из libslang, но вот libpe_status.so с ней
линковаться не хочет, поскольку напрямую их не требует. Бага в ncurses?
--
WBR et al.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:06 ` Konstantin A. Lepikhov
@ 2006-09-27 10:28 ` Eugene Prokopiev
2006-09-27 10:46 ` Konstantin A. Lepikhov
0 siblings, 1 reply; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:28 UTC (permalink / raw)
To: ALT Devel discussion list
Konstantin A. Lepikhov пишет:
> Hi Eugene!
>
> Wednesday 27, at 01:20:33 PM you wrote:
>
>
>>>Проверьте путь к библиотеке. Также, возможно, вам надо будет поменять
>>>порядок директорий при сборке, чтобы libpe_status.la собиралась раньше
>>>чем libpengine.la
>
> а дальше начинается самое интересное:
> creating libpengine.la
> (cd .libs && rm -f libpengine.la && ln -s ../libpengine.la libpengine.la)
> /bin/sh ../../libtool --tag=CC --mode=link gcc -pipe -Wall -O2
> -march=pentium4 -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 -ggdb3
> -funsigned-char -pipe -Wall -O2 -march=pentium4 -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 -ggdb3 -funsigned-char -o ptest ptest-ptest.o
> ../../lib/clplumbing/libplumb.la ../../lib/pils/libpils.la
> ../../lib/crm/common/libcrmcommon.la ../../lib/crm/pengine/libpe_rules.la
> ../../lib/crm/pengine/libpe_status.la ../../lib/crm/cib/libcib.la
> libpengine.la -lglib-2.0 -lncurses ../../lib/crm/cib/libcib.la
> ../../lib/crm/transition/libtransitioner.la -lbz2 -lz -lxml2 -lc -luuid
> -lrt -ldl -lltdl
> gcc -pipe -Wall -O2 -march=pentium4 -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
> -ggdb3 -funsigned-char -pipe -Wall -O2 -march=pentium4 -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 -ggdb3 -funsigned-char -o .libs/ptest ptest-ptest.o
> ../../lib/clplumbing/.libs/libplumb.so ../../lib/pils/.libs/libpils.so
> ../../lib/crm/common/.libs/libcrmcommon.so
> ../../lib/crm/pengine/.libs/libpe_rules.so
> ../../lib/crm/pengine/.libs/libpe_status.so ./.libs/libpengine.so
> -lglib-2.0 -lncurses ../../lib/crm/cib/.libs/libcib.so
> ../../lib/crm/transition/.libs/libtransitioner.so -lbz2 -lz -lxml2 -lc
> -luuid -lrt -ldl -lltdl
> ../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
> `stdscr'
> ../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
> `wmove'
> ../../lib/crm/pengine/.libs/libpe_status.so: undefined reference to
> `printw'
> collect2: ld returned 1 exit status
> make: *** [ptest] 1
>
> printw/wmove - это символы из libslang, но вот libpe_status.so с ней
> линковаться не хочет, поскольку напрямую их не требует. Бага в ncurses?
странно, а у меня crm/pengine таки собрался. Вот что я сделал:
--- heartbeat-2.0.7/crm/pengine/Makefile.am 2006-06-09 23:26:04 +0300
+++ hasher/chroot/usr/src/heartbeat-2.0.7/crm/pengine/Makefile.am
2006-09-27 12:52:39 +0300
@@ -40,6 +40,7 @@
$(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) \
@@ -59,6 +60,7 @@
noinst_HEADERS = allocate.h utils.h pengine.h
#utils.h pengine.h
+libpengine_la_LIBADD = $(top_builddir)/lib/crm/pengine/libpe_status.la
$(top_builddir)/lib/crm/cib/libcib.la
libpengine_la_LDFLAGS = -version-info 3:0:0
# -L$(top_builddir)/lib/pils -lpils -export-dynamic -module
-avoid-version
libpengine_la_SOURCES = pengine.c allocate.c utils.c \
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:28 ` Eugene Prokopiev
@ 2006-09-27 10:46 ` Konstantin A. Lepikhov
0 siblings, 0 replies; 23+ messages in thread
From: Konstantin A. Lepikhov @ 2006-09-27 10:46 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1496 bytes --]
Hi Eugene!
Wednesday 27, at 02:28:45 PM you wrote:
<skip>
> странно, а у меня crm/pengine таки собрался. Вот что я сделал:
>
> --- heartbeat-2.0.7/crm/pengine/Makefile.am 2006-06-09 23:26:04 +0300
> +++ hasher/chroot/usr/src/heartbeat-2.0.7/crm/pengine/Makefile.am
> 2006-09-27 12:52:39 +0300
> @@ -40,6 +40,7 @@
> $(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) \
> @@ -59,6 +60,7 @@
> noinst_HEADERS = allocate.h utils.h pengine.h
> #utils.h pengine.h
>
> +libpengine_la_LIBADD = $(top_builddir)/lib/crm/pengine/libpe_status.la
> $(top_builddir)/lib/crm/cib/libcib.la
> libpengine_la_LDFLAGS = -version-info 3:0:0
> # -L$(top_builddir)/lib/pils -lpils -export-dynamic -module
> -avoid-version
> libpengine_la_SOURCES = pengine.c allocate.c utils.c \
это я тоже сделал, а вот для libpe_status надо добавить CURSESLIBS в
LIBADD. И далее уже все идет нормально. В-общем, сейчас вам вышлю
nosrc.rpm, который у меня полностью собирается :)
--
WBR et al.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 9:20 ` Eugene Prokopiev
2006-09-27 9:39 ` Damir Shayhutdinov
2006-09-27 10:06 ` Konstantin A. Lepikhov
@ 2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:21 ` Damir Shayhutdinov
2006-09-27 10:23 ` Eugene Prokopiev
2006-09-27 10:11 ` Konstantin A. Lepikhov
3 siblings, 2 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:07 UTC (permalink / raw)
To: ALT Devel discussion list
>>>После 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
...
пока собирается, посмотрим что будет ...
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:07 ` Eugene Prokopiev
@ 2006-09-27 10:21 ` Damir Shayhutdinov
2006-09-27 10:35 ` Eugene Prokopiev
2006-09-27 10:23 ` Eugene Prokopiev
1 sibling, 1 reply; 23+ messages in thread
From: Damir Shayhutdinov @ 2006-09-27 10:21 UTC (permalink / raw)
To: ALT Devel discussion list
> Далее делаю:
>
> $ 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 не нашлось.
Надо libcib.la искать. Буквы S и C все-таки различны :)
> Правильно ли я понимаю, что теперь мне нужно
> добавить ее в COMMONLIBS? Пытаюсь это сделать:
Не обязательно, главное в libpe_status_la_LIBADD добавить.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:21 ` Damir Shayhutdinov
@ 2006-09-27 10:35 ` Eugene Prokopiev
0 siblings, 0 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:35 UTC (permalink / raw)
To: ALT Devel discussion list
>>libsib.la не нашлось.
>
> Надо libcib.la искать. Буквы S и C все-таки различны :)
его тоже нету и даже после того, как с crm/pengine/Makefile.am
расправились ...
>>Правильно ли я понимаю, что теперь мне нужно
>>добавить ее в COMMONLIBS? Пытаюсь это сделать:
>
> Не обязательно, главное в libpe_status_la_LIBADD добавить.
Т.е. вот это вроде работает:
libpengine_la_LIBADD = $(top_builddir)/lib/crm/pengine/libpe_status.la
$(top_builddir)/lib/crm/cib/libcib.la
Но правильнее будет вместо этого написать:
libpe_status_la_LIBADD = $(top_builddir)/lib/crm/cib/libcib.la
libpengine_la_LIBADD = $(top_builddir)/lib/crm/pengine/libpe_status.la
?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:21 ` Damir Shayhutdinov
@ 2006-09-27 10:23 ` Eugene Prokopiev
2006-09-27 10:29 ` Igor Zubkov
` (2 more replies)
1 sibling, 3 replies; 23+ messages in thread
From: Eugene Prokopiev @ 2006-09-27 10:23 UTC (permalink / raw)
To: ALT Devel discussion list
> пока собирается, посмотрим что будет ...
C этим Makefile.am справились, получаем дальше:
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/crm_diff crm_diff-xml_diff.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/cib/.libs/libcib.so ../../lib/apphb/.libs/libapphb.so
../../lib/hbclient/.libs/libhbclient.so -lglib-2.0 -lbz2 -lz -lxml2 -lc
-luuid -lrt -ldl -lltdl -Wl,--rpath -Wl,/usr/local/lib
creating crm_diff
if gcc -DHAVE_CONFIG_H -I. -I. -I../../linux-ha -I../../include
-I../../include -I../../include -I../../libltdl -I../../libltdl
-I../../linux-ha -I../../linux-ha -I../.. -I../.. -D_BSD_SOURCE
-D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/libxml2 -DHA_VARLIBDIR='"/usr/local/var/lib"' -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 -MT crm_mon-crm_mon.o -MD -MP -MF
".deps/crm_mon-crm_mon.Tpo" -c -o crm_mon-crm_mon.o `test -f 'crm_mon.c'
|| echo './'`crm_mon.c; \
then mv -f ".deps/crm_mon-crm_mon.Tpo"
".deps/crm_mon-crm_mon.Po"; else rm -f ".deps/crm_mon-crm_mon.Tpo"; exit
1; fi
cc1: warnings being treated as errors
crm_mon.c: In function 'main':
crm_mon.c:217: warning: implicit declaration of function 'initscr'
crm_mon.c:218: warning: implicit declaration of function 'cbreak'
crm_mon.c:219: warning: implicit declaration of function 'noecho'
crm_mon.c:247: warning: implicit declaration of function 'echo'
crm_mon.c:248: warning: implicit declaration of function 'nocbreak'
crm_mon.c:249: warning: implicit declaration of function 'endwin'
gmake[2]: *** [crm_mon-crm_mon.o] Error 1
gmake[2]: Leaving directory `/usr/src/heartbeat-2.0.7/crm/admin'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/src/heartbeat-2.0.7/crm'
make: *** [all-recursive] Error 1
С этим как положено бороться?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:23 ` Eugene Prokopiev
@ 2006-09-27 10:29 ` Igor Zubkov
2006-09-27 10:29 ` Led
2006-09-27 10:30 ` Igor Zubkov
2 siblings, 0 replies; 23+ messages in thread
From: Igor Zubkov @ 2006-09-27 10:29 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 742 bytes --]
В сообщении от 27 сентября 2006 13:23 Eugene Prokopiev написал(a):
> cc1: warnings being treated as errors
Этим всё сказано.
> crm_mon.c: In function 'main':
> crm_mon.c:217: warning: implicit declaration of function 'initscr'
> crm_mon.c:218: warning: implicit declaration of function 'cbreak'
> crm_mon.c:219: warning: implicit declaration of function 'noecho'
> crm_mon.c:247: warning: implicit declaration of function 'echo'
> crm_mon.c:248: warning: implicit declaration of function 'nocbreak'
> crm_mon.c:249: warning: implicit declaration of function 'endwin'
> gmake[2]: *** [crm_mon-crm_mon.o] Error 1
Вот тут не хватает заголовочных файлов от ncurses.
--
Marilyn Manson - Target Audience (Narcissus Narcosis)
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:23 ` Eugene Prokopiev
2006-09-27 10:29 ` Igor Zubkov
@ 2006-09-27 10:29 ` Led
2006-09-27 10:30 ` Igor Zubkov
2 siblings, 0 replies; 23+ messages in thread
From: Led @ 2006-09-27 10:29 UTC (permalink / raw)
To: ALT Devel discussion list
В сообщении от 27 сентября 2006 13:23 Eugene Prokopiev написал(a):
> > пока собирается, посмотрим что будет ...
>
> C этим Makefile.am справились, получаем дальше:
>
> 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/crm_diff crm_diff-xml_diff.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/cib/.libs/libcib.so ../../lib/apphb/.libs/libapphb.so
> ../../lib/hbclient/.libs/libhbclient.so -lglib-2.0 -lbz2 -lz -lxml2 -lc
> -luuid -lrt -ldl -lltdl -Wl,--rpath -Wl,/usr/local/lib
> creating crm_diff
> if gcc -DHAVE_CONFIG_H -I. -I. -I../../linux-ha -I../../include
> -I../../include -I../../include -I../../libltdl -I../../libltdl
> -I../../linux-ha -I../../linux-ha -I../.. -I../.. -D_BSD_SOURCE
> -D__BSD_SOURCE -D__FAVOR_BSD -DHAVE_NET_ETHERNET_H
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
> -I/usr/include/libxml2 -DHA_VARLIBDIR='"/usr/local/var/lib"' -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 -MT crm_mon-crm_mon.o -MD -MP -MF
> ".deps/crm_mon-crm_mon.Tpo" -c -o crm_mon-crm_mon.o `test -f 'crm_mon.c'
>
> || echo './'`crm_mon.c; \
>
> then mv -f ".deps/crm_mon-crm_mon.Tpo"
> ".deps/crm_mon-crm_mon.Po"; else rm -f ".deps/crm_mon-crm_mon.Tpo"; exit
> 1; fi
> cc1: warnings being treated as errors
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> crm_mon.c: In function 'main':
> crm_mon.c:217: warning: implicit declaration of function 'initscr'
> crm_mon.c:218: warning: implicit declaration of function 'cbreak'
> crm_mon.c:219: warning: implicit declaration of function 'noecho'
> crm_mon.c:247: warning: implicit declaration of function 'echo'
> crm_mon.c:248: warning: implicit declaration of function 'nocbreak'
> crm_mon.c:249: warning: implicit declaration of function 'endwin'
> gmake[2]: *** [crm_mon-crm_mon.o] Error 1
> gmake[2]: Leaving directory `/usr/src/heartbeat-2.0.7/crm/admin'
> gmake[1]: *** [all-recursive] Error 1
> gmake[1]: Leaving directory `/usr/src/heartbeat-2.0.7/crm'
> make: *** [all-recursive] Error 1
>
> С этим как положено бороться?
--
Led.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 10:23 ` Eugene Prokopiev
2006-09-27 10:29 ` Igor Zubkov
2006-09-27 10:29 ` Led
@ 2006-09-27 10:30 ` Igor Zubkov
2 siblings, 0 replies; 23+ messages in thread
From: Igor Zubkov @ 2006-09-27 10:30 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 616 bytes --]
В сообщении от 27 сентября 2006 13:23 Eugene Prokopiev написал(a):
> cc1: warnings being treated as errors
> crm_mon.c: In function 'main':
> crm_mon.c:217: warning: implicit declaration of function 'initscr'
> crm_mon.c:218: warning: implicit declaration of function 'cbreak'
> crm_mon.c:219: warning: implicit declaration of function 'noecho'
> crm_mon.c:247: warning: implicit declaration of function 'echo'
> crm_mon.c:248: warning: implicit declaration of function 'nocbreak'
> crm_mon.c:249: warning: implicit declaration of function 'endwin'
man 3X initscr
--
Marilyn Manson - President Dead
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [devel] Сборка heartbeat с --as-needed
2006-09-27 9:20 ` Eugene Prokopiev
` (2 preceding siblings ...)
2006-09-27 10:07 ` Eugene Prokopiev
@ 2006-09-27 10:11 ` Konstantin A. Lepikhov
3 siblings, 0 replies; 23+ messages in thread
From: Konstantin A. Lepikhov @ 2006-09-27 10:11 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 609 bytes --]
Hi Eugene!
Wednesday 27, at 01:20:33 PM you wrote:
> > Проверьте путь к библиотеке. Также, возможно, вам надо будет поменять
> > порядок директорий при сборке, чтобы libpe_status.la собиралась раньше
> > чем libpengine.la
ага, нашел:
include/crm/pengine/complex.h
#if CURSES_ENABLED
# define status_printw(fmt...) printw(fmt)
#else
# define status_printw(fmt...) \
crm_err("printw support requires ncurses to be available during
configure"); \
do_crm_log(LOG_WARNING, NULL, NULL, fmt);
#endif
- это мы уже проходили, у нас же curses не такие, как у остальных :))
--
WBR et al.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2006-09-27 11:26 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-09-27 6:21 [devel] Сборка heartbeat с --as-needed Eugene Prokopiev
2006-09-27 6:30 ` Alexey I. Froloff
2006-09-27 6:52 ` Eugene Prokopiev
2006-09-27 7:39 ` Konstantin A. Lepikhov
2006-09-27 8:01 ` Eugene Prokopiev
2006-09-27 8:12 ` Damir Shayhutdinov
2006-09-27 9:20 ` Eugene Prokopiev
2006-09-27 9:39 ` Damir Shayhutdinov
2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:29 ` Damir Shayhutdinov
2006-09-27 10:41 ` Eugene Prokopiev
2006-09-27 11:26 ` Damir Shayhutdinov
2006-09-27 10:06 ` Konstantin A. Lepikhov
2006-09-27 10:28 ` Eugene Prokopiev
2006-09-27 10:46 ` Konstantin A. Lepikhov
2006-09-27 10:07 ` Eugene Prokopiev
2006-09-27 10:21 ` Damir Shayhutdinov
2006-09-27 10:35 ` Eugene Prokopiev
2006-09-27 10:23 ` Eugene Prokopiev
2006-09-27 10:29 ` Igor Zubkov
2006-09-27 10:29 ` Led
2006-09-27 10:30 ` Igor Zubkov
2006-09-27 10:11 ` Konstantin A. Lepikhov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git