Skip to content

compiling R devel on vanilla tiger

15 messages · Kasper Daniel Hansen, Martin Maechler, Jan de Leeuw +4 more

#
Hi

I am trying to compile R-devel (the version from yesterday) with a  
"vanilla" installation of Tiger on a new Powerbook. Vanilla means I  
am running
   - Xcode 2.1
   - Gcc 4.0
   - The gfortran build which Simon Urbanek has on his wiki website  
(build number 5202)
   - make version "GNU Make 3.80 "
   - libtool version "Apple Computer, Inc. version cctools-590"
   - autoconf version "autoconf (GNU Autoconf) 2.59 "

I do ./configure with the options
    ./configure F77=gfortran FLIBS=/usr/lib/libgfortran.a --with- 
blas='-framework vecLib'
     --with-lapack R_PAPERSIZE=letter --with-aqua

(btw are these the "right" options?), which gives my the configure  
output:

R is now configured for powerpc-apple-darwin8.2.0

   Source directory:          .
   Installation directory:    /Library/Frameworks

   C compiler:                gcc  -g -O2
   C++ compiler:              g++  -g -O2
   Fortran compiler:          gfortran  -g -O2

   Interfaces supported:      X11, aqua, tcltk
   External libraries:        readline
   Additional capabilities:   iconv, MBCS, NLS
   Options enabled:           framework, R profiling

   Recommended packages:      yes

Making yields the error reproduced below.

How do I fix this? Shoudl I switch fortran compiler? Or install  
another version of libtool? Or?

Kasper


Make error:

gcc -dynamiclib -L/usr/local/lib -install_name /Library/Frameworks/ 
R.framework/Versions/2.2.0/Resources/lib/libRlapack.dylib -o  
libRlapack.dylib dlamc.lo dlapack0.lo dlapack1.lo dlapack2.lo  
dlapack3.lo cmplx.lo  cmplxblas.lo  /usr/lib/libgfortran.a
ld: Undefined symbols:
_dasum_
_daxpy_
_dcopy_
_ddot_
_dgemm_
_dgemv_
_dger_
_dnrm2_
_drot_
_dscal_
_dswap_
_dsymv_
_dsyrk_
_dtbsv_
_dtpsv_
_dtrmm_
_dtrmv_
_dtrsv_
_idamax_
_xerbla_
_dtpmv_
_dtrsm_
_dgbmv_
_dsbmv_
_dspmv_
_dspr2_
_dspr_
_dsymm_
_dsyr2_
_dsyr2k_
_dsyr_
_dtbmv_
_zgemm_
/usr/bin/libtool: internal link edit command failed
make[4]: *** [libRlapack.dylib] Error 1
make[3]: *** [R] Error 2
make[2]: *** [R] Error 1
make[1]: *** [R] Error 1
make: *** [R] Error 1
#
The current R-devel version forgets to add "-framework vecLib"
when linking libLapack.dylib. Go to src/modules/lapack, run
make, then paste the failing link statement into terminal and
add "-framework vecLib" to the end of it. Then go back to the
top level and run make to finish the whole thing.
On Aug 19, 2005, at 11:35 , Kasper Daniel Hansen wrote:

            
==========================================================
Jan de Leeuw, 11667 Steinhoff Rd, Frazier Park, CA 93225, 661-245-1725
                                  http://www.cuddyvalley.org/dunklen.mov
==========================================================
                                      Und die Einen sind im Dunkeln
                                      Und die Andern sind im Licht
                                      Doch man sieht nur die im Lichte
                                      Die im Dunkeln sieht man  
nicht       (Brecht)
#
Jan> The current R-devel version forgets to add "-framework
    Jan> vecLib" when linking libLapack.dylib. Go to
    Jan> src/modules/lapack, run make, then paste the failing
    Jan> link statement into terminal and add "-framework
    Jan> vecLib" to the end of it. Then go back to the top level
    Jan> and run make to finish the whole thing.

This may be fixable by changing
   <Rsource>/configure.ac   which produces  <Rsource>/configure
which later produces
   <Rbuild>/etc/Makeconf

Can you find out at least what changes are needed to etc/Makeconf
and forward your information to the R-devel mailing list ?

Thank you in advance,
Martin
Jan> On Aug 19, 2005, at 11:35 , Kasper Daniel Hansen wrote:
>> Hi
    >> 
    >> I am trying to compile R-devel (the version from
    >> yesterday) with a "vanilla" installation of Tiger on a
    >> new Powerbook. Vanilla means I am running - Xcode 2.1 -
    >> Gcc 4.0 - The gfortran build which Simon Urbanek has on
    >> his wiki website (build number 5202) - make version "GNU
    >> Make 3.80 " - libtool version "Apple Computer,
    >> Inc. version cctools-590" - autoconf version "autoconf
    >> (GNU Autoconf) 2.59 "
    >> 
    >> I do ./configure with the options ./configure
    >> F77=gfortran FLIBS=/usr/lib/libgfortran.a --with-
    >> blas='-framework vecLib' --with-lapack R_PAPERSIZE=letter
    >> --with-aqua
    >> 
    >> (btw are these the "right" options?), which gives my the
    >> configure output:
    >> 
    >> R is now configured for powerpc-apple-darwin8.2.0
    >> 
    >> Source directory: .  Installation directory:
    >> /Library/Frameworks
    >> 
    >> C compiler: gcc -g -O2 C++ compiler: g++ -g -O2 Fortran
    >> compiler: gfortran -g -O2
    >> 
    >> Interfaces supported: X11, aqua, tcltk External
    >> libraries: readline Additional capabilities: iconv, MBCS,
    >> NLS Options enabled: framework, R profiling
    >> 
    >> Recommended packages: yes
    >> 
    >> Making yields the error reproduced below.
    >> 
    >> How do I fix this? Shoudl I switch fortran compiler? Or
    >> install another version of libtool? Or?
    >> 
    >> Kasper
    >> 
    >> 
    >> Make error:
    >> 
    >> gcc -dynamiclib -L/usr/local/lib -install_name
    >> /Library/Frameworks/
    >> R.framework/Versions/2.2.0/Resources/lib/libRlapack.dylib
    >> -o libRlapack.dylib dlamc.lo dlapack0.lo dlapack1.lo
    >> dlapack2.lo dlapack3.lo cmplx.lo cmplxblas.lo
    >> /usr/lib/libgfortran.a ld: Undefined symbols: _dasum_
    >> _daxpy_ _dcopy_ _ddot_ _dgemm_ _dgemv_ _dger_ _dnrm2_
    >> _drot_ _dscal_ _dswap_ _dsymv_ _dsyrk_ _dtbsv_ _dtpsv_
    >> _dtrmm_ _dtrmv_ _dtrsv_ _idamax_ _xerbla_ _dtpmv_ _dtrsm_
    >> _dgbmv_ _dsbmv_ _dspmv_ _dspr2_ _dspr_ _dsymm_ _dsyr2_
    >> _dsyr2k_ _dsyr_ _dtbmv_ _zgemm_ /usr/bin/libtool:
    >> internal link edit command failed make[4]: ***
    >> [libRlapack.dylib] Error 1 make[3]: *** [R] Error 2
    >> make[2]: *** [R] Error 1 make[1]: *** [R] Error 1 make:
    >> *** [R] Error 1
    >> 
    >> _______________________________________________ R-SIG-Mac
    >> mailing list R-SIG-Mac at stat.math.ethz.ch
    >> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
    >> 
    >> 

    Jan> ==========================================================
    Jan> Jan de Leeuw, 11667 Steinhoff Rd, Frazier Park, CA
    Jan> 93225, 661-245-1725
    Jan> http://www.cuddyvalley.org/dunklen.mov
    Jan> ==========================================================
    Jan> Und die Einen sind im Dunkeln Und die Andern sind im
    Jan> Licht Doch man sieht nur die im Lichte Die im Dunkeln
    Jan> sieht man nicht (Brecht)
1 day later
#
I could be wrong, but I think there's something else wrong here. The  
farthest-up-the-chain problem that I can find is that the test for  
whether or not double complex BLAS can be used is failing. This is  
causing the use_lapack to get set back to no, which changes the args  
such that Makefile.in down in src/modules/lapack no longer tries to  
use the external lapack. Or at least that's the best I can make from  
this, but I'm not particularly skilled at reading (much less writing)  
autotools stuff.

I get a working version when I use f77, but when I use fink's  
gfortran/g95 I fail. Interestingly, using a fully rebuilt gfortran on  
my g5 works for me (or did as of a week or two ago) but I can't build  
gfortran from source on my g4 as it tries to build a "fat" (I mean  
"universal") binary with ppc64 support, which, of course doesn't  
exist on the g4.

