Full_Name: Uwe F. Mayer
Version: 2.9.1
OS: SunOS myhost 5.10 Generic_120012-14 i86pc i386 i86pc Solaris
Submission from: (NULL) (216.113.168.130)
With the change of the NLS handling from 2.9.0 to 2.9.1 the compilation breaks,
even as I do specifically not request nls.
Specifics:
gcc -v
Using built-in specs.
Target: x86_64-pc-solaris2.10
Configured with: ../../src/gcc-4.4.0/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/gcc-4.4.0
--with-gmp=/usr/local/opt/x86_64-pc-solaris2.10
--with-mpfr=/usr/local/opt/x86_64-pc-solaris2.10 --disable-nls
--enable-languages=c,c++,fortran -with-gnu-as --without-gnu-ld
--with-ld=/usr/ccs/bin/ld --with-as=/usr/sfw/bin/gas CC='gcc -m64' CXX='g++
-m64' CFLAGS='-m64 -g -O2' CXXFLAGS='-m64 -g -O2' LDFLAGS=-m64
Thread model: posix
gcc version 4.4.0 (GCC)
R version: 2.9.1 (2009-06-29)
R configuration
../../src/R-2.9.1/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1
--exec-prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --disable-nls
--without-recommended-packages --with-readline --with-gnu-ld CC="gcc -m64
-I/usr/local/opt/x86_64-pc-solaris2.10/include
-L/usr/local/opt/x86_64-pc-solaris2.10/lib" F77="gfortran -m64" CXX="g++ -m64"
FC="gfortran -m64" LIBnn=lib64 LD=/usr/local/opt/x86_64-pc-solaris2.10/bin/ld
The last compilation step throwing the error:
gcc -m64 -I/usr/local/opt/x86_64-pc-solaris2.10/include
-L/usr/local/opt/x86_64-pc-solaris2.10/lib -std=gnu99 -I. -I../../src/include
-I../../../../src/R-2.9.1/src/include -I/usr/openwin/include
-I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c
../../../../src/R-2.9.1/src/unix/system.c -o system.o
In file included from /usr/include/locale.h:50,
from ../../../../src/R-2.9.1/src/unix/system.c:36:
/usr/include/libintl.h:62: error: expected identifier or '(' before 'unsigned'
The contents of /usr/include/libintl.h, line62:
extern char *ngettext(const char *, const char *, unsigned long int);
The same error happens to several other files (datetime.c, main.c, platform.c
util.c), all of which with the exception of the last one have not even changed
since 2.9.0. I compiled 2.9.0. in a parallel tree, copied the corresponding .o
files over, and got the resulting version to run.
R compilation problem on 64 bit SunOS (PR#13898)
5 messages · uwe_f_mayer at yahoo.com, Peter Dalgaard, Brian Ripley +1 more
You are reporting a Solaris error to R-bugs. If the Solaris libintl.h is broken (and it seems yours is), then you need to try one that works (e.g. OpenCSW) or force the use of the one in the R sources by --with-included-gettext use the GNU gettext library included here or dlsable NLS (see below). Please don't use R-bugs for things that are not R problems.
On Fri, 21 Aug 2009, uwe_f_mayer at yahoo.com wrote:
Full_Name: Uwe F. Mayer Version: 2.9.1 OS: SunOS myhost 5.10 Generic_120012-14 i86pc i386 i86pc Solaris Submission from: (NULL) (216.113.168.130) With the change of the NLS handling from 2.9.0 to 2.9.1 the compilation breaks, even as I do specifically not request nls.
In fact you did not specifically not request nls: use the flag from the gcc specs below to do so (as someone did for gcc).
Specifics:
gcc -v
Using built-in specs.
Target: x86_64-pc-solaris2.10
Configured with: ../../src/gcc-4.4.0/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/gcc-4.4.0
--with-gmp=/usr/local/opt/x86_64-pc-solaris2.10
--with-mpfr=/usr/local/opt/x86_64-pc-solaris2.10 --disable-nls
--enable-languages=c,c++,fortran -with-gnu-as --without-gnu-ld
--with-ld=/usr/ccs/bin/ld --with-as=/usr/sfw/bin/gas CC='gcc -m64' CXX='g++
-m64' CFLAGS='-m64 -g -O2' CXXFLAGS='-m64 -g -O2' LDFLAGS=-m64
Thread model: posix
gcc version 4.4.0 (GCC)
R version: 2.9.1 (2009-06-29)
R configuration
../../src/R-2.9.1/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1
--exec-prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --disable-nls
--without-recommended-packages --with-readline --with-gnu-ld CC="gcc -m64
-I/usr/local/opt/x86_64-pc-solaris2.10/include
-L/usr/local/opt/x86_64-pc-solaris2.10/lib" F77="gfortran -m64" CXX="g++ -m64"
FC="gfortran -m64" LIBnn=lib64 LD=/usr/local/opt/x86_64-pc-solaris2.10/bin/ld
The last compilation step throwing the error:
gcc -m64 -I/usr/local/opt/x86_64-pc-solaris2.10/include
-L/usr/local/opt/x86_64-pc-solaris2.10/lib -std=gnu99 -I. -I../../src/include
-I../../../../src/R-2.9.1/src/include -I/usr/openwin/include
-I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c
../../../../src/R-2.9.1/src/unix/system.c -o system.o
In file included from /usr/include/locale.h:50,
from ../../../../src/R-2.9.1/src/unix/system.c:36:
/usr/include/libintl.h:62: error: expected identifier or '(' before 'unsigned'
The contents of /usr/include/libintl.h, line62:
extern char *ngettext(const char *, const char *, unsigned long int);
The same error happens to several other files (datetime.c, main.c, platform.c
util.c), all of which with the exception of the last one have not even changed
since 2.9.0. I compiled 2.9.0. in a parallel tree, copied the corresponding .o
files over, and got the resulting version to run.
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Prof Brian Ripley wrote:
[snip]
In fact you did not specifically not request nls: use the flag from the gcc specs below to do so (as someone did for gcc).
Brian, I see --disable-nls in both places, so you may want to expand on that. (I could well be missing the point, but then I'd like to know what it was.)
Specifics: gcc -v Using built-in specs. Target: x86_64-pc-solaris2.10 Configured with: ../../src/gcc-4.4.0/configure --prefix=/usr/local/opt/x86_64-pc-solaris2.10/gcc-4.4.0 --with-gmp=/usr/local/opt/x86_64-pc-solaris2.10 --with-mpfr=/usr/local/opt/x86_64-pc-solaris2.10 --disable-nls --enable-languages=c,c++,fortran -with-gnu-as --without-gnu-ld --with-ld=/usr/ccs/bin/ld --with-as=/usr/sfw/bin/gas CC='gcc -m64' CXX='g++ -m64' CFLAGS='-m64 -g -O2' CXXFLAGS='-m64 -g -O2' LDFLAGS=-m64 Thread model: posix gcc version 4.4.0 (GCC) R version: 2.9.1 (2009-06-29) R configuration ../../src/R-2.9.1/configure --prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --exec-prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --disable-nls --without-recommended-packages --with-readline --with-gnu-ld CC="gcc -m64 -I/usr/local/opt/x86_64-pc-solaris2.10/include -L/usr/local/opt/x86_64-pc-solaris2.10/lib" F77="gfortran -m64" CXX="g++ -m64" FC="gfortran -m64" LIBnn=lib64 LD=/usr/local/opt/x86_64-pc-solaris2.10/bin/ld
[snip]
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
On Fri, 21 Aug 2009, Peter Dalgaard wrote:
Prof Brian Ripley wrote: [snip]
In fact you did not specifically not request nls: use the flag from the gcc specs below to do so (as someone did for gcc).
Brian, I see --disable-nls in both places, so you may want to expand on that. (I could well be missing the point, but then I'd like to know what it was.)
The include of libintl.h is inside ENABLE_NLS, and when I tried with --disable-nls it was not included. So I cannot reproduce this if that option was actually used. The point is that Solaris' libintl.h is incompatible with the GNU one.
Specifics: gcc -v Using built-in specs. Target: x86_64-pc-solaris2.10 Configured with: ../../src/gcc-4.4.0/configure --prefix=/usr/local/opt/x86_64-pc-solaris2.10/gcc-4.4.0 --with-gmp=/usr/local/opt/x86_64-pc-solaris2.10 --with-mpfr=/usr/local/opt/x86_64-pc-solaris2.10 --disable-nls --enable-languages=c,c++,fortran -with-gnu-as --without-gnu-ld --with-ld=/usr/ccs/bin/ld --with-as=/usr/sfw/bin/gas CC='gcc -m64' CXX='g++ -m64' CFLAGS='-m64 -g -O2' CXXFLAGS='-m64 -g -O2' LDFLAGS=-m64 Thread model: posix gcc version 4.4.0 (GCC) R version: 2.9.1 (2009-06-29) R configuration ../../src/R-2.9.1/configure --prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --exec-prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --disable-nls --without-recommended-packages --with-readline --with-gnu-ld CC="gcc -m64 -I/usr/local/opt/x86_64-pc-solaris2.10/include -L/usr/local/opt/x86_64-pc-solaris2.10/lib" F77="gfortran -m64" CXX="g++ -m64" FC="gfortran -m64" LIBnn=lib64 LD=/usr/local/opt/x86_64-pc-solaris2.10/bin/ld
[snip] -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
A follow-up: I specified --disable-nls, but nevertheless locale.h is included, which then includes libintl.h. I also install the the GNU gettext package, but I am getting the same error message (obviously now at libintl.h from the GNU package at a different line count), so that did not fix it. As far as I can tell this is a configuration problem, since locale.h should not be included in the first place if --disable-nls is specified.
--- On Fri, 8/21/09, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
From: Prof Brian Ripley <ripley at stats.ox.ac.uk> Subject: Re: [Rd] R compilation problem on 64 bit SunOS (PR#13898) To: "Peter Dalgaard" <P.Dalgaard at biostat.ku.dk> Cc: uwe_f_mayer at yahoo.com, R-bugs at r-project.org, r-devel at stat.math.ethz.ch Date: Friday, August 21, 2009, 1:54 AM On Fri, 21 Aug 2009, Peter Dalgaard wrote:
Prof Brian Ripley wrote: [snip]
In fact you did not specifically not request nls:
use the flag from the
gcc specs below to do so (as someone did for
gcc).
Brian, I see --disable-nls in both places, so you may
want to expand on
that. (I could well be missing the point, but then I'd
like to know what
it was.)
The include of libintl.h is inside ENABLE_NLS, and when I tried with --disable-nls it was not included.? So I cannot reproduce this if that option was actually used. The point is that Solaris' libintl.h is incompatible with the GNU one.
Specifics: gcc -v Using built-in specs. Target: x86_64-pc-solaris2.10 Configured with:
../../src/gcc-4.4.0/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/gcc-4.4.0
--with-gmp=/usr/local/opt/x86_64-pc-solaris2.10
--with-mpfr=/usr/local/opt/x86_64-pc-solaris2.10 --disable-nls
--enable-languages=c,c++,fortran -with-gnu-as
--without-gnu-ld
--with-ld=/usr/ccs/bin/ld
--with-as=/usr/sfw/bin/gas CC='gcc -m64'
CXX='g++ -m64' CFLAGS='-m64 -g -O2' CXXFLAGS='-m64 -g
-O2' LDFLAGS=-m64
Thread model: posix gcc version 4.4.0 (GCC) R version: 2.9.1 (2009-06-29) R configuration ../../src/R-2.9.1/configure
--prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1
--exec-prefix=/usr/local/opt/x86_64-pc-solaris2.10/R-2.9.1 --disable-nls
--without-recommended-packages --with-readline
--with-gnu-ld CC="gcc -m64
-I/usr/local/opt/x86_64-pc-solaris2.10/include
-L/usr/local/opt/x86_64-pc-solaris2.10/lib"
F77="gfortran -m64"
CXX="g++ -m64" FC="gfortran -m64" LIBnn=lib64
LD=/usr/local/opt/x86_64-pc-solaris2.10/bin/ld
[snip] -- ???O__? ---- Peter Dalgaard?
? ? ? ? ????ster Farimagsgade 5, Entr.B
? c/ /'_ --- Dept. of Biostatistics?
???PO Box 2099, 1014 Cph. K
(*) \(*) -- University of
Copenhagen???Denmark? ? ? Ph:? (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)?
? ? ? ? ? ? FAX: (+45) 35327907
-- Brian D. Ripley,? ? ? ? ? ? ? ? ? ripley at stats.ox.ac.uk Professor of Applied Statistics,? http://www.stats.ox.ac.uk/~ripley/ University of Oxford,? ? ? ? ? ???Tel:? +44 1865 272861 (self) 1 South Parks Road,? ? ? ? ? ? ? ? ? ???+44 1865 272866 (PA) Oxford OX1 3TG, UK? ? ? ? ? ? ? ? Fax:? +44 1865 272595