sys-libs/binutils-libs: new package #528088
authorMike Frysinger <vapier@gentoo.org>
Sat, 26 Sep 2015 17:44:00 +0000 (13:44 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 26 Sep 2015 18:15:08 +0000 (14:15 -0400)
Since packages want to link against binutils libs (bfd/opcodes) and
properly track updates when the binutils SONAMEs change, split the
libs out into a dedicated package.  This way we can continue with
the multi-SLOT-ed binutils package w/out making the library users
go crazy.

sys-libs/binutils-libs/Manifest [new file with mode: 0644]
sys-libs/binutils-libs/binutils-libs-2.25.1.ebuild [new file with mode: 0644]
sys-libs/binutils-libs/metadata.xml [new file with mode: 0644]

diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest
new file mode 100644 (file)
index 0000000..6dc0601
--- /dev/null
@@ -0,0 +1,2 @@
+DIST binutils-2.25.1-patches-1.1.tar.xz 18724 SHA256 3d4c0ab2d45d3a952f60246fa5a4353f057c03110130b50e3b2103bd49c345fa SHA512 209c55bf26b51d8c513b40abd2d95f687159c4e964a6c732924f277d04c97323c427fe452c63d5ec6962dcd8892d6d5d807ba88826739425bce6812a31f573dd WHIRLPOOL 2b650af352183d2b58abaee955b223606d63bd5f22a73360e79af1d3b575c5ea385f90be92348ec850534d96f7b6632b1e494f314ec1655eedc26108e849aab7
+DIST binutils-2.25.1.tar.bz2 24163561 SHA256 b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22 SHA512 0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d WHIRLPOOL daa804331ee880296c2fe29fd9b8a52cc695629d4bbe0b9889d96ffc54d330f00fac3f3cb12b3aaf6b7505521ef499c53760912cd7c9bb54f2d5e288224bd1eb
diff --git a/sys-libs/binutils-libs/binutils-libs-2.25.1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.25.1.ebuild
new file mode 100644 (file)
index 0000000..9faa28d
--- /dev/null
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PATCHVER="1.1"
+
+inherit eutils
+
+MY_PN="binutils"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages"
+HOMEPAGE="https://sourceware.org/binutils/"
+SRC_URI="mirror://gnu/binutils/${MY_P}.tar.bz2
+       mirror://gentoo/${MY_P}-patches-${PATCHVER}.tar.xz"
+
+LICENSE="|| ( GPL-3 LGPL-3 )"
+# The shared lib SONAMEs use the ${PV} in them.
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd -sparc-fbsd ~x86-fbsd"
+IUSE="nls static-libs zlib"
+
+COMMON_DEPEND="zlib? ( sys-libs/zlib )"
+DEPEND="${COMMON_DEPEND}
+       nls? ( sys-devel/gettext )"
+# Need a newer binutils-config that'll reset include/lib symlinks for us.
+RDEPEND="${COMMON_DEPEND}
+       >=sys-devel/binutils-config-5
+       nls? ( !<sys-devel/gdb-7.10-r1[nls] )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+       EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
+}
+
+pkgversion() {
+       printf "Gentoo ${PVR}"
+       [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}"
+}
+
+src_configure() {
+       local myconf=(
+               $(use_with zlib)
+               --enable-obsolete
+               --enable-shared
+               --enable-threads
+               # Newer versions (>=2.24) make this an explicit option. #497268
+               --enable-install-libiberty
+               --disable-werror
+               --with-bugurl="https://bugs.gentoo.org/"
+               --with-pkgversion="$(pkgversion)"
+               $(use_enable static-libs static)
+               # We only care about the libs, so disable programs. #528088
+               --disable-{binutils,etc,ld,gas,gold,gprof}
+               # Disable modules that are in a combined binutils/gdb tree. #490566
+               --disable-{gdb,libdecnumber,readline,sim}
+               # Strip out broken static link flags.
+               # https://gcc.gnu.org/PR56750
+               --without-stage1-ldflags
+       )
+
+       use nls \
+               && myconf+=( --without-included-gettext ) \
+               || myconf+=( --disable-nls )
+
+       econf "${myconf[@]}"
+}
+
+src_install() {
+       default
+       use static-libs || find "${ED}"/usr -name '*.la' -delete
+       # Provide libiberty.h directly.
+       dosym libiberty/libiberty.h /usr/include/libiberty.h
+}
diff --git a/sys-libs/binutils-libs/metadata.xml b/sys-libs/binutils-libs/metadata.xml
new file mode 100644 (file)
index 0000000..e9755a1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>toolchain</herd>
+<upstream>
+       <remote-id type="cpe">cpe:/a:gnu:binutils</remote-id>
+</upstream>
+</pkgmetadata>