[BioC] Trouble building Bioconductor

Kasper Daniel Hansen khansen at stat.Berkeley.EDU
Wed Feb 22 21:36:17 CET 2006


On Feb 22, 2006, at 1:06 AM, Atro Tossavainen wrote:

> Dear Mr Pages
>
>>> The page contains nothing on anything related to anything else  
>>> but x86
>>> platforms (except for one compiler that runs on an outdated OS on  
>>> Mac).
>>
>> Are you kidding? Nowhere it is said that the compilers listed on this
>> page are for x86 only.
>
> Aside from gcc, they are.  And indeed it says: "This page lists  
> compiler
> availability with a focus on free compilers that run on Windows and  
> Linux."
>
>> For example, it says that the gcc compiler (the first
>> in the list) supports "Windows, Linux and many others".
>
> Yes, I am familiar with gcc and have had 3.4.2 available on all my
> platforms for quite some time.
>
>> If your native compiler supports C99 then use it. If it does not,  
>> then
>> you have alternatives, like gcc.
>
> My issue is the fact that I am able to build R with a particular  
> compiler
> but unable to build Bioconductor with the same compiler.  It would  
> make
> sense for the requirements for R and its contributed packages to be
> identical, don't you think.

Not necessarily. There are packages (both on CRAN and Bioconductor)  
that depends on external applications.

I agree that it would be nice for a package such as gcrma to build on  
exactly the same platforms as R does. But  R strongly suggests using  
a C99 compliant compiler (see R-exts)

Quote:

*****
A.1 Essential programs

You need a means of compiling C and FORTRAN 77 (see Using FORTRAN).  
Some add-on packages also need a C++ compiler. Your C compiler should  
be IEC600593, POSIX 1003.1 and C99-compliant if at all possible. R  
tries to choose suitable flags for the C compilers it knows about,  
but you may have to set CFLAGS suitably. For recent versions of gcc  
with glibc this means including -std=gnu99 in CFLAGS (-std=c99  
excludes POSIX functionality).

******

Note that it may be the case that your compilers are partly C99  
compliant (enough so that they build R but fail to support this  
particular case). But since R-exts C99 compliance "if at all  
possible", it does not seem to be a strange requirement from gcrma.

Now, I did a quick googling on your compilers and it seems to be the  
case that gcc-2.95.4 is not C99 compliant and that the IRX one needs  
a -c99 flag in order to ensure compliance. I could not find info on  
the Sun system. So for the IRX system you could recompile R with  
CFLAGS set "correctly" or you could do a testrun where you download  
the source code for gcrma, add a file in
   gcrma/src called Makevars with the line
  PKG_CFLAGS+= -c99
and see if it works.

If your compiler really is C99 compliant and gcrma does not build,  
then you need to report that bug to the maintainer of gcrma. And  
there is always the question whether the function could be re-written  
so that the offending part is altered, but that needs a more careful  
analysis of the code.

/Kasper

>> We are currently using gcc to build and check the binary packages  
>> that
>> we distribute and we have no problem with it. It's free, it's open
>> source, it successfully builds R on 32-bit Linux,
>> 64-bit Linux, Mac OS X, Solaris, IRIX, and many more...
>
> And makes coffee and plays gomoku.  I do not need a lecture on the  
> merits
> of gcc.  I am perfectly aware of all that you say.  However, compiling
> resource-hungry software such as R with a sub-optimal compiler such as
> gcc makes no sense.  It only makes sense if you don't have access  
> to the
> native compilers for the platform in question, and I dare say that  
> most
> of the academic community who have any sort of access to commercial  
> UNIX
> platforms already have access to the native compilers on those  
> platforms
> via campus licensing agreements and would always expect to compile any
> software with the native compilers instead of gcc in order to reach  
> the
> maximum potential of the hardware.
>
> -- 
> Atro Tossavainen (Mr.)               / The Institute of  
> Biotechnology at
> Systems Analyst, Techno-Amish &     / the University of Helsinki,  
> Finland,
> +358-9-19158939  UNIX Dinosaur     / employs me, but my opinions  
> are my own.
> < URL : http : / / www . helsinki . fi / %7E atossava / > NO FILE  
> ATTACHMENTS
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor



More information about the Bioconductor mailing list