summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Cafarelli <voyageur@gentoo.org>2012-03-27 08:06:03 +0000
committerBernard Cafarelli <voyageur@gentoo.org>2012-03-27 08:06:03 +0000
commit49f47ad8a12e79340812e96bedab0707f86d0860 (patch)
tree5570ea467a8c8934888d9727e636a4e8181e6b16 /sys-devel
parentRemove old versions from development branch (diff)
downloadhistorical-49f47ad8a12e79340812e96bedab0707f86d0860.tar.gz
historical-49f47ad8a12e79340812e96bedab0707f86d0860.tar.bz2
historical-49f47ad8a12e79340812e96bedab0707f86d0860.zip
Set soname in shared library, bug #409267 by ryao
Package-Manager: portage-2.2.0_alpha95/cvs/Linux x86_64
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/llvm/ChangeLog8
-rw-r--r--sys-devel/llvm/Manifest10
-rw-r--r--sys-devel/llvm/files/llvm-3.0-set_soname.patch12
-rw-r--r--sys-devel/llvm/llvm-3.0-r2.ebuild173
4 files changed, 198 insertions, 5 deletions
diff --git a/sys-devel/llvm/ChangeLog b/sys-devel/llvm/ChangeLog
index d98c5af82419..e97df64053ae 100644
--- a/sys-devel/llvm/ChangeLog
+++ b/sys-devel/llvm/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-devel/llvm
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.64 2012/03/13 15:37:28 voyageur Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.65 2012/03/27 08:06:03 voyageur Exp $
+
+*llvm-3.0-r2 (27 Mar 2012)
+
+ 27 Mar 2012; Bernard Cafarelli <voyageur@gentoo.org> +llvm-3.0-r2.ebuild,
+ +files/llvm-3.0-set_soname.patch:
+ Set soname in shared library, bug #409267 by ryao
13 Mar 2012; Bernard Cafarelli <voyageur@gentoo.org> llvm-3.0-r1.ebuild,
llvm-9999.ebuild:
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
index 66fe9af86fb3..07023a302a39 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -10,19 +10,21 @@ AUX llvm-2.9-nodoctargz.patch 1569 RMD160 6589aa0a41f47e915ce93fe6dcf68dd601c3bc
AUX llvm-3.0-PPC_macro.patch 1825 RMD160 d991c5c8c05cdc6e4ce6bf4b43059f54822d69b8 SHA1 11a5439873ed00152f2ee2635313aec22ec58452 SHA256 e56947d9744549ef6903238653c6569b5f91a1eb1bd84ec5d69d32ce5b20d6e4
AUX llvm-3.0-gold_LTO_link.patch 442 RMD160 f480458cc7ef79bbfb948c2f6d2e4122eb55c564 SHA1 a92ac6454a751daf6643c1b402d102ce3c304b73 SHA256 62dc70a1d1f581b7f768ca728dcca688a741e03e64566d5f38e02e33c6372ab8
AUX llvm-3.0-ocaml_install.patch 664 RMD160 c439931f952e7e053b726435ae0a8e502ebe5080 SHA1 15c8a81baa0e6e78d734f5451b319bf6d896eb2a SHA256 6f451130ed8fcced98691361d33d4d44d8866e703673c293cf7f88af8362e694
+AUX llvm-3.0-set_soname.patch 522 RMD160 84f8b4fe1f1f52a9503e4d5a2192b58c493f9047 SHA1 52ec640907aaca7c37ec0b96dba261529d8aded2 SHA256 0f4fe63baa74a963929dc39359cccb6eb4fba73176d72d4a354ebf50e51318a5
DIST llvm-2.8-r1.tgz 9112527 RMD160 3f5a71d07e105a7cf46eafc7a9006a927035012c SHA1 6d49fe039d28e8664de25491c775cb2c599e30c1 SHA256 25addb742f1c6cc12877ed0ee924dda962d848368ee095be8e48342ae613d43b
DIST llvm-2.9.tgz 9574781 RMD160 caeaa067fda1eb34196b356a087645f83731cfb7 SHA1 500f587f840199ac53c4fc7572839d08fa9d9123 SHA256 661236cfa17428b48cfa9cbb9909f7569c64b8ecd219fd91dbc00e3b557b3779
DIST llvm-3.0.tar.gz 10350539 RMD160 85211cafbed1c5d838ac54669017b5298613f975 SHA1 b683e7294fcf69887c0d709025d4640f5dca755b SHA256 519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477
EBUILD llvm-2.8-r2.ebuild 6222 RMD160 34c51d4deb8ba605df908542a581099af7043a7f SHA1 c86b4cfe710b65ffedd934096df8394da9a8798f SHA256 4e9fc704a4aa3b1a8e07bf9807f1f3fbdc429d1ab075edf025dd6b96e003d852
EBUILD llvm-2.9-r2.ebuild 6179 RMD160 47fd4981eb19d1abd644f6a4b268b04f04b1a77c SHA1 03be220126b66435115c9b90606728aca9eebf25 SHA256 3118e5514d5f0adf026e8bab1dd6b13c07702480dd1b475c6861c0696c0f2dd9
EBUILD llvm-3.0-r1.ebuild 5543 RMD160 860ad59020e55c3445440e1dd893fd41fb6fd515 SHA1 0986229f6c58511557cce95992d0923d53b71ff7 SHA256 c836d9526ba40127a1edcd133b3f406f1e7b6852f860f75884279d593e5d639b
+EBUILD llvm-3.0-r2.ebuild 5587 RMD160 eb1e0f21ff58e56df0d93f4487dbd824f8fb9d6b SHA1 561018833ba7c43aa7fe54742df3d6d5018e3cee SHA256 906bf20fd2c191ef3815d9fa837a886a4058c6285c217cc90871c93ecd4f2e33
EBUILD llvm-9999.ebuild 5478 RMD160 f407f5954642bbe4b856e5e6f19a72af045005fb SHA1 1d0ff0dba02496539562e49a844b59f32672be49 SHA256 fd16d34a829f7e3afd98aec8837c395d2e3c59bcbe4b85b55a87af29f7fc8868
-MISC ChangeLog 10810 RMD160 bfc798b822c159ca79f68cfab870b1335e4bd327 SHA1 ba33270f54f4d6464d43756a43f60fccac0316cd SHA256 a18edc4bd17ef6d603880bdf67ddd1b5291e9d179a50413c899556904adc913d
+MISC ChangeLog 11003 RMD160 fdd6f4d6c36493fea7e3c8d2f0813b5a24d71b59 SHA1 10e4d06dd62f7ddb4dd2fbdd23c274d30421b982 SHA256 e22b4a63b982c0ed078428018b6790459c70f19782de50b4cc76eddfda243694
MISC metadata.xml 2290 RMD160 3c36b274b863158d4a53be2c99ea5f42ede2bb80 SHA1 d608d42b2a831a4b9025fa1d2fd68fb11996293b SHA256 fd3cd6846072dbcacb0a3461a3d1a47bb09b858562df26fb9fc0769f0a292bf4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iF4EAREIAAYFAk9facUACgkQFYEBGcdFJfL8oQD/enlHuMK1qFRWbGOSWHn47LXx
-2A+YIu05l/PrUtu6TuUA/i4lpf/7cjo9n3rfm6UJP2+Cb/RrVKGmdHNCaC4poXVY
-=ievE
+iF4EAREIAAYFAk9xdPgACgkQFYEBGcdFJfI77QD/XJlo60wrD2RGKeL/TFfRPibZ
+fjMvm8OJ5+8HEFWCsVcBAICr0nsaRO4gD+ks9aT5E6b9Yx0fG7kMWaCYEcr0jBZ/
+=sSE2
-----END PGP SIGNATURE-----
diff --git a/sys-devel/llvm/files/llvm-3.0-set_soname.patch b/sys-devel/llvm/files/llvm-3.0-set_soname.patch
new file mode 100644
index 000000000000..69ba74dddad8
--- /dev/null
+++ b/sys-devel/llvm/files/llvm-3.0-set_soname.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/show_bug.cgi?id=409267
+http://llvm.org/bugs/show_bug.cgi?id=12334
+--- tools/llvm-shlib/Makefile.orig 2012-03-26 18:14:13.071797115 +0200
++++ tools/llvm-shlib/Makefile 2012-03-26 17:31:12.491196254 +0200
+@@ -67,6 +67,7 @@
+ # Include everything from the .a's into the shared library.
+ LLVMLibsOptions := -Wl,--whole-archive $(LLVMLibsOptions) \
+ -Wl,--no-whole-archive
++ LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT)
+ endif
+
+ ifeq ($(HOST_OS),Linux)
diff --git a/sys-devel/llvm/llvm-3.0-r2.ebuild b/sys-devel/llvm/llvm-3.0-r2.ebuild
new file mode 100644
index 000000000000..4af0b33980c7
--- /dev/null
+++ b/sys-devel/llvm/llvm-3.0-r2.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.0-r2.ebuild,v 1.1 2012/03/27 08:06:03 voyageur Exp $
+
+EAPI="3"
+PYTHON_DEPEND="2"
+inherit eutils flag-o-matic multilib toolchain-funcs python
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="http://llvm.org/"
+SRC_URI="http://llvm.org/releases/${PV}/${P}.tar.gz"
+
+LICENSE="UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="debug gold +libffi multitarget ocaml test udis86 vim-syntax"
+
+DEPEND="dev-lang/perl
+ >=sys-devel/make-3.79
+ >=sys-devel/flex-2.5.4
+ >=sys-devel/bison-1.875d
+ || ( >=sys-devel/gcc-3.0 >=sys-devel/gcc-apple-4.2.1 )
+ || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-3.2.3 )
+ gold? ( >=sys-devel/binutils-2.22 )
+ libffi? ( dev-util/pkgconfig
+ virtual/libffi )
+ ocaml? ( dev-lang/ocaml )
+ udis86? ( amd64? ( dev-libs/udis86[pic] )
+ !amd64? ( dev-libs/udis86 ) )"
+RDEPEND="dev-lang/perl
+ libffi? ( virtual/libffi )
+ vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )"
+
+S=${WORKDIR}/${P}.src
+
+pkg_setup() {
+ # Required for test and build
+ python_set_active_version 2
+ python_pkg_setup
+
+ # need to check if the active compiler is ok
+
+ broken_gcc=" 3.2.2 3.2.3 3.3.2 4.1.1 "
+ broken_gcc_x86=" 3.4.0 3.4.2 "
+ broken_gcc_amd64=" 3.4.6 "
+
+ gcc_vers=$(gcc-fullversion)
+
+ if [[ ${broken_gcc} == *" ${version} "* ]] ; then
+ elog "Your version of gcc is known to miscompile llvm."
+ elog "Check http://www.llvm.org/docs/GettingStarted.html for"
+ elog "possible solutions."
+ die "Your currently active version of gcc is known to miscompile llvm"
+ fi
+
+ if [[ ${CHOST} == i*86-* && ${broken_gcc_x86} == *" ${version} "* ]] ; then
+ elog "Your version of gcc is known to miscompile llvm on x86"
+ elog "architectures. Check"
+ elog "http://www.llvm.org/docs/GettingStarted.html for possible"
+ elog "solutions."
+ die "Your currently active version of gcc is known to miscompile llvm"
+ fi
+
+ if [[ ${CHOST} == x86_64-* && ${broken_gcc_amd64} == *" ${version} "* ]];
+ then
+ elog "Your version of gcc is known to miscompile llvm in amd64"
+ elog "architectures. Check"
+ elog "http://www.llvm.org/docs/GettingStarted.html for possible"
+ elog "solutions."
+ die "Your currently active version of gcc is known to miscompile llvm"
+ fi
+}
+
+src_prepare() {
+ # 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 's,$ABS_RUN_DIR/lib,'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
+ -i tools/llvm-config/llvm-config.in.in || 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"
+
+ # Specify python version
+ python_convert_shebangs -r 2 test/Scripts
+
+ epatch "${FILESDIR}"/${PN}-2.6-commandguide-nops.patch
+ epatch "${FILESDIR}"/${PN}-2.9-nodoctargz.patch
+ epatch "${FILESDIR}"/${P}-ocaml_install.patch
+ epatch "${FILESDIR}"/${P}-PPC_macro.patch
+ epatch "${FILESDIR}"/${P}-gold_LTO_link.patch
+ epatch "${FILESDIR}"/${P}-set_soname.patch
+}
+
+src_configure() {
+ local CONF_FLAGS="--enable-shared
+ --with-optimize-option=
+ $(use_enable !debug optimized)
+ $(use_enable debug assertions)
+ $(use_enable debug expensive-checks)"
+
+ if use multitarget; then
+ CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
+ else
+ CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
+ fi
+
+ if use amd64; then
+ CONF_FLAGS="${CONF_FLAGS} --enable-pic"
+ fi
+
+ if use gold; then
+ CONF_FLAGS="${CONF_FLAGS} --with-binutils-include=${EPREFIX}/usr/include/"
+ fi
+ if use ocaml; then
+ CONF_FLAGS="${CONF_FLAGS} --enable-bindings=ocaml"
+ else
+ CONF_FLAGS="${CONF_FLAGS} --enable-bindings=none"
+ fi
+
+ if use udis86; then
+ CONF_FLAGS="${CONF_FLAGS} --with-udis86"
+ fi
+
+ if use libffi; then
+ append-cppflags "$(pkg-config --cflags libffi)"
+ fi
+ CONF_FLAGS="${CONF_FLAGS} $(use_enable libffi)"
+ econf ${CONF_FLAGS} || die "econf failed"
+}
+
+src_compile() {
+ emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 || die "emake failed"
+}
+
+src_install() {
+ emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles/syntax
+ doins utils/vim/*.vim
+ 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=
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ for lib in lib{EnhancedDisassembly,LLVM-${PV},LTO,profile_rt}.dylib {BugpointPasses,LLVMHello}.dylib ; do
+ # libEnhancedDisassembly is Darwin10 only, so non-fatal
+ [[ -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}/libLTO.dylib ; do
+ odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${PV}.dylib)
+ ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
+ install_name_tool \
+ -change "${odylib}" \
+ "${EPREFIX}"/usr/lib/${PN}/libLLVM-${PV}.dylib \
+ "${f}"
+ eend $?
+ done
+ fi
+}