[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/usr/local/include  -mp -g -O2  -DPACKAGE_NAME=\"\" 
  -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

Does anyone have any pointers as to why this behavior occurs or more 
importantly what can be done about it?



More information about the Bioconductor mailing list