[nm shows the symbol, ld/collect2 can't find it] > So there is something odd here.
Sure looks like it. I'd lose GNU binutils and possibly gcc. (Or maybe try gcc -c and /usr/ccs/bin/ld by hand.) Sun Studio 11 is now free (as in beer) at sun.com, and might be worth trying. I've found it produces better sparc code than gcc.
As a slight aside- Can you share your experiences building slapd with the sun compiler?