The main difference with veclib is that (as far as I know) veclib is based of CLAPACK, while most others LAPACK library are based of netlib fortran LAPACK.
There is a MAJOR difference between LAPACK and CLAPACK. For FUNCTION returning a REAL in LAPACK, CLAPACK will always return a DOUBLE PRECISION. (Same for COMPLEX, veclib and CLAPACK will return DOUBLE COMPLEX.)
In FORTAN, if you call CDOT( ) and you use CLAPACK (or veclib) the return value will be a DOUBLE PRECISION. (The standard interface would be REAL.) In C, if you call cdot( ) and you use CLAPACK (or veclib) the return value will be a double. (The standard interface would be float.)
Bottom line if you call SLAMCH(), I think you should expect the return value to DOUBLE PRECISION.
That might be your problem.
This is really a pain, we sent a few emails to Apple so that they address this, and they do not seem interested in fixing this problem.