diff -ur root-6.06.02.orig/cmake/modules/SetUpLinux.cmake root-6.06.02/cmake/modules/SetUpLinux.cmake
--- root-6.06.02.orig/cmake/modules/SetUpLinux.cmake 2016-04-06 10:07:33.109883779 +0200
+++ root-6.06.02/cmake/modules/SetUpLinux.cmake 2016-04-06 10:10:14.541179186 +0200
@@ -54,6 +54,32 @@
else()
message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.")
endif()
+elseif(${SYSCTL_OUTPUT} MATCHES s390x)
+ message(STATUS "Found a 64bit system")
+ set(BIT_ENVIRONMENT "-m64")
+ set(SPECIAL_CINT_FLAGS "-DG__64BIT")
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ message(STATUS "Found GNU compiler collection")
+ set(ROOT_ARCHITECTURE linuxs390xgcc)
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+ message(STATUS "Found CLANG compiler")
+ set(ROOT_ARCHITECTURE linuxs390xgcc)
+ else()
+ message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.")
+ endif()
+elseif(${SYSCTL_OUTPUT} MATCHES s390)
+ message(STATUS "Found a 31bit system")
+ set(BIT_ENVIRONMENT "-m31")
+ set(SPECIAL_CINT_FLAGS "")
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ message(STATUS "Found GNU compiler collection")
+ set(ROOT_ARCHITECTURE linuxs390gcc)
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+ message(STATUS "Found CLANG compiler")
+ set(ROOT_ARCHITECTURE linuxs390gcc)
+ else()
+ message(FATAL_ERROR "There is no Setup for this compiler up to now. Don't know what to do. Stop cmake at this point.")
+ endif()
else()
message(STATUS "Found a 32bit system")
set(BIT_ENVIRONMENT "-m32")
diff -ur root-6.06.02.orig/config/root-config.in root-6.06.02/config/root-config.in
--- root-6.06.02.orig/config/root-config.in 2016-04-06 09:48:35.837025323 +0200
+++ root-6.06.02/config/root-config.in 2016-04-06 10:13:04.506542626 +0200
@@ -215,6 +215,18 @@
auxldflags="-m64"
auxlibs="-lm -ldl -rdynamic"
;;
+linuxs390gcc)
+ # s390 (31 bit mode) Linux with gcc
+ auxcflags="${cxxversionflag} -Wno-deprecated-declarations -m31 -fsigned-char"
+ auxldflags="-m31"
+ auxlibs="-lm -ldl -rdynamic"
+ ;;
+linuxs390xgcc)
+ # s390x (64 bit mode) Linux with gcc
+ auxcflags="${cxxversionflag} -Wno-deprecated-declarations -m64 -fsigned-char"
+ auxldflags="-m64"
+ auxlibs="-lm -ldl -rdynamic"
+ ;;
linuxx8664gcc)
# AMD Opteron and Intel EM64T (64 bit mode) Linux with gcc 3.x
auxcflags="${cxxversionflag} -Wno-deprecated-declarations -m64"
diff -ur root-6.06.02.orig/core/base/inc/RConfig.h root-6.06.02/core/base/inc/RConfig.h
--- root-6.06.02.orig/core/base/inc/RConfig.h 2016-03-03 10:36:03.000000000 +0100
+++ root-6.06.02/core/base/inc/RConfig.h 2016-04-06 10:10:14.675180260 +0200
@@ -202,6 +202,19 @@
# define NEED_SIGJMP
#endif
+#if defined(linux) && defined(__s390__)
+# define R__LINUX
+# define R__UNIX
+# define NEED_SIGJMP
+#endif
+
+#if defined(linux) && defined(__s390x__)
+# define R__LINUX
+# define R__UNIX
+# define R__B64
+# define NEED_SIGJMP
+#endif
+
#if defined(__MACH__) && defined(__i386__) && !defined(__APPLE__)
# define R__HURD
# define f2cFortran /* cfortran.h does not know HURD - sigh */
diff -ur root-6.06.02.orig/core/pcre/CMakeLists.txt root-6.06.02/core/pcre/CMakeLists.txt
--- root-6.06.02.orig/core/pcre/CMakeLists.txt 2016-04-06 09:53:37.247748077 +0200
+++ root-6.06.02/core/pcre/CMakeLists.txt 2016-04-06 10:16:45.144317047 +0200
@@ -54,6 +54,10 @@
set(PCRE_CFLAGS "-O")
elseif(ROOT_ARCHITECTURE MATCHES linuxarm)
set(PCRE_CFLAGS "-O")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390x)
+ set(PCRE_CFLAGS "-m64 -O")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390)
+ set(PCRE_CFLAGS "-m31 -O")
elseif(ROOT_ARCHITECTURE MATCHES linux)
set(PCRE_CFLAGS "-m32 -O")
elseif(ROOT_ARCHITECTURE MATCHES macosx64)
diff -ur root-6.06.02.orig/graf2d/asimage/BuildAfterImage.cmake root-6.06.02/graf2d/asimage/BuildAfterImage.cmake
--- root-6.06.02.orig/graf2d/asimage/BuildAfterImage.cmake 2016-04-06 09:53:37.258748191 +0200
+++ root-6.06.02/graf2d/asimage/BuildAfterImage.cmake 2016-04-06 10:17:44.948798562 +0200
@@ -49,6 +49,10 @@
set(AFTER_CC "${AFTER_CC}")
elseif(ROOT_ARCHITECTURE MATCHES linuxarm)
set(AFTER_CC "${AFTER_CC}")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390x)
+ set(AFTER_CC "${AFTER_CC} -m64")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390)
+ set(AFTER_CC "${AFTER_CC} .m31")
elseif(ROOT_ARCHITECTURE MATCHES linux)
set(AFTER_CC "${AFTER_CC} -m32")
elseif(ROOT_ARCHITECTURE MATCHES macosx64)
diff -ur root-6.06.02.orig/graf2d/freetype/CMakeLists.txt root-6.06.02/graf2d/freetype/CMakeLists.txt
--- root-6.06.02.orig/graf2d/freetype/CMakeLists.txt 2016-04-06 09:59:35.237876779 +0200
+++ root-6.06.02/graf2d/freetype/CMakeLists.txt 2016-04-06 10:18:44.239276178 +0200
@@ -56,6 +56,10 @@
set(FREETYPE_CFLAGS "-O")
elseif(ROOT_ARCHITECTURE MATCHES linuxarm)
set(FREETYPE_CFLAGS "-O")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390x)
+ set(FREETYPE_CFLAGS "-m64 -O")
+ elseif(ROOT_ARCHITECTURE MATCHES linuxs390)
+ set(FREETYPE_CFLAGS "-m31 -O")
elseif(ROOT_ARCHITECTURE MATCHES linux)
set(FREETYPE_CFLAGS "-m32 -O")
elseif(ROOT_ARCHITECTURE MATCHES macosx64)
diff -ur root-6.06.02.orig/interpreter/CMakeLists.txt root-6.06.02/interpreter/CMakeLists.txt
--- root-6.06.02.orig/interpreter/CMakeLists.txt 2016-04-06 09:53:37.270748316 +0200
+++ root-6.06.02/interpreter/CMakeLists.txt 2016-04-06 10:10:14.704180492 +0200
@@ -21,6 +21,8 @@
set(ROOT_CLING_TARGET "ARM")
elseif(ROOT_ARCHITECTURE MATCHES linuxppc64gcc)
set(ROOT_CLING_TARGET "PowerPC")
+elseif(ROOT_ARCHITECTURE MATCHES linuxs390)
+ set(ROOT_CLING_TARGET "SystemZ")
elseif(ROOT_ARCHITECTURE MATCHES linux)
set(ROOT_CLING_TARGET "X86")
elseif(ROOT_ARCHITECTURE MATCHES macosx)
diff -ur root-6.06.02.orig/interpreter/llvm/src/cmake/config-ix.cmake root-6.06.02/interpreter/llvm/src/cmake/config-ix.cmake
--- root-6.06.02.orig/interpreter/llvm/src/cmake/config-ix.cmake 2016-03-03 10:36:03.000000000 +0100
+++ root-6.06.02/interpreter/llvm/src/cmake/config-ix.cmake 2016-04-06 10:10:14.747180837 +0200
@@ -372,6 +372,8 @@
set(LLVM_NATIVE_ARCH Hexagon)
elseif (LLVM_NATIVE_ARCH MATCHES "s390x")
set(LLVM_NATIVE_ARCH SystemZ)
+elseif (LLVM_NATIVE_ARCH MATCHES "s390")
+ set(LLVM_NATIVE_ARCH SystemZ)
else ()
message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}")
endif ()