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