* [PATCH 0/1] RFC - Enable GCC 5.3 transactional support @ 2016-03-01 4:18 Mark Hatle 2016-03-01 4:18 ` [PATCH 1/1] gcc: Add support for atomic opertions (libitm) where available Mark Hatle 0 siblings, 1 reply; 3+ messages in thread From: Mark Hatle @ 2016-03-01 4:18 UTC (permalink / raw) To: openembedded-core GCC has supported -fgnu-tm, libitm and __transaction_stomic [and related] since GCC 4.7. OE however has not activated the functionality. I'm starting to see some data base programs (and RPM) that can make use of the functionality to create better thread-safe code. This includes a patch to GCC. I've verified it is working based on the recent rpm 5.4.16 work. It also should not expand the size of the target unless the user adds the libitm support to their system. I'd recommend we consider this patch to enable the additional support. The following changes since commit 8b7ff912ccaadfc0f355642f2a9f99c334a61253: db: remove the NO_UPDATE_REASON and replace it a comment about RPM (2016-02-29 22:13:42 -0600) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib mhatle/gcc-libitm http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=mhatle/gcc-libitm Mark Hatle (1): gcc: Add support for atomic opertions (libitm) where available meta/recipes-devtools/gcc/gcc-5.3.inc | 2 ++ meta/recipes-devtools/gcc/gcc-runtime.inc | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) -- 2.5.0 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] gcc: Add support for atomic opertions (libitm) where available 2016-03-01 4:18 [PATCH 0/1] RFC - Enable GCC 5.3 transactional support Mark Hatle @ 2016-03-01 4:18 ` Mark Hatle 2016-03-01 6:04 ` Khem Raj 0 siblings, 1 reply; 3+ messages in thread From: Mark Hatle @ 2016-03-01 4:18 UTC (permalink / raw) To: openembedded-core 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> --- 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 0667299..0bf9f55 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 844149f..707db37 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" -- 2.5.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] gcc: Add support for atomic opertions (libitm) where available 2016-03-01 4:18 ` [PATCH 1/1] gcc: Add support for atomic opertions (libitm) where available Mark Hatle @ 2016-03-01 6:04 ` Khem Raj 0 siblings, 0 replies; 3+ messages in thread From: Khem Raj @ 2016-03-01 6:04 UTC (permalink / raw) To: Mark Hatle; +Cc: Patches and discussions about the oe-core layer On Mon, Feb 29, 2016 at 8:18 PM, Mark Hatle <mark.hatle@windriver.com> wrote: > GCC 4.7 and newer have supported various automic operation directives, > however these have not been previously enabled. > this is ok > Signed-off-by: Mark Hatle <mark.hatle@windriver.com> > --- > 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 0667299..0bf9f55 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 844149f..707db37 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" > -- > 2.5.0 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-01 6:04 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-01 4:18 [PATCH 0/1] RFC - Enable GCC 5.3 transactional support Mark Hatle 2016-03-01 4:18 ` [PATCH 1/1] gcc: Add support for atomic opertions (libitm) where available Mark Hatle 2016-03-01 6:04 ` Khem Raj
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox