From 06dce4872d6f02684b1e6b381fd6d9f78e7a5384 Mon Sep 17 00:00:00 2001
From: Henry <Henry>
Date: Mon, 13 Jan 2014 12:10:59 +0000
Subject: [PATCH] gcc: upgrade gcc-4.8.? to 4.8.2 and add support for the
 immanent release of gcc-4.9.0

---
 etc/config/settings.csh                |  9 ++++++++-
 etc/config/settings.sh                 |  8 +++++++-
 wmake/rules/linux64Gcc49/c             | 16 ++++++++++++++++
 wmake/rules/linux64Gcc49/c++           | 21 +++++++++++++++++++++
 wmake/rules/linux64Gcc49/c++Debug      |  2 ++
 wmake/rules/linux64Gcc49/c++Opt        |  2 ++
 wmake/rules/linux64Gcc49/c++Prof       |  2 ++
 wmake/rules/linux64Gcc49/cDebug        |  2 ++
 wmake/rules/linux64Gcc49/cOpt          |  2 ++
 wmake/rules/linux64Gcc49/cProf         |  2 ++
 wmake/rules/linux64Gcc49/general       |  8 ++++++++
 wmake/rules/linux64Gcc49/mplibHPMPI    |  3 +++
 wmake/rules/linux64Gcc49/mplibINTELMPI |  3 +++
 wmake/rules/linuxGcc49/c               | 16 ++++++++++++++++
 wmake/rules/linuxGcc49/c++             | 21 +++++++++++++++++++++
 wmake/rules/linuxGcc49/c++Debug        |  2 ++
 wmake/rules/linuxGcc49/c++Opt          |  2 ++
 wmake/rules/linuxGcc49/c++Prof         |  2 ++
 wmake/rules/linuxGcc49/cDebug          |  2 ++
 wmake/rules/linuxGcc49/cOpt            |  2 ++
 wmake/rules/linuxGcc49/cProf           |  2 ++
 wmake/rules/linuxGcc49/general         |  9 +++++++++
 wmake/rules/linuxGcc49/mplibHPMPI      |  3 +++
 23 files changed, 139 insertions(+), 2 deletions(-)
 create mode 100644 wmake/rules/linux64Gcc49/c
 create mode 100644 wmake/rules/linux64Gcc49/c++
 create mode 100644 wmake/rules/linux64Gcc49/c++Debug
 create mode 100644 wmake/rules/linux64Gcc49/c++Opt
 create mode 100644 wmake/rules/linux64Gcc49/c++Prof
 create mode 100644 wmake/rules/linux64Gcc49/cDebug
 create mode 100644 wmake/rules/linux64Gcc49/cOpt
 create mode 100644 wmake/rules/linux64Gcc49/cProf
 create mode 100644 wmake/rules/linux64Gcc49/general
 create mode 100644 wmake/rules/linux64Gcc49/mplibHPMPI
 create mode 100644 wmake/rules/linux64Gcc49/mplibINTELMPI
 create mode 100644 wmake/rules/linuxGcc49/c
 create mode 100644 wmake/rules/linuxGcc49/c++
 create mode 100644 wmake/rules/linuxGcc49/c++Debug
 create mode 100644 wmake/rules/linuxGcc49/c++Opt
 create mode 100644 wmake/rules/linuxGcc49/c++Prof
 create mode 100644 wmake/rules/linuxGcc49/cDebug
 create mode 100644 wmake/rules/linuxGcc49/cOpt
 create mode 100644 wmake/rules/linuxGcc49/cProf
 create mode 100644 wmake/rules/linuxGcc49/general
 create mode 100644 wmake/rules/linuxGcc49/mplibHPMPI

diff --git a/etc/config/settings.csh b/etc/config/settings.csh
index c48bc80644c..af748c57c2e 100644
--- a/etc/config/settings.csh
+++ b/etc/config/settings.csh
@@ -224,9 +224,16 @@ case ThirdParty:
         set mpfr_version=mpfr-3.1.0
         set mpc_version=mpc-0.9
         breaksw
+    case Gcc49:
+    case Gcc49++0x:
+        set gcc_version=gcc-4.9.0
+        set gmp_version=gmp-5.1.2
+        set mpfr_version=mpfr-3.1.2
+        set mpc_version=mpc-1.0.1
+        breaksw
     case Gcc48:
     case Gcc48++0x:
-        set gcc_version=gcc-4.8.1
+        set gcc_version=gcc-4.8.2
         set gmp_version=gmp-5.1.2
         set mpfr_version=mpfr-3.1.2
         set mpc_version=mpc-1.0.1
diff --git a/etc/config/settings.sh b/etc/config/settings.sh
index 2f21d01095c..bc8fd220c5e 100644
--- a/etc/config/settings.sh
+++ b/etc/config/settings.sh
@@ -246,8 +246,14 @@ OpenFOAM | ThirdParty)
         mpfr_version=mpfr-3.1.0
         mpc_version=mpc-0.9
         ;;
