Skip to contentSkip to conversation

package/boost: Disable fenv support with uClibc

PATCH New Bernd Kuhls 2 participants 3 messages Feb 6, 2016 – Feb 13, 2016

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 package/boost: Disable fenv support with uClibc

The boost build system does not recognize the fact that fenv.h is an optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV is disabled. This patch disables fenv support completely when compiling with a uClibc-based toolchain.

Fixes
http://autobuild.buildroot.net/results/160/160e1b98b204148ecf128144826554b6c523931b/
and many others

---
v2: updated patch to define BOOST_NO_FENV_H for the linux platform config
instead of patching the boost source directly

 package/boost/0006-uclibc-fenv.patch | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 package/boost/0006-uclibc-fenv.patch
package/boost/0006-uclibc-fenv.patch new file +26 -0
new file mode 100644
index 0000000..ea10f8c
@@ -0,0 +1,26 @@
+Disable fenv.h support for uClibc-based toolchains.
+
+The boost build system does not recognize the fact that fenv.h is an
+optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV
+is disabled. This patch disables fenv support completely when compiling
+with a uClibc-based toolchain. Bug was reported upstream:
+https://svn.boost.org/trac/boost/ticket/11756
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+
+--- boost_1_60_0.org/boost/config/platform/linux.hpp	2015-12-08 19:55:19.000000000 +0100
++++ boost_1_60_0/boost/config/platform/linux.hpp	2016-02-06 12:35:25.692754553 +0100
+@@ -47,6 +47,13 @@
+ #endif
+ 
+ //
++// uClibc has no support for fenv.h
++//
++#if defined(__UCLIBC__)
++#  define BOOST_NO_FENV_H
++#endif
++
++//
+ // If glibc is past version 2 then we definitely have
+ // gettimeofday, earlier versions may or may not have it:
+ //
Signature · 1 line
2.7.0
#1 lore raw

PATCH v2 1/1 package/boost: Disable fenv support with uClibc

Dear Bernd Kuhls,

Quoted 5 lines · Bernd Kuhls

The boost build system does not recognize the fact that fenv.h is an optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV is disabled. This patch disables fenv support completely when compiling with a uClibc-based toolchain.

Quoted 8 lines

Fixes
http://autobuild.buildroot.net/results/160/160e1b98b204148ecf128144826554b6c523931b/
and many others

---
v2: updated patch to define BOOST_NO_FENV_H for the linux platform config
instead of patching the boost source directly

Thanks for this new version. However I still don't understand why the boost tests that check for the availability of the different FE_* defines don't work properly.

See libs/config/test/boost_no_fenv_h.ipp.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

PATCH v2 1/1 package/boost: Disable fenv support with uClibc

In reply to Bernd Kuhls

Dear Bernd Kuhls,

Quoted 5 lines · Bernd Kuhls

The boost build system does not recognize the fact that fenv.h is an optional module in uClibc and tries to use it even if UCLIBC_HAS_FENV is disabled. This patch disables fenv support completely when compiling with a uClibc-based toolchain.

Quoted 8 lines

Fixes
http://autobuild.buildroot.net/results/160/160e1b98b204148ecf128144826554b6c523931b/
and many others

---
v2: updated patch to define BOOST_NO_FENV_H for the linux platform config
instead of patching the boost source directly

As I said, I'm still not entirely happy with this solution, but nobody was able to find a better solution, and we need to fix this problem.

So: applied. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com