Cyrus
On Aug 20, 2005, at 6:45 AM, Martin Maechler wrote:

            
#
my (bootstrap from cvs) fortran is

[www:~] deleeuw% gfortran -v
Using built-in specs.
Target: powerpc-apple-darwin8.3.0
Configured with: ../configure --with-gcc-version-trigger=/Users/ 
deleeuw/MyStuff/Developer/gcc/gcc/version.c --enable-languages=c,c+ 
+,f95,objc,obj-c++
Thread model: posix
gcc version 4.0.1 (Apple Computer, Inc. build 5224)

and it fails at the spot where Cyrus says it fails
On Aug 21, 2005, at 11:29 , Cyrus Harmon wrote:

            
==========================================================
Jan de Leeuw, 11667 Steinhoff Rd, Frazier Park, CA 93225, 661-245-1725
                                  http://www.cuddyvalley.org/dunklen.mov
==========================================================
                                      Und die Einen sind im Dunkeln
                                      Und die Andern sind im Licht
                                      Doch man sieht nur die im Lichte
                                      Die im Dunkeln sieht man  
nicht       (Brecht)
#
On Sun, 21 Aug 2005, Cyrus Harmon wrote:

            
<snip>>
That makes sense, as the test was put in because of differences in the ABI 
for double complex between g77 and gfortran on AMD64


 	-thomas
#
Ok, but, sense or not, the result of the failing test is that the the  
use_lapack is turned off and we don't link against the external  
lapack. Is this the desired behavior? If so there's probably a better  
solution than just breaking the build.

Cyrus
On Aug 21, 2005, at 3:49 PM, Thomas Lumley wrote:

            
#
On 21 Aug 2005, ch-rsig-mac at bobobeach.com wrote:

            
That makes sense.  What I noticed immediately was that the line in the
summary output from the configure script was missing the messages
about BLAS.

I'm using:

    $ gfortran --version
    GNU Fortran 95 (GCC 4.1.0 20050517 (experimental))

Am able to build R-patched without problem and _was_ able to build
R-devel a few weeks ago with the same tools.

+ seth
2 days later
#
On Sun, 21 Aug 2005, Cyrus Harmon wrote:

            
AFAICS any other solution would involve a lot of modifications to disable 
linear algebra on complex numbers.  If the test fails then we can't use 
vecLib for complex linear algebra without corrupting the stack,  and we 
know that we can't even build with R's built-in lapack on OS X.

At the moment, I think you do just need to find compatible compilers.


 	-thomas
#
On Aug 22, 2005, at 12:44 AM, Cyrus Harmon wrote:

            
... it's not "breaking the build" - because if you go ahead ignoring  
the test, the build will be broken anyway, only silently - all of the  
affected vecLib functions will simply segfault - they just don't work  
with gfortran.

I have a prototype work-around for this by creating wrapper functions  
and calling cblas_xx instead and I'm testing it right now, but it's  
ugly and will make it to R-devel only if it doesn't break anything else.

I just repeat what I've said here already: unless you desperately  
need 64-bit R there is no real benefit from using gcc4, because it's  
still very instable (gfortran segfaults even on simple examples) and  
unreliable (gfortran is even slower than g77). There is a good reason  
why the CRAN build uses gcc3 and g77.

Cheers,
Simon
#
Of course now you have R with AquaTcl, your Tcl/Tk based packages
will not work from the Aqua GUI, and packages such as tkrplot will not
work at all.
On Aug 25, 2005, at 11:17 , Kasper Daniel Hansen wrote:

            
==========================================================
Jan de Leeuw, 11667 Steinhoff Rd, Frazier Park, CA 93225, 661-245-1725
                                  http://www.cuddyvalley.org/dunklen.mov
==========================================================
                                      Und die Einen sind im Dunkeln
                                      Und die Andern sind im Licht
                                      Doch man sieht nur die im Lichte
                                      Die im Dunkeln sieht man  
nicht       (Brecht)
#
I am not too worried about the Aqua GUI: basically, one needs access  
to the development version of R when working with the development  
version of Bioconductor. The entire exercise is an attempt to make a  
devel version of R while retaining an installation of stable R with  
R.app and all that jazz.

I want this to be relatively easy because several others need to do  
this as well, so that was why I refrained from installing tcltk. I am  
not really using these gui packages myself (but I sometimes need to  
install them to satisfy dependencies), perhaps I need to rethink this  
approach.

Kasper
On Aug 25, 2005, at 11:28 AM, Jan de Leeuw wrote: