Skip to contentSkip to conversation

package/boost: bump to version 1.59.0

PATCH New Jörg Krause 3 participants 14 messages Dec 11, 2015 – Dec 14, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 package/boost: bump to version 1.59.0

Also:
* remove patch "gcc.jam compiler options fix" - merged upstream
* renumber patch "fix uclibc eventfd".

---
 ...eventfd.patch => 0002-fix-uclibc-eventfd.patch} |  0
 .../boost/0002-gcc.jam-compiler-options-fix.patch  | 37 ----------------------
 package/boost/boost.hash                           |  6 ++--
 package/boost/boost.mk                             |  2 +-
 4 files changed, 4 insertions(+), 41 deletions(-)
 rename package/boost/{0004-fix-uclibc-eventfd.patch => 0002-fix-uclibc-eventfd.patch} (100%)
 delete mode 100644 package/boost/0002-gcc.jam-compiler-options-fix.patch
package/boost/0002-fix-uclibc-eventfd.patch renamed from package/boost/0004-fix-uclibc-eventfd.patch +0 -0
similarity index 100%
rename from package/boost/0004-fix-uclibc-eventfd.patch
rename to package/boost/0002-fix-uclibc-eventfd.patch
package/boost/0002-gcc.jam-compiler-options-fix.patch deleted +0 -37
deleted file mode 100644
index c645250..0000000
@@ -1,37 +0,0 @@
-From a891e48ed0b647b7bf550ad1d179398b23d0726e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Krause?= <[email protected]>
-Date: Sat, 2 May 2015 13:47:54 +0200
-Subject: [PATCH] gcc.jam compiler options fix
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Only PowerPC, SPARC, and x86 do support the -m32 and -m64 compiler options [1].
-
-Rather then excluding all architectures not supporting these options as it is
-done in commit c0634341d9ee2c02d3a55c91dafb988afc066c49 [2], include all
-architectures that do support them.
-
-[1] https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html
-[2] https://github.com/boostorg/build/commit/c0634341d9ee2c02d3a55c91dafb988afc066c49
-
-Signed-off-by: J?rg Krause <[email protected]>
----
- src/tools/gcc.jam | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
-index db04534..fbe8ab0 100644
---- a/tools/build/src/tools/gcc.jam
-+++ b/tools/build/src/tools/gcc.jam
-@@ -451,7 +451,7 @@ rule setup-address-model ( targets * : sources * : properties * )
-         else
-         {
-             local arch = [ feature.get-values architecture : $(properties) ] ;
--            if $(arch) != arm
-+            if $(arch) = power || $(arch) = sparc || $(arch) = x86
-             {
-                 if $(model) = 32
-                 {
---
-2.3.7
package/boost/boost.hash +3 -3
index 706eea2..356242b 100644
@@ -1,3 +1,3 @@
-# From http://sourceforge.net/projects/boost/files/boost/1.58.0/
-md5	b8839650e61e9c1c0a89f371dd475546	boost_1_58_0.tar.bz2
-sha1	2fc96c1651ac6fe9859b678b165bd78dc211e881	boost_1_58_0.tar.bz2
+# From http://sourceforge.net/projects/boost/files/boost/1.59.0/
+md5	6aa9a5c6a4ca1016edd0ed1178e3cb87	boost_1_59_0.tar.bz2
+sha1	b94de47108b2cdb0f931833a7a9834c2dd3ca46e	boost_1_59_0.tar.bz2
package/boost/boost.mk +1 -1
index 6a2e925..2f23fe1 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BOOST_VERSION = 1.58.0
+BOOST_VERSION = 1.59.0
 BOOST_SOURCE = boost_$(subst .,_,$(BOOST_VERSION)).tar.bz2
 BOOST_SITE = http://downloads.sourceforge.net/project/boost/boost/$(BOOST_VERSION)
 BOOST_INSTALL_STAGING = YES
Signature · 1 line
2.6.4
#1 lore raw

PATCH 2/3 package/boost: fix space tabs

---
 package/boost/Config.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/boost/Config.in +2 -2
index cffaf6e..97d0802 100644
@@ -75,8 +75,8 @@ config BR2_PACKAGE_BOOST_CONTEXT
 			|| BR2_powerpc || BR2_x86_64)
 
 config BR2_PACKAGE_BOOST_COROUTINE
-        bool "boost-coroutine"
-        depends on BR2_PACKAGE_BOOST_CONTEXT
+	bool "boost-coroutine"
+	depends on BR2_PACKAGE_BOOST_CONTEXT
 
 config BR2_PACKAGE_BOOST_DATE_TIME
 	bool "boost-date_time"
Signature · 1 line
2.6.4
#3 lore raw

PATCH 3/3 package/boost: add library coroutine2

In reply to Jörg Krause

Coroutine2 is a new (C++14) library added in boost 1.59.0. We also add coroutine2 to the '--without-libraries' configuration flag for the host variant.

Build successfully tested with Arago ARMv5 2011.09 - a gcc v4.5.3 toolchain.

---
 package/boost/Config.in | 4 ++++
 package/boost/boost.mk  | 7 ++++---
 2 files changed, 8 insertions(+), 3 deletions(-)
package/boost/Config.in +4 -0
index 97d0802..83f6871 100644
@@ -78,6 +78,10 @@ config BR2_PACKAGE_BOOST_COROUTINE
 	bool "boost-coroutine"
 	depends on BR2_PACKAGE_BOOST_CONTEXT
 
+config BR2_PACKAGE_BOOST_COROUTINE2
+	bool "boost-coroutine2"
+	depends on BR2_PACKAGE_BOOST_CONTEXT
+
 config BR2_PACKAGE_BOOST_DATE_TIME
 	bool "boost-date_time"
 
package/boost/boost.mk +4 -3
index 2f23fe1..0161d68 100644
@@ -16,15 +16,16 @@ HOST_BOOST_DEPENDENCIES =
 # keep host variant as minimal as possible
 HOST_BOOST_FLAGS = --without-icu \
 	--without-libraries=$(subst $(space),$(comma),atomic chrono context \
-	coroutine date_time exception filesystem graph graph_parallel \
-	iostreams locale log math mpi program_options python random regex \
-	serialization signals system test thread timer wave)
+	coroutine coroutine2 date_time exception filesystem graph \
+	graph_parallel iostreams locale log math mpi program_options python \
+	random regex serialization signals system test thread timer wave)
 
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_ATOMIC),,atomic)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CHRONO),,chrono)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTAINER),,container)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTEXT),,context)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE),,coroutine)
+BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE2),,coroutine2)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_DATE_TIME),,date_time)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_EXCEPTION),,exception)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem)
Signature · 1 line
2.6.4
#4 lore raw

