From 81777120f64d0d25988898901cec3f6639babca5 Mon Sep 17 00:00:00 2001
From: Stefan Anzinger <stefan.anzinger@oracle.com>
Date: Mon, 3 Jul 2017 06:08:23 -0700
Subject: [PATCH] [GR-4074] Add support for Solaris/AMD64.

---
 com.oracle.truffle.r.native/gnur/Makefile.gnur           | 9 +++++----
 .../src/com/oracle/truffle/r/runtime/RVersionInfo.java   | 6 +++++-
 mx.fastr/suite.py                                        | 3 +++
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/com.oracle.truffle.r.native/gnur/Makefile.gnur b/com.oracle.truffle.r.native/gnur/Makefile.gnur
index a6ea7375af..711ab5dc42 100644
--- a/com.oracle.truffle.r.native/gnur/Makefile.gnur
+++ b/com.oracle.truffle.r.native/gnur/Makefile.gnur
@@ -76,10 +76,11 @@ ifeq ($(OSNAME), SunOS)
     FLIBS_COMMON := -lsunimath -lfai -lsunmath -lmtsk
     ifeq ($(OS_ARCH), i386)
         SUB_ARCH := amd64
-        FLIBS_SUB_ARCH := $(SSTUDIO_HOME)prod/lib/$(SUB_ARCH)/libfsu.so.1 $(SSTUDIO_HOME)prod/lib/$(SUB_ARCH)/libfui.so.2
+        FLIBS_SUB_ARCH := $(SSTUDIO_HOME)lib/$(SUB_ARCH)/libfsu.so.1 $(SSTUDIO_HOME)lib/$(SUB_ARCH)/libfui.so.2
+        GNUR_CONFIG_FLAGS := --build=x86_64-pc-solaris2.11
     else
         SUB_ARCH := sparc/64
-        FLIBS_SUB_ARCH := -lifai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfui $(SSTUDIO_HOME)prod/lib/$(SUB_ARCH)/libfsu.so.1
+        FLIBS_SUB_ARCH := -lifai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfui $(SSTUDIO_HOME)lib/$(SUB_ARCH)/libfsu.so.1
     endif
     ICONV := libiconv-1.14
     $(shell mkdir -p iconv_install)
@@ -89,8 +90,8 @@ ifeq ($(OSNAME), SunOS)
     ICONV_CONFIG_FLAGS := CC=cc CXX=CC CFLAGS=$(ICONV_CFLAGS) LDFLAGS=$(ICONV_LDFLAGS)
 # required for Solaris compiler >=12.2, see Appendix C of R installation guide: 
 # http://cran.r-project.org/doc/manuals/r-release/R-admin.html#Solaris 
-    GNUR_FLIBS := FLIBS="-R$(SSTUDIO_HOME)prod/lib/$(SUB_ARCH) $(FLIBS_COMMON) $(FLIBS_SUB_ARCH)"
-    GNUR_CONFIG_FLAGS := $(ICONV_CONFIG_FLAGS) CPPFLAGS=$(ICONV_CFLAGS) DYLIB_LDFLAGS=$(ICONV_LDFLAGS) $(GNUR_FLIBS) F77="sunf95 -m64 -xcode=pic32"
+    GNUR_FLIBS := FLIBS="-R$(SSTUDIO_HOME)lib/$(SUB_ARCH) $(FLIBS_COMMON) $(FLIBS_SUB_ARCH)"
+    GNUR_CONFIG_FLAGS += $(ICONV_CONFIG_FLAGS) CPPFLAGS=$(ICONV_CFLAGS) DYLIB_LDFLAGS=$(ICONV_LDFLAGS) $(GNUR_FLIBS) F77="sunf95 -m64 -xcode=pic32"
 
 iconv: $(ICONV) iconv_config iconv_build
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java
index 2a397016bd..3fd2193add 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java
@@ -105,7 +105,11 @@ public enum RVersionInfo {
                                     data.value = "x86_64-unknown-linux-gnu";
                                 }
                             } else if (osName.toLowerCase().equals("sunos")) {
-                                data.value = "sparc-sun-solaris2.11";
+                                if (Arch.value.equals("sparcv9")) {
+                                    data.value = "sparcv9-sun-solaris2.11";
+                                } else {
+                                    data.value = "x86_64-pc-solaris2.11";
+                                }
                             } else {
                                 data.value = Arch.value + "-" + vendor + "-" + OS.value;
                             }
diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py
index 2cdaca86d2..8c71003046 100644
--- a/mx.fastr/suite.py
+++ b/mx.fastr/suite.py
@@ -397,6 +397,9 @@ suite = {
           },
         },
         "solaris" : {
+          "amd64" : {
+            "path" : "mxbuild/dists/solaris/amd64/<rffi>/fastr-release.jar",
+          },
           "sparcv9" : {
             "path" : "mxbuild/dists/solaris/sparcv9/<rffi>/fastr-release.jar",
           },
-- 
GitLab