It took me a bit to figure out what was going on, but turned out to be some sort of linker problem (as usual). I tried building this simple C program:
/* test.c */
/* gcc -Wall -o test -L/oracle9023/lib -lclntsh test.c */
Using Sun's ld I end up with ELFCLASS errors. Using GNU's ld I end up with incompatability errors with libclntsh.so. Yeah, I tried -m64, -m32, and some other flags, too.
I've successfully built Oracle 8 on the same box and Oracle 9.0.1 on my own Solaris box, so I'd really like to know WTF happened between Oracle 9.0.1 and 9.2.0. At this point I've requested a license for Sun's Forte compiler, with the hope that it will solve our compiler/linker problems forever.