From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: MS-Windows build using Posix configury Date: Wed, 17 Apr 2013 19:48:39 +0300 Message-ID: <83r4i92jdk.fsf@gnu.org> References: <83d2tu49lu.fsf@gnu.org> <83zjwx3lwt.fsf@gnu.org> <3mfvyp7jx6.fsf@fencepost.gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1366217331 19017 80.91.229.3 (17 Apr 2013 16:48:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 17 Apr 2013 16:48:51 +0000 (UTC) Cc: emacs-devel@gnu.org To: Glenn Morris Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 17 18:48:55 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1USVXS-0008IP-BO for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2013 18:48:54 +0200 Original-Received: from localhost ([::1]:56521 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USVXS-0001WK-13 for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2013 12:48:54 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37740) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USVXM-0001R3-1z for emacs-devel@gnu.org; Wed, 17 Apr 2013 12:48:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USVXK-0008JJ-Nx for emacs-devel@gnu.org; Wed, 17 Apr 2013 12:48:47 -0400 Original-Received: from mtaout23.012.net.il ([80.179.55.175]:52674) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USVXK-0008J1-Gd; Wed, 17 Apr 2013 12:48:46 -0400 Original-Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MLE00A00RWK2000@a-mtaout23.012.net.il>; Wed, 17 Apr 2013 19:48:24 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MLE0096FS0NT6B0@a-mtaout23.012.net.il>; Wed, 17 Apr 2013 19:48:24 +0300 (IDT) In-reply-to: <3mfvyp7jx6.fsf@fencepost.gnu.org> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.175 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158977 Archived-At: > From: Glenn Morris > Cc: emacs-devel@gnu.org > 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 else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi 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=ln else as_ln_s='cp -p' fi else 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 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00450.html). So I'm not sure this is worth any effort.