+    Gcc49 | Gcc49++0x)
+        gcc_version=gcc-4.9.0
+        gmp_version=gmp-5.1.2
+        mpfr_version=mpfr-3.1.2
+        mpc_version=mpc-1.0.1
+        ;;
     Gcc48 | Gcc48++0x)
-        gcc_version=gcc-4.8.1
+        gcc_version=gcc-4.8.2
         gmp_version=gmp-5.1.2
         mpfr_version=mpfr-3.1.2
         mpc_version=mpc-1.0.1
diff --git a/wmake/rules/linux64Gcc49/c b/wmake/rules/linux64Gcc49/c
new file mode 100644
index 00000000000..f4114be3143
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m64
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linux64Gcc49/c++ b/wmake/rules/linux64Gcc49/c++
new file mode 100644
index 00000000000..98b25ed1fea
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m64
+
+include $(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 $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
+LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed
diff --git a/wmake/rules/linux64Gcc49/c++Debug b/wmake/rules/linux64Gcc49/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Gcc49/c++Opt b/wmake/rules/linux64Gcc49/c++Opt
new file mode 100644
index 00000000000..2aedabd6280
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     =
+c++OPT      = -O3
diff --git a/wmake/rules/linux64Gcc49/c++Prof b/wmake/rules/linux64Gcc49/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linux64Gcc49/cDebug b/wmake/rules/linux64Gcc49/cDebug
new file mode 100644
index 00000000000..72b638f4582
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linux64Gcc49/cOpt b/wmake/rules/linux64Gcc49/cOpt
new file mode 100644
index 00000000000..17318709f1f
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc49/cProf b/wmake/rules/linux64Gcc49/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linux64Gcc49/general b/wmake/rules/linux64Gcc49/general
new file mode 100644
index 00000000000..4a42b11b1ee
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/general
@@ -0,0 +1,8 @@
+CPP        = cpp -traditional-cpp
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/c
+include $(RULES)/c++
diff --git a/wmake/rules/linux64Gcc49/mplibHPMPI b/wmake/rules/linux64Gcc49/mplibHPMPI
new file mode 100644
index 00000000000..574492a236a
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Gcc49/mplibINTELMPI b/wmake/rules/linux64Gcc49/mplibINTELMPI
new file mode 100644
index 00000000000..cf80ec2eaf6
--- /dev/null
+++ b/wmake/rules/linux64Gcc49/mplibINTELMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DMPICH_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include64
+PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linuxGcc49/c b/wmake/rules/linuxGcc49/c
new file mode 100644
index 00000000000..d914fcd37d0
--- /dev/null
+++ b/wmake/rules/linuxGcc49/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m32
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linuxGcc49/c++ b/wmake/rules/linuxGcc49/c++
new file mode 100644
index 00000000000..357f4106e10
--- /dev/null
+++ b/wmake/rules/linuxGcc49/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m32
+
+include $(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 $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
+LINKEXE     = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed
diff --git a/wmake/rules/linuxGcc49/c++Debug b/wmake/rules/linuxGcc49/c++Debug
new file mode 100644
index 00000000000..19bdb9c3346
--- /dev/null
+++ b/wmake/rules/linuxGcc49/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxGcc49/c++Opt b/wmake/rules/linuxGcc49/c++Opt
new file mode 100644
index 00000000000..2aedabd6280
--- /dev/null
+++ b/wmake/rules/linuxGcc49/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     =
+c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc49/c++Prof b/wmake/rules/linuxGcc49/c++Prof
new file mode 100644
index 00000000000..3bda4dad55e
--- /dev/null
+++ b/wmake/rules/linuxGcc49/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linuxGcc49/cDebug b/wmake/rules/linuxGcc49/cDebug
new file mode 100644
index 00000000000..72b638f4582
--- /dev/null
+++ b/wmake/rules/linuxGcc49/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linuxGcc49/cOpt b/wmake/rules/linuxGcc49/cOpt
new file mode 100644
index 00000000000..17318709f1f
--- /dev/null
+++ b/wmake/rules/linuxGcc49/cOpt
@@ -0,0 +1,2 @@
+cDBUG       =
+cOPT        = -O3
diff --git a/wmake/rules/linuxGcc49/cProf b/wmake/rules/linuxGcc49/cProf
new file mode 100644
index 00000000000..ca3ac9bf5f0
--- /dev/null
+++ b/wmake/rules/linuxGcc49/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxGcc49/general b/wmake/rules/linuxGcc49/general
new file mode 100644
index 00000000000..4b051e6b984
--- /dev/null
+++ b/wmake/rules/linuxGcc49/general
@@ -0,0 +1,9 @@
+CPP        = cpp -traditional-cpp
+LD         = ld -melf_i386
+
+PROJECT_LIBS = -l$(WM_PROJECT) -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/c
+include $(RULES)/c++
diff --git a/wmake/rules/linuxGcc49/mplibHPMPI b/wmake/rules/linuxGcc49/mplibHPMPI
new file mode 100644
index 00000000000..8aff40632bd
--- /dev/null
+++ b/wmake/rules/linuxGcc49/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
-- 
GitLab