[BioC] Pthread-Problems when compiling Bioconductor with icc
Thomas Unterthiner
thomas.unterthiner at students.jku.at
Wed Jun 30 17:00:12 CEST 2010
Hi there!
I am trying to install Bioconductor on a self-compiled version of R on a
ia64 machine, using the icc 11.1.
However I get a very weird compilation error (I removed uninformative
lines from the output):
> biocLite("preprocessCore")
Using R version 2.11.1, biocinstall version 2.6.7.
Installing Bioconductor version 2.6 packages:
[1] "preprocessCore"
[... snip ... ]
* installing *source* package 'preprocessCore' ...
checking for gcc... /opt/intel/Compiler/11.1/059/bin/ia64/icc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/intel/Compiler/11.1/059/bin/ia64/icc accepts -g... yes
checking for /opt/intel/Compiler/11.1/059/bin/ia64/icc option to accept
ISO C89... none needed
checking for pthread_create in -lpthread... yes
checking if we can use pthreads... yes
checking if PTHREAD_STACK_MIN is defined... yes
configure: creating ./config.status
config.status: creating src/Makevars
[... snip ...]
/opt/intel/Compiler/11.1/059/bin/ia64/icc -std=c99
-I/bioinf_ag/work/unterthiner/R-2.11.1/include
-I/usr/local/include -mp -g -O2 -DPACKAGE_NAME=\"\"
-DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DHAVE_LIBPTHREAD=1
-DUSE_PTHREADS=1 -fpic
-g -std=c99 -c R_subColSummarize.c -o R_subColSummarize.o
icc: command line remark #10010: option '-mp' is deprecated and will be
removed in a future release. See '-help deprecated'
R_subColSummarize.c(83): warning #1011: missing return statement at end
of non-void function "subColSummarize_avg_log_group"
}
^
R_subColSummarize.c(113): error: identifier "PTHREAD_STACK_MIN" is undefined
size_t stacksize = PTHREAD_STACK_MIN + 0x4000;
[... snip ... ]
I found this really puzzling, since the following piece of code compiles
without problems:
#include <pthread.h>
#include <limits.h>
#include <stdio.h>
int main()
{
printf("%d\n", PTHREAD_STACK_MIN);
return 0;
}
(I later noticed that a similar minimal-code example was used in the
./configure-script for the package to check for
PTHREAD_STACK_MIN-functionality)
Does anyone have any pointers as to why this behavior occurs or more
importantly what can be done about it?
cheers
Thomas
More information about the Bioconductor
mailing list