Summary: | dev-lang/tcl-8.5.10-r1 (maybe others): tclConfig.h should not prepend '-L/usr/lib[64]' in *_LIB_SPEC variables. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ian Stakenvicius (RETIRED) <axs> |
Component: | [OLD] Library | Assignee: | TCL/TK Project <tcltk> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | qa |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | patch to remove '-L/usr/lib[64]' from *_LIB_SPEC in tclConfig.sh |
+*tcl-8.5.11-r1 (07 Jun 2012) + + 07 Jun 2012; Justin Lecher <jlec@gentoo.org> +tcl-8.5.11-r1.ebuild: + Drop standard lib locataion from tclConfig.sh, #420129; thanks Ian + Stakenvicius for the patch + This commit totally broke entire tcl and tk, no reverse deps can be built anymore: Bug 449134 Bug 377717 I more carefully patch the file. Should be save now. |
Created attachment 314603 [details, diff] patch to remove '-L/usr/lib[64]' from *_LIB_SPEC in tclConfig.sh As tclConfig.h included -L/usr/lib64 (and presumably -L/usr/lib, on 32bit archs) with all of the *_LIB_SPEC variables, this can cause issues when building libs that depend on tcl. If such a lib (in my case, the tcl and tk extensions in media-gfx/graphviz) links its tcl components against other internal libs, then libtool will erroneously link against already installed system versions instead of versions within $WORKDIR. As an example, emerge graphviz-2.26.* (which installs libgvc.so.5), then upgrade to graphviz-2.28.0 with USE="tcl" enabled (which builds and installs libgvc.so.6). Running the following: for ech in `equery f graphviz |grep -e 'usr/bin' -e 'usr/lib.*\.so'` ; do scanelf -n $ech; done |grep libgvc.so |grep -v libgvc.so.6 ...will show that all of the tcl libraries are linked against libgvc.so.5 instead of libgvc.so.6 Removing -L/usr/lib64 from the *_LIB_SPEC variables in tclConfig.h resolves this issue. The attached patch to tcl-8.5.10-r1.ebuild modifies the sed rules to tclConfig.sh to bring about the desired results. Note that I modified all four *_LIB_SPEC variables rather than checking to see which ones in particular are used by graphviz.