From fd099b3e763b6b2c5bfb87db0cae8a900f031ad3 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 2 Aug 2006 19:59:40 +0000 Subject: [PATCH] endian-fixes-20060802 macos needs us to do weird stuff so -arch i386 -arch ppc works --- acconfig.h | 27 +++++++++++++++++++++------ configure.in | 4 ++-- src/afs/afs_icl.c | 8 ++++---- src/afs/afs_md5.c | 15 +++++---------- src/afs/afs_util.c | 4 ++-- src/cf/bigendian.m4 | 2 +- src/rxkad/bg-fcrypt.c | 5 ----- src/rxkad/domestic/fcrypt.c | 2 +- src/rxkad/md4.c | 8 ++++---- src/rxkad/md5.c | 8 ++++---- src/tviced/serialize_state.c | 4 ++-- src/venus/kdump.c | 2 +- 12 files changed, 47 insertions(+), 42 deletions(-) diff --git a/acconfig.h b/acconfig.h index 2aa1daeb5..e19503097 100644 --- a/acconfig.h +++ b/acconfig.h @@ -8,15 +8,30 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg } #undef HAVE_RES_SEARCH #undef HAVE_SOCKET #undef STRUCT_SOCKADDR_HAS_SA_LEN -#if ENDIANESS_IN_SYS_PARAM_H -# ifndef KERNEL -# include -# include -# if BYTE_ORDER == BIG_ENDIAN -# define WORDS_BIGENDIAN 1 +#if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) +# if ENDIANESS_IN_SYS_PARAM_H +# ifndef KERNEL +# include +# include +# if BYTE_ORDER == BIG_ENDIAN +# define WORDS_BIGENDIAN 1 +# endif +# endif +# else +# if defined(AUTOCONF_FOUND_BIGENDIAN) +# define WORDS_BIGENDIAN 1 +# else +# undef WORDS_BIGENDIAN # endif # endif +#else +#if defined(__BIG_ENDIAN__) +#define WORDS_BIGENDIAN 1 +#else +#undef WORDS_BIGENDIAN +#endif #endif + #undef AFS_AFSDB_ENV #undef AFS_LARGEFILE_ENV #undef AFS_NAMEI_ENV diff --git a/configure.in b/configure.in index f55a83b6b..99c4a9170 100644 --- a/configure.in +++ b/configure.in @@ -52,8 +52,8 @@ src/kauth/test/Makefile \ src/kopenafs/Makefile \ src/libacl/Makefile \ src/libacl/test/Makefile \ -src/libadmin/adminutil/Makefile \ src/libadmin/Makefile \ +src/libadmin/adminutil/Makefile \ src/libadmin/bos/Makefile \ src/libadmin/cfg/Makefile \ src/libadmin/cfg/test/Makefile \ @@ -106,8 +106,8 @@ src/tviced/Makefile \ src/tvolser/Makefile \ src/ubik/Makefile \ src/update/Makefile \ -src/usd/test/Makefile \ src/usd/Makefile \ +src/usd/test/Makefile \ src/uss/Makefile \ src/util/Makefile \ src/util/test/Makefile \ diff --git a/src/afs/afs_icl.c b/src/afs/afs_icl.c index 40bff4bf0..69abd9072 100644 --- a/src/afs/afs_icl.c +++ b/src/afs/afs_icl.c @@ -620,7 +620,7 @@ afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op, ICL_APPENDINT32(logp, (afs_int32) ((struct afs_hyper_t *)p1)->low); } else if (t1 == ICL_TYPE_INT64) { -#ifdef AFSLITTLE_ENDIAN +#ifndef WORDS_BIGENDIAN #ifdef AFS_64BIT_CLIENT ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p1)[1]); ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p1)[0]); @@ -660,7 +660,7 @@ afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op, ICL_APPENDINT32(logp, (afs_int32) ((struct afs_hyper_t *)p2)->low); } else if (t2 == ICL_TYPE_INT64) { -#ifdef AFSLITTLE_ENDIAN +#ifndef WORDS_BIGENDIAN #ifdef AFS_64BIT_CLIENT ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p2)[1]); ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p2)[0]); @@ -700,7 +700,7 @@ afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op, ICL_APPENDINT32(logp, (afs_int32) ((struct afs_hyper_t *)p3)->low); } else if (t3 == ICL_TYPE_INT64) { -#ifdef AFSLITTLE_ENDIAN +#ifndef WORDS_BIGENDIAN #ifdef AFS_64BIT_CLIENT ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p3)[1]); ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p3)[0]); @@ -740,7 +740,7 @@ afs_icl_AppendRecord(register struct afs_icl_log *logp, afs_int32 op, ICL_APPENDINT32(logp, (afs_int32) ((struct afs_hyper_t *)p4)->low); } else if (t4 == ICL_TYPE_INT64) { -#ifdef AFSLITTLE_ENDIAN +#ifndef WORDS_BIGENDIAN #ifdef AFS_64BIT_CLIENT ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p4)[1]); ICL_APPENDINT32(logp, (afs_int32) ((afs_int32 *) p4)[0]); diff --git a/src/afs/afs_md5.c b/src/afs/afs_md5.c index 928725e15..6ce569ab7 100644 --- a/src/afs/afs_md5.c +++ b/src/afs/afs_md5.c @@ -39,11 +39,6 @@ RCSID("$Id$"); -#undef WORDS_BIGENDIAN -#ifdef AFSBIG_ENDIAN -#define WORDS_BIGENDIAN 1 -#endif - #include "afs_md5.h" #define A m->counter[0] @@ -224,13 +219,13 @@ AFS_MD5_Update(struct afs_md5 *m, const void *v, size_t len) if (offset == 64) { #if defined(WORDS_BIGENDIAN) int i; - afs_uint32 current[16]; - struct x32 *u = (struct x32 *)m->save; + afs_uint32 cur[16]; + struct x32 *ui = (struct x32 *)m->save; for (i = 0; i < 8; i++) { - current[2 * i + 0] = swap_afs_uint32(u[i].a); - current[2 * i + 1] = swap_afs_uint32(u[i].b); + cur[2 * i + 0] = swap_afs_uint32(ui[i].a); + cur[2 * i + 1] = swap_afs_uint32(ui[i].b); } - calc(m, current); + calc(m, cur); #else calc(m, (afs_uint32 *) m->save); #endif diff --git a/src/afs/afs_util.c b/src/afs/afs_util.c index eaf9825ee..5fe5327a2 100644 --- a/src/afs/afs_util.c +++ b/src/afs/afs_util.c @@ -561,7 +561,7 @@ calc (struct afs_md5 *m, afs_uint32 *data) * From `Performance analysis of MD5' by Joseph D. Touch */ -#if defined(AFSBIG_ENDIAN) +#if defined(WORDS_BIGENDIAN) static inline afs_uint32 swap_u_int32_t (afs_uint32 t) { @@ -599,7 +599,7 @@ AFS_MD5_Update (struct afs_md5 *m, const void *v, size_t len) p += l; len -= l; if(offset == 64){ -#if defined(AFSBIG_ENDIAN) +#if defined(WORDS_BIGENDIAN) int i; afs_uint32 temp[16]; struct x32 *us = (struct x32*)m->save; diff --git a/src/cf/bigendian.m4 b/src/cf/bigendian.m4 index 4e92ff640..f8250cf02 100644 --- a/src/cf/bigendian.m4 +++ b/src/cf/bigendian.m4 @@ -45,7 +45,7 @@ AC_CACHE_CHECK(whether byte ordering is bigendian, openafs_cv_c_bigendian,[ fi ]) if test "$openafs_cv_c_bigendian" = "yes"; then - AC_DEFINE(WORDS_BIGENDIAN, 1, [define if target is big endian])dnl + AC_DEFINE(AUTOCONF_FOUND_BIGENDIAN, 1, [define if target is big endian])dnl fi if test "$openafs_cv_c_bigendian_compile" = "yes"; then AC_DEFINE(ENDIANESS_IN_SYS_PARAM_H, 1, [define if sys/param.h defines the endiness])dnl diff --git a/src/rxkad/bg-fcrypt.c b/src/rxkad/bg-fcrypt.c index 0c3cabc8f..35a8380cb 100644 --- a/src/rxkad/bg-fcrypt.c +++ b/src/rxkad/bg-fcrypt.c @@ -76,11 +76,6 @@ RCSID #include "private_data.h" #include -#undef WORDS_BIGENDIAN -#ifdef AFSBIG_ENDIAN -#define WORDS_BIGENDIAN 1 -#endif - /* * Unrolling of the inner loops helps the most on pentium chips * (ca 18%). On risc machines only expect a modest improvement (ca 5%). diff --git a/src/rxkad/domestic/fcrypt.c b/src/rxkad/domestic/fcrypt.c index 35e69371f..8d1884da6 100644 --- a/src/rxkad/domestic/fcrypt.c +++ b/src/rxkad/domestic/fcrypt.c @@ -120,7 +120,7 @@ fc_ecb_encrypt(void * clear, void * cipher, volatile unsigned char *Schar = (unsigned char *)&S; int i; -#if defined(vax) || (defined(mips) && defined(MIPSEL)) || defined(AFSLITTLE_ENDIAN) +#ifndef WORDS_BIGENDIAN #define Byte0 3 #define Byte1 2 #define Byte2 1 diff --git a/src/rxkad/md4.c b/src/rxkad/md4.c index 7bc3cee38..6844caf78 100644 --- a/src/rxkad/md4.c +++ b/src/rxkad/md4.c @@ -71,10 +71,10 @@ RCSID("$Id$"); -#undef WORDS_BIGENDIAN -#ifdef AFSBIG_ENDIAN -#define WORDS_BIGENDIAN 1 -#endif + + + + #include "md4.h" #include "hash.h" diff --git a/src/rxkad/md5.c b/src/rxkad/md5.c index 7b3b4b79f..397023bb4 100644 --- a/src/rxkad/md5.c +++ b/src/rxkad/md5.c @@ -71,10 +71,10 @@ RCSID("$Id$"); -#undef WORDS_BIGENDIAN -#ifdef AFSBIG_ENDIAN -#define WORDS_BIGENDIAN 1 -#endif + + + + #include "md5.h" #include "hash.h" diff --git a/src/tviced/serialize_state.c b/src/tviced/serialize_state.c index c1b458315..4095410cf 100644 --- a/src/tviced/serialize_state.c +++ b/src/tviced/serialize_state.c @@ -990,7 +990,7 @@ fs_stateFillHeader(struct fs_state_header * hdr) hdr->timestamp = FT_ApproxTime(); hdr->server_uuid = FS_HostUUID; hdr->valid = 1; -#ifdef AFSBIG_ENDIAN +#ifdef WORDS_BIGENDIAN hdr->endianness = 1; #else hdr->endianness = 0; @@ -1016,7 +1016,7 @@ fs_stateCheckHeader(struct fs_state_header * hdr) ViceLog(0, ("fs_stateCheckHeader: dump was previously flagged invalid\n")); ret = 1; } -#ifdef AFSBIG_ENDIAN +#ifdef WORDS_BIGENDIAN else if (!hdr->endianness) { ViceLog(0, ("fs_stateCheckHeader: wrong endianness\n")); ret = 1; diff --git a/src/venus/kdump.c b/src/venus/kdump.c index ceeb8ce38..67c689aaf 100644 --- a/src/venus/kdump.c +++ b/src/venus/kdump.c @@ -288,7 +288,7 @@ typedef struct timeval { int tv_usec; } timeval_t; /* Needed here since KERNEL defined. */ #endif /*AFS_ALPHA_LINUX20_ENV */ -#if defined(AFSBIG_ENDIAN) +#if defined(WORDS_BIGENDIAN) #define _LINUX_BYTEORDER_BIG_ENDIAN_H #else #define _LINUX_BYTEORDER_LITTLE_ENDIAN_H -- 2.39.5