[Rd] compile R with Portland Group compiler

Prof Brian Ripley
Tue, 23 Aug 2005 21:20:47 -0000

regex.c is not our code, but from glibc.  Could you please try R-devel
instead, which has a later version of glibc.  Since 2.1.1 is not longer
part of the developement, we cannot help with that, but we can help wih
R-devel.

I see the later regex.c does use prototypes.  But bitset is an integer
type, so that may be a compiler error.

(It is on my list to try Intel and PG compilers on AMD64 as we have
licences, but not very high priority.)

On Tue, 23 Aug 2005, Jennifer Lai wrote:

> Hi,
>    Can anyone advise me on how to compile R with Portland Group
> compiler on a Opeteron machine with Red Hat Enterprise Linux WS release
> 4 installed?
>
> I've edit config.site file to pick portland group compilers instead of
> gcc. Here is the list of modified flags:
> CC=/usr/pgi/linux86-64/6.0/bin/pgcc
> CFLAGS='-g -O2'
> CPPFLAGS='-I/usr/pgi/linux86-64/6.0/include
> -I/usr/pgi/linux86-64/6.0/include/CC'
> F77=/usr/pgi/linux86-64/6.0/bin/pgf77
> FLAGS='-O2'
> CPICFLAGS=-fPIC
> FPICFLAGS=-fPIC
> SHLIB_LDFLAGS=-shared
> LDFLAGS='-L/usr/pgi/linux86-64/6.0/lib -L/usr/lib64'
> CXX=/usr/pgi/linux86-64/6.0/bin/pgCC
> CXXPICFLAGS=-fPIC
> SHLIB_CXXLDFLAGS=-shared
>
>
> When I ran configure, I didn't get any error message, but config.log
> indicated there are errors,

That's fine: it is not GNU C so it should give an error.

> configure:4102: $? = 0
> configure:4124: result: o
> configure:4128: checking whether we are using the GNU C compiler
> configure:4152: /usr/pgi/linux86-64/6.0/bin/pgcc -c -g -O2
> -I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/C\
> C conftest.c >&5
> PGC-S-0040-Illegal use of symbol, choke (conftest.c: 21)
> PGC/x86-64 Linux/x86-64 6.0-5: compilation completed with severe errors
> configure:4158: $? = 2
> configure: failed program was:
> | /* confdefs.h.  */
> |
> | #define PACKAGE_NAME "R"
> | #define PACKAGE_TARNAME "R"
> | #define PACKAGE_VERSION "2.1.1"
> | #define PACKAGE_STRING "R 2.1.1"
> | #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
> | #define PACKAGE "R"
> | #define VERSION "2.1.1"
> | #define R_PLATFORM "x86_64-unknown-linux-gnu"
> | #define R_CPU "x86_64"
> | #define R_VENDOR "unknown"
> | #define R_OS "linux-gnu"
> | #define Unix 1
> | /* end confdefs.h.  */
> |
> | int
> | main ()
> | {
> | #ifndef __GNUC__
> |        choke me
> | #endif
> |
> |   ;
> |   return 0;
> | }
> configure:4184: result: no
> configure:4190: checking whether /usr/pgi/linux86-64/6.0/bin/pgcc accepts
-g
>
>
> If I ignored the config.log errors and went ahead to do make, I got the
> following errors,
> make[3]: Entering directory `/home/cuser/AMD_BENCH/R-2.1.1/src/main'
> /usr/pgi/linux86-64/6.0/bin/pgcc -I../../src/extra/zlib
> -I../../src/extra/bzip2 -I../../src/extra/pcre  -I. -I../../src/include
> -I../../src/include -I/usr/pgi/linux86-64/6.0/include
> -I/usr/pgi/linux86-64/6.0/include/CC -DHAVE_CONFIG_H   -g -O2 -c regex.c
> -o regex.o
> PGC-W-0155-64-bit integral value truncated  (/usr/include/wctype.h: 109)
> PGC-W-0155-64-bit integral value truncated  (/usr/include/wctype.h: 110)
> PGC-W-0155-64-bit integral value truncated  (/usr/include/wctype.h: 111)
> PGC-W-0155-64-bit integral value truncated  (/usr/include/wctype.h: 112)
> PGC-W-0084-Type of old-style argument src does not match type of
> prototype argument src (regex.c: 743)
> PGC-S-0043-Redefinition of symbol, bitset_merge (regex.c: 743)
> PGC-S-0100-Non-integral operand for mod, shift, or bitwise operator
> (regex.c: 746)
> PGC-W-0084-Type of old-style argument src does not match type of
> prototype argument src (regex.c: 753)
> PGC-S-0043-Redefinition of symbol, bitset_not_merge (regex.c: 753)
> PGC-S-0063-Operand of ~ must be an integer type (regex.c: 756)
> PGC-W-0084-Type of old-style argument src does not match type of
> prototype argument src (regex.c: 763)
> PGC-S-0043-Redefinition of symbol, bitset_mask (regex.c: 763)
> PGC-S-0100-Non-integral operand for mod, shift, or bitwise operator
> (regex.c: 766)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #5 (regex.c: 3152)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4261)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4383)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4427)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4529)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4585)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #4 (regex.c: 4586)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4648)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4701)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4766)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #4 (regex.c: 4773)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4846)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 4925)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5420)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5436)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5469)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5482)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5510)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 5695)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 6071)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #6 (regex.c: 6790)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 7483)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #2 (regex.c: 7494)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #3 (regex.c: 7502)
> PGC-W-0155-Long value is passed to a nonprototyped function - argument
> #7 (regex.c: 10317)
> PGC/x86-64 Linux/x86-64 6.0-5: compilation completed with severe errors
> make[3]: *** [regex.o] Error 2
> make[3]: Leaving directory `/home/cuser/AMD_BENCH/R-2.1.1/src/main'
> make[2]: *** [R] Error 2
>
>
> Any help is greatly appreciated.
>
> Thanks,
> Jennifer
>
> ______________________________________________
> 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