--- /usr/portage/sys-devel/clang/clang-2.9.ebuild 2011-04-22 13:31:25.000000000 +0200 +++ clang-2.9-r1.ebuild 2011-06-16 22:38:46.813741003 +0200 @@ -18,10 +18,11 @@ LICENSE="UoI-NCSA" SLOT="0" KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos" -IUSE="alltargets debug +static-analyzer +system-cxx-headers test" +IUSE="alltargets debug gold +static-analyzer +system-cxx-headers test" # Note: for LTO support, clang will depend on binutils with gold plugins, and LLVM built after that - http://llvm.org/docs/GoldPlugin.html -DEPEND="static-analyzer? ( dev-lang/perl )" +DEPEND="static-analyzer? ( dev-lang/perl ) + gold? ( >=sys-devel/binutils-2.21 )" RDEPEND="~sys-devel/llvm-${PV}[alltargets=]" S="${WORKDIR}/llvm-${PV}" @@ -64,6 +65,14 @@ einfo "Fixing rpath" sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \ -i Makefile.rules || die "rpath sed failed" + + if use gold; then + einfo "Setting the built-in linker to ld.gold" + sed -e 's|/bin/ld|/bin/ld.gold|g' \ + -e 's|GetProgramPath("ld")|GetProgramPath("ld.gold")|g' \ + -i tools/clang/lib/Driver/ToolChains.cpp \ + || die "ToolChains.cpp sed failed" + fi } src_configure() {