It continues to be quite frustrating - questions that are answered slowly -
What follows is the last work, for now - on the 'recent' releases.
FYI: workaround #1 would be to not build the recommended packages right away - as the core is building ok.
Note also - what follows is more about the AIX 32-bit memory models than about R - imho.
++++++++++++++++
default memory model:
256MB data for data, bss and stack (0x20000000 - 0x2fffffff)
cran@x068:[/home/cran/32/R-3.2.3]dump -o bin/exec/R
bin/exec/R:
***Object Module Header***
# Sections Symbol Ptr # Symbols Opt Hdr Len Flags
7 0x0072542c 112376 72 0x1002
Timestamp = 1452258883
Magic = 0x1df
***Optional Header***
Tsize Dsize Bsize Tstart Dstart
0x003ca77f 0x0003e7d9 0x0009f01c 0x100001a0 0x2000091f
SNloader SNentry SNtext SNtoc SNdata
0x0004 0x0002 0x0001 0x0002 0x0002
TXTalign DATAalign TOC vstamp entry
0x0007 0x0003 0x2003da88 0x0001 0x20037588
maxSTACK maxDATA SNbss magic modtype
0x00000000 0x00000000 0x0003 0x010b 1L
** help
*** installing help indices
** building package indices
Loading required package: Matrix
Error: C stack usage 589826336 is too close to the limit
*** caught segfault ***
address e0dba1b4, cause 'memory not mapped'
Note: what is happening here - the 0xe0000000 is 'reserved' for
0xe0000000 to 0xefffffff Available for use by shared memory or mmap services.
Traceback:
1: tryCatchOne(expr, names, parentenv, handlers[[1L]])
2: tryCatchList(expr, classes, parentenv, handlers)
3: 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))})
4: try(.install_package_indices(".", instdir))
5: do_install_source(pkg_name, instdir, pkg, desc)
6: do_install(pkg)
7: tools:::.install_packages()
aborting ...
Modified maxdata (to 0xd000000 as maxdata, plus /dsa aka "Very Large Data Model"
To allow a program to use the very large address-space model, you must specify a maxdata value and the dynamic segment allocation (dsa) property. Use either the ld command or the LDR_CNTRL environment variable to specify a maxdata value and the DSA option.
If a maxdata value is specified, the very large address-space model follows the large-address space model
in that a program's data is read into memory starting with segment 3, and occupies as many segments as needed.
The remaining data segments, however, are not reserved for the data area at execution time, but are obtained dynamically.
Until a segment is needed for a program's data area, it can be used by the shmat or mmap subroutines.
With the very large address-space model, a program can a maximum of 13 segments or 3.25 GB of data.
Of these 13 segments, 12 segments or 3 GB, are available for shmat and mmap subroutine purposes.
But are allocated from high to low addresses, rather than low to high
cran@x068:[/home/cran/32/R]dump -o bin/exec/R
bin/exec/R:
***Object Module Header***
# Sections Symbol Ptr # Symbols Opt Hdr Len Flags
7 0x0078cff0 125995 72 0x1042
Timestamp = 1452028679
Magic = 0x1df
***Optional Header***
Tsize Dsize Bsize Tstart Dstart
0x003ff497 0x0003ed95 0x0009f048 0x100001a0 0x30000637
SNloader SNentry SNtext SNtoc SNdata
0x0004 0x0002 0x0001 0x0002 0x0002
TXTalign DATAalign TOC vstamp entry
0x0007 0x0003 0x3003db78 0x0001 0x30037850
maxSTACK maxDATA SNbss magic modtype
0x00000000 0xd0000000 0x0003 0x010b 1L
** building package indices
Loading required package: Matrix
Error: C stack usage 1944285993 is too close to the limit
*** caught segfault ***
address c4866d8c, cause 'memory not mapped'
Is this a problem with mmap calls (as 0xc4866d8c is < 0xd0000000 - and 0xd0000000 is the top of the addressable memory range)
Traceback:
1: simpleError(msg, call)
2: tryCatchOne(expr, names, parentenv, handlers[[1L]])
3: tryCatchList(expr, classes, parentenv, handlers)
4: 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))})
5: try(.install_package_indices(".", instdir))
6: do_install_source(pkg_name, instdir, pkg, desc)
7: do_install(pkg)
8: tools:::.install_packages()
aborting ...
/home/cran/32/R/bin/INSTALL[34]: 14483552 Segmentation fault(coredump)
make: 1254-004 The error code from the last command is 1.
One final test - with Large Memory, rather than Very Large (i.e., no /dsa) - results are identical to Very Large Memory Model.
** help
*** installing help indices
** building package indices
Loading required package: Matrix
Error: C stack usage 1944285993 is too close to the limit
*** caught segfault ***
address c4866a8c, cause 'memory not mapped'
Traceback:
1: simpleError(msg, call)
2: tryCatchOne(expr, names, parentenv, handlers[[1L]])
3: tryCatchList(expr, classes, parentenv, handlers)
4: 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))})
5: try(.install_package_indices(".", instdir))
6: do_install_source(pkg_name, instdir, pkg, desc)
7: do_install(pkg)
8: tools:::.install_packages()
aborting ...
/home/cran/32/R/bin/INSTALL[34]: 15269932 Segmentation fault(coredump)
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 2.
Stop.
make: 1254-004 The error code from the last command is 2.
Stop.
cran@x068:[/home/cran/32/R]dump -o bin/exec/R
bin/exec/R:
***Object Module Header***
# Sections Symbol Ptr # Symbols Opt Hdr Len Flags
7 0x0072542c 112376 72 0x1002
Timestamp = 1452266630
Magic = 0x1df
***Optional Header***
Tsize Dsize Bsize Tstart Dstart
0x003ca77f 0x0003e7d9 0x0009f01c 0x100001a0 0x3000091f
SNloader SNentry SNtext SNtoc SNdata
0x0004 0x0002 0x0001 0x0002 0x0002
TXTalign DATAalign TOC vstamp entry
0x0007 0x0003 0x3003da88 0x0001 0x30037588
maxSTACK maxDATA SNbss magic modtype
0x00000000 0x80000000 0x0003 0x010b 1L
cran@x068:[/home/cran/32/R]