From: "W. Trevor King" <[email protected]>

This gives users a heads up explaining why they might see linking
errors when pkgcache is enabled.  I first saw this when I build a
stage1 without update_seed.  Because my seed stage3 linked against
libmpc.so.2, some of my stage1 files linked against the older mpc.
However, the mpc-1.0.1 built for the stage1 installed libmpc.so.3.
When I tried to use this stage1 to build a stage2, it died with:

  /usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1:
    error while loading shared libraries: libmpc.so.2:
    cannot open shared object file: No such file or directory

To fix this, I enabled update_seed, but binary packages built during
my first pass were used to populate the stage1, so even though I'd
updated the seed stage3 toolchain, I still had a stage1 with cc1
linked against libmpc.so.2.

After clearing the binary package cache, I got a stage1 *built* with
the updated seed stage3, which gave a cc1 linked against libmpc.so.3
(hurray!).

This commit adds a warning in the pkgcache documentation that should
help people understand what might be going wrong if they see similar
linking errors.  For more details, see the thread following
http://thread.gmane.org/gmane.linux.gentoo.catalyst/2137/focus=2193
---
 files/catalyst.conf | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/files/catalyst.conf b/files/catalyst.conf
index b74c546..e285e4f 100644
--- a/files/catalyst.conf
+++ b/files/catalyst.conf
@@ -58,7 +58,11 @@ hash_function="crc32"
 # kerncache = keeps a tbz2 of your built kernel and modules (useful if your
 #      build stops in livecd-stage2)
 # pkgcache = keeps a tbz2 of every built package (useful if your build stops
-#      prematurely)
+#      prematurely.  However, you may see linking problems if the binary
+#      package was built against an older version of a runtime dependency
+#      and the package in question is not using EAPI5's sub-slots.  For
+#      further discussion, see
+#      http://article.gmane.org/gmane.linux.gentoo.catalyst/2224)
 # seedcache = use the build output of a previous target if it exists to speed 
up
 #      the copy
 # snapcache = cache the snapshot so that it can be bind-mounted into the 
chroot.
-- 
1.8.2


Reply via email to