Hi Dirk,

No, I don't have an Itanium around, unfortunately. Without that, it's tough
to say. Probably something to do with the GType arithmetic. On a 64 bit
system, I *think* a GType is a 64 bit integer, whereas in R we only have 52
bits from double. On most 64 bit architectures, it seems that the type
codes fit in 52 bits, but maybe not on Itanium. This is just a guess
though.

Luke is working on getting 64 bit ints into R, so this may not be a problem
for much longer. Otherwise, the simplest fix would be to represent the
codes as strings.

Thanks,
Michael

On Fri, Dec 2, 2011 at 9:28 AM, Dirk Eddelbuettel <e...@debian.org> wrote:

>
> On 2 December 2011 at 17:33, Jakub Wilk wrote:
> | Source: rgtk2
> | Version: 2.20.19-1
> | Severity: serious
> | Justification: fails to build from source
> | User: debian-i...@lists.debian.org
> | Usertags: ia64
>
> This is a pretty demanding package.
>
> I can see from the detailed logs at
>
>  https://buildd.debian.org/status/logs.php?pkg=rgtk2
>
> that it has not built on ia64 since release 2.12.18-1 in Feb 2010.  It may
> be
> best to block it on ia64.
>
> Any idea, Mike?  I don't presume you have an itanium box around, do you?
>
> Dirk
>
> |
> | rgtk2 FTBFS on ia64:
> | | installing to
> /build/buildd-rgtk2_2.20.19-1-ia64-_0vVAw/rgtk2-2.20.19/debian/r-cran-rgtk2/usr/lib/R/site-library/RGtk2/libs
> | | ** R
> | | ** demo
> | | ** inst
> | | ** preparing package for lazy loading
> | | ** help
> | | *** installing help indices
> | | ** building package indices ...
> | | ** testing if installed package can be loaded
> | | R session is headless; GTK+ not initialized.
> | |
> | |  *** caught segfault ***
> | | address 0x1000050, cause 'memory not mapped'
> | |
> | | Traceback:
> | |  1: .Call("R_getGTypeAncestors", type, PACKAGE = "RGtk2")
> | |  2: gTypeGetAncestors(parent)
> | |  3: gClass("RGtkBuilder", "GtkBuilder", GtkBuilder =
> list(get_type_from_name = function(self,     name) as.GType(name)))
> | |  4: .initClasses()
> | |  5: fun(libname, pkgname)
> | |  6: doTryCatch(return(expr), name, parentenv, handler)
> | |  7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> | |  8: tryCatchList(expr, classes, parentenv, handlers)
> | |  9: tryCatch(fun(libname, pkgname), error = identity)
> | | 10: runHook(".onLoad", env, package.lib, package)
> | | 11: loadNamespace(package, c(which.lib.loc, lib.loc))
> | | 12: doTryCatch(return(expr), name, parentenv, handler)
> | | 13: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> | | 14: tryCatchList(expr, classes, parentenv, handlers)
> | | 15: tryCatch(expr, error = function(e) {    call <- conditionCall(e)
>  if (!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))
>             call <- sys.call(-4L)        dcall <- deparse(call)[1L]
>  prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        msg <-
> conditionMessage(e)        sm <- strsplit(msg, "\n")[[1L]]        w <- 14L
> + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")        if (is.na(w))
>             w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L],
>     type = "b")        if (w > LONG)             prefix <- paste(prefix,
> "\n  ", sep = "")    }    else prefix <- "Error : "    msg <- paste(prefix,
> conditionMessage(e), "\n", sep = "")    .Internal(seterrmessage(msg[1L]))
>  if (!silent && identical(getOption("show.error.messages"),         TRUE))
> {        cat(msg, file = stderr())
>  .Internal(printDeferredWarnings())    }    invisible(structure(msg, class
> = "try-error", condition = e))})
> | | 16: try({    ns <- loadNamespace(package, c(which.lib.loc, lib.loc))
>  dataPath <- file.path(which.lib.loc, package, "data")    env <-
> attachNamespace(ns, pos = pos, dataPath = dataPath,         deps)})
> | | 17: library(pkg_name, lib.loc = lib, character.only = TRUE,
> logical.return = TRUE)
> | | 18: withCallingHandlers(expr, packageStartupMessage = function(c)
> invokeRestart("muffleMessage"))
> | | 19: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,
>   character.only = TRUE, logical.return = TRUE))
> | | 20: doTryCatch(return(expr), name, parentenv, handler)
> | | 21: tryCatchOne(expr, names, parentenv, handlers[[1L]])
> | | 22: tryCatchList(expr, classes, parentenv, handlers)
> | | 23: tryCatch(expr, error = function(e) {    call <- conditionCall(e)
>  if (!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))
>             call <- sys.call(-4L)        dcall <- deparse(call)[1L]
>  prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        msg <-
> conditionMessage(e)        sm <- strsplit(msg, "\n")[[1L]]        w <- 14L
> + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")        if (is.na(w))
>             w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L],
>     type = "b")        if (w > LONG)             prefix <- paste(prefix,
> "\n  ", sep = "")    }    else prefix <- "Error : "    msg <- paste(prefix,
> conditionMessage(e), "\n", sep = "")    .Internal(seterrmessage(msg[1L]))
>  if (!silent && identical(getOption("show.error.messages"),         TRUE))
> {        cat(msg, file = stderr())
>  .Internal(printDeferredWarnings())    }    invisible(structure(msg, class
> = "try-error", condition = e))})
> | | 24: try(suppressPackageStartupMessages(library(pkg_name, lib.loc =
> lib,     character.only = TRUE, logical.return = TRUE)))
> | | 25: tools:::.test_load_package("RGtk2",
> "/build/buildd-rgtk2_2.20.19-1-ia64-_0vVAw/rgtk2-2.20.19/debian/r-cran-rgtk2/usr/lib/R/site-library")
> | | aborting ...
> | | Segmentation fault
> | | ERROR: loading failed
> |
> | Full build log:
> |
> https://buildd.debian.org/status/fetch.php?pkg=rgtk2&arch=ia64&ver=2.20.19-1&stamp=1322841271
> |
> | --
> | Jakub Wilk
> |
> |
>
> --
> "Outside of a dog, a book is a man's best friend. Inside of a dog, it is
> too
> dark to read." -- Groucho Marx
>

Reply via email to