Electrostatics / apbs

Software for biomolecular electrostatics and solvation calculations
http://www.poissonboltzmann.org/
Other
94 stars 26 forks source link

Linking issues #55

Open dvdesolve opened 4 years ago

dvdesolve commented 4 years ago

Describe the bug 3.0.0 release can't be built because of linking issues. I'm getting the following errors:

[ 69%] Linking C shared library ../../lib/libapbs_pmgc.so
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x0): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x1a0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x330): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x338): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x340): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x348): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x350): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x358): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x360): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x368): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/gsd.c.o:(.bss+0x370): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x0): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x1a0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x330): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x338): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x340): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x348): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x350): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x358): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x360): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x368): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/matvecd.c.o:(.bss+0x370): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgdrvd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgsubd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x330): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x1a0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x0): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x370): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x368): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x360): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x358): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x350): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x348): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x340): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mypdec.c.o:(.bss+0x338): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newtond.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/newdrvd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/powerd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x0): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x1a0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x330): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x338): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x340): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x348): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x350): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x358): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x360): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x368): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/smoothd.c.o:(.bss+0x370): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x0): multiple definition of «cputme»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x8): multiple definition of «oh»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x10): multiple definition of «bf»; CMakeFiles/apbs_pmgc.dir/mgcsd.c.o:(.bss+0x10): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x20): multiple definition of «sconc»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x1c0): multiple definition of «charge»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x1a0): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x350): multiple definition of «nion»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x330): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x358): multiple definition of «relSize»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x338): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x360): multiple definition of «vol»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x340): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x368): multiple definition of «conc3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x348): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x370): multiple definition of «conc2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x350): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x378): multiple definition of «conc1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x358): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x380): multiple definition of «v3»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x360): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x388): multiple definition of «v2»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x368): first defined here
/usr/bin/ld: CMakeFiles/apbs_pmgc.dir/mgfasd.c.o:(.bss+0x390): multiple definition of «v1»; CMakeFiles/apbs_pmgc.dir/cgd.c.o:(.bss+0x370): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [src/pmgc/CMakeFiles/apbs_pmgc.dir/build.make:358: lib/libapbs_pmgc.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:1383: src/pmgc/CMakeFiles/apbs_pmgc.dir/all] Error 2
make: *** [Makefile:182: all] Error 2

To Reproduce Steps to reproduce the behavior:

  1. Download all necessary submodules
  2. Run CMake and make with:

    cmake \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_BUILD_TYPE=Release \
        -DENABLE_GEOFLOW=ON \
        -DENABLE_BEM=OFF \
        -DENABLE_FETK=ON \
        -DENABLE_OPENMP=ON \
        -DENABLE_PBAM=ON \
        -DENABLE_PBSAM=ON \
        -DENABLE_PYTHON=ON \
        -DENABLE_TESTS=OFF \
        -DBUILD_SHARED_LIBS=ON \
        -DBUILD_DOC=OFF \
        ..
    
    make
  3. See error

Expected behavior Clean and nice compilation

Desktop (please complete the following information):

sobolevnrm commented 4 years ago

Hello; thank you for reporting this. I'm adding @intendo for his help. Thank you.

intendo commented 4 years ago

@dvdesolve can you tell us:

Have you tried downloading the binaries at https://sourceforge.net/projects/apbs/files/apbs/apbs-3.0/APBS-3.0.0_Linux.zip/download to see if they will work on Arch Linux?

dvdesolve commented 4 years ago

GCC version is 10.1 and CMake is 3.18.1. Binary version actually can't be installed and run because it doesn't include full set of libraries needed for apbs to work. This is the main reason why I want to compile from source.

intendo commented 4 years ago

I have a similar problem with GCC 10.2. I had to go back to GCC 9.3 to get APBS to compile. APBS has several external source code projects. You may want to try turning all the options off in your CMake command. If that works, you can enable 1 of them and see if that works. That is how I eventually got all of them to compile. Some of the external git submodules don't work on systems like Windows 10 or MacOS. We are in the process of trying to update the APBS code base to use more Python and less of the external dependencies to simplify maintenance and improve overall quality.

dvdesolve commented 4 years ago

Actually it seems like the problem isn't compiler-related.

Each of source files:

Moreover the following files:

Files src/pmgc/cgd.c and/or src/pmgc/mgcsd.c also include offending headers so we have these linking errors.

One possible fix for that problem is:

--- src/pmgc/mgsubd.c   2020-08-17 22:19:58.337848512 +0300
+++ src/pmgc/mgsubd.c   2020-08-17 22:52:50.806919186 +0300
@@ -52,10 +52,12 @@
  * @endverbatim
  */

 #include "mgsubd.h"

