* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-19 10:44 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-19 10:44 UTC (permalink / raw
To: gentoo-commits
commit: 88c5ee15ebcb110381f1821b89acd05d46fa7e18
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 19 10:44:39 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 19 10:44:39 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=88c5ee15
Replace sed substitutions with patches, for -9999.
---
.../llvm/files/clang-3.4-gentoo-install.patch | 71 ++++++++++++++
sys-devel/llvm/files/llvm-3.4-gentoo-install.patch | 108 +++++++++++++++++++++
sys-devel/llvm/llvm-9999-r1.ebuild | 58 ++++-------
3 files changed, 196 insertions(+), 41 deletions(-)
diff --git a/sys-devel/llvm/files/clang-3.4-gentoo-install.patch b/sys-devel/llvm/files/clang-3.4-gentoo-install.patch
new file mode 100644
index 0000000..b8291f2
--- /dev/null
+++ b/sys-devel/llvm/files/clang-3.4-gentoo-install.patch
@@ -0,0 +1,71 @@
+From 1a539a8868070e49966c6b5f5e4b9f1257acd7dc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Fri, 19 Jul 2013 10:23:57 +0200
+Subject: [PATCH] clang gentoo install
+
+---
+ tools/clang/lib/Driver/Tools.cpp | 4 ++--
+ tools/clang/tools/scan-build/scan-build | 4 ++--
+ tools/clang/tools/scan-view/scan-view | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp
+index e014980..6e60513 100644
+--- a/tools/clang/lib/Driver/Tools.cpp
++++ b/tools/clang/lib/Driver/Tools.cpp
+@@ -219,7 +219,7 @@ static void addProfileRT(const ToolChain &TC, const ArgList &Args,
+ // libprofile_rt.so. We used to use the -l:libprofile_rt.a syntax, but that is
+ // not supported by old linkers.
+ std::string ProfileRT =
+- std::string(TC.getDriver().Dir) + "/../lib/libprofile_rt.a";
++ std::string(TC.getDriver().Dir) + "/../@libdir@/llvm/libprofile_rt.a";
+
+ CmdArgs.push_back(Args.MakeArgString(ProfileRT));
+ }
+@@ -6177,7 +6177,7 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA,
+ // forward.
+ if (D.IsUsingLTO(Args) || Args.hasArg(options::OPT_use_gold_plugin)) {
+ CmdArgs.push_back("-plugin");
+- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
++ std::string Plugin = ToolChain.getDriver().Dir + "/../@libdir@/llvm/LLVMgold.so";
+ CmdArgs.push_back(Args.MakeArgString(Plugin));
+
+ // Try to pass driver level flags relevant to LTO code generation down to
+diff --git a/tools/clang/tools/scan-build/scan-build b/tools/clang/tools/scan-build/scan-build
+index 22d5289..dcb4822 100755
+--- a/tools/clang/tools/scan-build/scan-build
++++ b/tools/clang/tools/scan-build/scan-build
+@@ -410,7 +410,7 @@ sub CopyFiles {
+
+ my $Dir = shift;
+
+- my $JS = Cwd::realpath("$RealBin/sorttable.js");
++ my $JS = Cwd::realpath("@EPREFIX@/usr/share/llvm/sorttable.js");
+
+ DieDiag("Cannot find 'sorttable.js'.\n")
+ if (! -r $JS);
+@@ -420,7 +420,7 @@ sub CopyFiles {
+ DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n")
+ if (! -r "$Dir/sorttable.js");
+
+- my $CSS = Cwd::realpath("$RealBin/scanview.css");
++ my $CSS = Cwd::realpath("@EPREFIX@/usr/share/llvm/scanview.css");
+
+ DieDiag("Cannot find 'scanview.css'.\n")
+ if (! -r $CSS);
+diff --git a/tools/clang/tools/scan-view/scan-view b/tools/clang/tools/scan-view/scan-view
+index fb27da6..1f8ddb8 100755
+--- a/tools/clang/tools/scan-view/scan-view
++++ b/tools/clang/tools/scan-view/scan-view
+@@ -54,7 +54,7 @@ def start_browser(port, options):
+ webbrowser.open(url)
+
+ def run(port, options, root):
+- import ScanView
++ from clang import ScanView
+ try:
+ print 'Starting scan-view at: http://%s:%d'%(options.host,
+ port)
+--
+1.8.3.2
+
diff --git a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
new file mode 100644
index 0000000..2798fa7
--- /dev/null
+++ b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
@@ -0,0 +1,108 @@
+From cdc2bf59ab8200a4bd6b0eb66ac5b8a8ebab67d6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Fri, 19 Jul 2013 10:10:52 +0200
+Subject: [PATCH] gentoo install fixes
+
+---
+ Makefile.config.in | 6 +++---
+ Makefile.rules | 7 +++----
+ tools/gold/Makefile | 2 +-
+ tools/llvm-config/llvm-config.cpp | 2 +-
+ utils/FileCheck/Makefile | 2 +-
+ 5 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/Makefile.config.in b/Makefile.config.in
+index dcca45f..45bf0d1 100644
+--- a/Makefile.config.in
++++ b/Makefile.config.in
+@@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix)
+ endif
+
+ PROJ_bindir := $(PROJ_prefix)/bin
+-PROJ_libdir := $(PROJ_prefix)/lib
++PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm
+ PROJ_datadir := $(PROJ_prefix)/share
+-PROJ_docsdir := $(PROJ_prefix)/docs/llvm
+-PROJ_etcdir := $(PROJ_prefix)/etc/llvm
++PROJ_docsdir := $(PROJ_prefix)/share/doc/@PF@
++PROJ_etcdir := @EPREFIX@/etc/llvm
+ PROJ_includedir := $(PROJ_prefix)/include
+ PROJ_infodir := $(PROJ_prefix)/info
+ PROJ_mandir := $(PROJ_prefix)/share/man
+diff --git a/Makefile.rules b/Makefile.rules
+index 1bc78f1..60cd228 100644
+--- a/Makefile.rules
++++ b/Makefile.rules
+@@ -277,7 +277,7 @@ ifeq ($(ENABLE_OPTIMIZED),1)
+ ifneq ($(HOST_OS),FreeBSD)
+ ifneq ($(HOST_OS),GNU/kFreeBSD)
+ ifneq ($(HOST_OS),Darwin)
+- OmitFramePointer := -fomit-frame-pointer
++ OmitFramePointer :=
+ endif
+ endif
+ endif
+@@ -605,7 +605,6 @@ endif
+ ifdef SHARED_LIBRARY
+ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS),Darwin)
+- LD.Flags += $(RPATH) -Wl,'$$ORIGIN'
+ endif
+ endif
+ endif
+@@ -643,11 +642,11 @@ endif
+ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS), Darwin)
+ ifdef TOOLNAME
+- LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib' $(DynamicFlag)
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)' $(DynamicFlag)
+ endif
+ else
+ ifneq ($(DARWIN_MAJVERS),4)
+- LD.Flags += $(RPATH) -Wl,@executable_path/../lib
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
+ endif
+ ifeq ($(RC_XBS),YES)
+ TempFile := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/llvm-lto.XXXXXX)
+diff --git a/tools/gold/Makefile b/tools/gold/Makefile
+index 496e31c..d36b340 100644
+--- a/tools/gold/Makefile
++++ b/tools/gold/Makefile
+@@ -24,7 +24,7 @@ include $(LEVEL)/Makefile.config
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS += -I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-LDFLAGS += -L$(SharedLibDir)/$(SharedPrefix)
++LDFLAGS += -L$(PROJ_libdir)
+
+ include $(LEVEL)/Makefile.common
+
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 3924e2e..d087ae0 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
+ ActivePrefix = CurrentExecPrefix;
+ ActiveIncludeDir = ActivePrefix + "/include";
+ ActiveBinDir = ActivePrefix + "/bin";
+- ActiveLibDir = ActivePrefix + "/lib";
++ ActiveLibDir = ActivePrefix + "/@libdir@/llvm";
+ ActiveIncludeOption = "-I" + ActiveIncludeDir;
+ }
+
+diff --git a/utils/FileCheck/Makefile b/utils/FileCheck/Makefile
+index 268b7bc..e7674f9 100644
+--- a/utils/FileCheck/Makefile
++++ b/utils/FileCheck/Makefile
+@@ -15,7 +15,7 @@ USEDLIBS = LLVMSupport.a
+ TOOL_NO_EXPORTS = 1
+
+ # Don't install this utility
+-NO_INSTALL = 1
++#NO_INSTALL = 1
+
+ include $(LEVEL)/Makefile.common
+
+--
+1.8.3.2
+
diff --git a/sys-devel/llvm/llvm-9999-r1.ebuild b/sys-devel/llvm/llvm-9999-r1.ebuild
index a06bd23..cbd1966 100644
--- a/sys-devel/llvm/llvm-9999-r1.ebuild
+++ b/sys-devel/llvm/llvm-9999-r1.ebuild
@@ -102,53 +102,29 @@ src_prepare() {
multilib_src_prepare() {
cd "${BUILD_DIR}" || die
+ local sub_files=(
+ Makefile.config.in
+ Makefile.rules
+ tools/llvm-config/llvm-config.cpp
+ )
+ use clang && sub_files+=(
+ tools/clang/lib/Driver/Tools.cpp
+ tools/clang/tools/scan-build/scan-build
+ )
+
# unfortunately ./configure won't listen to --mandir and the-like, so take
# care of this.
einfo "Fixing install dirs"
- sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
- -e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
- -e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/${PN}, \
- -i Makefile.config.in || die "Makefile.config sed failed"
- sed -e "/ActiveLibDir = ActivePrefix/s/lib/$(get_libdir)\/${PN}/" \
- -i tools/llvm-config/llvm-config.cpp || die "llvm-config sed failed"
-
- einfo "Fixing rpath and CFLAGS"
- sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
- -e '/OmitFramePointer/s/-fomit-frame-pointer//' \
- -i Makefile.rules || die "rpath sed failed"
-
- if use clang; then
- # Set correct path for the coverage lib
- sed -e "s#lib\(/libprofile_rt.a\)#$(get_libdir)/llvm\1#" \
- -i tools/clang/lib/Driver/Tools.cpp \
- || die "driver tools paths sed failed"
- fi
+ sed -e "s,@libdir@,$(get_libdir),g" \
+ -e "s,@PF@,${PF},g" \
+ -e "s,@EPREFIX@,${EPREFIX},g" \
+ -i "${sub_files[@]}" \
+ || die "install paths sed failed"
}
- if use gold; then
- sed -e 's,\$(SharedLibDir),'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
- -i tools/gold/Makefile || die "gold rpath sed failed"
- fi
-
- # FileCheck is needed at least for dragonegg tests
- sed -e "/NO_INSTALL = 1/s/^/#/" -i utils/FileCheck/Makefile \
- || die "FileCheck Makefile sed failed"
-
- if use clang; then
- # fix the static analyzer for in-tree install
- sed -e 's/import ScanView/from clang \0/' \
- -i tools/clang/tools/scan-view/scan-view \
- || die "scan-view sed failed"
- sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
- -i tools/clang/tools/scan-build/scan-build \
- || die "scan-build sed failed"
- # Set correct path for gold plugin
- sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
- -i tools/clang/lib/Driver/Tools.cpp \
- || die "driver tools paths sed failed"
- fi
-
epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
+ epatch "${FILESDIR}"/${PN}-3.4-gentoo-install.patch
+ use clang && epatch "${FILESDIR}"/clang-3.4-gentoo-install.patch
# User patches
epatch_user
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-19 11:02 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-19 11:02 UTC (permalink / raw
To: gentoo-commits
commit: e40ec51ba4cad589b411a3289052b30faf59dd43
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 19 11:02:22 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 19 11:02:22 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=e40ec51b
Backport sed->patch to llvm 3.3.
---
...nstall.patch => clang-3.3-gentoo-install.patch} | 0
sys-devel/llvm/files/llvm-3.3-gentoo-install.patch | 112 +++++++++++++++++++++
sys-devel/llvm/llvm-3.3-r1.ebuild | 58 ++++-------
sys-devel/llvm/llvm-9999-r1.ebuild | 2 +-
4 files changed, 130 insertions(+), 42 deletions(-)
diff --git a/sys-devel/llvm/files/clang-3.4-gentoo-install.patch b/sys-devel/llvm/files/clang-3.3-gentoo-install.patch
similarity index 100%
rename from sys-devel/llvm/files/clang-3.4-gentoo-install.patch
rename to sys-devel/llvm/files/clang-3.3-gentoo-install.patch
diff --git a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
new file mode 100644
index 0000000..d6c0d7a
--- /dev/null
+++ b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
@@ -0,0 +1,112 @@
+From 1430e07a00ca87b665c5f9ed53512e896cce729c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Fri, 19 Jul 2013 10:10:52 +0200
+Subject: [PATCH] gentoo install fixes
+
+---
+ Makefile.config.in | 6 +++---
+ Makefile.rules | 7 +++----
+ tools/gold/Makefile | 2 +-
+ tools/llvm-config/llvm-config.cpp | 2 +-
+ utils/FileCheck/Makefile | 2 +-
+ 5 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/Makefile.config.in b/Makefile.config.in
+index fd4f6ef..ad6595f 100644
+--- a/Makefile.config.in
++++ b/Makefile.config.in
+@@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix)
+ endif
+
+ PROJ_bindir := $(PROJ_prefix)/bin
+-PROJ_libdir := $(PROJ_prefix)/lib
++PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm
+ PROJ_datadir := $(PROJ_prefix)/share
+-PROJ_docsdir := $(PROJ_prefix)/docs/llvm
+-PROJ_etcdir := $(PROJ_prefix)/etc/llvm
++PROJ_docsdir := $(PROJ_prefix)/share/doc/@PF@
++PROJ_etcdir := @EPREFIX@/etc/llvm
+ PROJ_includedir := $(PROJ_prefix)/include
+ PROJ_infodir := $(PROJ_prefix)/info
+ PROJ_mandir := $(PROJ_prefix)/share/man
+diff --git a/Makefile.rules b/Makefile.rules
+index f0c542b..db252f7 100644
+--- a/Makefile.rules
++++ b/Makefile.rules
+@@ -276,7 +276,7 @@ ifeq ($(ENABLE_OPTIMIZED),1)
+ # Don't use -fomit-frame-pointer on Darwin or FreeBSD.
+ ifneq ($(HOST_OS),FreeBSD)
+ ifneq ($(HOST_OS),Darwin)
+- OmitFramePointer := -fomit-frame-pointer
++ OmitFramePointer :=
+ endif
+ endif
+
+@@ -601,7 +601,6 @@ endif
+ ifdef SHARED_LIBRARY
+ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS),Darwin)
+- LD.Flags += $(RPATH) -Wl,'$$ORIGIN'
+ endif
+ endif
+ endif
+@@ -639,7 +638,7 @@ endif
+ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS), Darwin)
+ ifdef TOOLNAME
+- LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib'
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
+ ifdef EXAMPLE_TOOL
+ LD.Flags += $(RPATH) -Wl,$(ExmplDir) $(DynamicFlag)
+ else
+@@ -648,7 +647,7 @@ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ endif
+ else
+ ifneq ($(DARWIN_MAJVERS),4)
+- LD.Flags += $(RPATH) -Wl,@executable_path/../lib
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
+ endif
+ ifeq ($(RC_XBS),YES)
+ TempFile := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/llvm-lto.XXXXXX)
+diff --git a/tools/gold/Makefile b/tools/gold/Makefile
+index 496e31c..d36b340 100644
+--- a/tools/gold/Makefile
++++ b/tools/gold/Makefile
+@@ -24,7 +24,7 @@ include $(LEVEL)/Makefile.config
+ # Because off_t is used in the public API, the largefile parts are required for
+ # ABI compatibility.
+ CXXFLAGS += -I$(BINUTILS_INCDIR) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+-LDFLAGS += -L$(SharedLibDir)/$(SharedPrefix)
++LDFLAGS += -L$(PROJ_libdir)
+
+ include $(LEVEL)/Makefile.common
+
+diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
+index 7edf5ec..4ea5ca3 100644
+--- a/tools/llvm-config/llvm-config.cpp
++++ b/tools/llvm-config/llvm-config.cpp
+@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
+ ActivePrefix = CurrentExecPrefix;
+ ActiveIncludeDir = ActivePrefix + "/include";
+ ActiveBinDir = ActivePrefix + "/bin";
+- ActiveLibDir = ActivePrefix + "/lib";
++ ActiveLibDir = ActivePrefix + "/@libdir@/llvm";
+ ActiveIncludeOption = "-I" + ActiveIncludeDir;
+ }
+
+diff --git a/utils/FileCheck/Makefile b/utils/FileCheck/Makefile
+index 268b7bc..e7674f9 100644
+--- a/utils/FileCheck/Makefile
++++ b/utils/FileCheck/Makefile
+@@ -15,7 +15,7 @@ USEDLIBS = LLVMSupport.a
+ TOOL_NO_EXPORTS = 1
+
+ # Don't install this utility
+-NO_INSTALL = 1
++#NO_INSTALL = 1
+
+ include $(LEVEL)/Makefile.common
+
+--
+1.8.3.2
+
diff --git a/sys-devel/llvm/llvm-3.3-r1.ebuild b/sys-devel/llvm/llvm-3.3-r1.ebuild
index 5cd52a6..a6b057d 100644
--- a/sys-devel/llvm/llvm-3.3-r1.ebuild
+++ b/sys-devel/llvm/llvm-3.3-r1.ebuild
@@ -91,27 +91,23 @@ src_prepare() {
multilib_src_prepare() {
cd "${BUILD_DIR}" || die
+ local sub_files=(
+ Makefile.config.in
+ Makefile.rules
+ tools/llvm-config/llvm-config.cpp
+ )
+ use clang && sub_files+=(
+ tools/clang/lib/Driver/Tools.cpp
+ tools/clang/tools/scan-build/scan-build
+ )
+
# unfortunately ./configure won't listen to --mandir and the-like, so take
# care of this.
- einfo "Fixing install dirs"
- sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
- -e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
- -e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/${PN}, \
- -i Makefile.config.in || die "Makefile.config sed failed"
- sed -e "/ActiveLibDir = ActivePrefix/s/lib/$(get_libdir)\/${PN}/" \
- -i tools/llvm-config/llvm-config.cpp || die "llvm-config sed failed"
-
- einfo "Fixing rpath and CFLAGS"
- sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
- -e '/OmitFramePointer/s/-fomit-frame-pointer//' \
- -i Makefile.rules || die "rpath sed failed"
-
- if use clang; then
- # Set correct path for the coverage lib
- sed -e "s#lib\(/libprofile_rt.a\)#$(get_libdir)/llvm\1#" \
- -i tools/clang/lib/Driver/Tools.cpp \
- || die "driver tools paths sed failed"
- fi
+ sed -e "s,@libdir@,$(get_libdir),g" \
+ -e "s,@PF@,${PF},g" \
+ -e "s,@EPREFIX@,${EPREFIX},g" \
+ -i "${sub_files[@]}" \
+ || die "install paths sed failed"
}
rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
@@ -121,29 +117,7 @@ src_prepare() {
mv "${WORKDIR}"/compiler-rt-${PV}.src "${S}"/projects/compiler-rt \
|| die "compiler-rt source directory move failed"
-
- if use gold; then
- sed -e 's,\$(SharedLibDir),'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
- -i tools/gold/Makefile || die "gold rpath sed failed"
- fi
-
- # FileCheck is needed at least for dragonegg tests
- sed -e "/NO_INSTALL = 1/s/^/#/" -i utils/FileCheck/Makefile \
- || die "FileCheck Makefile sed failed"
-
if use clang; then
- # fix the static analyzer for in-tree install
- sed -e 's/import ScanView/from clang \0/' \
- -i tools/clang/tools/scan-view/scan-view \
- || die "scan-view sed failed"
- sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
- -i tools/clang/tools/scan-build/scan-build \
- || die "scan-build sed failed"
- # Set correct path for gold plugin
- sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
- -i tools/clang/lib/Driver/Tools.cpp \
- || die "driver tools paths sed failed"
-
# Automatically select active system GCC's libraries, bugs #406163 and #417913
epatch "${FILESDIR}"/clang-3.1-gentoo-runtime-gcc-detection-v3.patch
@@ -159,6 +133,8 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
epatch "${FILESDIR}"/${P}-R600_debug.patch
+ epatch "${FILESDIR}"/${PN}-3.3-gentoo-install.patch
+ use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
# User patches
epatch_user
diff --git a/sys-devel/llvm/llvm-9999-r1.ebuild b/sys-devel/llvm/llvm-9999-r1.ebuild
index cbd1966..e87142d 100644
--- a/sys-devel/llvm/llvm-9999-r1.ebuild
+++ b/sys-devel/llvm/llvm-9999-r1.ebuild
@@ -124,7 +124,7 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
epatch "${FILESDIR}"/${PN}-3.4-gentoo-install.patch
- use clang && epatch "${FILESDIR}"/clang-3.4-gentoo-install.patch
+ use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
# User patches
epatch_user
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-19 21:24 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-19 21:24 UTC (permalink / raw
To: gentoo-commits
commit: 700f2c0ea97d728e57aa0b73271b84429dad485f
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 19 19:18:28 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 19 19:18:28 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=700f2c0e
llvm-9999: add build tree paths to LD_LIBRARY_PATH instead of RPATH.
This allows us to keep clean RPATHs in executables while keeping build
and tests working.
---
sys-devel/llvm/files/llvm-3.4-gentoo-install.patch | 4 ++--
sys-devel/llvm/llvm-9999-r1.ebuild | 11 +++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
index 2493674..ad3eec1 100644
--- a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
+++ b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
@@ -57,12 +57,12 @@ index 1bc78f1..60cd228 100644
ifneq ($(HOST_OS), Darwin)
ifdef TOOLNAME
- LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib' $(DynamicFlag)
-+ LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib' $(RPATH) -Wl,'$(PROJ_libdir)' $(DynamicFlag)
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)' $(DynamicFlag)
endif
else
ifneq ($(DARWIN_MAJVERS),4)
- LD.Flags += $(RPATH) -Wl,@executable_path/../lib
-+ LD.Flags += $(RPATH) -Wl,@executable_path/../lib $(RPATH) -Wl,'$(PROJ_libdir)'
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
endif
ifeq ($(RC_XBS),YES)
TempFile := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/llvm-lto.XXXXXX)
diff --git a/sys-devel/llvm/llvm-9999-r1.ebuild b/sys-devel/llvm/llvm-9999-r1.ebuild
index e87142d..e3d56dc 100644
--- a/sys-devel/llvm/llvm-9999-r1.ebuild
+++ b/sys-devel/llvm/llvm-9999-r1.ebuild
@@ -131,6 +131,17 @@ src_prepare() {
multilib_copy_sources
multilib_foreach_abi multilib_src_prepare
+
+ # Add LLVM built libraries to LD_LIBRARY_PATH.
+ # This way we don't have to hack RPATHs of executables.
+ local libpath
+ if use debug; then
+ libpath=Debug+Asserts+Checks/lib
+ else
+ libpath=Release/lib
+ fi
+
+ export LD_LIBRARY_PATH=${libpath}${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}
}
multilib_src_configure() {
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-20 6:28 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-20 6:28 UTC (permalink / raw
To: gentoo-commits
commit: c90ad7aaea030f28543b9a7282c12b18cc71d9d1
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 19 19:29:47 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 19 21:24:27 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=c90ad7aa
sys-devel/llvm: backport -9999 changes to -3.3.
---
sys-devel/llvm/files/llvm-3.3-gentoo-install.patch | 52 ++++++++++++++++++----
sys-devel/llvm/llvm-3.3-r1.ebuild | 11 +++++
2 files changed, 54 insertions(+), 9 deletions(-)
diff --git a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
index a147242..14ff44f 100644
--- a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
+++ b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
@@ -1,15 +1,17 @@
-From 1430e07a00ca87b665c5f9ed53512e896cce729c Mon Sep 17 00:00:00 2001
+From 7843380cdbc4f4519b3669585122bd0a28d3cd29 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
Date: Fri, 19 Jul 2013 10:10:52 +0200
Subject: [PATCH] gentoo install fixes
---
- Makefile.config.in | 6 +++---
- Makefile.rules | 7 +++----
- tools/gold/Makefile | 2 +-
- tools/llvm-config/llvm-config.cpp | 2 +-
- utils/FileCheck/Makefile | 2 +-
- 5 files changed, 9 insertions(+), 10 deletions(-)
+ Makefile.config.in | 6 +++---
+ Makefile.rules | 7 +++----
+ tools/gold/Makefile | 2 +-
+ tools/llvm-config/BuildVariables.inc.in | 1 +
+ tools/llvm-config/Makefile | 2 ++
+ tools/llvm-config/llvm-config.cpp | 5 +++--
+ utils/FileCheck/Makefile | 2 +-
+ 7 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/Makefile.config.in b/Makefile.config.in
index fd4f6ef..ad6595f 100644
@@ -55,7 +57,7 @@ index f0c542b..db252f7 100644
ifneq ($(HOST_OS), Darwin)
ifdef TOOLNAME
- LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib'
-+ LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib' $(RPATH) -Wl,'$(PROJ_libdir)'
++ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
ifdef EXAMPLE_TOOL
LD.Flags += $(RPATH) -Wl,$(ExmplDir) $(DynamicFlag)
else
@@ -81,8 +83,30 @@ index 496e31c..d36b340 100644
include $(LEVEL)/Makefile.common
+diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+index fe87afb..94952ca 100644
+--- a/tools/llvm-config/BuildVariables.inc.in
++++ b/tools/llvm-config/BuildVariables.inc.in
+@@ -25,3 +25,4 @@
+ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
+ #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
+ #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
++#define LLVM_RPATH "@LLVM_RPATH@"
+diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile
+index b20b6bf..3747baf 100644
+--- a/tools/llvm-config/Makefile
++++ b/tools/llvm-config/Makefile
+@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
+ >> temp.sed
+ $(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \
+ >> temp.sed
++ $(Verb) $(ECHO) 's/@LLVM_RPATH@/$(subst /,\/,$(RPATH))/' \
++ >> temp.sed
+ $(Verb) $(SED) -f temp.sed < $< > $@
+ $(Verb) $(RM) temp.sed
+
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 7edf5ec..4ea5ca3 100644
+index 7edf5ec..abd2888 100644
--- a/tools/llvm-config/llvm-config.cpp
+++ b/tools/llvm-config/llvm-config.cpp
@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
@@ -94,6 +118,16 @@ index 7edf5ec..4ea5ca3 100644
ActiveIncludeOption = "-I" + ActiveIncludeDir;
}
+@@ -277,7 +277,8 @@ int main(int argc, char **argv) {
+ } else if (Arg == "--cxxflags") {
+ OS << ActiveIncludeOption << ' ' << LLVM_CXXFLAGS << '\n';
+ } else if (Arg == "--ldflags") {
+- OS << "-L" << ActiveLibDir << ' ' << LLVM_LDFLAGS
++ OS << "-L" << ActiveLibDir << ' '
++ << LLVM_RPATH << " -Wl," << ActiveLibDir << ' ' << LLVM_LDFLAGS
+ << ' ' << LLVM_SYSTEM_LIBS << '\n';
+ } else if (Arg == "--libs") {
+ PrintLibs = true;
diff --git a/utils/FileCheck/Makefile b/utils/FileCheck/Makefile
index 268b7bc..e7674f9 100644
--- a/utils/FileCheck/Makefile
diff --git a/sys-devel/llvm/llvm-3.3-r1.ebuild b/sys-devel/llvm/llvm-3.3-r1.ebuild
index daef29f..123564f 100644
--- a/sys-devel/llvm/llvm-3.3-r1.ebuild
+++ b/sys-devel/llvm/llvm-3.3-r1.ebuild
@@ -148,6 +148,17 @@ src_prepare() {
multilib_copy_sources
multilib_foreach_abi multilib_src_prepare
+
+ # Add LLVM built libraries to LD_LIBRARY_PATH.
+ # This way we don't have to hack RPATHs of executables.
+ local libpath
+ if use debug; then
+ libpath=Debug+Asserts+Checks/lib
+ else
+ libpath=Release/lib
+ fi
+
+ export LD_LIBRARY_PATH=${libpath}${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}
}
multilib_src_configure() {
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-20 14:00 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-20 14:00 UTC (permalink / raw
To: gentoo-commits
commit: bd8eb41521626307eadd67b4f1a1490bb42b3cb8
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 20 13:52:41 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 13:52:41 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=bd8eb415
sys-devel/llvm: use out-of-source builds.
Well, it seems that LLVM actually supports them and they work just fine.
---
sys-devel/llvm/files/llvm-3.3-gentoo-install.patch | 29 +++--
sys-devel/llvm/files/llvm-3.4-gentoo-install.patch | 29 +++--
sys-devel/llvm/llvm-3.3-r1.ebuild | 142 ++++++++++-----------
sys-devel/llvm/llvm-9999-r1.ebuild | 141 ++++++++++----------
4 files changed, 171 insertions(+), 170 deletions(-)
diff --git a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
index 14ff44f..8b19353 100644
--- a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
+++ b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch
@@ -1,20 +1,20 @@
-From 7843380cdbc4f4519b3669585122bd0a28d3cd29 Mon Sep 17 00:00:00 2001
+From 378109dbae7e4772d9b096384904c638a6a34028 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
Date: Fri, 19 Jul 2013 10:10:52 +0200
-Subject: [PATCH] gentoo install fixes
+Subject: [PATCH 1/2] gentoo install fixes
---
Makefile.config.in | 6 +++---
Makefile.rules | 7 +++----
tools/gold/Makefile | 2 +-
- tools/llvm-config/BuildVariables.inc.in | 1 +
- tools/llvm-config/Makefile | 2 ++
+ tools/llvm-config/BuildVariables.inc.in | 2 ++
+ tools/llvm-config/Makefile | 4 ++++
tools/llvm-config/llvm-config.cpp | 5 +++--
utils/FileCheck/Makefile | 2 +-
- 7 files changed, 14 insertions(+), 11 deletions(-)
+ 7 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/Makefile.config.in b/Makefile.config.in
-index fd4f6ef..ad6595f 100644
+index fd4f6ef..5634ecc 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix)
@@ -22,7 +22,7 @@ index fd4f6ef..ad6595f 100644
PROJ_bindir := $(PROJ_prefix)/bin
-PROJ_libdir := $(PROJ_prefix)/lib
-+PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm
++PROJ_libdir := $(PROJ_prefix)/$(GENTOO_LIBDIR)/llvm
PROJ_datadir := $(PROJ_prefix)/share
-PROJ_docsdir := $(PROJ_prefix)/docs/llvm
-PROJ_etcdir := $(PROJ_prefix)/etc/llvm
@@ -84,29 +84,32 @@ index 496e31c..d36b340 100644
include $(LEVEL)/Makefile.common
diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index fe87afb..94952ca 100644
+index fe87afb..fd9f2c6 100644
--- a/tools/llvm-config/BuildVariables.inc.in
+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -25,3 +25,4 @@
+@@ -25,3 +25,5 @@
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
#define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+#define LLVM_RPATH "@LLVM_RPATH@"
++#define LLVM_LIBDIR "@LLVM_LIBDIR@"
diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile
-index b20b6bf..3747baf 100644
+index b20b6bf..fc56781 100644
--- a/tools/llvm-config/Makefile
+++ b/tools/llvm-config/Makefile
-@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
+@@ -55,6 +55,10 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \
>> temp.sed
+ $(Verb) $(ECHO) 's/@LLVM_RPATH@/$(subst /,\/,$(RPATH))/' \
+ >> temp.sed
++ $(Verb) $(ECHO) 's/@LLVM_LIBDIR@/$(subst /,\/,$(GENTOO_LIBDIR))/' \
++ >> temp.sed
$(Verb) $(SED) -f temp.sed < $< > $@
$(Verb) $(RM) temp.sed
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 7edf5ec..abd2888 100644
+index 7edf5ec..4541c28 100644
--- a/tools/llvm-config/llvm-config.cpp
+++ b/tools/llvm-config/llvm-config.cpp
@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
@@ -114,7 +117,7 @@ index 7edf5ec..abd2888 100644
ActiveIncludeDir = ActivePrefix + "/include";
ActiveBinDir = ActivePrefix + "/bin";
- ActiveLibDir = ActivePrefix + "/lib";
-+ ActiveLibDir = ActivePrefix + "/@libdir@/llvm";
++ ActiveLibDir = ActivePrefix + "/" LLVM_LIBDIR "/llvm";
ActiveIncludeOption = "-I" + ActiveIncludeDir;
}
diff --git a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
index ad3eec1..659486a 100644
--- a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
+++ b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch
@@ -1,20 +1,20 @@
-From f0927633bf1d6426624f1c266b1407b18ac1cd80 Mon Sep 17 00:00:00 2001
+From be2ee7ba7ab4c1aec86d3d9e49e1be241afd8abd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
Date: Fri, 19 Jul 2013 10:10:52 +0200
-Subject: [PATCH] gentoo install fixes
+Subject: [PATCH 1/2] gentoo install fixes
---
Makefile.config.in | 6 +++---
Makefile.rules | 7 +++----
tools/gold/Makefile | 2 +-
- tools/llvm-config/BuildVariables.inc.in | 1 +
- tools/llvm-config/Makefile | 2 ++
+ tools/llvm-config/BuildVariables.inc.in | 2 ++
+ tools/llvm-config/Makefile | 4 ++++
tools/llvm-config/llvm-config.cpp | 5 +++--
utils/FileCheck/Makefile | 2 +-
- 7 files changed, 14 insertions(+), 11 deletions(-)
+ 7 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/Makefile.config.in b/Makefile.config.in
-index dcca45f..45bf0d1 100644
+index dcca45f..e75ae2e 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix)
@@ -22,7 +22,7 @@ index dcca45f..45bf0d1 100644
PROJ_bindir := $(PROJ_prefix)/bin
-PROJ_libdir := $(PROJ_prefix)/lib
-+PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm
++PROJ_libdir := $(PROJ_prefix)/$(GENTOO_LIBDIR)/llvm
PROJ_datadir := $(PROJ_prefix)/share
-PROJ_docsdir := $(PROJ_prefix)/docs/llvm
-PROJ_etcdir := $(PROJ_prefix)/etc/llvm
@@ -80,29 +80,32 @@ index 496e31c..d36b340 100644
include $(LEVEL)/Makefile.common
diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index fe87afb..2afaaea 100644
+index fe87afb..fd9f2c6 100644
--- a/tools/llvm-config/BuildVariables.inc.in
+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -25,3 +25,4 @@
+@@ -25,3 +25,5 @@
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
#define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
+#define LLVM_RPATH "@LLVM_RPATH@"
++#define LLVM_LIBDIR "@LLVM_LIBDIR@"
diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile
-index b20b6bf..3747baf 100644
+index b20b6bf..fc56781 100644
--- a/tools/llvm-config/Makefile
+++ b/tools/llvm-config/Makefile
-@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
+@@ -55,6 +55,10 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
>> temp.sed
$(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \
>> temp.sed
+ $(Verb) $(ECHO) 's/@LLVM_RPATH@/$(subst /,\/,$(RPATH))/' \
+ >> temp.sed
++ $(Verb) $(ECHO) 's/@LLVM_LIBDIR@/$(subst /,\/,$(GENTOO_LIBDIR))/' \
++ >> temp.sed
$(Verb) $(SED) -f temp.sed < $< > $@
$(Verb) $(RM) temp.sed
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 3924e2e..169e8bf 100644
+index 3924e2e..f439c60 100644
--- a/tools/llvm-config/llvm-config.cpp
+++ b/tools/llvm-config/llvm-config.cpp
@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
@@ -110,7 +113,7 @@ index 3924e2e..169e8bf 100644
ActiveIncludeDir = ActivePrefix + "/include";
ActiveBinDir = ActivePrefix + "/bin";
- ActiveLibDir = ActivePrefix + "/lib";
-+ ActiveLibDir = ActivePrefix + "/@libdir@/llvm";
++ ActiveLibDir = ActivePrefix + "/" LLVM_LIBDIR "/llvm";
ActiveIncludeOption = "-I" + ActiveIncludeDir;
}
diff --git a/sys-devel/llvm/llvm-3.3-r1.ebuild b/sys-devel/llvm/llvm-3.3-r1.ebuild
index 515b006..fb8400a 100644
--- a/sys-devel/llvm/llvm-3.3-r1.ebuild
+++ b/sys-devel/llvm/llvm-3.3-r1.ebuild
@@ -101,28 +101,6 @@ src_unpack() {
}
src_prepare() {
- multilib_src_prepare() {
- cd "${BUILD_DIR}" || die
-
- local sub_files=(
- Makefile.config.in
- Makefile.rules
- tools/llvm-config/llvm-config.cpp
- )
- use clang && sub_files+=(
- tools/clang/lib/Driver/Tools.cpp
- tools/clang/tools/scan-build/scan-build
- )
-
- # unfortunately ./configure won't listen to --mandir and the-like, so take
- # care of this.
- sed -e "s,@libdir@,$(get_libdir),g" \
- -e "s,@PF@,${PF},g" \
- -e "s,@EPREFIX@,${EPREFIX},g" \
- -i "${sub_files[@]}" \
- || die "install paths sed failed"
- }
-
if use clang; then
# Automatically select active system GCC's libraries, bugs #406163 and #417913
epatch "${FILESDIR}"/clang-3.1-gentoo-runtime-gcc-detection-v3.patch
@@ -142,11 +120,29 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-3.3-gentoo-install.patch
use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
+ local sub_files=(
+ Makefile.config.in
+ Makefile.rules
+ tools/llvm-config/llvm-config.cpp
+ )
+ use clang && sub_files+=(
+ tools/clang/lib/Driver/Tools.cpp
+ tools/clang/tools/scan-build/scan-build
+ )
+
+ # unfortunately ./configure won't listen to --mandir and the-like, so take
+ # care of this.
+ # note: we're setting the main libdir intentionally.
+ # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
+ einfo "Fixing install dirs"
+ sed -e "s,@libdir@,$(get_libdir),g" \
+ -e "s,@PF@,${PF},g" \
+ -e "s,@EPREFIX@,${EPREFIX},g" \
+ -i "${sub_files[@]}" \
+ || die "install paths sed failed"
+
# User patches
epatch_user
-
- multilib_copy_sources
- multilib_foreach_abi multilib_src_prepare
}
llvm_add_ldpath() {
@@ -213,6 +209,8 @@ multilib_src_configure() {
# llvm prefers clang over gcc, so we may need to force that
tc-export CC CXX
+
+ ECONF_SOURCE=${S} \
econf ${CONF_FLAGS}
}
@@ -220,6 +218,7 @@ multilib_src_compile() {
local mymakeopts=(
VERBOSE=1
REQUIRES_RTTI=1
+ GENTOO_LIBDIR="$(get_libdir)"
)
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
@@ -237,8 +236,7 @@ multilib_src_compile() {
fi
if multilib_is_native_abi && use doc; then
- emake -C docs -f Makefile.sphinx man
- emake -C docs -f Makefile.sphinx html
+ emake -C "${S}"/docs -f Makefile.sphinx man html
fi
if use debug; then
@@ -283,6 +281,7 @@ src_install() {
multilib_src_install() {
local mymakeopts=(
DESTDIR="${D}"
+ GENTOO_LIBDIR="$(get_libdir)"
)
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
@@ -311,13 +310,54 @@ multilib_src_install() {
rm -r "${ED}"/usr/bin || die
fi
- if multilib_is_native_abi && use doc; then
- # Note: use !doc is handled in multilib_src_install_all
+ # Fix install_names on Darwin. The build system is too complicated
+ # to just fix this, so we correct it post-install
+ local lib= f= odylib= libpv=${PV}
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ eval $(grep PACKAGE_VERSION= configure)
+ [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
+ for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do
+ # libEnhancedDisassembly is Darwin10 only, so non-fatal
+ # + omit clang libs if not enabled
+ [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
+
+ ebegin "fixing install_name of $lib"
+ install_name_tool \
+ -id "${EPREFIX}"/usr/lib/${PN}/${lib} \
+ "${ED}"/usr/lib/${PN}/${lib}
+ eend $?
+ done
+ for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do
+ # omit clang libs if not enabled
+ [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
+
+ odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib)
+ ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
+ install_name_tool \
+ -change "${odylib}" \
+ "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \
+ -change "@rpath/libclang.dylib" \
+ "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
+ -change "${S}"/Release/lib/libclang.dylib \
+ "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
+ "${f}"
+ eend $?
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if use doc; then
doman docs/_build/man/*.1
dohtml -r docs/_build/html/
+ else
+ doman "${WORKDIR}"/${P}-manpages/*.1
fi
- if multilib_is_native_abi && use clang; then
+ insinto /usr/share/vim/vimfiles/syntax
+ doins utils/vim/*.vim
+
+ if use clang; then
cd tools/clang || die
if use static-analyzer ; then
@@ -357,46 +397,4 @@ multilib_src_install() {
}
python_foreach_impl python_inst
fi
-
- # Fix install_names on Darwin. The build system is too complicated
- # to just fix this, so we correct it post-install
- local lib= f= odylib= libpv=${PV}
- if [[ ${CHOST} == *-darwin* ]] ; then
- eval $(grep PACKAGE_VERSION= configure)
- [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
- for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do
- # libEnhancedDisassembly is Darwin10 only, so non-fatal
- # + omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
-
- ebegin "fixing install_name of $lib"
- install_name_tool \
- -id "${EPREFIX}"/usr/lib/${PN}/${lib} \
- "${ED}"/usr/lib/${PN}/${lib}
- eend $?
- done
- for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do
- # omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
-
- odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib)
- ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
- install_name_tool \
- -change "${odylib}" \
- "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \
- -change "@rpath/libclang.dylib" \
- "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
- -change "${S}"/Release/lib/libclang.dylib \
- "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
- "${f}"
- eend $?
- done
- fi
-}
-
-multilib_src_install_all() {
- use doc || doman "${WORKDIR}"/${P}-manpages/*.1
-
- insinto /usr/share/vim/vimfiles/syntax
- doins utils/vim/*.vim
}
diff --git a/sys-devel/llvm/llvm-9999-r1.ebuild b/sys-devel/llvm/llvm-9999-r1.ebuild
index ec5baeb..ae6bbb5 100644
--- a/sys-devel/llvm/llvm-9999-r1.ebuild
+++ b/sys-devel/llvm/llvm-9999-r1.ebuild
@@ -98,38 +98,33 @@ src_unpack() {
}
src_prepare() {
- multilib_src_prepare() {
- cd "${BUILD_DIR}" || die
-
- local sub_files=(
- Makefile.config.in
- Makefile.rules
- tools/llvm-config/llvm-config.cpp
- )
- use clang && sub_files+=(
- tools/clang/lib/Driver/Tools.cpp
- tools/clang/tools/scan-build/scan-build
- )
-
- # unfortunately ./configure won't listen to --mandir and the-like, so take
- # care of this.
- einfo "Fixing install dirs"
- sed -e "s,@libdir@,$(get_libdir),g" \
- -e "s,@PF@,${PF},g" \
- -e "s,@EPREFIX@,${EPREFIX},g" \
- -i "${sub_files[@]}" \
- || die "install paths sed failed"
- }
-
epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
epatch "${FILESDIR}"/${PN}-3.4-gentoo-install.patch
use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
+ local sub_files=(
+ Makefile.config.in
+ Makefile.rules
+ tools/llvm-config/llvm-config.cpp
+ )
+ use clang && sub_files+=(
+ tools/clang/lib/Driver/Tools.cpp
+ tools/clang/tools/scan-build/scan-build
+ )
+
+ # unfortunately ./configure won't listen to --mandir and the-like, so take
+ # care of this.
+ # note: we're setting the main libdir intentionally.
+ # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
+ einfo "Fixing install dirs"
+ sed -e "s,@libdir@,$(get_libdir),g" \
+ -e "s,@PF@,${PF},g" \
+ -e "s,@EPREFIX@,${EPREFIX},g" \
+ -i "${sub_files[@]}" \
+ || die "install paths sed failed"
+
# User patches
epatch_user
-
- multilib_copy_sources
- multilib_foreach_abi multilib_src_prepare
}
llvm_add_ldpath() {
@@ -194,6 +189,8 @@ multilib_src_configure() {
# llvm prefers clang over gcc, so we may need to force that
tc-export CC CXX
+
+ ECONF_SOURCE=${S} \
econf ${CONF_FLAGS}
}
@@ -201,6 +198,7 @@ multilib_src_compile() {
local mymakeopts=(
VERBOSE=1
REQUIRES_RTTI=1
+ GENTOO_LIBDIR="$(get_libdir)"
)
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
@@ -218,8 +216,8 @@ multilib_src_compile() {
fi
if multilib_is_native_abi; then
- emake -C docs -f Makefile.sphinx man
- use doc && emake -C docs -f Makefile.sphinx html
+ emake -C "${S}"/docs -f Makefile.sphinx man
+ use doc && emake -C "${S}"/docs -f Makefile.sphinx html
fi
if use debug; then
@@ -261,6 +259,7 @@ src_install() {
multilib_src_install() {
local mymakeopts=(
DESTDIR="${D}"
+ GENTOO_LIBDIR="$(get_libdir)"
)
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
@@ -289,12 +288,50 @@ multilib_src_install() {
rm -r "${ED}"/usr/bin || die
fi
- if multilib_is_native_abi; then
- doman docs/_build/man/*.1
- use doc && dohtml -r docs/_build/html/
+ # Fix install_names on Darwin. The build system is too complicated
+ # to just fix this, so we correct it post-install
+ local lib= f= odylib= libpv=${PV}
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ eval $(grep PACKAGE_VERSION= configure)
+ [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
+ for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do
+ # libEnhancedDisassembly is Darwin10 only, so non-fatal
+ # + omit clang libs if not enabled
+ [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
+
+ ebegin "fixing install_name of $lib"
+ install_name_tool \
+ -id "${EPREFIX}"/usr/lib/${PN}/${lib} \
+ "${ED}"/usr/lib/${PN}/${lib}
+ eend $?
+ done
+ for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do
+ # omit clang libs if not enabled
+ [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
+
+ odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib)
+ ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
+ install_name_tool \
+ -change "${odylib}" \
+ "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \
+ -change "@rpath/libclang.dylib" \
+ "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
+ -change "${S}"/Release/lib/libclang.dylib \
+ "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
+ "${f}"
+ eend $?
+ done
fi
+}
+
+multilib_src_install_all() {
+ doman docs/_build/man/*.1
+ use doc && dohtml -r docs/_build/html/
- if multilib_is_native_abi && use clang; then
+ insinto /usr/share/vim/vimfiles/syntax
+ doins utils/vim/*.vim
+
+ if use clang; then
cd tools/clang || die
if use static-analyzer ; then
@@ -334,44 +371,4 @@ multilib_src_install() {
}
python_foreach_impl python_inst
fi
-
- # Fix install_names on Darwin. The build system is too complicated
- # to just fix this, so we correct it post-install
- local lib= f= odylib= libpv=${PV}
- if [[ ${CHOST} == *-darwin* ]] ; then
- eval $(grep PACKAGE_VERSION= configure)
- [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
- for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do
- # libEnhancedDisassembly is Darwin10 only, so non-fatal
- # + omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
-
- ebegin "fixing install_name of $lib"
- install_name_tool \
- -id "${EPREFIX}"/usr/lib/${PN}/${lib} \
- "${ED}"/usr/lib/${PN}/${lib}
- eend $?
- done
- for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do
- # omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
-
- odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib)
- ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
- install_name_tool \
- -change "${odylib}" \
- "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \
- -change "@rpath/libclang.dylib" \
- "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
- -change "${S}"/Release/lib/libclang.dylib \
- "${EPREFIX}"/usr/lib/llvm/libclang.dylib \
- "${f}"
- eend $?
- done
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles/syntax
- doins utils/vim/*.vim
}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/
@ 2013-07-20 14:00 Michał Górny
0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2013-07-20 14:00 UTC (permalink / raw
To: gentoo-commits
commit: a7516bfcb024edc796aeacfee0ac51a3cdd24a4b
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 20 14:00:21 2013 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 14:00:21 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=a7516bfc
llvm-3.3: fix insecure RUNPATHs.
---
sys-devel/llvm/files/llvm-3.3-insecure-rpath.patch | 30 ++++++++++++++++++++++
sys-devel/llvm/llvm-3.3-r1.ebuild | 3 +++
2 files changed, 33 insertions(+)
diff --git a/sys-devel/llvm/files/llvm-3.3-insecure-rpath.patch b/sys-devel/llvm/files/llvm-3.3-insecure-rpath.patch
new file mode 100644
index 0000000..659f237
--- /dev/null
+++ b/sys-devel/llvm/files/llvm-3.3-insecure-rpath.patch
@@ -0,0 +1,30 @@
+From d23d21bc76693dd2a43b5d76c68972ac01a055ba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Sat, 20 Jul 2013 15:56:56 +0200
+Subject: [PATCH] Remove insecure RUNPATHs.
+
+LLVM seems to build fine without them, and they were removed for 3.4
+already.
+---
+ Makefile.rules | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/Makefile.rules b/Makefile.rules
+index db252f7..a29481b 100644
+--- a/Makefile.rules
++++ b/Makefile.rules
+@@ -639,11 +639,6 @@ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
+ ifneq ($(HOST_OS), Darwin)
+ ifdef TOOLNAME
+ LD.Flags += $(RPATH) -Wl,'$(PROJ_libdir)'
+- ifdef EXAMPLE_TOOL
+- LD.Flags += $(RPATH) -Wl,$(ExmplDir) $(DynamicFlag)
+- else
+- LD.Flags += $(RPATH) -Wl,$(ToolDir) $(DynamicFlag)
+- endif
+ endif
+ else
+ ifneq ($(DARWIN_MAJVERS),4)
+--
+1.8.3.2
+
diff --git a/sys-devel/llvm/llvm-3.3-r1.ebuild b/sys-devel/llvm/llvm-3.3-r1.ebuild
index fb8400a..6fd495f 100644
--- a/sys-devel/llvm/llvm-3.3-r1.ebuild
+++ b/sys-devel/llvm/llvm-3.3-r1.ebuild
@@ -120,6 +120,9 @@ src_prepare() {
epatch "${FILESDIR}"/${PN}-3.3-gentoo-install.patch
use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
+ # Fix insecure RPATHs that were removed upstream already.
+ epatch "${FILESDIR}"/${P}-insecure-rpath.patch
+
local sub_files=(
Makefile.config.in
Makefile.rules
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-07-20 14:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-19 11:02 [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/ Michał Górny
-- strict thread matches above, loose matches on Subject: below --
2013-07-20 14:00 Michał Górny
2013-07-20 14:00 Michał Górny
2013-07-20 6:28 Michał Górny
2013-07-19 21:24 Michał Górny
2013-07-19 10:44 Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox