Re: [R] Building R on Sun Solaris 10 (SPARC) using Sun Studio 12

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Tue, 11 Dec 2007 07:43:36 +0000 (GMT)

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

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Tue 11 Dec 2007 - 07:52:05 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 11 Dec 2007 - 21:30:18 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.