[Pacemaker] Problem building development version on Solaris
Paul Walsh
Paul.Walsh at bcu.ac.uk
Thu Sep 11 09:25:43 UTC 2008
Hardware: V210
O/S: Solaris 10 Update 5 with recommended patch cluster
Required packages (autoconf automake libtool etc) obtained from sunfreeware.com repository
Heartbeat development version Linux-HA-Dev-fc047640072c (installed in /opt/LXHAhb )
Pacemaker development version Pacemaker-Devel-7173fd1de394
Am trying to build Pacemaker, starting with the following command:
./ConfigureMe configure --with-heartbeat-support --without-ais-support
This eventually fails with
checking for ll_cluster_new in -lhbclient... no
checking for msgfromIPC_timeout... no
configure: error: You must choose at least one cluster stack to support
See `config.log' for more details.
After taking a look at config.log I found the following:
configure:32622: result: no
configure:32664: checking for msgfromIPC_timeout
configure:32720: gcc -std=gnu99 -o conftest -I/opt/LXHAhb/include/heartbeat -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/local/include/libxml2
conftest.c -lxslt -lxml2 -lc -lpam -lrt -ldl -lc -lposix4 -lsocket -lnsl -lltdl >&5
Undefined first referenced
symbol in file
msgfromIPC_timeout /var/tmp//ccub8AFP.o
ld: fatal: Symbol referencing errors. No output written to conftest
collect2: ld returned 1 exit status
After searching around I found that the routine is in /opt/LXHAhb/lib/libplumb.so :
$ nm libplumb.so |grep msgfrom
0000f2d0 T ipcmsgfromIPC
0001054c T msgfromIPC
000103f4 t msgfromIPC_ll
00010530 T msgfromIPC_noauth
00010564 T msgfromIPC_timeout
0000f15c T msgfromstream
0000f01c T msgfromstream_netstring
0000eeb0 T msgfromstream_string
So it appears Configure isn't picking up the libraries in /opt/LXHAhb/lib
I then tried after setting LDFLAGS :
export LDFLAGS=-L/opt/LXHAhb/lib
This, at least, allows ConfigureMe to finish:
pacemaker configuration:
Version = 0.7.0
Prefix = /opt/LXHAhb
Executables = /opt/LXHAhb/sbin
Man pages = /opt/LXHAhb/share/man
Libraries = /opt/LXHAhb/lib
Header files = /opt/LXHAhb/include
Arch-independent files = /opt/LXHAhb/share
State information = /var/opt/LXHAhb
System configuration = /etc/opt/LXHAhb
Init (rc) scripts = /etc/init.d
Use system LTDL = yes
HA group name = haclient
HA user name = hacluster
With Heartbeat support = 1
With AIS support = 0
With AIS prefix =
CC_WARNINGS = -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
Mangled CFLAGS = -I/opt/LXHAhb/include/heartbeat -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
Libraries = -lgnutls -lbz2 -lxslt -lxml2 -lc -lplumb -lpam -lrt -ldl -lc -lposix4 -lsocket -lnsl -lltdl
HOWEVER......
We don't get very far before we hit a problem:
/bin/sh ../../../libtool --tag=CC --tag=CC --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../../include
-I../../../include -I../../../include -I../../../libltdl -I../../../libltdl -I/include/openais
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/libxml2 -I/opt/LXHAhb/include/heartbeat
-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 -MT ipc.lo -MD -MP -MF .deps/ipc.Tpo -c -o
ipc.lo ipc.c
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../../include -I../../../include -I../../../include -I../../../libltdl
-I../../../libltdl -I/include/openais -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/libxml2
-I/opt/LXHAhb/include/heartbeat -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 -MT
ipc.lo -MD -MP -MF .deps/ipc.Tpo -c ipc.c -fPIC -DPIC -o .libs/ipc.o
In file included from ipc.c:31:
../../../include/crm/crm.h:28:31: clplumbing/cl_log.h: No such file or directory
../../../include/crm/crm.h:29:34: clplumbing/cl_malloc.h: No such file or directory
In file included from ../../../include/crm/common/xml.h:29,
from ../../../include/crm/common/util.h:22,
from ../../../include/crm/crm.h:67,
from ipc.c:31:
/opt/LXHAhb/include/heartbeat/ha_msg.h:27:28: clplumbing/ipc.h: No such file or directory
/opt/LXHAhb/include/heartbeat/ha_msg.h:28:34: clplumbing/longclock.h: No such file or directory
/opt/LXHAhb/include/heartbeat/ha_msg.h:29:32: clplumbing/cl_uuid.h: No such file or directory
.
.
.
(see attached file for full output from make).
The errors regarding the header files can be resolved by defining CFLAGS prior to ConfigureMe:
export CFLAGS=-I/opt/LXHAhb/include
Though we still end up with a failure when compiling ipc.c :
In file included from ipc.c:31:
../../../include/crm/crm.h:29:34: clplumbing/cl_malloc.h: No such file or directory
ipc.c: In function `xml2ipcchan':
ipc.c:120: warning: int format, pid_t arg (arg 4)
ipc.c: In function `send_ipc_message':
ipc.c:165: warning: int format, pid_t arg (arg 5)
ipc.c:165: warning: int format, pid_t arg (arg 4)
ipc.c: In function `init_client_ipc_comms_nodispatch':
ipc.c:268: warning: implicit declaration of function `cl_malloc'
ipc.c:268: warning: assignment makes pointer from integer without a cast
ipc.c:282: warning: implicit declaration of function `cl_free'
ipc.c: In function `subsystem_msg_dispatch':
ipc.c:409: warning: int format, pid_t arg (arg 5)
ipc.c:409: warning: int format, pid_t arg (arg 4)
ipc.c: In function `new_ha_msg_input':
ipc.c:572: warning: assignment makes pointer from integer without a cast
make[3]: *** [ipc.lo] Error 1
make[3]: Leaving directory `/software/Pacemaker-Devel-7173fd1de394/lib/crm/common'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/software/Pacemaker-Devel-7173fd1de394/lib/crm'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/software/Pacemaker-Devel-7173fd1de394/lib'
make: *** [all-recursive] Error 1
I've searched the sources for Heartbeat AND Pacemaker but cannot find cl_malloc.h anywhere
Suggestions anyone?
--
Paul Walsh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: make_output.txt
URL: <https://lists.clusterlabs.org/pipermail/pacemaker/attachments/20080911/269b7d37/attachment-0001.txt>
More information about the Pacemaker
mailing list