You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ji...@apache.org on 2026/07/01 18:30:34 UTC
(openoffice) branch trunk updated (2bd665dae8 -> e278cb3926)
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git
from 2bd665dae8 Hrmm Be sure to add these new entries with the bump in boost
new 00a90ea2c3 Support building with modern JDKs while keeping Java 8 runtime compatibility
new e278cb3926 jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/lang/commons-lang3-java-version.patch | 17 +++++++++++++++++
main/apache-commons/java/lang/makefile.mk | 1 +
main/hsqldb/makefile.mk | 12 ++++++++----
main/hsqldb/patches/runfinalizers.patch | 22 ++++++++++++++++++++++
main/javainstaller2/build.xml | 2 +-
.../plugins/sunmajor/pluginlib/vendorbase.hxx | 2 ++
main/lucene/lucene-java-version.patch | 12 ++++++------
main/rhino/makefile.mk | 2 +-
main/rhino/rhino1_7R3-java-version.patch | 13 +++++++++++++
main/saxon/saxon-9.0.0.7-bj.patch | 8 ++++----
main/solenv/ant/aoo-ant.xml | 5 ++++-
main/solenv/inc/antsettings.mk | 9 +++++++++
main/solenv/inc/settings.mk | 11 +++++++++++
main/stax/makefile.mk | 4 +++-
14 files changed, 102 insertions(+), 18 deletions(-)
create mode 100644 main/apache-commons/java/lang/commons-lang3-java-version.patch
create mode 100644 main/hsqldb/patches/runfinalizers.patch
create mode 100644 main/rhino/rhino1_7R3-java-version.patch
(openoffice) 02/02: jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
Posted by ji...@apache.org.
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
commit e278cb3926a29fb9a38f15711fbfdef43c02602f
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Jul 1 14:29:42 2026 -0400
jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
---
main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx b/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
index 1b71699885..86ebdb8266 100644
--- a/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
+++ b/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
@@ -57,6 +57,8 @@ namespace jfw_plugin
#define JFW_PLUGIN_ARCH "s390x"
#elif defined S390
#define JFW_PLUGIN_ARCH "s390"
+#elif defined AARCH64
+#define JFW_PLUGIN_ARCH "aarch64"
#elif defined ARM
#define JFW_PLUGIN_ARCH "arm"
#elif defined IA64
(openoffice) 01/02: Support building with modern JDKs while keeping Java 8 runtime compatibility
Posted by ji...@apache.org.
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
commit 00a90ea2c35aa0d62b41963f97bc10041530f5d1
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Jul 1 14:26:50 2026 -0400
Support building with modern JDKs while keeping Java 8 runtime compatibility
The bundled Java externals and the core Java build assumed old JDKs and
emitted pre-8 bytecode at pre-8 source/target levels. Modern JDKs (11+)
reject -source/-target 1.4/1.5/6/7 outright, and even where compilation
succeeds a new JDK silently emits bytecode that will not load on the
minimum supported Java 8 runtime.
Establish a tree-wide Java 8 bytecode floor and fix the bundled externals
so the tree builds on any JDK from 8 through 21 while all artifacts remain
loadable on a Java 8 JRE.
---
.../java/lang/commons-lang3-java-version.patch | 17 +++++++++++++++++
main/apache-commons/java/lang/makefile.mk | 1 +
main/hsqldb/makefile.mk | 12 ++++++++----
main/hsqldb/patches/runfinalizers.patch | 22 ++++++++++++++++++++++
main/javainstaller2/build.xml | 2 +-
main/lucene/lucene-java-version.patch | 12 ++++++------
main/rhino/makefile.mk | 2 +-
main/rhino/rhino1_7R3-java-version.patch | 13 +++++++++++++
main/saxon/saxon-9.0.0.7-bj.patch | 8 ++++----
main/solenv/ant/aoo-ant.xml | 5 ++++-
main/solenv/inc/antsettings.mk | 9 +++++++++
main/solenv/inc/settings.mk | 11 +++++++++++
main/stax/makefile.mk | 4 +++-
13 files changed, 100 insertions(+), 18 deletions(-)
diff --git a/main/apache-commons/java/lang/commons-lang3-java-version.patch b/main/apache-commons/java/lang/commons-lang3-java-version.patch
new file mode 100644
index 0000000000..95f2e9dfcf
--- /dev/null
+++ b/main/apache-commons/java/lang/commons-lang3-java-version.patch
@@ -0,0 +1,17 @@
+--- misc/build/commons-lang3-3.3-src/default.properties
++++ misc/build/commons-lang3-3.3-src/default.properties
+@@ -73,12 +73,12 @@
+ # In particular, if you use JDK 1.4+ the generated classes will not be usable
+ # for a 1.1 Java VM unless you explicitly set this attribute to the value 1.1
+ # (which is the default value for JDK 1.1 to 1.3).
+-compile.target = 1.6
++compile.target = 1.8
+
+ # Specifies the source version for the Java compiler.
+ # Corresponds to the source attribute for the ant javac task.
+ # Valid values are 1.3, 1.4, 1.5.
+-compile.source = 1.6
++compile.source = 1.8
+
+ # Specifies the source encoding.
+ compile.encoding = ISO-8859-1
diff --git a/main/apache-commons/java/lang/makefile.mk b/main/apache-commons/java/lang/makefile.mk
index df400aecfa..88b67fabd9 100644
--- a/main/apache-commons/java/lang/makefile.mk
+++ b/main/apache-commons/java/lang/makefile.mk
@@ -49,6 +49,7 @@ TARFILE_MD5=4c8c505cc3cba4c467c479e3e0f09ba4
TARFILE_ROOTDIR=commons-lang3-3.3-src
#PATCH_FILES=$(PRJ)$/patches$/logging.patch
+PATCH_FILES=commons-lang3-java-version.patch
#CONVERTFILES=build.xml
diff --git a/main/hsqldb/makefile.mk b/main/hsqldb/makefile.mk
index e2f14404b8..fd77dde950 100644
--- a/main/hsqldb/makefile.mk
+++ b/main/hsqldb/makefile.mk
@@ -49,17 +49,21 @@ CONVERTFILES=build$/build.xml \
src$/org$/hsqldb$/persist$/HsqlDatabaseProperties.java \
src$/org$/hsqldb$/Library.java
-PATCH_FILES=patches$/i121754.patch patches$/script.patch
+PATCH_FILES=patches$/i121754.patch patches$/script.patch patches$/runfinalizers.patch
+
+# hsqldb's build.xml javac tasks specify no source/target; pin them so bytecode
+# stays Java 8 compatible regardless of the (possibly much newer) build JDK.
+JAVAC_SRCTGT=-Dant.build.javac.source=1.8 -Dant.build.javac.target=1.8
.IF "$(JAVACISGCJ)"=="yes"
JAVA_HOME=
.EXPORT : JAVA_HOME
-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj $(JAVAC_SRCTGT) -f $(ANT_BUILDFILE) jar
.ELSE
.IF "$(debug)"!=""
-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.debug="on" -f $(ANT_BUILDFILE) jar
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.debug="on" $(JAVAC_SRCTGT) -f $(ANT_BUILDFILE) jar
.ELSE
-BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" $(JAVAC_SRCTGT) -f $(ANT_BUILDFILE) jar
.ENDIF
.ENDIF
diff --git a/main/hsqldb/patches/runfinalizers.patch b/main/hsqldb/patches/runfinalizers.patch
new file mode 100644
index 0000000000..dfeafdfee2
--- /dev/null
+++ b/main/hsqldb/patches/runfinalizers.patch
@@ -0,0 +1,22 @@
+--- misc/build/hsqldb/src/org/hsqldb/lib/java/JavaSystem.java
++++ misc/build/hsqldb/src/org/hsqldb/lib/java/JavaSystem.java
+@@ -160,7 +160,7 @@
+ public static void runFinalizers() {
+
+ //#ifdef JAVA2FULL
+- System.runFinalizersOnExit(true);
++ // System.runFinalizersOnExit(boolean) was removed in Java 11+; dropped for modern JDK compatibility
+
+ //#endif
+ }
+--- misc/build/hsqldb/src/org/hsqldb/lib/HsqlArrayList.java
++++ misc/build/hsqldb/src/org/hsqldb/lib/HsqlArrayList.java
+@@ -57,7 +57,7 @@
+ Reporter() {
+
+ try {
+- System.runFinalizersOnExit(true);
++ // System.runFinalizersOnExit(boolean) was removed in Java 11+; dropped for modern JDK compatibility
+ } catch (SecurityException e) {}
+ }
+
diff --git a/main/javainstaller2/build.xml b/main/javainstaller2/build.xml
index 4ad58dbea7..6dcad32532 100644
--- a/main/javainstaller2/build.xml
+++ b/main/javainstaller2/build.xml
@@ -77,7 +77,7 @@
</target>
<target name="compile-javainstaller" depends="prepare" unless="jarFile.uptodate">
- <javac srcdir="${source.dir}" source="1.4" target="1.4"
+ <javac srcdir="${source.dir}" source="1.8" target="1.8"
destdir="${build.dir}/${classes.dir}/${name}"
debug="${compile.debug}"
optimize="${compile.optimize}">
diff --git a/main/lucene/lucene-java-version.patch b/main/lucene/lucene-java-version.patch
index c22e7fc94a..b674733d1e 100644
--- a/main/lucene/lucene-java-version.patch
+++ b/main/lucene/lucene-java-version.patch
@@ -6,8 +6,8 @@
<property name="javac.debug" value="on"/>
- <property name="javac.source" value="1.4"/>
- <property name="javac.target" value="1.4"/>
-+ <property name="javac.source" value="1.6"/>
-+ <property name="javac.target" value="1.6"/>
++ <property name="javac.source" value="1.8"/>
++ <property name="javac.target" value="1.8"/>
<property name="javadoc.link" value="http://java.sun.com/j2se/1.4/docs/api/"/>
<property name="javadoc.access" value="protected"/>
@@ -19,8 +19,8 @@
- <property name="javac.source" value="1.4" />
- <property name="javac.target" value="1.4" />
-+ <property name="javac.source" value="1.6" />
-+ <property name="javac.target" value="1.6" />
++ <property name="javac.source" value="1.8" />
++ <property name="javac.target" value="1.8" />
<property name="build.dir" location="../../../build/contrib/analyzers/common" />
<property name="dist.dir" location="../../../dist/contrib/analyzers/common" />
@@ -32,8 +32,8 @@
- <property name="javac.source" value="1.4" />
- <property name="javac.target" value="1.4" />
-+ <property name="javac.source" value="1.6" />
-+ <property name="javac.target" value="1.6" />
++ <property name="javac.source" value="1.8" />
++ <property name="javac.target" value="1.8" />
<property name="build.dir" location="../../../build/contrib/analyzers/smartcn" />
<property name="dist.dir" location="../../../dist/contrib/analyzers/smartcn" />
diff --git a/main/rhino/makefile.mk b/main/rhino/makefile.mk
index 5104695816..9bed5ae846 100644
--- a/main/rhino/makefile.mk
+++ b/main/rhino/makefile.mk
@@ -51,7 +51,7 @@ TARFILE_ROOTDIR=rhino1_7R3
ADDITIONAL_FILES= \
toolsrc/org/mozilla/javascript/tools/debugger/OfficeScriptInfo.java
-PATCH_FILES=rhino1_7R3.patch
+PATCH_FILES=rhino1_7R3.patch rhino1_7R3-java-version.patch
.IF "$(JAVACISGCJ)"=="yes"
JAVA_HOME=
diff --git a/main/rhino/rhino1_7R3-java-version.patch b/main/rhino/rhino1_7R3-java-version.patch
new file mode 100644
index 0000000000..921be10617
--- /dev/null
+++ b/main/rhino/rhino1_7R3-java-version.patch
@@ -0,0 +1,13 @@
+--- misc/build/rhino1_7R3/build.properties
++++ misc/build/rhino1_7R3/build.properties
+@@ -53,8 +53,8 @@
+
+ # compilation settings
+ debug: on
+-target-jvm: 1.5
+-source-level: 1.5
++target-jvm: 1.8
++source-level: 1.8
+
+ # jar generation settings
+ jar-compression: true
diff --git a/main/saxon/saxon-9.0.0.7-bj.patch b/main/saxon/saxon-9.0.0.7-bj.patch
index 157ed004c2..bf2ed0fa48 100644
--- a/main/saxon/saxon-9.0.0.7-bj.patch
+++ b/main/saxon/saxon-9.0.0.7-bj.patch
@@ -144,10 +144,10 @@
+ <property name="build.debuglevel" value="source,lines,vars"/>
+ <property name="build.deprecation" value="true"/>
+ <property name="build.optimize" value="true"/>
-+ <property name="build.compiler.source" value="1.4"/>
-+ <property name="build.compiler.target" value="1.4"/>
-+ <property name="build.s9api.compiler.source" value="1.5"/>
-+ <property name="build.s9api.compiler.target" value="1.5"/>
++ <property name="build.compiler.source" value="1.8"/>
++ <property name="build.compiler.target" value="1.8"/>
++ <property name="build.s9api.compiler.source" value="1.8"/>
++ <property name="build.s9api.compiler.target" value="1.8"/>
+ <property name="build.compress" value="false"/>
+
+ <!-- following properties can be switched to determine whether to build from patch source
diff --git a/main/solenv/ant/aoo-ant.xml b/main/solenv/ant/aoo-ant.xml
index 4a42c7e5c9..7ed043bf6a 100644
--- a/main/solenv/ant/aoo-ant.xml
+++ b/main/solenv/ant/aoo-ant.xml
@@ -51,7 +51,10 @@
<property name="test-idl.classes.build.dir" location="${build.base.dir}/test-idl/classes"/>
<property name="test.reports.dir" location="${build.base.dir}/test-reports"/>
- <property name="java.baseline.version" value="1.7"/>
+ <!-- Java bytecode baseline: source/target level for all aoo-ant.xml driven
+ modules. 1.8 is the minimum supported JRE; must not exceed what modern
+ build JDKs still accept as -source/-target (JDK 21 dropped 1.7). -->
+ <property name="java.baseline.version" value="1.8"/>
<property name="jar.dir" location="${WORKDIR}/Ant"/>
<property name="main.debug" value="true"/>
diff --git a/main/solenv/inc/antsettings.mk b/main/solenv/inc/antsettings.mk
index a809bdb92f..4f7a661c7a 100644
--- a/main/solenv/inc/antsettings.mk
+++ b/main/solenv/inc/antsettings.mk
@@ -80,3 +80,12 @@ ANT_FLAGS=
.IF "$(WITH_LANG)"!=""
ANT_FLAGS+=-Dsolar.langs="$(WITH_LANG)" -Dsolar.localized="true"
.ENDIF # "$(WITH_LANG)"!=""
+
+# Tree-wide Java bytecode floor for ant-driven builds: ant.build.javac.source/
+# target is Ant's global default for any <javac> task that does not set its own
+# source/target, so bytecode stays Java 8 compatible on newer build JDKs. Tasks
+# that specify their own source/target (e.g. patched saxon/lucene) are not
+# overridden. gcj does not accept these, so skip that path.
+.IF "$(SOLAR_JAVA)"!="" && "$(JAVACISGCJ)"!="yes"
+ANT_FLAGS+=-Dant.build.javac.source=1.8 -Dant.build.javac.target=1.8
+.ENDIF # "$(SOLAR_JAVA)"!="" && "$(JAVACISGCJ)"!="yes"
diff --git a/main/solenv/inc/settings.mk b/main/solenv/inc/settings.mk
index ea088be714..258e081a3b 100644
--- a/main/solenv/inc/settings.mk
+++ b/main/solenv/inc/settings.mk
@@ -150,6 +150,17 @@ JAVARESPONSE=
.ENDIF
.ENDIF
+# Tree-wide Java bytecode floor: compile all Java to a fixed source/target level
+# so artifacts run on the minimum supported JRE (Java 8) regardless of how new
+# the build JDK is. Without this, building on a modern JDK (e.g. 21) emits
+# bytecode that will not load on Java 8. gcj does not accept -source/-target,
+# so skip it there. Can be overridden by setting JAVA_TARGET_FLAG in the env.
+.IF "$(JAVA_TARGET_FLAG)"==""
+.IF "$(JAVACISGCJ)"!="yes"
+JAVA_TARGET_FLAG=-source 1.8 -target 1.8
+.ENDIF # "$(JAVACISGCJ)"!="yes"
+.ENDIF # "$(JAVA_TARGET_FLAG)"==""
+
JAVAFLAGS+=$(JAVA_TARGET_FLAG)
#END JAVA
diff --git a/main/stax/makefile.mk b/main/stax/makefile.mk
index 57c74831b8..ed5955d0e5 100644
--- a/main/stax/makefile.mk
+++ b/main/stax/makefile.mk
@@ -55,7 +55,9 @@ TARFILE_NAME=stax-src-1.2.0
TARFILE_MD5=980143f96b3f6ce45d2e4947da21a5e9
TARFILE_ROOTDIR=src
-BUILD_ACTION=$(JAVAC) javax$/xml$/stream$/*.java && jar -cf stax-1.2.0.jar javax$/xml$/stream$/*.class javax$/xml$/stream$/events$/*.class javax$/xml$/stream$/util$/*.class
+# $(JAVA_TARGET_FLAG) pins bytecode to the Java 8 floor (settings.mk); this raw
+# javac call would otherwise emit bytecode for whatever the build JDK defaults to.
+BUILD_ACTION=$(JAVAC) $(JAVA_TARGET_FLAG) javax$/xml$/stream$/*.java && jar -cf stax-1.2.0.jar javax$/xml$/stream$/*.class javax$/xml$/stream$/events$/*.class javax$/xml$/stream$/util$/*.class
OUT2CLASS=stax-1.2.0.jar
.ENDIF # "$(BUILD_STAX)" != "YES"