chore(sys-devel/clang): import from portage

Change-Id: Icd69413de944e75b61cbefebcd68f1ded01eb92e
This commit is contained in:
Brandon Philips 2013-02-16 15:15:35 -08:00
parent 939475ee6e
commit 072d3a8f11
29 changed files with 3091 additions and 0 deletions

View File

@ -0,0 +1,434 @@
# ChangeLog for sys-devel/clang
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/ChangeLog,v 1.84 2013/02/02 23:28:27 mgorny Exp $
02 Feb 2013; Michał Górny <mgorny@gentoo.org> clang-3.2.ebuild,
clang-9999.ebuild:
Migrate to python-r1.
15 Jan 2013; Jeroen Roovers <jer@gentoo.org> metadata.xml:
Switch to UTF8.
11 Jan 2013; Richard Yao <ryao@gentoo.org> clang-3.2.ebuild:
Drop ~amd64-fbsd ~x64-freebsd keywords due to broken C++ support
03 Jan 2013; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9-r1.ebuild, clang-3.0-r4.ebuild, clang-3.1-r5.ebuild,
clang-3.2.ebuild, clang-9999.ebuild:
debug USE-flag needs to be in sync with llvm's one, thanks hasufell in bug
#448530
*clang-3.2 (21 Dec 2012)
21 Dec 2012; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.2_rc3.ebuild,
+clang-3.2.ebuild:
Bump to final version, remove release candidate
*clang-3.2_rc3 (07 Dec 2012)
07 Dec 2012; Bernard Cafarelli <voyageur@gentoo.org> +clang-3.2_rc3.ebuild,
-clang-3.2_rc2.ebuild:
RC bump
*clang-3.2_rc2 (03 Dec 2012)
03 Dec 2012; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.1-r1.ebuild,
-clang-3.1-r2.ebuild, -clang-3.1-r4.ebuild,
-files/clang-3.1-fix_cxx_include_root.patch,
-files/clang-3.1-gentoo-freebsd-fix-cxx-paths.patch,
-files/clang-3.1-gentoo-linux-fix-cxx-include.patch,
-files/clang-3.1-gentoo-runtime-gcc-detection.patch, +clang-3.2_rc2.ebuild,
clang-9999.ebuild:
Release candidate bump, sync changes in live ebuild, remove some 3.1
versions. Still need to fix the gentoo-freebsd-fix-cxx-paths patch
30 Aug 2012; Bernard Cafarelli <voyageur@gentoo.org>
-files/cl-patches/0001-Add-r600-TargetInfo.patch,
+files/cl-patches/clang-0001-Add-r600-TargetInfo.patch,
-files/cl-patches/0002-r600-Add-some-target-builtins.patch,
+files/cl-patches/llvm-0001-r600-Add-some-intrinsic-definitions.patch,
+files/cl-patches/llvm-0002-r600-Add-get_global_size-and-get_local_size-intri
nsi.patch, +files/cl-patches/clang-0002-r600-Add-some-target-builtins.patch,
+files/cl-patches/clang-0003-r600-Add-read_global_size-and-read_local_size-bu
ilti.patch, clang-3.1-r5.ebuild,
-files/cl-patches/0003-r600-Add-read_global_size-and-read_local_size-builti.p
atch:
Also apply llvm r600 patches, should fix bug #427206
05 Aug 2012; Richard Yao <ryao@gentoo.org> clang-3.1-r4.ebuild:
Keyword ~x64-freebsd
27 Jul 2012; Michał Górny <mgorny@gentoo.org> clang-3.1-r4.ebuild,
clang-3.1-r5.ebuild, clang-9999.ebuild:
Use tc-export to enforce Gentoo default CC/CXX when $CHOST-clang is available.
*clang-3.1-r5 (16 Jul 2012)
16 Jul 2012; Michał Górny <mgorny@gentoo.org> +clang-3.1-r5.ebuild,
+files/cl-patches/0001-Add-r600-TargetInfo.patch,
+files/cl-patches/0002-r600-Add-some-target-builtins.patch, +files/cl-patches/
0003-r600-Add-read_global_size-and-read_local_size-builti.patch:
Add OpenCL Radeon patches wrt #425688, and enable cpp target by default wrt
#418441.
22 Jun 2012; Bernard Cafarelli <voyageur@gentoo.org>
files/clang-3.1-increase-parser-recursion-limit.patch:
Convert patch from DOS to Unix format, to prevent bugs like #422725
12 Jun 2012; Fabian Groffen <grobian@gentoo.org> clang-3.1-r4.ebuild:
Marked ~x64-macos
08 Jun 2012; Michał Górny <mgorny@gentoo.org> clang-9999.ebuild:
Enable cpp target by default wrt #418441.
*clang-3.1-r4 (07 Jun 2012)
07 Jun 2012; Richard Yao <ryao@gentoo.org> +clang-3.1-r4.ebuild,
+files/clang-3.1-gentoo-freebsd-fix-cxx-paths-v2.patch,
+files/clang-3.1-gentoo-runtime-gcc-detection-v3.patch, -clang-3.1-r3.ebuild,
-files/clang-3.1-gentoo-runtime-gcc-detection-v2.patch:
Fix bug #417913
*clang-3.1-r3 (05 Jun 2012)
05 Jun 2012; Richard Yao <ryao@gentoo.org> +clang-3.1-r3.ebuild,
+files/clang-3.1-gentoo-runtime-gcc-detection-v2.patch:
Generalize GCC version check, which fixes bug #417913 and bug #418141
05 Jun 2012; Richard Yao <ryao@gentoo.org> metadata.xml:
Add self to maintainer list
02 Jun 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
clang-3.1-r2.ebuild:
Keyword ~arm, bug #320221.
26 May 2012; Alexis Ballier <aballier@gentoo.org> clang-3.1-r2.ebuild:
keyword ~amd64-fbsd
26 May 2012; Michał Górny <mgorny@gentoo.org> clang-3.1-r2.ebuild:
Fix revnumber in patch-related comment.
*clang-3.1-r2 (26 May 2012)
26 May 2012; Michał Górny <mgorny@gentoo.org> +clang-3.1-r2.ebuild,
+files/clang-3.1-increase-parser-recursion-limit.patch:
Include compiler-rt; fixes #417419. Increase parser recursion limit wrt
#417545. Also fix BSD include removal.
*clang-3.1-r1 (26 May 2012)
26 May 2012; Richard Yao <ryao@gentoo.org> +clang-3.1-r1.ebuild,
+files/clang-3.1-gentoo-freebsd-fix-cxx-paths.patch,
+files/clang-3.1-gentoo-freebsd-fix-lib-path.patch,
+files/clang-3.1-gentoo-linux-fix-cxx-include.patch,
+files/clang-3.1-gentoo-runtime-gcc-detection.patch, -clang-3.1.ebuild:
Fix bug #406163, bug #409269, bug #417171, bug #417537 and bug #417541 in
Clang 3.1
*clang-3.0-r4 (24 May 2012)
24 May 2012; Richard Yao <ryao@gentoo.org> +clang-3.0-r4.ebuild,
+files/clang-3.0-freebsd-runtime-gcc-detection.patch,
+files/clang-3.0-linux-runtime-gcc-detection.patch, -clang-3.0-r3.ebuild:
Add runtime detection of active GCC on Linux (bug \#406163) and FreeBSD (bug
\#409269). Remove unnecessary headers on FreeBSD, bug \#417171. Run time
detection enables Clang to build C++ code without USE=system-cxx-headers, so
no longer set it by default
*clang-3.1 (23 May 2012)
23 May 2012; Michał Górny <mgorny@gentoo.org> +clang-3.1.ebuild:
Version bump.
02 May 2012; Michał Górny <mgorny@gentoo.org> metadata.xml:
Add myself as a co-maintainer.
13 Apr 2012; Bernard Cafarelli <voyageur@gentoo.org> clang-3.0-r3.ebuild,
clang-9999.ebuild:
Support epatch_user, bug #411447
13 Mar 2012; Bernard Cafarelli <voyageur@gentoo.org> clang-3.0-r3.ebuild,
clang-9999.ebuild:
Tests require python-2, continuation of bug #407885
08 Mar 2012; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Add AddressSanitizer (asan) support with compiler-rt, bug #407295
28 Feb 2012; Fabian Groffen <grobian@gentoo.org> clang-3.0-r3.ebuild,
clang-9999.ebuild, files/clang-3.0-gentoo-binutils-apple.patch:
Gentoo binutils-apple patch has been applied upstream, so no longer necessary
in 9999. Update patch header with upstream commit.
21 Feb 2012; Fabian Groffen <grobian@gentoo.org> clang-3.0-r3.ebuild,
+files/clang-3.0-gentoo-binutils-apple.patch, clang-9999.ebuild:
Add patch to fix version detection of Gentoo's binutils-apple, bug #395013
16 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
clang now autodetects C++ header paths, dropping the system-cxx-headers
system and fixing bug #402365
*clang-3.0-r3 (16 Feb 2012)
16 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0-r2.ebuild,
+clang-3.0-r3.ebuild:
Fix 32bit include path on multilib, thanks slyfox in bug #404057
*clang-3.0-r2 (03 Feb 2012)
03 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0.ebuild,
-clang-3.0-r1.ebuild, +clang-3.0-r2.ebuild, clang-9999.ebuild:
Fix path to gold plugin, thanks mgorny in bug #397547
25 Jan 2012; Luca Barbato <lu_zero@gentoo.org>
+files/clang-3.1-fix_cxx_include_root.patch, clang-9999.ebuild:
Update live ebuild
*clang-3.0-r1 (13 Jan 2012)
13 Jan 2012; Bernard Cafarelli <voyageur@gentoo.org> +clang-3.0-r1.ebuild,
+files/clang-3.0-recognize-amd-k10-enable-sse4a.patch, clang-9999.ebuild:
Allow to run test without rebuilding llvm, bug #397559 by mgorny. Add AMD K10
suport in 3.0, patch thanks to Fabio Scaccabarozzi <fsvm88@gmail.com> in bug
#398357
*clang-3.0 (02 Dec 2011)
02 Dec 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0_rc4.ebuild,
+clang-3.0.ebuild:
Final release bump, remove rc
*clang-3.0_rc4 (28 Nov 2011)
28 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0_rc3.ebuild,
+clang-3.0_rc4.ebuild:
Final rc bump
14 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9-r1.ebuild, clang-3.0_rc3.ebuild, clang-9999.ebuild:
gcc-config 1.5 dropped the -X option, thanks Leonid Volnitsky
<leonid@volnitsky.com> in bug #388621
10 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-3.0_rc3.ebuild:
Fix tests (needs full compilation of llvm, remove broken test)
*clang-3.0_rc3 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0_rc1.ebuild,
+clang-3.0_rc3.ebuild, files/clang-3.0-fix_cxx_include_root.patch,
clang-9999.ebuild:
Update rc ebuild and cxx_include_root patch, some more ebuild cleanups
*clang-3.0_rc1 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> +clang-3.0_rc1.ebuild,
+files/clang-3.0-fix_cxx_include_root.patch, clang-9999.ebuild:
Add rc release to prepare for 3.0, remove llvm-gcc detection code (not used
in configure anymore). Also fix bug #387309, thanks to Stephan Wezel
<s.wezel@web.de> for the patch
04 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9-r1.ebuild, clang-9999.ebuild:
Fix forced -O3 -fomit-frame-pointer CFLAGS again, bug #385543
03 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
-clang-2.9.ebuild, clang-2.9-r1.ebuild, clang-9999.ebuild, metadata.xml:
Rename alltargets USE flag to multitarget, bug #382307. Drop some versions
*clang-2.9-r1 (16 Aug 2011)
16 Aug 2011; Diego E. Pettenò <flameeyes@gentoo.org> +clang-2.9-r1.ebuild,
+files/clang-2.9-gccversions.patch:
Add patch to check for a few more GCC versions; thanks to Amir Aupov, Richard
and Josh in bug #377949.
08 Jul 2011; Samuli Suominen <ssuominen@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9.ebuild, clang-9999.ebuild:
Convert from "hasq" to "has".
13 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Also use same USE-defaults for live ebuild, spotted by mgorny
06 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Update live ebuild to sync latest ebuild changes, fixes bug #369027
21 Apr 2011; Fabian Groffen <grobian@gentoo.org> clang-2.9.ebuild:
Update install_name reference to libLLVM
*clang-2.9 (07 Apr 2011)
07 Apr 2011; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.9.ebuild,
+files/clang-2.9-darwin-prefix.patch:
Version bump, enable system-cxx-headers by default
28 Mar 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r4.ebuild,
-files/clang-2.7-darwin-prefix.patch:
Drop 2.7 versions
14 Mar 2011; Fabian Groffen <grobian@gentoo.org> clang-2.8-r3.ebuild:
Marked ~x86-linux
26 Jan 2011; Fabian Groffen <grobian@gentoo.org> clang-2.7-r4.ebuild,
clang-2.8-r3.ebuild, clang-9999.ebuild:
Make scan-build utility Prefix-compatible, by Lionel Orry, bug #352809
*clang-2.8-r3 (19 Dec 2010)
19 Dec 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.8-r1.ebuild,
-clang-2.8-r2.ebuild, +clang-2.8-r3.ebuild, +files/clang-2.8-alignof.patch,
+files/clang-2.8-gcc-4.4.4.patch:
Backport to rename alignof, fixes C++'0x compilers support. Also adds gcc
4.4.4 headers support by default, thanks to Bertjan Broeksema
<broeksema@kde.org> in bug #345683
24 Oct 2010; Fabian Groffen <grobian@gentoo.org> clang-2.8-r2.ebuild,
clang-9999.ebuild:
Update reference fixing for Darwin for newer more strict versions of
Portage
24 Oct 2010; Fabian Groffen <grobian@gentoo.org> clang-2.8-r2.ebuild,
+files/clang-2.8-darwin-prefix.patch:
Fix compilation on Darwin, fixes bug #342373, adds back necessary bits for
bug #339922
*clang-2.8-r2 (21 Oct 2010)
21 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r2.ebuild,
-clang-2.8.ebuild, +clang-2.8-r2.ebuild:
Also set GCC C headers path with USE=system-cxx-headers, reported by
Guillaume Chatelet <chatelet.guillaume@gmail.com>, bug #341891, tested
with boost compilation. Clean some versions
*clang-2.8-r1 (12 Oct 2010)
12 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.8-r1.ebuild,
metadata.xml:
Re-enable shared lib, it works now with alltargets USE flag (in sync with
llvm one)
08 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8.ebuild:
Use new llvm 2.8 tarball, just in case
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8.ebuild,
clang-9999.ebuild:
Tests now use an internal framework, dejagnu not needed anymore
*clang-2.8 (06 Oct 2010)
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.8.ebuild,
clang-9999.ebuild:
2.8 version bump, drop old 2.6, fix one install line in live ebuild
*clang-2.7-r4 (21 Sep 2010)
21 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r3.ebuild,
+clang-2.7-r4.ebuild, clang-9999.ebuild:
Fix rpath sed and disable shared library use, thanks Nick Bowler
<nbowler@draconx.ca> in bug #338231
*clang-2.7-r3 (17 Sep 2010)
17 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7.ebuild,
+clang-2.7-r3.ebuild:
Enable shared library, move libs and plugins to fix bug #337467
08 Sep 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild,
+files/clang-2.7-darwin-prefix.patch:
Fix configurations for (newer) Darwin configurations, thanks Heiko Przybyl
03 Sep 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild:
Marked ~amd64-linux
26 Aug 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild,
clang-9999.ebuild:
Bump to EAPI=3, make Prefix aware, add support for Darwin platforms, bug
#332605
19 Aug 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
system-cxx-headers was missing in -9999 IUSE, spotted by Jack Lloyd
<lloyd@randombit.net> in bug #331679
*clang-2.7-r2 (27 Jul 2010)
27 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r1.ebuild,
+clang-2.7-r2.ebuild, clang-9999.ebuild, metadata.xml:
Add a USE-flag for system CXX headers, fix for x86. llvm-gcc users should
leave the flag off
*clang-2.7-r1 (20 Jul 2010)
20 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.7-r1.ebuild,
clang-9999.ebuild:
Get C++ headers from active gcc version, bug #327575
20 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r3.ebuild,
-files/llvm-2.6-cflags.patch, -files/clang-2.6-fixdoc.patch,
-files/clang-2.6-gcc45.patch:
Drop 2.6 version
02 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Set ESVN_REPO_URI to fix subversion_pkg_preinst
*clang-9999 (01 Jun 2010)
01 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-9999.ebuild:
Add live version, bug #320919
28 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r3.ebuild,
+files/clang-2.6-gcc45.patch:
GCC 4.5 support for 2.6, bug #317467
*clang-2.7 (27 Apr 2010)
27 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r2.ebuild,
+clang-2.7.ebuild, +files/clang-2.7-fixdoc.patch:
2.7 official release version bump
*clang-2.6-r3 (26 Apr 2010)
26 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.6-r3.ebuild:
python support enhancements, grabbed from my in-progress 2.7_pre2 ebuild
*clang-2.6-r2 (18 Mar 2010)
18 Mar 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r1.ebuild,
+clang-2.6-r2.ebuild, +files/llvm-2.6-cflags.patch:
Remove forced -O3 -fomit-frame-pointer CFLAGS, bug #308145
28 Jan 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
vecho -> echo, spotted by tove
07 Dec 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
Remove faulty test for 2.6, bug #294689
07 Dec 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
Fix multilib-strict sed, it broke tests on amd64
30 Nov 2009; Torsten Veller <tove@gentoo.org> clang-2.6-r1.ebuild:
Add missing die: || "die..." -> || die "..."
*clang-2.6-r1 (27 Oct 2009)
27 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6.ebuild,
+clang-2.6-r1.ebuild:
Install missing files for static analyzer, bug #290697
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6.ebuild:
Add some comments, fix running tests. Now about 50 of them fail not
finding their headers, still looking why
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6.ebuild,
+files/clang-2.6-fixdoc.patch:
Fix documentation Makefile in the same way as llvm
*clang-2.6 (25 Oct 2009)
25 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
-clang-2.6_pre2.ebuild, +clang-2.6.ebuild:
Bump to final 2.6 release
*clang-2.6_pre2 (05 Oct 2009)
05 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
+clang-2.6_pre2.ebuild, +metadata.xml:
Initial commit, based on ebuild by Ravi Pinjala <ravi@p-static.net> in bug
#269651

View File

@ -0,0 +1,52 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX cl-patches/clang-0001-Add-r600-TargetInfo.patch 2801 SHA256 619a510c819ee4033e00ce4e42ab9f73409346edc3bba6243c3d0868face826c SHA512 41159ce46525878fbead0a64582fd522d5643c4ce9841f7a1259d6fcee2c0382babf8f734bf47c0c32c8d9e54633c8e2d3eef67b85426ac4f873d47fd8dd6ac1 WHIRLPOOL 074aae16c6e23f7db036a3e13f4c8ba976d0f27adae2e05c957a10d1931098d04f766a0ac35bf1589541e710acd18370bdee18205f612fd7da4aab926e306ace
AUX cl-patches/clang-0002-r600-Add-some-target-builtins.patch 3535 SHA256 620411208e4609ac2b77412f31774b2d6fb7403b0d8fccd250a4d613cfc1a5ca SHA512 872156d6e4721b01aef05ac4c829f5635abd205c5f05dc66f20a9e59e7f8165464c55f730a0890af5220b917bc8ebede58e63ca401165e6cef77a8c2d0fd40ab WHIRLPOOL 8bd671a6cca645bae6d9888345319ed3f5476991716f0cf909435d988ed4c6db4b06d8b8e93e07baffe83b741fc58ea4dc67aac7203e7d4e2d71e71190e05cd7
AUX cl-patches/clang-0003-r600-Add-read_global_size-and-read_local_size-builti.patch 1132 SHA256 cf9888b9bd13e5daff6c2806c4324c99a20c3ce16570e7e0d6776baeb512bc2c SHA512 cff65845acedd72c2066e568bdf7da9a5b2e5d98737b8bb99be1b2dceefd096470e17b86ee04795339ab7cebbc72ea54c465a9a3640d2daafce9ddad1d5444e7 WHIRLPOOL 054b159e7e4d07acfea74ff8b1f79acf1b29de300903d4ae69a0f9ce5ad77495ce772a5bd1ce244badd8fe3502b1e6f833353478ee68252bf616fc81d251a8a7
AUX cl-patches/llvm-0001-r600-Add-some-intrinsic-definitions.patch 2450 SHA256 b0a718800c8969e174f3a22e61c15a370376f477e031fe97fff6aaab152f9867 SHA512 d23f9645d3e3364b1e9ce522eb15022fd3f2a685741db88b117b409ee33a07344a8e9ba9d89dc3535e5289edf79c6beb7ff144659f4e725b1a8f2c4256f9aad0 WHIRLPOOL c549806dbe5309dc441b65c942de488c6afc8c511d060d5c1459a4f99b97a357acbec51ce51bd704e5e1e74437cd413755f15377ad6b96c235242bc370af096f
AUX cl-patches/llvm-0002-r600-Add-get_global_size-and-get_local_size-intrinsi.patch 1189 SHA256 172bbb3cb1214e61ee2684c133317bb997e94a34c91dae94d4848cbd0c216436 SHA512 cf711149c421b4258bc64b81018d0a9474d8b4e4128d0cc0cea788b54c93e9512397b2310db8a1834c3507b4d893d5743dbc53183ac0daca23da55601b976c16 WHIRLPOOL 8e6bd9f005a6a941c55d7c8d9b127826191944fab9e404f8ed958efd07017f5f9301273739f869a73f15fc2a79af9dc18687ff85403acf24e175a464838b3f2e
AUX clang-2.7-fixdoc.patch 1977 SHA256 36c2214e575ed3fd78938279739e82c4f750f8726f8387e1414c18532501314a SHA512 598c793bd817cfdd32499fd94bf5628683fa037ec54174cac5896528c40601addd8e4d8d0bbe13820aa5df6158151f648fcb0ede826058e75c19174466ee85ae WHIRLPOOL 765493b0630a552d51e202e3d062ffa5972babde0762610c3881daf106603d3f75c8aa52106c70bac257656b908913cb3f5d26468593046ae50541f5ff5912f4
AUX clang-2.8-alignof.patch 11984 SHA256 2c1d648c64cc6582a00b0adbc5c65e3ac89a1bb1816e0691902866730a332fa2 SHA512 9e92ac4767f6b3cb06d90a4e0609a679737c3e17f615002f301a82e1857c94097647aa74fe61b09576fc925cc165155de6f257bed73ee5f54fdf670506067be5 WHIRLPOOL 4a5174228d495190730d4d06838913f41777fde2b2a98a82ab04ee3916f771e9cca41b0af7577784b918e7d696299958c6181fbf5a5601cf932520a875275d23
AUX clang-2.8-darwin-prefix.patch 4989 SHA256 808d6d47b7eb133a4e1091bf24b64690fe14d3f5b66fec7a9ed3d91aeb1f03d7 SHA512 08eeeaf45a1e8efc2f7303222635cff8c6c2e5a2d1dc9bb61c08350148e24a3b8e111247dbc08ef05b20bd0ee57bf5370f8c7c4f8b8ebf3ea43a1ed0a333432a WHIRLPOOL 04ab05b832643cf6285c96a8705ea46e2cdc80fe03b84ab7e40054ceaac4ce3dce31cac56c08b48e7c16d393f1fbe5bb71b434eccae9b6acd1f914642ed651a5
AUX clang-2.8-gcc-4.4.4.patch 710 SHA256 ce722ffd0b2dfb8d1a36db3927238ebacd19469823fa84ca3e415ca7cfcb454d SHA512 00307025c6fb0fc53b40d9c26c21df3431c47c6b8f9c5ff99eb2dd811df9fae1bae3d77c7404e1b80f887c6a8cdf475004c6de7897f2aa25b273a6023f29af25 WHIRLPOOL 5fbc80e2f21ba95acf622cc158ec5b67a0aac3af85b35f980242da62f31a0f43775443b8ed2def36f4f306e27cc216ab4f8005d28379885dea31cdb40361e8b4
AUX clang-2.9-darwin-prefix.patch 5023 SHA256 12b49f753dbc22054906c8a4ab8ccb98b175a636226272bbcd49c298905836c7 SHA512 23b43b5cd99d9e9f402140811a9323ad8ad77f5aba7200b96d34a83b70ffee566019573effdf1f5c83106e9dd401b15ae3479db8ea71bf7aba71bd2c7cbfbd24 WHIRLPOOL 3021321e426aa4e5b9341b555deacad9be13cd9394b9b2fd01c39d3b9ac29c5608856fa67b74d52948b1ee423dc551577d916a204ffa1caeca1e99596a13cf62
AUX clang-2.9-gccversions.patch 661 SHA256 cdfd4202f50fd4edad694269ee1af64db3452cb14a5926539eb93a4cfb3fad08 SHA512 8b6c7476e8fe036dd20915d128e30829f5b03625511084b18b70331b5e179be1b10073ed508356e211f645fcd58f126b0183ab788178abbda63de8a276ef7cf5 WHIRLPOOL 9898dea5b11c25268f7b0a09a746238bef78929d3f658e7cb464b10c60a9b5fa19d8c92d03cef30c365d05ea544b3a55f7c77c2bafbdea15c5d38e7843d3f3cd
AUX clang-3.0-fix_cxx_include_root.patch 1132 SHA256 260f8e36650384304fd0c21f8d742a4b361db4b3a0411c9c74375df95f174898 SHA512 00d187812d1650bca4358d245e1cf9c93368b3f0253cda3a6ab080648d320339bfa7a11bc31118113bc886b0af32c239873485737336d00222254bacc7211ab7 WHIRLPOOL 32d2f50c5563a501ca61b376dbb33bc6f89423a60b6f82634ba6f1c27dab41cd192ac47e793806ffbd3324677106bd5f2fbfe34768bb4eb902a4fa243a5865db
AUX clang-3.0-freebsd-runtime-gcc-detection.patch 990 SHA256 9c335e1a8d34d971d7a11cd81a7cdeca02c4864e1e09bdf8d1d7c46d7cd81947 SHA512 59bd5fec9e9d33cf69fdb78f4bd819a85bbaf47fd90a76eac680958f94fabced06067e21e1edc2dffbcab8a6f941877c6c45062e2b678c68e5fd64c604f90ecb WHIRLPOOL 7e30e97f118761476df8d5aaa8ba329872b16a374b6f5de4218ace162656f2d8d1ab5523d3ad302d2d145cf635540c19770cfba8cb2694b4c06fc16e2d7f7d87
AUX clang-3.0-gentoo-binutils-apple.patch 1113 SHA256 1ea07df003b67c374a75b7cb61d459ecb2cc471cd02c0ef735028b314cb1a80f SHA512 a6475a2161d617b4b260aeb4efd539c068a856fc63397d3ff992569b6c26e4d33ee0a07121f12201c3d17f9c0b3d0c667093df25640a54e1f8011f60fe910321 WHIRLPOOL 7afb544b76608b67715e41e8d99ebe6a913c7cce5ea8bab14f676e05e2ad03bf7beb268b9d09f2a6b1dc6663615c8847ba444e68295d248bfc0ba0021949b070
AUX clang-3.0-linux-runtime-gcc-detection.patch 1728 SHA256 aed41e3d05c57d2dd027a13023b12c2ea0d90b56427b0af393264f2a5a242595 SHA512 a14a18a896c752f2a4232eb8f5942191a1fa9438f7472a1133954496746fac42fa7340670881e93b0c97b7d5e493bbf7febcfaf80a3fb6adbbc693277f70c5cf WHIRLPOOL 92d07a9a812c1be115724627942fb05ac8b2027af4a77911fae8a9e27b26eb77694c1ea389995b132f87ad22c43a3c3157a982805d929b8e175fde4c86ee420f
AUX clang-3.0-recognize-amd-k10-enable-sse4a.patch 2555 SHA256 46d05e49cefe2f86a562062d7b11e03ecb4ec7a146ee9f674d9a31dda4af9faf SHA512 f0e67f2a9693021551fe0031f226d1d06e91af1b5a28603cb8807da4f3e8e9bc1db2b209150870d6922a80027a1f512d0221747d6a2dc5b85c042ac673e2f121 WHIRLPOOL 5f7e0bddc0e432b84048b9bde00b5d9a35149e6a70a57c7c2f5e6de01d9a751f5061141e3a0d1f5540ac28b87af8d896303c005dec068eff1ac4ae688ea2c7e0
AUX clang-3.1-gentoo-freebsd-fix-cxx-paths-v2.patch 8033 SHA256 ab6206b70185c7dd4dfc280c18f3af2e4a77798d8b62e43770b55285ff1c11e8 SHA512 f3d9687ccdbdd94752327bc64f42d0dd9075dc27d86628f32619427b0a9a731a8a50f396ad065a173ece85f160161b63f382e10af07e930fb476ab272f064d11 WHIRLPOOL 85a19f4dabfcd2badc18fc489ecd7f041ec8f413101145caa304fa69020fd3fb1d824d89c31b812d0551651a620bb440526ba63f6205e7fad47ec64c05798ba2
AUX clang-3.1-gentoo-freebsd-fix-lib-path.patch 646 SHA256 4e0ac4fd0d5ce22d055c010d6696f8e625cfe56b10e26dc6575c81084c151751 SHA512 6acf39f94a6b60be8efbfc129c7c1b7acdad6e7380b216e195297a870f5701d6501b54499dc67b2a2a698c27a3b96da8170977290045b677495bc3842ba2008f WHIRLPOOL d6c3e405ccb3a787a599eec9af9fadf85d98430cd3a1d458a0b2614c6dad715dd6f8eedfab2ccfc3e27d34c1cd589fbd0a99457478d62924864eb7a0879b00f7
AUX clang-3.1-gentoo-runtime-gcc-detection-v3.patch 1457 SHA256 f4b22281d21e39bc4681519cec90243c0e50262ce56ae68b0a8d9e7d92ce0375 SHA512 81c582791f4b0b1ccfcf3e8c82fbb68312320c5287402236d8c6d2d76767bbba031094c26d2b7bd9581c473896b78dda5a6284c5a87726e1bc0c539ae9294763 WHIRLPOOL bb68797804c89f8797561964697a72a015daf2c951d92f490f8c83f38aac6f50ce1527f39b53ccc6a3d93f84ec8f868e40340a5472b9e7ee4c34ceaa4b9ca845
AUX clang-3.1-increase-parser-recursion-limit.patch 480 SHA256 8c2fce5bbbeac965e0f116533e06a58d1a67df545855b7513c1ab6189596f757 SHA512 20a6caf48c1960883ea43243395e47fc44ce3de162552af89660949374c16a4ec1c651e8bb073feb015a8c3c6684f7e76ead927d58fc8a1b1d606bf89325535d WHIRLPOOL b701661a1bfce3091b6f57c99a790638ee1ced9ff35860c91cf43adf96901f8ead8bd6e984e48fb49f5035e26bd43076e9947b8496f9c9ebc952104548dd690c
DIST clang-2.8.tgz 5666777 SHA256 ed83481553e6a39a8a2953e89630d881d87833506f096a90f18d93ec2bdee0c1
DIST clang-2.9.tgz 6243772 SHA256 70c41f3f782a71cbaa7bc8d6ea29fce4263ad3e8558dfecc6dc11cdef17909df SHA512 0046b716eae7c398a61fb733239f209b60bdd1817e6724730b9515e7ae765565a1e42a805cc06e6f1393d8254ebc845335b244aff825f3fcce551b958683d8f5 WHIRLPOOL 4c745b7c6a21035595307ba5e2d95c2262a5ca1d52cca413a822186b9d450fec384d514175cf384e35e7169ce41ac5152222fcc9cbee4af85695c78d7cd5492e
DIST clang-3.0.tar.gz 7240578 SHA256 b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d SHA512 0a31a2600cd4555424259331e0762f7fceeb5d828e7792983b2f8ae92bb75b3dc92cf84474e047deb5d4dab46062b4ac6273e6079159052debb76ae69927e517 WHIRLPOOL 521169cc588520090423cd1a2fa639da84e119281bf8260ea4b7b24fd2d8627806a281ddbbba5c378a736fc31279e25f10c4d3a3c81abd2c202970079a949ba5
DIST clang-3.1.src.tar.gz 8158418 SHA256 ff63e215dcd3e2838ffdea38502f8d35bab17e487f3c3799579961e452d5a786 SHA512 14c033eda3e0c0a887a8410f6b6a1335e0f6bfa05950a903d302b06b95fd58b03894320e91e50fb4d330c5323be9e955d9054cee62d035e2753290354ea8f8cd WHIRLPOOL cdb578c287a417896d2d6fb297e96e44e8b951bad6e7d286b97bdd346b40dac6ffbb7015b39d69fa0f9e0994dede26612307b643f71480e3c8917199fe926357
DIST clang-3.2.src.tar.gz 8805311 SHA256 2aaaf03f7c0f6b16fe97ecc81247dc2bf2d4bec7620a77cc74670b7e07ff5658 SHA512 99fc57d19b76c42af9821eaaa762056a926eb68178f6b7dd5e8bf092c9ee201a554b91d760d5a30a57f38102eae340e080ef8c6a39327f6881eda391b20b108d WHIRLPOOL 2cf88d1db0f108d8b8e8b0cf691cca18694ddb00b129dc8c1894fca67b5494a7f53f92ac9401d99ce687c9d8fb30dc267be1e68ee70edc542e998f5486ba8730
DIST compiler-rt-3.1.src.tar.gz 1259340 SHA256 1bd4624e7465b05ea713198f19c1c235bae2d35a411c15a4648300bc74294f5c SHA512 a010ed625ca54383bcc08dba77c4a686aed1c74d70c237a3cd20eafe9c1208f644699a600cbf1d14239db1b05a6d55f026f511f5a1eeec0a68888683c653e6fe WHIRLPOOL 6e21d28b30b52a039d5f16fb5b96238f453b58d5fabffffe0cc181061f619aaec2925bbe9f8af3dfe1ac39002fa52943617f94c44fb21cfe72d7aea460c0de0c
DIST compiler-rt-3.2.src.tar.gz 1463061 SHA256 4ac311df0eead459cbb0f0890c06b55dae529ab45827ac73fef40bec632994aa SHA512 ef4223bd2d6051ec93a0943973aa61e7aa3686ac72f9a688d58a8b71deba1a7e64dcf821e0c53937899bbd7ba49218fee4e3649f19362fe59677daee314c063b WHIRLPOOL 176643360f683ddca28e4c77dc4ceb03513cec5cea98455598c934ec3e23bd6949a74852e50e42207c7171eb8013afe366f3b8c92799af66a04739ccebe4ed4e
DIST llvm-2.8-r1.tgz 9112527 SHA256 25addb742f1c6cc12877ed0ee924dda962d848368ee095be8e48342ae613d43b SHA512 8688d5cf415e8aef74cca6a14587af36234a6347e2238ac2c0d66805c42926b9399f36390e1a58a4081e902b0904adb818c1a360d5df572dfa893d6f79f5e35a WHIRLPOOL 0da9250e31242b55586c9138089e742aab5d414d5f3412ebf917ae8b9506f984c6134a932be93ec7e4c01c79f6c21d508cb0b2e0ec283419bd4ae4db745430ae
DIST llvm-2.9.tgz 9574781 SHA256 661236cfa17428b48cfa9cbb9909f7569c64b8ecd219fd91dbc00e3b557b3779 SHA512 9cb0fa0bb8ac02661fd6f926001a15e0ad4a9660683421dc86b03f1cf5184142c5815f9f9283ee7cdf8d474e01177f83406122253342e0e95ddc878821660070 WHIRLPOOL f7b445b6b5d455f29ca68c342511b8b5e6eedec525af1cc60440c4de544df2332aa241bffca29eda5d2428a3f518e093a626bd45c7f8a9e0656d0f68aef5d9d1
DIST llvm-3.0.tar.gz 10350539 SHA256 519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477 SHA512 602bb5590b70cb9138bc19d8c630c62bbabdcb2132215c921fe4bce4e3f74dfc66440b9dcd458ff55a86047cc9cc0417c6563715c133e0db222e4b88f07c13bb WHIRLPOOL 6f4ece3ec747352cd78b08d25c5b1cda91140eb6957d509161e45395e47c074f8d2102bfcaeabcdef8c1f6672f2cf06d88e290667666122da029391b3528d440
DIST llvm-3.1.src.tar.gz 11077429 SHA256 1ea05135197b5400c1f88d00ff280d775ce778f8f9ea042e25a1e1e734a4b9ab SHA512 fb941094601043e405ccc57473414ef92437b09c200e71614f93d8e93b2a58cca8d78c385be037e064b0711cd6268802c774ce4a40fc0ea17bf576305304d2aa WHIRLPOOL c5c72e139296e1c186131f991010f52f958063a4fcfcb1f8527b53a2aaa7edcaca70ab6cf86c25d08640dcf6d720a865fda7dc7eb06cf1ce9c23fd37b5d597ef
DIST llvm-3.2.src.tar.gz 12275252 SHA256 125090c4d26740f1d5e9838477c931ed7d9ad70d599ba265f46f3a42cb066343 SHA512 cc66171322dbbe40bcac0e0ea5b09df8ff52df63ded304f841f32f702270d6ab1512216413ee52498c3ebee8cd39c4cd23e3855d591944bc2ac0ae76f5be62cc WHIRLPOOL c3a39b2426293d0251b7769607ade873bb6bf8d54e7c8055773a9b75742bc8e39049fb71409a258c6f3d98775b78c280d4bfe4223ba91e5ed6ecae0eddf910e5
EBUILD clang-2.8-r3.ebuild 6775 SHA256 2e356a45d80b276e8a349b7525f2526094ba03fe83ac9f49e7fb5136bd3a983d SHA512 c67e745804d7894597531328a30e6e0c171e34a1d6242f708d3f02dbb1c9383d94e9a9fbd641ca49a80959b454ddb1b6ca44289ce70eb674befde82c82c51c81 WHIRLPOOL faee8941ef6dcf173d9fa21ee3f01f4fb3d43377d5b7855138edd49388e411fbff519fffebaf65e2e2cd32071ebaea12f7c75a16c9dccb0e27c12b47a8229651
EBUILD clang-2.9-r1.ebuild 6438 SHA256 00d9147d62dc19548c841243fccb3b81aa5abb32ba46480d528952dcd4756711 SHA512 b0d2862222e87c3cdcec18d80ff08ed369cd21a8f5ec76b32b03dcf4cb14f0876e4b8ebb3868ab537615c080ce8b2134b5148f4cfef648ef8f40e7cb7deaee04 WHIRLPOOL 7b39c433ff21e1c2ef39d988678c9cc068c298e84118c0a4e669b2f1d43e988fa65b8fd37d37311d4b1e2b7d9a6b762a3795ac8a8fccdb774c06d5b830d91c33
EBUILD clang-3.0-r4.ebuild 7166 SHA256 50fe174e45d88d5f1b31119600ae9c8f06f27b14b497d8eee4a1c805bcba92f3 SHA512 834247ed9475353da30946eeabd206a6164eddff8195b5a717fa1bf0e1760d910ee7e0943fe805f3c259a811c0f4514e5bb5aa272a049a195e9f12f68b554669 WHIRLPOOL a8432fb8a00f29a0cd7126f0d028866c893f07d2d92122d09d952caf1c62fdbb0eaa18faa230ecab4bea556252085db152e8c0a3ed6d3cd1adcf3d987cfb9a67
EBUILD clang-3.1-r5.ebuild 6696 SHA256 4a4d884d8c37044fe7dc5f325e88f4733140997b3d2de64c0d6e35d9604c477f SHA512 2ba6057e08c8533fbaa45810f4d9588b57b20b08c9b99b8a53ed32b95d17a43ce13f15d81618e4cb3bc6cb4ded3c50fbba2a866a0d130a69a107195c90dc58ea WHIRLPOOL 890f64a0309c731e7784f5196ac3da602e204c65566412a398a8f9bd862d1b1e5337eae56fd309c1ffb9fc750741982481abcc13567973017df650c6e5dd1be8
EBUILD clang-3.2.ebuild 6465 SHA256 0ea4167183fa1491e23156fc7e5411de8c5bef4dbd832699963bae636deccc9d SHA512 169ab1ba1019a7454f282562e209e54741e7c37a5332fc845dba51dbf6ebe21b4fc730499b7586b7ba0cade5daa7538effae1263a55871f17d5c81ff1fa39643 WHIRLPOOL 5b40267fde01a096d9f573e5e0ab15f02c970275bae3ab302b35dd08496c1646965cd3717c55ec2c96d169528b9a508af0d923cd3760081224f822f782d02e14
EBUILD clang-9999.ebuild 5615 SHA256 ff0f813d1051746aa64885ac62c16818dc781d7382c61dd0a570c6effffc36d0 SHA512 42f5adb3f132144c68a73e02ab8bec047baadf474a59ea93d2ad3ffa6945a5e5bf6f9d5529d5f7f9013048d88f4af84152f626a252c36d26d06c75d834cd73d1 WHIRLPOOL 199e795f57fdc55b1d24d049b1170a0a9f131ead4a3b6e225318b272e10686206e83197f5dfb88423032f8ad95b58821e8e9a69271465414616af60effb9482a
MISC ChangeLog 16877 SHA256 477e905e2326531dbff797812a1bf8c3f9af87de9e036b33eb51ac6a5fb7d564 SHA512 f53d2d9b16cbfd89ac3af3a7175d4831ce504e5f2a98706f31930255a8c8e1904db5af153f002c732294661215ae535ae1197b5fba96192c575897a9e3ab0ea7 WHIRLPOOL fdb421dbea43b543b16b570a34baba5c95119c78dcfcb27168e1fad27f0306c843c37d92d492e593d91f9020735f40100f6f5e1839540f03909477d076bcfdd2
MISC metadata.xml 1522 SHA256 c0c8a45b9d836fac31adc4d76a2de92abf2c8d603b69146fc72e6c2484331f42 SHA512 b8780e7a635fa8c32c6cf73c842982d85a11f24daf8049bb3efb165808635875a2331072c01865df230b1dcac7135fcdf9fa7ea19ac46a35ac9f50ffaf4c5067 WHIRLPOOL 2bc088ce4d44c7d0d2673449116052d70ed7298afc14bc5cc460d5c60dda2c1df65a3cf89e8cd79e52e96414b2eb759dd95ed97055cfd41822a4b9f540fb662c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iJwEAQEIAAYFAlENoR8ACgkQfXuS5UK5QB0J9wP7BXJSM/H7wfq1B2Y5YgTF5TMe
FMcAT7BE2asVBcu1p3qHeTzrmaUuvwgnWt5I1uaTpFuTyoyR0yMs140UXPJ+1yS6
wzStDvvhnDMTfkS+g/KPunDCnhBNV4SZ3f+KOGDSVs8wRk+H6F32TbD5lTGBOY7H
NNgaPSbmb7ANXhPTmlc=
=B/Hz
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,203 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-2.8-r3.ebuild,v 1.8 2013/01/03 23:36:58 voyageur Exp $
EAPI=3
RESTRICT_PYTHON_ABIS="3.*"
SUPPORT_PYTHON_ABIS="1"
inherit eutils multilib python
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
# Drop the -> on 2.9
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.tgz -> llvm-${PV}-r1.tgz
http://llvm.org/releases/${PV}/${P}.tgz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug multitarget +static-analyzer system-cxx-headers test"
# Note: for LTO support, clang will depend on binutils with gold plugins, and LLVM built after that - http://llvm.org/docs/GoldPlugin.html
DEPEND="static-analyzer? ( dev-lang/perl )"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]"
S="${WORKDIR}/llvm-${PV}"
src_prepare() {
mv "${WORKDIR}"/clang-${PV} "${S}"/tools/clang || die "clang source directory not found"
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# Upstream backport, r117774 and r117775
epatch "${FILESDIR}"/${P}-alignof.patch
# Upstream backport, r119348
epatch "${FILESDIR}"/${P}-gcc-4.4.4.patch
# Fix toolchain lookup for Darwin/Prefix.
epatch "${FILESDIR}"/${PN}-2.8-darwin-prefix.patch
sed -e "s|@GENTOO_PORTAGE_CHOST_ARCH@|${CHOST%%-darwin*}-darwin|g" \
-e "s|@GENTOO_PORTAGE_CHOST@|${CHOST}|g" \
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}|g" \
-i tools/clang/lib/Driver/ToolChains.cpp \
|| die "fixing toolchain lookup"
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Specify python version
python_convert_shebangs 2 tools/clang/tools/scan-view/scan-view
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
}
src_configure() {
local CONF_FLAGS="--enable-shared"
if use debug; then
CONF_FLAGS="${CONF_FLAGS} --disable-optimized"
einfo "Note: Compiling LLVM in debug mode will create huge and slow binaries"
# ...and you probably shouldn't use tmpfs, unless it can hold 900MB
else
CONF_FLAGS="${CONF_FLAGS} \
--enable-optimized \
--with-optimize-option= \
--disable-assertions \
--disable-expensive-checks"
fi
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
# Skip llvm-gcc parts even if installed
CONF_FLAGS="${CONF_FLAGS} --with-llvmgccdir=/dev/null"
if use system-cxx-headers; then
# Try to get current gcc headers path
local CXX_PATH=$(gcc-config -L| cut -d: -f1)
CONF_FLAGS="${CONF_FLAGS} --with-c-include-dirs=/usr/include:${CXX_PATH}/include"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-root=${CXX_PATH}/include/g++-v4"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-arch=$CHOST"
if has_multilib_profile; then
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-32bit-dir=32"
fi
fi
econf ${CONF_FLAGS} || die "econf failed"
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only || die "emake failed"
}
src_test() {
cd "${S}"/test || die "cd failed"
emake site.exp || die "updating llvm site.exp failed"
cd "${S}"/tools/clang || die "cd clang failed"
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
cd tools/scan-view || die "cd scan-view failed"
dobin scan-view
install-scan-view() {
insinto "$(python_get_sitedir)"/clang
doins Reporter.py Resources ScanView.py startfile.py
touch "${ED}"/"$(python_get_sitedir)"/clang/__init__.py
}
python_execute_function install-scan-view
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "${S}"/Release/lib/libLLVM-${PV}.dylib \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
}
pkg_postinst() {
python_mod_optimize clang
if use system-cxx-headers; then
elog "C++ headers search path is hardcoded to the active gcc profile one"
elog "If you change the active gcc profile, or update gcc to a new version,"
elog "you will have to remerge this package to update the search path"
else
elog "If clang++ fails to find C++ headers on your system,"
elog "you can remerge clang with USE=system-cxx-headers to use C++ headers"
elog "from the active gcc profile"
fi
}
pkg_postrm() {
python_mod_cleanup clang
}

