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 2026/07/04 16:15:02 UTC
C++11 breaks the OpenOffice build in vcl
Hi
This commit makes OpenOffice unbuildable on FreeBSD and probably Linux:
---snip---
commit 7ce5b5df31d462d18bd1a27767f9ee8b2b323b86
Author: Jim Jagielski <ji...@gmail.com>
Date: Thu Jul 2 05:33:55 2026 -0400
Raise the C++ standard floor to C++11 on Linux and FreeBSD
Linux and FreeBSD were pinned to -std=gnu++98 while macOS already
builds at C++11. Bump both platforms (dmake and gbuild build systems)
to -std=gnu++11, making C++11 the lowest supported standard across all
platforms. gnu++11 (rather than strict c++11) preserves the GNU dialect
the codebase relies on and avoids __STRICT_ANSI__ system-header fallout.
Compiler floor is GCC 4.8.5 (CentOS 7), which fully supports gnu++11.
---snip---
In file included from main/vcl/unx/gtk/a11y/atkbridge.cxx:28:
In file included from main/vcl/inc/unx/gtk/gtkframe.hxx:28:
In file included from /usr/local/include/gtk-2.0/gtk/gtk.h:32:
In file included from /usr/local/include/gtk-2.0/gdk/gdk.h:32:
In file included from
/usr/local/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30:
In file included from /usr/local/include/glib-2.0/gio/gio.h:28:
In file included from /usr/local/include/glib-2.0/gio/giotypes.h:30:
In file included from /usr/local/include/glib-2.0/gio/gioenums.h:30:
In file included from /usr/local/include/glib-2.0/glib-object.h:24:
In file included from /usr/local/include/glib-2.0/gobject/gbinding.h:30:
In file included from /usr/local/include/glib-2.0/glib.h:34:
In file included from /usr/local/include/glib-2.0/glib/gasyncqueue.h:34:
In file included from /usr/local/include/glib-2.0/glib/gthread.h:34:
In file included from /usr/local/include/glib-2.0/glib/gatomic.h:30:
In file included from /usr/local/include/glib-2.0/glib/glib-typeof.h:43:
In file included from /usr/include/c++/v1/type_traits:421:
/usr/include/c++/v1/__fwd/functional.h:20:1: error: templates must have C++
linkage
20 | template <class>
| ^~~~~~~~~~~~~~~~
/store0/Projects/Apache/Public/openoffice/openoffice-git/main/solver/450/unxfbsdx/inc/tools/prex.h:39:1:
note: extern "C" language linkage specification begins here
39 | extern "C" {
| ^
And almost all other files in vcl get the same error.
On which platforms was this commit tested?
Regards
Damjan
Re: C++11 breaks the OpenOffice build in vcl
Posted by Pe...@apache.org.
Am 05.07.2026 um 18:35 schrieb Damjan Jovanovic:
> On Sun, Jul 5, 2026 at 2:53 PM Arrigo Marchiori <ar...@apache.org> wrote:
>
>>> to its stricter requirements for symbol version scripts, that is fixed in
>>> commit 3e6a53ec4966bc78e4eb80339b6629fb1dcd11be.
>> Thanks for the above, and also for fixing the regression I introduced
>> in the package module.
>
> It's a pleasure. We really need better unit tests to prevent such problems.
I am trying to add unit tests, but as soon as VCL becomes involved I can
kiss a unit test good bye.
I had a similar issue with connection-pooling, I ended up to refactor
the code, now i dont know if
the result is good or bad. 🙈 But i can write unit tests.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org
Re: C++11 breaks the OpenOffice build in vcl
Posted by Damjan Jovanovic <da...@apache.org>.
On Sun, Jul 5, 2026 at 2:53 PM Arrigo Marchiori <ar...@apache.org> wrote:
> Hello Damjan, All,
>
> On Sun, Jul 05, 2026 at 10:00:18AM +0200, Damjan Jovanovic wrote:
>
> > I fixed this with commit 6fa1fa2b88cbceb204fac1b1eeed6c94026ee988, and
> also
> > needed c0afafeee09cedd3f7cece69028b73abca647569 due to strict enums in
> C++
> > 2011.
> >
> > Jim, you also broke test/ with your Java 1.8 change, I had to fix that
> with
> > commit 7dd1299384489e9e0f00010dd91111c7b5abae84.
> >
> > And recent Clang's lld hasn't been able to link OpenOffice for a while,
> due
> > to its stricter requirements for symbol version scripts, that is fixed in
> > commit 3e6a53ec4966bc78e4eb80339b6629fb1dcd11be.
>
> Thanks for the above, and also for fixing the regression I introduced
> in the package module.
It's a pleasure. We really need better unit tests to prevent such problems.
> > Arrigo: we don't really need f73ac418d5dd20ea224f626049f59311eb46536f,
> you
> > can build with autoconf 2.73 if you set CFLAGS="-std=gnu99".
>
> My issue is that I do not have autoconf 2.73 on my Linux systems.
> Some ship 2.72, some 2.71. My commit allows me to run autoconf and
> build again. I'd lower the bar further if possible.
Oh I see. Sure, lower it further if necessary.
> FWIW, Python and Python-related modules also do not build on Linux; I
> am working on a pull request to fix that.
>
All the best.
>
> Best regards,
> --
> Arrigo
Regards
Damjan
Re: C++11 breaks the OpenOffice build in vcl
Posted by Arrigo Marchiori <ar...@apache.org>.
Hello Damjan, All,
On Sun, Jul 05, 2026 at 10:00:18AM +0200, Damjan Jovanovic wrote:
> I fixed this with commit 6fa1fa2b88cbceb204fac1b1eeed6c94026ee988, and also
> needed c0afafeee09cedd3f7cece69028b73abca647569 due to strict enums in C++
> 2011.
>
> Jim, you also broke test/ with your Java 1.8 change, I had to fix that with
> commit 7dd1299384489e9e0f00010dd91111c7b5abae84.
>
> And recent Clang's lld hasn't been able to link OpenOffice for a while, due
> to its stricter requirements for symbol version scripts, that is fixed in
> commit 3e6a53ec4966bc78e4eb80339b6629fb1dcd11be.
Thanks for the above, and also for fixing the regression I introduced
in the package module.
> Arrigo: we don't really need f73ac418d5dd20ea224f626049f59311eb46536f, you
> can build with autoconf 2.73 if you set CFLAGS="-std=gnu99".
My issue is that I do not have autoconf 2.73 on my Linux systems.
Some ship 2.72, some 2.71. My commit allows me to run autoconf and
build again. I'd lower the bar further if possible.
FWIW, Python and Python-related modules also do not build on Linux; I
am working on a pull request to fix that.
Best regards,
--
Arrigo
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org
Re: C++11 breaks the OpenOffice build in vcl
Posted by Damjan Jovanovic <da...@apache.org>.
I fixed this with commit 6fa1fa2b88cbceb204fac1b1eeed6c94026ee988, and also
needed c0afafeee09cedd3f7cece69028b73abca647569 due to strict enums in C++
2011.
Jim, you also broke test/ with your Java 1.8 change, I had to fix that with
commit 7dd1299384489e9e0f00010dd91111c7b5abae84.
And recent Clang's lld hasn't been able to link OpenOffice for a while, due
to its stricter requirements for symbol version scripts, that is fixed in
commit 3e6a53ec4966bc78e4eb80339b6629fb1dcd11be.
Arrigo: we don't really need f73ac418d5dd20ea224f626049f59311eb46536f, you
can build with autoconf 2.73 if you set CFLAGS="-std=gnu99".
I don't know why there are so many large systemic changes lately. Now is
not a good time, and they were made without any discussion.
Regards
Damjan
On Sat, Jul 4, 2026 at 6:15 PM Damjan Jovanovic <da...@apache.org> wrote:
> Hi
>
> This commit makes OpenOffice unbuildable on FreeBSD and probably Linux:
>
> ---snip---
> commit 7ce5b5df31d462d18bd1a27767f9ee8b2b323b86
> Author: Jim Jagielski <ji...@gmail.com>
> Date: Thu Jul 2 05:33:55 2026 -0400
>
> Raise the C++ standard floor to C++11 on Linux and FreeBSD
>
> Linux and FreeBSD were pinned to -std=gnu++98 while macOS already
> builds at C++11. Bump both platforms (dmake and gbuild build systems)
> to -std=gnu++11, making C++11 the lowest supported standard across all
> platforms. gnu++11 (rather than strict c++11) preserves the GNU dialect
> the codebase relies on and avoids __STRICT_ANSI__ system-header
> fallout.
>
> Compiler floor is GCC 4.8.5 (CentOS 7), which fully supports gnu++11.
> ---snip---
>
> In file included from main/vcl/unx/gtk/a11y/atkbridge.cxx:28:
> In file included from main/vcl/inc/unx/gtk/gtkframe.hxx:28:
> In file included from /usr/local/include/gtk-2.0/gtk/gtk.h:32:
> In file included from /usr/local/include/gtk-2.0/gdk/gdk.h:32:
> In file included from
> /usr/local/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30:
> In file included from /usr/local/include/glib-2.0/gio/gio.h:28:
> In file included from /usr/local/include/glib-2.0/gio/giotypes.h:30:
> In file included from /usr/local/include/glib-2.0/gio/gioenums.h:30:
> In file included from /usr/local/include/glib-2.0/glib-object.h:24:
> In file included from /usr/local/include/glib-2.0/gobject/gbinding.h:30:
> In file included from /usr/local/include/glib-2.0/glib.h:34:
> In file included from /usr/local/include/glib-2.0/glib/gasyncqueue.h:34:
> In file included from /usr/local/include/glib-2.0/glib/gthread.h:34:
> In file included from /usr/local/include/glib-2.0/glib/gatomic.h:30:
> In file included from /usr/local/include/glib-2.0/glib/glib-typeof.h:43:
> In file included from /usr/include/c++/v1/type_traits:421:
> /usr/include/c++/v1/__fwd/functional.h:20:1: error: templates must have
> C++ linkage
> 20 | template <class>
> | ^~~~~~~~~~~~~~~~
> /store0/Projects/Apache/Public/openoffice/openoffice-git/main/solver/450/unxfbsdx/inc/tools/prex.h:39:1:
> note: extern "C" language linkage specification begins here
> 39 | extern "C" {
> | ^
>
> And almost all other files in vcl get the same error.
>
> On which platforms was this commit tested?
>
> Regards
> Damjan
>
>