You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Damjan Jovanovic <da...@apache.org> on 2022/08/23 00:58:19 UTC

--with-system-boost breaks build in vcl, --without in configmgr

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=]

Re: --with-system-boost breaks build in vcl, --without in configmgr

Posted by Damjan Jovanovic <da...@apache.org>.
Hi

Linux and FreeBSD have always used the "gnu++98" standard:

openoffice-git/main]$ grep '\-std' solenv -R
solenv/inc/unxfbsd.mk:CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++98
solenv/inc/unxlng.mk:CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++98
solenv/gbuild/platform/freebsd.mk: -std=gnu++98 \
solenv/gbuild/platform/linux.mk: -std=gnu++98 \

Regards
Damjan

On Tue, Aug 23, 2022 at 10:46 PM Peter Kovacs <pe...@apache.org> wrote:

> Hi Damjan,
>
> First with what C++ Standard do you build?
>
> I have seen strange errors if you build with the wrong standard.
>
> All the best
>
> Peter
>

Re: --with-system-boost breaks build in vcl, --without in configmgr

Posted by Peter Kovacs <pe...@apache.org>.
Hi Damjan,

First with what C++ Standard do you build?

I have seen strange errors if you build with the wrong standard.

All the best

Peter

Am 23.08.22 um 02:58 schrieb Damjan Jovanovic:
> 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=]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org