The generic implementations of exp10, exp10f, exp10l (math/e_exp10*) use exp (arg * log (10)) as their algorithm, which is inaccurate for large inputs (you need some extra precision for calculating log (10) and doing the multiplication). For example, on x86_64, exp10f (36) has a 39ulp error, exp10 (305) has a 217ulp error and exp10l (4932) has a 5612ulp error. It is likely that the x86 implementations of exp10f and exp10 are OK (because of the extra x87 precision used for internal calculations), but that of exp10l probably suffers the same issue as reported here (but I haven't tested the x86 functions).
Accuracy for float only fixed by: commit 9568c0c2255045456a09b441f89c6641e27a4bec Author: Joseph Myers <joseph@codesourcery.com> Date: Mon Apr 30 09:37:01 2012 +0000 Fix exp10 spurious overflows (bug 13924). double and long double still need to be fixed.
Fixed by: commit d8b82cad1b525bdcbfff88d218c7c45032e4a3af Author: Joseph Myers <joseph@codesourcery.com> Date: Sun May 6 18:23:44 2012 +0000 Fix exp10 inaccuracy and exceptions (bugs 13884, 13914).