[Rd] configure on mac

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Aug 16 13:38:58 CEST 2006


On Tue, 15 Aug 2006, roger koenker wrote:

> Apologies for my ignorance about these matters.

All of us except Simon are in the same boat, it seems.  It might be 
helpful to know for his benefit what CPU this is and how you configured R.

This seems to a manifestation of an apparent MacOS bug Simon told me 
about.  xerbla_ is in libR.dylib, which loads Matrix.so and that is linked 
against libRblas.dylib and libRlapack.dylib, both of are looking for 
xerbla_.  On any other OS (except perhaps AIX), the runtime linker would 
resolve this, but apparently not on the MacOS two-level linking scheme he 
is currently using.

> I think that the multiply defined symbols were probably my fault.  After
> removing some lapack routines and using a
> modified version of Makevars  suggested by Martin Maechler
> 
> ## we use the BLAS and now also the LAPACK library:
> PKG_LIBS= $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
> 
> The multiple definitions problems don't appear, but instead I get  --  
> trying to INSTALL
> quantreg  --  the same problem with undefined _xerbla_ appears when I  
> try to install
> Matrix.  A variety of other source packages install without complaint.
> 
> gcc -dynamiclib -Wl,-macosx_version_min -Wl,10.3 -undefined  
> dynamic_lookup -single_module
> -multiply_defined suppress -L/sw/lib -L/usr/local/lib -o quantreg.so  
> akj.o boot.o chlfct.o
> cholesky.o dsel05.o extract.o kuantile.o mcmb.o penalty.o qrcens.o  
> rls.o rq1.o rqbr.o rqf
> n.o rqfnb.o rqfnc.o sparskit2.o srqfn.o srqfnc.o srtpai.o -L/Library/ 
> Frameworks/R.framewor
> k/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/ 
> lib -lRblas -L/usr/l
> ocal/lib/gcc/powerpc-apple-darwin8/4.0.0 -L/usr/local/lib/gcc - 
> lgfortran -lgcc_s -lSystemS
> tubs -lmx -lSystem -L/usr/local/lib/gcc/powerpc-apple-darwin8/4.0.0 - 
> L/usr/local/lib/gcc -
> lgfortran -lgcc_s -lSystemStubs -lmx -lSystem -F/Library/Frameworks/ 
> R.framework/.. -framew
> ork R
> ld: warning can't open dynamic library: libR.dylib referenced from: / 
> Library/Frameworks/R.
> framework/Resources/lib/libRlapack.dylib (checking for undefined  
> symbols may be affected)
> (No such file or directory, errno = 2)
> ld: Undefined symbols:
> _xerbla_ referenced from libRlapack expected to be defined in libR.dylib
> /usr/bin/libtool: internal link edit command failed
> 
> _xerbla_  is in
> 
> yzzy: otool -Tv libR.dylib | grep xerbla
> single module    _xerbla_
> 
> which doesn't appear to be part of the ld above.... should it be?   
> Can this be arranged
> by modifying Makevars?
> 
> 
> url:    www.econ.uiuc.edu/~roger            Roger Koenker
> email    rkoenker at uiuc.edu            Department of Economics
> vox:     217-333-4558                University of Illinois
> fax:       217-244-6678                Champaign, IL 61820
> 
> On Aug 15, 2006, at 1:08 AM, Prof Brian Ripley wrote:
> 
> > On Tue, 15 Aug 2006, stefano iacus wrote:
> >
> >> It seems that there are symbols defined in more than one header. This
> >> causes problems on mac. You should define the symbol in one header
> >> and declare elsewhere as extern. You can find examples in main.c (if
> >> I remember well).
> >> I'm not sure this is the problems, but it looks like
> >
> > One of the reasons given by Simon for this change was that was no  
> > longer
> > a problem: see the last sentence of
> >
> >     o   MacOS X 10.3 and higher now use two-level namespaces, single
> >         module in a shared library and allow undefined symbols to be
> >         resolved at run-time. This implies that common symbols are now
> >         allowed in package libraries.
> >
> > What apparently is a problem is having the same entry point in  
> > multiple
> > dynamic libraries (we have had to deal with LSAME, NEWS item two  
> > up).  I
> > think this means that having arranged specially to satisfy symbols on
> > MacOS, we now need to change it, so in src/extra/blas/Makefile.in
> >
> > Rblas_la_LIBADD = @RBLAS_LDFLAGS@ @DYLIB_UNDEFINED_ALLOWED_FALSE@ $ 
> > (FLIBS)
> >
> > '@DYLIB_UNDEFINED_ALLOWED_FALSE@' needs to be '#'.
> >
> > and we may then need to link against $(FLIBS) elsewhere.
> >
> > We need Simon's input: to the rest of us the ever-increasing number of
> > ways that MacOS needs special pampering is a mystery.
> >
> >> stefano
> >>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list