From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id A7BAC1381F3 for ; Wed, 26 Jun 2013 05:20:51 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id ADC82E09E2; Wed, 26 Jun 2013 05:20:45 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 649CFE09C6 for ; Wed, 26 Jun 2013 05:20:44 +0000 (UTC) Received: from [10.173.70.220] (85-76-56-41-nat.elisa-mobile.fi [85.76.56.41]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: ssuominen) by smtp.gentoo.org (Postfix) with ESMTPSA id 538F233E6F5; Wed, 26 Jun 2013 05:20:42 +0000 (UTC) Message-ID: <51CA7A0F.7060505@gentoo.org> Date: Wed, 26 Jun 2013 08:20:15 +0300 From: Samuli Suominen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.6 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 To: gentoo-user@lists.gentoo.org, udev-bugs@gentoo.org, eudev@gentoo.org Subject: Re: [gentoo-user] LVM2 compile error. Clock_gettime References: <51CA7510.6000107@gmail.com> In-Reply-To: <51CA7510.6000107@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Archives-Salt: f6b0d2ba-25ba-4480-9289-ca0767f045d3 X-Archives-Hash: 37c3ca797d7603e6854d313faf0d67d3 On 26/06/13 07:58, Dale wrote: > I can't seem to get lvm2 to compile. I get this error: > > FILE=`echo lvchange.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ > DEPS=`echo ../make.tmpl ../VERSION ../Makefile > ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \ > x86_64-pc-linux-gnu-gcc -MM -I. -I../include > -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o > lvchange.d lvchange.c; \ > sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g" lvchange.d; \ > [ -s lvchange.d ] || rm -f lvchange.d > /bin/mkdir -p ./; \ > set -e; \ > FILE=`echo formats.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ > DEPS=`echo ../make.tmpl ../VERSION ../Makefile > ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \ > x86_64-pc-linux-gnu-gcc -MM -I. -I../include > -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o > formats.d formats.c; \ > sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g" formats.d; \ > [ -s formats.d ] || rm -f formats.d > /bin/mkdir -p ./; \ > set -e; \ > FILE=`echo dumpconfig.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ > DEPS=`echo ../make.tmpl ../VERSION ../Makefile > ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \ > x86_64-pc-linux-gnu-gcc -MM -I. -I../include > -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o > dumpconfig.d dumpconfig.c; \ > sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g" > dumpconfig.d; \ > [ -s dumpconfig.d ] || rm -f dumpconfig.d > make[1]: Leaving directory > `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools' > make[1]: Entering directory > `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools' > x86_64-pc-linux-gnu-gcc -c -I. -I../include > -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -Wall > -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes > -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn > -Wformat-security -Wredundant-decls -Wpointer-arith -march=native -O2 > -pipe -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe -fPIC > -O2 dmsetup.c -o dmsetup.o > x86_64-pc-linux-gnu-gcc -shared -Wl,-soname,libdevmapper-event.so.1.02 \ > -march=native -O2 -pipe -march=native -O2 -pipe -fPIC -O2 > -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 > -Wl,-O1 -Wl,--as-needed -Wl,--version-script,.export.sym -L../../libdm > -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd > libdevmapper-event.o -ldevmapper -o libdevmapper-event.so.1.02 > rm -f libdevmapper-event.a > x86_64-pc-linux-gnu-ar rs libdevmapper-event.a libdevmapper-event.o > x86_64-pc-linux-gnu-ar: creating libdevmapper-event.a > ln -s -f libdevmapper-event.so.1.02 libdevmapper-event.so > x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe > -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe > -fPIC -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -O2 -L./libdm > -L./lib -L./libdaemon/client -L./daemons/dmeventd -Wl,-O1 > -Wl,--as-needed -O2 -L../libdm -L../lib -L../libdaemon/client > -L../daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../../libdm > -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd > -Wl,--export-dynamic -L. -o dmeventd dmeventd.o \ > -ldl -ldevmapper-event -lpthread -ldevmapper -rdynamic > x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe > -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe > -fPIC -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -O2 -L./libdm > -L./lib -L./libdaemon/client -L./daemons/dmeventd -Wl,-O1 > -Wl,--as-needed -O2 -L../libdm -L../lib -L../libdaemon/client > -L../daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../../libdm > -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd > -Wl,--export-dynamic -Wl,--no-export-dynamic -static -L. > -L../../libdm/ioctl -o dmeventd.static \ > dmeventd.o -ldl -ldevmapper-event -lpthread -ldevmapper -ludev > dmeventd.o: In function `_register_for_event': > dmeventd.c:(.text+0xfb1): warning: Using 'dlopen' in statically linked > applications requires at runtime the shared libraries from the glibc > version used for linking > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o): > In function `util_lookup_group': > (.text+0x4d6): warning: Using 'getgrnam_r' in statically linked > applications requires at runtime the shared libraries from the glibc > version used for linking > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o): > In function `util_lookup_user': > (.text+0x3a3): warning: Using 'getpwnam_r' in statically linked > applications requires at runtime the shared libraries from the glibc > version used for linking > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(util.o): > In function `now': > (.text+0x148): undefined reference to `clock_gettime' > collect2: ld returned 1 exit status > make[2]: *** [dmeventd.static] Error 1 > make[2]: Leaving directory > `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/daemons/dmeventd' > make[1]: *** [dmeventd.device-mapper] Error 2 > make[1]: Leaving directory > `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/daemons' > make: *** [daemons.device-mapper] Error 2 > make: *** Waiting for unfinished jobs.... > x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe > -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -Wl,-O1 -Wl,--as-needed > -Wl,-O1 -Wl,--as-needed -O2 -L./libdm -L./lib -L./libdaemon/client > -L./daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../libdm -L../lib > -L../libdaemon/client -L../daemons/dmeventd -L../libdm \ > -o dmsetup dmsetup.o -ldevmapper -ludev > x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe > -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -Wl,-O1 -Wl,--as-needed > -Wl,-O1 -Wl,--as-needed -O2 -L./libdm -L./lib -L./libdaemon/client > -L./daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../libdm -L../lib > -L../libdaemon/client -L../daemons/dmeventd -Wl,--no-export-dynamic > -static -L../libdm/ioctl \ > -o dmsetup.static dmsetup.o -ldevmapper -ludev -ludev > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o): > In function `util_lookup_group': > (.text+0x4d6): warning: Using 'getgrnam_r' in statically linked > applications requires at runtime the shared libraries from the glibc > version used for linking > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o): > In function `util_lookup_user': > (.text+0x3a3): warning: Using 'getpwnam_r' in statically linked > applications requires at runtime the shared libraries from the glibc > version used for linking > /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(util.o): > In function `now': > (.text+0x148): undefined reference to `clock_gettime' > collect2: ld returned 1 exit status > make[1]: *** [dmsetup.static] Error 1 > make[1]: Leaving directory > `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools' > make: *** [tools.device-mapper] Error 2 > * ERROR: sys-fs/lvm2-2.02.98 failed (compile phase): > * emake failed > > > The short error is this: > > (.text+0x148): undefined reference to `clock_gettime' > > I googled and it seems udev is supposed to deal with this. I'm using > eudev. I have tried a masked version of lvm2 to see if it has a fix but > same error. I'm on the latest eudev except for the *9999 version. This > is current version of eudev: > > [IP-] [ ] sys-fs/eudev-1.0:0 > > Current installed gcc: > > [IP-] [ ] sys-devel/gcc-4.4.7:4.4.7 > [IP-] [ ] sys-devel/gcc-4.5.4:4.5.4 > [IP-] [ ] sys-devel/gcc-4.6.3:4.6.3 > > I'm set to use 4.6.3 gcc according to gcc-config. This is part of a > emerge -e world hoping to fix the seamonkey/firefox issue, hoping. > Everything else compiled except googleearth and ppp. I'm not using > those at the moment so I'm not worried about those. Maybe later. > > Thoughts? Ideas? With sys-fs/udev-204 installed I get: $ pkg-config --libs --static libudev -ludev -lrt $ grep lrt /usr/lib64/pkgconfig/libudev.pc Libs.private: -lrt In which the -lrt is the important bit. It's required for clock_gettime. So either eudev is broken and doesn't contain proper Libs.private: in libudev.pc file, or sys-fs/lvm2's build system is broken and doesn't query proper Libs.private: from libudev.pc when building lvm2 with static. For the record. There is no reason to use sys-fs/eudev at this time, it doesn't bring anything to the table sys-fs/udev doesn't have. In fact, sys-fs/eudev has broken USE="+rule-generator" which leads to random interface names. - Samuli