public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH 0/3] boost mips16e and soft-float fixes
@ 2016-08-29 11:03 André Draszik
  2016-08-29 11:03 ` [PATCH 1/3] boost: fix a musl compilation warning André Draszik
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:03 UTC (permalink / raw)
  To: openembedded-core

Hi,

These patches fix a few issues, see patches for details.
All patches have been submitted upstream.

Cheers,
André



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/3] boost: fix a musl compilation warning
  2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
@ 2016-08-29 11:03 ` André Draszik
  2016-08-29 11:03 ` [PATCH 2/3] boost: fix compilation using soft float toolchains André Draszik
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:03 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: André Draszik <git@andred.net>
---
 ...detail-socket_types.hpp-fix-poll.h-includ.patch | 46 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch

diff --git a/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
new file mode 100644
index 0000000..0e3f005
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
@@ -0,0 +1,46 @@
+From 40192301130dcd913aa6d9cb9dba9e5f8dbd9d16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 21:01:43 +0100
+Subject: [PATCH 1/3] use POSIX poll.h instead of sys/poll.h
+
+POSIX specifies that <poll.h> is the correct header to
+include for poll()
+  http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
+whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
+so let's follow POSIX instead.
+
+As a side-effect, this silences a warning when compiling
+against the musl C-library:
+
+In file included from ./boost/asio/detail/socket_types.hpp:61:0,
+                 from ./boost/asio/ip/address_v4.hpp:21,
+                 from ./boost/asio/ip/address.hpp:21,
+                 from libs/log/src/init_from_settings.cpp:65:
+<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
+ #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+  ^~~~~~~
+
+etc.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
+ boost/asio/detail/socket_types.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/asio/detail/socket_types.hpp b/boost/asio/detail/socket_types.hpp
+index e8c7109..7e65d3c 100644
+--- a/boost/asio/detail/socket_types.hpp
++++ b/boost/asio/detail/socket_types.hpp
+@@ -58,7 +58,7 @@
+ #else
+ # include <sys/ioctl.h>
+ # if !defined(__SYMBIAN32__)
+-#  include <sys/poll.h>
++#  include <poll.h>
+ # endif
+ # include <sys/types.h>
+ # include <sys/stat.h>
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 1116444..41ff203 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -5,4 +5,5 @@ SRC_URI += "\
     file://arm-intrinsics.patch \
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
+    file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/3] boost: fix compilation using soft float toolchains
  2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
  2016-08-29 11:03 ` [PATCH 1/3] boost: fix a musl compilation warning André Draszik
