aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2016-02-29 09:19:10 -0600
committerMark Hatle <mark.hatle@windriver.com>2016-02-29 22:13:42 -0600
commite038722afdf9882154e43aaf8c814b708e0842ec (patch)
tree46bdd916d47196d343444e12230745c3b8303d00
parent8b7ff912ccaadfc0f355642f2a9f99c334a61253 (diff)
downloadopenembedded-core-contrib-mhatle/gcc-libitm.tar.gz
openembedded-core-contrib-mhatle/gcc-libitm.tar.bz2
openembedded-core-contrib-mhatle/gcc-libitm.zip
gcc: Add support for atomic opertions (libitm) where availablemhatle/gcc-libitm
GCC 4.7 and newer have supported various automic operation directives, however these have not been previously enabled. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-rw-r--r--meta/recipes-devtools/gcc/gcc-5.3.inc2
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc22
2 files changed, 23 insertions, 1 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-5.3.inc b/meta/recipes-devtools/gcc/gcc-5.3.inc
index 06672995cd..0bf9f5552d 100644
--- a/meta/recipes-devtools/gcc/gcc-5.3.inc
+++ b/meta/recipes-devtools/gcc/gcc-5.3.inc
@@ -103,6 +103,7 @@ LTO = "--enable-lto"
EXTRA_OECONF_BASE = "\
${LTO} \
--enable-libssp \
+ --enable-libitm \
--disable-bootstrap \
--disable-libmudflap \
--with-system-zlib \
@@ -118,6 +119,7 @@ EXTRA_OECONF_BASE = "\
EXTRA_OECONF_INITIAL = "\
--disable-libmudflap \
--disable-libgomp \
+ --disable-libitm \
--disable-libquadmath \
--with-system-zlib \
--disable-lto \
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 844149fed1..707db37cb3 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -10,9 +10,14 @@ EXTRA_OECONF_PATHS = "\
EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
-RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic \
+RUNTIMELIBITM = "libitm"
+RUNTIMELIBITM_mips = ""
+RUNTIMELIBITM_mips64 = ""
+
+RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \
${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'libquadmath', '', d)} \
"
+
# ?
# libiberty
# libmudflap
@@ -49,6 +54,7 @@ do_install () {
oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/$d/ install
done
rm -rf ${D}${infodir}/libgomp.info ${D}${infodir}/dir
+ rm -rf ${D}${infodir}/libitm.info ${D}${infodir}/dir
rm -rf ${D}${infodir}/libquadmath.info ${D}${infodir}/dir
if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude ]; then
rmdir --ignore-fail-on-non-empty -p ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude
@@ -94,6 +100,9 @@ PACKAGES = "\
libatomic \
libatomic-dev \
libatomic-staticdev \
+ libitm \
+ libitm-dev \
+ libitm-staticdev \
"
# Most libraries are licensed with the exception, but
@@ -121,6 +130,9 @@ LICENSE_libquadmath-staticdev = "GPL-3.0-with-GCC-exception"
LICENSE_libatomic = "GPL-3.0-with-GCC-exception"
LICENSE_libatomic-dev = "GPL-3.0-with-GCC-exception"
LICENSE_libatomic-staticdev = "GPL-3.0-with-GCC-exception"
+LICENSE_libitm = "GPL-3.0-with-GCC-exception"
+LICENSE_libitm-dev = "GPL-3.0-with-GCC-exception"
+LICENSE_libitm-staticdev = "GPL-3.0-with-GCC-exception"
LICENSE_libgomp = "GPLv3"
LICENSE_libgomp-dev = "GPLv3"
@@ -196,6 +208,14 @@ FILES_libatomic-dev = "\
"
FILES_libatomic-staticdev = "${libdir}/libatomic.a"
+FILES_libitm = "${libdir}/libitm.so.*"
+FILES_libitm-dev = "\
+ ${libdir}/libitm.so \
+ ${libdir}/libitm.la \
+ ${libdir}/libitm.spec \
+"
+FILES_libitm-staticdev = "${libdir}/libitm.a"
+
do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"