From: Samuli Suominen <ssuominen@gentoo.org>
To: gentoo-user@lists.gentoo.org, udev-bugs@gentoo.org, eudev@gentoo.org
Subject: Re: [gentoo-user] LVM2 compile error. Clock_gettime
Date: Wed, 26 Jun 2013 08:20:15 +0300 [thread overview]
Message-ID: <51CA7A0F.7060505@gentoo.org> (raw)
In-Reply-To: <51CA7510.6000107@gmail.com>
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
next prev parent reply other threads:[~2013-06-26 5:20 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-26 4:58 [gentoo-user] LVM2 compile error. Clock_gettime Dale
2013-06-26 5:20 ` Samuli Suominen [this message]
2013-06-26 6:31 ` Dale
2013-06-26 6:49 ` Samuli Suominen
2013-06-27 12:39 ` Dale
2013-06-29 1:59 ` Walter Dnes
2013-06-29 2:44 ` Dale
2013-06-29 9:27 ` Neil Bothwick
2013-06-29 9:53 ` Dale
2013-06-29 13:11 ` Bruce Hill
2013-06-30 2:45 ` Dale
2013-06-29 13:07 ` Bruce Hill
2013-06-30 5:32 ` Dale
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51CA7A0F.7060505@gentoo.org \
--to=ssuominen@gentoo.org \
--cc=eudev@gentoo.org \
--cc=gentoo-user@lists.gentoo.org \
--cc=udev-bugs@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox