I went to try to reproduce the problem Larry Baker reported w/ the PGI
10.3 compilers and undefined references in libopen-pal.so when linking
opal_wrapper. Instead I encountered a different error that does not (as
best I can tell) correspond to any of the issues Larry has reported
recently. Once I disable the error-inducing VT code, I am unable to
reproduce Larry's problem with the 10.3, 10.5 or 10.8 PGI compilers.
My system and the errors:
$ cat /etc/redhat-release
Scientific Linux SL release 5.4 (Boron)
$ uname -a
Linux cvrsvc01 2.6.18-164.9.1.el5c-perf #1 SMP Wed Jun 9 14:40:25 PDT
2010 x86_64 x86_64 x86_64 GNU/Linux
$ /lib64/libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-44).
Compiled on a Linux 2.6.9 system on 2009-09-02.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
GNU libio by Per Bothner
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
$ pgcc -V
pgcc 10.5-0 64-bit target on x86-64 Linux -tp nehalem-64
Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
Copyright 2000-2010, STMicroelectronics, Inc. All Rights Reserved.
$ [path_to]/openmpi-1.5rc5/configure CC=pgcc CXX=pgCC F77=pgf77 FC=pgf90
[...]
$ make
[...]
make[9]: Entering directory
`/global/scratch/sd/hargrove/ompi-1.5rc5-pgi-10.5/ompi/contrib/vt/vt/extlib/otf/tools/otfprofile'
CXX otfprofile-otfprofile.o
"/global/common/carver/usg/pgi/10.5/linux86-64/10.5/include/omp.h", line
41: error:
expected an identifier
extern int omp_get_thread_num(void);
^
"/global/common/carver/usg/pgi/10.5/linux86-64/10.5/include/omp.h", line
43: error:
expected an identifier
extern int omp_get_num_threads(void);
^
"../../../../../../../../../openmpi-1.5rc5/ompi/contrib/vt/vt/extlib/otf/tools/otfprofile/otfprofile.cpp",
line 572: error:
this kind of pragma may not be used here
# pragma omp barrier
^
"../../../../../../../../../openmpi-1.5rc5/ompi/contrib/vt/vt/extlib/otf/tools/otfprofile/otfprofile.cpp",
line 607: error:
this kind of pragma may not be used here
# pragma omp barrier
^
"../../../../../../../../../openmpi-1.5rc5/ompi/contrib/vt/vt/extlib/otf/tools/otfprofile/otfprofile.cpp",
line 648: error:
this kind of pragma may not be used here
# pragma omp barrier
^
5 errors detected in the compilation of
"../../../../../../../../../openmpi-1.5rc5/ompi/contrib/vt/vt/extlib/otf/tools/otfprofile/otfprofile.cpp".
[...]
It appears that the source file in question ALREADY contains a
work-around for this issue:
/* Disable OpenMP if the PGI compiler is used to work around the
following errors:
compiler version compiler error
< 9.0-3 PGCC-S-0000-Internal compiler error. calc_dw_tag:no tag
(see Technical Problem Report 4337 at
http://www.pgroup.com/support/release_tprs_90.htm)
10.1 - 10.6 this kind of pragma may not be used here
#pargma omp barrier
*/
#if defined(_OPENMP) && defined(__PGI)
# undef _OPENMP
#endif
#ifdef _OPENMP
# include <omp.h>
#else
# define omp_get_thread_num() 0
# define omp_get_num_threads() 1
#endif
However, it appears that the C++ STL headers (included via Summary.h)
are indirectly including omp.h, leading to this failure: the "expected
an identifier" due to the two #defines in the work-around, and the "this
kind of pragma..." errors due to the original issue resurfacing.
I have reproduced this problem with PGI versions 10.3, 10.5 and 10.8.
If I configure with --disable-vt then I (obviously) don't encounter this
error. In that case I am able to complete the build of 1.5rc5 with no
errors. This means an INABILITY to reproduce Larry's undefined
references problem.
-Paul
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900