[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