[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