From: "Juan José García-Ripoll" <juanjose.garciaripoll@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: Avoid duplicate emacs.exe / emacs-$version.exe
Date: Sun, 29 Mar 2020 11:38:08 +0200 [thread overview]
Message-ID: <86ftdrxzzz.fsf@csic.es> (raw)
In-Reply-To: 83o8sf6ge3.fsf@gnu.org
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 <eliz@gnu.org> 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
next prev parent reply other threads:[~2020-03-29 9:38 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-28 16:53 Avoid duplicate emacs.exe / emacs-$version.exe Juan José García-Ripoll
2020-03-28 18:19 ` Eli Zaretskii
2020-03-28 20:41 ` Juan José García-Ripoll
2020-03-28 22:45 ` Phillip Lord
2020-03-29 2:31 ` Eli Zaretskii
2020-03-29 9:38 ` Juan José García-Ripoll [this message]
2020-03-29 13:08 ` Phillip Lord
2020-03-29 14:10 ` Eli Zaretskii
2020-03-28 18:19 ` Eli Zaretskii
2020-03-28 20:13 ` Phillip Lord
2020-03-28 20:48 ` Juan José García-Ripoll
2020-03-28 22:22 ` Phillip Lord
2020-03-28 23:36 ` Juan José García-Ripoll
2020-03-29 12:55 ` Phillip Lord
2020-03-29 2:27 ` Eli Zaretskii
2020-03-29 12:52 ` Phillip Lord
2020-03-29 13:56 ` Eli Zaretskii
2020-03-29 17:25 ` Phillip Lord
2020-03-28 23:36 ` Juan José García-Ripoll
2020-03-29 2:36 ` Eli Zaretskii
2020-03-29 12:59 ` Phillip Lord
2020-03-29 13:59 ` Eli Zaretskii
2020-03-29 18:18 ` Phillip Lord
2020-03-29 18:34 ` Eli Zaretskii
2020-03-29 20:49 ` Phillip Lord
-- strict thread matches above, loose matches on Subject: below --
2020-03-29 17:01 Angelo Graziosi
2020-03-29 17:22 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86ftdrxzzz.fsf@csic.es \
--to=juanjose.garciaripoll@gmail.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).