I suspect this is weird Solaris magic at work. Make sur that /usr/ucb/bin precedes /usr/ccs/bin. I think you must be picking up /usr/ccs/bin/ld instead of /usr/ucb/bin/ld. Or something like that, the details are hazy. Do a find(1) to see where different copies of ld are installed.
--