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 |