Skip to content

OpenFoam-7 cannot support aarch64 compiling #1

@darmac

Description

@darmac

As I see, openfoam cannot support aarch64.
Is that patch can be merge to openfoam?

diff -uNr OpenFOAM-7/etc/config.sh/settings OpenFOAM-7-new/etc/config.sh/settings
--- OpenFOAM-7/etc/config.sh/settings   2020-07-27 08:37:02.560000000 +0000
+++ OpenFOAM-7-new/etc/config.sh/settings       2020-07-29 07:36:05.140000000 +0000
@@ -105,6 +105,17 @@
         export WM_LDFLAGS='-m64'
         ;;

+
+    aarch64)
+        WM_ARCH=linuxARM64
+        export WM_COMPILER_LIB_ARCH=64
+        export WM_CC='gcc'
+        export WM_CXX='g++'
+        export WM_CFLAGS='-fPIC'
+        export WM_CXXFLAGS='-fPIC'
+        export WM_LDFLAGS=
+        ;;
+
     *)
         echo Unknown processor type `uname -m` for Linux 1>&2
         ;;
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/c OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/c      1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c  2020-07-29 02:42:21.460000000 +0000
@@ -0,0 +1,16 @@
+SUFFIXES += .c
+
+cWARN        = -Wall
+
+cc          = gcc
+
+include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -fuse-ld=bfd -shared
+LINKEXE     = $(cc) -fuse-ld=bfd -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++    1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++        2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,25 @@
+SUFFIXES += .C
+
+c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter \
+              -Wno-invalid-offsetof -Wno-attributes
+
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+
+CC          = g++ -std=c++11
+
+include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-100
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -fuse-ld=bfd -shared -Xlinker --add-needed -Xlinker --no-as-needed
+LINKEXE     = $(CC) $(c++FLAGS) -fuse-ld=bfd -Xlinker --add-needed -Xlinker --no-as-needed
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Debug OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Debug
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Debug       1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Debug   2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Opt OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Opt
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Opt 1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Opt     2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,5 @@
+c++DBUG     =
+#c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
+c++OPT      = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays
+
+ROUNDING_MATH = -frounding-math
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Prof OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Prof
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/c++Prof        1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/c++Prof    2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/cDebug OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cDebug
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/cDebug 1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cDebug     2020-07-29 02:42:21.460000000 +0000
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/cOpt OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cOpt
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/cOpt   1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cOpt       2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,3 @@
+cDBUG       =
+#cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays -mcpu=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard
+cOPT        = -O3 -floop-optimize -falign-loops -falign-labels -falign-functions -falign-jumps -fprefetch-loop-arrays
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/cProf OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cProf
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/cProf  1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/cProf      2020-07-29 02:42:21.470000000 +0000
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff -uNr OpenFOAM-7/wmake/rules/linuxARM64Gcc/general OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/general
--- OpenFOAM-7/wmake/rules/linuxARM64Gcc/general        1970-01-01 00:00:00.000000000 +0000
+++ OpenFOAM-7-new/wmake/rules/linuxARM64Gcc/general    2020-07-29 02:42:21.460000000 +0000
@@ -0,0 +1,9 @@
+CPP        = cpp -traditional-cpp $(GFLAGS)
+LD         = ld
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(DEFAULT_RULES)/c
+include $(DEFAULT_RULES)/c++

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions