public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sergei Trofimovich" <slyfox@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/include-what-you-use/
Date: Sat, 29 Jul 2017 17:34:45 +0000 (UTC)	[thread overview]
Message-ID: <1501349681.c3759ec007c6cda0a7c1100247d455f33a2a1314.slyfox@gentoo> (raw)

commit:     c3759ec007c6cda0a7c1100247d455f33a2a1314
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 29 17:34:08 2017 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> 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 <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

 .../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
+}


             reply	other threads:[~2017-07-29 17:34 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-29 17:34 Sergei Trofimovich [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-09-25 18:04 [gentoo-commits] repo/gentoo:master commit in: dev-util/include-what-you-use/ Florian Schmaus
2025-09-25 18:04 Florian Schmaus
2025-03-19  0:51 Sam James
2024-12-16  8:48 Florian Schmaus
2024-12-16  8:48 Florian Schmaus
2024-12-13 21:06 Florian Schmaus
2024-12-13 20:07 Florian Schmaus
2024-12-08 20:50 Arthur Zamarin
2024-11-15 20:35 Florian Schmaus
2024-11-15 20:35 Florian Schmaus
2024-10-03 10:00 Sam James
2024-08-22  9:33 Florian Schmaus
2024-03-18 15:10 Florian Schmaus
2024-03-06 20:17 Florian Schmaus
2024-03-06 20:17 Florian Schmaus
2023-12-10 19:44 Florian Schmaus
2023-12-10 19:12 Florian Schmaus
2023-06-25 15:23 Florian Schmaus
2023-05-01 10:36 Florian Schmaus
2023-04-28  6:09 Florian Schmaus
2023-04-25 20:57 Sam James
2022-12-24 13:14 Andreas Sturmlechner
2022-11-30  9:39 Florian Schmaus
2022-11-04  9:10 Florian Schmaus
2022-07-04 14:05 Florian Schmaus
2022-04-08  8:29 Florian Schmaus
2022-04-08  8:26 Florian Schmaus
2022-01-07  9:38 Jakov Smolić
2021-12-06  8:32 Florian Schmaus
2021-11-21  9:47 Florian Schmaus
2021-11-21  9:47 Florian Schmaus
2021-11-21  9:47 Florian Schmaus
2021-08-18  9:10 Florian Schmaus
2021-07-30 11:35 Florian Schmaus
2021-07-02  7:17 Sergei Trofimovich
2021-05-25 21:10 Sergei Trofimovich
2021-05-15 13:58 Sergei Trofimovich
2021-02-25  7:49 Sergei Trofimovich
2020-11-26  8:38 Sergei Trofimovich
2020-11-22 16:37 Sergei Trofimovich
2020-11-10 23:49 Sergei Trofimovich
2020-06-20 19:49 Sergei Trofimovich
2020-05-24 23:30 Sergei Trofimovich
2020-05-07  9:36 Jason A. Donenfeld
2020-04-01 21:14 Sergei Trofimovich
2020-02-10 11:54 Michał Górny
2019-12-09 19:20 Michał Górny
2019-10-26 12:26 Sergei Trofimovich
2019-09-09 19:02 Michał Górny
2019-06-02  7:20 Michał Górny
2019-04-26 15:32 Sergei Trofimovich
2018-12-08 16:45 Sergei Trofimovich
2018-04-25 19:06 Sergei Trofimovich
2018-04-05 23:09 Sergei Trofimovich
2018-02-14 22:35 Sergei Trofimovich
2018-01-16 22:50 Sergei Trofimovich
2017-10-16  0:08 David Seifert
2017-07-19  8:27 Sergei Trofimovich
2017-07-04 21:56 Sergei Trofimovich
2017-06-03  8:27 Michał Górny
2016-11-05 20:21 Sergei Trofimovich
2016-05-17  7:29 Sergei Trofimovich
2016-05-13  7:50 Sergei Trofimovich
2016-05-13  7:41 Sergei Trofimovich
2016-03-02  8:47 David Seifert
2015-11-29 21:35 Sergei Trofimovich
2015-09-01 19:31 Tobias Klausmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1501349681.c3759ec007c6cda0a7c1100247d455f33a2a1314.slyfox@gentoo \
    --to=slyfox@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox