Gentoo Archives: gentoo-user

From: Samuli Suominen <ssuominen@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] LVM2 compile error. Clock_gettime
Date: Wed, 26 Jun 2013 06:50:27
Message-Id: 51CA8F0E.6040608@gentoo.org
In Reply to: Re: [gentoo-user] LVM2 compile error. Clock_gettime by Dale
1 On 26/06/13 09:31, Dale wrote:
2 > Samuli Suominen wrote:
3 >> On 26/06/13 07:58, Dale wrote:
4 >>> I can't seem to get lvm2 to compile. I get this error:
5 >>>
6 >>> FILE=`echo lvchange.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \
7 >>> DEPS=`echo ../make.tmpl ../VERSION ../Makefile
8 >>> ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \
9 >>> x86_64-pc-linux-gnu-gcc -MM -I. -I../include
10 >>> -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o
11 >>> lvchange.d lvchange.c; \
12 >>> sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g"
13 >>> lvchange.d; \
14 >>> [ -s lvchange.d ] || rm -f lvchange.d
15 >>> /bin/mkdir -p ./; \
16 >>> set -e; \
17 >>> FILE=`echo formats.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \
18 >>> DEPS=`echo ../make.tmpl ../VERSION ../Makefile
19 >>> ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \
20 >>> x86_64-pc-linux-gnu-gcc -MM -I. -I../include
21 >>> -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o
22 >>> formats.d formats.c; \
23 >>> sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g"
24 >>> formats.d; \
25 >>> [ -s formats.d ] || rm -f formats.d
26 >>> /bin/mkdir -p ./; \
27 >>> set -e; \
28 >>> FILE=`echo dumpconfig.d | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \
29 >>> DEPS=`echo ../make.tmpl ../VERSION ../Makefile
30 >>> ../include/.symlinks_created | sed -e 's/\\//\\\\\\//g'`; \
31 >>> x86_64-pc-linux-gnu-gcc -MM -I. -I../include
32 >>> -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -o
33 >>> dumpconfig.d dumpconfig.c; \
34 >>> sed -i "s/\(.*\)\.o[ :]*/$FILE.o $FILE.d $FILE.pot: $DEPS /g"
35 >>> dumpconfig.d; \
36 >>> [ -s dumpconfig.d ] || rm -f dumpconfig.d
37 >>> make[1]: Leaving directory
38 >>> `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools'
39 >>> make[1]: Entering directory
40 >>> `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools'
41 >>> x86_64-pc-linux-gnu-gcc -c -I. -I../include
42 >>> -DLVM_SHARED_PATH=\"/usr/sbin/lvm\" -DHAVE_CONFIG_H -DDM_IOCTLS -Wall
43 >>> -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes
44 >>> -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn
45 >>> -Wformat-security -Wredundant-decls -Wpointer-arith -march=native -O2
46 >>> -pipe -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe -fPIC
47 >>> -O2 dmsetup.c -o dmsetup.o
48 >>> x86_64-pc-linux-gnu-gcc -shared -Wl,-soname,libdevmapper-event.so.1.02 \
49 >>> -march=native -O2 -pipe -march=native -O2 -pipe -fPIC -O2
50 >>> -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe -fPIC -O2
51 >>> -Wl,-O1 -Wl,--as-needed -Wl,--version-script,.export.sym -L../../libdm
52 >>> -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd
53 >>> libdevmapper-event.o -ldevmapper -o libdevmapper-event.so.1.02
54 >>> rm -f libdevmapper-event.a
55 >>> x86_64-pc-linux-gnu-ar rs libdevmapper-event.a libdevmapper-event.o
56 >>> x86_64-pc-linux-gnu-ar: creating libdevmapper-event.a
57 >>> ln -s -f libdevmapper-event.so.1.02 libdevmapper-event.so
58 >>> x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe
59 >>> -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe
60 >>> -fPIC -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -O2 -L./libdm
61 >>> -L./lib -L./libdaemon/client -L./daemons/dmeventd -Wl,-O1
62 >>> -Wl,--as-needed -O2 -L../libdm -L../lib -L../libdaemon/client
63 >>> -L../daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../../libdm
64 >>> -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd
65 >>> -Wl,--export-dynamic -L. -o dmeventd dmeventd.o \
66 >>> -ldl -ldevmapper-event -lpthread -ldevmapper -rdynamic
67 >>> x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe
68 >>> -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -march=native -O2 -pipe
69 >>> -fPIC -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -O2 -L./libdm
70 >>> -L./lib -L./libdaemon/client -L./daemons/dmeventd -Wl,-O1
71 >>> -Wl,--as-needed -O2 -L../libdm -L../lib -L../libdaemon/client
72 >>> -L../daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../../libdm
73 >>> -L../../lib -L../../libdaemon/client -L../../daemons/dmeventd
74 >>> -Wl,--export-dynamic -Wl,--no-export-dynamic -static -L.
75 >>> -L../../libdm/ioctl -o dmeventd.static \
76 >>> dmeventd.o -ldl -ldevmapper-event -lpthread -ldevmapper -ludev
77 >>> dmeventd.o: In function `_register_for_event':
78 >>> dmeventd.c:(.text+0xfb1): warning: Using 'dlopen' in statically linked
79 >>> applications requires at runtime the shared libraries from the glibc
80 >>> version used for linking
81 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o):
82 >>>
83 >>> In function `util_lookup_group':
84 >>> (.text+0x4d6): warning: Using 'getgrnam_r' in statically linked
85 >>> applications requires at runtime the shared libraries from the glibc
86 >>> version used for linking
87 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o):
88 >>>
89 >>> In function `util_lookup_user':
90 >>> (.text+0x3a3): warning: Using 'getpwnam_r' in statically linked
91 >>> applications requires at runtime the shared libraries from the glibc
92 >>> version used for linking
93 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(util.o):
94 >>>
95 >>> In function `now':
96 >>> (.text+0x148): undefined reference to `clock_gettime'
97 >>> collect2: ld returned 1 exit status
98 >>> make[2]: *** [dmeventd.static] Error 1
99 >>> make[2]: Leaving directory
100 >>> `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/daemons/dmeventd'
101 >>>
102 >>> make[1]: *** [dmeventd.device-mapper] Error 2
103 >>> make[1]: Leaving directory
104 >>> `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/daemons'
105 >>> make: *** [daemons.device-mapper] Error 2
106 >>> make: *** Waiting for unfinished jobs....
107 >>> x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe
108 >>> -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -Wl,-O1 -Wl,--as-needed
109 >>> -Wl,-O1 -Wl,--as-needed -O2 -L./libdm -L./lib -L./libdaemon/client
110 >>> -L./daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../libdm -L../lib
111 >>> -L../libdaemon/client -L../daemons/dmeventd -L../libdm \
112 >>> -o dmsetup dmsetup.o -ldevmapper -ludev
113 >>> x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -march=native -O2 -pipe
114 >>> -fPIC -O2 -march=native -O2 -pipe -fPIC -O2 -Wl,-O1 -Wl,--as-needed
115 >>> -Wl,-O1 -Wl,--as-needed -O2 -L./libdm -L./lib -L./libdaemon/client
116 >>> -L./daemons/dmeventd -Wl,-O1 -Wl,--as-needed -O2 -L../libdm -L../lib
117 >>> -L../libdaemon/client -L../daemons/dmeventd -Wl,--no-export-dynamic
118 >>> -static -L../libdm/ioctl \
119 >>> -o dmsetup.static dmsetup.o -ldevmapper -ludev -ludev
120 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o):
121 >>>
122 >>> In function `util_lookup_group':
123 >>> (.text+0x4d6): warning: Using 'getgrnam_r' in statically linked
124 >>> applications requires at runtime the shared libraries from the glibc
125 >>> version used for linking
126 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(libudev-util.o):
127 >>>
128 >>> In function `util_lookup_user':
129 >>> (.text+0x3a3): warning: Using 'getpwnam_r' in statically linked
130 >>> applications requires at runtime the shared libraries from the glibc
131 >>> version used for linking
132 >>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(util.o):
133 >>>
134 >>> In function `now':
135 >>> (.text+0x148): undefined reference to `clock_gettime'
136 >>> collect2: ld returned 1 exit status
137 >>> make[1]: *** [dmsetup.static] Error 1
138 >>> make[1]: Leaving directory
139 >>> `/var/tmp/portage/sys-fs/lvm2-2.02.98/work/LVM2.2.02.98/tools'
140 >>> make: *** [tools.device-mapper] Error 2
141 >>> * ERROR: sys-fs/lvm2-2.02.98 failed (compile phase):
142 >>> * emake failed
143 >>>
144 >>>
145 >>> The short error is this:
146 >>>
147 >>> (.text+0x148): undefined reference to `clock_gettime'
148 >>>
149 >>> I googled and it seems udev is supposed to deal with this. I'm using
150 >>> eudev. I have tried a masked version of lvm2 to see if it has a fix but
151 >>> same error. I'm on the latest eudev except for the *9999 version. This
152 >>> is current version of eudev:
153 >>>
154 >>> [IP-] [ ] sys-fs/eudev-1.0:0
155 >>>
156 >>> Current installed gcc:
157 >>>
158 >>> [IP-] [ ] sys-devel/gcc-4.4.7:4.4.7
159 >>> [IP-] [ ] sys-devel/gcc-4.5.4:4.5.4
160 >>> [IP-] [ ] sys-devel/gcc-4.6.3:4.6.3
161 >>>
162 >>> I'm set to use 4.6.3 gcc according to gcc-config. This is part of a
163 >>> emerge -e world hoping to fix the seamonkey/firefox issue, hoping.
164 >>> Everything else compiled except googleearth and ppp. I'm not using
165 >>> those at the moment so I'm not worried about those. Maybe later.
166 >>>
167 >>> Thoughts? Ideas?
168 >>
169 >> With sys-fs/udev-204 installed I get:
170 >>
171 >> $ pkg-config --libs --static libudev
172 >> -ludev -lrt
173 >> $ grep lrt /usr/lib64/pkgconfig/libudev.pc
174 >> Libs.private: -lrt
175 >>
176 >> In which the -lrt is the important bit. It's required for clock_gettime.
177 >>
178 >> So either eudev is broken and doesn't contain proper Libs.private: in
179 >> libudev.pc file, or sys-fs/lvm2's build system is broken and doesn't
180 >> query proper Libs.private: from libudev.pc when building lvm2 with
181 >> static.
182 >>
183 >> For the record. There is no reason to use sys-fs/eudev at this time,
184 >> it doesn't bring anything to the table sys-fs/udev doesn't have. In
185 >> fact, sys-fs/eudev has broken USE="+rule-generator" which leads to
186 >> random interface names.
187 >>
188 >> - Samuli
189 >>
190 >>
191 >
192 > I switched when all the separate /usr uproar happened. I no longer have
193 > a init thingy either. I cleaned all that out after a few successful
194 > reboots with eudev without using a init thingy. So, if I switch back to
195 > udev, are you sure that my system is going to reboot? I have everything
196 > but / and /boot on LVM. Point being, I don't want to switch back,
197 > reboot and have a non-bootable system. I switched to grub2 and would
198 > really not want to learn the hard way how to edit stuff, chrrot to fix
199 > anything with it, although I need to test on that one day.
200 >
201 > At least my guess was right on it being a *dev problem. What I saw from
202 > google pointed in that direction.
203
204 sys-fs/udev-197, 200, 204. --- will install to / instead of /usr so it
205 will work with sep. /usr just like eudev does, or just like udev-171 used to
206
207 basically the only thing to look out for is the network interface names,
208 you can add extra entry to grub that boots with net.ifnames=0 kernel
209 parameter, or create empty file /etc/udev/rules.d/80-net-name-slot.rules
210 if you don't like the new names

Replies

Subject Author
Re: [gentoo-user] LVM2 compile error. Clock_gettime Dale <rdalek1967@×××××.com>