From dc95bdeba8feeaefea57bc1c81f5473415616e1a Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 19 Dec 2015 16:36:18 -0500 Subject: sys-devel/gcc: add support for USE=jit #568834 --- eclass/toolchain.eclass | 10 ++++++++++ sys-devel/gcc/metadata.xml | 2 ++ 2 files changed, 12 insertions(+) diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 43fa8bffc970..b18d41816eb5 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 29330fe59252..2e74979dae7b 100644 --- a/sys-devel/gcc/metadata.xml +++ b/sys-devel/gcc/metadata.xml @@ -12,6 +12,8 @@ Build the GCC Go language frontend. Add support for the framework for loop optimizations based on a polyhedral intermediate representation + 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. 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) Add support for mudflap, a pointer use checking library -- cgit v1.2.3-65-gdbad