diff -up R-3.0.1/src/library/tools/R/install.R.armfix R-3.0.1/src/library/tools/R/install.R --- R-3.0.1/src/library/tools/R/install.R.armfix 2013-08-12 13:57:17.956790673 -0400 +++ R-3.0.1/src/library/tools/R/install.R 2013-08-12 13:59:51.230800752 -0400 @@ -108,7 +108,11 @@ SHLIB_EXT <- if (WINDOWS) ".dll" else { ## 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 + sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE), perl = TRUE) + } else { + sub(".*= ", "", grep("^SHLIB_EXT", readLines(mconf), value = TRUE)) + } } options(warn = 1) @@ -1627,8 +1631,13 @@ mconf <- readLines(file.path(R.home(), paste0("etc", Sys.getenv("R_ARCH")), "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 + SHLIB_EXT <- sub(".*= ", "", grep("^SHLIB_EXT", mconf, value = TRUE), perl = TRUE) + SHLIB_LIBADD <- sub(".*= ", "", grep("^SHLIB_LIBADD", mconf, value = TRUE), perl = TRUE) + } else { + SHLIB_EXT <- sub(".*= ", "", grep("^SHLIB_EXT", mconf, value = TRUE)) + SHLIB_LIBADD <- sub(".*= ", "", grep("^SHLIB_LIBADD", mconf, value = TRUE)) + } MAKE <- Sys.getenv("MAKE") rarch <- Sys.getenv("R_ARCH") } else {