[Cluster-devel] LVM2 clvmd and STABLE3

Christine Caulfield ccaulfie at redhat.com
Thu Jul 30 10:42:45 UTC 2009


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.

Chrissie




More information about the Cluster-devel mailing list