[Libguestfs] [PATCH] macosx: Darwin-specific autoconf macros
Pino Toscano
ptoscano at redhat.com
Thu Feb 12 19:08:04 UTC 2015
On Thursday 12 February 2015 18:54:48 Margaret Lewicka wrote:
> On 12 February 2015 at 18:42, Pino Toscano <ptoscano at redhat.com> wrote:
> [...]
> > We link to libcrypt because it provides crypt(), at least on GNU libc
> > and on the FreeBSD libc; it seems not the case on Mac OS X, looking
> > at your patch.
> > I'd say that this should turn into a proper configure check, trying to
> > use crypt() without extra libraries and if not possible with libcrypt.
>
> The crypt() thing is explained here:
> https://developer.apple.com/library/mac/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html#//apple_ref/doc/uid/TP40002850-SW17
> (Compiling... in OS X -> Other Porting Tips -> Functions -> crypt).
> (TL;DR: crypt() comes from unistd.h)
Actually it is defined in POSIX that crypt() is provided by <unistd.h>:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/crypt.html
The issue is about finding the right symbol for it, hence the need for
a proper configure check instead of hardcoding the OS. Otherwise,
it will break in case newer versions of Mac OS X ship a proper libcrypt
(or libguestfs is compiled on some other OS which has crypt() in libc).
> > Is setting LD_LIBRARY_PATH somehow harmful/problematic on Mac OS X?
> > If not, I'd say to use a variable for the library paths we want to add,
> > then adding them to both LD_LIBRARY_PATH and DYLD_LIBRARY_PATH;
> > something like
> > libdirs="$b/src/.libs:...etc"
> > # Set LD_LIBRARY_PATH to contain library.
> > if [ -z "$LD_LIBRARY_PATH" ]; then
> > LD_LIBRARY_PATH="$libdirs"
> > else
> > LD_LIBRARY_PATH="$libdirs:$LD_LIBRARY_PATH"
> > fi
> > export LD_LIBRARY_PATH
> > # ditto for DYLD_LIBRARY_PATH
>
> You'll end up with two semi-identical blocks of code, though, because
> you'll have to perform the same -z check for DYLD_LIBRARY_PATH. (As
> far as I am aware, Darwin does not use LD_LIBRARY_PATH, hence the
> substitution.)
Right... given that run.in is bash, we might as well just switch those
env-checking blocks like
LD_LIBRARY_PATH="$b/src/.libs:...etc$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
--
Pino Toscano
More information about the Libguestfs
mailing list