1 |
On 22 August 2010 01:51, Brent Busby <brent@×××××××××.org> wrote: |
2 |
> On Sun, 22 Aug 2010, Dr Andrew John Hughes wrote: |
3 |
> |
4 |
>> Can you post the full build log as an attachment or URL? All I can |
5 |
>> tell from the current output is that libakode.la is not being produced |
6 |
>> by something earlier in the build. |
7 |
>> |
8 |
>> If this is an as-needed issue, the problem is likely to be that akode |
9 |
>> was implicitly relying on a dependent library bringing in another |
10 |
>> library it needs and it no longer does that because of as-needed. |
11 |
>> I've already seen patches going into the mainline packages to fix such |
12 |
>> issues (may be worth checking if you have any pending updates). I hit |
13 |
>> at least one issue like this when rebuilding after the --as-needed |
14 |
>> change went in. |
15 |
>> |
16 |
>> Adding stuff like --as-needed may help the occasional libpng upgrade, |
17 |
>> but it means packages may be being built in a way that isn't being |
18 |
>> tested regularly by its developers. |
19 |
> |
20 |
> Okay, here is the whole build log as an attachment. |
21 |
> |
22 |
> -- |
23 |
> + Brent A. Busby + "We've all heard that a million monkeys |
24 |
> + UNIX Systems Admin + banging on a million typewriters will |
25 |
> + University of Chicago + eventually reproduce the entire works of |
26 |
> + Physical Sciences Div. + Shakespeare. Now, thanks to the Internet, |
27 |
> + James Franck Institute + we know this is not true." -Robert Wilensky |
28 |
|
29 |
Thanks. Seems I get the same error if I try and emerge akode too and |
30 |
it's definitely not down to parallel make. The problem is that |
31 |
libakode.so.2.0.0 (the actual library) is never produced. The last |
32 |
line of the lib build is: |
33 |
|
34 |
/bin/sh ../../libtool --tag=CXX --silent --mode=link |
35 |
x86_64-pc-linux-gnu-g++ -O2 -pipe -march=core2 -ggdb |
36 |
-mno-tls-direct-seg-refs -fPIC -Wl,-O1 -o libakode.la -rpath |
37 |
/usr/lib64 -no-undefined -Wl,--no-undefined |
38 |
-Wl,--allow-shlib-undefined -version-info 2:0:0 bytebuffer.lo |
39 |
audiobuffer.lo pluginhandler.lo decoderpluginhandler.lo |
40 |
resamplerpluginhandler.lo sinkpluginhandler.lo encoderpluginhandler.lo |
41 |
fast_resampler.lo crossfader.lo volumefilter.lo localfile.lo |
42 |
mmapfile.lo wav_decoder.lo auto_sink.lo void_sink.lo converter.lo |
43 |
buffered_decoder.lo player.lo magic.lo -lpthread -lltdl |
44 |
make[1]: Leaving directory |
45 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/lib' |
46 |
|
47 |
If you take out the --silent in the Makefile, you get: |
48 |
|
49 |
/bin/sh ../../libtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ |
50 |
-O2 -pipe -march=core2 -ggdb -mno-tls-direct-seg-refs -fPIC -Wl,-O1 |
51 |
-o libakode.la -rpath /usr/lib64 -no-undefined -Wl,--no-undefined |
52 |
-Wl,--allow-shlib-undefined -version-info 2:0:0 bytebuffer.lo |
53 |
audiobuffer.lo pluginhandler.lo decoderpluginhandler.lo |
54 |
resamplerpluginhandler.lo sinkpluginhandler.lo encoderpluginhandler.lo |
55 |
fast_resampler.lo crossfader.lo volumefilter.lo localfile.lo |
56 |
mmapfile.lo wav_decoder.lo auto_sink.lo void_sink.lo converter.lo |
57 |
buffered_decoder.lo player.lo magic.lo -lpthread -lltdl |
58 |
(cd .libs && rm -f libakode.so.2 && ln -s libakode.so.2.0.0 libakode.so.2) |
59 |
(cd .libs && rm -f libakode.so && ln -s libakode.so.2.0.0 libakode.so) |
60 |
creating libakode.la |
61 |
(cd .libs && rm -f libakode.la && ln -s ../libakode.la libakode.la) |
62 |
make[1]: Leaving directory |
63 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/lib' |
64 |
|
65 |
So libtool creates the symlinks and the la file, thus satisfying the |
66 |
Makefile requirements, but never actually invokes gcc to build the |
67 |
library, so the symlinks are to a non-existent library. The libtool |
68 |
being used is an old in-tree version: |
69 |
|
70 |
# ../../libtool --version |
71 |
ltmain.sh (GNU libtool) 1.5a (1.1240 2003/06/26 06:55:19) |
72 |
|
73 |
If just 'libtool' is invoked instead, |
74 |
|
75 |
# libtool --version |
76 |
libtool (GNU libtool) 2.2.10 |
77 |
|
78 |
/bin/sh libtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -O2 |
79 |
-pipe -march=core2 -ggdb -mno-tls-direct-seg-refs -fPIC -Wl,-O1 -o |
80 |
libakode.la -rpath /usr/lib64 -no-undefined -Wl,--no-undefined |
81 |
-Wl,--allow-shlib-undefined -version-info 2:0:0 bytebuffer.lo |
82 |
audiobuffer.lo pluginhandler.lo decoderpluginhandler.lo |
83 |
resamplerpluginhandler.lo sinkpluginhandler.lo encoderpluginhandler.lo |
84 |
fast_resampler.lo crossfader.lo volumefilter.lo localfile.lo |
85 |
mmapfile.lo wav_decoder.lo auto_sink.lo void_sink.lo converter.lo |
86 |
buffered_decoder.lo player.lo magic.lo -lpthread -lltdl |
87 |
libtool: link: rm -fr .libs/libakode.la .libs/libakode.lai |
88 |
.libs/libakode.so .libs/libakode.so.2 |
89 |
libtool: link: x86_64-pc-linux-gnu-g++ -shared -nostdlib |
90 |
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../lib64/crti.o |
91 |
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/crtbeginS.o .libs/bytebuffer.o |
92 |
.libs/audiobuffer.o .libs/pluginhandler.o .libs/decoderpluginhandler.o |
93 |
.libs/resamplerpluginhandler.o .libs/sinkpluginhandler.o |
94 |
.libs/encoderpluginhandler.o .libs/fast_resampler.o .libs/crossfader.o |
95 |
.libs/volumefilter.o .libs/localfile.o .libs/mmapfile.o |
96 |
.libs/wav_decoder.o .libs/auto_sink.o .libs/void_sink.o |
97 |
.libs/converter.o .libs/buffered_decoder.o .libs/player.o |
98 |
.libs/magic.o -lpthread /usr/lib64/libltdl.so -ldl |
99 |
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1 |
100 |
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../lib64 |
101 |
-L/lib/../lib64 -L/usr/lib/../lib64 |
102 |
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/lib |
103 |
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../.. -lstdc++ -lm -lc |
104 |
-lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/crtendS.o |
105 |
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../lib64/crtn.o |
106 |
-march=core2 -mno-tls-direct-seg-refs -Wl,-O1 -Wl,--no-undefined |
107 |
-Wl,--allow-shlib-undefined -Wl,-soname -Wl,libakode.so.2 -o |
108 |
.libs/libakode.so.2.0.0 |
109 |
libtool: link: (cd ".libs" && rm -f "libakode.so.2" && ln -s |
110 |
"libakode.so.2.0.0" "libakode.so.2") |
111 |
libtool: link: (cd ".libs" && rm -f "libakode.so" && ln -s |
112 |
"libakode.so.2.0.0" "libakode.so") |
113 |
libtool: link: x86_64-pc-linux-gnu-ar cru .libs/libakode.a |
114 |
.libs/bytebuffer.o .libs/audiobuffer.o .libs/pluginhandler.o |
115 |
.libs/decoderpluginhandler.o .libs/resamplerpluginhandler.o |
116 |
.libs/sinkpluginhandler.o .libs/encoderpluginhandler.o |
117 |
.libs/fast_resampler.o .libs/crossfader.o .libs/volumefilter.o |
118 |
.libs/localfile.o .libs/mmapfile.o .libs/wav_decoder.o |
119 |
.libs/auto_sink.o .libs/void_sink.o .libs/converter.o |
120 |
.libs/buffered_decoder.o .libs/player.o .libs/magic.o |
121 |
libtool: link: x86_64-pc-linux-gnu-ranlib .libs/libakode.a |
122 |
libtool: link: ( cd ".libs" && rm -f "libakode.la" && ln -s |
123 |
"../libakode.la" "libakode.la" ) |
124 |
|
125 |
the right thing is done and the library is built. |
126 |
|
127 |
# ls .libs |
128 |
audiobuffer.o crossfader.o libakode.la@ |
129 |
localfile.o resamplerpluginhandler.o |
130 |
auto_sink.o decoderpluginhandler.o libakode.lai |
131 |
magic.o sinkpluginhandler.o |
132 |
buffered_decoder.o encoderpluginhandler.o libakode.so@ |
133 |
mmapfile.o void_sink.o |
134 |
bytebuffer.o fast_resampler.o libakode.so.2@ |
135 |
player.o volumefilter.o |
136 |
converter.o libakode.a libakode.so.2.0.0* |
137 |
pluginhandler.o wav_decoder.o |
138 |
|
139 |
Note that libakode.so.2.0.0 is now there. On x86_64, I also had to |
140 |
patch the Makefile to add -fPIC to the CFLAGS otherwise the link |
141 |
failed with a relocatable symbol error. |
142 |
|
143 |
I'd be interested to know when this was last known to build, as the |
144 |
in-tree libtool is clearly buggy. |
145 |
-- |
146 |
Andrew :-) |
147 |
|
148 |
Free Java Software Engineer |
149 |
Red Hat, Inc. (http://www.redhat.com) |
150 |
|
151 |
Support Free Java! |
152 |
Contribute to GNU Classpath and the OpenJDK |
153 |
http://www.gnu.org/software/classpath |
154 |
http://openjdk.java.net |
155 |
|
156 |
PGP Key: 94EFD9D8 (http://subkeys.pgp.net) |
157 |
Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 |