@ 2016-08-29 11:03 ` André Draszik
  2016-08-29 11:16   ` André Draszik
  2016-08-29 11:03 ` [PATCH 3/3] boost: fix MIPS16e compilation André Draszik
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:03 UTC (permalink / raw)
  To: openembedded-core

In particular mips*-nf

Signed-off-by: André Draszik <git@andred.net>
---
 .../boost/0002-config-gcc-BOOST_NO_FENV_H.patch    | 75 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 76 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch

diff --git a/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch b/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch
new file mode 100644
index 0000000..55a0c07
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch
@@ -0,0 +1,75 @@
+From c97b70d96b63ec116a486e3b599dd505d13f5478 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 20:58:59 +0100
+Subject: [PATCH 2/3] config: gcc: #define BOOST_NO_FENV_H on FPU-less arches
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -Wno-variadic-macros -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1 -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
+
+In file included from ./boost/test/impl/execution_monitor.ipp:31:0,
+                 from libs/test/src/execution_monitor.cpp:16:
+./boost/test/execution_monitor.hpp:491:27: error: 'FE_DIVBYZERO' was not declared in this scope
+     BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+                           ^~~~~~~~~~~~
+./boost/test/execution_monitor.hpp:492:27: error: 'FE_INEXACT' was not declared in this scope
+     BOOST_FPE_INEXACT   = FE_INEXACT,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:493:27: error: 'FE_INVALID' was not declared in this scope
+     BOOST_FPE_INVALID   = FE_INVALID,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:494:27: error: 'FE_OVERFLOW' was not declared in this scope
+     BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
+                           ^~~~~~~~~~~
+./boost/test/execution_monitor.hpp:495:27: error: 'FE_UNDERFLOW' was not declared in this scope
+     BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+                           ^~~~~~~~~~~~
+
+The reason is that some (notably FPU-less) architectures,
+including mips*-nf, don't define/implement some of the
+floating point constants, even though fenv.h is
+available.
+
+At least on MIPS, while FE_ALL_EXCEPT is #define'd, its
+value is 0.
+
+A similar problem exists on FPU-less ARM machines.
+
+  https://svn.boost.org/trac/boost/ticket/11756
+
+Other projects have similar issues, e.g. pixman, and
+apply similar work-arounds:
+  https://lists.freedesktop.org/archives/pixman/2014-February/003172.html
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756
+ boost/config/compiler/gcc.hpp | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
+index fbd3dd9..7c4fd06 100644
+--- a/boost/config/compiler/gcc.hpp
++++ b/boost/config/compiler/gcc.hpp
+@@ -262,6 +262,18 @@
+ #  define BOOST_NO_CXX14_BINARY_LITERALS
+ #endif
+ 
++// C++11 floating-point environment
++#if !defined(BOOST_NO_FENV_H)
++   // Some (notably FPU-less) architectures,
++   // including mips*-nf, don't define/implement some of
++   // the floating point constants, even though fenv.h
++   // is available.
++#  include <bits/fenv.h>
++#  if !defined(FE_ALL_EXCEPT) || (FE_ALL_EXCEPT == 0)
++#    define BOOST_NO_FENV_H
++#  endif
++#endif
++
+ // C++14 features in 4.9.0 and later
+ //
+ #if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 41ff203..09137db 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -6,4 +6,5 @@ SRC_URI += "\
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
+    file://0002-gcc-config-BOOST_NO_FENV_H.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/3] boost: fix MIPS16e compilation
  2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
  2016-08-29 11:03 ` [PATCH 1/3] boost: fix a musl compilation warning André Draszik
  2016-08-29 11:03 ` [PATCH 2/3] boost: fix compilation using soft float toolchains André Draszik
@ 2016-08-29 11:03 ` André Draszik
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
  2016-09-03  0:12 ` [PATCH v3 " André Draszik
  4 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:03 UTC (permalink / raw)
  To: openembedded-core

use g++ 4.1+ __sync intrinsics instead of incompatible
hand-written assembly

Signed-off-by: André Draszik <git@andred.net>
---
 ...ips-assembly-doesn-t-compile-in-mips16e-m.patch | 57 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 58 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch

diff --git a/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
new file mode 100644
index 0000000..9fe6389
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
@@ -0,0 +1,57 @@
+From 4f19d72ca94418431e068cfd4ffb96ed9b289f6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 17:34:59 +0100
+Subject: [PATCH 3/3] smart_ptr: mips assembly doesn't compile in mips16e mode
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC  -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"
+
+{standard input}: Assembler messages:
+{standard input}:17603: Warning: the `dsp' extension requires MIPS32 revision 2 or greater
+{standard input}:17604: Error: unrecognized opcode `ll $3,4($16)'
+{standard input}:17606: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:17734: Error: unrecognized opcode `ll $3,8($16)'
+{standard input}:17736: Error: unrecognized opcode `sc $2,8($16)'
+{standard input}:18084: Error: unrecognized opcode `ll $3,4($4)'
+{standard input}:18086: Error: unrecognized opcode `sc $2,4($4)'
+{standard input}:18318: Error: unrecognized opcode `ll $3,8($4)'
+{standard input}:18320: Error: unrecognized opcode `sc $2,8($4)'
+{standard input}:19921: Error: unrecognized opcode `ll $3,4($2)'
+{standard input}:19923: Error: unrecognized opcode `sc $3,4($2)'
+{standard input}:20199: Error: unrecognized opcode `ll $4,4($16)'
+{standard input}:20201: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:23392: Error: unrecognized opcode `ll $4,8($16)'
+{standard input}:23394: Error: unrecognized opcode `sc $2,8($16)'
+...failed updating 1 target...
+
+boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+contains hand-written MIPS assembly, which is not compatible
+with the MIPS16e instruction set.
+
+By not using this file in MIPS16e mode, we fallback to using
+g++ 4.1+ __sync intrinsics (__sync_fetch_and_add() and
+__sync_val_compare_and_swap()) which are working fine.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Sumbitted https://svn.boost.org/trac/boost/ticket/12418
+ boost/smart_ptr/detail/sp_counted_base.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
+index 0addf07..0995ca8 100644
+--- a/boost/smart_ptr/detail/sp_counted_base.hpp
++++ b/boost/smart_ptr/detail/sp_counted_base.hpp
+@@ -65,7 +65,7 @@
+ #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
+ 
+-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
++#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
+ 
+ #elif defined( BOOST_SP_HAS_SYNC )
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 09137db..71fd4c4 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -7,4 +7,5 @@ SRC_URI += "\
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
     file://0002-gcc-config-BOOST_NO_FENV_H.patch \
+    file://0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] boost: fix compilation using soft float toolchains
  2016-08-29 11:03 ` [PATCH 2/3] boost: fix compilation using soft float toolchains André Draszik
@ 2016-08-29 11:16   ` André Draszik
  0 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:16 UTC (permalink / raw)
  To: openembedded-core

Khem,

I expect that http://git.openembedded.org/openembedded-core/tree/meta/recipe
s-support/boost/boost/consider-hardfp.patch won't be needed for arm any more
with this patch applied (but am not in a position to test)

Cheers,
Andre'

On Mo, 2016-08-29 at 12:03 +0100, André Draszik wrote:
> In particular mips*-nf
> 
> Signed-off-by: André Draszik <git@andred.net>
> ---
>  .../boost/0002-config-gcc-BOOST_NO_FENV_H.patch    | 75
> ++++++++++++++++++++++
>  meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
>  2 files changed, 76 insertions(+)
>  create mode 100644 meta/recipes-support/boost/boost/0002-config-gcc-
> BOOST_NO_FENV_H.patch
> 
> diff --git a/meta/recipes-support/boost/boost/0002-config-gcc-
> BOOST_NO_FENV_H.patch b/meta/recipes-support/boost/boost/0002-config-gcc-
> BOOST_NO_FENV_H.patch
> new file mode 100644
> index 0000000..55a0c07
> --- /dev/null
> +++ b/meta/recipes-support/boost/boost/0002-config-gcc-
> BOOST_NO_FENV_H.patch
> @@ -0,0 +1,75 @@
> +From c97b70d96b63ec116a486e3b599dd505d13f5478 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
> +Date: Wed, 24 Aug 2016 20:58:59 +0100
> +Subject: [PATCH 2/3] config: gcc: #define BOOST_NO_FENV_H on FPU-less
> arches
> +
> +gcc.compile.c++ <builddir>/boost/bin.v2/libs/test/build/gcc-
> 4.3.1/release/threading-multi/execution_monitor.o
> +
> +    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-
> march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp"
> "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-
> z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g
> -feliminate-unused-debug-types -fdebug-prefix-
> map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-
> map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong 
> -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-
> security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline
> -Wall -pedantic -pthread -fPIC -Wno-variadic-macros -DBOOST_ALL_NO_LIB=1
> -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1
> -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1
> -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG  -I"." -c -o
> "<builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-
> multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
> +
> +In file included from ./boost/test/impl/execution_monitor.ipp:31:0,
> +                 from libs/test/src/execution_monitor.cpp:16:
> +./boost/test/execution_monitor.hpp:491:27: error: 'FE_DIVBYZERO' was not
> declared in this scope
> +     BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
> +                           ^~~~~~~~~~~~
> +./boost/test/execution_monitor.hpp:492:27: error: 'FE_INEXACT' was not
> declared in this scope
> +     BOOST_FPE_INEXACT   = FE_INEXACT,
> +                           ^~~~~~~~~~
> +./boost/test/execution_monitor.hpp:493:27: error: 'FE_INVALID' was not
> declared in this scope
> +     BOOST_FPE_INVALID   = FE_INVALID,
> +                           ^~~~~~~~~~
> +./boost/test/execution_monitor.hpp:494:27: error: 'FE_OVERFLOW' was not
> declared in this scope
> +     BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
> +                           ^~~~~~~~~~~
> +./boost/test/execution_monitor.hpp:495:27: error: 'FE_UNDERFLOW' was not
> declared in this scope
> +     BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
> +                           ^~~~~~~~~~~~
> +
> +The reason is that some (notably FPU-less) architectures,
> +including mips*-nf, don't define/implement some of the
> +floating point constants, even though fenv.h is
> +available.
> +
> +At least on MIPS, while FE_ALL_EXCEPT is #define'd, its
> +value is 0.
> +
> +A similar problem exists on FPU-less ARM machines.
> +
> +  https://svn.boost.org/trac/boost/ticket/11756
> +
> +Other projects have similar issues, e.g. pixman, and
> +apply similar work-arounds:
> +  https://lists.freedesktop.org/archives/pixman/2014-February/003172.html
> +
> +Signed-off-by: André Draszik <adraszik@tycoint.com>
> +---
> +Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756
> + boost/config/compiler/gcc.hpp | 18 ++++++++++++++++++
> + 1 file changed, 18 insertions(+)
> +
> +diff --git a/boost/config/compiler/gcc.hpp
> b/boost/config/compiler/gcc.hpp
> +index fbd3dd9..7c4fd06 100644
> +--- a/boost/config/compiler/gcc.hpp
> ++++ b/boost/config/compiler/gcc.hpp
> +@@ -262,6 +262,18 @@
> + #  define BOOST_NO_CXX14_BINARY_LITERALS
> + #endif
> + 
> ++// C++11 floating-point environment
> ++#if !defined(BOOST_NO_FENV_H)
> ++   // Some (notably FPU-less) architectures,
> ++   // including mips*-nf, don't define/implement some of
> ++   // the floating point constants, even though fenv.h
> ++   // is available.
> ++#  include <bits/fenv.h>
> ++#  if !defined(FE_ALL_EXCEPT) || (FE_ALL_EXCEPT == 0)
> ++#    define BOOST_NO_FENV_H
> ++#  endif
> ++#endif
> ++
> + // C++14 features in 4.9.0 and later
> + //
> + #if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
> +-- 
> +2.9.3
> +
> diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-
> support/boost/boost_1.61.0.bb
> index 41ff203..09137db 100644
> --- a/meta/recipes-support/boost/boost_1.61.0.bb
> +++ b/meta/recipes-support/boost/boost_1.61.0.bb
> @@ -6,4 +6,5 @@ SRC_URI += "\
>      file://consider-hardfp.patch \
>      file://boost-CVE-2012-2677.patch \
>      file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-
> includ.patch \
> +    file://0002-gcc-config-BOOST_NO_FENV_H.patch \
>  "


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 0/3] boost mips16e and soft-float fixes
  2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
                   ` (2 preceding siblings ...)
  2016-08-29 11:03 ` [PATCH 3/3] boost: fix MIPS16e compilation André Draszik
