This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 7d4ffaae88c98c478a1cd40f4f99897a70f33ba7 Author: Pedro Giffuni <[email protected]> AuthorDate: Wed Oct 21 10:53:30 2026 -0500 freebsd_aarch64: Add build environment wiring for FreeBSD AArch64 - Add FreeBSD AArch64 / ARM64 platform detection in set_soenv.in (CPU=A, CPUNAME=AARCH64, OUTPATH=unxfbsda). - Fix Perl precedence warning (! =~ 'gcc') at set_soenv.in line 1494. - Source FreeBSDAARCH64Env.Set.sh in source_soenv.sh. - Add unxfbsda.mk and include it from unxfbsd.mk when CPUNAME is AARCH64. - Normalize CPU=A to CPUNAME=AARCH64 and enable -fstack-protector in freebsd.mk. - Add unxfbsda to installer download.pm and update_module_ignore_lists.pl. - Avoid false match on 32-bit ARM_TARGET check in configure.ac. --- main/configure.ac | 2 +- main/set_soenv.in | 13 +++++++- main/solenv/bin/modules/installer/download.pm | 6 ++-- main/solenv/bin/update_module_ignore_lists.pl | 1 + main/solenv/gbuild/platform/freebsd.mk | 6 +++- main/solenv/inc/unxfbsd.mk | 3 ++ main/solenv/inc/unxfbsda.mk | 45 +++++++++++++++++++++++++++ main/source_soenv.sh | 3 ++ 8 files changed, 74 insertions(+), 5 deletions(-) diff --git a/main/configure.ac b/main/configure.ac index 227feb2c89..6481e672fb 100644 --- a/main/configure.ac +++ b/main/configure.ac @@ -6819,7 +6819,7 @@ dnl =================================================================== dnl Check the ARM target dnl =================================================================== -if echo "$build_cpu" | $GREP -q arm; then +if echo "$build_cpu" | $GREP -q arm && test "$build_cpu" != "arm64" && test "$build_cpu" != "aarch64"; then # default value ARM_TARGET=ARMV4T AC_MSG_CHECKING([which ARM processor optimization to use]) diff --git a/main/set_soenv.in b/main/set_soenv.in index a12b61ce37..9d17b2a278 100644 --- a/main/set_soenv.in +++ b/main/set_soenv.in @@ -383,6 +383,17 @@ elsif ( $platform =~ m/freebsd/ ) $JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads"; } } + elsif (($platform =~ m/^aarch64/) || ($platform =~ m/^arm64/)) + { print "Setting FreeBSD AArch64 specific values... "; + $outfile = "FreeBSDAARCH64Env.Set"; + $CPU = "A"; + $CPUNAME = "AARCH64"; + $OUTPATH = "unxfbsda"; + $JRELIBDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."aarch64"; + $JRETOOLKITDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."aarch64".$ds."server"; + $JRETHREADDIR = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."aarch64".$ds."native_threads"; + $EPM_FLAGS = "-a aarch64"; + } elsif ($platform =~ m/^i386/) { print "Setting FreeBSD x86 specific values... "; $outfile = "FreeBSDX86Env.Set"; @@ -1490,7 +1501,7 @@ if ($platform =~ m/linux|freebsd|netbsd/) { # This simply adds an include path, so even cases that break the FHS work } -if ($platform =~ m/solaris/ && ! $CC =~ "gcc") +if ($platform =~ m/solaris/ && $CC !~ "gcc") { $SOLARINC .= '/SC5 '; } diff --git a/main/solenv/bin/modules/installer/download.pm b/main/solenv/bin/modules/installer/download.pm index 4c97588c87..394dbcd5d2 100644 --- a/main/solenv/bin/modules/installer/download.pm +++ b/main/solenv/bin/modules/installer/download.pm @@ -611,11 +611,13 @@ sub get_download_architecture $arch = "x64"; } elsif(( $installer::globals::compiler =~ /^unxlngx/ ) - || ( $installer::globals::compiler =~ /^unxmaccx/ )) + || ( $installer::globals::compiler =~ /^unxmaccx/ ) + || ( $installer::globals::compiler =~ /^unxfbsdx/ )) { $arch = "x86-64"; } - elsif ( $installer::globals::compiler =~ /^unxmaccr/ ) + elsif(( $installer::globals::compiler =~ /^unxmaccr/ ) + || ( $installer::globals::compiler =~ /^unxfbsda/ )) { $arch = "aarch64"; } diff --git a/main/solenv/bin/update_module_ignore_lists.pl b/main/solenv/bin/update_module_ignore_lists.pl index f7eecef05d..fb6c135ecb 100644 --- a/main/solenv/bin/update_module_ignore_lists.pl +++ b/main/solenv/bin/update_module_ignore_lists.pl @@ -57,6 +57,7 @@ my @platforms = ( "unxfbsdi", "unxfbsd", "unxfbsdx", + "unxfbsda", "unxhpgr", "unxhpxr", "unxirgm", diff --git a/main/solenv/gbuild/platform/freebsd.mk b/main/solenv/gbuild/platform/freebsd.mk index 21869f33fb..dfb19bd51f 100644 --- a/main/solenv/gbuild/platform/freebsd.mk +++ b/main/solenv/gbuild/platform/freebsd.mk @@ -40,6 +40,10 @@ ifeq ($(CPU),P) CPUNAME := POWERPC64 endif +ifeq ($(CPU),A) +CPUNAME := AARCH64 +endif + # use CC/CXX if they are nondefaults ifneq ($(origin CC),default) gb_CC := $(CC) @@ -151,7 +155,7 @@ gb_LinkTarget_LDFLAGS += \ endif -ifneq ($(filter $(CPUNAME),INTEL X86_64),) +ifneq ($(filter $(CPUNAME),INTEL X86_64 AARCH64),) gb_CFLAGS += -fstack-protector gb_CXXFLAGS += -fstack-protector gb_LinkTarget_LDFLAGS += -fstack-protector diff --git a/main/solenv/inc/unxfbsd.mk b/main/solenv/inc/unxfbsd.mk index 4ab61ba8d9..f5fe4c13fc 100644 --- a/main/solenv/inc/unxfbsd.mk +++ b/main/solenv/inc/unxfbsd.mk @@ -46,6 +46,9 @@ JAVAFLAGSDEBUG=-g .IF "$(CPUNAME)" == "ARM" .INCLUDE : unxfbsdr.mk .ENDIF +.IF "$(CPUNAME)" == "AARCH64" +.INCLUDE : unxfbsda.mk +.ENDIF # filter for suppressing verbose messages from linker #not needed at the moment diff --git a/main/solenv/inc/unxfbsda.mk b/main/solenv/inc/unxfbsda.mk new file mode 100644 index 0000000000..213f03094c --- /dev/null +++ b/main/solenv/inc/unxfbsda.mk @@ -0,0 +1,45 @@ +#************************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +#************************************************************** + + + +# +# FreeBSD/aarch64 specific defines +# + +CDEFS+=-DAARCH64 + +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +.IF "$(CPUNAME)" == "AARCH64" +ARCH_FLAGS*= +.ENDIF + +# Compiler flags for enabling optimizations +.IF "$(PRODUCT)"!="" +CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" + +# platform specific identifier for shared libs +DLLPOSTFIX= +BUILD64=1 diff --git a/main/source_soenv.sh b/main/source_soenv.sh index ce87621c36..e460e8a99f 100644 --- a/main/source_soenv.sh +++ b/main/source_soenv.sh @@ -95,6 +95,9 @@ else amd64-*-freebsd*|x86_64-*-freebsd*) . ./FreeBSDAMDEnv.Set.sh ;; + aarch64-*-freebsd*|arm64-*-freebsd*) + . ./FreeBSDAARCH64Env.Set.sh + ;; arm*-*-freebsd*) . ./FreeBSDARMEnv.Set.sh ;;
