[Rd] 64-bit R build with Studio 12 on Sparc v9
Simon Urbanek
simon.urbanek at r-project.org
Fri Dec 21 18:07:28 CET 2007
On Dec 20, 2007, at 6:45 PM, Louisell, Paul wrote:
> I'm working on a server with a sparcv9 chip using SunOS 5.9 Generic
> May 2002. The compilers are the Sun Studio 12 compilers. I'm trying
> to build a 64-bit version of R-2.6.1, and while the configure script
> runs, the make does not.
>
Paul,
I don't know if that helps, but incidentally I have compiled R
successfully with spro12 for a v9 machine just yesterday and all you
need is in the R-admin manual. For completeness these were the (main)
flags:
'CXX=CC -m64'
'LDFLAGS=-L/opt/SUNWspro/lib/v9'
'CC=cc -xc99 -m64'
'CFLAGS=-O -xlibmieee -xarch=sparcvis'
'F77=f95 -m64' 'FFLAGS=-O4 -xarch=sparcvis'
'CXXFLAGS=-O -m64 -xarch=sparcvis'
'FC=f95 -m64'
'FCFLAGS=-O4 -xarch=sparcvis -libmil'
'SHLIB_CXXLDFLAGS=-G -lCstd'
'SHLIB_LDFLAGS=-shared'
'CPICFLAGS=-Kpic' 'FPICFLAGS=-KPIC' 'CXXPICFLAGS=-Kpic' 'FCPICFLAGS=-
KPIC'
Cheers,
Simon
PS: My tests so far show that R compiled with gcc 4.2.2 is faster than
R compiled with the Sun's compilers, so I ended up using gcc instead
as it's less painful and faster.
> Here are the options I set in config.site:
> ________________________________________________________________________
> _
>
> R_PAPERSIZE=letter
> CC="cc -m64"
> CFLAGS="-xO5 -xlibmil -xmemalign=8s"
> F77="f95 -m64"
> FFLAGS="-xO5 -xlibmil -xmemalign=8s"
> LDFLAGS="-L/opt/SUNWspro/lib/v9 -L/usr/local/lib"
> CXX="CC -m64"
> CXXFLAGS="-xO5 -xlibmil -xmemalign=8s"
> FC="f95 -m64"
> FCFLAGS="-xO5 -xlibmil -xmemalign=8s"
> ________________________________________________________________________
> __
>
> Here's the command invoking configure:
> ________________________________________________________________________
> __
>
> ./configure --with-blas --with-lapack --enable-BLAS-shlib
> ________________________________________________________________________
> __
>
> And here are the last several lines of the screen output from running
> the configure script:
> ________________________________________________________________________
> __
>
> R is now configured for sparc-sun-solaris2.9
>
> Source directory: .
> Installation directory: /usr/local
>
> C compiler: cc -m64 -xO5 -xlibmil -xmemalign=8s
> Fortran 77 compiler: f95 -m64 -xO5 -xlibmil -xmemalign=8s
>
> C++ compiler: CC -m64 -xO5 -xlibmil -xmemalign=8s
> Fortran 90/95 compiler: f95 -m64 -xO5 -xlibmil -xmemalign=8s
> Obj-C compiler: cc
>
> Interfaces supported: X11
> External libraries: readline, BLAS(SunPerf)
> Additional capabilities: iconv, MBCS, NLS
> Options enabled: shared BLAS, R profiling, Java
>
> Recommended packages: yes
>
> configure: WARNING: you cannot build the object documentation system
> configure: WARNING: you cannot build DVI versions of the R manuals
> configure: WARNING: you cannot build info or HTML versions of the R
> manuals
> configure: WARNING: you cannot build PDF versions of the R manuals
> ________________________________________________________________________
> ____
>
> I'm not concerned about not being able to build the manuals. Here are
> the last several lines of the screen output from running make:
> ________________________________________________________________________
> ____
>
> making pcre_chartables.d from pcre_chartables.c
> "./pcre_internal.h", line 168: Illegal number 4294967295U
> *** Error code 2
> make: Fatal error: Command failed for target `pcre_chartables.d'
> Current working directory
> /export/home/ploua/R_HOME/R-2.6.1/src/extra/pcre
> *** Error code 1
> make: Fatal error: Command failed for target `R'
> Current working directory
> /export/home/ploua/R_HOME/R-2.6.1/src/extra/pcre
> *** Error code 1
> make: Fatal error: Command failed for target `R'
> Current working directory /export/home/ploua/R_HOME/R-2.6.1/src/extra
> *** Error code 1
> make: Fatal error: Command failed for target `R'
> Current working directory /export/home/ploua/R_HOME/R-2.6.1/src
> *** Error code 1
> make: Fatal error: Command failed for target `R'
> ________________________________________________________________________
> ____
>
> It seems that the C compiler is having a hard time reading standard C
> constants. Some further (hopefully relevant) background: Here is an
> excerpt from the Studio 12 C User's Guide:
> ________________________________________________________________________
> ____
>
> If you do not specify -xc99, the compiler defaults to -
> xc99=all,no_lib.
> If you specify -xc99
> without any values, the option is set to-xc99=all.
> Note - Though the compiler support-level defaults to the language
> features of the C99 standard,
> the standard headers provided by the Solaris 8 and Solaris 9 operating
> systems in /usr/include
> do not conform with the 1999 ISO/IEC C standard. If you encounter
> error
> messages, try
> specifying -xc99=none to obtain the 1990 ISO/IEC C standard behavior
> for
> these headers.
> The 1999 C standard library semantics of routines that appeared in
> both
> the 1990 and 1999 C
> standard are not available and therefore cannot be enabled on
> Solaris 8
> and Solaris 9 software.
> The compiler issues an error message when you specify -xc99=lib
> directly
> or indirectly on
> Solaris 8 or Solaris 9 software.
> ________________________________________________________________________
> ____
>
> I've tried adding the option '-xc99=none' to the C flags shown from
> config.site above, but I get the same error on running make. When I
> specify only '-xc99', I get an error telling me the library is
> unavailable on Solaris 9--the User's Guide is telling the truth above.
>
> I've also tried modifying 'pcre_internal.h' by commenting out the
> lines
> where it's trying to determine the type for 32-bit unsigned integers
> and
> instead hard-coding things with
>
> typedef unsigned int pcre_uint32;
>
> When I do this, I get the same error but originating in a different
> file. I'm not a C programmer so I can't be certain what I've attempted
> is reasonable (although I have received some guidance from people who
> are C programmers). Is my only option to go through and find all
> instances of '4294967295' in source files and hard-code things as I
> did
> above for 'pcre_internal.h'?
>
> In the R Installation and Admin manual on page 42, it says, "However,
> our tests were none too successful: Sparc 64-bit builds crashed." Here
> they were referring to Solaris 10. I noticed that Brian Ripley
> produced
> a successful build using Studio 12, but on x86_64 Linux. The
> references
> to Solaris 9 used the Sun Forte 7 compilers.
>
> My ultimate question: Does anyone know how to successfully build a
> 64-bit target for R-2.6.1 using Studio 12 on a system with my
> architecture? If not using Studio 12, how about Studio 11?
>
> Thanks in advance for any help,
>
>
>
> Paul Louisell
> 650-833-6254
> ploua at allstate.com
> Associate Predictive Modeler (Statistician)
> Modeling & Data Analytics
> ARPC
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
More information about the R-devel
mailing list