diff --git a/ChangeLog b/ChangeLog index caf130979..aef4d6a88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ PolarSSL ChangeLog Changes * Introduced POLARSSL_HAVE_READDIR_R for systems without it * Improvements to the CMake build system, contributed by Julian Ospald. + * Work around a bug of the version of Clang shipped by Apple with Mavericks + that prevented bignum.c from compiling. (Reported by Rafael Baptista.) Security * Forbid change of server certificate during renegotiation to prevent diff --git a/library/bignum.c b/library/bignum.c index 546029071..0d13cd87a 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1114,7 +1114,14 @@ int mpi_div_mpi( mpi *Q, mpi *R, const mpi *A, const mpi *B ) Z.p[i - t - 1] = ~0; else { -#if defined(POLARSSL_HAVE_UDBL) + /* + * The version of Clang shipped by Apple with Mavericks can't + * handle 128-bit division properly. Disable 128-bits division + * for Clang on Apple for now, while waiting for more input on the + * exact version(s) affected and their identification macros. + */ +#if defined(POLARSSL_HAVE_UDBL) && \ + ! ( defined(__x86_64__) && defined(__clang__) && defined(__APPLE__) ) t_udbl r; r = (t_udbl) X.p[i] << biL;