View File

@ -0,0 +1,192 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-2.9-r1.ebuild,v 1.5 2013/01/03 23:36:58 voyageur Exp $
EAPI=3
RESTRICT_PYTHON_ABIS="3.*"
SUPPORT_PYTHON_ABIS="1"
inherit eutils multilib python
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.tgz
http://llvm.org/releases/${PV}/${P}.tgz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug multitarget +static-analyzer +system-cxx-headers test"
# Note: for LTO support, clang will depend on binutils with gold plugins, and LLVM built after that - http://llvm.org/docs/GoldPlugin.html
DEPEND="static-analyzer? ( dev-lang/perl )"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]"
S="${WORKDIR}/llvm-${PV}"
src_prepare() {
mv "${WORKDIR}"/clang-${PV} "${S}"/tools/clang || die "clang source directory not found"
# Workaround GCC versions' list (bug #377949)
epatch "${FILESDIR}"/${P}-gccversions.patch
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# Fix toolchain lookup for Darwin/Prefix.
epatch "${FILESDIR}"/${PN}-2.9-darwin-prefix.patch
sed -e "s|@GENTOO_PORTAGE_CHOST_ARCH@|${CHOST%%-darwin*}-darwin|g" \
-e "s|@GENTOO_PORTAGE_CHOST@|${CHOST}|g" \
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}|g" \
-i tools/clang/lib/Driver/ToolChains.cpp \
|| die "fixing toolchain lookup"
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Specify python version
python_convert_shebangs 2 tools/clang/tools/scan-view/scan-view
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
# Skip llvm-gcc parts even if installed
CONF_FLAGS="${CONF_FLAGS} --with-llvmgccdir=/dev/null"
if use system-cxx-headers; then
# Try to get current gcc headers path
local CXX_PATH=$(gcc-config -L| cut -d: -f1)
CONF_FLAGS="${CONF_FLAGS} --with-c-include-dirs=/usr/include:${CXX_PATH}/include"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-root=${CXX_PATH}/include/g++-v4"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-arch=$CHOST"
if has_multilib_profile; then
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-32bit-dir=32"
fi
fi
econf ${CONF_FLAGS} || die "econf failed"
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only || die "emake failed"
}
src_test() {
cd "${S}"/test || die "cd failed"
emake site.exp || die "updating llvm site.exp failed"
cd "${S}"/tools/clang || die "cd clang failed"
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
cd tools/scan-view || die "cd scan-view failed"
dobin scan-view
install-scan-view() {
insinto "$(python_get_sitedir)"/clang
doins Reporter.py Resources ScanView.py startfile.py
touch "${ED}"/"$(python_get_sitedir)"/clang/__init__.py
}
python_execute_function install-scan-view
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
}
pkg_postinst() {
python_mod_optimize clang
if use system-cxx-headers; then
elog "C++ headers search path is hardcoded to the active gcc profile one"
elog "If you change the active gcc profile, or update gcc to a new version,"
elog "you will have to remerge this package to update the search path"
else
elog "If clang++ fails to find C++ headers on your system,"
elog "you can remerge clang with USE=system-cxx-headers to use C++ headers"
elog "from the active gcc profile"
fi
}
pkg_postrm() {
python_mod_cleanup clang
}

