[Top][All Lists]

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

[feature/dll-only-windows] A new windows build, comments wanted

From: Phillip Lord
Subject: [feature/dll-only-windows] A new windows build, comments wanted
Date: Sat, 09 Jan 2021 19:57:00 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

In preparation for making a native-comp build of Emacs on Windows, I
have revisited the windows packaging process.

The current version figures out dependencies using msys2 and as a result
has an awful lot of dependencies. Even with some efforts to reduce this
size (e.g. python isn't included any more) it's still pretty large.

So I have tried a new technique which is now on
feature/dll-only-windows. Essentially, I just name all of the DLLs that
Emacs uses directly and then figure out any dependencies of these using
`ntldd`. I've tried `ntldd` directly on emacs.exe which does not
work. The practical upshot of this is that the dependencies file is just
a pile of DLLs. The installer version of Emacs (which is the smallest
because it is most compressed) is now only 45Mb (vs 63) in size, with
zip being 130Mb (vs 160Mb).

The source download still using the same technique as before; i.e. the
source bundle will produce a lot more than just the DLLs included.

Some questions for now:

1) Does this seem reasonable? I can some upload some binaries to alpha
if anyone is prepared to try them.

2) harfbuzz is currently not working on i686. Before I fix this, I think
it is worth asking whether I still need to produce a i686 binary. It
doubles the build time, obviously.

3) Currently the "no-deps" version actually includes libXpm. Emacs
starts without it, but looks ugly. I would like to no longer special
case libXpm and just make the "no-deps" download really include no
deps. I think this is reasonable, because this download is now, really
special purpose and "with-deps" is the default.

Some questions for when I add a native-comp build

4) Currently, native-comp is an "--with-nativecomp" option even on the
native-comp branch. It is likely to be merged this way to master?
Currently, I build the Windows distribution of Emacs with all the
default options. I can make an alternative release "--with-nativecomp"
but needs some effort; it also does not address the question of how I
should build Emacs for Windows when a full release of Emacs-28
happens. If, the full release of Emacs-28 will be native-comp, I'd
rather start building snapshots with it as soon as it is merged.

5) Why is it "--with-nativecomp", shouldn't it be "--with-native-comp".

Thoughts welcome.


reply via email to

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