On Tue, Oct 15, 2013 at 09:28:13PM -0400, Alex Nelson wrote:
 This patch addresses a build failure in OS X.  Running git-bisect on
a
 straightforward build (bootstrap, autogen.sh, configure, make, make
 install) showed this as the "Bad commit:"
 3e7c039799cddc45517350cc917eb10715f33fec
 
 The issue is that hivex-internal.h uses le32toh in a static inline
 function.  In case `configure` doesn't find le32toh, byte_conversions.h
 defines it.  But hivex-internal.h doesn't include the safety definition.
 
 OS X demonstrates this a problem.  Neither endian.h nor byteswap.h are
 found with `configure` in OS X 10.8.5 (XCode 5), but the headers are
 both found in Fedora 19 and Ubuntu 13.04.  This patch to configure.ac
 further logs that only ntohl is available for byte swaps:
 
     @@ -153,6 +153,8 @@ AC_REPLACE_FUNCS([mmap])
      dnl Functions.
      AC_CHECK_FUNCS([bindtextdomain])
 
     +AC_CHECK_FUNCS([le32toh ntohl bswap_32 __bswap_32])
     +
 
 (As an aside, it's curious that a missing byteswap.h didn't cause
 hivex-internal.h to fail to build.)
 (As another aside, this is an interesting example of lazy symbol
 binding failing with an inline function.)
 
 The problem is resolved by having hivex-internal.h include
 byte_conversions.h.  This obviates most of the other direct inclusions
 of byte_conversions.h.  (One persists under sh/.)
 
 This patch builds and runs hivexml on images/large fine in Ubuntu 13.04
 and Fedora 19.  It also allows builds to succeed in OS X, but doesn't
 run hivexml for an unrelated reason.  The _iconv_open
 symbol-not-found issue, that I thought was previously resolved
 (491ba0f7a761c7ffd50e0eaa4d892f78d538eb2b), resurfaced.
 
 Signed-off-by: Alex Nelson <a.nelson(a)prometheuscomputing.com> 
Hi Alex,
This all looks good to me.  I've ACKed and pushed it.
Thanks,
Rich.
-- 
Richard Jones, Virtualization Group, Red Hat 
http://people.redhat.com/~rjones
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW