multiple defination of __device__ functions on CUDA3.1

I used Fedora11 and 2 GTX480 card. The drivers is the newest one.
I tried to install the newest CUDA3.1 for fedora12(only for fedora 12??) and compile my program. It reported “mutiple defination” to all the device functions. But my program can pass the compiling on CUDA3.0 and older version.
Is any compiling rules changed in CUDA3.1? I remembered the device function must be put into the same .cu file with global, and can not be separated.

In the program there are many .cu files, each include a global funciton and many device function. So I had to copy the same device function to each .cu files.

I used gcc3.4 and g77, and also make the nvcc to use gcc3.4

thanks.