Hi Martin,

On 21 January 2016 at 20:02, Martin Michlmayr wrote:
| Package: rquantlib
| Version: 0.4.2-1
| Severity: normal
| User: debian-...@lists.debian.org
| Usertags: ftbfs-gcc-6 gcc-6-unknown
| 
| This package fails to build with GCC 6.  GCC 6 has not been released
| yet, but it's expected that GCC 6 will become the default compiler for
| stretch.
| 
| Unfortunately, it's not clear from the log why the build failed.
| It's possible there's a bug in this package or in GCC.  It's also
| possible I reported a non-issue, although I tried to avoid that.
| I apologize in advance if this is the case.
| 
| If you have some time to look into this issue, that'd be great.  If
| not, I can re-test the package with GCC 6 in a few weeks time.

Can you ensure that the other C++ dependencies, notably QuantLib and Rcpp
with Build-Depends: r-cran-rcpp (>= 0.11.0), libquantlib0-dev (>= 1.7), are
built under the same compiler?

We've seen similar breakage with R packages with ABI/API changes.

Dirk

| 
| You can find a snapshot of GCC 6 in experimental.  To build with
| GCC 6, you can set CC=gcc-6 CXX=g++-6 explicitly.
| 
| You may be able to find out more about this issue at
| https://gcc.gnu.org/gcc-6/changes.html
| 
| > sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
| ...
| > installing to 
/<<PKGBUILDDIR>>/debian/r-cran-rquantlib/usr/lib/R/site-library/RQuantLib/libs
| > ** R
| > ** demo
| > ** inst
| > ** preparing package for lazy loading
| > ** help
| > *** installing help indices
| > ** building package indices
| > ** testing if installed package can be loaded
| > 
| >  *** caught segfault ***
| > address 0x7f7f1504a6c0, cause 'invalid permissions'
| > 
| > Traceback:
| >  1: dyn.load(file, DLLpath = DLLpath, ...)
| >  2: library.dynam(lib, package, package.lib)
| >  3: loadNamespace(package, c(which.lib.loc, lib.loc))
| >  4: doTryCatch(return(expr), name, parentenv, handler)
| >  5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| >  6: tryCatchList(expr, classes, parentenv, handlers)
| >  7: 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 <- paste0(prefix, "\n  ")    }   
 else prefix <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")  
  .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))})
| >  8: try({    ns <- loadNamespace(package, c(which.lib.loc, lib.loc))    env 
<- attachNamespace(ns, pos = pos, deps)})
| >  9: library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return 
= TRUE)
| > 10: withCallingHandlers(expr, packageStartupMessage = function(c) 
invokeRestart("muffleMessage"))
| > 11: suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     
character.only = TRUE, logical.return = TRUE))
| > 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 <- paste0(prefix, "\n  ")    }   
 else prefix <- "Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")  
  .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(suppressPackageStartupMessages(library(pkg_name, lib.loc = lib,     
character.only = TRUE, logical.return = TRUE)))
| > 17: tools:::.test_load_package("RQuantLib", 
"/<<PKGBUILDDIR>>/debian/r-cran-rquantlib/usr/lib/R/site-library")
| > aborting ...
| > Segmentation fault
| > ERROR: loading failed
| > * removing 
'/<<PKGBUILDDIR>>/debian/r-cran-rquantlib/usr/lib/R/site-library/RQuantLib'
| > debian/rules:18: recipe for target 'R_any_arch' failed
| > make: *** [R_any_arch] Error 1
| 
| -- 
| Martin Michlmayr
| Linux for HPE Helion, Hewlett Packard Enterprise

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

Reply via email to