View File

@ -0,0 +1,213 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-3.0-r4.ebuild,v 1.2 2013/01/03 23:36:58 voyageur Exp $
EAPI=3
RESTRICT_PYTHON_ABIS="3.*"
SUPPORT_PYTHON_ABIS="1"
inherit eutils multilib python
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.tar.gz
http://llvm.org/releases/${PV}/${P}.tar.gz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug kernel_FreeBSD multitarget +static-analyzer system-cxx-headers test"
DEPEND="static-analyzer? ( dev-lang/perl )"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]"
S=${WORKDIR}/llvm-${PV}.src
src_prepare() {
mv "${WORKDIR}"/clang-${PV}.src "${S}"/tools/clang || die "clang source directory move failed"
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
# Fix cxx_include_root path for Gentoo
epatch "${FILESDIR}"/${P/_*}-fix_cxx_include_root.patch
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Set correct path for gold plugin
sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
-i tools/clang/lib/Driver/Tools.cpp \
|| die "gold plugin path sed failed"
# Properly detect Gentoo's binutils-apple version (committed in trunk)
epatch "${FILESDIR}"/${PN}-3.0-gentoo-binutils-apple.patch
# Specify python version
python_convert_shebangs 2 tools/clang/tools/scan-view/scan-view
python_convert_shebangs -r 2 test/Scripts
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
# Use system llc (from llvm ebuild) for tests
sed -e "/^registered_targets =/s/os.path.join(llvm_tools_dir, 'llc')/'llc'/" \
-i tools/clang/test/lit.cfg || die "test path sed failed"
# AMD K10 CPUs + SSE4a suppport, bug #398357
epatch "${FILESDIR}"/${P}-recognize-amd-k10-enable-sse4a.patch
# Automatically select active system GCC's libraries, bug #406163
epatch "${FILESDIR}"/${P}-linux-runtime-gcc-detection.patch
# Fix search paths on FreeBSD, bug #409269
epatch "${FILESDIR}"/${P}-freebsd-runtime-gcc-detection.patch
# User patches
epatch_user
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
if use system-cxx-headers; then
# Try to get current gcc headers path
local CXX_PATH=$(gcc-config -L| cut -d: -f1)
CONF_FLAGS="${CONF_FLAGS} --with-c-include-dirs=/usr/include:${CXX_PATH}/include"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-root=${CXX_PATH}/include/g++-v4"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-arch=$CHOST"
if has_multilib_profile; then
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-32bit-dir=/32"
fi
fi
econf ${CONF_FLAGS} || die "econf failed"
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only || die "emake failed"
}
src_test() {
cd "${S}"/test || die "cd failed"
emake site.exp || die "updating llvm site.exp failed"
cd "${S}"/tools/clang || die "cd clang failed"
# Broken test always assuming i386 host with multilib gcc 4.6.0
# http://llvm.org/bugs/show_bug.cgi?id=11094
rm -f test/Driver/linux-ld.c
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
testing() {
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
python_execute_function testing
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
cd tools/scan-view || die "cd scan-view failed"
dobin scan-view
install-scan-view() {
insinto "$(python_get_sitedir)"/clang
doins Reporter.py Resources ScanView.py startfile.py
touch "${ED}"/"$(python_get_sitedir)"/clang/__init__.py
}
python_execute_function install-scan-view
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
# Remove unnecessary headers on FreeBSD, bug #417171
use kernel_FreeBSD && rm "${ED}/usr/lib/clang/3.1/include/"{arm_neon,std,float,iso,limits,tgmath,varargs}*.h
}
pkg_postinst() {
python_mod_optimize clang
if use system-cxx-headers; then
elog "C++ headers search path is hardcoded to the active gcc profile one"
elog "If you change the active gcc profile, or update gcc to a new version,"
elog "you will have to remerge this package to update the search path"
else
elog "If clang++ fails to find C++ headers on your system,"
elog "you can remerge clang with USE=system-cxx-headers to use C++ headers"
elog "from the active gcc profile"
fi
}
pkg_postrm() {
python_mod_cleanup clang
}

View File

@ -0,0 +1,204 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-3.1-r5.ebuild,v 1.4 2013/01/03 23:36:58 voyageur Exp $
EAPI=4
RESTRICT_PYTHON_ABIS="3.*"
SUPPORT_PYTHON_ABIS="1"
inherit eutils multilib python
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz
http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.gz
http://llvm.org/releases/${PV}/${P}.src.tar.gz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86 ~amd64-fbsd ~x64-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug kernel_FreeBSD multitarget +static-analyzer test"
DEPEND="static-analyzer? ( dev-lang/perl )"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]"
S=${WORKDIR}/llvm-${PV}.src
src_prepare() {
mv "${WORKDIR}"/clang-${PV}.src "${S}"/tools/clang \
|| die "clang source directory move failed"
mv "${WORKDIR}"/compiler-rt-${PV}.src "${S}"/projects/compiler-rt \
|| die "compiler-rt source directory move failed"
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
sed -e "/PROJ_resources/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/runtime/compiler-rt/Makefile \
|| die "compiler-rt Makefile failed"
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Set correct path for gold plugin
sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
-i tools/clang/lib/Driver/Tools.cpp \
|| die "gold plugin path sed failed"
# Specify python version
python_convert_shebangs 2 tools/clang/tools/scan-view/scan-view
python_convert_shebangs -r 2 test/Scripts
python_convert_shebangs 2 projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
# Use system llc (from llvm ebuild) for tests
sed -e "/^llc_props =/s/os.path.join(llvm_tools_dir, 'llc')/'llc'/" \
-i tools/clang/test/lit.cfg || die "test path sed failed"
# Automatically select active system GCC's libraries, bugs #406163 and #417913
epatch "${FILESDIR}"/${P}-gentoo-runtime-gcc-detection-v3.patch
# Fix search paths on FreeBSD, bug #409269
epatch "${FILESDIR}"/${P}-gentoo-freebsd-fix-lib-path.patch
# Fix regression caused by removal of USE=system-cxx-headers, bug #417541
epatch "${FILESDIR}"/${P}-gentoo-freebsd-fix-cxx-paths-v2.patch
# Increase recursion limit, bug #417545, upstream r155737
epatch "${FILESDIR}"/${P}-increase-parser-recursion-limit.patch
# Apply r600 OpenCL-related patches, bug #425688
epatch "${FILESDIR}"/cl-patches/llvm-*.patch
pushd tools/clang &>/dev/null || die
epatch "${FILESDIR}"/cl-patches/clang-*.patch
popd &>/dev/null || die
# User patches
epatch_user
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host,cpp"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
# clang prefers clang over gcc, so we may need to force that
tc-export CC CXX
econf ${CONF_FLAGS}
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only
}
src_test() {
cd "${S}"/test || die "cd failed"
emake site.exp
cd "${S}"/tools/clang || die "cd clang failed"
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
testing() {
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
python_execute_function testing
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
cd tools/scan-view || die "cd scan-view failed"
dobin scan-view
install-scan-view() {
insinto "$(python_get_sitedir)"/clang
doins Reporter.py Resources ScanView.py startfile.py
touch "${ED}"/"$(python_get_sitedir)"/clang/__init__.py
}
python_execute_function install-scan-view
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
# Remove unnecessary headers on FreeBSD, bug #417171
use kernel_FreeBSD && rm "${ED}"usr/$(get_libdir)/clang/${PV}/include/{arm_neon,std,float,iso,limits,tgmath,varargs}*.h
}
pkg_postinst() {
python_mod_optimize clang
}
pkg_postrm() {
python_mod_cleanup clang
}

View File

@ -0,0 +1,201 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-3.2.ebuild,v 1.4 2013/02/02 23:28:27 mgorny Exp $
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} pypy{1_9,2_0} )
inherit eutils multilib python-r1
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz
http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.gz
http://llvm.org/releases/${PV}/${P}.src.tar.gz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug kernel_FreeBSD multitarget python +static-analyzer test"
DEPEND="static-analyzer? ( dev-lang/perl )
${PYTHON_DEPS}"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]
${PYTHON_DEPS}"
S=${WORKDIR}/llvm-${PV}.src
src_prepare() {
rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
|| die "symlinks removal failed"
mv "${WORKDIR}"/${P}.src "${S}"/tools/clang \
|| die "clang source directory move failed"
mv "${WORKDIR}"/compiler-rt-${PV}.src "${S}"/projects/compiler-rt \
|| die "compiler-rt source directory move failed"
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
sed -e "/PROJ_resources/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/runtime/compiler-rt/Makefile \
|| die "compiler-rt Makefile failed"
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Set correct path for gold plugin
sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
-i tools/clang/lib/Driver/Tools.cpp \
|| die "gold plugin path sed failed"
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
# Use system llc (from llvm ebuild) for tests
sed -e "/^llc_props =/s/os.path.join(llvm_tools_dir, 'llc')/'llc'/" \
-i tools/clang/test/lit.cfg || die "test path sed failed"
# Automatically select active system GCC's libraries, bugs #406163 and #417913
epatch "${FILESDIR}"/${PN}-3.1-gentoo-runtime-gcc-detection-v3.patch
# Fix search paths on FreeBSD, bug #409269
epatch "${FILESDIR}"/${PN}-3.1-gentoo-freebsd-fix-lib-path.patch
# Fix regression caused by removal of USE=system-cxx-headers, bug #417541
# Needs to be updated for 3.2
#epatch "${FILESDIR}"/${PN}-3.1-gentoo-freebsd-fix-cxx-paths-v2.patch
# User patches
epatch_user
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host,cpp"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
# clang prefers clang over gcc, so we may need to force that
tc-export CC CXX
econf ${CONF_FLAGS}
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only
}
src_test() {
cd "${S}"/tools/clang || die "cd clang failed"
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
python_export_best
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
fi
python_inst() {
if use static-analyzer ; then
pushd tools/scan-view >/dev/null || die
python_doscript scan-view
touch __init__.py || die
python_moduleinto clang
python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
popd >/dev/null || die
fi
if use python ; then
pushd bindings/python/clang >/dev/null || die
python_moduleinto clang
python_domodule __init__.py cindex.py enumerations.py
popd >/dev/null || die
fi
# AddressSanitizer symbolizer (currently separate)
python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
}
python_foreach_impl python_inst
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
# Remove unnecessary headers on FreeBSD, bug #417171
use kernel_FreeBSD && rm "${ED}"usr/$(get_libdir)/clang/${PV}/include/{arm_neon,std,float,iso,limits,tgmath,varargs}*.h
}

View File

@ -0,0 +1,186 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-9999.ebuild,v 1.34 2013/02/02 23:28:27 mgorny Exp $
EAPI=5
PYTHON_COMPAT=( python{2_6,2_7} pypy{1_9,2_0} )
inherit subversion eutils multilib python-r1
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
SRC_URI=""
ESVN_REPO_URI="http://llvm.org/svn/llvm-project/cfe/trunk"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS=""
IUSE="debug multitarget python +static-analyzer test"
DEPEND="static-analyzer? ( dev-lang/perl )
${PYTHON_DEPS}"
RDEPEND="~sys-devel/llvm-${PV}[debug=,multitarget=]
${PYTHON_DEPS}"
S="${WORKDIR}/llvm"
src_unpack() {
# Fetching LLVM and subprojects
ESVN_PROJECT=llvm subversion_fetch "http://llvm.org/svn/llvm-project/llvm/trunk"
ESVN_PROJECT=compiler-rt S="${S}"/projects/compiler-rt subversion_fetch "http://llvm.org/svn/llvm-project/compiler-rt/trunk"
ESVN_PROJECT=clang S="${S}"/tools/clang subversion_fetch
}
src_prepare() {
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
sed -e "/PROJ_resources/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/runtime/compiler-rt/Makefile \
|| die "compiler-rt Makefile failed"
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Set correct path for gold plugin
sed -e "/LLVMgold.so/s#lib/#$(get_libdir)/llvm/#" \
-i tools/clang/lib/Driver/Tools.cpp \
|| die "gold plugin path sed failed"
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
# Use system llc (from llvm ebuild) for tests
sed -e "/^llc_props =/s/os.path.join(llvm_tools_dir, 'llc')/'llc'/" \
-i tools/clang/test/lit.cfg || die "test path sed failed"
# User patches
epatch_user
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host,cpp"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
# clang prefers clang over gcc, so we may need to force that
tc-export CC CXX
econf ${CONF_FLAGS}
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 clang-only
}
src_test() {
cd "${S}"/tools/clang || die "cd clang failed"
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
python_export_best
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
fi
python_inst() {
if use static-analyzer ; then
pushd tools/scan-view >/dev/null || die
python_doscript scan-view
touch __init__.py || die
python_moduleinto clang
python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
popd >/dev/null || die
fi
if use python ; then
pushd bindings/python/clang >/dev/null || die
python_moduleinto clang
python_domodule __init__.py cindex.py enumerations.py
popd >/dev/null || die
fi
# AddressSanitizer symbolizer (currently separate)
python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
}
python_foreach_impl python_inst
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
}

