[Cluster-devel] LVM2 clvmd and STABLE3

Christine Caulfield ccaulfie at redhat.com
Thu Jul 30 12:39:10 UTC 2009


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 :-)


Chrissie




More information about the Cluster-devel mailing list