On Wed, Feb 11, 2015 at 07:20:33PM +0000, Margaret Lewicka wrote: > On 11 February 2015 at 13:46, Richard W.M. Jones <[email protected]> wrote: > [...] > > On non-glibc, error.c says: > > > > /* The calling program should define program_name and set it to the > > name of the executing program. */ > > extern char *program_name; > > > > This indicates to me that we shouldn't define `program_name' as a symbol > > in libguestfs. Instead every libguestfs-using program should define > > it. For example, virt-df (df/main.c) would have: > > > > #if /* this is Mac OS X */ > > char *program_name = "virt-df"; > > #endif > > > > That sucks a lot. > > That was my first approach, but adding a Darwin-specific ifdef to > every executable shipped with libguestfs seemed much more intrusive > than sneaking it in as a symbol in the library. I do see your point, > though. > > Proposing a patch to gnulib, even should they accept it, does not fix > the underlying issue, which is, essentially, that gnulib requires that > symbol and libguestfs binaries don't supply it. There might be another > OS that trips over this, after all.
But it would fix it for Mac OS X, which is better than nothing. As a test, can you see if adding some variation of: #if /* this is Mac OS X */ #define program_name (((char **)*_NSGetArgv())[0]) #endif to libguestfs's gnulib/lib/error.h fixes the problem? It'll save you a lot of time if it does work. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