View File

@ -0,0 +1,100 @@
From 70cae83ffd093f183dec07c464db3c0bb6b92c10 Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Fri, 2 Mar 2012 10:54:52 -0500
Subject: [PATCH 1/3] Add r600 TargetInfo
---
lib/Basic/Targets.cpp | 70 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 85dfd78..64dc01c 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -1068,6 +1068,73 @@ namespace {
}
namespace {
+
+class AMDGPUTargetInfo : public TargetInfo {
+public:
+
+ AMDGPUTargetInfo(const std::string& triple) : TargetInfo(triple) { }
+
+ virtual const char * getClobbers() const {
+ return "";
+ }
+
+ virtual void getGCCRegNames(const char * const *&Names,
+ unsigned &numNames) const {
+ Names = NULL;
+ numNames = 0;
+ }
+
+ virtual void getGCCRegAliases(const GCCRegAlias *&Aliases,
+ unsigned &NumAliases) const {
+ Aliases = NULL;
+ NumAliases = 0;
+ }
+
+ virtual bool validateAsmConstraint(const char *&Name,
+ TargetInfo::ConstraintInfo &info) const {
+ return true;
+ }
+
+ virtual void getTargetBuiltins(const Builtin::Info *&Records,
+ unsigned &NumRecords) const {
+ Records = NULL;
+ NumRecords = 0;
+ }
+};
+
+
+static const unsigned R600AddrSpaceMap[] = {
+ 1, // opencl_global
+ 3, // opencl_local
+ 2 // opencl_constant
+};
+
+class R600TargetInfo : public AMDGPUTargetInfo {
+public:
+ R600TargetInfo(const std::string& triple) : AMDGPUTargetInfo(triple) {
+ DescriptionString =
+ "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16"
+ "-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:32:32"
+ "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64"
+ "-v96:128:128-v128:128:128-v192:256:256-v256:256:256"
+ "-v512:512:512-v1024:1024:1024-v2048:2048:2048"
+ "-n8:16:32:64";
+ AddrSpaceMap = &R600AddrSpaceMap;
+ }
+
+ virtual void getTargetDefines(const LangOptions &Opts,
+ MacroBuilder &Builder) const {
+ Builder.defineMacro("__R600__");
+ }
+
+ virtual const char * getVAListDeclaration() const {
+ return "";
+ }
+};
+
+} // end anonymous namespace
+
+namespace {
// MBlaze abstract base class
class MBlazeTargetInfo : public TargetInfo {
static const char * const GCCRegNames[];
@@ -3963,6 +4030,9 @@ static TargetInfo *AllocateTarget(const std::string &T) {
case llvm::Triple::mblaze:
return new MBlazeTargetInfo(T);
+ case llvm::Triple::r600:
+ return new R600TargetInfo(T);
+
case llvm::Triple::sparc:
switch (os) {
case llvm::Triple::Linux:
--
1.7.7.6

View File

@ -0,0 +1,111 @@
From a014573ad193775b2301e39275a1ca0ac3bb5847 Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Tue, 13 Mar 2012 13:54:51 -0400
Subject: [PATCH 2/3] r600: Add some target builtins
---
include/clang/Basic/BuiltinsR600.def | 32 ++++++++++++++++++++++++++++++++
include/clang/Basic/TargetBuiltins.h | 10 ++++++++++
lib/Basic/Targets.cpp | 12 ++++++++++--
3 files changed, 52 insertions(+), 2 deletions(-)
create mode 100644 include/clang/Basic/BuiltinsR600.def
diff --git a/include/clang/Basic/BuiltinsR600.def b/include/clang/Basic/BuiltinsR600.def
new file mode 100644
index 0000000..ce1f30e
--- /dev/null
+++ b/include/clang/Basic/BuiltinsR600.def
@@ -0,0 +1,32 @@
+//===--- BuiltinsR600.def - R600 Builtin function database -- --*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the R600-specific builtin function database. Users of
+// this file must define the BUILTIN macro to make use of this information.
+//
+//===----------------------------------------------------------------------===//
+//
+// Authors: Tom Stellard <thomas.stellard@amd.com>
+//
+
+// The format of this database matches clang/Basic/Builtins.def.
+
+BUILTIN(__builtin_r600_read_ngroups_x, "z", "nc")
+BUILTIN(__builtin_r600_read_ngroups_y, "z", "nc")
+BUILTIN(__builtin_r600_read_ngroups_z, "z", "nc")
+
+BUILTIN(__builtin_r600_read_tidig_x, "z", "nc")
+BUILTIN(__builtin_r600_read_tidig_y, "z", "nc")
+BUILTIN(__builtin_r600_read_tidig_z, "z", "nc")
+
+BUILTIN(__builtin_r600_read_tgid_x, "z", "nc")
+BUILTIN(__builtin_r600_read_tgid_y, "z", "nc")
+BUILTIN(__builtin_r600_read_tgid_z, "z", "nc")
+
+#undef BUILTIN
diff --git a/include/clang/Basic/TargetBuiltins.h b/include/clang/Basic/TargetBuiltins.h
index 7c04bf7..3460cd5 100644
--- a/include/clang/Basic/TargetBuiltins.h
+++ b/include/clang/Basic/TargetBuiltins.h
@@ -45,6 +45,16 @@ namespace clang {
};
}
+ /// R600 builtins
+ namespace R600 {
+ enum {
+ LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1,
+#define BUILTIN(ID, TYPE, ATTRS) BI##ID,
+#include "clang/Basic/BuiltinsR600.def"
+ LastTSBuiltin
+ };
+ }
+
/// X86 builtins
namespace X86 {
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 64dc01c..03f1a18 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -1070,6 +1070,7 @@ namespace {
namespace {
class AMDGPUTargetInfo : public TargetInfo {
+ static const Builtin::Info BuiltinInfo[];
public:
AMDGPUTargetInfo(const std::string& triple) : TargetInfo(triple) { }
@@ -1097,8 +1098,8 @@ public:
virtual void getTargetBuiltins(const Builtin::Info *&Records,
unsigned &NumRecords) const {
- Records = NULL;
- NumRecords = 0;
+ Records = BuiltinInfo;
+ NumRecords = clang::R600::LastTSBuiltin-Builtin::FirstTSBuiltin;
}
};
@@ -1132,6 +1133,13 @@ public:
}
};
+const Builtin::Info AMDGPUTargetInfo::BuiltinInfo[] = {
+#define BUILTIN(ID, TYPE, ATTRS) { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES },
+#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) { #ID, TYPE, ATTRS, HEADER,\
+ ALL_LANGUAGES },
+#include "clang/Basic/BuiltinsR600.def"
+};
+
} // end anonymous namespace
namespace {
--
1.7.7.6

View File

@ -0,0 +1,31 @@
From 2881b8189dcacc8ab6a336f0e107d72752c8c47e Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Wed, 14 Mar 2012 11:20:08 -0400
Subject: [PATCH 3/3] r600: Add read_global_size and read_local_size builtins
---
include/clang/Basic/BuiltinsR600.def | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/include/clang/Basic/BuiltinsR600.def b/include/clang/Basic/BuiltinsR600.def
index ce1f30e..c81758e 100644
--- a/include/clang/Basic/BuiltinsR600.def
+++ b/include/clang/Basic/BuiltinsR600.def
@@ -17,6 +17,14 @@
// The format of this database matches clang/Basic/Builtins.def.
+BUILTIN(__builtin_r600_read_global_size_x, "z", "nc")
+BUILTIN(__builtin_r600_read_global_size_y, "z", "nc")
+BUILTIN(__builtin_r600_read_global_size_z, "z", "nc")
+
+BUILTIN(__builtin_r600_read_local_size_x, "z", "nc")
+BUILTIN(__builtin_r600_read_local_size_y, "z", "nc")
+BUILTIN(__builtin_r600_read_local_size_z, "z", "nc")
+
BUILTIN(__builtin_r600_read_ngroups_x, "z", "nc")
BUILTIN(__builtin_r600_read_ngroups_y, "z", "nc")
BUILTIN(__builtin_r600_read_ngroups_z, "z", "nc")
--
1.7.7.6

View File

@ -0,0 +1,64 @@
From e25389b66b5ced3a2b5461077dcc9a505d334e3d Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Tue, 13 Mar 2012 14:12:21 -0400
Subject: [PATCH 1/2] r600: Add some intrinsic definitions
---
include/llvm/Intrinsics.td | 1 +
include/llvm/IntrinsicsR600.td | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)
create mode 100644 include/llvm/IntrinsicsR600.td
diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td
index 069f907..e90dd85 100644
--- a/include/llvm/Intrinsics.td
+++ b/include/llvm/Intrinsics.td
@@ -441,3 +441,4 @@ include "llvm/IntrinsicsCellSPU.td"
include "llvm/IntrinsicsXCore.td"
include "llvm/IntrinsicsPTX.td"
include "llvm/IntrinsicsHexagon.td"
+include "llvm/IntrinsicsR600.td"
diff --git a/include/llvm/IntrinsicsR600.td b/include/llvm/IntrinsicsR600.td
new file mode 100644
index 0000000..789fecb
--- /dev/null
+++ b/include/llvm/IntrinsicsR600.td
@@ -0,0 +1,35 @@
+//===- IntrinsicsR600.td - Defines R600 intrinsics ---------*- tablegen -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines all of the R600-specific intrinsics.
+//
+//===----------------------------------------------------------------------===//
+//
+// Authors: Tom Stellard <thomas.stellard@amd.com>
+//
+
+let TargetPrefix = "r600" in {
+
+class R600ReadPreloadRegisterIntrinsic<string name>
+ : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
+ GCCBuiltin<name>;
+
+multiclass R600ReadPreloadRegisterIntrinsic_xyz<string prefix> {
+ def _x : R600ReadPreloadRegisterIntrinsic<!strconcat(prefix, "_x")>;
+ def _y : R600ReadPreloadRegisterIntrinsic<!strconcat(prefix, "_y")>;
+ def _z : R600ReadPreloadRegisterIntrinsic<!strconcat(prefix, "_z")>;
+}
+
+defm int_r600_read_ngroups : R600ReadPreloadRegisterIntrinsic_xyz <
+ "__builtin_r600_read_ngroups">;
+defm int_r600_read_tgid : R600ReadPreloadRegisterIntrinsic_xyz <
+ "__builtin_r600_read_tgid">;
+defm int_r600_read_tidig : R600ReadPreloadRegisterIntrinsic_xyz <
+ "__builtin_r600_read_tidig">;
+} // End TargetPrefix = "r600"
--
1.7.7.6

View File

@ -0,0 +1,27 @@
From 17667fa3450470f7c89fc2ba4631d908cf510749 Mon Sep 17 00:00:00 2001
From: Tom Stellard <thomas.stellard@amd.com>
Date: Wed, 14 Mar 2012 11:19:35 -0400
Subject: [PATCH 2/2] r600: Add get_global_size and get_local_size intrinsics
---
include/llvm/IntrinsicsR600.td | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/include/llvm/IntrinsicsR600.td b/include/llvm/IntrinsicsR600.td
index 789fecb..0473acb 100644
--- a/include/llvm/IntrinsicsR600.td
+++ b/include/llvm/IntrinsicsR600.td
@@ -26,6 +26,10 @@ multiclass R600ReadPreloadRegisterIntrinsic_xyz<string prefix> {
def _z : R600ReadPreloadRegisterIntrinsic<!strconcat(prefix, "_z")>;
}
+defm int_r600_read_global_size : R600ReadPreloadRegisterIntrinsic_xyz <
+ "__builtin_r600_read_global_size">;
+defm int_r600_read_local_size : R600ReadPreloadRegisterIntrinsic_xyz <
+ "__builtin_r600_read_local_size">;
defm int_r600_read_ngroups : R600ReadPreloadRegisterIntrinsic_xyz <
"__builtin_r600_read_ngroups">;
defm int_r600_read_tgid : R600ReadPreloadRegisterIntrinsic_xyz <
--
1.7.7.6

View File

@ -0,0 +1,53 @@
diff -Naur llvm-2.7.orig//tools/clang/docs/Makefile llvm-2.7/tools/clang/docs/Makefile
--- llvm-2.7.orig//tools/clang/docs/Makefile 2010-04-26 18:38:45.000000000 +0200
+++ llvm-2.7/tools/clang/docs/Makefile 2010-04-26 18:41:08.000000000 +0200
@@ -46,13 +46,12 @@
# 'make generated BUILD_FOR_WEBSITE=1'
generated:: doxygen
-install-html: $(PROJ_OBJ_DIR)/html.tar.gz
+install-html:
$(Echo) Installing HTML documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/img
$(Verb) $(DataInstall) $(HTML) $(DESTDIR)$(PROJ_docsdir)/html
# $(Verb) $(DataInstall) $(IMAGES) $(DESTDIR)$(PROJ_docsdir)/html/img
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(PROJ_OBJ_DIR)/html.tar.gz: $(HTML)
$(Echo) Packaging HTML documentation
@@ -64,12 +63,11 @@
install-doxygen: doxygen
$(Echo) Installing doxygen documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/doxygen
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(Verb) cd $(PROJ_OBJ_DIR)/doxygen && \
$(FIND) . -type f -exec \
$(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/html/doxygen \;
-doxygen: regendoc $(PROJ_OBJ_DIR)/doxygen.tar.gz
+doxygen: regendoc
regendoc:
$(Echo) Building doxygen documentation
diff -Naur llvm-2.7.orig//tools/clang/docs/tools/Makefile llvm-2.7/tools/clang/docs/tools/Makefile
--- llvm-2.7.orig//tools/clang/docs/tools/Makefile 2010-04-26 18:38:45.000000000 +0200
+++ llvm-2.7/tools/clang/docs/tools/Makefile 2010-04-26 18:41:29.000000000 +0200
@@ -24,7 +24,7 @@
CLANG_VERSION := trunk
# If we are in BUILD_FOR_WEBSITE mode, default to the all target.
-all:: html man ps
+all:: html man
clean:
rm -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
@@ -58,7 +58,7 @@
ifdef ONLY_MAN_DOCS
INSTALL_TARGETS := install-man
else
-INSTALL_TARGETS := install-html install-man install-ps
+INSTALL_TARGETS := install-html install-man
endif
.SUFFIXES:

View File

@ -0,0 +1,258 @@
Index: include/llvm/ADT/StringMap.h
===================================================================
--- include/llvm/ADT/StringMap.h (révision 117773)
+++ include/llvm/ADT/StringMap.h (révision 117774)
@@ -167,7 +167,7 @@
unsigned AllocSize = static_cast<unsigned>(sizeof(StringMapEntry))+
KeyLength+1;
- unsigned Alignment = alignof<StringMapEntry>();
+ unsigned Alignment = alignOf<StringMapEntry>();
StringMapEntry *NewItem =
static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize,Alignment));
Index: include/llvm/Support/AlignOf.h
===================================================================
--- include/llvm/Support/AlignOf.h (révision 117773)
+++ include/llvm/Support/AlignOf.h (révision 117774)
@@ -49,12 +49,12 @@
};
-/// alignof - A templated function that returns the mininum alignment of
+/// alignOf - A templated function that returns the mininum alignment of
/// of a type. This provides no extra functionality beyond the AlignOf
/// class besides some cosmetic cleanliness. Example usage:
-/// alignof<int>() returns the alignment of an int.
+/// alignOf<int>() returns the alignment of an int.
template <typename T>
-static inline unsigned alignof() { return AlignOf<T>::Alignment; }
+static inline unsigned alignOf() { return AlignOf<T>::Alignment; }
} // end namespace llvm
#endif
Index: include/llvm/Support/Allocator.h
===================================================================
--- include/llvm/Support/Allocator.h (révision 117773)
+++ include/llvm/Support/Allocator.h (révision 117774)
@@ -201,7 +201,7 @@
char *End = Slab == Allocator.CurSlab ? Allocator.CurPtr :
(char *)Slab + Slab->Size;
for (char *Ptr = (char*)(Slab+1); Ptr < End; Ptr += sizeof(T)) {
- Ptr = Allocator.AlignPtr(Ptr, alignof<T>());
+ Ptr = Allocator.AlignPtr(Ptr, alignOf<T>());
if (Ptr + sizeof(T) <= End)
reinterpret_cast<T*>(Ptr)->~T();
}
Index: include/llvm/CodeGen/SlotIndexes.h
===================================================================
--- include/llvm/CodeGen/SlotIndexes.h (révision 117773)
+++ include/llvm/CodeGen/SlotIndexes.h (révision 117774)
@@ -393,7 +393,7 @@
IndexListEntry *entry =
static_cast<IndexListEntry*>(
ileAllocator.Allocate(sizeof(IndexListEntry),
- alignof<IndexListEntry>()));
+ alignOf<IndexListEntry>()));
new (entry) IndexListEntry(mi, index);
Index: tools/clang/lib/Basic/IdentifierTable.cpp
===================================================================
--- tools/clang/lib/Basic/IdentifierTable.cpp (révision 117774)
+++ tools/clang/lib/Basic/IdentifierTable.cpp (révision 117775)
@@ -390,7 +390,7 @@
unsigned Size = sizeof(MultiKeywordSelector) + nKeys*sizeof(IdentifierInfo *);
MultiKeywordSelector *SI =
(MultiKeywordSelector*)SelTabImpl.Allocator.Allocate(Size,
- llvm::alignof<MultiKeywordSelector>());
+ llvm::alignOf<MultiKeywordSelector>());
new (SI) MultiKeywordSelector(nKeys, IIV);
SelTabImpl.Table.InsertNode(SI, InsertPos);
return Selector(SI);
Index: tools/clang/lib/AST/ExprCXX.cpp
===================================================================
--- tools/clang/lib/AST/ExprCXX.cpp (révision 117774)
+++ tools/clang/lib/AST/ExprCXX.cpp (révision 117775)
@@ -233,7 +233,7 @@
if (NumTemplateArgs != 0)
size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedLookupExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedLookupExpr>());
UnresolvedLookupExpr *E = new (Mem) UnresolvedLookupExpr(EmptyShell());
E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
return E;
@@ -261,7 +261,7 @@
if (NumResults) {
Results = static_cast<DeclAccessPair *>(
C.Allocate(sizeof(DeclAccessPair) * NumResults,
- llvm::alignof<DeclAccessPair>()));
+ llvm::alignOf<DeclAccessPair>()));
memcpy(Results, &*Begin.getIterator(),
NumResults * sizeof(DeclAccessPair));
}
@@ -737,7 +737,7 @@
if (TemplateArgs)
size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
return new (Mem) CXXDependentScopeMemberExpr(C, Base, BaseType,
IsArrow, OperatorLoc,
Qualifier, QualifierRange,
@@ -756,7 +756,7 @@
std::size_t size = sizeof(CXXDependentScopeMemberExpr) +
ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
CXXDependentScopeMemberExpr *E
= new (Mem) CXXDependentScopeMemberExpr(C, 0, QualType(),
0, SourceLocation(), 0,
@@ -812,7 +812,7 @@
if (TemplateArgs)
size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
return new (Mem) UnresolvedMemberExpr(C,
Dependent ? C.DependentTy : C.OverloadTy,
Dependent, HasUnresolvedUsing, Base, BaseType,
@@ -826,7 +826,7 @@
if (NumTemplateArgs != 0)
size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
UnresolvedMemberExpr *E = new (Mem) UnresolvedMemberExpr(EmptyShell());
E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
return E;
Index: tools/clang/lib/AST/DeclObjC.cpp
===================================================================
--- tools/clang/lib/AST/DeclObjC.cpp (révision 117774)
+++ tools/clang/lib/AST/DeclObjC.cpp (révision 117775)
@@ -711,7 +711,7 @@
void ObjCClassDecl::setClassList(ASTContext &C, ObjCInterfaceDecl*const*List,
const SourceLocation *Locs, unsigned Num) {
ForwardDecls = (ObjCClassRef*) C.Allocate(sizeof(ObjCClassRef)*Num,
- llvm::alignof<ObjCClassRef>());
+ llvm::alignOf<ObjCClassRef>());
for (unsigned i = 0; i < Num; ++i)
new (&ForwardDecls[i]) ObjCClassRef(List[i], Locs[i]);
Index: tools/clang/lib/AST/Stmt.cpp
===================================================================
--- tools/clang/lib/AST/Stmt.cpp (révision 117774)
+++ tools/clang/lib/AST/Stmt.cpp (révision 117775)
@@ -416,7 +416,7 @@
Stmt *atFinallyStmt) {
unsigned Size = sizeof(ObjCAtTryStmt) +
(1 + NumCatchStmts + (atFinallyStmt != 0)) * sizeof(Stmt *);
- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
return new (Mem) ObjCAtTryStmt(atTryLoc, atTryStmt, CatchStmts, NumCatchStmts,
atFinallyStmt);
}
@@ -426,7 +426,7 @@
bool HasFinally) {
unsigned Size = sizeof(ObjCAtTryStmt) +
(1 + NumCatchStmts + HasFinally) * sizeof(Stmt *);
- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
return new (Mem) ObjCAtTryStmt(EmptyShell(), NumCatchStmts, HasFinally);
}
@@ -448,7 +448,7 @@
std::size_t Size = sizeof(CXXTryStmt);
Size += ((numHandlers + 1) * sizeof(Stmt));
- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
return new (Mem) CXXTryStmt(tryLoc, tryBlock, handlers, numHandlers);
}
@@ -457,7 +457,7 @@
std::size_t Size = sizeof(CXXTryStmt);
Size += ((numHandlers + 1) * sizeof(Stmt));
- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
return new (Mem) CXXTryStmt(Empty, numHandlers);
}
Index: tools/clang/lib/AST/Expr.cpp
===================================================================
--- tools/clang/lib/AST/Expr.cpp (révision 117774)
+++ tools/clang/lib/AST/Expr.cpp (révision 117775)
@@ -257,7 +257,7 @@
if (TemplateArgs)
Size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
return new (Mem) DeclRefExpr(Qualifier, QualifierRange, D, NameInfo,
TemplateArgs, T);
}
@@ -271,7 +271,7 @@
if (NumTemplateArgs)
Size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
return new (Mem) DeclRefExpr(EmptyShell());
}
@@ -432,7 +432,7 @@
// any concatenated string tokens.
void *Mem = C.Allocate(sizeof(StringLiteral)+
sizeof(SourceLocation)*(NumStrs-1),
- llvm::alignof<StringLiteral>());
+ llvm::alignOf<StringLiteral>());
StringLiteral *SL = new (Mem) StringLiteral(Ty);
// OPTIMIZE: could allocate this appended to the StringLiteral.
@@ -452,7 +452,7 @@
StringLiteral *StringLiteral::CreateEmpty(ASTContext &C, unsigned NumStrs) {
void *Mem = C.Allocate(sizeof(StringLiteral)+
sizeof(SourceLocation)*(NumStrs-1),
- llvm::alignof<StringLiteral>());
+ llvm::alignOf<StringLiteral>());
StringLiteral *SL = new (Mem) StringLiteral(QualType());
SL->StrData = 0;
SL->ByteLength = 0;
@@ -714,7 +714,7 @@
if (targs)
Size += ExplicitTemplateArgumentList::sizeFor(*targs);
- void *Mem = C.Allocate(Size, llvm::alignof<MemberExpr>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<MemberExpr>());
MemberExpr *E = new (Mem) MemberExpr(base, isarrow, memberdecl, nameinfo, ty);
if (hasQualOrFound) {
Index: tools/clang/lib/AST/DeclCXX.cpp
===================================================================
--- tools/clang/lib/AST/DeclCXX.cpp (révision 117774)
+++ tools/clang/lib/AST/DeclCXX.cpp (révision 117775)
@@ -1057,7 +1057,7 @@
unsigned NumIndices) {
void *Mem = Context.Allocate(sizeof(CXXBaseOrMemberInitializer) +
sizeof(VarDecl *) * NumIndices,
- llvm::alignof<CXXBaseOrMemberInitializer>());
+ llvm::alignOf<CXXBaseOrMemberInitializer>());
return new (Mem) CXXBaseOrMemberInitializer(Context, Member, MemberLoc,
L, Init, R, Indices, NumIndices);
}
Index: tools/clang/lib/Lex/TokenLexer.cpp
===================================================================
--- tools/clang/lib/Lex/TokenLexer.cpp (révision 117774)
+++ tools/clang/lib/Lex/TokenLexer.cpp (révision 117775)
@@ -287,7 +287,7 @@
llvm::BumpPtrAllocator &Alloc = PP.getPreprocessorAllocator();
Token *Res =
static_cast<Token *>(Alloc.Allocate(sizeof(Token)*ResultToks.size(),
- llvm::alignof<Token>()));
+ llvm::alignOf<Token>()));
if (NumTokens)
memcpy(Res, &ResultToks[0], NumTokens*sizeof(Token));
Tokens = Res;

