That is a rather old compiler. R on Intel Solaris works better with the
(free) Sun compilers, but I have built R on x86 Solaris with gcc 4.0.x
(I think 4.0.3): I have never made a 64-bit build work with gcc.
One thing to make sure is that the compiler was actually built for
Solaris 10 (and not say 9).
I have to say that most reports we have on non-native compilers on OSes
boil down to compiler bugs, and the first step is turn all optimization
off and see if the problem disappears.
Sul, Young L wrote:> Hi,
>
> I downloaded 2.8.1 and tried to compile it using gcc 3.4.6. (simple
install, just ./configure, make, make check, make install)
>
> I found that it compiled and went through the tests fine.
>
> The foreign library, however, that seems to be segfaulting on me (see
output below). I did see an old posting about a similar problem, but there was
no resolution. Have other people experienced this at all?
>
> Tia!
> -y
>
>> library(foreign)
>
> *** caught segfault ***
> address fe899a60, 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, ": ") LONG <- 75
msg <- conditionMessage(e) sm <- strsplit(msg, "\n")[[1]]
if (14 + nchar(dcall, type = "w") + nchar(sm[1], type = "w")
> LONG) prefix <- paste(prefix, "\n ",
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, ": ") LONG <- 75
msg <- conditionMessage(e) sm <- strsplit(msg, "\n")[[1]]
if (14 + nchar(dcall, type = "w") + nchar(sm[1], type = "w")
> LONG) prefix <- paste(prefix, "\n ",
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
> Selection: 4
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
--
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