summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-12-19 16:36:18 -0500
committerMike Frysinger <vapier@gentoo.org>2015-12-19 18:28:59 -0500
commitdc95bdeba8feeaefea57bc1c81f5473415616e1a (patch)
tree76b1942619e20e016d5c1b9de350429e4ca80ea2
parentdev-vcs/gitolite-gentoo: Fix blocker. (diff)
downloadgentoo-dc95bdeba8feeaefea57bc1c81f5473415616e1a.tar.gz
gentoo-dc95bdeba8feeaefea57bc1c81f5473415616e1a.tar.bz2
gentoo-dc95bdeba8feeaefea57bc1c81f5473415616e1a.zip
sys-devel/gcc: add support for USE=jit #568834
-rw-r--r--eclass/toolchain.eclass10
-rw-r--r--sys-devel/gcc/metadata.xml2
2 files changed, 12 insertions, 0 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 43fa8bffc97..b18d41816eb 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -152,6 +152,7 @@ if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then
# the older versions, we don't want to bother supporting it. #448024
tc_version_is_at_least 4.8 && IUSE+=" graphite" IUSE_DEF+=( sanitize )
tc_version_is_at_least 4.9 && IUSE+=" cilk"
+ tc_version_is_at_least 5.0 && IUSE+=" jit"
tc_version_is_at_least 6.0 && IUSE+=" pie +ssp"
fi
@@ -841,6 +842,7 @@ toolchain_src_configure() {
is_d && GCC_LANG+=",d"
is_gcj && GCC_LANG+=",java"
is_go && GCC_LANG+=",go"
+ is_jit && GCC_LANG+=",jit"
if is_objc || is_objcxx ; then
GCC_LANG+=",objc"
if tc_version_is_at_least 4 ; then
@@ -904,6 +906,9 @@ toolchain_src_configure() {
confgcc+=( --enable-libstdcxx-time )
fi
+ # The jit language requires this.
+ is_jit && confgcc+=( --enable-host-shared )
+
# # Turn on the -Wl,--build-id flag by default for ELF targets. #525942
# # This helps with locating debug files.
# case ${CTARGET} in
@@ -2155,6 +2160,11 @@ is_go() {
use cxx && use_if_iuse go
}
+is_jit() {
+ gcc-lang-supported jit || return 1
+ use_if_iuse jit
+}
+
is_multilib() {
tc_version_is_at_least 3 || return 1
use multilib
diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml
index 29330fe5925..2e74979dae7 100644
--- a/sys-devel/gcc/metadata.xml
+++ b/sys-devel/gcc/metadata.xml
@@ -12,6 +12,8 @@
<flag name="go">Build the GCC Go language frontend.</flag>
<flag name="graphite">Add support for the framework for loop
optimizations based on a polyhedral intermediate representation</flag>
+ <flag name="jit">Enable libgccjit so other applications can embed gcc for Just-In-Time compilation.
+ This will slow down the compiler a bit as it forces all of the toolchain to be shared libs.</flag>
<flag name="libssp">Build SSP support into a dedicated library rather than use the
code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES)</flag>
<flag name="mudflap">Add support for mudflap, a pointer use checking library</flag>