Gaussian 03 compilation PGI 8.04

Hi,

I tried to compile Gaussian 03 with the newest version of PGI. unfortunatelly during the compilation I got a lot of errors. I use Ubuntu 9.04. Could you help me with that.

cc -g -mp -o linda-dummy linda-dummy.o
util.a bsd/libf77blas-ia32.a bsd/libatlas-ia32.a /opt/pgi/linux86/8.0/lib/libpgftnrtl.a /opt/pgi/linux86/8.0/lib/libpgc.a /opt/pgi/linux86/8.0/lib/libpgmp.a /opt/pgi/linux86/8.0/lib/libpgc.a -lpthread -lm -lc
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_lcpu3': barrier.c:(.text+0x35): multiple definition of _mp_lcpu3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:21: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_lcpu2': barrier.c:(.text+0x9e): multiple definition of _mp_lcpu2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:31: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus2': barrier.c:(.text+0xd6): multiple definition of _mp_ncpus2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:41: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus3': barrier.c:(.text+0x10a): multiple definition of _mp_ncpus3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:51: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_init': barrier.c:(.text+0x1111): multiple definition of _mp_init’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:123: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus3p': barrier.c:(.text+0x11c): multiple definition of _mp_ncpus3p’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:62: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_tcpus_max': barrier.c:(.text+0x126): multiple definition of _mp_get_tcpus_max’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:70: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_tcpus': barrier.c:(.text+0x13d): multiple definition of _mp_get_tcpus’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:78: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_par': barrier.c:(.text+0x154): multiple definition of _mp_get_par’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:86: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_par3': barrier.c:(.text+0x15e): multiple definition of _mp_get_par3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:177: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_parpar': barrier.c:(.text+0x191): multiple definition of _mp_get_parpar’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:94: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_stackz': barrier.c:(.text+0x224): multiple definition of _mp_get_stackz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:130: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_schedule': barrier.c:(.text+0x26f): multiple definition of _mp_get_schedule’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:100: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_barrier': barrier.c:(.text+0x292): multiple definition of _mp_barrier’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:109: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_barrier2': barrier.c:(.text+0xa63): multiple definition of _mp_barrier2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:116: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_set_stackz': barrier.c:(.text+0xad9): multiple definition of _mp_set_stackz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:138: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_nestlvl': barrier.c:(.text+0x11e6): multiple definition of _mp_get_nestlvl’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:145: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_actnestlvl': barrier.c:(.text+0x1213): multiple definition of _mp_get_actnestlvl’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:153: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_teamsz': barrier.c:(.text+0x1237): multiple definition of _mp_get_teamsz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:161: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_anthrdnum': barrier.c:(.text+0x1284): multiple definition of _mp_get_anthrdnum’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:169: first defined here
/opt/pgi/linux86/8.0/lib/libpgftnrtl.a(async.o): In function Fio_asy_read': /proj/pgrel/extract/x86/8.0/rte/pgftn/x86/lib-linux86/../../port/fio/src/async.c:181: undefined reference to aio_read’
/opt/pgi/linux86/8.0/lib/libpgftnrtl.a(async.o): In function Fio_asy_write': /proj/pgrel/extract/x86/8.0/rte/pgftn/x86/lib-linux86/../../port/fio/src/async.c:211: undefined reference to aio_write’
/opt/pgi/linux86/8.0/lib/libpgftnrtl.a(async.o): In function asy_wait': /proj/pgrel/extract/x86/8.0/rte/pgftn/x86/lib-linux86/../../port/fio/src/async.c:69: undefined reference to aio_suspend’
/proj/pgrel/extract/x86/8.0/rte/pgftn/x86/lib-linux86/…/…/port/fio/src/async.c:76: undefined reference to aio_return' /proj/pgrel/extract/x86/8.0/rte/pgftn/x86/lib-linux86/../../port/fio/src/async.c:76: undefined reference to aio_error’
/opt/pgi/linux86/8.0/lib/libpgmp.a(setaff.o): In function _mp_setaff': /proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/../src-mp/setaff.c:75: undefined reference to mp_setaffinity’
/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/…/src-mp/setaff.c:77: undefined reference to numa_available' /proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/../src-mp/setaff.c:81: undefined reference to numa_max_node’
/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/…/src-mp/setaff.c:83: undefined reference to numa_set_preferred' /opt/pgi/linux86/8.0/lib/libpgmp.a(setaff.o): In function __pgi_nnodes’:
/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/…/src-mp/setaff.c:94: undefined reference to numa_available' /proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/../src-mp/setaff.c:95: undefined reference to numa_max_node’
/opt/pgi/linux86/8.0/lib/libpgmp.a(setaff.o): In function _mp_malloc_local': /proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/../src-mp/setaff.c:107: undefined reference to numa_available’
/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/…/src-mp/setaff.c:108: undefined reference to `numa_alloc_local’
collect2: ld returned 1 exit status
make: *** [linda-dummy] Error 1

Thanks in advance

Michal

Hi Michal,

Please contact Gaussian for a list of supported OS and compiler versions. They only support a limited number of OS and I don’t believe Ubuntu is supported. See: http://www.gaussian.com/g03_plat.htm.

  • Mat

I tried also with version 7.07. I had similar errors. Version that was approved by Gaussian - 6.1 didn’t work on my system. I read that I need some patch to install PGI 6.1, but is unavailable now.

I added -lrt and /opt/pgi/linux86/8.0/lib/nonuma.o but I have still some “Multiple definition” errors and one “undefined reference”.
Does anybody know how to fix it?

cc -g -mp -o linda-dummy linda-dummy.o
util.a bsd/libf77blas-ia32.a bsd/libatlas-ia32.a /opt/pgi/linux86/8.0/lib/libpgftnrtl.a /opt/pgi/linux86/8.0/lib/libpgc.a /opt/pgi/linux86/8.0/lib/libpgmp.a /opt/pgi/linux86/8.0/lib/libpgc.a /opt/pgi/linux86/8.0/lib/nonuma.o -lpthread -lm -lc -lrt
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_lcpu3': barrier.c:(.text+0x35): multiple definition of _mp_lcpu3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:21: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_lcpu2': barrier.c:(.text+0x9e): multiple definition of _mp_lcpu2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:31: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus2': barrier.c:(.text+0xd6): multiple definition of _mp_ncpus2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:41: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus3': barrier.c:(.text+0x10a): multiple definition of _mp_ncpus3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:51: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_init': barrier.c:(.text+0x1111): multiple definition of _mp_init’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:123: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_ncpus3p': barrier.c:(.text+0x11c): multiple definition of _mp_ncpus3p’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:62: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_tcpus_max': barrier.c:(.text+0x126): multiple definition of _mp_get_tcpus_max’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:70: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_tcpus': barrier.c:(.text+0x13d): multiple definition of _mp_get_tcpus’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:78: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_par': barrier.c:(.text+0x154): multiple definition of _mp_get_par’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:86: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_par3': barrier.c:(.text+0x15e): multiple definition of _mp_get_par3’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:177: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_parpar': barrier.c:(.text+0x191): multiple definition of _mp_get_parpar’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:94: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_stackz': barrier.c:(.text+0x224): multiple definition of _mp_get_stackz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:130: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_schedule': barrier.c:(.text+0x26f): multiple definition of _mp_get_schedule’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:100: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_barrier': barrier.c:(.text+0x292): multiple definition of _mp_barrier’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:109: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_barrier2': barrier.c:(.text+0xa63): multiple definition of _mp_barrier2’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:116: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_set_stackz': barrier.c:(.text+0xad9): multiple definition of _mp_set_stackz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:138: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_nestlvl': barrier.c:(.text+0x11e6): multiple definition of _mp_get_nestlvl’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:145: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_actnestlvl': barrier.c:(.text+0x1213): multiple definition of _mp_get_actnestlvl’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:153: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_teamsz': barrier.c:(.text+0x1237): multiple definition of _mp_get_teamsz’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:161: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(barrier.o): In function _mp_get_anthrdnum': barrier.c:(.text+0x1284): multiple definition of _mp_get_anthrdnum’
/opt/pgi/linux86/8.0/lib/libpgc.a(barrier_ser.o):/proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86-g232/…/…/port/src-mp/barrier_ser.c:169: first defined here
/opt/pgi/linux86/8.0/lib/libpgmp.a(setaff.o): In function _mp_setaff': /proj/pgrel/extract/x86/8.0/rte/pgc/x86/lib-linux86/../src-mp/setaff.c:75: undefined reference to mp_setaffinity’
collect2: ld returned 1 exit status
make: *** [linda-dummy] Error 1

I had the similar problem with pgi-7.1 on SUSE 10.3 or higher including 10.3 and 11.1. I don’t really know what’s the problem.

Hi xl5,

I don’t really know what the problem is either, but I would guess that the PGI runtime libraries were added to one of the Gaussian libraries using the “–whole-archive” flag. Try removing the PGI libraries from the link line (at least libpgmp.a). You can also try adding “-Wl,–allow-multiple-definition” which will tell the linker to ignore the second definition.

It this doesn’t help, please contact Gaussian.

Thanks,
Mat

Hi, mkcolg,
the suggestion you made works. Here I summarize what I did:
(1) go to bsd/gdv.make in the gaussian directory. find the line containing linda-dummy:, remove $(PGILIBS) from the line.
(2) add -Mnomain in the same line