PATCH 3/3 package/boost: add library coroutine2

Dear J?rg Krause,

I was trying to test your patch and I have noticed that despite of having coroutine2 selected...

BR2_PACKAGE_BOOST_COROUTINE2=y

...there isn't any libboost_coroutine2.so file installed on target. Is that normal?

Regards,

Vincent.

Quoted 52 lines · J?rg Krause

Coroutine2 is a new (C++14) library added in boost 1.59.0. We also add coroutine2 to the '--without-libraries' configuration flag for the host variant.

Build successfully tested with Arago ARMv5 2011.09 - a gcc v4.5.3 toolchain.

---
 package/boost/Config.in | 4 ++++
 package/boost/boost.mk  | 7 ++++---
 2 files changed, 8 insertions(+), 3 deletions(-)
package/boost/Config.in +4 -0
index 97d0802..83f6871 100644
@@ -78,6 +78,10 @@ config BR2_PACKAGE_BOOST_COROUTINE
 	bool "boost-coroutine"
 	depends on BR2_PACKAGE_BOOST_CONTEXT
 
+config BR2_PACKAGE_BOOST_COROUTINE2
+	bool "boost-coroutine2"
+	depends on BR2_PACKAGE_BOOST_CONTEXT
+
 config BR2_PACKAGE_BOOST_DATE_TIME
 	bool "boost-date_time"
 
