etmc / tmLQCD

tmLQCD is a freely available software suite providing a set of tools to be used in lattice QCD simulations. This is mainly a HMC implementation (including PHMC and RHMC) for Wilson, Wilson Clover and Wilson twisted mass fermions and inverter for different versions of the Dirac operator. The code is fully parallelised and ships with optimisations for various modern architectures, such as commodity PC clusters and the Blue Gene family.
http://www.itkp.uni-bonn.de/~urbach/software.html
GNU General Public License v3.0
32 stars 47 forks source link

Multiple definition of X1,X2,X3,X0 in quda_interface.c and boundary.c #484

Closed sunpho84 closed 3 years ago

sunpho84 commented 3 years ago

This time I have more trouble understanding the fix, indeed I get the following error

multiple definition of `X1'; ./lib/libhmc.a(boundary.o):/home/francesco/QCD/SORGENTI/tmLQCD/build_quda/../boundary.c:38: first defined here
[...more for X2 X3 X0]

I'm not sure to understand if the two set of variables are meant to be the same (in which case I would suggest removing them from quda_interface.c, and adding the appropriate extern in theboundary.h header) or if they are meant to stay different, in which case I would suggest renaming the quda version.

kostrzewa commented 3 years ago

Agreed, the quda interface seems to work correctly "by accident" what concerns the X[0,1,2,3]. Their redeclaration is certainly not correct here.

sunpho84 commented 3 years ago

So if they don't have to be redeclared, I'll remove them and add the appropriate extern in boundary.h

kostrzewa commented 3 years ago

I think we first need to merge master into quda_work, do regression tests and then see from there. The branches have diverged too much at this stage.

kostrzewa commented 3 years ago

I'm performing the merge right now, the changes are mostly cosmetic so far. 70 files to go.