boost: update to 1.77.0
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
_realname=boost
|
||||
pkgbase=mingw-w64-${_realname}
|
||||
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
||||
pkgver=1.75.0
|
||||
pkgver=1.77.0
|
||||
_boostver=${pkgver//./_}
|
||||
pkgrel=9
|
||||
pkgrel=1
|
||||
pkgdesc="Free peer-reviewed portable C++ source libraries (mingw-w64)"
|
||||
arch=('any')
|
||||
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
|
||||
@@ -22,63 +22,41 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
|
||||
"lndir")
|
||||
options=('strip' 'buildflags' 'staticlibs')
|
||||
source=(https://boostorg.jfrog.io/artifactory/main/release/${pkgver}/source/boost_${_boostver}.tar.bz2
|
||||
boost-1.48.0-add-bjam-man-page.patch
|
||||
boost-1.58.0-pool.patch
|
||||
boost-1.63.0-python-test-PyImport_AppendInittab.patch
|
||||
boost-1.57.0-build-optflags.patch
|
||||
boost-1.57.0-mpl-print.patch
|
||||
boost-1.68.0-pool-test_linking.patch
|
||||
boost-1.57.0-python-abi_letters.patch
|
||||
boost-1.57.0-python-libpython_dep.patch
|
||||
boost-1.60.0-mingw-context.patch
|
||||
boost-1.69-old-style-names-layout.patch
|
||||
boost-1.70.0-fix-python-install.patch
|
||||
boost-1.73.0-context-gas_mingw_symbols.patch
|
||||
boost-1.73.0-fix-locale-icu.patch
|
||||
boost-1.74-mingw-32bit-enable-tls.patch
|
||||
boost-1.75-dont-set-msvcrt-version.patch
|
||||
boost-1.75-mingw-clang.patch
|
||||
using-mingw-w64-python.patch
|
||||
msys2-mingw-folders-bootstrap.patch)
|
||||
sha256sums=('953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb'
|
||||
'c5eae6354693c6b4e6364d4cf6f06c6c3de4c28486bf812cbd291f4410126cf8'
|
||||
sha256sums=('fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854'
|
||||
'4551ba9edf64c8ccdab4f4890c20e2e8cf6d4ffa1169d251df11e30d25b886b8'
|
||||
'b22196b6415f5e1c0fe56b49a12ea7c20073b15a5f31907f363c7be38d70d628'
|
||||
'35ff098d1268397e2404bd2db7aa2faa2ec193905b014e6cb36b1bca6e876b01'
|
||||
'3a26077616487deff011fea7f042df9b03efce27a586be2ce42d0562b48b7ad5'
|
||||
'95e794e586943a5280f1da10a8990e5b639afcda140bac93d74c4f5f57855286'
|
||||
'9d159f713fecbcb2b8faf2534da4cbb223bde6c3e393218aca2c0b3dfc3374c1'
|
||||
'cf46e9b791b45937d5af26b0f35dcdfa416cd9b62ef6c29e3064464835634628'
|
||||
'01758929643f92530512230d37df9793e6481cd6ce6310e3a79cee5ba287858c'
|
||||
'704c2f1528b4584edd67d67159787cc2bd0db8b9321251a22df7b2fa00bd83f7'
|
||||
'c2508e60bed41471b396875e0289b4b1d4e021f3d01f4294615c72fcd8567439'
|
||||
'21d039cf867a41253f752c5f04f0cdb2ec86f17ad88459918b326fa48e9c1e05'
|
||||
'bb84f3c7fc4b856c2bc2dc5c385152905c51ba8bffffa9371370c41168d55fcc'
|
||||
'0270b8a647ccf5deeae440e4f9eef99ccea4fdc8694758810ae608140d4ded9a'
|
||||
'5e5fc9e04482903e1a0e7c6c4e81b57448b8dc86c707d1436d69ddc5010219ff'
|
||||
'5ef2b1011dc960b7f55d4da89bcd75418eb696dce677b9fd0c78632f4109e7d3'
|
||||
'15f25653ec71e061cbd3a611a969541c57ea70c1fe95cb0de11f22cc68c7670f'
|
||||
'edc8cb076afe5132f2e5a1393e6e65ef3a8740384f36b7b9aa065d53b1182292'
|
||||
'876c64687e4e1c700b5c64971e4cf62792e869b471b8d63cbb721fc057fc612f'
|
||||
'0dd6346d369850aad13bf8d9bc2f0abc16d4b0586e34d61fab11f65d3d7fa9d4'
|
||||
'5c38e08ba63695afa79a29d5d3ea22ef1ecf79f91d48ae922e1a489e83782742'
|
||||
'5117629ee577de0da800b6923675683ba69422cdbe958e70c9081fdc6886402e')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/boost_${_boostver}"
|
||||
|
||||
# Add a manual page for bjam, based on the on-line documentation:
|
||||
# https://www.boost.org/boost-build2/doc/html/bbv2/overview.html
|
||||
rm tools/build/v2/doc/bjam.1 || true
|
||||
msg2 "boost-1.48.0-add-bjam-man-page.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.48.0-add-bjam-man-page.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
|
||||
# https://svn.boost.org/trac/boost/ticket/6701
|
||||
msg2 "boost-1.58.0-pool.patch"
|
||||
patch -p0 -i ${srcdir}/boost-1.58.0-pool.patch
|
||||
|
||||
# https://svn.boost.org/trac/boost/ticket/5637
|
||||
msg2 "boost-1.57.0-mpl-print.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.57.0-mpl-print.patch
|
||||
|
||||
# https://svn.boost.org/trac/boost/ticket/9038
|
||||
msg2 "boost-1.68.0-pool-test_linking.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.68.0-pool-test_linking.patch
|
||||
@@ -95,10 +73,6 @@ prepare() {
|
||||
msg2 "boost-1.57.0-build-optflags.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.57.0-build-optflags.patch
|
||||
|
||||
# https://svn.boost.org/trac/boost/ticket/7262
|
||||
msg2 "boost-1.60.0-mingw-context.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.60.0-mingw-context.patch
|
||||
|
||||
# Back old names for libraries (without architecture)
|
||||
msg2 "boost-1.69-old-style-names-layout.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.69-old-style-names-layout.patch
|
||||
@@ -113,10 +87,6 @@ prepare() {
|
||||
# Fix installation of both Python versions
|
||||
msg2 "boost-1.70.0-fix-python-install.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.70.0-fix-python-install.patch
|
||||
|
||||
# Correct GAS naming for MinGW
|
||||
msg2 "boost-1.73.0-context-gas_mingw_symbols.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.73.0-context-gas_mingw_symbols.patch
|
||||
|
||||
# Fix Boost::locale compilation to use ICU backend
|
||||
msg2 "boost-1.73.0-fix-locale-icu.patch"
|
||||
@@ -124,14 +94,6 @@ prepare() {
|
||||
|
||||
msg2 "boost-1.74-mingw-32bit-enable-tls.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.74-mingw-32bit-enable-tls.patch
|
||||
|
||||
# https://github.com/boostorg/nowide/pull/130
|
||||
# https://github.com/boostorg/log/pull/149
|
||||
msg2 "boost-1.75-dont-set-msvcrt-version.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.75-dont-set-msvcrt-version.patch
|
||||
|
||||
msg2 "boost-1.75-mingw-clang.patch"
|
||||
patch -p1 -i ${srcdir}/boost-1.75-mingw-clang.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
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/html/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/overview/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/targets.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
|
||||
@@ -1,98 +0,0 @@
|
||||
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
|
||||
@@ -1,45 +1,46 @@
|
||||
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
|
||||
@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sourc
|
||||
--- ./tools/build/src/tools/gcc.jam.orig 2021-08-05 12:43:08.000000000 +0300
|
||||
+++ ./tools/build/src/tools/gcc.jam 2021-09-09 17:46:48.197950000 +0300
|
||||
@@ -509,7 +509,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)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
}
|
||||
|
||||
actions compile.c bind PCH_FILE
|
||||
@@ -587,7 +587,7 @@ actions compile.c bind PCH_FILE
|
||||
@@ -519,7 +519,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)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
|
||||
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
|
||||
- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
|
||||
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)"
|
||||
}
|
||||
|
||||
actions compile.c.preprocess bind PCH_FILE
|
||||
@@ -704,17 +704,17 @@
|
||||
@@ -620,17 +620,17 @@ actions compile.c.pch
|
||||
###
|
||||
|
||||
# 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 ;
|
||||
+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 : ;
|
||||
+toolset.flags gcc.compile OPTIONS <inlining>on : ;
|
||||
+toolset.flags gcc.compile OPTIONS <inlining>full : ;
|
||||
+
|
||||
+toolset.flags gcc.compile OPTIONS <warnings>off : ;
|
||||
+toolset.flags gcc.compile OPTIONS <warnings>on : ;
|
||||
+toolset.flags gcc.compile OPTIONS <warnings>all : ;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
diff -up boost_1_57_0/boost/mpl/print.hpp.orig boost_1_57_0/boost/mpl/print.hpp
|
||||
--- boost_1_57_0/boost/mpl/print.hpp.orig 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
|
||||
@@ -1,13 +0,0 @@
|
||||
--- boost_1_58_0/tools/build/src/tools/gcc.jam~ 2015-07-17 15:14:57.381636224 +0100
|
||||
+++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-07-27 17:35:29.122264048 +0100
|
||||
@@ -421,7 +421,9 @@
|
||||
|
||||
rule setup-address-model ( targets * : sources * : properties * )
|
||||
{
|
||||
- local model = [ feature.get-values address-model : $(properties) ] ;
|
||||
+ # For RPM builds the address model flag is passed in %{optflags}.
|
||||
+ # local model = [ feature.get-values address-model : $(properties) ] ;
|
||||
+ local model ;
|
||||
if $(model)
|
||||
{
|
||||
local option ;
|
||||
@@ -1,50 +0,0 @@
|
||||
From 788820f2c5be89882cc0b58bec815decc23af0d7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tomasz=20W=C5=82ostowski?= <tomasz.wlostowski@cern.ch>
|
||||
Date: Fri, 29 Jan 2016 00:37:30 +0100
|
||||
Subject: [PATCH] boost::context segfault fix on x86_64/Windows
|
||||
|
||||
---
|
||||
libs/context/build/Jamfile.v2 | 18 ++++++++++--------
|
||||
1 files changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/libs/context/build/Jamfile.v2 b/libs/context/build/Jamfile.v2
|
||||
index 63c6984..cba6dce 100644
|
||||
--- a/libs/context/build/Jamfile.v2
|
||||
+++ b/libs/context/build/Jamfile.v2
|
||||
@@ -52,10 +52,11 @@ project boost/context
|
||||
local rule default_binary_format ( )
|
||||
{
|
||||
local tmp = elf ;
|
||||
- if [ os.name ] = "NT" { tmp = pe ; }
|
||||
- else if [ os.name ] = "CYGWIN" { tmp = pe ; }
|
||||
- else if [ os.name ] = "AIX" { tmp = xcoff ; }
|
||||
- else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
|
||||
+# if [ os.name ] = "NT" { tmp = pe ; }
|
||||
+# else if [ os.name ] = "CYGWIN" { tmp = pe ; }
|
||||
+# else if [ os.name ] = "AIX" { tmp = xcoff ; }
|
||||
+# else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
|
||||
+ tmp = pe ;
|
||||
return $(tmp) ;
|
||||
}
|
||||
|
||||
@@ -72,11 +73,12 @@ feature.set-default binary-format : [ default_binary_format ] ;
|
||||
local rule default_abi ( )
|
||||
{
|
||||
local tmp = sysv ;
|
||||
- if [ os.name ] = "NT" { tmp = ms ; }
|
||||
- else if [ os.name ] = "CYGWIN" { tmp = ms ; }
|
||||
- else if [ os.platform ] = "ARM" { tmp = aapcs ; }
|
||||
- else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
|
||||
- else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
|
||||
+# if [ os.name ] = "NT" { tmp = ms ; }
|
||||
+# else if [ os.name ] = "CYGWIN" { tmp = ms ; }
|
||||
+# else if [ os.platform ] = "ARM" { tmp = aapcs ; }
|
||||
+# else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
|
||||
+# else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
|
||||
+ tmp = ms ;
|
||||
return $(tmp) ;
|
||||
}
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
From 78ffbe094400d277627b2c19ceb182d637b8baca Mon Sep 17 00:00:00 2001
|
||||
From: Rene Rivera <grafikrobot@gmail.com>
|
||||
Date: Sat, 16 Jul 2016 15:53:30 -0500
|
||||
Subject: [PATCH] Fix not having a default python interpreter version on
|
||||
targets.
|
||||
|
||||
This change adds a toolset requirement that sets the python version
|
||||
feature of the first configured python for a given target OS (usually
|
||||
the host OS). This allows to correctly configure different python
|
||||
interpreters for different target OSes.
|
||||
---
|
||||
a/tools/build/src/tools/python.jam | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/tools/build/src/tools/python.jam b/tools/build/src/tools/python.jam
|
||||
index 6404d8ad37..6ee32167fc 100644
|
||||
--- a/tools/build/src/tools/python.jam
|
||||
+++ b/tools/build/src/tools/python.jam
|
||||
@@ -900,6 +900,19 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
|
||||
toolset.add-requirements
|
||||
$(target-requirements:J=,):<python.interpreter>$(interpreter-cmd) ;
|
||||
|
||||
+ # We also set a default requirement that assigns the first python configured
|
||||
+ # for a particular target OS as the default. This makes it so that we can
|
||||
+ # select a python interpreter with only knowledge of the target OS. And hence
|
||||
+ # can configure different Pythons based on the target OS only.
|
||||
+ local toolset-requirements = [ toolset.requirements ] ;
|
||||
+ local toolset-target-os-requirements
|
||||
+ = [ property.evaluate-conditionals-in-context
|
||||
+ [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
|
||||
+ if ! <python> in $(toolset-target-os-requirements:G)
|
||||
+ {
|
||||
+ toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
|
||||
+ }
|
||||
+
|
||||
# Register the right suffix for extensions.
|
||||
register-extension-suffix $(extension-suffix) : $(target-requirements) ;
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
From fdbdb94db64e888fce90fe519be23c2a4396a82e Mon Sep 17 00:00:00 2001
|
||||
From: pradeep <pradeep@arrayfire.com>
|
||||
Date: Tue, 8 May 2018 14:53:38 +0530
|
||||
Subject: [PATCH 1/2] Fix return var qualifier in svm_ptr::get_context
|
||||
|
||||
Lack of `const` qualifier is throwing errors with GCC 8.1
|
||||
---
|
||||
include/boost/compute/memory/svm_ptr.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/boost/compute/memory/svm_ptr.hpp b/include/boost/compute/memory/svm_ptr.hpp
|
||||
index c8753f5b..56cf1268 100644
|
||||
--- a/boost/compute/memory/svm_ptr.hpp
|
||||
+++ b/boost/compute/memory/svm_ptr.hpp
|
||||
@@ -126,7 +126,7 @@ class svm_ptr
|
||||
return m_ptr - other.m_ptr;
|
||||
}
|
||||
|
||||
- context& get_context() const
|
||||
+ const context& get_context() const
|
||||
{
|
||||
return m_context;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- boost_1_69_0/boostcpp.jam.orig 2018-12-14 08:31:53.950328700 +0300
|
||||
+++ boost_1_69_0/boostcpp.jam 2018-12-14 08:32:02.280743300 +0300
|
||||
@@ -154,7 +154,7 @@
|
||||
--- boost_1_77_0/boostcpp.jam.orig 2021-08-05 12:41:03.000000000 +0300
|
||||
+++ boost_1_77_0/boostcpp.jam 2021-09-10 10:34:07.605536000 +0300
|
||||
@@ -163,7 +163,7 @@ else if $(layout) = tagged
|
||||
<base> <threading> <runtime> ;
|
||||
case 1.69 :
|
||||
.format-name-args =
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- boost_1_70_0.orig/tools/build/src/build/virtual-target.jam 2019-04-12 16:15:08.325230800 -0400
|
||||
+++ boost_1_70_0/tools/build/src/build/virtual-target.jam 2019-04-12 16:53:35.810087000 -0400
|
||||
@@ -1137,19 +1137,6 @@
|
||||
@@ -1138,19 +1138,6 @@ rule register-actual-name ( actual-name
|
||||
properties-added = [ set.difference $(p2) : $(p1) ] ;
|
||||
properties-added ?= "none" ;
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
Index: boost_1_73_0/libs/context/src/asm/jump_i386_ms_pe_gas.asm
|
||||
===================================================================
|
||||
--- boost_1_73_0/libs/context/src/asm/jump_i386_ms_pe_gas.asm 2020-04-22 18:34:56.000000000 +0500
|
||||
+++ boost_1_73_0/libs/context/src/asm/jump_i386_ms_pe_gas.asm 2020-05-20 21:47:26.428470000 +0500
|
||||
@@ -120,4 +120,4 @@
|
||||
jmp *%ecx
|
||||
|
||||
.section .drectve
|
||||
-.ascii " -export:\"_jump_fcontext\""
|
||||
+.ascii " -export:\"jump_fcontext\""
|
||||
Index: boost_1_73_0/libs/context/src/asm/make_i386_ms_pe_gas.asm
|
||||
===================================================================
|
||||
--- boost_1_73_0/libs/context/src/asm/make_i386_ms_pe_gas.asm 2020-04-22 18:34:56.000000000 +0500
|
||||
+++ boost_1_73_0/libs/context/src/asm/make_i386_ms_pe_gas.asm 2020-05-20 21:49:16.504695200 +0500
|
||||
@@ -150,4 +150,4 @@
|
||||
.def __exit; .scl 2; .type 32; .endef /* standard C library function */
|
||||
|
||||
.section .drectve
|
||||
-.ascii " -export:\"_make_fcontext\""
|
||||
+.ascii " -export:\"make_fcontext\""
|
||||
Index: boost_1_73_0/libs/context/src/asm/ontop_i386_ms_pe_gas.asm
|
||||
===================================================================
|
||||
--- boost_1_73_0/libs/context/src/asm/ontop_i386_ms_pe_gas.asm 2020-04-22 18:34:56.000000000 +0500
|
||||
+++ boost_1_73_0/libs/context/src/asm/ontop_i386_ms_pe_gas.asm 2020-05-20 21:50:32.339577100 +0500
|
||||
@@ -128,4 +128,4 @@
|
||||
jmp *%ecx
|
||||
|
||||
.section .drectve
|
||||
-.ascii " -export:\"_ontop_fcontext\""
|
||||
+.ascii " -export:\"ontop_fcontext\""
|
||||
@@ -1,47 +0,0 @@
|
||||
--- boost_1_75_0/boost/log/detail/config.hpp.orig 2021-04-05 16:25:32.003076500 +0200
|
||||
+++ boost_1_75_0/boost/log/detail/config.hpp 2021-04-05 16:26:08.365696000 +0200
|
||||
@@ -17,12 +17,6 @@
|
||||
#ifndef BOOST_LOG_DETAIL_CONFIG_HPP_INCLUDED_
|
||||
#define BOOST_LOG_DETAIL_CONFIG_HPP_INCLUDED_
|
||||
|
||||
-// This check must be before any system headers are included, or __MSVCRT_VERSION__ may get defined to 0x0600
|
||||
-#if defined(__MINGW32__) && !defined(__MSVCRT_VERSION__)
|
||||
-// Target MinGW headers to at least MSVC 7.0 runtime by default. This will enable some useful functions.
|
||||
-#define __MSVCRT_VERSION__ 0x0700
|
||||
-#endif
|
||||
-
|
||||
#include <boost/predef/os.h>
|
||||
|
||||
// Try including WinAPI config as soon as possible so that any other headers don't include Windows SDK headers
|
||||
--- boost_1_75_0/boost/nowide/config.hpp.orig 2021-04-05 16:25:38.162569500 +0200
|
||||
+++ boost_1_75_0/boost/nowide/config.hpp 2021-04-05 16:26:11.891185000 +0200
|
||||
@@ -17,13 +17,6 @@
|
||||
|
||||
//! @cond Doxygen_Suppress
|
||||
|
||||
-// MinGW32 requires a __MSVCRT_VERSION__ defined to make some functions available, e.g. _stat64
|
||||
-// Hence define this here to target MSVC 7.0 which has the required functions and do it as early as possible
|
||||
-// as including a system header might default this to 0x0600 which is to low
|
||||
-#if defined(__MINGW32__) && !defined(__MSVCRT_VERSION__)
|
||||
-#define __MSVCRT_VERSION__ 0x0700
|
||||
-#endif
|
||||
-
|
||||
#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK)
|
||||
#ifdef BOOST_NOWIDE_SOURCE
|
||||
#define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT
|
||||
--- boost_1_75_0/libs/nowide/standalone/config.hpp.orig 2021-04-05 16:24:52.922726300 +0200
|
||||
+++ boost_1_75_0/libs/nowide/standalone/config.hpp 2021-04-05 16:26:20.590768400 +0200
|
||||
@@ -11,13 +11,6 @@
|
||||
|
||||
#include <boost/nowide/replacement.hpp>
|
||||
|
||||
-// MinGW32 requires a __MSVCRT_VERSION__ defined to make some functions available, e.g. _stat64
|
||||
-// Hence define this here to target MSVC 7.0 which has the required functions and do it as early as possible
|
||||
-// as including a system header might default this to 0x0600 which is to low
|
||||
-#if defined(__MINGW32__) && !defined(__MSVCRT_VERSION__)
|
||||
-#define __MSVCRT_VERSION__ 0x0700
|
||||
-#endif
|
||||
-
|
||||
#if(defined(__WIN32) || defined(_WIN32) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||
#define NOWIDE_WINDOWS
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
--- boost_1_75_0/tools/build/src/engine/build.sh.orig 2021-01-31 23:59:07.083918500 -0800
|
||||
+++ boost_1_75_0/tools/build/src/engine/build.sh 2021-01-31 23:59:52.849850400 -0800
|
||||
@@ -221,7 +221,7 @@
|
||||
exit 1
|
||||
fi
|
||||
case $machine in
|
||||
- *mingw*)
|
||||
+ *mingw*|*windows-gnu*)
|
||||
# MinGW insists that its bin directory be in PATH.
|
||||
if test -r ${B2_TOOLSET_ROOT}bin/gcc ; then
|
||||
export PATH=${B2_TOOLSET_ROOT}bin:$PATH
|
||||
@@ -1,6 +1,6 @@
|
||||
--- boost_1_56_0/tools/build/src/tools/python.jam.orig 2014-01-29 22:13:34.032800000 +0400
|
||||
+++ boost_1_56_0/tools/build/src/tools/python.jam 2014-01-29 22:24:39.674600000 +0400
|
||||
@@ -506,44 +506,11 @@
|
||||
--- boost_1_77_0/tools/build/src/tools/python.jam.orig 2021-09-09 17:58:15.722392400 +0300
|
||||
+++ boost_1_77_0/tools/build/src/tools/python.jam 2021-09-10 10:22:53.310231600 +0300
|
||||
@@ -514,50 +514,9 @@ local rule compute-default-paths ( targe
|
||||
{
|
||||
exec-prefix ?= $(prefix) ;
|
||||
|
||||
@@ -31,24 +31,30 @@
|
||||
-
|
||||
- debug-message "and \""$(default-include-path[1])"\" to default #include path" ;
|
||||
- }
|
||||
+ includes ?= $(prefix)/include/python$(version) ;
|
||||
|
||||
-
|
||||
- libraries ?= $(default-library-path) ;
|
||||
- includes ?= $(default-include-path) ;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- includes ?= $(prefix)/include/python$(version) ;
|
||||
+ local lib = $(exec-prefix)/lib ;
|
||||
+ libraries ?= $(lib)/python$(version)/config $(lib) ;
|
||||
|
||||
- local default-include-path = $(prefix)/include/python$(version) ;
|
||||
- if ! [ path.exists $(default-include-path) ] && [ path.exists $(default-include-path)m ]
|
||||
- {
|
||||
- default-include-path = $(default-include-path)m ;
|
||||
- }
|
||||
-
|
||||
- includes ?= $(default-include-path) ;
|
||||
-
|
||||
- local lib = $(exec-prefix)/lib ;
|
||||
- libraries ?= $(lib)/python$(version)/config $(lib) ;
|
||||
- }
|
||||
+ libraries ?= $(lib)/python$(version)/config $(lib) ;
|
||||
+ includes ?= $(prefix)/include/python$(version) ;
|
||||
+ local lib = $(exec-prefix)/lib ;
|
||||
}
|
||||
|
||||
# The version of the python interpreter to use.
|
||||
@@ -565,32 +532,15 @@
|
||||
@@ -579,32 +538,15 @@ variant debug-python : debug : <python-d
|
||||
local rule candidate-interpreters ( version ? : prefix ? : target-os )
|
||||
{
|
||||
local bin-path = bin ;
|
||||
@@ -86,7 +92,7 @@
|
||||
}
|
||||
|
||||
|
||||
@@ -658,15 +608,6 @@
|
||||
@@ -682,15 +624,6 @@ local rule declare-libpython-target ( ve
|
||||
# Compute the representation of Python version in the name of Python's
|
||||
# library file.
|
||||
local lib-version = $(version) ;
|
||||
@@ -102,7 +108,7 @@
|
||||
|
||||
if ! $(lib-version)
|
||||
{
|
||||
@@ -694,10 +635,6 @@
|
||||
@@ -718,10 +651,6 @@ local rule configure ( version ? : cmd-o
|
||||
target-os ?= [ feature.defaults target-os ] ;
|
||||
target-os = $(target-os:G=) ;
|
||||
|
||||
@@ -111,9 +117,9 @@
|
||||
- extension-suffix ?= _d ;
|
||||
- }
|
||||
extension-suffix ?= "" ;
|
||||
abi-letters ?= "" ;
|
||||
|
||||
# Normalize and dissect any version number.
|
||||
@@ -721,13 +658,7 @@
|
||||
@@ -738,13 +667,7 @@ local rule configure ( version ? : cmd-o
|
||||
# Work with the command the user gave us.
|
||||
cmds-to-try = $(cmd-or-prefix) ;
|
||||
|
||||
@@ -128,7 +134,7 @@
|
||||
}
|
||||
|
||||
# Values to use in case we can not really find anything in the system.
|
||||
@@ -936,11 +867,6 @@
|
||||
@@ -994,11 +917,6 @@ local rule configure ( version ? : cmd-o
|
||||
# environment variable set up, and the user may want to use it for
|
||||
# something else (e.g. launch the debugger).
|
||||
local set-PYTHONPATH ;
|
||||
|
||||
Reference in New Issue
Block a user