@ 2016-08-29 11:55 ` André Draszik
  2016-08-29 11:55   ` [PATCH v2 1/3] boost: fix a musl compilation warning André Draszik
                     ` (3 more replies)
  2016-09-03  0:12 ` [PATCH v3 " André Draszik
  4 siblings, 4 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:55 UTC (permalink / raw)
  To: openembedded-core

An error crept into the previous series :-(, fixed now.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 1/3] boost: fix a musl compilation warning
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
@ 2016-08-29 11:55   ` André Draszik
  2016-08-29 11:55   ` [PATCH v2 2/3] boost: fix compilation using soft float toolchains André Draszik
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:55 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: André Draszik <git@andred.net>
---
 ...detail-socket_types.hpp-fix-poll.h-includ.patch | 46 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch

diff --git a/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
new file mode 100644
index 0000000..0e3f005
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
@@ -0,0 +1,46 @@
+From 40192301130dcd913aa6d9cb9dba9e5f8dbd9d16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 21:01:43 +0100
+Subject: [PATCH 1/3] use POSIX poll.h instead of sys/poll.h
+
+POSIX specifies that <poll.h> is the correct header to
+include for poll()
+  http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
+whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
+so let's follow POSIX instead.
+
+As a side-effect, this silences a warning when compiling
+against the musl C-library:
+
+In file included from ./boost/asio/detail/socket_types.hpp:61:0,
+                 from ./boost/asio/ip/address_v4.hpp:21,
+                 from ./boost/asio/ip/address.hpp:21,
+                 from libs/log/src/init_from_settings.cpp:65:
+<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
+ #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+  ^~~~~~~
+
+etc.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
+ boost/asio/detail/socket_types.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/asio/detail/socket_types.hpp b/boost/asio/detail/socket_types.hpp
+index e8c7109..7e65d3c 100644
+--- a/boost/asio/detail/socket_types.hpp
++++ b/boost/asio/detail/socket_types.hpp
+@@ -58,7 +58,7 @@
+ #else
+ # include <sys/ioctl.h>
+ # if !defined(__SYMBIAN32__)
+-#  include <sys/poll.h>
++#  include <poll.h>
+ # endif
+ # include <sys/types.h>
+ # include <sys/stat.h>
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 1116444..41ff203 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -5,4 +5,5 @@ SRC_URI += "\
     file://arm-intrinsics.patch \
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
+    file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/3] boost: fix compilation using soft float toolchains
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
  2016-08-29 11:55   ` [PATCH v2 1/3] boost: fix a musl compilation warning André Draszik
@ 2016-08-29 11:55   ` André Draszik
  2016-08-29 11:55   ` [PATCH v2 3/3] boost: fix MIPS16e compilation André Draszik
  2016-08-30 16:00   ` [PATCH v2 0/3] boost mips16e and soft-float fixes Richard Purdie
  3 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:55 UTC (permalink / raw)
  To: openembedded-core

In particular mips*-nf

Signed-off-by: André Draszik <git@andred.net>
---
 .../boost/0002-config-gcc-BOOST_NO_FENV_H.patch    | 75 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 76 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch

diff --git a/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch b/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch
new file mode 100644
index 0000000..55a0c07
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0002-config-gcc-BOOST_NO_FENV_H.patch
@@ -0,0 +1,75 @@
+From c97b70d96b63ec116a486e3b599dd505d13f5478 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 20:58:59 +0100
+Subject: [PATCH 2/3] config: gcc: #define BOOST_NO_FENV_H on FPU-less arches
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -Wno-variadic-macros -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1 -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
+
+In file included from ./boost/test/impl/execution_monitor.ipp:31:0,
+                 from libs/test/src/execution_monitor.cpp:16:
+./boost/test/execution_monitor.hpp:491:27: error: 'FE_DIVBYZERO' was not declared in this scope
+     BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+                           ^~~~~~~~~~~~
+./boost/test/execution_monitor.hpp:492:27: error: 'FE_INEXACT' was not declared in this scope
+     BOOST_FPE_INEXACT   = FE_INEXACT,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:493:27: error: 'FE_INVALID' was not declared in this scope
+     BOOST_FPE_INVALID   = FE_INVALID,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:494:27: error: 'FE_OVERFLOW' was not declared in this scope
+     BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
+                           ^~~~~~~~~~~
+./boost/test/execution_monitor.hpp:495:27: error: 'FE_UNDERFLOW' was not declared in this scope
+     BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+                           ^~~~~~~~~~~~
+
+The reason is that some (notably FPU-less) architectures,
+including mips*-nf, don't define/implement some of the
+floating point constants, even though fenv.h is
+available.
+
+At least on MIPS, while FE_ALL_EXCEPT is #define'd, its
+value is 0.
+
+A similar problem exists on FPU-less ARM machines.
+
+  https://svn.boost.org/trac/boost/ticket/11756
+
+Other projects have similar issues, e.g. pixman, and
+apply similar work-arounds:
+  https://lists.freedesktop.org/archives/pixman/2014-February/003172.html
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756
+ boost/config/compiler/gcc.hpp | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
+index fbd3dd9..7c4fd06 100644
+--- a/boost/config/compiler/gcc.hpp
++++ b/boost/config/compiler/gcc.hpp
+@@ -262,6 +262,18 @@
+ #  define BOOST_NO_CXX14_BINARY_LITERALS
+ #endif
+ 
++// C++11 floating-point environment
++#if !defined(BOOST_NO_FENV_H)
++   // Some (notably FPU-less) architectures,
++   // including mips*-nf, don't define/implement some of
++   // the floating point constants, even though fenv.h
++   // is available.
++#  include <bits/fenv.h>
++#  if !defined(FE_ALL_EXCEPT) || (FE_ALL_EXCEPT == 0)
++#    define BOOST_NO_FENV_H
++#  endif
++#endif
++
+ // C++14 features in 4.9.0 and later
+ //
+ #if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 41ff203..294703a 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -6,4 +6,5 @@ SRC_URI += "\
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
+    file://0002-config-gcc-BOOST_NO_FENV_H.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 3/3] boost: fix MIPS16e compilation
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
  2016-08-29 11:55   ` [PATCH v2 1/3] boost: fix a musl compilation warning André Draszik
  2016-08-29 11:55   ` [PATCH v2 2/3] boost: fix compilation using soft float toolchains André Draszik
@ 2016-08-29 11:55   ` André Draszik
  2016-08-30 16:00   ` [PATCH v2 0/3] boost mips16e and soft-float fixes Richard Purdie
  3 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-29 11:55 UTC (permalink / raw)
  To: openembedded-core

use g++ 4.1+ __sync intrinsics instead of incompatible
hand-written assembly

Signed-off-by: André Draszik <git@andred.net>
---
 ...ips-assembly-doesn-t-compile-in-mips16e-m.patch | 57 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 58 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch

diff --git a/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
new file mode 100644
index 0000000..9fe6389
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
@@ -0,0 +1,57 @@
+From 4f19d72ca94418431e068cfd4ffb96ed9b289f6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 17:34:59 +0100
+Subject: [PATCH 3/3] smart_ptr: mips assembly doesn't compile in mips16e mode
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC  -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"
+
+{standard input}: Assembler messages:
+{standard input}:17603: Warning: the `dsp' extension requires MIPS32 revision 2 or greater
+{standard input}:17604: Error: unrecognized opcode `ll $3,4($16)'
+{standard input}:17606: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:17734: Error: unrecognized opcode `ll $3,8($16)'
+{standard input}:17736: Error: unrecognized opcode `sc $2,8($16)'
+{standard input}:18084: Error: unrecognized opcode `ll $3,4($4)'
+{standard input}:18086: Error: unrecognized opcode `sc $2,4($4)'
+{standard input}:18318: Error: unrecognized opcode `ll $3,8($4)'
+{standard input}:18320: Error: unrecognized opcode `sc $2,8($4)'
+{standard input}:19921: Error: unrecognized opcode `ll $3,4($2)'
+{standard input}:19923: Error: unrecognized opcode `sc $3,4($2)'
+{standard input}:20199: Error: unrecognized opcode `ll $4,4($16)'
+{standard input}:20201: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:23392: Error: unrecognized opcode `ll $4,8($16)'
+{standard input}:23394: Error: unrecognized opcode `sc $2,8($16)'
+...failed updating 1 target...
+
+boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+contains hand-written MIPS assembly, which is not compatible
+with the MIPS16e instruction set.
+
+By not using this file in MIPS16e mode, we fallback to using
+g++ 4.1+ __sync intrinsics (__sync_fetch_and_add() and
+__sync_val_compare_and_swap()) which are working fine.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Sumbitted https://svn.boost.org/trac/boost/ticket/12418
+ boost/smart_ptr/detail/sp_counted_base.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
+index 0addf07..0995ca8 100644
+--- a/boost/smart_ptr/detail/sp_counted_base.hpp
++++ b/boost/smart_ptr/detail/sp_counted_base.hpp
+@@ -65,7 +65,7 @@
+ #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
+ 
+-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
++#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
+ 
+ #elif defined( BOOST_SP_HAS_SYNC )
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 294703a..46ad3dd 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -7,4 +7,5 @@ SRC_URI += "\
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
     file://0002-config-gcc-BOOST_NO_FENV_H.patch \
+    file://0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/3] boost mips16e and soft-float fixes
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
                     ` (2 preceding siblings ...)
  2016-08-29 11:55   ` [PATCH v2 3/3] boost: fix MIPS16e compilation André Draszik
@ 2016-08-30 16:00   ` Richard Purdie
  2016-08-30 16:05     ` André Draszik
  3 siblings, 1 reply; 15+ messages in thread
From: Richard Purdie @ 2016-08-30 16:00 UTC (permalink / raw)
  To: André Draszik, openembedded-core

On Mon, 2016-08-29 at 12:55 +0100, André Draszik wrote:
> An error crept into the previous series :-(, fixed now.

bitbake boost-native blew up in my local build with these applied :(

| 1472572721.0863695:     "g++"  -ftemplate-depth-128 -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -m64 -fno-strict-aliasing -ftemplate-depth-1024 -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_DATE_TIME_DYN_LINK=1 -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_LOG_BUILDING_THE_LIB=1 -DBOOST_LOG_DLL -DBOOST_LOG_USE_AVX2 -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_LOG_USE_SSSE3 -DBOOST_LOG_WITHOUT_EVENT_LOG -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -DNDEBUG -D_GNU_SOURCE=1 -D_XOPEN_SOURCE=600 -D__STDC_CONSTANT_MACROS  -I"." -c -o "/media/build1/poky/build/tmp/work/x86_64-linux/boost-native/1.61.0-r0/boost_1_61_0/x86_64-linux/boost/bin.v2/libs/log/build/gcc-4.3.1/release/log-api-unix/threading-multi/text_file_backend.o" "libs/log/src/text_file_backend.cpp"
| 1472572721.0863695:
| 1472572721.0863695: In file included from ./boost/config/compiler/gcc.hpp:271:0,
| 1472572721.0863695:                  from ./boost/config.hpp:39,
| 1472572721.0863695:                  from ./boost/log/detail/config.hpp:34,
| 1472572721.0863695:                  from libs/log/src/text_file_backend.cpp:16:
| 1472572721.0863695: /usr/include/x86_64-linux-gnu/bits/fenv.h:19:3: error: #error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
| 1472572721.0863695:  # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
| 1472572721.0863695:    ^
| 1472572721.0863695: ...failed updating 68 targets...

and many similar errors.

Cheers,

Richard


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/3] boost mips16e and soft-float fixes
  2016-08-30 16:00   ` [PATCH v2 0/3] boost mips16e and soft-float fixes Richard Purdie
