Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Nest
Overlay
Commits
7cb72937
Commit
7cb72937
authored
Apr 15, 2021
by
James T. Lee
Browse files
Add LLVM 9 from main Portage tree
parent
e4ca13ec
Pipeline
#644
passed with stage
in 16 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
330 additions
and
0 deletions
+330
-0
sys-devel/llvm/Manifest
sys-devel/llvm/Manifest
+4
-0
sys-devel/llvm/files/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
...lvm-config-Clean-up-exported-values-update-for-shar.patch
+34
-0
sys-devel/llvm/llvm-9.0.1.ebuild
sys-devel/llvm/llvm-9.0.1.ebuild
+292
-0
No files found.
sys-devel/llvm/Manifest
0 → 100644
View file @
7cb72937
AUX 9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 1188 BLAKE2B 72311a8da991b9f3b98523baefe6f5b31aa7f9101c388f35484dd5f384a08e838ea42a17447ca17a0dfe6b7d3c20abbdf0e8afee72e8ad5d46ec38b8d55307c8 SHA512 0ada997db2a0eb875105fb212dc3fc3077b9c4f7804d78c33c4b1f512bf1267295f325153ae14c00404c86e576ae1c78a6aeb0a57d1d4525aabd1169c21806ef
DIST llvm-9.0.0-manpages.tar.bz2 158546 BLAKE2B eed6235698a0b5993affe305f7fd22cd4cf444adf931275a1685f2049a5f17cf2933907577d9ce142348a3c579769b0436aa2b5a9a953958504125a8c3e83b7d SHA512 64c8d18061eb2870b379a1df485be0b61eac07cb10b3f97347b54b2ee326faa63437ca04466776be282e120dd3f6147e14fffdd38ca370db85748fe5eb54d764
DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59
EBUILD llvm-9.0.1.ebuild 8388 BLAKE2B 502ae7150a7d03c53f181fe4f69ea0f2a37dc94fc5920fab72f65207472c3754db8f9b1449b390121719a611588a46a099b75e8b7956a234ad7bfcff76732bd4 SHA512 d066d32c267ff95eccd39a24e588b6ac526259e5e7ca166a30f6a5a68d544ee433c44d7bfa981129043acd63d761745647ed19569f83ca995c1643ef3ba0fa64
sys-devel/llvm/files/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
0 → 100644
View file @
7cb72937
From 628b899be14a6bab4b32dbd53aabd447dcc16cb7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sat, 20 Aug 2016 23:47:41 +0200
Subject: [PATCH] llvm-config: Clean up exported values, update for shared
linking
Gentoo-specific fixup for llvm-config, including:
- making --src-root return invalid path (/dev/null).
Thanks to Steven Newbury for the initial patch.
Bug: https://bugs.gentoo.org/565358
Bug: https://bugs.gentoo.org/501684
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
index d780094861c..c61c72ff48c 100644
--- a/tools/llvm-config/llvm-config.cpp
+++ b/tools/llvm-config/llvm-config.cpp
@@ -549,7 +550,11 @@
int main(int argc, char **argv) {
} else if (Arg == "--obj-root") {
OS << ActivePrefix << '\n';
} else if (Arg == "--src-root") {
- OS << LLVM_SRC_ROOT << '\n';
+ if (IsInDevelopmentTree) {
+ OS << LLVM_SRC_ROOT << '\n';
+ } else {
+ OS << "/dev/null\n";
+ }
} else if (Arg == "--ignore-libllvm") {
LinkDyLib = false;
LinkMode = BuiltSharedLibs ? LinkModeShared : LinkModeAuto;
--
2.11.0
sys-devel/llvm/llvm-9.0.1.ebuild
0 → 100644
View file @
7cb72937
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI
=
7
PYTHON_COMPAT
=(
python3_
{
6,7
}
)
inherit cmake-utils llvm.org multilib-minimal multiprocessing
\
pax-utils python-any-r1 toolchain-funcs
# no changes in 9.0.1
MANPAGE_P
=
llvm-9.0.0-manpages
DESCRIPTION
=
"Low Level Virtual Machine"
HOMEPAGE
=
"https://llvm.org/"
SRC_URI
=
"
!doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/
${
MANPAGE_P
}
.tar.bz2 )"
LLVM_COMPONENTS
=(
llvm
)
llvm.org_set_globals
# Keep in sync with CMakeLists.txt
ALL_LLVM_TARGETS
=(
AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore
)
ALL_LLVM_TARGETS
=(
"
${
ALL_LLVM_TARGETS
[@]/#/llvm_targets_
}
"
)
# Additional licenses:
# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
# 2. xxhash: BSD.
# 3. MD5 code: public-domain.
# 4. ConvertUTF.h: TODO.
LICENSE
=
"Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT
=
"
$(
ver_cut 1
)
"
KEYWORDS
=
"amd64 arm arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos"
IUSE
=
"debug doc exegesis gold libedit +libffi ncurses test xar xml z3
kernel_Darwin
${
ALL_LLVM_TARGETS
[*]
}
"
REQUIRED_USE
=
"|| (
${
ALL_LLVM_TARGETS
[*]
}
)"
RESTRICT
=
"!test? ( test )"
RDEPEND
=
"
sys-libs/zlib:0=[
${
MULTILIB_USEDEP
}
]
exegesis? ( dev-libs/libpfm:= )
gold? ( >=sys-devel/binutils-2.31.1-r4:*[plugins] )
libedit? ( dev-libs/libedit:0=[
${
MULTILIB_USEDEP
}
] )
libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[
${
MULTILIB_USEDEP
}
] )
ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[
${
MULTILIB_USEDEP
}
] )
xar? ( app-arch/xar )
xml? ( dev-libs/libxml2:2=[
${
MULTILIB_USEDEP
}
] )
z3? ( >=sci-mathematics/z3-4.7.1:0=[
${
MULTILIB_USEDEP
}
] )"
DEPEND
=
"
${
RDEPEND
}
gold? ( sys-libs/binutils-libs )"
BDEPEND
=
"
dev-lang/perl
kernel_Darwin? (
<sys-libs/libcxx-
$(
ver_cut 1-3
)
.9999
>=sys-devel/binutils-apple-5.1
)
doc? (
$(
python_gen_any_dep
'
dev-python/recommonmark[${PYTHON_USEDEP}]
dev-python/sphinx[${PYTHON_USEDEP}]
'
)
)
libffi? ( virtual/pkgconfig )
${
PYTHON_DEPS
}
"
# There are no file collisions between these versions but having :0
# installed means llvm-config there will take precedence.
RDEPEND
=
"
${
RDEPEND
}
!sys-devel/llvm:0"
PDEPEND
=
"sys-devel/llvm-common
gold? ( >=sys-devel/llvmgold-
${
SLOT
}
)"
# least intrusive of all
CMAKE_BUILD_TYPE
=
RelWithDebInfo
python_check_deps
()
{
use doc
||
return
0
has_version
-b
"dev-python/recommonmark[
${
PYTHON_USEDEP
}
]"
&&
has_version
-b
"dev-python/sphinx[
${
PYTHON_USEDEP
}
]"
}
src_unpack
()
{
llvm.org_src_unpack
if
!
use doc
;
then
ebegin
"Unpacking
${
MANPAGE_P
}
.tar.bz2"
tar
-xf
"
${
DISTDIR
}
/
${
MANPAGE_P
}
.tar.bz2"
||
die
eend
${
?
}
fi
}
src_prepare
()
{
# Fix llvm-config for shared linking and sane flags
# https://bugs.gentoo.org/show_bug.cgi?id=565358
eapply
"
${
FILESDIR
}
"
/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
# disable use of SDK on OSX, bug #568758
sed
-i
-e
's/xcrun/false/'
utils/lit/lit/util.py
||
die
# User patches + QA
cmake-utils_src_prepare
}
# Is LLVM being linked against libc++?
is_libcxx_linked
()
{
local
code
=
'#include <ciso646>
#if defined(_LIBCPP_VERSION)
HAVE_LIBCXX
#endif
'
local
out
=
$($(
tc-getCXX
)
${
CXXFLAGS
}
${
CPPFLAGS
}
-x
c++
-E
-P
-
<<<
"
${
code
}
"
)
||
return
1
[[
${
out
}
==
*
HAVE_LIBCXX
*
]]
}
multilib_src_configure
()
{
local
ffi_cflags ffi_ldflags
if
use libffi
;
then
ffi_cflags
=
$($(
tc-getPKG_CONFIG
)
--cflags-only-I
libffi
)
ffi_ldflags
=
$($(
tc-getPKG_CONFIG
)
--libs-only-L
libffi
)
fi
local
libdir
=
$(
get_libdir
)
local
mycmakeargs
=(
# disable appending VCS revision to the version to improve
# direct cache hit ratio
-DLLVM_APPEND_VC_REV
=
OFF
-DCMAKE_INSTALL_PREFIX
=
"
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
"
-DLLVM_LIBDIR_SUFFIX
=
${
libdir
#lib
}
-DBUILD_SHARED_LIBS
=
ON
-DLLVM_TARGETS_TO_BUILD
=
"
${
LLVM_TARGETS
// /;
}
"
-DLLVM_BUILD_TESTS
=
$(
usex
test
)
-DLLVM_ENABLE_FFI
=
$(
usex libffi
)
-DLLVM_ENABLE_LIBEDIT
=
$(
usex libedit
)
-DLLVM_ENABLE_TERMINFO
=
$(
usex ncurses
)
-DLLVM_ENABLE_LIBXML2
=
$(
usex xml
)
-DLLVM_ENABLE_ASSERTIONS
=
$(
usex debug
)
-DLLVM_ENABLE_LIBPFM
=
$(
usex exegesis
)
-DLLVM_ENABLE_EH
=
ON
-DLLVM_ENABLE_RTTI
=
ON
-DLLVM_ENABLE_Z3_SOLVER
=
$(
usex z3
)
-DWITH_POLLY
=
OFF
# TODO
-DLLVM_HOST_TRIPLE
=
"
${
CHOST
}
"
-DFFI_INCLUDE_DIR
=
"
${
ffi_cflags
#-I
}
"
-DFFI_LIBRARY_DIR
=
"
${
ffi_ldflags
#-L
}
"
# used only for llvm-objdump tool
-DHAVE_LIBXAR
=
$(
multilib_native_usex xar 1 0
)
# disable OCaml bindings (now in dev-ml/llvm-ocaml)
-DOCAMLFIND
=
NO
)
if
is_libcxx_linked
;
then
# Smart hack: alter version suffix -> SOVERSION when linking
# against libc++. This way we won't end up mixing LLVM libc++
# libraries with libstdc++ clang, and the other way around.
mycmakeargs+
=(
-DLLVM_VERSION_SUFFIX
=
"libcxx"
)
fi
# Note: go bindings have no CMake rules at the moment
# but let's kill the check in case they are introduced
# if ! multilib_is_native_abi || ! use go; then
mycmakeargs+
=(
-DGO_EXECUTABLE
=
GO_EXECUTABLE-NOTFOUND
)
# fi
use
test
&&
mycmakeargs+
=(
-DLLVM_LIT_ARGS
=
"-vv;-j;
${
LIT_JOBS
:-
$(
makeopts_jobs
"
${
MAKEOPTS
}
"
"
$(
get_nproc
)
"
)
}
"
)
if
multilib_is_native_abi
;
then
mycmakeargs+
=(
-DLLVM_BUILD_DOCS
=
$(
usex doc
)
-DLLVM_ENABLE_OCAMLDOC
=
OFF
-DLLVM_ENABLE_SPHINX
=
$(
usex doc
)
-DLLVM_ENABLE_DOXYGEN
=
OFF
-DLLVM_INSTALL_UTILS
=
ON
)
use doc
&&
mycmakeargs+
=(
-DCMAKE_INSTALL_MANDIR
=
"
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/share/man"
-DLLVM_INSTALL_SPHINX_HTML_DIR
=
"
${
EPREFIX
}
/usr/share/doc/
${
PF
}
/html"
-DSPHINX_WARNINGS_AS_ERRORS
=
OFF
)
use gold
&&
mycmakeargs+
=(
-DLLVM_BINUTILS_INCDIR
=
"
${
EPREFIX
}
"
/usr/include
)
fi
if
tc-is-cross-compiler
;
then
local
tblgen
=
"
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/bin/llvm-tblgen"
[[
-x
"
${
tblgen
}
"
]]
\
||
die
"
${
tblgen
}
not found or usable"
mycmakeargs+
=(
-DCMAKE_CROSSCOMPILING
=
ON
-DLLVM_TABLEGEN
=
"
${
tblgen
}
"
)
fi
# workaround BMI bug in gcc-7 (fixed in 7.4)
# https://bugs.gentoo.org/649880
# apply only to x86, https://bugs.gentoo.org/650506
if
tc-is-gcc
&&
[[
${
MULTILIB_ABI_FLAG
}
==
abi_x86
*
]]
&&
[[
$(
gcc-major-version
)
-eq
7
&&
$(
gcc-minor-version
)
-lt
4
]]
then
local
CFLAGS
=
"
${
CFLAGS
}
-mno-bmi"
local
CXXFLAGS
=
"
${
CXXFLAGS
}
-mno-bmi"
fi
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
use debug
||
local
-x
CPPFLAGS
=
"
${
CPPFLAGS
}
-DNDEBUG"
cmake-utils_src_configure
}
multilib_src_compile
()
{
cmake-utils_src_compile
pax-mark m
"
${
BUILD_DIR
}
"
/bin/llvm-rtdyld
pax-mark m
"
${
BUILD_DIR
}
"
/bin/lli
pax-mark m
"
${
BUILD_DIR
}
"
/bin/lli-child-target
if
use
test
;
then
pax-mark m
"
${
BUILD_DIR
}
"
/unittests/ExecutionEngine/Orc/OrcJITTests
pax-mark m
"
${
BUILD_DIR
}
"
/unittests/ExecutionEngine/MCJIT/MCJITTests
pax-mark m
"
${
BUILD_DIR
}
"
/unittests/Support/SupportTests
fi
}
multilib_src_test
()
{
# respect TMPDIR!
local
-x
LIT_PRESERVES_TMP
=
1
cmake-utils_src_make check
}
src_install
()
{
local
MULTILIB_CHOST_TOOLS
=(
/usr/lib/llvm/
${
SLOT
}
/bin/llvm-config
)
local
MULTILIB_WRAPPED_HEADERS
=(
/usr/include/llvm/Config/llvm-config.h
)
local
LLVM_LDPATHS
=()
multilib-minimal_src_install
# move wrapped headers back
mv
"
${
ED
}
"
/usr/include
"
${
ED
}
"
/usr/lib/llvm/
${
SLOT
}
/include
||
die
}
multilib_src_install
()
{
cmake-utils_src_install
# move headers to /usr/include for wrapping
rm
-rf
"
${
ED
}
"
/usr/include
||
die
mv
"
${
ED
}
"
/usr/lib/llvm/
${
SLOT
}
/include
"
${
ED
}
"
/usr/include
||
die
LLVM_LDPATHS+
=(
"
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/
$(
get_libdir
)
"
)
}
multilib_src_install_all
()
{
local
revord
=
$((
9999
-
${
SLOT
}
))
newenvd -
"60llvm-
${
revord
}
"
<<-
_EOF_
PATH="
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/bin"
# we need to duplicate it in ROOTPATH for Portage to respect...
ROOTPATH="
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/bin"
MANPATH="
${
EPREFIX
}
/usr/lib/llvm/
${
SLOT
}
/share/man"
LDPATH="
$(
IFS
=
:
;
echo
"
${
LLVM_LDPATHS
[*]
}
"
)
"
_EOF_
# install pre-generated manpages
if
!
use doc
;
then
# (doman does not support custom paths)
insinto
"/usr/lib/llvm/
${
SLOT
}
/share/man/man1"
doins
"
${
WORKDIR
}
/
${
MANPAGE_P
}
/llvm"
/
*
.1
fi
docompress
"/usr/lib/llvm/
${
SLOT
}
/share/man"
}
pkg_postinst
()
{
elog
"You can find additional opt-viewer utility scripts in:"
elog
"
${
EROOT
}
/usr/lib/llvm/
${
SLOT
}
/share/opt-viewer"
elog
"To use these scripts, you will need Python along with the following"
elog
"packages:"
elog
" dev-python/pygments (for opt-viewer)"
elog
" dev-python/pyyaml (for all of them)"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment