[Bioc-devel] Newbie Question - How to submit patches

Paul Gordon gordonp at ucalgary.ca
Fri Oct 14 22:46:45 CEST 2005


Thank you gentlemen for all your responses.  As a summary:

-I compiled R with Sun's cc, which by default is ANSI C.  This worked fine.
-I ran getBioC.R's getBioC() fror the latest stable release
-It failed on the gcrma and genefilter packages, because postmean.c and 
rowPAUCs.c require ISO C99.
-The Writing R Extensions document says that you can safely assume ANSI 
C compliance, but must check for ISO C99 compliance of the compiler 
(usually autoconf)
-These two packages probably do not use autoconf, because when they are 
compiling, by default they use the exact same flags as were used to 
compile R itself (which does not have the C99 requirement), rather than 
adding the required "-xc99=%all" flag.
-Not knowing how to easily change this compilation flag in the context 
of just trying getBioC(), I modified the two offending C files (in the 
temporary download directory) to declare all variables at the beginning 
of the functions.
-They then compiled and installed fine.
-I e-mailed the list asking if anyone else had had difficulty compiling 
these two files.
-Based on your feedback, I changed my malloc calls to R's Calloc calls 
(R_alloc, which is what I now assume you meant, would hold on to the 
memory unneccessaarily long).  It is much nicer now. :-)  I've attached 
them again for your perusal.
-To make getBioC() seamless for non-gcc people, perhaps contributed 
packages should be required to be ANSI C or use autoconf...

Below is the output when I try to install the original gcrma and 
genefilter packages (I modified biocinstall.R to just get these two for 
brevity purposes).  These packages do not seem to call autconf, but do 
rely on an ISO C99 compiler:

 > biocinstall()

Running biocinstall version 1.0  with R version  2.2.0
trying URL 
'http://www.bioconductor.org/packages/bioc/devel/src/contrib/genefilter_1.8.0.tar.gz'
Content type 'application/x-gzip' length 224986 bytes
opened URL
==================================================
downloaded 219Kb

trying URL 
'http://www.bioconductor.org/packages/bioc/devel/src/contrib/gcrma_2.2.0.tar.gz'
Content type 'application/x-gzip' length 107239 bytes
opened URL
==================================================
downloaded 104Kb

* Installing *source* package 'genefilter' ...
** libs
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c genedist.c -o genedist.o
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c init.c -o init.o
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c rowPAUCs.c -o rowPAUCs.o
"rowPAUCs.c", line 56: syntax error before or at: double
"rowPAUCs.c", line 61: undefined symbol: xin
"rowPAUCs.c", line 61: cannot dereference non-pointer type
"rowPAUCs.c", line 62: undefined symbol: yin
"rowPAUCs.c", line 62: cannot dereference non-pointer type
"rowPAUCs.c", line 67: syntax error before or at: double
"rowPAUCs.c", line 69: undefined symbol: xall
"rowPAUCs.c", line 69: cannot dereference non-pointer type
"rowPAUCs.c", line 70: undefined symbol: yall
"rowPAUCs.c", line 70: cannot dereference non-pointer type
"rowPAUCs.c", line 72: cannot dereference non-pointer type
"rowPAUCs.c", line 72: undefined symbol: xin
"rowPAUCs.c", line 72: cannot dereference non-pointer type
"rowPAUCs.c", line 73: cannot dereference non-pointer type
"rowPAUCs.c", line 73: undefined symbol: yin
"rowPAUCs.c", line 73: cannot dereference non-pointer type
"rowPAUCs.c", line 77: cannot dereference non-pointer type
"rowPAUCs.c", line 78: cannot dereference non-pointer type
"rowPAUCs.c", line 81: cannot dereference non-pointer type
"rowPAUCs.c", line 81: cannot dereference non-pointer type
"rowPAUCs.c", line 82: cannot dereference non-pointer type
"rowPAUCs.c", line 82: cannot dereference non-pointer type
"rowPAUCs.c", line 86: cannot recover from previous errors
cc: acomp failed for rowPAUCs.c
make: *** [rowPAUCs.o] Error 2
ERROR: compilation failed for package 'genefilter'
** Removing '/usr/local/lib/R/library/genefilter'
** Restoring previous '/usr/local/lib/R/library/genefilter'
* Installing *source* package 'gcrma' ...
** libs
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c baseProfile.c -o baseProfile.o
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c computeAffinities.c -o computeAffinities.o
cc -I/usr/local/lib/R/include  -I/usr/local/include   -KPIC  -fast 
-xprefetch -xlibmil -c postmean.c -o postmean.o
"postmean.c", line 26: syntax error before or at: double
"postmean.c", line 27: undefined symbol: pnorms
"postmean.c", line 27: cannot dereference non-pointer type
"postmean.c", line 32: cannot dereference non-pointer type
"postmean.c", line 33: undefined symbol: diff_pnorms
"postmean.c", line 33: cannot dereference non-pointer type
"postmean.c", line 33: cannot dereference non-pointer type
cc: acomp failed for postmean.c
make: *** [postmean.o] Error 2
ERROR: compilation failed for package 'gcrma'
** Removing '/usr/local/lib/R/library/gcrma'
** Restoring previous '/usr/local/lib/R/library/gcrma'

The downloaded packages are in
    /tmp/Rtmp4890/downloaded_packages
Warning messages:
1: 'CRAN.packages' is deprecated.
Use 'available.packages' instead.
See help("Deprecated")
2: installation of package 'genefilter' had non-zero exit status in: 
install.packages(pkgs = c("genefilter", "gcrma"), repos = 
c("http://www.bioconductor.org/packages/bioc/devel", 
3: installation of package 'gcrma' had non-zero exit status in: 
install.packages(pkgs = c("genefilter", "gcrma"), repos = 
c("http://www.bioconductor.org/packages/bioc/devel",



More information about the Bioc-devel mailing list