View File

@ -0,0 +1,127 @@
This code looks as if it is written by Apple, lots of assumptions that
only hold for them and their scenario.
--- tools/clang/lib/Driver/ToolChains.cpp
+++ tools/clang/lib/Driver/ToolChains.cpp
@@ -131,7 +131,7 @@
GCCVersion[2] = 1;
// Set up the tool chain paths to match gcc.
- ToolChainDir = "i686-apple-darwin";
+ ToolChainDir = "@GENTOO_PORTAGE_CHOST@";
ToolChainDir += llvm::utostr(DarwinVersion[0]);
ToolChainDir += "/";
ToolChainDir += llvm::utostr(GCCVersion[0]);
@@ -141,9 +141,9 @@
ToolChainDir += llvm::utostr(GCCVersion[2]);
// Try the next major version if that tool chain dir is invalid.
- std::string Tmp = "/usr/lib/gcc/" + ToolChainDir;
+ std::string Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir;
if (!llvm::sys::Path(Tmp).exists()) {
- std::string Next = "i686-apple-darwin";
+ std::string Next = "@GENTOO_PORTAGE_CHOST_ARCH@";
Next += llvm::utostr(DarwinVersion[0] + 1);
Next += "/";
Next += llvm::utostr(GCCVersion[0]);
@@ -155,7 +155,7 @@
// Use that if it exists, otherwise hope the user isn't linking.
//
// FIXME: Drop dependency on gcc's tool chain.
- Tmp = "/usr/lib/gcc/" + Next;
+ Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + Next;
if (llvm::sys::Path(Tmp).exists())
ToolChainDir = Next;
}
@@ -168,7 +168,7 @@
Path += "/x86_64";
getFilePaths().push_back(Path);
- Path = "/usr/lib/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/";
Path += ToolChainDir;
Path += "/x86_64";
getFilePaths().push_back(Path);
@@ -179,7 +179,7 @@
Path += ToolChainDir;
getFilePaths().push_back(Path);
- Path = "/usr/lib/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/";
Path += ToolChainDir;
getFilePaths().push_back(Path);
@@ -188,7 +188,7 @@
Path += ToolChainDir;
getProgramPaths().push_back(Path);
- Path = "/usr/libexec/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/";
Path += ToolChainDir;
getProgramPaths().push_back(Path);
@@ -291,14 +291,14 @@
// FIXME: Derive these correctly.
if (getArchName() == "x86_64") {
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/x86_64"));
// Intentionally duplicated for (temporary) gcc bug compatibility.
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/x86_64"));
}
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/" + ToolChainDir));
Tmp = getDriver().Dir + "/../lib/gcc/" + ToolChainDir;
if (llvm::sys::Path(Tmp).exists())
@@ -306,18 +306,18 @@
Tmp = getDriver().Dir + "/../lib/gcc";
if (llvm::sys::Path(Tmp).exists())
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir));
// Intentionally duplicated for (temporary) gcc bug compatibility.
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir));
Tmp = getDriver().Dir + "/../lib/" + ToolChainDir;
if (llvm::sys::Path(Tmp).exists())
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
Tmp = getDriver().Dir + "/../lib";
if (llvm::sys::Path(Tmp).exists())
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/../../../" + ToolChainDir));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/../../.."));
}
@@ -386,22 +386,7 @@
P.eraseComponent(); // .../usr/bin -> ../usr
P.appendComponent("lib");
P.appendComponent("gcc");
- switch (getTriple().getArch()) {
- default:
- assert(0 && "Invalid Darwin arch!");
- case llvm::Triple::x86:
- case llvm::Triple::x86_64:
- P.appendComponent("i686-apple-darwin10");
- break;
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
- P.appendComponent("arm-apple-darwin10");
- break;
- case llvm::Triple::ppc:
- case llvm::Triple::ppc64:
- P.appendComponent("powerpc-apple-darwin10");
- break;
- }
+ P.appendComponent("@GENTOO_PORTAGE_CHOST@");
P.appendComponent("4.2.1");
// Determine the arch specific GCC subdirectory.

