public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Samuli Suominen <ssuominen@gentoo.org>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user]  LVM2 compile error.  Clock_gettime
Date: Wed, 26 Jun 2013 09:49:50 +0300	[thread overview]
Message-ID: <51CA8F0E.6040608@gentoo.org> (raw)
In-Reply-To: <51CA8AB6.8050500@gmail.com>

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


  reply	other threads:[~2013-06-26  6:50 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
2013-06-26  6:31   ` Dale
2013-06-26  6:49     ` Samuli Suominen [this message]
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=51CA8F0E.6040608@gentoo.org \
    --to=ssuominen@gentoo.org \
    --cc=gentoo-user@lists.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