1 |
From: "W. Trevor King" <wking@×××××××.us> |
2 |
|
3 |
This gives users a heads up explaining why they might see linking |
4 |
errors when pkgcache is enabled. I first saw this when I build a |
5 |
stage1 without update_seed. Because my seed stage3 linked against |
6 |
libmpc.so.2, some of my stage1 files linked against the older mpc. |
7 |
However, the mpc-1.0.1 built for the stage1 installed libmpc.so.3. |
8 |
When I tried to use this stage1 to build a stage2, it died with: |
9 |
|
10 |
/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1: |
11 |
error while loading shared libraries: libmpc.so.2: |
12 |
cannot open shared object file: No such file or directory |
13 |
|
14 |
To fix this, I enabled update_seed, but binary packages built during |
15 |
my first pass were used to populate the stage1, so even though I'd |
16 |
updated the seed stage3 toolchain, I still had a stage1 with cc1 |
17 |
linked against libmpc.so.2. |
18 |
|
19 |
After clearing the binary package cache, I got a stage1 *built* with |
20 |
the updated seed stage3, which gave a cc1 linked against libmpc.so.3 |
21 |
(hurray!). |
22 |
|
23 |
This commit adds a warning in the pkgcache documentation that should |
24 |
help people understand what might be going wrong if they see similar |
25 |
linking errors. For more details, see the thread following |
26 |
http://thread.gmane.org/gmane.linux.gentoo.catalyst/2137/focus=2193 |
27 |
--- |
28 |
files/catalyst.conf | 6 +++++- |
29 |
1 file changed, 5 insertions(+), 1 deletion(-) |
30 |
|
31 |
diff --git a/files/catalyst.conf b/files/catalyst.conf |
32 |
index b74c546..e285e4f 100644 |
33 |
--- a/files/catalyst.conf |
34 |
+++ b/files/catalyst.conf |
35 |
@@ -58,7 +58,11 @@ hash_function="crc32" |
36 |
# kerncache = keeps a tbz2 of your built kernel and modules (useful if your |
37 |
# build stops in livecd-stage2) |
38 |
# pkgcache = keeps a tbz2 of every built package (useful if your build stops |
39 |
-# prematurely) |
40 |
+# prematurely. However, you may see linking problems if the binary |
41 |
+# package was built against an older version of a runtime dependency |
42 |
+# and the package in question is not using EAPI5's sub-slots. For |
43 |
+# further discussion, see |
44 |
+# http://article.gmane.org/gmane.linux.gentoo.catalyst/2224) |
45 |
# seedcache = use the build output of a previous target if it exists to speed up |
46 |
# the copy |
47 |
# snapcache = cache the snapshot so that it can be bind-mounted into the chroot. |
48 |
-- |
49 |
1.8.2 |