[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MS-Windows build using Posix configury

From: Eli Zaretskii
Subject: Re: MS-Windows build using Posix configury
Date: Wed, 17 Apr 2013 19:48:39 +0300

> From: Glenn Morris <address@hidden>
> Cc: address@hidden
> Date: Wed, 17 Apr 2013 02:25:41 -0400
> Eli Zaretskii wrote:
> > On Windows, the configure script sets LN_S to "cp -p" already.  I see
> > no reason to override that, because this is OK elsewhere in the build.
> Why doesn't configure set LN_S to ln, if ln is usable?
> If ln isn't usable, why do you use it unconditionally?

'ln' does work on Windows, but evidently not good enough for
Autoconf.  From the configure script:

  rm -f conf$$ conf$$.exe conf$$.file
  if test -d conf$$.dir; then
    rm -f conf$$.dir/conf$$.file
    rm -f conf$$.dir
    mkdir conf$$.dir 2>/dev/null
  if (echo >conf$$.file) 2>/dev/null; then
    if ln -s conf$$.file conf$$ 2>/dev/null; then
      as_ln_s='ln -s'
      # ... but there are two gotchas:
 >>>> # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. <<<<<<<<<<<<
      # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
      # In both cases, we have to default to `cp -p'.
      ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
        as_ln_s='cp -p'
    elif ln conf$$.file conf$$ 2>/dev/null; then
      as_ln_s='cp -p'
    as_ln_s='cp -p'

And indeed, the Windows documentation clearly says that hard links to
directories are not supported.

I could, of course, force LN_S to be 'ln' for the Windows build, but
then what if one day we will need to make a hard link to a directory?

OTOH, Paul suggested to use 'ln' on all platforms when installing
Emacs (which is the only place where this issue arises), in which case
this is a moot point.

On the third hand, there's talk about not creating any links as part
of "make install" (see
So I'm not sure this is worth any effort.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]