1 |
Xi Shen posted on Sat, 26 Dec 2009 12:31:24 +0800 as excerpted: |
2 |
|
3 |
> my system is gentoo amd64, kde 4.3, and have recently updated. last time |
4 |
> i emerged chromium and it works fine. but after updated the world, my |
5 |
> chromium cannot start up. it reports segment fault. |
6 |
|
7 |
Did you do a revdep-rebuild after the last update? Chances are, one of |
8 |
chromium's dependencies was updated, changing its abi, and chromium (and |
9 |
perhaps other packages) that depend on it need rebuilt to match the new |
10 |
abi. |
11 |
|
12 |
It's revdep-rebuild that takes care of this, but if you don't run it |
13 |
routinely, you'll likely have a BUNCH of stuff to rebuild. FWIW, |
14 |
lafilefixer (with the --justfixit option) can reduce that bunch of stuff |
15 |
by fixing *.la files that point to other *.la files, to point to the |
16 |
libraries directly instead. |
17 |
|
18 |
Also, you may wish to read up on LDFLAGS="-Wl,--as-needed" and consider |
19 |
using it too, as it helps kill indirect dependencies. (Say application X |
20 |
uses library Y, which depends on library Z, but application X doesn't use |
21 |
any of library Z's functionality directly, so it shouldn't need to |
22 |
directly depend on it, and shouldn't need to be rebuilt when only library |
23 |
Z changes. Only library Y would need rebuilt. The as-needed LDFLAGS |
24 |
help this happen, thus reducing substantially the number of rebuilds |
25 |
needed, but at a cost of occasionally causing a legit depend to be |
26 |
missed. But flameeyes has been working on this as one of his projects, |
27 |
so it doesn't happen very often with at least mainline packages any more, |
28 |
tho it might in obscure corner cases, the reason it's not yet the |
29 |
default. So... consider it carefully as there's a major upside and |
30 |
generally only obscure case downside, but do be aware of the issues if |
31 |
you decide to use it.) |
32 |
|
33 |
Of course, the LDFLAGS as-needed won't help much until you've recompiled |
34 |
a good part of your system at least once with it in place. But the |
35 |
lafilefixer thing is just about perfect -- very little downside, it |
36 |
doesn't take long to run compared to even a couple package rebuilds, and |
37 |
it can be put to use immediately after you merge it! =:^) |
38 |
|
39 |
Together, these reduce the number of revdep-rebuilds SUBSTANTIALLY, and I |
40 |
run it after every update session. (Actually, my revdep-rebuild invoking |
41 |
script automatically runs lafilefixer --justfixit before it runs revdep- |
42 |
rebuild, just to be sure, so I only invoke that script after the update |
43 |
and it takes care of both.) |
44 |
|
45 |
-- |
46 |
Duncan - List replies preferred. No HTML msgs. |
47 |
"Every nonfree program has a lord, a master -- |
48 |
and if you use the program, he is your master." Richard Stallman |