public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] boost: Updat to 1.60.0.
Date: Thu, 14 Apr 2016 10:48:29 +0100	[thread overview]
Message-ID: <1460627309.2617.92.camel@ipfire.org> (raw)
In-Reply-To: <1460616495-4403-1-git-send-email-stefan.schantl@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 40267 bytes --]

Hi,

no idea why this patch is not showing up in patchwork, but well...

Main issue: Doesn't build.

+ /usr/lib/pakfire/patch --search-path=/usr/src/packages/boost-1.60.0-1.ip3.src/patches '/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.48.0-add-bjam-man-page.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.50.0-fix-non-utf8-files.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.51.0-context-no-exec-stack.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.55.0-python-test-PyImport_AppendInittab.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.57.0-build-optflags.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.57.0-mpl-print.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.57.0-python-abi_letters.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.57.0-python-libpython_dep.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.57.0-spirit-unused_typedef.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.58.0-pool.patch0
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.58.0-pool-test_linking.patch
/usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.59-test-fenv.patch2'
Applying patches...
  Applying /usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.48.0-add-bjam-man-page.patch (-N -p1)...
patching file tools/build/v2/doc/bjam.1
  Applying /usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.50.0-fix-non-utf8-files.patch (-N -p1)...
patching file libs/units/example/autoprefixes.cpp
  Applying /usr/src/packages/boost-1.60.0-1.ip3.src/patches/boost-1.51.0-context-no-exec-stack.patch (-N -p1)...
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur a/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S b/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S
|--- a/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S	2012-07-03 21:12:31.000000000 +0200
|+++ b/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S	2012-10-27 19:25:08.016850683 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 18
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur a/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S b/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S
|--- a/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S	2012-07-03 21:12:31.000000000 +0200
|+++ b/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S	2012-10-27 19:24:34.166680913 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
1 out of 1 hunk ignored
Command exited with an error: ['bash', '--login', '-c', '/tmp/tmpnYzFgq']

On Thu, 2016-04-14 at 08:48 +0200, Stefan Schantl wrote:
> This is a major update to the latest available version of boost.
> 
> Fixes #11018.
> 
> Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
> ---
>  boost/boost.nm                                     |  21 +--
>  boost/patches/boost-1.48.0-add-bjam-man-page.patch | 150
> +++++++++++++++++++++
>  .../patches/boost-1.50.0-fix-non-utf8-files.patch  |  22 +++
>  ...1.55.0-python-test-PyImport_AppendInittab.patch |  98 ++++++++++++++
>  boost/patches/boost-1.57.0-build-optflags.patch    |  48 +++++++
>  boost/patches/boost-1.57.0-mpl-print.patch         |  31 +++++
>  .../patches/boost-1.57.0-python-abi_letters.patch  |  62 +++++++++
>  .../boost-1.57.0-python-libpython_dep.patch        |  13 ++
>  .../boost-1.57.0-spirit-unused_typedef.patch       |  19 +++
>  boost/patches/boost-1.58.0-pool-test_linking.patch |  31 +++++
>  boost/patches/boost-1.58.0-pool.patch0             | 120 +++++++++++++++++
>  boost/patches/boost-1.59-test-fenv.patch2          |  32 +++++
>  12 files changed, 638 insertions(+), 9 deletions(-)
>  create mode 100644 boost/patches/boost-1.48.0-add-bjam-man-page.patch
>  create mode 100644 boost/patches/boost-1.50.0-fix-non-utf8-files.patch
>  create mode 100644 boost/patches/boost-1.55.0-python-test-
> PyImport_AppendInittab.patch
>  create mode 100644 boost/patches/boost-1.57.0-build-optflags.patch
>  create mode 100644 boost/patches/boost-1.57.0-mpl-print.patch
>  create mode 100644 boost/patches/boost-1.57.0-python-abi_letters.patch
>  create mode 100644 boost/patches/boost-1.57.0-python-libpython_dep.patch
>  create mode 100644 boost/patches/boost-1.57.0-spirit-unused_typedef.patch
>  create mode 100644 boost/patches/boost-1.58.0-pool-test_linking.patch
>  create mode 100644 boost/patches/boost-1.58.0-pool.patch0
>  create mode 100644 boost/patches/boost-1.59-test-fenv.patch2
> 
> diff --git a/boost/boost.nm b/boost/boost.nm
> index 889b316..0a6af33 100644
> --- a/boost/boost.nm
> +++ b/boost/boost.nm
> @@ -5,10 +5,10 @@
>  
>  name       = boost
>  ver_major  = 1
> -ver_minor  = 51
> +ver_minor  = 60
>  ver_plevel = 0
>  version    = %{ver_major}.%{ver_minor}.%{ver_plevel}
> -release    = 2
> +release    = 1
>  
>  groups     = System/Libraries
>  url        = http://www.boost.org/
> @@ -31,6 +31,7 @@ build
>  	requires
>  		bzip2-devel
>  		gcc-c++
> +		icu-devel
>  		python-devel
>  		python3-devel
>  		zlib-devel
> @@ -39,12 +40,13 @@ build
>  	CFLAGS   += -fno-strict-aliasing
>  	CXXFLAGS += -fno-strict-aliasing
>  
> -	# Don't build in parallel on ARM.
> +	# Obtain python3 abiflags.
> +	python3_abiflags = %(python3-config --abiflags)
> +
> +	# Don't build in parallel on any architecture.
>  	# The C++ compiles consumes too much memory, so
>  	# we cannot run multiple instances at once.
> -	if "%{DISTRO_PLATFORM}" == "arm"
> -		PARALLELISMFLAGS = -j2
> -	end
> +	PARALLELISMFLAGS = -j2
>  
>  	configure_options = \
>  		--layout=tagged \
> @@ -68,11 +70,12 @@ build
>  		mkdir -pv %{DIR_APP}/serial
>  
>  		# Bootstrap build environment.
> -		./bootstrap.sh --with-toolset=gcc
> +		./bootstrap.sh --with-toolset=gcc --with-icu
>  
>  		# Enable boost lib for python3.
> -		cat >> ./tools/build/v2/user-config.jam << EOF
> -		using python : %{python3_version} : %{python3} :
> %{includedir}/python%{python3_version}%{python3_abiflags} :
> %{libdir}/python%{python3_version} ;
> +		cat >> ./tools/build/src/user-config.jam << EOF
> +		using python : %{python_version} : %{python2} :
> %{includedir}/python%{python_version} : : : : ;
> +		using python : %{python3_version} : %{python3} :
> %{includedir}/python%{python3_version}%{python3_abiflags} : : : :
> %{python3_abiflags} ;
>  		EOF
>  	end
>  
> diff --git a/boost/patches/boost-1.48.0-add-bjam-man-page.patch
> b/boost/patches/boost-1.48.0-add-bjam-man-page.patch
> new file mode 100644
> index 0000000..ea3f19f
> --- /dev/null
> +++ b/boost/patches/boost-1.48.0-add-bjam-man-page.patch
> @@ -0,0 +1,150 @@
> +diff --git a/tools/build/v2/doc/bjam.1 b/tools/build/v2/doc/bjam.1
> +new file mode 100644
> +index 0000000..8a44af6
> +--- /dev/null
> ++++ b/tools/build/v2/doc/bjam.1
> +@@ -0,0 +1,144 @@
> ++.TH "bjam" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*-
> ++.ad l
> ++.nh
> ++.SH NAME
> ++bjam \- Command-line utility to build Boost-related C++ projects with
> Boost\&.Build
> ++.SH "SYNOPSIS"
> ++.PP
> ++\fBbjam\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-
> tx] [-v] [--x]\fP
> ++.PP
> ++\fIbjam\fP accepts the following options:
> ++.PP
> ++\fB-a\fP 
> ++.br
> ++ Build all targets, even if they are current
> ++.PP
> ++\fB-dx\fP 
> ++.br
> ++ Set the debug level to x (0-9)
> ++.PP
> ++\fB-fx\fP 
> ++.br
> ++ Read x instead of Jambase
> ++.PP
> ++\fB-jx\fP 
> ++.br
> ++ Run up to x shell commands concurrently
> ++.PP
> ++\fB-lx\fP 
> ++.br
> ++ Limit actions to x number of seconds after which they are stopped
> ++.PP
> ++\fB-n\fP 
> ++.br
> ++ Don't actually execute the updating actions
> ++.PP
> ++\fB-ox\fP 
> ++.br
> ++ Write the updating actions to file x
> ++.PP
> ++\fB-px\fP 
> ++.br
> ++ x=0, pipes action stdout and stderr merged into action output
> ++.PP
> ++\fB-q\fP 
> ++.br
> ++ Quit quickly as soon as a target fails
> ++.PP
> ++\fB-sx=y\fP 
> ++.br
> ++ Set variable x=y, overriding environment
> ++.PP
> ++\fB-tx\fP 
> ++.br
> ++ Rebuild x, even if it is up-to-date
> ++.PP
> ++\fB-v\fP 
> ++.br
> ++ Print the version of jam and exit
> ++.PP
> ++\fB--x\fP 
> ++.br
> ++ Option is ignored
> ++.SH "DESCRIPTION"
> ++.PP
> ++This section provides the information necessary to create your own projects
> using \fIBoost\&.Build\fP The information provided here is relatively high-
> level, and Chapter 6, Reference as well as the on-line help system must be
> used to obtain low-level documentation (see --help)
> ++.PP
> ++\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a
> build engine with its own interpreted language, and \fIBoost\&.Build\fP
> itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events
> when you type bjam on the command line is as follows:
> ++.IP "\(bu" 2
> ++\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level
> module\&. The exact process is described in the section called
> “Initialization”
> ++.PP
> ++.PP
> ++.IP "\(bu" 2
> ++The top-level module loads user-defined configuration files, \fIuser-
> config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets
> ++.PP
> ++.PP
> ++.IP "\(bu" 2
> ++The \fIJamfile\fP in the current directory is read That in turn might cause
> reading of further Jamfiles\&. As a result, a tree of projects is created,
> with targets inside projects
> ++.PP
> ++.PP
> ++.IP "\(bu" 2
> ++Finally, using the build request specified on the command line,
> \fIBoost\&.Build\fP decides which targets should be built and how\&. That
> information is passed back to \fIBoost\&.Jam\fP, which takes care of actually
> running the scheduled build action commands
> ++.PP
> ++.PP
> ++So, to be able to successfully use \fIBoost\&.Build\fP, you need to know
> only four things:
> ++.IP "\(bu" 2
> ++How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/
> html/bbv2/overview/configuration.html)
> ++.IP "\(bu" 2
> ++How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/ht
> ml/bbv2/overview/targets.html)
> ++.IP "\(bu" 2
> ++How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2
> /overview/build_process.html)
> ++.PP
> ++.PP
> ++Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called
> “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overvi
> ew/jam_language.html)
> ++.SH "CONCEPTS"
> ++.PP
> ++\fIBoost\&.Build\fP has a few unique concepts that are introduced in this
> section\&. The best way to explain the concepts is by comparison with more
> classical build tools
> ++.PP
> ++When using any flavour of make, you directly specify targets and commands
> that are used to create them from other target\&. The below example creates
> a\&.o from a\&.c using a hardcoded compiler invocation command
> ++.PP
> ++a\&.o: a\&.c
> ++.br
> ++ g++ -o a\&.o -g a\&.c
> ++.PP
> ++This is rather low-level description mechanism and it is hard to adjust
> commands, options, and sets of created targets depending on the used compiler
> and operating system\&.
> ++.PP
> ++To improve portability, most modern build system provide a set of higher-
> level functions that can be used in build description files\&. Consider this
> example:
> ++.PP
> ++add_program ('a', 'a\&.c')
> ++.br
> ++.PP
> ++This is a function call that creates targets necessary to create executable
> file from source file a\&.c\&. Depending on configured properties, different
> commands line may be used\&. However, \fIadd_program\fP is higher-level, but
> rather thin level All targets are created immediately when build description
> is parsed, which makes it impossible to perform multi-variant builds\&. Often,
> change in any build property requires complete reconfiguration of the build
> tree
> ++.PP
> ++In order to support true multivariant builds, Boost\&.Build introduces the
> concept of metatarget—object that is created when build description is parsed
> and can be later called with specific build properties to generate actual
> targets
> ++.PP
> ++Consider an example:
> ++.PP
> ++exe a : a\&.cpp ;
> ++.br
> ++.PP
> ++When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget,
> but does not yet decides what files must be created, or what commands must be
> used\&. After all build files are parsed, Boost\&.Build considers properties
> requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP
> with:
> ++.PP
> ++\fIbjam\fP toolset=gcc toolset=msvc
> ++.br
> ++.PP
> ++In that case, the metatarget will be called twice, once with toolset=gcc and
> once with toolset=msvc\&. Both invocations will produce concrete targets, that
> will have different extensions and use different command lines\&. Another key
> concept is build property\&. Build property is a variable that affects the
> build process\&. It can be specified on the command line, and is passed when
> calling a metatarget
> ++.PP
> ++While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs
> by requiring that all build properties are declared in advance, and providing
> a large set of properties with portable semantics
> ++.PP
> ++The final concept is property propagation\&. Boost\&.Build does not require
> that every metatarget is called with the same properties\&. Instead, the 'top-
> level' metatargets are called with the properties specified on the command
> line Each metatarget can elect to augment or override some properties (in
> particular, using the requirements mechanism, see the section called
> “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targe
> ts.html#bbv2.overview.targets.requirements) Then, the dependency metatargets
> are called with modified properties and produce concrete targets that are then
> used in build process Of course, dependency metatargets maybe in turn modify
> build properties and have dependencies of their own\&.
> ++.PP
> ++For more in-depth treatment of the requirements and concepts, you may refer
> to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_
> paper.pdf)\&;.
> ++.SH "SEE ALSO"
> ++.PP
> ++\fBboost-libraries\fP(3)
> ++.SH "SUPPORT"
> ++.PP
> ++Please report any bugs to https://svn.boost.org/trac/boost/
> ++.SH "COPYRIGHT"
> ++.PP
> ++Boost Software License - Version 1\&.0 - August 17th, 2003
> ++.PP
> ++See the LICENSE_1_0\&.txt file for more information on that license, or
> directly on Internet:
> ++.br
> ++ http://www.boost.org/LICENSE_1_0.txt 
> diff --git a/boost/patches/boost-1.50.0-fix-non-utf8-files.patch
> b/boost/patches/boost-1.50.0-fix-non-utf8-files.patch
> new file mode 100644
> index 0000000..b60a3ac
> --- /dev/null
> +++ b/boost/patches/boost-1.50.0-fix-non-utf8-files.patch
> @@ -0,0 +1,22 @@
> +diff --git a/libs/units/example/autoprefixes.cpp
> b/libs/units/example/autoprefixes.cpp
> +index 8b2bc43..d04f2fe 100644
> +--- a/libs/units/example/autoprefixes.cpp
> ++++ b/libs/units/example/autoprefixes.cpp
> +@@ -67,7 +67,7 @@ struct thing_base_unit :
> boost::units::base_unit<thing_base_unit, boost::units::
> + struct euro_base_unit : boost::units::base_unit<euro_base_unit,
> boost::units::dimensionless_type, 5>
> + {
> +   static const char* name() { return("EUR"); }
> +-  static const char* symbol() { return(""); }
> ++  static const char* symbol() { return("€"); }
> + };
> + 
> + int main()
> +@@ -140,7 +140,7 @@ int main()
> + 
> +   quantity<euro_base_unit::unit_type> ce = 2048. *
> euro_base_unit::unit_type();
> +   cout << name_format << engineering_prefix << ce << endl;  // 2.048 kiloEUR
> +-  cout << symbol_format << engineering_prefix << ce << endl;  // 2.048 k
> ++  cout << symbol_format << engineering_prefix << ce << endl;  // 2.048 k€
> + 
> + 
> +     return 0;
> diff --git a/boost/patches/boost-1.55.0-python-test-
> PyImport_AppendInittab.patch b/boost/patches/boost-1.55.0-python-test-
> PyImport_AppendInittab.patch
> new file mode 100644
> index 0000000..1d2ee5c
> --- /dev/null
> +++ b/boost/patches/boost-1.55.0-python-test-PyImport_AppendInittab.patch
> @@ -0,0 +1,98 @@
> +diff -up boost_1_55_0/libs/python/test/exec.cpp\~
> boost_1_55_0/libs/python/test/exec.cpp
> +--- boost_1_55_0/libs/python/test/exec.cpp~	2010-07-05
> 00:38:38.000000000 +0200
> ++++ boost_1_55_0/libs/python/test/exec.cpp	2015-01-09
> 21:31:12.903218280 +0100
> +@@ -56,6 +56,20 @@ void eval_test()
> +   BOOST_TEST(value == "ABCDEFG");
> + }
> + 
> ++struct PyCtx
> ++{
> ++  PyCtx() {
> ++    Py_Initialize();
> ++  }
> ++
> ++  ~PyCtx() {
> ++    // N.B. certain problems may arise when Py_Finalize is called when
> ++    // using Boost.Python.  However in this test suite it all seems to
> ++    // work fine.
> ++    Py_Finalize();
> ++  }
> ++};
> ++
> + void exec_test()
> + {
> +   // Register the module with the interpreter
> +@@ -68,6 +82,8 @@ void exec_test()
> +                              ) == -1) 
> +     throw std::runtime_error("Failed to add embedded_hello to the
> interpreter's "
> +                  "builtin modules");
> ++
> ++  PyCtx ctx;
> +   // Retrieve the main module
> +   python::object main = python::import("__main__");
> +   
> +@@ -148,41 +164,43 @@ void check_pyerr(bool pyerr_expected=fal
> +   }
> + }
> + 
> ++template <class Cb>
> ++bool
> ++run_and_handle_exception(Cb cb, bool pyerr_expected = false)
> ++{
> ++  PyCtx ctx;
> ++  if (python::handle_exception(cb)) {
> ++    check_pyerr(pyerr_expected);
> ++    return true;
> ++  } else {
> ++    return false;
> ++  }
> ++}
> ++
> + int main(int argc, char **argv)
> + {
> +   BOOST_TEST(argc == 2 || argc == 3);
> +   std::string script = argv[1];
> +-  // Initialize the interpreter
> +-  Py_Initialize();
> + 
> +-  if (python::handle_exception(eval_test)) {
> +-    check_pyerr();
> +-  }
> +-  else if(python::handle_exception(exec_test)) {
> +-    check_pyerr();
> +-  }
> +-  else if (python::handle_exception(boost::bind(exec_file_test, script))) {
> ++  // N.B. exec_test mustn't be called through run_and_handle_exception
> ++  // as it needs to handles the python context by itself.
> ++  if (run_and_handle_exception(eval_test)
> ++      || python::handle_exception(exec_test))
> +     check_pyerr();
> +-  }
> +-  
> +-  if (python::handle_exception(exec_test_error))
> +-  {
> +-    check_pyerr(/*pyerr_expected*/ true);
> +-  }
> +   else
> +-  {
> ++    run_and_handle_exception(boost::bind(exec_file_test, script));
> ++
> ++  if (!run_and_handle_exception(exec_test_error, true))
> +     BOOST_ERROR("Python exception expected, but not seen.");
> +-  }
> + 
> +   if (argc > 2) {
> ++    PyCtx ctx;
> +     // The main purpose is to test compilation. Since this test generates
> +     // a file and I (rwgk) am uncertain about the side-effects, run it only
> +     // if explicitly requested.
> +     exercise_embedding_html();
> +   }
> + 
> +-  // Boost.Python doesn't support Py_Finalize yet.
> +-  // Py_Finalize();
> +   return boost::report_errors();
> + }
> + 
> +
> +Diff finished.  Fri Jan  9 21:31:13 2015
> diff --git a/boost/patches/boost-1.57.0-build-optflags.patch
> b/boost/patches/boost-1.57.0-build-optflags.patch
> new file mode 100644
> index 0000000..d0b925f
> --- /dev/null
> +++ b/boost/patches/boost-1.57.0-build-optflags.patch
> @@ -0,0 +1,48 @@
> +diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam
> +--- ./tools/build/src/tools/gcc.jam~	2015-02-09 15:01:04.850331626
> +0100
> ++++ ./tools/build/src/tools/gcc.jam	2015-02-09 15:44:29.122307134
> +0100
> +@@ -366,17 +366,17 @@ generators.override gcc.compile.c++.pch
> + toolset.flags gcc.compile PCH_FILE <pch>on : <pch-file> ;
> + 
> + # Declare flags and action for compilation.
> +-toolset.flags gcc.compile OPTIONS <optimization>off   : -O0 ;
> +-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
> +-toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
> ++toolset.flags gcc.compile OPTIONS <optimization>off   :  ;
> ++toolset.flags gcc.compile OPTIONS <optimization>speed :  ;
> ++toolset.flags gcc.compile OPTIONS <optimization>space :  ;
> + 
> +-toolset.flags gcc.compile OPTIONS <inlining>off  : -fno-inline ;
> +-toolset.flags gcc.compile OPTIONS <inlining>on   : -Wno-inline ;
> +-toolset.flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-
> inline ;
> ++toolset.flags gcc.compile OPTIONS <inlining>off  :  ;
> ++toolset.flags gcc.compile OPTIONS <inlining>on   :  ;
> ++toolset.flags gcc.compile OPTIONS <inlining>full :  ;
> + 
> +-toolset.flags gcc.compile OPTIONS <warnings>off : -w ;
> +-toolset.flags gcc.compile OPTIONS <warnings>on  : -Wall ;
> +-toolset.flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
> ++toolset.flags gcc.compile OPTIONS <warnings>off :  ;
> ++toolset.flags gcc.compile OPTIONS <warnings>on  :  ;
> ++toolset.flags gcc.compile OPTIONS <warnings>all :  ;
> + toolset.flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
> + 
> + toolset.flags gcc.compile OPTIONS <debug-symbols>on : -g ;
> +@@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc
> + 
> + actions compile.c++ bind PCH_FILE
> + {
> +-    "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH)
> $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c
> -o "$(<:W)" "$(>:W)"
> ++    "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES)
> -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
> + }
> + 
> + actions compile.c bind PCH_FILE
> +@@ -613,7 +613,7 @@ actions compile.c bind PCH_FILE
> + 
> + actions compile.c++.preprocess bind PCH_FILE
> + {
> +-    "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH)
> $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)"
> "$(>:W)" -E >"$(<:W)"
> ++    "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES)
> -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)"
> + }
> + 
> + actions compile.c.preprocess bind PCH_FILE
> diff --git a/boost/patches/boost-1.57.0-mpl-print.patch b/boost/patches/boost-
> 1.57.0-mpl-print.patch
> new file mode 100644
> index 0000000..561cef1
> --- /dev/null
> +++ b/boost/patches/boost-1.57.0-mpl-print.patch
> @@ -0,0 +1,31 @@
> +diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp
> +--- boost_1_57_0/boost/mpl/print.hpp~	2014-07-09 23:12:31.000000000
> +0200
> ++++ boost_1_57_0/boost/mpl/print.hpp	2015-01-20 12:44:59.621400948
> +0100
> +@@ -52,16 +52,15 @@ struct print
> +     enum { n = sizeof(T) + -1 };
> + #elif defined(__MWERKS__)
> +     void f(int);
> +-#else 
> +-    enum {
> +-        n =
> +-# if defined(__EDG_VERSION__)
> +-           aux::dependent_unsigned<T>::value > -1
> +-# else 
> +-           sizeof(T) > -1
> +-# endif 
> +-        };
> +-#endif 
> ++#elif defined(__EDG_VERSION__)
> ++    enum { n = aux::dependent_unsigned<T>::value > -1 };
> ++#elif defined(BOOST_GCC)
> ++    enum { n1 };
> ++    enum { n2 };
> ++    enum { n = n1 != n2 };
> ++#else
> ++    enum { n = sizeof(T) > -1 };
> ++#endif
> + };
> + 
> + #if defined(BOOST_MSVC)
> +
> +Diff finished.  Tue Jan 20 12:45:03 2015
> diff --git a/boost/patches/boost-1.57.0-python-abi_letters.patch
> b/boost/patches/boost-1.57.0-python-abi_letters.patch
> new file mode 100644
> index 0000000..7df3ee7
> --- /dev/null
> +++ b/boost/patches/boost-1.57.0-python-abi_letters.patch
> @@ -0,0 +1,62 @@
> +--- boost_1_57_0/tools/build/src/tools/python.jam	2013-05-21
> 06:14:18.000000000 +0200
> ++++ boost_1_55_0/tools/build/src/tools/python.jam	2014-05-29
> 19:09:12.115413877 +0200
> +@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti
> + #   using python : 2.3 : /usr/local/bin/python ;
> + #
> + rule init ( version ? : cmd-or-prefix ? : includes * : libraries ?
> +-    : condition * : extension-suffix ? )
> ++    : condition * : extension-suffix ? : abi-letters ? )
> + {
> +     project.push-current $(.project) ;
> + 
> +@@ -107,7 +107,7 @@ rule init ( version ? : cmd-or-prefix ? 
> +         }
> +     }
> + 
> +-    configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) :
> $(condition) : $(extension-suffix) ;
> ++    configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) :
> $(condition) : $(extension-suffix) : $(abi-letters) ;
> + 
> +     project.pop-current ;
> + }
> +@@ -653,7 +653,7 @@ local rule system-library-dependencies (
> + 
> + # Declare a target to represent Python's library.
> + #
> +-local rule declare-libpython-target ( version ? : requirements * )
> ++local rule declare-libpython-target ( version ? : requirements * : abi-
> letters ? )
> + {
> +     # Compute the representation of Python version in the name of Python's
> +     # library file.
> +@@ -677,13 +677,13 @@ local rule declare-libpython-target ( ve
> +     }
> + 
> +     # Declare it.
> +-    lib python.lib : : <name>python$(lib-version) $(requirements) ;
> ++    lib python.lib : : <name>python$(lib-version)$(abi-letters)
> $(requirements) ;
> + }
> + 
> + 
> + # Implementation of init.
> + local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries
> ? :
> +-    condition * : extension-suffix ? )
> ++    condition * : extension-suffix ? : abi-letters ? )
> + {
> +     local prefix ;
> +     local exec-prefix ;
> +@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o
> +         extension-suffix ?= _d ;
> +     }
> +     extension-suffix ?= "" ;
> ++    abi-letters ?= "" ;
> + 
> +     # Normalize and dissect any version number.
> +     local major-minor ;
> +@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o
> +     }
> +     else
> +     {
> +-        declare-libpython-target $(version) : $(target-requirements) ;
> ++        declare-libpython-target $(version) : $(target-requirements) :
> $(abi-letters) ;
> + 
> +         # This is an evil hack.  On, Windows, when Python is embedded,
> nothing
> +         # seems to set up sys.path to include Python's standard library
> diff --git a/boost/patches/boost-1.57.0-python-libpython_dep.patch
> b/boost/patches/boost-1.57.0-python-libpython_dep.patch
> new file mode 100644
> index 0000000..57bfc26
> --- /dev/null
> +++ b/boost/patches/boost-1.57.0-python-libpython_dep.patch
> @@ -0,0 +1,13 @@
> +Index: boost_1_57_0/tools/build/src/tools/python.jam
> +===================================================================
> +--- boost_1_57_0/tools/build/src/tools/python.jam	(revision 50406)
> ++++ boost_1_57_0/tools/build/src/tools/python.jam	(working copy)
> +@@ -994,7 +994,7 @@
> +     else
> +     {
> +         alias python_for_extensions
> +-            :
> ++            : python
> +             : $(target-requirements)
> +             :
> +             : $(usage-requirements)
> diff --git a/boost/patches/boost-1.57.0-spirit-unused_typedef.patch
> b/boost/patches/boost-1.57.0-spirit-unused_typedef.patch
> new file mode 100644
> index 0000000..2829629
> --- /dev/null
> +++ b/boost/patches/boost-1.57.0-spirit-unused_typedef.patch
> @@ -0,0 +1,19 @@
> +diff -up
> boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp\~
> boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
> +---
> boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp~	
> 2014-10-13 12:21:40.000000000 +0200
> ++++ boost_1_57_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
> 	2015-01-20 13:25:50.069710766 +0100
> +@@ -282,12 +282,12 @@ struct grammar_definition
> + #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
> +         typedef impl::grammar_helper_base<GrammarT> helper_base_t;
> +         typedef grammar_helper_list<GrammarT> helper_list_t;
> +-        typedef typename helper_list_t::vector_t::reverse_iterator
> iterator_t;
> + 
> +         helper_list_t&  helpers =
> +         grammartract_helper_list::do_(self);
> + 
> + # if defined(BOOST_INTEL_CXX_VERSION)
> ++        typedef typename helper_list_t::vector_t::reverse_iterator
> iterator_t;
> +         for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
> +             (*i)->undefine(self);
> + # else
> +
> +Diff finished.  Tue Jan 20 13:25:53 2015
> diff --git a/boost/patches/boost-1.58.0-pool-test_linking.patch
> b/boost/patches/boost-1.58.0-pool-test_linking.patch
> new file mode 100644
> index 0000000..a381370
> --- /dev/null
> +++ b/boost/patches/boost-1.58.0-pool-test_linking.patch
> @@ -0,0 +1,31 @@
> +diff -up boost_1_58_0/libs/pool/test/Jamfile.v2\~
> boost_1_58_0/libs/pool/test/Jamfile.v2
> +--- boost_1_57_0/libs/pool/test/Jamfile.v2~	2015-07-17
> 11:36:16.362519826 +0100
> ++++ boost_1_57_0/libs/pool/test/Jamfile.v2	2015-07-17
> 11:37:38.858847388 +0100
> +@@ -28,17 +28,17 @@
> + local Werr = <toolset>gcc:<warnings-as-errors>on <toolset>msvc:<warnings-as-
> errors>on ;
> + 
> + test-suite pool :
> +-    [ run test_simple_seg_storage.cpp : : : $(Werr)
> <toolset>msvc:<cxxflags>-wd4267 ]
> +-    [ run test_pool_alloc.cpp : : : $(Werr) ]
> +-    [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr)
> <toolset>msvc:<cxxflags>-wd4512 ]
> +-    [ run test_msvc_mem_leak_detect.cpp : : : $(Werr) ]
> +-    [ run test_bug_3349.cpp : : : $(Werr) ]
> +-    [ run test_bug_4960.cpp : : : $(Werr) ]
> +-    [ run test_bug_1252.cpp : : : $(Werr) ]
> +-    [ run test_bug_2696.cpp : : : $(Werr) ]
> +-    [ run test_bug_5526.cpp : : : $(Werr) ]
> ++    [ run test_simple_seg_storage.cpp : : : $(Werr)
> <toolset>msvc:<cxxflags>-wd4267 <library>/boost/system//boost_system ]
> ++    [ run test_pool_alloc.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr)
> <toolset>msvc:<cxxflags>-wd4512 <library>/boost/system//boost_system ]
> ++    [ run test_msvc_mem_leak_detect.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run test_bug_3349.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run test_bug_4960.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run test_bug_1252.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run test_bug_2696.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> ++    [ run test_bug_5526.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> +     [ run test_threading.cpp : : : <threading>multi
> <library>/boost/thread//boost_thread ]
> +-    [ run  ../example/time_pool_alloc.cpp : : : $(Werr) ]
> ++    [ run  ../example/time_pool_alloc.cpp : : : $(Werr)
> <library>/boost/system//boost_system ]
> +     [ compile test_poisoned_macros.cpp : $(Werr) ]
> + 
> + #
> diff --git a/boost/patches/boost-1.58.0-pool.patch0 b/boost/patches/boost-
> 1.58.0-pool.patch0
> new file mode 100644
> index 0000000..ed8449e
> --- /dev/null
> +++ b/boost/patches/boost-1.58.0-pool.patch0
> @@ -0,0 +1,120 @@
> +Index: boost/pool/pool.hpp
> +===================================================================
> +--- boost/pool/pool.hpp	(revision 78317)
> ++++ boost/pool/pool.hpp	(revision 78326)
> +@@ -27,4 +27,6 @@
> + #include <boost/pool/poolfwd.hpp>
> + 
> ++// std::numeric_limits
> ++#include <boost/limits.hpp>
> + // boost::integer::static_lcm
> + #include <boost/integer/common_factor_ct.hpp>
> +@@ -358,4 +360,11 @@
> +     }
> + 
> ++    size_type max_chunks() const
> ++    { //! Calculated maximum number of memory chunks that can be allocated
> in a single call by this Pool.
> ++      size_type partition_size = alloc_size();
> ++      size_type POD_size = integer::static_lcm<sizeof(size_type),
> sizeof(void *)>::value + sizeof(size_type);
> ++      return (std::numeric_limits<size_type>::max() - POD_size) /
> alloc_size();
> ++    }
> ++
> +     static void * & nextof(void * const ptr)
> +     { //! \returns Pointer dereferenced.
> +@@ -377,5 +388,7 @@
> +       //!   the first time that object needs to allocate system memory.
> +       //!   The default is 32. This parameter may not be 0.
> +-      //! \param nmax_size is the maximum number of chunks to allocate in
> one block.
> ++      //! \param nmax_size is the maximum number of chunks to allocate in
> one block.			
> ++      set_next_size(nnext_size);
> ++      set_max_size(nmax_size);
> +     }
> + 
> +@@ -400,7 +413,7 @@
> +     }
> +     void set_next_size(const size_type nnext_size)
> +-    { //! Set number of chunks to request from the system the next time that
> object needs to allocate system memory. This value should never be set to 0.
> +-      //! \returns nnext_size.
> +-      next_size = start_size = nnext_size;
> ++    { //! Set number of chunks to request from the system the next time that
> object needs to allocate system memory. This value should never be set to
> 0.     
> ++      BOOST_USING_STD_MIN();
> ++      next_size = start_size = min
> BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
> +     }
> +     size_type get_max_size() const
> +@@ -410,5 +423,6 @@
> +     void set_max_size(const size_type nmax_size)
> +     { //! Set max_size.
> +-      max_size = nmax_size;
> ++      BOOST_USING_STD_MIN();
> ++      max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size,
> max_chunks());
> +     }
> +     size_type get_requested_size() const
> +@@ -713,7 +727,7 @@
> +   BOOST_USING_STD_MIN();
> +   if(!max_size)
> +-    next_size <<= 1;
> ++    set_next_size(next_size << 1);
> +   else if( next_size*partition_size/requested_size < max_size)
> +-    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size*requested_size/ partition_size);
> ++    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size * requested_size / partition_size));
> + 
> +   //  initialize it,
> +@@ -753,7 +767,7 @@
> +   BOOST_USING_STD_MIN();
> +   if(!max_size)
> +-    next_size <<= 1;
> ++    set_next_size(next_size << 1);
> +   else if( next_size*partition_size/requested_size < max_size)
> +-    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size*requested_size/ partition_size);
> ++    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size * requested_size / partition_size));
> + 
> +   //  initialize it,
> +@@ -797,4 +811,6 @@
> +   //! \returns Address of chunk n if allocated ok.
> +   //! \returns 0 if not enough memory for n chunks.
> ++  if (n > max_chunks())
> ++    return 0;
> + 
> +   const size_type partition_size = alloc_size();
> +@@ -845,7 +861,7 @@
> +   BOOST_USING_STD_MIN();
> +   if(!max_size)
> +-    next_size <<= 1;
> ++    set_next_size(next_size << 1);
> +   else if( next_size*partition_size/requested_size < max_size)
> +-    next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size*requested_size/ partition_size);
> ++    set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1,
> max_size * requested_size / partition_size));
> + 
> +   //  insert it into the list,
> +Index: libs/pool/test/test_bug_6701.cpp
> +===================================================================
> +--- libs/pool/test/test_bug_6701.cpp	(revision 78326)
> ++++ libs/pool/test/test_bug_6701.cpp	(revision 78326)
> +@@ -0,0 +1,27 @@
> ++/* Copyright (C) 2012 Étienne Dupuis
> ++* 
> ++* Use, modification and distribution is subject to the 
> ++* Boost Software License, Version 1.0. (See accompanying
> ++* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
> ++*/
> ++
> ++// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
> ++
> ++#include <boost/pool/object_pool.hpp>
> ++#include <boost/limits.hpp>
> ++
> ++int main()
> ++{
> ++  boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
> ++
> ++  void *x = p.malloc();
> ++  BOOST_ASSERT(!x);
> ++  
> ++  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >=
> p.get_next_size());
> ++  BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >=
> p.get_max_size());
> ++
> ++  void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
> ++  BOOST_ASSERT(!y);
> ++
> ++  return 0;
> ++}
> diff --git a/boost/patches/boost-1.59-test-fenv.patch2 b/boost/patches/boost-
> 1.59-test-fenv.patch2
> new file mode 100644
> index 0000000..df87f56
> --- /dev/null
> +++ b/boost/patches/boost-1.59-test-fenv.patch2
> @@ -0,0 +1,32 @@
> +commit 2f3b98e640c25fe45ae691a5aa950745380b983e
> +Author: Jonathan Wakely <jwakely(a)redhat.com>
> +Date:   Mon Sep 14 15:05:24 2015 +0100
> +
> +    Do not qualify <fenv.h> names that might be macros.
> +
> +diff --git a/include/boost/test/impl/execution_monitor.ipp
> b/include/boost/test/impl/execution_monitor.ipp
> +index 3a9e779..8b319df 100644
> +--- a/include/boost/test/impl/execution_monitor.ipp
> ++++ b/include/boost/test/impl/execution_monitor.ipp
> +@@ -1380,8 +1380,8 @@ enable( unsigned mask )
> + 
> +     return ~old_cw & BOOST_FPE_ALL;
> + #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) &&
> !defined(BOOST_NO_FENV_H)
> +-    ::feclearexcept(BOOST_FPE_ALL);
> +-    int res = ::feenableexcept( mask );
> ++    feclearexcept(BOOST_FPE_ALL);
> ++    int res = feenableexcept( mask );
> +     return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
> + #else
> +     /* Not Implemented  */
> +@@ -1417,8 +1417,8 @@ disable( unsigned mask )
> + 
> +     return ~old_cw & BOOST_FPE_ALL;
> + #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) &&
> !defined(BOOST_NO_FENV_H)
> +-    ::feclearexcept(BOOST_FPE_ALL);
> +-    int res = ::fedisableexcept( mask );
> ++    feclearexcept(BOOST_FPE_ALL);
> ++    int res = fedisableexcept( mask );
> +     return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
> + #else
> +     /* Not Implemented */

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-04-14  9:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-14  6:48 Stefan Schantl
2016-04-14  9:48 ` Michael Tremer [this message]
2016-04-15  6:48   ` Stefan Schantl
2016-04-15  6:52     ` [[PATCHv2]] boost: Update " Stefan Schantl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1460627309.2617.92.camel@ipfire.org \
    --to=michael.tremer@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox