From lai at lindaspaces.com  Wed Aug 24 18:17:43 2005
From: lai at lindaspaces.com (Jennifer Lai)
Date: Wed, 24 Aug 2005 12:17:43 -0400
Subject: [Rd] compile R with Portland Group compiler
In-Reply-To: <Pine.LNX.4.61.0508232211550.21594@gannet.stats>
References: <430B63FB.1000908@lindaspaces.com>
	<Pine.LNX.4.61.0508232211550.21594@gannet.stats>
Message-ID: <430C9DA7.5020809@lindaspaces.com>

I downloaded R-devel and compiled it with pgcc. This time, instead of 
breaking in src/main, compilation breaks in src/modules with the 
following error messages.

Copyright 1989-2000, The Portland Group, Inc.  All Rights Reserved.
Copyright 2000-2005, STMicroelectronics, Inc.  All Rights Reserved.
/usr/pgi/linux86-64/6.0/bin/pgcc -shared  -L/usr/pgi/linux86-64/6.0/lib 
-L/usr/lib64 -o R_X11.so  dataentry.lo devX11.lo rotated.lo rbitmap.lo  
-lSM -lICE -L/usr/X11R6/lib64 -lX11  -ljpeg -lpng -lz
File with unknown suffix passed to linker: dataentry.lo
File with unknown suffix passed to linker: devX11.lo
File with unknown suffix passed to linker: rotated.lo
File with unknown suffix passed to linker: rbitmap.lo
/usr/bin/ld: /usr/pgi/linux86-64/6.0/lib/libpgc.a(fastmath.o): 
relocation R_X86_64_PC32 against `__fvdlog' can not be used when making 
a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
make[4]: *** [R_X11.so] Error 2
make[4]: Leaving directory `/home/cuser/R-devel/src/modules/X11'
make[3]: *** [R] Error 2
make[3]: Leaving directory `/home/cuser/R-devel/src/modules/X11'
make[2]: *** [R] Error 1
make[2]: Leaving directory `/home/cuser/R-devel/src/modules'
make[1]: *** [R] Error 1
make[1]: Leaving directory `/home/cuser/R-devel/src'
make: *** [R] Error 1

Though src/main directory compiled successfully, I do still get warning 
messages from src/main/regex.c compilation.
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-0155-Long value is passed to a nonprototyped function - argument 
#5 (regex.c: 3288)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4464)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4591)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4635)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4737)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4792)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#4 (regex.c: 4793)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4861)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4904)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 4954)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#4 (regex.c: 4961)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5057)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5581)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5596)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5628)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5641)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5669)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 5858)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 6230)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#6 (regex.c: 7035)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 7803)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#2 (regex.c: 7814)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#3 (regex.c: 7826)
PGC-W-0155-Long value is passed to a nonprototyped function - argument 
#7 (regex.c: 10722)
PGC/x86-64 Linux/x86-64 6.0-5: compilation completed with warnings


One last thing that I notice is the errors messages in config.log. 
Should I consult these error messages with Portland Group, or R-devel 
can help me out on this?

Copyright 1989-2000, The Portland Group, Inc.  All Rights Reserved.
Copyright 2000-2005, STMicroelectronics, Inc.  All Rights Reserved.
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:4222: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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;
| }

PGC-S-0035-Syntax error: Recovery attempted by replacing identifier me 
by ';' (conftest.c: 2)
PGC-W-0057-Old-style declaration used; int assumed (conftest.c: 2)
PGC/x86-64 Linux/x86-64 6.0-5: compilation completed with severe errors
configure:4453: $? = 2
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif

PGFTN-S-0034-Syntax error at or near end of line (conftest.F: 3)
  0 inform,   0 warnings,   1 severes, 0 fatal for main
PGFTN/x86-64 Linux/x86-64 6.0-5: compilation completed with severe errors
configure:5400: $? = 2
configure: failed program was:
|       program main
| #ifndef __GNUC__
|        choke me
| #endif
|
|       end

configure:5665: /usr/pgi/linux86-64/6.0/bin/pgCC -c  
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
"conftest.cc", line 21: error: identifier "choke" is undefined
         choke me
         ^

"conftest.cc", line 21: warning: variable "me" was declared but never
          referenced
         choke me
               ^

1 error detected in the compilation of "conftest.cc".
configure:5671: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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:5841: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
"conftest.cc", line 20: error: identifier "exit" is undefined
  exit (42);
  ^

1 error detected in the compilation of "conftest.cc".
configure:5847: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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 ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:5796: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
"conftest.cc", line 16: error: namespace "std" has no member "exit"
  extern "C" void std::exit (int) throw (); using std::exit;
                       ^

"conftest.cc", line 16: error: namespace "std" has no member "exit"
  extern "C" void std::exit (int) throw (); using std::exit;
                                                       ^

2 errors detected in the compilation of "conftest.cc".
configure:5802: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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.  */
| extern "C" void std::exit (int) throw (); using std::exit;
| #include <stdlib.h>
| int
| main ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:5796: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
"conftest.cc", line 16: error: namespace "std" has no member "exit"
  extern "C" void std::exit (int); using std::exit;
                       ^

"conftest.cc", line 16: error: namespace "std" has no member "exit"
  extern "C" void std::exit (int); using std::exit;
                                              ^

2 errors detected in the compilation of "conftest.cc".
configure:5802: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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.  */
| extern "C" void std::exit (int); using std::exit;
| #include <stdlib.h>
| int
| main ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:5796: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
"/usr/include/stdlib.h", line 640: error: omission of exception 
specification
          is incompatible with previous function "exit" (declared at line 16
          of "conftest.cc")
  extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
                                                                        ^

1 error detected in the compilation of "conftest.cc".
configure:5802: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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.  */
| extern "C" void exit (int) throw ();
| #include <stdlib.h>
| int
| main ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:5796: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
NOTE: your evaluation license will expire in 14 days, 5.7 hours.
For a permanent license, please read the order acknowledgement
that you received.  Connect to https://www.pgroup.com/License with
the username and password in the order acknowledgement.

    Name:    lai
    User:    lai
    Email:    lai at lindaspaces.com
    Hostid:    PGI=00001AE0193111621CB217
configure:5802: $? = 0
configure:5806: test -z
             || test ! -s conftest.err
configure:5809: $? = 0
configure:5812: test -s conftest.o
configure:5815: $? = 0
configure:5841: /usr/pgi/linux86-64/6.0/bin/pgCC -c -g 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc >&5
NOTE: your evaluation license will expire in 14 days, 5.7 hours.
For a permanent license, please read the order acknowledgement
that you received.  Connect to https://www.pgroup.com/License with
the username and password in the order acknowledgement.

    Name:    lai
    User:    lai
    Email:    lai at lindaspaces.com
    Hostid:    PGI=00001AE0193111621CB217
configure:5847: $? = 0
configure:5851: test -z
             || test ! -s conftest.err
configure:5854: $? = 0
configure:5857: test -s conftest.o
configure:5860: $? = 0
configure:5888: checking how to run the C++ preprocessor
configure:5919: /usr/pgi/linux86-64/6.0/bin/pgCC -E 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc
configure:5925: $? = 0
configure:5957: /usr/pgi/linux86-64/6.0/bin/pgCC -E 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc
"conftest.cc", line 19: catastrophic error: could not open source file
          "ac_nonexistent.h"
  #include <ac_nonexistent.h>
                             ^

1 catastrophic error detected in the compilation of "conftest.cc".
Compilation terminated.
configure:5963: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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
| #ifdef __cplusplus
| extern "C" void exit (int);
| #endif
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:6002: result: /usr/pgi/linux86-64/6.0/bin/pgCC -E
configure:6026: /usr/pgi/linux86-64/6.0/bin/pgCC -E 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc
configure:6032: $? = 0
configure:6064: /usr/pgi/linux86-64/6.0/bin/pgCC -E 
-I/usr/pgi/linux86-64/6.0/include -I/usr/pgi/linux86-64/6.0/include/CC 
conftest.cc
"conftest.cc", line 19: catastrophic error: could not open source file
          "ac_nonexistent.h"
  #include <ac_nonexistent.h>
                             ^

1 catastrophic error detected in the compilation of "conftest.cc".
Compilation terminated.
configure:6070: $? = 2
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "R"
| #define PACKAGE_TARNAME "R"
| #define PACKAGE_VERSION "2.2.0"
| #define PACKAGE_STRING "R 2.2.0"
| #define PACKAGE_BUGREPORT "r-bugs at R-project.org"
| #define PACKAGE "R"
| #define VERSION "2.2.0"
| #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
| #ifdef __cplusplus
| extern "C" void exit (int);
| #endif
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>


Thank you in advance for your help!

Sincerely,
Jennifer

Prof Brian Ripley wrote:

> 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.)
>
>
>



[Rd] compile R with Portland Group compiler
Jennifer Lai