diff --git a/configure.ac b/configure.ac index c3509d2..d0230a0 100644 --- a/configure.ac +++ b/configure.ac @@ -88,7 +88,7 @@ dnl Check for C library headers AC_HEADER_STDC AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h \ malloc.h memory.h string.h strings.h inttypes.h \ - stdint.h ctype.h math.h iconv.h signal.h dlfcn.h \ + stdint.h ctype.h iconv.h signal.h dlfcn.h \ pthread.h unistd.h limits.h errno.h syslog.h) AC_CHECK_FUNCS(malloc calloc realloc free openlog) diff --git a/include/erasurecode/erasurecode_stdinc.h b/include/erasurecode/erasurecode_stdinc.h index 903b33e..aaa9e2b 100644 --- a/include/erasurecode/erasurecode_stdinc.h +++ b/include/erasurecode/erasurecode_stdinc.h @@ -100,9 +100,6 @@ #ifdef HAVE_ERRNO_H # include #endif -#ifdef HAVE_MATH_H -# include -#endif #if defined(__GNUC__) && __GNUC__ >= 4 # define DECLSPEC __attribute__ ((visibility("default"))) diff --git a/src/backends/phazrio/libphazr.c b/src/backends/phazrio/libphazr.c index 74ad8ad..41ed74e 100644 --- a/src/backends/phazrio/libphazr.c +++ b/src/backends/phazrio/libphazr.c @@ -88,7 +88,7 @@ struct libphazr_descriptor { static int get_padded_blocksize(int w, int hd, int blocksize) { int word_size = w / 8; - return (int) ceill((double) blocksize / (word_size - hd)) * word_size; + return ((blocksize + ((word_size - hd) - 1)) / (word_size - hd)) * word_size; } static int pio_matrix_encode(void *desc, char **data, char **parity, int blocksize) diff --git a/src/erasurecode.c b/src/erasurecode.c index fb6d5de..d4a06c2 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -1194,8 +1194,8 @@ int liberasurecode_verify_stripe_metadata(int desc, /** * This computes the aligned size of a buffer passed into * the encode function. The encode function must pad fragments - * to be algined with the word size (w) and the last fragment also - * needs to be aligned. This computes the sum of the algined fragment + * to be aligned with the word size (w) and the last fragment also + * needs to be aligned. This computes the sum of the aligned fragment * sizes for a given buffer to encode. */ int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len) @@ -1218,8 +1218,8 @@ int liberasurecode_get_aligned_data_size(int desc, uint64_t data_len) alignment_multiple = k * word_size; - ret = (int) ceill( (double) - data_len / alignment_multiple) * alignment_multiple; + ret = ((data_len + alignment_multiple - 1) / alignment_multiple) + * alignment_multiple; out: return ret; diff --git a/src/erasurecode_helpers.c b/src/erasurecode_helpers.c index 40db93c..fd14298 100644 --- a/src/erasurecode_helpers.c +++ b/src/erasurecode_helpers.c @@ -199,8 +199,8 @@ int get_aligned_data_size(ec_backend_t instance, int data_len) alignment_multiple = k * word_size; } - aligned_size = (int) - ceill((double) data_len / alignment_multiple) * alignment_multiple; + aligned_size = ((data_len + alignment_multiple - 1) / alignment_multiple) + * alignment_multiple; return aligned_size; }