32 bit on linux

In my quest to have my new model driver be versatile, I tried testing a 32 bit linux version (KIM_SYSTEMARCH = 32bit). However, I can’t even get the API to compile (gcc 4.8.1 on a 64 bit kernel). I get lots of errors like:

gfortran -fPIC -fcray-pointer -I/home_radon/bernstei/src/work/OpenKIM/openkim-api-v1.4.0/KIM_API -D KIM_ARCHTYPE=0 -D KIM_LINK_VALUE=2 -c -O3 -g -Wall -pedantic KIM_API_F.F90


call kim_api_set_compute(kimmdl,pstr,flag,error)


Error: Type mismatch in argument ‘nm’ at (1); passed INTEGER(8) to INTEGER(4)

Is this a known problem? Should I get a newer version of gcc 4.8? Should -m32 be passed as a flag, which it doesn’t seem to now?



Yes, if your compiler's default architecture is not 32bit, then you will need to update the compiler flags to include the -m32 flag.

Maybe this should be the default? Are these standard flags?....


I just realized that this question was basically a duplicate of one of the first things we discussed when I started working on the QUIP stuff last week.

Yes, I think that these flags are standard for gcc, and I think they should be set by default when the architecture is set to 32 bit. I believe they also work on ifort, as well.