Hi

--with-system-boost and boost-libs version 1.80.0, fails in the vcl module
in a lengthy error pasted later. An earlier version of boost-libs failed
too, possibly 1.79 or so.

--without-system-boost fails in the configmgr module instead, due to a
tuple definition bug in boost. Luckily I managed to hack around this, but I
am not sure whether my patch is needed for other platforms or compilers
(currently it only applies to Clang). So I am not committing it, but
attaching it here for review.

Damjan


-------------------------------------------------------------
Errors --with-system-boost version 1.80.0:
-------------------------------------------------------------

In file included from
/path/to/openoffice-git/main/vcl/unx/gtk/a11y/atkutil.cxx:41:
In file included from
/path/to/openoffice-git/main/solver/450/unxfbsdx/inc/vcl/menu.hxx:31:
In file included from
/path/to/openoffice-git/main/solver/450/unxfbsdx/inc/vcl/bitmapex.hxx:28:
In file included from
/path/to/openoffice-git/main/solver/450/unxfbsdx/inc/vcl/bitmap.hxx:38:
In file included from
/usr/local/include/boost/math/special_functions/sinc.hpp:18:
/usr/local/include/boost/math/tools/config.hpp:23:6: warning: "The minimum
language standard to use Boost.Math will be C++14 starting in July 2023
(Boost 1.82 release)" [-W#warnings]
#    warning "The minimum language standard to use Boost.Math will be C++14
starting in July 2023 (Boost 1.82 release)"
     ^
/usr/local/include/boost/math/tools/config.hpp:422:61: error: expected ';'
at end of declaration
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
BOOST_MATH_NOEXCEPT(T)
                                                            ^
                                                            ;
/usr/local/include/boost/math/tools/config.hpp:422:82: error: use of
undeclared identifier 'T'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
BOOST_MATH_NOEXCEPT(T)

     ^
/usr/local/include/boost/math/tools/config.hpp:422:62: error: unknown type
name 'noexcept'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
BOOST_MATH_NOEXCEPT(T)
                                                             ^
/usr/local/include/boost/math/tools/config.hpp:320:32: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                               ^
/usr/local/include/boost/math/tools/config.hpp:422:82: error: use of
undeclared identifier 'T'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
BOOST_MATH_NOEXCEPT(T)

     ^
error: expected unqualified-id
/usr/local/include/boost/math/tools/config.hpp:422:62: error: expected ')'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
BOOST_MATH_NOEXCEPT(T)
                                                             ^
/usr/local/include/boost/math/tools/config.hpp:320:66: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                                                 ^
/usr/local/include/boost/math/tools/config.hpp:422:62: note: to match this
'('
/usr/local/include/boost/math/tools/config.hpp:320:40: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                       ^
/usr/local/include/boost/math/tools/config.hpp:428:66: error: expected ';'
at end of declaration
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
BOOST_MATH_NOEXCEPT(T)
                                                                 ^
                                                                 ;
/usr/local/include/boost/math/tools/config.hpp:428:87: error: use of
undeclared identifier 'T'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
BOOST_MATH_NOEXCEPT(T)

          ^
/usr/local/include/boost/math/tools/config.hpp:428:67: error: unknown type
name 'noexcept'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
BOOST_MATH_NOEXCEPT(T)
                                                                  ^
/usr/local/include/boost/math/tools/config.hpp:320:32: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                               ^
/usr/local/include/boost/math/tools/config.hpp:428:87: error: use of
undeclared identifier 'T'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
BOOST_MATH_NOEXCEPT(T)

          ^
error: expected unqualified-id
/usr/local/include/boost/math/tools/config.hpp:428:67: error: expected ')'
inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
BOOST_MATH_NOEXCEPT(T)
                                                                  ^
/usr/local/include/boost/math/tools/config.hpp:320:66: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                                                 ^
/usr/local/include/boost/math/tools/config.hpp:428:67: note: to match this
'('
/usr/local/include/boost/math/tools/config.hpp:320:40: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                       ^
/usr/local/include/boost/math/tools/config.hpp:436:48: error: expected ';'
at end of declaration
void suppress_unused_variable_warning(const T&) BOOST_MATH_NOEXCEPT(T)
                                               ^
                                               ;
/usr/local/include/boost/math/tools/config.hpp:436:69: error: use of
undeclared identifier 'T'
void suppress_unused_variable_warning(const T&) BOOST_MATH_NOEXCEPT(T)
                                                                    ^
/usr/local/include/boost/math/tools/config.hpp:436:49: error: unknown type
name 'noexcept'
void suppress_unused_variable_warning(const T&) BOOST_MATH_NOEXCEPT(T)
                                                ^
/usr/local/include/boost/math/tools/config.hpp:320:32: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                               ^
/usr/local/include/boost/math/tools/config.hpp:436:69: error: use of
undeclared identifier 'T'
void suppress_unused_variable_warning(const T&) BOOST_MATH_NOEXCEPT(T)
                                                                    ^
error: expected unqualified-id
/usr/local/include/boost/math/tools/config.hpp:436:49: error: expected ')'
void suppress_unused_variable_warning(const T&) BOOST_MATH_NOEXCEPT(T)
                                                ^
/usr/local/include/boost/math/tools/config.hpp:320:66: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                                                 ^
/usr/local/include/boost/math/tools/config.hpp:436:49: note: to match this
'('
/usr/local/include/boost/math/tools/config.hpp:320:40: note: expanded from
macro 'BOOST_MATH_NOEXCEPT'
#define BOOST_MATH_NOEXCEPT(T) noexcept(std::is_floating_point<T>::value)
                                       ^
/usr/local/include/boost/math/tools/config.hpp:445:11: error: unknown type
name 'constexpr'
   static constexpr bool value = std::is_integral<T>::value ||
(std::numeric_limits<T>::is_specialized &&
std::numeric_limits<T>::is_integer);
          ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
commit 7ea3dd96c0cddf821d2f83199ef817a4fa174040
Author: Damjan Jovanovic <dam...@apache.org>
Date:   Tue Aug 23 02:46:53 2022 +0200

    --without-system-boost apparently needs BOOST_NO_CXX11_HDR_TUPLE defined
    to compile with Clang, at least on FreeBSD.
    
    Patch by: me

diff --git a/main/boost/boost-clang.patch b/main/boost/boost-clang.patch
new file mode 100644
index 0000000000..564976f690
--- /dev/null
+++ b/main/boost/boost-clang.patch
@@ -0,0 +1,11 @@
+--- misc/build/boost_1_55_0/boost/config/compiler/clang.hpp	2022-08-22 19:00:17.163863000 +0200
++++ misc/build/boost_1_55_0/boost/config/compiler/clang.hpp	2022-08-22 19:01:04.842941000 +0200
+@@ -168,6 +168,8 @@
+ #  define BOOST_NO_CXX11_INLINE_NAMESPACES
+ #endif
+ 
++#define BOOST_NO_CXX11_HDR_TUPLE
++
+ // Clang always supports variadic macros
+ // Clang always supports extern templates
+ 
diff --git a/main/boost/makefile.mk b/main/boost/makefile.mk
index ae402c982a..89eb6140f3 100644
--- a/main/boost/makefile.mk
+++ b/main/boost/makefile.mk
@@ -50,6 +50,7 @@ PATCH_FILES= $(TARFILE_NAME).patch
 .IF "$(GUI)"=="OS2"
 PATCH_FILES+=boost-os2.patch
 .ENDIF
+PATCH_FILES+=boost-clang.patch
 
 CONFIGURE_DIR=
 CONFIGURE_ACTION=
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to