hmm, I don't understand why make tries to recreate marshallers.h.
another solution is to copy marshallers.h in the src directory and to comment out or delete the line corresponding to glib-genmarshal --header --prefix=cria_marshal marshallers.list > marshallers.h in the Makefile.
Also glib-genmarshal should not try to load /opt/cross/arm/3.3.2-xscale-softvfp/lib/
Did you put this path in /etc/ld.conf ? in LD_LIBRARY_PATH?
If you did so , remove it because the libraries in this directory are for arm and the system should not search this directory for shared library.
If you libiconv.so for x86 is installed in /usr/local/lib you might have to add /usr/local/lib to your /etc/ld.cong followed by a ldconfig.