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 DE9D61381F3 for ; Wed, 26 Jun 2013 06:50:27 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 55A45E0A63; Wed, 26 Jun 2013 06:50:15 +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 01F6DE0A41 for ; Wed, 26 Jun 2013 06:50:13 +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 9913F33E2EB for ; Wed, 26 Jun 2013 06:50:12 +0000 (UTC) Message-ID: <51CA8F0E.6040608@gentoo.org> Date: Wed, 26 Jun 2013 09:49:50 +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 Subject: Re: [gentoo-user] LVM2 compile error. Clock_gettime References: <51CA7510.6000107@gmail.com> <51CA7A0F.7060505@gentoo.org> <51CA8AB6.8050500@gmail.com> In-Reply-To: <51CA8AB6.8050500@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Archives-Salt: 08315c71-5d2d-4b57-a4d4-e378bd8e2605 X-Archives-Hash: 47d83ed7c1893082ccf5c5346ff26d05 On 26/06/13 09:31, Dale wrote: > Samuli Suominen wrote: >> 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 >> >> > > I switched when all the separate /usr uproar happened. I no longer have > a init thingy either. I cleaned all that out after a few successful > reboots with eudev without using a init thingy. So, if I switch back to > udev, are you sure that my system is going to reboot? I have everything > but / and /boot on LVM. Point being, I don't want to switch back, > reboot and have a non-bootable system. I switched to grub2 and would > really not want to learn the hard way how to edit stuff, chrrot to fix > anything with it, although I need to test on that one day. > > At least my guess was right on it being a *dev problem. What I saw from > google pointed in that direction. sys-fs/udev-197, 200, 204. --- will install to / instead of /usr so it will work with sep. /usr just like eudev does, or just like udev-171 used to basically the only thing to look out for is the network interface names, you can add extra entry to grub that boots with net.ifnames=0 kernel parameter, or create empty file /etc/udev/rules.d/80-net-name-slot.rules if you don't like the new names