[Pacemaker] Problem building development version on Solaris
Andrew Beekhof
beekhof at gmail.com
Thu Sep 11 09:32:38 UTC 2008
On Sep 11, 2008, at 11:25 AM, Paul Walsh wrote:
> 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
wow - thats old. please run:
hg update -C tip
>
>
> 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
so this needs to be added to ConfigureMe?
>
>
> 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
>
this has since been fixed (Lars removed cl_malloc form heartbeat).
see note above about getting the latest version
More information about the Pacemaker
mailing list