[Top][All Lists]

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

Re: Avoid duplicate emacs.exe / emacs-$version.exe

From: Juan José García-Ripoll
Subject: Re: Avoid duplicate emacs.exe / emacs-$version.exe
Date: Sun, 29 Mar 2020 11:38:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (windows-nt)

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

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 <address@hidden> 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.


--- checking hard links ---

Official 26.3 distro:
$ fsutil hardlink list emacs.exe
$ fsutil hardlink list emacs-26.3.exe

Pretest 27.0.90 installer:
$ fsutil hardlink list emacs.exe
$ fsutil hardlink list emacs-27.0.90.exe

Emacs built from sources:
$ fsutil hardlink list emacs.exe
$ fsutil hardlink list emacs-27.0.90.exe

etc, etc.

Juan José García Ripoll

reply via email to

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