diff --git a/Makefile b/Makefile index ff2bde9..8ca3d79 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,6 @@ TCC = tcc UCLIBC_GCC = $(shell for nm in i386-uclibc-linux-gcc i386-uclibc-gcc; do which $$nm > /dev/null && { echo $$nm ; exit; } ; done; echo false No uclibc found ) DIET_GCC = diet gcc -LDLIBS=-lssl KLIBC=/home/src/klibc/klibc-0.77 @@ -67,15 +66,15 @@ MAN8DIR = $(MANDIR)/man8 OBJS = mdadm.o config.o mdstat.o ReadMe.o util.o Manage.o Assemble.o Build.o \ Create.o Detail.o Examine.o Grow.o Monitor.o dlink.o Kill.o Query.o \ - mdopen.o super0.o super1.o bitmap.o restripe.o sysfs.o + mdopen.o super0.o super1.o bitmap.o restripe.o sysfs.o sha1.o SRCS = mdadm.c config.c mdstat.c ReadMe.c util.c Manage.c Assemble.c Build.c \ Create.c Detail.c Examine.c Grow.c Monitor.c dlink.c Kill.c Query.c \ - mdopen.c super0.c super1.c bitmap.c restripe.c sysfs.c + mdopen.c super0.c super1.c bitmap.c restripe.c sysfs.c sha1.c -STATICSRC = SHA1.c sha1.c pwgr.c -STATICOBJS = SHA1.o sha1.o pwgr.o +STATICSRC = pwgr.c +STATICOBJS = pwgr.o -ASSEMBLE_SRCS := mdassemble.c Assemble.c config.c dlink.c util.c super0.c super1.c +ASSEMBLE_SRCS := mdassemble.c Assemble.c config.c dlink.c util.c super0.c super1.c sha1.c ASSEMBLE_FLAGS:= $(CFLAGS) -DMDASSEMBLE ifdef MDASSEMBLE_AUTO ASSEMBLE_SRCS += mdopen.c mdstat.c @@ -139,8 +138,6 @@ $(OBJS) : mdadm.h bitmap.h sha1.o : sha1.c sha1.h md5.h $(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c -SHA1.o : SHA1.c - $(CC) $(CFLAGS) -DHAVE_STDINT_H -o SHA1.o -c SHA1.c install : mdadm install-man $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm diff --git a/SHA1.c b/SHA1.c index 29e42ba..e69de29 100644 --- a/SHA1.c +++ b/SHA1.c @@ -1,19 +0,0 @@ - -/* Simple wrapper for code in sha1.c, to - * provide SHA1() interface as provided by opensll. - * I do this because I cannot get SHA1 when staticly linking. - * - * sha1.c sha1.h md5.h all copied from coreutils-5.94 - */ - -#include "sha1.h" - -unsigned char *SHA1(unsigned char *buf, int len, unsigned char *dest) -{ - static unsigned char defdest[20]; - if (dest == NULL) dest = defdest; - - return (unsigned char *)sha1_buffer((const char*)buf, - len, - (void*)dest); -} diff --git a/super0.c b/super0.c index f14f076..0f993a2 100644 --- a/super0.c +++ b/super0.c @@ -27,12 +27,9 @@ * Australia */ +#define HAVE_STDINT_H 1 #include "mdadm.h" -#ifndef UCLIBC -#include /* for SHA1 */ -#else -extern unsigned char *SHA1(unsigned char *buf, int len, unsigned char *dest); -#endif +#include "sha1.h" /* * All handling for the 0.90.0 version superblock is in * this file. @@ -102,9 +99,10 @@ static void examine_super0(void *sbv, char *homehost) printf(" UUID : %08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1, sb->set_uuid2, sb->set_uuid3); if (homehost) { - unsigned char *hash = SHA1((unsigned char *)homehost, - strlen(homehost), - NULL); + char buf[20]; + void *hash = sha1_buffer(homehost, + strlen(homehost), + buf); if (memcmp(&sb->set_uuid2, hash, 8)==0) printf(" (local to host %s)", homehost); } @@ -261,9 +259,10 @@ static void detail_super0(void *sbv, char *homehost) else printf("%08x", sb->set_uuid0); if (homehost) { - unsigned char *hash = SHA1((unsigned char *)homehost, - strlen(homehost), - NULL); + char buf[20]; + void *hash = sha1_buffer(homehost, + strlen(homehost), + buf); if (memcmp(&sb->set_uuid2, hash, 8)==0) printf(" (local to host %s)", homehost); } @@ -285,9 +284,10 @@ static void brief_detail_super0(void *sbv) static int match_home0(void *sbv, char *homehost) { mdp_super_t *sb = sbv; - unsigned char *hash = SHA1((unsigned char *)homehost, - strlen(homehost), - NULL); + char buf[20]; + char *hash = sha1_buffer(homehost, + strlen(homehost), + buf); return (memcmp(&sb->set_uuid2, hash, 8)==0); } @@ -474,9 +474,10 @@ static int update_super0(struct mdinfo *info, void *sbv, char *update, } if (strcmp(update, "uuid") == 0) { if (!uuid_set && homehost) { - unsigned char *hash = SHA1((unsigned char*)homehost, - strlen(homehost), - NULL); + char buf[20]; + char *hash = sha1_buffer(homehost, + strlen(homehost), + buf); memcpy(info->uuid+2, hash, 8); } sb->set_uuid0 = info->uuid[0]; @@ -557,9 +558,10 @@ static int init_super0(struct supertype *st, void **sbp, mdu_array_info_t *info, if (rfd >= 0) close(rfd); if (homehost) { - unsigned char *hash = SHA1((unsigned char*)homehost, - strlen(homehost), - NULL); + char buf[20]; + char *hash = sha1_buffer(homehost, + strlen(homehost), + buf); memcpy(&sb->set_uuid2, hash, 8); }