* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.