diff options
author | Bernard Cafarelli <voyageur@gentoo.org> | 2012-03-27 08:06:03 +0000 |
---|---|---|
committer | Bernard Cafarelli <voyageur@gentoo.org> | 2012-03-27 08:06:03 +0000 |
commit | 49f47ad8a12e79340812e96bedab0707f86d0860 (patch) | |
tree | 5570ea467a8c8934888d9727e636a4e8181e6b16 /sys-devel | |
parent | Remove old versions from development branch (diff) | |
download | historical-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/ChangeLog | 8 | ||||
-rw-r--r-- | sys-devel/llvm/Manifest | 10 | ||||
-rw-r--r-- | sys-devel/llvm/files/llvm-3.0-set_soname.patch | 12 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.0-r2.ebuild | 173 |
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 +} |