Package: r-base Version: 3.0.1-3 Severity: important Tags: patch User: debian-...@lists.debian.org Usertags: arm64
The ARM regexp hack is apparently necessary for the forthcoming arm64 port as well (whose machine name is "aarch64"). I've attached a patch that extends it to cover this new architecture; but perhaps this is evidence that the hack should just cover all architectures to save this kind of manual porting work? * Extend SHLIB_* definition hack in install.R to cover aarch64 as well. diff -u r-base-3.0.1/debian/arm-perl-regexp.patch r-base-3.0.1/debian/arm-perl-regexp.patch --- r-base-3.0.1/debian/arm-perl-regexp.patch +++ r-base-3.0.1/debian/arm-perl-regexp.patch @@ -5,7 +5,7 @@ ## can we do better? mconf <- file.path(R.home(), paste0("etc", rarch), "Makeconf") - sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE)) -+ if (substr( Sys.info()["machine"], 1, 3) == "arm") { # arm has broken regexps in libc ++ if (substr( Sys.info()["machine"], 1, 3) == "arm" || Sys.info()["machine"] == "aarch64") { # arm has broken regexps in libc + sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE), perl = TRUE) + } else { + sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE)) @@ -19,7 +19,7 @@ "Makeconf")) - SHLIB_EXT <- sub(".*= ", "", grep("^SHLIB_EXT", mconf, value = TRUE)) - SHLIB_LIBADD <- sub(".*= ", "", grep("^SHLIB_LIBADD", mconf, value = TRUE)) -+ if (substr( Sys.info()["machine"], 1, 3) == "arm") { # arm has broken regexps in libc ++ if (substr( Sys.info()["machine"], 1, 3) == "arm" || Sys.info()["machine"] == "aarch64") { # arm has broken regexps in libc + SHLIB_EXT <- sub(".*= ", "", grep("^SHLIB_EXT", mconf, value = TRUE), perl = TRUE) + SHLIB_LIBADD <- sub(".*= ", "", grep("^SHLIB_LIBADD", mconf, value = TRUE), perl = TRUE) + } else { diff -u r-base-3.0.1/src/library/tools/R/install.R r-base-3.0.1/src/library/tools/R/install.R --- r-base-3.0.1/src/library/tools/R/install.R +++ r-base-3.0.1/src/library/tools/R/install.R @@ -108,7 +108,7 @@ SHLIB_EXT <- if (WINDOWS) ".dll" else { ## can we do better? mconf <- file.path(R.home(), paste0("etc", rarch), "Makeconf") - if (substr( Sys.info()["machine"], 1, 3) == "arm") { # arm has broken regexps in libc + if (substr( Sys.info()["machine"], 1, 3) == "arm" || Sys.info()["machine"] == "aarch64") { # arm has broken regexps in libc sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE), perl = TRUE) } else { sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE)) @@ -1631,7 +1631,7 @@ mconf <- readLines(file.path(R.home(), paste0("etc", Sys.getenv("R_ARCH")), "Makeconf")) - if (substr( Sys.info()["machine"], 1, 3) == "arm") { # arm has broken regexps in libc + if (substr( Sys.info()["machine"], 1, 3) == "arm" || Sys.info()["machine"] == "aarch64") { # arm has broken regexps in libc SHLIB_EXT <- sub(".*= ", "", grep("^SHLIB_EXT", mconf, value = TRUE), perl = TRUE) SHLIB_LIBADD <- sub(".*= ", "", grep("^SHLIB_LIBADD", mconf, value = TRUE), perl = TRUE) } else { Thanks, -- Colin Watson [cjwat...@ubuntu.com] -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org