On 1/16/21 8:34 AM, Mans Rullgard wrote: > This patch makes gcc produce broken code. It is unclear why it is there > in the first place. Drop it.
I'm having flashbacks to a time where gcc didn't support __sync_add_and_fetch and friends, so code that looks like this was copedi around as a work around. Compilers caught up and this patch should have been dropped years ago :) I looked around and can't find any similar patterns in oe-core. For amusement I looked in oe-classic and there are hints of this issue. And this specific patch comes from oe-classic. Thanks for finding this Mans! Philip > > Signed-off-by: Mans Rullgard <m...@mansr.com> > --- > .../boost/boost/arm-intrinsics.patch | 55 ------------------- > meta/recipes-support/boost/boost_1.75.0.bb | 2 +- > 2 files changed, 1 insertion(+), 56 deletions(-) > delete mode 100644 meta/recipes-support/boost/boost/arm-intrinsics.patch > > diff --git a/meta/recipes-support/boost/boost/arm-intrinsics.patch > b/meta/recipes-support/boost/boost/arm-intrinsics.patch > deleted file mode 100644 > index fe85c69a827a..000000000000 > --- a/meta/recipes-support/boost/boost/arm-intrinsics.patch > +++ /dev/null > @@ -1,55 +0,0 @@ > -Upstream-Status: Backport > - > -8/17/2010 - rebased to 1.44 by Qing He <qing...@intel.com> > - > -diff --git a/boost/smart_ptr/detail/atomic_count_sync.hpp > b/boost/smart_ptr/detail/atomic_count_sync.hpp > -index b6359b5..78b1cc2 100644 > ---- a/boost/smart_ptr/detail/atomic_count_sync.hpp > -+++ b/boost/smart_ptr/detail/atomic_count_sync.hpp > -@@ -33,17 +33,46 @@ public: > - > - long operator++() > - { > -+#ifdef __ARM_ARCH_7A__ > -+ int v1, tmp; > -+ asm volatile ("1: \n\t" > -+ "ldrex %0, %1 \n\t" > -+ "add %0 ,%0, #1 \n\t" > -+ "strex %2, %0, %1 \n\t" > -+ "cmp %2, #0 \n\t" > -+ "bne 1b \n\t" > -+ : "=&r" (v1), "+Q"(value_), "=&r"(tmp) > -+ ); > -+#else > - return __sync_add_and_fetch( &value_, 1 ); > -+#endif > - } > - > - long operator--() > - { > -+#ifdef __ARM_ARCH_7A__ > -+ int v1, tmp; > -+ asm volatile ("1: \n\t" > -+ "ldrex %0, %1 \n\t" > -+ "sub %0 ,%0, #1 \n\t" > -+ "strex %2, %0, %1 \n\t" > -+ "cmp %2, #0 \n\t" > -+ "bne 1b \n\t" > -+ : "=&r" (v1), "+Q"(value_), "=&r"(tmp) > -+ ); > -+ return value_; > -+#else > - return __sync_add_and_fetch( &value_, -1 ); > -+#endif > - } > - > - operator long() const > - { > -+#if __ARM_ARCH_7A__ > -+ return value_; > -+#else > - return __sync_fetch_and_add( &value_, 0 ); > -+#endif > - } > - > - private: > diff --git a/meta/recipes-support/boost/boost_1.75.0.bb > b/meta/recipes-support/boost/boost_1.75.0.bb > index 33137e236dba..23b0ffc67e29 100644 > --- a/meta/recipes-support/boost/boost_1.75.0.bb > +++ b/meta/recipes-support/boost/boost_1.75.0.bb > @@ -1,7 +1,7 @@ > require boost-${PV}.inc > require boost.inc > > -SRC_URI += "file://arm-intrinsics.patch \ > +SRC_URI += " \ > file://boost-CVE-2012-2677.patch \ > file://boost-math-disable-pch-for-gcc.patch \ > > file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \ > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#146874): https://lists.openembedded.org/g/openembedded-core/message/146874 Mute This Topic: https://lists.openembedded.org/mt/79727098/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-