@ 2016-08-30 16:05     ` André Draszik
  0 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-08-30 16:05 UTC (permalink / raw)
  To: Richard Purdie, openembedded-core

On Di, 2016-08-30 at 17:00 +0100, Richard Purdie wrote:
> 1472572721.0863695:     "g++"  -ftemplate-depth-128
> > -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include
> > -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0 -O3 -finline-functions -Wno-inline
> > -Wall -pthread -fPIC -m64 -fno-strict-aliasing -ftemplate-depth-1024
> > -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1
> > -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_DATE_TIME_DYN_LINK=1
> > -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_LOG_BUILDING_THE_LIB=1
> > -DBOOST_LOG_DLL -DBOOST_LOG_USE_AVX2 -DBOOST_LOG_USE_NATIVE_SYSLOG
> > -DBOOST_LOG_USE_SSSE3 -DBOOST_LOG_WITHOUT_EVENT_LOG
> > -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DBOOST_SYSTEM_DYN_LINK=1
> > -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1
> > -DBOOST_THREAD_DONT_USE_CHRONO=1 -DBOOST_THREAD_POSIX
> > -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -DNDEBUG -D_GNU_SOURCE=1
> > -D_XOPEN_SOURCE=600 -D__STDC_CONSTANT_MACROS  -I"." -c -o
> > "/media/build1/poky/build/tmp/work/x86_64-linux/boost-native/1.61.0-
> > r0/boost_1_61_0/x86_64-linux/boost/bin.v2/libs/log/build/gcc-
> > 4.3.1/release/log-api-unix/threading-multi/text_file_backend.o"
> > "libs/log/src/text_file_backend.cpp"
> > 1472572721.0863695:
> > 1472572721.0863695: In file included from
> > ./boost/config/compiler/gcc.hpp:271:0,
> > 1472572721.0863695:                  from ./boost/config.hpp:39,
> > 1472572721.0863695:                  from
> > ./boost/log/detail/config.hpp:34,
> > 1472572721.0863695:                  from
> > libs/log/src/text_file_backend.cpp:16:
> > 1472572721.0863695: /usr/include/x86_64-linux-gnu/bits/fenv.h:19:3:
> > error: #error "Never use <bits/fenv.h> directly; include <fenv.h>
> > instead."
> > 1472572721.0863695:  # error "Never use <bits/fenv.h> directly; include
> > <fenv.h> instead."
> > 1472572721.0863695:    ^
> > 1472572721.0863695: ...failed updating 68 targets...
> 
> and many similar errors.

I will send a version 3, taking in some comments from the boost bug tracker
as well.

Sorry for that!
Andre'



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 0/3] boost mips16e and soft-float fixes
  2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
                   ` (3 preceding siblings ...)
  2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