+double bf, oh, cputme;
+
 VPUBLIC void Vbuildops(
         int *nx, int *ny, int *nz,
         int *nlev, int *ipkey, int *iinfo,
         int *ido, int *iz,
         int *mgprol, int *mgcoar, int *mgsolv, int *mgdisc, int *ipc,
--- src/pmgc/mgsubd.h   2020-08-17 22:19:58.337848512 +0300
+++ src/pmgc/mgsubd.h   2020-08-17 22:52:44.133442142 +0300
@@ -253,11 +253,11 @@
         int n3  ///< The third grid size
         );

 /// @todo  Get rid of these globals in refactor
-double bf, oh, cputme;
+extern double bf, oh, cputme;

 /** @brief   This routine prints out some info and such from inside multigrid.
  *  @author  Tucker Beck [C Translation], Michael Holst [Original]
  *  @note    Replaces prtstp from mgsubd.f
  */
--- src/pmgc/mypdec.c   2020-08-17 22:19:58.337848512 +0300
+++ src/pmgc/mypdec.c   2020-08-17 22:51:45.158838887 +0300
@@ -52,10 +52,15 @@
  * @endverbatim
  */

 #include "mypdec.h"

+double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
+int nion;
+double charge[MAXIONS];
+double sconc[MAXIONS];
+
 VPUBLIC void Vmypdefinitlpbe(int *tnion, double *tcharge, double *tsconc) {

     int i;

     nion = *tnion;
--- src/pmgc/mypdec.h   2020-08-17 22:19:58.337848512 +0300
+++ src/pmgc/mypdec.h   2020-08-17 22:51:33.588589765 +0300
@@ -65,14 +65,14 @@
 #define ZLARGE     1.0e20
 #define SINH_MIN -85.0
 #define SINH_MAX  85.0

 /// @todo  Remove dependencies on global variables
-double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
-int nion;
-double charge[MAXIONS];
-double sconc[MAXIONS];
+extern double v1, v2, v3, conc1, conc2, conc3, vol, relSize;
+extern int nion;
+extern double charge[MAXIONS];
+extern double sconc[MAXIONS];

 #define Na 6.022045000e-04

 /** @brief   Set up the ionic species to be used in later calculations.  This
  *           must be called before any other of the routines in this file.
lwwilson1 commented 4 years ago

@dvdesolve was helpful enough to point out this issue and investigate it in TABI-PB as well; it looks like it's because gcc 10 is finally enforcing no common blocks as a default. It looks like you can also work around it by compiling with -fcommon when using gcc-10, but that's probably the last-place solution to the problem.

dvdesolve commented 4 years ago

After applying my patch for global variables I've faced another problem with linking of libmaloc.so. During building the following error occurs:

Scanning dependencies of target mgmesh
[ 79%] Building C object tools/mesh/CMakeFiles/mgmesh.dir/mgmesh.c.o
[ 79%] Linking C executable ../bin/mgmesh
/usr/bin/ld: /opt/buildcache/makepkg/apbs/src/apbs-3.0.0/apbs/build/fetk/lib/libmaloc.so: undefined reference to «pow»

I've tried to add linking with libm.so explicitly both in apbs/tools/mesh/CMakeLists.txt and in apbs/externals/fetk/maloc/src/CMakeLists.txt via target_link_libraries() but it doesn't work. Seems like FETk is built by APBS without CMake but with old AutoTools approach. I don't know what to do in such situation.

intendo commented 4 years ago

I think the linking issue may be a race condition between CMake, autoconf, downloading files, and make running in parallel. I have run into this before and it is not consistent.

Instead of just typing make which will default to running a few of the autoconf steps in parallel, try using VERBOSE=1 make -j 1 which forces all the compiling to be done in serial and eliminates any race condition. There should be a .build.sh file which is what I use to build, test, and bundle APBS using Github actions.

Let us know if that works.

dvdesolve commented 4 years ago

Actually it looks like the problem with undefined reference to pow isn't related to the race condition during make. I've tried to build from pure source with serial make and all worked just fine. However when I've tried to build with makepkg utility (this is Arch Linux way to build packages) then I've got the same error despite of serialized make run.

The only difference between two ways is that makepkg utility exports some compilation and linking flags defined in /etc/makepkg.conf on Arch systems. When I've turned off these flags in my PKGBUILD script compilation went just fine. So I'm pretty sure that system-wide compilation flags interfere with building process (the same should be the case for all Linux distribs that export these flags such as Gentoo).

If you're curious about them here are the list (CMake should ignore CPPFLAGS, though):

CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"

I think because we're getting troubles during linking LDFLAGS may be the offending ones.

dvdesolve commented 4 years ago

I've updated Arch Linux package so it can be built now with full support of 3rd party tools/utils. I've attached two patches inside it as a temporary solution. We'll get rid of them when new version out.

Can you please add link to it in docs?

sobolevnrm commented 4 years ago

Thank you! I'll work on this.