James T Brown
2007-Dec-10 16:10 UTC
[R] Building R on Sun Solaris 10 (SPARC) using Sun Studio 12
R Help List: Just curious if anyone has successfully built R on a SPARC platform running Sun Solaris 10 using the latest Sun Studio 12 set of compilers. If so, I would be interested in the compile flags that you used. I have tried several different builds of version 2.5.1, 2.6.0, and 2.6.1 using various different compile flags and I am able to compile and check, but for whatever reason, the "foreign" package crashes whenever it is loaded. I need the "foreign" package in order to install the "maptools" package. This is the error that I am getting when attempting to load "foreign":> > library(foreign) > > *** caught segfault *** > address fbb1dc40, cause 'invalid permissions' > > Traceback: > 1: .C("spss_init", PACKAGE = "foreign") > 2: fun(...) > 3: doTryCatch(return(expr), name, parentenv, handler) > 4: tryCatchOne(expr, names, parentenv, handlers[[1]]) > 5: tryCatchList(expr, classes, parentenv, handlers) > 6: tryCatch(expr, error = function(e) { call <- > conditionCall(e) if (!is.null(call)) { if > (identical(call[[1]], quote(doTryCatch))) call <- > sys.call(-4) dcall <- deparse(call)[1] prefix <- > paste("Error in", dcall, ": ") LONGCALL <- 30 if > (nchar(dcall) > LONGCALL) prefix <- paste(prefix, "\n\t", > sep = "") } else prefix <- "Error : " msg <- paste(prefix, > conditionMessage(e), "\n", sep = "") > .Internal(seterrmessage(msg[1])) if (!silent && > identical(getOption("show.error.messages"), TRUE)) { > cat(msg, file = stderr()) .Internal(printDeferredWarnings()) > } invisible(structure(msg, class = "try-error"))}) > 7: try({ fun(...) NULL}) > 8: runHook(".onLoad", package, env, package.lib, package) > 9: loadNamespace(package, c(which.lib.loc, lib.loc), keep.source = > keep.source) > 10: doTryCatch(return(expr), name, parentenv, handler) > 11: tryCatchOne(expr, names, parentenv, handlers[[1]]) > 12: tryCatchList(expr, classes, parentenv, handlers) > 13: tryCatch(expr, error = function(e) { call <- > conditionCall(e) if (!is.null(call)) { if > (identical(call[[1]], quote(doTryCatch))) call <- > sys.call(-4) dcall <- deparse(call)[1] prefix <- > paste("Error in", dcall, ": ") LONGCALL <- 30 if > (nchar(dcall) > LONGCALL) prefix <- paste(prefix, "\n\t", > sep = "") } else prefix <- "Error : " msg <- paste(prefix, > conditionMessage(e), "\n", sep = "") > .Internal(seterrmessage(msg[1])) if (!silent && > identical(getOption("show.error.messages"), TRUE)) { > cat(msg, file = stderr()) .Internal(printDeferredWarnings()) > } invisible(structure(msg, class = "try-error"))}) > 14: try({ ns <- loadNamespace(package, c(which.lib.loc, lib.loc), > keep.source = keep.source) dataPath <- file.path(which.lib.loc, > package, "data") env <- attachNamespace(ns, pos = pos, dataPath = > dataPath)}) > 15: library(foreign) > > Possible actions: > 1: abort (with core dump, if enabled) > 2: normal R exit > 3: exit R without saving workspace > 4: exit R saving workspaceThe latest build was compiled with the following flags:> ./configure --prefix=/usr/local/R-2.5.1 > --with-blas > --with-lapack > --with-tcl-config=/usr/local/lib/tclConfig.sh > --with-tk-config=/usr/local/lib/tkConfig.sh > --without-iconv > R_PAPERSIZE=letter > SHLIB_CXXLDFLAGS="-G /opt/SUNWspro/lib/libCrun.so" > CC=/opt/SUNWspro/bin/cc CXX=/opt/SUNWspro/bin/CC > F77=/opt/SUNWspro/bin/f77 F90=/opt/SUNWspro/bin/f95 > FC=/opt/SUNWspro/bin/f95 CFLAGS="-mt -ftrap=%none > -xarch=sparcvis -fPIC -xmemalign=4s" > CXXFLAGS="-mt -ftrap=%none -xarch=sparcvis -xmemalign=4s" > FFLAGS="-mt -ftrap=%none -shared -xarch=sparcvis" > FCFLAGS="-mt -ftrap=%none -shared -xarch=sparcvis" > LDFLAGS="-V -fPIC -L/usr/local/lib -L/opt/SUNWspro/lib > -L/usr/sfw/lib -L/usr/lib > > -R/usr/local/lib:/opt/SUNWspro/lib:/usr/sfw/lib:/usr/lib"I have been messing with the "xmemalign" flag, but doesn't seem to have much of an impact. I am curious if there may be a simple compile flag in Sun Studio 12 that can be set to fix this problem. At any rate, if anyone has been able to successfully build on Sun Solaris 10 (SPARC) using Sun Studio 12 and the "foreign" package loads without crashing, I would be most appreciative if you could let me take a look at your ".configure" options. NOTE: So far, the only package that I am having trouble with is "foreign". Everything else seems to build and check ok. In fact, when "foreign" is built, there are no errors reported during the compile. Also, I have tried "install.packages("foreign") from within R to upgrade to the latest version of "foreign". It compiles and installs, but once again, it crashes when R attempts to use it producing the "segfault" error. Any help would be most welcome. Thanks. Jim -- ========================================James T Brown Depts. of Geography/Fisheries & Wildlife Michigan State University
Prof Brian Ripley
2007-Dec-11 07:43 UTC
[R] Building R on Sun Solaris 10 (SPARC) using Sun Studio 12
On Mon, 10 Dec 2007, James T Brown wrote:> R Help List: > > Just curious if anyone has successfully built R on a SPARC > platform running Sun Solaris 10 using the latest Sun Studio > 12 set of compilers. If so, I would be interested in the > compile flags that you used.Yes, the flags given in the R-admin manual. (We don't currently have a Solaris 10 Sparc box running, but this was with the current Sun Studio 12 at the time, just after it came out.)> I have tried several different builds of version 2.5.1, 2.6.0, > and 2.6.1 using various different compile flags and I am able > to compile and check, but for whatever reason, the "foreign" > package crashes whenever it is loaded. I need the "foreign" > package in order to install the "maptools" package. This is > the error that I am getting when attempting to load "foreign": > >>> library(foreign) >> >> *** caught segfault *** >> address fbb1dc40, cause 'invalid permissions' >> >> Traceback: >> 1: .C("spss_init", PACKAGE = "foreign") >> 2: fun(...) >> 3: doTryCatch(return(expr), name, parentenv, handler) >> 4: tryCatchOne(expr, names, parentenv, handlers[[1]]) >> 5: tryCatchList(expr, classes, parentenv, handlers) >> 6: tryCatch(expr, error = function(e) { call <- >> conditionCall(e) if (!is.null(call)) { if >> (identical(call[[1]], quote(doTryCatch))) call <- >> sys.call(-4) dcall <- deparse(call)[1] prefix <- >> paste("Error in", dcall, ": ") LONGCALL <- 30 if >> (nchar(dcall) > LONGCALL) prefix <- paste(prefix, "\n\t", >> sep = "") } else prefix <- "Error : " msg <- paste(prefix, >> conditionMessage(e), "\n", sep = "") >> .Internal(seterrmessage(msg[1])) if (!silent && >> identical(getOption("show.error.messages"), TRUE)) { >> cat(msg, file = stderr()) .Internal(printDeferredWarnings()) >> } invisible(structure(msg, class = "try-error"))}) >> 7: try({ fun(...) NULL}) >> 8: runHook(".onLoad", package, env, package.lib, package) >> 9: loadNamespace(package, c(which.lib.loc, lib.loc), keep.source >> keep.source) >> 10: doTryCatch(return(expr), name, parentenv, handler) >> 11: tryCatchOne(expr, names, parentenv, handlers[[1]]) >> 12: tryCatchList(expr, classes, parentenv, handlers) >> 13: tryCatch(expr, error = function(e) { call <- >> conditionCall(e) if (!is.null(call)) { if >> (identical(call[[1]], quote(doTryCatch))) call <- >> sys.call(-4) dcall <- deparse(call)[1] prefix <- >> paste("Error in", dcall, ": ") LONGCALL <- 30 if >> (nchar(dcall) > LONGCALL) prefix <- paste(prefix, "\n\t", >> sep = "") } else prefix <- "Error : " msg <- paste(prefix, >> conditionMessage(e), "\n", sep = "") >> .Internal(seterrmessage(msg[1])) if (!silent && >> identical(getOption("show.error.messages"), TRUE)) { >> cat(msg, file = stderr()) .Internal(printDeferredWarnings()) >> } invisible(structure(msg, class = "try-error"))}) >> 14: try({ ns <- loadNamespace(package, c(which.lib.loc, lib.loc), >> keep.source = keep.source) dataPath <- file.path(which.lib.loc, >> package, "data") env <- attachNamespace(ns, pos = pos, dataPath >> dataPath)}) >> 15: library(foreign) >> >> Possible actions: >> 1: abort (with core dump, if enabled) >> 2: normal R exit >> 3: exit R without saving workspace >> 4: exit R saving workspace > > > > The latest build was compiled with the following flags: > >> ./configure --prefix=/usr/local/R-2.5.1 >> --with-blas >> --with-lapack >> --with-tcl-config=/usr/local/lib/tclConfig.sh >> --with-tk-config=/usr/local/lib/tkConfig.sh >> --without-iconv >> R_PAPERSIZE=letter >> SHLIB_CXXLDFLAGS="-G /opt/SUNWspro/lib/libCrun.so" >> CC=/opt/SUNWspro/bin/cc CXX=/opt/SUNWspro/bin/CC >> F77=/opt/SUNWspro/bin/f77 F90=/opt/SUNWspro/bin/f95 >> FC=/opt/SUNWspro/bin/f95 CFLAGS="-mt -ftrap=%none >> -xarch=sparcvis -fPIC -xmemalign=4s" >> CXXFLAGS="-mt -ftrap=%none -xarch=sparcvis -xmemalign=4s" >> FFLAGS="-mt -ftrap=%none -shared -xarch=sparcvis" >> FCFLAGS="-mt -ftrap=%none -shared -xarch=sparcvis" >> LDFLAGS="-V -fPIC -L/usr/local/lib -L/opt/SUNWspro/lib >> -L/usr/sfw/lib -L/usr/lib >> >> -R/usr/local/lib:/opt/SUNWspro/lib:/usr/sfw/lib:/usr/lib" > > > I have been messing with the "xmemalign" flag, but doesn't seem to have much > of an impact. I am curious if there may be a simple compile flag in Sun > Studio 12 that can be set to fix this problem. > > > At any rate, if anyone has been able to successfully build on Sun Solaris 10 > (SPARC) using Sun Studio 12 and the "foreign" package loads without > crashing, > I would be most appreciative if you could let me take a look at your > ".configure" > options. > > > NOTE: So far, the only package that I am having trouble with is > "foreign". Everything > else seems to build and check ok. In fact, when "foreign" is built, > there are no errors > reported during the compile. Also, I have tried > "install.packages("foreign") from > within R to upgrade to the latest version of "foreign". It compiles and > installs, but > once again, it crashes when R attempts to use it producing the > "segfault" error. > > > Any help would be most welcome. > > > Thanks. > > > > Jim > > >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595