This is an automated email from the ASF dual-hosted git repository.

jimjag pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 7ce5b5df31 Raise the C++ standard floor to C++11 on Linux and FreeBSD
7ce5b5df31 is described below

commit 7ce5b5df31d462d18bd1a27767f9ee8b2b323b86
Author: Jim Jagielski <[email protected]>
AuthorDate: 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.
---
 main/solenv/gbuild/platform/freebsd.mk |  8 +++++---
 main/solenv/gbuild/platform/linux.mk   |  8 +++++---
 main/solenv/inc/unxfbsd.mk             | 11 +++++++++--
 main/solenv/inc/unxlng.mk              | 12 ++++++++++--
 4 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/main/solenv/gbuild/platform/freebsd.mk 
b/main/solenv/gbuild/platform/freebsd.mk
index b1259cb42d..6433fa2c80 100644
--- a/main/solenv/gbuild/platform/freebsd.mk
+++ b/main/solenv/gbuild/platform/freebsd.mk
@@ -92,7 +92,7 @@ gb_CXXFLAGS := \
        -fno-use-cxa-atexit \
        -fvisibility-inlines-hidden \
        -fvisibility=hidden \
-       -std=gnu++98 \
+       -std=gnu++11 \
        -pipe
 ifeq ($(COM),CLANG)
 gb_CXXFLAGS += -DHAVE_STL_INCLUDE_PATH
@@ -101,8 +101,10 @@ gb_CXXFLAGS += -DBOOST_TR1_DISABLE_INCLUDE_NEXT 
-DBOOST_TR1_GCC_INCLUDE_PATH=c++
 endif
 
 ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
-gb_CFLAGS_WERROR := -Werror
-gb_CXXFLAGS_WERROR := -Werror
+# C++11 deprecation/narrowing warnings (std::auto_ptr, dynamic exception specs,
+# braced-init narrowing) must not be fatal.  Mirrors macosx.mk.
+gb_CFLAGS_WERROR := -Werror -Wno-error=deprecated 
-Wno-error=deprecated-declarations -Wno-error=narrowing
+gb_CXXFLAGS_WERROR := -Werror -Wno-error=deprecated 
-Wno-error=deprecated-declarations -Wno-error=narrowing
 endif
 
 ifneq ($(strip $(SYSBASE)),)
diff --git a/main/solenv/gbuild/platform/linux.mk 
b/main/solenv/gbuild/platform/linux.mk
index 874dbde417..5777898295 100644
--- a/main/solenv/gbuild/platform/linux.mk
+++ b/main/solenv/gbuild/platform/linux.mk
@@ -89,12 +89,14 @@ gb_CXXFLAGS := \
        -fuse-cxa-atexit \
        -fvisibility-inlines-hidden \
        -fvisibility=hidden \
-       -std=gnu++98 \
+       -std=gnu++11 \
        -pipe \
 
 ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
-gb_CFLAGS_WERROR := -Werror
-gb_CXXFLAGS_WERROR := -Werror
+# C++11 deprecation/narrowing warnings (std::auto_ptr, dynamic exception specs,
+# braced-init narrowing) must not be fatal.  Mirrors macosx.mk.
+gb_CFLAGS_WERROR := -Werror -Wno-error=deprecated 
-Wno-error=deprecated-declarations -Wno-error=narrowing
+gb_CXXFLAGS_WERROR := -Werror -Wno-error=deprecated 
-Wno-error=deprecated-declarations -Wno-error=narrowing
 endif
 
 ifneq ($(strip $(SYSBASE)),)
diff --git a/main/solenv/inc/unxfbsd.mk b/main/solenv/inc/unxfbsd.mk
index 3e2575f53f..f27ef2a7ba 100644
--- a/main/solenv/inc/unxfbsd.mk
+++ b/main/solenv/inc/unxfbsd.mk
@@ -105,7 +105,11 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
 CFLAGS_NO_EXCEPTIONS=-fno-exceptions
 
 # -fpermissive should be removed as soon as possible
-CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++98
+# C++11 is the lowest supported standard (matches the macOS floor).  Our old
+# code base still uses constructs deprecated in C++11 (notably std::auto_ptr 
and
+# dynamic exception specifications); those remain valid until C++17 and are 
kept
+# non-fatal via -Wno-error= below.
+CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++11
 .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
 CFLAGSCXX += -fvisibility-inlines-hidden
 .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
@@ -139,7 +143,10 @@ CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow 
-Wno-ctor-dtor-privacy \
     -Wno-non-virtual-dtor
 CFLAGSWALLCC=$(CFLAGSWARNCC)
 CFLAGSWALLCXX=$(CFLAGSWARNCXX)
-CFLAGSWERRCC=-Werror
+# Keep -Werror, but do not let the C++11 dialect's deprecation/narrowing
+# warnings (std::auto_ptr, dynamic exception specs, braced-init narrowing) 
break
+# the build.  Mirrors the macOS handling in unxmacc.mk.
+CFLAGSWERRCC=-Werror -Wno-error=deprecated -Wno-error=deprecated-declarations 
-Wno-error=narrowing
 
 # Once all modules on this platform compile without warnings, set
 # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
diff --git a/main/solenv/inc/unxlng.mk b/main/solenv/inc/unxlng.mk
index cdbe591b4d..5c2e13c936 100644
--- a/main/solenv/inc/unxlng.mk
+++ b/main/solenv/inc/unxlng.mk
@@ -88,7 +88,12 @@ CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
 CFLAGS_NO_EXCEPTIONS=-fno-exceptions
 
 # -fpermissive should be removed as soon as possible
-CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++98
+# C++11 is the lowest supported standard (matches the macOS floor).  Our old
+# code base still uses constructs deprecated in C++11 (notably std::auto_ptr 
and
+# dynamic exception specifications); those remain valid until C++17 and are 
kept
+# non-fatal via -Wno-error= below.  The compiler floor is GCC 4.8.5 (CentOS 7),
+# which fully supports gnu++11.
+CFLAGSCXX= -pipe $(ARCH_FLAGS) -std=gnu++11
 .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
 CFLAGSCXX += -fvisibility-inlines-hidden
 .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
@@ -127,7 +132,10 @@ CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow 
-Wno-ctor-dtor-privacy \
     -Wno-non-virtual-dtor
 CFLAGSWALLCC=$(CFLAGSWARNCC)
 CFLAGSWALLCXX=$(CFLAGSWARNCXX)
-CFLAGSWERRCC=-Werror
+# Keep -Werror, but do not let the C++11 dialect's deprecation/narrowing
+# warnings (std::auto_ptr, dynamic exception specs, braced-init narrowing) 
break
+# the build.  Mirrors the macOS handling in unxmacc.mk.
+CFLAGSWERRCC=-Werror -Wno-error=deprecated -Wno-error=deprecated-declarations 
-Wno-error=narrowing
 
 # Once all modules on this platform compile without warnings, set
 # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see

Reply via email to