[BioC] Problems compiling lumi on Solaris Sparc and R 2.9.0

Seth Falcon sfalcon at fhcrc.org
Thu Jan 14 22:36:52 CET 2010


Hi Norbert,

[I've cc'd the maintainer of affyio]

On 1/14/10 1:57 AM, ngrundma wrote:
> I am new to R and bioconductor and only want to compile some
> bioconductor packages on a Solaris 10 Sparc system. I am using gcc 3.4.6.
> I searched for a solution, but have not found something that really
> helps. Packages like beadarray work, but compiling lumi gave me
> following output:
>
> -- snip --
> R version 2.9.0 (2009-04-17)
> Copyright (C) 2009 The R Foundation for Statistical Computing
> ISBN 3-900051-07-0

Some suggestions below, but note that you are using rather old versions 
of gcc and R.

Our build server uses gcc 4.3.2.  The current release of R is 2.10.1. 
If you can, I would recommend upgrading R and then trying the 
installation again.

But more below...

> * Installing *source* package 'affyio' ...

This is actually the package that you are having problems with, not lumi.

> checking for gcc... gcc
> 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 gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking how to run the C preprocessor... gcc -E
> checking for grep that handles long lines and -e... /usr/sfw/bin/ggrep
> checking for egrep... /usr/sfw/bin/ggrep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for main in -lz... yes
> checking zlib.h usability... yes
> checking zlib.h presence... yes
> checking for zlib.h... yes
> checking if zlib version >= 1.1.3... yes
> checking for pthread_create in -lpthread... yes
> checking if we can use pthreads... yes
> configure: creating ./config.status
> config.status: creating src/Makevars
> ** libs
> gcc -std=gnu99 -I/usr/local/lib/R/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ZLIB=1 -DHAVE_LIBPTHREAD=1
> -DUSE_PTHREADS=1 -I/usr/local/include -I/usr/local/ssl/include
> -I/usr/local/pgsql/include -I/usr/local/include/ncurses
> -I/usr/openwin/include -I/usr/local/rrdtool-1.2.19/include -g -O2 -fPIC
> -O2 -L/usr/local/pgsql/lib -R/usr/local/pgsql/lib -L/usr/local/lib
> -R/usr/local/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib
> -L/usr/openwin/lib -R/usr/openwin/lib
> -I/usr/local/rrdtool-1.2.19/include -c fread_functions.c -o
> fread_functions.o
> gcc -std=gnu99 -I/usr/local/lib/R/include -DPACKAGE_NAME=\"\"
> -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
> -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ZLIB=1 -DHAVE_LIBPTHREAD=1
> -DUSE_PTHREADS=1 -I/usr/local/include -I/usr/local/ssl/include
> -I/usr/local/pgsql/include -I/usr/local/include/ncurses
> -I/usr/openwin/include -I/usr/local/rrdtool-1.2.19/include -g -O2 -fPIC
> -O2 -L/usr/local/pgsql/lib -R/usr/local/pgsql/lib -L/usr/local/lib
> -R/usr/local/lib -L/usr/local/ssl/lib -R/usr/local/ssl/lib
> -L/usr/openwin/lib -R/usr/openwin/lib
> -I/usr/local/rrdtool-1.2.19/include -c read_abatch.c -o read_abatch.o
> read_abatch.c: In function `read_probeintensities':
> read_abatch.c:4421: error: `PTHREAD_STACK_MIN' undeclared (first use in
> this function)
> read_abatch.c:4421: error: (Each undeclared identifier is reported only
> once
> read_abatch.c:4421: error: for each function it appears in.)
> *** Error code 1
> make: Fatal error: Command failed for target `read_abatch.o'
> ERROR: compilation failed for package 'affyio'
> * Removing '/local/usr/local/lib/R/library/affyio'
>

It looks like the problem is that Solaris is missing PTHREAD_STACK_MIN. 
  Some digging suggests that there is a way to access this macro on 
Solaris with an appropriate compile time flag, perhaps __EXTENSIONS__, 
but perhaps one of _POSIX* defines would also work.

This page has some details:

http://wikis.sun.com/display/SolAppPro/Home

I would try:

Find you platform string:
R --slave -e "R.version"|grep platform

Create ~/.R/Makevars-R_PLATFORM, replacing R_PLATFORM with the value 
obtained above.  I have: ~/.R/Makevars-i386-apple-darwin10.2.0

Inside this file add:

   CFLAGS=-D__EXTENSIONS__

Then try starting R and doing biocLite("affyio").  Let us know how it 
goes.  There may be a way to make this less painful for the next Solaris 
user.

+ seth

-- 
Seth Falcon
Bioconductor Core Team | FHCRC



More information about the Bioconductor mailing list