Your problem is you have multiple definitions for acos

In other words you have more than one implementation of acos in your source code. The compiler doesn't know which one you want to use so it errors.
I used the Sun acos implementation because originally there was no acos implementation in the source. I could have used a lookup method like id initially did with the other trig functions, but this implementation isn't much more expensive and is inherently more accurate. id later added a lookup table based acos to bg_lib.c. I can't remember the exact version it was introduced, suffice to say if you're using the latest source code it should be commented out anyway. This is because later still (or maybe it was the same patch -- I can't remember) id added passthrough trig functions to the engine callbacks so that when you called a trig function in QVM space it was mapped to an implementation specific trig function provided by the C library. Curiously though, a passthrough for acos was only added to the client side callbacks.
The wall walking code uses acos in the prediction code, so it is relatively important that both server and client side implementations yield the same results. For this reason I disabled the client side acos passthrough by removing the line "equ acos -112" from cg_syscalls.asm. Now each module used the Sun acos implementation and everybody was happy

In short, my best guess is that your cg_syscalls.asm file still has the acos declaration in it and this is causing the compiler to see two acos definitions on the client side. You should remove this line.