package/boost/boost.mk +4 -3
index 2f23fe1..0161d68 100644
@@ -16,15 +16,16 @@ HOST_BOOST_DEPENDENCIES =
 # keep host variant as minimal as possible
 HOST_BOOST_FLAGS = --without-icu \
 	--without-libraries=$(subst $(space),$(comma),atomic chrono context \
-	coroutine date_time exception filesystem graph graph_parallel \
-	iostreams locale log math mpi program_options python random regex \
-	serialization signals system test thread timer wave)
+	coroutine coroutine2 date_time exception filesystem graph \
+	graph_parallel iostreams locale log math mpi program_options python \
+	random regex serialization signals system test thread timer wave)
 
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_ATOMIC),,atomic)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CHRONO),,chrono)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTAINER),,container)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_CONTEXT),,context)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE),,coroutine)
+BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_COROUTINE2),,coroutine2)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_DATE_TIME),,date_time)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_EXCEPTION),,exception)
 BOOST_WITHOUT_FLAGS += $(if $(BR2_PACKAGE_BOOST_FILESYSTEM),,filesystem)
#5 lore raw

PATCH 3/3 package/boost: add library coroutine2

Vicente,

Quoted 7 lines · Vicente Olivert Riera

I was trying to test your patch and I have noticed that despite of having coroutine2 selected...

BR2_PACKAGE_BOOST_COROUTINE2=y

...there isn't any libboost_coroutine2.so file installed on target. Is that normal?

The vast majority of Boost "libraries" are not libraries in the .so sense, but purely header based libraries, i.e just a bunch of .h with very complicated C++ code.

Thomas

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

PATCH 3/3 package/boost: add library coroutine2

Hi Thomas,

Quoted 7 lines · Thomas Petazzoni

Vicente,

Quoted 3 lines · Vicente Olivert Riera

I was trying to test your patch and I have noticed that despite of having coroutine2 selected...

Quoted 8 lines
Quoted 4 lines

BR2_PACKAGE_BOOST_COROUTINE2=y

...there isn't any libboost_coroutine2.so file installed on target. Is that normal?

The vast majority of Boost "libraries" are not libraries in the .so sense, but purely header based libraries, i.e just a bunch of .h with very complicated C++ code.

But there is a libboost_coroutine.so library, that's why I asked. Is it expected to have a lib for coroutine and not for coroutine2? That's my doubt.

Regards,

Vincent.

Quoted 3 lines

Thomas

#7 lore raw

PATCH 3/3 package/boost: add library coroutine2

Hi Vicente,
Hi Thomas,

Quoted 22 lines · Vicente Olivert Riera

Hi Thomas,

Quoted 10 lines · Thomas Petazzoni

Vicente,

Quoted 6 lines · Vicente Olivert Riera

I was trying to test your patch and I have noticed that despite of
having coroutine2 selected...

BR2_PACKAGE_BOOST_COROUTINE2=y

Quoted 8 lines
Quoted 3 lines

...there isn't any libboost_coroutine2.so file installed on target. Is
that normal?

The vast majority of Boost "libraries" are not libraries in the .so sense, but purely header based libraries, i.e just a bunch of .h with
very complicated C++ code.

Quoted 5 lines

But there is a libboost_coroutine.so library, that's why I asked. Is it
expected to have a lib for coroutine and not for coroutine2? That's my
doubt.

The Jamfile for coroutine contains:

lib boost_coroutine
????: detail/coroutine_context.cpp ??????exceptions.cpp
??????stack_traits_sources
????: <link>shared:<library>../../context/build//boost_context ??????<link>shared:<library>../../system/build//boost_system ??????<link>shared:<library>../../thread/build//boost_thread ????;

While the Jamfile for coroutine2 contains:

lib boost_coroutine2
????:
????: <link>shared:<library>../../context/build//boost_context ????;

So, coroutine has some sources to link with, while coroutine2 does not. Also, look at the config.hpp in coroutine2:

    #if (defined(BOOST_ALL_DYN_LINK) ||
    defined(BOOST_COROUTINES2_DYN_LINK) ) && !
    defined(BOOST_COROUTINES2_STATIC_LINK)
    # if defined(BOOST_COROUTINES2_SOURCE)
    #??define BOOST_COROUTINES2_DECL BOOST_SYMBOL_EXPORT
    #??define BOOST_COROUTINES2_BUILD_DLL
    # else
    #??define BOOST_COROUTINES2_DECL BOOST_SYMBOL_IMPORT
    # endif
    #endif

    #if ! defined(BOOST_COROUTINES2_DECL)
    # define BOOST_COROUTINES2_DECL
    #endif

    #if ! defined(BOOST_COROUTINES2_SOURCE) && !
    defined(BOOST_ALL_NO_LIB) && ! defined(BOOST_COROUTINES2_NO_LIB)
    # define BOOST_LIB_NAME boost_coroutine
    # if defined(BOOST_ALL_DYN_LINK) ||
    defined(BOOST_COROUTINES2_DYN_LINK)
    #??define BOOST_DYN_LINK
    # endif
    # include <boost/config/auto_link.hpp>
    #endif

For coroutine a library name is defined, for coroutine2 not.

J?rg

#8 lore raw

PATCH 3/3 package/boost: add library coroutine2

Quoted 30 lines · J?rg Krause

Hi Vicente,
Hi Thomas,

Also, look at the config.hpp in coroutine2:

????#if (defined(BOOST_ALL_DYN_LINK) || ????defined(BOOST_COROUTINES2_DYN_LINK) ) && ! ????defined(BOOST_COROUTINES2_STATIC_LINK) ????# if defined(BOOST_COROUTINES2_SOURCE) ????#??define BOOST_COROUTINES2_DECL BOOST_SYMBOL_EXPORT ????#??define BOOST_COROUTINES2_BUILD_DLL
????# else
????#??define BOOST_COROUTINES2_DECL BOOST_SYMBOL_IMPORT ????# endif
????#endif

????#if ! defined(BOOST_COROUTINES2_DECL)
????# define BOOST_COROUTINES2_DECL
????#endif

????#if ! defined(BOOST_COROUTINES2_SOURCE) && ! ????defined(BOOST_ALL_NO_LIB) && ! defined(BOOST_COROUTINES2_NO_LIB) ????# define BOOST_LIB_NAME boost_coroutine
????# if defined(BOOST_ALL_DYN_LINK) || ????defined(BOOST_COROUTINES2_DYN_LINK)
????#??define BOOST_DYN_LINK
????# endif
????# include <boost/config/auto_link.hpp>
????#endif

Quoted 1 line

For coroutine a library name is defined, for coroutine2 not.

Sorry, I got this wrong.

What I really meant is that there would be no library name boost_coroutine2, but one named boost_coroutine, but only in case it is built. Since coroutine2 is just a bunch of header files as Thomas explained, no shared library named boost_coroutine is built at all.

J?rg

#9 lore raw

PATCH 3/3 package/boost: add library coroutine2

Dear J?rg Krause,

Quoted 33 lines · J?rg Krause
Quoted 30 lines · J?rg Krause

Hi Vicente,
Hi Thomas,

Also, look at the config.hpp in coroutine2:

    #if (defined(BOOST_ALL_DYN_LINK) ||
    defined(BOOST_COROUTINES2_DYN_LINK) ) && !
    defined(BOOST_COROUTINES2_STATIC_LINK)
    # if defined(BOOST_COROUTINES2_SOURCE)
    #  define BOOST_COROUTINES2_DECL BOOST_SYMBOL_EXPORT
    #  define BOOST_COROUTINES2_BUILD_DLL
    # else
    #  define BOOST_COROUTINES2_DECL BOOST_SYMBOL_IMPORT
    # endif
    #endif

    #if ! defined(BOOST_COROUTINES2_DECL)
    # define BOOST_COROUTINES2_DECL
    #endif

    #if ! defined(BOOST_COROUTINES2_SOURCE) && !
    defined(BOOST_ALL_NO_LIB) && ! defined(BOOST_COROUTINES2_NO_LIB)
    # define BOOST_LIB_NAME boost_coroutine
    # if defined(BOOST_ALL_DYN_LINK) ||
    defined(BOOST_COROUTINES2_DYN_LINK)
    #  define BOOST_DYN_LINK
    # endif
    # include <boost/config/auto_link.hpp>
    #endif
