From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Juan =?utf-8?Q?Jos=C3=A9_Garc=C3=ADa-Ripoll?= Newsgroups: gmane.emacs.devel Subject: Re: Avoid duplicate emacs.exe / emacs-$version.exe Date: Sun, 29 Mar 2020 11:38:08 +0200 Message-ID: <86ftdrxzzz.fsf@csic.es> References: <865zeoctg3.fsf@csic.es> <83v9mo5om8.fsf@gnu.org> <86y2rkb4a8.fsf@csic.es> <83o8sf6ge3.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="7667"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (windows-nt) To: emacs-devel@gnu.org Cancel-Lock: sha1:nLiZIqT+WcHEm1geEyIlu5NCVrI= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Mar 29 11:38:56 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jIUP9-0001uI-Q1 for ged-emacs-devel@m.gmane-mx.org; Sun, 29 Mar 2020 11:38:55 +0200 Original-Received: from localhost ([::1]:35630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIUP8-0005oh-SB for ged-emacs-devel@m.gmane-mx.org; Sun, 29 Mar 2020 05:38:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36154) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIUOY-0005P0-8E for emacs-devel@gnu.org; Sun, 29 Mar 2020 05:38:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIUOW-0007WI-TJ for emacs-devel@gnu.org; Sun, 29 Mar 2020 05:38:18 -0400 Original-Received: from ciao.gmane.io ([159.69.161.202]:48088) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jIUOW-0007VX-N3 for emacs-devel@gnu.org; Sun, 29 Mar 2020 05:38:16 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1jIUOU-0001Gw-Ur for emacs-devel@gnu.org; Sun, 29 Mar 2020 11:38:14 +0200 X-Injected-Via-Gmane: http://gmane.org/ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 159.69.161.202 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:245927 Archived-At: So let me pause here and retrace this discussion, because I feel like the cat that is chasing the red pointer with you guys. - My original question was: what is the official build process for making standalone Emasc packages, so as to reproduce the content of the official distros and understand what goes in. That is in a separate thread. - The reply to that answer was to look into admin/nt/ where there are instructions and two scripts, one for pulling dependencies and another one for the build - After reproducing those steps, I end up with zips and installers. The current official distribution of 26.3 has no installer. Only zips. The instruction is to unzip those packages. - Unzipping either the official distro or the ZIPs that are built with the instructions I was provided creates two identical executables, not a hard link. This can be checked with Windows's fsutil (see below) - Phillip's statement is that really this does not matter because the pretest builds show stripping the executables brings their size down to 6Mb. I verified this and I verified that this is true also for the 26.3 build. - Eli's claiming that i) those executables are dynamically linked and that ii) emacs.exe and emacs-27.0.90.exe (or emacs-26.3.exe in the previous release) are not two files, but two hard-linked copies. Now, there are two different lines of thought that diverge: i) the issue of dynamic linking, ii) the issue of whether the two executables are the same. Regarding i) - I have verified that the distro build process reported in admin/nt starts with CFLAGS="-O2 -static" by default. Some options change it to CFLAGS="-O3 -static -g", but the -static flag is never dropped. Regarding ii) - I have verified that the files are not hard links. Actually, runing "configure" with the official sources produces this in config.status S["LN_S_FILEONLY"]="/bin/ln -s" so there is no way this is going to create hard links. This is also true in the case of the builds created with the procedure from emacs/admin/nt This makes sense for msys/mingw because in general there may be out there file systems which are still FAT-based and do not support hard links. Now I get this reply, which I merge from a different line in the thread Eli Zaretskii writes: >> Just a side note: the build-zips.sh script that makes the Windows >> distribution files always uses the flag -static when building emacs. > I don't think the build should use that. It is certainly not the > default. So where is the default? Is the default build process not the one in emacs/admin/nt or, in case one builds from sources without creating zip files, the one in emacs/nt/? I am reporting data from running those two procedures. If you are claiming I am not doing the standard thing, where is the standard thing? Apologies if I may sometimes sound rude, but I am committing my workflow and part of my group's to Emacs for various reasons (org-mode, latex, ebib, etc) and I would like to contribute make the upcoming releases work nicely with our systems. Best, --- checking hard links --- Official 26.3 distro: $ fsutil hardlink list emacs.exe \Users\juanj\emacs-26.3\bin\emacs.exe $ fsutil hardlink list emacs-26.3.exe \Users\juanj\emacs-26.3\bin\emacs-26.3.exe Pretest 27.0.90 installer: $ fsutil hardlink list emacs.exe \Users\juanj\emacs-pretest\bin\emacs.exe $ fsutil hardlink list emacs-27.0.90.exe \Users\juanj\emacs-pretest\bin\emacs-27.0.90.exe Emacs built from sources: $ fsutil hardlink list emacs.exe \Users\juanj\emacs-27\bin\emacs.exe $ fsutil hardlink list emacs-27.0.90.exe \Users\juanj\emacs-27\bin\emacs-27.0.90.exe etc, etc. -- Juan José García Ripoll http://juanjose.garciaripoll.com http://quinfog.hbar.es