Skip to content

64-bit R-build on Mac OS X 10.4

4 messages · Steven McKinney, Simon Urbanek

#
On Aug 29, 2007, Simon Urbanek wrote (in response to Sayan Pathak):
  
  https://stat.ethz.ch/pipermail/r-sig-mac/2007-August/004082.html
  
  
  > My apologies if this is a naive question. I am new to Mac and also  
  > compiling R from source for the first time. Could you please suggest  
  > what should I be doing?
  
  
  Use --without-iconv (or compile 64-bit libiconv from Apple sources if  
  you know how). Tiger has 32-bit iconv only, so you have either to  
  disable iconv support or to get the 64-bit version.
  
  Cheers,
  Simon

###------------------------------------------------------------

Hi Simon,

Would you be able to give more guidance on how to compile 64-bit
libiconv for Tiger, or is it possible for you to package the
64-bit libiconv you built?

I can compile 64-bit R using the  --without-iconv Switch,
but 
make check
fails when the R iconv() function is encountered in the
make check tests.

I see this warning after running configure:
configure: WARNING: --with-iconv=no is deprecated and will be withdrawn shortly

So 64-bit libiconv apparently will soon be required?



Best regards

Steve McKinney
#
On Nov 6, 2007, at 10:23 PM, Steven McKinney wrote:

            
You can get the sources from Apple and compile it:
http://www.opensource.apple.com/darwinsource/tarballs/other/libiconv-13.2.tar.gz

If you want to save yourself the hassle, my 64-bit build can be  
obtained and installed as follows:
curl -s http://r.research.att.com/libiconv-quad.tar.gz | \
sudo tar fvxz - -C /usr/lib

Given that it's compiled from Apple sources, it should be identical to  
the system binary (except that it's not stripped).

However, if you feel more comfortable just adding the 64-bit part to  
your system's iconv, you can do so by unpacking my version and using  
lipo to extract the x86_64 part and lipo again to add it to /usr/lib/ 
liviconv.2.dylib

Cheers,
Simon
#
Many thanks Simon, this worked without hassle.

I compiled 64-bit R, but it failed make check.
First failure was in ok-errors.R, and generated this output
in ok-errors.Rout.fail

   > ## bad infinite recursion / on.exit / ... interactions
   > bar <- function() 1+1
   > foo <- function() { on.exit(bar()); foo() }
   > foo() # now simple "infinite recursion"
   
    *** caught segfault ***
   address 0x7fffeff7ffe30, cause 'memory not mapped'
   
   Traceback:
    1: foo()
    2: foo()
    3: foo()
   ...
   2154: foo()
   2155: foo()
   2156: foo()
   aborting ...

Second error was in d-p-q-r-tests.Rout from this test:
   ## dbeta(*, ncp):
   a <- rlnorm(100)
   stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
             dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf
             )
   ## the first gave 0, the 2nd NaN in R <= 2.3.0

and generated this
output in d-p-q-r-tests.Rout.fail

   > 
   > ## dbeta(*, ncp):
   > a <- rlnorm(100)
   > stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
   +           dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf
   +           )
   Error: dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf is not all TRUE
   In addition: Warning message:
   In dnbeta(x, shape1, shape2, ncp, log) : NaNs produced
   Execution halted

Everything else passed, so I'm not sure how serious these failures are.

I'd appreciate any suggestions about 
- whether to report this make check failure information anywhere else
- how to figure out what caused these failures (an inappropriate
  file somewhere in the path etc.)

Thanks again for making 64-bit libiconv available


Best

Steve McKinney
#
Sorry, forgot to include this info
R version 2.6.0 Patched (2007-10-29 r43302) 
powerpc64-apple-darwin8.10.0 

locale:
C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
-----Original Message-----
From: r-sig-mac-bounces at stat.math.ethz.ch on behalf of Steven McKinney
Sent: Wed 11/7/2007 1:52 PM
To: Simon Urbanek
Cc: r-sig-mac at stat.math.ethz.ch
Subject: Re: [R-SIG-Mac] 64-bit R-build on Mac OS X 10.4
Many thanks Simon, this worked without hassle.

I compiled 64-bit R, but it failed make check.
First failure was in ok-errors.R, and generated this output
in ok-errors.Rout.fail

   > ## bad infinite recursion / on.exit / ... interactions
   > bar <- function() 1+1
   > foo <- function() { on.exit(bar()); foo() }
   > foo() # now simple "infinite recursion"
   
    *** caught segfault ***
   address 0x7fffeff7ffe30, cause 'memory not mapped'
   
   Traceback:
    1: foo()
    2: foo()
    3: foo()
   ...
   2154: foo()
   2155: foo()
   2156: foo()
   aborting ...

Second error was in d-p-q-r-tests.Rout from this test:
   ## dbeta(*, ncp):
   a <- rlnorm(100)
   stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
             dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf
             )
   ## the first gave 0, the 2nd NaN in R <= 2.3.0

and generated this
output in d-p-q-r-tests.Rout.fail

   > 
   > ## dbeta(*, ncp):
   > a <- rlnorm(100)
   > stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
   +           dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf
   +           )
   Error: dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf is not all TRUE
   In addition: Warning message:
   In dnbeta(x, shape1, shape2, ncp, log) : NaNs produced
   Execution halted

Everything else passed, so I'm not sure how serious these failures are.

I'd appreciate any suggestions about 
- whether to report this make check failure information anywhere else
- how to figure out what caused these failures (an inappropriate
  file somewhere in the path etc.)

Thanks again for making 64-bit libiconv available


Best

Steve McKinney
_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac at stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-mac