View File

@ -0,0 +1,16 @@
Index: tools/clang/lib/Frontend/InitHeaderSearch.cpp
===================================================================
--- tools/clang/lib/Frontend/InitHeaderSearch.cpp (révision 119347)
+++ tools/clang/lib/Frontend/InitHeaderSearch.cpp (révision 119348)
@@ -745,6 +745,11 @@
"/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/include/g++-v4",
"x86_64-pc-linux-gnu", "32", "", triple);
+ // Gentoo amd64 gcc 4.4.4
+ AddGnuCPlusPlusIncludePaths(
+ "/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/include/g++-v4",
+ "x86_64-pc-linux-gnu", "32", "", triple);
+
// Gentoo amd64 llvm-gcc trunk
AddGnuCPlusPlusIncludePaths(
"/usr/lib/llvm-gcc-4.2-9999/include/c++/4.2.1",

View File

@ -0,0 +1,125 @@
--- tools/clang/lib/Driver/ToolChains.cpp.orig 2011-03-21 22:29:27.000000000 +0100
+++ tools/clang/lib/Driver/ToolChains.cpp 2011-04-07 10:33:41.771314057 +0200
@@ -139,7 +139,7 @@
GCCVersion[2] = 1;
// Set up the tool chain paths to match gcc.
- ToolChainDir = "i686-apple-darwin";
+ ToolChainDir = "@GENTOO_PORTAGE_CHOST@";
ToolChainDir += llvm::utostr(DarwinVersion[0]);
ToolChainDir += "/";
ToolChainDir += llvm::utostr(GCCVersion[0]);
@@ -149,10 +149,10 @@
ToolChainDir += llvm::utostr(GCCVersion[2]);
// Try the next major version if that tool chain dir is invalid.
- std::string Tmp = "/usr/lib/gcc/" + ToolChainDir;
+ std::string Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir;
bool Exists;
if (llvm::sys::fs::exists(Tmp, Exists) || Exists) {
- std::string Next = "i686-apple-darwin";
+ std::string Next = "@GENTOO_PORTAGE_CHOST_ARCH@";
Next += llvm::utostr(DarwinVersion[0] + 1);
Next += "/";
Next += llvm::utostr(GCCVersion[0]);
@@ -164,7 +164,7 @@
// Use that if it exists, otherwise hope the user isn't linking.
//
// FIXME: Drop dependency on gcc's tool chain.
- Tmp = "/usr/lib/gcc/" + Next;
+ Tmp = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + Next;
if (!llvm::sys::fs::exists(Tmp, Exists) && Exists)
ToolChainDir = Next;
}
@@ -177,7 +177,7 @@
Path += "/x86_64";
getFilePaths().push_back(Path);
- Path = "/usr/lib/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/";
Path += ToolChainDir;
Path += "/x86_64";
getFilePaths().push_back(Path);
@@ -188,7 +188,7 @@
Path += ToolChainDir;
getFilePaths().push_back(Path);
- Path = "/usr/lib/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/";
Path += ToolChainDir;
getFilePaths().push_back(Path);
@@ -197,7 +197,7 @@
Path += ToolChainDir;
getProgramPaths().push_back(Path);
- Path = "/usr/libexec/gcc/";
+ Path = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/";
Path += ToolChainDir;
getProgramPaths().push_back(Path);
@@ -300,14 +300,14 @@
// FIXME: Derive these correctly.
if (getArchName() == "x86_64") {
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/x86_64"));
// Intentionally duplicated for (temporary) gcc bug compatibility.
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/x86_64"));
}
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/" + ToolChainDir));
Tmp = getDriver().Dir + "/../lib/gcc/" + ToolChainDir;
bool Exists;
@@ -316,18 +316,18 @@
Tmp = getDriver().Dir + "/../lib/gcc";
if (!llvm::sys::fs::exists(Tmp, Exists) && Exists)
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir));
// Intentionally duplicated for (temporary) gcc bug compatibility.
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir));
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir));
Tmp = getDriver().Dir + "/../lib/" + ToolChainDir;
if (!llvm::sys::fs::exists(Tmp, Exists) && Exists)
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
Tmp = getDriver().Dir + "/../lib";
if (!llvm::sys::fs::exists(Tmp, Exists) && Exists)
CmdArgs.push_back(Args.MakeArgString("-L" + Tmp));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/../../../" + ToolChainDir));
- CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir +
+ CmdArgs.push_back(Args.MakeArgString("-L@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/" + ToolChainDir +
"/../../.."));
}
@@ -416,22 +416,7 @@
P.eraseComponent(); // .../usr/bin -> ../usr
P.appendComponent("lib");
P.appendComponent("gcc");
- switch (getTriple().getArch()) {
- default:
- assert(0 && "Invalid Darwin arch!");
- case llvm::Triple::x86:
- case llvm::Triple::x86_64:
- P.appendComponent("i686-apple-darwin10");
- break;
- case llvm::Triple::arm:
- case llvm::Triple::thumb:
- P.appendComponent("arm-apple-darwin10");
- break;
- case llvm::Triple::ppc:
- case llvm::Triple::ppc64:
- P.appendComponent("powerpc-apple-darwin10");
- break;
- }
+ P.appendComponent("@GENTOO_PORTAGE_CHOST@");
P.appendComponent("4.2.1");
// Determine the arch specific GCC subdirectory.

View File

@ -0,0 +1,12 @@
--- a/llvm-2.9/tools/clang/lib/Driver/ToolChains.cpp 2011-08-10 15:05:32.969155113 -0400
+++ a/llvm-2.9/tools/clang/lib/Driver/ToolChains.cpp 2011-08-10 15:06:45.449159147 -0400
@@ -1449,7 +1449,8 @@
GccTriple = "i586-suse-linux";
}
- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
+ const char* GccVersions[] = {"4.6.2", "4.6.1", "4.6", "4.5.3", "4.5.2",
+ "4.5.1", "4.5", "4.4.6", "4.4.5", "4.4.4",
"4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
"4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
"4.2"};

View File

@ -0,0 +1,21 @@
Bug #387309
--- llvm/tools/clang/lib/Driver/ToolChains.cpp.orig 2011-11-09 23:10:04.000000000 +0100
+++ llvm/tools/clang/lib/Driver/ToolChains.cpp 2011-11-09 23:11:04.000000000 +0100
@@ -1586,12 +1586,13 @@
// This is of the form /foo/bar/include/c++/4.5.2/
if (CxxIncludeRoot.back() == '/')
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the /
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the g++-v4
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include
StringRef Version = llvm::sys::path::filename(CxxIncludeRoot);
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the version
- llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the c++
- llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the ARCH
GccInstallPath = CxxIncludeRoot.str();
- GccInstallPath.append("/lib/gcc/");
+ GccInstallPath.append("/");
GccInstallPath.append(CXX_INCLUDE_ARCH);
GccInstallPath.append("/");
GccInstallPath.append(Version);

View File

@ -0,0 +1,20 @@
diff -upNr a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp
--- a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 15:45:01.333127000 -0400
+++ b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 16:16:26.023642076 -0400
@@ -1215,6 +1215,16 @@ FreeBSD::FreeBSD(const HostInfo &Host, c
} else {
getFilePaths().push_back("/usr/lib");
}
+
+ llvm::OwningPtr<llvm::MemoryBuffer> File;
+ if (!llvm::MemoryBuffer::getFile("/etc/env.d/gcc/config-" + getDriver().DefaultHostTriple, File))
+ {
+ bool Exists;
+ StringRef Version = File.get()->getBuffer().rsplit('-').second.substr(0,5);
+ const std::string GentooPath = "/usr/lib/gcc/" + getDriver().DefaultHostTriple + "/" + Version.str();
+ if (!llvm::sys::fs::exists(GentooPath + "/crtbegin.o", Exists) && Exists)
+ getFilePaths().push_back(GentooPath);
+ }
}
Tool &FreeBSD::SelectTool(const Compilation &C, const JobAction &JA,

View File

@ -0,0 +1,29 @@
http://llvm.org/bugs/show_bug.cgi?id=8339
https://bugs.gentoo.org/show_bug.cgi?id=395013
http://llvm.org/viewvc/llvm-project?view=rev&revision=151612
Tweak version detection bit to cope with Gentoo's slightly different
output for ld -v.
--- autoconf/m4/link_options.m4
+++ autoconf/m4/link_options.m4
@@ -10,7 +10,7 @@
# Check for ld64.
if (echo "$version_string" | grep -q "ld64"); then
- llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)#\1#")
+ llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)\( (.*)\)\?#\1#")
else
llvm_cv_link_version=$(echo "$version_string" | sed -e "s#[^0-9]*\([0-9.]*\).*#\1#")
fi
--- configure
+++ configure
@@ -7528,7 +7528,7 @@
# Check for ld64.
if (echo "$version_string" | grep -q "ld64"); then
- llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)#\1#")
+ llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)\( (.*)\)\?#\1#")
else
llvm_cv_link_version=$(echo "$version_string" | sed -e "s#[^0-9]*\([0-9.]*\).*#\1#")
fi

View File

