diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2004-05-06 01:33:56 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2004-05-06 01:33:56 +0000 |
| commit | 03feec0e60a84cbe1c1f77137eb23b2945fd2c44 (patch) | |
| tree | 3dd22dccb7b4c43189f41ab1d5b8df064c8d611a /src/util/db2 | |
| parent | 2523b96a81748d0f7c2ad01cf524bbccb00252c3 (diff) | |
| download | krb5-03feec0e60a84cbe1c1f77137eb23b2945fd2c44.tar.gz krb5-03feec0e60a84cbe1c1f77137eb23b2945fd2c44.tar.xz krb5-03feec0e60a84cbe1c1f77137eb23b2945fd2c44.zip | |
Since the AES code builds, and doesn't do any configure-time byte order checks
that I noticed, something similar ought to work for the DB code. This is the
first cut; nightly testing builds should tell us if it's sufficient on most of
the platforms we work on.
* include/db-int.h: Include stdlib.h, and endian.h if available.
(LITTLE_ENDIAN, BIG_ENDIAN, BYTE_ORDER): If not defined, and if versions with
one or two leading underscores are defined, define the no-underscore form in
terms of the with-underscore one.
(DB_BYTE_ORDER): Define by checking LITTLE_ENDIAN, BIG_ENDIAN, and BYTE_ORDER;
report an error if that doesn't work. Don't check WORDS_BIGENDIAN.
* Makefile.in (all-prerecurse): Make sure headers generated by config.status
are up to date.
(include/config.h, $(srcdir)/include/config.h.in, include/db-config.h): New
rules.
* configure.in: Don't check byte order here. Check for endian.h.
ticket: 2551
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16317 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util/db2')
| -rw-r--r-- | src/util/db2/ChangeLog | 8 | ||||
| -rw-r--r-- | src/util/db2/Makefile.in | 8 | ||||
| -rw-r--r-- | src/util/db2/configure.in | 3 | ||||
| -rw-r--r-- | src/util/db2/include/ChangeLog | 10 | ||||
| -rw-r--r-- | src/util/db2/include/db-int.h | 49 |
5 files changed, 77 insertions, 1 deletions
diff --git a/src/util/db2/ChangeLog b/src/util/db2/ChangeLog index df2504914e..0591d6cd61 100644 --- a/src/util/db2/ChangeLog +++ b/src/util/db2/ChangeLog @@ -1,3 +1,11 @@ +2004-05-05 Ken Raeburn <raeburn@mit.edu> + + * Makefile.in (all-prerecurse): Make sure headers generated by + config.status are up to date. + (include/config.h, $(srcdir)/include/config.h.in, + include/db-config.h): New rules. + * configure.in: Don't check byte order here. Check for endian.h. + 2004-04-22 Ken Raeburn <raeburn@mit.edu> * libdb.exports: New file. diff --git a/src/util/db2/Makefile.in b/src/util/db2/Makefile.in index 6ca7550972..39dc7c2167 100644 --- a/src/util/db2/Makefile.in +++ b/src/util/db2/Makefile.in @@ -16,6 +16,7 @@ HDRDIR=$(BUILDTOP)/include HDRS = $(HDRDIR)/db.h $(HDRDIR)/db-config.h $(HDRDIR)/db-ndbm.h all-unix:: all-liblinks includes +all-prerecurse: include/config.h include/db-config.h clean-unix:: clean-liblinks clean-libs clean-includes includes:: $(HDRS) @@ -27,6 +28,13 @@ $(HDRDIR)/db-config.h: include/db-config.h $(HDRDIR)/db-ndbm.h: $(srcdir)/include/db-ndbm.h $(CP) $(srcdir)/include/db-ndbm.h $@ +include/config.h: $(srcdir)/include/config.h.in + cd $(thisconfigdir) && $(SHELL) config.status +$(srcdir)/include/config.h.in: @MAINT@ $(srcdir)/configure.in $(SRCTOP)/aclocal.m4 + cd $(srcdir) && ($(AUTOHEADER) --include=$(CONFIG_RELTOPDIR) $(AUTOHEADERFLAGS) || $(AUTOHEADER) --localdir=$(CONFIG_RELTOPDIR) $(AUTOHEADERFLAGS)) +include/db-config.h: $(srcdir)/include/db-config.h.in + cd $(thisconfigdir) && $(SHELL) config.status + clean-includes:: $(RM) $(HDRS) # @lib_frag@ diff --git a/src/util/db2/configure.in b/src/util/db2/configure.in index 6fe60397a7..b64a126d2e 100644 --- a/src/util/db2/configure.in +++ b/src/util/db2/configure.in @@ -63,7 +63,8 @@ AC_COMPILE_TYPE(u_int32_t, unsigned int) dnl checks for structures dnl checks for compiler characteristics -AC_C_BIGENDIAN +dnl AC_C_BIGENDIAN +AC_CHECK_HEADERS(endian.h) AC_C_CONST AC_CHECK_SIZEOF(int) diff --git a/src/util/db2/include/ChangeLog b/src/util/db2/include/ChangeLog index eacdbc8b7b..3ca9befe5b 100644 --- a/src/util/db2/include/ChangeLog +++ b/src/util/db2/include/ChangeLog @@ -1,3 +1,13 @@ +2004-05-05 Ken Raeburn <raeburn@mit.edu> + + * db-int.h: Include stdlib.h, and endian.h if available. + (LITTLE_ENDIAN, BIG_ENDIAN, BYTE_ORDER): If not defined, and if + versions with one or two leading underscores are defined, define + the no-underscore form in terms of the with-underscore one. + (DB_BYTE_ORDER): Define by checking LITTLE_ENDIAN, BIG_ENDIAN, and + BYTE_ORDER; report an error if that doesn't work. Don't check + WORDS_BIGENDIAN. + 2002-09-05 Ken Raeburn <raeburn@mit.edu> * db-int.h: If stdint.h or inttypes.h are found, include them. diff --git a/src/util/db2/include/db-int.h b/src/util/db2/include/db-int.h index 2c21fb207a..ddc2d47642 100644 --- a/src/util/db2/include/db-int.h +++ b/src/util/db2/include/db-int.h @@ -44,11 +44,60 @@ #define DB_LITTLE_ENDIAN 1234 #define DB_BIG_ENDIAN 4321 +#include <stdlib.h> +#ifdef HAVE_ENDIAN_H +# include <endian.h> +#endif +/* Handle both BIG and LITTLE defined and BYTE_ORDER matches one, or + just one defined; both with and without leading underscores. + + Ignore "PDP endian" machines, this code doesn't support them + anyways. */ +#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && !defined(BYTE_ORDER) +# ifdef _LITTLE_ENDIAN +# define LITTLE_ENDIAN _LITTLE_ENDIAN +# endif +# ifdef _BIG_ENDIAN +# define BIG_ENDIAN _BIG_ENDIAN +# endif +# ifdef _BYTE_ORDER +# define BYTE_ORDER _BYTE_ORDER +# endif +#endif +#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) && !defined(BYTE_ORDER) +# ifdef __LITTLE_ENDIAN +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# endif +# ifdef __BIG_ENDIAN +# define BIG_ENDIAN __BIG_ENDIAN +# endif +# ifdef __BYTE_ORDER +# define BYTE_ORDER __BYTE_ORDER +# endif +#endif +#if defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN) && defined(BYTE_ORDER) +# if LITTLE_ENDIAN == BYTE_ORDER +# define DB_BYTE_ORDER DB_LITTLE_ENDIAN +# elif BIG_ENDIAN == BYTE_ORDER +# define DB_BYTE_ORDER DB_BIG_ENDIAN +# else +# error "LITTLE_ENDIAN and BIG_ENDIAN defined, but can't determine byte order" +# endif +#elif defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN) +# define DB_BYTE_ORDER DB_LITTLE_ENDIAN +#elif defined(BIG_ENDIAN) && !defined(LITTLE_ENDIAN) +# define DB_BYTE_ORDER DB_BIG_ENDIAN +#else +# error "can't determine byte order from included system headers" +#endif + +#if 0 #ifdef WORDS_BIGENDIAN #define DB_BYTE_ORDER DB_BIG_ENDIAN #else #define DB_BYTE_ORDER DB_LITTLE_ENDIAN #endif +#endif /* end autoconf-based stuff */ |
