From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marc - A. Dahlhaus [ Administration | Westermann GmbH ] Date: Thu, 30 Jul 2009 12:36:28 +0200 Subject: [Cluster-devel] LVM2 clvmd and STABLE3 In-Reply-To: <4A71617E.4010500@redhat.com> References: <1236691257.16338.3.camel@marc> <49B66C9F.4030607@redhat.com> <49B69918.3050307@wol.de> <49B69A45.2050603@redhat.com> <1248939924.16544.20.camel@marc> <4A71617E.4010500@redhat.com> Message-ID: <1248950188.25215.31.camel@marc> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Am Donnerstag, den 30.07.2009, 10:01 +0100 schrieb Christine Caulfield: > On 30/07/09 08:45, Marc - A. Dahlhaus [ Administration | Westermann GmbH > ] wrote: > > Am Dienstag, den 10.03.2009, 16:50 +0000 schrieb Chrissie Caulfield: > >> Marc - A. Dahlhaus wrote: > >>> Chrissie Caulfield schrieb: > >>>> Marc - A. Dahlhaus [ Administration | Westermann GmbH ] wrote: > >>>> > >>>>> Hello, > >>>>> > >>>>> > >>>>> what is the right approach to build LVM2 with STABLE3, > >>>>> a build with --with-clvmd=corosync or --with-clvmd=cman ? > >>>>> > >>>>> > >>>> I recommend you do both. > >>>> > >>>> --with-clvmd=corosync=cman,corosync > >>>> > >>> sounds nice but it doesn't build. > >>> I use the last released tarballs of STABLE3, corosync, openais and LVM2. > >>> I tested the following: > >>> > >>> --with-clvmd=corosync=cman,corosync > >>> --with-clvmd=cman,corosync > >>> --with-clvmd=corosync,cman > >>> > >>> All end up with: > >>> > >>> gcc -m32 -o clvmd clvmd-command.o clvmd.o lvm-functions.o > >>> refresh_clvmd.o clvmd-cman.o clvmd-corosync.o -march=i686 -mtune=generic > >>> -O2 -pipe -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef > >>> -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes > >>> -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn > >>> -Wformat-security -O2 -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall > >>> -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes > >>> -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn > >>> -Wformat-security -O2 -fno-strict-aliasing -march=i686 -mtune=generic > >>> -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings > >>> -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline > >>> -Wmissing-noreturn -Wformat-security -O2 -Wl,--export-dynamic > >>> -L../../libdm -L../../lib -L../../daemons/dmeventd \ > >>> -llvm -lpthread -ldevmapper-event -ldevmapper -ldlm > >>> -lcman -ldlm -lreadline -lrt -ldl -lncurses > >>> clvmd-corosync.o: In function `_get_cluster_name': > >>> clvmd-corosync.c:(.text+0x695): undefined reference to `confdb_initialize' > >>> clvmd-corosync.c:(.text+0x6c6): undefined reference to > >>> `confdb_object_find_start' > >>> clvmd-corosync.c:(.text+0x6dd): undefined reference to `confdb_finalize' > >>> clvmd-corosync.c:(.text+0x727): undefined reference to `confdb_object_find' > >>> clvmd-corosync.c:(.text+0x769): undefined reference to `confdb_key_get' > >>> clvmd-corosync.o: In function `_cluster_closedown': > >>> clvmd-corosync.c:(.text+0x7e9): undefined reference to `cpg_finalize' > >>> clvmd-corosync.c:(.text+0x801): undefined reference to `quorum_finalize' > >>> clvmd-corosync.o: In function `_is_quorate': > >>> clvmd-corosync.c:(.text+0x98d): undefined reference to `quorum_getquorate' > >>> clvmd-corosync.o: In function `_get_main_cluster_fd': > >>> clvmd-corosync.c:(.text+0xadd): undefined reference to `cpg_fd_get' > >>> clvmd-corosync.o: In function `_cluster_fd_callback': > >>> clvmd-corosync.c:(.text+0xb30): undefined reference to `cpg_dispatch' > >>> clvmd-corosync.o: In function `_cluster_send_message': > >>> clvmd-corosync.c:(.text+0xc12): undefined reference to `cpg_mcast_joined' > >>> clvmd-corosync.o: In function `init_corosync_cluster': > >>> clvmd-corosync.c:(.text+0xc80): undefined reference to `cpg_initialize' > >>> clvmd-corosync.c:(.text+0xcec): undefined reference to `quorum_initialize' > >>> clvmd-corosync.c:(.text+0xdb9): undefined reference to `cpg_join' > >>> clvmd-corosync.c:(.text+0xddc): undefined reference to `cpg_finalize' > >>> clvmd-corosync.c:(.text+0xdf4): undefined reference to `quorum_finalize' > >>> clvmd-corosync.c:(.text+0xe66): undefined reference to `cpg_local_get' > >>> clvmd-corosync.c:(.text+0xe89): undefined reference to `cpg_finalize' > >>> clvmd-corosync.c:(.text+0xea1): undefined reference to `quorum_finalize' > >>> clvmd-corosync.c:(.text+0xf1c): undefined reference to `quorum_finalize' > >>> > >>> The full configure line for reference: > >>> > >>> ./configure --enable-cmdlib --enable-dmeventd --enable-pkgconfig \ > >>> --disable-selinux --with-clvmd=corosync,cman --with-lvm1=shared \ > >>> --with-cluster=shared --with-pool=shared \ > >>> --with-snapshots=shared --with-mirrors=internal > >>> > > > Hmmm. > > I've just checked and the lvm2 configure code to do this was in the > 2.02.45 release. > > I tried it with head of CVS and it works fine ;-) > > Chrissie > I use this commands: CC="gcc -m32" CXX="g++ -m32" ./configure \ --enable-cmdlib --enable-dmeventd --enable-pkgconfig \ --disable-selinux --with-clvmd=corosync,cman --with-lvm1=shared \ --with-cluster=shared --with-pool=shared \ --with-snapshots=shared --with-mirrors=internal make and end up with: gcc -m32 -o clvmd clvmd-command.o clvmd.o lvm-functions.o refresh_clvmd.o clvmd-cman.o clvmd-corosync.o -march=i686 -mtune=generic -O2 -pipe -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 -fno-strict-aliasing -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 -Wl,--export-dynamic -L../../libdm -L../../lib -L../../daemons/dmeventd \ -llvm-internal -lpthread -ldevmapper-event -ldevmapper -ldlm -lcman -ldlm -lreadline -lrt -ldl -lncurses clvmd-corosync.o: In function `_get_cluster_name': clvmd-corosync.c:(.text+0x6b5): undefined reference to `confdb_initialize' clvmd-corosync.c:(.text+0x6e6): undefined reference to `confdb_object_find_start' clvmd-corosync.c:(.text+0x6fd): undefined reference to `confdb_finalize' clvmd-corosync.c:(.text+0x747): undefined reference to `confdb_object_find' clvmd-corosync.c:(.text+0x789): undefined reference to `confdb_key_get' clvmd-corosync.o: In function `_cluster_closedown': clvmd-corosync.c:(.text+0x809): undefined reference to `cpg_finalize' clvmd-corosync.c:(.text+0x821): undefined reference to `quorum_finalize' clvmd-corosync.o: In function `_is_quorate': clvmd-corosync.c:(.text+0x9ad): undefined reference to `quorum_getquorate' clvmd-corosync.o: In function `_get_main_cluster_fd': clvmd-corosync.c:(.text+0xafd): undefined reference to `cpg_fd_get' clvmd-corosync.o: In function `_cluster_fd_callback': clvmd-corosync.c:(.text+0xb50): undefined reference to `cpg_dispatch' clvmd-corosync.o: In function `_cluster_send_message': clvmd-corosync.c:(.text+0xc32): undefined reference to `cpg_mcast_joined' clvmd-corosync.o: In function `init_corosync_cluster': clvmd-corosync.c:(.text+0xca0): undefined reference to `cpg_initialize' clvmd-corosync.c:(.text+0xd0c): undefined reference to `quorum_initialize' clvmd-corosync.c:(.text+0xdd9): undefined reference to `cpg_join' clvmd-corosync.c:(.text+0xdfc): undefined reference to `cpg_finalize' clvmd-corosync.c:(.text+0xe14): undefined reference to `quorum_finalize' clvmd-corosync.c:(.text+0xe86): undefined reference to `cpg_local_get' clvmd-corosync.c:(.text+0xea9): undefined reference to `cpg_finalize' clvmd-corosync.c:(.text+0xec1): undefined reference to `quorum_finalize' clvmd-corosync.c:(.text+0xf3c): undefined reference to `quorum_finalize' collect2: ld gab 1 als Ende-Status zur?ck make[2]: *** [clvmd] Fehler 1 make[2]: Leaving directory `/repo/kiss-linux/lvm2/src/LVM2.2.02.50/daemons/clvmd' make[1]: *** [clvmd] Fehler 2 make[1]: Leaving directory `/repo/kiss-linux/lvm2/src/LVM2.2.02.50/daemons' make: *** [daemons] Fehler 2 The problem is in configure as configure doesn't look for individual substrings in CLVMD but tests for the whole string... So i have to set it to cman OR corosync OR all but not to cman,corosync or corosync,cman... I can build just fine with "cman" and also with "corosync" but if i use "all" i can't build because USE_GULM gets in my way: gcc -m32 -c -I. -I../../include -DUSE_GULM -DUSE_CMAN -DUSE_OPENAIS -DUSE_COROSYNC -D_REENTRANT -DHAVE_CONFIG_H -DDM_IOCTLS -march=i686 -mtune=generic -O2 -pipe -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 -fno-strict-aliasing -march=i686 -mtune=generic -O2 -pipe -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security -O2 clvmd-command.c -o clvmd-command.o In Datei, eingef?gt von clvmd-command.c:77: clvmd-comms.h:80:35: Fehler: openais/totem/totem.h: Datei oder Verzeichnis nicht gefunden make[2]: *** [clvmd-command.o] Fehler 1 make[2]: Leaving directory `/repo/kiss-linux/lvm2/src/LVM2.2.02.50/daemons/clvmd' make[1]: *** [clvmd] Fehler 2 make[1]: Leaving directory `/repo/kiss-linux/lvm2/src/LVM2.2.02.50/daemons' make: *** [daemons] Fehler 2 How can we fix this? Marc