[Pacemaker] Problem building development version on Solaris

Paul Walsh Paul.Walsh at bcu.ac.uk
Thu Sep 11 05:25:43 EDT 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: <http://lists.clusterlabs.org/pipermail/pacemaker/attachments/20080911/269b7d37/attachment.txt>


More information about the Pacemaker mailing list