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

  • Re: [Cluster-devel... Marc - A. Dahlhaus
    • Re: [Cluster-... Chrissie Caulfield
      • Re: [Clus... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
        • Re: [... Christine Caulfield
          • R... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
            • ... Christine Caulfield
            • ... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
            • ... Christine Caulfield
            • ... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
            • ... Christine Caulfield
            • ... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
            • ... Marc - A. Dahlhaus [ Administration | Westermann GmbH ]
            • ... Christine Caulfield

Reply via email to