@ -0,0 +1,43 @@
diff -upNr a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp
--- a/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 15:39:01.070411000 -0400
+++ b/llvm-3.0.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-23 15:39:22.371785000 -0400
@@ -1382,6 +1382,7 @@ enum LinuxDistro {
DebianSqueeze,
DebianWheezy,
Exherbo,
+ Gentoo,
RHEL4,
RHEL5,
RHEL6,
@@ -1403,6 +1404,10 @@ enum LinuxDistro {
UnknownDistro
};
+static bool IsGentoo(enum LinuxDistro Distro) {
+ return Distro == Gentoo;
+}
+
static bool IsRedhat(enum LinuxDistro Distro) {
return Distro == Fedora13 || Distro == Fedora14 ||
Distro == Fedora15 || Distro == FedoraRawhide ||
@@ -1433,7 +1438,9 @@ static LinuxDistro DetectLinuxDistro(llv
SmallVector<StringRef, 8> Lines;
Data.split(Lines, "\n");
for (unsigned int i = 0, s = Lines.size(); i < s; ++ i) {
- if (Lines[i] == "DISTRIB_CODENAME=hardy")
+ if (Lines[i] == "DISTRIB_ID=\"Gentoo\"")
+ return Gentoo;
+ else if (Lines[i] == "DISTRIB_CODENAME=hardy")
return UbuntuHardy;
else if (Lines[i] == "DISTRIB_CODENAME=intrepid")
return UbuntuIntrepid;
@@ -1597,6 +1604,9 @@ Linux::GCCInstallationDetector::GCCInsta
GccInstallPath.append("/");
GccInstallPath.append(CXX_INCLUDE_ARCH);
GccInstallPath.append("/");
+ llvm::OwningPtr<llvm::MemoryBuffer> File;
+ if (!llvm::MemoryBuffer::getFile("/etc/env.d/gcc/config-" + D.DefaultHostTriple, File))
+ Version = File.get()->getBuffer().rsplit('-').second.substr(0,5);
GccInstallPath.append(Version);
GccParentLibPath = GccInstallPath + "/../../..";
IsValid = true;

View File

@ -0,0 +1,82 @@
--- llvm.orig/contrib/llvm/tools/clang/lib/Basic/Targets.cpp 2011/10/22 14:08:43 226633
+++ llvm/contrib/llvm/tools/clang/lib/Basic/Targets.cpp 2011/10/30 22:20:17 226951
@@ -1282,6 +1282,7 @@
CK_K8SSE3,
CK_Opteron,
CK_OpteronSSE3,
+ CK_AMDFAM10,
/// This specification is deprecated and will be removed in the future.
/// Users should prefer \see CK_K8.
@@ -1381,6 +1382,7 @@
.Case("k8-sse3", CK_K8SSE3)
.Case("opteron", CK_Opteron)
.Case("opteron-sse3", CK_OpteronSSE3)
+ .Case("amdfam10", CK_AMDFAM10)
.Case("x86-64", CK_x86_64)
.Case("geode", CK_Geode)
.Default(CK_Generic);
@@ -1441,6 +1443,7 @@
case CK_K8SSE3:
case CK_Opteron:
case CK_OpteronSSE3:
+ case CK_AMDFAM10:
case CK_x86_64:
return true;
}
@@ -1459,12 +1462,10 @@
Features["ssse3"] = false;
Features["sse41"] = false;
Features["sse42"] = false;
+ Features["sse4a"] = false;
Features["aes"] = false;
Features["avx"] = false;
- // LLVM does not currently recognize this.
- // Features["sse4a"] = false;
-
// FIXME: This *really* should not be here.
// X86_64 always has SSE2.
@@ -1561,6 +1562,11 @@
setFeatureEnabled(Features, "sse3", true);
setFeatureEnabled(Features, "3dnowa", true);
break;
+ case CK_AMDFAM10:
+ setFeatureEnabled(Features, "sse3", true);
+ setFeatureEnabled(Features, "sse4a", true);
+ setFeatureEnabled(Features, "3dnowa", true);
+ break;
case CK_C3_2:
setFeatureEnabled(Features, "mmx", true);
setFeatureEnabled(Features, "sse", true);
@@ -1604,6 +1610,8 @@
else if (Name == "avx")
Features["avx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
Features["ssse3"] = Features["sse41"] = Features["sse42"] = true;
+ else if (Name == "sse4a")
+ Features["sse4a"] = true;
} else {
if (Name == "mmx")
Features["mmx"] = Features["3dnow"] = Features["3dnowa"] = false;
@@ -1630,6 +1638,8 @@
Features["aes"] = false;
else if (Name == "avx")
Features["avx"] = false;
+ else if (Name == "sse4a")
+ Features["sse4a"] = false;
}
return true;
@@ -1826,6 +1836,11 @@
Builder.defineMacro("__k8__");
Builder.defineMacro("__tune_k8__");
break;
+ case CK_AMDFAM10:
+ Builder.defineMacro("__amdfam10");
+ Builder.defineMacro("__amdfam10__");
+ Builder.defineMacro("__tune_amdfam10__");
+ break;
case CK_Geode:
Builder.defineMacro("__geode");
Builder.defineMacro("__geode__");

View File

@ -0,0 +1,188 @@
diff --git a/a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp b/b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp
index 1e282f2..1d6835b 100644
--- a/a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp
+++ b/b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp
@@ -2305,6 +2305,162 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
}
}
+void FreeBSD::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ ArgStringList &CC1Args) const {
+ const Driver &D = getDriver();
+
+ if (DriverArgs.hasArg(options::OPT_nostdinc))
+ return;
+
+ if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
+ addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/local/include");
+
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
+ llvm::sys::Path P(D.ResourceDir);
+ P.appendComponent("include");
+ addSystemInclude(DriverArgs, CC1Args, P.str());
+ }
+
+ if (DriverArgs.hasArg(options::OPT_nostdlibinc))
+ return;
+
+ // Check for configure-time C include directories.
+ StringRef CIncludeDirs(C_INCLUDE_DIRS);
+ if (CIncludeDirs != "") {
+ SmallVector<StringRef, 5> dirs;
+ CIncludeDirs.split(dirs, ":");
+ for (SmallVectorImpl<StringRef>::iterator I = dirs.begin(), E = dirs.end();
+ I != E; ++I) {
+ StringRef Prefix = llvm::sys::path::is_absolute(*I) ? D.SysRoot : "";
+ addExternCSystemInclude(DriverArgs, CC1Args, Prefix + *I);
+ }
+ return;
+ }
+
+ // Lacking those, try to detect the correct set of system includes for the
+ // target triple.
+
+ // Implement generic Debian multiarch support.
+ const StringRef X86_64MultiarchIncludeDirs[] = {
+ "/usr/include/x86_64-linux-gnu",
+
+ // FIXME: These are older forms of multiarch. It's not clear that they're
+ // in use in any released version of Debian, so we should consider
+ // removing them.
+ "/usr/include/i686-linux-gnu/64",
+ "/usr/include/i486-linux-gnu/64"
+ };
+ const StringRef X86MultiarchIncludeDirs[] = {
+ "/usr/include/i386-linux-gnu",
+
+ // FIXME: These are older forms of multiarch. It's not clear that they're
+ // in use in any released version of Debian, so we should consider
+ // removing them.
+ "/usr/include/x86_64-linux-gnu/32",
+ "/usr/include/i686-linux-gnu",
+ "/usr/include/i486-linux-gnu"
+ };
+ const StringRef ARMMultiarchIncludeDirs[] = {
+ "/usr/include/arm-linux-gnueabi"
+ };
+ const StringRef MIPSMultiarchIncludeDirs[] = {
+ "/usr/include/mips-linux-gnu"
+ };
+ const StringRef MIPSELMultiarchIncludeDirs[] = {
+ "/usr/include/mipsel-linux-gnu"
+ };
+ const StringRef PPCMultiarchIncludeDirs[] = {
+ "/usr/include/powerpc-linux-gnu"
+ };
+ const StringRef PPC64MultiarchIncludeDirs[] = {
+ "/usr/include/powerpc64-linux-gnu"
+ };
+ ArrayRef<StringRef> MultiarchIncludeDirs;
+ if (getTriple().getArch() == llvm::Triple::x86_64) {
+ MultiarchIncludeDirs = X86_64MultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::x86) {
+ MultiarchIncludeDirs = X86MultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::arm) {
+ MultiarchIncludeDirs = ARMMultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::mips) {
+ MultiarchIncludeDirs = MIPSMultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::mipsel) {
+ MultiarchIncludeDirs = MIPSELMultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::ppc) {
+ MultiarchIncludeDirs = PPCMultiarchIncludeDirs;
+ } else if (getTriple().getArch() == llvm::Triple::ppc64) {
+ MultiarchIncludeDirs = PPC64MultiarchIncludeDirs;
+ }
+ for (ArrayRef<StringRef>::iterator I = MultiarchIncludeDirs.begin(),
+ E = MultiarchIncludeDirs.end();
+ I != E; ++I) {
+ if (llvm::sys::fs::exists(D.SysRoot + *I)) {
+ addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + *I);
+ break;
+ }
+ }
+
+ if (getTriple().getOS() == llvm::Triple::RTEMS)
+ return;
+
+ // Add an include of '/include' directly. This isn't provided by default by
+ // system GCCs, but is often used with cross-compiling GCCs, and harmless to
+ // add even when Clang is acting as-if it were a system compiler.
+ addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
+
+ addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include");
+}
+
+/// \brief Helper to add the thre variant paths for a libstdc++ installation.
+/*static*/ bool FreeBSD::addLibStdCXXIncludePaths(Twine Base, Twine TargetArchDir,
+ const ArgList &DriverArgs,
+ ArgStringList &CC1Args) {
+ if (!llvm::sys::fs::exists(Base))
+ return false;
+ addSystemInclude(DriverArgs, CC1Args, Base);
+ addSystemInclude(DriverArgs, CC1Args, Base + "/" + TargetArchDir);
+ addSystemInclude(DriverArgs, CC1Args, Base + "/backward");
+ return true;
+}
+
+void FreeBSD::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
+ ArgStringList &CC1Args) const {
+ if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
+ DriverArgs.hasArg(options::OPT_nostdincxx))
+ return;
+
+ // Check if libc++ has been enabled and provide its include paths if so.
+ if (GetCXXStdlibType(DriverArgs) == ToolChain::CST_Libcxx) {
+ // libc++ is always installed at a fixed path on Linux currently.
+ addSystemInclude(DriverArgs, CC1Args,
+ getDriver().SysRoot + "/usr/include/c++/v1");
+ return;
+ }
+
+ // We need a detected GCC installation on Linux to provide libstdc++'s
+ // headers. We handled the libc++ case above.
+ if (!GCCInstallation.isValid())
+ return;
+
+ // By default, look for the C++ headers in an include directory adjacent to
+ // the lib directory of the GCC installation. Note that this is expect to be
+ // equivalent to '/usr/include/c++/X.Y' in almost all cases.
+ StringRef LibDir = GCCInstallation.getParentLibPath();
+ StringRef InstallDir = GCCInstallation.getInstallPath();
+ StringRef Version = GCCInstallation.getVersion();
+ if (!addLibStdCXXIncludePaths(LibDir + "/../include/c++/" + Version,
+ (GCCInstallation.getTriple().str() +
+ GCCInstallation.getMultiarchSuffix()),
+ DriverArgs, CC1Args)) {
+ // Gentoo is weird and places its headers inside the GCC install, so if the
+ // first attempt to find the headers fails, try this pattern.
+ addLibStdCXXIncludePaths(InstallDir + "/include/g++-v4",
+ (GCCInstallation.getTriple().str() +
+ GCCInstallation.getMultiarchSuffix()),
+ DriverArgs, CC1Args);
+ }
+}
+
/// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
DragonFly::DragonFly(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)
diff --git a/a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.h b/b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.h
index eaa6be1..bba891e 100644
--- a/a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.h
+++ b/b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.h
@@ -489,6 +489,16 @@ public:
virtual Tool &SelectTool(const Compilation &C, const JobAction &JA,
const ActionList &Inputs) const;
+
+ virtual void AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ ArgStringList &CC1Args) const;
+ virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
+ ArgStringList &CC1Args) const;
+
+private:
+ static bool addLibStdCXXIncludePaths(Twine Base, Twine TargetArchDir,
+ const ArgList &DriverArgs,
+ ArgStringList &CC1Args);
};
class LLVM_LIBRARY_VISIBILITY NetBSD : public Generic_ELF {

View File

@ -0,0 +1,12 @@
diff -upNr a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp
--- a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 04:08:48.393073000 -0400
+++ b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 04:11:38.113153421 -0400
@@ -1635,6 +1635,8 @@ FreeBSD::FreeBSD(const Driver &D, const
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib32");
else
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
+
+ getFilePaths().push_back(GCCInstallation.getInstallPath());
}
Tool &FreeBSD::SelectTool(const Compilation &C, const JobAction &JA,

View File

@ -0,0 +1,29 @@
diff -upNr a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp
--- a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 03:32:31.593191000 -0400
+++ b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 03:38:31.733163513 -0400
@@ -1145,6 +1145,25 @@ Generic_GCC::GCCInstallationDetector::GC
Prefixes.push_back(D.InstalledDir + "/..");
}
+ llvm::OwningPtr<llvm::MemoryBuffer> File;
+ for (unsigned k = 0, ke = CandidateTripleAliases.size(); k < ke; ++k) {
+ if (!llvm::MemoryBuffer::getFile(D.SysRoot + "/etc/env.d/gcc/config-" + CandidateTripleAliases[k].str(), File))
+ {
+ bool Exists;
+ const std::string VersionText = File.get()->getBuffer().rsplit('-').second.substr(0,5).str();
+ const std::string GentooPath = D.SysRoot + "/usr/lib/gcc/" + CandidateTripleAliases[k].str() + "/" + VersionText;
+ if (!llvm::sys::fs::exists(GentooPath + "/crtbegin.o", Exists) && Exists)
+ {
+ Version = GCCVersion::Parse(VersionText);
+ GCCInstallPath = GentooPath;
+ GCCParentLibPath = GCCInstallPath + "/../../..";
+ GCCTriple.setTriple(CandidateTripleAliases[k]);
+ IsValid = true;
+ return;
+ }
+ }
+ }
+
// Loop over the various components which exist and select the best GCC
// installation available. GCC installs are ranked by version number.
Version = GCCVersion::Parse("0.0.0");

View File

@ -0,0 +1,15 @@
Backported from r155737.
diff --git a/llvm-3.1.src/tools/clang/include/clang/Parse/Parser.h b/llvm-3.1.src/tools/clang/include/clang/Parse/Parser.h
index 0ae5dc8..2a7464f 100644
--- a/llvm-3.1.src/tools/clang/include/clang/Parse/Parser.h
+++ b/llvm-3.1.src/tools/clang/include/clang/Parse/Parser.h
@@ -451,7 +451,7 @@ private:
}
}
- enum { MaxDepth = 256 };
+ enum { MaxDepth = 512 };
bool diagnoseOverflow();
bool diagnoseMissingClose();

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
<maintainer>
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
<maintainer>
<email>ryao@gentoo.org</email>
<name>Richard Yao</name>
</maintainer>
<longdescription>The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.
Features and Goals
Some of the goals for the project include the following:
End-User Features:
Fast compiles and low memory use
Expressive diagnostics
GCC compatibility
Utility and Applications:
Modular library based architecture
Support diverse clients (refactoring, static analysis, code generation, etc)
Allow tight integration with IDEs
Use the LLVM BSD License
Internal Design and Implementation:
A real-world, production quality compiler
A simple and hackable code base
A single unified parser for C, Objective C, C++, and Objective C++
Conformance with C/C++/ObjC and their variants</longdescription>
<use>
<flag name='multitarget'>Build all host targets (default: host only)</flag>
<flag name='static-analyzer'>Install the Clang static analyzer</flag>
<flag name='system-cxx-headers'>By default, clang++ searchs for C++ headers in a series of hardcoded paths. Enabling this flag will force it to use the active gcc profile ones</flag>
</use>
</pkgmetadata>