On 1/16/21 8:55 AM, Philip Balister wrote: > 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!
I gets worse, looks like I added the patch in 2008, complete with the missing return statement. https://github.com/openembedded/openembedded/commit/74e7c9a96d176e32aac4791c7e308a0c904f735b Acked-by: Philip Balister <[email protected]> > > Philip > >> >> Signed-off-by: Mans Rullgard <[email protected]> >> --- >> .../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 <[email protected]> >> - >> -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 (#146877): https://lists.openembedded.org/g/openembedded-core/message/146877 Mute This Topic: https://lists.openembedded.org/mt/79727098/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
