summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin15578 -> 15582 bytes
-rw-r--r--sys-libs/libblockdev/Manifest2
-rw-r--r--sys-libs/libblockdev/libblockdev-2.14-r1.ebuild2
-rw-r--r--sys-libs/musl/Manifest3
-rw-r--r--sys-libs/musl/musl-1.1.18-r1.ebuild118
-rw-r--r--sys-libs/musl/musl-9999.ebuild4
-rw-r--r--sys-libs/pam/Manifest4
-rw-r--r--sys-libs/pam/pam-1.2.1-r2.ebuild2
-rw-r--r--sys-libs/pam/pam-1.3.0-r2.ebuild2
-rw-r--r--sys-libs/tapi/Manifest7
-rw-r--r--sys-libs/tapi/files/objcmetadata-800.0.42.1-standalone.patch130
-rw-r--r--sys-libs/tapi/files/tapi-2.0.0-standalone.patch141
-rw-r--r--sys-libs/tapi/tapi-2.0.0.ebuild174
13 files changed, 580 insertions, 9 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index 09e21a304b15..110bf790fb4d 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest
index 8398d426ef58..fcebefaee4ff 100644
--- a/sys-libs/libblockdev/Manifest
+++ b/sys-libs/libblockdev/Manifest
@@ -1,5 +1,5 @@
DIST libblockdev-2.14-1.tar.gz 274241 BLAKE2B 64c4c2a298ed95ed24a79716ccef5930f4276faaca02acf883c386b85a662d3fa1dc6f30e00d99bd835832e3c65acb89b445eff6fb35f9090dc949efde737d1a SHA512 fb80e840ed2f247912da93a6cc0cb1846be73dcc16b917f5231f5d7a87eaa7b43d07d5b2110038dd783fefa7ef7df0893785a60079ed02567f1e08bfcbd82343
DIST libblockdev-2.15-1.tar.gz 279744 BLAKE2B caabeffdc2ee27bec63f0e799c632eab4e02867b866a83b03613e84567dbb0a5a6d8a59b4a34b9130b55a546bfa4a76b439bf901247da2d4d87b88b66c386ed6 SHA512 a58ee6ca75c0ee8706796afb6bf26334cc1716bb3ba9230f35c485643faf4921e70ff3a86ebb2be41b2d0177e68fdc0f8011e198e46d66aca9e9712a228c4ea3
-EBUILD libblockdev-2.14-r1.ebuild 1502 BLAKE2B a0e1bb2a8a16b9139ce8e69cdc0e5ce0f746f35a848b9364659445333261dd5cd14640661598158eb581dadfe06feeb5fc756c9e564d7f2be9ccf254996633b6 SHA512 2c1a23d3234ce4650b511f1fb25fca670d3058a0d359bb34ca65d4aa3fd9969a79ab7d47c4992871cf63b41e84b7a4e67e1b1ec1f380d64a12da33d64185feec
+EBUILD libblockdev-2.14-r1.ebuild 1501 BLAKE2B dab08cf1cc98f7d98406e740d06a085f16f09060c7875bbf07313e3a7b10b470eb057a3253aa8f3ccc5811cfcd7e944b26d4fbf21241b424a815b4b88be06596 SHA512 d87fca651c39b93f647bd50d40488a286e0d555a4db1e271303bd4be8fd4f2e492ac12273f5e94c73853ce2e669442f93908f1c160be24e432ab953d565d04d3
EBUILD libblockdev-2.15-r1.ebuild 1504 BLAKE2B a41cea73019ccbe1344501666cded1058d9da0c53957c5697f4021cc2cd27f340d5b7cac5fbc55c7754430504d3f9efae165cebe89e7a69d5362adb456cd60b4 SHA512 9a730b4d003a0ba8094af864c3caf3b30c25bc3ce6d72d80f1de35654e609219ab1333086e7593816cbd10e290f1f86614c3fe05e5a11eeaffb3a58ce1de2a36
MISC metadata.xml 778 BLAKE2B 947d9ebb0bc42060edb67afe6a1deeaf674fb6be53e8e0f53ba782e01b71e76451eae9a374f949b43f9f7894d560d253cb1d3e19bf3661ea141a7cc995a349f7 SHA512 9cb1e613e6ea196921ad0d047334e70c5a11fe819796cac97ec9bb89f30221c58134f3cc90d24fde1f0d22af8290b8f507bc8145a3e2ca0957603cb6cada6436
diff --git a/sys-libs/libblockdev/libblockdev-2.14-r1.ebuild b/sys-libs/libblockdev/libblockdev-2.14-r1.ebuild
index 39dfa1e81fbe..5d796052da3f 100644
--- a/sys-libs/libblockdev/libblockdev-2.14-r1.ebuild
+++ b/sys-libs/libblockdev/libblockdev-2.14-r1.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://github.com/rhinstaller/libblockdev"
SRC_URI="https://github.com/rhinstaller/${PN}/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="LGPL-2+"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86"
+KEYWORDS="amd64 ~arm ~arm64 ia64 ~ppc ~ppc64 ~sparc x86"
IUSE="bcache +cryptsetup dmraid doc lvm kbd test"
CDEPEND="
diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest
index 285478f008b7..11ba284cda17 100644
--- a/sys-libs/musl/Manifest
+++ b/sys-libs/musl/Manifest
@@ -3,6 +3,7 @@ DIST getconf.c 11614 BLAKE2B ba49a573fc16d51780a0b0b81fbf7b64a1142f1dbad203c9609
DIST getent.c 9438 BLAKE2B dc20353583c10a001bd8fe8474f32b70254dc56da186d1cdbaf4081570c3d7a10497024da5815a485fc4728adc9eebd270aec99ba93b7546b38c728978e3e00b SHA512 b35de9847353b273516162ed4828a810c6130fc5b7de44ee4433003b3f99647b25792d9b1c40dfc67069add11f3fb850e5c35d4f1912dccac108059bbbdfd5a2
DIST iconv.c 2577 BLAKE2B 070ca87b30c90ab98c27d5faf7a2fcb64ff7c67ca212ee6072165b2146979c551f714954dbd465462a171837c59b6ea027e0206458a2df0f977e45f01be3ce48 SHA512 9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf
DIST musl-1.1.18.tar.gz 936274 BLAKE2B 981be737026eddb4527507ec9975531dba25d165b0b064076cc3a900bdf98c3d25ee130a3d615e4b9635ef3ffcc256bf00d21180eb8d04b61d9ec8b6bc531fb6 SHA512 4d55c92efe41dfdd9fff6aca5dda76a632a3be60d10e5a7f66a4731d8f7040fb0a20b998965ba4d069b4f8a3527fcd7388e646cb66afc649c4d0cc6c3d358c9c
+EBUILD musl-1.1.18-r1.ebuild 3099 BLAKE2B 9276b448d12043734ca17d60b731747868813976676ee6ad30cc818cbe50e3b4cd862c901ddeaf07f77957d61dd24f24977aeb1407e7621c60f31a16fab93cc7 SHA512 f6b766d6157eb4415dd8faebeb93f71e0d127d71396380b1372f5d324c32b85c23673d922d9e700c4154d92a06d6262a5cf2e95ecbd641360ff37679b430daa4
EBUILD musl-1.1.18.ebuild 3082 BLAKE2B ffc41a796597676ecddae84376909dca5cb96555a71edaa2d4e44ba20427f31cc1819ee8eb7b7cdcfc6721552019cb944bf93e25e07f54c021b8f58c9e44af7b SHA512 4e1d2fe1a2484b8af7d94388212aea5343591df09633e9382b5d389fc7695e2e38215f14b29fe98c027bb244a8ca8c8c798aa020701eab6d1a0a21e425efaddf
-EBUILD musl-9999.ebuild 3086 BLAKE2B fc772d8b5b84f2baa5fd727b85856e2c912f2b9076241c55b314b9c1dd382f827b38535c1911f317a96c563cf9e968eb48b9833667bb7a06c45d57d5c5e2dc64 SHA512 ca447c747b0e4e3a124323f2dfc2a91cbafa2613784f2e7814ea856a97232c0140352403189663d2dfaf3cbf32a72f3b6760b96e09ef572c73d1d31c333d9874
+EBUILD musl-9999.ebuild 3099 BLAKE2B 9276b448d12043734ca17d60b731747868813976676ee6ad30cc818cbe50e3b4cd862c901ddeaf07f77957d61dd24f24977aeb1407e7621c60f31a16fab93cc7 SHA512 f6b766d6157eb4415dd8faebeb93f71e0d127d71396380b1372f5d324c32b85c23673d922d9e700c4154d92a06d6262a5cf2e95ecbd641360ff37679b430daa4
MISC metadata.xml 452 BLAKE2B f6d26f456e1a1005b0103c6921d59504dcacddfaf9ec3c788f6f626df670ec7e979a8a66626d7de24d0b850651bf095610c191d520b67915a701bf8564189fc4 SHA512 676d8122179a5cb56e0b9c7aeb7f0aec8c19b5d7b604a19c9ee01aeca837a74cc4284e87cc743d0eaf527f0c79afdfeb1f238c204a8a6c1c5590b2718bbc9b03
diff --git a/sys-libs/musl/musl-1.1.18-r1.ebuild b/sys-libs/musl/musl-1.1.18-r1.ebuild
new file mode 100644
index 000000000000..c4a1c90aaf5a
--- /dev/null
+++ b/sys-libs/musl/musl-1.1.18-r1.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://git.musl-libc.org/musl"
+ inherit git-r3
+ SRC_URI="
+ https://dev.gentoo.org/~blueness/musl-misc/getconf.c
+ https://dev.gentoo.org/~blueness/musl-misc/getent.c
+ https://dev.gentoo.org/~blueness/musl-misc/iconv.c"
+ KEYWORDS=""
+else
+ SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz
+ https://dev.gentoo.org/~blueness/musl-misc/getconf.c
+ https://dev.gentoo.org/~blueness/musl-misc/getent.c
+ https://dev.gentoo.org/~blueness/musl-misc/iconv.c"
+ KEYWORDS="-* ~amd64 ~arm ~mips ~ppc ~x86"
+fi
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety"
+HOMEPAGE="http://www.musl-libc.org/"
+LICENSE="MIT LGPL-2 GPL-2"
+SLOT="0"
+IUSE="crosscompile_opts_headers-only"
+
+QA_SONAME="/usr/lib/libc.so"
+QA_DT_NEEDED="/usr/lib/libc.so"
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+just_headers() {
+ use crosscompile_opts_headers-only && is_crosscompile
+}
+
+pkg_setup() {
+ if [ ${CTARGET} == ${CHOST} ] ; then
+ case ${CHOST} in
+ *-musl*) ;;
+ *) die "Use sys-devel/crossdev to build a musl toolchain" ;;
+ esac
+ fi
+}
+
+src_configure() {
+ tc-getCC ${CTARGET}
+ just_headers && export CC=true
+
+ local sysroot
+ is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET}
+ ./configure \
+ --target=${CTARGET} \
+ --prefix=${sysroot}/usr \
+ --syslibdir=${sysroot}/lib \
+ --disable-gcc-wrapper || die
+}
+
+src_compile() {
+ emake obj/include/bits/alltypes.h
+ just_headers && return 0
+
+ emake
+ if [[ ${CATEGORY} != cross-* ]] ; then
+ $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getconf.c -o "${T}"/getconf || die
+ $(tc-getCC) ${CFLAGS} "${DISTDIR}"/getent.c -o "${T}"/getent || die
+ $(tc-getCC) ${CFLAGS} "${DISTDIR}"/iconv.c -o "${T}"/iconv || die
+ fi
+}
+
+src_install() {
+ local target="install"
+ just_headers && target="install-headers"
+ emake DESTDIR="${D}" ${target}
+ just_headers && return 0
+
+ # musl provides ldd via a sym link to its ld.so
+ local sysroot
+ is_crosscompile && sysroot=/usr/${CTARGET}
+ local ldso=$(basename "${ED}"${sysroot}/lib/ld-musl-*)
+ dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd
+
+ if [[ ${CATEGORY} != cross-* ]] ; then
+ local arch=$("${D}"usr/lib/libc.so 2>&1 | sed -n '1s/^musl libc (\(.*\))$/\1/p')
+ [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die
+ cp "${FILESDIR}"/ldconfig.in "${T}" || die
+ sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die
+ into /
+ dosbin "${T}"/ldconfig
+ into /usr
+ dobin "${T}"/getconf
+ dobin "${T}"/getent
+ dobin "${T}"/iconv
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die
+ doenvd "${T}"/00musl || die
+ fi
+}
+
+pkg_postinst() {
+ is_crosscompile && return 0
+
+ [ "${ROOT}" != "/" ] && return 0
+
+ ldconfig || die
+ # reload init ...
+ /sbin/telinit U 2>/dev/null
+}
diff --git a/sys-libs/musl/musl-9999.ebuild b/sys-libs/musl/musl-9999.ebuild
index 9e0e184d6562..c4a1c90aaf5a 100644
--- a/sys-libs/musl/musl-9999.ebuild
+++ b/sys-libs/musl/musl-9999.ebuild
@@ -59,7 +59,7 @@ src_configure() {
just_headers && export CC=true
local sysroot
- is_crosscompile && sysroot=/usr/${CTARGET}
+ is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET}
./configure \
--target=${CTARGET} \
--prefix=${sysroot}/usr \
@@ -88,7 +88,7 @@ src_install() {
# musl provides ldd via a sym link to its ld.so
local sysroot
is_crosscompile && sysroot=/usr/${CTARGET}
- local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*)
+ local ldso=$(basename "${ED}"${sysroot}/lib/ld-musl-*)
dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd
if [[ ${CATEGORY} != cross-* ]] ; then
diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest
index 5b69b47f328b..9523ec3eb2ae 100644
--- a/sys-libs/pam/Manifest
+++ b/sys-libs/pam/Manifest
@@ -2,6 +2,6 @@ DIST Linux-PAM-1.2.0-docs.tar.bz2 490586 BLAKE2B 1b4b6a7a2988f3f3e9f74edab9a4713
DIST Linux-PAM-1.2.1.tar.bz2 1279523 BLAKE2B 246f3742bcf1c6dc0fe0c3d203ec6262c59093b75170d1a376a6080540d638551bed2d7f6f193bb583c34f8fbc742d904dfc3e6f1776dc4479914485c6ce15d4 SHA512 4572aa1eaf5a1312410c74b5ed055b2592c5efe2bb82f59981da4e9e93555ad40aee3a89f446d9dc6c6af79efc04c33f739f66db9edc07e02479475a14e426da
DIST Linux-PAM-1.3.0-docs.tar.bz2 492805 BLAKE2B 1dd48f65ae76e0d4d2c02664f9a2adac127604a7552ff70c378323a0de8141445332430205946823097170edf217122196ea03ae665284751fed3748d9f8ac3d SHA512 b6b8497e6a4307b3f9a2af1c74456a0577b848cbc5417fb88fabe305b67ca022a6bcf632d68faaaacc701cdcf6254ec196707551a1ea70985cdde6add68bbbfe
DIST Linux-PAM-1.3.0.tar.bz2 1302820 BLAKE2B 0ed5553308e8bc4bef91746a1c79db41bf5f0a48a31796d5a13819387c0a04d553efa210435273ad8565d0a53f354817bc3e0f254e35a5e75b7b7b586cad5d16 SHA512 4a89ca4b6f4676107aca4018f7c11addf03495266b209cb11c913f8b5d191d9a1f72197715dcf2a69216b4036de88780bcbbb5a8652e386910d71ba1b6282e42
-EBUILD pam-1.2.1-r2.ebuild 6276 BLAKE2B b797e8ddcd6838861754d8fa60d35f4eb1f6997dc4945b53206bf75fd9fd6c0f883db9fc70d395a47bef792e9caa7a74f113919d17b1af096da6adec399c95ca SHA512 284415d23a27e861dc5a50e73ab45d3ad72fb4e8de522f0ccb866716ccd13ca6353814b33a866afc4cfe9b8fee574be7fdd8e7dc8dcc6ffb12fa51cfd8708474
-EBUILD pam-1.3.0-r2.ebuild 6038 BLAKE2B 7d578c5e57995c43f041960e26dd447c67b5c80c5b5d401baffc02bec9ad79dfbe341e7af8e1f4176729f234f54c68d69d18a7733b22d336bd7c6196c948378b SHA512 6cd044b70f2952441015db1f156b9a5b132b25f9d61e2c2bda92eced9b9867993476f9c09682dbe7c7c2ad2b2067f0f4baf224deeeb5cc49c3726016e67d1755
+EBUILD pam-1.2.1-r2.ebuild 6277 BLAKE2B 649df7fcec43ef08da5e1686d1fb1d032bd9bb6275a71754bc6f71c20fc552c85f040f5a5c079158e6b32c6a2e881b4d44481a4a489792a5392ecf38b1b1bc20 SHA512 152da590c3ba135e9ea7cfe16975888ff1dffc8a71cdfe2550c01f607e8e0c82038ecdc8518a9e801ff0589f97e5d494ffcacfbc7cdf95729df41460aa0e7495
+EBUILD pam-1.3.0-r2.ebuild 6039 BLAKE2B ac30ebb0f5fc728f7960b16819fc5cdb40081febd54f3b44c2e885ee894a6e4d53d1eb4824f426bfb722c5f19b20ac6306020af19b9e91bc0d8f2040984008fc SHA512 e8f6e7afb9bf3d76c91ac221e7b7e8a909f740b77efb07623c08035d02c3af6efdde7467e3bfd1d88c833f8440e12c682477a8b44968b65ba9c04dc5e9ad353b
MISC metadata.xml 1135 BLAKE2B 60f9755133a79fbab65834d70360b430c2e0ec097647d640ddbec0b74ee86fbba65eed8600c49386aa01d1a78d55dc3b47f58a97eb62572d2fabd6b18eb7868d SHA512 de2a617918085c4e6a7a1976447ed2c0bcdb8eb257d28351e095b29ea219382ce8964206ba0fcdefe9b69db9ab17a52556371cfbee3ed4d5c5293c8d21738d55
diff --git a/sys-libs/pam/pam-1.2.1-r2.ebuild b/sys-libs/pam/pam-1.2.1-r2.ebuild
index d8857d6f1434..9da0651bcd3d 100644
--- a/sys-libs/pam/pam-1.2.1-r2.ebuild
+++ b/sys-libs/pam/pam-1.2.1-r2.ebuild
@@ -16,7 +16,7 @@ SRC_URI="http://www.linux-pam.org/library/${MY_P}.tar.bz2
LICENSE="|| ( BSD GPL-2 )"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux"
-IUSE="audit berkdb cracklib debug nis nls +pie selinux test"
+IUSE="audit berkdb +cracklib debug nis nls +pie selinux test"
RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
cracklib? ( >=sys-libs/cracklib-2.9.1-r1[${MULTILIB_USEDEP}] )
diff --git a/sys-libs/pam/pam-1.3.0-r2.ebuild b/sys-libs/pam/pam-1.3.0-r2.ebuild
index ee426cd8d88b..bab9709b1fc1 100644
--- a/sys-libs/pam/pam-1.3.0-r2.ebuild
+++ b/sys-libs/pam/pam-1.3.0-r2.ebuild
@@ -16,7 +16,7 @@ SRC_URI="http://www.linux-pam.org/library/${MY_P}.tar.bz2
LICENSE="|| ( BSD GPL-2 )"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
-IUSE="audit berkdb cracklib debug nis nls +pie selinux test vim-syntax"
+IUSE="audit berkdb +cracklib debug nis nls +pie selinux test vim-syntax"
RDEPEND="
nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )
diff --git a/sys-libs/tapi/Manifest b/sys-libs/tapi/Manifest
index 5bfe441b6fa0..c7ff66b16ba2 100644
--- a/sys-libs/tapi/Manifest
+++ b/sys-libs/tapi/Manifest
@@ -1,7 +1,14 @@
+AUX objcmetadata-800.0.42.1-standalone.patch 4556 BLAKE2B 3b0c1d9f6cf55cdefdbe2df51f7dcdc29f8c95e73c3e209e9a0ef594059ac2f0ff8d96b67419723f994c7469319fee2f0dcdf20f9071dcf80df4c01f56c87656 SHA512 ba40d3e8ff2382835fcea2615ca1a19eb4279a1eac982bf6fbdceacb9fb4c99f8fdb7d30fc752002f4e95ea12b1775fa6dacdb24bbcdf97bc17cdf8f72bbfc0c
AUX tapi-1.30-allow-all-clients.patch 792 BLAKE2B c24ec4d99850cd3cf16dd20dbda9e15c8de6ad0426358495956e3fc35c04138ed27b5e6ed40831e817bd8b20521a91e0c0de3aa715b1c3fbde13daceb427f28c SHA512 08116c81611554ab8c07176d89762016f12a18d9b38fa47a541abc7c94194007d0cc1067e15abf25479ef0c10708ef8d37ef3c9234dbaaa294c372018a283be7
AUX tapi-1.30-llvm-config.patch 360 BLAKE2B e2c3fcc70b8f1bf92e080792233138ee600f06a83dc3b336ff50196ff28cfc0fef6521ba9e5bf8a42f36a42f381992bc219d145e22a4031614bf291cb2cc62cc SHA512 77958e021478299c7aba6a38a861de5c7602ae70d97a3bb008f8d0a456afb303d445244a19a7043d555f7669fcbac3eaa924e93d3e1753479748e29b33c7a34e
AUX tapi-1.30-llvm-new-error-api.patch 1714 BLAKE2B 48f1965e68d7da9f19d005dff527ec0bd3c0467418b4554298695751906982138a83ea0c3c3b797d65d53455d4a9739ac213508c2e2b042bc772b5ff03e328b1 SHA512 2fa31ea8ca320aeb78458c2ab88771ab7978da565dfe81aaaf22ff8d18c859379001dc226b4f4330b981e3c73195ef283af37a0db1142caaeb71052f6c3cf354
AUX tapi-1.30-llvm-out-of-tree.patch 368 BLAKE2B 4b1973b2fd3a24617ceed88ae2dd3fc24e5538089b167dd7e49dae892adf64e12c40422151911ed89e1383a029dc70c82b50a79c7c5d0cee02d98276eb595271 SHA512 51d3fb6148dc42108f144e35d57000b5ade9ec792860bf0d14a4d5e15a677184293d761bc36e9ea81e541849e9815f3c9d5bffca2ce92f160ff75697e145ea9c
+AUX tapi-2.0.0-standalone.patch 4698 BLAKE2B bd1b1531118e6305adb5e8368b1aabf9981dc840d1168b8fad9155444024bdf9e03c90b6830dea4291c35dfa8709d4369760874875797ea3510c5f783a930c31 SHA512 1b8add9defcc9fcbfd90f550763669e4c3acc4199b38df81a87eaeb3b137f5839b62f7679978c7a6f57af6512d936945e9992597475e05ab25737c7ffbc13390
+DIST cfe-5.0.1.src.tar.xz 11483036 BLAKE2B c4eb54cd8271b62cf7a2219db0b599b68c00b6e574d1946220efbd1633e841796e6717d6eeb35e84a6db32a731a3285b59cedeb3b1a8f3c3c502b799fdd0a720 SHA512 6619177a2ff9934fe8b15d6aa229abb8e34d0b1a75228d9efba9393daf71d6419a7256de57b31e2f9f829f71f842118556f996e86ee076f1e0a7cd394dfd31a2
+DIST clang-800.0.42.1.tar.gz 41165807 BLAKE2B 89e3ddc0268c2302f6679089648163a1b7457c3133f8f07de12c5980a66b6b7efdfa65966f5d9425ca20bd622cb1739bc009fe45edb4f0986ffd36af77a2480e SHA512 7fec6236996e4647043697f0f62d2eddb064a4604a7c64c11d2df2ff89aff95f4eb9fe1c2e604c0e276296927dd06b8a7794e0343bf0352cf65400dde40aab41
+DIST llvm-5.0.1.src.tar.xz 23428720 BLAKE2B 3db4d33df21018d17eef0042c0d8d82a8412bd5daa99cfb5405a6ec83c5774178fa76b220e8731c2a9a64dabf898aa90fe29c685327bd63a4f078e8e94a9a77e SHA512 bee1d45fca15ce725b1f2b1339b13eb6f750a3a321cfd099075477ec25835a8ca55b5366172c4aad46592dfd8afe372349ecf264f581463d017f9cee2d63c1cb
DIST tapi-1.30.tar.gz 29071 BLAKE2B e5eb4f2eea6500d4f06c490c8b7f70070fe2ba31579133b92c1d162c33afb3c422c2fba1249734a5749455185a4fc3d79b1eb00820387990cc65fe0fc69ac55a SHA512 fa495da150c6b6ff9e0bf667a9a06f0b932363297b75379fd59a5c728168a3ac103a656d1a59fa1b0c0012a18c9874439237bbf2a3c26f9bdf202b4d78e31520
+DIST tapi-2.0.0.tar.gz 195080 BLAKE2B 28c31f4cb119525edb1a755895d8a3a05c9a606610fbf0c135790c0caf85a26d3b7e7fbbf856d001c26641a755e0d836f2f697a5856153d9dfc7c258e28427a1 SHA512 fc7209556ff75285a99ce64225831d53f9d959f7d6d9562cbfe91b019591860a00196c93de2258bbdaba02301af38990557b7e241ad3f66d09eb9440f4edf5ab
EBUILD tapi-1.30.ebuild 962 BLAKE2B d7a26f4bbaf8e175e751d7af72d2c2cac19e9ba2dc7896aac6b081d4fdeeef5449df6fec766850b14c7d9d1fe8cd8930c7f400855987474aeb46470501c5bdd4 SHA512 edfd3a4f3277e517eb8fd09f4aa276d5ec5130b80296098dd906d3d5f0262302d7dc6c7857c5375de14a9f96a2ed04e4222e4f6275b824c4a1645cb070373e91
+EBUILD tapi-2.0.0.ebuild 5073 BLAKE2B 982e2235d7e3f71a21acc2b42e507fd2a5259bcb5dd17b63045266963a04387bd3e0b576f7baebb359db979fb9379118181774591998700a71c8c9afa545e157 SHA512 c441a14a648df39fd296a7ab49fd3ede38988612d79acca5004ad938ea2b1a567e3c195e0a28cd1129169544b8c21497e84a83a770f4b2dbc318979ec06d8554
MISC metadata.xml 247 BLAKE2B 5589fe7154425e3eb144170de1f3a024df3fd2b642731f4565abc21498d16dc424613cae78f8b30f0d4341bd9ed1712fdb3beec8d0436192d3d8612c7db9b7c4 SHA512 ae91bc559b2380b04af0bacbaf419deb042e9a9235c596c1afdbbb3933e59ba4f895c6e7ebf8fa4884702d5b39febedfdcce109ab912d6ef4f51b3696bc82c18
diff --git a/sys-libs/tapi/files/objcmetadata-800.0.42.1-standalone.patch b/sys-libs/tapi/files/objcmetadata-800.0.42.1-standalone.patch
new file mode 100644
index 000000000000..71ca24f1beb2
--- /dev/null
+++ b/sys-libs/tapi/files/objcmetadata-800.0.42.1-standalone.patch
@@ -0,0 +1,130 @@
+Provide standalone cmake project file that allows compilation outside the LLVM
+source tree and installs the headers as well.
+
+Tune other CMakeLists for out-of-tree build.
+
+Provide missing isDynamic() method for Objective C properties. (Best-guess
+implementation based on
+https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html
+and llvm-objdump -m -objc-meta-data output). Does not seem to be used anywhere
+anyways - but the control flow of the code is somewhat encrypted.
+
+Adjust to some minor API differencies between Apple clang 8.0.0 and upstream
+LLVM 5.0.1.
+
+--- objcmetadata-800.0.42.1/CMakeLists.txt.orig 2017-12-25 22:23:41.000000000 +0100
++++ objcmetadata-800.0.42.1/CMakeLists.txt 2017-12-25 20:54:39.000000000 +0100
+@@ -0,0 +1,25 @@
++cmake_minimum_required(VERSION 3.4.3)
++project(ObjCMetadata)
++
++find_package(LLVM REQUIRED CONFIG)
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
++include(AddLLVM)
++
++include_directories(${LLVM_INCLUDE_DIRS})
++link_directories(${LLVM_LIBRARY_DIRS})
++add_definitions(${LLVM_DEFINITIONS})
++set(LLVM_COMMON_LIBS Object Support Analysis Core)
++
++include_directories(BEFORE
++ ${CMAKE_CURRENT_BINARY_DIR}/include
++ ${CMAKE_CURRENT_SOURCE_DIR}/include
++ )
++
++install(FILES
++ include/llvm/${PROJECT_NAME}/ObjCBitcode.h
++ include/llvm/${PROJECT_NAME}/ObjCMachOBinary.h
++ include/llvm/${PROJECT_NAME}/ObjCMetadata.h
++ DESTINATION include/llvm/${PROJECT_NAME}
++ )
++
++add_subdirectory(lib/${PROJECT_NAME})
+--- objcmetadata-800.0.42.1/include/llvm/ObjCMetadata/ObjCMetadata.h.orig 2017-12-25 20:09:28.000000000 +0100
++++ objcmetadata-800.0.42.1/include/llvm/ObjCMetadata/ObjCMetadata.h 2017-12-25 20:10:11.000000000 +0100
+@@ -110,6 +110,7 @@
+ // Return empty string if doesn't exists.
+ Expected<std::string> getGetter() const;
+ Expected<std::string> getSetter() const;
++ Expected<bool> isDynamic() const;
+ };
+
+ class ObjCMethod : public ObjCInfoBase {
+--- objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCMetadata.cpp.orig 2017-12-25 20:09:11.000000000 +0100
++++ objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCMetadata.cpp 2017-12-25 20:13:33.000000000 +0100
+@@ -164,6 +164,20 @@
+ return setter;
+ }
+
++Expected<bool> ObjCProperty::isDynamic() const {
++ auto Attr = getAttribute();
++ if (!Attr)
++ return Attr.takeError();
++ // Find setter attribute.
++ SmallVector<StringRef, 4> Attrs;
++ Attr->split(Attrs, ',');
++ for (auto a : Attrs) {
++ if (a == "D")
++ return true;
++ }
++ return false;
++}
++
+ Expected<StringRef> ObjCMethod::getName() const {
+ return MetadataReader->getMethodName(*this);
+ }
+--- objcmetadata-800.0.42.1/lib/ObjCMetadata/CMakeLists.txt.orig 2017-12-25 17:29:01.000000000 +0100
++++ objcmetadata-800.0.42.1/lib/ObjCMetadata/CMakeLists.txt 2017-12-25 20:59:31.000000000 +0100
+@@ -1,3 +1,10 @@
++set(LLVM_LINK_COMPONENTS
++ Object
++ Support
++ Analysis
++ Core
++)
++
+ add_llvm_library(LLVMObjCMetadata
+ ObjCBitcode.cpp
+ ObjCMetadata.cpp
+@@ -5,7 +12,4 @@
+
+ ADDITIONAL_HEADER_DIRS
+ ${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCMetadata
+-
+- DEPENDS
+- intrinsics_gen
+ )
+--- objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCBitcode.cpp.orig 2017-12-25 17:14:29.000000000 +0100
++++ objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCBitcode.cpp 2017-12-25 17:17:51.000000000 +0100
+@@ -20,7 +20,7 @@
+ #include "llvm/IR/GlobalAlias.h"
+ #include "llvm/IR/GlobalVariable.h"
+ #include "llvm/IR/Operator.h"
+-#include "llvm/Support/Error.h"
++#include "llvm/Object/Error.h"
+
+ #include "macho-obj.h"
+
+@@ -75,7 +75,7 @@
+ Operator::getOpcode(V) == Instruction::AddrSpaceCast) {
+ V = cast<Operator>(V)->getOperand(0);
+ } else if (GlobalAlias *GA = dyn_cast<GlobalAlias>(V)) {
+- if (GA->mayBeOverridden())
++ if (GA->isInterposable())
+ return V;
+ V = GA->getAliasee();
+ } else if (PtrToIntOperator *PTI = dyn_cast<PtrToIntOperator>(V)) {
+--- objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCMachOBinary.cpp.orig 2017-12-25 17:24:23.000000000 +0100
++++ objcmetadata-800.0.42.1/lib/ObjCMetadata/ObjCMachOBinary.cpp 2017-12-25 17:27:15.000000000 +0100
+@@ -1262,9 +1262,9 @@
+ const char *SymbolName = nullptr;
+ if (reloc_found && isExtern) {
+ offset = Symbol.getValue();
+- ErrorOr<StringRef> NameOrError = Symbol.getName();
++ Expected<StringRef> NameOrError = Symbol.getName();
+ if (!NameOrError) {
+- return errorOrToExpected(std::move(NameOrError));
++ return NameOrError;
+ }
+ StringRef Name = *NameOrError;
+ if (!Name.empty()) {
diff --git a/sys-libs/tapi/files/tapi-2.0.0-standalone.patch b/sys-libs/tapi/files/tapi-2.0.0-standalone.patch
new file mode 100644
index 000000000000..77bc56331dfb
--- /dev/null
+++ b/sys-libs/tapi/files/tapi-2.0.0-standalone.patch
@@ -0,0 +1,141 @@
+Tune CMakeLists for out-of-tree build.
+
+Adjust for API discrepancies between Apple clang-8.0.0 and upstream LLVM 5.0.1.
+
+Allow all clients to link against the library, not just ld. Main reason: Our ld
+is called ld64 when we link it.
+
+--- tapi-2.0.0/tools/tapi/CMakeLists.txt.orig 2017-12-25 22:36:06.620886714 +0100
++++ tapi-2.0.0/tools/tapi/CMakeLists.txt 2017-12-25 22:41:43.867893060 +0100
+@@ -6,6 +6,12 @@
+
+ target_link_libraries(tapi
+ tapiDriver
++ clangAST
++ clangFrontend
++ LLVMOption
++ LLVMDemangle
++ LLVMSupport
++ LLVMCore
+ )
+
+ if (TAPI_BUILD_LIBIOSSDK)
+--- tapi-2.0.0/tools/libtapi/CMakeLists.txt.orig 2017-12-25 22:26:06.816905789 +0100
++++ tapi-2.0.0/tools/libtapi/CMakeLists.txt 2017-12-25 22:31:22.914862289 +0100
+@@ -1,4 +1,7 @@
+ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libtapi.exports)
++set(LLVM_LINK_COMPONENTS
++ Support
++ )
+
+ add_tapi_library(libtapi
+ SHARED
+@@ -19,5 +22,5 @@
+
+ set_property(TARGET libtapi APPEND_STRING
+ PROPERTY
+- LINK_FLAGS " -current_version ${TAPI_FULL_VERSION} -compatibility_version 1 -allowable_client ld"
++ LINK_FLAGS " -current_version ${TAPI_FULL_VERSION} -compatibility_version 1"
+ )
+--- tapi-2.0.0/tools/tapi-run/CMakeLists.txt.orig 2017-12-26 15:12:39.605057352 +0100
++++ tapi-2.0.0/tools/tapi-run/CMakeLists.txt 2017-12-26 15:15:53.304983942 +0100
+@@ -5,6 +5,8 @@
+ target_link_libraries(tapi-run
+ tapiCore
+ libtapi
++ LLVMSupport
++ LLVMCore
+ )
+
+ set_property(TARGET tapi-run APPEND_STRING
+--- tapi-2.0.0/CMakeLists.txt.orig 2017-12-24 15:27:56.000000000 +0100
++++ tapi-2.0.0/CMakeLists.txt 2017-12-26 15:50:01.199506782 +0100
+@@ -4,6 +4,24 @@
+ message(FATAL_ERROR "Unsupported configuration.")
+ endif()
+
++project(tapi)
++set(PACKAGE_VENDOR Apple CACHE STRING "")
++add_definitions(-DTAPI_BUG_REPORT_URL="https://bugs.gentoo.org/")
++
++find_package(LLVM REQUIRED CONFIG)
++set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
++include(AddLLVM)
++
++add_definitions(${LLVM_DEFINITIONS})
++include_directories(${LLVM_INCLUDE_DIRS} ${OBJCMETADATA_INCLUDE_DIRS})
++link_directories(${LLVM_LIBRARY_DIRS} ${OBJCMETADATA_LIBRARY_DIRS})
++
++# make tblgen happy
++include(TableGen)
++foreach(IPATH ${LLVM_INCLUDE_DIRS})
++ list(APPEND LLVM_TABLEGEN_FLAGS -I ${IPATH})
++endforeach(IPATH)
++
+ set(TAPI_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+ set(TAPI_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
+
+--- tapi-2.0.0/lib/Core/MachODylibReader.cpp.orig 2017-12-24 15:27:56.000000000 +0100
++++ tapi-2.0.0/lib/Core/MachODylibReader.cpp 2017-12-25 22:15:53.075478606 +0100
+@@ -254,8 +254,7 @@
+ auto arch = getArchType(H.cputype, H.cpusubtype);
+ assert(arch != Architecture::unknown && "unknown architecture slice");
+
+- Error error = Error::success();
+- for (const auto &symbol : object->exports(error)) {
++ for (const auto &symbol : object->exports()) {
+ StringRef name;
+ XPIKind kind;
+ std::tie(name, kind) = parseSymbol(symbol.name());
+@@ -272,7 +271,7 @@
+ file->addSymbol(kind, name, arch, flags);
+ }
+
+- return error;
++ return Error::success();
+ }
+
+ static Error readUndefinedSymbols(MachOObjectFile *object,
+@@ -309,10 +308,7 @@
+ auto H = object->getHeader();
+ auto arch = getArchType(H.cputype, H.cpusubtype);
+
+- auto error = Error::success();
+- MachOMetadata metadata(object, error);
+- if (error)
+- return std::move(error);
++ MachOMetadata metadata(object);
+
+ ///
+ /// Classes
+--- tapi-2.0.0/lib/Driver/Snapshot.cpp.orig 2017-12-24 15:27:56.000000000 +0100
++++ tapi-2.0.0/lib/Driver/Snapshot.cpp 2017-12-26 15:49:09.864184826 +0100
+@@ -14,7 +14,7 @@
+ #include "tapi/Defines.h"
+ #include "clang/Frontend/FrontendOptions.h"
+ #include "llvm/ADT/ArrayRef.h"
+-#include "llvm/Config/config.h"
++#include "llvm/Config/llvm-config.h"
+ #include "llvm/Support/FileSystem.h"
+ #include "llvm/Support/raw_ostream.h"
+ #include "llvm/Support/xxhash.h"
+@@ -356,7 +356,7 @@
+ }
+
+ if (isCrash) {
+- outs() << "PLEASE submit a bug report to " BUG_REPORT_URL
++ outs() << "PLEASE submit a bug report to " TAPI_BUG_REPORT_URL
+ " and include the "
+ "crash backtrace and snapshot.\n\n"
+ "********************************************************\n\n"
+--- tapi-2.0.0/lib/Driver/Options.cpp.orig 2017-12-25 22:17:40.506874748 +0100
++++ tapi-2.0.0/lib/Driver/Options.cpp 2017-12-25 22:18:04.181989766 +0100
+@@ -1023,7 +1023,7 @@
+ table->PrintHelp(
+ outs(),
+ (programName + " " + getNameFromTAPICommand(command)).str().c_str(),
+- toolName, /*FlagsToInclude=*/getIncludeOptionFlagMasks(command),
++ toolName, /*FlagsToInclude=*///getIncludeOptionFlagMasks(command),
+ /*FlagsToExclude=*/0, /*ShowAllAliases=*/false);
+ }
+
diff --git a/sys-libs/tapi/tapi-2.0.0.ebuild b/sys-libs/tapi/tapi-2.0.0.ebuild
new file mode 100644
index 000000000000..a789277cf7a0
--- /dev/null
+++ b/sys-libs/tapi/tapi-2.0.0.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+
+inherit cmake-utils llvm
+
+# This is a hog: We need to carve ObjCMetadata out of Apple's clang. We also
+# need llvm-tblgen and clang-tblgen because tapi uses them to generate some
+# source. It's assumed that they're only ever needed when building LLVM and
+# clang. So they don't get installed in the system and we need to compile them
+# fresh from LLVM and clang sources. And finally we need an installed LLVM and
+# clang to build tapi against.
+
+LLVM_PV=5.0.1
+LLVM_PN=llvm
+LLVM_P=${LLVM_PN}-${LLVM_PV}
+
+CLANG_PN=cfe
+CLANG_P=${CLANG_PN}-${LLVM_PV}
+
+APPLE_LLVM_PV=800.0.42.1
+APPLE_LLVM_PN=clang
+APPLE_LLVM_P=${APPLE_LLVM_PN}-${APPLE_LLVM_PV}
+
+OBJCMD_PN=objcmetadata
+OBJCMD_P=${OBJCMD_PN}-${APPLE_LLVM_PV}
+
+DESCRIPTION="Text-based Application Programming Interface"
+HOMEPAGE="https://opensource.apple.com/source/tapi"
+SRC_URI="https://opensource.apple.com/tarballs/clang/${APPLE_LLVM_P}.tar.gz
+ http://releases.llvm.org/${LLVM_PV}/${LLVM_P}.src.tar.xz
+ http://releases.llvm.org/${LLVM_PV}/${CLANG_P}.src.tar.xz"
+
+if [[ ${PV} == 9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/ributzka/tapi.git"
+ TAPI_P=${P}
+ inherit git-r3
+else
+ TAPI_COMMIT=b9205695b4edee91000383695be8de5ba8e0db41
+ SRC_URI+=" https://github.com/ributzka/${PN}/archive/${TAPI_COMMIT}.tar.gz -> ${P}.tar.gz"
+ TAPI_P=${PN}-${TAPI_COMMIT}
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~x64-macos ~x86-macos"
+
+DEPEND="sys-devel/llvm:=
+ sys-devel/clang:="
+RDEPEND="${DEPEND}"
+
+DOCS=( Readme.md )
+
+LLVM_S="${WORKDIR}"/${LLVM_P}.src
+LLVM_BUILD="${WORKDIR}"/${LLVM_P}_build
+
+CLANG_S="${WORKDIR}"/${CLANG_P}.src
+
+APPLE_LLVM_S="${WORKDIR}/${APPLE_LLVM_P}"/src
+
+S="${WORKDIR}"/${TAPI_P}
+
+TAPI_BUILD="${WORKDIR}"/${P}_build
+
+OBJCMD_S="${WORKDIR}"/${OBJCMD_P}
+OBJCMD_BUILD="${WORKDIR}"/${OBJCMD_P}_build
+# put temporary install root into tapi build dir so that it does not end up on
+# libtapi's rpath
+OBJCMD_ROOT="${TAPI_BUILD}"/${OBJCMD_PN}_root
+
+src_prepare() {
+ # carve ObjCMetadata out of llvm and make it stand on its own
+ mkdir -p "${OBJCMD_S}"/{include/llvm,lib} || die
+ cd ${OBJCMD_S} || die
+ cp -r ${APPLE_LLVM_S}/include/llvm/ObjCMetadata include/llvm || die
+ cp -r ${APPLE_LLVM_S}/lib/ObjCMetadata lib || die
+ eapply "${FILESDIR}"/${OBJCMD_PN}-800.0.42.1-standalone.patch
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_prepare
+
+ cd "${LLVM_S}" || die
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_prepare
+
+ cd "${S}" || die
+ eapply "${FILESDIR}"/${PN}-2.0.0-standalone.patch
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ # configure LLVM and clang for tablegen build
+ local mycmakeargs=(
+ # shared libs cause all kinds of problems and we don't need them just
+ # to run tblgen a couple of times
+ -DBUILD_SHARED_LIBS=OFF
+ # configure less targets to speed up configuration. We don't build them
+ # anyway.
+ -DLLVM_TARGETS_TO_BUILD=X86
+ -DLLVM_EXTERNAL_PROJECTS=clang
+ -DLLVM_EXTERNAL_CLANG_SOURCE_DIR=${CLANG_S}
+ )
+
+ cd "${LLVM_S}" || die
+ BUILD_DIR="${LLVM_BUILD}" \
+ CMAKE_USE_DIR="${PWD}" \
+ CMAKE_BUILD_TYPE=RelWithDebInfo \
+ cmake-utils_src_configure
+
+ local llvm_prefix=$(get_llvm_prefix)
+
+ # configure ObjCMetadata
+ local mycmakeargs=(
+ # fails to compile without -std=c++11
+ -DCMAKE_CXX_STANDARD=11
+ # compile against currently installed LLVM
+ -DLLVM_DIR="${llvm_prefix}/lib/cmake/llvm"
+ # install into temporary root in work dir just so we can compile and
+ # link against it. Static lib will be pulled into libtapi and tools.
+ -DCMAKE_INSTALL_PREFIX="${OBJCMD_ROOT}"
+ )
+
+ cd "${OBJCMD_S}" || die
+ BUILD_DIR="${OBJCMD_BUILD}" \
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_configure
+
+ # configure tapi
+ local mycmakeargs=(
+ # fails to compile without -std=c++11
+ -DCMAKE_CXX_STANDARD=11
+ # compile against currently installed LLVM
+ -DLLVM_DIR="${llvm_prefix}"/lib/cmake/llvm
+ # use tblgens from LLVM build directory directly. They generate source
+ # from description files. Therefore it shouldn't matter if they
+ # match up with the installed LLVM.
+ -DLLVM_TABLEGEN_EXE="${LLVM_BUILD}"/bin/llvm-tblgen
+ -DCLANG_TABLEGEN_EXE="${LLVM_BUILD}"/bin/clang-tblgen
+ # pull in includes and libs from ObjCMetadata's temporary install root
+ -DOBJCMETADATA_INCLUDE_DIRS="${OBJCMD_ROOT}"/include
+ -DOBJCMETADATA_LIBRARY_DIRS="${OBJCMD_ROOT}"/lib
+ )
+
+ cd "${S}" || die
+ BUILD_DIR="${TAPI_BUILD}/" \
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ # build LLVM and clang tablegen
+ cd "${LLVM_S}" || die
+ BUILD_DIR="${LLVM_BUILD}" \
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_compile llvm-tblgen clang-tblgen
+
+ # build ObjCMetadata
+ cd "${OBJCMD_S}" || die
+ BUILD_DIR="${OBJCMD_BUILD}" \
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_compile
+ # install into temporary root in work dir
+ cd "${OBJCMD_BUILD}" || die
+ ${CMAKE_MAKEFILE_GENERATOR} install
+
+ # finally build tapi
+ cd "${S}" || die
+ BUILD_DIR="${TAPI_BUILD}" \
+ CMAKE_USE_DIR="${PWD}" \
+ cmake-utils_src_compile
+}