diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-07-29 18:34:08 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-07-29 18:34:41 +0100 |
commit | c3759ec007c6cda0a7c1100247d455f33a2a1314 (patch) | |
tree | 5dbba3a6361006f556da77a7e0ee489e0ed48cc9 /dev-util/include-what-you-use | |
parent | app-office/projectlibre-bin: [QA] Move binary file to Gentoo mirrors. (diff) | |
download | gentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.tar.gz gentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.tar.bz2 gentoo-c3759ec007c6cda0a7c1100247d455f33a2a1314.zip |
dev-util/include-what-you-use: worjaround <stddef.h> 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
<stddef.h> 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 <stdarg.h>
^~~~~~~~~~
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
Diffstat (limited to 'dev-util/include-what-you-use')
-rw-r--r-- | dev-util/include-what-you-use/include-what-you-use-4.0-r1.ebuild | 56 |
1 files changed, 56 insertions, 0 deletions
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 000000000000..4876be740986 --- /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 +} |