From 8cb4ac49677b1eae4047fc1abbd728f093a24b72 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 29 Feb 2016 22:18:41 -0600 Subject: gcc: Add support for atomic opertions (libitm) where available GCC 4.7 and newer have supported various automic operation directives, however these have not been previously enabled. Signed-off-by: Mark Hatle Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-5.3.inc | 2 ++ meta/recipes-devtools/gcc/gcc-runtime.inc | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) 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" -- cgit v1.2.3