[Phylobase-devl] New phylobase build approach using static libncl (Was: Rcpp and OS X compiliation)

Dirk Eddelbuettel edd at debian.org
Mon Feb 8 18:40:25 CET 2010


On 2 February 2010 at 10:44, Dirk Eddelbuettel wrote:
| [ Resending with 7-bit clean headers without Francois's cedille ]
| 
| On 1 February 2010 at 12:41, Dirk Eddelbuettel wrote:
| | On 1 February 2010 at 13:22, François Michonneau wrote:
| | | Hi all,
| | | 
| | | It looks that we're still having some troubles building the package on R-forge.
| | | 
| | | Now, we get the following error message for the linux builds:
| | | g++ -shared -L/usr/local/lib64 -o phylobase.so NCLInterface.o
| | | ReadWithNCL.o ancestors.o descendants.o phyloXX.o reorderBinary.o
| | | reorderRobust.o -L/home/rforge/lib/R/2.10/Rcpp/lib -lRcpp
| | | -Wl,-rpath,/home/rforge/lib/R/2.10/Rcpp/lib -Llib/ncl -lncl
| | | -L/srv/R/R-patched/build.10-01-29/lib -lR
| | | /usr/bin/ld: lib/ncl/libncl.a(nxsassumptionsblock.o): relocation
| | | R_X86_64_32 against `.rodata.str1.1' can not be used when making a
| | | shared object; recompile with -fPIC
| | | lib/ncl/libncl.a: could not read symbols: Bad value
| | | collect2: ld returned 1 exit status
| | 
| | Good catch. I never need that on 32bit where it works automatically so I
| | forgot. This basically means that out plan of using
| | 
| |     configure --enable-static --disable-shared 
| | 
| | doesn't work as configure no longer seems to add -fPIC. That stinks.
| | 
| | I think the simplest solution is to tell configure to stuff itself, and to
| | use the same Makefile we already use for Windows, maybe with an explicit
| | -fPIC thrown in for good measure.
| 
| Didn't work. I wasn't thinking hard enough.
| 
| For OS X, three builds are attempted for three architectures.  That cannot
| work with a single configure.
| 
| Maybe we need to throw our arms up in the air and just import the sources
| files from pkg/src/ncl/ncl into pkg/src/ and treat them as part of the
| package.

After discussing this some more with Francois, I have now made this change
and committed it as a 'request for comment' type commit. So now we no longer
have a seperate source directory for ncl but simply comingle the ncl sources
with the phylobase sources.

Advantage:  R knows how to build

Disadvantage: comingled :-/

It works for me on Linux, and I submitted it to the automated win-builder (by
locally altering DESCRIPTION to make me Maintainer:, and I also like to
change the version). The result is in:

   From: Uwe.Ligges at R-Project.org
   To: edd at debian.org
   Cc: Uwe.Ligges at R-Project.org
   Subject: Package phylobase_0.5.2.tar.gz has been checked and built
   Date: Mon, 08 Feb 2010 18:20:59 +0100
   
   Dear package maintainer,
    
   this notification has been generated automatically.
   Your package phylobase_0.5.2.tar.gz has been built (if working) and checked for Windows.
   Please check the log files and (if working) the binary package at:
   http://win-builder.r-project.org/oIyt0KC6A03C
   The files will be removed after roughly 72 hours.
   Installation time in seconds: 124
   Check time in seconds: 113
   Check result: WARNING
   R version 2.10.1 (2009-12-14) (32-bit)
    
   All the best,
   Uwe Ligges
   (CRAN maintainer of binary packages for Windows)

So if anyone with OS X could try this, preferably over multiarch etc, it
would be great. Maybe we can _finally_ put this to bed in a few days.

Dirk


-- 
  Registration is open for the 2nd International conference R / Finance 2010
  See http://www.RinFinance.com for details, and see you in Chicago in April!


More information about the Phylobase-devl mailing list