aboutsummaryrefslogtreecommitdiff
path: root/meta-aarch64/recipes-support
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2013-07-09 16:08:59 +0300
committerRiku Voipio <riku.voipio@linaro.org>2013-07-09 16:08:59 +0300
commitb954cf51dff152b6233d5e5d25de00e26ec68ac8 (patch)
treeae7b027f2d9721cdcdb75184bba3516f57c56174 /meta-aarch64/recipes-support
parente473b8cd63d6f3af8a7e7e54191bdc7cac4d03f5 (diff)
boost: revert to 1.53 while we figure out why 1.54 fails to build
Diffstat (limited to 'meta-aarch64/recipes-support')
-rw-r--r--meta-aarch64/recipes-support/boost/boost-1.53.0.inc19
-rw-r--r--meta-aarch64/recipes-support/boost/boost_1.53.0.bb7
-rw-r--r--meta-aarch64/recipes-support/boost/files/arm-intrinsics.patch55
3 files changed, 81 insertions, 0 deletions
diff --git a/meta-aarch64/recipes-support/boost/boost-1.53.0.inc b/meta-aarch64/recipes-support/boost/boost-1.53.0.inc
new file mode 100644
index 00000000..85c36ca2
--- /dev/null
+++ b/meta-aarch64/recipes-support/boost/boost-1.53.0.inc
@@ -0,0 +1,19 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+HOMEPAGE = "http://www.boost.org/"
+LICENSE = "BSL-1.0 & MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+BOOST_VER = "${@"_".join(d.getVar("PV",1).split("."))}"
+BOOST_MAJ = "${@"_".join(d.getVar("PV",1).split(".")[0:2])}"
+BOOST_P = "boost_${BOOST_VER}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2"
+
+SRC_URI[md5sum] = "a00d22605d5dbcfb4c9936a9b35bc4c2"
+SRC_URI[sha256sum] = "f88a041b01882b0c9c5c05b39603ec8383fb881f772f6f9e6e6fd0e0cddb9196"
+
+S = "${WORKDIR}/${BOOST_P}"
diff --git a/meta-aarch64/recipes-support/boost/boost_1.53.0.bb b/meta-aarch64/recipes-support/boost/boost_1.53.0.bb
new file mode 100644
index 00000000..3a5a6cc3
--- /dev/null
+++ b/meta-aarch64/recipes-support/boost/boost_1.53.0.bb
@@ -0,0 +1,7 @@
+include boost-${PV}.inc
+include boost.inc
+
+PR = "r1"
+
+SRC_URI += "file://arm-intrinsics.patch \
+ "
diff --git a/meta-aarch64/recipes-support/boost/files/arm-intrinsics.patch b/meta-aarch64/recipes-support/boost/files/arm-intrinsics.patch
new file mode 100644
index 00000000..fe85c69a
--- /dev/null
+++ b/meta-aarch64/recipes-support/boost/files/arm-intrinsics.patch
@@ -0,0 +1,55 @@
+Upstream-Status: Backport
+
+8/17/2010 - rebased to 1.44 by Qing He <qing.he@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: