From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3EFAC139694 for ; Sat, 29 Jul 2017 17:34:50 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 7504D1FC054; Sat, 29 Jul 2017 17:34:49 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3D0C41FC054 for ; Sat, 29 Jul 2017 17:34:49 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 12175341A83 for ; Sat, 29 Jul 2017 17:34:47 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 830E174C2 for ; Sat, 29 Jul 2017 17:34:45 +0000 (UTC) From: "Sergei Trofimovich" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sergei Trofimovich" Message-ID: <1501349681.c3759ec007c6cda0a7c1100247d455f33a2a1314.slyfox@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/include-what-you-use/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild X-VCS-Directories: dev-util/include-what-you-use/ X-VCS-Committer: slyfox X-VCS-Committer-Name: Sergei Trofimovich X-VCS-Revision: c3759ec007c6cda0a7c1100247d455f33a2a1314 X-VCS-Branch: master Date: Sat, 29 Jul 2017 17:34:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 6068c492-b450-47b7-813c-bb86d1dd364c X-Archives-Hash: 87f5a1fbe0a4dc089205c17e1e13de04 commit: c3759ec007c6cda0a7c1100247d455f33a2a1314 Author: Sergei Trofimovich gentoo org> AuthorDate: Sat Jul 29 17:34:08 2017 +0000 Commit: Sergei Trofimovich gentoo org> CommitDate: Sat Jul 29 17:34:41 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3759ec0 dev-util/include-what-you-use: worjaround lookup failure, bug #625972 libclangDriver treats path to include files as stable relative to clang binary: when we run /usr/lib64/llvm/4/bin/clang it resolves the following way: "/usr/lib64/llvm/4/bin/" + "../../../../lib/clang/4.0.1/include/stddef.h" Unfortunately when someone reuses clang driver to build a new tool heared lookup breaks if final tool resides in "/usr/bin": "/usr/bin/" + "../../../../lib/clang/4.0.1/include/stddef.h" causing file open failures in case of include-what-you-use: /usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found # include ^~~~~~~~~~ The workaround is to install executable to the same directory as clang itself. Reported-by: MichaƂ Bartoszkiewicz Bug: https://bugs.gentoo.org/625972 Package-Manager: Portage-2.3.6, Repoman-2.3.3 .../include-what-you-use-4.0-r1.ebuild | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild b/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild new file mode 100644 index 00000000000..4876be74098 --- /dev/null +++ b/dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit cmake-utils flag-o-matic llvm python-single-r1 + +DESCRIPTION="Find unused include directives in C/C++ programs" +HOMEPAGE="https://include-what-you-use.org/" +SRC_URI="https://github.com/${PN}/${PN}/archive/clang_${PV}.tar.gz -> ${P}.src.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND="sys-devel/llvm:4 + sys-devel/clang:4 + ${PYTHON_DEPS} +" +DEPEND="${RDEPEND}" + +REQUIRED_USE=${PYTHON_REQUIRED_USE} + +S=${WORKDIR}/${PN}-clang_${PV} + +pkg_setup() { + llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + python_fix_shebang . + default +} + +src_configure() { + local mycmakeargs=( + -DIWYU_LLVM_INCLUDE_PATH=$(llvm-config --includedir) + -DIWYU_LLVM_LIB_PATH=$(llvm-config --libdir) + + # Note [llvm install path] + # Unfortunately all binaries using clang driver + # have to reside at the same path depth as + # 'clang' binary itself. See bug #625972 + # Thus as a hack we install it to the same directory + # as llvm/clang itself. + -DCMAKE_INSTALL_PREFIX="$(get_llvm_prefix)" + ) + cmake-utils_src_configure +} + +src_test() { + "${EPYTHON}" run_iwyu_tests.py +}