1 |
On Sat, 21 Aug 2010, Duncan wrote: |
2 |
|
3 |
> Brent Busby posted on Fri, 20 Aug 2010 13:37:15 -0500 as excerpted: |
4 |
> |
5 |
>> As an addendum to the above, I found this thread: |
6 |
>> |
7 |
>> http://forums.gentoo.org/viewtopic-t-831467.html? |
8 |
> sid=8182796e790caf6a0c9dd589570c8a4f |
9 |
>> |
10 |
>> It looks like the build for akode is trying to find libakode.so before |
11 |
>> it's actually been finished compiling. I still don't know what to do |
12 |
>> about that, or why it would be happening now under GCC 4.4 when it |
13 |
>> wasn't before, unless it's a libtool "--as-needed" related thing. |
14 |
> |
15 |
> IIRC, I had decided I didn't actually need akode for my usage long before |
16 |
> I ever switched to kde4, and thus haven't compiled it in... years, now. I |
17 |
> believe I was running into issues that lead to that investigation and |
18 |
> conclusion, that may be similar to what you're running into now. (FWIW, I |
19 |
> run ~arch and often unmask and run the latest gcc well before it's even |
20 |
> unmasked to ~arch, and am running gcc-4.5.1 now, so I'd have seen gcc-4.4 |
21 |
> issues quite some time ago, tho I think this was long before that, |
22 |
> possibly as far back as the gcc-3.5 era.) |
23 |
> |
24 |
> But, you mention a "new machine", presumably a multi-core machine, that |
25 |
> you're taking advantage of with MAKEOPTS=-jX, with X>1. While your |
26 |
> previous machines may also be multi-core, for various reasons they may |
27 |
> have used a different make job scheduling order and thus not run into the |
28 |
> problem. Or, perhaps it's a combination of that and --as-needed. |
29 |
|
30 |
Actually, the new machine plus the two previous machines have all had |
31 |
SMP. But I've never used a -j option on any of them, because the fact |
32 |
that parallel compilation doesn't always work right has always scared me |
33 |
away from it and made me worry I could be causing myself unnecessary |
34 |
grief in the future with hard-to-diagnose issues. I'd love to use it to |
35 |
get builds done faster, but the extra speed has never been worth it to |
36 |
me if I can't entirely trust it. |
37 |
|
38 |
So, I've never used any '-j' setting in MAKEOPTS on any system. Is it |
39 |
possible that with GCC 4.4 I'm getting some kind of implied parallel |
40 |
execution anyway though, requiring me to set '-j1' to override it for |
41 |
this package? |
42 |
|
43 |
> I've also been |
44 |
> running --as-needed in my LDFLAGS, since 2006 or 2007 I'd guess, so it's |
45 |
> indeed quite conceivable that I'd have run into parallel make issues, |
46 |
> perhaps related to --as-needed, perhaps not, way back when I /was/ still |
47 |
> building akode, if the package is wont to trigger them, as it seems to be. |
48 |
|
49 |
This is the first machine I've installed from scratch since |
50 |
'--as-needed' became part of the desktop policy. It's never seen a |
51 |
libtool environment that doesn't use it -- I don't know if that has |
52 |
anything to do with this problem or not though. |
53 |
|
54 |
> So... try building the package with MAKEOPTS=-j1 and see if that works. |
55 |
> If so, it's a workaround; the makefile dependencies should really be fixed |
56 |
> properly, but that takes some make file (and possibly other) knowledge few |
57 |
> folks have, apparently even at the Gentoo developer level. A lot of the |
58 |
> time, therefore, such issues are simply worked around, with the ebuild |
59 |
> hard-coding MAKEOPTS=-j1. So assuming it works, that's likely the change |
60 |
> that'll happen -- make the ebuild hardcode MAKEOPTS=-j1. |
61 |
|
62 |
Just tried it, unfortunately, it did the same thing: |
63 |
|
64 |
Making all in src_resampler |
65 |
make[4]: Entering directory |
66 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/plugins/src_resampler' |
67 |
if /bin/sh ../../../libtool --silent --tag=CXX --mode=compile |
68 |
x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. |
69 |
-I../../../akode/lib -I../../../akode/lib -I../../../akode/lib |
70 |
-I./mppdec -O2 -march=athlon64 -pipe -MT src_resampler.lo -MD -MP |
71 |
-MF ".deps/src_resampler.Tpo" -c -o src_resampler.lo src_resampler.cpp; |
72 |
\ |
73 |
then mv -f ".deps/src_resampler.Tpo" ".deps/src_resampler.Plo"; |
74 |
else rm -f ".deps/src_resampler.Tpo"; exit 1; fi |
75 |
/bin/sh ../../../libtool --silent --tag=CXX --mode=link |
76 |
x86_64-pc-linux-gnu-g++ -O2 -march=athlon64 -pipe -Wl,-O1 |
77 |
-Wl,--as-needed -o libakode_src_resampler.la -rpath /usr/lib64 -module |
78 |
-avoid-version -no-undefined -Wl,--no-undefined |
79 |
-Wl,--allow-shlib-undefined src_resampler.lo ../../lib/libakode.la |
80 |
-lsamplerate |
81 |
make[4]: Leaving directory |
82 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/plugins/src_resampler' |
83 |
make[4]: Entering directory |
84 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/plugins' |
85 |
make[4]: Nothing to be done for `all-am'. |
86 |
make[4]: Leaving directory |
87 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/plugins' |
88 |
make[3]: Leaving directory |
89 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/plugins' |
90 |
Making all in akodeplay |
91 |
make[3]: Entering directory |
92 |
`/var/tmp/portage/media-libs/akode-2.0.2/work/akode-2.0.2/akode/akodeplay' |
93 |
if x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. |
94 |
-I../../akode/lib -I../../akode/lib -I../../akode/lib -O2 |
95 |
-march=athlon64 -pipe -MT akodeplay.o -MD -MP -MF ".deps/akodeplay.Tpo" |
96 |
-c -o akodeplay.o akodeplay.cpp; \ |
97 |
then mv -f ".deps/akodeplay.Tpo" ".deps/akodeplay.Po"; else rm |
98 |
-f ".deps/akodeplay.Tpo"; exit 1; fi |
99 |
/bin/sh ../../libtool --silent --tag=CXX --mode=link |
100 |
x86_64-pc-linux-gnu-g++ -O2 -march=athlon64 -pipe -Wl,-O1 |
101 |
-Wl,--as-needed -o akodeplay akodeplay.o ../lib/libakode.la |
102 |
x86_64-pc-linux-gnu-g++: ../lib/.libs/libakode.so: No such file or |
103 |
directory |
104 |
make[3]: *** [akodeplay] Error 1 |
105 |
|
106 |
> (FWIW, I'm not going to discount the reasons many still run kde3, as |
107 |
> until 4.4 and better, 4.5, despite official kde announcements to the |
108 |
> contrary, kde4 was simply too bug riddled to be reasonably usable, and |
109 |
> I spent well over 100 hours finding workaround, often scripting my |
110 |
> own, and otherwise making an otherwise broken kde-4.2.4 work for me |
111 |
> when I switched so I KNOW this to be true, but one thing I *DO* |
112 |
> appreciate about kde4 is how much more effectively it parallel builds |
113 |
> in comparison to kde3, therefore taking about half the build time on a |
114 |
> 4-core including my dual-dual-core system, compared to kde3. It's |
115 |
> NICE to be able to do a kde4 upgrade in the 4 hours or so it takes |
116 |
> now, depending on how much is new code and how much is not in ccache, |
117 |
> compared to the entire day, 6-8 hours, if there weren't other |
118 |
> problems, it'd take to do the same with kde3.) |
119 |
|
120 |
Yeah, but the problem with it to me is it just isn't the same desktop |
121 |
anymore. Most of it seems to be imitating Windows Vista/7, with a few |
122 |
things derived from MacOS/X here and there (like the new Control Panel, |
123 |
which strongly resembles the Mac's System Preferences app). KDE 3 used |
124 |
to let you make desktops that were totally different. |
125 |
|
126 |
My own desktop actually resembles -- and this will probably puzzle some |
127 |
people -- CDE from HP-UX. I'm one of those strange people who actually |
128 |
like an X11 desktop to look like an X11 desktop. I find that most |
129 |
"modern" desktops from Microsoft look and feel like a credit card |
130 |
advertisement, while most modern desktops from Apple look like a 70's |
131 |
car stereo (brushed chrome everywhere!). It seems to be very out of |
132 |
fashion now to prefer one's computer look and act like...gasp!...a |
133 |
computer, but that's what I like, and up until KDE 4, KDE was providing |
134 |
a very nice CDE emulation. (Actually, KDE 3's imitation of CDE is quite |
135 |
a bit more functional that real CDE...no shock there, I suppose.) |
136 |
|
137 |
Plus there's the fact that KDE 4, even now that it's more stable, seems |
138 |
to use resources like we had them to burn. Actually, on modern |
139 |
machines, that might be true, but I run studio recording apps, which is |
140 |
a genre of application where more bandwidth equals more tracks, more |
141 |
plugins, more disk i/o, etc. It's one of the few remaining types of |
142 |
apps these days that are *not* just leaving your system idle most of the |
143 |
time, and really do want all you can give them. People who are running |
144 |
pro audio apps do not have CPU/RAM to burn, ever, even on a fast |
145 |
machine! If you are running such programs, and your machine has more to |
146 |
give, you want to give it to the apps, not the desktop, no matter how |
147 |
*much* more that is. |
148 |
|
149 |
So in general, KDE 4 has turned me away. I'll pass on its Windows Vista |
150 |
look and feel, its enormous resource footprint, and the way they made |
151 |
keeping any semblance of my current CDE-ish KDE desktop unsupportable. |
152 |
|
153 |
> So for testing and to work around the issue yourself until it's fixed |
154 |
> in the ebuild, use the env file. Once either a proper fix or at least |
155 |
> the MAKEOPTS=j1 workaround (assuming it fixes the problem) is in the |
156 |
> ebuild, you can remove the env file workaround. No more having to |
157 |
> change global make.conf settings for a single package, then having to |
158 |
> change them back! =:^) |
159 |
|
160 |
Thanks for the help, but that didn't seem to fix it. I never use '-j' |
161 |
options anyway. I'll probably start if they ever start working all the |
162 |
time. |
163 |
|
164 |
-- |
165 |
+ Brent A. Busby + "We've all heard that a million monkeys |
166 |
+ UNIX Systems Admin + banging on a million typewriters will |
167 |
+ University of Chicago + eventually reproduce the entire works of |
168 |
+ Physical Sciences Div. + Shakespeare. Now, thanks to the Internet, |
169 |
+ James Franck Institute + we know this is not true." -Robert Wilensky |