[Rd] Compiling R on Linux with SunStudio 12.1: "wide-character type" problems (rt)

Martyn Plummer plummer at iarc.fr
Fri Feb 26 18:25:12 CET 2010


You can work around this by disabling large file support (configure
--disable-largefile).

This seems to be another glibc bug. In the header glob.h, there are two
lines where the pre-processor fails to check that __GNUC__ is defined,
and it isn't defined when using Sun Studio.

Evidently, glibc was designed to work with gcc and has not been
extensively tested with other compilers, or other vendors have learned
to work around the bugs.

Martyn
 

On Tue, 2010-02-23 at 16:55 -0600, rt wrote:
> Thank you Martyn,
> 
> I am one step closer.  Using R-patched, configure was successful. However,
> make exited with an error.
> 
> Configure summary:
> Installation directory:    /usr/local
>   C compiler:                /opt/sun/sunstudio12.1/bin/suncc  -g -O -xc99
> -xlibmil -m32  -xlibmieee -nofstore
>   Fortran 77 compiler:       /opt/sun/sunstudio12.1/bin/sunf95  -g -O
> -libmil  -m32 -nofstore
>   C++ compiler:              /opt/sun/sunstudio12.1/bin/sunCC  -g -O
> -xlibmil -m32 -xlibmieee -nofstore
>   Fortran 90/95 compiler:    /opt/sun/sunstudio12.1/bin/sunf95 -g -O
> -libmil  -m32 -nofstore
>   Obj-C compiler:
>   Interfaces supported:      X11, tcltk
>   External libraries:        readline, ICU, lzma
>   Additional capabilities:   PNG, JPEG, NLS, cairo
>   Options enabled:           shared BLAS, R profiling, Java
>   Recommended packages:      yes
> 
> MAKE error:
> make returned an error related to platform.c and glob.h.
> It seems that glob.h has a poiter to struct dirent {..}, platorm.c has
> struct dirent64 {..}.
> Error message:
>   /opt/sun/sunstudio12.1/bin/suncc
>   -I../../src/extra   -I. -I../../src/include -I../../src/include -I.
>   -I/opt/sun/sunstudio12.1/prod/include
> 
> -I/opt/sun/sunstudio12.1/prod/include/cc-I/opt/sun/sunstudio12.1/prod/include/cc/sys
> 
>   -DHAVE_CONFIG_H   -g -g -O -xc99 -xlibmil -m32  -xlibmieee -nofstore
>   -c platform.c -o platform.o
> "/usr/include/glob.h", line 175: identifier redeclared: glob64
>  current : function(pointer to const char, int, pointer to function(..)
> returning int, pointer to struct  {unsigned int gl_pathc, pointer to pointer
> to char gl_pathv, unsigned int gl_offs, int gl_flags, pointer to
> function(..) returning void gl_closedir, pointer to function(..) returning
> pointer to struct dirent64 {..} gl_readdir, pointer to function(..)
> returning pointer to void gl_opendir, pointer to function(..) returning int
> gl_lstat, pointer to function(..) returning int gl_stat}) returning int
>  previous: function(pointer to const char, int, pointer to function(..)
> returning int, pointer to struct  {unsigned int gl_pathc, pointer to pointer
> to char gl_pathv, unsigned int gl_offs, int gl_flags, pointer to
> function(..) returning void gl_closedir, pointer to function(..) returning
> pointer to struct dirent {..} gl_readdir, pointer to function(..) returning
> pointer to void gl_opendir, pointer to function(..) returning int gl_lstat,
> pointer to function(..) returning int gl_stat}) returning int :
> "/usr/include/glob.h", line 159
> 
> My cpu is correctly identified as i386 and I included the flag -m32. Do I
> need to specify architecture separately?
> 
> thanks,
> 
> Russ
> 
> > Russ,
> >
> > This is a known issue with Sun Studio on Linux and was fixed by Brian
> > Ripley in January. If you download R-patched.tar.gz from here:
> >
> > ftp://ftp.stat.math.ethz.ch/Software/R/
> >
> > then it should work for you.
> >
> > Martyn
> >
> > On Mon, 2010-02-22 at 13:11 -0600, rt wrote:
> > > I am trying to compile R on Linux using SunStudio. Configure flags are
> > > mostly as suggested in the R install guide.
> > >> R install guide also indicates that: "The OS needs to have enough
> > support
> > > for wide-character types: this is checked at configuration. Specifically,
> > > the C99 functionality of headers wchar.h and wctype.h, types wctans_t and
> > > mbstate_t and functions mbrtowc, mbstowcs, wcrtomb, wcscoll, wcstombs,
> > > wctrans, wctype, and iswctype."
> > > Configure stops with the following error message:
> > >
> > > configure:39534: result: no
> > > configure:39710: error: Support for MBCS locales is required.*
> > >
> > > I am not sure if this is a Linux issue or if it is a SunStudio issue.
> >  Has
> > > anybody tried to compile R on Linux using SunStudio?
> > >
> > > Thanks in advance,
> > >
> > > Russ
> > >
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}



More information about the R-devel mailing list