I've done this before, with no problems for cuda 2.x, but it's been a while and I'm having troubles. I think I have everything configured right, as I got the cufft dll wrapper compiled but the cudart dll wrapper is acting like I am not linking it to the linux libcudart.so, but I am. I've noticed a few changed in winemaker, and I thought I'd get some to check my make file / see if they can see anything wrong.
My source can be found here, http://shelnutt2.host56.com/cudart/ . I'm assuming your cuda toolkit is installed in the default location of /usr/local/cuda . My errors are:
winegcc -shared cudart.dll.spec -mno-cygwin -o cudart.dll.so cudart.o -L/usr/local/cuda/lib/ -lcudart -lodbc32 -lole32 -loleaut32 -lwinspool -lodbccp32 -luuid cudart.o: In function `__saturatef': cudart.c:(.text+0x3b6c): undefined reference to `__cuda___isnanf' cudart.o: In function `__sad': cudart.c:(.text+0x3bfc): undefined reference to `__cuda_llabs' cudart.o: In function `__usad': cudart.c:(.text+0x3c47): undefined reference to `__cuda_llabs' cudart.o: In function `__internal_float2ll_kernel': cudart.c:(.text+0x3d2b): undefined reference to `__cuda___isnanf' cudart.o: In function `__internal_float2ull_kernel': cudart.c:(.text+0x4082): undefined reference to `__cuda___isnanf' cudart.o: In function `__fdividef': cudart.c:(.text+0x4eaa): undefined reference to `__cuda_fabsf' cudart.c:(.text+0x4ecf): undefined reference to `__cuda_fabsf' cudart.o: In function `__expf': cudart.c:(.text+0x5085): undefined reference to `__cuda_exp2f' cudart.o: In function `__exp10f': cudart.c:(.text+0x50b6): undefined reference to `__cuda_exp2f' cudart.o: In function `__powf': cudart.c:(.text+0x5140): undefined reference to `__cuda_exp2f' cudart.o: In function `__internal_double2ll_kernel': cudart.c:(.text+0x6130): undefined reference to `__cuda___isnan' cudart.o: In function `__internal_double2ull_kernel': cudart.c:(.text+0x6383): undefined reference to `__cuda___isnan' cudart.o: In function `clock64': cudart.c:(.text+0x7f61): undefined reference to `__cuda_clock'
Thanks,
Seth Shelnutt
winegcc -shared cudart.dll.spec -mno-cygwin -o cudart.dll.so cudart.o -L/usr/local/cuda/lib/ -lcudart -lodbc32 -lole32 -loleaut32 -lwinspool -lodbccp32 -luuid cudart.o: In function `__saturatef': cudart.c:(.text+0x3b6c): undefined reference to `__cuda___isnanf' cudart.o: In function `__sad': cudart.c:(.text+0x3bfc): undefined reference to `__cuda_llabs' cudart.o: In function `__usad': cudart.c:(.text+0x3c47): undefined reference to `__cuda_llabs' cudart.o: In function `__internal_float2ll_kernel': cudart.c:(.text+0x3d2b): undefined reference to `__cuda___isnanf' cudart.o: In function `__internal_float2ull_kernel': cudart.c:(.text+0x4082): undefined reference to `__cuda___isnanf' cudart.o: In function `__fdividef': cudart.c:(.text+0x4eaa): undefined reference to `__cuda_fabsf' cudart.c:(.text+0x4ecf): undefined reference to `__cuda_fabsf' cudart.o: In function `__expf': cudart.c:(.text+0x5085): undefined reference to `__cuda_exp2f' cudart.o: In function `__exp10f': cudart.c:(.text+0x50b6): undefined reference to `__cuda_exp2f' cudart.o: In function `__powf': cudart.c:(.text+0x5140): undefined reference to `__cuda_exp2f' cudart.o: In function `__internal_double2ll_kernel': cudart.c:(.text+0x6130): undefined reference to `__cuda___isnan' cudart.o: In function `__internal_double2ull_kernel': cudart.c:(.text+0x6383): undefined reference to `__cuda___isnan' cudart.o: In function `clock64': cudart.c:(.text+0x7f61): undefined reference to `__cuda_clock'
To me it looks like you forgot to link to some additional cuda libraries. Try to figure out which cuda libraries contain these symbols. For instance 'nm -D' could help you there or less reliable a basic grep.
Roderick