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? Do i need the cman and corosync backends for compatibility with cluster2 or what is the reason behind to build them both? Marc