Quoted 1 line

For coroutine a library name is defined, for coroutine2 not.

Quoted 9 lines

Sorry, I got this wrong.

What I really meant is that there would be no library name boost_coroutine2, but one named boost_coroutine, but only in case it is built. Since coroutine2 is just a bunch of header files as Thomas explained, no shared library named boost_coroutine is built at all.

J?rg

understood, thanks for the clarification. Here you have my...

$ find output/staging/usr/include/boost/coroutine2/ -type f
output/staging/usr/include/boost/coroutine2/detail/pull_coroutine.ipp
output/staging/usr/include/boost/coroutine2/detail/pull_control_block.hpp
output/staging/usr/include/boost/coroutine2/detail/push_control_block.hpp
...

Regards,

Vincent.

#10 lore raw

PATCH 1/3 package/boost: bump to version 1.59.0

In reply to Jörg Krause

Dear J?rg Krause,

Quoted 5 lines · J?rg Krause

Also:
* remove patch "gcc.jam compiler options fix" - merged upstream
* renumber patch "fix uclibc eventfd".

Build test for MIPS architecture:

$ file output/target/usr/lib/libboost_atomic.so.1.59.0
output/target/usr/lib/libboost_atomic.so.1.59.0: ELF 32-bit LSB shared
object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, stripped

Regards,

Vincent.

#11 lore raw

PATCH 1/3 package/boost: bump to version 1.59.0

In reply to Jörg Krause

Dear J?rg Krause,

Quoted 5 lines · J?rg Krause

Also:
* remove patch "gcc.jam compiler options fix" - merged upstream
* renumber patch "fix uclibc eventfd".

Quoted 8 lines
---
 ...eventfd.patch => 0002-fix-uclibc-eventfd.patch} |  0
 .../boost/0002-gcc.jam-compiler-options-fix.patch  | 37 ----------------------
 package/boost/boost.hash                           |  6 ++--
 package/boost/boost.mk                             |  2 +-
 4 files changed, 4 insertions(+), 41 deletions(-)
 rename package/boost/{0004-fix-uclibc-eventfd.patch => 0002-fix-uclibc-eventfd.patch} (100%)
 delete mode 100644 package/boost/0002-gcc.jam-compiler-options-fix.patch

All three patches merged, thanks! And thanks to Vicente for the review/testing.

Thomas

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

PATCH 1/3 package/boost: bump to version 1.59.0

In reply to Jörg Krause

Dear J?rg Krause,

Quoted 5 lines · J?rg Krause

Also:
* remove patch "gcc.jam compiler options fix" - merged upstream
* renumber patch "fix uclibc eventfd".

I am not sure if it is related to the version bump or not, but boost is causing some build issues:

http://autobuild.buildroot.org/?reason=boost-1.59.0

Could you have a look ?

Thanks,

Thomas

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

PATCH 1/3 package/boost: bump to version 1.59.0

Dear Thomas,

Quoted 9 lines · Thomas Petazzoni

Dear J?rg Krause,

Quoted 5 lines · J?rg Krause

Also:
* remove patch "gcc.jam compiler options fix" - merged upstream
* renumber patch "fix uclibc eventfd".

Quoted 7 lines

I am not sure if it is related to the version bump or not, but boost is
causing some build issues:

???http://autobuild.buildroot.org/?reason=boost-1.59.0

Could you have a look ?

Actually, I already had two days ago :-)

From [1]:
<fenv.h> exists, but does not define FE_DIVBYZERO and co. Is this true for all uclibc-based toolchains or is it dependent of the architecture?

[1]?http://lists.busybox.net/pipermail/buildroot/2015-December/146851.h tml