diff --git a/coreutils/Config.in b/coreutils/Config.in index 31e97c145..5e1195837 100644 --- a/coreutils/Config.in +++ b/coreutils/Config.in @@ -323,6 +323,21 @@ config CONFIG_MD5SUM help md5sum is used to print or check MD5 checksums. +config CONFIG_MD5SUM_SIZE_VS_SPEED + int " Trade Bytes for Speed" + default 2 + range 0 3 + depends on CONFIG_MD5SUM + help + Trade binary size versus speed for the md5sum algorithm. + Approximate values running uClibc and hashing + linux-2.4.4.tar.bz2 were: + user times (sec) text size (386) + 0 (fastest) 1.1 6144 + 1 1.4 5392 + 2 3.0 5088 + 3 (smallest) 5.1 4912 + config CONFIG_MKDIR bool "mkdir" default n diff --git a/libbb/hash_fd.c b/libbb/hash_fd.c index 5f12259b3..3445a25a0 100644 --- a/libbb/hash_fd.c +++ b/libbb/hash_fd.c @@ -5,19 +5,7 @@ * Copyright (C) 2003 Glenn L. McGrath * Copyright (C) 2003 Erik Andersen * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ #include @@ -271,7 +259,11 @@ static void sha1_end(unsigned char hval[], struct sha1_ctx_t *ctx) * 3 (smallest) 5.1 4912 */ +# if CONFIG_MD5SUM_SIZE_VS_SPEED < 0 || CONFIG_MD5SUM_SIZE_VS_SPEED > 3 # define MD5SUM_SIZE_VS_SPEED 2 +# else +# define MD5SUM_SIZE_VS_SPEED CONFIG_MD5SUM_SIZE_VS_SPEED +# endif /* Handle endian-ness */ # if __BYTE_ORDER == __LITTLE_ENDIAN