From b98145bd761fec2a257eb8ff8b66a7b818c8942f Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 2 Aug 2006 20:06:56 +0000 Subject: [PATCH] STABLE14-endian-fixes-20060802 macos needs us to do weird stuff so -arch i386 -arch ppc works (cherry picked from commit fd099b3e763b6b2c5bfb87db0cae8a900f031ad3) --- acconfig.h | 27 +++++++++++++++++++++------ configure.in | 4 ++-- src/afs/afs_call.c | 8 ++++---- 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/venus/kdump.c | 2 +- 9 files changed, 38 insertions(+), 28 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 57a19fa09..c08a3b2a6 100644 --- a/configure.in +++ b/configure.in @@ -53,8 +53,8 @@ src/kauth/Makefile \ src/kauth/test/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 \ @@ -113,8 +113,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_call.c b/src/afs/afs_call.c index ed8f97088..b2b90ed5c 100644 --- a/src/afs/afs_call.c +++ b/src/afs/afs_call.c @@ -2393,7 +2393,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]); @@ -2433,7 +2433,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]); @@ -2473,7 +2473,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]); @@ -2513,7 +2513,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/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/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