Am Donnerstag, den 30.07.2009, 15:06 +0200 schrieb Marc - A. Dahlhaus [ Administration | Westermann GmbH ]: > Am Donnerstag, den 30.07.2009, 13:39 +0100 schrieb Christine Caulfield: > > On 30/07/09 13:32, Marc - A. Dahlhaus [ Administration | Westermann GmbH > > ] wrote: > > > Am Donnerstag, den 30.07.2009, 11:54 +0100 schrieb Christine Caulfield: > > >> On 30/07/09 11:52, Marc - A. Dahlhaus [ Administration | Westermann GmbH > > >> ] wrote: > > >>> Am Donnerstag, den 30.07.2009, 11:42 +0100 schrieb Christine Caulfield: > > >>>> On 30/07/09 11:36, Marc - A. Dahlhaus [ Administration | Westermann > > >>>> GmbH > > >>>> ] wrote: > > >>>>> 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 > > >>>> Hmm, that's what findstring() is suppose to do. but it's obviously not > > >>>> working. > > >>> You are looking at daemons/clvmd/Makefile.in... > > >>> Please take a look at configure.in and search for the string corosync. > > >>> You should spot what i mean there. > > >>> > > >> Oh I don't touch configure.in - far too scary > > > > > > Maybe you know whom to ask for a fix, a quick and dirty one would be to > > > always check for the corosync things in configure.in (eg remove the if > > > around it). > > > > > > But i'm still thinking that it should be fixed the right way (eg. remove > > > the substring checks fom the Makefile and set what to build from > > > configure.in) and will try to cook something up if i'm able to spot fo > > > what to check for each clvmd binding... > > > > > Alasdair has checked in a fix to configure - you might like to try that :-) > > Builds fine with the fixes, thanks :-) > > How can i control now what backend clvmd will use to propagate the locks > or does it use the right one by default?
Found that one in the code, man page needs some updating... > Do i need the cman and corosync backends for compatibility with cluster2 > or what is the reason behind to build them both? > > > Marc
