
The function hash_show is now only called by hash_command, so mark it as static (and drop from hash.h). We only call hash_command when any of CONFIG_CMD_CRC32, CONFIG_CMD_SHA1SUM or CONFIG_CMD_HASH are set. Since hash.c is linked in unconditionally we must take extra care with functions that bring in read-only strings as these will not be discarded.
Signed-off-by: Tom Rini trini@konsulko.com --- common/hash.c | 20 +++++++++++--------- include/hash.h | 15 --------------- 2 files changed, 11 insertions(+), 24 deletions(-)
diff --git a/common/hash.c b/common/hash.c index a1b0482..db5a51e 100644 --- a/common/hash.c +++ b/common/hash.c @@ -359,15 +359,6 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str, return 0; }
-void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output) -{ - int i; - - printf("%s for %08lx ... %08lx ==> ", algo->name, addr, addr + len - 1); - for (i = 0; i < algo->digest_size; i++) - printf("%02x", output[i]); -} - int hash_block(const char *algo_name, const void *data, unsigned int len, uint8_t *output, int *output_size) { @@ -390,6 +381,16 @@ int hash_block(const char *algo_name, const void *data, unsigned int len, return 0; }
+#if defined(CONFIG_CMD_HASH) || defined(CONFIG_CMD_SHA1SUM) || defined(CONFIG_CMD_CRC32) +static void hash_show(struct hash_algo *algo, ulong addr, ulong len, uint8_t *output) +{ + int i; + + printf("%s for %08lx ... %08lx ==> ", algo->name, addr, addr + len - 1); + for (i = 0; i < algo->digest_size; i++) + printf("%02x", output[i]); +} + int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { @@ -473,3 +474,4 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, return 0; } #endif +#endif diff --git a/include/hash.h b/include/hash.h index e6d0f1d..d814337 100644 --- a/include/hash.h +++ b/include/hash.h @@ -114,21 +114,6 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, int hash_block(const char *algo_name, const void *data, unsigned int len, uint8_t *output, int *output_size);
-/** - * hash_show() - Print out a hash algorithm and value - * - * You will get a message like this (without a newline at the end): - * - * "sha1 for 9eb3337c ... 9eb3338f ==> 7942ef1df479fd3130f716eb9613d107dab7e257" - * - * @algo: Algorithm used for hash - * @addr: Address of data that was hashed - * @len: Length of data that was hashed - * @output: Hash value to display - */ -void hash_show(struct hash_algo *algo, ulong addr, ulong len, - uint8_t *output); - #endif /* !USE_HOSTCC */
/**