@ 2016-09-03  0:12 ` André Draszik
  2016-09-03  0:12   ` [PATCH v3 1/3] boost: fix a musl compilation warning André Draszik
                     ` (2 more replies)
  4 siblings, 3 replies; 15+ messages in thread
From: André Draszik @ 2016-09-03  0:12 UTC (permalink / raw)
  To: openembedded-core

v3 changes:
patch 2/3 completely redone, should not break in -native
          anymore, better standards compliance
patch 3/3 has been merged, so is actually a backport now



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v3 1/3] boost: fix a musl compilation warning
  2016-09-03  0:12 ` [PATCH v3 " André Draszik
@ 2016-09-03  0:12   ` André Draszik
  2016-09-03  0:12   ` [PATCH v3 2/3] boost: fix mips soft float compilation André Draszik
  2016-09-03  0:12   ` [PATCH v3 3/3] boost: fix MIPS16e compilation André Draszik
  2 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-09-03  0:12 UTC (permalink / raw)
  To: openembedded-core

Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419

Signed-off-by: André Draszik <git@andred.net>
---
 ...detail-socket_types.hpp-fix-poll.h-includ.patch | 49 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 50 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch

diff --git a/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
new file mode 100644
index 0000000..8a85aac
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
@@ -0,0 +1,49 @@
+From 40192301130dcd913aa6d9cb9dba9e5f8dbd9d16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 21:01:43 +0100
+Subject: [PATCH 1/4] use POSIX poll.h instead of sys/poll.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+POSIX specifies that <poll.h> is the correct header to
+include for poll()
+  http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
+whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
+so let's follow POSIX instead.
+
+As a side-effect, this silences a warning when compiling
+against the musl C-library:
+
+In file included from ./boost/asio/detail/socket_types.hpp:61:0,
+                 from ./boost/asio/ip/address_v4.hpp:21,
+                 from ./boost/asio/ip/address.hpp:21,
+                 from libs/log/src/init_from_settings.cpp:65:
+<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
+ #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+  ^~~~~~~
+
+etc.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
+ boost/asio/detail/socket_types.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/asio/detail/socket_types.hpp b/boost/asio/detail/socket_types.hpp
+index e8c7109..7e65d3c 100644
+--- a/boost/asio/detail/socket_types.hpp
++++ b/boost/asio/detail/socket_types.hpp
+@@ -58,7 +58,7 @@
+ #else
+ # include <sys/ioctl.h>
+ # if !defined(__SYMBIAN32__)
+-#  include <sys/poll.h>
++#  include <poll.h>
+ # endif
+ # include <sys/types.h>
+ # include <sys/stat.h>
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 1116444..41ff203 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -5,4 +5,5 @@ SRC_URI += "\
     file://arm-intrinsics.patch \
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
+    file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 2/3] boost: fix mips soft float compilation
  2016-09-03  0:12 ` [PATCH v3 " André Draszik
  2016-09-03  0:12   ` [PATCH v3 1/3] boost: fix a musl compilation warning André Draszik
@ 2016-09-03  0:12   ` André Draszik
  2016-09-03  0:12   ` [PATCH v3 3/3] boost: fix MIPS16e compilation André Draszik
  2 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-09-03  0:12 UTC (permalink / raw)
  To: openembedded-core

Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756

Signed-off-by: André Draszik <git@andred.net>
---
 ...execution_monitor.hpp-fix-mips-soft-float.patch | 145 +++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |   1 +
 2 files changed, 146 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch

diff --git a/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch b/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch
new file mode 100644
index 0000000..569c987
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch
@@ -0,0 +1,145 @@
+From 5c349a1c391c9ce171a1c80f5164fae764f27dba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 20:58:59 +0100
+Subject: [PATCH 2/4] boost/test/execution_monitor.hpp: fix mips soft float
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -Wno-variadic-macros -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1 -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
+
+In file included from ./boost/test/impl/execution_monitor.ipp:31:0,
+                 from libs/test/src/execution_monitor.cpp:16:
+./boost/test/execution_monitor.hpp:491:27: error: 'FE_DIVBYZERO' was not declared in this scope
+     BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+                           ^~~~~~~~~~~~
+./boost/test/execution_monitor.hpp:492:27: error: 'FE_INEXACT' was not declared in this scope
+     BOOST_FPE_INEXACT   = FE_INEXACT,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:493:27: error: 'FE_INVALID' was not declared in this scope
+     BOOST_FPE_INVALID   = FE_INVALID,
+                           ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:494:27: error: 'FE_OVERFLOW' was not declared in this scope
+     BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
+                           ^~~~~~~~~~~
+./boost/test/execution_monitor.hpp:495:27: error: 'FE_UNDERFLOW' was not declared in this scope
+     BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+                           ^~~~~~~~~~~~
+
+The reason is that some (notably FPU-less) architectures,
+including mips*-nf, don't define/implement some of the
+floating point constants, even though fenv.h is
+available.
+
+The key point is:
+  A fully standards conforming fenv.h does not have to
+  define any FE_* macros, and if it does define them,
+  then it defines macros only for the FP exceptions it
+  actually supports.
+
+So correct usage requires a triple check:
+1) Check BOOST_NO_FENV_H to see if the header is supported.
+2) Include the header and then check FE_ALL_EXCEPT to see
+   if any FP exceptions are supported.
+3) Before using the individual FE_* macros, you need to
+   check for their existence too as not all may be
+   supported.
+
+https://svn.boost.org/trac/boost/ticket/11756
+
+Other projects have similar issues, e.g. pixman, and
+apply similar work-arounds:
+  https://lists.freedesktop.org/archives/pixman/2014-February/003172.html
+
+Architectures are notably also allowed to define FE_ALL_EXCEPT to 0!
+Keeping this in mind, and knowing that the compiler will eliminate
+code that can't be executed, we can change BOOST_FPE_ALL to be 0 for
+the case of compiling using Clang and/or fenv.h being unavailable
+as well, which allows simplification of the #ifdef's in
+execution_monitor.ipp a bit.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756
+ boost/test/execution_monitor.hpp      | 26 +++++++++++++++++++++++++-
+ boost/test/impl/execution_monitor.ipp | 10 ++++++++--
+ 2 files changed, 33 insertions(+), 3 deletions(-)
+
+diff --git a/boost/test/execution_monitor.hpp b/boost/test/execution_monitor.hpp
+index 0eee497..44fe59d 100644
+--- a/boost/test/execution_monitor.hpp
++++ b/boost/test/execution_monitor.hpp
+@@ -486,15 +486,39 @@ enum masks {
+     BOOST_FPE_ALL       = MCW_EM,
+ #elif defined(BOOST_NO_FENV_H) || defined(BOOST_CLANG) \
+     || defined(__ARM_PCS)
+-    BOOST_FPE_ALL       = 1,
++    BOOST_FPE_ALL       = 0,
+ #else
++#if defined(FE_DIVBYZERO)
+     BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
++#else
++    BOOST_FPE_DIVBYZERO = 0,
++#endif
++#if defined(FE_INEXACT)
+     BOOST_FPE_INEXACT   = FE_INEXACT,
++#else
++    BOOST_FPE_INEXACT   = 0,
++#endif
++#if defined(FE_INVALID)
+     BOOST_FPE_INVALID   = FE_INVALID,
++#else
++    BOOST_FPE_INVALID   = 0,
++#endif
++#if defined(FE_OVERFLOW)
+     BOOST_FPE_OVERFLOW  = FE_OVERFLOW,
++#else
++    BOOST_FPE_OVERFLOW  = 0,
++#endif
++#if defined(FE_UNDERFLOW)
+     BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
++#else
++    BOOST_FPE_UNDERFLOW = 0,
++#endif
+ 
++#if defined(FE_ALL_EXCEPT)
+     BOOST_FPE_ALL       = FE_ALL_EXCEPT,
++#else
++    BOOST_FPE_ALL       = 0,
++#endif
+ #endif
+     BOOST_FPE_INV       = BOOST_FPE_ALL+1
+ };
+diff --git a/boost/test/impl/execution_monitor.ipp b/boost/test/impl/execution_monitor.ipp
+index f7fc8ea..d1088b9 100644
+--- a/boost/test/impl/execution_monitor.ipp
++++ b/boost/test/impl/execution_monitor.ipp
+@@ -1381,7 +1381,10 @@ enable( unsigned mask )
+ #endif
+ 
+     return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
++#elif defined(__GLIBC__) && defined(__USE_GNU)
++    if (BOOST_FPE_ALL == 0)
++        /* Not Implemented */
++        return 0;
+     feclearexcept(BOOST_FPE_ALL);
+     int res = feenableexcept( mask );
+     return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
+@@ -1418,7 +1421,10 @@ disable( unsigned mask )
+ #endif
+ 
+     return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
++#elif defined(__GLIBC__) && defined(__USE_GNU)
++    if (BOOST_FPE_ALL == 0)
++        /* Not Implemented */
++        return BOOST_FPE_INV;
+     feclearexcept(BOOST_FPE_ALL);
+     int res = fedisableexcept( mask );
+     return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index 41ff203..de482ee 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -6,4 +6,5 @@ SRC_URI += "\
     file://consider-hardfp.patch \
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
+    file://0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v3 3/3] boost: fix MIPS16e compilation
  2016-09-03  0:12 ` [PATCH v3 " André Draszik
  2016-09-03  0:12   ` [PATCH v3 1/3] boost: fix a musl compilation warning André Draszik
  2016-09-03  0:12   ` [PATCH v3 2/3] boost: fix mips soft float compilation André Draszik
@ 2016-09-03  0:12   ` André Draszik
  2 siblings, 0 replies; 15+ messages in thread
From: André Draszik @ 2016-09-03  0:12 UTC (permalink / raw)
  To: openembedded-core

Backport upstream patch to use g++ 4.1+ __sync intrinsics
instead of incompatible hand-written assembly when
compiling for MIPS16e

Upstream-Status: Backport https://svn.boost.org/trac/boost/ticket/12418

Signed-off-by: André Draszik <git@andred.net>
---
 ...ips-assembly-doesn-t-compile-in-mips16e-m.patch | 60 ++++++++++++++++++++++
 meta/recipes-support/boost/boost_1.61.0.bb         |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch

diff --git a/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
new file mode 100644
index 0000000..2b48d0d
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
@@ -0,0 +1,60 @@
+From 4f19d72ca94418431e068cfd4ffb96ed9b289f6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 17:34:59 +0100
+Subject: [PATCH 3/4] smart_ptr: mips assembly doesn't compile in mips16e mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o
+
+    "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>"  -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC  -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG  -I"." -c -o "<builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"
+
+{standard input}: Assembler messages:
+{standard input}:17603: Warning: the `dsp' extension requires MIPS32 revision 2 or greater
+{standard input}:17604: Error: unrecognized opcode `ll $3,4($16)'
+{standard input}:17606: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:17734: Error: unrecognized opcode `ll $3,8($16)'
+{standard input}:17736: Error: unrecognized opcode `sc $2,8($16)'
+{standard input}:18084: Error: unrecognized opcode `ll $3,4($4)'
+{standard input}:18086: Error: unrecognized opcode `sc $2,4($4)'
+{standard input}:18318: Error: unrecognized opcode `ll $3,8($4)'
+{standard input}:18320: Error: unrecognized opcode `sc $2,8($4)'
+{standard input}:19921: Error: unrecognized opcode `ll $3,4($2)'
+{standard input}:19923: Error: unrecognized opcode `sc $3,4($2)'
+{standard input}:20199: Error: unrecognized opcode `ll $4,4($16)'
+{standard input}:20201: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:23392: Error: unrecognized opcode `ll $4,8($16)'
+{standard input}:23394: Error: unrecognized opcode `sc $2,8($16)'
+...failed updating 1 target...
+
+boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+contains hand-written MIPS assembly, which is not compatible
+with the MIPS16e instruction set.
+
+By not using this file in MIPS16e mode, we fallback to using
+g++ 4.1+ __sync intrinsics (__sync_fetch_and_add() and
+__sync_val_compare_and_swap()) which are working fine.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Backport https://svn.boost.org/trac/boost/ticket/12418
+ boost/smart_ptr/detail/sp_counted_base.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
+index 0addf07..0995ca8 100644
+--- a/boost/smart_ptr/detail/sp_counted_base.hpp
++++ b/boost/smart_ptr/detail/sp_counted_base.hpp
+@@ -65,7 +65,7 @@
+ #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
+ 
+-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
++#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
+ 
+ #elif defined( BOOST_SP_HAS_SYNC )
+-- 
+2.9.3
+
diff --git a/meta/recipes-support/boost/boost_1.61.0.bb b/meta/recipes-support/boost/boost_1.61.0.bb
index de482ee..6926e84 100644
--- a/meta/recipes-support/boost/boost_1.61.0.bb
+++ b/meta/recipes-support/boost/boost_1.61.0.bb
@@ -7,4 +7,5 @@ SRC_URI += "\
     file://boost-CVE-2012-2677.patch \
     file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
     file://0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch \
+    file://0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch \
 "
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-09-03  0:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-29 11:03 [PATCH 0/3] boost mips16e and soft-float fixes André Draszik
2016-08-29 11:03 ` [PATCH 1/3] boost: fix a musl compilation warning André Draszik
2016-08-29 11:03 ` [PATCH 2/3] boost: fix compilation using soft float toolchains André Draszik
2016-08-29 11:16   ` André Draszik
2016-08-29 11:03 ` [PATCH 3/3] boost: fix MIPS16e compilation André Draszik
2016-08-29 11:55 ` [PATCH v2 0/3] boost mips16e and soft-float fixes André Draszik
2016-08-29 11:55   ` [PATCH v2 1/3] boost: fix a musl compilation warning André Draszik
2016-08-29 11:55   ` [PATCH v2 2/3] boost: fix compilation using soft float toolchains André Draszik
2016-08-29 11:55   ` [PATCH v2 3/3] boost: fix MIPS16e compilation André Draszik
2016-08-30 16:00   ` [PATCH v2 0/3] boost mips16e and soft-float fixes Richard Purdie
2016-08-30 16:05     ` André Draszik
2016-09-03  0:12 ` [PATCH v3 " André Draszik
2016-09-03  0:12   ` [PATCH v3 1/3] boost: fix a musl compilation warning André Draszik
2016-09-03  0:12   ` [PATCH v3 2/3] boost: fix mips soft float compilation André Draszik
2016-09-03  0:12   ` [PATCH v3 3/3] boost: fix MIPS16e compilation André Draszik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox