[Libguestfs] [PATCH 0/3] hivex: Improve OS X support

Alex Nelson ajnelson at cs.ucsc.edu
Wed Sep 7 03:42:40 UTC 2011


Rich, Gillen,

Thank you both for the help, I've made some more progress.  Notes below.


On Sep 6, 2011, at 05:38 , Richard W.M. Jones wrote:

> On Mon, Sep 05, 2011 at 06:52:43PM -0700, Alex Nelson wrote:
>> This patch series improves, but does not complete, OS X support for
>> hivex.  There are several outstanding issues before hivexml and hivexsh
>> can run:
>> 
>> * hivexsh uses open_memstream, which doesn't exist in OS X as near as I
>> can see.  Unfortunately, I'm inexperienced with autoconf, so I'm not
>> sure how to employ AC_CHECK_FUNCS([open_memstream]) to conditionally add
>> 'sh' to the Makefile.am's SUBDIRS.
> 
> You need to use an automake conditional.  It'll be something like this
> (not tested):
> 
>  AM_CONDITIONAL([HAVE_HIVESH],[test "x$HAVE_OPEN_MEMSTREAM" = "x1"])
> 
> and then in Makefile.am:
> 
>  if HAVE_HIVESH
>  SUBDIRS += sh
>  endif
> 
> There are plenty of examples of this in the libguestfs source, eg.
> have a look at HAVE_PERL in configure.ac and Makefile.am.

Ok, I've gotten this to work on OS X and Fedora Core 15.  `make check` fails on OS X still, though I'm not sure it ever worked to begin with.  `make check` works fine on FC15.  Patch incoming.
> 
>> * The check for libxml fails, because PKG_CHECK_CONFIG doesn't exist on
>> OS X.  I think it would be better to use AC_CHECK_FUNCS on some of the
>> libxml functions, but again, I'm not too hot with autoconf and automake.
> 
> Grumble.  OS X sounds a bit broken if it doesn't include pkg-config
> files (*.pc).  Is libxml2 provided in the base OS X or is this coming
> from an outside project like MacPorts?
libxml2 is provided in the base OS X, though one can install a different version with MacPorts.

Do you have any recommendations on how to fix this check?  Commenting it out works well enough on OS X, it seems.
> 
>> * hivexml has the following run-time failure:
>> dyld: lazy symbol binding failed: Symbol not found: _iconv_open
>> Referenced from: /Users/alex/local/src/hivex/lib/.libs/libhivex.0.dylib
>> Expected in: flat namespace
>> 
>> dyld: Symbol not found: _iconv_open
>> Referenced from: /Users/alex/local/src/hivex/lib/.libs/libhivex.0.dylib
>> Expected in: flat namespace
>> 
>> Trace/BPT trap: 5
> 
> Missing libiconv on OS X??  I don't really know about this one.
Gillen, you seem to have the right idea in your other message, passing -liconv in hivexml_CFLAGS (also works passing in hivex_CFLAGS).  I can now compile, run, and produce a lot of Chinese with hivexml.  ...That last one was an unexpected feature, given the American image I was analyzing.

How do you test for whether you're on a system that needs that argument, though?

--Alex
> 
> Rich.
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> virt-top is 'top' for virtual machines.  Tiny program with many
> powerful monitoring features, net stats, disk stats, logging, etc.
> http://et.redhat.com/~rjones/virt-top





More information about the Libguestfs mailing list