]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc: Add support for atomic opertions (libitm) where available
authorMark Hatle <mark.hatle@windriver.com>
Tue, 1 Mar 2016 04:18:41 +0000 (22:18 -0600)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 2 Mar 2016 22:39:07 +0000 (22:39 +0000)
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>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/gcc/gcc-5.3.inc
meta/recipes-devtools/gcc/gcc-runtime.inc

index 06672995cd0a24762f63a9800eb7ae8c4d804bb8..0bf9f5552d757e8183799ffffa8c47454ab511c4 100644 (file)
@@ -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 \
index 844149fed15f0a5a4d3c883330a5035f827bc08f..707db37cb345535229c5418605df97f69ee4a299 100644 (file)
@@ -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"